From 9b1db5ac0dbc2ebd6b9cf81e890c936242181a02 Mon Sep 17 00:00:00 2001 From: Pantheon Automation Date: Wed, 9 Dec 2020 00:28:01 +0000 Subject: [PATCH] Update to WordPress 5.6. For more information, see https://wordpress.org/news/2020/12/simone/ --- wp-admin/about.php | 366 +- wp-admin/admin-ajax.php | 10 +- wp-admin/admin-header.php | 2 +- wp-admin/async-upload.php | 4 +- wp-admin/authorize-application.php | 308 + wp-admin/comment.php | 4 +- wp-admin/credits.php | 26 +- wp-admin/css/about-rtl.css | 342 +- wp-admin/css/about-rtl.min.css | 2 +- wp-admin/css/about.css | 342 +- wp-admin/css/about.min.css | 2 +- wp-admin/css/admin-menu-rtl.css | 16 +- wp-admin/css/admin-menu-rtl.min.css | 2 +- wp-admin/css/admin-menu.css | 16 +- wp-admin/css/admin-menu.min.css | 2 +- wp-admin/css/common-rtl.css | 28 +- wp-admin/css/common-rtl.min.css | 2 +- wp-admin/css/common.css | 28 +- wp-admin/css/common.min.css | 2 +- wp-admin/css/customize-controls-rtl.css | 2 +- wp-admin/css/customize-controls-rtl.min.css | 2 +- wp-admin/css/customize-controls.css | 2 +- wp-admin/css/customize-controls.min.css | 2 +- wp-admin/css/customize-nav-menus-rtl.css | 3 +- wp-admin/css/customize-nav-menus-rtl.min.css | 2 +- wp-admin/css/customize-nav-menus.css | 3 +- wp-admin/css/customize-nav-menus.min.css | 2 +- wp-admin/css/dashboard-rtl.css | 2 +- wp-admin/css/dashboard-rtl.min.css | 2 +- wp-admin/css/dashboard.css | 2 +- wp-admin/css/dashboard.min.css | 2 +- wp-admin/css/edit-rtl.css | 40 +- wp-admin/css/edit-rtl.min.css | 2 +- wp-admin/css/edit.css | 40 +- wp-admin/css/edit.min.css | 2 +- wp-admin/css/forms-rtl.css | 54 +- wp-admin/css/forms-rtl.min.css | 2 +- wp-admin/css/forms.css | 54 +- wp-admin/css/forms.min.css | 2 +- wp-admin/css/list-tables-rtl.css | 31 +- wp-admin/css/list-tables-rtl.min.css | 2 +- wp-admin/css/list-tables.css | 31 +- wp-admin/css/list-tables.min.css | 2 +- wp-admin/css/media-rtl.css | 21 +- wp-admin/css/media-rtl.min.css | 2 +- wp-admin/css/media.css | 21 +- wp-admin/css/media.min.css | 2 +- wp-admin/css/nav-menus-rtl.css | 24 +- wp-admin/css/nav-menus-rtl.min.css | 2 +- wp-admin/css/nav-menus.css | 24 +- wp-admin/css/nav-menus.min.css | 2 +- wp-admin/css/revisions-rtl.css | 2 +- wp-admin/css/revisions-rtl.min.css | 2 +- wp-admin/css/revisions.css | 2 +- wp-admin/css/revisions.min.css | 2 +- wp-admin/css/site-health-rtl.css | 1 - wp-admin/css/site-health-rtl.min.css | 2 +- wp-admin/css/site-health.css | 1 - wp-admin/css/site-health.min.css | 2 +- wp-admin/css/themes-rtl.css | 4 +- wp-admin/css/themes-rtl.min.css | 2 +- wp-admin/css/themes.css | 4 +- wp-admin/css/themes.min.css | 2 +- wp-admin/edit-comments.php | 8 +- wp-admin/edit-form-advanced.php | 38 +- wp-admin/edit-form-blocks.php | 13 +- wp-admin/edit-form-comment.php | 4 +- wp-admin/edit-tag-form.php | 4 +- wp-admin/edit-tags.php | 9 +- wp-admin/edit.php | 35 +- wp-admin/erase-personal-data.php | 2 +- wp-admin/freedoms.php | 30 +- wp-admin/images/freedoms.png | Bin 0 -> 357644 bytes wp-admin/images/privacy.png | Bin 0 -> 54376 bytes wp-admin/includes/ajax-actions.php | 104 +- wp-admin/includes/bookmark.php | 27 +- .../class-automatic-upgrader-skin.php | 20 +- .../class-bulk-plugin-upgrader-skin.php | 4 +- .../class-bulk-theme-upgrader-skin.php | 4 +- wp-admin/includes/class-core-upgrader.php | 13 +- .../class-language-pack-upgrader-skin.php | 2 +- .../includes/class-language-pack-upgrader.php | 9 +- wp-admin/includes/class-pclzip.php | 4 +- .../includes/class-plugin-installer-skin.php | 10 +- .../includes/class-plugin-upgrader-skin.php | 4 +- wp-admin/includes/class-plugin-upgrader.php | 13 +- .../includes/class-theme-installer-skin.php | 4 +- .../includes/class-theme-upgrader-skin.php | 4 +- wp-admin/includes/class-theme-upgrader.php | 13 +- .../class-walker-category-checklist.php | 18 +- .../class-walker-nav-menu-checklist.php | 2 +- .../includes/class-wp-ajax-upgrader-skin.php | 6 +- ...ss-wp-application-passwords-list-table.php | 267 + .../includes/class-wp-automatic-updater.php | 107 +- .../includes/class-wp-comments-list-table.php | 36 +- .../includes/class-wp-community-events.php | 8 +- wp-admin/includes/class-wp-debug-data.php | 20 +- .../includes/class-wp-filesystem-base.php | 28 +- wp-admin/includes/class-wp-importer.php | 12 +- .../includes/class-wp-links-list-table.php | 2 + .../includes/class-wp-list-table-compat.php | 19 +- wp-admin/includes/class-wp-list-table.php | 73 +- .../includes/class-wp-media-list-table.php | 8 +- .../includes/class-wp-ms-sites-list-table.php | 12 +- .../class-wp-ms-themes-list-table.php | 18 +- .../includes/class-wp-ms-users-list-table.php | 6 +- .../class-wp-plugin-install-list-table.php | 10 +- .../includes/class-wp-plugins-list-table.php | 24 +- .../includes/class-wp-posts-list-table.php | 42 +- ...rivacy-data-export-requests-list-table.php | 51 +- ...ivacy-data-removal-requests-list-table.php | 55 +- .../class-wp-privacy-policy-content.php | 7 +- .../class-wp-privacy-requests-table.php | 135 +- wp-admin/includes/class-wp-screen.php | 11 +- .../class-wp-site-health-auto-updates.php | 53 +- wp-admin/includes/class-wp-site-health.php | 167 +- .../includes/class-wp-terms-list-table.php | 7 +- .../class-wp-theme-install-list-table.php | 10 +- wp-admin/includes/class-wp-upgrader-skin.php | 2 +- wp-admin/includes/class-wp-upgrader.php | 4 +- .../includes/class-wp-users-list-table.php | 4 +- wp-admin/includes/comment.php | 4 +- wp-admin/includes/credits.php | 25 +- wp-admin/includes/dashboard.php | 40 +- wp-admin/includes/deprecated.php | 5 +- wp-admin/includes/export.php | 38 +- wp-admin/includes/file.php | 10 +- wp-admin/includes/image-edit.php | 60 +- wp-admin/includes/image.php | 62 +- wp-admin/includes/list-table.php | 8 +- wp-admin/includes/media.php | 135 +- wp-admin/includes/meta-boxes.php | 32 +- wp-admin/includes/misc.php | 4 +- wp-admin/includes/nav-menu.php | 7 +- wp-admin/includes/network.php | 3 +- wp-admin/includes/plugin-install.php | 2 +- wp-admin/includes/plugin.php | 98 +- wp-admin/includes/post.php | 38 +- wp-admin/includes/privacy-tools.php | 44 +- wp-admin/includes/revision.php | 2 +- wp-admin/includes/schema.php | 13 +- wp-admin/includes/taxonomy.php | 2 +- wp-admin/includes/template.php | 94 +- wp-admin/includes/theme.php | 8 +- wp-admin/includes/update-core.php | 4 + wp-admin/includes/update.php | 31 +- wp-admin/includes/upgrade.php | 112 +- wp-admin/includes/user.php | 74 +- wp-admin/includes/widgets.php | 3 +- wp-admin/index.php | 14 +- wp-admin/js/application-passwords.js | 212 + wp-admin/js/application-passwords.min.js | 2 + wp-admin/js/auth-app.js | 161 + wp-admin/js/auth-app.min.js | 2 + wp-admin/js/common.js | 46 +- wp-admin/js/common.min.js | 2 +- wp-admin/js/customize-controls.js | 2 +- wp-admin/js/customize-controls.min.js | 2 +- wp-admin/js/customize-widgets.js | 2 +- wp-admin/js/customize-widgets.min.js | 2 +- wp-admin/js/dashboard.js | 60 +- wp-admin/js/dashboard.min.js | 2 +- wp-admin/js/image-edit.js | 4 + wp-admin/js/image-edit.min.js | 2 +- wp-admin/js/inline-edit-post.js | 7 +- wp-admin/js/inline-edit-post.min.js | 2 +- wp-admin/js/privacy-tools.js | 6 +- wp-admin/js/privacy-tools.min.js | 2 +- wp-admin/js/site-health.js | 175 +- wp-admin/js/site-health.min.js | 2 +- wp-admin/js/tags-suggest.js | 23 +- wp-admin/js/tags-suggest.min.js | 2 +- wp-admin/js/theme-plugin-editor.js | 2 +- wp-admin/js/theme-plugin-editor.min.js | 2 +- wp-admin/js/updates.js | 96 +- wp-admin/js/updates.min.js | 2 +- wp-admin/js/user-profile.js | 80 +- wp-admin/js/user-profile.min.js | 2 +- wp-admin/js/widgets.js | 2 +- wp-admin/js/widgets.min.js | 2 +- wp-admin/link-manager.php | 9 +- wp-admin/link.php | 2 +- wp-admin/media-upload.php | 6 +- wp-admin/menu-header.php | 12 +- wp-admin/ms-delete-site.php | 4 +- wp-admin/nav-menus.php | 8 +- wp-admin/network/settings.php | 2 +- wp-admin/network/site-info.php | 16 +- wp-admin/network/site-new.php | 26 +- wp-admin/network/site-settings.php | 2 +- wp-admin/network/site-themes.php | 2 +- wp-admin/network/site-users.php | 2 +- wp-admin/network/sites.php | 11 +- wp-admin/network/themes.php | 11 +- wp-admin/network/upgrade.php | 2 +- wp-admin/network/users.php | 11 +- wp-admin/options-general.php | 2 +- wp-admin/options-permalink.php | 97 +- wp-admin/options-privacy.php | 4 +- wp-admin/options-reading.php | 9 +- wp-admin/plugin-editor.php | 6 +- wp-admin/plugins.php | 11 +- wp-admin/post.php | 9 +- wp-admin/privacy-policy-guide.php | 2 +- wp-admin/privacy.php | 28 +- wp-admin/revision.php | 2 +- wp-admin/site-health.php | 4 +- wp-admin/theme-editor.php | 4 +- wp-admin/update-core.php | 254 +- wp-admin/upload.php | 11 +- wp-admin/user-edit.php | 112 +- wp-admin/user-new.php | 69 +- wp-admin/users.php | 15 +- wp-admin/widgets.php | 34 +- wp-comments-post.php | 2 +- .../themes/twentytwentyone/.stylelintignore | 10 + .../twentytwentyone/.stylelintrc-css.json | 22 + .../themes/twentytwentyone/.stylelintrc.json | 15 + wp-content/themes/twentytwentyone/404.php | 27 + wp-content/themes/twentytwentyone/archive.php | 37 + .../assets/css/custom-color-overrides.css | 5 + .../twentytwentyone/assets/css/ie-editor.css | 2472 + .../themes/twentytwentyone/assets/css/ie.css | 5854 ++ .../twentytwentyone/assets/css/print.css | 178 + .../assets/css/style-dark-mode-rtl.css | 111 + .../assets/css/style-dark-mode.css | 111 + .../assets/css/style-editor-customizer.css | 3 + .../assets/css/style-editor.css | 2472 + .../assets/images/Daffodils.jpg | Bin 0 -> 217634 bytes .../twentytwentyone/assets/images/Reading.jpg | Bin 0 -> 267337 bytes .../assets/images/in-the-bois-de-boulogne.jpg | Bin 0 -> 276539 bytes .../assets/images/playing-in-the-sand.jpg | Bin 0 -> 198968 bytes .../roses-tremieres-hollyhocks-1884.jpg | Bin 0 -> 287158 bytes .../assets/images/self-portrait-1885.jpg | Bin 0 -> 196681 bytes .../images/the-garden-at-bougival-1884.jpg | Bin 0 -> 268810 bytes .../images/villa-with-orange-trees-nice.jpg | Bin 0 -> 258830 bytes .../assets/images/young-woman-in-mauve.jpg | Bin 0 -> 156480 bytes .../assets/js/customize-helpers.js | 35 + .../assets/js/customize-preview.js | 62 + .../twentytwentyone/assets/js/customize.js | 25 + .../assets/js/dark-mode-toggler.js | 66 + .../assets/js/editor-dark-mode-support.js | 44 + .../twentytwentyone/assets/js/editor.js | 38 + .../assets/js/palette-colorpicker.js | 53 + .../twentytwentyone/assets/js/polyfills.js | 42 + .../assets/js/primary-navigation.js | 167 + .../assets/js/responsive-embeds.js | 36 + .../assets/js/skip-link-focus-fix.js | 33 + .../assets/sass/01-settings/file-header.scss | 18 + .../assets/sass/01-settings/fonts.scss | 1 + .../assets/sass/01-settings/global.scss | 249 + .../assets/sass/02-tools/functions.scss | 178 + .../assets/sass/02-tools/mixins.scss | 73 + .../assets/sass/03-generic/breakpoints.scss | 217 + .../assets/sass/03-generic/clearings.scss | 25 + .../assets/sass/03-generic/normalize.scss | 350 + .../assets/sass/03-generic/reset.scss | 75 + .../sass/03-generic/vertical-margins.scss | 172 + .../assets/sass/04-elements/blockquote.scss | 81 + .../assets/sass/04-elements/forms-editor.scss | 12 + .../assets/sass/04-elements/forms.scss | 328 + .../assets/sass/04-elements/links.scss | 68 + .../assets/sass/04-elements/media.scss | 46 + .../assets/sass/04-elements/misc.scss | 17 + .../assets/sass/05-blocks/_config.scss | 7 + .../assets/sass/05-blocks/audio/_style.scss | 7 + .../assets/sass/05-blocks/blocks-editor.scss | 35 + .../assets/sass/05-blocks/blocks.scss | 37 + .../assets/sass/05-blocks/button/_editor.scss | 118 + .../assets/sass/05-blocks/button/_style.scss | 134 + .../assets/sass/05-blocks/code/_editor.scss | 14 + .../assets/sass/05-blocks/code/_style.scss | 14 + .../sass/05-blocks/columns/_editor.scss | 68 + .../assets/sass/05-blocks/columns/_style.scss | 105 + .../assets/sass/05-blocks/cover/_editor.scss | 72 + .../assets/sass/05-blocks/cover/_style.scss | 111 + .../assets/sass/05-blocks/file/_editor.scss | 24 + .../assets/sass/05-blocks/file/_style.scss | 24 + .../sass/05-blocks/gallery/_editor.scss | 10 + .../assets/sass/05-blocks/gallery/_style.scss | 33 + .../assets/sass/05-blocks/group/_editor.scss | 45 + .../assets/sass/05-blocks/group/_style.scss | 70 + .../sass/05-blocks/heading/_editor.scss | 81 + .../assets/sass/05-blocks/heading/_style.scss | 65 + .../assets/sass/05-blocks/html/_editor.scss | 6 + .../assets/sass/05-blocks/image/_editor.scss | 20 + .../assets/sass/05-blocks/image/_style.scss | 69 + .../05-blocks/latest-comments/_editor.scss | 3 + .../05-blocks/latest-comments/_style.scss | 35 + .../sass/05-blocks/latest-posts/_editor.scss | 144 + .../sass/05-blocks/latest-posts/_style.scss | 169 + .../assets/sass/05-blocks/legacy/_editor.scss | 42 + .../assets/sass/05-blocks/legacy/_style.scss | 55 + .../assets/sass/05-blocks/list/_editor.scss | 32 + .../assets/sass/05-blocks/list/_style.scss | 36 + .../sass/05-blocks/media-text/_editor.scss | 18 + .../sass/05-blocks/media-text/_style.scss | 53 + .../sass/05-blocks/navigation/_editor.scss | 45 + .../sass/05-blocks/navigation/_style.scss | 128 + .../sass/05-blocks/paragraph/_editor.scss | 7 + .../sass/05-blocks/paragraph/_style.scss | 14 + .../sass/05-blocks/preformatted/_editor.scss | 6 + .../sass/05-blocks/preformatted/_style.scss | 4 + .../sass/05-blocks/pullquote/_editor.scss | 106 + .../sass/05-blocks/pullquote/_style.scss | 110 + .../assets/sass/05-blocks/quote/_editor.scss | 150 + .../assets/sass/05-blocks/quote/_style.scss | 138 + .../assets/sass/05-blocks/rss/_editor.scss | 109 + .../assets/sass/05-blocks/rss/_style.scss | 109 + .../assets/sass/05-blocks/search/_editor.scss | 183 + .../assets/sass/05-blocks/search/_style.scss | 174 + .../sass/05-blocks/separator/_editor.scss | 48 + .../sass/05-blocks/separator/_style.scss | 60 + .../sass/05-blocks/social-icons/_editor.scss | 20 + .../sass/05-blocks/social-icons/_style.scss | 18 + .../assets/sass/05-blocks/spacer/_style.scss | 13 + .../assets/sass/05-blocks/table/_editor.scss | 79 + .../assets/sass/05-blocks/table/_style.scss | 84 + .../sass/05-blocks/tag-clould/_editor.scss | 6 + .../sass/05-blocks/tag-clould/_style.scss | 7 + .../sass/05-blocks/utilities/_editor.scss | 140 + .../sass/05-blocks/utilities/_font-sizes.scss | 53 + .../sass/05-blocks/utilities/_style.scss | 160 + .../assets/sass/05-blocks/verse/_editor.scss | 4 + .../assets/sass/05-blocks/verse/_style.scss | 3 + .../assets/sass/05-blocks/video/_style.scss | 16 + .../assets/sass/06-components/404.scss | 4 + .../assets/sass/06-components/archives.scss | 68 + .../assets/sass/06-components/comments.scss | 292 + .../assets/sass/06-components/editor.scss | 44 + .../assets/sass/06-components/entry.scss | 214 + .../sass/06-components/footer-navigation.scss | 73 + .../assets/sass/06-components/footer.scss | 74 + .../assets/sass/06-components/header.scss | 214 + .../assets/sass/06-components/navigation.scss | 533 + .../assets/sass/06-components/pagination.scss | 243 + .../sass/06-components/posts-and-pages.scss | 24 + .../assets/sass/06-components/search.scss | 3 + .../assets/sass/06-components/single.scss | 17 + .../assets/sass/06-components/widgets.scss | 133 + .../assets/sass/07-utilities/a11y.scss | 48 + .../sass/07-utilities/color-palette.scss | 148 + .../assets/sass/07-utilities/ie.scss | 53 + .../assets/sass/07-utilities/measure.scss | 22 + .../assets/sass/07-utilities/print.scss | 184 + .../assets/sass/style-dark-mode.scss | 104 + .../assets/sass/style-editor.scss | 21 + .../twentytwentyone/assets/sass/style.scss | 122 + .../class-twenty-twenty-one-custom-colors.php | 185 + ...nty-twenty-one-customize-color-control.php | 75 + ...ty-twenty-one-customize-notice-control.php | 48 + .../class-twenty-twenty-one-customize.php | 192 + .../class-twenty-twenty-one-dark-mode.php | 412 + .../class-twenty-twenty-one-svg-icons.php | 251 + .../themes/twentytwentyone/comments.php | 95 + wp-content/themes/twentytwentyone/footer.php | 74 + .../themes/twentytwentyone/functions.php | 610 + wp-content/themes/twentytwentyone/header.php | 32 + wp-content/themes/twentytwentyone/image.php | 110 + .../twentytwentyone/inc/back-compat.php | 92 + .../twentytwentyone/inc/block-patterns.php | 120 + .../twentytwentyone/inc/block-styles.php | 112 + .../themes/twentytwentyone/inc/custom-css.php | 43 + .../twentytwentyone/inc/menu-functions.php | 98 + .../twentytwentyone/inc/starter-content.php | 184 + .../inc/template-functions.php | 447 + .../twentytwentyone/inc/template-tags.php | 263 + wp-content/themes/twentytwentyone/index.php | 38 + .../themes/twentytwentyone/package-lock.json | 4396 ++ .../themes/twentytwentyone/package.json | 67 + wp-content/themes/twentytwentyone/page.php | 25 + wp-content/themes/twentytwentyone/readme.txt | 99 + .../themes/twentytwentyone/screenshot.png | Bin 0 -> 282897 bytes wp-content/themes/twentytwentyone/search.php | 65 + .../themes/twentytwentyone/searchform.php | 27 + wp-content/themes/twentytwentyone/single.php | 63 + .../themes/twentytwentyone/style-rtl.css | 5818 ++ wp-content/themes/twentytwentyone/style.css | 5854 ++ .../content/content-excerpt.php | 25 + .../template-parts/content/content-none.php | 66 + .../template-parts/content/content-page.php | 57 + .../template-parts/content/content-single.php | 44 + .../template-parts/content/content.php | 46 + .../template-parts/excerpt/excerpt-aside.php | 13 + .../template-parts/excerpt/excerpt-audio.php | 23 + .../template-parts/excerpt/excerpt-chat.php | 20 + .../excerpt/excerpt-gallery.php | 18 + .../template-parts/excerpt/excerpt-image.php | 21 + .../template-parts/excerpt/excerpt-link.php | 19 + .../template-parts/excerpt/excerpt-quote.php | 21 + .../template-parts/excerpt/excerpt-status.php | 13 + .../template-parts/excerpt/excerpt-video.php | 23 + .../template-parts/excerpt/excerpt.php | 12 + .../template-parts/footer/footer-widgets.php | 16 + .../template-parts/header/entry-header.php | 10 + .../template-parts/header/excerpt-header.php | 22 + .../template-parts/header/site-branding.php | 42 + .../template-parts/header/site-header.php | 21 + .../template-parts/header/site-nav.php | 36 + .../template-parts/post/author-bio.php | 27 + wp-cron.php | 10 +- wp-includes/ID3/getid3.lib.php | 14 +- wp-includes/PHPMailer/Exception.php | 3 +- wp-includes/PHPMailer/PHPMailer.php | 172 +- wp-includes/PHPMailer/SMTP.php | 116 +- .../SimplePie/Content/Type/Sniffer.php | 2 +- wp-includes/SimplePie/File.php | 9 +- wp-includes/SimplePie/Locator.php | 2 +- wp-includes/SimplePie/Misc.php | 5 +- wp-includes/Text/Diff.php | 16 +- wp-includes/assets/script-loader-packages.php | 2 +- wp-includes/atomlib.php | 6 +- .../block-patterns/large-header-button.php | 2 +- wp-includes/block-supports/align.php | 69 + wp-includes/block-supports/colors.php | 161 + .../block-supports/custom-classname.php | 67 + .../block-supports/generated-classname.php | 69 + wp-includes/block-supports/typography.php | 106 + wp-includes/blocks.php | 14 +- wp-includes/blocks/archives.php | 23 +- wp-includes/blocks/archives/block.json | 14 +- wp-includes/blocks/audio/block.json | 4 +- wp-includes/blocks/block/block.json | 1 + wp-includes/blocks/button/block.json | 3 +- wp-includes/blocks/buttons/block.json | 4 +- wp-includes/blocks/calendar.php | 10 +- wp-includes/blocks/calendar/block.json | 14 +- wp-includes/blocks/categories.php | 24 +- wp-includes/blocks/categories/block.json | 14 +- wp-includes/blocks/classic/block.json | 1 + wp-includes/blocks/code/block.json | 7 +- wp-includes/blocks/column/block.json | 11 +- wp-includes/blocks/columns/block.json | 6 +- wp-includes/blocks/embed/block.json | 38 + wp-includes/blocks/file/block.json | 1 + wp-includes/blocks/gallery/block.json | 3 +- wp-includes/blocks/group/block.json | 12 +- wp-includes/blocks/heading/block.json | 13 +- wp-includes/blocks/html/block.json | 1 + wp-includes/blocks/image/block.json | 7 +- wp-includes/blocks/index.php | 1 + wp-includes/blocks/latest-comments.php | 26 +- wp-includes/blocks/latest-comments/block.json | 14 +- wp-includes/blocks/latest-posts.php | 38 +- wp-includes/blocks/latest-posts/block.json | 18 +- wp-includes/blocks/list/block.json | 12 +- wp-includes/blocks/media-text/block.json | 14 +- wp-includes/blocks/missing/block.json | 1 + wp-includes/blocks/more/block.json | 1 + wp-includes/blocks/nextpage/block.json | 1 + wp-includes/blocks/paragraph/block.json | 15 +- wp-includes/blocks/preformatted/block.json | 4 +- wp-includes/blocks/pullquote/block.json | 1 + wp-includes/blocks/quote/block.json | 1 + wp-includes/blocks/rss.php | 17 +- wp-includes/blocks/rss/block.json | 14 +- wp-includes/blocks/search.php | 134 +- wp-includes/blocks/search/block.json | 34 +- wp-includes/blocks/separator/block.json | 4 +- wp-includes/blocks/shortcode/block.json | 1 + wp-includes/blocks/social-link.php | 19 +- wp-includes/blocks/social-link/block.json | 7 +- wp-includes/blocks/social-links/block.json | 11 +- wp-includes/blocks/spacer/block.json | 1 + wp-includes/blocks/subhead/block.json | 1 + wp-includes/blocks/table/block.json | 4 +- wp-includes/blocks/tag-cloud.php | 17 +- wp-includes/blocks/tag-cloud/block.json | 14 +- wp-includes/blocks/text-columns/block.json | 1 + wp-includes/blocks/verse/block.json | 4 +- wp-includes/blocks/video/block.json | 11 +- wp-includes/bookmark-template.php | 2 +- wp-includes/canonical.php | 7 +- wp-includes/category-template.php | 21 +- wp-includes/class-http.php | 4 +- wp-includes/class-json.php | 6 +- wp-includes/class-simplepie.php | 4 +- .../class-walker-category-dropdown.php | 12 +- wp-includes/class-walker-category.php | 22 +- wp-includes/class-walker-comment.php | 48 +- wp-includes/class-walker-nav-menu.php | 6 +- wp-includes/class-wp-admin-bar.php | 6 +- .../class-wp-application-passwords.php | 347 + wp-includes/class-wp-block-parser.php | 48 +- ...s-wp-block-pattern-categories-registry.php | 2 + .../class-wp-block-patterns-registry.php | 2 + .../class-wp-block-styles-registry.php | 4 +- wp-includes/class-wp-block-supports.php | 215 + wp-includes/class-wp-block-type.php | 14 +- wp-includes/class-wp-block.php | 11 +- wp-includes/class-wp-comment-query.php | 35 +- wp-includes/class-wp-comment.php | 20 +- wp-includes/class-wp-customize-control.php | 2 +- wp-includes/class-wp-customize-manager.php | 16 +- wp-includes/class-wp-customize-nav-menus.php | 16 +- wp-includes/class-wp-customize-widgets.php | 10 +- wp-includes/class-wp-date-query.php | 22 +- wp-includes/class-wp-editor.php | 4 +- wp-includes/class-wp-error.php | 133 +- wp-includes/class-wp-fatal-error-handler.php | 6 +- wp-includes/class-wp-feed-cache.php | 8 + wp-includes/class-wp-hook.php | 25 +- wp-includes/class-wp-http-curl.php | 2 +- wp-includes/class-wp-http-requests-hooks.php | 2 +- wp-includes/class-wp-http-streams.php | 2 +- wp-includes/class-wp-image-editor-gd.php | 51 +- wp-includes/class-wp-image-editor-imagick.php | 141 +- wp-includes/class-wp-image-editor.php | 10 +- wp-includes/class-wp-locale.php | 6 +- wp-includes/class-wp-matchesmapregex.php | 2 +- wp-includes/class-wp-network-query.php | 35 +- wp-includes/class-wp-oembed-controller.php | 2 +- wp-includes/class-wp-oembed.php | 50 +- wp-includes/class-wp-post-type.php | 43 +- wp-includes/class-wp-post.php | 4 +- wp-includes/class-wp-query.php | 84 +- .../class-wp-recovery-mode-cookie-service.php | 3 +- .../class-wp-recovery-mode-email-service.php | 27 +- .../class-wp-recovery-mode-link-service.php | 2 +- wp-includes/class-wp-recovery-mode.php | 4 +- wp-includes/class-wp-rewrite.php | 43 +- wp-includes/class-wp-session-tokens.php | 2 +- wp-includes/class-wp-simplepie-file.php | 6 +- .../class-wp-simplepie-sanitize-kses.php | 2 +- wp-includes/class-wp-site-query.php | 33 +- wp-includes/class-wp-term-query.php | 16 +- .../class-wp-text-diff-renderer-table.php | 2 +- wp-includes/class-wp-theme.php | 1 + wp-includes/class-wp-user-query.php | 17 +- wp-includes/class-wp-user.php | 4 +- wp-includes/class-wp-walker.php | 2 +- wp-includes/class-wp-widget.php | 4 +- wp-includes/class-wp-xmlrpc-server.php | 66 +- wp-includes/class-wp.php | 6 +- wp-includes/comment-template.php | 43 +- wp-includes/comment.php | 64 +- wp-includes/compat.php | 2 +- wp-includes/cron.php | 27 +- wp-includes/css/admin-bar-rtl.css | 10 +- wp-includes/css/admin-bar-rtl.min.css | 2 +- wp-includes/css/admin-bar.css | 10 +- wp-includes/css/admin-bar.min.css | 2 +- wp-includes/css/dashicons.css | 2 +- wp-includes/css/dashicons.min.css | 2 +- .../css/dist/block-directory/style-rtl.css | 29 +- .../dist/block-directory/style-rtl.min.css | 2 +- .../css/dist/block-directory/style.css | 29 +- .../css/dist/block-directory/style.min.css | 2 +- .../css/dist/block-editor/style-rtl.css | 707 +- .../css/dist/block-editor/style-rtl.min.css | 2 +- wp-includes/css/dist/block-editor/style.css | 707 +- .../css/dist/block-editor/style.min.css | 4 +- .../css/dist/block-library/editor-rtl.css | 587 +- .../css/dist/block-library/editor-rtl.min.css | 2 +- wp-includes/css/dist/block-library/editor.css | 587 +- .../css/dist/block-library/editor.min.css | 2 +- .../css/dist/block-library/style-rtl.css | 548 +- .../css/dist/block-library/style-rtl.min.css | 2 +- wp-includes/css/dist/block-library/style.css | 548 +- .../css/dist/block-library/style.min.css | 4 +- .../css/dist/block-library/theme-rtl.css | 61 +- .../css/dist/block-library/theme-rtl.min.css | 2 +- wp-includes/css/dist/block-library/theme.css | 61 +- .../css/dist/block-library/theme.min.css | 2 +- wp-includes/css/dist/components/style-rtl.css | 604 +- .../css/dist/components/style-rtl.min.css | 2 +- wp-includes/css/dist/components/style.css | 604 +- wp-includes/css/dist/components/style.min.css | 6 +- wp-includes/css/dist/edit-post/style-rtl.css | 413 +- .../css/dist/edit-post/style-rtl.min.css | 2 +- wp-includes/css/dist/edit-post/style.css | 413 +- wp-includes/css/dist/edit-post/style.min.css | 2 +- .../css/dist/editor/editor-styles-rtl.css | 44 +- .../css/dist/editor/editor-styles-rtl.min.css | 2 +- wp-includes/css/dist/editor/editor-styles.css | 44 +- .../css/dist/editor/editor-styles.min.css | 2 +- wp-includes/css/dist/editor/style-rtl.css | 71 +- wp-includes/css/dist/editor/style-rtl.min.css | 2 +- wp-includes/css/dist/editor/style.css | 71 +- wp-includes/css/dist/editor/style.min.css | 2 +- .../css/dist/format-library/style-rtl.css | 13 +- .../css/dist/format-library/style-rtl.min.css | 2 +- wp-includes/css/dist/format-library/style.css | 13 +- .../css/dist/format-library/style.min.css | 2 +- .../dist/list-reusable-blocks/style-rtl.css | 11 +- .../css/dist/list-reusable-blocks/style.css | 11 +- wp-includes/css/dist/nux/style-rtl.css | 11 +- wp-includes/css/dist/nux/style.css | 11 +- wp-includes/css/editor-rtl.css | 8 +- wp-includes/css/editor-rtl.min.css | 2 +- wp-includes/css/editor.css | 8 +- wp-includes/css/editor.min.css | 2 +- wp-includes/css/jquery-ui-dialog-rtl.css | 7 +- wp-includes/css/jquery-ui-dialog-rtl.min.css | 2 +- wp-includes/css/jquery-ui-dialog.css | 7 +- wp-includes/css/jquery-ui-dialog.min.css | 2 +- wp-includes/css/media-views-rtl.css | 14 +- wp-includes/css/media-views-rtl.min.css | 2 +- wp-includes/css/media-views.css | 14 +- wp-includes/css/media-views.min.css | 2 +- wp-includes/css/wp-auth-check-rtl.css | 2 +- wp-includes/css/wp-auth-check-rtl.min.css | 2 +- wp-includes/css/wp-auth-check.css | 2 +- wp-includes/css/wp-auth-check.min.css | 2 +- wp-includes/css/wp-pointer-rtl.css | 4 +- wp-includes/css/wp-pointer-rtl.min.css | 2 +- wp-includes/css/wp-pointer.css | 4 +- wp-includes/css/wp-pointer.min.css | 2 +- .../class-wp-customize-custom-css-setting.php | 2 +- .../class-wp-customize-date-time-control.php | 6 +- ...lass-wp-customize-header-image-control.php | 2 +- ...ass-wp-customize-nav-menu-item-setting.php | 17 +- .../class-wp-customize-nav-menu-section.php | 2 +- .../class-wp-customize-nav-menu-setting.php | 8 +- .../class-wp-customize-themes-section.php | 2 +- wp-includes/default-constants.php | 8 +- wp-includes/default-filters.php | 11 +- wp-includes/deprecated.php | 43 +- wp-includes/embed.php | 21 +- wp-includes/error-protection.php | 21 + wp-includes/feed.php | 12 +- wp-includes/formatting.php | 78 +- wp-includes/functions.php | 298 +- wp-includes/general-template.php | 118 +- wp-includes/http.php | 2 +- wp-includes/js/api-request.js | 51 +- wp-includes/js/api-request.min.js | 2 +- wp-includes/js/autosave.js | 4 +- wp-includes/js/comment-reply.js | 2 +- wp-includes/js/customize-base.js | 4 +- wp-includes/js/dist/a11y.js | 8 +- wp-includes/js/dist/a11y.min.js | 2 +- wp-includes/js/dist/annotations.js | 88 +- wp-includes/js/dist/annotations.min.js | 2 +- wp-includes/js/dist/api-fetch.js | 198 +- wp-includes/js/dist/api-fetch.min.js | 2 +- wp-includes/js/dist/autop.js | 20 +- wp-includes/js/dist/autop.min.js | 2 +- wp-includes/js/dist/blob.js | 20 +- wp-includes/js/dist/blob.min.js | 2 +- wp-includes/js/dist/block-directory.js | 631 +- wp-includes/js/dist/block-directory.min.js | 2 +- wp-includes/js/dist/block-editor.js | 10697 ++-- wp-includes/js/dist/block-editor.min.js | 6 +- wp-includes/js/dist/block-library.js | 11787 ++-- wp-includes/js/dist/block-library.min.js | 32 +- .../block-serialization-default-parser.js | 20 +- .../block-serialization-default-parser.min.js | 2 +- wp-includes/js/dist/blocks.js | 1394 +- wp-includes/js/dist/blocks.min.js | 4 +- wp-includes/js/dist/components.js | 16029 +++--- wp-includes/js/dist/components.min.js | 8 +- wp-includes/js/dist/compose.js | 270 +- wp-includes/js/dist/compose.min.js | 4 +- wp-includes/js/dist/core-data.js | 1450 +- wp-includes/js/dist/core-data.min.js | 2 +- wp-includes/js/dist/data-controls.js | 257 +- wp-includes/js/dist/data-controls.min.js | 2 +- wp-includes/js/dist/data.js | 864 +- wp-includes/js/dist/data.min.js | 2 +- wp-includes/js/dist/date.js | 55 +- wp-includes/js/dist/date.min.js | 10 +- wp-includes/js/dist/deprecated.js | 8 +- wp-includes/js/dist/deprecated.min.js | 2 +- wp-includes/js/dist/dom-ready.js | 4 +- wp-includes/js/dist/dom-ready.min.js | 2 +- wp-includes/js/dist/dom.js | 474 +- wp-includes/js/dist/dom.min.js | 2 +- wp-includes/js/dist/edit-post.js | 1510 +- wp-includes/js/dist/edit-post.min.js | 4 +- wp-includes/js/dist/editor.js | 7948 ++- wp-includes/js/dist/editor.min.js | 14 +- wp-includes/js/dist/element.js | 74 +- wp-includes/js/dist/element.min.js | 2 +- wp-includes/js/dist/escape-html.js | 4 +- wp-includes/js/dist/escape-html.min.js | 2 +- wp-includes/js/dist/format-library.js | 382 +- wp-includes/js/dist/format-library.min.js | 2 +- wp-includes/js/dist/hooks.js | 26 +- wp-includes/js/dist/hooks.min.js | 2 +- wp-includes/js/dist/html-entities.js | 4 +- wp-includes/js/dist/html-entities.min.js | 2 +- wp-includes/js/dist/i18n.js | 12 +- wp-includes/js/dist/i18n.min.js | 2 +- wp-includes/js/dist/is-shallow-equal.js | 12 +- wp-includes/js/dist/is-shallow-equal.min.js | 2 +- wp-includes/js/dist/keyboard-shortcuts.js | 60 +- wp-includes/js/dist/keyboard-shortcuts.min.js | 2 +- wp-includes/js/dist/keycodes.js | 28 +- wp-includes/js/dist/keycodes.min.js | 2 +- wp-includes/js/dist/list-reusable-blocks.js | 202 +- .../js/dist/list-reusable-blocks.min.js | 2 +- wp-includes/js/dist/media-utils.js | 246 +- wp-includes/js/dist/media-utils.min.js | 2 +- wp-includes/js/dist/notices.js | 28 +- wp-includes/js/dist/notices.min.js | 2 +- wp-includes/js/dist/nux.js | 82 +- wp-includes/js/dist/nux.min.js | 2 +- wp-includes/js/dist/plugins.js | 108 +- wp-includes/js/dist/plugins.min.js | 2 +- wp-includes/js/dist/primitives.js | 144 +- wp-includes/js/dist/primitives.min.js | 4 +- wp-includes/js/dist/priority-queue.js | 8 +- wp-includes/js/dist/priority-queue.min.js | 2 +- wp-includes/js/dist/redux-routine.js | 54 +- wp-includes/js/dist/redux-routine.min.js | 2 +- wp-includes/js/dist/reusable-blocks.js | 884 + wp-includes/js/dist/reusable-blocks.min.js | 2 + wp-includes/js/dist/rich-text.js | 899 +- wp-includes/js/dist/rich-text.min.js | 7 +- wp-includes/js/dist/server-side-render.js | 191 +- wp-includes/js/dist/server-side-render.min.js | 2 +- wp-includes/js/dist/shortcode.js | 4 +- wp-includes/js/dist/shortcode.min.js | 2 +- wp-includes/js/dist/token-list.js | 60 +- wp-includes/js/dist/token-list.min.js | 2 +- wp-includes/js/dist/url.js | 28 +- wp-includes/js/dist/url.min.js | 2 +- wp-includes/js/dist/vendor/react-dom.js | 44892 ++++++++-------- wp-includes/js/dist/vendor/react-dom.min.js | 448 +- wp-includes/js/dist/vendor/react.js | 5976 +- wp-includes/js/dist/vendor/react.min.js | 52 +- wp-includes/js/dist/viewport.js | 36 +- wp-includes/js/dist/viewport.min.js | 2 +- wp-includes/js/dist/warning.js | 8 +- wp-includes/js/dist/warning.min.js | 2 +- wp-includes/js/dist/wordcount.js | 214 +- wp-includes/js/dist/wordcount.min.js | 2 +- wp-includes/js/jquery/jquery-migrate.js | 1177 +- wp-includes/js/jquery/jquery-migrate.min.js | 4 +- wp-includes/js/jquery/jquery.js | 10877 +++- wp-includes/js/jquery/jquery.min.js | 3 + wp-includes/js/jquery/ui/accordion.js | 610 + wp-includes/js/jquery/ui/accordion.min.js | 6 +- wp-includes/js/jquery/ui/autocomplete.js | 678 + wp-includes/js/jquery/ui/autocomplete.min.js | 6 +- wp-includes/js/jquery/ui/button.js | 385 + wp-includes/js/jquery/ui/button.min.js | 6 +- wp-includes/js/jquery/ui/checkboxradio.js | 283 + wp-includes/js/jquery/ui/checkboxradio.min.js | 9 + wp-includes/js/jquery/ui/controlgroup.js | 298 + wp-includes/js/jquery/ui/controlgroup.min.js | 9 + wp-includes/js/jquery/ui/core.js | 1768 + wp-includes/js/jquery/ui/core.min.js | 111 +- wp-includes/js/jquery/ui/datepicker.js | 2119 + wp-includes/js/jquery/ui/datepicker.min.js | 6 +- wp-includes/js/jquery/ui/dialog.js | 932 + wp-includes/js/jquery/ui/dialog.min.js | 6 +- wp-includes/js/jquery/ui/draggable.js | 1244 + wp-includes/js/jquery/ui/draggable.min.js | 6 +- wp-includes/js/jquery/ui/droppable.js | 496 + wp-includes/js/jquery/ui/droppable.min.js | 6 +- wp-includes/js/jquery/ui/effect-blind.js | 69 + wp-includes/js/jquery/ui/effect-blind.min.js | 6 +- wp-includes/js/jquery/ui/effect-bounce.js | 109 + wp-includes/js/jquery/ui/effect-bounce.min.js | 6 +- wp-includes/js/jquery/ui/effect-clip.js | 64 + wp-includes/js/jquery/ui/effect-clip.min.js | 6 +- wp-includes/js/jquery/ui/effect-drop.js | 68 + wp-includes/js/jquery/ui/effect-drop.min.js | 6 +- wp-includes/js/jquery/ui/effect-explode.js | 110 + .../js/jquery/ui/effect-explode.min.js | 6 +- wp-includes/js/jquery/ui/effect-fade.js | 46 + wp-includes/js/jquery/ui/effect-fade.min.js | 6 +- wp-includes/js/jquery/ui/effect-fold.js | 88 + wp-includes/js/jquery/ui/effect-fold.min.js | 6 +- wp-includes/js/jquery/ui/effect-highlight.js | 56 + .../js/jquery/ui/effect-highlight.min.js | 6 +- wp-includes/js/jquery/ui/effect-puff.js | 41 + wp-includes/js/jquery/ui/effect-puff.min.js | 6 +- wp-includes/js/jquery/ui/effect-pulsate.js | 63 + .../js/jquery/ui/effect-pulsate.min.js | 6 +- wp-includes/js/jquery/ui/effect-scale.js | 55 + wp-includes/js/jquery/ui/effect-scale.min.js | 6 +- wp-includes/js/jquery/ui/effect-shake.js | 73 + wp-includes/js/jquery/ui/effect-shake.min.js | 6 +- wp-includes/js/jquery/ui/effect-size.js | 190 + wp-includes/js/jquery/ui/effect-size.min.js | 6 +- wp-includes/js/jquery/ui/effect-slide.js | 75 + wp-includes/js/jquery/ui/effect-slide.min.js | 6 +- wp-includes/js/jquery/ui/effect-transfer.js | 39 + .../js/jquery/ui/effect-transfer.min.js | 6 +- wp-includes/js/jquery/ui/effect.js | 1639 + wp-includes/js/jquery/ui/effect.min.js | 8 +- wp-includes/js/jquery/ui/menu.js | 668 + wp-includes/js/jquery/ui/menu.min.js | 6 +- wp-includes/js/jquery/ui/mouse.js | 224 + wp-includes/js/jquery/ui/mouse.min.js | 6 +- wp-includes/js/jquery/ui/position.min.js | 11 - wp-includes/js/jquery/ui/progressbar.js | 177 + wp-includes/js/jquery/ui/progressbar.min.js | 6 +- wp-includes/js/jquery/ui/resizable.js | 1198 + wp-includes/js/jquery/ui/resizable.min.js | 6 +- wp-includes/js/jquery/ui/selectable.js | 309 + wp-includes/js/jquery/ui/selectable.min.js | 6 +- wp-includes/js/jquery/ui/selectmenu.js | 680 + wp-includes/js/jquery/ui/selectmenu.min.js | 6 +- wp-includes/js/jquery/ui/slider.js | 750 + wp-includes/js/jquery/ui/slider.min.js | 6 +- wp-includes/js/jquery/ui/sortable.js | 1550 + wp-includes/js/jquery/ui/sortable.min.js | 6 +- wp-includes/js/jquery/ui/spinner.js | 572 + wp-includes/js/jquery/ui/spinner.min.js | 6 +- wp-includes/js/jquery/ui/tabs.js | 919 + wp-includes/js/jquery/ui/tabs.min.js | 6 +- wp-includes/js/jquery/ui/tooltip.js | 516 + wp-includes/js/jquery/ui/tooltip.min.js | 6 +- wp-includes/js/jquery/ui/widget.min.js | 11 - wp-includes/js/media-grid.js | 15 +- wp-includes/js/media-grid.min.js | 2 +- wp-includes/js/media-models.js | 8 - wp-includes/js/media-models.min.js | 2 +- wp-includes/js/media-views.js | 13 +- wp-includes/js/media-views.min.js | 2 +- .../mediaelement/mediaelement-and-player.js | 625 +- .../mediaelement-and-player.min.js | 2 +- wp-includes/js/mediaelement/mediaelement.js | 414 +- .../js/mediaelement/mediaelement.min.js | 2 +- .../mediaelementplayer-legacy.min.css | 2 +- .../mediaelement/mediaelementplayer.min.css | 2 +- .../js/mediaelement/renderers/vimeo.js | 22 +- .../js/mediaelement/renderers/vimeo.min.js | 2 +- wp-includes/js/thickbox/thickbox.css | 2 +- wp-includes/js/tinymce/tinymce.min.js | 4 +- wp-includes/js/tinymce/wp-tinymce.js | 4 +- wp-includes/js/twemoji.js | 2 +- wp-includes/js/twemoji.min.js | 2 +- wp-includes/js/wp-api.js | 39 +- wp-includes/js/wp-api.min.js | 2 +- wp-includes/js/wp-embed-template.js | 13 +- wp-includes/js/wp-embed-template.min.js | 2 +- wp-includes/js/wp-emoji-release.min.js | 2 +- wp-includes/kses.php | 2 +- wp-includes/l10n.php | 8 +- wp-includes/link-template.php | 40 +- wp-includes/load.php | 94 +- wp-includes/media-template.php | 117 +- wp-includes/media.php | 366 +- wp-includes/meta.php | 10 +- wp-includes/ms-blogs.php | 2 +- wp-includes/ms-functions.php | 177 +- wp-includes/ms-load.php | 16 +- wp-includes/ms-network.php | 2 +- wp-includes/ms-site.php | 6 +- wp-includes/nav-menu.php | 21 +- wp-includes/option.php | 3 +- wp-includes/pluggable.php | 4 +- wp-includes/plugin.php | 45 +- wp-includes/pomo/entry.php | 18 +- wp-includes/pomo/mo.php | 2 +- wp-includes/pomo/plural-forms.php | 616 +- wp-includes/pomo/po.php | 10 +- wp-includes/pomo/streams.php | 10 +- wp-includes/pomo/translations.php | 10 +- wp-includes/post-formats.php | 8 +- wp-includes/post-template.php | 23 +- wp-includes/post-thumbnail-template.php | 34 +- wp-includes/post.php | 495 +- wp-includes/query.php | 42 +- wp-includes/registration-functions.php | 2 +- wp-includes/registration.php | 2 +- wp-includes/rest-api.php | 741 +- .../rest-api/class-wp-rest-request.php | 44 +- .../rest-api/class-wp-rest-response.php | 4 +- wp-includes/rest-api/class-wp-rest-server.php | 559 +- ...-rest-application-passwords-controller.php | 667 + .../class-wp-rest-attachments-controller.php | 17 +- .../class-wp-rest-autosaves-controller.php | 8 +- ...ass-wp-rest-block-directory-controller.php | 10 +- ...lass-wp-rest-block-renderer-controller.php | 6 +- .../class-wp-rest-block-types-controller.php | 12 +- .../class-wp-rest-comments-controller.php | 65 +- .../endpoints/class-wp-rest-controller.php | 73 +- .../class-wp-rest-post-types-controller.php | 2 +- .../class-wp-rest-posts-controller.php | 66 +- .../class-wp-rest-revisions-controller.php | 2 +- .../class-wp-rest-search-controller.php | 7 +- .../class-wp-rest-site-health-controller.php | 345 + .../class-wp-rest-terms-controller.php | 6 +- .../class-wp-rest-themes-controller.php | 2 +- .../class-wp-rest-users-controller.php | 12 +- .../fields/class-wp-rest-meta-fields.php | 25 +- ...ass-wp-rest-post-format-search-handler.php | 128 + .../search/class-wp-rest-search-handler.php | 8 +- .../class-wp-rest-term-search-handler.php | 154 + wp-includes/revision.php | 8 +- wp-includes/rewrite.php | 12 +- wp-includes/rss-functions.php | 4 + wp-includes/script-loader.php | 207 +- wp-includes/shortcodes.php | 4 +- .../sitemaps/class-wp-sitemaps-stylesheet.php | 6 + .../class-wp-sitemaps-taxonomies.php | 12 +- wp-includes/sodium_compat/autoload-php7.php | 31 + wp-includes/sodium_compat/autoload.php | 70 +- wp-includes/sodium_compat/composer.json | 2 +- wp-includes/sodium_compat/lib/php72compat.php | 12 + wp-includes/sodium_compat/src/Compat.php | 16 +- .../sodium_compat/src/Core/SipHash.php | 29 +- wp-includes/sodium_compat/src/Core/Util.php | 7 +- wp-includes/sodium_compat/src/File.php | 10 +- .../sodium_compat/src/PHP52/SplFixedArray.php | 2 + wp-includes/spl-autoload-compat.php | 2 +- wp-includes/taxonomy.php | 132 +- wp-includes/theme.php | 16 +- wp-includes/update.php | 11 +- wp-includes/user.php | 396 +- wp-includes/vars.php | 2 +- wp-includes/version.php | 6 +- wp-includes/widgets.php | 74 +- .../widgets/class-wp-widget-archives.php | 2 +- .../widgets/class-wp-widget-custom-html.php | 10 +- wp-includes/widgets/class-wp-widget-links.php | 10 +- .../widgets/class-wp-widget-media-image.php | 2 +- wp-includes/widgets/class-wp-widget-media.php | 8 +- .../widgets/class-wp-widget-tag-cloud.php | 17 + wp-includes/widgets/class-wp-widget-text.php | 8 +- wp-includes/wp-db.php | 49 +- wp-login.php | 48 +- wp-settings.php | 11 + wp-signup.php | 16 +- wp-trackback.php | 4 +- 921 files changed, 145310 insertions(+), 60291 deletions(-) create mode 100644 wp-admin/authorize-application.php create mode 100644 wp-admin/images/freedoms.png create mode 100644 wp-admin/images/privacy.png create mode 100644 wp-admin/includes/class-wp-application-passwords-list-table.php create mode 100644 wp-admin/js/application-passwords.js create mode 100644 wp-admin/js/application-passwords.min.js create mode 100644 wp-admin/js/auth-app.js create mode 100644 wp-admin/js/auth-app.min.js create mode 100644 wp-content/themes/twentytwentyone/.stylelintignore create mode 100644 wp-content/themes/twentytwentyone/.stylelintrc-css.json create mode 100644 wp-content/themes/twentytwentyone/.stylelintrc.json create mode 100644 wp-content/themes/twentytwentyone/404.php create mode 100644 wp-content/themes/twentytwentyone/archive.php create mode 100644 wp-content/themes/twentytwentyone/assets/css/custom-color-overrides.css create mode 100644 wp-content/themes/twentytwentyone/assets/css/ie-editor.css create mode 100644 wp-content/themes/twentytwentyone/assets/css/ie.css create mode 100644 wp-content/themes/twentytwentyone/assets/css/print.css create mode 100644 wp-content/themes/twentytwentyone/assets/css/style-dark-mode-rtl.css create mode 100644 wp-content/themes/twentytwentyone/assets/css/style-dark-mode.css create mode 100644 wp-content/themes/twentytwentyone/assets/css/style-editor-customizer.css create mode 100644 wp-content/themes/twentytwentyone/assets/css/style-editor.css create mode 100644 wp-content/themes/twentytwentyone/assets/images/Daffodils.jpg create mode 100644 wp-content/themes/twentytwentyone/assets/images/Reading.jpg create mode 100644 wp-content/themes/twentytwentyone/assets/images/in-the-bois-de-boulogne.jpg create mode 100644 wp-content/themes/twentytwentyone/assets/images/playing-in-the-sand.jpg create mode 100644 wp-content/themes/twentytwentyone/assets/images/roses-tremieres-hollyhocks-1884.jpg create mode 100644 wp-content/themes/twentytwentyone/assets/images/self-portrait-1885.jpg create mode 100644 wp-content/themes/twentytwentyone/assets/images/the-garden-at-bougival-1884.jpg create mode 100644 wp-content/themes/twentytwentyone/assets/images/villa-with-orange-trees-nice.jpg create mode 100644 wp-content/themes/twentytwentyone/assets/images/young-woman-in-mauve.jpg create mode 100644 wp-content/themes/twentytwentyone/assets/js/customize-helpers.js create mode 100644 wp-content/themes/twentytwentyone/assets/js/customize-preview.js create mode 100644 wp-content/themes/twentytwentyone/assets/js/customize.js create mode 100644 wp-content/themes/twentytwentyone/assets/js/dark-mode-toggler.js create mode 100644 wp-content/themes/twentytwentyone/assets/js/editor-dark-mode-support.js create mode 100644 wp-content/themes/twentytwentyone/assets/js/editor.js create mode 100644 wp-content/themes/twentytwentyone/assets/js/palette-colorpicker.js create mode 100644 wp-content/themes/twentytwentyone/assets/js/polyfills.js create mode 100644 wp-content/themes/twentytwentyone/assets/js/primary-navigation.js create mode 100644 wp-content/themes/twentytwentyone/assets/js/responsive-embeds.js create mode 100644 wp-content/themes/twentytwentyone/assets/js/skip-link-focus-fix.js create mode 100644 wp-content/themes/twentytwentyone/assets/sass/01-settings/file-header.scss create mode 100644 wp-content/themes/twentytwentyone/assets/sass/01-settings/fonts.scss create mode 100644 wp-content/themes/twentytwentyone/assets/sass/01-settings/global.scss create mode 100644 wp-content/themes/twentytwentyone/assets/sass/02-tools/functions.scss create mode 100644 wp-content/themes/twentytwentyone/assets/sass/02-tools/mixins.scss create mode 100644 wp-content/themes/twentytwentyone/assets/sass/03-generic/breakpoints.scss create mode 100644 wp-content/themes/twentytwentyone/assets/sass/03-generic/clearings.scss create mode 100644 wp-content/themes/twentytwentyone/assets/sass/03-generic/normalize.scss create mode 100644 wp-content/themes/twentytwentyone/assets/sass/03-generic/reset.scss create mode 100644 wp-content/themes/twentytwentyone/assets/sass/03-generic/vertical-margins.scss create mode 100644 wp-content/themes/twentytwentyone/assets/sass/04-elements/blockquote.scss create mode 100644 wp-content/themes/twentytwentyone/assets/sass/04-elements/forms-editor.scss create mode 100644 wp-content/themes/twentytwentyone/assets/sass/04-elements/forms.scss create mode 100644 wp-content/themes/twentytwentyone/assets/sass/04-elements/links.scss create mode 100644 wp-content/themes/twentytwentyone/assets/sass/04-elements/media.scss create mode 100644 wp-content/themes/twentytwentyone/assets/sass/04-elements/misc.scss create mode 100644 wp-content/themes/twentytwentyone/assets/sass/05-blocks/_config.scss create mode 100644 wp-content/themes/twentytwentyone/assets/sass/05-blocks/audio/_style.scss create mode 100644 wp-content/themes/twentytwentyone/assets/sass/05-blocks/blocks-editor.scss create mode 100644 wp-content/themes/twentytwentyone/assets/sass/05-blocks/blocks.scss create mode 100644 wp-content/themes/twentytwentyone/assets/sass/05-blocks/button/_editor.scss create mode 100644 wp-content/themes/twentytwentyone/assets/sass/05-blocks/button/_style.scss create mode 100644 wp-content/themes/twentytwentyone/assets/sass/05-blocks/code/_editor.scss create mode 100644 wp-content/themes/twentytwentyone/assets/sass/05-blocks/code/_style.scss create mode 100644 wp-content/themes/twentytwentyone/assets/sass/05-blocks/columns/_editor.scss create mode 100644 wp-content/themes/twentytwentyone/assets/sass/05-blocks/columns/_style.scss create mode 100644 wp-content/themes/twentytwentyone/assets/sass/05-blocks/cover/_editor.scss create mode 100644 wp-content/themes/twentytwentyone/assets/sass/05-blocks/cover/_style.scss create mode 100644 wp-content/themes/twentytwentyone/assets/sass/05-blocks/file/_editor.scss create mode 100644 wp-content/themes/twentytwentyone/assets/sass/05-blocks/file/_style.scss create mode 100644 wp-content/themes/twentytwentyone/assets/sass/05-blocks/gallery/_editor.scss create mode 100644 wp-content/themes/twentytwentyone/assets/sass/05-blocks/gallery/_style.scss create mode 100644 wp-content/themes/twentytwentyone/assets/sass/05-blocks/group/_editor.scss create mode 100644 wp-content/themes/twentytwentyone/assets/sass/05-blocks/group/_style.scss create mode 100644 wp-content/themes/twentytwentyone/assets/sass/05-blocks/heading/_editor.scss create mode 100644 wp-content/themes/twentytwentyone/assets/sass/05-blocks/heading/_style.scss create mode 100644 wp-content/themes/twentytwentyone/assets/sass/05-blocks/html/_editor.scss create mode 100644 wp-content/themes/twentytwentyone/assets/sass/05-blocks/image/_editor.scss create mode 100644 wp-content/themes/twentytwentyone/assets/sass/05-blocks/image/_style.scss create mode 100644 wp-content/themes/twentytwentyone/assets/sass/05-blocks/latest-comments/_editor.scss create mode 100644 wp-content/themes/twentytwentyone/assets/sass/05-blocks/latest-comments/_style.scss create mode 100644 wp-content/themes/twentytwentyone/assets/sass/05-blocks/latest-posts/_editor.scss create mode 100644 wp-content/themes/twentytwentyone/assets/sass/05-blocks/latest-posts/_style.scss create mode 100644 wp-content/themes/twentytwentyone/assets/sass/05-blocks/legacy/_editor.scss create mode 100644 wp-content/themes/twentytwentyone/assets/sass/05-blocks/legacy/_style.scss create mode 100644 wp-content/themes/twentytwentyone/assets/sass/05-blocks/list/_editor.scss create mode 100644 wp-content/themes/twentytwentyone/assets/sass/05-blocks/list/_style.scss create mode 100644 wp-content/themes/twentytwentyone/assets/sass/05-blocks/media-text/_editor.scss create mode 100644 wp-content/themes/twentytwentyone/assets/sass/05-blocks/media-text/_style.scss create mode 100644 wp-content/themes/twentytwentyone/assets/sass/05-blocks/navigation/_editor.scss create mode 100644 wp-content/themes/twentytwentyone/assets/sass/05-blocks/navigation/_style.scss create mode 100644 wp-content/themes/twentytwentyone/assets/sass/05-blocks/paragraph/_editor.scss create mode 100644 wp-content/themes/twentytwentyone/assets/sass/05-blocks/paragraph/_style.scss create mode 100644 wp-content/themes/twentytwentyone/assets/sass/05-blocks/preformatted/_editor.scss create mode 100644 wp-content/themes/twentytwentyone/assets/sass/05-blocks/preformatted/_style.scss create mode 100644 wp-content/themes/twentytwentyone/assets/sass/05-blocks/pullquote/_editor.scss create mode 100644 wp-content/themes/twentytwentyone/assets/sass/05-blocks/pullquote/_style.scss create mode 100644 wp-content/themes/twentytwentyone/assets/sass/05-blocks/quote/_editor.scss create mode 100644 wp-content/themes/twentytwentyone/assets/sass/05-blocks/quote/_style.scss create mode 100644 wp-content/themes/twentytwentyone/assets/sass/05-blocks/rss/_editor.scss create mode 100644 wp-content/themes/twentytwentyone/assets/sass/05-blocks/rss/_style.scss create mode 100644 wp-content/themes/twentytwentyone/assets/sass/05-blocks/search/_editor.scss create mode 100644 wp-content/themes/twentytwentyone/assets/sass/05-blocks/search/_style.scss create mode 100644 wp-content/themes/twentytwentyone/assets/sass/05-blocks/separator/_editor.scss create mode 100644 wp-content/themes/twentytwentyone/assets/sass/05-blocks/separator/_style.scss create mode 100644 wp-content/themes/twentytwentyone/assets/sass/05-blocks/social-icons/_editor.scss create mode 100644 wp-content/themes/twentytwentyone/assets/sass/05-blocks/social-icons/_style.scss create mode 100644 wp-content/themes/twentytwentyone/assets/sass/05-blocks/spacer/_style.scss create mode 100644 wp-content/themes/twentytwentyone/assets/sass/05-blocks/table/_editor.scss create mode 100644 wp-content/themes/twentytwentyone/assets/sass/05-blocks/table/_style.scss create mode 100644 wp-content/themes/twentytwentyone/assets/sass/05-blocks/tag-clould/_editor.scss create mode 100644 wp-content/themes/twentytwentyone/assets/sass/05-blocks/tag-clould/_style.scss create mode 100644 wp-content/themes/twentytwentyone/assets/sass/05-blocks/utilities/_editor.scss create mode 100644 wp-content/themes/twentytwentyone/assets/sass/05-blocks/utilities/_font-sizes.scss create mode 100644 wp-content/themes/twentytwentyone/assets/sass/05-blocks/utilities/_style.scss create mode 100644 wp-content/themes/twentytwentyone/assets/sass/05-blocks/verse/_editor.scss create mode 100644 wp-content/themes/twentytwentyone/assets/sass/05-blocks/verse/_style.scss create mode 100644 wp-content/themes/twentytwentyone/assets/sass/05-blocks/video/_style.scss create mode 100644 wp-content/themes/twentytwentyone/assets/sass/06-components/404.scss create mode 100644 wp-content/themes/twentytwentyone/assets/sass/06-components/archives.scss create mode 100644 wp-content/themes/twentytwentyone/assets/sass/06-components/comments.scss create mode 100644 wp-content/themes/twentytwentyone/assets/sass/06-components/editor.scss create mode 100644 wp-content/themes/twentytwentyone/assets/sass/06-components/entry.scss create mode 100644 wp-content/themes/twentytwentyone/assets/sass/06-components/footer-navigation.scss create mode 100644 wp-content/themes/twentytwentyone/assets/sass/06-components/footer.scss create mode 100644 wp-content/themes/twentytwentyone/assets/sass/06-components/header.scss create mode 100644 wp-content/themes/twentytwentyone/assets/sass/06-components/navigation.scss create mode 100644 wp-content/themes/twentytwentyone/assets/sass/06-components/pagination.scss create mode 100644 wp-content/themes/twentytwentyone/assets/sass/06-components/posts-and-pages.scss create mode 100644 wp-content/themes/twentytwentyone/assets/sass/06-components/search.scss create mode 100644 wp-content/themes/twentytwentyone/assets/sass/06-components/single.scss create mode 100644 wp-content/themes/twentytwentyone/assets/sass/06-components/widgets.scss create mode 100644 wp-content/themes/twentytwentyone/assets/sass/07-utilities/a11y.scss create mode 100644 wp-content/themes/twentytwentyone/assets/sass/07-utilities/color-palette.scss create mode 100644 wp-content/themes/twentytwentyone/assets/sass/07-utilities/ie.scss create mode 100644 wp-content/themes/twentytwentyone/assets/sass/07-utilities/measure.scss create mode 100644 wp-content/themes/twentytwentyone/assets/sass/07-utilities/print.scss create mode 100644 wp-content/themes/twentytwentyone/assets/sass/style-dark-mode.scss create mode 100644 wp-content/themes/twentytwentyone/assets/sass/style-editor.scss create mode 100644 wp-content/themes/twentytwentyone/assets/sass/style.scss create mode 100644 wp-content/themes/twentytwentyone/classes/class-twenty-twenty-one-custom-colors.php create mode 100644 wp-content/themes/twentytwentyone/classes/class-twenty-twenty-one-customize-color-control.php create mode 100644 wp-content/themes/twentytwentyone/classes/class-twenty-twenty-one-customize-notice-control.php create mode 100644 wp-content/themes/twentytwentyone/classes/class-twenty-twenty-one-customize.php create mode 100644 wp-content/themes/twentytwentyone/classes/class-twenty-twenty-one-dark-mode.php create mode 100644 wp-content/themes/twentytwentyone/classes/class-twenty-twenty-one-svg-icons.php create mode 100644 wp-content/themes/twentytwentyone/comments.php create mode 100644 wp-content/themes/twentytwentyone/footer.php create mode 100644 wp-content/themes/twentytwentyone/functions.php create mode 100644 wp-content/themes/twentytwentyone/header.php create mode 100644 wp-content/themes/twentytwentyone/image.php create mode 100644 wp-content/themes/twentytwentyone/inc/back-compat.php create mode 100644 wp-content/themes/twentytwentyone/inc/block-patterns.php create mode 100644 wp-content/themes/twentytwentyone/inc/block-styles.php create mode 100644 wp-content/themes/twentytwentyone/inc/custom-css.php create mode 100644 wp-content/themes/twentytwentyone/inc/menu-functions.php create mode 100644 wp-content/themes/twentytwentyone/inc/starter-content.php create mode 100644 wp-content/themes/twentytwentyone/inc/template-functions.php create mode 100644 wp-content/themes/twentytwentyone/inc/template-tags.php create mode 100644 wp-content/themes/twentytwentyone/index.php create mode 100644 wp-content/themes/twentytwentyone/package-lock.json create mode 100644 wp-content/themes/twentytwentyone/package.json create mode 100644 wp-content/themes/twentytwentyone/page.php create mode 100644 wp-content/themes/twentytwentyone/readme.txt create mode 100644 wp-content/themes/twentytwentyone/screenshot.png create mode 100644 wp-content/themes/twentytwentyone/search.php create mode 100644 wp-content/themes/twentytwentyone/searchform.php create mode 100644 wp-content/themes/twentytwentyone/single.php create mode 100644 wp-content/themes/twentytwentyone/style-rtl.css create mode 100644 wp-content/themes/twentytwentyone/style.css create mode 100644 wp-content/themes/twentytwentyone/template-parts/content/content-excerpt.php create mode 100644 wp-content/themes/twentytwentyone/template-parts/content/content-none.php create mode 100644 wp-content/themes/twentytwentyone/template-parts/content/content-page.php create mode 100644 wp-content/themes/twentytwentyone/template-parts/content/content-single.php create mode 100644 wp-content/themes/twentytwentyone/template-parts/content/content.php create mode 100644 wp-content/themes/twentytwentyone/template-parts/excerpt/excerpt-aside.php create mode 100644 wp-content/themes/twentytwentyone/template-parts/excerpt/excerpt-audio.php create mode 100644 wp-content/themes/twentytwentyone/template-parts/excerpt/excerpt-chat.php create mode 100644 wp-content/themes/twentytwentyone/template-parts/excerpt/excerpt-gallery.php create mode 100644 wp-content/themes/twentytwentyone/template-parts/excerpt/excerpt-image.php create mode 100644 wp-content/themes/twentytwentyone/template-parts/excerpt/excerpt-link.php create mode 100644 wp-content/themes/twentytwentyone/template-parts/excerpt/excerpt-quote.php create mode 100644 wp-content/themes/twentytwentyone/template-parts/excerpt/excerpt-status.php create mode 100644 wp-content/themes/twentytwentyone/template-parts/excerpt/excerpt-video.php create mode 100644 wp-content/themes/twentytwentyone/template-parts/excerpt/excerpt.php create mode 100644 wp-content/themes/twentytwentyone/template-parts/footer/footer-widgets.php create mode 100644 wp-content/themes/twentytwentyone/template-parts/header/entry-header.php create mode 100644 wp-content/themes/twentytwentyone/template-parts/header/excerpt-header.php create mode 100644 wp-content/themes/twentytwentyone/template-parts/header/site-branding.php create mode 100644 wp-content/themes/twentytwentyone/template-parts/header/site-header.php create mode 100644 wp-content/themes/twentytwentyone/template-parts/header/site-nav.php create mode 100644 wp-content/themes/twentytwentyone/template-parts/post/author-bio.php create mode 100644 wp-includes/block-supports/align.php create mode 100644 wp-includes/block-supports/colors.php create mode 100644 wp-includes/block-supports/custom-classname.php create mode 100644 wp-includes/block-supports/generated-classname.php create mode 100644 wp-includes/block-supports/typography.php create mode 100644 wp-includes/blocks/embed/block.json create mode 100644 wp-includes/class-wp-application-passwords.php create mode 100644 wp-includes/class-wp-block-supports.php create mode 100644 wp-includes/js/dist/reusable-blocks.js create mode 100644 wp-includes/js/dist/reusable-blocks.min.js create mode 100644 wp-includes/js/jquery/jquery.min.js create mode 100644 wp-includes/js/jquery/ui/accordion.js create mode 100644 wp-includes/js/jquery/ui/autocomplete.js create mode 100644 wp-includes/js/jquery/ui/button.js create mode 100644 wp-includes/js/jquery/ui/checkboxradio.js create mode 100644 wp-includes/js/jquery/ui/checkboxradio.min.js create mode 100644 wp-includes/js/jquery/ui/controlgroup.js create mode 100644 wp-includes/js/jquery/ui/controlgroup.min.js create mode 100644 wp-includes/js/jquery/ui/core.js create mode 100644 wp-includes/js/jquery/ui/datepicker.js create mode 100644 wp-includes/js/jquery/ui/dialog.js create mode 100644 wp-includes/js/jquery/ui/draggable.js create mode 100644 wp-includes/js/jquery/ui/droppable.js create mode 100644 wp-includes/js/jquery/ui/effect-blind.js create mode 100644 wp-includes/js/jquery/ui/effect-bounce.js create mode 100644 wp-includes/js/jquery/ui/effect-clip.js create mode 100644 wp-includes/js/jquery/ui/effect-drop.js create mode 100644 wp-includes/js/jquery/ui/effect-explode.js create mode 100644 wp-includes/js/jquery/ui/effect-fade.js create mode 100644 wp-includes/js/jquery/ui/effect-fold.js create mode 100644 wp-includes/js/jquery/ui/effect-highlight.js create mode 100644 wp-includes/js/jquery/ui/effect-puff.js create mode 100644 wp-includes/js/jquery/ui/effect-pulsate.js create mode 100644 wp-includes/js/jquery/ui/effect-scale.js create mode 100644 wp-includes/js/jquery/ui/effect-shake.js create mode 100644 wp-includes/js/jquery/ui/effect-size.js create mode 100644 wp-includes/js/jquery/ui/effect-slide.js create mode 100644 wp-includes/js/jquery/ui/effect-transfer.js create mode 100644 wp-includes/js/jquery/ui/effect.js create mode 100644 wp-includes/js/jquery/ui/menu.js create mode 100644 wp-includes/js/jquery/ui/mouse.js delete mode 100644 wp-includes/js/jquery/ui/position.min.js create mode 100644 wp-includes/js/jquery/ui/progressbar.js create mode 100644 wp-includes/js/jquery/ui/resizable.js create mode 100644 wp-includes/js/jquery/ui/selectable.js create mode 100644 wp-includes/js/jquery/ui/selectmenu.js create mode 100644 wp-includes/js/jquery/ui/slider.js create mode 100644 wp-includes/js/jquery/ui/sortable.js create mode 100644 wp-includes/js/jquery/ui/spinner.js create mode 100644 wp-includes/js/jquery/ui/tabs.js create mode 100644 wp-includes/js/jquery/ui/tooltip.js delete mode 100644 wp-includes/js/jquery/ui/widget.min.js create mode 100644 wp-includes/rest-api/endpoints/class-wp-rest-application-passwords-controller.php create mode 100644 wp-includes/rest-api/endpoints/class-wp-rest-site-health-controller.php create mode 100644 wp-includes/rest-api/search/class-wp-rest-post-format-search-handler.php create mode 100644 wp-includes/rest-api/search/class-wp-rest-term-search-handler.php create mode 100644 wp-includes/sodium_compat/autoload-php7.php diff --git a/wp-admin/about.php b/wp-admin/about.php index 68fa12422f..13269ad58f 100644 --- a/wp-admin/about.php +++ b/wp-admin/about.php @@ -19,15 +19,27 @@
-
- +
+ + ' ); ?>" /> + <?php _e( 'Code is Poetry' ); ?>' ); ?>" /> +
-
-

- - -

+
+
+

+ + +

+
+ +
+ +
+
+ <?php _e( 'New' ); ?>' ); ?>" /> +
-
-

+
+

-
- -
-
-

-

- Version %1$s addressed %2$s bug.', - 'Version %1$s addressed %2$s bugs.', - 1 - ), - '5.5.3', - number_format_i18n( 1 ) - ); - ?> - the release notes.' ), - sprintf( - /* translators: %s: WordPress version. */ - esc_url( __( 'https://wordpress.org/support/wordpress-version/version-%s/' ) ), - sanitize_title( '5.5.3' ) - ) - ); - ?> -

-

- Version %1$s addressed some security issues and fixed %2$s bug.', - 'Version %1$s addressed some security issues and fixed %2$s bugs.', - 14 - ), - '5.5.2', - number_format_i18n( 14 ) - ); - ?> - the release notes.' ), - sprintf( - /* translators: %s: WordPress version */ - esc_url( __( 'https://wordpress.org/support/wordpress-version/version-%s/' ) ), - sanitize_title( '5.5.2' ) - ) - ); - ?> -

-

- Version %1$s addressed %2$s bug.', - 'Version %1$s addressed %2$s bugs.', - 44 - ), - '5.5.1', - number_format_i18n( 44 ) - ); - ?> - the release notes.' ), - sprintf( - /* translators: %s: WordPress version. */ - esc_url( __( 'https://wordpress.org/support/wordpress-version/version-%s/' ) ), - sanitize_title( '5.5.1' ) - ) - ); - ?> -

+
' ); ?>');"> +
+
+

+

+
+
+
+
+
+

+

+
+
+
+
+

+

+
-
+
-
-

-

-

-

-

-
+

+

+ +

-
-
-

-

-

-

-

+
+ +
+
+

-
-
-

-

-

-

-

-

+
+
+

+ WordPress accessibility-ready guidelines and addresses several more specialized standards from the Web Content Accessibility Guidelines (WCAG) 2.1 at level AAA. It will help you meet the highest level of international accessibility standards when you create accessible content and choose plugins which are accessible too!' ), + 'https://make.wordpress.org/themes/handbook/review/accessibility/', + 'https://www.w3.org/WAI/WCAG2AAA-Conformance' + ); + ?> +

-
-
- -
-
+
+ ' ); ?>" style="max-width:25em" alt="" />

-
+
+
+

+
-

-

+

+

-
-
-
- -
-
-
-
- -
-
-
-
-

-

-

-

-

- -

-

-

-

+
+
+

+
-
-
-

-

-

-

+
+
+

+
+
+ +
+
+

+

+
+
+

+

+ feature plugin includes template copy for you to update and publish, and it’s written to support different contexts and jurisdictions.' ), + 'https://github.com/10degrees/accessibility-statement-plugin' + ); + ?> +

+
+
+

+


-
-
-

-

-
+
+

-

-

+

+

-

-

+

+

+ read the PHP 8 developer note.' ), + 'https://make.wordpress.org/core/2020/11/23/wordpress-and-php-8-0/' + ); + ?> +

- -
+
-

+

wp_get_environment_type()' + /* translators: %s: jQuery update test plugin link. */ + __( 'Updates to jQuery in WordPress take place across three releases: 5.5, 5.6, and 5.7. As we reach the mid-point of this process, run the update test plugin to check your sites for errors ahead of time.' ), + current_user_can( 'install_plugins' ) ? + esc_url( network_admin_url( 'plugin-install.php?tab=search&type=term&s=slug:wp-jquery-update-test' ) ) : + esc_url( __( 'https://wordpress.org/plugins/wp-jquery-update-test/' ) ) ); ?>

-
-
-

get_header()', - 'get_template_part()', - '$args' + /* translators: %s: jQuery Migrate plugin link. */ + __( 'If you find issues with the way your site looks (e.g. a slider doesn’t work, a button is stuck — that sort of thing), install the jQuery Migrate plugin.' ), + current_user_can( 'install_plugins' ) ? + esc_url( network_admin_url( 'plugin-install.php?tab=search&type=term&s=slug:enable-jquery-migrate-helper' ) ) : + esc_url( __( 'https://wordpress.org/plugins/enable-jquery-migrate-helper/' ) ) ); ?>

-
-
-

-
    -
  • -
  • - redirect_guess_404_permalink()' - ); - ?> -
  • -
  • - wp_opcache_invalidate()' - ); - ?> -
  • -
  • -
  • - register_taxonomy()' - ); - ?> -
  • -
  • - register_meta()' - ); - ?> -
  • -
  • -
-
-
-
@@ -339,9 +239,9 @@

WordPress 5.5 Field Guide.' ), - 'https://make.wordpress.org/core/wordpress-5-5-field-guide/' + /* translators: %s: WordPress 5.6 Field Guide link. */ + __( 'Check out the latest version of the WordPress Field Guide. It highlights developer notes for each change you may want to be aware of. WordPress 5.6 Field Guide.' ), + 'https://make.wordpress.org/core/2020/11/20/wordpress-5-6-field-guide/' ); ?>

@@ -353,7 +253,7 @@
- + | diff --git a/wp-admin/admin-ajax.php b/wp-admin/admin-ajax.php index 28caf3d227..144facf7fe 100644 --- a/wp-admin/admin-ajax.php +++ b/wp-admin/admin-ajax.php @@ -143,7 +143,15 @@ ); // Deprecated. -$core_actions_post_deprecated = array( 'wp-fullscreen-save-post', 'press-this-save-post', 'press-this-add-category' ); +$core_actions_post_deprecated = array( + 'wp-fullscreen-save-post', + 'press-this-save-post', + 'press-this-add-category', + 'health-check-dotorg-communication', + 'health-check-is-in-debug-mode', + 'health-check-background-updates', + 'health-check-loopback-requests', +); $core_actions_post = array_merge( $core_actions_post, $core_actions_post_deprecated ); // Register core Ajax calls. diff --git a/wp-admin/admin-header.php b/wp-admin/admin-header.php index 4b5b67efb3..cd068f1f9b 100644 --- a/wp-admin/admin-header.php +++ b/wp-admin/admin-header.php @@ -170,7 +170,7 @@ $admin_body_class .= ' taxonomy-' . $current_screen->taxonomy; } -$admin_body_class .= ' branch-' . str_replace( array( '.', ',' ), '-', floatval( get_bloginfo( 'version' ) ) ); +$admin_body_class .= ' branch-' . str_replace( array( '.', ',' ), '-', (float) 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_user_locale() ) ) ); diff --git a/wp-admin/async-upload.php b/wp-admin/async-upload.php index 39f28a6237..d1c9b6e1b2 100644 --- a/wp-admin/async-upload.php +++ b/wp-admin/async-upload.php @@ -39,8 +39,8 @@ } // Just fetch the detail form for that attachment. -if ( isset( $_REQUEST['attachment_id'] ) && intval( $_REQUEST['attachment_id'] ) && $_REQUEST['fetch'] ) { - $id = intval( $_REQUEST['attachment_id'] ); +if ( isset( $_REQUEST['attachment_id'] ) && (int) $_REQUEST['attachment_id'] && $_REQUEST['fetch'] ) { + $id = (int) $_REQUEST['attachment_id']; $post = get_post( $id ); if ( 'attachment' !== $post->post_type ) { wp_die( __( 'Invalid post type.' ) ); diff --git a/wp-admin/authorize-application.php b/wp-admin/authorize-application.php new file mode 100644 index 0000000000..fa8d919747 --- /dev/null +++ b/wp-admin/authorize-application.php @@ -0,0 +1,308 @@ + $app_name, + 'app_id' => $app_id, + ) + ); + + if ( is_wp_error( $created ) ) { + $error = $created; + } else { + list( $new_password ) = $created; + + if ( $success_url ) { + $redirect = add_query_arg( + array( + 'site_url' => urlencode( site_url() ), + 'user_login' => urlencode( wp_get_current_user()->user_login ), + 'password' => urlencode( $new_password ), + ), + $success_url + ); + } + } + } + + if ( $redirect ) { + // Explicitly not using wp_safe_redirect b/c sends to arbitrary domain. + wp_redirect( $redirect ); + exit; + } +} + +$title = __( 'Authorize Application' ); + +$app_name = ! empty( $_REQUEST['app_name'] ) ? $_REQUEST['app_name'] : ''; +$app_id = ! empty( $_REQUEST['app_id'] ) ? $_REQUEST['app_id'] : ''; +$success_url = ! empty( $_REQUEST['success_url'] ) ? $_REQUEST['success_url'] : null; + +if ( ! empty( $_REQUEST['reject_url'] ) ) { + $reject_url = $_REQUEST['reject_url']; +} elseif ( $success_url ) { + $reject_url = add_query_arg( 'success', 'false', $success_url ); +} else { + $reject_url = null; +} + +$user = wp_get_current_user(); + +$request = compact( 'app_name', 'app_id', 'success_url', 'reject_url' ); +$is_valid = wp_is_authorize_application_password_request_valid( $request, $user ); + +if ( is_wp_error( $is_valid ) ) { + wp_die( + __( 'The Authorize Application request is not allowed.' ) . ' ' . implode( ' ', $is_valid->get_error_messages() ), + __( 'Cannot Authorize Application' ) + ); +} + +if ( ! empty( $_SERVER['PHP_AUTH_USER'] ) || ! empty( $_SERVER['PHP_AUTH_PW'] ) ) { + wp_die( + __( 'Your website appears to use Basic Authentication, which is not currently compatible with Application Passwords.' ), + __( 'Cannot Authorize Application' ), + array( + 'response' => 501, + 'link_text' => __( 'Go Back' ), + 'link_url' => $reject_url ? add_query_arg( 'error', 'disabled', $reject_url ) : admin_url(), + ) + ); +} + +if ( ! wp_is_application_passwords_available_for_user( $user ) ) { + if ( wp_is_application_passwords_available() ) { + $message = __( 'Application passwords are not available for your account. Please contact the site administrator for assistance.' ); + } else { + $message = __( 'Application passwords are not available.' ); + } + + wp_die( + $message, + __( 'Cannot Authorize Application' ), + array( + 'response' => 501, + 'link_text' => __( 'Go Back' ), + 'link_url' => $reject_url ? add_query_arg( 'error', 'disabled', $reject_url ) : admin_url(), + ) + ); +} + +wp_enqueue_script( 'auth-app' ); +wp_localize_script( + 'auth-app', + 'authApp', + array( + 'site_url' => site_url(), + 'user_login' => $user->user_login, + 'success' => $success_url, + 'reject' => $reject_url ? $reject_url : admin_url(), + ) +); + +require_once ABSPATH . 'wp-admin/admin-header.php'; + +?> +
+

+ + +

get_error_message(); ?>

+ + +
+

+ +

+ ' . esc_html( $app_name ) . '' + ); + ?> +

+ +

+ + + ID, true ); + $blogs_count = count( $blogs ); + if ( $blogs_count > 1 ) { + ?> +

+ the %2$s blog in this installation that you have permissions on.', + 'This will grant access to all %2$s blogs in this installation that you have permissions on.', + $blogs_count + ), + admin_url( 'my-sites.php' ), + number_format_i18n( $blogs_count ) + ); + ?> +

+ + + +
+

+ + +

+

+
+ + + +
+ + + + + + +
+ + +
+ + + + 'description-approve', + ) + ); + ?> +

+ ' . esc_html( + add_query_arg( + array( + 'site_url' => site_url(), + 'user_login' => $user->user_login, + 'password' => '[------]', + ), + $success_url + ) + ) . '' + ); + } else { + _e( 'You will be given a password to manually enter into the application in question.' ); + } + ?> +

+ + 'description-reject', + ) + ); + ?> +

+ ' . esc_html( $reject_url ) . '' + ); + } else { + _e( 'You will be returned to the WordPress Dashboard, and no changes will be made.' ); + } + ?> +

+
+ +
+
+comment_post_ID ) ) { diff --git a/wp-admin/credits.php b/wp-admin/credits.php index 4605538d70..24985c16fb 100644 --- a/wp-admin/credits.php +++ b/wp-admin/credits.php @@ -21,15 +21,27 @@
-
- +
+ + ' ); ?>" /> + <?php _e( 'Code is Poetry' ); ?>' ); ?>" /> +
-
-

- - -

+
+
+

+ + +

+
+ +
+ +
+
+ <?php _e( 'New' ); ?>' ); ?>" /> +
-
- +
+ + ' ); ?>" /> + <?php _e( 'Code is Poetry' ); ?>' ); ?>" /> +
-
-

- - -

+
+
+

+ + +

+
+ +
+ +
+
+ <?php _e( 'New' ); ?>' ); ?>" /> +
-
- -
+

HvEoqNoxy!@Z;KUoDDLi*V#P~=;zbG+ z|9GBz-@CrG?w^~LljI~j`|Oi#$xgJosyr?hB^Cexz*SU`)dT=gp#T6*Fc|f@2lY1N z-E#?0SJ8eg@2sL95vvs%@ujnx-x1-Hk`$km*H{wrrMF>fYpbb#c71Q7`}f7ai{0MI zwZhh~|E_NCudfex&!5f@ey*K7Jv}W^=I@v~Rt2^xf`Te0PSjEil`rk#~cwc7EclX9w zb(N6D_2c%P^MRx5(bLw-hWwetHcD<{00=Sf`B2yHS!Z=z6*QgPUw#YNQEjKcud+1Ng19O2~zAJV8k zB)`>lW{Ze*&yGsU$e3-g&MEhN+P1uyuzFgu`Q2qvUiDV$V?a=Y<eQ!c zL$cU5Xx1Qe@pMau`K#&$-lk2SmL0x^m9~q0*t|jHRjafAcNNy>WwsUj)jB z^=f^rx*Y5W++6yd%)Y*VTCrno`!ks7HFvV$(-BrMTdG>14)rIL$&lBrFdAOzZdh&M ziI8Fo;u1)*7+#sFS{RHUOtTpAveP&7Y-mi0P+Cl5IgQ0A^OK6{={QZti+yh#o~J*Q zFEeB(c~wY!Qm_0qHLALe!Cn;o)ie5X3^ble>=}6 zJ1r0x^w#MKx9Ow;Y@~b`)@7S=;vO?%{nsMy3Tr|rJ?ZRQUtp1kGPUj9kf#O>1=7XYz^2eVUA%oE=6WQj?4kM?tqX!ei*UQ6u zV~Dthihyzll(}^q1v{mg9*w z00N^+0RR+$yQZoZfS3s^s_1Ltg{ZVk%Nt2Qc&6^*`T0NT@%HIyoRm|ZN$}~3S>yTT zIXyltCwHdnm^g_%{@(mQkpCU{U&Z6&W9;KI*nd%d`7rzchxxzS&tT8_f2ZU7|2F>H z@p$(?z5lEJ-*o*C@Z*2Ka6kCiYxeYr=y}>GdmB`vOqNewr8@TrS-<=2!Vz8 zOyY7@Gc|Lq*!2u6iT!A{UAga?a_lJ=7Uw?jG;{^pe~1^;l;*rSsbG&mE#uago-S_s zVRpdKRxW+t67YL!O)SH?8DMajsF^WL-7xM?cM=#UGy+VM((O5C2B-h|u1yL2dIzG` z4U!Y^m*?n+=S!gG)JTnL^bB zb(w!J_Uz(BeXu;x=Ig&X2p(Q8Sh4RXNF;yJU$bjsfn-mjqZ~rwedFa7Ben`&DdP^0 zjrSEe%xTUUP%$dZzDg?g(IM@S8ZStWKqMzxnrYaf8xV&<>j%zrPSN3jFiuoxKdI=v zjURSjQ2@mBUGOW1$b3ph9MQ}ItsZIeu;V?#K4{yZ@WpU@zX9sWCV!nO4jqSLuV0+ zXu|M7g;y>C7|ZZC)r;Wuhnwz+ha=d0oOLw1ep6t$VCbss)@m+_?ehBH`1%eZlxl{N zHF+H$mt50%6{H}s%4eTYOik$cy@m>MSnZ>>Y&7@?bL-K?VU(*7y^O*F1#iI+(x5Qq ziEI~3q>=DFSD%ZrK~@Cwquh;REUHNF|GU<4#)gk~UMtChhVG2w#` z{8IoYS7TEopi>~9sAmar{ml-A)!A~O zQF+Yxmi=9GltqFJ@L-~;*1)%+jPSRVKYPp}EU(;fQ>Bq?m5pK0K#FvCj92mR{co}mXDL<>8_f<36z2FH zyqRC`un`<*f$wVVUXEC;1TJJ9_9hEbt*auJtxT2QL^hF=Ys%x&rzcs?Lx0c=IOMXg zm$su;@+*9(!5wO$jolma5$_!pjQ~N6wsxq+r{(H&cNPbOdnk$QWV1blTdP4mKlqrQpxQWr z^4f|KY;J8U$bcwdOgCfu@h2)jjEs>RJ_gi3{qZJrr0x%4x9=R+43shV646Nm>~HI? z9tGyMoDwLl7wLu3BVKsflY(5(THYv`NDX3*y;y;#cbX$OZmeW$?Gz#02f#>cqTY{C zIfG!L!~EWY_EAbLARHp5tV-~sD0DK+O{y9A_X_0ldt>z&YEEIW{HD#CKB|8r;s*`A zzu(hWpXi+)ptHXw4VB-yu%%pIIGZv{r=%Zg(XZzrdK}<}Yv6G41~ zoR8|5FCut!(S;10RGV;M3$Ie-`u02CD05gvQQZaBItiQ|_Yw^9Q~y!9p?vof;<{L7*-BE!se^`w*dF=o31j+ylJl`Nwc? z%|4tBJ`A!Z;GQ)zIJIc#^S?&yiF9{9__jiYd5QkFb{d7=b|Xipg^Bu>F3~>f6A;1p zf0*ERA+?(~S^yM5@E4v7N^y&s6iy=EuVa-G^e&fN9|?d{eQPag9A02<<$$*W$(#ct zlOFnG%qa*E6EN(%jpN7)odzOMWigO_NSY3A$ApNoERt5cpk!v$rvbXGQ~Th~#*7(^ zhoBBpfuGfCXC>5|6cpm>MPuqWVGjkj)Lc?g%KQD78rM8?k;=OeL`pWRush;261vk} z(t9ggmH8}EF78;!YXe1Ic=5oTD@YrX;nw{#Q6aJ>}bb{6K^B>l*kr?iqFs{8^bp2!oPDO5g|i z{S* zz(dE?#HQAD+&R`jNJL5~G{r^MW4K6lx;FgEQmf15+@)&G_ZN#I^4$LL7TYfd&9EBK zY(EHc*>G#`d|wv~)zM`z$3S5*hPP^={Y}Ll9PUu>KxL&3?){nBES*juGKjG6j(__Y z$4`Ax&ta9&%7+$neS!xnOR$u^f?m$-dx&yhcv5O>7r{FYEkd?<@=(z5+0*5agHHr# zAz9F3{|_XqSJ7O5)<2+Gq-p4HoQ{S2q)#F%=ZOKtd2J zy`2SIK;caEOVJzune+JimW`pjWe#NmxNK|`dPsBH=JI^%N5q;J-)GAOsAr;>bnD!Q zSM=~DUV176eO&X0`+QXOQ168L)F8Z7N1taxd+KU(%|(vrlx}Ahn2W9Hu!ZMk@~7VS z&=Y|uc)fn*_jsllKl+ixVrr`BdaH4L4Yf(aL@XKLj6XBf`QZa)R*7~AaO(A}uv>&>-Qu$V65s+Y_etCY!U97$E-erK9_u;+K@7@eU-Nvhy_VMx(4qw0!e z_BWCd_M#IO7$_1Zq#dIJO*CUG zYq5(D2}QvaiMp|tbq%40xmdyDOr0mH5TBd{&HLa47fnR}b|l3Q6miyP0OoNqz^Yo^ z0B^lE<+j$e3KGcPK;+lcCZF0|)P4$V*a18{{)ubv=xZn5(pK*@!1bwXA!opu@p%j;*DFBm_8eUZl)A z^f=V*eR8TUp=Uq%T~HQ}`oStxQc04p-|GP-Y?zJ~s* z;uRvhFf`X${tt_|lE|FbdS<4GK(3RYbHzg8`4pD6#*7NTdaIZdaY|$UBgDq2l_f7y zWk_L8FQXP&jK)INyJgv4SengA!4M;U>Qr?HvXIOyRMQRWzEzqqOP6%?m@(%!d^U?2 zq0lJmA2sdvkPAZW-D^vC?i^}wO-c)?Fnl7~pTew-`Evv%1|o|W9@xAsDwWo))iL0$CX05Qj+BP@J|Wuyg_E=W|D(%<;J5-EswSA zl|@q@KN`>Q8c3dAq`OCIP`99(9#C-*z^OPG5HAitW%DbTu9~zrKtEyl;hHlkeCzzm z)o#B1)=|UjFJ>)p)XvykqSscAb|~UUWZ)Sc{@t=!aTL@ic<06Ju?U(c2(watjmeZx z0r>^RH-TG~p!R(&9z#LtOSmaCYSGu(KJwK2_t~%EOxF-CPjJ)jZyfl$U2)4%H+iPT zsfnHwRl_7|-(@e4L0|>e{5;g23DJn~YKDt7hnn^uYY>^sLp<8=Izt~$ByU6e*WrIQ zH&0JLdqwfw_A?C8(Y4MNR;;ZDHm}6f<81SWU0N0Xa4@y`3Lc)E?7p8SJKTeq1fK0= znE2OqC7`K{1l;WCZI`wL-d)KzJJo3IGW310llK{8q{)B#<;}w6=GRr$4D*%%3UAc5 z(M8+O1vI6TzA;W+54(m++@?y3F#;TB`pT#8UVBWHXF+Q(hf#W()6v!~kkpV%=iOhj z_}%#Zcs@YVN{9!+(vPqa?be#r&<7#3a16!BJ=@d9Q14rQ-`iBz)DqxU&DzWO8IPo* zPRDE3kTyxi#1IL&pf~kNuD<8!pCljtYT*$xzB7Y=S$rVwpISDCU*ulhmAHr}+?C{UV~Ne7 z4ezdO=~U9GePb;K#Uy^qXZ8}MPAnnb@^0_Wix|BUOn=W7$D@qKamll;3KTtme<1Qv zb?Dcq1$S?pYp9EOykfoNP)XkR?^-GetRi@rYJUR5sGg5$0%i;Egj40HM(iQeh|0#! zgoLStwg3TY=9E$G5I!P-lrO|@zPM*`ldE8Ahm)&(IhX~6;6`N9;iSA|XZ*AvaRdgK|d@zjANSVM`!+=wT zMN#Y}4?RVkyh__vJhv+0iL_7ZN1#&w6FsO7%oCSbcw%kOp0@a`(wnnI0oSAWx)$$o z&AG5E64!s25vxV~)tI~>Oj2t>(&uP`Io_dZfSEa`j9e+|M%0*pED^nOPF{=PGhmER z^haHCDr!a6vBbN; zi^oT>=+xE*QI#Wa@fH#I3wjp#nqcP+8yS*Jvy`d(DAk0%Z#LY5_ci6hXX175b)x36 za0(l{+)v*PPhd}#&F8-GZgenmD~z*j4O%2wZ#{SB&W%{(a;((7C1%GN;Rv3I!*cjA zgnU_?cZC32{d0uZnjynqu&75UO(dQ)JUp`GdGh#v{L7OefZ#SWPaDY7XHdvB-qyZM z+&=*E<^En4FH?D_k5+l$k&)0A9c^Y3VdAH}RCJB-(@;Nqxj%NC+{Hp0A5UOatD?Xn zqG(u-Mzz7-N|c!0&83{KCZbv-zxlQ7`-Az1rasD|uRrjJ0ez);+s#W~NYzafOv~Tq zEBD+$s0*kgj=B3(6zC=>0Zf1iyb0!>j%X+c_Ge|w5bg9}xoFi#FW#+U?*y#(uhb^6 zKMLcBWtv%}e8?^m535Er0=4iBjZcO-y(!(u@P2d-+X3Cmg>wYC*OkTWNB-ar$eB`Pjm6!H92d@^k1aLSyh&dvoF_5qc(n)!pOS`s-ka`PC1 zq0F#vR^+eSumAkn=zj9|a&o%9xuErAsJwX&YF+$ppZ>E^vK@Jc!(ke#FeoMdXFU-- zU0B=ob5ZSZn17SU>OLO#shs0YM_d;An5O;ABm?8P%dbYiS!!OXzlxKecEr!>5>V&Q zhDfHBS~CQb_~HzxdCWU?a!-_0ZllHG%cjg;_ggn-DBrH>3r>BR)E6SqsDa>2e-d@+ zVq?xD%^^6X#$d2g(7A>Rd}1nybm{y!p^JZb5bujy1KD$>{wCY#y!G|%B)UQN^_8HZ z{`zb2jg^)DOqTk@p6t%aH*EK{!Zb62G9~C__Y~0xcHdfIkqD@WVFXof4l%pLL1gd0s9A%wpH4ShJdfTo2ekgC= z5q~4DHhXLTELx(HB^tw&9f%e^JaN@4{4b-A3|{7)SK{j+s$Xo+x3FkvCdeasP_MQ5?GX4Ugc{^{_3YEqQ%- z((AiS2>#UcG)Bqr!?&R!pC@nMz%CbGaS?f(yJ1ugM&XSfj<-D}nR%Y6gY9Y``*;ji zQa%&%dJl)%szi887r_GhUI8!OdHVC3=vV$SB#%8C*1@WMv^}GGxeW6W(d6w6+ZnHP~bv{ z%ltkMhk`LK7Inas9~SETXE2e=xI_5pGVr!cewy>jx3j;HW{|7&gjp%*z_w>xK2p&& zj5=XNqx>`54=wl4l(|&YdE$Pah!Y9{Q4t@{tGKZ}9!N5k54vu}*_;A~#Dwd__1(?q z<_#IDzuXTuwelw=CV@B4zOHAp+~ix~;lufOO*dNq#kXK)pIlCviy$8N4hc2e-V*Cp zDZU4a{=yAC*-#Gt`_PBS(@B&+jFUW52gA!&7Q(_OUEVhbz%#6~+snh3Ux-oDxHTzs z(ufHZ`&ccfM>Nt8OJQd}HngQ%7lXv^RyL+)=#0BX@5GE{5_Jp&LaUKdera>(;7p5= zG<^%|w-T|HzqV+f?u)4t_x_~WYI9Qleu`>k_2$`1D}FKO$Y|L7L$DR8{Ag z{Hvo{`ShMKA;I|J*Vfj~;CK*AMq@XTD>9JArJlL@&`vsSsCNa&-+^6 zv*L6`=Ig3hLN=PD~6bEP+OdHqk7 zQRoKx-gl8H`Ht-GH7&4T1s z(sG1rMBo80`O{AKvjlQ*-1k5H43@h8TT;GcFP|Fsvv&Nxl-rs4dZ#}}+fNmHyHkd7FMJ;ha8^BI!q4D#QRCu z6m3NelkozXK#KE}*gbEjk0zga;Vf#Hi@Z!KL@yQmPv`AO1fu@<1=7$w`wEd5UL(i7 zMLWd zJf_G)WTuX_I4oF4T{5qP8+5LHC__lDiAM|3z&ywyJ0 zhZqA)Oy<9ig82EayRCnT8V}HbM}NLlSAFK_PdK~P6@TTMx(UyvF4b;Tz?l$4+L9$ zQPgP&ZOhuO4cLl0SFA?xuNbc6*5nPA~pElkDM7>|0EP`rkh%+JwP!W@qpO+2!T zPwRGdK@d~*$?{qXTje~vRcE-VPxn#q{a(_q4Kp;@F%+nE=MfJFfDq_+b>ZY&&YzUf7mjt+QnJ)a|K`1tZnfMG__AL!zPA zW_LKUM*#+N=e0)?!C%NBj#NSf7pSsFfjHo|Wpv8`22VRL_n7HO5ZIui^TFI+EDjrx zbJ(jYzxGOkl)`6TDYB{WGmby_`1(B>T}aOcaWRPR2BMEhM?t9k+yQ`iMp{v}t=8S# zSfRLa9nKFrv{3xV?7JcNHp8`&ecSu0Fc7B>fe~4-5(vx>x;ZazE!qUR$sE|&h4cxc zZWlgzV3G_p2-UnuM6`IZMNwL8Y(eU`=Ku!dxNl|R2lz_%%^ITlWJ-vGIsEH^NlmDf zV+DQGF|sycwRFMv{s)9Z&}LPpo*&nrt2Mp!t;g zRXmM&|1TBHlz_VhL^>G!(%Tu6zC>EMxrm`-F1r331UA;W_j4{t3=_HXz0jk2bsweG z({H(x2;w-_gPJx2d4NE7bg+WZ^1V8L7iQamF=rCv*a|s_We$K*uUr@_bl$y!?J|)T zp(0VFVq5fS*`ef(W1{FwR!<@x#N*d!ZN$N!2b8*P)H8WFdxK-pKZu^xAh zs-J(ho3{ng+FR42Z(}vVn^qj~f_usk_QB`cG++F;u}6Z(u4?&TkzNlTI3>s1Q-tq2 z_5ubfbECF_2(m??%~z0ynP>*sz?xqPVv`n^f*_No?^QdZ_O&wYG8Y-v#0SHjBMh=$ zH*8b%ZG3u$3^e3Efz?pmW%b|z>h_cv3JSV7eQ1%{e6=(j%Mi0Rra%b@hQfI0Jp^`j z<0xL6!AxOAf5&OP?^Fwg0Ekb6eCYW>U2{A1Xst)Hy;z7PRLVZg3sGXq?jYfz_b^DD zku)q5&qOJ=W~AjOiVHS+ls@(4;zQ}bVJMYvDpe5+b`&`vKMfWvU(WX`qZ6&yIKTeB$%^OCrL3pi>YeaaUDPYf!|p( z29ftR%`5Tyy>1Gq!$@4Jf1bM#Oin==YlRhM6e|)XgtK*81PfuTTcrwZpHUr`oVe>D zE;5!s%8xX%Lqvn-z@c|kQbs^1<7J~OfI_WNg9<{fE3NrUQF65Uio1qX*}ewIsdps) zK`#IDs?qb4Cw-&_*oMB&yO7LTktXI96;#J2$`+&Zu_xS$+V!^*+IDldR1#7OkW|kK zmP^R>67Owx%ViPb4%oVvuLFQPtOaIqR_hAoj#H@6Yz1>Td*3T}nK&pbIxRW8)$!Ak zs@H(xfbif2GY%GYiWdKVvM`;g+-8$QqnM8X*|R;uP*K+G`BsQAzz10f1^;HJIr@3d;cUDDP ztJG~A&WXc#8HzO_9jS$7m99&E!AYni05k%I;?KtQfA7vB0QKumSH50f!xL)SKGaoJ zsmh-&**1HD5~)MvRI0HVmv2j0um65-`kwTz0ebQm38ql!d?Fuy1f^Xy|19 z@#Au!gKK?zT^&soCUc=4#Py@_I6Q&$QMIn0PlQJyi>>FR3qzxPA~H_9c!hM58KVNz`rwc^xO^zni! z&RivPMcTb1iRgeW8!=L2a^xX%f6NW^<1O+5f1cG+gK;0RN2S8ylBf8yoo;lGe%bU{z$I-qlDG(9UM~ zL&+Ky+3xk!%dwy!Z^H4gN%?TGXwMGVcHsDnP#Lbenrspk77ZVz)ghpm4`Ut2?c}r1EwzFL*#k-^_ax1V^5PA8t{o@RD#akK~PHDZZrFuyl}d z7$Xl$Oe`~$k$m>{tVT5szFOwdLy{M@cT4gTANiUE+{o~_nc0@CXD@^>f;EyhpZjZ7 zxc+LOqc|I4d%F^^MH!AMBEG~9Qy|xo^qCup_-$K2A`FO~YYCVrGvdIK`|=71?WVHJ zT)dGbeiSE(fuJo*U0$*6=L&O8!{?PGr zDUA@URs!LokAW=a7*w7w20yLRJ?mgq-2JwmG2GYX0{<5Zc+42RRlkVVb_G2_fo82V z7p%}iQSBu8xUw;C++77G$;p93$>^{M93Y2jDD8?3jG%$Q)Hddz+3|sPWmBiC^$+_EH?hyy07Cfw(0lqlp{gr24 zG=H6w7XI7m>2Y`RaM8*5>3H&R7;c%b>C@pHl<#_f^{>vKlnoAXWDx)c&uEo_4r6BI zG*uZt#n-ytdut_bOv<}l$E;SyYl#_1z&Lg{n{-S^G8nLxFIffwC@*0}?miH&vB=e6 z?XlHP2V|fVj3!Jh$$H45_GNK+`c0>g5PRZa=k0LL;*)UT{lCea=0tW9v+c9zWEiqL z`65JqFR7uKBt#LJ#GLTtVnpEgN=;%x?8%>j%rzY!h4xO|S0@+w@STtlZ6x$FK`0F% zwUW1R4%8rfME*(_epl1oYMS+zeet(HfC5S6{t=hPv_;s9s}TBUhjm0{d5!ub&!fn3 zj#8_hD@rtR(yzs!r}kPpC%@u)R#){O{`B;8IH0uQCt|>MJ!|C2Cv9I-FwFecIx&M* zncS@-%cPCnpDKOCjTrDq-SYk2%_DeuUKhlTjW z=!HUk5-_NNQLA{QArPe6mReO|9_6I-4Lby89;!-e93?iNgA8eX6A{BQwzBAyXhN$8 zq*H8Uq{5~hq4-$cBNRtkb!j7rHbT zAk3M$x!vz;qLjyWsr3R%jVp4B^h?SVfpz39iJ?D(NUidy3PC%a^o2i+FV&{ezem-; zi|}1avLiO}+p?%$tT9D;F z!WGzw%!z4*+IoVrJl9-X{cJ6_i=foO#LfO+T)9MXE^b@&gMogOwxdP8o96KwVTs>R zfzqCZHr{Au>`)^^9kPb9ua)G&i0yyr*{M*zWZKZ4)e+It+p4h5lUr28DM7$fIk7HN z%bpI)$Um{K$`A7fry;qwyEDPESYSD~d`K8jl%|jYBK~T18l?!7MZg7HwQZm|amUHm zcTqqK5t=lp{2OJC7dwNT8_2M2vTi(>TJUOQN;37s>mq%rXo1RJ%^ z;zu!K<1rU1R<{!YvfBB$H8S%!^K2BB7ied^Sro!b&F9cMtfkTI{1~Zu?|ElN$Stvd zD0;QJ$aoGyrf;B(BXKs!z#TTgXb|gzSgvrQ*py#f>yHuhf`R^1I%+~_h8(8Gh zBSQ4_u75Rqyl?7T%lsW!7+qh#0*juP`bW0uG>oNu$u^&hb2|Via4f?>u3uCa9NlB= z*1Jd?%UsEt^vO?bX5#qqVPi;&GcCyPrtO9o8W#t)EKzDW$u21xiWX!B%H>T)Fi?0# z-;i>+EDHp$>+U4-`8H6O^&4JC8(GMW@!y?0r%4b=fMzX^bJq|->lEBfnEs) zU4-81pO*(QIQW0>msYgtL+HOY7mP#bOC|SzF(M(N(~RpP`)GUs`J)d=8oO??@rJe3 zp&^4kO^tDN6e#mWXk`Dra`+5RP7-kO|&!eU8ytWmnsX&C+u>;(qm z5E|gtoSw#K{)8ONLm>Pq3h(-pw^2Gjg`Ii6r^d^mCrO#rMiHTmrKb5HD|5a3hKaS% zc2u#VatZVK#Icrk&5G|jRK3ue02g;79~4WwZP#D*H1?<=f0 zJArvwh8=da-8&+M!JANToci}Yg$>`!2_B)m#^MC_mg?RPnrR^NyeujRXDc6Az0^XA ze}RV!W?EP{Chui*^vlSW4Igjt2HUI9q~l%s4(@;Pnr4fF&j~A!^tSo;5PTd=U2$Or z^D>aR5Ra1tX4l-XMzucyd>}NVvqag#j2m59e{BZdcoP(SV!+gZrPK6DyfN|1efEE` z>b08S8FQEt9Rm%PYj}pS)ziTdvua(e$Fc6Z8wfoAKFKd!2DJaHp(#G#lm{L2$0@qS zhy4I!bV^^kMdwTe>Mzo_@n?h3REn&7(fu0-Vs+x*LRteaAg*<@a{8kfD82{g@%RvL zefjsGf%oQMK$-T3F-{K>R5Dqh$5@Fd8X9OEmiQe>k)@5pYiP0h6}DlF0qd|PcIEPN zt(tJY{HA2N8eI7&akL+iNa6$JZLUwg!Yee2Jbqy-*cnpMhNeOU1dS`JxvSo0?Z9&r zGX#$_F!IfeYXJ|zYVjv0wCL}RVHiZkQ#oOk5;*~l2p!lgX`y+e3iDTYw4eaF7JKM$q*=bPX2(LhTe!LZJyWw!;Cv%soKzSL@R6Y_~^c|HuIlLYAMemzTa4PJzzkFTw3n<#b3N{5w@qB@+`@D|q_JiHf=e;DV zu(sDgQTown^y$~MWVAM~4=_g>jK8C!hA}fA5`62WAr&zcDQ03Ejq_%SdZD9oa-X05 zvGV{QyoK+I50T$8cElkJhx6GueR#MVjC~F)f)VMHM>eC90Y)^0&o}!_ujyE#heQ__ z`iIZQzsP@zMp%5A6`a+RDxoF4eWhu*czf4C``}+6{JH7R+yKb{E_sb5=wG$GlUJr& zbMYzx+Nqa z>L2{`e>>J}1uv&--Tc{ck#yeg#{e}htI!cLwuP*II z03i5iS@~b3=8kaAik3=f0_qUyr?n5}?VW2M*wKLznZ_wxKZ_Y%>AxVsWNRl^Uuzqi zNH)fv!a2Q|P)4eo5zwzac;zTKwY@Z=A5x^5DxeOTzQS~9XCEC8vD&P^H&^348d$9Y zQRry_A#BE}Vz$KqL9d+G_qA6G9Hj3P$`R z>-hA@D&+MJO1)?PMrscQK|_^Ek^I5(xb+^sy|JOo_Yz%08>;YWyAru);HfJ5CKt$7 z%G^tnX+a6xLDft)+hCoR&1Zk!+E0&>2r=72`2GAbpilAuI*84?m*fBnlMB0T%wekh zpa5@g7Bk=N3Mh-fPfayD-=uX5YLUcOq~Ij8jcAsri#B7J4j?L%8S3%zMR<7pPb-)2 z5oe_BpBV9gVH8sdcvsi>SJw*?0E0?%%;PS`2AA;0A74F`ICoJs3nrcoy(R?XsbsYg zu*DP8^fK7l6fZJ{Z@_B44wYAl44WT}850_S_t&kq#^_$z!O81lbSOfvu3!=az8)n2 z>QUze%6tB%fmp~5l|f${xJYVr=5(Hr6)|J=vFk5IPF5Rp!=OZGLz1_}vZcqze~!yX zecOW`-F6=^#1kr^)E*jnAgl|Y-$K4bpxYH4vvZG z>7XvrZtm_j(e8geTpD0lk8C-)?*O&gDP)rQ@AED_i$D#{#cRkCFdzf>CRXltSrDq} zHH7!oO=T!$3g5rgs8v4T$vPgrHl7$H3i+uBH6amrZ4Otdg|vJ9acj^KdG!AY-z$cu zvxMnFIWoHYtQSJO@|KDqXSN7!C#x6?|+my=oDwW#mx)Y9MZ1ieiGf z%Q$*MrDY-)Ni=G&x!Rj|Om#MIx(aLp-n;RoV}|sS>yu#hpi);(P1mqNm8Uz1E%M(g zzu@LyO4@Sam}A~#i#LC`?Lb9LjQo3#ly)Yj8EkWVYG}2{T+A(fwET3o;&NZ8pP3xU z;?(VuZz!x`?rUapWFuuIE&tJ?nbnGor{>F4N`aYlzDW-~3e%6+{m=@)07Hsu8hSmP zNn&Nc160U+zLRWtj% zkKlywDs%^Y^G(6jgc?z0DkII@1no++t3-S(JqUjaPVQEEtGlqg*JuOwnPe=dCS+4^ zya|M7qgM+o*x9P67Gd<_E!^nLoY=EYeC|0SJ~IXlV5iG^BL^>d7v1p0kkG)HyF`4q zrD(~wl%9-kxyl7p!g{O`<)=_V z^SXfex4ktU^>Y+f4J(TS3)mM4Zx$Hj*bUG-oqR2&MTTvTui(He$6)vi9VEG6GSKyJ zD_S2)=SlT;!;pmDqJ~F?6jS627?m>VpXSA9^eA#tCc2@q&Kry*X6O$eepnyges&0o z7dsC=Sp`m3Qtng?R@Bo-toiT z_|7qfeTTmYp?@1{Cjk&Z?{TJv`Xch-A4)X+u~ZX(5I%P%CTHjATPc;-z)%SY1EW}b z)$h&{Vyt2_1F7>Oqi^r-_X^|%{$#i6?{9k7gwlUTq0rgv`L-603JSxai1P;WD!GND z(2-#iyu8jt<7lJyD#L^t%wA`5OdVVz99Jkn=H8Xq1B;w{d*RTvS*ONCxK56X8Z5C(0puy)osPJn|sxv|G4$1+-L?i z0<~ap5VF9{0XqthjNQ0(pCr_xWEDvA*3yn1tG?9+wl@su3D&+Z_QPdK$HlxTHx0Iz zOyK^^J(MP5F=Q_*b>njca{vOgyw3D;!9-v@oh#GyRKD~n&3lRzJRxh zAcz`S#m8_I9R5;5I--J=b@jF$xTr(dTp|I2QbtrPAMxRFvl28?IG%9q6 zhTQC4P8(X4&ya_U8!PGQzZQ27C)r-+OeEh9n_{X|{a~#-rY^*d4Xp(B?mWMropSl3hH|O&>6{9j>#8L}skf^sV zqq#aWuJB$iU;f9qs~TLL{w1@`exlB7>uSI~RzW%l63yr&j2&gn=U+NIMx(xnWt>gL zxSma8&M{$5h-NYAghI_Wl;4`kVmx6K0kLl9uAbv6LrjP!-uv|SvN^$wP6!>`vcg#i zeAIjC#ea{YAR4`SA(n>mW54t^k^|8Jav?i0nO$d|QE>|RM0Z5K-<+f0@jTGlR*mxE z!)P9D!*f+q?)mnf8}tkk3iJS~0y+K) z@}NM;kChJIK*D=^W1I@T33NKl5i0)X^D+7INXK9RCJP4V(qO-lK0NPTrE(ecPb;Fr zgOr;EY&uChxD{k^Yuyx|Wjhgr57qa4bH#uHnrFDUx}&WTT;!lXP#7w9cHD_M=b1nr zEAV45a>%7yi#Rn}b^07;!KjyGM>Sa97U{wa%32$-TmzObI~ykCPPUOirO=A+>X5nc zvuPk&tBGO$dhk~QQs)@C1sb?7IpamH=$d2uLoT@PPQ#rNmVD~-!#Gd^h-aQ<{yLWR z$n(#fBU3F5mVQjidpJYe+4`?e2uj`+9^oA86?bty(@OQjdS^D?{AckI#!GAGg%_y5 zYiQLW_Z+RkpN$Jt-G0@|_&tfk_AZ+re1E_8dOmTi;B99*q5nK>()X?)YN|y|O@>KN z{DrBxBt)jLkE5qM9xs`@D_0nryMSTbB3S~Uq0rynV^bU&-ir2hU+x~*tSlOLx41TW zBm&YRa~q5{z2#7BE1!Mb%fQ{mPt<;Y2eIDf`*%5%+qo}`_4;0vaSV{MP*Ntyw&5eV z3@2HrG~uMbD&-EOF6)0O01n`kFldp9MST7N!AAYlz-)^`T9l%3{hK5FmMn*>DhP%p; zihm!44C#fZLClQT{WjM@K&j;x~jL8NB8fFtgSv;bCc2KE3(Am2`IWWhy=g)6tvX} zAwd3$N_7o=?fQs6@1cZ&{0GIzfY{wXw(LTcPjPH+-fPd!y!#sDcYnSEAcF$~gM)+p zeSHIi>A}8UNMB!HKSule`lZz`mpn3<9v^oZoyPOyc;(R;{{T5{CMOG$+Xf9ZRSE@J zHjk^|(R5n>D+9f$o>U6|1^n{9R4Ucelj;d-v$sEsy!!glN|&$C-3T0)qB(Bu4=x(I zZ1dKZP|_A!qS26=wr8WO>y5_x+WMnLrLq1!u=40ZgN8{|K=i0Agx);5F9M+_6xX3w z!*_#}0`9~yca3oqm_~_@T(K4v5J-o8EH0}^2N7XM=4FYM01fh9PlsSEC*BSH9t`z} zNNF^@_=YL{cJ~7q5!?kN0S5r2L61l&j~>3>gA3{YJ^?O8Aq_qLueRbp_G|uUkx%D7 zO79djh;L?^q}A56)Y<8gE;dNDwu%+j+P%MOtgf#Hxp6h3F;erZ;YP)S4mtnZtB#D| z?vuYP;&F1%?C`7*Uvrf7MnD7?*QNEL8BOR(FI1x2AjY)N6mc9SD7aW;M=!rWJC^_( zncle_pA08)iq5g_WuV}J;Es}u$P({HU1U1iBMv!Kul z@wa$+>X3np;s=RtgZSIKzW$)bHK%SF>TctC2}rVRkobjsG1t16e&wFD7WR^<-9_KMfeAxT^070%%?|bc^1yMbr zSa`-r$>dX^UK`bRUb6%phBE}@oz@^f`56I{+HUSVZM6YNd;f>A{Knq0 z=Se?zIFvnY8Bh9WEt8@`G-S#y z;bN3vkdn6%n)kKH?998WL9QN6&n zdwfzWas{M!o4=ihrK}a=cl8XrMyha;#oaJIYEt};O+^5tZfp?y|4Elt{J&|F|8R>J zR|2AWAwT{ZX^>C$cb{U31qE`@{3I4{;egm6G#byBezAY?7bcFYa)lKuAoYS0VFMG- z(ju135Q7-Csdfv;cy@h^!~vWVCl$U(fRyP6u?KBCZj+x?yydvQW@ks9a!s(#DSff*Cv$?nw##Ed132Q=>DQp}fOi zoykKUp~`I)Uz($8jOv3vxrw|M6ZAH4c}9>%27YA5ctO0(CPEMO4NKHKuh8m{U3d305Ukx z*E^6NL{BDCzn<#r1sfP1SU70z2q10wIqpmKsemOc#=Kw6Uz|GsS^D^4(3SAUp5F1v zQD_jGYJgCfS{6}uv1%u$FJ3OzJ%30o;2XhZw2HPd9>u<|*1j@k!V+2IgYFHg5YG$3 zgH#ZmW3asbr~>gU5aPx7lVX&tCbxN>pGzr5>dr}D2=MIw;9VsR8BKc~45twTpC9ZA zo{#58FrQ{RbKL{P?A_CeWsP;bhez|)YPIso%NHW2FDo?}Dc5yEXP1`oV@3N_PnMRu z*e?^zW8$d*`Y;p`z+gV@F8dHB`m?7Fkam0T)ipPq#XESSpo`Jr zQ3b?)7I}Gq>IWboG|depHeo}zZQkn9$t5=dt{ z7B#C$%>%^O8Z5ZR-keRz#}Ujz7@L&<8zcmfSaZVV07&a8WXA_2mkWP5^EM!1k0~G& z69{3})Y^ML6p$k=7#> z1f$c}FOTZ=O1XM|kyS6aTDE3+rJKG&fDE~t$;rzQM<)AmHsI)yj4yD?sR{K2MigG^#PH=!+e4%P#}1pszuNsH)(^=`xh+VX<^_w zb+51KK}j1DRj^2$r}Lm^7N$I>6cG3!2&L?O=kwZe`pg8 zH^Vt;(G$V|MtxduI_4fFAklWQ7_!KPmV4tn!#-wVFL5qEl+f*DFr9)T(v;4IKmr z3l#wx9J;S{-U_icNQtf!G3lv+7_dSO;+gWeEV(OfbA2*42yt;X=;V)!( zp}y%W5T?b&7cuc;-!)Mjtq{>AEDFt9N=#_AI*D;AM&Y2%#pIauU*6LTthane zqET7eG|3tZ#ihuAP{Xo(1eF6};3I4i9WJpF=SfecvoRa#*N%602*|n zxuHpo#d@p2J$kl17cp4T>XP^oDNlLdY?|Ai6;iTRNQn!rGeDFM)(7!dWzZgOl4sm` zB0X}_h8dgiCvYy^K*E<<%qHPP;ZJr1WHeqtu*TW|Af6|^xiOsU_V8PP42L*EvH}PL zv~BrkazUpSjr2%zC7MPI5eR)6!SvJY(FXBOQ~3c{v^cnhrGxr__9Saup&lI&lMv2q zm@|r(vxFkJX{dnwcCyZ-6Oaf6Z!%`MLyKJkA}g$8@DUY|-cUd?4iL!sz!JN&^{FaM zRpa5K8fJ(XK-Ah`3R1N^{2ZiyAPVOg=gV?z9$U22alUt|8W|9Z-TAXSS~8^jfjX`y z4e`*~66^PWDrs3w_^)BV_4}L?%qBKQy^So1#OTE0pa;U6|^ZFrYHTvrB$s~ zyJYp82#D2XnML0R%@JB5GRHzV=-Vgh^^hL8p@APbBf`wp(EzdTR4%r-XJuiTGZs3H zbOMq94HCZ%LQlx{&eLa3gTM>Y9gxu=AibeBh%T`Rg~`~&TuwR{9*adVa7k*oY6WZf z8l)Pl24NM2a?!7xu0e{lLU=BO0Vn=`t^(per%ifN81d^686PWFKP@2c^f@8mmag5) zI(L3qo3pdr=1rIe$;MrtFn8_MHZ+K=u=cX#BLX0)@G7^OdX$K8S!GM=L`d3D^KX?q zYe>+$xVl{RD@|3sh+bT-SM{aaI;_?a6E3s(wGIS{u&-lhL$pG;?aRP;G#Eth_$o}= zNZyEN(&vnc{fFw+V3}!C?faM{ zf}8>pTptsVfH|rCu7K!ZrLwwy4>{Z)Jh=Pu+S;R4p+dFG%8K`$uMrg)mwQ!2-}M0y z(7j}>5Dd6C{wY7=x8&*`+$0}SH3)TswaJN%&U;3O zIYu?_02xW72I)Efr6dftZ+g6iZDc)dA!EaK=LJ?KG9Y}+OZ#It=B1V_>q=@ClPjS6c zliu=5Wo4xz#K^1)#(@Zxh^Gr^YcR`+uDCeEM2mdbH3A2DrR)LY?IQxh4Gt6B&N{Y+ z3El$BFF-PqPz@5R2|`~;YY$7TurQNQKr$Bq!rgoZEY8i)haLrxr911Zl{M&&^~Rc% zCq%u2^~Qs{ckivEu1;gc0fLrPLRfnM`Kyoa-oFRIlaCsY9yKt%w$`YuNNo|cA7K=| z)pgvVmSEGkiN)0kH;)JYZgCRdZKFa&3-HH;xd*I}k~hbwM$Kd*qj~IKm80@eHGlvQ zid7=i#e7bioSRRo4KkRCwYn|iP2eZo9_BzqK(2KM#Fln3rY6TO+QnKyeKo27(ZCw( zzI^dlS7D5}>NzXW9dcKhSZ%00LPe_k_wPSg`{>@C$~OcP08+vHH*|ir(!eiR13c^C z3ShY!JRf}w>VV>ZE&4h{rF2#|NAA*PHh67vQO0r!bR;@H5X4*N`YLLjbVlzoRqH&F z;A}^D2vwqOkj&*ab!mZExS%*T_Q8ig7}-eAgvVk{+atHem1WBy(32is-?s7)YC`Mi z2n!Eabgm+u$_mYI%IYE>sx($Pu6JC@+{2ZJi;Du(e>YYiHlS_Rpmp%eMN2Ifr(lQ} zWgweZih-&3sadj0GRryrQ*?&pfyZPt`-4lYspa8nnrVAf@#5v|H?l?H^^*jFKP*O06<@ekYdvVsl{#&+DgM;eMw93DBg_52Q>%) zv08$ry53Dysq^JK6(N}JUr3$?q4zrK*FWl$4v=j+2_pkCoC$eM0kKOgt2G$H7%BB= zO;ky(=4li@O8eVN)t6A@+{@9U5372qcza?W7TsBO6V$7H-vZ$f2k`E{3I#za55y)X zi??ptgD8;!fzT;P972{=+B9~{d_pw{|J62|OP6PZfV2^(c)=fx?kF5BC?GS&&@>HP zToh1)e1775^feHpJ-3-fVWla5i3MR0JARlSUI{6TIo(m1oB|$HAJG9B0U*@1G}oE& zN?TlB=@`o-xakD@L3)QSPeZuJ!~xRW$X={L274lWmdua9t1~p1kmR99*u^eT0H@r?dw{~sDD{5bM?F<1)TzwFF(xY4H z;p;J4>v|}p-Q3$Yq3)TEfD8maQr|@y!~`eO8%(Vd!3Lpx=ArN!nx$1hAhf*$1=<32 z3#FrYpf2iIVX9az-g0{dp!HKrCh1R*6@ zSV4K*Dn~axLc-mtDT1533_H=L0z)piY)y&==?&E&G59}Ba6Fb+t=3Qp|LTj9}`nM;s+8}WfA_4GZfaeKmgQy0PR$gt6F-Hg3ki064X1OFFGr@mPw55%6 zZgcA*)aj(yAgOLfdUQ*K?Hpd6zWi!~?3qw3E7@Ue0t1kAD#{WoOF&H0WfOSY zA5MLc=h;G|LiAv*uBt?BOih(<-n@0|=B=BTrh}py#9G`YZwcwp<(16PGSMfJ8O<94 zNc5n@O!klbWV^x%z#t#6L7E564k>?flg<4adDD}-)FdQ~n^FmdP3!oO?QQSL!!Mz4>|&eO_pcP<#@ZWA!m zNDr%Xv-!=fttW-bL_rCueEad^Z!Ii4QZR-xADdg>{N~og6<8tVu{_gax%d(24uRvA z-~qE^3YueZ07Z=Y2l{)*V*%tt1;p-Qsc6F_YLNC^a7J-T03eVMKrX=seqL$}O|)E|Yd$4@pF zmTF&_*jy+~RPJnj^V?4r7B(wTCjYbfrR6FfnYgq0H{EX!~;m3o^+~OW*4(5FbIP^l$LA_LO)1`x2Wesa>w|-H(NW;kR=X^ zWN*JU3=jy2r$OWo#1)pz+C^zLg6b*%bS~ELbEtj7Pg>7sxc>BoMQBdcsi!aqBzRMsmW44J)mUt zLwShw^`&Fsla4~#6x{veh&RtMYG`VcHqw8!gOPq|KL|?Y>;sVY-XSWkK@N9!w>O|f&H&j)OZdR~ z!q%?90cqhVF0(mgM#p;tH9Wh8n#|A6%s3G2zkvZT==AEI7puB-2m4f;dgjBFgRV|& zZhnc+DL`>ceM;2_l!xq9mC_Ch#RFvUO$O6U-X04e)D(Kn`z0g%D-hd8OjMGyi)8`f zmooa^E_)dt5J>B(lV@U$yb`B~0CJ#!K(ZUny`86rn1;wWm>Twti+oUnECy76-~~ViC+o2& zEdoM33=(rD+%piu!{B$kCk+rv|4`hr$beqj>+2gR)M5j~`~z|pp~G_^Car@$M1YcFr2qJ@q&jGjOFPnY840*j zLevU@?0}HWj040K2f0T5fk#l-Q#HuOH46woOXxN)v1(pa7X$c;$?^7)Vu z0w(s9^7-QJsX^VaqD{`GcJ&58;`F3b@!FhIWc`B-dAha-;2yM`=DM@L6EQ2{@`wbovHtQ*!$ zhLAhdkfpllQeIsx2CKFn4<;AXPyV7#sCu7 zkBZa<&2Ky`KW!iYAy@@m$t$6l3WukP<|-`jd^L_A)>Wt=SO-bS?LD#$DUA+7qN}}1 zfcTEdtzanbK%UD;a ztio)`7r*g>)!jEaz2bw9K^^7!a6uKwM&wfR`~k_NET< zAqkn8T3VS}P@dFEKEHkOPH~=qKw>x_#5*86)k4;e5G!wQ0Qvt)hZB%vAp4_bZO@*q zZ@@M;AGN-9wyACLNp2Iip&q#5opoi8AFr-HgFS%_58ru98T-2rjg0TOVTmGi*@0V(Wg#ni--24rfY$PCuB;X^%{7#-#jkPrdU zKRoGR@yE*2qEAFYQtof{uWdmvK*gqGxm*^8mf2ga*i_rnu{ArI$>Jg|=cH}IoFnWB zMCPBi)-I!4LtmPpR2+j45c`h{_lHO@h!0-u=*LlB2l3N_7v)&9>_ zX9igz1hl6OYu|!)55f27c8uv&J&GXBZ}0=^g4B?yDd$?A3EsjENplnsG3C}B5ThWh6T-vZB*p6< z6a)b?>ISQiNJ@*x{pH8&o4HIjGmA$yi$g{|s32-S?dx0FQM?VqfnSrw6EE_zQIz%d zXU`_L))xEIbmA(BLE>T(usLJQK}4J*!*!uKp8^7_Xkt1`-bEOa=Zc4_f7ci8IS!WK zV_`wGB=rc0jzQ!AN`0b^(lH<{?pZ9b(RVS@i({(#cq~3#eykiStr%I$0EGes64Lt4 zBpSf)Z2*LLffN<3Kuk0w&QvViya8ghg_BL>g!)=r2h8E9l$zLp@RxGmhKk;K8W<>= z1;golAzvu$yq0`$mq>*QB5Qd?lL7t|<@NIyT1x|>J*&Qf$SJgvzjFOrpEKx2KdA#- zQ`5{u9Qz{7#sjMy$+e%ZD)G=BQVE+K&Ar#`>;q|4PFB{F?Ra1MMGnEqvxjS71RoZ8 zfPQZ=h}mx`Q+|v@_#Vuzm^Ozat01m`*pm%PMj>+o5vH<$#|MRi@ww<^xlKydlcxC;OzW&uLGe*M~yuXJyZTe#MT3)e4RS4(&UIN$+cQLx~spVEW@ zPyPCi_Xe(m2ZIu4<|gky03O+LbSMuiJK54?woA1xJ{g_O(mb<*5JgJ~bVSJr07-dL z5UUjfHCKcs`fgQB^KcZ(-8};m@C*$SSw-n&6^cedw2zfHFBT+2uaOV$fQ0NcFP{mG zx|5gkE>`c=EA2JMYijlFcy}*e_lD7=>uR{WJ=EUb9`3yeUQ*X#;05sXUK|*>*n9oD z)36-|hOhsXJDwkic>Z5#?xk+>_3Ow7Bi4GFQ&>lcQ7a?k$TIaPQS?s|e$CY6vzMY6USt zdr`hS_kpw5mKHkZEl3Z=tV*mBWf4Rt))grSNc!49FL+Q6R(-g={c7*^i;#nhuz`!0 zE?(-5be}qQsylpXX{mPr^3mIS<gLl0L08DDJOo|CSh_0*4kbiztD zy>UCM37O4Q=xgQHmpjraPn{KQwb(wlzlY`m(fKrs<}U@t<<-a^*CPv_NB5d|i+xjD7h(3S>IwO9Z|ZMPM0@YGuRVl}TTAe?qvxhbsJ z(02gt)#^shRX$`A>rqeBuD*(nlBni!K%@bLjAqBj5nEJZ_;R>eB*eA#D4Y3+0G%DO zVDhWP^pK;`)dW^@{K0AW@I2s6LxM~BIcUT-CPl3vh}7v^&CL~;0^~!wSgv!@>0&8B z_~UdiFwTH;XZ~Jhu@2CT1NLy$gLg#*dGtC%5Ke!lH8lKpcv<7ao+X5YWJpN)zF16! z%hnCV#DNA!Yla9l=BOyhu@W;1D+`js7 z?ooD=Rd*S-^FakUxPekBb?<-pn0$B!R*Z~CToCyMlDZDf>^#LH610scjW+Okbv_d@G0XgYjtjI(z z_q`d<*{;X(RPOGVlhn1v<@M}r1p&k8=p!>@in9;!;5;21;bakz3f-*D$B5Kj6~s~o z;XuivPq~{=VRSfRknitrMj->^fFCvtAX-HfB^YtAv^1sCyf-J73>=aU_cU*yG)Ec` zfWUk`he1nCQSZ4ch>RdoKKw4Euhv#KDoe`Fj!yPBIDFuyPDqQ%YBjtuHk#d+A(yq< zaV_Q6o0mvfu9ejbi3V^IQ=eTSGVyAiC zKMP|J={J|`aE2!WQa%v{GzN#9XZ?C#!HVbboHm-XlrY5r7YdyNErnahPb&$}S*oZ2VFpVR`e-=~HUPn!5$OWU&Hu1`sxM z7h9%?3x^}P#~_1BJ)9D#vGF0b1ei)D2L}hQ4VooGxyUXp1>@*XtPXk)&k4x*TB`{< zc2+{ts8Q~aDE46im6y)2b6+~Nrhbq`MATRp` zgbHH%@+!01Rg0k0L))L^<)M*Wb_@%0V`G`|ks)o#!DMo1WaOh;w?-}}o0CJyWb%44 znHt3N(0fCJDfJbm9tA)R4Bmgh^i?H*JXvd{g1q{c))AtiFQULVm)S2Nv)PS@1Vj?j z${0jM7Ob?QB=d|fxk1+ea_-Q_Am8?{ARe78uYd$XwO&3;uu%a*$tNUnhU)aF-4z7C z^w5vt;j!`I;gK6-qj=JU;4v~hjyNGRHa4!_8yOiI#MK+a!#9S8z|-(Z5-&$^zcu^} zd=QVy0l`B7qK+oX%T(4|@8@Q-`!tkgJ$~NF0@uv|L=IXb0ys$3Fd;eLBOovUk~rcD z;tL6T%BO1lUYGzNb$b*+22R&{_$-))>%<_U!7^L_Sb40yVvtm7=+^LfW>g^pCrka> zg9k8jO$!FdFmNRCrSQGrfDPTcF>-4h;EXB9Y7#dVD`%Tc19CX5W#P35BgT|i{)1gtcJ2G_n@(9%D(SvoSclQN| zO6(F4r67*qWdPwqNaa>)L7fW1K%A`_@DRtiwNIT%UMf!K;ZF0qWU(rfi#lh>TEGP; z2nPU}TG|_s@M#6e-McQIg|%25dLWCj8JL)dmtsZ4*@(#pa75@WdorYy0T0MEx;-+7&(hK2 za$)BYD0lZCgMbgrH>Z{TlRtrxgyjJtYT*;dVZZ#B4G@B0 zvQp-yhaoyCZGCIY8#29HVHOL3yhY>btE^sZ`0x7!gsEOQSt%QkD9dz2Yh$@AsEi6s zkYG|~5}oIM_@V;xeUGIk-}D`W1j6B!i4`0JopsT=QWYcwB)=CR_{Vz3t=hu+>st3> z#TEcU`Inv*pBZ9$DmB^X@*tYRZL0K@A3&JYrGmh=7eqet14tHttWS~<35al&VAeV- zz!2|qO@uf($5`~-7Y=!l{#oCEV06^f)c=~8n7TPNH33@+>gtj}DL{%dVyJs(BepK6<`-d){~esH01t;5M;H5fn?BIczNrZ-Lc z10=h-p$K^%kT@MB*%6<{2_e=7=IE|bQ-?kV@jw0mZLso1HAN~vuPPBS?|datk`NTX z7wsTjR{n;AfMWu~LyB{AAJ!-p*;_$G9^W}*9jY9GALo?YDp$L+x_$p4!dB0A4AS7B zp{U?Xg~}FcO?=pFW@DXuLnI)CLq=>2#O*0l=7j2^AF%B?j@Z3q7EA z*E+LuW;7(QDTPR#y}SWH@+H?nwBoExpq3GUIeT({RwF-)J0KbZDuq3MjXJ`{ac<_l zH!t~se)#z99o^F9?&QMJ5k}}ZYw`&QY8KZwo+XJogLKoPLFz|>un2V#8qEs^nb>(K z$RUnFV4wTSao-AZRkcr?zJuOZx^>AsUQVq@LPQoTT#}FAghLj#9nR>n=}-{Iyt`Pk zZpfM4 zB1Wg{sXBAhzwxFZa+QmUA#q^Y7P$o870br?=s zCXoa1T6gM7=kf`s!6ijZl}#Q`LRg<@C* z7P|m}E4Bh9k^Y*VnU1|wg+d;9C@U&0`4`U$!tUe7J+OjJ{*8pYWfqN%nPsa zxj#NsSChq71&5&mH>?yocx<;Lon#HmJ`EDGncLuU2o=O=tQ?=sC#f!c%WfSPOB{tQ zw>3TiQKO&dwr6(IiiJ540^0>hK0jfE#fjl@J^{EC9L_(!b5HXz|DlH%q*bh>!>slV z_U`mpVh;uBTl?+PjyJ1d1u@am;>Q)YrgQ`;~!z%L*hIWC7-wOCyJ zGf>F1xiuW!RQk#ZQ-MPtgM8j+3?jR^7iR9=At5ScS8i57&J8IPFPU<8v)wRw6B}@y zq0su@-YM#->4m%8Fy#Rd9K=>0CMR{tB7Fkat|qBe$Kuo9{_eNGeY)16FZA~t3I@vZ zk@C+649(p;njAiGrNEuGQ)*F!v5Ep@W{H64o(@w5Y6qu!A_SRY?s+c-;SZFd zq&c%Y1R_XJmMK>3SOgxw|NU>D{ucIhv7=|Pr=zE*za!n>)3XTc=!c~-nbx$I>qm>m zv~T~4ONBiK5baPA4ZPIPEsIEE`L*2orf!u5>?I(qG>8hvDsD7{!5oc_m{@&1qA^I| zFvlSO>G{TSHOBymXA1z3C2Q`p z@UyrwsH%ApiL;X;FG~(IM|a(8K70io>xvS0|I6^j#L6Qi$8<*`!uniG~_>7!V*_?U6{ z03iP=KZ`3MM1d>mI7)2jJ9oLQq=S(jaIn_X(b1oR6V=m!Ltomw*|P>z`mf;))8CqHd)oDcn?OvF)R$oUyUaJ;mDhf$ihNYVg4zWU)<0<)&xc?v3dUty?+&fPfF( zkJO~HY!@re1NDQi7~jdxCM;G=9R3)j6d15X9+7nn1zuG!St1x%~$vH=K+X&TSRXKS*dFA!4Xp(4XnlzZF;pe zwLZ$uR>8&6``Txb@O_Yk684#ubc%*GU4{CQko!TnK*)x2i9^31?oPa_NxP)tP+9S7jo< zXzjuJX0`a>V!Ej|ku9+lBQ0Ci@vt-@nQcP)H6UEm5DnohAj-CLHP(3~V-N!3eIY~+ zIw%PJFoft!NT9Md zCUt?lHPse2Ef7F)uZcmhlCB-Bo%b9*Bw=$u6ADrekU9qtPWW~_W}LvdwTCP0TnF(l zAXQmFx94~|64Jm*chkrE?3=AsQxF_XaqsFc`mV&yUK%Qg%xYMPb890NZc*o3oj4M; zSpI@^t^v+Vn|W?IB&f1j`GN){FtIyOPukxxhCxID`%8`{N+I56d5?;MF8fyQy4 z`9cXmDsCKC7bwo{A|yX;0fN%rl_G2@mBnmqI8Za{K{Gc_)1e2raXlkm2rx07P!$hw-|c2!e-AO-w1scMo?A;tGgd zA`Eya=#_-nar%-51i=Ud#ERk#A5@ULuB-YY2H~b3yW}0X*d=xV#I37IiU(IhmQ{o5 zY}El#65>=R;!XvDfLtCQttO5f&$j;HHt~oic74}uXySJFN?wJ6{0L1=4s#3w`(i0T zf|WHL4Ipv*f&49pfe;z0BMO0wg)O%b5KCTUfDfCySz8GpaXSYigH2I!;=biJl}_Fm zG9rQ}+@Hq<^J~$ef%+bpwzv(ZNn9M8sML>54Z( zKn`;Z0{i^lfCTpDgc4#ALYtmgnwUY5zLI#YP%O^}Y+(gLv5Qn#<#s%G z>x+eu{)~v#z-v29~n*dbCUjYm%Zhd@`3pU*~~b` z8H{Cz-y4FB+_*73j@IqB-W$4%F$f?fd2=Ya_+TR=HuqIIk+t=DD{FdT#={!+n-bs{ zgpEyWb#mjuZ3+YH^N z31C1-Bp#FLM-iO!3QJA8$^()HA|t2?93BA*%Ed~W!ge()2Ui9Wh71fY9~>V51QPO2 z+gn^K)POX!vQn`MfT)#1n~+}_Co676aB>g2H6w(|l89Xho%=f^u?}kt;sVIYK)@b( zUeRJ94V%=rX}B|81R%wUslqfb&CJ_2hXutzt;f$2j6^QP=oO1QtA(P(CEgWtZTpiN z0v(ugpyv}hGo5j+cNf7h7vcVD)e~6u*4uYmG#;$$ZE33xAekKQj6nn;k00DkFpA~2yOzwmXvlPaYPxuHs#p}Qfvm5F znxL^90P*%&>cWlDF0tBS?)dp~zA?!GAWc$1Y)d-^A^?V5I!tYsxK}?ww=1%gleL4$ zSpYJL`ES*bk6bn<1ccXBpzcI*GGa?4;vB=qoguvQD>kgtOf5Kraq0oNfRg#{Nv z;9t!YZ?eu^@F4{R>l*;X(`Uh#M%tBv*d}uK=5_fXotA=?Z@Jiia1ItFWOVXfNFrx)BeXI zgbFe2vuoh*5`C+P9qygVOIaz|mMmR2Ls4~`EK z@=lAWSZrz;_F2hG%V7or0TF~iLvBZnhR8}1u|u62V(rdsLR71FV-2V?sTLr!tmd_^t5lZE-Exp8 z7h1*ox|k@8GOT9uap>oR)Z!uR#F@yM$Sbd$Zf`#wdF9OM?(X*X_RjWDC>X*?s2+!x z)d631CUW+bvuEEts|?3TV?k($wL4@cujeD^SEcw^Kn5!o>ppcVW&y&_64~`x@L_N< z)E-Un=ei3DYq~}B{Hc8clDgLRV1uKW50sGcch&ZEvt6ont!i~92sbuzC9i{!pF|nO zF%`%W(J~n*1UVL~Z)S@3kk1FHaA1|Bzb462Z)u$5~-}!yNR9E zBw`^W53)i1kbE5W{U8z!+iL7ryvz4%@uVnIzr14ett8~$9qnRKL5k1EA8e=S`dQ>h z!2!U$9q;5KmO0|UIY>-kDnQ=p+lQqWpRtMJfrlXv5r!BK3tg)Z6cDDeo=H9hdu`R59sb*RjYk%VQ!(6m!)EmyzcgMr>Kb7jmQ4^0F;T&=!HbNzkcQg z()-aUI-SM3VzF2vfjdk+MdMLzo!#BI<6(~Not+>r5xe{3fHS;S$;sk7ExJyzV{yEC zfMl#7-KxsMin^^I{KnDoGUu__dEb0||L?#0y%%Or`td4T&HtGKAeN34)R@niY4jd- zMy%QHRq?K`|7EN*8U+Ci%0i(0}kZU;opWfAC`T#o~;@Y9jK# zi*rPP$=-VybN~fGI_o*_YJSD9p9eRqQ{=EjdXj$=m1|%u9(P0p2iOI3Rik3yAw}^& zuQCAnqzJj()&dW!N`;DS`y*+y30WPEC!oP`W$I|2?cs&$JJ=ce(O>*+BmBX4zx=0f zee3H#ctK(i08)KB_Ad)|HVYB@^i&?@CNpw@P!F~p`ehZMJOxDb{7G3fv3&{*1O=V# z^%uGlc-QHCW8O2eVZ_5c#eTB-i8)wIWzBANv^2GCWvd8C)&|7hKJ~uid(tkbKOs^% z)b|5)gd*pD=rjBPA2rAS^wk$72Kn;wgRq)^EiTM~5jG@+lcf~|(+ky0`c`xELqBKq z;ZHgKS)%UaXXN7( z^|CtJ+9orj*=j0?6@yq|$m5Ue@Ga6eZTLn+H5P`KXeTV#m;@d^|MdUh%ipRw{;jY7 z{fiNU5Rj@9(*3U==D`Rc!9$Z$P=MqOA4*{GcJafz#G?u-g5Q2^>K9zQ2{;7~YFRTB zi9|vn+?62!S0v%s-l?8Kq0Y`oV@qRWQzPsR+?$%4nwpmyCqK~ugvs7vOt~6HcZez~ z2tapxe|@{HX>4k3>*&BA?zYyJ7QoSpm#@FRxV)j7K7Z0SnwfmPZM>R* zWH!pSn_!@Rxmj6jb0h3W^*?I-c5`c6Yisj4++gSaAA4uw-L`S9@#jU76CGKSBU49G z_CzKyR`xFPaZdMrZ}Z~x?A_N)7y97sFMZj&0G&W$zo5Ijx;cy4gDzCvIs(xxqDA$g z1w%G|Bo!%p|CM*Y84&^xB$Aj2*3c&(fWcr0(o_zAx%bYU85}z{KV%s6%X*pd2lzk) zVrE}AJhHMf%yf@I@P$*;6Q_SfmIStfjvo*pf{dSh|I}mO{n6GxLMc(9q!g{Lt|ss?HBVK6Vn(VZPiM=xmtckHd&SOh$N6tbSbY7$p7>&onH_ zU;q5)A3gq=Z+wIDAg4Zk_Vs6f_M^YzU)5fJb5rcW>ikHAFTjB8paqG$Sn)tTU|FdF zRH8Cldno1p-7)+kMhx?H)RlF3eC4?AG04paFV;`>(4W6f%l>@#(BZU&0bM(y2Me8l zRq4hd9Oo4CATfp(D!v(FfD$KcCJw5+d>JES9xg`aK6xVp`d67>|DXs0FcB%x*T&-t+8xM z5`Da+m64GZ(bs!i)3I24_C_=~D^h8+;dE$hd~AGtjLzW}3OC4mJ1ets#yeW?6Xn!* z=yB?2Gq@uY-WUDQXmebdjjfyT$Hcy9s|lxG^yGr#Lhgul^ZEh8y8;ph>V9f~`0%V? zIRFa!dNm!3H86O2L^Cv4iT5YYhf`qsf!X3~IwbJV!xH0lDC;Ch}X6TFK9*Dll+zoTz$`@4)i0$V4)q;pX zz2c`Eqr-w6)&LN5`{k++j!7M&1M|qqW>C@E5MRTLP@N8{k**Lg;ofiyFT))htVUSR z;FfVRBBGece4Q-Fcj=1i*kpkc4Y-h7{Qvcbq~t$`yC+E)6Cwo+K`k@`WKjXfQqz+} zsgU3hJP68ZqgP1cE8|lj`uNP$eT#_DRSn4bzO^9u{tFc&tr%n^28fn1$lyxy!A(1% z@yEV*>eSA~Ami;-l;9C~LTE!NtDKGH77xQ{r5Gs1JfQvyogs@Eu zGOht2Hz@#;rU1yPQ>T8`7d=>>t2#*0wj2P`kG)u7pq^5`&za_Gtigi{3KXlg-vRa#*P+i0sZNy~v8Iwsx%mE*6(Ae%Z(d5~}Xu`fpPs^&mEG9Xp$EC`eY z5RA86OvA}Cu;7od9PqZF$Z(TaVvvcipZdwyC;Gs{!oXJ*;h}%|N<}|FprXfl64Vif zq?1br7ls(v3uE%SS7MORf_&}N_aDt@Z$LbBVJYVb&(vyFJuOI)+ll&xD}EZe^f4KQ z3>#G2g><2QG01ouAV2x(IsFZYl~Z-F^7(wt56u6DNnsWfukWHoO{U@pb&k%Da7fm==`#5 zSYxlmAT2;>S>B(;!O=cYU26m3~_Dm9Sn`gzi**)2Li3faKgt3Qm^Drh^NNT^tvH=oW(vzUENs^SK{< z@lSdU?PZf26IldWYLrZAa%h0asdJh3u? zo5Ix_CRXTTWehvjWGkBFhDx{rkOX?1{_P29OnePGP{$E|B0islD%x@DiD{HqB>1MpUlwxt%WA!AtfiTi#O4?UH}@ZgRl^xlUU$fGJtTKr_hrnhw_r` zAV5aoU@^U7kbMJ#ql2TP2S%x+XF!Y|I6x=T0URjt5?&-7p#Abu+Jp|u(=3VuIJXPe zC{dJ?08*a4e0KKo(NTIIboqgy;|C5L7{;6t*^WLXoUIu1y%f)dTGcGlXdRsP!%;Ua9qNz{QA5EL6E zEA)~fK8gy%U(Ip#E?z|FkWuUJL}9!qtLmo_rjLuItBt31TzXVp`^1ko{ISMl$`XKd zgQFa&HkkP`11=K>6kcRmq`h@hL;@cPqZA8PZS@Ew3}*dGzRxX4ETO*BCd3>b!^B(k zU$I@BQut44=tz%NQ~=T)4S8K}r1780NP2(GQ(bG63`mfbGJSnB>8gL;>du-FGYdfE z(+PE5-CbQ~Z-6v9c~vTaq%ULDvK2=uMhu9FOuC+cD6iDw)r_6DAY;SQS=Qfzq+vo# zKN%nz@Bt5tD@W)dA6Z{pKoo~za&D~#rn%D{y_ibKbOj`RLX3K^bWkUj7J&Gb1#T-w z=uTiD_(7l_RPuS((hv}-Xi+*>ntcD$l|cn-^IX+hE_1b|$KnTig8Xb^)0 zRWGMFNU`E?(6LzbEU%y?AlzFGY6_+;g{OuvV`ODy_-XKQNdmG@!Gd(ALWQFB_%=p=q`^UlJ}Bw5KO0t5HspN!K9+ z@ocV?0&yxecvc?4!fgQJXz5~k3%(gtmBJ9q%H41mr~$2+6r^+pTx&Y(cVFR$0iYMIpHbbtlVcmP@6zh)T5A zOK2;vQHe9np<60ns2iGCkn{=hn`LPsx~tsKAp}`a>B7oUz>⁣PAajt7~dO0?}88 zu84~|Xpv?8dTBksettdQ(pvs}9#?c~X`M(}TCN-BB>~8hB!f-jltj?Mx$Nr@g4}C! zm6d)9Vc4rPAPCYI#1GuBdYr3`r%^N^j4a4nUaWfGl7n5I!zS8F7XXN9u2IFAj?Dsl}iNDhF=?rg3UZXt*d&@pl@4uNeFcXa0TMABs7Cg%Rw5V6@FBxsW?uuc&)mU& zUJYV&qgGUzunh+*zUs4hz@aXRN7;TwEnf&HOU?f=gHlL^Bw`ytmg>!Bc^OVcyJ*P zehn8cES2)>w3X2N-_I80h^aE3H)d6INfRcX3u4<|*n<_1LC~z3_$DAMs496`wzq1i z0|F4Dp-6kjmhiBamP*ti>=YclP%2dn?JbCUoQ~|!R(-qi7` zwIEQBE>?^a-Nw3`W^l%`lczwo%q9pxbd1p>YcD7V>YRJe_}S!Yl-kqhk^)(8e`S5W zL<&cstOZPeKom`g(Wv*-iPhYF0}=y7tp^L@eFBJSDiLDaRfSxLDFBIg?Fvky$gG#@ z%|@e9FPGQyQm}fA>Fi>u6Vj;n;$vNCYB8J8vXf4;#jmS>EeK-+^O&Q~6Pu74Q?MXQ zZ6Qai8YzX=C>}K!W@k3bKnn6r0HVDGQJ7n3Zq?6Qj#cVf4CSrn?1U*o5##o)1sR&3 zpPhN!MORkhPf70en0`6z)^*}}!tiRX$zY!7FdAiI3JOg9gLK7oy3y>uWSkxgHu$xo z&66!v?NXWRD+|JNEkI0T@YpR!r!x<`ZgLx97b}LDxEHIQkE?KDg(4D*tTkAq6SO4SD~A4nC`KVH9;KJddd?=SSay=1NM1TveP%&6Tr4(t>&zsc zpz=_mXnRg#LUIZ|mfu_pF^Grj;YFzteNQmd9QKUGc4(x|4MxRN4qs?PlI5-Httz#>OY!S zISMiHXLcNm1wdFQ1%W>A{brV&D*?#8f{%7WJP^|BLh(rfX-3UQ zdlm$hc0d^YaF*Bd1qUIz{(z_sIALTb%bh%|vL3UgSfhd%Rjr3NCanSaKt=$PIpAJnGN@{;0As{9LAaS*EvR-ePt@xva z#LK?B4Jl2V&g$1#Da*V$$8tXbi|}WETD5FIZbo19P#Y7vEt(AOVQu zL__r064q;VUrt2Dj9d6u<%VACVx?e0Vo`coZPif?03jz`EZW|`fY<;;SdfRwP;3=^ z3qsJFm5PfMU(Cd5YbrGj(`Yoy>sZ?)zfOD@TCJ>@LbedzWI5J(71sL+5T5f~k9W5p zwwNrUX(nA-kj&)$+w{fR+$uT+uUkrlClAtDbA9XZJPh0sf*3}#zJ|KwgXy(4ZwlGM z_~LP84P$f`toHEB_gnDtJ>F+uWM3oHyUDZhon?5t)qhcp!#A^S^@%@-Mg`37No2NAk6Oyh|RsCXY-DD zbsmY+&B?aLKoUNZ~OEJ^*n#^<%9sm2gp@dMQ2v zNq-khDNbjxeqP;%Dni`>;kiy30?uvtRxa?!nnAvp(=|wcpBU**#X`|S6Ay*oy#*Dk zQj4C&g<^kePT?sC$P`A+Mr8Tw(5jqAbPhb0W1*?$7DV02GA<23EGx%5@PXLYb*nYs zV3-M~FCeS0ooNkLTqp=c1R5m#iI(TOi)Si-ezE8QecaI!Y-z4o_08mFy0-P2 zaZt#Jz@wag_@NIVtWnn=5VH#)cFyyt*w%X3(s=j={0=59h>njx03aKqc`;mZfg%m^ z3X4V0qtY!dEPmlDzqz~N8>WyS)M^zM(++K$w`AKyQN?E}b8e!2yH5LHUbz@x`mx&f^zh z=>HgKRhiuukBiw7*isGj4DZNC(c`gJlFd2&WENH{H9yOk1Z2a-;yEq#j6V+(BEk@y zr>3UQO`UuE+>~g^WNtY&6pg-tNKmO(SD}RkD#ZT@AVol+C?zPuChD_M9$2Bj1%dW; z0HhqVAh^;Z1Ti}S0;j@j@8G4nz{Bz=@(?b2^vT6$pe-PL)gSug9CC$1I7?OpG?|IX z+XiF5Phtcy2}&Vmn(BZ6h}f*ckP(bK!kzkBkQ6$yShHgc(qOs+0{cNBdVA1;E?v)~ zz@rxU%xwQKjRCP&eKz#k)~XF{nj%0lbMtZY0QOBfP=nML#)!=#Y_B_Ob?LiZs(?U8 z%x?X>?G{8AKx(<|08p_BeWoEZET2hv~bhNve#zEilNY*%Ta5@7&3tI-YnWM8q z(p{8?xuGm}Y~h)TmQ3v7sk4p{AOwTh;tK$YdP)8oI=DpJ|5N6!x>)=6Mzx=`7h6nd z%Q7PrV|39dFE3x98OCj*>t)*O%^`zzl(D^rI&6`GF;S61t@Y*s1H$Wc$5v4~moq?s z2FX2h=I8ZV&}cO9&Y`FbvB}*S7-+bbu7IpQJ9MY`!q2_-H8a!F$3kE4+-r}`Q)}eE zPbjoTt0=^lRC4+1brc~ZBuR`&q1Pk-L8*XHg_t4R7`BMej1BeHjXjCcp4}Nb_U!+} zC!UMy`RAS&`__6MFSag5XGceWyHqB%LUiH+Cu%^`A4YMvSnj5MIUUe#_c|54TVhY!nt3e)YvqzxKuFUl5{CehKFdJ-@j@ zFCJUe6cBEI;kK7r`o|r&-!em*JNlYiZ@(jKe*UHBNp$K#FNDVn|7g>e_kQT-sR8gOQE)@NA!sa$Tk8M-9qt$>@>&H2; zBYf=t#B&F)f9G4?5z$-T@(yeyoUn(NZ@z{$6mlcI`SJVjyYIe-={R}vhmFN4H!}8|i9s`&+2M2?gFP%eP$fmbbk5EpMh>o>4$_ifQ8uye0hi#rdl1NLS%% z^V^}g@;d11Ykuf$IWs~&(|+;cYp=bY{^@J3Bwa7Q*40;$t`w3dS*88DtIig51tjNv z?!-MOPTX@3m3NU&oVe|_e?D>7$3FJ4yQt+6x~5m~Ds*B~kDR#Y!yo>zXvGx@*-r1d z>tFumqtL(n%g63|9!ucmMtuzo-4~ z`_9pS*6Zj_h;GO6|ID4ejvUEyw(;#JLx668#&C$83s`RfnOsa%*Bg@-aSZWz`ZZ z+qd7oyz2b^cGUG_KXiIKKK)St4ElC_f9O~0pQ~3_Z?{6yR+r8CXQ!L1A3mQW>HhBX z>)UlbbXsD8*sJtnd`lBoYig3+b^89lzL!Z$yZe6IyBlo=#i_ZbqbN@ojsrn!|Mm~x zep;;7QCP;RdB09}3@tJ>U;J@$Ame8N{^RGL|NCDb-raxy%H0*u-|m*+hPO^?W!*RZ z66^Yo|1EcE^y~er+n}54>w)K&SAq1KUe%XQX@u<6Zh$uHV58bL!x9vw>)Y#_?ewdg zo9i@Mww=6vlj8Jl^{n|I+k1v?2ZP7iVF}|b_3G7czjT_H?G#PayeTdc)HR@49F5PH ze%yR)+tNR+`Le$JbOwC<>C^INU7BXf8dLEmNl|JoHp}A8eOsF^9c$j&wkKaY(NoJa zTI2Lsnkq%rAbF!Mzl)l0TUU~An(LjUmc5OFOUoeBZy96px2I1JA3r{tZ?v>=b}#7e zZm?rKRqM1JYRxs)i+6EeG(ZmP7bEdv9d@s8f`+L{qqZDdys%>IQ&(BJ=>LTRJrI`}wD|i9kiYa` z?=E zcAC^?0w_(frBxQ^4Q1JYl+-NMaMZQj;v+!PS5WpfLs53rf#3c0CqnfNA3r|2?VSF4 zlKTY%6&0daNT>HFgZO;<`o45{K0v~CHEU3{Nie_Oy;c9g@qh&F^08q?-hukJv2a%jT40mc z!#+w;<8Ht8fvlm}+l=7-Vt&Fe0y(2swgHfPMzJo820)OYDb=@1uzGLt)f_&j#4Hxc zW#e4<8k{Pqf@5qGhpA;Mva?w;FpM_$VnR={O?DFPXxmAzUOyKg-+a~@Dg|*5QaeeO z>H{e9aoX61NDMK{T(*;;E3iE6M zIA&IJuk3L9#|H`BHrf#K^t8RG`{#SYE7ca*&RL+9E)O8khhGeR#UNp&n`4c`M#BT- zlM)+EkazVpc_!L1u?({YWEskgJ&P^~t*o>_Q*vdhnj|B8CDcRb&H|7nbOd0?i;MQ^ zR^wiYegb#^Q;}I-bIcj*M{Y3B>*X;!&;|dVmz6<-3NE~NN^b`;D`0>u$bxX$8_K3(T9SC^q>?$x);cav4g52@GQkC$HB*U?`7_Hk9Q(DkJca*_TuC- zT%-Nv1H{tzx)>!PlnxtLg9HrJtPd(-Y#i~u_XJ6R115^Iql~d4dSU?`7V>VE-I~V| z-K7!dGMpV62&~TnkU!n5c`57PEEl^>+=>!{bAm5!lc)!gzz7r;d%at0yoG%77)%yo z9XWkBPc}}>jw?XCJ-)wNd~tUz|2zLUl1dXcDiU`jSgFl8OrJvnniWD4yfiI(&wW*cH0u66wr1&Zx+Q=HhG#Yoem6AWts`Sj4u8sM2E| zr9d?~4gs7a1^|WELj@Ss!E7MPi}xVdU{Bj)BFV054un!!$vF46m=TB78Mg`k6xBU3 zI#pP0@`6Yr>F`;`&@fP8N+ARyk=hWFOPKgGhFDlh2dORgQ9ulDt($WX5(MlCSqnlD zjtQn``ywDZBvr1yNnj1(!genZhwA7UPc#X0ZeQ?u(E$0;90p)H>NpT4!sNhYlCWyq zmKw>rm>EnSeKW{tv}{$Q+dTE$3OQyrOG-F{0pp_59A%uxgQQ9@iag~P&EqKycgIWz zZnGxm00cXMC!mJNECiJ#;>+FaL6r-XYvdZ`9QnvQ2F^Tl$jK!{Skn;0p8=0y3P!UJo|_A{mF(q#Jgd!^3L2Jfjn!>k@GcnF}rnFf*1) z26b)^QsZ@5#&ZBW3SoPSQXDrop<{YFbm&-`GQPTNw<~oKzQ1V@=y`~)Crly0~@F@B;fE+f5 zIguFV%RixU#I?vQyG>tZz45k1WZww9aOPv?(aWb z?%TY7eq{b8WIBaAlSL5OpCQWnrXmYH5X7b=0+yIIWSl!S=uKjbOwQY5_FRHY)%n%rU(@MZ27{4Un7Pw%~`zJNzX1>A3PLLMTTOyLQYnC)wImlr!RMx8KA z2~w7n1{1YH^#P}&Db9?36uE&x+%=X0WM>EkuMK2FAfj4(p<*$jL+qfZ|76-4l*vm4#xLf_r^!-)G|0CS4cKMt({2xEK-dT5 zxQ7(tE?||8O#DURMbZWk%t4VHFTINy1?}lD48ZOX;NtybJC6)zwbd6Hr`PPshin#& z>6Gs#%r9`ArXTQsNLNOP^*s9ShxmJtWDpaDFtg%8s#8OrMi)0{(G0)AEJ!{sM!{iO zGJ49XkqJvgBwBg)q)*%$szJ_(_#IaTLY|4du zkO%W=r09732o=Q`0t;6~RD96}iDY;>6CnVx+(Co5s}gn#9(dxZm8d<#gYbXj zmURIJyeL3um01DzVL)Tlq)Le9L}68^4==q z1q!GRNQ=D$zZ0U1m%=R{?cst$tN;k$03_4kEL6QPc5HqVDt0D`Y7n-*dTsI+$*1?* z(6SN`S5HLNkAsl&BxFiiKY1LtYfFGUV;t*`f4E&2Pc=kY@`4PidhuYYdx%JjM^8iXjQsamMxTVL$us|3h% zvXFoI=j+2^QMIE4C0vmaEUXePx2A7KKdARqCw90Nqaf9m=V(d@v{Mv`L}%xZ<3O}E zf-ZBiDjs14O`+f(|s^x{PMxa;A< zlk|1_wUz#f6_gK=KN}F72w}bm5%$%Kb?pM*iqW*!Y~Nn7zF9Y22zA&RMt%Rr=S^?W zkH+zSD0Jk@XQOf1iJkktGrv+K6-~Thxu6zuv#_2f$;v^y_2&VEDC_q>ynT6fYu1*< zv>_oFGx)feY}3nIJFIKp^PLo%#bsu<*H`fyEbd-^RVAkUTU+GbwAq2jC z=@iFO1TWqMeUZtM2VygqdV_r@)a4KtHuJtQGky;vWZ+KCVTm?Yz}&Vc+I|enUcI|$ zfP8Ou%MZ-#w7AJzKhPH44zji!+@tYW-Sp+^CO)Ie)K@n*H&=O}i}|LnxBctu>zm#x z>AJV;OFwwCQSU46!7Pq1?mmh`XKdWvAP+6tl%T6YB1n>%W!LSHgoqC7M&k^sqD^Sl z`akSlL2uhgmW~}r^zmEd@=|fYjLx3C_(4sZ77Q~`O2v{IUmZaSQCbkW19IW=> ztTUO|?xRo6{DT2{`(Pk&ZnnLDKmpu{F{hkl%a&%Q|Hszj(@Q^v+nIDD2R@BIl2xyY zbi%UV$5&M>zIV6zDF_1o<5n-PE-nUxL8CEf%+Jp^4CcQyNaexc!oZxf=jKhpT=L#N zFfi8)A!`^62yvV^w%Isr+m!#+vFGjic_&RAlh2uhHk(p7_xYDL{18^y&YW$Ko|*rA z-t0dm!PStU3<7MBzzv%W(|OZcliUKNjm9z_4QOl@UGt-lk8(_q^$0_-nQQcm^{6&M&f)9ngX$~QWbIVUO@l_D1CYBOTgS;=Klg2$cWEDNk*8vl_vjm z3-()cbDw=0fi~voTy5EJ4Bm)p%u!2Z*bsr7M$MEj@eyl~)gzAO~p)Hu!fQJbbwH z@Zkf#0WgCrGq}9O{X9dldW)-s#oAhN zZ4FMR2Sv>_g~BI{em*@lH9bu`Y$oP2$ZUrM50Y37hJ>z~15%?&h5C77CsE>*=4dkp zpyWhXwSrYGSOs(ZJ*5BWNTj-gk*k@UG`02&V)x~0pda;K8 zr1kNr-#(8WV?yR^qb>%`HuMQ~E4i>d5B>n2oBja`xAAdRMQu=sf&yT~cSwwUBR}}U z<$(LMx|P5$H^YFz#JMXEEze~^>-o=6HB~@@m*Ayv1<6#P3#pD(vswTY2u$WsbZf9H zpbfj4ZcClzxr_C-`USOtnhr7~)JAL&G9GqQD{4DwwQZ zz|AtJ@E2`P@Lw*w6IM2$+v9(zRA;bQ+Lwn#cMNcYq!aAF!JQ#T1i9&s z!&Ak14Q*s`oQxPORH8+XlpIn5u_4_Mj5%38aX|H_0Vl{P$>KD(1nB@l@OOm=ZX^I) zqD!G(FF+O6kE=DyM(0#|z=oil6&RTM)4d?*R;b1Z>`qm&;RhN+CDNC}Mh^UFwcw6J z@d8I~3F5uqf|?zqbE)IbsDd_ctYSNX>Zy*z{2=ERgcO=VQKopM`WQv~1iyPmE)G_K zf~RVZ&N?q?1>xYb{)--WH*#!3RJRn+n<$1rCs%b>G?WB_e3Z4!8N4d!Oa`HDCl|kQ zvyfy#_$Y)LTMoi@23p$}MOQScIVXrK79Y|XCEJ2zOb90kUzw$Y(f}GO7_YyVXF&vj zbcV&vrPY-hbVfcwyq{_;fF#{6HD-hpWp*?0tESjH3DYrbc<615&9*kTaZqW4RHh! z0MMC=4%-~)g*q%Hy@KpPdS(>DyOU#4n|0GUuS+M$=3b5oBKH^Dvx7E($9Vy0-|5%o z6NFD>!FzPg{G9+mhR1<(F2I7w?P9(5Zb85Wg%3&J{Cg~diwkGFCpYF!%ks;*#&B!~d0wSiAM zGyYL`s7v?Gm3RvRc(Y(tQ0BxkC`Wy<1W_qLPI60-&gQFAS11Z2o#Czn=%HGU z&a3hX!c9mq_BB$10SaMI5=@Y472boKbXf898cA+jO z{Y549U2oM*39=!LAOb)-!-K$)1!+3NMJ0TY&P|B2`nJ~OD3XxME#0!Av0|ZKzs>Cj zh2R+LOlbdA)rU^V9P~1@!q6VBN+$>*ZS2gzX=~;MoIC3dn$c?2l?t#R@SZTQcq^44 zZVd^-K%FemnfTHY-o@f3L=^`%jX^Sz>9lq(tD-Fk4AS$8{}fA**~kWhFpXg^2Lc-i zBHw}lz_Y<@RN^C$ald#A6~V6xy?k4c&gPlS7a^XiMI{~bz?^P2_gX1A9aRDz9$5wUO~JCA$V5b z(V7QyMo`QL$pmpl5<~!seVYh^DG4o35cz|2z!$}#O#~TXtPt3OEr@%1D2^Zkpo+s1 z>P#jeG%W(39D;bYh@J+N(0fsw)h&QEs6w zbPSSjg6yAFWm*s?2x<7i;wT#lb*7Zeg3hRkupoVV+-V$9g+lR{!HtWO*vArJL4*>d zZ!fenvsY{m)OThJlQKvz5J6aMTfQbsYn;aNgwA4}?B#fnekhV4t~IoS@d;1LNM}mD zNg>G1`k({^Vf=5s@1;WQJg=ut_XQ9{-Xs<}jias=kBCeQuE@bHQE) z&Sk-s33d7^$77IA=UAi#DH@&0d|*co&kaCl?2GzD5aebt@_`@-KQpHdxNBeCc7-C> z1lf~G5LH8hkcQB7FAsvSU|+3ylR%KEUfc?h60~Rflnd}Q5D5#pr;P&47kMIRc%LPmr~NjRa|Ng3uHm z5+!KHJxeY@1XvJhE`Q47T`EQpLeNb5)+BVXdT~?ZO3aW3TztU^y(%0ECdgi%XR*G2 z?a3oZ9BRJef=e{B1z~i=69mwU+qyM2d(~onNtD8%GAs(VAo+D1w;|Jl#DS&`2iXyB zP10)88R-_JmcY}1nr6T|S+u%l!H;TE338C@wOAqt>AeIALf$u-rnCvIARJ5pL2gd< zl8_n;-~@q2Lp^Wo^%&%uAk}k6Q?H}NW;@B@2i63BJmbl?AcZaxgoat;v)Pmcm3T%f zL5^}g29ZdR;s89FWSo0YIy!VE{*`>z32Clq&$z-h-UHl}C^+taV47 zd8Z+41qSL8d`8qSD(M87?l~bfkc=h~gfI0EN&=>_BzCb*-kd6N4jZ^f6UxzYFy}v^ zE=M)t1R;+me9nqb*7?l$Ph3-;P=aja7oAOk1Yurq_$UNQyiV%`bVfEoypj7BY993@ zxid*Pr?oRHlpx1IkQ{$8b?SQ32vQ0{q6Fo{6Q5G9Gx9A6o8~1_a4+uy2qKjr8wY2? z2;y1;>UEITFz0cm5>xpE;XbiOX3UA^jDY*p6?>z6JFoJm2upF?7UCgu7JO;Y*b96?zx#P#QS!hzyWIx6lOgW#k>sMtG zWV4fFg6xSR2t@p_hLwPZ;t0&?amv0b44i&dumzc#zEQtdqNjn+#vUxEl3uX;RZk>A zOg|>S*n4#*$S@b`L=YlFi%;#+{1qgr&XhoBr*@vL4%1Oc7N5QIcX3_-pUJ zi@491Fk?!wZc73_2@y^Z0Z`}@i@EeL2-%~Q*_Kc@8?#FCG;hH)Rx?|HBw_C3SSKqG z;GkC^K|0b1QXJT!9(UCMJ4xXBBc$$#_U&#}FhRg4R*O3T1A6e`7q8X2)U~b&^7r(; z^HXQIjMy-nGz;RnwcV1=`cZ3TzY2jvmj{;T$sL3A;M>VIf|F$2{SSSYUKv~y9XK#bE0m1n|TKuC5 zGk|9QsL%&T2PyXV_YaPajv!}XI6OQ&*grftINUcE9~>T}@OzM{Zb|bd5fS2~sksYMe`GG>nv(d*EvPN{#h$51nKKPfaas^?gQPE*$WUl?h=uDV-zaF&Wo{~ETDRiBYx#V$z z7Ah+5D;fAZwX`jbCCN%NQMfImKd{HJgJ#PI0b z|NizrzBT%c2PiY(dG!2;Uy2tmUQiAo;rY_4lGVd91j()~S*YAwu~C=!In)^?b}d$M zKm=iJ1%fPNV+qW&i4qva^LM}d_xsVaXV0=)`)qgjhaYzT_WUQc8uu65TU%S(ux)Q| z?WQ6CDlx~i1S8_Mv%Ry08=l2<$L!`v%iGVFWCgcVy_ge(CUEZhD-WGuOqXcI`=BV7 zAianafjU$RdgW^xypK7T4BC;zK9+U$@b@o_lE2u_;KdHqZqX?akp-|30YIZcuT!nw z*}We<-${X426QTWI(yaD*0YDA2;x=yadXVgDB`Za{B=UT4yH3L4Laiq9fM56EH8gC zi1=rJg&Io)N#QR9QBQf|7-C&5{eFAfsQ1qE40ZrppsPlP?ZcW6C!^h+Plv7N%fbk9 zp70?E;cj!~>;Gf#e3lbOzI?HB7znsLTQtm&Wr3S*d)c!f8$iMjC43!no<=DG@|28SZ;r&D7&YNNB4@OAb0TA5X$#XbgJ8*KLIm5CG%q&~umq zJrp8m#)a9i-U?%*m^4DnXOjsTVGmK*s>%~D4s%!Ved*Rwj1WqNaQwBr%(Ow3 zO@ou~-q;i%%Rg7`$Lx(G4kS;vTZP1l zweB#OJ3F?}%oPI)>=j3RK4hH?bA z`Rz|e&rw!z6H^_S$|uS&YF8B6`$K!mr;)yo4ioe_r{5^4&R(wS#!;d8M~ilwl2=PHWie8zz2zLikEzja!NA?=K$zBq~*lguF=$f6*W)VqgSXp zTkMacOpgWaqX;^>8Ht!Jn-_L7p^bxSyWjoxvTYsevm`yJG@J!+KnMow36*@9gKV8K zJ&g(?7G<_Fgc2E%&=6^%vWyq-v#_-(m>E_J)jx&aZu!<&iMQROyn>=Wv2Lr!z&pX(s&8JMiTE04rwOYN)8}> z^`jb7vcfCpCOjd?m{9N*gEsGM$7hHvJ%bug$iYWqXAS>L7j3UY;E}|r_ZZVkqETGV9$dy^UlVIlJMNj|Trz(443K1Sh za^?ZyT1FT0;$Z-qi_fe6&#mG?RSM5~cl9R|H{o8MkCJS zULRgrz99}r?H00DHV5s{WYKVqCpwq;2%wE3db@V#R+E7d|GV8 zUsO7W0WqzVkjsuGnnb-j$ql)7w#5t^bY>hGM^Y-#6@L}{10G~oL8{u!27=NwxUqe6 z9Rfel&jkgemzR&yiEz^__}rIaRHIN}KsQ=mr-wuCgggDFGv zf1X8=5mPwhg-mrTvL9v_*bqR+#c9s4N2f^$op=w+HJW-fF5P-+hv8~EN z;U!o}qC}$6`%PpbOgr4~D{5|9E*jeUap{Y)h%q^{zVZJ1;fzmsS7hkB(j~U|Yb#s1 z2d0vLMw|8b*WyubXoRWL4Tvp1u-Gh6L}4KgV#KP-4%o*f1z@gd1nWsl=AX^av-9EcnY8r@%rlB+UPj8jt>pSMR(}`Y_lw%0SyD=$l zauQY>vP1gbT3JkvC7s8y3d0I^4*^;M7Ifg}QHA!>pmG_juc`km1zDJ+C_ z5D{)0O~yunyCv7pBAof=K9k4Bfv)h@Mo#OsrNw(<)D4wjL0k8ibZaa>bq)Q(CJ$eu zpIZ0{o<=ncw6@Wwv5ABocKlP83el$ zC~MJ9rp#K;YrfJwL25?`h zPN&U{$ngJLmBs+~7}F}r!pc4^Z+VU=i>#uJlly7`>zEl$Sgp%NB6;-`0jKaENGPB; z?bX9S-7Aq;FbPxm=X0N5n)M_hS3@{W zOvtYn=AcXj49BZ{-A4Bvd5&?@-8;qLcZvac8;(txkaOaYCG#%^=5`rm&mTv|FQS%z zO^)d3{s)s5BHvonwj>PHSa(}9goM&;R2LMQ#NS416$84BUC5V0OhD-1lCJPgy7IcROGy8V(z zyVTszEb*M;g5JT_gu9kUNf9uSRU8V1OkjPzqh`A7NHTSPc1+cN-b0YU=g zK=S;wZ~M4Mjgcc`XRtQ#>rB8aNW3%1j!TkcR|3*+6b;wF#&X(t18>mX7}`k9cWoIE4F1{Olm3W{BL z+{h87PR*d>!t*fp8eb41!Hc8PdyT!`52HVc`ef5oV-U?)&}h(c{wXEi56y>{a1Oe~ z#@Q-H#a3_oF}Psix=bzBNvD64A-{#PMS|5LzQ4%d)P4r_9U5Vg43Atgy+U}AV6Z-N zDXAAsAO@0B9a466Wq!|y@vn!{jQFr|A+u_v+2Yqfn9$|8@p+q*@Je>Z41Xb165Tkz zVO)XTp9+!Vs$_SF4C5upy50SHJDaf;1oqJ67h-vj@39d??KVk5p2Egv9HU0{q_I7MMBl|KkY^ihX*101EDa)IfKkkRvF$~f_&H;0YqX;jo?s{# zKUs0ZzXg9cVXQcB*M4jg%8Q;+p6R2OmI{!kaO6M#@@!lc-%G9L=nSdT;WI*umz}O) zI*J7o>a!FZ4peLq7<3LEV$Cha7Ub<{larxg?Zsw(`to%F8#pf2e-SRIEy8&$#8L>) zjbUdBP)bOZx9qojorN5h5N+!iTzlHU1-K>rJPQcZ>Z*T(vm3^S0K>J;YoF49$srKT z7);~lXZCwGS&&PJ?EOyM^{<$68wRW)f((f9=}UJ%|KweuMGjV8h+ENu`XV)dc&M14ZAAu&#NBrf@hrThPB3Rmj3~U0eWyoJ+kdp-vIM zRNcqeI&>wX%>ztFQD8sv8B|R6hcEUFPa90Wk&VIGLE7j%)#6ef1C3+}zI#`k6imq+ zBw=&J1bbtt_lX|N6wlO1@9(nBt@~M|3Lw_y6i(k8bd)7w|#b9Ij?ncN-F+ zx@?a3wykDzca&SbU_(C^1vWsPKMWW9~;H5)!)g{Fk5 zu(WmO_&%tbbojqQa;epm_IUfg8g1M8lN)Q zz!7m1)h{jG&}DMl;xPV#*~u4tVQI;$`Gq#P&>k0Ze^$)(86NAWmq6-esDC4Ia=l?oEE`_g`^~+#rzTYs-Nx8 zFjL(wsmkbQW8E+;=0{Fy?9nJ1g~Yv~rJ^gB1?%cC=C}2mVZRFksqxOXFa>X`f5rkga@7!;e0JpR}-_D3IWw?Kp z>IkfsEMm&Mn=V@+qeJKJyj0TZvIpRbFw=zBYuq7h;Jm^J}GaCztGh= z-EROIUK?;=?I}#~Kq`dHKWPiE2ULW`rn`du9Y&AynZ58mF0>XfASvJa|I@&UR|9!# zrX(OgU#*3qFwWjB^3JlqfUQ~bfUpbKKnb!$at_wqjwe7Zf^VVd8spCd=m(-16gQWu zAI-y>lKa_7hkf3%R?ktdvo{dxuH9j@a^TeoP@WuiBzZrbo>1Qq(BxRSf7N`ZR@-?V zSB8tPL<_L^#8`033uD7u3jLm4sx$wkjS?o?3u5-B;8K9oDPSXbV#!b~1e96%IAW=* zshDs``cf9HVR8>pOhuNBOBEmRsY~R zgO5>QDw$ZVvY%HVeL5c1@5J9v$<%O9x?I7K@XP*DU+sPGRU#Lt9EnO31WGGRXSpQp z_vj2;hVo{gOQ3hj=0Ztl1qRu5;Ws(h=z~(?C>98&wc(vxIfF>S9;{2DbHQ+0!~!_< zLhNC*-+0db$IwTOpx!YLhMUZnp9eI|)HwG8YinkXk!~T)1Z=v$Q8AO=wYK%Uny<%< z^xfe5Qv|RH(&C~3d?j^x_fl-cA@4{R#7@rSEpb97pIC}MeMfcJ_Ys%x`4BEZ#P>IP z-50>8u*E-3buyu!m>yj;lC&sS(`~1&LJz(Y0_Pdjepv{P;D_j}u}yMgB~o`Pr_sysJGu7&2g#QjefC8A1?$hWJH zo{TUUx)*~;{GZU02^+ass!XClRMAZUL(Q`hLmZkg(phAT7P!!$O?^A6fDGm$=QNb_ z&Bl46*WbN?@Nsp{^t&2U!^5qP*$_Z=ul9qoF_J$hslPN!fv?i<}A9PmVi} z@5}Nl72kGpITI1GVc0#B8|g-Ir=^1#4}mNWj743P=gsyH?q9g{(LgWf5X|1UKDSM* z>@c?MSO8S1V-#Cbb$>rC)xY^a9wd((*&ChFmV-hExoo^jSC_4lqZ0;3bhBH7=S#Y=1tgqs7&N8(J*w*)d)W=r(p$l&K;1CN=_`CGv> zDYt-_7dO3^^oFw+-31;`Gx1b#)^K@dP%hkZ zn_jv+yjpcnXGlw>zJYr%zc6a~U^VPxBUU|z!Rdb6w8qZ2&&{VUEpt>6hS)DIMvK&i zmumj&R)7 zO-~18L{_hZp6Z(k5Yq>?mT89?D_J8m)}tz8Vj(Q5;oLY%Y93$Dwi%856Z{c%3PpKD zC3!La;M5O98@H-Cg_k@$^x0%|@Rqs`iJI#XMud@f=46ThPEi|_1U=;rep%<@3cuqF z$Rg6-YX=X;1$_lmRRT)Q9L9z{jRYdbTiaDhqQ5Izb9Rw7etF&SaTaIfnV`*+$LGT0 z;Kt!1smmd9k-Yu_uurxiF$Pd}BukFtaNDY+_@uW+Z&v}R+NI(qYZQGMG4oBcom&<1 zxqb{`N3o8N51-6m9k{GCZB!MgJoFk_q25%;1&SHI|HEd{Z*V-?i^cqr;^5k*#$RF* zqmZc~T31>hGG`g8v{Zf~T6M6%{>>^!<8MA+Rx~)nz@%Lv$=#yljrn{s0mGb;84-Xe z5#3-~@u}s}YxCVUDg70b1t z1>{wBS8Yb{2`acxv=|o)=MUzB#M2YFLBpU*f&gOyInja7Ik+L8JwmHs!>C zJ)2Un@}Z}xC%+FyLi0Dnpcv>KLpWw$T$4}acp#$e2<-T5nSpj#L^}22YvDX0sX$m; zS~LRy9F&v(5*0cnxP=y?hzB5I$13GW5=tda^~Kt9u=tx9&hLE1=8Bo{s}sCF_Q&5@ zZuwJ*4!|9RRVa+5tMJ}BW}6OqZUYMR8;?~u%8o#0aglQ^)=W^`S)@>e(k!!V0OXWh zd0u(U0$lA(r5@P2$~ z$oD_iKVB>tk`#f5pZ~C-rvMNM;+7WU4YDef7BSLZi627nmAo0PW;}kipFwa_$JKVvoi# zxVc(|0R9ls=0$1uWOJ(|Z0Z}G>u-L3hYu_hPr^k#29~QZ?Y5UYqq>1t_u(G+{PgIh zZ@$SSi=lCWaqD=!;wH5^DMhh9^m%`s~D)gTf7Heoa2gi5OM z3xeAlz*ZyX5z2%QiDl*jN-kRc&tagqS-Y1+AIBF)skx)#GZTM7B1FOW`yk9PGhGvk z12HU!K(0@?EA9tiKGf|XWEz?hzUh4RaoNxKeKU~MOIr$n{;E>ev^JVi*>AS=RC4;iD# z;b-tUg$~9P57bm42t+KY|2!=ER(ZdYiu!C02+f%6nFy_eu_+kGU7jUeR81NM(il?w8zWZ6FdSx9S4tn%@12Z|y zib^1e_?)An{=WC)l8xCV@U5_{PM6-J01`gS!2%by_^_f9oF7Sq6`C^efu*?dARPsb ze6>e0nr?t3{hky0a{TJ|<&wrs0wWS_ekH=5$y`PrML0Nx=^5Fu$nA&bJr^HLH|=Kl zOC%+e?CJbVWbzvj51PCAQBO-DQVvcMO_O@_aBGId7xll?052?8tYE_t!VGWNr13C# zH9g>p>Wo*M4!bpS1c1DL_5Hxq^aft&wmz9lqKWjrc;4xaJ;3=L)=kxM6Ud7*Jpz=< zFn;=s9MQ{;pe@86lm^Z88J?Y*#sfKGZBRYWuCbu^P11ee9QkYzLtN$+?E(7jq_|N2 zR48Zs&tEO~jOiR8lhE%_S*1tFo^=s;@V{$!N&|GRv3n9FI->?jib)UxfsuFqb5?(; zWAvI7unw$qc{X4N{&n0QvXA%-+zmdpUp+;K2bffEJ*AzZ2^5P)`Y_#Dtd)g z82H14+u$g=a)(qxua^d2^Pm*yaWVshJ{9%J=QbQHIU+nui10%W18_;GnBKTVHP~VR z&yLFEEXyLoEuLG-rC{Y}xrNMR%=y+>4shX=U_X(r>Uf4LTcLN?^Rrpt?8TReB?@Sh z9FbLsA@qa6bT80)JVGRf;bn@~X3*0trZX>-b$r?)r)~ zkERrSjem&VC*qC$kA*70|+YnG)5ku=^7gcMoQM>h|BnkHAyX(2F`EoJo#^ z)Wr5?R%SK0Ln_iwfB{x8fs2-Z>hhv_5A>{p@(+Z*)r_^5;z7Y zhiTvtJd+$pj244Ln9VDEa!v+rvB2L!GyXs1Z5H71NuiOeU=Uq5F!(shgoX6VKt+7>z3VJ^B6=zu*!PO8Ml)n@f4QW7RL! zKgIIIYy`POmZrY&UThj5y>kDGrk7a~Rb>F4uJy;#(hbgxnv!$^jQz`nhdIvXI;xXh zmZ$lMe0E;Fs(Jp6TYDUlBKuSk3f6wz?!A?#PhxsD z0AmP##w_*>P`EFQue!OE9DgS`fdE?Pn@7XT^W|odgNgUR7hm*LiQf_Ac{r9hZvP#? zWG289^uiu;wxg=Z}U;I>kq=SJi+`+8m?{WF#I^PYn#cck{2|K@RD2pNr$%>(Z zxoH$>F4Ln)c6*v&cdzj9$)ZvRUk{NDDnHBI0R8I`X-uwuX)UIN_7M!p@8 zX#7|g?*5Dosdjl4FE#s&UonIx5xlpin*oS;&x&|**@o7BHbZUd*7Ayu@K7?JSLcm0 zv?#CJTv^u{P1V4R86EN&6$^kIg975Lm5SN-d*hn{@{Qi!3S)aLQ?8yOe+DIWe5Lb{ z(+Bq??qVPuk$m@*!w_O3X7rHAEmFI?v3(Rk3j$UK0en0^eHZQEf5`=%pUvxs@nzuv z@y>SnVtXolP`RL22JjTJky65cW-UGuU7~hrX{HgC9#b?VY7vyo`mU75cgi&3 z;+OdHmYzRl7>C80#H$PBR+5IsG6}%XK3!I7*hz<^qw$_Tf*s*W4p73-?Ni{8i2&!HE?|ZJ zI-^di39B6GGoovKRxUFqu$>R}a%X+QX}R*l4MHG-N%fcn305TY0R)}Y1A ztSZwdm8c;rv@=qQ#dv*>ysjWJ4F5XyHzBx}AW1F1PyGJfQJMh6&QkMrvwDcly?Gd^ zPc_Uc3jg}<6Ot7KP_}5%Swu=Lx0IztvF_s9S%QbmqPVc}L*S+8+=vTUCosPAu?aw4 z$j@8w&qqG0@N_Q^mqUewITS)OkOYSqH~ag46bMjqg2R1;^P<6jwM=)l?BG2;1*9sm zzX=~H{&4+u?^^yE@F;fl4>?T(0hNUCA(Bsr^2n`YRHM117;icn;tDRS8)4C_FL5#V z-c?6r+y__M-F?^CJ-Ts1KY=iCOUEOy}Z4f01Qzy1yT#Y zzJ4jGzf2PfACmE^_mfkL(8I<{K=_oD5!^>B* zP?NW1T*2q1+j0Anh=KAS;g+xJ z24M9p20Vq?;ov>@&DzDh{dPb^+Gglut(x^y?}ep#XC|wwxM(T%_vdF3{@UM~Wz+ox z)BuA?X;?AKSUXz!=KZF^^0=^*Y+Ts5<+(ZtQ5jhMk5Fg?&88s?ybxcAAykIG{PwGn z2{VCjSqD-Q={?xa1K3Cwun?mXcP2%^5K-~~^lo7Zc3lCtq-apU!#fOOB3cn8{)LhVR4`qAi>JA)NQ&^rz{X90M__O)S`vW~REL(mOUO-n#rX1{#s^aF zH*?F!e_jZ{ykoKXu{`Y@~v1yE$(wAt@vN?2~Sq zpd4?26hbOah4g|}J?T*AMJgFtmgj8exW*YeCxkmL=jU#_dSN4H56lPaFVMN#`KBtD zR5O-O$bOuZ&(8*jd_#Jd=K1v*fAHk7N*gat z1cl_Hf>n8_Y+5|;+g20^#vvkwMtpU=^M1@jE^9oe@aYNvSj7^9xnwd-qTv5@FkR4r zmv39iBte^*a{0~u&S^jx1JlOt;hRfdD_bmdTSD1W^7>;1PNqeo^31jj2Y|AZw3qL; zw^H56A5-k*r)3$weT$V7|HR*lpz!WzmwK>7&ry*85Ebl&vwPCAEC<_1Mb8HBzo0W% z_tRB5f`jG&Xq%pIl$EnRu-Nb9z}K+_7zwg3=GHY?bB#@vK!Y<4F-;@fGz85Ru>U!! zuctf1pNo$ydCKIC(0@I`64?e6wcxzfsic75cRM@HgLmQnakz)=l{CL zb<)100I=_n(q*Kxggo)VyZ;W~VGnDJOEwcTGWD)-6^RwKM}*o1cHLSL!(p4GbH1`t z6;x4%N{@b+O8;8&0806JA%d&{EC?A^*u_a2vFHuP4_G9SN*IcA6jX%==~U>r4jnv8 z+^WfD$o(9QO>X@-xd}(Wr!)CsH3zIMja}(I!BC4vDl(B~;=K>&s1^%koi58q2Lw zd{vRH(1eL(*3%6wcq)~$K=Vm7y&Gck8t_Ly*oUgjM8@!7LE8R-6CYlnSoPA4n(0%n0h6p~;NO8Iq8mFEDo|4Gv(00i(Eob1gsD=m zy{&a#bm?dVdgIkvsnSqZI=q1r)UZXhK4AgH2g1-lH_NL(8@G^KSYl1nU9!GFg(?B>sd0k2pJy?U)II{`)&Xv zSV3ssjPiW@8pORtA9bfKQ%#41HYsILrr5q9?5KEa^54N*ZnQW6|*Z29X*RP*ql8FC;oW>sSH!UwN2KxHwDRyU=`e4@^%@dSj{hJr5 zkE4$hX-|tMz_xZC?{nS;UOx=~>bk4Dx!Ft22{d}tksy`vp7Sg%>+JY_-S&vr*xY<@ zaeKf1=OIx1JSgz=@q=Gv;9J^9aP7$z;g$P@xIwe*hxa?|x6!hE4-|J-9*=WxtLLUe zuh(-PJL4b5*O}B4Y?Kp{`wgFjfK&AoGf%pl#?%iUXX8fHA9o&CPp4Nxegt0dm49g3i2v=rK0)-*SNy^4g)DB zNYW8id{$MC16bXddI4K?9O23U0Hz{eZT6J}Bqcf&kjy zE%v%PmYK#FNSvyXk4+S06rWWA{C$1Jo{amd3XfQTfjUo4>fhKPKr`-_zx$SNP5{VJ z)B4JvvAL_&p4n*6gcJcy0>dpSp0OM~{zR0n86<_25x8 z6xtK`vw}P%$Waw5`|zK=KZYjpV>wc&h>&IMO?lbZvU*?bvBricbwD+6g@qQsxV~%B zVaru;;ZaH&6j0S8`jB-!Uk$0BZSuRFy1=o(Fi82Cq&f3yYJ8?yU|sy6c(v5wc@@J5 zsD?7xz98!BH}Ef9rI&Mcu~fx>+zn6u!*H|8FN^q3CWFZ|+Szpe1(nX8y)fQu2wols}x`7&0U(153AP*F2YcIQU zEWK6_%n-t>TeO~4Kg^0sRv)SUhU0WnzAM*FAqp7T$#dM4^KK56`onYVk*(uj_DM9Y zzy?*FQWU`7P4i8A8#foI(gXj4n<&2)E5XNT&|0GWCHkvnJE!Phu@`CnHz zSi1Y)CwIJ8J8kB}E2i0;**|t^`e0b%|6*?bvCiTkF!g|*&+0?z+{doY<;lXSmZ`Zo zi(z*sL76>So>77Gpd3>(mYIJvio9SPpPg|4<$7s|yx{y6D z1}oN=DNr}i1%Gf1{^>EWJUI9e97(ggwXU~N%_3{^7kZJOl$=f!A0Iy{?e{B^Cf#WC zjn6G(K6=<4&L99fme%XRvs>7`$?4`hzn9rnuCIVDR=OJYlYBN6W^ zVwY#nPZNJ^wY|E9#P2yZX7f4L+%Bzdu)Wehc`JFAl3Knn^`*y3Yr_4br>Cd;M90S^ z@2(u55|R7BsL;wLp6b6jpB<0aUx7{4z8-!s@m-Z)(e3dx1 zKV<3s>VGT%kDp@?3VwdIO1X`enNgWoXMgp&=;TwN(w=b9bYo7&3+5!>?1iG6>lLw2 zohP*Jvbu2%@3IkQ*0tGPW}QJVuD^lG6Uyg;3@frbr54wlHws>T{!A$SFtQMpY{7mJ zl3ZPBz^NBiB(p1%UZka6m*7!}?r>7F1>f#mXmP%@;Cgvlx9VF-mKj7)33y@bC_A#) zqkg7J-snTJNUf22yJ~LAU7BM;v6DJ^W5B(g)I`#nDpWPOuRh13-uIqXv_Z!~@VS-V zh*Qns?@s&DOyL zUZYC(3rry=lX8CRg35q*b@^(WWv)y8_tr{$-GqWVdw*?l>+k{WV*1_cCJ(MX~&)YB%k9sP#p{Z(hh=le33aN}RylIu!WX>FaE`+MMGY(*=wEH88dL-Z!;o6;@Kl%Renm5s+-F)Bb z!qEUl9Nm$HjFL(!v4nOT$v9Q3}N*zPQs0EtuQw1_} zf~pzz$A0)}ulvI-hFB&(%{Q|?3Ac-|NEPSVX9O|}x0W+eiMbaG;}7bVX3F{xYF+Zq zTD(z48x~sVQ47;HD8fr=nGoT5F=|GYkyg{1u+Ha}IVgeYsJIx!(Ua^CY@@Q_>#z7&F1^WAK-hBmh2oMWou)8WuT z6y|}PTauzc)UErd1%@tz+?1*5LkQ&-SsDRP>K(Vj`dU#S{(amC?Y&4Nhp^ZQlFmQs zXk2K#t8nKXb_`O4QvT!Ve@Pz_^&Rf_-WWTaZ*`VQACOZ7{R3JMSDtOI;+-vnh=>UB+@%bxuHC3WXp z!LY1W<QBWWeS4?44R%8Jth+is=p;El$ z^!>Ao6bLjU3n0%1NA1cAFLYB6(G1aYLYqN9`1wgXG`mEFA>J4`@#XZfE}F_fm?+eh zsch?BP=};CqBUj!^L1YwA7eo?8StZN(CyxkESt=v@7*_}%HKTX2h`qgc@Idhx63ce zEVrUH=8q~?UL~7#9AO#ICS$nn3tx8ku%{@Sq<;GX+m2-g#KN@lg0+JC?c9_%Iw*&f zde|I@_}J!!M>6p^$cK_sQ_L$BG7gYduK`|817k0`klXblk6kxy?GMm$QXAz?j!(7sn#?2TcOP|AQ;e#^x#y@+%&KO zG`x=JY{3ytaSf~Nu>&eoGxPHbZkOs(RttO{i}WI3QT~x;BR51W0s>OLI)JPaAkD{7 zMCkb@9b6WfH&$Lnv%Rn9IVxnVR=3zY`{uJHMol{FCafyzZXA_ zb*;*a6^B_*I*R#4;D$y)XI_R&jwGflno*veFzkT>OpB+BX1=5B9wOa1)N!)0)1;;O zFQ<9t8<+gpB_%_~$%psN1~((#`7eir#&)9@yi}@Ae7u?t&g??hHXlj|{;(@}h*0qA zu)d%q{)*rXWBp3H3ADcIZX=`o4 z^1+{kMm|Eja@&X@Ze??GN}a+r4`9xY2+jq(r2CIR(M-)I0d}aYfTfKm{LFzk5xCQ% zSsX!4vlrxIaBdQ0wz7p~v;L+>9M?P(kYlW(KOlYc3do?XuQ;P%)c3h; zCh)@sM1;hnG==nW!17*?E3)d7j1#^jxu+Y!%3j}5i8LaDjx*@t?%IY$FNy9gXvpJZ z&1RFC{rjt_x4*Q8w&vHyVz!m@RkA#Jw2=$15_>y3N#%RZNwc*iBX~HqYN)LLf{2b@ zG-qPE6(vLIFx5t*N=ppP@7n3(a;-JSy|y6eJVP)4>GE*o7UiBmDK0FoOu32R zc?l4UJ4M?GY_3zI8yE{H_101tl(~VfZ!SEEm_+|`JLl#NL$B<|bv-Pz5KvgyJg9B- zL;%_`&8?|`!gr<0wS|(o>b-w0@EvG*vzjFMXUOcHq=a!KHQYjhwrjL4VRYO%T zN$7uN%f5ZQ+5bfx-Z(3%5b@`9;FswxD-FPMULy@UBxT&bXxM}$VBgpHncF!uI#yef z*_2dYGqeYSHY4(Rn+_NV#zgZxvg4OzV-=7iqHGl40O#lFpeL)LjG3L!$cY8$6n^?) zK1~stP#r4_6$6>&xUilxI`rkb#?Zn)GAu}QLeK2zx3Bl9{>|ht6I`2B6(`beZi4>= zzvCTjsVrH~Y!)vrXLF|#JmiN+^^-qWDq?+EfLj||){Ce`7>bvMj;`bDV0AtLX7%C_ z{;XChdapwplt>e>EQ;#fgb9f6&;Q#0XZUp}>Rdx$Z{K1qOUiQOqOh50k3A^55oqSA z2?~EUaXSiSu}fpxsu(j}{-J**(-!>}T-)gxs+z46kd9D z+_GsvGCDLZC`hSDPuVnRz4u2BBjN&}je-5NX;bPPPAtC z$eu>IrnA+79ySJeOqn|kzYjhN2w!HV4*NJd%F!N=5FMZ^%=eUZp;>ON>Yrx2C8y1z zm69~c`He{*5VW`MP-0~mCwo7qFqtTczpgN$GX5X05=zbr5`|G9N&J)fBG?1K8k5?) z7r4j^fd1n5xY4tvPIK0DRM-eJxGdm}w^Y#90lk8yig6aaaxg#e)}39;Al=Jb)Nl=P zNO+j6MBFHKrGsj#hW_9Rf0p>n6gd4hCH$UbU!5>pw*1EGVLy8>;NB?};uml~V3>-p z=-^JQBrI86DCw^EZ>*4A(I$U#aLQOx_$-CZ;`61Bto?i<1L9@6P6+C(Sk6i=J-mfs zQo$A@t=V!-t5N7)69a#~oNlkPgLx>IMER=147zo%dt?Gyn3vVxOKO|9*Rm z5{q(IZ9;ogppZnhO*gsmK6p#U(R*ce5GsA<)!fV`6^i~5vNvXHet+tj|9x$ZdoStO zv$Gr5`Z&NViiLOp6ww^8u(210L6(a)Ag46w0zpv;{KSki=>7=Yk{>lC)NjTO#bHn^ zoM{{R&?~?U?^A*B0*cwe@J+sp^Ur}T@)B3oZ1L6Fyp-=VYUc3~NYd7C(<|F*rP<+` z^=;|Xyy=IyY3o-^?Xsp`{u;?s9U>h)=kM@HcyP(sV)Pgnti6f`3&q~IhKma*TKyjY zPe8E0L`iQ^X(Y}hWbOuW5msw8F{N!!(ArjC)n6;>*S6VOtj$U61FwvwPE$8v}=GgHL%#`f^Q`BY+5)3TX}|BUFE7 zyC7Vf0P3|B0HQf#26GR>ztJ z4yps0&%fS<9PP+~AOaFtH_4Pn@TD}uADgtOgr_`IpS3xIN=gQ%E}ot(JW3^{fjmuN z95{FiBa{X}ZMH+YhitSU&}dOKCP@kDT2P%e0c`<6d~st4z;HH`=Hiv29+N;&;?x|S zTbeFB?T#It$J_OOhO6a}4JaA-j;t?4Ul`baXVi-#-pHoPU)9QMB-Gjy0+HtLgY^_Vnn!4&>um7fm6X218-0 zQEAAml3qigScHVI28jW=EhRIUp4MOv4W7fxeb%0cQ(^l#+eS32EYkR(W2um{k>MnRpj;GVvY_&RAy}YjidD9iL;22IbQI!p)(aT`6W+#bL zi%tMyW?OTSq%Sm`MSer3mPOP8O|pR=M1!p2@~o{fBrQ@HT-XQcbra7=J@txI3_X?4 z6jTUzJ*}d_Sw%t;8n6<*nV^evvuB`b>;v_geKrW~xvA?P@TA4b?9!hhU#w=clkXqh zT~`44TA4om^OpdhoJ?n{#d^J5UfvfVPd;9}EirDM^&sqM&M+$_0YrwBJVyjYlH6=_ zE|Qr27%|B58!)hhez0Yk38`Pvu&SPvHwkvL904Nw7R^k3@S}@V2{c((KNi4{F>xCw3lPTkqVjfEV~E?=FW*N2<@De~X` zm7*Zn>_tnjULzZbhUcFez%<0uADCp?gx;`i`$_yDG&g~^e}3sA&0@p z4T?pNLh1n`VtRbmjB}AL zB}FwGBpnOc$n zLQO+MGtB}P1fyEo1_hE?c5!uvUNA1BQ!sG-++=A>a>S>HxHS$}pWDjC*QY$Q$z5oBU4 z#fCUMN;3?4f~qIR>jeyp3L{c1fWL0CoJ#;t*?d8qenJeWpwBY=s6oP28iSI|iu1*4 z?f@Xgz-RCIn+gg&@rEuwe)mv0*7R}-6ZUw;IsC}s;o)j}^aX(Yof2gJdj8)Uo6=iR zsvKXe=fD1XevTIh(UYz33cHJ8rKG1ZfQVYOi$0iu~$ z0tn;tQN<|E5ua5NXb9W@5cz~?{F@@3iPI9zcpg92*U3FVO}QU0-dkyL8Vi#j&Bl>2 z%{U`~b(I6UDu2Kp$mENFp!0-h)^#q5_tfQwJJLH{ESp_AyE&gPmky9wO()+9Ab{Vc z0H?Rkx&Qdjckk*cU!OZjfROtF=;toI8tk zh>e8l>JqpHph?Aed5$x+M1qhL2U!7?I2TLH#xO4*y&Yfkll$I!{5!aQXzPUku-2u{ z8cJJsA5;yll(UXS8l{nVm6%XQKe{<{I6mF4Ho}`2H_p{#-x|kypep2KH9z-fW7kMN z<~#kd{fq2-0A#K-*G|jcs^$RM9@m{5xd3sRwOCY=h2#L4y}V}-BvI&6Z)DqwB2YmX z=L!iZ@gXR}fE3F#=ZY~7>~l@|Dr1#ER)B4js|Ol`P+fRwoyugI0?6kIgW$uH8?_=P zd8N~&fBK1~ekTV=m#k~|ZTzp$)0$;wg0mlQMe&db5a}TJ%{VH>x$!0ZbGO)rqB&7P zCHmm>fI}hE#d&of>&s`(t7g;b)v=<6p9}gml!6R@IiD{-Pc`og9^~^zCl!a%B8&Aq zxUu#9hIwDyUYI79Q><@B5u_kYGm~V+aS#*+Pnn8PAeWyyT@}(*~hD8CJFAc?UXob`Ha;+s$kc4r#Ub{k}h5eE!3kw!M|Ql>L`O zk|GqgT^V1z_r3SM_xwU%zrw`Wj=l3Kvz!~*j4Z>5$OrgDTM)C6zrLDA-kc^{i)i}#>!rPU@#^Rm-erq&0g!82 zH;}ZWnD@=@>3@HFA8)TOMgJ;{TsYQLM8*KJ1*kUfAQKFh4pk0Kx-XnaQZkiBYZ7_+ z0bcp;+3brSGL|euj*91;xV;m#nbv*_0B6IzDNH8#ej_?cqrqSh#={{{(apg~^zr~f zerBX>)UPJO)S{PzaMgQNpi&4(BFzWq>t`v6%Wvnr@qH#9i(diNiYY z=L>TkwMo^nUhV7Z)EQ@v(4|knry_{6qM7@$!X%gD?30 z`SWAn%{nf=`G=c~)LmL)w(|asD9A8O26@xKdl#plKX%ZOyJS%pb1OV4pXIh42Qiu~ z$sIN?KVWDeOvHAif0D4zZ&#;U3T|rdto`px6xuyJ3}H0FFa|)t#m!zUudS`}YXck5 zuvISaRJgX2ZD*%a#@E&cj~AAEz(Y(5;xIKX(8|E9^t;{eFr+oYp=msEw;46NP{p}9 zsR}jtZR`XD9!*(@*pqH3`itme{Xj_wnZS((aW23e`_3~9`|AKh0*qt6#>*o;A3cAS zRmERREcnA8K70rUbdwovA0fz_1UYR`fw?z6`Hr%FbEeMPcc)x-TCGHrS7u%0dibB` z=r)h-NVXDZ7>9b*`f8?gSZTkcCK0#fEb{QsQ4COuZa0BOo_3*7*u*MVcDA;FgzaPz z8xAKsSa_`Lly}Nyd~Tz#20N0A`JKp8Kv9UZLSb#SkTd>{6(-4wSQEAQXhmnA;%NP)1IVi< z0LST*7cXc+6vR5c_u$4q{U*ljBMg%YBNK=?!sz8YywW7I5cu+C+UF!dRqQ6ewWI2f zYco8&#IW_f65G*zRjk5$AuX5jp==mBo1J$Xh&V7$!U1Or7c==opU}WI-rN8zfPw8s zqf%)!8ry(K1K4R?G0GXf6Pa z>UcIDk7u*lxJtxavIvuHI$R(sg?z6&8oV9^aqJ)w(v&P?IdU=_!NyGS8>pB|6(RQQ zZ4&cXyKqYzuifB+Eg`S}YvUhA|Zemw|1ta$_E zyiJH-V>N(yTv!)R=r{ zzt5sudZ%+^|EO{i>J+71ihU<5FY-m{e05Qhkp*KiUC-^sBD)@2M4Wst+uzfSF5!TI%7iTidEs-fgxF4SbG;smr zvk5TRE3B?A_i09e9hwoFrS4URX!F^JH~ZJ5j+u^KvN-%O!dM^OftvJ_QxFPibYDDw zb{s1hrk&+wU58^WE8;XL6{1w2V`{J3SI|ruErLrI=|W*<_fz#YGRSEFf|%} zEq$g9MHCLcx%~iPE`4|Z93Ze0FPS&T_GI6!C+-;;M0i>IUKV8T4Xl6k=V35Sl|!kz zBirswswY3-=wGt_x%S$vl$prrcy5<68i~v1(+j`)!|t+vErse5-OFU33s#K=)5MWt zRJJ?BR{|JZvP1_BfNu^OStIN(8luv)eUkvG-EY-EJL)RL&@AC#`kZ0czEFLwYS3yZs_UMBtc`SU0H(qGv# zc3g<^uG4_bcil%CM81C3XEOg+0MS3Ql~4&D{<(gQxj!$&04F$Tw?W2lMmNniqJ|yG z&~Z^Cr}%P#FnU!HQsQ|Ka&qOEH+I4!z`nJ$%`KUZEI?ZAXX&aR+!P?BBY4^>tUO*N zVGn}oH(w1cDCIo7(GZNJ(91br>nt`$)1aWupK8KKSyk1%B%7F+bIhi}@Rqm7k{rud zkbtK9+APs`1h@Qp+mpq)4<-Eba1@$Z=$Ht(GD29JWzi0QZ8xf|g99HR zvz;3*0)!cpEtrv&{17C40)&KV-!1@i6vo{?U9EV81S9rIFynJ6_xIYKP^>CjbrO2n zC3k3YM*wnv@q&-_T&|RFSF}_b;-l8?jJL1!sxBIlZLIR<2I9UsS}O1dTU5-$crokF`0_9q@RENw*%@0Y zl$tuIyJK{*mfn+{O-BI8!W}aqMVA8c0V0jotK#|Y{oT2bVOwwj3A5d76Yp4=5Q#ZF zs_u`-(YY4)GC{iOuaf;|T2lUcyheMi#FdY}Q|D{0+))Nlr}31D2-1!u1rbA+dp1gb zp))2xN(Yasm2Lkj-##Z1BzZKqF*#5 zL6>4LlKCK>s*6e1$-;XxBbl~!*;;zf;!eZc4iK4;H(s*v326F7AFIgd)={yj9LSsv zh%AWdql^pKR6s8iA_fqewnz*^z_N3#K2Yi+eizkmSZ5Elddu({e<)An9t9u1$uz{q zPCU@RkD2}J@h%;hJOc-@;B=k!JBNpd<3_`aKar@rqPzD@*{2Vd|pv9A_~2tel6OhwQu%(NrB( ze#I^;*X@(8)wG{aJS$M*Ad%YJ3UTnaov#ntwOaG*nG;#jY%~Ci<_zhNS*cyGL0{tI zquv@1+mRN~wue=K?VHu$~bkIM|;K0yDd&HYSw|M`0ISWEl_%B1zFK;W>5o z))*ZVok^-ROl#%EM9zhw)7x)BWJ2DaK3VtCaJ+x10U<-5`v5ipM3h*~qWun8eo?D> zJ&9qQY4hiHn7YW$Ik!5>d5BYF=Y<%cbkrX!?NaJ+Tu6ysB?r?G1G*jOi9?_Xfcfev zBDi%@?}LMJ#c_u1>g?%Wt=*iBp)RRE`&DJu^zqT8gLNf9+CV|O{`4u)QL9;Y5&08a zfXFQ09Snep*o7b@=A86npm4>DvRyYtO~2q42iZ87aGPkDq*?vQlQA1R|8o|Q$}=Fjc03L$B&rjfzT zavlm``tw3`*?30{I2Ijp)qr6axs8=V&S^bHXL8=~HDL`?_e*2|oq5ll_BHqbvvYXPyw|_`Ki>@G z;hGO@X%6uX1t)zM%cj?QE|w>bR|_;dho977{Or_`%)AimN2Q~3z1(3?Z>neWt7|h~MsK-T?8+oMQE|5*S1(eUh#|R*Jaz z-5n6<6s5AJ&gzRLPaGTNO<=sMhzbq)dXfZyZNhmN$7CPh)DXM!yeC4U-fp(*-mQMT zy-j@3wF1>H&8m!UU6~gI^Ehbnj4Rh3X-Y4K2+RHT<`N|>9OJ+x^_TnMfK;7jwW2B3 zq~892@MzlIC1G=3kNe2CAa_h~vcK*p3lo*ezUN@gouLaLqiCYRXIeJ=*zZ7Pbsp;A z?seMrgzfRg*%qPr3%1A=t_wPH+w5(mY>2O5#kJ2wL$|-YLaliWJCZn75gfs!OGy}$ zu7|&EeSO#x`?j^0y^5cf8{>9+56~ex#*9r>uGS}(JFVscNzL^TArlEk%KJrTjcGN^wbbm36T$wj~vKd`XD_L~En2T5_eNqLNFI)nZxSUj;(R zD*%sgdyodM_}IJd0&W&I zOHDXhn=CCfW05f!$OVq!c~z@;Wvkk1k>lSCA@yHB&Lb~qLnFAPZJUf(d$_s`Dj%IG zxhf`Nyu=`aUB>5>T;zAULoOEAU#U9Xs-udQ1VLuqu!8OPieSxqar#<1IOfcHBPu)L zhk2uvEGnKN7b`1k*K{hWw)8o(69mY+Vctxe8^_fl`UCZdLCjs_9b~1uT>t`*z{Ztl zG5A^mYkB$6S#Ei?zyhRPVk*|q%nECT-Kr9Odv`b;y?#CH9Wc6kIWBa6FKt#k^?GLv zXt-7-Zo?~VTdti$8E|NE9pXD45-EriA2x4lK-#mNtw)awU55ZsiiwkuxZW|ai1~sA zyDY3>Y$F|gXPxu0Bn~xBcDKU3l4MD41zv7u13_K^Wc~C4Lr34Mg*j@mSasx8aYPsL zB5M1ikv3-v#rjQuG`GW+M?w?U5eeY2^5{`vb%o1;f{?)aw``9% zp)3(T*z4C}A6GT2JG79}6Gh+Sa<3U?LXxmuFO@50XEoH*hs*Vln*j|jA=qvsZGM2& zYAQ~A{i>I$jdCGDNNPXK^|V^ykVa(LAt>okoHndhQ;Wnti-L%gP3{~(78W?KPyl(6 z0)!MqY4m+{YEXFiV?t&w7UWM++Hpj(>QwoY5i6=sZ)l2Noh6!`9X)eyA$))s7~UgR z3?p_XWWht=>buzjae3wON+PbAgC279&@VpM$FhVgK{Z4jimZ`lF^-P>8gj zK5g?VuhpAl=ti3DF)yIz?Ig^1(DB1~!3)jDJI-(JqOxaxrE=zx7g9fCY!G~m4oziUf#cYgZ zU#Wz|dUdDNYBk4J_++bMeHF2lT~5%W;DBnqDmamlx#Z)Sa-AoRWlsm5_FCY3XAk zWDXW24pS6}F{lN#FCnx$nf@W|tc$~H=q>wA=QQ=hgGUk$NE^u!E*wHIV!!lg*kxZ3 z`c#is9_9NHb^{WCg&UaZn!=?pCA1jj>TaxcGAv=w9HK;sJ}!?-zzF2*RidO^9?v?Z z>U%2936cgJumeKv1J+*a3w)ogM=L-`lKn}*!7p>7;$T28Ys7avpr+nx(PuDmqLq~4 zg?twPAh$H4d$RPtkv5;*dt)7dm>f*Z2D2cqltuSFESZouyB{y!pBo2Jb(={*xHP@n z%55{OA+qr8JLAsG>$ZrMwYKqC4S$M(h#QV4ooy4JDi3h16%d^Q@hIfGQzk)hkkiOx zSFISDb#s>sUj~EW=NlccXc0VaVif9&h|9#(WA1xfn)#p%?ZuxGFq)9o5BqZMK^4Khgnq2z>Gt;^# z`zK9OU~4f}CuT9pr2C@*12RWm_| z@i?w1byO##7zQ)9oEtgT?$=>@Cd3j*>J`J6x732L+34x++t1!Rd1vX=*DLN@lvg$C z@5!PsV8qDo@o#oNCPF^gf~W!^N{FJH|1B3QJda9AaN^gE`y-bp7Am&+;mK#QWm|~4 zDsR~tzxc-OPkS6Q3e!bcsIB}xNg;TvW-r|?OMTNREPk=7gh_hP8rty_Zg&*PccdN4~q|&6Iu8`3*zj!v{LT1 z$*`5x@K{6gE?ZTuiViQ-%XfZrxhNg)7PIcj#i3%P1XhwjRWBC@uU~_4BdEJ(vT<8H z#ci?rrMRDmJYsiwYj(*!zdmy%vfIvp{B93LA6FC&vJFrZkODy3q~#y96kYDDtoBEN ziTAA%pUWn#1l{H3VE__uT4}!)*#M$KHp`FPMi+}ipH9iOFVR!|6(_7q!J7dHm)|Td z>tsDai_-5f?+r}hDWi`~n$*U2U%cY7A+dFmpr`b+|qSs^{j7U*J zf-vsdG8^`gO}u`6)@ST$tsin+rt`~Pr}NN3Rij2NL+|iW25Io|;R|bl4&b9h`J%HZ zS60DPtoS&F?j(<#dnB#2J%)U1;c=_{SAJwd z7weY64C_3`_x%vE4uAyH^G-~Bbw1C- zYn>p`M5wYTBisf7uhI2H7Q_QcO5q(ooW3gWOa+HGodu?^qV;&p%DchHDoPwrF-5Gp zdn9`zXFnQaA0Pf|6Cl739jt2rLRwNL`)GAaqWg1Ld$lis5NZ`vJmCC9i|4_|?5_2~ zAfyd>r!z4hCn`xZ;M_V3a{nLh5gzD6on`1*AM5nE_%1+5*Ey_q@iO4SZQ}>NJGqC6 zx*ycl#4CF8D#ZDytcC}M)LIBM+-$#dmCZ5p@*nmS;%Vq;hpT&9Eu>>-D97bfkI`M% z-e8i3m}nEAg`POxwP32O~~#s5yFAb{N^8EK?D)MLOgM*96R*08ve`>QE=@S88wZn?)dmr z?7DKY4-U-4a<4mO2$$f%7qaJZZxzAa-Vl4N%qlW~q)kW-dUkoC&U+J%QRy;PjSOL@ zMe8DfTv|7X>|pZ%_<+c_q?G)8R{M+1ao_Sli6b?!Eq0gtAitU$jojF5jX5PGET|Z} zkEV&)D85}51n}5RsP>gjtsb15UgRLhW4=$V!rEIthq}_ z!g|yC$(|$@3-}mU8atP|M74UW2%#(EN3?e5L5FOPk(vkl#yee=peXDdDi!|AnKgxE_B}R zjhq|hR*u7XxHTO(*JAnULLT>eF+1adfG#As;NZ)o9e5Y30Dg-1UCb(H!C=hTE`de} zs2}5bDC$ zHOe!e7}Iu0<(4oOLdJNV^=-L59Asf}>CHMPMHSbHkEMI}uL8))E|9cdTu-Z{_Kz_I z8pedK+0U=|A@`On2~U>uX6cvT*MbNj{E7@9$-*n;vBWl%Gx10ETZwKO-HlT_#Ohem z@t0K2Jn>Rq3vyC-W;bsext%8sU>8>Cf5}u{xT+SG*h*Gjx)(Ggf0OY~RC%fzJ z>OFq)>5s1*Ew}(nfGhmC$O)dn6N~}?!Z7| zu(#G9jiwr)lhS!7HBq~83n$(d3qt?r)1+m|@#!a@+`Cq%^=5bX&FPDmr@Q;7TrZI+ zJpKJ|zWWoU%~$-4AHN} zx=5Boe@MxCKy)~pV3`ee*&XHq4c0v1I=hm`^%sFdFaPd8<$l`l|MaK-I`<#{{_p>;|L=SGfBexkj@&2C$vQ4B zeUHwI;vi8bbSs4kzf=m9FcjGgNfOnz$Ec;NZpYi$rT^moGSETcVGyLbdCklxJMR_% zk3t`=cqlEG^(%0-hju45GUSdkgZ}x}_<$XLu3v0FTDLa6JJ$gOa}MU22N6-9ZLT3@ z9wzW`w$*aw&bdW~v=3rNW)Wd?xz%Ezrmc^ zEhJkU5fGEOn|H=z6eLkh^?ITma8h-+SI9MY0S~i4_HzjeUPft1IW~ZBMM#<8LcS^c zsJmg$?Zazl5JK8GKA0~))U0j{qCO4GE^F|$0R#~_SWqVdCI54dtua3Lx2GWymwXLw zPr=jz0=?fIAD=E=uLb$VKW%X+3j_~bcnPTR-9KLgko${EpMD1_f6C&J56Odssy(-V z3gtOe8Dcst4NEi9tk$6xrgV{f&W@pKeHr<{FzMxyXt7jZ=h6; z5>BPVii``2o7}qAqs&y?XfV_-{%6_6QvC9^3Z6Fq@h=vxjs<|e9OFkkBtAYQ4N^P>yQ=VD7LL$H~gIVAYJ+0JZ(qPuyl{Y z$t`3<%*o=iE;5AvGz?)(zd2Xvw{M?i*I4`>Yu;;*|mSp!r!cJ>{zeM3Lp7$ z+pW!i`itwR&O`qvd`KRI4+%}wh5G;4yMo=eku8fP`Igze{JF$M-4tmW+ zU>hX4r8y!50t$&|Ylwz6{DIjKnst4|bh-xtIJ-iTBKQGQx9VIL-7hnaq}T!4t|WFO z+p-hs@ZNLpx#u!Tw}62N%E5`XSdv)?$*rVj7N>T;BNx4Ni}dX*305NKO-1MCf^~c#8I_H-`pk2&@ zfSkcX)Al1ZmI*QPzgvCPH|c=FCEwbv2Hp-}c2aT`ke%w3V64x=Kj1 zl+{hRV*@TdFwJ9Ye7q$cE4nSH{sSJ&gYa^3Hl{M)eoqP3oyk>JT#uAjnJM(UPox3D z^n6hkUy+EERE=J&{A3xQYePlJ@q;e{rnfWXa#QDGS}er>_b}Nb=-~N51bJNN)z7+^ zL+!Hj3-T_zut)p+T?EP906BIhT`D&p$Ol`EI%XEUgV4$1=e}5o0C^*-jTtQ02Q0R~}VxuRcPO4l8o)s}!73e$nT%3civbF`gK{NZ-zq`QuYj(44gNPHWyU%hN zjBE5Avl1S$6tDgq696q zR?0M671sr^k@V{Tg!?dsPO>g^2(juauJ-{3`p&AZxW+a4XhC!`3{20!K^|B9c=7Dj z>m)co)9BC$(TSEm>=t|R@!dm25TsZTn7|1Z{W+ILDf=P@X}{%*)zQe4r%k45QKeut zVh>f8O_?~iR=@{MMhyzkv+TssQLqp`%jkLPD+ zKb+|(VyMWuegjf+&ncGcgSf4N&N<}PP!tFyhNos5r;X05XW&+ek5RlvUh-1@lncZBlwqI-19i=RAA; z@y!nw8aBbYq_;Z53ZmqmQ><4SAUj@tCiy)kK4cH+HM$sX4UU@gg&o!LH8uB)k3GcZ<=>8}et^10e1CgHEbe*L2pu z_~Yo`eDK@0qy?bm@pL3B{B~WeR=(c2@EvUq={Yv5iTFtkkj`MoS-TE{LyKbbxcu<} zyBP*#T ztwep_S_esI_e0mkyzw+XJj+rhuqjLCQO&|cwnd-Qg>@Q!oBs*#%CHu?fE6tFz=vs~ zuW0RUdA)91YvDJvs0p~wjBx_Ja#XHSMP+fr3#Ly zoMx#`V#*K^TaPHXYNe&L>m^DguJTB zK+CW)o0<-Y=J4IOd~kSV0D%>lH2Om3Q$TM*SCN`wi{d28OY;sP~l>I(vg(1)86pPsp)+Z>T^cZ2h zUfn^^^$R=P6CmWym}O;g-7e`wRMxs)hs$nY>TaP|4ea>N z3IY9YTYDHCz{nYw(3Nt_+#Y2FdH(Ws5}Gx643Tp~(y46-t>Qfb`EI$}Ho{(ZhvvV^Khv{iRiJKk@H8EJd^(Um>6`f)r@b}@8rX0`}+;Jx#@y#S5 zNw^HxMf(4QkHzY`Mf}(&g7}3g?v6Ti(AYspceTd%+AgGmL&^~+HRubYm^E zBp`B7WdFB#SJPk=c=tny#zHXC;%C1sX-(Twqa&oyGA87Bk|aSgX2&ArdL1moFuXkX z8sT}>Zkncn3}_n2Z4Kp>?C?||oD zKQ|+F2BQ50g+VnBbSz2g*Cjnijmin|uS9{ZIUjsZ0&QFI% zRbGWOi;t`}6;utFO6T5(;vMRbG=e~mbr};ZLbH68o|QPh{P+$s-FpQHhH>Cija?yp z{kjDYx89j_=b|RB9`wiE#Gsmg1<#WkE2|&$_=o7&cNZ9dLxkHKh3{;kHFX0>=5D** z{!D3-mbRIf5)EFrs6p+2ma$)y%rnx`50(*t6Jo$K908C+VWLr7ei$`C!i)2&$%ic= z#7au+L2Q@i>}fjq@YrAfW0$|MZ50SaEQ1{>Li}k~|m(Q4*V0QE$aNx5%E; z9m6NyzNs3)?)>a;#y&kv?5FZDbqKAAIoG%(_K%<~2G{^TjuRmUDIx1io{gOVl8!+X zLXMlItM#D(iI(l36^Ya~)EM!L)!4RF1oj;&vZ6eEyfBGE4UqHN#LjN(Z6)+HVp{_s zSUtgoaJq+wk*SyThyn8A)gS-;@%P_<|Mcm%cQ5h3@DKn&rxw>N)KCypq=I*en;03S z#fKp;NX8~=$)luT_nmp9K@*T4PrIDwO{DFBOruo%QovM*8XPA=OF&lN1>n`eQ*Sm{`zp|V=7vN`j?jRS_K#@I9qYhn7c8Wmeh%S5g-EG~iY zo^+13u07JJ#~MM-PlEgSAi+S4ZuN(W-$B%-4hK9%O)Ui zWWkC_v&=m*Z|Wc4lJ%yvHvX&w#xSnJgbBJZ_$j8xAdfjwvuzL8TZw@L6F>q#Tj})W zFnk1KnSOrxjfO>5W_0F|NU!`dTO25Sr=S;HXqs+_Il)3mWpc<<>jFF9Q3!^{=5Y^P z#dpa21MO>cA9~O90F*9^+thQd(50E4-p{sxF=~VLNMP zH}oE)orkHgC{cQWTbE|8_onX=IoO2j5Bo+CaDH?^_Uid%E%BCe?qY5Yvzm$cTf{9?+!(8G>oSVMxWsu8_a@#poX${SG=K#XV)|5^3*-P2Sc!rS;6>_I51gDz6F(#>zi>pf@4DW(&H^coI5iSQH{n2!?k28XoI;Iw zU}=R(x0JE`|1QP>2T8MavRp<%0#F!z&b|PluNn7_0!Xr``_hi>IFA08L*)8H8=3DL zkYW)zrjQ$wwAFPl@NdQfRm;#YFM=HS!6V2MK-d?HWr8Lu3}6GiSQe~cC-Tk7R(1;G zxZF^rW1|lzQ9b8c6hLZ?4?qt9!6=jk2tfj9gS$D#L>QOCOB~x6SLv@5K!W8m9DP>r z8i4G5B2Bgr8xhRfq`gYVz@W4(%FlTEPB-zfU$g5EqXn^!Ag7%ic-(fosY&ck$k@42 z0dzoA=boG0w}>E55d@tH9^c`~LP*kWkT-94GWSlrTq=-i2(j6_*R6)>+-{3zpa5b9 zp{99{nPn;WBVC_`HN*y)28d!uT|&mexLO!Np-ytzqFB4cYJY@;VSAuwNt%^cnxtn2 zAyL$lD|~wUvC1Ny-&kd3q45!60_EZ@70PWQ)oG&c)t=<)9(o}Z)p>C$7uml_1bK=e zNN7-FMDDL30^ty16Rgu(2m=>3Q^4XJbVE?RqBB6$Sf5b~T@BI#1gXM&dXc~1WE+Q1 z;-;b4ZUVPD#a~fUl$Gr=@XKsfi~%F#fdGP#kS+8nuaYnfmrK&Wqy<9)v%jVLY;7q- zJA4QqK!{!I3Cka0T$3PnpR%dWIVST;gl`Z*o+60i+@B}TAv}kSkUoN!un;vZYgVYy z6K=Q*!tW(?Szr}I-k+RRjY*hzrJD0_2Pa{!fv?fGS+q!)qPoEMPF5JUMVT&WqX6|U z7FppZ2LmM15KE79V<^Xvh*7X6x#WDqH|rIx^>jiOui< z!!u$S3IFZkImi=0NQ=d}e}_C*bxgC7Hc89Ch25n`$r8H&Z$Oa0Rk@D4+ogy8;ZDh3 z=%&f(&`=4O0K!ej2_pOzJ2y^(+7(Yg7-Q$l`BmQ_#Jm6($KfMhV*2VBguFLpsYr*S zbbY;YA6WVAI-3Dx9NTC)`&XQwhrNYv;(cSamk25FV< zj;0$Ju_FhE?NhQ_8mDR_dPe7~(c3k1!u z6Ui(M;+=28L7q~qX5iePC!#wuo9><-O!alDs(Z}#HXv?7yCuX~= z!b8t3Aovflrr@UHgfMjOOHV%&g zNRb{3kTzo6E+YoWf`nnTa-_%{LO!g+<$Ol#T)rB+ zgM6DR7IJ@Zb#`IjVQhAC*6p`jWw4^)P7cpp=iSTOy+QN4KJPZCo|M>6IPZkan26h+ zjus-z=8=AMo6FDmvHNzH$I4F*#z%NGKr{(TrdPcKNLs9u(EOAInLyA+A1%YWxs?q@ z7h2!UA+-0r9jO)-6mAY6@SU_;=WoJ6o&bV@+WA%xz6IlHjJ-NnEKbONPrfFID2gMMunPUNxUIpRo z;jTwx{KJcxs3rKXHs)bmPORGjgZ@nY=SySu|2u`oKa6q zCE7(_h)w-;4yEWoP< zQFd+>ZipBI=P80bd-nX!UYtdq@u zB=Khf5=SwGkT#+XwO3_%)h4YzNf>?kuvB@VR587}dQVH(|LMmf^?b$vad%s*B9~$z z$Eu9vz28<_qskGRI+u3pfUiHj6)jGh&Zh|Sx4-}WZ!f+{1i@@LGXNY`MX{U&AGIXj zRj_y;Ist$IBpUMhce2DOYPimcHEft~Bg8TUfJzRssV?HroWRc6ri=ICGNOW3rXf=P zFMHqC)5f-~d4Ob{`#o|5y!3^v7t#?j2m-x1mUvF~S`t3D1ZjgM)-zHs0dhHgZ^FTf ztm6gUgl%p4#jpKd?fqPTq}|sw_oS-YKcL5$V}3Q~G8h|&_(<`Yq3kNV%85vQ9^)IA zZ(PyF73D($1bK=PvLBS@aJ0uu&{WU36d!FWZoUGwEwYRClWPPZoL*7}ATe z;rM_a8f`TM8DN_PZU`#_q&A~M04W^xZ+Gg{>+fmm)cY#=Jf|#)SY-#NQW6M$ z^pCzCUqpZblE}BURbWckusb;gOQLxp{~;-HaliOVOahS~bC%63Hd|b=nq<@0(cu8Q z1BEQ4DVdg|!%+VA{s2LqfmA}jhk63#Mb6HkkM%k8Amn1bNBpeERIralBJ(}3(?C!n z>K87n34o*uJk6ByG|=}UtWEeB<~Q>5WCP?ce((A0(=h^M#sEa6;@l*V*vCQ|&jw;? z4-qWMga8-<6gk00BZ=#X8EMhIO(q z&~1bS;aQdJL=Qm3>pNou6ZHN~905MN1t2sSz$!sVbi6JyHPclGe{>AUD z&J#fXV4N1@|Fofn2nD7DX+UpyB-*Jo@B=%8v>&?JG1Qp-gLbPaE|$EDo)f?Uwn>3~ zz`f!PS$u_V!aESs<0cVF#+1TgOh|P!gc#-Q%55s943OS;0-l>&H30GByfj%}HH3jk zIIGZ%p);o4d=@C)vyRv#1LW&}`Rw^qS^&s6{z?J}x9I>Nn0aFhNf;8s6G5~gEayVQ z0vvu1JtE>et1xNWOc+A}HC9=87;c)+J`l}v$66r`(pPu7H`&J=fR)*UVE|GYAyo(* zzAsm9l}Q0W{8bLv`690@@Lu~L|1_%6n2>CsrwR=~&^?Fg@=%^+C4-hJ1P)k3s)$b3lf2`y6ukPo*q|7!JpPm>B!lLL~6sGcKHC?SUb@i&Ra zC^n(#1|X0;g6nDtx(xT6T!74c{c?Fe_mnvL?|(hsa(6<9R`^dy1qC7+s%_q*LEO>S zlxP?Z5OO6%5`f9(>1n8$AoJlwffV>iFZ&R9@Yw(e@`QJ_l~+%DjR5h3ZkOw!K2N9@ z;?}nY19%pd7sY})9rc4$FD_jkB%nI2|M55Nwm4YY0;J&q1f%3}EKSQ3Y(XCHFFqv$ zlKZ2t#+wI`2^F|CJ(XOM5>2?+v|*AL35L6XcSr{ZGT>68Xy@r^3lQVIX`B!62_LzQ zeK1U2F(VI_`m4L|^WJngMzets4_Gv@${+;fd-#FR)jrX(O1T53fyLtUq%geL;#VR z!?r2RRj>m5Y$fJUT<3|t(U~-3rx1EW*`$8Ub(v^-yum(D4sSP>uI&sOeuG9=f3e_* zr`>xe%{K@+;}|hFm|QXGKO3eKq}D~@3WYtS8pfL=-?ZG5Vj#zf(ETCnk&^6ybSiR zPJ(`)cnd&Ii5Y$DRsu8)Uwu5F3bK}pU{}S0m@sc5aPWmRToKNsX41d@z4_VMIl{;M z#`GBfRtAWI->(ukb~#gI(lJsU?Zo2?^yFN#Ed61uLk5tRo4F@sQ#RNA-j{t~yB-LT z3eoI706B0ZdXNn|ufIR&av|3V_o>$}24~nQA~jUe7mBfXy7b2mQ4k}eb#nQU>axm5 zQr|9SQvlLtfM6Ilv;a`J2zB?#%%RUeC5oQQ{d^M!WLy>`(Kef*;r*x9>A}J-93W%% z4L`9d4QM&>ds>o#sR0Oxz4mMby5IT3`mqns#X1S@&h_S z@sxYK9F$=v4-R}{IDxwN+^5d@8H10jj~_oC1Z7HuAa9hgmt|cn>F3998|-7U)!nCm zca9ybr@1H30Fd!n5Xoi;ZMKZS%?d>QppGINazqoT8xm&a8UPpLo~020V%;hSk?dpo zu@7w4#R~4gM+Nw}r6L{U&Ic?rl|BeeV9A&eo=rFiAj7BYAxUqhOMQ5ELPf{tA1}`@ zX+m$gQ1jacktoD;dFW7rBTlfo`^@7%$`L-;f~;-+*0?Q*6bnM~ji1xh%?bn`(Hgz$ zDOCQ1FG$Y_KT1kVa3lZ`%K;Qk>@bqVC-d|7Q)lc@7HHYXN%PC0DN@r^|3rdkuy&^R^9+tq0UgZh{M7xr=hz3Dx z7!KMLS_)C+Ho5&EFV^PSfDj8=+MF7<1yP7D@qY+zf3Gh}SYpHx7AP*#kDJ4a`E1t7 zLO+S3J|F->_qtfV0++tQJ_M$)Ai*8lx_74eD5-JLMO)K7R%IYSE{31Uj%wa2QILw! z&N?LlhtqSGge(_A%#Pw&@R3t^$J`Z&f?JL^u@+==MF8^T>HZ5o9;*dGc25`wK>$=7 z0EtZzJXH;82rVFqD7h1jAY|-!lnd7c#(GJ*cJoL8G=IZTH+83r_2KS@jx$@p6D0bg{Ab@bpjfEZfBc%Vs+RrG;8m9c|^U}u;wc^Q~ayz}TGG|<@ zC$j*^xGc#3j7_NtW|T|kxUdha#$;)7?-#h z*-iF=7Wn8cfCPi3L(e#vMQ+x;ATof1m_~Sf-0+yIvkasFgoPa_ou}Q~R56XiOKu(9~kL3&p@#Ep~Q9ig6AgrWvZ?BEgndg^8 zLnIGbJvjbACBCh8;_~JZi8c@>V1YCFa61fD0HP)mAe(tA!(x2QuDzHVvjx!+WRfG&Z-|TJ6xSlAHnU21P}@HO5L=P{n1`0h#iIJ(BnO#!yr0jRG{~RLZ%mCBngo!Dliv&ieuSo?>+Y~A zLne_8lK!hnbY46xgoP8hSa7g7Hxi|dHcNIi2pdkt262DLSfhg-4wkZfNIq&XK&nGG z$&wVw@U6Ia_*hj}V{%X8e@UZpsS4|yY>5=a6F@K+lG_7FdQ`LG1+qj=N8b*I=9eZ4 zATS`Wm!2>{a)0)0tN;NA(J6R9lFf-?f`Q6Xu_bAkmWs6+TY67Kzz)PgUc=>4kPL1c zQ8eV`wM4`){u38kfM~1P2vtWlAd_CXN4wJ*gr zU1PLJ5jNuUvKOOQ9ce^{fVWIm9>PMPILb9qiKT)CQ#cp3Sf8Rk4TRhSAmuBVkOu-t zz&U?XwJsl1=~tJ;y96Kw`)kor$m0(XvI1j6lNpG-o=6MwXn%Q*8OZD`49M6yh@F&< zS$MH_8nN(xwV46kRAFkV0N;RE7meaM1UI&ko8XSr8guO%o7GtT^|MY9on)l>fQ~$se8uyxk6+vuXq6 zkY>gHByy0c&DX0>O%Q8wZF36ByyN8{#$nQl9XcSRJ0aSTNleG8)-1Ja3B3-z9=OW( z6^zai9rr}{Rs^F|KEWY+9$ZfdKGRGSF)mi;?r-{`O$g5_7*=zU72xXqK4wG4OD9}r-03IxpoZG(fqnle)|@LL>YYYX$~OhdGLBd?B{9Py&E8)zC+XWYUe(j z`k)^`swgwL->UE++%t}3v1Vyt0n)JP*;?4zDaK?$QUM6Qlq6UP);F0JWO`%E0wg!T z`26Q<8;{1#L7Ys3HiVrvSOvI0u_- z2Y~7A36X1Ll)}KC^k5hhf_C$A9<(ALN+p`pwYb=d zBI`Hl#PyUzV^I=;!b7t6oN|qPn$vgB^2H7y=G|Cj0BQWyfZz~J$iN`h_rdT03HkxV z49yuO4-y<79}`bMJ7cQOqC`CZpcN|vkT5Flw8EM=R^V{4&_I_3N%cfpkQXZ}T=*D1uY@SdOfz>9J$;4|>T z24c^f;&fxP9Ng)-AdvM?3Mq!5mPQS(8iDKs5B?eqxnu|1@eez zQhAdE6FUzHrU*pcy@yV8;TmoXC>W1l3ZFpJ6g4f)qd}8ut3!pbz7HM*AT(CWC-Xz% zi{X=<=0mAyjZE~l)J!c8xh700`zBqRPa45(2w&j4X;TTP+w8=%`fvy7~6FGC=yRdNw$O_5HixAppX1 zSkUe{>2!y2+X8a0j>-YR!ZY44>Ll85@{V1sScMclC$sEyu+ZF3PfjO*k0!7mWa`EK z)+!MX1_;au9nLTBKbn~t7YETUoneWyn;7UhM#9Xah&lx$G}5B=i8df1fs2KqYM7Pe zI1OKkvCxQSA<&Ca(-x%a*R7qS;O_Y82~F!C9OM0PFV4{4f=CdHq)860XnN0Jc(8kQ zl+BRx?T1Po+(p5ftd1|jP&rl-c$ z52F3dge|h>Xa2F&S_XA;C?!&{4kP5#6E{`R9P|K0MnOZmADo7cHG;_io-ZG#6O_%z zlwsaG8gvT|=INA0zYjpDW~yHlivhv_BI&pD3jpM9_v+}_=PC@Y;N*l=xQfjN;iIu# zY)1+?Aq_=dS9Fr`KnBaC0c8DEo(;$>Si0TI%`NS3OpS+wq&@Ah*6Ff+&^9=0#H_`{ zMB0cfrm?UP3{ZR33B>4o1lE0KurJ zz81uYTXimfxU5zOxmW>5uZVsGH(fYdlqYQ0DEYcwNR*o_1v`$ueco~WY|<>qi~U!5 zuH+SLSQ`R_Fb^3E2LU|98N!}~U*Q20jBGM6iVE8;#YV&ie-WC6f~-IRtx<8IV4AX^ z81KZMyi!Mc_7jG1DtO9mqjaYQ!ThGXTc=I|kl{OIPy4kKeyH$(-OJ01Q_TCg%Y5t| z^}qwep)2LTYS#!K#bO~=)>12{$P4Ec9s3x70Dw$PnaS%VuH?l6L@2F3mtTK0CJy4J zo?m-=xY<**McD@2G>Vv2(sdAf!&E^!!OaYT^jp|&awnpYbb!$OV2A?dsAKL3KxwWB z+eNY<1HY(wO6J2@5a?L_-CY0)2$9rSeo(&qpGD^5IJk{AnM#vpJ0yHG+fk-k2}NFW zm)N9Pkf}}L=s9CPe1HfMnP1+V8Vd&j6+rF+d$0y5D}mgC4ppmEY;X)eaRrCS zTcA?}smF*?Cv62U!ObXCt~4^%HYAKQFuI5TF;VMqaG82A03oLr0LUkeW;-K%luhKU z^WIFYEeCfdKgc`mwI2b)IWXkC^`9fMA8pE@JH8=I1l859Qxi5moiu>F-deN<#B;Hr zk@eX{np#|pN?^5OA=_STG-vZc5 zz{x?t!!sU~KIwel;i-k+|9zuaDnz~rc%s2XWS*3-%gfJ`W+rJ~Z476#$8@CQ8Wr~Lwp2}7@(ws8De8YUAd^P5mO)5@##)G@A)n5;!i;tS zmB5sb6Us9mmPaSnNbkWJ8oJv3=4TP-sC>ZR#bt;6P{+pOkeSmBd=R<6de6qE`|jlY za%Z;~N5)hu30_EU2wyntf+BZ>*^U!uK`4p^w+isEiehZ?(IS^BH8Y3<) z4}g+I4X|4pj^-UzBkxgnj)wEQsA;Z~}Q~N5eAf z`W?L>g8(wPe&zfU^QCDO!(cA0(LG7I{Ek|#9ejR4!}e!T3q+L3Za?Ffy> z{wwmTIH4GzGf^ZR7K9d_0G8bR%Er{^28fO{s;XSUqOY%x-VO1LVQqeFvrf(4b|b85 zu@$gDsQ>jQp2xLzsTdKK6r3nKLP;8TF>zfMzAI5N9O>q8b+{D_J30N?%q2+AI`9n1+42OGzwB;M{D8is$J;z|zG z;*-EOOuyL3m0EM`s^IUWw-?xup=m(^M-7ql+Z@AqKGEh?r_dfF>k>9bC7daeWep3>U&~C z7#12|n*4c~t!`nH%}+;1N?Zd88Mr9;bSpqG&~x||_=9;IKKyy?U3P~~#75kQ)Od3F@HdeNlXLAl1$cIRvcW!@k zdMqTpcUrkT7>W%xlAr@5<1C8XHQJ@OC33TBbS`dnNQh<(hT&3Ugj^F-x8*7JldZ=M zVH8uEC)Zeu#Q|a0OVnIk(P2{&1A#%cnIoiWk(J{2U4}{nAd^+@Zbl#U5OtZy_SpgQhyl_&tz1kx zxFdAm~UI zSA|GA&cV0n$Nlz^i&EH!&ItfALG|vGOV4H8gP*WZ7G!y23>M_(v~na4EgwMP9QFlF z3;*r*dh}n2GBY_l8p>xy{Eq z<1&+A1UdE|fDk^oZUiD%^&2xnj*pBQ+>Ov0RW+Uh8u+O5`VR-~D7Ed$I{Q9BUkq5F zsW)()HQY*+R9Rs4dLEv#UKEq5e&Ir5;zr@Il}i0@fWyQ!xtHjs>Y7h>ta<2 zA71(JNr%wjR{0nq-tsNu+@&sYdJyP6Gf% zN8J3t!GH6ynV0SNlK8Y#0K))j93Bsw0r#jiav&JzF`@-Ql?l8&oAe9dTCwdoD))^W zy!Zb_!qI7r=lPo!JEg8#7hDWwH(oAE!5tM2^8WykNkPcQ%B$t4PmoXdixw%D{`zyK z3TF&J#8TV@hy-8pUuef0B&Zj1qCRP)LmGjK9SB z2P#bs$-j=M=yrRDAW{ptQA9wITBd<%>n7S8aix41r3Mf(sMGe6AZM(-mMtV)T0;hU zgN{&PhYwVljH1TwKBb3}JCrau%H_LeU|rmrn7M35t{M~>Crj7`7`6}xp?3LQ=?MhL z%*>1Z*RM>h*Co>t=LJAMD+h7PRQ@K;PhyL(G4;c*67rN6m8wx=RB30g*t%vef;2e0 zPZGjJ&2TL$6t@jR?B}2c3~f^O(K%hlgp>}41W5hjhK|*J@qy@*`y{R^32te7IzBoy z#v>Tg<-^&Vd5kDVbHFOGC1r_o{NQ8?`vyAP}d8LP^NHtEQ!L~7>Muz zag(5y=v4{XQP4P2wWQJ9d%Ig~waJX6rbGoqT#8ieE+MH{AfQ~Qm{X|XVMF|sHb>j( zAxyRhc1oKvYH4pu+t4HQ>s9Uty-&F;Oz&H&t-M#%Vw9zN}A1lu+A zDSh!)90MSewaA97Y^_pnI@m|H=GQmI1CSduU1BBz05{gahN)7_uC+m2<7O!pl6Ba9 zOO94*xCpxG4xNz10Ox8C8g0wYby;Wb!f1i#%dx90`>;JHi0e{hUlzNuy=0G znhtEaaR9{7!dn8p0u$sv(E4d;v|Pd0XpP)Btw@D&YkPNRce|B_HOY%8R2s$NSraBA zs+8X@wp2uaQh}oY!L>=j&9WU>Ow$j`_Y`~sK!T9~5>V}}sl4R~FT@$ZJXq^$Z||61 zy%QhrdUGk@MOQnGFts8}%CbAH5whT8WI+(<04JGLfXqBvU$K)sX+th#HaEAv@#yom z+#-tAn<@k`z~D_6%X0L>eBVRRhtDU3MD0Rp=Phv&>b2G?8@+}Yzo@~fMzhr{wqjE& zZ?zaDk|QMDgNV3kQjZmk29S570itTb~IyqW2J}D$Sl0a|(Le@qXC63#zVw2C%Y*^B)^BNKkU?LV>Mn5jN zw<6-%894g=7x_nLRa$k24`w1%Q9|p8_wQVlTl#jPjPj-xMXnajY2ky9DcY5H?OR!G z!NdY&hRYVA-vEfP1=*bX+!jP*j7@LCkRL#l4M2b!8RLysP)rE1G7Cu*635sji0qMY zAgx-YH9jjy_$`L-%o8CGKN%X)_aISp|un>@At7FG>{ziQ}%qg8!I&J z*6$2q4)QtG<3Q3e2(4!r8gxpe;Nu!I+K{)Pg>pvMdZ-i5lGkd9K;#V>365z+%*RDS z(~^6o=|x3huOfjcRa!m)pW)}<1yRv(CWNFAE_}H-E}0q$9#XS=aL}cBn>@_Js7@a< z^Ef&lIQJkh__!J2g#meM=7OMm5CbFV*(Fw80V$M`C6+ju009l*%J*65yoP_TQ5eMqcC_B^zS(XTQc8_5bbusn<5M-} z^z?p0Zwo#|y4t#Jpg&S>(k|@{`r_uhxZ~ZH^@GmI$OeSkZV4P*R8nD94&p(~qcZqk z!Gl0xKU^UeYTcd3sEAOrwsEU^OsSUjk;Gf=#Na@r>s4k7g}cY=?;7#jqKfYCv;gDbAUJnljVoql-u z9TAYTGqGdU>QDNvD8{S2nJkHUhEs_KXuPWhBxqlrY=G=9NL}wNw%qgAV*-eU1~&AC zKnDxY3F>eKRCboSvfUkWs#e?wNLyI@Wz%?C43Re7;x;*=-2iAEsz#wjt4*)a+Z;mX z4Rl_@&r+oqvk4i%tEn*x-`pmP-Yt)i1;MKDGU#Alemuy2AweRh=A>J%Q&Hk+m1xXm z-De4OEHuhIh@eXyx=cwi#LmnjcHZT!nLHHTg z<61iyY2-_?5j&y)M+l)13>gSjD8AX*A&9(@40{x5D_L!Z6SgTU!rs_+vDhLl(@25S z*ubycCVWLy8zxy;uJ~2BW-j@NCWLtgY{#L{a{jsN0?vF;c72y<3TtA~0FiTAL}RY% ze*5n)w%fI=&c?Mlqm97MHwSNEq4OD>bDGMHw*hW4q8un83FSMe?+02D`iq^#kVEd(?sqae@08~S4s^yz2uu1R;X2p~eyVL}%7$6!H_2kF_ovUmF|jKuXSAU2C` zw*;YHJ5ef%Y1P7zO~fA4kv*~#5z&zvU9HXRkT%^P5vAbUg;sHImx@#rL8wM}&>3Zy zkK>dYTRZp0hWJ%L$I+1Bkn|zJgRb}FOz7tWEQlfO)wgC|=XHXZRrcG; z@;^uq3IjxB3q9$RP0|@4enIc^^+#g?2=XAeF%if)C~wMUifFwflQA7i+zA0%nPSXN z6!nV`M8uA?8i|UCk3^|XV{hIa@d-E#+!vxD7cR7)hR3p(bcS`lu?q%AqY@|Az& zAPf-byqi+2+|N;IGPXQOFB3uepjL@^%v$^YvJCpKyR+m<|T9&8}@s z+eG`+`0^mw#Le*mqV19IFAF>jRG`i)zJb-ZQpyZ!CC@6QfE8E!?v-qIgqDzdt!UMv zP_-N6jg|JOl(BFf5`=07Y^Jd>iK7rEWGHbgl0FQEjPeF1oO^ski=3)sT84H6!+2I@ zf(PS?kNOlnX1$4|7`G!yLN^oL59&I5&2QrC2UT$s&p|d;76A~ai#0W4+p5Nx2f>zT z*TR&|_W&eZy;OpH38dg`84B2mW)qMkX+)I0K}Cwi((c>0JG+!+Z^X<d7ViRj9;W(vbVi77{t(te9rNHDPNR#*tMK?k@;lDIgAS9MetV=|b<+YlGS zij(bqPCMydnelK4@$NMu1(#N=10w;!U8u=`qeG+>#}f^Z=?xxuJL?TVcrw4W@#690 zN7K{OQ=b_ieMq{oE~z)Y0}d6$%u>v%^#x6!tVmA@*a%;$G&ilM1p-Nl^CP=dixnpk zfkZWknGju95f^FI+66jeuSf=`MIfS!nAp<;H>VFFigO`QNK|&@dB?!)i3Z5NB+{`MAg{L8_E*-{ z_Sawj?CY7CvE)Ipxw*I5^bY)IVKb0{`FB;PiPfcsG@NnZQc*zB5wnXZEfl4magQiR zAtqPqT1ZKna(_FMlLo_xiG8WaXV9wz5!LG4Z9*VLMQu)}^}b`*0uT;BgZM)kuMZ*} z6+Y+q&|W6yCb*-bt9te;i;wzuyCsTbb1(|ZFs^)4tS{ul@g+n@{&*ri*#IGxUf2%- z$m*-*g?xT#X(_+Fw!X3XcxGIAklyAgOz!}}z~&}K0VrC)K_IcEcG)akV?s;@F=D5w z-Dnj}WNWu%QXo-Cs}|{6q!PteC2BW}L&h+Xb11^qD0V8e?)=vNV5WQg>ake|l!tX|>y>sa#Pc%>vTl?@eDpg&XwUJI?JyXo`3Vr;y2%Xvp^VGUjORFqp7jvK^z9KNyC#wa<$uNDX^L_NE$b0~59-CKOD2+N4NIZ+3Tg$=sBP!5- z0ZRq`5N7{2AYntn2-q))FBta%W)RsII$lUuN(ud%dqv4Db9 z@*Fy`%_QP{$;q1Vqsdfg6)AiF@3ECAnmkC&+LBr%`;ki8WCA7m{uL^eT19y$-whkbyG-*Bg zkhzs*F&+HCPy9@bognhnLj&Y)_JRMR+emtv0w(BTAbTRqISOd{F|=KawTU5@mZlLa zouqNZfFTsLIa9LzhUtbWJZZEWv8Ixh8ZELTG?L9modUBgQ8x&XN6XVmpsn+c-y7sk z(L(f>o~(J|FfKy_?~b-G+GlUaAx!WN{@AXz&A&LM#7r>VZ^E;9?D6A4q3`h+uQkE6@5Q@->N9;3z1Di+Q9IY#*YX zhO0TuMMs)z6eD_2^xT$|I(_ppFKM=H6(b?2uzkW(>j7|K3Pt3p0*J^Q!7C%U0Fxm- z9c}?&ur2S72@;mfWQw~FfDih|9#V9m5!(0^(&UKq@$W?3S68lxU$O7_PGFdK=JER4 z5;;(8K$fgLFD7_C&95wY288@9{^7N_^gtG5=4Z%*+{r$0ENr7EQHUTUUc~Fl&y6?; z!l6JHJH{wTj7HNl@%l(St}tzLh^tj#2ER=ik!G<;t3^K8vEvhXw1Hk^3xjT*0Ya|} z*#?R#<}?@hr6nYV*P%H&X1)QR>H(Hz34uD8FTLuIK@it$!T>V; z)mk1rd}&nx0@=7HPmPE5tEv#VB_^u_JMuZ!(iv1Yi(Mn+=a0P zSR&9vAqqtP4UMMHAmU=(#Xj7Y_1OBk za{$TN6DIRcYz`xyO7KzVsXbkwqMxV_R^sc*`>C`PsSE^+z)g0}xBn?_?j?Fx}i| zAO0kDxL>w#f?ktnRCOzMy=d3GFU2R4L(v*K@iF5Lku`S4h0bVWm15%$#!;wfuBR{$ zQQBc6ASrXR2q@%CogAEB)XzI~Ajd!jpJ&)S82IO0oFRO}5iGGB2~r*4W(w8Mm^S5+ zc;zTMUo}AhnVJ6Cdfvf<9wZBbEFll@Tv}d|cVR)W|IKnf_hjzpFTZ{mfZ%4llYL-A zg_U;f!*8#`X;3NmIS3ercAtbR*&u8 z5J0FdK9_s`Z2IByAhxZxFZ)1D#n1^%f9lm^1aMHA<#7-sy8Hy9m53AR4x#6~kJ9ed5Hmo<6i*{s6%co2!p( zLjHm9am_X;hd1GLVkKq%3a}#^ z7~!P2STipudIiG)!(gn!Q-4vdJDrA7lLfe9;$caqeR1va%mX(}A-{bqK;Vk;5xNBd z4)-4}d;|8tm7xeIB&dlxR-^)isEezm1zZ{v#QC#CRbD>XzOGr>beQSTByi}&vBr*% zo!woN071S3`5@$tq=+3=YBrG3^Gna*F$pAn=C>ZNA>AkLlk6-l&BMEzmFFd*DKIbK z9|j`%mH8*e%FM5Q^{_3sSUs*4HjsHcDlEQ*fnY(d6r99>2@V`qs$Kszda=bpL&hMr z`Y3!R=B*1p=q#;kJTzn&VYh!Md>p>n*(=m20iwV@EWa?BQKyB4U`CJZk2DW>y*iT+ z=6&&O0jNL~qA?(-#L6avEG^L+I1f+!0*(88BHq}~H)kGph^M2x~D} z*96H@c~tn_BntIbOuhK0C+Rvd00IAa2I}!GEo(x!g8lhVgIKx6yfq*Q?`A>X71X5U z<~L>@cnma#9Q3csg7$7K4?Y8dA0d_k+}pwk

MnV}d?K%v5((z<`0ZS7=AH{|XGL zHu;d^$!UxJm z#3TqnP^pLofWX+eI$rK3e2%kn&(}U}2JVanNSyio+IO06smcN%=sf3#3Bcff3D}TX zhp;v11M=$Nr(i0Q6cjS=0D`1QY+Wx$|BXW;RVOt@2r?jp&_N?PM{}6&Szp2h?#$0q za1KYi4Jj9Y(G|X1chkVZ?*_r|Qh3-G4v72Z%aGP@7m*d8j)$D0e#d8_I_6tKnNj5Z~P?5kH4SbplnfEFB2? zt)V$)c?iGmcY}~YcS^~aa{Hy`&u#qbTWb}N-Jl?^-1R*G5e@=R%YbBQB|kss49(K| zqX!`A86a?5YxjzSjvKUQZ)i;NcNYXs)v94Nqo-iNOZ;3U8)$gDX7&Kiii zU(lFP#;{Z>4=1bJseaExJo>(mx;?b{MyKYUH~MH zRF?1)6W~OE5NC4oqbOCxvqKKb)nggjiZPrZ*Qv{NxI72&BQ6%05P!OznGpkQF(&HD z=cgLCoS7h63){`k$xw4^-@PY^LzsgbBL+pF$2_2$mv&FOR1|!W>6n@~g5WNEl&HQv zGWfu67MTxvLg}S61HidLC7Y|%G`0jR1g_YZ3y|rTOQ(ch6Owys0RjUe z7mo0y?*%EDYc@|VBBkYLIWiLLVM^Ww0)Y{`v`i2!8kJi#R6nT z@PVpBBnxdNFGt? z2=Top>aV)Ite=1UczJ$)CF|h*`+B`zJv*ae3e>$@CRC6;dH?=B!RCaF%dKqwxJ0uS zYau(K+E*NNQ|E=ACmLc%b_rDQRivCT@pDmMDnP!H0uxvQuS$^tvaXFI6bgaP$Iv=FH|erww5M zeL#Z0S|_&&c;Guz#qQHxV$Jz+_?P0EM9hv-idv`+??wn%$k|yP2=RQc4oz(~lWu6X z`DvAZXr0mvXSDIl)$=altNcA(e@cyt7oBp@t6*(Lxb5v0+qEdURss;e)&Rd)osIB? zP8jk+F0Lhw%i4uVzUVy2BO>T7-zR+@S-<&eer1sW!uLJACjv+w-j!TMXDu(yGd_G% zGq>TkxJ)+Mj#SINZ9o1fUJm*kbnn4Q}wP2xuagYzDV9Ma}e1Lv7pcigX`syI%Uu2 zG1!ue;@$A?0gx|^po32Mg;;2o$}i%+$C}UQ7p%QOg~=9W+jD5j6?;R6^DiIGd>TOh zODs1iN~-u`Oy_Bf=>uU5T6of0s!Ij1ZebtPq%p$NIf9! zmz~h#M0XW?<4UDSduu5#EQ~p47 z1n?m9K?1xyv_YyWy)>UKuR*s90um-~j*tfCqhllygzz?^N%ZVTz82cOq zsYM2s6BqS$;7zGJ6M+=FaB=eBAWqxSg)&o@xF6nf?{S~)#2`L@t0AfEm%-+j9h)Lb)8~B zCChL43l49$yW=3J$3j4pKdT2I!cSbmi2}I%55o8uTnEK- zRCmz=NVE@MQ3AG2yDF~LOuRSfGXsaJc}bF#e5uo4{oTdEyAK#t^&$9f06s8y9rHM0 zRM_t_WQ6E@nFi$SQS_?OYAB8ThsT;k5Xsp^a6RNmz(DXDaiyJcmdcI4M1agZf`i2- z#71^OM))zmIydVSv8)AIT4H?Ux3;!cmh%gX^Rq(Fk!`03ocw(BSnmv55bX*~T+OU2 z6LCwxBaMaNAh9pgU|EarVxgheS}1d!cO@@;oJ?J}m{ESi-8J&p6syK>N zYr6v`(ld^^OL3`gr^~S_a*&vEBiYd%3Lnhhfe$PuBUKI?myc+?NwHB2d5(kp`=lm7 zBa;L*F-yBFw{tlX`EmW|qBsf5ZZn7g$d~0{ty#`YEnB~9ENjLQ5FpymI$+w}{ zutBM%^9c&w0mP)2;lP+Ayjg$(yh__Xmh2|f#x~WWMsxe*M&$`Bk^b z2_XmF&Pj(k#D@;^l2I2=AMCv2-j7l%4QpCoN0F9)p8>DuI3cg@)t&h{5?8>CuOI^s zS+>XK3k1l_SIg*&T0kOw0q_tZQJ#;E8{RzTW(`2*|17t<^=f7ANe;-sGnNPhjZ$#} zfVkdpR7JV=rfkBb{76(jMT>~20=i-oT#p&x2;TxlsLX|=oV*B^LW<};hJ%|bb`ZhM z!q1XrfP1HsG)>I#Lyl&(iZ}c$%2{+T86KSGs8`t#RO|0A*rdEWxw_=z(GhaiJ=}Y< zS0r{$*u~&xt$EL-L-`15FA(k4evSmrs&)g{uC1$<+LF@bO9aSccCe85K=2ABBnt*0 z=#~ONW*H!q^&n)-KF^Yav+jL7(k2LbIpQyk01|1Zv;m)A^ReRq@cCoy#L2xttnzah zA|L8fd1K`y@A-P;Wc+QVb7j4&i)t?zIBWhX@Hlw8 zyWMI>VJ-e?i41zqktP&#YB(L+NU!rB4FGZs?xr9dCTUW*pnO@Jka&=#%#H9_F zxBw9g93)Q&F#|&Y10VxTB|BXZvb6aL7DU?^6LJtJ(S}q{rkAPx`R9Ik*5xqx$#bbZ zKO583=@s?kZ+`rdZw?ef_T2iuQ(`||d4v_uu?r(R_bZj2mN4YOxhKbEVd$41&+DZ1 zeygoG9UUIktMB%1P^KS5_Nl5QwAr>SOMg2j3d=!KSB8vI%@d7V7L&(8Ajn!urcOn?0G$KU+sM|_I{g4r`}70eDdpK3wmo^{r> zjZ1CwDvu_K!kDcHj~VaK6>mFLsLs71p8%1KLXMXp0$N_6HS2F3*7t*)0MU95PH5v5Fn)Hw26S_V4}`t^cG5BvO&* z*$??U;cOt`<~K}vb_5v%?FFOx6`7A2MG;Sy?i^BjFgT!4?n45E2>$ubo96%L?h0b# zx~?l^DQ?mL1{hIeXt*7_3n~Ud5~E6~L4a$~(IRP3v|9;X8lX1Kq9d9n9JBxpq&DL! z3aX7Z1lqmH*swvAC)A4QC9ks*-(?LVBEKQr?w z{KI$8J@=lQC%R|GqgSv5hP}$I#RxG>wSQeATrO>&=@B84utf z5Yq8qlhPW_&*GX_IAnm#&0ho6P>PPV1G_w)?hU?u!3o^my{I5QDobdeDGaHDcN$5f zf~bXpHKmEnNEsLFfLmWBbZj1exxM}QlP6EMk5+fw*cE{sz?JvXsI=5%06^%|fR4bj zQS3uVf7(MDnftS(cKrO4e+1V!^_Gj@|MKpmrHA{e?kWV|rpozC`=aMu1XeG^T>3zQ zE!oVeUkRsR>i}0{Gn6gHj;$cy$un}Gf57I43rK4^I%5VO03}I9Urg<_1`0TayL`Hr z8(oXB-1ynf=9iy8e>xhC_MSd{ z{(SpzZA&nqtB1GaK(PvWj#ZU428_2ZFv9^x@aBfs8;R1Bgm2Qs3TpY6ZD?;nn%u z1j7JA2$m6;Dqfvt;ubo{U~XY$ah?VZq~?}}wBc29VO+d<>80m`c)8Ho1?}m1#j92O z7uYk7OTl>p1o;<4*jnC|!>f($C)=aTQ&U&2T$!4>d@y>xy}46Y&BftbfJ#V3OiGC# z00Qt9i2$1g^Pv?Do%dPFOsBSA?LPd~<3GRqNosvM6LdWI>L*LT{`5oV#MUBua1Mz` z%bs&o13(dy(?TsK{&8!jw;QOD=G*enPOTuX{Mj1=E+DsyLSAYk;Nk!YN=+7T&Cd** zV=XlL;3r`0Fu6{xBg-o{U%7CqEEdY>kcINBu|mWwr6{bTLTFZbHq?SN>%0+Y@iF+c zeyn}*bp7(>sVh^>&6V`yU@swL?80utBA}dTY+gGbQFm2Th8b-kvVTQAPpI1G%h0*~ zYTxZX{^~(0HvBk=f-en|BrJaN4-bB_6#RagCz>0Q#b?)pbL6vR&v`2tqEEm~^fe4k zXG_u3Sm=3;o*BK@DS%wOnV9x~gFvu=WP}W50U5Neyihfu{mm|{EYJ34lE&UM3L@{K zs&P849?N%fTj5Is1Z2AbieBmrYIK~W% z!#c$@GWU}Q4?g(KQb@C@_haqb?-6K#bHIPzdo}cd5X;{ra`dT5nujvfmB0!_y;A^z z29he)MH5Vj08t+_N;;>5q-H6~AjtOit}W&otYOkfrZYyaw*M0-tvk@Qh2<1pT|AYu zqC~si170fbn`LBlnx=p)G=J081d&9?E`-qaO9LlN@yXy;khF%U{I zHW!TrWs;_St37Jm9@P@N^35(GVoY1zvLsih$)CFqA3wVH?%fBUB!uL4+KEh@N@D7b z`Y55}-A9j?5-tBQeVtn2+ez;b1#{s@%hG(?;N{g9(zRiyGnU@c3nDLpiFI=fIYPM? zy9JO7uMUlK$?c(V5G*J1BXtvko6BumfVg;TE`?85=NFs9{TWNsiIM64;^K|BUw&lz zn-XFP!PMUIOtjfV1!e&1%|h%741`7VR$I^2NaL`x6VkSExOafngWHw$ryHSpr;u@c zhu5ktfgWT*K!%(pz3aG&f=NCYVwRsxdEXB|bq|*wJ-YYRS08-bD2E?sm=Gzy;GJLm zU4x8VuGN$PKe+d3>DM17;?b-{6%xy)LfMJeuohyX>pq<)^KedlzXLfQrNag+XuPFq zHEXdt29Q^-&;Hmt@wRtSrO3etv)~lyN^e(?doKLds~(n!J@|^TXvEXqP%g zh!r$AK~)ucJuAlf){a!wEt-+Sw<<%;l$VU%#^%w{=F#Ey_R|yakqG zSiq%)b3oFQqZQQr$EYajxMqo}DANyP8%U;V_$u*{u(b5}H)$n#@X<#JCJj#hKI0*8 z>1P53wg(UH{?*;P_m+0uegiO9`#Pdm9{)m8a_?GrLnF%A#CQYb;oA0d7NJ2elHbY; z$CD021f1w80YEykfXp?RpowDhV~Eg7i{0tuQ`8?`TV721`qhMxHk-v{uK`F}XO?eX zIK4M7(z?xRp@vpM&xKf&hSn@xFC4A#Ue6r=IIL~%jn>x>)<^3HmkAJVS1#{00P#6y z!l%NP0pvo@L1xTAB@yVF4i=2As#|bH*FsmSWPPYz!>{*!wY&Q;agt_x_d(h|{@{a; z6ILGlGTZ&U`|-Vd_wJ@+Y2A3Z^zdOSCTaA*<{}2@z!-va2>m#)LHf>7z$vvq+P2uh$eJz<oHw>~S(KxP(029FNr|$n$LElDFs39A$)Wtqn>Q z1#+DhkCRgS$|tKM-|(oM|BcO(vMWe=^tdS=$<&S{oJ{u@t~0@Vx_%H4Z|c#(30Ta$ZthAOt&^`0(lrO${%1SedlT>h z7V`9H{4A(p0na9XKW-h>4LOd>un5Dv>>S!)Ml_&XBL<%j?>GNtZjtZ#{j^mHFU^aa z`>xu@@PY`(dTK4+OgiTs&qo5@oHEDwAR119b$Gl!@{F_0Sk_|syzl#t0OaD^uu@b% z_u)VvKoDsLgY-esZTj~0RDi+`km82R%=A0A?w}j}6dVLYJlO%AZ!xh@>!Y|+$}&#A z4rPiJ*ohx+Z6a|sX$6^jy4e5(7qe$27}}?B%ZsqCZTGe%@_DC%U{@b>`C_EB7rDZP z;GC;ktnAn6ed&o>hgJ*imbEK5Eyf8%LMf~Ak(aYZ<1wU8t*>IfLA&`;+MrS^=SI5y z*p(IJ=DbuU4lxu2##rDW&7K^wNH5A-tiH`!!41n|rpa*KxpWp2rdXJWtP#rxjXP|) zv$oc#BXU?S(PtZnlLIV>g=^!oEV7)t>-GP@z(Z@5%DIR|>7>HjV^S{a$I_9yW`N^R zP7rdjd?pud8*J0o#nfxNs^S~jmW-sW6dsyK!j9;*n}4D>2YzATCvwL8EeJrQd0htp z0xv~)DB9a$OVS6rg3MS$2KJ=S&5QH_aS%t9(D!=7ro;qacnTc^Ek|Vsbg=5j3jl%g z0naL=VWCwt`I~V9$oeE`03hq{)nj-7qa2KEBt5d_lYj@nSk6T>aXWMxx(9pIkELD1 zBz(FEc-hL;tgKb6*Yb-dN{2szbyq7b^Z(ukHxYd3) z0Fo&B^*N4DYx+RsJ~VV8?Fk^3UXX+XAl%p@g%O?$NhCaj8HLh^pmphpv2`FC++nL? z*PIdf3G08Qjx}lLs|T0A$@Xa&k8}Df*wN9d4cG#Fhjj(vOgR@(<90k}TnVA~L`Mx9 zMyt5=qkOBtrY$-2Ih2&&SuR)(Cnd*l1RfsAH{td2M@Zlczp%>7cfwo`zk!6dfSd15 zi1kX2u+RfC01v^)oP-yISOy?vPrBhI{7E{WXi8GiA)=pN2SHS>{R=J{c5xC5!G+-M zv(S|5kjhK8*53PCY#cNY+TYn4kAwUXXRmwFhwd?^%%}Sr(_8N@Tf`V?M1hN!z(bLx zzz&8G0uW&*$ax7s+V?xHL611Dee>8u=~(QcGoeZ!AhLd8ZHmGNO>CQ9e1&mt%jy6? z;O4F~&}AQDXl-*Nx?$qzJ#+1oi9!^T++wG zK~D%NVJDBluD+YRNiC;&v~pM9f+_bl(OS*1~6<;F?}#U06@Suq@$3Km76=W*4lzOH219~DEna)5`o{za}kb%=RJZ% zjw{mNfuQqJy~W=wbORu5geCr0gTmHiIH0%tTmlFghHTQ4uAx<@7%3r;=Umc6* z+4sUFM1D8xpl{BvIo1h)h+XwST5Jd9EHw`C99n>wtX1zS2d5Y8oOYutx0u2@y$+(C z2oh_zwM$?Z+#$ONIm6ZA;Sg^R)Z2uZ|qss7@!A zHQ_$a8s8=G?2fC+Tg^Zz=z#-hgqU>>cg3uumv!t4iTNS$V)MJ;>eIc2TPrNXI=v2( zg=ge`nphjHu4>zZ-2_?QX^l~F#E%>$xi@;0S{`u*)MSDPrS^z>C~+rUxNTqe8% znLX~Mt-aw6;4uejYgAaC^0Sc|XaOl8<)}3Kg`r6E%4BnJoj^Y1r4Iy&V3k6x+7S!5 z^SiLQE&$|WTZeTUZVg;QhFC?0SuGSfPyqn2G&)Ehk4e+1p!7Qos zW}v6t6(A_Y<`Dp7hw0stdQ3#hm4nZ}*mx#fq44wtSaRYOp1#z`5z6o!7`5}_Ep!ta z?#R7DocF27Oi~vX=kLdzHUb#63 z9*!P#j_`z-E`|*~1W~{U05Ss(0t691sZVNUnE}@6br85(Ati;N06d`By&=d>Q;?nYRf};`_(LZ>HSQ;Ta=ga9Q zu+RfUF+h$>swy8201Y@!mH{xraoDOIHmKyFA!N3?Qq2p1|E} zcerw45+X%HHErP8S*1HNIIL;!7+}{%x@`v)2)NpZmL_w+zXgcy>^qnHWD)F?VJ#Lm zful2PH_o_u7uA)H0OUK@F@Z4M42Qac+-{$1?!gnQq~Z*x`m+Rxtu<*gSS#p5KRX?y zra_xFiI)1p$xH+ezAVjiAuS*;w_REPECpFIP+BJydQJJVrB&k+P39I8$tlTM-!6t; zm4`V|-W&x|rvQLQNttL3>~}XI7IyZX<9-xeN?7G>Emp(em}D*~xsJ4R=w9rEc{M6| zCCMxQt0%9(hW)m!qltw80MZU4w7}3|2eZqIH-L|`)Ip@i2^CA6O?c970m4La7Q}Ym zJD8vjPHqi3e6soMnNM(ld?uHz_vi+xEkFoXDj~eY=-b8j@$a#M#aL6wg>I69#P;iye&(}umy;EV$sp0bjG?myml=3!qn%hbBlLwq6F(qb&$%e z9KlOOk9#NWl-ts-q<9v&%1DsZHO~Mb#>>9W0O>#>76U94 z@Y)q5vv(La*j$x@VrE7b58y|73uhNsZm^5+EOn5yd$b~Hdbf(WchZi6jc6x~H~{1& zS^5`8^)uwq%uu-640~fpM5e(o2x|`dFT4$RP#ABE`#t4EXeP)~I8y%7oV)g>)Wjxw zqir2V(T+Zn9GO|k0$vLaqR(JR5p9(^lEu34)(s4O9uDDW(vo!mMDU|sQG`K(6>hzj zo%iQf?%a5b`o~%7An=jZ9KY8rrLQJ2k#bzVABVMrZ%8?KnC9`G)k~y3y>xbQ z`A@$?7v3}0L2?kn96wr!phcX_L~Me!wQo-I4Zht9^4k(1O}$BIFO5R8W~`?BDubl0KQlWV3}^c9T)*?S9g}nB zItbjOSj7~1X`BQQS^Om+XbtC5Bl`MjILP6~*hK>nIx<8<-XZK+MkLl;I10IfQkzs% zmG6tSCbVrRrCBFT{BWEgXn6|7M7~qm4A!usi5MYXq$7RAXId4+3`sDc+5c4sR**Tx z0}{K3n@3M# zB2wYn@)gP1=Sr;gZv_k6o&Ncg&G9(1BGPb(Y-~cZN(j!lq|zA5X5x9cEC{pV``Sy; z!U-!<#I4p?8Q~J=0QRA~GACrxK>f?M0%$BYNu6JbqJD5L2D0f8R*()nMwu2)A> zFPX&J`{K*Bq@z6^+0I7{U-sS=0U5ug@Vou-_!D zUi;7AGg~T2I4L}>GA4l%N=Rr<4QHg{`>Kr*3N?J3eMAdbwTpv`>BE0 z5k}nt2s)&O`A1ehva=#)-a;nS4WX6*Bq{8@{;SPs=d)fqCg>n6v%|Vl7I2gaU7g-7 zla$lJy!o&k~5(aMOb6DKZ5_vY zvET}uJawFfP(5LH2s3l-d6@=XWgLYaoed6A>6?VYPOKo9*r`?SG>&V3ChW{D&!AEf zKNKK~v(wXWOwQ__y$+(TQ~7@G)t2sbyPLWzM%3O;6p0~?dp`WUN%rPxwo}Ksc)K-6 za4@}W^m&p%>T!s%#(cjVR#}?NdwQuNwl8X*ptzR=IbfYb$l^u!c2GfF;jv2FHw8f1 z;lbaW7qhjfb2eE`pHc^@yl@Mod|8sAdl_U=DKQg8DnEXogr3WS_-NIP|yy})JY%MBWEz;U!?t3 zSF|-5-ePw2>a#n9|8A)IqVXO=ERR=|VHZfg@kM{+x1?*xFHiw=UsJ= zO>?`kv$ndqwzk=98yjnzN1JOqTOq||W5iCTSt+3J!x%FZ9qFpNdm*+sBKJI-s4!BF zN=Edi+oY(hV(o8kk;gZS7^)*f1(qcfv3|Sk4xviVZxU?;e9y69pP!Zw0%9Ek2v~>cxets3Yv6H!kn`!eGOcSqEwHz-69BoBUE^5ME01hx z7H8)W7VL_e9rmaD?5aH<9R$1ADd`goe_rTKM@LQ-Nob{K$7ylEmhM%}Q&s!W zRn0Tb`|SRJnl4AfHPBKwW3qRnd z$hLQ!6L#uJn#9#_C_}8~IXDfo-@~|hF*xLyE#DD<01k4?CBzi;&dp0hdO5l_17z^} z^eo5Mo~I6Ct(7MjHTdI#p)pv%VEh=x?bfBO^6i%H!gD7-%1=1BdN3`7(519=w$(}G z8SJfy$IE17;y9vvR$^JT+Q#{oZnIJub<4D?W3t)8gG@vjS)?CuNz#?`X-3Skqow#X z76Ek$AT10~qS$Oe3po11H6x;1Z|dIgcJJzSL|EsmgV+fdC$JChRatW4)uIQI7$z#v zUAMgN^Pa;p&-e-B-fTTn^w7k~4|vg{)ixhys03C4_Rzk@4k1PVMG@zh30s9BNq;$C ztJWtUWyj7_@;neU7`)TGk?MRw;UW7tKRhsODCvUUOFZN}=t?4I}5bMXi z{&ggI&sPU=G)b#YVjp(5MT>b+2x0-<0wik=IpD5q)CR*#1V6KW0e9TOh=H9TB;jRs zlJi*W6s96vT4%+`j&xk$2)i197z$7M4!dDJk&r8fqMZN`u4i&)iv2<;^i-ZqbrxP> zKaqX*t`jRrntcFx4C&B-hA9;H0w4wZK!|nw2e042?2mKPL9ipbKAC-R$1A`WWbgro z;N!0{darT6)f?>8kM@CH7GM;BD!wfopZ$l0g6F5f8QM76o{}Q{TvlhvW6N!9pM58Mu`agO)dLU?&I!R(5UwCh zV_{5ZQ;Ib^JJkb6KTjP50vD+AN$lfACgQ<5(ATd0cF^G%@~Djgy`b>dv}|4_g6x#= zIwvPxN9#uh3b8@=7_2Gli8+lWi_gF`0XD0l$l>L~P6p68qo zP1TAR+3MG2JCo`4CWoh;o2nruoKfdQ>^cKYZc7GYI2qqBUqz^$K+|=qV^L1Yvxs=c zThLL}vG7CMqATXrHy4zSL;RriD2m?~vT-#b!U@l_tN-_3+u6K5^%I_}4q|LNy)o38 zu!Daf_&{}(r@s?&G0{{W;gdNIha(NBW3$6CwgADUuB%$kp6LZ`XIz2qA2Va%_<}O6 zT{v&qp*$rgvwi5M5T8uMhF-R$5}X8QVM3^A!!`!BMK?XTRadM>7fh)M+oUwWN;_;v z1rsKd)w?66Y?2PrfFX6+~Mq3D%kbrdU}z&RrI3b`RQwO&_%4>k|t z@5Ok5*&r8H;W$3GkhGfZO{DMzKnOc?iOWV#X5P;-82kDciWZMm|Kd#Xn}gp(L;Op9 zNzN0Gy91E77Y8Pw65}7Wu$BmGUUhVA;3I?4`u+Q(|4s-wR~^KL7edo<$xUP-U>wvY z5H=KSfl2@xb)|xq-(@}{A4P~H&As`YL7UTlr zE3IJ3>>39Nyx6Q1$uzK|NG4+EL=dPGr6pZe(0DQt^QoL~A}cI^f7|iFv(9iVXRT1d z!K%{@fLyw{h@7rak3qBNUJ!Y5ab?((hTDA0bZ_tKJA3!<-(PRmkc;P~gOGi2j}&+( z?g+8$_-3g@f{`22n)0{bm2(X-{tR%jMS7@);zigzt6^I)iwU4@?t>V=*zQVYr0m46 zYpM@+A_!F)z8~*4O}gwG;ipp2L`ocIQF`t|8U(D%dMy1_ePEIw0i>TUGR_9}2bFMW{i|zdw zsEMcd(uTqIm&pGyn=UkKQ@Zcu9l`_{*Q*2m>-ukceLDS+n8{5m0&+eWu8DY(N+A*azvEmo#zkQW05i?fQ05KQd4f^wm`mH)>z> zZ)kxQf*QceR!FhI*zw&3h43Z6!9^XdCl+^nG`c2pf4l&@v>Rgh*cpIay0bvXYU|f9 z$Y`1W>FEAnCtqI6Jp?O_>*z=Ta{u|^?-e27AeMb_w*l8=9Rz9J=(9o)#bO5=Rt&>- ztEQdm|JnPV*fx(W&q#8z+lvJjo;V6DT?W{;lh_$Uumw9d*64-Kao_s5M+0-`X)dN1 zSywjZ!d$kGivb8^f#kAiDWYW%ZFCEvOvixIdtM+IfW?pXaRD-lY+&E-RsHx_rff=T za*!qb$f~dYGqAp2s$RW++fvHViZ+LXSEtoNE}u;C0+OAkn+HeFQo~MyIru$L7FgI! z)#sgSDTNCurz0q>*V#U6$;vV!qZlp~^CclO`C?K-Dv42Ovwb4+OZXdecWw84mWF)p zc493ZIb`x{K}Ngo|8u7ejDT>TY9=(XMJePf*Z;A&QM`VYQjpYGN&vDRX`|SC_VL2h zcaW6(U`qFtH_Jg{u&`FE>qsr9Z#OG}x}dyL@xJ0*WxExPLUK?SnfJMpYqi_36G7H~ z4Pj>24QgH%)sGiI$s||F+ijkf1dxGTE+zE0sAZMJ_Xu1BW%y?6Zuqf4ZAj!oXxowS zH>S>L_k5N*X2H+n=P@Hq%HyM{?@Ry$D(^P}K+O55eB=ootbZ)-Z9KTXOiXa|AV99J z8$uf2eKdU@gy-foz1CPNNt7!ftBC1frLq+setTP9Rqwa)6{>*LxUdA1+s!SpG4$IN znB_`~eEBG00ET<{;NfLSQfLZ4B1_=AscRNU2@fy;P@oqro|&1mhQX`AZC|nGqT*JBh8~PNFFl~{(u_2_k-On zcMqiycI~U;hHM}!%XYRh!V&Aix*??A`*`|02+z%FI^NuNB%uckrfd0vIAbA zV;ImwrFua>@_ksW?~AvFhjr;HJ}fsH`(@39bT(+ep@ioB+S8}IyS1I&-CYzwC_JuK ztBtCZ0#&QETCG}rRBdpv{e5whg0~kA=gZA!>z*ogay|2kb^H-a$B|5nIT_h8?uE`rvuq{+f-Pi~u&_V~qR6|V_*j3qdQ)*> z%sH>JQh*ej-+d(BtEVgnIgUy1jERoUgdXL{1t9BtdmE`gAC^;MGx}x5#s>0)HU@-# z5u0wvXI)&Qh)a}aT}mjT+>;t;L+4nA_11fZmg^`$%Duy%e)_42@6XMjnuiC4ycHcn zqz)ITTB1ZQ%UEqXv?G5&Fs1PbkxZBEcqZNCAc^cH8EIGOW{cux1Rx7{?_F0WUA{&u zt2YE6^5&PC-P>4He&>bKld1785-r(ycJSMUN5 z^qI1Vab6a?+#GH3poEHzx5yo!)NxR9#2WqgqZ}lay(A;EM1~SzH48fkg@q9sc7?Ta z<9`+8rI&AE?dpXjFuHj(SypHmLY{v#w{Ur?x>)H;!Zap2dTM-%uppJf9$^7sOom3h zGV;L!zO1Db0D|{)1R%`=07PHuQT-{YnO|ML+_8fP6!6@FwejUw&t9x;#j7%wQT5 z9i2&t!8-|%UkH70zWG%P@ONziNHYOQttJI2sXE40n&+V@u=IpVE@OLQzHc$ z4xmmS86A;>jNwG+>Hs@Px%mDsiU1H*LTqpC8$Oh3`;}J4 zgHvj7Ov^`zC3(E@6i-fW}*ITV1jO%?qW1w+cwBZC~j)K6o~kr46}14y)yOxB8wTK4L{AH92p zb_$nCDZ^uJqOzF?PEMi)O#@u7ns|7nUlh=1~` z>zY&!GL93$BvmG9clWEs^S`JgR#`9b&H}H zVK8kfAGP`fZ8)UE+KA33regx$6D=x<<2ITT}MjsB~i`aTiCQ zic9~t09p7i|GNET)cIK=2N}bOWQ@_&^83AC*bcJ(g(}Ls(IeJTW2+7Q;8EKU>g<}= z-^h`e4=aF*&DRxK@KSV(WdTBt-9grS-(6Xl(hdTExNOv~lU+BC;Y4`ELU7x1eeajWgzQxU zUpoqr0|kgO;VI{3I=h)<<`y(4O47?!Gy(3~otJSTwpN5mw4F!I(!e8RrbQYU1TvFj z9=&Lg?4Aff-sRgc3wy}@)s-8c>+MxaMfhx>5s1;nR~+^0WO9(P zoJhw99;90?QXcV3p+EW@*ga+kDf?DF2;Y_n3hDYfJV^iuBd55WP9z-1n*Oh?WtR3* z7*YN-mBthx=AV~R8r03D1pqP|;2=Wo{kMOqr}$7RuipG{k?!L7SX%zVM%Wqa;Q2HG z5~F4&DW|3PSWbk_4kmMpwKv&4=!wt5>93Rmq}kidLg<_PRdZu|N%NvZMt z^0WZ*qo<%SNoG1ajuT-(w5;v-U%!KVyQg^o!5a}WQs;9#@i(mc`v{P3sn<+ZO*XrF z!sm<6r}+m?`3nn}pa9A3X&xXGcW=gATX=;m@ib;fDb9#Twj_juIg^Wqw*<({(A@V& z6n~^tkA8p5;?^#C6WZ8lJo|WRw^-SetTXDsf86nksiR2&B><_vAJw9$auoo>hiQkz zK8!(z^g-0IN+5Qg1l=q2Ff3@yP~jq4vfr>B1lTQ5)ub2z(%)17nCwTN<_MTPi0So8 zeQ+(zm);cKBe=3r)p;a~i^3!f;%5yY^Ur%JKuj32_UWQ= z=t@hQ>`ei(^QY--Aq(&R=v9V$ItHC7IvZ7h$XnRx6;*#w(g~ESIEGbb9AoW!$cQym z&vUrY8#kce`@p1E_N(a`t6p(t2{KR{G|gJ$L83=qx=qcat04dY%_Q2d+nQFqrK zUM6$6ftN;hkZP~lZ1$?no+zP%iggLySsW$lsA~a_FtFJaefDM#adCxY+WPtz>&5jt z7L-r3&e6?kwON-Rk>6-kg?eE=2Fef_xA*Oa%-z^KfBxHVpJaKs#VYSNoBe8|Ax0yO zUSF0=f~O@RKOIsh;X#IPmtu60sI4|?ziufB+rYz>xl-chLRf;*3xc?JaZcEwW(^=$ zp6~OeAEDpL7NQC#$15rtLYh0%@^A9)zizwmXC4(2j%U&1jNq83DpM1;vG<%ZZ zozk$sk4B|`3N5f8)TTm7dSzgtwBIO~q_w0=luAv6wEJ{- zM~$asUHP3#cMG#hTd+QK3J@puh4M3v$6poUk@tkC2tC$sy}% z>DXZe$dq=Fp%>k5@J}KpG}UY$s!mCtU1XgWsNHRik`4>SII7h}S(-z=D@7;YR))^D zWRhZ$6MeLPprH9wAM)pI!x{q!k^dR@_%9H>iw^&{KqjuwKFqZqU;5ixp zcm#+M9l7Q5fxn;J`z|&GY2pZ}V3^ZKY?mBg4$(fzTTVdaw>@{D+&dv?5&Fz$Agsoj zIp=eK&~-XqH#Y4{xh~g9ql*k*x#rq$Q3binQV^JW8n!h}t9Qt_HUhwQX$xshUsxt5 zv9R1RV7z-WTL8KI{WIAo-auc$aEgkGD-Vvx$40&JY)aZ#^FMZ;WOghF`4}~mB>Wl= zA}SvsQC}&y_)(Fhf=ugd^56l+Q?3-B9p`*-pJ=2|%))Dyb7?QBlX+Vt1Ev&J;CL~~ z%x4*1b65@{&D;yT0l`UP+;vk15gO&>f(XTU9P%LMEQql~7**YX8m&=yS0<&-i~;0% z^Nl;mM)BUt;=m{GO7S(rrniI4t3{#R-H>G+ucWAD%!sa}V*naYchduacs=t(a_W4x z!vj}ak_=~eJ8lkEH9DrrVjk+N9rzG)6BoS0B~#k^iIhol^0kAbl$~>l97O+B$fNP; z&_`R5M4b>dTQ51NVOCsO$fq$1>DIx#a4BJ4N;Af!e=I_fW68LXwdF-dJve>?DHZ{c zkERL`ZVEIQ9k1rDWmKsO5tSmsexfI97f&&$w?W2ghYH)+VAQh5C@Gf?GbpeU@gStU zi?(-#$oS(XiNB{!N?aK^_85ABk8=b$_G-s}6*G&~XA(j#QAjsV#afA@{1{h1ye#IW za2obG;%^|0$$7+@oja_mVBn2Zymv#m5542PKC;=E)$P9tK&&*L`#{L;t@#bK}jxrgL6d?TI5qeBjgmIFibkxCm(Gr#av}9k_pK?=ZvLoZI!f9*T>MW zq$;%%hGV`gDwFM3WHF_}W`LRN!tWv+GGayYAUJ)cE)>jZ&!|b0H+WcUfRRNejASma zlMoW*T`Y2=Nn`R^W701}&1Bpb^0`V2CHC_OK#T|JO-&i=$J}Hf1FfKO+y~3vJg`SD z#*?3Pn(J$px7u61UcV=)-z4?>eQoL;9BJc0?Lep(KE041Xk+cs?#`pyBcYvLkqM$u z6RL_Zy|6`udNHdlLqz|@#>N+w4RPnF5_)+;#9jx%tK-9ZuhA2+qsr8Gc5A&}qgE}r zR;C(_g`Udj)t`fsg_<_*EVs+x5u;eL>qyqheZ@*T&tx!~+h_~U!_kz+%$ywL@}HYy z00IXm*OwMGwC!t8V_?$1Uzj35C<7s5IEMRRnP6Z@N&w7UKgWyBj#~8fU;Hee7e9kg z;#2777cXDxQws6`y_A-h=s0>Q>FDS{66oOINUAR};ppYdqaSJ|oU&*XRSfEol7vv+ zi~93>BOzrA0xZ@G@>DL8*MjbDGx#^<4ghMyPw8vARuvMy)3bGR(|{X5zXCc0p#5n#B*R7 zaYF8cA@U`8NhtB4Wd=l4ND+YaUM2t#Iy3-ihR>lstv#tGjoSJ$0z|!wwhPr0x#c<^ zKUxyR6bqU207AP`9R^6pUeJW09+sG=uHB4-GbVkopK2+OYjPfel8k1Yc=8||pU>Vc z)*SV)#?S*%I9ZNy*N)fbeL5w8(6gd#_$TB(LW-WC02VEE?cjlLlncP^&aMCidw{0! z+ViV*d)mkFlEUdwdvGE<2yT6VMg_?EGk9OD7rX!@Q-G*Sd_Nqqq9laT8W{n^JhLMu z&Ov>adKa^!k|dLp(>0L5AVzslM-OZH8V@2xg;}=!huHzhmFLvM8biNbzIe0rhC^6m zYCDJmByrbpBJP8!81PERu z1xTp}p5ycYDOUoLBR~#&RWRu$1T}3bI;k)=o$R&oVKLEL@6Zb#19kG)#z>AC*S68T zN;V$EdBVrd5I`<}U#*`AAHszkzkv`T0+1`yJ7Q(_#%CwwKA1X=myq$)&6kC{2v*Ex z2dN1_3=Z5$BpEE&7(Z;c6cEN?LJE-R99MUcv-r-cmpd&Sj$jelRKL~&5TBb|J&9Rv z9J<9Sr1vZ|GNsqG+z%|mI*oT#+@Fpn6zzy-!pGSH$S2PleCx*|IQ|w7#$DsA%NCCnf8Pdc*=iV(@C)4TN$urY5s^jBp^9OyDPTWHr0QWyC54NHUtS=FvnRga%oXvdsVC z|IP|Pt~?ue$!pfP$I3v=G1jAJpG*-TcDy<%_ra9hSAlZnMig=xRlYN)JBYpgc1~i^ zo}tWM0}>~*6U7((O+8{^-@*~=IDqVpW7(T!2aq{5ZE8VpB4&&`rPB{Lqe z5)OoE0Hz2cjIapn4EZbo866#eMe?|^aVSr=X9*z16XIjNSb9@;z47STxoHUs@pnEw z_rYY>kYP+bC`f_9L4$AHM*SQ}^Y%2g~y zujvDTG$IdTBEhI?o`z;iomhhsc*v4z6vs5eIz2O@JTf}Mf;@=%Yn(BFP*L%$MEEpo zkDlF`pAtZ}JJ}hy4@=UK#W4689UA0lG--3>K?nlL@nkKcfVdz;3?+QXmxLAp$WN7l zIjR7pCjqX`?0wNgk{$rEA9#>1-cULLqSGD=g_eXtV6QYX8I({Z<86S8ppgNuj@EX{ zl{{P?AV#?h&{4<Ms z!uoiM@^%48Hn18gG}R>#zA79<0fG*+Xsdmgskfm&M&m7E(iI?0RW&hym>eTFj>075 ze6`VQ+?)Xij|dDtwVdg(OZ(H&fd}D!l*Qi#Or+vw2q1GGPXZvI=1#3~^ZMO|sqi2{ z5OxOcgUN39b2BrdeKsoK51!V3I1+kEI(pfcEu;@6lm3hT%RaPA`bRINEety1=zjm` zNWN&1Iq1>WLmB*{Uk?Dm0jSj~9~AdO(9c0gP_5u09qUEyD2m&Zb&NtyyPl{dLKY}h z5BhzH@LB4%eAdlf&OMU9(TSv2*%pe;L>I{=Z#;VCacty4QvL+rEFGO#@n-y8#s|sV z>@ey7@aIYGAidpMdFkrya|_crVo_)HwA=?%rZ0?n>EMZ(T#X6}OOLCdMip_LCE>B( zgL@Mpbw*N^hDKR5Y|$faP$mqMc6J``1bWO>Fi-+Xmo{a8vK>Tvuy$CqfUF_w)FsZe z)T*NAD3PLfqaze?kx~=y4V&eMm3VFv-&x``W%qHTv=xm!aVmbo~wyG7WY2GjJbF z9cPBBw2H_gS0hjGza7N>M+|=`q)S06nSKsO? zyqKsqYsyc-g^K9C@9SdfKB&51#wfqFTkE;c!as!%~(2Blmy2tDgy{Sy7bs$8^q%GL_UVY|_cqgC zYs1i;RvYp4b^7!Q{5%_$j~YLrdnawmGXsdO!8U14_!EO5VTPh{=_$t^_Vl+$tmAYQ zpH{ztTcA&`-xh?-P4b|14FI9<*Hd#JOeP>x>vTP2nG1r*hG3t-ONglYPRjc2Aahb} zbL=61wVc$n-XLWO#0Lq2K-&~D$y4wUAhw^-k9&k-mQiVkmM{N2 zBLJD3BtZ7zfKm34NwXny@rY%&@TcNFl4M8jsMbBuK+2p4udVcD#Vb{|zm#$%v`R1d z=8BVcwvad`ZItH0lET6x(~^$wI%M69K1CqYAe*mq)MJD??^S+XKHJ*NUj(6sPKAea zeyg%AbA33Fl1CvwL6<(MMMyM*%5vjXVvnpyAo#GHar~*zckEeI<#9Ms{(e>f^6^A& zc?l4BJ^@4)FI}5km^?su3!foB4fkOwqtj=DiZphkMPZ}Y?Dcw*H|v4KJ%UoXDb0;$ zql&(gbTq1g8j&P!!9L5OuO=}J zKMnUW!ii+Oc^UZ1a$Zet#jISd&*cj`gjPu`9Y!||M|d7d0d#~WJcUp}-w#2gejrpk zkcSjeLJ=J@?m*HHKO7wWaPX+qw%~GY|8PS!d%tB!o+x7%QErj6u~!6gt5tQj(&*KT z#U216%e2Mg$zg~d4K9AL7ifv9@U+Qfa@0{noempJ5hZdib~I(6HO>;^9TrA(!e02t zS=m9vp~<8G@_4tj$S?_lklT0ezB@lji$c4F53hDc?&Gw{Ld-~szOu||0~L0)pk*WU z2d5_Nirv~28&TATm;3@l9D&Z4Qqqp2M}?N7F_Ld@i${lHmkuA`t3|f$p=d5pfS>d4 z7aOI#r2s4Ue}*}(0>oSVT1vXLZrp|@^dpb`(q}#9DT|jIcJoEewpb7v05Y2$fGp4+ zeIfvPU_RiNmY0@SZhdy`+9wm(M&5IJH!NMhlNL}caq zrT_5n&;898zLy68vEX8MhkweXC}U^4QLite6 z=ox_Fk6(@ed+R89 z4i<%czcnXVUa<$^2m*mMvt&nkgc4gSTJ_cn!h?|Ml^1;d{234;08xn3o}2sInRJ6g=Wl>W23U~I)SEGsquU?8;D!s^Nz8J}+Jy{01}mFk z*#J&MwF5Be^rsGhynlN7V5706{~|J90rErDx1;=ANjk|bP@&QGgA^hI*qA6@;gvWF z%DM_2jN>f(Ys?lv=APFlwu2}@bpIf$9#JB~^{Y2;-M(|}8bNXvfasxWR5dSS+sTve zAF1`6%RJrw*dAaz1mAZ;#M;?y+f4$PxR@=#8j?EA+BAj2Ty}us*#IItMqttvAT`-R za=Ko~=m`#a*jFT(s!4Ll8o?Ocli-DU?M-%Si4_1*n%6c@IO z7zs$OUSD0ie^(fixrHPkEO?HiP5R+5Adu|+x1*P}TdTGcIGmj% z?j%gYgY>tI1;G*NOgu43(E0VU-dbgpgY>K6 znwKxHi^rinRWgYwRhh@rbaz9r9iP~J=pg>9hgr_n3%mO4FzMeFCnX1IKK%+OEJ6f% ztcHplwS;BAv3BqN?Yr-u_^h>Xd2Zpd0K_}f zwR7|1wvqXB@4ok|U;W2l{p!8{6OLHqI-JG&J|idMqT(WoWH;rAB|C`8C{lT0EK!mu z8FPsLY`ZzJI|t2!LkG1C#1U&#M?JwCn-tVB3s6@TjQZ?)1O z5f((-j;2h3;f^WK23&=sO(C$t`#$M1=iwRmCYh6Z`kkFytiMhG9Q4c!fDj^t39GRV zmVN2ht7~g(tM~6-o1dS5Jwr18?ti-U=@Pj7510SzKUXdM`<#gHZ4fWcvClBpy#Md7-9;}I(Wq_tUHf8$QEXEOCcX;0F( z9Upd}{k}TxEqK^MrU$98UnblKlR25=?tvpGeNH-prmK(GYAillEHdJZG3lR71R$Vd z@6k7lJX9fL8O2a1LLeQvzPft)p>TE$MjhFMt0f{;oV6nCa75IT2&{ zV=xTo)${sO(JK^{!dfjTPced2Rq|e6B2OW2_M1{eSq3zF)v72o_E82&peYG8RjW!# z(qoA*Rh3jzsvZbcYr3M&={1|phjzrm7FO%kBNgRaq{ie1YNCHt!;keu8B)GIRivyJ z#RJOT@3ZLfWM@Zyr{CPP@Xkz(t@2vGlsrO_k(Xy`F__b@mbDI|S6O7l8N24aQlFSA zR`2L*hKlAv%V5Gb1jRocW*DNs8PmC`puVF;%tE6I2$LD zc$Up+ii-aMYurIl0SU^sppu3SRFbj`kT%Isl|hBz%%P;}?Ai-wC;AeL6Ng=i#}-Jv zov043%-afXAVgo?Q_>*R+A8xmWpVth7PKVmmkR1dg$wTPV7W~RoVb-|8XnY_wXadC zK&!;Sft`aqi1Q;5F*}jy2S46`nOhSYVLIC1*k3}24EcxoygiHtW2o5VS zw~Jqe$eMs8RY#edzk6#*(Gi9&2|)0FDC0VK#5yA<5+A026y}?Gl!J2x*j&ISq}6sb z0FgHjWxUtYfPyr&{I(ymC3m^lZz#qTR{#u9ff~G-fIJ50-4Nc{LiS4qD8s_)utAMU zP(r~=cV(+Y_y9>I^mV=Xh;WLp3_ek+jlvd8a}x+e%XCS6iIZej?T)>?^fkMEg&21m z%H4x(C2}AJzF7gt<&P%^kb@oo!tDZIW}2*^m8FZ2voEczuH9Q(yQi1G#QGz3XgP~KR$Od~=H?w6Vb-t6q-f!sBhpaN ziPor70v?324r7=29Bt?Z33{Z)Vhc3`VOUUV+KzxHxmx?C_6GI`-kBJ^Zv&lwmU+vy39O|6FHF*yaj_X{i7%lhT(X4+caQ*2Q?uV z5FrJjtc91dm7!B|ZIdd9zD|VNoi6KARhP!XnYlbshYc3M zJ>r$&(>*fuVMIm%APv;rbHAf~lEhF$ys@hLp&HF_j(Z zW(FXCn%oZ3)E&eC63$u)R9Iy@c9FmPyT#?3*Ke$S{`u$1vkOA5-I9>g9IKB%{9)S> z2xB;r@n%%?ENj-_IgNg#oau31`%uzMii!p&4?MH1TZ#VQX5W;%c*<56`M0kS?J+W4vejcf?ShLTCt*{Fq- zE(*_nQ82O^j#_uGox8IFd~mJ-WQ6NrIcYnYAujIqbB1WeTx>}^Nkw-G@xvx|w2^rq z$11h#6OLv!a+KI%)kp%R=m*PQ#mvQXnWHNe8!bi7m!cvu^y(_P6JkA%in4Ll%tW6v z2cyw$#LSVS+#>>td$gx2V`h<6%-D*l^A;eZRIGnZNXRFCW0oL>w^=F6E+ARHdP7jM zdi#cKAZRq!)*7YD+Q)Va(yOOD|IjVKItO61~z3b(PgerZXqDctrWUbsQ z;Xg9^E^6Voo&JoH?Mu?ui4ECstU*OjWZ5mm8u>Nt)H^>P{~M{q#T|UcnDkHnT%VYr zu>SDFMWW!?{ll;^gcn1I3Opboxp8xet?d8L00<}_%ZZp<(s2%esAHnfT(5ZxO7T87 z_#)ZljZ{h7aSOY@FN1=M5-IOXTRB|(A`ipEI+9qxT$Cd152&GeaOLYZ3!Cs$5@a(< z-OaMxg8fq&m&sUKRz_V~$|W?&{IdRBiEdDMGc6S@+OHKhy#hcbCKw{Cb{*pzDkC4Y z3TQJD4GU z{^d6Ykg=SIF{fh~^*oK%8k{!t5#&IUgg9s(Hk*fi`H-Yt`{9#8nwuglJUaS8zT%GI zNJt+&G=g5rN5zexS`G3;Bk|CV$H5Qcx12+s1H&&r2LO#TA*7r7q_DE6#iT4I+ z+^D}w#bOh#S>XM;3aafwY$*~&_0+P}2`AOIL}3ui+)avPc0kJxdHtEES**K;E2 zHa~_7>C!JJ?c-pR{vr*3W0hCp=>&BV$zqfol#vU?@}bOm8C;+MD~cgJrKY4s4AEgS z0a!y{t-9G}q(N8N+&KS%IAC|aV+6Z%dd` z`9Vz&)tH?EKX2Z~EHrR8OYLt^)@~lHWK=43LFd~YWQ2a|egE05WoU-jb|Db3qJhEc zi7b)5i&iHO^7jdo{yI)1g~y2k>fq(b6kIB1yiLjv- zFdNivB=8`W{R7pD-yG7X^2s$h+44NdmIh^~nD9yL5R=Vw?puJ2Q1dSziG=UYtxGqr zE-wjP401rl2f<(`F9VM?89;1k1j=t-4-n%-5^#*?L?{CQRv5hr009z?`&c&mAtpG+ z23wDP(xFzS6>b1XRAAq)?tSq7gs2|l8g{xB4Rm;TP|6);ETADlYsV#Aoq5V~D8?B+ zT7$fDHS(4RIYv$hfV{JC?(W??ckbN2ed*H5P0>{sj9ic;9!Z514fZgUXc|QdGXlhp zSg)0TSQ^iXMC*rWBLU0|>_N<&(B9}+OIFQS8ZZcI~~-KD&MU)}>|M;l^uR!-N&ALeAY#6G#002$O!i{NwoaTAL83>Jj0B(*>_4 zi9eHAHopr5jkU8ocG^zBey%f2Y_Olua^zBu>Sl)9In5DkyzP3ULV&1uhkgxPO34wAODZN>sXE)N21a02i7abd+)vffHi-iFQ|LV)@8k|UiSsM z?XkTZKckBA(wz6SK{N>RAdR1S?;#;(u(h>a)3vT*vIr1N0Hh3G0SO=<7_QV3iRPJJ z4$o?`$9C1V7YbB(xKKO~kZ(gw(eGqAdmiH1wj}IgT?AlFs?m%9Liz6UST;xu;lx0W zRcGkTZk&}igq6C#(B&Q3M7=F;?C9pq3i0*k1t529&juizN8i4EAGQUwCTLFXf9`2E zCqKF8o@>zUGNgC_F!;;xJZAZbEeI%}? z6|swwG{ESZV_X>^F#}}$*1rJA>r)WS4KhHgYN#&OTOV*9Bz2zV$aAmyK0_gOuz3z^ zP^?aLu$n6){qDDBM{2Tt*FS#_dtJ{#(4fGEzvdd+@CK9xh#T6num_hM-}oD~Ap3W* z`~dG1mWcJKn?n6xXnzbMJsTunL0rQi@dkN!?A7u$`xbc*9+va@C+jw+txa(qKu#fe zG40gk4s{g>5XcT&kiGqXgYz-Zn#*=nkFgAE_@(iE7tc69!@RQs$lBT~lK>*)1l_Jf z2kw7*5yD>Ay+jG;O(1=PWT7`x_`_)jv3_}x1n)DlLVgueUI3W}A1^I^^vTYksbcUeb^Tv! z9}cb9+Q7Kt*wvxJ1p?&AJan;U*n+%y7hy12)R;gx*tLjtiH|&Z&ov9)IB{k=Qxvrz z$9$jHhyMJ>6UqXNcmI<1ZM<03k;m7Z}_Zs!NG;>m*;=5Rd zv|)Pd!-u|+o=HfxK9vB0k`FexiYybPO4_MdkflF=3z@mn=et{2JEFT- zfn8iN?0mWdHP6&R7;o*qrCM12_0g*9VvWXUv{;18NY*S~*7cGEC+ZZqu0;P&oXg5A zm0Mm?k#CZ6?p_>KP4WxXI||Wy9}cbJm#$8!`6kLerEZYwEEfUfXY&A% zJKmcWK-MmNc>6Q}vDSnj(ZmTFlgDA201$x5WozXBdQ5%eDZ5vbEs+!(rW$)KxYT60 zxykjq=~#+046w1O7e@h@@OL6Kh$P;4;BR1Q!o$?6-VYG5P^htmio zRzNs+-nLIeMI2n4iy9z*SRI*>ju6@bm>IGQy6(&*&fJ|1PiEG5WpxFLb*MHsPUA7> z@t`7Fvbec}GOH^qt1sIw1(!~oSLWuht()XI+g%sSTOSH#qtR@IlZwONbLf01<(Lm-yUy z92?U8l0ec8PqwK_^73dC+cO>zJ!XZ_AtZ;kq<(brgdWL@6G-!C1)OC*5H)fzL5+bAm6Ms5kfw^ z`cj>2eN1PGFm0RhL~3mtX!+k2ViQEEs_H7cAC-f_ zeEOJbTV3Rgngy#!MPYyl#9T^y{!OAP0T6Vt=Q~yFDR@q(YKZM`E^QmyHkq_aqBN3K zBTXpIPyvPcEFLG*NLW>kHt|=7zI@k*kjNI)cD%s$V!N(r?72XxdsWzawZxxoJw)ALqUZqu5?Q4Vr4v)8>7v^(-Kb1hJ_@i#Btex>)q5KB ziXfrTLD-BqvjZ}tTIOy89QPH{bE1uzg|akl-PU!5{#qL6F!i&)AN>CZ$ZJdgO8}u9 zI(QKCiiZ}eZl5!1eGLWun zoTJL{#M~k*P@0>Q$-llKMK(3Wg~YrYElu#&mdEEoub)J$+YX63n;X0J6`@H9mqy28 zf_rDfI@%JJ21T2;Y_V4S3VkQkuhCUE%u4Gh0G5=Uah(lAfc*crATPZI+hIoX`b+>q zh=>?#@e%o!*tXIOzd06)S$K8uaHIUuT!m86#*ldzvJ~>3@-?gop>6~7sAhsX3gV8g zp)Xw#gG;W45HveoB&a%}U^u0updY|JsdsY$I7?K)f*5NpZ3Zbu0z?uTV4;jvsq^Ig zJ-Q%`eJvSKx>iJx2+2qudK>HzAal^gdS`cb09jjl>Cg=KExCU&nmYX48T_S0t+A}+%%$?M< zG8_bs(Wps0rG!M3j#BV~L>xk7J4-}hB4eSv=p9*isDrtPphd(y_>Yrn0Uwr@Y-J7PtmNFevz+rl0s%>+&wa(- z8~wI%B>kdr^zHLOVC=t;b@Fikg1!II`aGEM>yc_~r6O5^ zU?Wj1hF>;N_P*W)g4{FBn(p}kYQ2(xQ`PnBsbNP$%gS&8`g4&z(=**OB<=aBySl1= z#RLjsAsn%tkS&Ih?qQ^{9}X$l21jDoNp|X9+W$3sjj-@e_UBwf+XZ$~xqRM3cr6@Dj^TJ^ap(v)ujTj3))0wKwirDz z5UL*(AhZ7HLW0fb{lZyNPT5Dn#4^!TVEqaZP6GJf%4^>X)@ z-`!e&GYFLQ?g7#nL|7!WeN05LuWtzw%;Jhe*Zv6vv# z()B_CqSSSMHa?LIQwbP=1y>XlXi!Q96>ehLn(WAx z5cmiXE9sN1n*d~cGIsFTN1EH`{h9v2(9Aw-G`eY8RmC=&8fAYPWfp^OD6(sqp+U516`~uZffj&_#xvC~X8mad$ia>Pgs=!fn4aovsa_4N z)oktxog@z>4LDixHx+NK52R11R$b=Y@G5P%?1|>LkHRzAk$$1mk^8~H;JU( zoCuwd4uU6=fS)v@-0*gLEw`k#MU zcSGUEtyjQDR|uJ`ND0|sfcTe0sGR2Z0`rM-ZN4Z3-h?ngAu;*@8^SR-lqtEJw3c z&@-4OWn@l#uDFwDenl=P8z$3p&s~tbqE=Ne>s|6bk@J zVh^(!G@8nW380d%=bBh2qukOF#8!D}Hs0S_&d>m^-Tc&F5Y5CtVXDi#eXrIJ=a5%0 zw(BT@WeUVq#&M*ySdLVn&$p2*8Si_}fKt&r;%c(d)gl&TbpYA;`~SbI*(*BHK2TI` zjkE(Kj|ywJ&(GDs&F`xOhHz`w#0Te>3rr0*Y={j#c8Suw5zeuBy}_bb7CWP3P%S7I z!)>l9^_4QV%Sk@LSq@lYCvNBRwWqkcG@JEKBcIQ7TtGp<9{@~_j2)5iryf3x`M)hK z1xWH=qboQV`C57>A__M?{@a$wI*cF;kVm=((}DJZf~f_@4;KOQ{eH}4!x?d|kjt~U zMShR7OYx=>zJ>YpOxxwnS4P4Iu5d|mE=7g++~bVd9k~1J>5+{f0+7RL^uF4bHy8HG z5|1p=6@_;pCjH>ebjn4l(pQ{LUb+C5pp(7P>3L*hph&J-k|n+7n)wY7A$2p=C|LYA zi>d7A$|O_F)B)49aX$hJrQRiMYqAV9&=V6O-tz zJK=u(;vEwu3^+EN&miC0gfH1U;Arsuy?sgV#0(019D>fWcX+tBw|983FZb?^HOzcG z_D*5Sg^KY>WOq=X-@!m5*(KRpkMBP?*+2MxZ%v=%10eW@7@py zQ!27J5DN?o-qj-o)Q8+mNL3qEIB#<80|nNVNACf0#T4tWD+0&|43L+$3jbTQkDPpz z#lZ`;bP{(_aY5|(&JGe~dKR3lSoCmr$UP;pTf)-4wrKo$OcvPtZxKrZr4d8p@T5+B zIAoFhn!{lgqy8G1H46zO2WbRv^+U(~ap7^Wqa+ZK{$bLKcdLe6()D9T?7`k(>;uW2 zc?-I|_)Fn?TaT)ys;4kp`!_Qu_^jmPat0p-AiV=4$j3i)#)$>l{Oczx1W1)Kc9Z*U z+J}`A{D1*LKUvUIwRmh)oOtm*T`_Pl)`m+#f+(bq3~TCoM)zEq&2tq2%N8 zRZKI2%}4J5K>pexK*0QSXJr5p9fSq{HNRE+K!KMlCJt1Q6LUhrLIq^T=L)B)t?iIw zzfkT3qIj&-3o-20X>hK~5T!x1+{K9kV19zNI*m9#1ZEKFrxi|*$Q6(pLyk{NYrqxw zL`UjO<1ilRFU_)}$WF&m%A5{iJ898ADlNJ8Ve>RT?_M%MK3H?&>VL;7Z->q%FK(?2 zAjsN>|GM(GXdhNe2f~7+uo6k}Tw)3`-sw4PSfIHOME+D$>?0zzAg2{A4%{OmTrc@l z2->6cyL=y04-#hxq{J(Vi+kzgOSvaP;ho$I!teqRqjfJgSaxAKK%ym z!&qc(ZcUC=YLPL&d{tn*idhPGjJ z2a5KyxwZIWO(*i2vmvgRs7#J}VwD>V>tp}07 zgkSs~$cD@4e;y{&3N9S%JP^u~p-X1GDioe=9{heFlq&M+k*Hc&O-4eK%`I}0_worf zr%AM{cu*^jxsw=YhN9UAz$U2vmZ|9#MbJ2PGQra=r&7Nb?L&$~^k6>9fEuE5>py~g zbR&Rln+Q4>7$@`53G;{V?~l&D`tHT*Mv#|A&Yx)_H_|?w_G`|qCFJ(<0s>Zry09n< z1ACTS{8NnTu&AG&V<$FrHME~9Vae(K^XL2fr~KyH{vPjGYJ2-RpJy7B{eCm#)_=Nf zIn|_g9A$fR3r2K)@l2KxJ7;_2e6+v6KWE#!vYJF>uv2j|2Y! z{OtU*$M+uIfA;MDy}J)t?mzuzRZ}e3L9Uug-BkO~dYW6akO0JhU~cLL69WyzBByfx zldNJOGcnSJki24;dJ`y0(q{_4p?1@TDvEDfyeLKBm!&0jl(>c2s2`bJ%`|9-cv#*~0>F&LI5AWW+ zd++Yuhxb^d`gnx^amM_bYa%z&K5R09IdwgPSYl>*;cZZ8p4J_g%;8;jEvzP}VrKyH z5>Yrl*j$2+w(}7nezz<`Vm0~aNLWqaACNM_+X5|qKP5vtaf7*=07_+>_JQ+cfH0sa zD0#E~0Qq4qD9GTU=-@r0!bS@jFHXY!?MRwVK3k0f+cgOtB*TXTy`5#H4@70FmDW zRue=N7C|)+Jh%)0LR9BzlsZX!le{PPYu7$-zA>e;saDXtRgcylATOo@2ayH+V#@Cm zSs9t1efHTIzrOp5g>?);g+M|Dn7|J5@cxPb^3flE5glZSN`3?FBNf8r*;q}01w76M z2zg_(fC8J0WrK*l8gHDy_NV^Llym{ejaW@i#tt#*gSnD6XvnPsf%jqIU#K+SEznwr zW@Lxm>u(3y`0Eh^0s`V!CUt%N_%&3PWC~$P@JG}NI$RGYH zW5t|>xtKqjpR#-=py0U^zZ4LH1l~$j4&Ef(_s36GHiDR$utgJjYwZIC{Iw1vh>FdW zni1%xi)b-DB%QxPBe5<9ruv2#XX65YxoQo*@#*-t z1M_<`vO{-m+J~KoLSM6$c{0DY^#{lg^XcoyU-64kkwjH(28g`xy{#~uetfaA5#*(- zmOGZn_WIg~6_7hup_q+Njnzad_MjUVgEeZw(pGx%^MS|I66_afA7V^;StcE%jn(Aq zHy~tdFvdI$c97}5%-pC{Lm(lo!NL>^54vWD@_Af&>D#rBjC+ydc`$IJ&pR;1y7kEq zKi?OI5nRJ*qJVFk;YSFxJ# ztCpPQM+BqCg{kh=y_M1(7Yg()6RSzUGTKPk-FZxqqAwiDTP5yqqo4__CZwz;n_?(* zF8;ElGw`-)1+jdD9v%w0Vzx~CKp`7-a@WOo!QK7EclRH5h7Bm`kN@9Ws{)8?jY!X0 zuCIOA)8L`u9-Jozl33(9#vuz1Z~{Cgmn`TP53vDuv{wTdu(g{2Ac@s#wDl$>Jz@ei zn}cCom?8avvYKGpghxC}SW1<}#0Y?-YGn}&tsYs>I#j4R0=)yiSl@IB5Xg_P6s{&7 z1QVsUw9clFTvPi%L3*+X5OJ8|A|mS-EOUP2B}eD+n9H2sr}HTQtIY2XA>1y zMYfm$TP-T?M4OtEf# z^SE<>+`a$m&gx>)1L79iJg=xv}44>I69x za|=qXr@Scphlen-COKeE6ZX4R58xekQs+x}w+nxF`@BK`g!0 zk6mH|%Kf*i0SMwjFimRnyt0;SY9A=1=7JazSb@PrB<7=)5D<&!7)r|7xUX<#%x7XB zzA7f`_smR!l%IkY&EI))A{Bv`2w%<}hrENIEo|4$d1)1io#ei;#@qM-!yRM^74+)e z#(v1fAu4{z-ttTsv@?vZBV{wMM?K+Ejl6I8oPFIv%NTkDX=v<{90`_Rj&AlF1 z6^M?K`d;QSgbn}PT>Ds3T-j98-vNN!Uj;y3tdbYYsQgW$hp z3K;>$J28U%cy|RO$deZ<^u@BjWK{ntysDtrmD)!PyVIGJuqJTP2PyW`5K_GZ=IZHT z!sw-BoWXovrS1{CS8*@GVWDe;!r& zND3HpQMQ!i214eOC5@&nc%$P(iI?ldEceJ-TF3=+HNgn7<^bt@1bKM(t8Z2kbjtwA z;z5=GBwO*%+g<6scZI0Dm8&Ws1dLE5yGpM%fDm5$@#{<~im<3TW0Xj{Cs75}^~dSk>D*`BZ?aN)I9 zU*NIF4BSZt^Kp5Zt)P)JIl21PUSNssz<3Jfls@v(R>NBE32?|BUo^rKa58Yn9-rV! zv`3}7_JVTRdRzpU13c`z==V2jQD_!wF3ifp(yhnQHA>SC@(#pc^XHLRgkP1zs1y5Q%7U99E1$C2hI;bi_`tGmcuZvg!FSOKn$J9O0k~{>1@{p^$&Qwmj6}}ClD^J% zLYP51l@$Tx76Zg=!ezj0yWRT=O7azLG^-@&&SdlT^S&e17vdF&qNw@bsh+j#0}3?< z>MuqL2tYu|GzWB{cNM|nlWs)12S@^L9Cro~vOWamLLex=E_bvEsQ{LyYzq+d1MJ@n z0J}m#Z<+>|8w#^n5i1lV{lU5ev8y4=;1e!tbTG|H+xku{{kY_6xK_1@!^3^H< zLe7Y3mQ%%rmNqJ?i4cF7{8Io@2adw|gBrZ+fLyJHJ1!OlA)APvh4nS)7a~wNOrJ>W zP6{n)_qb;b&=LRv7-FB=p-?{%eg!#sn-l|xDdPky4u0jrH_9^&=1vCb=sMa5ihH^C z0QuXqdn*9Qy_Epu15N{-Y!yarwv=pC-dDBJ%%5P2mE@q;q#h8drzlDRZ5pneQ<%bv zfQ8ZpuO|c&aq$4MLV+q|CT}VV5CKHf>(+D-ST?L@(!T;F&h~tj+oo7}tq8T)+7A+fP>EYVz~{ z=dTKrZKoV9(Vn*vhqX>KfJ}y1Bl5|9kWDy{XPiQJnY0flxJbLpgk7g@NwGS)R+5_ay z$^dd_V-*0|^=`rJX8^FWwB3~S93ZEYVNsgcB%CZcn?5l7b}4DJDa{LX1$fw@Yv3xr z2CbEJ#<#&|)Sya>wt<>Ty3&%=lO0>au9fNR0avX>fo=~pH!UW};gY6TxejAj*)OxQ zT>C&Fx9$LW@#BgB^4*JDD*?!EQ=5=+pO&OOkj>R?43Npy0P&W5ER7}R(~2oasEv1o zc1)5m#eznlG2ld4V#Sz(MPZu+)y^T5z<`Y{^D02~L0#a&^_eBa9!=STaMavH@IC4^ zHvkNmWe+#5g4L%z5gTCnZceejdA1sWJo^q&x7`E8>>BDM(VjS`g*Fp*kQ^ZM!5AD; z=H4i^+TL8Nv<47!FH|ul-I?_p0Fh1=%!;T(jRyT^b2^m)1Y;EC8c5(R+z@Y!Yuu}41BKq}Zps5!?; zaEc?GfXj3kB+M~LRtYP7wq=UNEjE#B7Q1VEd9?Nb`O~TZ^6hE>;*4qrFra10I|E%A zASxqB4v_P{PcaxS^~D2+DU1OGj^ip^O9bi0`&jAO2#y8INUa;l_+S8O>LAc|@*`C1p9*q3P{SsTK1si=Li&gPhF4GRrY#Y7}?yU5nEaBnV9oU?T^w8N3h%yx2* zrls9J!zNT7_7l5L_9$y1FI!xf&2?Z}47&HVHe?eliwnU5!4U>Pptorvnd&ZknhghYmgoDYhmu$G`RVj%SjXQ% zm5oogSrrJ6IW?2ZSim}pg&?KV#9JFRw9V%HY36SLfe<#4CO(IUiy$hZO8P<*LX3%}Xja_eGfEpz7qN=H2b639+?y7HeWt?@z)y(L z&lh;hD>j6Dv>JAIoh{oVe{D^qhLY$Nc@wD1=l(8Fh8Fu-zcN#=+y<3bfH7MY&n*DVr}F!jnJLQ2y?EP&QL!0^2@BV}nt z;bboSi`vJvG>}r2^mX>-ef9WWC;0gC^QYN42FRTi=^&Uc007t2M7Y!pS-Q|lQ9|Kl zAmJmkNl;R9Ndbbb3qgwauGHB)`mjJhS@e2JqL038<5Wpu!zCmmMcSzU6gLE=yYgi< z99E8x;&(8OqD&caMJ$}k6l~L)pi9}}fd!kXBsZ4~AW+WX)QC|oBXW2%Kq^+!f4A0V zkjHnsm|s2l!sb^h4*`(X@M0Mm^Yt|m%f}Z00AeYXMAS)@8=<7*VOM8I6LQjTSFVqN zwA?CJkO$zBy337RWTc62IYg1(6k?m~N%@1~kq^@D9C3k^&JTy&#I@*XQmg#F^r4j7 zcrVv+D<1XcjMEm5o0B*TS5`opMI@hMd2{~PV(ul^(?H;AvfcoBcDIA|t1q842;$9@ zerF{Kbl@BZC|q9?kq5C6%U%VgyEWEbSNkTB~;wrK5)=Z(= zIo_@DicGvl^V@vIdl+9YpWv(Gt#ubKcD~R?0$dC2hwsk&2vvKQO>0ts*fIdwzgWVv z*L|*}yL$SVZVK(=+8PMRtJfJIpS-ds`^NZq%FDYpe%PwkDgg2yGJ@pV#$}eBM>iNCY6mf@hHGge z)T9T}X;k6+{0R10dLq1kFn%BpylftfcTCV{z&lPgAP4=Iw9|jUY;zNSPvnj4A=t6} zkAWQwV%7tGN#%b{ROHGNT+63NqyIVjUnirz1FoKkjCjZQIGMy7$ekvWz9u^_hJF6- z4`OnKz9tUw@!!OSdPE3jN6ASTl2!uori++`#r(sX|GK=tt_Ffa0+5aW!~kLQ`BRub za)5jZfOM*Z{KuakiMnd;AlK7G;#q>LqAtSDd~b7mYtv+Fd;55s<(Riz%qVm6cZ4ha2_j3XU|EkB*)eBi8Nqhl^o%*Ol%9#CF0AWmE<}IH5sw6 zH(k#rS=ZJ;;A-+;KKM@zkcao4KD~dpO>ys>`DY^;3cW$#8k$HtYhgotsu=ci&nRz@G(R_QZB+q zKSXx7rv?xZ7C|mg{EUpK0Xl>LgzMz(aj#=huy$oS2rNK)CH9ND-h!Hr`Ws7l>DL<| zKi<3hoAB}MS4jO{p5zKy#>X_yRX|5UMim19zi^e_dPX zMg5J19FHJtP3?aFw~Zfdi(q`)r(bk$Dg1!#ATKd5wz5nUq09xNCX_CG@A&pQ$?tC; z^)P~rM@GmZ*`Ck$hBN#{SK}l&hJCGw8=qp6v6sbG?tD}GFt8awOzRN2Hb8z^V}RUZ zSFGQne~9;08$j+p`{LCn8=V6rPk-li&g%kon$t zRwr;KOrQV&96R&IGBP03LDXr+v=582w<(s9j~YwX8;TP{;jMM{GY}$tui21QK{jliTO8S}t1ZI%OHyS|@@$tp87Jy(G>)Y;^u@oRSsd|GZk{va? zI)s~d%>eS@=8leov;HUx_1fQYq)zcZP}3RFYemP2W-N+&f0-Rbw;6GewClf{+DV#z zSO%mw#Do0r57s$>=i?iqgO_(d|8gm5X#~iMMv$snUJMY8qncn1=@0ziXwBwW+Yc&N z##OBSjBa9Yr@&)g`(AlxM59ToNU)}NwiUP`jUCE=G(W|OOAa|fMg@cYX(S7I%ICc zNWSTa0W#YB{dxi9>s{~E4g$6b$aJ(5G({Y2U`)# zMuDADTKifDF+$W-L!rbZ>>Ig6-bM={0mwVQ%4>Rs;3JM6&loFj>igvLSDmk7afT@u zt~1GU)WVVl`W#xr5d;8n3Xq2UbJP#DBcnsem4KmU!eW3llPCymEKQIxZDld(pjkzH zJDT4{3y};{0+4kbLtem6czsp|5pynCKHNO%)DVIZL_8>}>!|5h>LoSHN1(z_rYq3W zzdl|uKtxF&D<6x=e8(b9@TVXFB&LERYNp|_94I1kMNV-AC0%MZvUqJajpe!k*|>G< z*1MkJ7EyyNUyAMgjh9K6?j7DY{_SVeE#9=ydnHR2MKw1-Nq;jyj=#R@IbC*v0pz;Z z;KDbzw*ut#$+!SpPn7DA6AKt5Pgfc)?_ z0J$&t_~PmPhu2kD7$7fhb)4l^m=)guk@mD9gN?>gELJs}FDT+(PtPz1Q+i zcBG#xJKHZui0L31KrT*(3(& z05q}}!3hJDiQGkc@)o`Ac}EBN9PNfrgP``IR&ZNBf@fqxR<488zF3<&f((WQ;v{3Z zuIUFZMM)-nfIZkIp`fL^D)kViSm03+vF2-PA@mXedH3@Z-WPeRB`+pA=~M~92tuV> zu6-4)0mP2#3=ftHK(t>mKIVy5?`!!)Ik7{hi_s1;DxET%XIri*IGJs zkWenyK9)s>r1`dR^Kxhs$11UKMItpMc1ep$GXP5Kdb;1|SS2*>^f~59Zqk3i_nX8( zrU!lL|LKGNr+t1)xYJ}b8tv^Ljz$vuamZVy;`;tTHci>%Uh-vFwnth93TdM+9;yMs5s`ti}< z=^;e0H{Rh5pFz+ew~9!BZ5Z-dZrU09AvgB5aGT%dd-c(Ehuc-8cTb*p2^5Tg;>zLP zA@6y&CvO%(hQtwyOaz$y;VysJxF7Gm!?j_lP5^vEMyAAG9UL4E`a5GyR_GUgXH~QN zlKCNmZPz@kEU54b;y3_HW@?r~C(m2B+*xs*E$Mew50F2s!VY5kMVt0vCGSarKtv@R z3@%h6TrDeC4u=w!UU=`NGW4b6LtlCk?&Y=O_)2NPQBiT59>%b8?misK(JtNrY!7nH zklS>_WjL0dAd~UK@#kZlf>eBCCmci4l?&etT)Yy$&TWn_X5@?|lHMjx_ODU1=ek>t*(XL(l$V;PF zoQS0L97mBkq%4Rld{`DvPJm#9tGt1LfyD9K$&}pb5#O(92vH1ZDja&suH@6w*Uf6- z+g(HWBKc0~vs|pI!cB5U`he8SS*Agw%7akQ6g!rb)X23R(phWgjJ$fm_dNg(ZFvh@ zO0~`a*?95oDgnZ#^e;NiQWKCxfmuU` zpGcua{7ObT2jsyH}+b2s(^FdKVor{|z2rRZ{_Y-rD0XayLq)*B#j#afX(eD>tKZ*FxPldb?k z&hpHmeOWPX-qO_zo1kS*>`zgucpN#g$|^Cx0SWPW6mG&a=YlATA}Y$*9X$XJ7Cndq zOd7a?i(Vk1(y=1QX9ofnb%)Q!r=^J>#y+Chg+Fj1vlZBawQeITj;NW51ld6>5j7X% z)v~Z%+`#fLw&yL(^pvpXI>H{_nN^LWU;6dqBB5dAtT=ZSdh zfAo5?oYvE2KtKjU^{rbON7^ zC)4R*Iv7kNO`MQi$?=3atXSk^Z*me>WG53Yv6IR`j2<9`(;nP0)%rU_I15H*lEJ5+ z_8&YLZa;{!`RS)eN4$@V!2=dvZkF5fv4|`O^G(>EGTBjr#iHyF_?p3_?+Wis%WC9U zwDb)I3Cl!MFA6tv+2L)PNR?dNDcA&SY2L!7OZ<9|Ah%wvBu9EPPa)hDyYFJhyc;XKVTX!QO~> zY-OBo9-W*BK**P~YH$WltisYPG)VO*%NJs)tSzoQ^+OM%0$KnSV6l)HJf9HLs?xhG?t|Vm&B|TjQL_<9>ZDZ$$n@g%KN%HGd96D>$qm|e z@tSvBR}@K2L=G8P3Nfj0x7XZ!d4AfTVa?04!{H_q`Ivl&Vu#24;_ZjgV+DS~A08hK z#%iLIcoy~K^@XpTnfj1pG5tDIq%l#-B05sPCaYF`jhs)tr9rQ?gmP`#2Z~tI*BBsw zc(pnm9sa-F^78^9!5J*<(O<587(i@>ZYlXS)iT!%AV7t@wdl?c>{ND~RZK4DJc6VF zWY!xUFNgU%k-`q1x9bcgm-P)2a4!L>kN=j7$B<~LEs?YIY3JBExIa8`f}~VEFpD&Z*y&g z;_4JjND(gi5r6$U0z`@)#0}1&CYx5YWZ1cs5yTTlkiqB%;abeD*z?ZIO=d%7k2_<4 z1hCf|spz66VOETiLYf9qt$`VLyWR!;({ctTO%?^>Y_is(eORKpb)I6~`4*&DE1P2h zART6y`k7u*DFC4>0I)>+K(YRqTx1F?aXl2X{s997ppYHL5jnzJ5A2jw^V7|fG8MZ# z?G^4VXL&1@xtm-`2SiAKna{PQodL1~fN+r=1`|B* zR?!aVC8slNL_rTOmp?H;yrM8pu|B*ByW$`?xq;{)0+83IBVVZDlq|7<&V;hZ7h`~q z6#6y?6PQo~p_egfX>p-ycwkwIxmN81pYa|b%Tq&t-et(thEB0cZ=lFwuuS_f_&^)a z=h{$1bc&_8NaF(z31qmU06wGONlA4|d0Ws^x`L>LRf#Isu!E#h2k6GLI!d)`AM#;qK7#!4F8~PmdAl7! z$}5~q?6^()$j_$(n``5GVNZ`b2#V|s9H<#YQb(M|%c^K#fSmPbiOuaMQ!D_)6%oxG zG90H^I)cO`pCQqXwgxl>hqP>1_QlGVp66V_F+cLbtbR=Xr<900LbUxz1Zkh2WjQJ zYMfuDeOSiAh8?8NA?|z=Ao_S;n5KaZPRP;q7J8-E<)s1yX*hfH20)Y!LOE8<45H`c zr5$3&mvJD7DdhfP%e?y6zUH@5cpwZ)PPypn=*L5;Xb6d%Zt7xOQI{2}0Yau*)YC5X zH$CUq+J}whh)G}n6woUK$T!{VAU1hw(L|PNA2>#C*ZM+ICvF`<4#btDVM*6&w2Sjb zcJe;wE~!P@UW>?1?dNI4iJiszel#oz04Wv$a%^H}?6e%qTa=JTl`qwq>tr6a^nN8C z@Pq~A23w+!+fu!XIaV0rUo^9kvmuXG6h&9)+t#}8&OF5fq zAE*mJBqn`hT>)}`Rnlg<1wgQ1TOm-G<~~{m7K|W&y!D?p zNBW!DM?deBpZ9~m|EzQ5_Dtzms%_Oi?6~HF^2x@mYgv-wEHRoesX|Qj4CyJe!;bi* z^Wn~rE0*e+X&4R;M|;9o!h9pLJK$q+_mz(FhuZ_4^4#vQn{P@7-BX^2f!uRP`5God zS|YdMHw)ir#BKasS8!Dsp9n3=!KgPbMU19_ye+hbVm9R4o-lgPFX3!?c{)1eFL}ZU zDZTM7dQe`&nu2>+{739(mZMUSYrr(Mk5r(8{PBZzHKYR|E0m|50|eZ>WveElEA-2> z4?A9UX`%YJB?s(ix}*t8EV z7(vz;AmANcq1=7O0Qsm}fV|Y$hZgqTG%;AFeW0kK4yeFaDRHR9z&&GDsN(}ej2d*M z)TNJ$4Neam;(axAb~*PTr(qm5)1ga^P!b>&f_d%Y$~zqCXM^@rPB5}yS;0MZs#HJX zGhR&I7i{FK2Ug$a_X#@jEap!r@oofkpLm7Hz!$AU~h?h`7PA5En$2 zyYzq~)>i81K(e~zNx?}D5wpQdi*z7id5{Wd9^`T*chIUUV<#VCP?Q6rsDzqv=V5}j2S>EU<6rHV&2sP z1jHtthD_c1`_G<`9i&YY(b1qy`>>L`HTu$ooJE^Qr0@j_6e9t0-Ur7GQs)cH=6(5+0Ek=@v0UDA)UJJ?WB^HX>Uh%v5+76E;GMt`B|-+ryfa9JxGgY3 z01EZR*o(-H&q$97p|UKYB3x7Iz{DHC4VP)y74AE8&hD9~leah>+ zA9ZX=&$N!kDHho@piTQg$^CwHmQ7K~k7~J4eeQaGcv*Z1KJXdU+sDHlF1!3#7d{?J z$Kd^Nw~P-k=z%I3QiQTG!lP2n-baa=zrID`30%}Ft&>C#!iU|Ox>R&@KLk<4u7Im5 z3kpgoBP>2mkf|~j5pm*U* zCwyyuzV&+fl;$T4aMP2)u;#Iwl_%=7uW$C0WH7PyMbD|6?(gtGNa}wDdl*NOz0Ob8DFA&mY3IvQGnbwi9V_B+vZOgR}E7SlBne!fnl1Urb zHRSB_@=WaEEN5IKtelUyT(DvA{EXYrq_QBVYAoF6rPb5(eHCGGV9UtfK|Em7#vWS{ zpNnCU3-{X}&G~{+-<1$5hJ8)I(6F-eQ6rJUfXy>UQ>Hl?DJlFuf53=&9VTNem5H_U z`*R&XbO<@`RXp1C&o9kYMjY^cvFLv#c&Pt{1S7QBKFK5wAbW^seqwdN5h#I}Gpi9R@}ayI^SdEyiEKAD zUkPs*Q_}$hL=^)LIIL$=f{)9&0Ax53(3nrzC7TPW;eUn13F%)bB$7C^Aa(}pyWUk? zt>Mrp(B$Fn{@x6-1R%1``-hHwv0CgOx&=gnF5WJo1Tv^tzo5j60uZBUcq=hi#^s%? ziv4~Bh@!R__KvP}^{r7O^bNP!i&5St$4C94Bkwh0F;1}Rn3T)2o|{#@LmgFEU^49a z(w=8$nn*w?HF(NN4V>|^a6xfV%^^tZS5qwAt}nA90D=)@wNbYK$m-%jj2+9Y8y2+A zo0ihdh2iuZ0)!MG7v{OnmGs6@YN$Iv?8!&96%uw&kqZTge)A$+-xofOE`pbB4i<5K z7fV>;k!&EpJRf*Y-L`iQc;E}3O?E1>S>RUv8}K8mmw3rqsl3^87c z(<6AcxitpJi}eEtMv%6w=oXP}S--t&n_?~G!U&kA>5Q5q3NM<$9U@J>1`&(3MZNBY zmw_pbDt0$(tpV~p0wmO-9ybUUQGnF6LZ=ta;H`@Yki!E#%V#k28jNM&iW-=Cq?IgK z=*6FpU9ZNWDpWqQsd_A4H>1)D3v0x5f5V*0b(=_V(C{+B*lC9GFoAHdHdy~moFa-)Nzu}6j&UuDK8XIBwM*N z0J6q8(pMdp-t`DlmdmoDW8#zuMRTW&)dp(K-|2QfHhd-K83$sxN+jzfXP1s1|$aloj&)~qHQ$Z)%IfPDGgovwMY+Owi# ztU#RkRc?z`pnYK9ARwrDv6_E@xfm#LE*9$~#WpyL7cMf)0U~I>xHx-I!0Av%kbx=b z*T)BsAiZHW#lok`5H%XJ6XhhW^40(m9VEybgmV=^3xQ@L3F;UGob7GEId!*>lfuI> zE4;=$>d9oQBxF$sKmZoRq_3+h*2)0_eqIFKcBzB3WJNcykj0s|ab|%xszJI5cL^{n z8nsV)xV6$m4PF=%E^H=+y)kDcY^6$b$WcT0(5YRai~xZS@^*|4$D0{I@Wm7$dnat! zJOZrc901~!b5Z}zlCyjS4dP39ay9O8z||I3nXxn=fE;l^%4DZbqaO6_BEae?)(2}! z%=;$*WW|=kryV8HfezwdzHEEw8{>n;nO_Me%M#M0ZLTQ?BJGbU=fHre=f(kq)2JC( zw4|-!NF;{|OC)qCDLIp~t`OsKzkXX{pzWPn2Pt~z0uY0O7$wi{o?!t^s19ziSMTPgWdoYdH{*M5nV6#Nymq zEE~$Qi&cGUPZPbsUQ0eXIg;b$P;-JcF43CM+J*^(M?Gob-9>$-2_h3k4eAJK=Mf~0 zf#k;72%xYS2dRLqRXi1HreP*L>7PMAF4n)9k<{(^Ia|0j%K^W0fgN2pxEOuxY0S|VhSIgc2!o}@Oj(C=D zk3Mz=4=DhQ_5y^IlC{#1TpdDc>&%=(eCKkm!A*2IXBC7+2^m}j2G#^I;Vfp=U~js; zFmx>7c9SE6Ij{uZ9wQLuxm;UgfZY4n0OURZ(%lFG{;I1i8@dDxDCnyG@?_DfjKbj# z&K07h@1I9ssq?d1UQ3BDk@%c|Huy}UL&?_G7BenvZEh*o$=1;klRa!sBMF04x44g_6ZzT& zz~1pROz9~_!y5Hf_(*(2x6P)%Jv#VaQZVe6 zO{No4%Aq!ZypJce5rnzpI<|wf@gFc_-Go$^({X?FC2uH#Jzqx?RVee29s>wBSQFI!P+CzX5 zqj$mtDuZc!4UYJOSV`tP_dn&Mqfa>zn-V(Uc6)rQ!Gi}!n?q$!DzL)IWNC>f#EgTXpE>osz2Z?1HlPU%y!=iC!n^pCmD?FxU(4~-CdtH}# zH&z`_Xzq#~uJbB!Tw7j3-)YFk8D@2q)LEOrbzf%iuh7uP~NMNzmYRj3dMSn;cHk_0+7mL(U5cth#v5dT+k4{2qQ>*UQ>Mt%n` zs1dUP&dW`uW2kfyiJ&Y?9Rv=}rB8N+R`@&EeZ!C=Qan;d2f>(PJ?@?B&yzzyT+kJU zBBahzvf%kd)_CD)0%MY=MC-$aX65AjX{~f{S_&sP2qmadWQ!2plCN@d4Uxc!;OGY_9QVP4@8U6Wy$-Wg zcsb)g(K|Z*?W$l4XT#1k2G}Bh4|Cbg&3}gRak5j?zGyBg*jTIu%cP7#htmbm`^|CX zS#~DdI0b}^4*EP6YD#In2|&NTBgo^`0|eARU%cp62a!0ORv#;6s717gMXl#WdXSHN z2|PWxH`g3j$!;)&(7S=9LSpg|(t)r&BCanlSWP){~_%QBl zr8OFCXL)_TpST&-_>#N%c(+y^$v?K5XO9(jH|Ixpa)B z$Cbuvz9@lT0v+C=E;~8G(i!@s%Y9;s7vyr7k5e2uEpg^kF1_fRiDq{zJ9*T2KzwP2dBv)gOxHjuFJx zvX1vhaT!jo7MNo!U*lCQjQul~@jFBVH^v26HsUJqONvp|dHy>~?=TdpQw zV1$ZRA&T<~f}oZH1&FMa0T0UN>$MLqm*>n$A43npcv+h>;S8g}MSwKM0IH#{U_w6) zBGzAK{9hEe`bn}8k>d!U-M~&FgUQ*2NE$~39Ov^9>*upL>bRQd8h3Ze*0IUk8x8PddvHf@NM~Z^|_h7DP%*pBDZs%xRqP z7`(U&PX267<0dUZ$3B-Xf zr18hEQVdEz1spyz)}<|@_fmU~eeb~c1e*_~cTJXO!(zPP>sS-Bw{A^>@@(WxDTU%ti1O7rkx$~(efW$xL-@A%GE9k>nR6R*yW^(zw?=)mL=>vh11`VBn&(zWDX)=;BtP_p_48Xv1 ziQ^7X#%E1CvfSlnl+njr1=F=y1NXe;KUe-Q$|Aw>`yhNT#R%KEm5L~G%+F>R7^U6C zKHAgb`$J6jJHisL$rg_wPI8mvzG55@KX&lHk~j3Vbp!|^(pQcQ6sCyB2Qx^AEJtFrOC#5lYAn!) z(&LxzToXp80wvzpKr9WCdR7gaSJ1V&CSSd!5mH6NDKEBiH1avX8G4fR@Yu>RZ~RPh z{NynwTa&&lUpHdrZ3VbDc2s}1TVH@6KcNjEtDa&#?G7OSCIHdDvMoMVge=~$Xk-&B zs(DOEoRwZT@Ui*N0|5vI4RcdL+G$rwONvx90z*Y43pGAT+Jga2j#8U5$CmV2(%Z6b zaM30T4w=i1wMzS=rxAXV)Bsu{2X#L&T4^w?gOO2Lv=h97{w9ybS<{;w&5FtNb}pNP zoiO8}<*){bVTVIY96=)!Y^?Jt)<>_N-u;)2AkV&h)#V6+hq%?pibBej!ADsS-lRT- zpPT|45CMq&WjDoGff1x`p``-TO8R14TKpt?oIQ@Tov;jx>5+$Xpp671V5@m>35%}) z2+mtixTM!WVF6Jdv@`-V0W1;Z`A{+oxmNWB?PGeA53{l{!!k>{q;=?he+59cM>|k# z(!Y?@)-}W_6#7l0z59raz7$O{pEXryh%9fwo`x@ z6M0@1ys)4pnr>j4i}WdH!xJd!N%jUqok82*Z>akTAcXtaBMK&3BFdmDt&Kc?wGPzG zN0N^19D^IZ_yi!T*a1Kcp2mVJt$>RyOBmHvox_$yDro^^)Ax)=`n^fPDWA_liJOK3 zQ_`acym>Izlq#G3UCaHLjE(O72=Zp>7$DgME7LP<8MSo3X6{8l?!y2XO&0+Y9qwSP zGk{>l$=8(sHp!7H+Os%$xzH49rSG)q8TZl_dFMGwn%W5_dC+=7Gj+AG;9_W#nm3kq z{fu}WpjQ$fLIS2(Hq^k6D^&RV9|7{~5#&g9ki$iQ981{}ze(H;-$BW%-vi`LN=T;w zDa%|%&-Dyg)LAHF?uAaG@e)1<$Y}(K0stzqts|xB5^r?RLN=~saq_iZpeFnDO+XW2 zdP24WCuda2jxFXq3CoN9zWS0hB08w=^`oz!h`#!-LGTSQ7|AEWc|ht|q{TY;Y%t9L z^84FUc5q~XoGdQ$#%|kvUB&`HG@fK_r&t-a`-%-AuRiKj2Ps>oSmuS5J8jq#RcE$k z3Y@C}LR`?R!8h1=*j>Fh!iSt*s45#OxqXuo_iS1_%nv|OhoL2YW?HN^?=wR0__>y-AN;0DpbQP-su4s0!oF)`rX~6{W5l381oMMa=iuv2 zvEBpZ;ZvB>y8%d2MB7TOAyCfTi^;oYzL-@xK<1Gf9X1HEdA~lMm@div>%DPr85qq@ zA}dCK(1K<_lzguiv=H3Cp=mg&8(jFDr5(-kakx+d!lqql&(P3LDjk0TSbz_m)k)sf zJiAo58Xz`;9F2Nj2o@h)L8-z?L0wYOeTrdoYYC8z7pn(|$-}3eWtoDZuw{Z}URcl& za^_w{u2-;wM1UL_K!jC_ysa&zc|TziQko8ey);OVJWf7fENGC@RaHJ!f)GHJbR2UT zp#V@}!iC;k6qc!|^&@>NXTNmOt&>W?!#6)YP=atgswan3_(83t+X!-S*pq}>Hh|ay z*NLoRnQ=%NVqUH(K)%Z;8&(^Z{#8dgLN?e?*s7u{2rznpJs@Z9!yR~zM-NM*;pWG0%Y)rCR3#;+h!Lx6}`^z1RWwYBDV;ig`NxAy?`Qp zJNu$vVdELtu6yk$Nx_D~^Vv{*c^lEQoc!25T5x6&d zh=C7Qq@X&;73__XX5}j8>`(iV2OHm3^?h>d36NXgPvs(KaF&?onDEdla}+!brp1if92ARqto=a;Q^kUB2Cv|uGmCx$)&s&(y)HT}oy zIffER`5MwvaEjYYQxT6P*F_z~m1exN3Ee_;qqj*LTv+V!ZRivZrM{DDB~2|virHrj zRJJB&F8+Flv{ZpcddG%lal>m8ozpE4oxBmB^ADNF;Db+9&PTlX^ zbI$j1Onko)W4oIj8$Co!w0+?{q#L=PXHvZ>r(iu$fH(m4HJIla1t7QtG#CcNqG&k5 z%*NMNY@O~ALs|ta!Fn6gh!@W=V-Y@owQl@%|L#VKb$3`mEMly2&t;b$UM~?KXUDSw z%| z=gHcwI1GOG0uXKoUw)m_kmG&99SrYDj^z+Xcmx|iP~I&QAoIkfK*;6xbO14B70N#J zEBFQ2_v+H}fRbPGH;t=?wB4PHi-UCsH)|zF-xQNTQWRr{ekYHi1m6-$hFAgFMzD%g zlrKoS|BmJfP#HI>hD9OhLejIpa%W`Y6M=%4QZ9tHLmiW?6H|Aat*U={lGcN!Uj65@ zro!64KlbNE@A2)D?)2U51pJ-%b^}y?u3}tfIBLljKH42$f4qc5ZLl!wm=- z{+H75J*Z_JQ%A49C*O@~^bl4E|H*{EWUPk~>p2_*PSGYp3N-!q#9l!e%dC5BYzegQ z2s}epSf>f}K;*BYy9uSa zwRvt+0p!*I5QBK@#V=o6h`6An$OtjhWZ6BqW9J_f=i2sI56b0Jw$ejbA^a!dFA{RX z-(_%+7==@4A_NzerNHwc{8j)WD~5Z!+IIxfFJdIB3^qpijcWAc68i+2j#+Wt80*P5 zPxotTa`&4-L`u&Q>`FxPJ+ym`dACn=<^1(E|>6Xk|mdWgaoFRH-@cVFFqGW3ABvp?8QSXPFgFYc!h zOa>Q?8BFU2fNU*s!tKle+56|$Q%UJ>Q!sT_wcyYUgu0;0Wj4Y`K7nohtNBh&!)S`q zt#-o@TTd1YAtzcl7*i6tven-Oi7%W2vCtx3GZ#96wij@H4qg=X20#!cYd&VaP}YXX zvUE5!V|I=e05)hFcCz+g)Oz{QEBoTk7Y%uT_Uh{&t@P^3-r3zofLw1aaX#VP09n1< zormo5nHH44OEc#F>qw(i>*@Jytav}QNA4{f@rao{8e{FCA zUt3TjSl6Vtm3P9zZi0QL%~cjOL|H8yW@h@~!74)oJim+5kTE#fhS9cn_G>WgKYjY= zXFgDeAv(i=(10EjV)orb3*90CvitH6;A1AKaH?&rPj0_EiKY=KGzPu|AUed8aXC4( zk)k}pOn}GF5arB zuWX`GtSXUaLUMQ#cPi!pQbqRu!#iuoUX#Y-%);irT9 z)fzI4?)-cGb+o|e5d66GnOq;NTc}lW`|N0DfUG71$gkdZq3%JoNlYz^Mo{N8QW4_H zWt=@OWC}E%qfOc>fCwc9BmkuR>@*s-ViAEbYSonC2o7$`SRf^do&aM=7DS&xIU!?G zl~W$~@}twKi#0=X^E}FN*57oht`SnB<;Ao0cqx?>JzZK&ugZ1ZBpxA0^9dI%6IEOhej z{(t|+5TPn7ZYg3t5^`u?-CiU>&X4CN=@S5iNQeR?`c27o&S(U12fcu}4^5$}-)p!T z0BK2jG>*N#11*D#9g?nWB^T{ME_y0|E@0y<=5S{HNTpqAXv~Vq0xCz%&|pbOkpN^| zNA;t`*d8yp{NvF7`py?G>NeKv+UmtHkL}f+Cpmie#)1pWo_ZWQHvH8hXM>!tW&B6Aj6E12|~BjSSLxCg*AO~ z+p%j35RWRfJrL16K1TUv)}i+9<&z)!%Xiil^bryy#8kwkl~mBFjq(mn)({ct)g&K) zjLMzd^x5vWb&kaQl+2Q-Aj-1V|2;W47$7pvp||A^kfi^kPv;qY{+ z!*jmj8DOiq&O)&Ik zBdpEAE3Zuy6aeCXMejBbSt0$5qUq#Fc@+r}2bqKtBnU4+GaK5&4>J^Q23>!-9_&7h zCais9cV^A=b!^+Ya>cftiJeSr+qP}nykksk+nLyy*mnN;J)hy}S7)tWXLYSpy}P@r z`s`iG94aLv=Ak|?-dWGL_W`oT+cQ+l6-ZnajfMMBEf#9;6jhgMgkU$&LO~beWb$Xl zFidoVgV@DqLr@{2c|@!Bb~*I+Q{d!r(XviIb7&jcR>;NK^VCR zMW(+Ykps!+BIZxtwBakiB=8uk7ZP0d?O*20!|{j-7z~n}Pm$k;D^A7$_uwXvCy&b} z{(XsbxSUt2(w9+c%!s z&nM4bm(o^z-hJyARzj$!r$17_MNOH8umQ<+N38_#Tu!{2eCxx;ttsi1K;sJAs<#4I zz?FW(Fg2KbNKTq$`={6LDNmCLJgaJeA@o{szMY3vWA!g633n;NidO2*KcaEe(X*aL zHIFLKxlYiCg>#eJhRwz6*^ymL7aq;Q-cbp7oh>ySUxBqF=+b7Nnf=1~TvSMdPguKU zo`(}jeB>ZJ+P$JK#>f10dY!nWve-4kM1PHlDj-k0Fg5#DN5i)D-%^BOt+}X&5qZ9y zvJ#|O@4^+~Nki#11#84`0*fR#LrXMX(rqD&wo?}Hf;L*lH8g2dNcUcOOQmf$Q-<-z zJ_&Cg0?n(+2L%Yq0!vBDd(VT~y{&w8W#YO(BbE=^kzpgK(3Qjrf$i%-O=AHdqRE@h z*%KH5@vGoZB497biU)@{mUyIANN@&7QI@_@+cT%~+l*t%qXibfn7F^%VA<9|wFBv} z`~`PIX2JB6IBKpL;v{~ey!J4z{d3Pou2b>eqG1*1JIbw#CY zE;)^~h~ni>4rmIQ`+3KWcV2U?mR|oK_+QwUx~$3}(;YE`x3Ixh)T=H#X7HY`^be%dY#<*|?Jc2)$Db<)Da-z3i4 z{EMiTn}XKdfp*`kSiNWen@xRPnbOnQ)HIm}X_KQNJr;Cg5VCAHphqxjoD}6;-H14i zw9JxAA>j-bvaC@DIws1iiCn{qL1X;V1Nr-{JCpf1$V6-}Q8}PF^FcP*GA>6ZK<)jU zV;d=`CxaG~O_r9D9W0z_JZexkX$+T>t+QpmHEa@$P0~xMVwB2E%#ut(KGgG)M>mwe zYQag{+k-?-t3Z1bXuokR2ri@sVj>+9Qrns_Cn%j>u`az}HYElQs$Gp0U`m=CSJs~> zac7e`DtWk!IxsI<&B_&#b?b|-$qm7Q(iZII_ua4&Et(((o4XKyJU(4Y*PN-7z+n#(&%kYw7L zExhJ~B`~xD@8)awj#M+zbkOjTXp^o+a9s`+QZcdVOJ;z|25^ooKvgwIh7vjI9h?ks zp$D}MA@C0=72;VJrFbr}Jm^a9tx}fujzH zg-E<2a_xUYR+{~zETSOcc`1tUYooxl8Y&?UP zt$)ZH+6US#&AcQ6LSq|MgTIO$EJ2D?yZm@skjM-npAu!g;+Ol&83#<_$d*81{^b#k zJLC9qsNjK=vlN$Wjew2D(`nZO*(UHZq~^34XZ#-U&FOe3!qZ21MwadW$;vD+D5&Ox z{WkZD9)T7aGvCS2{r(ZksTxz@@Uo?77a$=ub2TzZmt7ksrXL%G&{**|JUx3Ymv=Xze<2@o#>j!_g>*=c+=&l`luX19=)yNzgYwX;Ir*MuRhP^ z-o2}nUdi%7rsCTXq8Zsb9nZGP&`C}x5#HHSD-*inFWx}!E|^J26!crF$gqIQy<{{5 zco{;3rw)A$5j3ozW7%conWMUv*@f1UCHqycU4d_z98PZX(M&VGU?*uYC2ZsAfzzF@ zgN56E*T;|d^g$M6^N@LhPQnDp|)#HWN!zI_? zkg$fw4YLLE!NRC^TuoOyBkYRqmKzdyr~Lt8s)M2L65P8n_h5V}Zc!RBw|p-D(j62h zquz;4Mzv}RslF%%(uwf#04(Fih){>ebN?5UTadk$$F+#WQHjy2?pqF6t`Ei0bjIF% zaH3iqKMx$_;Khk;Hf5FLg-k@VeIYa?pxZD&tX6>-h| z3YRQPX=@?fMMKM$T&tb!YOq3F{_DGROFj*ivm4F*I%wPO?(TIq0P60rudxg18qub4 z|B&Sti!_G)4eE>5^>hzP`u+88Kbm^D z{noO*{U!q!4;1eiZBP)UuE9`!kGW5o;IwK=bUP$K)5& zbTry;WNS&19KBCuZ*%mG5!Wa08G^HAxL6pN5N0Y{um`VN^lVu{FkUorhK`=;{W6QH zC0irUL^)0|o1g!7O4`&ept@7AAf2(nqVR|Cp|Nc*FirKgam40C`ZmVy-Y2Xe zCva|@ue)Yh%^y4@rAkVuepx+yPh)fQ{hDOG&;RzE!Cn&pMk`D6j(>me1|!?;kmlAa zZv(qJ^XF)ngUboFPrJ!x0b;jj$L^7geu)I1b?OV^bUqlvXJn}1x8Zt7n`3Wk=@9@f z4k?KqEt=5>G>nK8E68GeRFIv>&KTh(y}E@G)thju!xgO07ojgG?jnA5($uu2tQbTB z0xA`C6t6R6w$N8;zfsXg#a$^6Fa5BT#IEA5D4MCNLq3 zjS}mTxVhJJ+y!mXeaP(%KWOQDIK2{z!C4F`=e2?mF5OgCnto}?^xtn1P`uTRMTh3r zA6zBH{hi;OFW^^_`AI_E;FO71YW=Gc=eqvCN$2821XD@7OX+(O{OB*&X5;eLYTsN* z5o?HFFWbD5HwWW#VWuMCi~z^qs!s|*%4w3F?QV$pg)^=$$XNaLg|Ah;>R9 zaEd!@x>FB5L895{p-1Gc@5Ac@mI`n_fFW^tfJc_S=yJ94@SyWF`Di|1e3U{?x%X!0 zQuoqotp1kA@$aKtg&m*!X#J1Jug~7^$B{aL&waV==cf%$J0HFy^26e!an^Cx5LdT_ zlj0FhqE;=LQswq5I$p8S3U1ZUg5p&D{e$lPHSd4^Q}5>~$aM>w%L7v7`=J8vR&N1- z+QH6`>;23(n_WJH1b%3~g1%yN_Qh7Z2Q!#vJ^X!+|_sik`=lks`{ zzS1K1C&ne30GD+5YAnRdvZ=-V*tPUgaVZ!rp_~Hn8RJJKKooovhgMBCyi9Z{kM2m; zAh-ieZG6x83*^C@vIDNvmG4>0-i<&O*olAtXBLEb78;m;+hpCpoqr5cA>V3WcK+$| z*WaH>QLN^|hn*kJ{YLx#O2j}mF1SL#CVV;!8b&@uc+KH_@t$lHEtCSn$l>#v@Ou5j z)S~lvq;tayGIiwewR`aJ5@#Sx7`K>!)BRBmWSUfkXge73C&Xc-9$Kl>pBc8S+TUc8 zB%4MJ4Y?`5oA!M1{TH(JA|YPEw>pHL)O8rJqT{}^9Ps~TeRZB4M!Tf*$SeJk&F9T3 zI_TCvYDN$6|5H0YdUD`#^j%RLe@yBz%o{DXeckpYI-^{-C>zd;&<>lQA~9=6!J@g* zVoV9g{`v`zwR3n$=2^C6;WQAFsos-pgC0({$L3SbE?_zG7Q+%=ra@M-TxXvs%ciZJ z8Y*47P&ub|t?}QS=!ci3p{1p@rJ=R6vvYLIwz)v7&j}{^-*+v{qT&4U^wzGWnoI1I z6yzez*)P#QvTyj7R`ZSMZ`Lg@@ppRfA6eUXo1m0in`YLAGEeq)Y8<}eVUdZb-?3yz z!-66`WdncYSqGrux}tX|B=M+4hUE#44kr)3Y8XgD{c2bhuqhCw@4K04+XO3q!%5M; zO6wp7ZN_p%niwB2|LI4!fAH@2Un!E>hBk<#-y~!0Si5UG?M+g6^xNL=-W9U(a!T)xT7>91^L9zd*Lk)E6XTsv&3tuK}g=kL_eOT;-)NM zmxCZ*%D@wlpHJjF9Xt(Xn-uWGQSagO8|i(;MUB{I_A*?Lz+Fsd&;SCZXz;Us=rqM` zK<3gHcHw!4WKS(A@dKN;?+6EJNeZf>{C{~_HlMus)igo4QQKQKE6qzpnLUSmJ5DDE zeTT~+#> z)DTAA8+XT(=T!WU1A#wz)ilYyr2(2kq2(5AONDVvzO+jLVg1vkkvme)qRjj*fip9P zh3^D>a9QGRz}r+VS^PXZ;7`TJwI{VXYGxWH=379Z(v`$i`HNTZMIK*IX(b~gap-_a0z_P5RyclB~_nie}&O<^jc`ucbPK)STFg6yeBY^J{ z#%aF|)^jpTagwuz97xNTSC&?uwFjV}u$M7j*@Tk!^noSzWqV_4EiCK0phakn=miQ1 zH7PD0)1!uAC`uvRot0FOogTW+Xe23`h>dlc|GY{cGwvv3#Xf{s^6RbCEl?wE=tx0d zl1{|8?EiJDk8Hr%hS~-WsRDEw=n|F6!|R2T(toesCiBst?h-PyLYBzBq&vh4Q~Hkb0pe0MA5yQ?P7yCw$4DhRCpDmlzwcq9Z^*F)K=w z5D#I9ww)^nN8+F+;2RnIA?UwmRTEM2er#->$r6O+-`cT}l45=rSgN4_pk#lI%3HG- zrVfRv+lf@sgNe3kL>C@Ea$vwoL0c(o;-)K8+dN@t%S28Bv*IC@p2uBZA0j{m=M>fv zVw^2f(!}H$BstLVh=-4?;(USh5CDSYRPo145vpAN%Iy!W0$`s6h>$qtJX=5kA$rz| z%mZI{n47x!PaV3v-Kc>SX};)A*PH+hG_gN}uk$>D!Y}e~Q-jO~eKdMhG|X4_e1rOr zry)yL(^g$&(a*bJN?0qeFA^Doxin^PLAq(6gfJA74~$?4pS>57@>x$V0>>iAf}$Gf zi2Pl62*X8$AQG}}<2bs!tYZcKL`OrF6K`iAN_9zVg|-Y$GbE@ zL{px(v!*XJ$ft07HvCzPkZ}4KMD~APBtHI1WyJ9N6U77}3Mz(qIvcx?ytAK*1J3;P zK|C_T=$pB1N#aGPFF&MQRGf4$8y_$Dz4&@AYRACIna)_9$&7-?WC9LPI!?sGF%!f8 zy(dH5^N>tD`_rbs&1_o%A&^GQP2>kJ^YLGvk7w));(l?5{U2uZMBuv_#VIW1jNL9@ z?t)&Iu`7Ds!D;?q&R^?3S6&S1@9GS*@`|hEbta8vT>+%8m+2>5%TTQ8ab`}%PM-SbW|*mQM}YA$bt3MTmu*&&T06{QAT(Clz#rtdVoP-Qj7n( zSsisr_Q|A9g>k2g{DB4rI=Un5v<0c0v7-t&8noVuGrp@bLkKvy0<_l(^p!R@Y(Xx_ z5Ig@Mqbv9jzUo$&@bFHxmi$y4lsyyxhqSOIlN6bUAJJavT0MZXoJMJH4g4`{dh%Qv3%t&O=>sT^V5g0>kB1I`2xmXBI9tXZP zIEH_ts3nYra%u^%T&hd-=}aGYZXZ_Nc0)L^zk$K>egD>+mUauhdJ5@T+qil%%*$Bh zyPblsizE8Hyc18}rH1*=)RLj4)g=C^Tg~zvgBa?BBh$~wXGW$^XkU7`O$@qoqNmoj z2{^VH8SMNFT^vm^BuU(h96S3qmLBX-GU5{=AX||Gyh3}oaOL>U{RSW}fLBB34H5Y` z&nX*#a|ze)Sss(P|79Sh!a{&pAWwf_>M<7_TGH9mfEB&lmfi??3fluISKu2|m{*E_ z!uDOqV5C$8=)x7ltq^B5@H3gMbZScqe7{xW6%eH4l9Np~337v|!C8xiGjkNm=Lj7k zF`!WRvg@BPBtU=K-OM!3p+ZiA5#2Ul4*!l~U_RJfk;0bjak!Mm4t#J(5c%qlnU|OZ ztg@g<)WHe0G+t8DoPlLdx;rQM=c{?cnb_8b2kTra$Q4E<+FFdh9Pxpl2$_aX^a2U8 za88?jR+OtBC!ON2mD6V|JI2qQbVBV3D^d|`NL5(Jt4&DpG95~`ipkC%`E~mw>z=J{ zz6>}X3P_vLdaMIPDP+Xag!lO&k{ER;Lvg$zNt|ExJgXCe6IAwH{6PjaF@N;Xp2sM= z9X&aEtX)wFH)M3v7sKFG0p;(IV?**KLU*A9k4uw(ELoQ$&rnP68`SGcv8AjRjj9N^Gfu#dPl&0B9f_8MgJSMwTRhw^a^w3Gcq2SWOHol1aY&CAk;x7 zGmqV{AFY=+!8+OO5W^6)q0S(hekNQq*OHT|e8oT}Pcu7Tb{r)fmz&@`iN;1Ed7U0U z?rBeYOf^D7n$DmRvO+FscA>;0N=j7#TFjvokcQ&FwPu~!U{8$>g4m}{`SvDFR1GSi zl&4%>4+&?WwMkdnou4WXL=k(Eel|O}(%aeNM^79L6UKP;bO_cTT6}DM4xS3onvS}Z_Mjq z^5CEFw$`#1Qh0bVc4Pu?auwjfNuy8lbF>v9IcGfrAYUKUH7~wU9MEf~AtvA8T!HPx z8g4yq%_-0EgQ>651cQT1rHruJ_ap6BL1V+THblK+Ir01Bgz{wwFkt_J{9`h)i#VNI z?~~WKFQf6O?hsJLG{_YMm_ZGFz#4Seo}Yu^pFDdQu7gA^Q)wL4**JImvBva0(i9IQsq|G%-lv zA+jmxcDz4M!_O@MSKK@I8+r(kdk3TeES9QOVY4ITQ=w$kW|ROrtlx9JhSo$P09ivn zAW<|O2-x_nqp->~omPlH9;gtY+rN`(+W1{u4FCd`NVl+8$?_6jhD5>$bGQl;=yCX| zhyM|^hwc2K<~BV)bRIOTl?7=uH3j{f-*=og3%oNp+xYh02IL3Lo<_O~4>al7`uUTd zYZS`C;oB$Pc?Id*`)}!v|NQ&C;*fHRi%&JQK1Vmb;wa^*(}Y=nZ4i{tI2Jz#LW8jK zzo%qoW-j6GPcAJrLnAMLgf0(MwpJ@wuC?94M`gNXVQWppd|>KnX^qc6q#+*-#;*2( z2e2R*dox3l%Da2#sDo7nM0h)(VJ_l?G{Kc#qwEvv7xpgxmAKybbAcVm7?!&IG_1B~5gj?j=q!@?V zle8fO`_~$h>}?3Z$p8}kiW*0UL=-pkR2ziBkBH>|VIn|)ahG93o5qtEloxrIDPbmw ztw~Elv3Tqe-Sv`i2`W~=hIdjB@gC=sAT>dzC-7$DzBr|hN} zY0+t_>P6a2fWHRCw{bX4h`mUlwcdI3CK8o6&Fpa4Gb!pxE`Gn5kzUOyg&2-T=hz*#-G zD1xLC=M)}Z&MTP{#q*>)%<9BO1CB;jqNH?QL`mc(u-MB9dUW_=R=)Q-VgBC$KYye9Q1%!s>*C+Ts8~33@bJNAxp^XuO;1BAt5}l+DXxhBeNif3?njS`u4-zA7J0%GymAbL!#RYf z_Ft+IC&t3(!PJZ@EL0KPO@X2e{!w@1Qxy{;?QL{)s%R%%t|-{zzmhG?k>#7o{QoKK ztd|R+gq9TP&B6uN`~R%t_4)v%*c{5pmC8rHvQF z+A~hPOTLh&^(dyl0EvvjYhuL15~P{IdKMVB;w%t9yq(0LNR`MVYD_38cj8FS9gqLD z{UT2N?SVnmCj{KUg}__fyUiFayHt6|TT_YE;2VM-7MCciB2LfPLSFH6)M@m&7v-1{G_l2?6HXi|y!vzd*- zVfN!Y4mwKWD`7+*P=kKp$1<3jv{>CKU(9DTAPU9&^iz_&ALPGU4*R=F!+eru2`pb8K?E+b@UX$uZgKEF_tw|%zVvq`Rt#S@ft1>9v8as zSEZg^2YcCRqd*ud)iSc}0PZ$VA<*({$xo~E&Y!!C`PER>- z5-}4)$CeiDa@EaLujE3buwRA>{yBPcr>;e`)FA_A$x{^1Lj8JS4g5=$aQ;-~+MPCHgrAej^8- z%}vOkwz*1z)KDsn+pFj)ieZ2peS%l)0ZKUw3Rcid*V*3;uhhTuyH*J-v78(Q}qDqA{QJL6zABB%J0fsL!A zO)$WgR6_1ApT+Sm=p%zVPUvGc3!Gh$To6b9WXzGR_EXYYxbiWjO-T?$k)O`ESdU8Vl@H;p6K3B zt4jS>Is<`i8r9}f_3^)+x;i>qHf;-=B_DRCTrpG-z4_B6dLCT`_$r*AF=+>Xu_Z~E z=a6G!YszT%xc_;bdesY95lzZAJX{Sht!MlEAZXt3%74qEEk=(EmfxPnNrbwT)rzxuKxFuTpD(e zs=ws>4e*Wdj|fFUqCH#F0vNS?ooOW5BY@Aoy>l~AgC&7ngQtqfn|g#xkWSoF8S zvUJrmZHiK#o_n%Gb<@o*-C4768Mo-GSc+q2ma5yr_phh=v@IJK)jXCHM0+(tB8xsi zEQi}kCicP+xvSQ1p^HU>J=I@?qm~#k-$Ge!0O^$2TGxhjd$1$nHvVzK2`D~ zxXu52=gNP?XL|%Xf9JC|-~VgP{Q3I(pZzg{IIcLO>YVJHKS}O(#`@~2hwS9djhWaY zkZ4hPPwwCCSVbbDnU$5~`7nAEULTJLY6Mlu45-oK^E1>a$+ci6(jZo#^dEt&9{&@( z4d8qDfmLAJ5|3beWi5>8eu8hIsc=1m2JFz~Mynvo$yV-$`_*Qr`*B?BMl$T_;p}mb z>y-|6Y=SU?oSd93pWj`E>D=3;_ca4OJw2QZLQSS}g$_gdM5#oywzhV3JcraTG728A z6UdD#XVzz;(!C;-O5{WqG4s>U=iV%&;a`e=rB&9Em3g@=srsn|TN;U2-8;5XLJ|8$ zog%A57DP`kqfFi7^@elj@6S@0t*~iO!gvLd%?{5`xt%|jeI6zY`ia2*+VFP2Ms+`N zULH3$q4a;>Xm@5@7oJ2nO`yTT!pgHMQnCAcURs`Fs!ESVxZ;{qB*Wr(a$UC~Oug{KUH({1S9&h7$FNn3|f>a~UISu3i416>xBx5EUF;uNpQ%7aZze z3T!4PWwIxJ230c_yX-P5q5M2!y~Los;Pl%_c|NcrZk15Pn!sY;_ff&(t&K~TD*vxt z`9(nsYs6(rH3nl`%RgQF7GpYB%qvDe>_7(E^LVswqrPO-cXqV9Y945&&} z+?Y|rMu8lV>y22J@npPL;pABD6K0F@RNXe*i*2$Jt_8n}Yf594v_?VU28hBC0t)ku z`cVFr;Wozf`-z4b2la`Y(55bt2SH@$aCw~l124&66)L%lhJC##?&G`)p2`iu-)s}3 zaH{l%me7Yjc}JWxu^;<(qkNM@Ofdsm6vM`IRldKwe6*&HrqK4h$8`mQL1+d=AO;{= zQ)f$G=73S55IKDlgW`A!O7>p|!~EgR-^t9(&wQ=#P~M@KRlGnOY1>yMtJ8jd_%ftd z(6TgT!;Ok80wKrd0wovZd&BLhCbYP90|dd4aMoS>ra1nd*P|49LkDiz=(nH0ha~(} z?vVD;NEZasZwnjAHeoN`W*=1Y-D4lZLI;t8K(n`mDmUQ7kM--JBp2YfC{T9k`c)ht z-G;DC>Ugd#x3->dxM~oNi!L}u*M|cA2w71t>CqxKX94EaT}qO zJqVt=?`$h`VUR=u5eypu(0{zmxNsm5+8VHv{u;iNmU<5ZK{a1my1HajP)NHFNS&Cn zC9}g?;zA`mfr;*>0umb(016wWUk6(}%2{?3YE=7lwn_}byluu+82Y!UQ)exd5Xo{FnX^ z;Qe3dhP$GAsza0X+QWBBiFYIF!pDb*roBBh?WR!#vb!-J1q(t5KB;A^0t&mu!Pk~r zLL(UFRoK;p1*GB}Yi+f_b`dqYCd}ez$hP13pTmS%nwKhwmy85I+A4g|!+`^U3(IC5 zkmcpWS&oxIYqR2aANV^@3>7vp@?>iwSdu`-7K9~BW;`d472{tnj+a1tKdNK zIp{LY;SKo74*3`WB{k-<+Qq~~)QB}LpiRPt8Y>L+Il;vUF+FJ&``TrpT2d@!OFi9> z>j4i<>KR?~9dlOltdo<5B^2ILY-@XKi(v}qsSa7apS!t3GsU9D!ml2$0~M)hT_cli z_bwz$+-&dZNH=SEmu{OjMCh5Lcl9GnnqEZo)y4?Vekbg4?eJc5iT{DGC`uFZOp_zt6mqW-Lp7otQ6M1Lt>)Ue;~)J zJU-#;H8{^|wGR$JK_(zjGnUidvU=4XjfA*|NUz-0SE?IhG~UbN5*gwMLYD;_wY2-D%Kxm4?rU~Lf;5kE)~=4ss+V%>ErW>7fs)Y z@?=XX)NXW?C;kV4Y7S^x)R|)B3PIgXHCw{m;ISy8ThZtfKF57L_zLCC$&5E!C{>`9dZnEAjVji+UR1 z$2|}mk~lQm(6O{5>j-zPtWCqNUvSWOR1NS-OJU zYH;9#K((cSiSS1wT>A5BBc=>_;-1jghV~?(Ctu1${VMOUIFhZPo{@DO3hb#10x+5~ zh;uHrhr_HQM-Uryg@qXI+m5u4p_` zkz@#Wy$Fp9|ITce74H2u9ZBwoSs+FD*nh*qy@5O_d9LL>sA+^K6Rh~ytZ(=}Qg zFuNzbNre#66QhWwuHy;1!Clb~ZtsDJn~#X{N*A+<STeQUg)2+tDm7%KN2Pd>&BP=@7wz4*1 zI#J+ho>@EN`*72s|8_xU}%;{zUm_!*i(g zX_hCv(4pZL;F++PvsEZAE=CU-i&oM4JRhVk&4zcaIeJCz>4~2Y8)jC$or1mq-wQ@T z0gYUHrL}HvU0Gi4$>|bg)z7(~@=j;(44Ff%){BywePWh%tP65;{~ zt$rxyiBXg3h(Q4~L$wtGdbp(uk*%4qt6L4N?Ey=3u1x zF2-)R3YAlX2Jq8k{nT8q%*z|u(9?5^${#)z%#PrOBSo(0?{9u&?+h}4#jg( zVA-!MoQ&}qlj4sB$s#51P*OyUAt@uD6Jrv5)Pi|>!A&3q&+sLX3Hf~vk0t#0`BK6o9Ew?C4PPE zJ_^Ys@6hY3quxQwpFUMDR~q8CsBHk0++)xrz~dU@rWlN#FzhRKgCoKQ!9Y^H3;1ae>D9XKNspDMKlm# z%DKl|V1(?HV$fYM25;eX=#b4M63*Aa{4^nV^F7&G{&ZZb(x0_rJ{opms7)w|9G|4P&}Bh}+qYrFX4m7; zEluXUB5M}2%#A22T@vStfdP!5eiEU65s+ydavy!sUQUmYv37I0#oBS?mEMwN&wfQ#rAo=$`Des1aKx zFpde^{d;0+bN?cmF@Uk@Oiaxp)mUgV+Bk#LhgR%!n+GQV2rdhOvKtugj6l?s#TvyP z6YQvmZjR9a3Ig)@EWz5aAaKQ-j%WR31Xb)nc(%|vnT*Xr92&bUK z$_U6jr8Zwl0+!Zwumz1w)U?nbF%Esr@9{Eyed;9WBurQALeHP-{FrJZ9tcfVa-)`| zZG4`eyXj$HpIZEp2D!59mS~K?co;@WCtKWGqQm zbGJ7oh&K+1hi{ORG;DN$h^6YwSk_nwZX&^zP7`M_ogE33xf@9#$hx^OO9r*cWU?IJ z#%cz|5`jz3RV{#KOz1L$3NlHn@<%vS%5pyQDWA1XyLL%@h%cE>tn55cHAVwAf_sZ#p_^NgP2m+eBF$S3sFF5bg;ooqtZX{6NjXquVxnix9q5cdeir4L8 zjg^_3o&VR<=9Ke;$Y|oR84Oi2y23a4{FwLo(m8a=cn)P+muujNg)Ud`^{!anf3ABz zJaV+QdYh63&s881;23c@h{(t@&K0p7Ta7T5JjnbFu)9J45tyU_@xTPnqyNElpCHnxZ9c0LT zJWSL$b!aH4wFY38B5cW2A?#P+Anwx*x0e0a$$|tisu12mr-U@hvF;TkRY)QWMfx4= zX#%vf@ZpyS*D|r|6k6z)flvLLarAMt&{#&4prNCXiH*feMUexvaj;_|a}d06h-ZnL zhahzGT_Uu)JgUMRU7Kc@_&q5LL&9O}(I$D&_;@g1&2xAD;X&eGCGX>x@peyF^8iF& zQEo?^6fDwQsd?$-z@(LgsGW>iV`|=cgvd&_R+BuE1;n@r;9)ezHvam=ZU8k?jM!>F zkJ~@{yY*CSb@}P$!T)%8Xppd6JV65G?aKtgOf$gr(|WgfNt||+eNb@r!{myve8?gP zLQTAsK#CB+fY?1mG0+iGktOpyaF&iTtUp?Fhs8i;YRODZGB3eotuJtW{Nf z^eJdYQVRvNJmv6tr_PpcJ3aTunsGvv4?&~jHR421)3MfixO9m~kr|{I0A`625Y*-4 zDQqdAyTxXDruZ)C>2{6KKtgm7dd1kT2izmb8|aOZhyErWpKFj zMf!*#x%zxu{M@$lBw71JaZ3H`+i=PUJ(YT6qG(^g3Y>q0dh$@F19q_>coM*2f4k5z zA|m>wvJ!rp1OPQ;GzQfo2894nfkZIvPC!i}LV6lLIMCnFJ_eeBPS~acbwPy$^V{z) zZJ)}lY;5%c@wmi}MW4icm3!kxp{POrE}Rh>R07@BMrZ9Y=Ip;DmWLLzRy%9FjK2Rs zKV8luO!E{FHey?VhXns|MwKfvz7q=4PeSo&Vk)kjezBa^hxRSUI%$XnkZ>}^G!|ITpwEyR){2yH0iu9I zK?ub<_F%7z90>5#z^9LQwMG^PGlV<~j%N;rwJ;mYXYR7kKzEM2JGM+D>iJIcG6sF? z3jK-?feOmOGY{$O9iZ*SaOdM^W*Ygh#db45ndpuCHELrScze-* zuN*kLoVnIlSbHC#bE^+Bgrr`djA-+(mMMGI`UXUnWFhfd5-}6qw!uma0a-+%oeg2y z5TJ6zl+s26GfW-^$;*2+9@W*|O{cFzFl`Et(&?lbyc`6g*O)Y>af|EEbl&6dde!U< zk9x@6E#-GJS|q6D(4e*H`gJu79`2`7$kh2+j4hdSZSV;Cc4KHl0iUQ6{jt^a>mAt@ zWMECGqX1Qnn&;(|B_N~%U^n^SZ$EKRUEE3Vhw8@Wjp^Uj5?qcJ_l^D@w_D%0cfdxZ zKCpZobAx_q1-!qQY4RT;ZUpf?AJ?Q)llhU`4hvxcib?y$YSc)`T&{^*77jrWZ+Rmg z&ZG4)LgL~XLMp*0gZ~FaK)b&WDBysGgbvY_F`rbw4-fXQURr3X{@{{|C_eKl^oKgx zq>0AmxlC;2<=R1-fVIH~2d-5Q|xNr8vcxf=rJQ!zW(sNF*cRop)%~%T*ReivX zg7?*m0Ur%y>D?`CClpr8RZe)A4u|3NlK{dJ$8B6`(-DeJiX-hxmV7_&Uo{7qki_MKRd(vgI5?bG2>(3TijRslV=Z(mrMv!Zg9u0 ziRlbD@Tw<%yv$7h^Iz{jAOe90jxaiYzHc^SaI7`$0!~|CCEAuqcOQoFXp9YezcS^AcwpK>Ug z31qPxY!!H@W7mNMz>x8-(nQQ}e+3H3iIL|Ik1~PSmsbD<5~xI%1c=-rQUov&*16+? zS$%zXLU$DD5Aa8lIxR^QuDtpRw&%n=!K9Vq<2??bKKm1PvH%Y%E~)IA;M7M31U(Ee zqPOYE@%_&_=y>;?xzNDjTG%jv(3^Vu3=qsgq!ozjB&O)EObVVQJ4Mw>Y*DmW28V3T z7I$!Q;P3$C^T5`5mi_<;OL0{nde}hwE`TstB`nNanl6W=cVzW#L#aQ))^E5S!AMn9bJ$I7d(u5@N% zaddMvUb*xRPZVWWo}8?4VsfpSGJbrekzhQ;XxaV1?9tSO-ENJ`5F(8zq$-!I(mX z*#lmdxnA@+FIdhH#4=R8vk>wfG6KmL+8xFCaCb&+Gk?5D_<&o1@a~+=Ok@fnfPj`O zdnRX&bipA5jvhq9DUrz<@9O+6hjc^8at}bXAG~2<*BHg;O%x2$r=|fCI!i&qxy6Jr z6-Kp@fZ<@N2==B1(z3xpiZ+dp*A{D~>hkhg9a;~11@H_aDNGe2*2&)Jj18iyt5R{m z^oGGf*Sc5STLz9@&B+~DdBci$!5vT=iU1WM0EktgkUzsqhIg)f>82} z6d!E?Lksvg`wH<#jFo1>_-LJcC&dSbu00EYkbkue_{d0e?+TXjhLp(k~(BUQ}O`zjlY#9K_Nh5EMAcrp05In^P z_#u$!E*J!WDe#)cgf(MwM{$VFvG~rTpTD<-{09vyvHD%|na}+6XVNl-u2I5AbCyCu zzz4fnhu$w2K*@V2rWGH4neO^n8HgZfIQfhJdl_4|c?>F~*(n*s05`tEc}pf)F)-*w z00HF3LaL015fwbOEB%S8OH~f6n{? zZPIS*txcV66~|#nE%xJ;boR=4b$PBuOFRpGHL9l@t0$^EGp3X|E|&I*>wr+qq|$j_{FtIS7A3akZ_&dX*29&>Ds7(g`U=lNkD_*yhpEOC zBWt!BspDk(6+&rXhJ%f*c4zn6oK_jW7}l4|fi?4bG)M+N3KR%_c2VB*1y} zvl=8T&H)d|-~^*+VDlhZyn@SJ;Z5`;|s z$2=5*X@%z8U|h6rM1b8)5;;e6BwzEo3JNX*X16L1+Zvtbp5|P-ltu%; zH9gGPYZ-T_W5)Oxw8|Ba2FYg76+LNe?YB%JJ+#M_DsQ$}K+m&DbGOqraJU6pgpgyP z0Ho+PTyPui9S#r#w?3;h$%D6Uf4mYZe;|JK8jVzp5&(qddE=c67k;QS+m%3|&G&cx9Apvlr9{>}9`dECfVqFu7I&|@Yy8s{n35S3`ZGq1Ch$4}%f)9#cz0{>Y zIK1m*KQsq|aQpDKy;Io`m0yGSVKT!fppYkXPzVQLZTybSs7lzW>O`HIxN3tTQA8*x zX)+F?B#xW(CqYJ0ekw(ePHwm268=PgE3fIHNf&Gljk5bjLc^|aQkOO-@hxVRBofrJ$#JGa&=vv>5=aJ7G4>cbsP1rp zz)~jp6eY<6GQY&~gH6&Ouf3xE=iFIA)$Pf?3_d7}{{D!RFzkebl_d@XLY64(Q(G|( znaoEa33d+DL)@&+P8}G;jw>b?Nf$zbnA^p45KD?Ymfb+;pg#g8zzd_QB@_TSx)1?C z_%kiniCbKNr4(Um!!FGP8p%bfx{pY zvr>);Bta;53XIgt;+czmcMm{RlWe}eQStGrHAC@hNc(mD?2KhZ;w0AUk~Nzt@2d!( zZ<_>x_*8lp8#BF27pHzv&tcdhuya7DH+3^KeT=m&wuy|m=m|Xjl28PUB)MmT#X`e; zhTkJ#F=*;%+A~824HB-Pz(j%Jsti-%e6SIIXqG#(Mo?uVY|Mvg()7gtx#ES#Vj-Qm zVDJcp76Pactm1-K>2N6o0OA#c6hsJj;XcrJw*Umjm0M(+*B?CJNBk?aQWHL2p`GWW z7~g^1{c-7h1|OV6|53RJg+Aj!2G;#R@ZWc2>V-VXkcdOO4n&fKuOTtoQb*g6b<2}z zY>rN~mxKO_Bi4j`ml6?eq*c)mfHYO8uK@`33*#rfhr{KyG77NV9EZGvG`8{v2lSVL z!B*W?tS<7n{G~Yp2kdKeZ(cqA{3mn{9zV4h6gc}0AP5G8LIOU8C})l!a{)t(fP-=l zyf1u!o4IcBOLrGQj7X3s*)V_n^z=$Sw($%x^L z`(dE4@q9kh{Ryr>Ay3xBTq=YO4{4HehCI@V?bsnb8T{}kw&^CFDqfgC1Ox~`p=uXY z0=U7Af-FI(H+BxwFS>PG6je!}JIWj&(UpF7rG`qB#}7(nai^A-Y2e9xRL|Jq|9u4j zar_jNVI^aC~b|xnX!Um2CG)d2xtU?ioil(noJ}Lxf=ljkZf3z^gZyzt(%d~ zze@2@Z!mu(DWxQmNBijHc`9x9kh;lYL3^b67DoXJ9y z>Bv-Q?Fj(F4>ofJ#6jo#ANs-oBA^ifX^vi#jS>LRD3w&~cEclqeu)91X0*Co8SeKs z)AG#5;XzJOR+pBlgpK(q=W$5F?IKsNlm@7a7T~JnXg3fbCv;!S--97l7 z%^b7>+NbV5fWY6{SeoQZw{G8P)VuUY^T+4TosR41s}}!?=p%~{0EDbWJs@6w$e!wz z{}#)qzn&)-g4Cu7WjRNQB61Y;DheFaauJwi^3X?GCWj^j5ewUjbJeu$hIV;q`At`t zH!=N^I$F&rJW~!ZGSM}gj9sjWZQ^FW2ag5Yc6%WtmDn%62ExdLYZB0-Re710>mP~>vphCub}+{{L%XHx!boFqEH*8Xe`L7 z3q~KVkpy9Yz{B$4!ix-WiN_lg3Yz-QQNBQyr3(2(&(kygrbih%coDFPQ8q$%8wL_S z65U@A4jN#mT^?BKP87-}A^?b_TjxswX$++gbFp-@(DLGZ7^bMm6SBMHQV5T7A4eVv zFDO1lJ1s;-V4>bI9D&>pDXvVzZ&sYbhh-Xvg2%pbR|90d-6WVWdirb_p^a4XgA1?S z{*xyNHM++);{)0AEP+r>LxCn#@16E!H@p=k8S_=5OuwF|WU<|Fi%nV$Jx4weK`LSc zxJw$iO**YsG5-d+jUlCO7dchJFQ^B`40pcKor=}DAK4RzO3cZX`W!k4yDO_?frurj zR2dfxkz5vDz3LLkv5HN9)r7eQqkxe>0Kso533>$wVR2&RiY(G`uJW9*f%IO2c6DKzxYZV=0T&CCch%+OL#ntGAlBuP0EB=? zcVD^$1KMG@R4D=<&KPQgOHf{x=YBpXLZTB|^bUL!EF6UvbDdct*l^=g=!e3aLdv=g zQHLdld?9`mD&&hB*TC`G&0`~PHwpCl1AlS786y6}|0feZ&c1q^GC~i0xF7`>vEU=) zUs<8z5bbTZ69DN^Sdt^TZnx<9^!M}mSa?2Fn&Ys9pSz==M5^Fk@tN*K+W_MrM;pk*sV)}Pb6R+~Q`7tWiExV zJP)dhkNozvOC1V1K3*0?kU@WFAQw6Wf9Oh$A%QbK4G{B^Qmw#kJ+v$QI!+e$eg4Gp zDCPUots6HFklfuQz{iI-Jyy4iCF-IjtAIqxC<(NK27p`86*3zog^{TX)Va&=OgbB4 zTVl{K*+`&tk~nINS5Toy<_dHTU(MGyV27^)A2pe+&qq+;6J##}BmiaFRVQSt48x}) zIV_1T>lqC~CP0x}il0}#3Hd$@jYk<8W}62{{%#T`i4U(g!lr&#rWJK7FEW2Xyf?$} zqe};wynjOC3&#b~K(W+f^h4AMF5Cs|6&PUbC;3th=kXppy(js)n`YGgjA&_E6 ze*_q51qJT#hpRK>kUxQH^Z@sQRlqd7iYwJIguL=+oGgS(#exI8@i_n_(@g>a@=t$= zM2I6P%n9_{XwWBw{L?~Mk7wVy=-F8V04WyU!Z80X}%3bpUoE(6FhDsxB-~#Gf=(zS|TmJCKBIH0$+RWhk>Jj(~-hNq&U& z4Ozr0gfk#z?5(D#5UAh`_)w>cd4OM4Rj5SQVOXj{RDqZx(W^qCFkF1*v!W0TPE@@C z``iFx-6Xby?H?|OZM5^SMe)kQ$A9sFQ=xUHHGAIeKF|7CDL{sc6VuEf-srBs*gc1X zb>zs@RPR79X1!+;g_w^;`~lD?a4ZiZz(D#ClS(9uE)pG&z0B33SB!u#5CTFt7-VT! zAPlRcf#Jg~W#7sJ=}PnUjoPVSUHhBo2_Th{1!%ReT(W$DY7k?StTA+eFdH0a8idW* zhDnIRG0)t3;7gx_-uNN_;&zkp2*oeQDn;XzKcbcYLj2L^4$0bgk??WIZ|q_bgOEo5 z#2A)uDc#J|BipmN5So$oXJI}SqI0QCZ{PrbSYvL|vP=g&Dor)2In9A~F8LEtD=iE2 z@`W9IUqblUUZgTBcL0OUr5h+$mg*a~m*2cX2stJx5Di(atrKCg5XQg)Zc!8DFh(?7 zC9qN}0CwpGL`t#tF?@_qRd3KE`6wA4(k~Do#w34oy&g5C5=rMLp1%FWgI$AA|KVNA ze|Q1HweAOLAQlC&Q0Q*2IP-GJ3kCz99htESK>0*SJ=Pj5(;Ey9bFc&+5bvE#M}q0= z&=oRGD*=Ge*KX$w2W_nd+ze^}6Wz!7C>ej)=!LYbeRyP3_^3xTruX?PHBO;JAq1BF zfbWFo901wc>UslW+;1Ai`rPc{KaJ}293@(L z8r4mIs0jIo5466-t3fD{&U+F1DdUqw`q3A5jO>`s{(u)!)8AXk#UN2b`#fB|ksh`| znjUbQuxUc8JI!asCR*a2ppjPZW^e!x;4DXlu>K%?qzOVBafMf+kJ9$idgMo#zJ#t$ zKS>2A$7Jx8O$*h`peS}%q#K1WRMg;lp(Z7;Msy_@%b}~QRw!0iZhk5V>4Q(@>Ww>r zL116T6D4~xwJE;4@NqYP^f5lXTPUO5cHa*A5-WVylN0wOH;(S4;Zy(YABv?5=3`C0 zemN(FU`%hf-ascv(hU#*0cDQ1tSSUKc{E+gUV{LZjvwV~bL3Qo#EJ07K>wQVK}mk} z4_CI=<}c@lhP}FW;#XIWr3B)VM?uhl+9{|KzO+ejfRM3;VM#$|A_Qslz{#^$OY`BT z5n_4+=(v*r0s^Uvg<(V%H_m>1`&Ku9{JJMTIFX)?jQf6$3Pl$VJIlr5&gYKUJ-yU@ zUVwyc%)`Ri9cK^_=J)CW5zem(oH2a=8-Z{d#QNH?pOjnfsJ};#jsjtPAc5{A2SFdz z(cRUs2PAOfx35Kquf5G#bakWsZN#?9h`X^WM^HG!rhi{&%* zh!E1ZS-p{g#vSEiJ=Cms+1Z6#-TqbIuY34cs8s|&ve?LSfziqIwz1-l7moNxEUv%g z9hSzBG(%y@LRoU)p{Wi%ZCJEQR>2}I6Zna{4~Zz2IMXbp{rro&IRTQHb;ZfS^6t@U zPtM3yal)-?5a(8eXcMsDK?R!r)BQk9fr#T3K+xl6ENNUzi@21eij{>rBV2t5~-csDi_RW03TigF*Te)0$;b;~U9?F@{3y?5!%hKU+ zVPq<Mn?wS2|v*1T-#n5DKBpl z8sLz_Z(yXpW&*8O%1YU-XcxHh$G>*A0mI(-0Ad3h>}W;dTzPc3KQotMfMUMI(MoLz?NFPv%ga*8 zTTqk)Xa!LU5ibiL2{NEVU_oHJ+B;?OnhQ~Q*}3fhQasy?>&XpxS$TQGuQ%>Y4e|%) z`%3U3mS#zE;v?OAjcNXyy~a^@=l_lpKq};60byLbM>+<(IX*)8$V_La!HA{pBa8EEi6h%x8|HGrmdY3z9)JPdW?P)O z1X2LI1TKLDsA0gy0pnZQvZ4O}&>z)T!c(2*{BL;zB%&c#u?5w>pLda&=a(i>lV9^|3Znp$WsTvvQ3 zy^ucdZ2$A+q@L@^>SD6xZyHB~Mr37NVCCos&sawPD zWl?WV76Mpt4GDCBL)CeIP#LW(hrIyqoZ`qbjsXOa5dR7xTtusoVDF|7%aj8yi~*zu zwM)d!ofo>pSp0FZv>ZlBLLj+`!qyym<8ERQpz)E@XL$n*%75H=n6Dr2z~lFb@8)u` zQVrq(h(80E>8{H3RN*SWi)9pInGIKoU?suYTDPjxKCAr0pIH7}rM$(h;I^UZ3R@#I zqNuG2LIVi9S1dn9YFYPc14_LEkct8X45H~kWXlBt3w7y#OKW^JaCVG(d2$ zEo<30IkQf`VcuHGAXAybk$i}l@r#uWWzv;G z3?8n+XqzIj1fOUMY-C{Eqph`;1+m{`{UA2@A>kZJ#Jhn~f>38**<^;|=XI3ICKTlhn|c2m=Dy%C&ekRbf%slxVM~p6V`U z5Fqm5haX?N^!pDy^@*NZtQzG(hG^!`QU3^PbE3R^5_-~#j!3WPx5ykUd)N&SiPle{ zj4=Tekmj?f7eItDqwe@P4GLTCgCR-6bw%)D;vCzp2cx^UmzKPYfpd@c2t5#576w6) zluB;(g@jiixb2^r z{aR@~_RNjK`P!)M0b=rFpg1yG&NkPE297Wb2tQ!d7E48|bms$*K(<`3gFp#Hy3SQ% z7^WOa(sfN{ilnpe?O3V2%&gl?+DS+`^$$&O-1`7|{CDrZhwX84nKHs)2VAH90^?L* z(huojo8JsoMtA$eSNVJ{PZY~C-GP=;rQ~3ns<}Zda6otN1GfQTXuEP}z6b71-;_bh zi&5B$qbLf~BmoC`{;dGycNc(<^#Ozi^C}KVNm!18oisfqL{I^95A8z@azP`UefIxu!BO1`x z=VCoo_};W{DzzcPSR`|+zs3;~WarAdzIiR_=N<}*?#zYeJ{Tgn)qq783)5!cp-#iuDi#DI_+kN?|X5W+{!02c6}0D0?jrU*4Jlv#63#Hour#!h9X~EN1#Fq+pNjJb~4GAsJkY) zk2Yn@2p*#&!2s)z?!oQF-MdHf&A!T^%Ci6|f(*=|f+vAdxz+)R``yp zUIvg#b<3)>qo}!9E)TIBcdJVjALXTdf_(i3fQ(tqh)Hi0j?gFI6(bM;fnRW!&3;FB zRk2i3Y68gQRL)8xkNs&T5`E@XAmm;I2m-vnLtRiG1!gYimv zFQ($&iJ7B*Xk;V6K6fkI4D#I6-g*BZ9Gv1hhYG<)2=2j_frpKTlPl?S=T$VVCtNun zHf!Z!6z{szeWZDC*$a%&kB0n4!-HIazzMS1?50A*;nI5FAYDrVA|SDCpbLfS;o~&a z^vWN9bZl|48julY%H?v2t^CY0kNtUC`@Q9Q@(CPrPl|K|crO4S>ol%bOy}b7*fn*e zOOtzaxwkygKg@UXyV3eR_pt3zA;JhQ5VD}b(Pj+b3Nx`}%xEXz8->d@eb>-IM}M%r zG=F*Hk=;Cn@KjhY?onVQV*MTk8yzQ5u+}KVZ7mI=0;LcfBX|%%p1<;|m&1Crw7giY zR*R+bc%|~K#~yp^&$nn>#Fm?J1|dkP--8VD@Ne=a2(z;lUrt5HPFF+LO-3^J&9vv{FLz2e!m97i(ywdiip=VSr>m z%Pv+&QuiEzC*AoR6RiubQn4CGT}|OJR_*M}bNuSnlT5_X{QTT}G{5jyHy(O; zi`2HFpXg?DZ7Ay|oUD5eAP@g8e}FeT_$Lix4HtJkjeu-576l;MEu{q} zYN|q@z;Vqe(itaM0$@NNuq$u=aSqcZzH+&_aPuMBkEzQZF%Gee`n~32A%KM~IyVH6 z1IN->V`0axNyzlyOyY-_3v)(-gi>RV+2x$T!_Z)-#?k$XH*bqVvy_2%{P;t*5P)L?KaywOaWdt&@zBGE6RUz4u z_e4ugY)`3dh*#%j0a(b22vTIgXuMn;?sw<6TOOToQ>y)IkTAKvQ4@f$XQc^oNbNNg zqPcJZ5G~tQAPO!P=Sm-H$FE&I)p_zW_z*9v(ZwKV?m>W{0t@`H5hDs=nLhN?&OMVB z$eLNN+VFgEbZXB!W4xh9g#a3IIMZ}>f7@)5kkKj;v9=DVa^${Kc0kTN2()noBjy4p5mG1`JRF3)`P(_TPQXWoL$13BiSA7e z@-X9LV+4Y>+rtcyF-nC{AWIP9aizS~S2NzM`po2B#DX@XLZCjf9U*A8x85C4FSr8NI1Hp2(Im)iQ%-8D%z5a^2SilIK1{oC+SeH6vyX|o+H>U77 zVYo26cJ)N)^RK`m*VPLPFW1lB+;R^_u^#`;g$?5aD&(DNF-_I(-6effGx;1WUu~jm z9Kr%VHl;$=4hXfvcX_qZ)y6tDAuG|%4U z4-ObuE`%Y|z5VT&)n&o$Dh9zZY?_;)kl$X52p=E+E7996#v#qq_gWqV0v-6+FhH0> z_+Ni$+n!yMv|*Y*<)N23KGiCd3C)3A&YvdC=0dXb57oiqQ=PtR>O&7uh>ib|bV;l` z<*w9*85PDF#v*LP)%qsQBhc}ky_^CBT3q!*>o!=Zbf zr4XHNwdOF14hSS`)Q3&Tl4b0&F5B~@ed!bVA34IUwwKe0=Ih_xNVYIyjbZA;4kyUlO#98(st=ox zmDr9WvRg=J6VD_{76gUYZ6c+19qmdQM zi5z`&&i9=2JHPbQnL_y@r?OO1!v{df#|#8mO$$830Xu!BkhmS(5QT1lcvZMceQbEv zrMCzW^gNws16BwKtB$sjF6rxEcnKf5T*BFnC;4(T#%pec;(&t|(9$j-Z7+h{us#Pm zjzwdm%!kUJzso~6l@2ZD#yGGNh-pr^STe_i1P5gCRIDS#Ie>zT*Tlm- zk~%sv8XFq!KMccA|BGQz+T(|zo&_YdJAsY~EJ4Te((+BQ-zu&PDNIq2rAlTgcg&Fo zz?V^gARn8VLOT4$8`h>C z9UUv_$_NYjK>v|4^%N7L-0?u&!@Tg1G0&nV4yNG3h7Y%!*&(Y7HVnfhe&2WUO&@$f z)8fN;j{*{3!x<*Kzys_ZpyTF0zklVkFF}P+OV(6@>xHbpeGaOg;Z-1oy4B_*8`e`} zsYt0%bAkcFQx<=zMB0NJRO*8P;bgI3i5?g2CkyC76t$2Abs-)2$R$&zF=3{X*}9Li zpbC%?b|AD92m#{V;JnQV&=ETZz5@)W1%m+bVfXF_b|HH}q(k3w{Nb(L2oMOZ-afyy zbmQjxSFlv%9HTXwQ6L2Bg;JEIU_>QSFo9L5xqR5b$Dpnormlz6#hMd5k>&LOo})AR zN2NaK5YOb9?#KsyA3V0X*yjzf*qy*bYCaA$Go^u)J^`i!AvJ4w^*9QUUHA_OuFfyt`s&=j!bHJCaJjtz z8-)-d#R9Is^-=Ip{Q>%qBJyE14>*}ZE@@5}6B9;CPv)_37|5)REk(Jo?NeGR^+5+s zile^XP2OfiH2F4!OlKo60>@!X8DBLsXL5RK0?nBCB_V#tJT$Er0TD-Ava?}a6^p$R z9qQ{NieazafB4&+1jC#HmFMd{7-EIoHBviwAMXGjPtN^?_i?i(JA|Z*P!5@$y*RUd zH@iZf6CZizL(`EDFnvtV6@t!?b40D9OT)=i24$nG`k=?~dswH?nTw2&$YLMDYNW5v zR_l*iAv>U>13}X%$_idsZ#oEwkl}cxPFj1X0!*jIt0ARTQPpWs(25jq%k13;l-< zvAQrrPYpnn6_Aj25GA)PcD6&t5JAI6dqS3sNUOE5(C3lp0uSZey?MKq4I8@2FNp}LTEUlvSfd?4 z&;%S&WMde>07Dvtv44XvhEBeD&rfv4OAA9iC(<8&wX*>0ZK2KYug7r{(1!G1Z-Wwa z`G7DhT{sQ1Q8$%oZ+GR5%Ngk*-9(!xPk-Xmi!?ET8dpIK{XCR zGOI9kx&rU`E`xd1j$~%KT+Gc(r0z&Zp0q0YnD=;-Lk*`Xl_ z_rPzkF(^c zpw%yIBhuyWk_v=ZP7}il(C25;NetB`Gj%hZO((1%GX1F#D_n9z*Q>(avBD9iFSi*Y0-Y8=tg(aA;IwjFyi zI*IuzND_#63iDQUK|4Gg8^!v0FnjM_k9m;zI_x90Gd^y8POUk=yG{axO;q)wBVZ5& zANz8_wrj;R;6zA?s3-9<9_4b*cKh1}AA_VnB-8c5e65PA$F_V9k>lOc>F^-pCVa_J zbVG#lT^k$j&uGheyu*O_FbniYF>jJn)EE=GLxcp8B5%fC!PqMH<)RJ0eJDrS3kwTy z3?Bm}5{m*Y!~H`;L&JU0THJpOzWzcTUa89=y#)vcSV2qZRQnL>gXZd8QzRZIqcE{@ zXaS<|X49%>V38ppGOHHmd>8P@BrFkLVgBk&X0Yu(4ENfB1v{8BK#1cPke0jQrguV? z8&GkOB__42rZLi=;JHQZC)5WlYV=z^`LJq5NLq7zMR)j>g{uLhtVsy001sPg(X{Qw zNf?P3JsX__i=CYu9*+L)&9j$a@!)&D!Yc`owNNjGSn;)>B|_q3>GSp{Nr(lAWEf)b z8@GA8T7rb{^z;mfkqe4qp_ryM1AL^hIZ-@Q@R3Y09pcK6=%7O~jUX}|BO}i)>C}9} zG98=&>kIinxY|;kkl)lkgu$bnz0z4IWziD?I5Y`j8;DFmh^CF+g5KedtgY zzg`5p^q+Sg&%K9u1d!(pNDp}sED;8GAa6r>^?>+*4Da=)>h}R$xTm7&G-|~{xk5lF zVk-=;vWW&g(?Wd?QdZ|sL^kZpsyo1wPZJWn#Y%)uoam)PmF&eJY|Bmd;*(LZ(>yKw zbH}g$zy@A^IU0*}L<9-Z0uo{^2w&ahIr8tu`g;D(>Kp+Q)Yf_^#KInv;QN38A2%L| z@Ct4JCk@}Lr!ml~*FOLP%F{EbM>FH}lI0Ob}Kd9M)MLdTc?uxeAeBgBW%K|=N+S|soq!=}&g`g;D+ z{5>heno~KAx%MG$_V*GXYd4lLgB3Kp`xVp%$*6?x+nNWO)p{G% z;em1`TdNCcPKKp|yg~7m(LPMg;Iyb9WFTMn{c&r#UV&5u3393tdi;d4;RFwAOcBqe zy+Yi_9iRFF}0H1=|q0d$yt=?0IQtAiida06*8-eVA50W3k zez@KW5(PBf4^YQWN3R$@zI8a%@79~cAaFZ0f)$uifAWy z5fH}1)fa?-auaE>VM1rG5K#ZVKJjgYUN`vl@R>adn2Cf~Ni|a2?mTz$4mlQ~MCDJJ;V#Z56i}v{R$44PQkuqh{ z4LtZ22|~I@S?Y~IgZL2Z@*R&8@te z^Ay#kBqhmzq*BI&42WjJJ;N()v9}kyV1uZT7KK>un|>3%^7sb=L)ExQlAg;S0wP}y z#7<-XuHn%i1_L7DZ$Mwx%XNsgvncEKmH9g>kAsy755KyvR{%i=a^s!ATRks}^c6dh zR`4yoy-#S03tXiSLh>Jlys68dv1~8I@WO{|`BfqKiT`ZVRUJeEMoHf06RNFuQz8_S z346xR^20}SD^m*VI_Iv~*nfCDWr}pjuVIJmj~{*W_}-j9HsEUi|GwkuQ^cC2C4zT1ndG`idGCj6j84woSR$3^&`hl^o&RkJ-HQVt2NB;ExBmAsL^9a5~EM1)FjMJhRYMiI9KcoeO=HK&+;nMm{`X zBM$5@y1;Mlh!FMcc*30l{HqzKr z#(u)k;LMREq;SS_KhT{46(kQd=n zh^15_;zUg;;_gcWEU1!}(qg_38*%O?;*v?7lE2alDor_2jv4dgr{)d`0^MBLPMcMNT!o!5w(zwmu>=8FCZWMnl!J7!cZ!b z)VsW5Lrj!wseaQ6KopQLQcQ?*dG*etJ1ft-)&-w`455{1n5W$qU+s-%MXZ4YN?|SE zl=_@;6=7iW-3p!#>!uV&b@I9Ca=9eZTWkh*zenmVUx3gqoTwsPQSJ$^cy)(TiGUF( zG-L5)4&*?!m<2veeobC6ju1>=%!f5Y3bIJ4`{91)`CsSVyLVRZ-d(*XH)!3PpI;Pf zN!ZYZ^neEm1+0Obf3nV>9IViTmaHt_e3&jD9!My@3TG=&elLZ`*oS!dF@cb(za6LC zN;n2c)Vs@ga2-UgMCcpDv*7eH2hwbmIA}y`dp?8sxHtor%VP_?w<2P62zeTOpIrY{ z!z<5M9)TBG2LP!_ul%}nQ#huW{pcu}cmGfx9-sjkxW>fgU}d47HcyvUuqtB=9vp%dj2;2~|? zd$4b^2Ruj|B)UHZvJ4B>mv8>Uf5d-yc@vg}hvgF!&%JsUl2mf=Bn&iox-#Q#I5k~P z59p>TXM^Z@K)oU;g92?|!p# z=g|t>e0vE8pGdp)!fpSFeS02|(3;=fq|W19QSQFt0PE_rT>^q;btz~ivYf;{}D$d@a)7N#uYblb!l<24<|bi9*oH0gNKj*X0HSC$Iw?xANkGhE(t2-ZKj`TCeVTKv1Il0t99= zJXz!N2M1WeYv?{d=;}GtAKuIrnMr(zRqK`FGbM7@@&S78p0qFC6%n95!MA*8oh2F2}*u(M907B(leWD7|ps%e9f$iR`o~%DBs1V= z>Y&eYB_()}S=fhhs(?-e^;J^5F2aLo_ov zFqljZgd?tby$#*Xmhg4SA(NpcA$u$I2gr|$2uAVD8Sss>)8#23MC$oP)4Q$@*{&WH z7?6$YpMncH@zyZvbMJPfc+mad#`icN`#(SLQ-VN)A|N7Z5FZ(=z}OHUVV&O=9!LzK z&npnBV*rAmvOo&1X-6Nzgs|bWlNv_&DLn~{L=xfGZrcqI6fF=>P0|Ui&8;o;B5pv% zpg5fx&RD z&~D;o`Vrwb#`0oR82G|6oM0<0+>#4dAs5nv@T27f9p>@!2`j*FJ-DQAeE8}2;6f%r zp}Sy^(LGcl|1ZABL#%ZGB*6UkC8(muaE4;ZpsD&ZBi(%t*p-{mr zZ@B=7am|AufS5d^qdCc`W2Z*SnO+&<_}S5V8nI85J!BS|Te7gcvE) zD?m&X3>e{Scvmx1X!tG$<&cBb@9AQpn6A~UPO}L@y5+Q5PjT2T7$AZ~Y_-}U76o6M ziHIhPW;WqdSSpyr2VTiAGD1Q;uZ!BR%Ah|k3U^pQg%0N;_z;XB;ekB&EVF?WI%@kX z#`^sZ={q++`SknvZ;oS)5Iu;vAss@A-v0f28jzqnuHl@~ZSA7&20s=yO zm>zu&2k*9)|6p3=cc#t&78tEpFg1z>_oNXBh=y<@hBeE6@gOc9-$(=mt04ktLMA8>UI?c-x%~y$p(G?8xC*$LW0il*@8m0-iW(rSW z@CUDr1N15A6e%Df{8Zp*FbgkYrUD5EAOv386z-w|K4hvQkU2e-*T&FuNnH8uHnVp6 z9asPT$Iyw_hhGe_#C-zfPy6HlCjg26iW>c+fE!6cpmhty2s)6>UFi=?!AEX@!Wg-~ zO4l{u1FC}fw%);2ud6%n&?inhS(6jt1#78*KdR z_uoJF_j3yxdJ92_r_U;-L)O7fS(T>&h#4dVt2^c56vU3`L#C$4r%JyUBb={FSvlW< zm7h}k=JlU{*mvSMHo5a=*4{v?A65Du_8{vwmje%L_{iO=b3MLa?&4+Fz~{hz-Ok{9 zK?bBV(WflhKm}+Bbv=Rw?!4i<6yEL>- z(leS!PNZ36Bohr<2-bzI$SG`(61cY2?!KIhHMg^*uC9rPko5iZ`v2eOd-L+ODe?xp zrU-ABk2y4u@8{?FKgUdFdnJ82eR(J#s({BAq;>};6H}9uQ&SV6_4P5tx?aAh(vrM{ zcxQ4%Frg0F8MqKU00^<*@!|vmydMq>t)>I%+bg+vA`!ot-QJGJw=?f8AcFnlaY z6f{bueoNaA3J`8ofWJ;c0!sFFMb4=!S@__N(RrMicy^n%Bt68~lQJbryn8#k#zSzp z?O(U8RV>`fucPRbz_R~aS1t-CWcs7TJTs#|(XS2m@F_+7I`Q?{) zXNtvymuDXYqq z7x(V{**iaOCm_Oxp+w&L?mH*Jg8a#MKK$V~1IVwBxAb|IZH1Ye|32E_DH~!xw38$^ z{ggd|uo6ml(D(Q`_fAFSqn8DKctXpv!1)dcS#^v@lqCWztK?&r|B3l46!5toUxByf z3wpr@tVk=&2~#DJa17TX&(t*1ed`0PJ!G{Ns!m9ULx^m9NVD?!M;-{D|%g$7a<{?(nR92tr#e` z;O-AenY$y=uq)kK``h1s@5dt=48w-pAjgt}yM3LeiuRSJ8Bkj`Nr zbopq@0YV7KT~Z;34ju1nK31~y?MO(t6H`i}6N~uTsh*~o_vGVL^cF)`_-+7*#IeZ< z+%LA0xCT5(?7JgGFUvNH_4-?l1e_bJbuSv>@zDKM{cNd`Lg*WGqJ474Z37 ziPyRPNk1BCZ)@)#!7{K%UmP4^!&dE%!)K&YGqc0`Cy6}NV=#c0w^1{MJ@_}*kP(_Kt_fVdo;z2?EZ4L%Zm#(VL4VlonRHx&yZ!LAw`lG4V( zN*x}h>F@vY*N=L8d)n2HR`w6K zcekgF{(%4BnsB9``2$_y@GZnU;iylO57jXtrAvHEdW`TZY``TR3*aM2K*-1I_MV8Z z1xdZNktzRmHWN>*++0}=1QlRD0MZ$onBLq^?I|wAh6o`Ze<0Z8n2+Y>W)M;++7YtC zJUa2M zIJx)Z?t}GM=1vAToCuLFr@`?oijcZYh!kicx1KGRT3apn=x<{q8fPENfh|ePd{I-s ztM9ZKK_oPU`Vy&ejV_AZkklFzg(`%FN9c29KEmWf{Hrwiu%Y}er>SPLmF7wkK`A6K zR?@nP(BA6)m=)p7hOGkJj5-LR6y@h{yj)JCT92Y6HPYMteW&-|q-5I^A-e*+{s5LmbCje4&)ORAffGB#>eD89Ic7H=iHwNYy!IKehkx4+MxzH+0-g4Q5(GK~ zp41{kqjWu#L7~4Dg{&3%0VTuu6~y-H3>_ZJ?*R6r*{F%!3i9kKjTebdh1N=`mwPgQ zmo652)+J%M8SxATQcX&J;Qy;!u2gaxc7$XlV>moM9qJk!gbrC`dJraru`7b0fmi?@ ziz=3lHy96&MkQhB&J^LN2SQ%ff7HTtgk@Q?6u@HGM8Uew3_`t_Gki4VkgFIDur?BWAbeF~f{^of4In%(cOGsc z6F=D0+){~WinH_iB-q-p@UrgC0mxO!sXK(QI|{BA<@nDGAu4taK1c}Pz$5xYG$F3z z3v`ViNl5A__bPQ1Lp%3=@&kUh2^exts*BZlKkLew-~2kWt>k5Wa$RbjkUWk9InV4GNslM3RXR#s&lm z$QZn=VMRzGgDeP@de+8<(5X{|V3Y}}P6kK2qKwcHcV#FgLC6{{d@|sUwnGSE^?U5x zAPI2;LPAU|D`f$QrLkdAZ(qBy9WFqAd{Qk)L$e}h{^ehO^Xq((Vq~t)135!VSceq< zZ~yd9|FicJPEY^EHlsaEvWX9{EB&w_ZZ!0iO;4C{99EIA&K+?oV!;=9LO)9aJLol{ zw-pYDIpBaDgDV-^PB5l&^5v!$1h6Q#$wxMg+AP*aPDc^mtr7)gG4?t6N-uhreYmBy zbqu%jr{hWdIef%?Sxz=t5yFp>Ek%g03pS*)b+n6t1|8g8l0g(WOQO{ATGYS zFv0`oSjDnxDX^ayPw{ikgv6JqLm-)mu4G6#JnjtkLnnM4fZg9}pnW=fu>G=6oRu*^xul z%zTA>WS@G6QD@Q_nu-mSo{^6|nMNw3si{2(ieU1x^n7!@!#_B*QmC{n=L_&I^VWpS z7NA3hsYCF!NBk`pq7$@=%AZ^kKvc9>O^~AMg`FyoOae7%8O1j(NQGUC- z`@a+uB3PL7-gi$@smV8QMSk-u`U&=gSSfdkl6X8}Otj0{;^TW4&)3Ff0^|cYfDqL@ z^toI(s%={UdF8O4hRWpSXM+y zkp>u%+JQkU0*E_H$U9n)?hm|wj7JbTf?F^kbS$JcN!04+67f_)PnA%|JB(jVu>Oka z^P!cDZTyOEAaWPUGFvzb#Y$5$yE5bt`bYhd=;YW=O2)p+dL1IcG84zWqE(Rw!_vv;6KBA^7*Qe2~CGOnEya0x;-DXAIr_j%vPod zxs**dlMml8OF*KO=hzb>Qx!EPj9-aB2Q0KCe72w3Uq>j*HEL2fd+bDpm3U z&jM`lMqtzn(ILE4Xh4=?v53ddVN)u8W&O3!GjUPg*g|J)o_uUGf$ksmh9N(mr=AfH zkU>ZsM~hNjnGjj9<0K4WLr`=Q7}`aQHX5;|5FUc-$hLn{I!6;sI%V zHxS-t|00-?2n7h?WP1>TPO_SO zNWf1*8UslB@uM3(7u(J<3Rwfl*|!6b#%D#OLaUKdWL5wXB#eKhE8bv1*yL@}A3kKy zBug&&4?g1JARl~#&){N_5b_a=%2G^@FR{#j@X)_vpHp@Qk*8!OhZ5T$TYDq1F)T4K z6R}i^&`}>4yQmi=02Ilq@1fLphr!;lr& z-88EgDYafD2xSBqJxwYUMaU8eiM(Iigi9e7iNVWqg?5i|QnVgD{q3)+ObCWMh}HkL z0Mhs>-(PPr88y$OoJ#JYm5iLBSg$S{E@bY6*Ny zvHzTat=`Pr@-ZuXuv8r*7n03Pf1uojs}G~=X#P+#oc3W4P&j*@2@3(y>)M=UZFqQA zS|cH}U&&+^gcP?n^5t@dHpG??eAm-cRO+466HI%`P`sZ@f>7qZJ25-wV}s?*A?(7f z&4&a*$ie_+NFAs2n9Ac~TbqjsBhbmm*&qDr+ac186=`fdi&CU<7Q~fCk5B8EuB- zJ8;KG|AoVlCD3*INp9%Id4RT2*3cX&GUrjQg$@KYx&VMjJ==kDv zIi$c$QYXsKX;eLc~8BMEq?10zz8+2Boxygy4ZbC!bKd zlMpBnhVj(4XpteVdZf_dGC^ zh!?D<;1%aoc}W4qVlX5u-&G|lp2+$d?15~&m8g}f+yhybDbL7XfIg}ak6+#85= zvgl+Zo-Akbb8~2N&o!4ftOzNPkhFi4)^pv1Xs@c^rST*obg|@nXOS=2amGt7(TYYo zIp?J2kdQamA*shBI6eJXZ0kx@87#~}A=a6<&w?~qtv4jKKFdU*yAQ-XpqTg41;1_q z2Onlo0dvOcico$PWC%5hBn;(4RP?!8J78UZMLuSdO-;!-(}Owm$(C2Z2Y1+vudg{9 z*u-jx!jO2DuD@cr3AoX1x47|Dm4u+^q+@U}o!!V)K*&7Bcew&WUjG3@Lg-};j=m55 z74C2d5gWpQFRPc8-zE9dpGlRbTBnX*fDx(f55afTHNDALmi^f+A?eZGPGMeKn&{Rd z9PR$`_pZEkfHXcULPX}(ptU*-NHP1UTT4DyO)q1-y#sy$1bl=hIj&j8CQ^CG94twQ zEU8{??m3|Qfp=n4AxEDNC5o)SvgV^w&dn5AZk%jd&L)P)2TBIlcW4pBC&LYss$6j<@%Zs0*llgD_2G}X_XGc++8%}W!Pq3?S5jD^#<$Cy zQ5Gul1-X%{1&209E#(jRed*kseN1{jSHV@gQQ+7+oj!*GIkztMgHR9+DK8Q0AWB4v z-9ZL%ku)J0kykvhAz@@PRP>MZ4J20zxE3$~o4O z{va8&oT~UnP0eHS6qYq~Xg(z9^Mt4D2-!tccjxgJkNPF+akjPt-Gz!&&@qPfRsz!a ztjKSe6(J&Tx=lo8PR*59`T6vyyG>bc2bEk%4=NQ61|-g{ltm%Z!P4zfq!pj zU?-0uz`S(7=X6dL3&6t}3GfA`j=Jl3&tAOrL6Gi2fa4QGQ)+~oZhwG#Wd=m?N>HDc z&Pc^uu~-+!@^CyumOdb_eG5MBGO*i>t2e(zKH>?F+E7dXs_GOaA`M6+q~1#1_9Wo@ zLiC1+6mhq>qD|i8pM93v2}L7*MMyc$uF8BK)3&l4&u2jhLsw*pNI3NeChEvPg&&^-6$SYzQ;#>{XX4cs}BRpCA~Q<)%Xj2_8j=dK)>xk)Cc5 zgu0^SP(XMy&)a{%5Y}4`NaI4jtn&S9*E?O|?Z0i4p-&n+aqI;6RUX3+&S8==Vd0jAchpWvIHH zdo^2WlHqWbN~O7Znd$QYCh+@|egl>`?G3p--GK|<^B?s0k945u>h%F%{+ z(71JnJ!7;Tk~(}Iv7e)}~@BaO(FcfNXHCMIH(D9^!KhF0f4xz$b}O$~H-gPd0g<=}na z%XLnA{kgwm8hkKv8wDcLb}lnGWxoNRsK|}VsNacAfsaA_x#7oe#s{+IWqhK?Ih`RF zUnQbJl$UJoV@;=M4~BR5bnk}&M5PC%vrt?t@vw9zggiNg@$j=sYoSPBFulEznW2|O zLJ$sMm%5z}L20k=NuXF6=M`xzMJOuPH$&q z9o>U_P~g&Y4jT4#@5cf6it3#0A%LJN^;fVXd_!kKUdUhvX;U8oxC596~IQoN-@F$^XO){s>7zR^_Q0g@aL)hnYu>*wc z;(uuB+GV`4~R@u)btUK|sk#ml~kx zSp`fV^Fm-kU2*`zhaaZMo7iUgu6=s2g6Td?TPB-0y<`|c;&Yvwn*)0(r@VwWiBn0Q zL*t?AcLkfO{6@!Wh&Ev~i*JgwukH`T&?BEfay*|^gk)yW+q-4yWo1YRJL6#~BZI9G zsmoGTn+x(WqPxiGZSk{&Z!2WDxzx0t$wv?g=~RU1G0CV#yxOPna2M+e9qw2bo@+Ry zHt6CH-sJ^xDnz;~wO*GMIa3!PskIA%!}$md`omMsvSZ~y02SUbc`U`OeE*gGxD}g> zc5<~jMTedkEr)z9b1zRabgogTyg#SpClS zLis!aBJ9G2t_zAvX8=Mr#iNBeI=Q)9d9n*SZuDKd*2_tk!iTV6vgJp}bUg_3WAbsT zEQns3P>&V)-dELn><2TwhaSH_G8xmW#-KX@hcnq+N?G}2K|C)m=nPFwMMejM!C)XE zb3^RnS2LKNyRoswu-kH_GLz#+^l(RHa}Dx?!Cm4ZMePCsIne6EfyYR4Cwnd~6(0l; zJaObYQ|h6vfU+S45Q2LDY!ZZ61baaU`$KLcGlUgXQP_~y)^VnRxL${CGAdsxX%H$k zGNUanKR@n7Jj%`D3M(9Dig5e^4r2+;PVG&}v8uP)TmeZKFQO0D%#Ep{HXBMtfS7h#yA42omPW zt%oARv>|y0!DrDjmgL+lCJe1&S+~6)gMoCEQ7MFWs@TejLhXuaMmPnt7#Qap3 z2y1(>TM$~Th)aok}y;oUe$t2@)7nZK5nu)%u=7zeo&wn z3*e(k@iFWl#=y@34rg#?U5VDvMTvU{)Q7nV6w;s0w_K`Z&*>DAxml^TF-6Gs7M(17 zt#crxshqKC(NsDlK|(xXgulmITO*5VWSk5@A|RZ(%H;?W{Z*tWLV(BuM-+Q6od2Nb zQtw9}ocCPt1P8I$`tnEDuJ!e(P7f2;)dZLz@1apFIs9Yom-;x*{Un`Fepo*j^=3tA zKz_M%Oz&!UZ>;N3J|qDWV>2nugv598$dY!MUjj@33`Z8QCW-Zl(^w#d1PGcg3iHlxRvs~=tgrng^M&Ny;KFp0AXm?CX7L6)VH>Xw$fB0F6 zgalhxU_-KT5;6lqn(YbMN;o=X5^@GQM8&^#`h$-$I8WEDIfSVG%kj?c-s?P9uU^Hi z?*q@E=SO{4`}!`mOFc<#3$5F!a`g`y@p1NI&!v%vU;WvY6GX=+AAa~@y-d^}@}&WJ zm^!BY*dL43tXDG|zC#j%Vc9OXolDywi?0Zb9-Jn_I2S{)7#G$A89}8xZ|`48eMytb z59ZQdzn|UbV`~l?Rk0tqCm=FA(Wnn|lUNt-4IW07@VSnG@%L6!10k%tf~nicmN8Eb zUkN~M&T$ry&CbMa4khIj?HCC0jdq3^%EDn9M9Q#O%85r!2s;cVQF7-eS3kqKcJ12r zYoA@edhPm0A6@FZ+S`o^AKmGp5imH&K=B%9OAdT17MAwic$|9h@T)T?#&-Ph!|!~j zacI;rsq~X~fB)dPe1s!1y1kZ zKTU#{r8&*Z3B-4y&pXlnQ7XN3RvPF$I#`jyT&+IbH*v98X5xCAzmt!W5y68@%W?=o zX+27Ni}M&%7f*8bq9q|*j=Pzz3B0n=ul?(mk+Gn3# z?d?HLPk(=ZcMoZ~ju{LGc2Hi-0`Xl`4u{t_v3sy8Qe39C0~4vS(t4x@5RCy%&cV0$q+dkris@x9r8cKQNc!eh zCY#F@=P@cG%U%?_Sk`NXRs1zhl_FCS*Zuu2b|b(}5&oi1$KQ!9y=wJ9v=Q z>+idMz4s!ehbysB>r%N&-F3&OdfMLK^XZL8G6J4}oKE9WM^@y_?;e(p$%ig~U<%!f zDhO0xNkb3w5aWw1(nU3i@FDX{oWuvm3Oe;AbRZV!Wyc0k zzAFPnMRz;B<$HR3dyRXAn*dig`ozHVv;IV{ud?`cmUI_Tv(*2d{Ra0cf_yI2eW4)kbD*9i`vi-earS96M!n&DToe^BLvo$d!U z>P8Rzp?~FX^#$S4=PmQ+v*e?>CAnPD@?+&Guw-Y}7`xAXs(#!!cS{2YwIcW8*E4?3Bg1;waJvi zj6KN;2{FAOL^ke#kE=a;TiQWOfMXbun|8F!Fh3U>7txb&Z^eYwmJmFatKn_{?;Ill6D>B2_* z_7Vs|75eHnM*ziHDOrFK;WJx8umpt8Xm~0*?jMaXV#PU&PI8q+&rWl|w5rAlUAx|I zYDioUuA!kdhu)N$g~bD>>Jkp%c=Xs+fXb74@XK!rkWU(@I~qF?{+-_)Crh{!=?ZH9 z%B4YMRoETMaV9vXoqu#bN+}+Nh?7589vAW-k-Ql;a6@ ze+0;f8EPdT|01h-N$*J>Lpw@`D3KbQB9&Q=!zF*0qeN&#N;_lGaW%&wk5MNX5RzSP z7DDE13E@&vHS8qV8o7f?wJ4;eFV<8d+&slQM$z23(!?CS;*O% z%6`be2Ivu42@+M~+wV}H3m;qbuk42J3Lo)8QSBkDEax!(Y7ps<1vvyQpxa_N~xW(>8`=S%ej0O0i01Fy*?=J?llT;`H_P;#`u0=Zp(K`r-@x z_ZVK)5o1dq{{G$57PP7}EAq})J8!;fBE3mKT)6lPH8>g!tRfg>J8vE}vCGZaImmeq^Iuk=KUQf!-jA$rYCiTIJwZXO z$5g*?DtH}Ba9Fsv#-@la5pZ}XB42XtFe&VxLhU;j;bxObaDh=4<>sbkl{&Pk%i4a- zRck(!oq!Neu7WE_xCnC-oEw;}5^m@PI z+$f=$>U9H4_wW7o%73!(__pA%%!<%}7(na^p^Fu$5g}CQo#VGah_f38ATZF&Y&jhT z;lr8GI~|KD|0;;?59kle@pUjCl_p$-0BU}28J!?2YMu_d2a)~QGoSj@4U#5wx;oS= zK%()eO&Hd=T*QO-&Lk9F_Nane@;48}!X6T`mE}OkIp~mONFuUpMMyRcLQoxZP7#70 zLp8Qn5`?lFT21c7lZk76ZAO5&rs-c^WKtO=PVAwD1TMj&J=j14;=L`HX$5I#zn{PWng&-y8} z51(Wu8iWGm($&WYAlTLav;PcyKtN7U#-n~e>$ityK`aLLZAOL%Ynwo&4c%FL?kxXa zl8m~S&=jUdSsf= z+@)#>8Se~my^S|eQ>WN*2e~emTY(SdAb^i3-_nz9SeZI85k(H!A4s6v$!C?e$_hQcM%Vj}%rq%UqM#Pp@6=#!{QZi`DU{1xWX2bg-V( zbDlqB&(vwkc+`i;yObanfZ)F7AW;^0HF{i}EWHD%Q}ssyjA=fiA!thNkfK3xg8ae< z-1o%x|6u;Zh7X3Xz(+R2>u`P<(-T+72f_kl11u$}igkFUF81X@H-o4T2=rPda#)&B zzt-dB94jLcWJwsNp06uMF&)n{VK`5}Daja{H6c*yUUor3hX^6Es*%N4O07*@yLzcz z=L2h9EO{g!?N{MorJmGvsuUroD&tXy6rlupP)D=v7+U~Igy@fe8Amf5K}1&<6d||| zE>sg~RChQ)pmV{qKYdg5hn;&h&-6J4QmG!L%5oNb3=Rf6z=xVHs`4F1U4RNb)W`9k zT+UUk5_w)zXd>YK7@WdRed`W3f(TDQQD0sw~S%7}`)zLNXv^*vBElupu6? zA*z#bN{uv$UG3|ZYF$@7uE1e#;G_5I7xmF0D*eoR54L*4k~d#u8rZQPxGgM^57h6Djs~BijA`47 z5BgU#65ge24?fD}(hy4IyP ze)L_vK{;9f*B)H1Aw^i~e!s4mU|2HLeC;Nz2dAm@rfYCX38} zgg9SxWy{un%(A?l%2&ycdGaxX@eD|RVEPqta00M;7mn`mz&kqkQ5)iQ-ROcHsy_5< zQ8n^+&=Q$GbtLLB=p-8Q41y5MKBWzj6^Tr#-?dZf95#WBAt!y4kd82CnQ#>yCNb1B z2f7Q}mHp_xdTk_qEQ3+=FJB@cry=7}e?04xGhdk??=cNYYCVKuG__vVFl@*;dq0>K zq~Zi0bgXe=;A0S?)|wCI3uaW)H=Pzy>e$XXIDD>aeSpKMdF0dF>^XM|Lgbl6>Ih?(50ln(xIYM%*15VC^Rg_yBILgJO?vK=9eUazVot6!>4Iz~N_ zTZnQjj-Nl+I<6BR0){L9aqZej=~z@8(%e8F>-5WVD@5M?>Uo{^Sd{vptMk??&#-qb zECV&wV&iFDUNjvG!+r$WNRhGRW3G_LU>&*K)Sk8SP4MC4?%I9T7$s^$OKs5~ zi((7D-o;|FJ5zw$kny4OocdMwn5y6xH( zNW-2^41H1qf3RFlGKci9xE;gc!%BXzMRghFR|Q^dv>(lAujO>O@YtG~e)TF#@v3W3 zrXcD*bdd}=hvPxTa+LZIXq;rDG8^0bB=>m zfk1ARqrVj)QB=Q=dO|<_$f>?^Ha?neDdTPlAJ?uwDp|mhvT_qj`+s(tGamLKUuHoJ zAl8Y(RI1j7uyM$sVa7KM`o=k~Ty%zRtmOAKHy(Lip*g8E~fh+ zex>+$SrS#CvlJ52l|j{bhx9l#>kwe8*LLGb@8HrMVmtFRegq$r0lI9 zx{W+xa(Y!Nwg{5*OMAzeX6d)?h3UW~Qw3NPX?Gc1D#V$dJHA@Gs6<|Dfd zK8m>DG#_4{;$yR#a<$Kz`91QVlh_lb@W)$04xP_it3J$4IFm=Gq-F1bYlcu6l=@f~ z%CbBlgg`Sog)g0i%pT2$*vUfvX4=PC7FVlHek8?LdavC` z*Om9EalCf^-!rFLc-V)0-#IYVJ!O7eyuD#;i|yH}a*@aI;lX=dA90Le(lehIwk<|0eg)X#iT}S}rTya*ML&9xqD&v>=G2Kio4%Q%AgdUB11f>av3FaIY8E z1fPanoTFMpCZZ_G03W~DupIAmR}EytOzQc0mMXG*H=aiNqZPw(2T%mHe{h74xJBB6 z$owji=vCc~ewg~uH}!h2Mtzu@{OSQ0OF-hElL*+}UTOye7m@Dsu9ng1sO3{ja?Yyi zgk@PP0eD#`0X^TQ8EEh6i(zQBALUvgggV4TcmKb(t1K_swRW#+6#JovfSlHhM;(CF zjJU8>C8jP*=R-`&kVPjTg0Wx&8US{^NeB^gLzZq1qVn^jNHmo1dk>(AW_Y5?kOnf^e62 zRP$kHKZ>l21t0v))E_w&z6y4Rq`g)~ikfZ?GoI&#%8WaqSq%liIaGZ(nG>@F;p=bG z-F{$BuP%j@WMZ}YWFSOu2!t$GNQmf=mgMZb-MFtp{`Qc6*faF~_uASSyt+6NTD(O* z)Q@s-_W`BJ&JPZ|u!4qHM_d&a}U!}{~z z-^VpY#YsC+|4GL}p2KFHFm4%(hPuFqZ&>WdoSpqBD?a9&_*DX_G?pjE)_3rA>*WUS zZVsLod=D^~@(}4p7bog)^&!uXbgy_5g7h7%lx#lSGpeSPT8l-v=wv7%gy=A}9U!yH z%Nib{#JC)e#?FoUIy}w@{lK|%0hFI1m<2*^eDsrbnveQVZA;v9`(hKJgT~|Zo&WoP z-+SQ1d8*Zh5V95vd;NzkyB&Q$#PuJrFTZ#LKJpwgm17fYftr`{!%x;WWki)+&hBmw zzNrB*y5c}Lx&Tq5KFnmSBk<5xL;a0L)u=Dy)fk8U5_HHoehj{JE+>S{Wf_Q@nX?k= z)FEk~cX%j(5P4_{nxAG@odBYO!C(-fczI(-9cnBP)5s?3Q zh(d9Fs642ZLzB%{7Y+;iwZl zyE|()P!5guNW02Z(pcnucf$=U8b?RZg~yL+KSZp%?M6-8EmMW3JmX;j$R8f=?HNEQ zMd}4)HysM&-!|Z`IKfZ_D%U}7uVrbHt$&4??K!sR%_p0hk}Hony#3rb(;qLL*c6d4 zlG|Lu0*Lm64u1L{%#!d{qehOF>Beo-vR`^o7%_XvuZIpRmxpj%y)Tf?Eh`%$vx@kP z$7bZ>Dojv-<@_L|ONN9SKzywE9TPr|F|z6PfRrA5_sps3@u)+i|HJ)MRe8^P-0XoE z;W10#cX#MsxU(Thdw~zXpL|%^4=LYWZfRPcnTH2oOyXJYafb(gQ8+Z9gn%wal$4z# z)eQz(gW%Cz@LGN7EQw2fm|V({fnNDljat>XaB^e<%8SyoO%|O51L?%FvLPzm&{Rf? zq3tjrm`jE?*qFKL-f~B9Fr{M6&Q7>*wpsNZijY&E@vs2oN%gq~#4SaRzZQBehJ>Me zOcwa)K=3J;-nQjqKA$BY?CQp)1%;bi^>~8*joh?UN0yh`wi+Hf=oEu_h? zo8Kwgp>~8df9=Rr0AE0$zo8x{UyG|WtU6WkF|uL za8c0B7w!KFx!U&(K+Axx2BRgf_n#9YqW zI_O^VS_*0h$GL8<5p?2SNkEMv-2k}9-60?ZDRu9VBBTsL@)@p*ww!cAUC+|qpo)=? z4d_TOPSDe}Zm&NY42Ub^aoRmB0K#?(RXm~fEuH#Osg55ycNeZ>x3S;M{|S+g;h`0l zCtC8+q{fM zH-yv%d5M`j6{3e(OI5vIG)*sSCltPbtW7#m!FTf|qt!g8-4g&eWdd{20dAss^S6B5mtR z9PaK8OourV)GvIn|6`lwyOw-3HC4)L`0h+Oxt!lhc>RNc$k-;!OI%&$ie^_9M3RJr z#93cZRnHI3?3GLjpYOX|w8J)p)F=?`*zK9obn^G&i5wFHAoBD;@uS4iMDR-;}F;``JS^R8>tL@Bgp; zV($Czp8M|icVZ=zoh(X|u_Lv9?05dX=iYPAEuGx2l<(JS?W@8@`x5{p(*C0|SDpTf;>UbvV%&55!!3`RID9nwr!K#u zX24O>ert34%0;_7%P|ICQs8GdV(|wRcPvB__9L-*;d{VCk%=&rtjOoHhf3HuLBl|< ziA;%PS@Z+wIBD-LwbUp5!4z56Tx^UH;wIHgCD$5xm+!*IHhJ6aOF?#sB?zkHv2XzS zkHc5$xFj~_+#dH=8?`?=(|tqzkj+iPhtrq59?U7fq64&h)0KM06NiuUCT;Qa_&7jeWww z3&n)arv6K7J{%fA2xVE1Gu?NkGnhP^mw!;xeCqlilgaRWICkTMYim>|J~3@0X`r!E zvgKx=4P6jGC{A#2W6W>p(Om0uCFPWr?}O-PU?3uAWKdy$)hvStQ+3}b@$1{(MkhOj zko9tB|D2|U=NFyeK^>unYk_2rS&hag@!p*$X+9%>fOstGY%$rs)!OkTEh{!Csx;JDFE>gpVk|j;&4h8Ni@2E z1jHqJjy#DA<_=kcRv4fv!b6w{nvuHkC|wm9*D~(^kww(Dol*=bJ5SP6hY(l2?KhXR zENiY9lJ!Hfo)XQ1)Eb@k9O>0uE#50!vdjhGI^L{_W$I9l;$=kM_881OZPs0NMGa*Q*9D!m%N!~;> zhR_6JcVj(vY<>jyoibi9ki2w7byYYSOQA2eY=LS@N91%;ZR|JCiH10p0EH0O=J}9X zRxO(aS+8|EALLN-@vl4k>lcfR4ge(b$v`TGHx`M5zvF(;tVrR8)ZJcj1bwdh)ytRY zG?P5hjenf?j`tg`{jsw{@?B&6Agva_be{hZ5ut8hnzkPIO8T4R3y-T7sT?MvQy z_@Cb_Fg}oC9U7_XBS&X*GJ4WW z*({+vJG06g(J-zd5#iwu?b0jv`Ya{$-&c&ovUojb19W+cB~VOb(RS&sii=57C!To_ zT1Hb$S=P}?y-K^To2}*6#Nop|mWR*hMaZd(A=Cp|Z@fDKw6Bg1?fJmr)NZd1|NYCm z3yzPwUwDA@T4jxK4|>KCcg^DAJ@?L;CB_wWLY@&q?q|i`#=D6``_l}hN5&;Un|2eg2f%gT3BCea*E8kCG@t zwbrN+DG42U#t{m;cw&nOtV8wuh>i1hr0*^B3aHXpc8+L(Ng^k+>db87+1vDlN?G0u zXql8*{BR=QIeEz7FZb)j)4QGdliZJZNfbG7*sQkj!!Q4`*Z{fl`!Bywc-k(t1PyrF zf?ygcjix@TP(ka%`sofJjVA<LPt(%B59XL=}4 zDx_Rs94N(JINmI=bq_T^f{unz^!GLjfk*~uv8xi)#Xj9rt9giq98t%#>JUQOUU`tn z_xZCq5kkh+)q1J>{`BbMJQ|Q%nOFof(b*3_{c*to^7$`^36cgrL+BAe)tcq}CN^+M zk3J}PM;;)};S~UR$^GR4P2*CBaM=hyb4U?eDR znPMX;la2-=!26^o=z`!oGqD@O*C_Mi$^un)d?hAf!7a+NsFt-W5rkSkKhGIMo=pY^ zZXZgw{ek`Qc_EXNs$Oi@^fCb$77nYcA3`e1JyN%){Kt5RfUe)*=2t=ClLWgkI1hNJ7h9}YPm?d+WZRQ5vY zX!!SBAy%|;ZY0ZC4G?8L6w4Ua44zz`!nZyf4H=C z-gEdE56*W7$EOrOYE-`JMr}@VJUN(Yl7M6@>;`d3Vrrqo;+G-X$b7m*GcfnRaHZT` zJEU-$WhE(7?~n_dp_1j{7e#(W8*L9c^$1y7p3e>37kIoSZ^(y84$rV+8 zk|!=V86U&unCe#zqUVpdN@vDc@g-611}VDckEyjj+Gv2_aB~+#7jkV94*Hb?Q?b?G z$wO0C=*WBsrrx;Mii$t-o@7$sbBHTshI_4O;MVf~105s_5 zE4v^+&y{f3KQ$;Y8*AG@$o;*n(mNdz*Bahjy4tmuob4yH7GdMoPU+2j!jU-$IyxTy z;bv&~|N0tca`^qi1B5J1Y=Wt6EiN2Cb{{$g!}oiQ02U5K6J0IH}_0@Nn&q zdHx4VTHA;_5!?OA=&NiItV+ zBjW8j0ODeYWxDBpzkb%=&amn6@bJrp2Z*tJ^waE5mMfy0;FAQNu@3c5rpj~3c@qba z^@CmH_~ddHMx^m=2LX%Rm9$GsO{RaZA3JNFXfKGh#G&})!xBg!gOo=ur$B$w_x zPr{&+6;&=$tgCE)qzdN0qc;?KkFD^IFxLooN6gOKDD7@-m%Z~l4ZTeIW9o^{gOFz) zAa}M-qEBMgpo53scOrh1Jf}(5y5Io0;Q)erC`OEu*uVxM00c(~xj%R3qB+(f5J2jk z^TD_fL4c2AYM;0IrxVB2M}tA{xVKlWuI@ZOnYAO<8RDq9z|TigZ5sp=&|X(@ao;)o z71i{Ie+9V26~=KPfLLifVqi-QtcAeG39edHZazA<+ubeCL;kHrW0T}EN%pD^AY-*5#i%tt-ea_57Rc%#FL|z`eTi04E8Cp z5SFK`;r0K?zH>Z1PXIgwM!He>Uh`_J^<9=H(s3IG7y&uhXM;HjjEw0X5kjgCA%45( z^9fBD76zya4nX_mO6685`hVjiGQRKXAt=+niDB9lj2s8tXM1Q8mCy6%}?RMWdRkvfFXmi#H*NS z$mTZn#A_seCr{GxWK2WG9wG0{vxuM(K&p4Tb0FY-3-zK*YZc?FQZ)^f0owm*GgzDG zaKYugH@+l*zzbcIRG)Ln`N?Q73n%Dn4<0#n#EB#>F} z*9vxms{lawohFe!k|EK_gVnmT%cAiRLWl>*QmZg^sR7deZ}N?6v_EotEu>a61P^8! zo<%{4m&T|M#wKfo{Pc%wfLLB29+Gx{kg#NoX}Rx%AhmJ_jB|gZXGMw;WVPlRg`=@H z@sRj2+TA5mK7Q`#<)oe_Cxix(18|$r!Y8MqF zNVR_J&c`X*QM58KcJhi`#{VN==go`cj4$@4iw=;xSp<>7scg%zK6OEA0pWxdS{hql zFHiiti?brK2x0S9wNhE%8w>;>I=|W-X854;RdY!7t3k9@US)G?C?96Jqu`IIbV34W zNI{Qv^eA>T&@e1+BP=kJ3r`&GG}fP_rHKHdnc>QD)dE}8gsIO;i*Q{Gsdt9d2ANK& zjI}&nUfwNECQCQ9`MO$JJ?VTTKq5%35P4zViiiuo1g3cn5PJOKr|+c>9;UUCL~(CK z4A^w_N95!FPt1xGNP73rhh`DHlK9p{I%q+X&<0$ZavjN@L4?c=;sMutdSdVD_CDTy-w-OI)m( zwUZ-CJ}Z=c9uPvj=wv|K=CCTd$k7M;WMTU7sPn!gs{IZ-2gf_CNJ%*IW?Ykh(+MhA zVsgO+_1`TxK)&=O9a4j^(GLs+E5Zjcc2#M@bW&{(efgiqugUpf}79aG-C;rJu^6!cUAp~5yoV+*DYMWUYiiIW_3 z<&*ebNUVHh1xZKgfRi-$(kMAOTDiSW>E{9MXmbE@6^iAXyZAX3sXy54&SR)p zNUbcCR+5?~)&jT2Jp~}r-^rxg*8stlVYOyWNZ6Y1qdOAKI)ThacMYt zha2mDZKJZe)BP}p-bT#|y(?Uym2HlwU?IgyE&JMJ0QuuWm$Cl%ivtJ_Qk<$8Rz#0b zPNk=a1dZb#u-n1(p^hRFL5PD8K+1a)_8kR2j)%*w-toxcW7L{9kDDDbPh5R)VxyT9 zlT-DHDd+n}cS2-PO3kBN#X(H*nB#rLmSDj+t_To4FUZ#=Dp(0vBB|F9G#W_$y4qCi zedrM~Ak|50G|D!@FP~r54xyje>&nLZ=4Sk19S_6N*u`MP+cXxaC?x?33hZL+9~43E zE;t8~v&DNdcoY?@EmN_~iD%(n%jrfUXp*#Kc0t0}-E=8d?O@-H3TpZ8aB12<9lKxr zz~O`F2l0>16Jz519zl_#bDT)6I`(?hmP@g*Wi1vevc*J65=kv8d586A?wyENIQ<6h z@FI1|;EWiodnzeHNWv{ldM8-{?a*4f>be`CT59!sljja0Q;iUjbkewOedGSl)(2Fr zV$VGMbqH&kS((pw-xHl%_T%D0KK|aC9~U};-1yC}*^YF0O(`2_zi-y_L=BEiw}u8;7^%B+Ed zARxnq1{{R&)HCc!Ui5ycd9{8geJSxnAZi6}Lec>&RR##ldYJB80*L8u{W%-Lt-WYY zm(EF+MF?5a2vNg?ubn^f=Fyuu(E+Vh24IswsA-|Q6J>-b#{3Qp-2Rx&{rKA(iwuz8 z{(5M^KqP(0p0V*?i#Wr(M``~o89PO4&vcz?mEz{v42qqB-pM@ZaNY75 zgEbbd0e-*AfC3TE`hSbzQ5G>Zq6qTE-313oqzaJAG0Ht+cVA2~l&+Ptl3w9hhU1L= zZA{Y7wr|sRq{fTZbTWDQlHGld&nbTN+;#(sAG;YoZa;jy+09fCMgv6Z@^E`ppA2Y* zyxPh?#UE$v>nH$33f32G;fgcqs+E|%3o!)OWCH^IjRYJ-jaUJexR$Uj*R;=$R^7KY<~QwMFz-S z0*HxY@gmobQ5Xh72SBPkTpz;Z9ughN@AFioQ!1~Q>$TVI)_6<+@%Y%iIc>V-QDfpC zRO!viyN|XUJ~A?CREj0(fKXhdS2*BWg{3`Fd2=l)?yV+fA|&jWEASO z2`QHQKU5XGP3P zx!!1$?;X%OwU^HvK3pwx*->^{e(shJ4)$srRhq6nYrnO)f)~)`GRk*4-!(=G%u*cm{(xUnN7kcr>}tsLhh7_vHky>I^H24+X#j;uMTu1? z^NJf6^Bil#|FT4snfuG=>}Y#^jpPQ6CMla+trqn}mToRN(aFna5$bg;&w0Puq3u(*j!w?Z%<}&ln2=6=xGl+; z6p}1Qwy45NebKep)kw52R(>@Oj(Q#*B5c9Cu+s{4yBM%S;)GQ`B16GYm;XM%>TSWJ z*sVsOA5y*3r0B8atmJmjcc;7KF{yLVC2Tfa4eL?q&HFnZoJ4X=5PoLjoLmy{R_n3D z*9kT*W&pY7AV$``NGg-MCr{AfJ`RbWRmPw0RcemTVsoFQM-)S1x3icY2Ls2^sYv6* zt3N->(yOIu(>bA4R*y=Fv?lZGaIoIMA4;}o%VLP^0p-qg|_aT*J_9pX>K}=gYf2n!<$Z7zrAXd~x_#t`*j>R-0 zJ%Ne|K^rGXcSPW>g~5ke)TlXp)CeFn6E_->_y76O?bClcr8MHn>$>2>K`?vLLs=+< z9=GM)=$63%VY&NeQH3SY(nlSyljxx7yD*bWDY{m4>le!Fu$qxbw$7h2=p_)tgsg|rg=3kPLW%M~h8MtR)Q-7$1U5EspKPj)m5@5hD z7f-MUWJ4MUA>LeCWd5&%=@`dU>j7<{^DTECd5~(u;kwp?)&<6;kfG#31D?;n^3=0 z8$tk>se+VrLJ&V-s|{RoYY9BwM9I<4YQ4H%sT>Tb4|48|9GV$Ih`41!#WIE3?MFvZ z9v;e>gsFJU`ZfQFVWtL!637zB&uk>Cf0d>oAF`8j=*rR@VP3!C85WwQY@@= z4s|TyFhxFrPEF8a6_c#+YW>t@UgYb-cjQX6nFLyNMcY#U%AgvvGirw%Iscb>eXmdT z?=j1=mYbyU9i1K!1zFkoQy0MlQB*2&S`Rj(E8w8Tyb(V~JYfE*L}7n7-ego2YZ#Z>g{c64_W|C zAfheYgN6w?HUI*Wt{t#!P}hoUZ=O$pr01k67is$C<5KxXA$W!G9epK!-y zHmEmY_Rvxc@w&xI?FHRJ2qBYECd)eQk4H}$)JS%7X7)xDv~^7y;%*O_(G;sqFQdk#2E|R1T{jHI>qJ5Nx&*T0Ayhwzxl~=5J&-;0{huL4-n%I zCK3Ywl~zLGE4{cf%(ce>Ak8T+9HalHjWv&t$OL0h4G_;G!X#Hn-o#-Sa}4S*ND?6v zAM8&r5Rjw-*Lb@Dn!jI+YSG0yKiyv0&WKb zJwTieuRV%M+c(nHKRmqR_kz4ocKriw+ z-<7?12f*-~_A!B;EzNN;>%riuyo|%iD)_9-yWlhF&a^@1%{YWu-w#0ePyP2<$);M+ z;@693j9<4bA&3YdMAFyYJ+Zaq!^c0b(TwT#R>=p3Tq6(3LXLx=#+FZu5+h$FI1K*o zC<%^V2&1`ynn^Ei0fz3)lb(8Hy6WUeSakk}%*{Tl#$;-Ko_aK<>Zr0J-_5LAS{5t!`>K z&&?$|{y)t@WFZbJW^5#zcn~0e0YMidW(J7n25LIIxCtZ-w+7HM4ef^mx0vLHCutQ;(2o zlTxg;l|OyE6}4w*$i`5PvgA7O5r19q+eIYQEKdGyAvw%<`VFp*BFMG7yDrV*X!F++ zitR;$8gu52po~z@^BTsxcSN+~ww?iGz1-+5-`uFwYSr?|58NIkfGClml?yUmIH9&X_NHTbJR|&?|NiNw@Gvj=?IlamTKclxtM->l{db#n6%sa}}^7aph zhIdD$x*N|BW#*$eh!A7^Vuc53+6fk-lRm%(zzKn=xCumopwL__787iO-ht;ofGeU0 zH}Aq8-Mlo?7L6n5!IK=X%+{laZbe&TZ{V1Et4RR4{op$vLDbq7(dybTeH$JA z9&N<*PI zmx#rkQiS%2V8#h9J~&2&Y*pXxCv=lv=AYasTAYxi70J#jLsgycgDXaUZ$E($BRrFvm z7?Y{u#>%5_ADu*REv9gSa^ED_nT75K&wg->2)`XP3Ukd-?baIzI!-|J)Ag2Hy=y!y zQZ8oVI4X*%Dl-H0NU#psGwQbvAo8eJ%H1xQfd?QGD4XaWy5=DKY6g|07fNi%aVNET zy;HE)!R|n2JcaZ|ScaCm;3;z!MYU6cab%-?ymaz|7;N(rmSURc(jz8W*377s_1&Wt z0!Y2q+1uZL(QuAGuFC6HMExIoSFj`3bsZJUMr=5+e?XGKEChHF|9}H{s9s5-Phq65>-VC-?mdvI}Ijsxv!bt5fVvnj9MJ z2JApGV< zd;1EaW(Bh{x*r0u0)!;}yKlbe_)uwKl2mGeM-DNc%m88L77(W5!toMOpBfE2)^nVy*zjkGmb=^Y=jUJV-@H9OR_98XAiQ;}EGrR~yPVUpovXdjPq7rEi-SZS!sa(#aBWDT|0zjy2M&KDP#*Eh-> zQEzODXQ58bRA}TRC1Wg_soHV_!%#aQZhw0M$kO_bY}xyxR*V4Q@*IymFg_wN^`U>l zlV*8yX!Cye%^g0-Y$=DR!*DI?F$WPJhC4z`+Zzs$&NZTer~C#()EI_+hr=lPJSdze zBu>&nFL>j}1DA=`V-8XP<4#O&{Mj_WcGuvt?uO@XXGpkzLz7k%lGu)p5 zxxC5&Jl~JwjFzw{Ew6{%o};xBgueOHAhMV&aT($h=CB z$C0O~$^^3K9i!Pk`atW~x+p*W_TB^J?!2YM(DtBvB|gG~fa26*6L#p!ebr{Hu~_@0 zjy3(NJW&Ks)wlaT@Or%Fwv2$+Eykok#IROt6wz1W2f85joAt3F0JPI;>vIv62^nhB zt!fuc!4U+IzR$%xh_c+=uFc*D-+ceggY&CLxkDa;F-W&f#4-b9<2)LPfzt zA4Z2EWBI%MQup)tH+? zNq2ED2(vdM6Nl}277}gK3-eUB-p3kBtSn=|ojXL>1&Uf#m<>hNoRxKCxV3Cxx;gmT z+Cg4F21rOnHboCrsR(rK=t*M{A8xK!7szMdfBWF->QULzJ5GTO64^_$xh1c>ds`MU zFe?dhY&(pM_WgDL%a`{YAYXQXuqbl>vb~w}rzuajqOc(H1aBHfoPEB(ew4rlh)KUy zyp0Q3FNq}B9U*2hqUuN+zI_ZwKnTd<5y*rl;o~G^wowt5exnYHvlpV=<{E<@%c@G= zL53;+SplRMNd>#>tINk<|79H$zAj6sSR=4IxfeW)Gy3bDCGET?pW4#Rg6~HnR)BnR z&yTNueC06*WFlFen)_*Qmtr(*QupRcC<0)Kb-mbwGp$Devrl-N5}ZV$)wdrVA&9|O zA#sepN((W82u>$F*9xZO%GpwToRwua+Ou+-z0@r8T*LXtw#9HRS%*-dQ07u_g<&&pZ7cb5Z7Qe<03RF7K>e5IN2@a-5}OCh4v*<6)U!y4c*_E;nbF&#sq9&>n?u%>FEk$A3&_EZSit7|HaS_^ciht^%DfV z8hwa2kIt3_zWBI$>k;PS@S;bypPG{+B(u8bL-z=mp*Y{DwAotK?@F%YSf4p7YiRU3 zuaIJ^czYp-19O|#Vt@J^!~FAEISb0nxKs9CUL4$nS!FR}UO*y`BUEv`Mcy@Vb4pMa zsDRd)fN~RW_qpyTfIz1lDRHf6;uOc9q+Pj{q?j0X`_WAhdwDz905;QXz-8_}JQGEx zg328s?yC^zfO|#Ej#LTW=J1-8Tp9=RHfLq|sBq*J>dEmLd400q?RZcq28OCvOK+m- z(X!TMd42JGRVwx|p|Y#wb{GE|GOv8>sh^8Eci4g*#8XN%l$-k1y$8szeu!Nb`0k46 zpRFNIftjc#k|A<5efsj`?&qs0C0Hv#e@b~vCZRjIj5Q+V2$`cn#W_5t$PKO7tgpWJ z&>enWmN?7stSo)q*2_@9;zlx+G@7EbIP@jZ)!)S_3bi%r(Rv3Y%F-S^e|EMkC9>Pd z#U|u-M~jS%r` zi8^42-QRzC?*a0wcdwSsd59nj#fJe3RCQ?y(}{` zZ|+40I37(zeRnFczI^-M+F0~p_O!n$83d+Y57&1xu59eYkNY~t)+VPK0|yDT@Ogm( zerC6~3LSka8pDup#b(qrXQ}O(vxmg>Se9NpN!`Uz?tXHUwzyQjOj2GZSOr;v)1Rzi zE^x6aUkleNmSu|-4@^5vI5M2etlG;;?^}-+5_=B53PA5gTk5-C+8QOeb~k#V%ozoN4d?3RN^3n4QaST&1W1wj2j-iI>X>;H_fPn9EP)i*+b%b zEF{>P@KfJ|-Ut$&=w`N>J%vH2hyd42ed6m`oK1;KAW9&&1jUM&hJw@hbpF`D=!`7! z(T}qJDq!!)Qr?~b^2r~6cond8aG5TvYmqW@7Mn0%kV0L*@T&nl78V+F83!T!_+6hv zuqvPB9RAn=-%6+uf3=VY4nrlEdq@<(XfxIM zT}CO3|8(l8a$MZTyd5(KQOttP3*ee1xxM)W4lHLF1hF!CF%(=4(0M$)$Hav;%n}&*Xn%2ydB3J1Zt{UdzsH6x3|~&6kM>0 z>g*<}ug~=7Drs3(xtTYE z;usf~cyoGges|_%+Bf^Hd2j!#D%iB_e)`k?3UUI-E>t^v$bVKlCFKek!Ww)!Fb%85 zc96UsE-?3>6qCUGhvOt=9@zP4(AkZzi^)-i>seNQs>~<3+$e1TX4o5G>qGr#%fzk* zMK8(_L+Z~W=l#gSdONra_nkMnaA(dj(*}~-qv~Jl^d;V}UEUKw-oDx) ztIevZMVcdTG^I6f$XM` zD|zN(qr_ZdQTRWUb~c46wtk;KYsDp>C0K-J5WY}}#gcV&-a8A!W*W{!wVvY0+~$SX z!LU{c{`#$T^M*i}z$cb+YGUn!P2Ro?BbOCCOOR^ABLpYM5ib023hZl_HG>Da&wP~=47}m# zYAv>py*Tp|%AscZD`jSpgAi)YkVJrhChDUgyMnbG$bW3$3X#1B8Sgbh{usKu#R}u!gPX;5}z6a{xl4%WV{$ z1Q^0GicQE2qK+^}gGELlWSYB5J_hauyfr(&77pEtd74f=>?P*6MU>(M}7@OD9A=yH1 z%gxJw-`k~5$GYiufu9mbnp-ESlAWus4yWT7CLgGyOJS1`LT-}u!D5{rVO+1HT7PN` z6lwLulnMs*QE>`Bmt@X>ijOui5qx))D4$rXm)$8@L)V3*0xP4;02#a+RF!oWV&eE_ z(;KGqlGpL8Y8trPQVepY^TT3OeK%X|-v4P2kkj$@B^DQAGs_kw!=Nx!{=BKm@z$YL z|3xJh@81tdj>1hz>eA~GbhON-f{#pq{01dP%PTj$6X{x4#!ubijcLtNRN#0sTl0p& zQKF9#-#nE`J`u+4TB2?-_|;B*r{&36&@2(<{Tswks`ENe6z&Bfe@}%~V{Qm*HMVQb zkh$Fc%r5U~1;Vaby}mJy!DtI9dvg54InsP%%AKkFo&DlqLM83Hg6 zMI%LdVXE`GS%64MzwwNSX{6}F#^K`uv3vRRiGuX_(VeRC&MVqcZml9f-GHm8>00LI z;i1(!gwae#0XMXVG)c1Ua)Wyu%4P-phzW3gRCShs^tL9*7Wnw=1j$7)%~A%c9)Jng zeMdj5K74{OkozcZ%#xI*jc$x#9S2OUm~$a(kW9>Yg^2QEmh|)dBj0Bn^gi^v%2Oy zD6FXjVlVJ~;$0m)zEf~ELCMNoW`ImWMXs{;qOmO}fbjV8*DrhXf>LZU4rEsCs~aP# zWBRkq?L*o-y)$3cOd=6&ZQ3-eq^ejV;={5mx3^`9$i^-cYi^m58pIN$+D$=vOhu8c zc#IJ8edgZgWp;2IlBf=k$_kzn5e$0X#`};j9Ss$;PC=yfr&~aSGTXg0vg|~??okP+ zC?PMgW?{U=FUdwc0pyfyvaRE2uZdu|EWVHcV?vQoIW|Z3Kn@b>|XspK38-ppPxH$|C@1eX*+id8M zngMw_m?|gnW9K=1EvQl3l+H3nS<9bZCk>dCEwg!m_wp0p+aLBS(FTZ(_qG_nw#2E4 z#p9oUq@{xb^IrASq3&a;G6j(;+XSAEdpIQAW<8D^KFd+lJskEqx-4%VJ$ik1cUPk2_5suF@^;BYtx-NzURpatPauC0aOJ>2zg?Hko6egcW6kA|cjI2r?7`w9<&o9=@w9EbR;_B*r z#mk#FXDd?Hqm^>twGkN+iDf-vJy5|iEHeX#{Z5Hi10}ofJ6ogkLZin24#EVLcV z^5Z|YCf13imz^xEHKiXiA%n+x&LSQcNh8yIa#c!>7^XHc)#{Pfrmi>R?P~1ddX&He)Mu)kr zKR}<-Hmi3$Ye;4J2ZrK+F4r{82snWZ97XN{BQ9UhU);TCkF zlyU4C+V~=U40T_{q93mUd3~tNZm+M)0B1m$zy8P-FtOXCX8&JAcGN_7bfeX5<-ojv(gu@5RzWFnk{Dpm#g7i3CCx1F!5e93*pWw?C`%Q zfbjVA*M~)HHq@|n1nLFR#%fu;JS8~X+73YoX}iqzXVB*G%I6;FX~T!z+2y(l`TOtx zx*qGQ!@t}efB53F2M<2`!{<*Qe7+tlYWByICr?)FJbto5We<$AM_2o6%YDgp=SBr^86*@I`t@kXze%lH+k8m2Meb#% zsb)z~r^?Jv%kFRg{a=48%Yr&iD}$P2#xafMST0{Z#L$BchS(*WdBJ z?|q-6NMFWr9Ml2LVL&;u8)%L~4i|Ii3J&O#ORc4{DV8-m;LD@s)aqwj06OLgOc)%@ zmOgBLmOWsTHfpH5jAI;NLEIdWfB{>mZz}c-D90|bcgKk;HMJ>(3TbwN6a{^BCWu^1 zVoFIvn}5UR;Q03Xom=Wcv*IvjRGPWet|>(DP`qXnMGnUA&iDALL1mf7b_u2=s7(hz9rG+$6SBs=@(l& zsZ1`5V&STyzJ^1GL*P@UO+JrHg>*K3GX>mCrO|MpgO0Yc4D9T%#5p{~0lI)NkTKM@ zF#JDeZ0?8CY6d zTE2VtaFwvkJ+!rl0BL6!$l$>UK=9yTr@$n_stgV^?xCI$NFZvpj3{n08bNjCHIw=M zW|IWm5t}Kn_vqdFljp@^@x}J%w~ks6WMU5!;n)y%pjbH(ZOq+7KC2YrD^E%*1Owk6 z^#Ay8mJ@59cKhBq1t(^U&Djk*WhS$9|C2xyT%I5=pXwOSbR;DbY2m!S&{PCCtlLmkZ+^v_A)WTv6`=Mo*7^V1YMBkRk1pQd ze)4=o2wrSH`J{i*oR+-dnTa41w$IFdVupUY+-mZyuE-^x$(Axhw&2Avoi=C@CRZi z53>Z6Nu@BskWGO}1+XXKj{|O`QfZ^55pL)P`V`VIXl}xuVG#p+W@-7+qt&IA)t%Ly zt=~RC2GFV6fux&h<&?Adj@R$iM+^_Gxc%f;$1!;f#)=$( zDN|?Xv)d{YU(voU`RuF(Vp}5U8PFnag3R#|5yX_uj43r!2}EnAbM&LLo9&~@<2A5gUn$IA6!Y}4D+eU<0PDUzWtDg%hs~ze^4YO%f!MUdhXH5AxAS#$dnIIlEUJ3NJewNgGK_&w7$T3|SRp1e zWTwJ~*vgX)R((w4jcgT5dxX%MgTtqfpRPgy%GbNz#|De%)nLTb&=(en9pI0iF=G}N zz@`N{C!#Qgcm#cLA?OB*Vyzm<9M8i7M6HEcs}6ks{rBi!lKg?$LyFuP(86h}MFZ2S zkj;}nZR!ljaIad1k%L*YcKj*i&PocOwWYP?*K2Ec=>x1CzIkmbqQGBvbZ@ghvQYoO z&CUDA2}OWQy-%=}&wfpgM=}{(&(2yPwk4u#Pz?tAf1Kx|Tll*lWI7S%{L+eybnR#~ z*#*Y*HuS(WHkl#z@{=Z$EE9`>C7DUZwB$!7w}|lWU?*aWi}AbgHmO$7k1k1 z&|4(Fc+j^(zw5h0obrV#NC09iYW`3IV-^<|&v7t7E@l%R4ZxXEwK^JkRh+oK>v!#tu8*3fU|V1qVkC zzzqi`PGRTGYqLva)V#d?>;E1}cxdidn|H7(0%sY=l@X{H65e{rb+e29TqV<$#spz0 zGRA%lf12Cq7XJC8KH1|F6Am&STQ$PRvQ!yHv>DY%5J6iVBIsJ=nk2d4jATPM>ZO}k zQ6y$19kuiyKmIHQziq1+EG7i$hTXlry=4Flv^B$)#+Z`{E5@ufHvVcufsgeU0VGTNA(ocJ!_W2i&A)PaLM zXaPGXoyGxW4d#uaNI?PYV682;^QJ#A@o9s>{U_T)iyVwb5!U+scW{rX-+nTYu68EE zwV@-jY@A5;`U@@Mq^?PGHWy@$U;O=ktP_0X8i+*@6Ax1Qt#GC}x`4qAM=li6^bvre#}HLR-N>Fz;_blYv;!@KXdyJg4}@Fg6cf4mUj zZjb5H^I)|oEC%2Z0n}vaEGfb+-+Q;Pa2QchRJJcf@QQ6{nZ$XM98zH zjg4Hs*zx#nXBk1_z{Pv&v&abi9srrqAraz%8I=k|3`YG==%Kyd9$l^I9s`i{d*w3o zr_tEk>vqDh+wGND=8VYLVbb8FT7@nLK+*C`e$OwtZYcmjBt5WM#F|^R%1#9|TzT*y zlPyf4`9V2g8mFy0_x`{FWdGG!4ZM)3f3>;(Nh|92=^fUVouR?3^&#uJjLnv;B4+OT zX5@M^{%OVpnd5JM&^sTRy?1r$)YbG*^|G6ph|A)u_I7S^FRG~*3^bG(;QXu%Ry0w- zm{SeQFQ8_e4*!Y)! z=xY_r1XkOn#Z2lbAj_+XxGX$kuY`yy>eHGW?B=yIz!U0;Z<(;s zcfADyGXylA*X{X@IW-6K(|NMHl61h~U!|+5+j?3BIbZ2Xao6Q`UG-QQDeK6$N(gUZEIXDRe0*nJ5 zXqf{|gG}p1i!h$x5BsqQ-?1M{Ss8&#uXRbi?<`(ewJH%aN<@%e88T$A(g4ckN|^>s zNE>4c@jp@os`Lc9Kp3Jc8Ar6&N*jJSE1$iY4D>IAhBd;Yd$)$(0ldul*ZXI}OlMoE zQr>m9Z@rF4nwx4_##d$2gPX`^=a3fl{D&=&F_VXJ8vW0eQ1?0h9Rx8uR0$O;`2kIl z0I{Eylrq{9xwQ6OiiPu-z(f+ktkjIN*e(;MZIUquEuQu%cPd4}y7jmG|9*P=;8%hz zj(52MWI5;cM8<;l?=J8KC4rO>B1&BavxoTugB%Xz0H#5y2d_X0q~SL| z>=G~Nq(@W%K#(#}Aud5nGwdm!C;X`AjTbAkMEsCN9Gc_X_g>Tv()rfwtkW7zv0G7E z;BM*p<}cM>V!F*6_x$g#w8%_x{6!1IIEB?XK8=5x6XXj1>Bm0*n8HmcS6yY98TLa7 zpOvauc%4r^67`fs7C4466Gz^QX0~86md)fM<^*+kvN8zBDz>{7Z7$#iWTS!GZn;cX z`C=(3H(@G9>C>|6vGMVLvhm&TKf)=w2>;C#5hOL_!XD#L2@U-NpzbKX} z3gz9>_U7woOwxvad6VHma`-xe*wg647Km6@Wbr+2&R0RM!C%u#h~@J`lRqO)HAK}3 z^9Q)zC$Fz-;*E``i^ad{qbvL1noT%$jXrX04x%Ki*E#URJ=Qst&SQbih_W;&RA1r7 zP){|mOtMEJr!?eM5Z2dVHV}0fTCVU~d;(=~D=7pS!)_~==z%rFWL=~kvUTHoxZf*z z-Y9V@cqhlXgdYz05l4~OXD539?#}w}YWYGgwUTxQ%#L!o^!%G|o@<8e?iQciIo3vt zwm|r=Ah#m5njyht!heYmSs=0!3!OLPYeU`V(I!7ohUs)A7EP9oks0M?KP#G8WeKh+ zBsq;mwKEWHBi*hV&KYss#vBFR&4T&y;4DM2?g!2*@18A!UR2rev#*Ts>JrB3VIj`=cH#qOq3_o(K4-elrIRPi( z$7%no_5Z5nb2n1UDQE4aQqn5LZ~j*h%a^plql#v)(pv-P)DQyk0k^hxa#DFO*W^&$D=9+Nx$^|YWmHxIQ z^YG$*6RROxD#Pq^iG|(q9}IP$i;$1{mv%(d*e-EzZ;7mf z-t20A(kE}%>Nadk_U?FZR$0tGxTcv3NoK8OJf;Qpr;o50f(3P0AwQcSOp4hn+`&sF zA7RUznznF28KzAK%9K&8(2`&jKF3)|PGm5NmA5tw^sF+^bI`8_#1H(&0XMf-MPW}4Sy>)?_R!f#DpX=Ov&pEf~&aL{@_y7BDEX`z>C(0Vgjmua1 z_ltfxVV`A9u@L&Yb10`_X}<{V!|CO+Cpo{r{w9()B4DxH$cZLIr>rHR19Hl&1-kih zg(8+X{dA^WgIdeJo0Aw;FaZ))mojQgac@~nz0lKp=Qg+Sh5fydz(J0jIt1ttR5vYc znSa*WE3^rcllm3qEI=ANZ3HaDD0VlkbZT2pIv)_l`>6f$#GP2Y=~7cXwgi9(6zAq= zXFk56bQc;(+s1Cm#y|U->25W-kif*DeM0z|hVa8XF%?NxAXVD_P1TyC-*6DfSajKy z8-Y6!JyhnXgYW|(sDd96t+_JOLT!}*VUMODK*YMsqR;Bw&uyp5divwdo6!jQJ(I;s zh+O1Y{FoWQ@^~z-3W(>$(w7jvt51_zGGFcXUmhEO+R!kt+}J&^yf8No9F8x~OfOpn zLCvw7nz!oVM$kS1b2uRv?o2r#j#338>XGmvip@<$r5s7*D<0oW76>VnE- z_|*@1F#=Uzf2)$S3t**)MFripzTkeFAMIOvzp-peT(6|xLQ0ui6&CU$&~=C9xSU2H zq?hou6Ca6KDz#YI6jW*m`CuSpcbb8ZMc|_;*7@-6wHxa*v-8S8L<9NJ;Amd-`hA<(v;ky|F2%Eb7TM;FTMQMTOWMzme9*Dee2k5_kD(rkWKS`_RkCSov>Zj9UTQHChmm$Daq|Jv3yHm2g>D^MaW8=Mfxqxw=XaO zAK)JoPdxz$lBD7TD^{~&4|M1d#ohIeKN-J|H20O5WVy#re~cLZm25VRjP^Ne;(hOt z?S!H~VdU)84XbG)_~*vTg?kfn>|3Kdk_i|7_*gx|<0Sy&gLgmw{AY$f$LoK-3#b4l z$eQ}YZJUiwfUqZqEQo-__F-?Ig`}c3Z z-4ttl4e8O1uQfC_cE5%i9dCc}_wT;@!OJg;9g7^mCQvzvQD%?f>ux^^idbT64|SmV{D)kmFCK& zz^w-27g1@n{lgDCV*}}d=BA98c{Ayc)|Rrf^O^aq(L%0W|9;1#;#Yp4{hh#o-}$g6 z!u}x~5!#2WGvBbV|Mgq-$~#_u_wz5_j>UTtT0_kf(yKT?GVsOE-u>X$&rL&UI_!)h z&1g?r-fc}?K5#1O{NRH{8}?P9anpIYLnYlUL!hg+my-y0GRqZqc2?jn>@g)A@CAIK z={llWo;`zmJdRx3L^m|>Vy;l2h-Gbq#l8NH_T}_IQ+7TUo4>T}HDqS8>80gt7WkN1 zekdlakFK07mdvxL%)SW}T?%O;1e1(#Z$iR~-A@3J`}G-zb?jRoeDCLPBh1H;W=LC- zxzr;}bZ5R;-Zt6+Lq0%0iy_nUzGrLdR*S{LJkX^=e*Lw|X3$^mwgcl|FvIPgu5yF~ zElNYS9SB(iNG?p?d%X2xvyi)Yx3-==gM$z?h2-frEf#W%_)oB5n6}GEv9#WH>e75> zVBpI%n8-?V_ey#un_14zWR~Y=vUjc<6K@ByZFeiR4;oDPRKuD`FwdsC_OZ(jTv9jU z*L4|(1$g|dsT<{K1R9{TB%LQcAxHuDw+$Cy(4fCZ7EH^#%}DoMfbe4rcB#O@*F1!v za_E#%b`8o5S7bg3D|qCj`P$CnU`qVyy>l<9kVOUL=H`=!a~o2;!AmxF7l4hNV7%yS zGPC9<=l1(MQZu&(2C~^E5wMyDmebkHN@jL``BHXf0sfV1*FU_{FQwxuwGX`xtK9p+ z{vm`^b?rmf%HgARR@9xk#|MB1(1E%$(UeSjJ@Ew;kYmeWr;n0l*HoZ|_N&HX`N1v~ zzOOd+FoQ1_;%9GHjuJy4cgx}3;s+^!b_&aqT$oJe$6ibpLVP@d1H`0Ad5K0*KP=_s zKiZ0;0DZpo@+AOdb~+ntT81V9Tx6G*=V!q{zRbX@1U0=6^0z0vl1>A@9!~*mZ1zR1EddM*4ZDaG8RiARcUXh z4L59LB$o-u%FJU|QBD9VCM-)kiz8|9!``Qlw_Zd&oeq$R+kG0H*w6&s!=WO33i~Da z&_7%nXc(9WJZ5lCLpx7rve`?bg)BY(bo0hXS5EEfJ8UJaO0g;YRKwA2e7a%n!_8rr zwmH9ix!#oXw?2Oxt~JV53W+d4EK0h85I%m*8P{JaidWKt)vi-PtZ?v!)N~vx0pd8f z=tl`E>GZYOc4(@B7$u~zvtq(}d+$7cLA4MBn7{!te*0`v@X?g+EL2d=7CnN74ioR# z+)`)fz(8zZb|!u4)TvXc`82Sxl7Xhayfk)W{BqYLbnnq@PMatd@@<6lJ1T-4WjOJU z3Q(!gS1kOxZt7uCJOBGwGGS#a0Ye<;5XI%C(Wa*t@G%7Hh4aPiOmk)ra9c8Fm%)WD z+o#9e(M=d0K|e}BR;I5-lQaC$lcvV~yxxzifmo?2G^5n>_! zS7>%HI(~P2d~TsLmYq(YYCUtNwLLX|E4#8h13%$x_Rg>VbK|K?|LLbitM~@EqVk<_4Fr} z-r!(PdPw`=yY`E9rlKEv>w5z*;1U2l3nxj!xEt5A-7p7{u|j2eFmvLtaAq|U+t1LF zO>qhZn=o?D4u)v!JS;1-T&dM-${Gl1`%joOxJ< z;`+r=1X^83ILY`@>V(0^@i*HpPG@Jb^T5cL3wM9~-TqQheXN#+uqLmLsv+#028J?^ zs{Rl>V*maRsG`@0c=hvvxapZBJi`&CJVX#7W~T8=A1&a|hpw*(+FnYpp|J2pfhV~b4{W(kpq5)9D*af3_)Be%U&S5A;) zz=xNhZY~2ydBxR|rE9v2H3dTj%vqZ!SK}Y&4-mkBM zif;iQUNXob^ke}NH=q$E_(-`CKGUM?M@YjJJBj#I-F^E` zow-Un2Q6ka3{b#wX}h7t_wcap2oc%gkOy;6CVM}K_k9=?&67-Gp8KPo(|7BZa`KjHG-v2$&CTj__L)N$qLYt;)eM8U&GwN+Koi~9?8rJ}#|y$sD) z${}dS!aPa-5tl2Sn5$&>f^?hmm3ufn&b6(kLICUR1f?q>{ef&8*RJuGJ)~q-T_j*g z3u~d|3Sr83Hh2kfhP+@h7BZwB&vgqvG9xRwLIk0IbpN^cPhDuaaH16u8ErW(0+yAr zI;Q3`X<;D$t!q73^fhLIoz#7spd8W8fcxR0>AHOS6(xd%fz*?V{?fZCG~l(ShD+`w|HOkFjxT6woe{AK{1>%&VW)$IMTo9 zR|QC}Gv?tJ;0{c^HGO}7-xAid@rgTqXph^Nj>d;jZWIjU!gnrQxNzcB`vt}v-u}uc)vU2=`vg;83j>7v;h{B`s(Ma*WJ-Nq4=Oqp^i-qeAFftT{e!Yr z$Ug#r7*~kz*2B_F4;7Et-^jLhb`8D0>L7k)Rsw^&DeqDr@mUUngB(VMH(9IxJKa|vZgPt-z8)siQsa`%#O&LuK()U=3FltH8iAC48MvXqk@2ioM=@C z2mx|I0P^M2>p%W(>)uyofT%Aj7>nz`Bc#uTo+`6C!=4lEOISw?6AbBA7x|eYjJ0+w;N}HPL}7dbzDVcnb3_ z-5-(kYGL$T$Eg!7E#GMs2Z&28?LS`5+_^S(4kli;=^AT$iP}Y2z&galOS7i3 z$u|GDek81KQ2`MQ&=Xh|vB*PojR3LtdCdY4GH)AeMa_b3*lhV^^@ON$h)Y?ih?HZa zosbM%R^Xl61KqsUffXsFtfZO{w76kg&aSO#<+kxHZ6ReVxUCAwl~i%tx{0#4+6F}D zxWqLkN~{Ox5ElhQK{8-cRt1ni0eLVd?vF$9Q7oVzNZ0!pTU$;LALJlye=_k8`~P#a5Qi|`7Eny_Ql{_|2UN>tg&FAqQq ziKCDC?Wa#~-?=k4_n&U#@-|*`zojv0c)m6^F}Aig_iPSZ22g7lSdy#FH7UvdKxk9R zOjgb6eyM~AIsZ?gQ=K<5_0uw*TuFVKA?lN{rKj!Yd?Bl zOU2>Env}r+_EK0_iqJmXjF7PBM0E5zVjwTW!t0S~$dPea_8?&3^&&#lbS;`Hg$`?&Q1s`p}^!pU=xUjeh2GdGF~RfzcS+Ib%G)KagpPE{9J( zEt8pYvif)xV`3Zt0|_Go$I>T5(3DZ?SD0fJln4RJ&K{0 zQ-@NZLh5$)AVm%pmP4Ks>6BVWD*6Y*-3eC#iSwG!&}%0;%jGPI-i7;tv?qPI8na_X zAhrPW6)TE_=f3I=6`d!DH0Cfk`3U;)hH}!`3$btzEw03qk_na!k|!^{@Dg&4$H79A z=vf}`#@+A)fpEau**K_ADSsM(0X=>CF(5Pd@!Z-cpL`<7K)>fP`8NS9eI);|_tD3| z*>?Wkow>2OJ9qB&;rg`5SBKz(l-n3R-_iPJnA-ko;@XFXfq?AOqz2+Vsfa4OVeNyX zsuSH*Y^08*jRA zi^|E7PAEFIm{#THBgmf$=cMDTHLDN)jxBZqA@Rm;?=1d-pd?CDA1pPam2SqFFN!{O;Y{JV1-P*6e%hCZ*i7pw?K!#nVI0Icr5c=>;$DRnqL zC?oct0mG;U5NURx3Yz|y*h=}~G7O=}s<8GE7=D!+yit5Z`JcDo)|R?&j(Z**Ab-FF_f$AY#cmvQLHH#em1kU*)w z*X7F{{Sp%=M3p?OQB>=Y9-)131T+x2=Q(V=br6O{4ZSJh(X7iVCKxzV@u1&>cbIGC zDPB@6y|yGJttG6nYooKMVrYb~D(|wScLmGD5g<2q^~!()e1pP$OQA z4W=C4YclDLu&CSgX za%Xcls99F=hvMCFT**z1vMgu(j}9CGAEaWKduYIW*WgJ1Mv2{oHQYU{QBXW}M}+p_ zg349UwO$M~kZ;vZ3|6Y!OIppsDi=wD!DS-!gDANPxJh&(e$FmkVZAY_caQ<4g;J?>TCdHbY^7zEl4A3<4Dn4={e2{}&IkjCx zCc5%vil?{?Jf*PJDq8ypXOQTpAhFVQ(DHy9$S<12#OqQxA3aI8I$tsfprkqr)z9H( z16Gz|5MF>IH4&#umg@}EL_;d+6c;!mKTJP&lX2?y+j~BFEe#x@dbMRrym_@1s&7jHrt^U9yU2O_o;R*5O-L$Y!3&HZiLYB(LN1?@mvpv+c@p{Jt95NY1 z!~zu}G=Yc_Y?yS`dAUVaaXD|0k(Lz$kTPY=vL(Sx%8)?`DBaW$i#0;FiZ#d~CQuw1 zIvPN7xeX#BvAVhT#0>nIAo8w`d*~^dv`w{xS5vlBlVBgK(Hb1h6S(T6SUJ z`~!(8>z&@r^vulc?9A-Umor~}`Q_x~^q07possFSnW?E;w{SgkYi9b(nW@QPB)CqO zX=+kvYH|vM+3+x~CMSmtO%A_@9i2_eIg@zD10`YgQi2g6J$Mv=jmYzT_w>$dYC8T}z*)}a~*({GVkOw9^T!2|%3oy}&mGfI;~lQZ@j z%lOtKVK1vI+3De-DL~24^z6*k(C{=arf1||b_$!A$=(!>lY`hKO$}#y1R!T=O$Ic3 zGUOn&D(4PBu6Ero6y@7X0n0wGqZoQ^$?vG)_^5CYmsYVZ3RW|XFr7^3cioCtYL`;e zZdjyp6AgKnlUc}0hYAs@-I%){2YVXs**0y={?KlQXx>E@rcna;u%*x;2GOobVD7 zfZ$fymN7jEcauCaVP49bVg5S`K=N-MNXJ{Rwr_v+6&{HCi1_S;4s{h0K2d{)7Ww4v z-`_74p8uw9Y`n+b9gcY(6Qn3HDO_YqxX}C?Px96ZVGJz9sm<%FZ^Cx!u%2}?^a>qA zGpYnC*6L#JWQ3KfhAa&frHLF_13}1!0}!0Ocf8EhG=B1(FSYG^4qh@eRf zs!m}AE+a+hD{Dk7(LrWZuo5g~XRJUr3u$ahE^vc+=kTPQv8nHLQVRG#KQOeCtC4|( zsI6n&rkK%WPRrln;fnG)Kt-?ML)#1YpBL|c{Z<`02{Z3_y)5&iXX+tDiSBZZ_AI5i zUU?=t-QT6Sq*)s3@L;N~D`3gNmXM>DUA-k%Lt!8yF>!zf^z9G+v!q9%n{bC;)@LsZfCt^5FqW8A9_n3-a9}?Ct zVm%(e=!8LKT$XnaMVnNiC4|h2q)T3>=H4>o#D<7yB`jHU+qtmZ4;hGR93=}2cKHak zw2#n4p68ATkXJf~n>2gU>*;>uKetQgk$m05u?JBp zQxtWN0Fm9jy;1?G=yedLNC_)_)~mGal1H#iLo#`L^>#c-Fvu!(6W(uGNXchYHEZ&< z5pkY&L3|%nZ`GN zhMKnM4v?v4)W(&)B{R`avZ~Sp4+0l8V#y5fu>u&Fh!UWI1t2X1kX~?*kwXD;`Y;{6 zV{|uXY~%D-Fi@1EdQQ53xT%-C$adBi22wu&`T2k_5Orj*L|kPgZ&CoVmQTh59D~;i z6Abl*Fs9e`CoH$+v};!0b$lOKAz#6SkdV3ci0~tg)D?J1PKnJ|_Jx2LP5XBZAD-9r zyNX!HQ5LIzuLywf2gi2|A`v<197k~$n!B_^bZ&2nK9IU7)qrn``=uvuz>$n4KDYX0 zJnxae*gYD0Nr~>I`$gOLwp^9Ty3zNz=Bq61_&!+oPY7UO28nG49d@FJOJTBF^-&PA zGTeyY1;s}&di*$K`joX(*>C-n8nJMB%gknEX0{DL%0QA$1D7)I0hlb%gtE#(_?VUA zO<@jFtCHT{@u>9N$kt8pgI+{LHO|MOR>D4(M z53%5&JQlL_ddbeE?GjaV4V<&NA6&x)OZ^zVgAH(G?lXgg9$edcEigg?MB&H;CA}e$ zO!Rb*wqK}fHa#;kDJlpEKl`FRs69*EAPNbCfviYUm{Ar3KyWKa?i9!3q|w)LmvWbM zg9nRQrI3|uN*xZ6;|Ft)j<&oJSZVaoAD=^1bdHd}Bs@^3%v$7g_v<4Hi>bD8FG)VY zkaxYJh}ApxU~B8aSa&ki0)g4JK# zq(~5{i5y8oXUC~@ObSJx>+NlkU%K?98nNtG-P(55xNE-b0vw?s!2r<&G^lAy!7()W z-VlsfI1kHWx=}?eml6#u7gw{4#aQ?C(pSElm5+;n269m8YMc&Fn$lmPQgPuo^;C}c ztzX0vE-TYC_Zs_TWpX~Tf0 zwOB)MAnJTT-t#N8$KcsyQr_q{-<@v?!r9b?mdTRIl?nu1H zhKx{9a^kIoWDbCs@@W(KB&(VbP?)*gClMDGVs#JochFl~u8d{N#j^etlhfU-5PnFE z!iv^JeE2|WAeecZdV1ezM+2H@7Bc%=5KK>-lL7?h+ANMVRM}`mUC3g}Elg#Tlc{u! zx?Y)*XQ`wgM8z{w>nAGR)`Yt6k}nHF!fooJ8?Z$d9(9Klfk3~5fBd(9P)GFE_r5rr zpoA3?vGl7iA?>%H+`KD&^x#mZuA*lWqsJ4cm+q@sP_0&$?c0xoa&5x<&=yq zJjh!P(nOAC;-!@rX5NN(x=*$NAd&ROJhTo9OM14mX%VsX3R|)#vG8VKDQo8Dh+Q>) z>HhS5EaXM%^+llBW?A7$p@h4w#t{^- z$n_7&UTKsaQ{UTgO2hq$O?5w}J+HWv6Z|mfCeKhD0qVM8dIHQ~w(P3F;t;W)>Yikc#~$ zs+y#ax1ZlG7}1KFo>ML&sEKl-r1uC1 zc{7??22}CJi?LX8ppq`mbQ6nZ;Ueppl|!+z6|q>@!xUDmvm~4GpNuW<6^=sr*47Y0 z6d)S~6BphGVhpwb8sW6Sq00#*<#oM3mDEW3l9gShH}!QMv1V)Z3{nOKahIyqo*aY&MgQR>?W1$n|mx(%ePE{ z{~I@+JXk9xL7@P7*EfO^K=2mIgQXMDY9zF@XmurKi(o;+;@y%oCE4dE8KH@2tD~AZ z$Vfxa$@6Uo`lmCqmSz+K0t)3P_8TuG01;-x(71Lg$R%&qOcxF zON^V>wJQuvy{l{Yl1YyUaZSSHJ6;@m`mQBq>#C8kMy~+D?W(SVL7+{f*^lyl5G>4- zswoyL_IgK`w84z7q>~coxv^8>0w)`bH9L(^cnc2Mot$LWxkmHOFcxb@{qLA!E(=i7 zlOfM)?9%p5F@H2>s42+v9U2+tyDWAptT# z&o0$-A;xC)&8@2as@xYz+=Y+l?)6Do4&ENBcG8>ZQ&X>2_uKdRV`RJLsUepQ5{wbp z&0n{Jh4&*g5qn={lK>ua;W+^^HPCjx_4t8l-bQz@iG!kpm-Tb4`cqck5o$77wrt5i z8;YfIDZ|u3G#_!Gn~#jo7*?#@5dpHZQ`qS5XM7C(gzFV;AgI+bW4~h1;ly!Jhjixc z)K^PerrWyt3FHRkDI#A9K5krho8E(oJXpJv@AHzbJWZwD>gn(nmNTL>+1B49K&+z3 z-@JXg3Bw(c2#c^LV(;54h5-_|MURDL@n*NZoyJaFDTBQ%&(?_)#^i6nBm!W0{+F3jJ1fVmjgZbw}ISwYmQ`Bcy7T zs~|uk6?9fb_F=(V`kFx|brb6@0AY#hPkb8eb?4dv^t5Ek(qI>Enny(p?yA5G^Tl&9c^o(S2_pJbNSpFFT+kO*3`5Dgu<-lAj`EF;Q)}1mP!tSf(>rm z!M=@uwnp^`L$3pdLrlDe)fac~f6Yoi^#c%Cc|EGzcm)e?+|K)8Hop7L!KEj6%nXMZ!#wrAU(~lqNT^pH)q21W0=TAQ#$O zx7B(D@@br9=wd{$$?j2m6#CD7Xy{9I#XwlKI##Kk6CmIVeffK1t6(74g8A^Md~@@`1A&NRCnhCLNLJBj0G$B|&Av7OzU0Pa;m$zyE15+N4PV)>C5o4le18}C z$3gIDX;ryNq$R1@U}n>5jsgdfnQU1rR=M((WSxU$uu7Js7wV=8VPA#-0!qX#aK$6`D8xrqEEX5)N<(MChLKpWh)9*y7@&Ng&ENjJ zH8=;K+z8?W3qSnHXFvJdPuA{&Zf-phE`qc;X)vY$BYBHJ2veg}L1!0R3lrVae&~T_ z!!+ea3>yGhy9TmTSU*oaH-b*4rl;pgQ#6I`eJh9w)?H*)(W=3=VWZB69rwbTxBY{E zrVFH=(g{-ymA!C8vVyAJXFTUy;}4(x>9e~bfNZS^jpN$*MG&7gXIt>`PuaNl6~w&@ zX+)Kq`>a9l>{X~WY65|XoK+kAtt1Dj={NYof$(T)G0i>D1ws4iG!1BPo%BGg$xpVPr9Q-}8`6i2MT^cQTGQ%?Z-MXHgXmteya!3sTD9|{1TJ^NFkU)=~R>DTUp zbb{H<&DFK1C|ykDd`HKbgXOC? zVxR_TZHrcI&5iN1-LaT7OKXgKaWrF#qy4S+-^8>bCau`yAHbyTLIhl<%Sc0myzjN{ zq`4Dsa`}ht!ji02#5#2~2#}VJM}?wc(Jb(~zt3cYgOhF#?NNv$Dq;N@i@DcTu=_94 zud(=y2iDPd@All<+UDlXhkr_Pph1M-A0;mh@?AxuNW%U2nV(J^P}lI?x{4Z5Vn9?1 zCP9TD5>_vFbG75+^10TkQL%QkoM~y$j<@Dl!$fPEhPXJ%j4@O~vLlqh3%za=LLPXq zS&=={Ia>Y<-|6Q6D?moJYY37lv|nuv2IhCI?^uA8JDcNzMV1aO+i+NqLJ?x`|M@>t zL$5CpD?^s=<>wxopsR^zAVG#DA|aB5iEOQI-j0W(D6A!`#6||}0OGU%En^bHnF?Hq zD)$p+AcuOfVZr2dC4EgfQGdfb?A6`^#eURH<`me-Cy#k~+ z|M=5S5q0(CrUeJ-#?6DkL7s9GOeAmnO|ia~v1HlaAhs0_JAnAU)j`;-GnAk#3?$x*HCLT#j5WCtEk}{_3H~SEOf$ zfrAj)+MLKISYOLhQo?$D2DJ;z=Z9D>wX|d&lc4AbIj60$=D5IemVU!Hqyn0_PHhLx9LZd58ieUlRum z0p!iL_6__%_>7Tuni(8coAu9Ld-M8rLgZOM2cfYy zyaW&8Po8>#EJLqv$sj~OEWrT#95D4(MXYd(wSXoP-YwSZA>26MbwTuvpd;b@Des+x zCuF6>a^veb`)WBO?sjfu1Oon97!X6UPGAI*l(`5iRxKQ)|J->h>9q5i}uC-vC5X&!L6J^S2)&b5J4_A8xHpOgzLzm`pTQXz|7mfBM-! zz$3yh0xelK{nj?2rwz+3T!wXKDuhQwdbqk7)qD*9m^(u)#< z_0qAr1xQoE_35hJ^7QSwaY$NQPsX3kZ9cgX1_)LpxiA#vyY<&U{mD;1_5xa|7ncNe zfq`3fx3q7fv{)k3#4|>Q?=ttp8Gh{omJb7O^}=f%uk-&lp>4rHvjayjH%Z~9rg82o z9AvEwwRnX&E77o03ny&9S|yXd%>bnMe3#7+tj9dc$a{$PK@9{h^sngwsYie?0hDaS z6H)8-+{3xseewKwRe)T-`Q*Wat?QLs1XZ*C>9e1H_SYLW892u$>E<4HlRk)HP@54cMC{WoIK5@J2 zHLv7r2$Si!S|v=TRRE%Ty6_JXuE=wv+=QW>@bHmE_?NWs)~SdU$}3lh^u^;|-`rL; z8!s@k`RS*t*rUHtwe+>W{p=^7{f|DVxi09?ghR3meX;0wfcsL`{+w-o|U}^*t6{Buv*~(iMVL_&TV(3MJ&TpZ@e8 zPJ7A9);fvgg2eS!s@ftUmm9ZO*B1Aq74_di1KH_k3{%hsboKn}Jsv$1R4oEe#^n@_ zu~zRO2wXlysPL{Tg)XquSBo3uAb^M^OY{y_LXNJ@8`=qv-4X<>`n2#8AnC?nJ~}}H zbtDgfMA&q1Y=NEtBBq#wESZW9|Mb~UKJE*O=g2NxTF_WJ2CB0rmPQW=`P`2-_5Kbf z-t{PaoawsS-dx#+PNga;+9X{OCPCoDc^h#POdv?wyJQl0>0+S<+URnvyu^6F-7Z4B zDwTgyFd}O69;khA6!(|@;@{Mzi;w`(XkHn?lnzW#ke2|dnpFsdY{G3~XY#uF$tU@q zuwx*x2sOm_E8Ttjw#K`yytEhHfw0<6jRMxI#7DSt=hdqxxt+0-9MD61_TrnSPe}Iq^f1kBW7`tm5tPwm% z2w0TWngFu1-VvEW*mnM0TW^m6h?1V;7_J%-w?F)>{bE>(-fCEk5=AtSp7pl!y|iz! zlqHbYR|^N}=yEv-S;%Pld6f8&nYZbV%F?b;L*9y3AgqH`uk`Zgv2e|vxb_e4ZM+l8 zN2e7F!WFp3gU1sSk5?ajx(Nb8Hj$*hnNNm(faRDtyR=j)mOmac4y%c1^eM+7A@94j z`aoXU=xUF^hcJ+i*EIsy6B195k~t?}-tz3;*`zf;*f3ucehCau6S;Bi+%Nl1PlMjm!H~4^biH)>tDW9-}pH8*5|Q+ zn~O2n-I=K$J-HDDkSCjuC+6mE-$RT%48FMUF7gT|);8Ck_R^D1e#DTIy`nYiTI&k= zNvUdixQLu|_3+k|LD^&hPKiHK*~nl3Mlwkjn+PR zmkBYcyCkV_;kchQ1Zu?+AF08?ixbzcshRhBP{6uA&3maX2}n1=x#;=Ev_4ykUxl>Oj?t2@h%J`;NqM{7Oo`R8Zx=Npe9W+jLG}D zdmCfT-Hi=#fTy<>B|YCIR^H=P0FviD+Kf%Zu}ojDKmskbkLV#~e*XM7b!_2fWyKf) z((4LXJx$V^_2Nf2u3fuk3y)fm;NsfNt)gTDNmm5mc6P2TFJHnG7ng)m zmsXb3sY{)Ui;JBrE6bo2L!B7Q*hen9(hvxzD@rCeoiv0D^^r+bcbEif!2ti`(0a zxDzWDHUcJ`1YW6;)FnBAMsQgsi!AvI^1lRF;IHA&=kb?o$p)#KFMRw$>mxpsoT*i* zax9C-1+);(!b3hBDCqxO#~u)J5CTNW$tL#(1`R?6hyLB=%O8ID;h0MwUcS_rNSyVa z0w2&oZkpmIYxnqm+IzTQ<+dM40JW5LG-cI=M6?3^dAw&q!!H(O$D&-D9IIB89NV5Gi*8}nm2f+xI>`4v2_a0sViKX}6zxbZ~dr$g` z4fOPQ`L$0U7zQFCSx=-X0@;P07=*!~tpBitD&aPFngs?zhFsND0%l&WVsi8Zke&Ya z3)T1sd(WKf&+QN(htbX}ui*8H{lY6$WF|y_;7kBj;OJFzJ`9V3neZUq+mQ`Ym4&oz z6iBAoiZ$xmIOu);AaNFD;6(`5f>ts41|Z)X=&o?;Q5W%gnoj`-f)S;m_t0<;(7?dr zm2}TLeNfOrPqg+TIz)Q}h}&<3nvK@$HU2{7ALWdNs;)q}C!7tU@e{?Pce7n*@12HyU_zkz_;z=5c8J-k~ z{PVm{3GB6*AvR-S*AM6#{_{W^DQ8t+RVp4`WbX+4-Uc%X&-Wi$y4fi{y4(dickWzA z`)L28jr_fQet!dJ3l4Azg5~!>v{)an&J10E(GLB@=3=ImRDSt%;Sy|9fcKi}X( zdlY^VqcR<+&ffR%=J?o$-|x5x)-j|=(IZY*QVl(QV*-#*jf5p(S?VDq7%Bue@)Iw< zgzPC>%nYQg-qkfs-a11h6d-IOtuEf$@DWW&1UYv(f8<1rjmzh|I@*NV(dMb6{c_uA z|7d?}dt3kdM*h)y|D$|f0HU%~&2+>jY>&=$v{Yw?1|XzT84P8Bl;OczSy0_W&O$RU zZ2#xFtAZ8X<@SqMMUeuYl4tK-7u{lfd;&`O=;iNUyf{1r&M`cE@%yKK{QucI57;)+ zCC^{JNtn&H#+q;*@FMm0dPz=Sc+oN`leEo|v6yf<-$}4Y0P^y38Xk>F!nL$`rskoa zE{w3eKrSJP;ULLK8+wp0ZqC^c5S%t4zpMKC|FMe{oBb)^A$6G|o74nL;!joos`{$_ z*?YNMy~}(wsR-haBP|wWB_3A-6=<8{*47hGiET!L#iDQ*7{83ky!w1Kwuh(_B#e-G zRSkTETKZ;Z|GpU?PANlpSc%2O1e-_ZF_~wW$5-t3Zuu@ivZfP>BM3n69dJyX8Z0=I%So&1Q8*w4< z%}T6ehcLh5=K|5RI9?&)@9v|mdodqkgU)5OBubzG%hs#I!g<;6WxuVBdUoHdH+?_` z<+5tds_zAsrJ!3UkOT^B=4Vh{53?_ST1zMV0xDZf({%_VGV%dL8(oNku_EH-s!oqK!h za`341AJT{LW8vD@Ki)XPEG%&W5KgmM>*l<>@0q-P zJ&v!A^O4}&m`|abio9%gBp@d`4Wgx83}d3DFLuN_F%A4JdVeFR}5vvfkeiXQOf6 zoLRsw5%l+BIyuw{rk{Ame551zNTxZ3<#;CghG9OGY=9F_8^P?3yE<)d`MWoFLm57Hb%=LW`C2t&@AuVn^L9Yd^(#C$YX`X zLsfTzsZaBKAdD>IWp>n|_~&9QMz$2bn-ys$aRxA3t(HRpDffInntqXRt=y{=3&LGs zOxj3I9fl3K>zkgZs~e*83dvtT+#(=!PrUXdPYo5w?pqOj@FBeUCC^aI+_;&shCvnh z;Oj-QfEo1}GQNOMu`M2(3j-2ou=|}Us}(W0LAnrBJ&-8Jgnd2E;j#aHS4m%gkJSF- z56AaN#VY-mUzSUchWEMRUqeA}MfgVo5Py=1W4HojN_+(eQp%)v&7!r=4GOTpM*svU;CleVk8mi=4}z_fAVdNZ z_KM@2crpvBo+bHjqMk0oDjmeCCra1pxybM+#K%|T1lE|*k*TcIAo{-G_NRncYlAKW z(&QC}YQ#yeHZrLe22{i(9lT0}Y|+&Br~G3REhQ)tLWB6T7P%q

gGYt`+4!xNdO6 zu!znXUKLDuONsY&>Q?idkJ#89OT9F=4C`TI+M!wUV15`siDLyCPN-2ARR zv95yn>(|uhnGbL4t8s_o@k6&S2U7rr5g>!rX)0Y+(K*6mK>ED{G?vI*7*u)yh$uyJ zIppw2S2;8y`ViGq4G5-T>BKJpIh+1~M87$|YbuQY=1mK7oPl5xbTGvRNNn48B8n0K z;uDf8oe2;}0&)YbWzi}fE@U_?jxK#qEYj+76`tbbkH$od$5=m0dv0Yzp)M3Qrg#t* z9jc06)_{;k&!W`?_Yw)bj**_aZ*hI=i6TUl(SxyOPjIw~pFp;oIuNgvj^=}g{gjO3 z{+pQu_)rfJ8-QU%li2iQ5c!;h(BO3T*$DL=;s1L^v*); z5DOA7`UD7yiu95pANE|d1DVgbhJd90<~$q-*pSzFVlygygYRHg>_CQ;JOiI$AmF`B zW-incV`(gmv(`HxMVot&J3R82;i(Q@@*goD$J1DU{|awzy*kE6AzOn32~+9nBuLrM zVO3j=0w&o21#wRgfo~G8E@(n@HWCeVzI;?svpxZWdiuj7gHXjW;$t>tR78gaVF#jJ z29W??for%51&sR4@DVR1*o7F@)C~Zc4Nc3XMpZg8S(pxkY?ZI^^odSCFY<`^*x&f- zsNLC zx-ZV<>JuP{q>oH`ZkdnSNJ5esQwKsj+x!|K#ZC$en>0E(48DeFmx2SNXqM=Ko&b=u z*9x6AAYj6)pD zc=(U1rI9@I;}5o=mUV@D32b$jDk9cS)K_WnZ%rlrBkLYUG7_|1|l0wgh~%!z%w0k5jCPzl1jPf z0!Sx4?fh5bcrpO>blnuHG>9+ip#7dcIbuHI6ChI#6~2B==AS@_yHbsav056CHT0Q` z5Bh=U(3if+N9YjcD3}f{B{eL{k8rl$bf1*76moztWM!ENAP$ZC4EV5h1zm%n)rPIf z;ivp^P+8}fjsAZI{HGSDcn~`y9F+*N2njL8l5>LyYn3q{AI9<3ltYEDT$6)Mv(4epULGr87!lQgVz^JLWWWcC z&aU~Sw)w;eASeQAP==p_c=x@Bt|#(^Uo4Eo+n|!}bgbl*FYC>;%$8|$(C$h1=;QTo zn0ylHKVlJb9nA-hry47e{XG;xpf$9I(0JI3{%82Ptp&R>xDfx9blQy^)nL+9Y)}8P za3tio3VEz`9uD8C+e6N35g+eQ)gN&~?~l>+*%3gv*&TpP5h198&|yN9(d8jq?IgrT zaG1E(+1{;9?oxcnKfGX8#Jj;T_(S2pSNqysyS|0LP4*+_E20Op~ z#PFc4yHqlu149UnZ07!+pX5!5Lm)xESAbyy6ogo|hDK+EQ%h$mfxv@&Uvhfr7?Qm9 zhzQ+sqE8d@_n7&J_8)OW?=M`==f*mxSc8kZ#PSia z{cD-q(yk!1SRH725uVdgN{s*8qwLTpOWf5Lha;8{%A*FJ?cY9#wOw=WN_F(jT!1xl+i9 zDjw!44vhF%9kgn>oP6iY3yDis0I1vH3&Ve26XGwze~daW<^!6J`f=@OKxT0?)wD8a zqwa_P+@RLMWCSV%3dH}Xh3jA^!w~7< zCReXX8O2@mF}M^EnY;Q!?{87bP;dFxK7{5T@KfQnGd6-$Pm$bow7}*=q3dCM=&9g>UCLL4=Z9KBqNFd0vb^E)*0h6=fG;F@d zH2|3gV}u{^mNL-?U6K~MvBHBav?s2AVt&3hwm_z{M?d*BRe00d)B>Xo&)CEMi?nT5O zx&a=oJ)lDP!}im_0OS-2Uf1*UX(@v~vqYE%!TEGHPVavFwUf**iABgSUcNQjY*L5< z1l9EZ3f6)EFH!RlVV8a)2LXu}0^hZ8ePey&$RAO|A8MqsIUsH)5m`nrnLCiZ6usjh zKoBbd5ZQ{TYKXuBH4+>uly#8Bl+h6_XTnRai&cw8eP-d{c@H%on?Lx;$@qvXA-{|z z2rza7Z3ZMVg;kS<4Ze*Xt<`?S53%_9_$ax8geg~`xxLx4J_ocs_ zD~x)OtN|cZ4M=_rld-;%Aue(odv-{ZCJXuAb=A7ah^Wq9<59PnWES|0*%iFUOCY}7rsb8PRr_Y`JjZaR_N1W)r zypS7NQJVuGQ4*wrJ`>3v%I!l-45(G#vu|b?7l%55w_?FNpVHBhKGy{@3H6U(jan7ty zc`;G)rhZX}>*PP;^2f=$O@2Yw3I!l#gF0c$Z&l1^hw@zAM$UtPyaJyv)HEGGCW0%D zva;0w?s=OVn-8JT&1~jTWIOL{(poZIYqM+3U7SsjX%v)SP{M*P839Zk9Z?`Q!-MC* z$@d`E2|S21*2WKM741T%^Y83$e*DQdzi=A=5ucj+3Sul+AzvS$lpd)=g1}r`gtr8$`&7n)!GtPL$c$M_}?FyLe$1a@!VfdDa^IiUwpjB~Enp zBFfUkf0!{V-3goL9sx)PTcu3;%u3F*t?`fVeeIiHIF0{^?eBm8!l(<$x&s3jvRds| ziaD|70A2&vxS{a`H`(frEh1Sw=EW()t;jK>Vbg4FBvZSO()0n2tPG%Hkp|@e$*Z%bc3%gHPuTUe)QFEes5eJJY}tL;hKJn zqf%JumrV#6G$7MQ0Ld0rJIR;<0NK%qhw)t3wfx4`CNjLnfH-?5Lbl{a%MVoqxk!M_ zB^ZXp@J;Vu`x3)O$H}mC4q?u(!Oy5iT}w~TntVOpI3ZYUYjW0pek%MMAK!Zrx0jr{ z6mnUgn$q2a^&S9;$Yj-v{LhclP;9u_(X?>^Y8|3PloA1nM2wf=UjO>Wra2(!#j*{i zjz$CGpG|t{!o`ahlU70sa=szq3x$E>QcxgFiBKSTa`FyV6o2;t)9|*HR5O(YkAty|Sc1mXsu>eRXed)r*mo8qIOW}mA1VpTwQXe+I z00ja-6jS=qr)oZZDY+ZLM~&AK)gOw#ic5b3Q;BZvh6DI`>mKp(6F>2}(-IO7kbC{w zbyE)_tvaX`3j_$g{h0&$C=}=!al%|&a6HFrG-{vK>vsT13%f< zPfW;e$zZcode>xvkbThyByC|PgMQy9xUvBOE*pFor2+vebOSRSV%aYxqgw5E)b7V_ zZGUDs3JZJ~9hLO%hcUmo{@V|p{|UA~6~EU{-Sa-$j#cZgngCKBthoL!|6-%Q{9dj8 zp6k|Jg2S!-*4oNSbuj4n2LrzE_j;{ntG#@;L6GEgve>T4kgpVS#WyxKypt6SqE))l z7|B5C%#?li-haw%VymUhr3(Z&l%NiOVDmMQyVI^OhjX12;=#m3bPQ-(( z+A|R#DDi|VblUFx+uuffuzl&2gv2ua$8@3>rF34xwr1i&`ZeAzm3M3PHnY&)S*a}F zJvgZS)^Dv0daYis*=)6X^a)~x@A~a-cX>BkU_T-Sy1v$k6c%P?Uf z*ofw)Q|v&HBF+rSwRoI2Mhq!Kn1h&`r2K#XNyyc98lwBDqd`PCjFvfNNk zdOR%fEVbf=Y-1AhT9-2eRx7m(tc0KxP_UwY5tT(yq}9`yEUh zHZV@{Muk^!A*YieaU$!vg+gAoV;vA61|e3t+WRa|?jWmxDzB-3XJt^S-`yo$!hcAi zG;05*UfD(6{BGJL zlJLa_8z{ihbHIQ);HUy&j%?IIShg%OAeW{W@*Ik=daL|9rp!*H_1W&9H+3MhVRL!+ z54V2%!LvHNI+F^C?Q<^{Mq(^?P%RtD^eP8g`MX_xiXDVhtL<*RSQr|Uk}uYl+ayYq zzUh+}xmzq~moeI$vY-HY^~&>K`uy`RJ~BPyWE+Utk{d1d84x>t>ANpkme|{=>mB+q ztsS(W*r=A+!Opac>TAOm7FzoAiJT(54exB5)#`V zejaUAuwuo)g`j7#em#G;T^-+rTOD+l$+=_;8UYH$NSHM0?PjY-h_Gz0ALMnXy*30` z49L|h{NsK8gsbq5M zz=)Yf)89Og#gDD+?f+)a8aj~FL~-+2xDRQkQz5Z^=~rbQt595~h}dvCR?96Mj1FV0 zvKyh<@9n$ATtS>vRF1?wsJEKED#zRXHmUj10E=zL2PAt%rC&ZzO2jiMgcyYEiw1+S z_L9_RGHYKVK+={{+Q=N$9dBxtkRE>4)w#4&xscd{{HYg2utOnH%@7byyi|&Be1@N{{0y_RTwEwf@O*2uw_AM{ zErZ^2QGVXvP%`6N;qs69KjPi=I5{05pMN7KvPlKEZ2|~Z zrPs5KimaPRLP)D;MgI7@YC0*_x3}4ekc7dx#J~y*@E|jFDZUle?l|bzO2+pUoWM>fMIS^#Kv>#zhMN}xgdaETvTGr}B$d5`w z%vZ{Jn_J{Qz(*WpotI31LBv>`xQ*&~7Z~*1VtdjdM0OF~8f*2@WEB+`YZP=3%4^Dp zj1rQY(f0C{XMX~OJo{kdu@l*BauPshX1sd4SDU0lc5Uj8oxAYem(ptgfquh_UFaCm z3jh+f4UsNtAVEA9)$UFWij9f}MBAEDBLAxsfynHe#})dMjo&_|&d;9ejqUl@3xbeB z!zho1qfgthu_Mzx-}2JMRW z(k@P3I5o-^H0vQ5V>?A@tho#UGTZ>dX8Q|ug0tv&?o*@J=KvhI7=ul>GqvtE0Fh2a zg;}%H5Si5zd8PXZT1#RVa=tEPK>%_+yVK*eqp1w3cl(n{@5ERYM{`Ha53`yB)}uV( zcaj6SmDhkkiA+yt-8TSaHo3Ita3hCXue6$jL9Ye)yMh+sE?SCbJZY!;1550HJ_Iq zy)6?ua4@7=`LtV=gveinE%G7bLW8FZ)s+sZ_PCNV!GYY$NkCLO>&f(a(lT2 zwdHQJMILgsB>|D<@>*%zvI5N=9Q!~MiQHF6kH@;O0vBSjj*bANIbo0tX|zFe``^!n z`;hSxh=bZkgvEXDC-26h)5>3Z@s+D1F&4L1nFU$Ywb<uL6c6G7!a`m#Ksj;ytwHZ zy#W$7)XDH*u7z<5;TmL_BdiG;4upi7HClb#MC~KW;-7hP0KmfqWG z_j&`)pm7bS-3Tjf(+=no7YeZfMCPb4j$t_69bz2QNzvyURNxbdh}`mw)7|csC;Q*E zL9e+S=0cJq0oEg&i!!jdo_-1s!Y)K6vhp<)(+vq}Zg=Tz7uM7`sB1!WD!Gu&6>3c? zx2PF(dFeo48W4#H)kMNFzRq4GA9Fvv+yx$GfBIcLw6*JICY8d`S|5aj#sR|`@StZb zlG##$z|U~6`!ofDvmpHmfFR%7Z?-!jeC*23k`L~Q-0t}YS+TJSDTtz7&0tN4V4%O< z3?*b$5prx(TcOxi;5T7I2qL@F@gP3#benzB9%OojL&XbI zG;hsk7!aAUN(8g3gOQ{GH~fl73EMWRgq*^PNMg16lf5rGPg-{-IgvM$P7qzK-!o7j zao_tH6Iow*O(bKBb%a=k1;ZW@LjE9(kZKL`Ln`%}3cmZzdR_psphf!I&wc**kM<{? z|F#FT7k8ovNlx<~oqzqmT7B*%UJF!kzwL&*5bQ}0YT|y4P@MFz7ez^3$aZCLCI)9v zs7#3PG{pb5n#U_5v%-Nq*)qo?E{2@Jg*>JmyCg2(nnuP5Plzi|>Q=t;0$0>14R~==`rwd;I}th9uSfZiooEzrUNg!GI`( z+|Xl3H8dKJVPBTkBDVG_NMS|TPO}$QbV9zj*K8lFh%9zQ-)>0bRh;TQUqF81E0;-~ z52ZrQFvJ2OBtx3L)lfpJD>a00!8~`DySxdlA64wYb!ab=;}ap1?U@I(Oyndn)*a4V zacET@`78H(weX`;H!_wiXuvVx6rrspy6$Vo(cDo5f-bBmKw8s>WR!V~W$(^dlcMeI zJAP&Go>}hd9CUiz_5SXwxxz5h>#ht=7-Vhxry9Z#(Mnw(v1Jj`Tjg|Xu^<&XAPEOV z#aWw2j$;PMzy4o6Uwf>M8v8CMw5|6BpSjhI>u6S#+Yl1kOJE6`rb9Qz`y=DnMMZ{K z5rg_v*INHQ=|Yl;UG!ZU<8k&>Z){)s%H^v}2mq;!)_0?~PBjr^h1g1cG~2sSY&TUY zq}M2*i+2GZz6U`XD-4m1!|8xPnzwuXD!s{$w^N3ybT;=U1EP0wB7vLWOAP_D;wN>7 z8YKY*0zgcbOU>-Jn^99_SU6RyAOw7H9C&CTKF(FA$13DkUI`l1vvvI7%uDLjgBV4K zY`k)tEd@xomK6>Jwh#^o;;aYjo3e+|ot>aP?kMlERt^hY8vCJnteYtzLG-B)B7yI* z*B06w1R?0skG7p&@}dEG*rhsp)ueB_E(OSU?LXZ3$Q+MzN%h9|XMf?H{6gSDcB)Ayr98mNba(L0Yve+T5kRG6fKLk#9&Xa&&174~ngttv(-uUklrE(yYydjgsD- z&#lZ2Qy>KEW`izk^lGf{}tIf=DuHp;R> z>0ai;byU}`x%h~6`Z>i|fA(kJxq9{L@D1EIZF(1B{WKp^rg^@=!%y=nk>2m#l_@N! zklZU*UigVl)zSH=3pZ&8N-0zN13dXJh zU|>$1T*t=G(C}-~IrRV0u2h!mwT9=-EbxDKa-&I|tEFYbvo~!%XPDgESbt!S$9Wb* zVteM7-+g7+QCO_=`}agXgaf82Kk&6``(QX|G}qW}`hXndugx5@tMDLEi2Npb5vs1= z7b1kBs~>Im`Q&@VS(aAC9TK88ba-B)#`Eqf{eJgm#%E&@4JCZ1iibh72{wdaimz=0 zCgNi*^;Ub(>-BqsN@b^BtJi9-!}#${EXtYjD%*YhHKPIH)~rs#T7U518Q>ASkZ*N4 z{m0(PF64(jy}g043lYaf!=fxUJ^+%<`W{3LE8y`C4edFkUHb|Ei9&?5$Tv0)kM_OU zVcDGUKy^A|=7c}TaQ_yw;W%Dxr_yV+TD=~RQvEM~BLxx?!h;}H1=r!<{0Vb-#(dbb zc6#|XW%ej8>i2tOt^P{A=29HzffLPTn*cF9zFDnS=@@hAA3b>HjBK3#e0pqu^h$Q2 zpj}9o$D5p(5amNcqUtgg42L7Cm;FOiJlp|LNEK3m2Qfk9+235>*gV_?9?OIW|3wV) zZmrt28GgeO8tp!T!8tGA)^0EVO;RBkpQz8Iv&TRsMDU>n3M2^eF_&7teH-$p>f1np zLi33$G=7)=Fe%r(-nQYl7)UqU&zXCV^RK7J15Uo}a<&ktgsy3jC2hdNc-O)R+3~l3 z=3Z;4x(N$`1rcG15bFi=cLE`@wWY=@cJ8#f=gKUsSBIu*^?IevXpmJIaaj4E{f#tq zIJSU@7DZcB4fPmn99g%l(wnIt9{vr=Je8H7RR?T+f~2y{+QcC~ZZ%rwzk|>L|NnmG z?1Y>?$ciWRUU~KEaNc^p)*GCd5LMP1guO?rlV(&PKt`4NtHyv}_{oFc zPA3_U0osa90O@siDuaHjg<_%%DA#VU{Kt7qAA>@lNkTEe&x8uWwN7MNww?NCtG8Fj zjVU2pB}Q7!W~*Ic0bf_8Aedo6)|`;@*Xgkf`NPk?o()bG=Ibbqn;XWD_Em~?k_%~b z?>iqURDjTNME9CTV*&T(B7LMT^46US0bM>(#L^<2#i*3|uRZqLdiiF0*jO@D=gbQn zio`-U##;&7vX)kEPdFk7TT>ezd%Q8H+3u=%)YLGxvTaUCTu(p$V#tfRT#$-wjQs%3 zOCmjr9VSl$YTwOY&t+>(%>3^*7OqM40ekuXvv)qRO{8fWk6nQQGTL0{kkCrE5@|Gw zmkqQ+Z1BRw<=Dx_5}+b!nnonu7LG{e5M-^mv@{XiBDJ&!q+SlCAt-1DcbLWrNPS(j z+E&j@=O#^F7(26uEoqw9x*|jmv(#yOXrmUPHyxSPB&NF41yg>||jHR|{HhK#-%~10Y%ol0JT}uVFr3ZF6)LtZZtBIRA7~^+Pxh!GSxS$SX!5O3=r~ zZsCiX`X%}0qiuP*$mo5uFf?Um_AI2N#;be?6XjIKw7vQ%tGIOUjv7?NIMmWK0MTR) z{@5rW$-dGKQy8%9n>SaUf8s7s_Z&n?nTncX#9O+9kCTNz*sCoO0xW5Uv`vxN+e?$_ z?B3=I-)zD{{Hf?R8Nf(YnqFEeZ_tPZX=mdb@S%6o&3UXzZ%lnJwPst8VU|rMf=y0- z^(%KQOHrX7yat3Glz!Ysb+;ATdA%E$M*I*W7f)ZD%ci*-f*{N1E3YQ(sFsObgyf~~ zrA?KA(9!nB7n*^j)zkd3MB^bAuk}3`6R~eQzdm^aS7ieWkUH|@Rj-~eE#s$Xfr?z^ zl_0BabMOB=WSTtIyYjf`lMq0m7UPnOs8EZjz)-x(K(M*y(l4|W#B-1)+90oAg5ZNB zWO>Otb?VgE33u9^FFm!l7MHT~+eo&;#fOx7{p)AnFTC$9zs({I@ka;*4$u?ZREu9B zn}9(R9R{+wrZ+*9G61Auz2aK*K_Rlfymb4vb?W38e1xTDcPY3c`v@T)GPLMlBWJE( z&ZfOB4>PopE)lZoPs%wkTk#l-kZ2YO10DoOakEsLqMO?8?hR%k2S*5G6C*d5S8fv| z))?u;7$U9{q?2QoMbQ=m`-ZsdHetP{<$|EF;E8a9UwpeHK$>zsu1rV0$b5^nMCAQmcfq?o= z$i_Sg9iz$9B2nK+>wvUtXi?Pr=K7pjsr61%u{X$R4nU#-V&cKO{xnGle!P~+)(5#- z5nt&;ic;!rmyB3dLp`Mk2{aQ{A=a9{SV}3&JC8P#hOD+q%ge3j15lO_V0Daz$V}GT z#lf_>XCbB{B)Du8IXaEHYrz$CA;o>drqYnrE*9pa{}?16lBWkSwTO`uZzwAhtcPF@ zOPl0nKzNq7IYPP_5NfM_%N48+$?cTmbS?bgzxBnaG9Xh_IU0 zt7l!z$NIDHz(*%pi0HGo3v-#Yw;elLhHIES3<43X2VeR^53oE9G9W?-U!zD1u-e~G z7ec*4)M{7Uh$rmsae zaVK3EnDYq;279|QK`(KF-dPqRiV-1$?k)~o?&aO5eDm?Ryk=@cCaep7QV?z!7Q4_u zsDP!PF*;*tQ5H|VxxP3s1wuTTnY$(4uf%73#eD1!$p%7zTWKW!tITvY4D*(So-DHd;wDGHb9beXafONKnNJpIr8Q@wLb_2?!Db8BiR=Ef$ zX0eG{z3|F7Or>M43-8+XZ6!X1_)Ug;-0!{s$-GJ-8-dibv>v0 zp%y-GW2@$syH(*;TBk#463cD^`k3j<{#NW{03PdqXpSISFU`# zK>d&m!mFxC%QUmo_wTK(ly=}GK%`p5qPpbRM)}{?KE#gLrp809(gT0z|BT6mJnIrd z)@`lE+p!ZTLdeyti|=#CkmD?Rm}ct!+8Qo~xkI8|efDlU+hi`A<)yp#$ZUu$-9Tn) zX)%YiE};)XN__R6(5hI31s8b;OG>>Rt_XR^)kSYEtJ+1fsVtPqOn-f+R4#9pt5jOL z^UeKf0*Jyf`VzB#fCZW70tmT}epRBKf4J&> zmL6Maj10^LVIWBYWNYh#50-Gb_Ar`=t*#SY{*%T>$M@5vAA-58<7zG|lVTsKB<;Ew zl&lVfwrBM`H3{6~2${&Uki}WjJxgrFHB>ZLG?2$@P} z*eLK+M;XpQ>MA|-0}LbxK!&$K$Wsua;;bT8cZGru8y7w;-vS>w03tzF7@O);%<@uo z*E7^x&PJ+f;Uqq*XXW~CKQ996iuD7KiavLjuFzb5N8{m^cDEmwmw*QYA{G+DV%8hg zGMvh0m;!*ofVkmRmcU?G(mED3w4{)s2L}iY1b39Pwr(v^pw-D0E!)QGOyKdKzfpKV zo$11~Aiv5GoU~$|9|Ih<0liyDBhj^uJKp~dG!-IqnDVKISmJu5P zAm%zZDYzn@T@@G*$s7;2H=X-c#Js9mA0Ff*tye6`^cxiAdLx8X{8NKieWlU}VM79o(4|50s zRzT`6YI#4-|Ls#Zb^&kzQqoStlYX4GV>)0uGsU`kKDH#T0%rdFClVip06O1 zsk93j5cZI?W*T+&s}2MZSO^nBDh#6l(0BSF?Z!fgbOs@y19&{%{PxvXpEJ@*3`lr` zEHM$<5a{xNnKl&)Iwne-fz%sx&kS*Z6;K}pdWwgKO2PeWo4EGq;e!&`z>X~KEm@H; zQL?lB-M6p$`v2ZbJ(v;(B*c|0$wb~#uKr#+ZF2s>b*xNP4w9}r=8g_wkbIz%&aq16 zbbN$9aVUR{^n@5G6>)`HQk%jmA_R17Z$5bNd#w5B&oRw-Wp5bv_fdL6|saF&s6IoceJdoy8gmZRQwr&OM0`b8e^ne}2lR6siOO70xy~c8$ zJiNWMj21g&LkEe5lKZWS&#)MoyyJ=E&<`?us$T)Z6$L$BEnasUg&~ zlcN@6rORNp+imWF?dNR)0AU#6bZktm|DTur)q*X48pbwr7qp~6ODC{X?eEBeK$Ko% zG}SX22*b4J+$=wE0e_EVNW+KMkDVI>4r`Av6E|@rTOUhMQ)A&)7qUPAe2@w-Hr{w7 zzTw%bmB{3Rm)Dcmb0r(90VQR0Xe`O$?PCYC`&#Ni0?!OwZe@!YCn|h%S38!=b%wIb zFy8>mp4mlyCvLrp9LXb{{sd^e6B)5kw-^_obHr&;kcp2T5HDCh%0F=I%@Q$jXv2km zucfMwwhq`Mo3^X|@gkE?*T0+7I*rDKkx=65pU+Zm&Nxo2ppf1qQ&R7I#r)+c@F?&V zBsk%&AYt6<|9zh;He1ozif|2wpFUw7GR`?;Ay>cBGoJ}u4{4n`!jaAAzMq#z?^~Eq zsLnM42~5$DJVtkSbhiKa6RuN8fT6NAw4q|Q{nUaBe=QNm)v*M>GkY?p!*@zBeBR^% zMTJJ%t-vRHeqZih<{Azrrwxn9_8WY72!zkJ;@VencH$9|P0YRtB>o3k)d-ElVw+zl z6(-YERH$8r>;H~UOzhp>9>tIh=YRu5Dy5@T!_*1GL}FWAgwx)_KU!IKO7EgvquZq( zGn_*03Y{=b;_l-#lV~TFDXkToh3xF=mDDlcC~igIDbL@Xl(4Mh2gU-wsT7~sw3ae8 z-s_k+7+73}8hgXv;&vBMCnqRQjyl54(tIIu?@=XzN@d-!x`*JLrA~+Kr2%j(B;CyP zwVW=Z{6no-YwP%bEIc)&U#C!tXI09(Y!-P!Q@xQV-=~n8V{?=D4aJHn%{3cPn6FKB zH8!20#qTUa0Ksu8kd!!6bDMHoX+Rlx9RQe?)^e31~*wniMSYZWfSt1 z$I!{Hu8vhbOB9uTB3brL*?u3rSOK< zDK9*HiL&bXfJfXVO1&sW+XXr=;LCB| zOyvM~SaXBXZ&bzz|3+H)YYg24<6u!vqRsFDu77MZFW_l77yvAd+cOl~Tqrz~?jWaVS+jwM zB%O{1Lhfn=2f%akN~#~8B;@@@1L`TI(f`Tsreagh9zy;1UiHh=Lu6NxhgA*>41y&% z5vOtb$x?u`-mKHmKWtHZy&5^?nEu2HW5V?YVf~4qa&Jv?gPsyX#8&dn+tg?33M_Fc z?-q_5@Cyr;jAg!(_h|BW>x)nmusyhDW9i(o_6i_LNp@ujy*$nF_`8jd#=|A1K*`fP z#Q0{rcd8PTaIncBf$OVGEIaMm`@50)sw#BoGXM>XZnQ2iEZ8Y0>cJGm7dhZn8@|71 zJ~g;O7<9zL=u_WH$%8GUNcB0vD0H}EqcM)K|R;MxvA;qzw~T8)G=?4v}){EGkB zllYXMx5w)oJ>iTEjIq-UWC5yu{!uMOcL&?ft1uCZ9do;IEXoYUZ!VKP_GKS4V}wtm zVks3##_sqi^Urv~b*2SP%`g(=!M~eV?`}F0Ap_at3jCh*2XJ9tjFevB;%U6`-xb6a zY}aY$F?#(ZdPqwMPl%WI48M2Pd_w2Lqpkaqy}u`R z2aaKU*gg*G%RiO%ZFyn zgU}JEUb8024V_YA^04Yx7sr>Me%*J~_g@m*5=xLj{!3)W&%)6>1VBmXekc${0fq?z zX;1d1FakhUVM-{oug4mN;%v@zJWHSVz2-t30BKM3#Rkua%n0PKeo}DlWj*2apjC1N zdQIQdgbvJ6K2653tu5hrclzns19TqcBqShr>Mo&cj4iJ*eIOOiFcz|0-_;i4F zSkVzEB^WrSV6Aw#Y0BxUTd)vr{L`xoJD8vBEKm`fzPE(rq+~43(;ygI1RAD6V3+&*;6C>dvoETUe_&v*q zQX!QrF;}m$G`kSDauTk8`pX@XeEZUsJ|y}-f6P2jI{?)}Lp9)7vgRPd2^Mh3-~Z2$ zX}mWif@%V)RwW;iXaK`M+fSuvVc1{6V1NU#>j;EU-w$qt>F5mXkB&=r#|O&)Yblab z>E-0vL8H#L_#IF9GQt}Qn^-7?$iC$aoKl{s9Yc(0!h~%Za@GMyz^6`56g$xUTooB4 z5GN+WxiM3717ME_rSVzTO?h}qn*%5K@cBA?T;H3AN-m*wvw8@<8mS~OSbJoQyPU+$1 zmg)2&ONo5M#q90j#bo-c^eI&SpK0Y@#9dPs@%*lSMr1eUxsst!q`s0VQHuLOt&P~8FbFR4*U17Jh}GkOH^Jxnp}fP|3a zo*IkqP`XkgL2)m}mkEB7oT6|1e$L7_Q2+1+$@<`tDQFl!YN(1g7;UCB$>X3=H5M)0 zg=#pVA!XTBV=*M^Axu%{oKj%_ATAt}#d!q}L>V;va>s)o<^-l3mW~-7BO7G2)+X!E z$&0j=;WU{CLdPd26b9c|K7Ru~M znvi4bA=K|PPLTP}bxiT9hm3YKB(pe|zw|`^eq47{bMG6b zEVH}*pQ+o!Bc_#diH%dI{b!4t!C`KdtF@zNfvH)aTWRjXcur2zq@l@SBG-G~AMM&@IHfbGoa zs>;fs1a8WB$&lT6x>Is`aKz4bVQkW=q&;h z>%Pg1Me9zDTuoOTSR`#Cwg6S3Yx-s;Ql)ff+u*t#7{#O1J8uv$z!*w|6$KZ#NgkkZ zw7-ib9Hvaw+#8{OV!?)Y$2%@JAqSUOuz`y#K6fGu*GQ3wM5|jW#+42`E0iy&L{x6p;V@8^dsMehf#?Pc{z1UoO*x(bSR4hcX2yWEt{F)UD-i zn|USP0dr{M-QcV70EoP;||RNdn|g4QbrNe<1j*D z>WQs!qvXW!f?Wg&wUeYkMes_Ry57yF12UQ^zYiFIPF&OZ-(<@LZfJf;*M-gIV>DhH z*%L;OM(@A1E< zH_0HEEE77i(qD&nzI*UcEz|=>Fwmb8;fMlDO@+P@!vy?PfgzK&>GZztaRT4;hVDB_ zC*az_7MEam<@#<-7cOy%bf`1_`|+R8piCM>gI`V&IR}}l4h8by>iCM=nNZk$hlwPL zRxn`5f^R98&(z>p%`DQVA^J~&@|9%+Y19r<-h9b#=|mVz?*H20QJ`tp7#UEuNK;Eq z7MCaQfgtpZeJnB>*}HP#>cpKcOsT&8T)BPKH=QrSmcal5nhD{YC>oxCU)ZN>;9&#YI=(%=3-P&SJn+H@EpxLMF~kdmDW`X6c_B;NvH0ITjf)#X+%m#AeXAPI zMN0~+sbU;vki3K?PNTyv{k+Co=!On6U^4(*xBd|}Nq>&XMS~3}q@V=mQ%;NF=(_t$ zCM<^(_~z>0?ZrEG+X_qKta$MqKddG zO5O|P?0ld#J)$k9f~_w}H()8YKSH4~CkEsJ4hybCg_i>{8$hQ73`z^|ejUP#pWQMy zr&S-?elI~wKKIU~?Lj4-ohZrktE+U!aKTX0kX7v{b;n>*#H9fa9lUh61@s{L02qvu z9zd^=WE=G4(jmK%$qTq00}w=^pof2td>I|8%V(48yRW8iiPBi#x;mq&u7}DqW6AdK z<7mfMcx5C+jmJPEnn#6E^z>LULwxNENgjq|z+$p!D2xkbsu!qq=gi_=3+RnYY_OT` z2C{PXSMw?ao@0A;mxPwVcDb}kaBwUx`p2j#BL2bIzPg6K>q)FA-Il@isnq!~02D4@ zWU2{#E7WoAr{>>Ia7##bC4*b{qw1dK_1cTZlF9CBMPTKE5%Y&N9<7STDixjR9Bm5K zc}`PA+@#q1oo4u!onz1N4@3#(#fM%z=$bYW$!AEi5V!mbKwo_@`i&}s;;<0$gx z0=V>wsv9%Q|M2(Y5gy`C3St%oG_zq=ynx(`)+ zcBJh7t|yFX`Va zxZcu2Ul1tLMQEnCeucm)RRvv@bzmX;Ar_E)cnT4)yv)WMzz~!)E++$!(;bRFBh_hK zVOsm?(zfC9d}DexFjvF7nSehdv|egut*fiOcI?^)FHysf_6HHFXV*qORUc~y8xwGB z9`Z%QVG<2;zshfsSmmoK-FrE^zusteXCZ6KBo6w0`hu$NMSB8lQnz;v!20MVSp|e@ zCDO5=W!tpCsYO`XJcfd8)wLF3(Wn(ggvZ6PE@Ct81ScVJsqk2D_5#ijyArxxU)eZt zEj6aDL}8^cPnS{`KH6q_u~spWQ?965Hk?0q*b=?x^P(n3As2`wsX#b%2_@}}5HI*~ zcM*!0KYud0_+8BJ*RN5*CHX)e0s_J_>qYaaud4)SXFK#6?}1J76Mw^rEZ)c} zq^<8Bjk8j)EhIKDW1%by{pf5njGN(q8~KaEf#wM8cy4hh#~3A9xu8DB3LqvB-ZX5c z0m})KH~OwSR%-iidE)5kz7)~Mx{UJ_wnPV*VyIB9Gg_k1AoahbAO$yBCI$~cU5@-{A*-lmdb`@ zH1ZxZgo>>bqn}K6ifn|rIMy`Cs-3pXk)3xOA>33BweHVUI>PH`3GHEH3u~`#*8?Me z`!QQvn-HT&A>iUl{?UB7Et^?=uUjRc;~7Oe8*Vy?Q?Ig)LT*taY-4WaW)|2RrH9Pn z-fV~V=OnFw5`t%Sy&S&pu|}{gtYKR4_XZJ*#-)zK!>)~sLzD7~Qy8Jw6`?}KV=_6x z{}^WS=hM-H5GjfX!r(q(XBJ-5GW^XxU%|HeQ^k;qx65wCrb@kTb@HdvDXJk4+kr;) zDjww2&PWM!+xE)a8{{8gHA)O+T@ec8riCAM>rrfc=u5Xr1u0KNO|DYDn13y*VFqjr zzr$S$hk%1aoL(Mv{SzNVod~usXEtYuK6aOndoQ-I1&_Y=1qyBz9mnh3NMYs#qk`te zH1J2aD?v>S@pQ=X=)4DZQU$a5&g!x%=+o2J3ofxz_c}n#9LI#Wg&B%JP7uhxA}j%w zvM<=&phGrYLVFxIfYw}H;qZB@#+1`%JGNN)VVz4@lpiv+iCGQIZ{NE!wR*?T&>i4l zk98NZaCbXG$+!@fIrFE}Tt3wp5Qldq@`MWB^uLDxR^0(ZJ~1o?Y2tJo3)=@6M0ed< zh|;mZXx4U#f#Xb16S(qxMS@XbPpjIoqRhh}W7%?^#TGv1(HH3|_}DGFRmc$_{OH;V z7R4E6WRgV@^nAH{dzQgHZ&s-|cpW5bBtAPHA!}H5Ca}c1LcTHaz4aX&QqAc^@=99g{HstD5-Vq}-HN9PZ+8w_dA1`-L zHC89!!~6lNZ3B1v4@YFeF5@x1eUiXmiA>V#0PsUwQV4er{;7qbY;X45{3A7*TZN_Si(Mig#`Dd<(@3?93#GDWKIQnfilazIGs5dZ$*^l3CdTT61WNPy~bQ_Iwwc&eC1!R1RL5(7|_~|OA!XfwopTiK8&|<=x{*Tv!Z>fv> zw8z#@E@yKiNU{TSOM%WE{>JVsqs{fN4~GLE6n+nBAi8tfe3@}izHisaZrF`fos&ry z|HG+QI*dVy`C@(z`|gNTiMlZJNd6j6rpBiGlv!|f%LW{xVKlrCmxYac`Ham#OQr9* zrSQDGJECrj`4pSaz9ko5&e*{>YOxV2%!VT$5~AQY9}_5t%8mP(+l3{C1Xho{ku`07 z@Arv~zv6sDk+_Dup$&X6b9k=&&DBEuGJt^%3%I|UMyv=u zS$i>S*T1}p061=K_9K=G>Prx)d>j?7ze$cyPfp-;rct=dz6L#Ab-*==STrpuFot4( zMPv8ro+h6*uzG3&JMo++m)PtOjbtOo#OS%R>X$;>htq^tyk9c?-N^7G8f()=urjhb zJ4EBQ0|~BgwmKe7a&AQvsSsOT?X~D|D6D>oc;4x^cB8#gQF*oYs_ZA^ccan(pF?=z zG$?J@nqa_$((INmbP27Myi%rkAfWJVdZV@a14X}TU2KaSK3!W`1j{b0oe`q1oh#1Y~+jytM=;Z z8^0caS%%%Te?%md7KbDzzz2j?QK>T4!a#wW%^Uk65)CSefQ6bYa3&5M+APDS*SGgB ztpIp`IN=yBlzDFXIGRIw1P2S_2u2Fnd;a`+_JB6B-@Uv{3>@D0yFNq-9IoqS7?PHl zTY>t~B{*R-TKl~t7TnswWxTkDxh-qYC~Kc5Ja2UUDrbg%N7h35SMZ1BwMqW-RY!yh z?$^vRTZpVuM~(IX_Q!eDcvxDDFnJUb+GDqK!8-dQE}vl~App)IDNXp_znhz_&)Y&Z zk0_BJZ`Av$#@c8iKyVruE>;ed6Ph?MSZOz6qQSN@B#AxslM2?&iS<~=&p~D8C@Av*nVRGr-hP+v}{nfwM zf-z1Tyb$&yXJvfo^#;)&YN6k)`?VPQ88I3@D2~+TpL%b{lz1%tKmc8zS3Jw!mE-A+ z4{Yga(Pb8Ds|XuAcKlN4oU<~lFn{kN>XT#Fq65nF-C&c-6gA7vdw|DC|gF6uDUANSjsQO>Oo zFC8eztf>%82O-?^z=o>+GqzVT;6p~9@OUtLg*cAjO^LotklKAoWuVuG~!4!1nP!FnFluwd@qtCd1nw1sfh0=$7 zr>L_h)Ku}eU=IxTCUNM$$v=-GiU-i=)MndLzkA7#{0x^V%Sp*! z3%c~d0c9lgSuq8b#<^46vqTrj^VogVe}0xOFGFIW?+xe>)lL+}o6XB5_ry^CjwgE5 z3}f0c!^DZoYs65LB$oT#io`QgD*ekTfn?+Z39iquLfSL?=+*o0<9kH8blB>}ru{9o zJ#!3;zenfeL;KWim9YZVSNCS2F!xM$id#-fODw3B{ZWEd3P%Gr;F`}>!_-1g-Q=a;sUsdf>Lj;NrJzsEOp+V9R+^M?c-3R(YvB{;Y))OhjaQ+r1LsM5Nm>_RxT?*iH zc6!@>Wxfy5zaC=hi1Ri%6L!4hH1#TJ-f!4U^(a8>evGgf`2za(J zy*_KzoAe1rgM;rl7jCUIJi>DgN@scV$%dI-3T=g32Fx=qMA9h6=l>8CRm4U1Q+hrJUpD_05j0<$a&kGoVCWqhDYj0XKYR-IhfS^ zt4dq%IuOswhLD&DvNtP=%N~aWhiPgBTyuXb?vzLemKpUv;`2+@&h&hUDoYE=P1$@A z6Thn~e>TvDG|6Dlz|dIn4;%Xxj;7}s<)<>+3|d;bwbmpa2AOGaLk7S<*egOorKU};KfFj%P zo3XU6yeYC=Wp(A1L-DRak_hqFqluBl?4DkTcKv(Ick(682`XbbUN5_7 zmHnUVguW$aZF(UI&*<2g_X>u&i$#dccQhpG7X!L^(CmX0>sk7uf_~|zzU1JbCG%1L z_Uv%9m^!#RRHF1hUDHMK3V-!yF~T4UX^(6$tnJ^!{pO1HkI~acxGf3N#aJ(!TL0ER z)~c;2j;LAecb~IO`ntOQvS~V5<5{8<@Tud}&aFH0>Pw{-&HmPouK$Lu`3_^ssTzh- z3rf#AtHvPSRXfh-Yg$H1tKTiu=EUE6+i$?tuf>q$e(-IC5PCAB7$i1iZC%wLbd)m!V=8X2)ou<#gZy5B?e@Ob{gI zZS@iw?Xd34YZ-*3{!rWNa`#`2;{)wdm$JL!SUPzq1dzm`Gz$kZ?6k3jU8II1id7w} zjVW2MkH?CXAj95LMD#~ByM>&#kh;{?6ip&<%7NMh2~`u+PM<&i=3bq^%66nK1XpaT zQ49KCbPT^ifEwQC=B&b&9h9Y(7{p4*t>(fsV}J7j7-##Cw<(|gZJc7x_}kt$dW2)X z?P3?_Lk&=E%A&glSHAIw-)}fba<59KC`N9}$~J=zLWKUo(Ef!p=nn2?Ok5_m`6P-T zL=P=|AG6AWTVN4YZ>}&R^3UYn(01~=p|8B(SvM`isSK<>C#zjTygPS{r8+0uj8-z?r4CjJ$?5<7-)sX^>pI(q!&`1<HPA|scsXe zadh0nxkb@5fDFo&!*Fi!Y3Tl{U=FS#HIfoMvkiI&&cmvJ0f4hlogkF3ArWlMJXww3 zwc!?xTkzU(Hv!}`^)7l(hc~B^N#F)6w9MS0)ady_@eVgbVKkT}C-`hZMF(kO$1##1 znr_e;B#+bVy6fQdD!!`w=3Ojkfy{PW^d$79CVLA7fF?I9i9Fq8T&AwYx~d_@Q?t7@-)BS}PqJ%66?Lq6V zBrLYD7=%GfTOIKu3-B6u^f7D2D!Yg!eD2uN@8N`+i78v1=??`FWTVpKZ#zl~9XaOE zEO(QPGHk*}n={xWqTwStSV!E44Ff?Qpp1!#Axn09n@I7b`H;d~F)s0p0YN-?V?`5O zEzGA?o;D=VY6LrpsjBYLdNlLu_y~CtXNK2K%vzJwnxTCx-RnN{5{0VB9eJP5c{e$wB95*3)NArJ3&_&l*j zcsx`;_iG}IdZ!{HkSg5feD2k!TgASF?^%``!v>O9U->WOE-9%Pw11TAMjv%ue~oCR zx-m2=_$9{b2+)__ql!x;*n;sGtmy7f_%!0(VC3gk9!{H7o_E(!uYV*x3e@{+2#wku z+C~b|Lp}t3N_9a9k|F*1$ATt7cGfPpsKwLX-rlRdvNEjz3WJ(nVh9(v4HA>fiOm&n z>U}a)l48X@2ywCWh=5>{GwO@-%Q8iamm>|b-8K9heN=z^w>Ys)w}UAk?i2+vjJ-pC z-GLJ9sqimn56vfa3Fu#OW2(tVeXf7y#wrqLGoFpI*qiW1TQPz^1_?DotcZ z-KOE4jaiSb)EyUN3gz#fJLI{Z=Okams`kDpq$Go_%|Fki752BuFsK!>`C5iOi*O2R z_r87ZKu~ph+~4(>g^H#O4i4T*>^fi@mCFY`KeO6yhsrz~+c7s@4>I{A*9^9OYH)X7Q?M+9z-dV;{N^gOFN#{mP9;KY43>w9Ij78GDD7tlybtCnqI|?whGfxqwPK>M z_Xy+WAAA0#Iv4Qf8% z@Os_|wRmxnTt=os=g13!$8+i= zWi0dZR{(DS@bscRil^e0;RYU(oXJT|hRlh=PWzZWg%p=i9_E->-#W(v$Myb_FG6RM2nNF)ZQJQv1L8o`c^aEN&2pJ z*_^3S<u054KwI$?Rx&DaDq2fkF3VdtoiMSqXH`It zu=gV7iwymA_1@6fr&OVXG^z>A8QP=wIy$WDE|4INC{X#LoCeIfX3 z;sMx-?sUFQtoO4NEhVw1*HK1v;1^b6V~5ehnm6C2pR#KVvV)64%HzoZQVtdNeOY-# z_NHk+ysCkHZcu4Cktu21$KBQvR_g>~ODvDZI{FQ7j!vu{Mj=EmOU=;UPvO}0S9Z+G z?s6ZgBog+cQZ0hWq2PW>Uu{||l|>SFBfDd*2h<>Q++aP@L#y|}Ff!AxU+h6d3J!G? zizq5oxB@U+wA%785VY0GPt1_{-UNZio*|)YEUnN5h~II>6W&Y3=*{T)(%{0P&@qQ? zZbN0sKn<(Oj)SlB&BvbDIN};!HnHj{MEND08Om^5>-st&6aw43(-JhD0P?q)5_3fXW6E}Kr-1~kYf&doS1;E%F?-abG-Aa9XzJG}s24P~y8oEb>Fz$)HI5!5;E=L>eCM8H!R#Du&IS6zJ@|XI% zg&j`C0|)k#aPshQ_NK~;Q7A*+h3?zXjCn3=sC!?1MXR|xplTsu35(I@;w2r}Iu6!1 z&+`S~Kt6Gk_mayPhA}7T>6vNVjE-aWU39G66Wja-7h-XHG-XJpTfL4$i0+Xgk#1SFC3dzF%viuQU^>uLluTdZ(>sTB0>fBh{U+}pQ2k}uo=CEGy zeIwK<#2V|*s{MlX80Y{r(VMxc9-|vaq~m7`s!ojPJJN@7`5JM|F&RfV@Y^Mn1X*Kc zB$V7v-Wlg~rei9GJU#43TeJXVl{Vtj+QQA>R_I# z9uXc7%D5U|0Gb2rYz8zb2l#EYR_H3vsKL@{tQd1JQ50a%ZFL3xMij3wLX%=_2eohc zKuThXh|{8)P4(|?WB?RahNMDQ-JR5z7;CR@T;f-cfM&`abPAB2leP*M26v@CKQVh^ z$FhXqFnv6LRtX!{cRDsnIXw3BZHz$h-UrN)epCTuJzf4lwM&u-)M$%|i??0aIvZ~l_$5G&0-Y#&kzO0Jx~5Tq@) zI1o@n^p3I! zdR>4wuvAHng#fCF=WE?9JmgIv6QP?U5(tcj)aE#_;y0=AnK?Ffx_LkYL)+XuldBN) z1Kn*;+;a|Ycc;%E(jbtf*8bk|cheeIFwu?HArU)yhj>chWV19V^#-0u$YBrq-#k8# z206Kx+l7N$a=mB9M15drImd+{O@~)biAKogB&0l@yc$lISFTACgwplaR*OJm1MH72 znmacgv2%e^?1#+=GS&7&k@%)`c`7xt_nyJ&rM?1VsO2=x!D;-?sBf;+8rE{Fg|0$J zH4kp>3Jv|UCNIV?fNlR@P;|U3p7Xz+o?19hE&nOq0#gBK*nVMS1ET}#8pk&tfzes@ zf`lZU9v7$VaCx&P-TOPy6+1E;IDhE_G8<~02W_Jf8V_2}F+|Kf1 zwnh|E#=UwX?3ZzzNNIoN>5ZocIrtHzeqmhl0aYmblB8d6)H-^u^1yHBWMW|>#hU-=r0aF^=pM4qJC2-Mt2Ac^reA2(t>mM3 z!DYe=0Syh!{;{K2*IzV=6`G~DfF?sFv)+Ao?Z)<4?MN2%Hhr;d;#*a!ZCks}P}g3h zLSNsOxV8z+ML@I=QOTtYC~i-l$Lt}@?NpH$eSS(jR(k!%7)Z>n<_Vz3qLUG(RK|mULr1hU021_!2SgBe!PWBG)( zhyNO4_`3OVA?{=Vb#;&1+2inAIXI|TU0HlhTRVe=!Ow2dD$dF%L)(l6cgqrz*vhL8 z`&GD;!Jc~oWkvxSWYG4gga0SSQfbOaPM#?kbofV5&U_!T(eBSiPEl(xg#x0`Hy`-7 zS0ah2vZsk~c-_{8^|@q~^~hANK@7nXk(#_?5@LR_6NL*J%J-9;j_a;X7^$Z949I^M zUrARBP!*hoj4kZ02;tLR6CTdK4E~DAIE8NHo-UF}AQ;flqjNn+Bf)Xg5&5w&xAZuH zale)T(LCdXYEN02FqH5OfXKdQsf_(yE;)Aw@UCl+0|C{ z;IT-1Z;TxyJ9>nmM62OGYkpVjw<)Q+_Kp-8aDcC}Lbbx^-JCeBYBOA@>WEqJ8h|C@ zKSJ?q2I%Dx{G}qD%%Jf5oBc)t`}S>b{_J?`8waW|{%n6AHFSJ4F-5>lK1}n2s~;HP zd&c90s5e;Ou*6uAmJec-JnM^uM$2Gby|a7jQmqZ@qZ`ikJV|Ztmw<4c%#S|LUhXUUoso(q-G&XLXuLY_ZfPlm!z^9$>IlgB*V3{Q zR@=Mb`@(mgH7rH8Tx{gUjvNxR1YfH7PYy-paLAvxEc$BuE7$r?nso#c9lU?jMoDS~3XW-s4A+^6Mu!Ye0WNHW(t`DfW~Qsb%>3kFQaRTc%XImmf6L zx2VY2u#u6~K^0#0E4=+v)ycz$b7*u|m;_d3Vg6 z)k!nts2T2v)3`ONC}1rkA~90_9W(UAa-5$5d<5Zb8o|Yf9y{pBi=SJmp2N%!8XuRh z&iV55gk}5t|5A^QrikfyIn8ip=lU}+bMaHl!%03JZTX85ya{Ha5vtV$0uV5?L1?0} zkzx{e(^pI$1TVH;uPQdUL?QkGc5_J8hz%{C)oPYyslrjWY{f4-c!ECY1(AOZ%;S7W z7@o5dPDxBp0?T;LzkSH+l9Et{Rui-1c*yyOz+eo+XZf%GlE43juY@ih#ayq4hPim_ zjQL274lDh@pIqOjP!%mRVb~>Ub0bbmba){43b8`JMbokHdipeO=|ok1nU^wjmT7~C z@EOR`kKr&O)H8JUil%CrF=}$=I{}Gi@r%zQkY>a#41@n=dRqiOOrsbzi>aQR!mo38T)~a&E!19h_b0!JN+B98syv#g9CPPFnbEC;IRd>|EwQY28s(9> zQ;YumKxY3dAZ1k9b2+{%Lmm{iw>x!sBj{LdtGyKxMY*)od%j%h~1IMxAzI;%^>; zTsazy%SFKju_Id@MA+}}P;POGFl6Wb(q8U}LHW!rYg$pro8ffeT^;F)MsBwaR`YgJ zJ|0V3M0}~Q2%+=BcIq(=c3}i1Y#T8XcUU;9pL@;kU6S%F4e;3VXg|&yE`Ivi&AwjN z6}P^CtI++6_b$kIBcq5=T4nwI9Hs1?GAA?~5hOkxet7@^-8?S12mQ^GZ2 zGm8>ce7q51305>yUEm8Q>H3t{?QRr$ zYruv)pB&PPro4qh2wSzAkR(DdxZ_*&$EUMU`20P2KuJiF@9w`HQ+XGz-eUUBm^LTcaIes z8e*P>5p8RxtZ6$nrV6GZFcJ+!Xni<7M_ueSRcrqoxI;IJ5h=_(gY3&DJZ zi_N~T`?J>{u1%4T6LjpS8@>=&P+yHGqp1_qRT$_XiOZ~zcXx>({qW?kVVj~a3{gPk z`%XJF-1xELi)K+{iDlfs%dC{{gt(AMl?`_SD)+b123%s=WC*^cWSVIA<6P)1^|k}l z&XYA2xP!d{S_;|4>q5U6H^xJ<0*k+1v>2nvw%IgeMV=)fQ35zE|a)8Az z4N_A|N<}CQ9iHvn+{Bm0G`%c%UM{F2M_7DVJ2{C8&Qz<=m|vYl4@sd^Mzuf$ z-lX5oKz))(LhatObRdB>@^BzhDAQcy?O^nMiV&C7bihIw08FQgWi*K!pXyk1@)u$L z9b1va%`Bl4BIU&{Zy;PwWl_q`3hUvd=(cpIlk}6}LO(*BA|h|^npdPngSrb{uVDR1 z8`3N7SV}=|opg+>A>s$lI?CsC-4}ru1b}F|ykyy{@$E8IWGB3CH*#V7oMP@VHF@JO zj8RNY$mMZFe*8?@q6k<;k-jap(X=7XS!J=$^Li#Z+G+I`=gV{!%a${~TVoQvMoNs!ktO=a6jfhn4{7 zips*0=7!EZcmc2tS^I>1^yHk0O~8XHHmS(<1+2UxF;!a2Ji>$B(0oE{ow%YSH|e>y z<$(xTks%v9kxdS2j7HNzCFU)&A)6!*#!I3`$Vmo=#U2!HesprTnvQ*ZxkTn)1VkE< zqZ*w5T$)p?M}{KO>z5u>-n8hrJs5^F_S&DqfMQ9*)lrgj z4cPd5R5=SdoSb!jtgzjDjuy;x;|Fk4G@PZ=BsS$p%BHh_zXpR++`V?iofm9vW;cRK z^+vOV?mD9WHCF~e9Lq@qR|XOsJiv=PO->z@PlJDz&vLQ(lT+cPK<%}?OI=|ahj;s& zfNN_C6d2<&-#|q2lzz7_Km(>|F@V+ogf!z=0wL@>#Hw|ugP&lFaLcSs6h zZ&Ls<6UR-8k1UXGo2`CO%xb(zx;i+p8Mz#07%;{BvMpKSX_HIURMq5I5Kic|z4WFt zq7S#|3Wh{`0TOsNl7_aIjda8dM2EhH((AwpyrCYZN8!!OFzkeO$U7-w<9%kNZv zKttdouoKtR)V!XK{oeFB;N{BQj1)9L?AZu7=z;XI`)LYQm>dJxD@Wm8bC{>~Vo1RZ z#@ica6VJi6Rg2ddz#>mh94ulr>p98V(_NYFcsU;JBkaTTqLoMFiOcTHwoL?+zkErE z80Jq(DNNZTeFhM@qaHDa6ARqEiiMhe%|R(fMKcQZ9h7C9*!*%7Xw1>0t+KcJp>_fS|f+s;g_Lsb&1` z^SAzx?32B1`l{)zwypYe;KQ!JyFuzZWZLwd?V7GFw^E1)_UKlDl}zbOF8-dA5iK(q z{^o)ZwCPE+#Im)0)I=8^Wql8ahxpQ2WeQ0zzY5LU-6xPMN|}y($ZZ@%O^p^)+X|cM zsm(3kLowoJfhRu~RL4xXr2osK-tMt31rRjoM=`>6@syH%c|{EHO42!j8gclWZ3z3Y z_WFhbqGo59>%-jFQja@gnw1dI%nU-YA>pPex{m-voAJJR0_boQa;oMpcLak!e`9Yi z@`s9-K3lc7>DwvxA7{a=U@(Ea_B>Q?TFsySCyG>?EG)`1*k#mf7?} zY8KuUgz!MfuCcUEoy9g1NZ-b=+A$NgD7kjG{19o=aihcFW_o;_+qZ)(TIhgduBM5_ zo!X}Qr$7bZqgSq+!5r(d%AoJy{}|_jSbX3wbx)F7iq45iycfduSOozfbu~D7x5B06 z5#E%Aa`XRhCeoT!%4^Rb*nbFedN03Rd}`djlHbe(2rD}5^qqb>zI(j<3o3$9u>mqC z>>eQ0#-395P&hIv!6lX)L>)ZDdnnmVBZXw6!vbvj4rEw1CQT>*b8P|0Rq$dKQBgV< zF`%7)!{?n3Y@NTh?f2RMPNWD6lGz1WQBjc^`$QEA=K6R}@HcWxX#A3CMobl$Pj zujG&V8kBwf^Nqj#>R*n}v-cwKV14E7H{Sa4%dgO@ya9*MJ&5EF`HFp)UoylSZ@;3> z(|+*DvZaTczT1Ta0*AitZWxi>?UZih^Eb+y|N zajf_VV=^D!!dj;AcW>-O$amfbIDT8>bT|>UU!Yg{`a*0kzQgCqSAiNt;CEkq`Sy3e z!$HpGkr=s=F<5j4S5AZf2VTS%FxGO=s>Ts2a!A>U$KTjt;6MI@#=Ea{_YEY!Cv?zA&WF@(D~pT zKZ)lVCO|Tm$LoFnL6CzM-}@j~==QS%33Qru^w5mzddDkSj|rj3l-Mf99g=a!8XL0P z^zh6|!s<`#XLn@a3fc$-5W;9BLN&Nu2hep?7H{0U*>c>k+iKh?!#ggXRba^hrSe!n z`+R?acj?VF?77^B`wdJ+!((41Lo`gK5+C~b&b%H6Gb^&z z9IvdZQmDXvOcnO%GQ^7MWHtjIMV8|`{Nz?>6lo%{@QbVY)5^;qFlvlR652M+}2 zoq_yk?R)rm`>W$M4*I$pPZWO1T+T1RSNMPAiOv??Am?EyFE4h+0fW$2xp=PSG;beJ zS0I5%29a)jToH<1&-^_Rm6~*aK@76=J|Ja^ejcMw6Q;bfbH90Xw<~n9S2((vvhJ~D z@5abf8(v;lv#yln5PKU#0ml*L5jsyN|K`6o)Q6#Z9aVy*@(+FhK4y(W-lEzeV--># zC>JV@8-d@+pW$nDG?ZUaaXl$tJ!p4J(FbEjp}wTV8(#YJ#$b`m+9^T-8F_0s02_)g zWZuhS;Y+~7Xp}&8DR(nG2xp#delNa@uNay;0K?C(6@K6h#1;JfmA5}jnl1J{OmCEt zC1nkCn?BU=bdhPMB|m(hAv78`TZ(Q=hD|?XWtl~MShc+k5OyJ{9WGL-7MH43IVrY;gXn-9v zKif^6WfBeroWOzH_f|v_sU-H6Ug>uHL6T1dA2o$uAlT65pY1PauY%1@wb%K14utH* zzVE*E+gcYYQBEMeJ~Vg6PRm_g?fByJ|8p~?I8jvpw-BN|f|bh>HtH>>FE~Bb<+Yt* z4In8g{n;GbVc~-vcpDT4EUD(3B5-IIH!H__`@qF*9~Q&fcHy`09w4u7F@s1BsXAzi z4RfSsU9r+0WGN|42!G5r=^;Yeun+2LsZca_!&^j$)pnft;H%G%3=#^f6ar}^zpJ9+ zXFvJ-A2;7?{`;TI{-gqgwLmBjK4f5#4OB8-%tuz6uIDne5%hWdMJ~0KK>|rB8F>$W z4jgl~__kRs03USpG4C8>V34Vw;JLVmkevDBtwuciO|K|8u=cyvme&v6*nc^HEXf+1 z0J$s_3zCB*g_tgu=uePBAoCLp;1wa?<4ucDL~9%yAsAUkw3puFFoVAj9r%=N$WoRt z!^11R0LYCY0m#NKJ9GgEn{=D3ORg2u*#V}(3}L$M~Gld=9ldF(GzCO2W|RQiYfc2-yQfR{!xY zz=z)_Pn4B7Xxr*;*5h+NIx>}3068lxEc79#4ykUNV=T+X^4z<%1qEOr=>W04Zct@O zV=Ov4rUUv-UUCl&8QeY&adr8`Z6*+kz+D+o0HOBv?mKjAid7R!7`?PQ(<^!HWmJg= zczndQrPXR|Mo4xMXzF}0G3g{ zpEUy<4{(Orb*>AsF#n+SSX1b6et=9Y*(pTNXTo#dw1}Sknrs-)I1j@O8Tn;XMt*I! z!dQ!7cvAj5_UZeG50Be2eOOJR5>o)-VjpF7<}7P3_PzauQ)OHP1=Nx&(+VKm^!kG5 z#}meDW})kxg^+GE-2e#U0AB21EUNQ})(>iHk4gd|K-SW_VUvJLTofcjy!xmIqJ$gm z7@}T-w$vT%H}RJ-!Xnx5;q@U&AiJlSSQb`2i-|NY>G4-8H3fjsYY{~sgy}@H1d)1g zZf!j-=+qV=K&b@~BIN#qg@1H7aBVJ{R|JR&5t_uyFZgRh>NjniKZZ+z2VM9gnQ<2P z%J(PR!ub(0IAf+WeW5RJuyqUTJ|ux6FEG$=u4PPyXmTk^uXh9*4R66eKZge74W~z1 z6_g0mD=C9PW@bZ-y8;*p?}a|``*{IcHNTXkFw>74HMCCwrl{ulRGK}=JxeWF@vw|x zEgcaAAWR{F3rfXAdXRY9ZZ6gD!RCQC4G}9#q~g4Ly3*J4@Zm<|#zs^7)n)xEB)Jk` zLDko@VOk4>VW{?P^T(rscP4QujOvE}B=3wLJc!EhR9P`L(-uIsQ^{EfAPQ$IWiLWl zdrfG^kArRV3zt8vb%;lN#q>&AYeD+GejOmJ%G!_I!Xc&s4E(L`F`>8cU_L)WK>vs2 zwVgoZ2dk9RPtn6~LLri8y|j3@9N$T2RBM@NzY8Onzd()k%Fo@^ZWr&m{2r8IQwc+Z z2*1enA{ocdFYF>~FZe`pkX~mHAl%gdOVP#Ik zF9O*nazoYfYGX*xAY|T(A&sfH3qlbksWqdjDK7nb5q;FP>KQnHCt)w>(&V`tWUBUS z!{IQOD`I)RdnWIrqqlC4;q&JXoJte(^S>F#=572`Ts=fyOONw6AuRZI z@c%WM$zy%SOKmbYK7E4{X8)(ecyej|y;2XFrSJXCzVCeQFwAzn2-b#igF&`F=Qo=d zPjyj1-}0D;0s zdnn_Dl(cVc`FrRWRaK08R?T-Kz1Blo6#+twKziiWxLsr=RtX;?gWR|VaZg&ReY*^T z^6K<$ygqqIuL7U!!q}~3YTMXMgSsIt`XXjc)49Y|k~3z#FZ;~N`GtRQ7Rn@Ob|pz^ zl=XG~-eh#GT-nFNp|R7%$K3~A3LeNEt&4Z=by1U@2zfA;2O)zP224dQ|Ms0{GCQoV zhdRM57N4vg|8061`2$JK?=SfIci#S;7f^9CDrV=f!%>Dl(doI;3ce4^cgGj@G2&i) z_YJ4d#bnD7ed+8Pn>#j|{j;S$^r-Mk{?&?axlnRvH0Ei&M+6sxfdsttB z41H)Qles+JkL-z>$N;l~a;}5ys|D)wl3=S)1njX6X_3j?we6#1eoM)1|MuwHv$*kb{&HGNxP$83)o~ z%xse>OFOd|kcw<>;fxh;5+JIu+3b7>r^4Pooj7H+E(z9O^6np996%arANY3pV*pox z=Zv(0A6r}0ERHW$A_R%8${HBNkJLE0_cIk9)u)%!qzAA0`N@E~qNH`gdSWFCvkxy! z;#U$Yu~KslQeGPZK3I@-89m2?yJPrko?2q_j0LtO3y@~lwjsnuDAeA>xG}?gpwnLL z)~s8H6;!f4Mw{(ok*uek?F5umu-x()Vz7;MUy=0UCWDNfij}FURki{KS*+CWsdjyC zwds2RdE<9z?mVSaC=a6iikZ8Kv`M*J?>~$p>%%*7UKXl*Y!dZOf?L{5k~<+%S*5O~ zkYMiVe* zh3s?P(3vm`MTHO^)k+2dojr(0FkW9-3c%r!ool@NcaNPX-<|yaY3h|6CX3BI3%4~a zusv!|_`wjHrb*!AG7)LadCvhW9B3ei0V_bxgIku3HQ^Cz;zeLXV*{gpbk(2$*!e>= zUI1BLM*ja5$9Im@B<~f6Gd^W&(j@!N2( zJn)DMCAHGNV@*XyPmY_fK;AS!T=)GZ*^c+%4YLc`PD=t2hT9dLJ}wyETbuKdM8eD4!*daqG{%dS z*Mg73ZTAd(EU*#cTXX_d-ALEM-LVA`pC&wvizi$J1`AxS@^V*EVKC5CBF8gYCz487 z^c=|`*h-qC+YCFa`1+d5>o)mW<$()OpHV0x$I?zo{Fs<7@L(8M^8Z0rA$#%MKl{1V z@~B5j=Jz4FyxtFW4wt{k*-74d^0vAaIt#7lRuuE*P6P~iW)Mc#nGp*fVUC>0&P~hV z>Xv@SIvx|=1UZ0cy??6BruqgViL`Mi^(uOgodTlY0w28tXC!|RA1#X@=F3o85Mn(? zkBDs{za|rb#H$>)g$y^?p7U zeE`VD@DyY-Z==RiFD}4B#2WySmR7TUZ^d@Y^s*UJlJ3|B$8*vpwzq_Fr^<`)wd(_Y zb}jWPyPi~Hwdcxi4$t#zRiD1UKtzj>SLMO|WjKM9i~?^zdug7$b9E@(83;V&F`xd@ zfd@%WOOxd6j}}qqq)9UQJpjT23l)qRD6JM@LQ`_8 z8SoZi5~dI#Do#A+%Db^sbGzCmgjXhV&tV5U>lqO;hopPE+|EV8Z- zT+wdGVVj(YAc6cIab@5Psv2|sfp)2R6k59n>Dzo+V&SgU_D+Qfkj_pj3)zctrm?|1 z0HHGqNo;D%Dq&w>d~j(H0J+ahb=MZ015pQsUaN%=R#`3hBh4oV$+HMg17y_ z#zm>Ja$8>yhCVFvO9q*arZgG(rCG(Z^ScX=-nis2#pYdZC_w^9!XR6p!stzeR{l)9igaHutl(_>=V9i4v9qBV1a96{FZLveJ1H2>x5cea`Jx&)uB>@%U>)#yl8zG+2IgAzg_g<#_SIvTg#z zLdZQdZ{biA@ZmQwfsPx~+Br*OtH>FMrBd2jCQFYuY{|%b+-oZ!=&Y~xudU;Wmmok? zW+~_#vh5gL0Md&6A)`~J9s!8+=X*`M-GdZbUoh{Sye{z9%6h-su3f1Sh*{+1ZP883 z4wMm-ZMSZL(ShkD2K~1t?<{j11VwXk7PLctno7v4k6p-(9_heY9W8^Uh@bx+0O@<@ zKI@v+*5+m^P2d_`QHiTY7rUDot@b1I&+)wgiApsEiZe=tNOyK;J!F>kP3l?U8+X_W@J{K5M}q5SlnibL(czTf6wlP-$LUyiwQCoK~clr3TDZW7Qp} z&w54a&u}H^Lcc(ncQYZo)fX+)2AAdss{c@;VlCq(;6PW78(V!93wLjIv^NEdgfnWq zcvI=9Y61~7R5)VYL@wV6=V*u;aB^bI24+{+SEoy{lks{g`d6`{DP<|Z7k+1WNB{y5 zs+*B?Ts_Cu*L>c?W(N5S8z6g|^kAV&0mNfBcPaKDrusPLm4iaCxP=sw8zAgMIp#O{ z+-DKz3^qq9E`zL{M@Vdpbwbh5`x`prWZ+oM?^9rLA>T|l54<8z7VrPz{{8!{E8+e7 zp*>Vt+1)}5ObiO-;#_9b&`pV_C4ulW%!81}jrDb}&b=F3#Y14~z5Y2)ds!nPyf`LQ z`;v1=ARJ_H`|)2@CqxePDNM42__8p6zoWg@W#1e?3O@66pbUn!o{V!kH^fQ@PjbM!P11d-Lp86VXJ~(#bA&fwg6%;3isk~ z{?;Xm>`2XgMc^xjS4V1Tsgye<1iMW+HXXY?e>OKj7UmV5o6>Rwh$1|tQY3cC-YUc8 zd^<}z^V$tfiUHNt?-#v~j<)i1rOpJ2#5j?9U9RY#r}z1LoV8;6Z{P#HkS>iop{h;J zivXOw!V00$aTqTyqg`4_B;r%C{!*`3nHqQ<4{3M{fUpTydV4J`ttj&w?_?l-&34X^nqT!2mdMx9#KUW*D^W4iVdSv!3ihtFt%2c z18CaK^_QYe;!q6|D;Ni(j#Fa7AK~*}UXRT6N7h%8=@l##)$73jcYm{o3oHKY=S5m` zmr8Xs_(dFnW zMrB5?vMdz?7U_TSXMf_Lpu8vqSq)|U=iUgqOm#8X6yvqr@57ZqbP40xS(%GFJFV^& zU5F@H>p|8;mwJmYN7{y%8xoXRalDFlNa&b6Y?0-#+VplUh5X(bWj~df1K>Kh1d{1EX4M?&o_lSS@ zcEIU!`xV<{eTmH-zGkKTf=yR=j0~a)^dp7joMWL8Md>ALu(A@H&H+02l%a%RFKumE z-ktUR@HK4HpG@@h5Fk1Ui!)wz^80$R@GFfBV$4nL8I~Xfb!Iw|Jx|p}U8~w1p{-z? zh|PMd{Wa|t?H4V&TH}|ow&LGbB0E?HRvRb3i%01LS_-D)((+1NI|y7}Sy^6+f<*|` zg%3AbV9^>rJGkSl!)xEYb0wp?d_Pi}d7E1YPdGnsN7wqQy+^@y=L@}s%aN{=?wSh+@6 zV+tUo`j#Ck$)I!Gip(shg%YR7%FdVH(DjGCPYNGa24PT)o+dP+83BAqjw3+QtJn1` zArjf?BzvU%_yB}NBPgah<`N-}^X+B^=>XY96?)B8hE{}?$Dn{(a&o+tJxJ?2PCWSG za)^^F%>Fc)E!bwGE1a4`BKJ7n!<|&VriiXmb&&JXEJ!qz_^S&ahSlV)zM;GtNWkpP z#a6`_@gD{_=Vo07dB5mSd4{#mkYo)yjb_m8ayWxO|NN_ZN41{-nJsnm_||yppt6ey4`p3Kk&qn$I? zA!obJwVwGNU)h;NTw6y72PPi&g3~}t{;3*ejKVl0VbZ2F1Fz>zi1Z{k*nOqExxpHE~9I_S&iHcUZxkXm!=N2o= zL~@UbOyR?zLI0$}ZP-rX_R7q*f)aG<#0Ou{!DH!s2?Q~Sy=7gEOOk?5$}4k=USlGb zhCU9pfXrZ!v3KE0vgj}WBwF-+h#$Q8;!FGR*1yvwS)DvSH!QuGL3#pV~rgQFTSeTR4Rj_jJX#chobCFbE8{=vx$)Di z6f$z@asC2p%D!8tV=ll)$6T9Gld#%*3YDJI1jP=$uIzhgyFh>dAy!UVGle6Q_fLR_^&-q^{fa!N4eKiSPZ(!926)eV+oW;z=nH-7Xa0dnOib=XaSP&1;cyQQUj)G(pp zX}TIiC!?=k>1}%d{i~OD8;^%(l9`UV2dREk70VFPQstwPY_J8zO7NdzO}L+(Q01a| z{@Zo#9~>rWlydQr6-hhsP(a34u$BRk^F{c09c_Jf)JJ3&kI0i+(iw$vXKU z6Ce*T!fLJ}S61UYseMBwC4o?T{TCj3>r-CZ_U{Bp_{jpK_exE-IZ!}t18s@LRyIn2 z2;SzVMvWK1iM#?`Q+6S{3-PwzR&(aObzlCS&)&(EIqgxo-RvUC1s0qB@Wi40A{Mm+6?hzoe>abab2nCv)LpGULiuivTHp z`2g%xPE~>(w!cyU0x`LxK`Q;Khu3o4Nc>5I0~77{yXAXvtOJjyJR!@%8nSg2G$cH} z+WJstGjAFC=>Me;tqSCOpXJ#1(r2F}ZBoak=Dd=4kHd5}=;%O7mlAl5(&ohj6^vk` z;SrYIgZSN0cFM}>xC`Mb#7-bookbCIO7l0MJ*Mfa!xG}byRS_fou_2BIIWyFttplO zr0Gd!5YiQIbNtK<(v5mwZur3L7;iQKvXHpB@gpDvZ8}oO?h^UK{=1d7jxl5r{8Q3-BiNn#goA|SziCh?>9@V zzkVk_JfsV$52){?UO{;a1MTJ~BXcb5zNAgpkyP}I^AypZ8~6~}g;6TtT2obnBxHnd znqT`Q&yW$-?qGdg&}{?6<+GbRsa+*xJABr{M;FO>#taimq>9eL3hQ-+50zsUnh%vo z-7a>rxF#Iju?7J^dY@)*0z_@&t{#bVQE?Gfgwe2DLq zIZEy7uB@C{w#94Wc$*e`mv#W8oebV57gu`PZqFKX>PBn?*iQ+d#xUQiv6CfV1@Luc) zHA1n-tv8)SQnlmDSDx|t?v~C`7%idly3WO3rX;KG9$}h#uS^H(YWW4r+=6&qHCbO; zQ8!18B^`+LBjn5$@8^=3H%Y~(M8gpE*TVg6{PAfSWU&K53(}DVkcUq;gWzR9$pe*&8)}CbHhQ1-_jjg{L4c#Z>3CCPLt|spMtgh6$R+}i9M+2#KByBCw*b;%vUAS1 zv>5P^R_I*wdo49ux+md|JHvzc#;J zUV(WM$o$kG@Nq?5u)lAo5UE5cl3U|+IKb+xX{g@_4TTMWYzfkV5Nk9+e4HAUrq3?1 zI2SjMXsA1?*Lgx$JJ&oi(gY5nhjWoqWDlj3f-`a)Gp(u1PInQn4!*g@3OClewC^N$ zAjd=5^I&|x)y!W@AkNR9X`l3cFMg)K^5Mq;^M3KD6g{O?HGt88v~5U+IRXt%f94#^ z?{>j&F!wZZ1O^$btSAh4?;OJvwLXNB{9rMr{G9PNn*gD>j)4#n+mG`FB=+b!Kn9*L zK)^P+onNX5<>AER;Twwo)z{mU(S-~e3$@w;(>cWtv0O(@Q&UI*L{bQIhyVmi4165v zI$IVy=eFw8^kYn|F={dhIuj2^r5!4!}B@xuh zxzgO_P3qyc`*c;g%-aDXKT9y$feGprqbmt%2g(F z7gFob0Ein%`tq6H68_+mv@&WPk6?pUQpR?G-!!tK#v_O=lr`@{2S!AAOfnqRzrpFP zYj9O(0>sVcE?1}2Kgp64=yfO^G;)Dq*tdXn? z@`M3`=tT+{%Uxp;-I${dZjje&;WzVXVlTw#5}F=}d@5>Q~~?U%xs`>T@5lPAZwSl5)!B8NyPZ%P)k zA9UB$ar$8g6k+ppAQr`lQYIasW|^u_R1X2)36mL4`HM?zfOHX$q9~MHPG{evi>k>J z1_)}bqhq(#E<{->rgE@p!0p-zOHJ5HSmzS2( z;LoF~gsLfYf5*3TcnIz(WNLZM!MH-pAWDVQRDe^Vise>CF|5DsqSjk*9W^o z{R<||UG6{^@&F{0$-&1RcjcH63T+^CoRum6N%F81Ay6pp$#^P7kYwMZGp^r&i_{a2 zE04|~g&0a*)`f~3a?Rfv9=^KK*JlW*^r9SVQZ*J{Q0)!1VCGoX@sw~g3lYDwW~19? zE5xAp3(f#!=#WVcRgG_1s;U}~hBX%Y^gM!M3$zCr9AwKAbPGZtMWR(&auB$y2#0FS zoeFPA8bX74Dly*4*_?^On)5w<7r%OD=UB)fW`nq8s6b(rZLP03o@eeSK>DF(v0``a zEUO0ejSCkpoWI!9i@4I;t~kBOAB|+L zNh+OQNeJm2X~g9mp!B>M5iFZ%Ef=9G#K97wE-*vt2Uc|1MX8w+AjrbTA4(cJ%brXo zm9T7~EVJtra@47IDo8vRHo|!T60SiC@mUi~XTt?ND$alP_II9jfFSFm12|yQYDtQU z$T8@99`dk6LLnVpoio4l)xH{}5Wkhv3(?$hH8zs(DjT)c{3P^92XC>y=6AXk0ye@T zCz}F_PYNJdEX%TTc{#2s^o|@Eq=`@SC!a#@&O@E|%)~KhO*b7obLI?Dd>I4kn+=Hb z4fPG@8SvUQ0TK=cEPVJpw2n_k`$=SDxWVWnkx~G`BPWPQiZqEHJW)c1*~bVY zCrV(`*T(;#O`NA_Y^?R3OeLxb)s6|{%Vq+}{)j{Gi?ZUA-i6#6t*ZwNY7sT(8yb$h zOL_NuH|v0o#sJ?L07@=gywLR1>(Ew1-|jqYyuc8LA$q@px)8)pk9vn2HUi?C#ex>_ zP>-8U%qDm>m2I+#aRl4+TqPC;7{a(A4IQxll0Rx$$Tf2gfLInf zPnK_Tq^b_8&?};##WfhWVVR^ahKE4#9+hfzv^}{uIRUJhl z*nQytz*$ZyZD%0#wat7v^Q7Vw-57pIqx#;9zkTD`Yt;AYdvwNDRmnjn5OyLsz_wnX zB)#`9Lx^=f*1r~APo%8c0rqr3i!evDG=w@j+9q!qF*(`Rk%bX9miPhRe9}4c4Ke9+ zteYRI6j(^qF|FIh3FLVSq-mI^6l>5AVuMr+sxij$Q z^&$EYpoFJ&Jc9{DrCK=n8G&CYd^MU#nS2G-R93_yn<`VMHZw0bm_mf$DIudYYube_ zq#jE?m(T|#+=oTma5n zypn#+ynPmcD6#VX(lyYpprGh=eH4kV#CbJkShl!fuX5C>sMVOdUuXh2#%Omx&$xT5 zts}e>B61PLU0m)C)V4X}-x@1SpYiJI?oT>{zytI=HEX>_O7O#1K&hwuo#z7%pn`M` z$3y+Xsc*+1a_d{^`}E^6-nU^?w8n(9+ookLRyAE6*9i=a;%kA7m|D z&bf=R>(@|yy~!E%?V$XGz8yd~Wq|%eFu)I*KZSHUi+q0m0fpx~2Zyh|w)o z)9(QoFtzjeaepy4=kprRX>83=lML56t5HeKfpichxsx@aqCV40eo5)s!T~d-`7-Y` z2-;3+C8Q|sjnNc+CqR%u^zB`JtxIb{q#q2{eJg;lb=;^a_d06wb|4H6Bb?xEVYCb+ z4FVw>KnPA_uu*^RnFNS6D#OiA z=G2Pr5upHY)A>ZXaPv0N!R3K+GoVrHt+uQrA{}VHDL)k*tWV4Cgl2LAnQQ?7>bHx`pQ2hp)PV07Wb~q*|Kuddzh)=x6Q6p)~0RsTM8}2*6uZcazXeIroet#F{S<^w%A6gyVU13C%bq-RLp%;N=}Xe z5R|U94xgJ(lq2^cDJAQ*%gPo9hB%WP&dOng-hqmVYgR}Ckr2(%Y=A)Y2LO5U`9rSl zDc6h(ZzL1b^VLyAHV7#b{Os#f2$VcfFKn1@ z>miP^@K`~k{w$u`CM|W(NXa3JK!KBWvKY6|5lixKv(#%`ri(T{X{t)z$1%dTjZalC zI*{%zb`OSka&vQw9CM$=W{~LM@eo3LIOgLT;o4T?4sUPgO(2MC?>~I90O`AUzQ*bD z$|#c-bBR@&I+)T&&YGahJGX3XIlR`us5W3syOD2*0r~8OnKONu%6p!|#dWCY>Po8m zkLl&?|G^QC!*{ZIyD%uvq~eO`g4KnPEz?R>{j6XJCnC$xRN)8fN)mr zpeRsSZAc&XA<(Eld;3BFL>$S{qnE*{lFN_Hai~DCOIM5ZWIyT+oq+>iJ<|g(Xs(c* z(C)82+IqRARgR$Kt^>KG>weoXFYItU6b@@Qc9UbdYb+YPn&6aWVP4m!@RJ4z3oI%a z_zq)M%?7 zCZ#b@j?L<%?HnOHkg*-TO8CtN?)bFuKs`CMYj_wNNj8sN3#S{-V7M~bF&Jjn&){{*G?}yc@ye6J!cHbj@j}QVj4Br?^#$9gb)!># z_pG_(qZVLU_gV8w6zk|CT)8#WA3uJ)zFkNRBl&DY*n~v@HV)wdyCygn!@xEPOJBaz&F;OtriNC@tg`yoHDV|2Y~bVP zQ|Emj&d{4QcN;>QK(5w64wbb8GMPCI<~lut5=SSfKvQ_P_z2U7c%iF{hKQ}xtzBJR z3$Po`Z$pYduh!wzdilYj4bpDJ7gJ(+Xsp@N@M~n@4k7W0nQ>0gwyG)4d4n@6Z@K zS$Zq+Mc-qhF_<_$=VEjzZZzaMM9A*senpP7W!}f51JRHqSBy2}QR%(~4ZBGo;!VMC z1A9k9H3w+q2=>OOke)SBtA)hYAO-wLj*s&SgR8+xqzeipi8D}|~ zAiz*3ymj7H*?^!}EIaTz1jmc zuJ1(1&`)_B{^SDV%33b~LeIZaY&0n4g1`Y~{~RpMDk{qTP;D8deg$AN!*`ZexGG>} z85A}w#<~1W!doNV#AF)yoyVe4twmAJS=;!VJjI-k>_L8&w5JH&pL4u&Ls;=;Xj+}$ zWdbp1qlS?xKR6siFUys${5iRIA%To-J5G=X40`j0XKovUUAlVSW#@fiVr~AF+XY8& zygaZNw0-YM#R-XCNk`zqtN-0H^=_pUU`Z8HNXwbJfWuGSAd)RS_<<|snnogogRESO zV(=(#TDKGOAYQ=;Yv|gIrW;p>GKW|{-ROJb9f-&6nwwsWO+^t&Nd(wuOhL<~zufCB zI6ak8CN=U-$mtzmLrgkZ8P0I}K<3InhWdFJj5(S$IC=$P2C-i>_l z(R(rMzgA<@AJHq=x*8}v8j^|awQG9aaH378?R`cv zNkC90%su;?RLXd#VNx4ikImwLvcTbT8#PwN)Qa)h8$W<;LZSh~<(S)?S|vb?7K@3) zp7GKUGKqvcbWeDde*8V53{joJTr+Q;QQBKO8hvc)4CbQ+N=xjEN~VcRsbPU5#4z-u9PU< zUbRwjIs22b337Tf6SbQ0<_8E;h-}k&&Ob7e>rSJywonFH9-KYzQgNO#8t1Imv1Po3 zMv>MNiwM~z7dW(`JScjx4SCjPy)Q1UTi1e8_1ixOXFHB3sd`}IaT$M)zW2ss>S$QI z6XfoLRv(KzY$xXt3MF*`;=|l0%q_3nJZN^}D?1fQb z^-*YNpy|3aBH`;#TCt%gsCMXn92tXrt2?zPkv|mM#tneT@`(CJ{2hLevjzZBDu;<= z6gr1<@MlhAhvN2%3i@vn-H#`PkhQHhdZMV9rwdsyk7SrYa{Y&4atM_RjvpgltSELT zsD01Y$GdE_j{B*NeK~(Um*2_F{6-i>*0Y6>?|iz-?-?Iw*?kC(!87X&7T)oGSG9*% z1A_`6ZTHR^8F~@M`|6$@jQNAFf`KB!i(WSt(%3x_9lhM08B0 ztH0N7gj+&U7kOev=}rX@pNDFmam_rI_<*IB-;is5Rn+WIUzJj& zL0umk{4{qzdi%&6w(5sx*P=_&DcII29qEsf&}8hGSxWEh^R^RM66SsF8M@zUwzP0R zpVvn?#B(Q~LF3JHQJ#axg8rP0AO<>+vO~{^rT#ENMeOPi;-T&YB_*SM8-SrIPDLp7qU5tt0Ok3KvC=caxjoIo*uv5=ye=`5HwY zrMQRJF%wAMC;HG)3UbkLwidPT?h34XhEk&$&Ev)N=_xx!doMAH7@;(-`iXKykU$P8xL~O>&~Z|_ypzSRA29H7@JP__!9D@YW{!5} zqDix1<*p6L;VojwXz+DD7HGV;(19q&@w8=3cIh#Fa-`c}nYD4_#`Wtrnx1rl)zj-N zclj-ZtghJZq5Rz4ruJ75J%~aLAa5=pz!Ud-4S@8sOLHlvinnw+((hwt!NJvU5;0Vd z9jgiZ7)*F(UoXL~Z{LMytjOB;DN;zv!iN5I+p>xb3^-!eub|30{qV6>%ANs0 zq>MFf@Ans@;NaQ=PU;ZgoL!S+_EHRd)RkQUXOYS_ME4D0)f*1u{dW=yAxV<>!bl(% zrG!aj;Nix`!=5L7OxV*KbQXy3A9+~T*Ms2pxWv}%SX$&OAQCNVoyN^A1WZUiQT{c4 zJ_t%@U5be{m*UMipl{~uZQb7Xo2E^77t91Qn7>b^-70I>@a{%fgJT4UVJ-)+NL)D> z7A^Y^m6TPUtgM1o8M~3zZw(MUzn(E(FH*=7>te0omY!WIEK=c%HHpkraut2ESpht5 zlLUYr2oKwNvJ0~nH(HPie&>wJoy1)xer~=znBnx-5`3yAS4&UyMYK;UR`9DG*_W@ z+<(w=isYO7p=ndqO&Q>pGojrBL@TnMtu_P}o`!(CphHRkYlO8mS`3xthz%ZmQ{|f# z9y!yZA!M`?TS5Y)8ZVvxsi~=DY*CVF`G70Yd}i1G4N z-pE7OcDjIo9QWh_f{$9GT$_l4kCqZjbSRxd10`5s2ANL8m-(ehV8*M~fPQazfDZ-D zL0p_J{Yr!9ueX!kgX+~DR|!b+@zTUMKJCHC>ROOHsXT#8rlRViJQwAIjLiSMgWooE z;@y=cuRV|6QQ`ocB8yLsHX8%rg|=O1kX{=h|MHCSdY}7r*>c%7V_QrCjY4^<>frPH zOAKQj=~cwCm?aj*yq2l=c-arpg&gDoksJQ@>nn8lumj8K1Q*h!B=~g>QJH|V6e+Om zDJDyiB=3Fkst6B})t=1@`2$36uw2du{nJ23I>8fK042Wkk;x(O`#+3eea?MGGCB>_ zHqrPv5#SwSuJB>5eL890oR2(a3bE5PMp$1zL#56|XmWo3-rxw{%o|*%7X>+7%%-C7 zS3{Y;aG?(L7|Oz^lA8XSDclcBPL8)4YGqvule=uvxk{IK=6JnGAxlZUaTLY4q$ReD z=L(I&bXSC-$5PDRm%EO$+{PYw8EG0i`Kn4;N!#VNETmUqp~rJ8+JlYIG~Z4jBbufM z7+I<0)KGZ%>b2`Pkiwrv^wc^`0duc!Z6yhKto2Vr$|W6N1wfb|kPJ?*PxV948kH#P{a=Zv!<)H2}#ullcM8H#QmvInp|wk>1ZRglCJ+ zAU=eW#oNw%0LU(4NdFF@Pe1>RX*j%?%P4($CNe%gioa<@ON-4iG4+mZX;S?okDD#7 z&}D3!UdC6r#AmLL{r&4!4q*@ktA%Dd^!oV{Kje{&5@?{0LVcC=mgX^(a+XmD9lRn{~F3bf!Hv zmJ`!yTegT@h%_OI)$rHiqv-?%>>Py!rL%v9i<%nT(}V}}($LQz&ElZo12onI9R-Dj z1vI@x2#v$eDZK#r_Hf_Vng)Zw^qz>EPH8uHN#$q{PYm^xH@Tw;<0iuSO54seOf{OmO zeeJbt%PSKb13i7F*TB`G;pZ=Qdqm0)Vx2!ViqF3T<+k@8v=F?7p3YD__4?tgkD>CFkg`s+DQSa zs}BSV{MGoa_=_Jv4srkxn`Y87%Hg9SJWEY9G8V;)yJMHDbnbEWFC#SHpDm-1qZ%UJg0lmyrP~A!eg8b(6p+kwjmVG z`&%+2RM+VAa5ali2RUwRpdc|GrqaHU7|s$PugiD%U?l|wgpSp`OSyaKm5fGb&pTB8W`$xI>h&`F*P@!IN zEeZIrAU9x*yAPLbSmRSfM5qDL6aAeNbujTWa;NUtfyK$ITZx#41X-u6El<9HVHIB9 zh9WhYVbdnj6z#e9^ls$?)b%5ET!WprEEv z?hodJ zuqX~VWS-+KjT!*qQ3=l{;JYLM>9l!s^AC_fhA_~*aieMDA;Cdt@Smp-kmL1gyHNF^BODz|?0bXNQgwCccT?)Foo6P}gEW^NJWyOVIyzd3X8lm*BAavt zkbG2=;o+U{$kdm?o6nfm;!B^&97|kf4J5>>P8Fj+H`??Af)7<=#fB```!VY5n&#QlD`8%{~<;L2tNOl%c?qM=pF_6 z@u4~Tcp>G5t)@pIjGSLoS#6^Gi(8(uVhne?TU!@Tl^p`*U9P6i-OI;!AG$W2iR|#z z%w1J4t_zVuo+-|vbRmYftfkHmR|M%mip4cV2Z-pCu*edV`<9Tr zYK{@45U5_eGk@I=d8A{>#11~<2(OCSmyG1aN6^p*W_{%6(vm`4qW_@oX};lvsR`75 z^8@${{URttdfaBpqZwGom>5O2!o~-^Bd?}$F zzC*sj*6EEe%iCzwc?LzMCwx6MfKY7tv32t{rfbLoC-2fWM9HP~_yBap z>0eH(^It!I`(Za4_4A?o$|#bA#ZjYoy;!81*1ij8^0!D=4FQc21{5=yLa6kf zG4BAa_Zcd(Uifs=l5Jpzu6}|Ha)_R{ID>lmW$ci)EH(0En|ym&W9fc407!FFjnC~f zue+lVhvy;4ESAsFNQFn0E(M+X3+CGOfj>4lqak4 zT^}ACEUOC=Ai5QrD{y2hA;cWb2I6KS?+A;6$CTOfE1@K>n}$5hzHX7K^Z3P(K3@j| zZm}D~H^Z}{x?+lbV0`@}k-vklNzM6NYCMk&(%pPn`f|uNEiN|m{g^DaBDv=cRK!Cg zF2Rm!XA%(n63v&A@h@iU9YtDP7|P9B152u!^X9^i~OX5CS1b{2G0(?#I0F+APi z@F+Ug)Y2OF(NywuR%|YkRr;>`}!h~fMDMr@_Ba5`C_n&JU`5F#B z{)ev(cT7x7baaG=Fwvy&jI0Y~sg%D@f8hr|_&1eZ_Tlf(l4sBYIA3+tz@Uo;RRz?5X98(KrgTmSfi(uP<7$$6l@Z{G_qz4-Aje({Ts zzyHF%egCE$3qO-v>pQmgX9QN>hARRNYcR&L0KyhTyS}-_8cX{cH`h11$Z5hO&?{Ez z)WkYmQR?#>a}-h)%?QJ*_K%-GGK;G4LFaA=iFUUVRYM`j1&4tAPryQ??ahewN% zd^8AQgf*Tpu7bR0oQbNX*s@P^i|3_XVWWxI`# z++w8rzW?zre*NoT{_y1U511;B3Pd!BwUg*fFb&}z7`U~@JU zSf1qa%hmqCjp49aC^l`pGhSPy3rQE&9NA2)W+sqbtT2Ly*@4WhMicrujj2?&J~c<5 zT_ePqW-Cn#Oc@-K@W+{~!eYzqwef#_03$KNhl@~8wJpcCVpZ@rr zLCF8~FPfP7=49AV7D&v%)cZh)K;g&aVUaUJD%Nz?P)54m%jN8^JEb#NLpH(HA=t0? zLb)zDMHDx?oTrZZ{@L7}IzZH9%W5y_yd$;jBA8THw&JQ?{gF1&fxMH1(4r#UKEs#+-MLNb{?|=^;mJ?!{_bpl+!4gDG2H= zjDH()2V1V5DJeToaiW%JOR1#UVBK)D75j(B)34_e_)4x7?m2AQKF{`y2vKoJLDisp(0~+GaFFFz08z%Vn4MIlIc#|6bBxdE>WphMrdA9{5%Hl{<@AHy{pfr0679aiI>CZ1CD5%Wg^>SB}@gE(@y zAVB_J`{?T-&0=`#9xBHx;7b7H8piW01pqQwK$@3|GbR_U!$jgxB@sLeB5E6wDZFH0oXo{#OmkK2(%WDu*29bU^DqVw? z)!Kg1S!YvOL$$WZ?&|3m`BFCMMb(9LI`wOFWhzkTyvW&gL-v~7brX`oyHi9+nA?z^ zK;^wsEE5Gw@#bpg#14emxPJfsqs7HX_c=5LM1HIDy`YmavKcp>uxt3>|Hs3vdj+@L zIzYHXXCH#6z4BuKKKK_9Al)d8xeLi_6gik*nHO@Hk2X?@`n^A+7Zt)yX8tkm(|u-y z+>(|E@BRGSS*ZowhlS*@adtw46n~ZVgMSG4$M#}7^Anump$9VwTFY;$CmU8Tp4x?| zZ8}p(C*Dt1(d(*ySEm9Q2_$lNNPunF zFgejvc~59-K_=JT@`u!ks#j=uH#g%O+lX~&z-&H_gnnCg&SB87;_6woO?&{jCjbN) z#Np6~B0z{zhy=j4fSCrJf}GUs*8q@w3FK-14rDrXpMXwzBR!cff?VJF-yY0zfEb=k59O z?j(vO%zB+IZKN4eU-jlzx}ff^D(ErH#Xu;1m}X!cwE5_=MHYBgl0D_)n#*)pT*P({VmVbNKSU56cciy2wfhJ#21_i>Yj`j}K<4s&+!$BipU;@wc@s6#5m{bAJPJj! za){6SXO4Q=e*hoG4dW_+)h`gjD1L-6fq-VdJ28RxE+u3+|4^ADN0fA1)u)P2g;j{2 zGy5p{dZh<-3T)SGIg}0R#}0(`)j_chu+%QZX*Ks7;C5W_M5em2pHM-ofm>dmh7ey; zAOy>@^OY9LJw4|b$IZ~j28R`XIdGTn@d2_S+1Q7uS3cE)Cv8DyYf1_|H8p|0c_ zf2BHxLm=#&2_R@4^EM%UP|(OL%S$N@v%yI^TJyo_TB#{0bs{6DvxIb-XxwR@uAn93rbTy0=A{Vn%e7(~8$;FFK zi=_lhEr}7yew7JiTyD^dFOuE3`O0d>dwBGni`3qeP z_&;~MN=TYhS4Q~KCPVrFt4B8IMOR}br`)C~wH?#kATQ=!CF(P=VNHI^EB^?x@7=rO zk!c*)ov(!ToW1^b<>AhJRssR-HM_iejCr~m5$>DTfjUAs=}pm=<)yf%fxx2<5Ucw* z!n;Kb3V6|(*r2ZqrS3A6*k2L=abS}k(s-t(8cP9Wd5)unun6-V%e*<+?MG|MLDZ|g zlu+PKuS17oe8R-a@(2FyM?e1EQ$9TVq?UY5HHb@%tMccg$XUPtx|j>BU;Gsb#5Z<( z>TXCcnAY$WQDdvD$mFf7k*`5FAsw{!Vke|#O6w4%C2l8vjH29pKqPLeLwDGq7b`%% z6pVejMDNyysz@RAR*CfHI_E9(pBW3>xjPY|U-b+;18tUD+!4z4AA%Bi6O*PFOzjg6 zHPXV&z7p2ga)<*@lV77jS%;|cJnm@#6#XKz!N&J@;b<$>=UDc-#U0{neqjv*-}Lsp z4iFnpp2aQCQKQJd!RJgM8aVKe`HThWjMIO_ej+wQyS>nH=*r$iEQ8yhJ z`h5TSi~so>;DfCx|G@zYR8&qwA8Pd~e$INFsy4qX;%&%}{!GC8eY z42Ok8v_uGdjIOK%=pP%J`tnW$ZdfztOYEhAPY>CF2xu^HFp-=ZH$RRycTA#ToCnD~ zO@zRE#A*YdY6Bj-Uo4#kr#HU6gR?-<8aYY}1BA7ptIn!h!fkHsyj&YOa}EbNarjI= z<0mCfp5=Ic@CZQQzJ_Dq=@3O7JwYkQI8C()z6}yH3`jz0w?e1Ot80X2+6)I;oZw7H z%n0!Z{`|+~K6))&rPIRjst&BGOP6MZ*+M^d>w`tyh5X=Gf8|$t%;!O)Ddp8^%_ae& z@`&1^t58k|%PX{gwv=fn3k~#;p+5+8p@0yZz8ol_ek}2Emr^lBn?WWf4BtOMp?g3) zNW%l*TIrdvr0Z5Lth}DPcS7J>MF00w7S|tA+p82ez*uL}Gd1Pmv3+tpr1;{GQ1mFf z)TWB6ri3X?Z!9!u)++I}ElAZNDCYPw#wHu+RObTuHRQw;j%IT7s(z-OmCzNAdk}4p zLh*2+Ni(ZXc}zAGL4xA~YUB$&_~0o@!HM*|hUi#hM@?0ARe8A-^Qfq(s;Y)$T2#9i zLiP!hx9Ic9srkQu^P&$e$QMz-sBE|;*f|h%r zM06q6=CW>&UWtc;?lSRcZnnF+j!4dr`KHjsO^?r12i!;?^Shq$Fi4D^!0kYQ`;xKU z$%yKA6+RHL+Vb*R^GYGL@f88G85@E3G{}pZQr*k>GggP_(L=}bfiE}#1i%=Z#;qkx z3{Y4h_l(3|CbUU)16vSzs<4tncc;^WrybC^>9$xbZEddZu5Rf1lA?c*798)U>W@Ci zR!loxWhg=olMOJbn7w{)at#Zpr51L}*cKLX0zr%g?oOz3 z6WjEZQj$}f!pt#~%g3#h(y&>@1b$?GN#EL1%*j>HFH>`Aw?{bCCXs@R7$A2hJZ+`* z=QPb6Ln9#^o=lc#zvyVLcilRoyW&HqJ`qBZ)!NMw)~9>PaTZt}Ajjv&H-BJKq!4AI zbtp>LgPAJS933(FEBN;YmU^}`OJ^Lstl@3E4fiw)>>+r&b!-a)&C_nZ6t9Cx?aC2pGclQLb@)rPM4k1F6Ak^v8 zQZbDc24|c=2$;P-0g!=yih1-wyBYc^K$iHExZ;M?d37VbNI2^K_PwI+Ksc$y<4>AD9Akzg)-)`X(D^^^IjW6nHTqcfz)&rmn8L^b`LWsI`fHv)H|CwX!^4RCGpz?ZvA|e>bxdSRHe0^i9sv*<>6rQt zCXfog$!1KGtjs!m5kWYV2Lt3*InLIJ*YgyHxyOa46Uq~s>Lc}2<(}4tgPeM;foia* z*@|@ek}Q)KkJ`K3mO6*MnJ2&ahE}rdR9kmX3=6ZG}uB^u@1gl8R~Y)*sjC z&EpfoWEIbami|$(|LDD>c`ZmOLYltSHhqCH767vH&5w&Ufrwm)FYeuld2A~QS<(Pk zT22etUG7`A@=5yt{(J!l3`N307=41H>k}Pz*6ku)J?Abdt7)n zGZWrAngX#OOWvKteq-YPerlt2Z_LN0BQz=3J^r!eL`Yg_=`XH65JJC;cT302{Qmv{ z=0TeO1ciJ^;hLLhE8@P zy%uDkzi-s{g#^e?iZp>>M<^?-ka-FTdG&OzYe{* zoGf;`yWNA|IWaXP@lmu*`Z)G&u2UE!)w$%&AS=VE-GBw4IoB5O=9LY?i^zTY#P&|Y zH8wUDV8)0{2FCOZBLIS@&!Sdf0UA*V=%Y5Tpg%AspN)-B(2vEapr6{;nTaaIPi?jm z$@VPh9^KRKDl2quU^Pnu(B;c)nBF&h!HLh17R8iwT;T2=i3lxBsmrskjL2e;gqIbT z!UxxxvE3vfGCm(R6wjIJlRsh*HwH8D8-Q$VonZy>Qm-+m6mjSLOhY;8>Xl;hz9@(hmiD|ZSEGX z`1AzwW%BkdR|ztq6Fc-g5E=8{nc($pa&=>M&rb@hr;5)#KUaXH0Gio0jC=JliwaQ|i4Qxd%@Nvj4qe22XA%akdq;`-Jz*Bz*^{ca|k1Kr= zAJ;T|I3&|?V@H+A=9p#aF<7(BHD0lH4<8Khqc0gpyC zfM_$~3VJP!%GL)ZR*@zU2@rkCt2SBjltxojW2{WU1VS;uGR_ha5ac+su$B@8?Pq7< zrJ+R~28O|KctSF;iX9+u_G>9Q#RMWNEPUwxF>k<9*5>m13KVC%6Iht9ihTRen z0dkToWBK>;J-MIOYxzdV#h5Juxnbr$fdJW;KGRts!KC9gw0SSIx6{c%{7D54aj@1B z%-ZlulQ0OqpLd;dNZy0py0wv6-!c^Wv3_@M$u8tzrsg!vKQ&2s*pI~&lZ*iInQdMC zf!-I&(272m9AIgGPI@g6Am9GDI6DwUVa3BQdo}(@DYNUQ_b`Ail+#;~K%iOz>*r@9 zTl4Xhe&VyXweV~SamI=w7W=lzyFI{1@dIR1Te!L1E_JyVnb7>&hg@!_e5&MWLZ%tzq?x^Pf~k((bk)RRgxf+E)%b+lHWQAO~2*J?5R%2iMLleLJmcxYb=4 zAY=ZiFQ?dI`3%5}Pec4XpaF#AF#!}soeABye4~BUi6uLEI;_T8h;GHs^*SR+F2Flq7WU3no;gbfGD599TUx+JCK4( z8j+q7FiUJWf`(dBCan}<(wR(Z9TW#Hyy|~D330LF$A@2J5R_H}&H;mh8$ky$rd{NA z|J7T_oVpsUgu6%Q4*h^bNC*dQE zBi{4vop613WD?U39z~WG_;p9y`TcZSD5hbW&=lKG zMBxEiQ4=+Eg|?1-f&F_|8z7} zB}x+jE?MsBBX^B+%Y#5j@A(pt=<3g)PX6kvuSQ~A_VW%g202F*$!F@$LDY8@0AYny zi+6eAP}75|t-%;eQe=L)cN8F>F5{d~`dEU31+RtPRcH}b)uKzkA>vOzEkc0&0tv)C zqMXcq)L?q}J%0L)X7^_oi5+6n_Q@c)q+dJ~3n?AH4O--x4JOTkkYCF)S>r>v}73T;mYlc6i zOdphG@u4!khf#AOfP7AlkJu1yz7z{a>7W37NNd}ct|D(h z{6>?aU)uV|d;#wf)a0b2;N)b`tMAf%LGm!BAMYE|AjlvX^&&pRcM60X#L)ES|7Oo^ zAh>Il9YkSSw-j&O_s@4)1hXfPm@4iB zf-kp6&3R2uFFM;Kv-1cqWI=$`N$Y3ZQjA1kWsT1Kp`TE+-SQPRFqH0cV0Rb0uBkhB zzq~sRluXiiSFLZ5H?Su6YrkpoBw8|dArk}o-#x}1J&!}?Q^rfQUt9e#{84LAoWFls z%DXaB(GtP-tT$iu!y4oS6$nXySnYECoov$^)b(&z9urW_D6;o54<;$e&-uQJ^#993 z3kH+?YaD<71p#tMc&IqoKhQaQ_Z5xETw_7fL)i2U_g=+;l;O1y?L}&#SnZ#FTHGB7 zA{!tog{TBlD1UI%Y)njO3i2|gR_}0?vP*te+pQu-hiP=r_rD(~3G60&2$C=FPTZ9W zcYgBLef<9b4usUBEf{=V2aMy0KyqMUAQ_Y!H$U4Qk%_Wd9PQPCv2c|r2J`a)J zY~3U~40(>}K*(WPm(W8Bp^*dsu&D#Fx_d%-??GR@c=}bT!$HTkGeV6^-CA>A4+B;^ z2V8CHL+AgaLf52Kt(plSEwjrag>ac}vH=+FzbXd6SBvl_9W>s&vzwel; zjjB+hm@*%~>&7H~Xwi%I4#d0#zB8Vqk3rgL=1?Y(>0>sx?h;uDK&)(Ci6=3GNOL_$ zaRLO2c}NM)^OfhFdwY9hcnh0aaE2(kZjTWmUL=kwR!QjK^%c-bg9rcZaZ~%^(^?nT zrcq1lY z4q<=|gsi>XmYGcAgDQah2wLSWwvy&GjK`=~5V~V}%Q+m0ZDb7QcvCbXN}2s=V@H#; z@yZN)IxX1%fgz84f9IDyoL9p!-j285I%Umv94+k*7D_&Iz1USX$Q&}S6dCa~j3IwW zMaI@0nd1aXG-xQno9R4q96r=o56y>JxmWN-xJHLs^$P_a9K-=GJOQ17>i;qih$e9#>Q%8z^5Rh)m(wV5L=FMgaU_* z$m9v5IizN3-=~(#tFjT^j{zRav1mrWOg}_9AEZ&2*=D!d(plJgjTA`L9vsquwX!=~ zA<}lPpt&I>g8#nEp^ucgC6p;dDl$qd>=_AdVk29bHYIexB6o7>L}RyM(tOAyGdwk*ci zw@qd+xCY;>91;z?59sg_8dCxrkx-ucU9QQGg~*YKKxKSK?-c02q5|_%xsslK<#ClN zjbQHhoISzg3apgrfQM)9rz>4%6>i9(VuV#N|Ac<4R{;*pQy^KYWV%$DY?A;vRAL^g z6qC-@kuP)FkTKuzLr8BH0!UHvu%Lx?v=kW6*S_Jov@?Iah<})hIHI9!K#R8nqpy*( z_0OREkcubHN-;l6p!o1nDYgcxXdpXgJL=pU(_Rs+MW0|<6+#rSM8@gdcLWHwBV4Fv z#bI{aON)unK$~hJ@aA-P7RCqKMN))KL*g2o?6rXNt~zv00IzTi$VL*0VnLHEgv_y`g~F1hryTl2t^rJUrUdP1E(6I@>p7{&7&CmU_@7y=sr{t3CK^rbr!zYS6)7|! zMF&(0q1QrRez&)8e^$&1gu_gPlBGFnS-dk(7Vq&XWT4Bfb>r5v3!5;rWzhTN zFu$Y}8Sk&fGstiU(e}=p?zU6b|J4Sj#Hlv7^E_TI{R33OXG)oMZuVh5fb@-`MK4M@ zcd-H33%FV?-=CXX9SC^$_M|LLc7z`1*uaE9zd&H#sbaE67t&~`r5Ue4mC3v)o`X_&g2xD@@v=T=B{0zJ|>NXAr0sI?v(myd`;~d%ypL7 z5=LGLkwieNUKxJy;Q8|M@{Gflr}yvUS$X2YGsiZ5agsme9U2M*uxQ2> z?ZU-2sAT2_!NRdfX`8RO23StwLm9|MYfo!tFo%j?u|4~Qrrw&T_ww@dYuCg1Uz`Yz z(8s>>f8VvKx)7B_gaSZjTb~++A}wv~oOuVB3>`~zzb4Pr_L~}o_!OlPK1Pj2h+)Kg z>(j#w22IB*GIrHBYaXG`7BFS8HVA3Svm-H%u~;&n8lbZITJ!=&GMe!VE)dTw5rPh^ zA)6ud9W<(p?DGKMp6lUkw#=#2`zgXp5U@;ukIN4LkHNk^XDV8B~c3B+Hyt+odGjdgWn)MSXVvoX8EuOKNyn(fl_ z2iHJo&fkQvm-}uXfUh-fvVv47Q5F+HO)Umph>dO}-Lk+s2_VQJ9o6LqK+e0^ds6^! zADJl;I6e2l^UtVik20$Ss_)_ZGoQFh#M%qMJG(_|QT=z8svHv0 z?*r6GeOUQeB9w(^QL;?@z{f)zdJ!H1Ac8rz@_gVbW46 z)UBS#;&$i$Q+jHCM%cDR4JB_~Jp~!zlKu5swqGH?{|m5FN_$xBVg?KuSSF1!yL& z;z}TUts7~5n7^M;W-ym7LDx`||70U@0NHVziCz_?Q~obsoO~%{0uTv+mXbGD`3vYf zw8q(lq>pS1)0u?&3P48GUEge@f_7nm$P6MQ(Nv>>1Hx4>xN(*cV3jBzGXTi+af*!H z?QK>e|7VVRv5dhv`vCEgbf4mHVj#IBc6Qdl*p?4M)rW+TLbA8AbF)$hSdkT<7oT$u z4nZ(=8-Bv-N_SQ4jVf2(8!u?Ul^-57yuTl1v{qK0_h!-h{HU=y4SsclIg2!a1T=KJ zm}1Nu-O-s)G=qU>1*#E>#nQlH2Em<3`rzs4C_Pzw^%n}cwg5sRljDSl_b3|t=+At< zyc~PiB6e;{JzvF+iP#fn3TZCY^y@;$U7}x8{^bBj6~zmY69JG*=Pm3&cubBSyal4Xp6`<;@-OB>1zhCsFK(`FXr|s9h}K;%*x_n$d9w@7wsv&|t&n1? za}5>Oj!>_#5;TLs(m+?_=i&f%Ff@bNXOVSC8@=J$sMI$by@5_7Pn9Jt){?tkA0pcl zVZt+%cgW>e+jQnD<&H_O*lCjzHGCeCK#teKqJDtNAoGoy&j5Om4?d{6)aZ89A%Ub> zVqKX&w!QQ~P78D8Z0m02%9!MDah0KcuZL6?1yIh$Hn?zq2Hu2&f?8I4ol#_k?)3Qm zW={0b>Jz+#*=9XOxJAby$lev;Lx7nHWVNQMwpX2c4KB~A6mM3`SbVvrxfbIe>iO)< z$6CFnBr0

QE+mms=S6N#Q3n6ue~~o52$72czUN( zp!FHusSjO9dz-_YKlC5rsZwk#lNQPBi=m%AttAfzigsm|l-@qL@!5^ln(}IsWpUr& z^0h*QCdii%BD-D=FqEpvWF+X)C<{j$A)3#sK3#bfW#i82YB>QPO3qZsy47kLjUA1( zFlw%8YIW@~fw21rxQ|!8Ztrxl^C{F=<`M5~ani7ED=kQB(yxLTUDdd17`ykO($0M$ zp_Z{`G7VGfwE0Th<4JB4YOFeOSz}JnRw(j$i;QOC`a@d2nHnLNAVcAUkxJe8tQY1_ z5IEC@7~*7f<%w!TPU=SRnt;B8Urch!osAG477BrI#WBezuY@k7J6U)~s3>#BsUL+> zs&T~|;~8&x)l97QrjWDBBu)Ux=N>3Bmf6*p&~%OBpdw@Bg1gyXU%xamGP1C+m6#Xr z31~XN3vpotamHp-+P@QbycFu)3q)aLy^Wijj5&p%qbow|PPFKIm+9EtCvB?xo2s=5 zXa8r0Z#8`!r*k~yH+JMTXO^iqxZz&IL22khXNmn>c4lT->MS;Z?A=q+ZLvm;*e4wb zpcg2Yg{gzjM)~yksHU;kcx^^efgbx-jYJ?I3HAv9fPZ$UCbi-V?1O-qh$G~|I|f;b zv8WHU*n#A{YlA(7X}n6h=e}`|zOTu;?TZ`5nwqBA7p+=)NguGeIW|O_?od65ECk^D z=GNSR(8OCCMj(}iHI7kHWK!EZ8*vC|fwhGqOX^WhqD{xA*|Mm9E4Jw>ffVBi3oW|$ z8WJ7wAqM-c?jf z5U&{^h{UDZD(P8KfmMi-0?Q2cMNI0Yrv; z6h&e9sf!W_Bo}vbO^S9FL(@l_n@ITN8f$aM(1B=_XNrIb?PrmgxS-!ZktG2G&`vit z<3t0$N)gWy^h;lE4_B^MM65qpyxKqtF?_xTGoG0*!N z7w6c}yAk*j-I>(iEaT%emEmPOf&@1DL*G{d7lz4Q9>94#k8M` zn~`#jso|5UcIZO7DOsAc>TQ5mV+hq=5MN%6ezK*CLv?vLe}>-Q))K>GbbQL^YhBwh zNv%A8p=j>U!NMv=v7fmYT$}epM1xTSd@w5LTaDC=hb8jM;I*K+z9R3{fCPn$XAVr( z>Fbq#9UM{35>%^7cz?LiVL^_8V(1xx}l&7x<8DLI1SOX%>$scjSslHsd( zaeC!L{v?Qac9Vvd66-8aaB@O~#)h7ZOg>5(+OB#6iR3dK+)V;!#|3C&kMw%&@F1JM zvJbe31>}jqMj(Y)1VB_JKuzGb3*dr9rt55?Y?k6#O5tRk_yAFr4nGFR;7+nt)gD;T zME6$=fGq#MC;{@Hx93(ysRBviedt~C>o4Lo-Q8(h%_OMa0~BsBPp>kdEmctgP+8x` zIO!LItcxytj?_$jQFS1)3Bg5>(H0BOiVw?$XGP3-E~d6VmgY96KddMRN}!dA-ttC2 z56DgqHtdwaHlGQYPXvS?bk-_8g$^XILu%kegg}&cJ$>{>Q7!1xTPJ_m=y;N{#!>(Q zASkF34uuA|C6OAlsf_6cQpbnJyK6BH-R~@Jr%Z*|Ol|Zz2B>{n2eQ2X$DbAB7X5bb z;HX#+(%uOEMsk27{NRVRUCv&W{h0)jn5FhA6wSAa; zHKk{*9Dq%&%eKbPejGvrB z+HwG56`H^R`2RR%)f;#4c;}VyM2bc`R>|CU%iX}^MU_7|UE{(n0}fyxcOdwD{{=-> zu`NL)K!A{bus)@|k?^~293Iv7g{Ft(s}LqF%G7&)u?cDb91BMi($gEW-b$Ze4zk*m zm=oDLmd;zn=Xrp8CAHOw)zS=?wEvF*vK*)V)ncqnpLpj3Z zP#ga=;m7;31&P(l$A@NOuJ-AJuMdzDeqVMMlG-e^$P1&$!p!(Mgs@k9xu#^NRSJ<; zim&%EheL{wWf+Ijz?(7MVv+ibH2E|Df|3Lv5nsg^CshqafmO_xJz07O<;>uF)82hJ}vN=_uLFBICP@gOF@9m;^)*68eu*ShAOE4*z%{03QZjZBzo}4W$rc z-L`R59YgKYJznb098E?~)+F&j*-`BX3wJZS6bSZAMvh4#5+I~@ z$^5||DqYZ%BaB^$J4^K%lD-~8`2;?=`W5xk{5JmD4J_4D_}JqBi1Z*KK;&@e@bCZ! zH?ipA3^@3rIA2`G)lnj$J(cFsg%neTb(;XepiR!AS8J=-h-w!0HSEykA&UY?mKwlm zVu_()Mes7TNpGdWVfEf}vrZNK9oNmGYe1ydpTRXZgqS6dMz7yr%*|A5H%EMVFx|TP zIshRiLcySC$`cG??sF1Ecnf%aQB-^RM_39=K`#*EO%_H7_}1#qU4Ck5y}g-N6ycKx zSpr|4vx0vAA*ly?AyM0@-*6^ z8~Xn72gOujLG5PDdu7Gs>t6E_R{$OK0jrP?NhXk9*`u3|ofA!sSi8$m_+SQERRXnM z2@r?@b{AiVuJogoPPzQ1;_x61fK+@y+IVesIhxDHUfG}x_UC^Z6AL{TfDE^#1Yv1& z_6VBc3AaumrV!yG9OiE?+^173gZh4vf_yCPNHHxFhniufn4P{u3K5JUhTZ1Ej!<4y zxt-l*wg#c%|1utXcGhOYW*89RoL4`u76NzEkwiw+u=>KySSg+U<hv7W}S$Oc5kNs%cvtjb7@2*0FTuRYNRP0O4T+Acwjd0I!`n^lFN!5s3nb&$~-W zS*;lD4iv2)A$51~v{jP0IsZzf!Q}l2%a5j+Cb;E)P@@}8vcl@mKb#`(_F{KiNhusQ znsH53UwW#ft;ci1F<^LF+l6Qf;m1P>qh3GNFmLZpj)w|ZAgphsOcj=*18qKjeSBae zIN+AT@|1LxpFtRY_-z*|8Dvl_rYw#|eG z8+-H482}++(V#54X?KU=N6{t_dRD}Yg8fkTvZ^-8q*g|wwN*78(c%7Kkj5({K;!@; z@A#*^3xWpCxUHjhw+%39uD3u^{iJ0f*6HaC-DghPI*JQD%4+8yXW?&Rjiu6I+PG3w zzy0JujpfocPa)~ZYZUnjI_pa=;;xz!Cuf(=+U+>A6Tes{^x~Oe`Lr!E4$^hQxZy^^Lo?+a#)GnHSa`^hZDcIcsRke;)l`kK zju>K*kEQ5XpGtr*Znd=4A@fQplj1C~U}7Wvcn!HYwK>>6`0Q#E_=&4m^%tkMarMTi zepHC`nzxI-;5r3xP-)OwSFcHSQ*#g{{E4I9?VX+B6E*w75nkvC;}Uivp?rfZaLaXM zq*aB*E5+&Wf{@5S3HKeM3Yw%jg>~t&Z5M&VCaB4Fz zwynzb9#bp@5TAdy$5m%@D6Vgx)!da3XVw{Dhu=*4s2QEN*1*;tV%-$oz^H zB){T87luD}lpl1%9vNw{YobzCb)|jW24iFUgkvVzr~7neVQ(@|oi#ljdSt4x)R*Ue zUdg-TMrQCra5Nx+)VT*#YtmJRi`sT)y;go9dzh7hFx(RQ1NTJ2nI=GF9FW$e7H%?s zu-7XZfcyY6ECG;#hs!sFZFMhgt4H;n$c_G00Hjar(XYHx09j8d+7bYQroN`S;`ICF zO-%`d%emb$mIV-J3ALPtZWnQk?L{F>rEnn#=W1XA_o}e2ooP} zsfPoeQX)QL6H^_^;+}*MyvXyR>DSre$yN_H?g2m~5<0pI*-k68O9~4i{rV9?HwE=8 zXuaET?G{u3aZ;kIvt4M+I&zhPgt(l$MS^wT#0-noatngM^t1L-Lai{jiw7XT3K%-V zQ1BYnt*T8<4bVutIx5CA#sgHXA(2OZ%%*j8(lj;&5PZF4K9n5De;4Li`gb$rful%wzUKfaKp2hVgc4b65=qvvmZW@=hE(G->Tu=R84o;lu_+ zje32iJ_@~vcQ-hxyS0SE+F3|SWkj9ALX-RN7_^;ifTUwGglr-p!+S!^tK6LzyGjN2 zm8gRup=l{=3+hlMKx8kDqqO(YonNX2VX*>)ML9o6eOp8omd_Bqnad|duhb^Y!g15n z>`rMAdYx}6mC@% zI(QPTTJ%?p6Tu<{>p*jFF}ad3gILM0yVzBts3;03bb)Crt#=2*dM*PmS}}RKa-G4b zv>MD$ac;**fof7TOm}sWedQtg^a9b>mnBLNp7tzmq;-H09%?YrB=5H~Ti$Gd0E$Dn zBP{k9bFFQpa>u-g)Y@|;aHdKu@$|^2tQhLC*eEN=Km)tLDklwsEBDMIXbkX15CU<1 zzd41BiNN|$!wK~uWN9O5K$_4Nfx$n1{dy!!l)Oe4(sHWAHK4Yf1W3IVYaZ9dF7s8c zN+PzhHcK-ABA%?16Z0BUW$l6C?*0Kw58m7u|Hr?+S2R2;u9O-z zmqjX%LtT0E(c|mauk#m9N+AO-cZHp2f7~UQ1B(n2 zx_g%t8Yy7eC~j`3vI2#0*}Wco`_rPSu#_<`m+225W-D!*_3pCvV3QtiW!9B}>SqBB zk;AtF{zC5H#XiU~i~>!EMyd6O%8^xo<3|6}r~QN4F<~yvgo@`(AU5k)vDoJ3+UB~@ z@!;PBf4@yc41P`ExW1tj;_*_(l(_>w?gN-(1$FITzb;5eZwHfZ849dvC@VjD1nKd0 z2#>FC4_AJ216c_vm*8irvNbl4eI8upx^p$x3OfYc3N22~B*tTgm*a zp(09nsGSIkbMa_RK{~EzW>~&#OGTDju{rN4c94e$jIQs+FpG07@f%pgcD~l z>*oXrE6Eb9LaYu9ugpQ4H)or}E|f<@<6rjdwHP`pJpNFTFivn%Ul$M4J$u4AjQ2qP zE*&j;mUhkf?pQ0wp@n0IT=#b}#?;+ZT6G|ciCN(m#`LkWy}7=ICoh5+NexG`9=(8v zr>EWNus6_cX>`Y+}D!T_z;kSp7|cyySpQVuz}Hn33OvO_41e>vqH3q;Y3<&Ay42>JHs zMZ?4T&m3d-*;y!9=dYAp61 zPuGO!gNQ>sdgt#)P`{fAyq#b#+sH?al^YjeG`y)73Y4wPQb(&nD$UBM;AY^Eq$x$^_9AQ2F zTpNSaQR?93nyi>)qR9Xva_@%p(SEVp0!IMBv#^2noiR_vGVzzlAAI`|AfYz{kPst_ zLmyT-gzUGmp%~;o<&`3>&2@b61RoD?8L9c}Cm

rF3(g4S#5NyNhJT>0_aKbeY6m z?<_!kP+x}wzqz+cqb7NE{W)hCeODi>AY#d0Lvy9WmX_0WqJp! z5g!c=1PI5U-(Q3xl7!-AVm!Z|Nej`-VDRxGf1;Gf6Q&$;(jo46Bu6u=%VM{&+vw_+ zbQ2l4uXfhi*=p(dKqk9AZ!*y`y?5k_KlUF#DjGd3^&U0|SugTdSl2?+xf$K-TFWDs zacI7kdS?MLd3|0_A+jd9j*Y<_`J7L;*S3wB#DS^JOzQ{H?6 z;6pz@F8lutkk?!6@gi4^DOa@=lG$hpOe}6>OyX@dN`3fbghcL)=Ujw!y6j+?G&`IZ z+pN|cr|)jJgDuGT#N8hKa0M1Y<|0ek1nD!Z*8k@h#YI#!r;y9D%SX29@NqSbG1b__ zE1BWB4+E+JV2l2)hM$6-_qR<5Nt3sP6!PH7%G2%jT+avjn=(5<2-=S>S}Z#p^`&)& z0*G}%-MVMuf^NcK1_^&>Xz1|@-%kPv5HjX7daFv5hD;#7p(sUD6ep@0+L1~#>x4_H z@jDaQDFjB*_4tf&GkVt%oYG7m8bg6 zYg1FgR6A|MiPl4W&_lf5VyUwl0MQ@VLh<~W4iLw82MFQ8mG|{)*TVe4ccJ=1_X}-D zYTdPWUQ3V?5LExnlIF)qqA>O%Q^~3E910^GVC?ubo86tIcC!XE)`zb8W_#(tovB@8 z2R7!9%Ck-64)F#8Zq@Yj=06mNW`lkTlG}wW_vHdaIp<_`fV;PmLeg1xYBGVOF8loN zESM^gXMQa2_+JgtPvrm>^ z;2*^EYmY-G{IN*Tpi7J)h3w3`ph0X_9>+x}NayBz41id!Ls(j7kr^i^cEB5|he_x}5@-YbR*>mR(ndQpJT9q(z*3uvv@V&bUB;XkjQ5#PnU8gA*AVyA^{Fa8m~ zb)k-u9u3@o)Rmyt60^>wcm|W;_?k8u$5BX~af&*iHx)dL4FQLU+A2?X|& zo{3O4EwhtG(GFxpcU!$|)4}I=@yfd14IMOJ&Pl;qDt9}eE1tW+mAUzk?-hlulsE4h zc{uwj1d{ZZJ(GE>+vJ`bPXfimN*lf@tzbF4vjL0E5P8|68y60<(_xLOomCj5AdjS} zD;}7=ZkAw$?9e#8W$qG+fUsA67Eh(H{8(Drf+Q#O2G7{UilnZMnTe0*$o0pM9^HS8 z?zb=61{%AjSERLe?vXTD7OzK_Uj-aR`s|?v;Wxmmp?D z7hFwwJOwhN*6JW*J$(2O_1rZM@{mB1n#p3e2$$#LMNW9>wC1GpiL}7QFWQ>xTtm67 zu1k~Z%JXc^%#$E<^B;dughO80g|tYziQIt89W&%Dfn22}5aY?apMdIn#cAPy5QFK1v<<@5Im23i=BsY4U1tUvdASjfeN~TP z=(8697B}j z0CHPJz~#HOs9n86&#bmalOF$AC{tBc;iomY?nww|Hpm0cJ$Q&}PK)QW59Y2-}f2+3emPqqTuk2V z6mkVAL{(TXW?S~KIU5hV}8u;m~zZ2VT5b8Dyd&3;~k4$9Ha#Meo;Bh@$p)w!7_iE(R?c z@dROSa5_uzv^ZtDvR0XFHEzDSQTwJ!QuK%Z{Z~IIf(k2tAMG1+Lm^9bAWs(d@R9`b zAtVBmytR$=k)85l!2d1-gqAcyMwTOp)coThq;;Ve>JcgB0A>g^HS)oWD6fF$LrsTv zOPS96;Y|G&4Z}BfQmf)k{Hh7M~?I& zucmA;=g9 zi!)T#?d;rnqpIaZMYDsvPS&<;E>;bU|d%kQgFI9nj3AV9K9g|XXTr1eoXEnC%R zfqz#w8dpoH?PVBiigpJu(SL}YaSI-pexI;)hg;UNdyz*b!smgRF{oB`I$G!OhLwPTQC@XbEhR6F95NT4J_#Ul8T^NITCULH zz-VZH0_9B-9~1#wG0M4NX%mD}YxzOT*qD5kWQ4U8Vr{5HXI|oR*V)hEKICQz#a1oI zU-_n`Y5=N2s+|KMKYIJlwoJSQQpm4gs01P@(|&()d@{Gj!oENh=8A9zcUzzDod!ry zewx$QqfPBM+c2$dX4wC)|5Bb0Rj1V(OMCLhWd8iZYPXFD=giek+(Kx5x`K!N2~bmC za(&S(E3ID)9SVsEAjAxixnLMCz%62fDa#MeWUAn)SPJKUo4D>pu= zXzN`NezRfoXT?|E`kS=WI@zD;FbOYzY<_1EAms0Ida>2n=|qubK9NviYba@vltC#E zqu!s~L@0#dIrQ{~6fGNtF7OP@7pgi|DS+B1;>Cjk48u^+43K~h5cwt3)jxHcr$2Zed?!AUT}V~A`^%tVIYS{K|P5TvX<1cFuk!V|HQk>RNNH+;ngg= zOsFw8Xm4%XIRZr11BpvD1c+unS3@3?jEw~VgjH4?B}BBdz1wh|$v)S1*h;(SGm31% zy?jNj1e%xzMqU{kkmoCXLQVW?fA8?{OpWG13>E(2-hN2KGLfu2&!0j75MOo=5=$Al zJb;NNWyd+e`UtiTN=-6#D8&9*&Q*L|Ly>NY5Y`oAW2!0DrgTRiW`)Mb zjT9o)o;A8r3(ClMy2MKA015W+Xx5>ZMi}VZ{z*OX$-}}k9Pcb`nI2Q6^ae+`IK@6Q zzmq|Yb)nN@GT>L;2+54AX0<~oxSocxv1HE+anM&f6YBH17i^GwhgYMkT)|XVh}2b! z(AHfl3Q$EpE(sX|901}-ZDV` z?DZY%7(V-=Pb3g;Hgp106Qa19l+O>vP~s=Kicjuc4j*f49UrHxvO0q96X+w)NOhNz z_5=tm_UQRgt3&~{DOLkg$g}kn=U83sZoxOnZbXAb3ozMONH%2e7UZb%2srb~?g%18V> zr1Z{<&qVYM;{$`+aZ|5e-Z5EeDa4;W>V;E~TdWAJb<}S_CkEe;;N-+qPY)>f`4sxr zcMi?9hi^=&)ZPSNv3T@M@@zVa?O|1PxyQ+vj~mQxU9C&K>aWM-30fp@yZ z((N!KJ+4yZ4=JN-Ju@=0w6t$j&FL7W?6F0M&G-A|wdyJadk`&y*t8R=bmEgN1O5hC zY5^dY$^)h4kUoGhB-@IP*nxca@^I<;V&uw(+!;O5mer(>r;Jw=s?d{`R z`Dwlyi^|ryjO|3m#N=fjipIb@`S5g&kwM_4MOlB=b2HVjM`JmMYVHQryLkXH2gag4 zwNX%n0Spn+K%Z8+2H6~KJs}k1ckVztIA01`-H;C)o^cIP3exA(0rHmFCWTuNSs>26 zc=5#K?_p}y10HC-j!$@kOd%mHh3K_MW+%$_?VVnO?6P*GF(q}`NngUB(*VM+dc5gkCyMbSQ!Fcp?o1$%OGv~t!|>WFE>^0VE`hZY zgJ1YQnU9-`i<{d!8|&Lo`$pL>BZpLT`Ten4extR9M+xJ`G8ni={Bt7%W4_!eWlRE{ z_Idd8iG#y~SW|6HtuSF0x_`sb88B+V86aig3LjaHn$we#?SQnAE&b`KVW@kH=FutC6;8#>*IT(vV zco{!R7(=XoasXEZ$VNJ~v9Z;9q1}B>oJ}=kseQDa*H~-`bQFvl%_{hGc~wpACwQke zVK2X}DQ~4RKwWyJPwwm*rEQt;ysHrSxY6I+I~<(?A4W4`&uT$bN>@+rj4bTX#OT|X z{TSTkVup?3R#OLU%#C`kyh;*k`q7(QMe)rCy~l(Qp=K|oTx`g{u1?MAGlCRy+n;ac zq`I)}%}3XUuY6kB!tTb0O84LY;k~!I1vv>IW3J~<2J#Q2e9R)dfiZ7Tb|GSrMe(S} z_{2Ca2K?`Gj~=0tr@IuQ?Da5f#X;Peh0X0Wo94CcjOoeSG_#+^J3PuqZ%ju{W(ViA zY(cCs7>36e&N|!|yX&m=5+HJxWvjn6!wQSMl^Pm`pO$Qo(;t=tB_OUqnQq%SUmO%m zb8I74k+X~e^T!o6mw=C}*H$n0bar)hb#``j!$DVR^MpCW%Cmylk-JF&4+cLKQul@W z<5QG#tgZMVDZ)TSE#XK5nO<$%<@YLtFon3Ks)+;76?$le^oh=$tVx0TK(;eV`FQyW zF2QE!E(i9Ak(&U>+hi)9q$CafhT($33n&#e&qztnf=lF%-c*L5e>4?%mjS{G%Y%s} z>mk0=mlmXYO9p}_5+EHcOvEe*@9_>>oTeS>lbZUaCSDg7^pr zzfJw0ebL_TY&%t2Z`b%Rj=Itki?hcQ3g>YSkzc%4rjWxt>V^U@xGKDXvW;9u(?_O_ z0|Y+$2A|y9)7xpBLQIBa3UOJm02M?UCXjHrFhZzhH|7+A!KwA9qxucl4PfNKr-8Ad zx4BD4kNz6f__5& zn7;nHvm5g2b~4LtcFmBa*;?vGdn}aW@^z7WE#eYX!9#_>$5V~avI>NV!jB)HsINxF zDntMTK~qFP1cKQSM9^I-Mt_izyE$N9SKd(wQBNZ*3$;&ldz+%J7{oDP7yD$`N$qTtqRpfJcbx3b$&Ur>D632P zDL_MeX2WvCMniUhq?GnVy-J zdI1nM*Ca#`<5Qk{P$AVttGlwKPk@k|WadMyH=JUoOsyXxeO&D);Y(-LKWKTI;y=Im z^P5>#_;%H{a311Oub4}F-keX45Aiq7Ab}|YJou;bWWgQAt*JV{z0wZW}EqD`amN_B8Nnqs$_vx)il$q*u&2yK!gQ} zmo8Sj5SRx=(W-5ZU}TuB;v2a;CDE!}|DL=!*aj~X{@S>aH2(fkk~o~Gv5L3_c};3K zQiycDhj6~uf$Y8!@cC#Xrq9KFe@n@q@ks(iI&Ipl3olb90Bo|5~#hjzyMd4FmCWRqyZ)SQ^z6!KPxrTX;IBIdn z0;I7DW8j(L;pnB>^G3Zb^Xe!v8>T3cN^EYD83 zi~Q!N?>azyyu_75K25DA9GXb_-oPknFVIqX<%TaJ{%d)q$l{tH+Uzq{24-mYMrC&ukH{**b zb5}$0tq-c2P-FFpDb{cY_K2(f?4g_J!)|lvI=E*ychVd5RS+LK5i(TJhcOx#NYAbi z^{2pdrYo7PP|nq8T*jJ?RYT2V<=6QqF+hkD(s_1=a>7*+`Lahn>ioWzIpPCq;22@C zz^W=&oME1TJ% z%zT8lArD?_z*}iG6>;hGJ~>*@7Mg!TQE>ufwFB@V_X_(DychN1820@m_&`%Hzp~rp zM~-VgZ-FP9-?^!3ECjJ4p`Jlut4&k5--!e;U~H|1AKbad|^ncqxFa%bfwO3l=v4ko*%;CJ<<- zLEiy4+2#N-(RIpb)0^wNJxsXQR0fG*nU3CLW~QUIsyxOgdm6f1;IZf&EsR)Wy1(k^ z)#24%w9kE*FnasydrYMVRXJAy zctm@L@sWL4Q44?&q^y731)qbra4v;=TV>{BGGo9(U2V~yQ&5Pr-N8PN1FD%l(dLL@ zFH+0fOCcCyy%~TIA-lnl*);@9!vC&A;O>K2sxcujjK_CPZ|2Ed%ikc0_-{{55+FfW zsiQ#x#H22;y%tMIF-gPTliy?lq5B$6KaTBT2OQ~(5Oo4p0q`;kK0plp)Y_9QaVqYtwDW6o=M z0x}UYXY}{3)>L2+0BxAz{;NQs#;PAg3Msm4!taET-Cd-Rr0G!+8c%xvTLW8E$Cu}X zJQ}ZcZs>z|WRjKVm%slU;`dHz6y+e5YeYbq{bdRoKHB&A=Ccvirso)IWfGxjq3_{F zL1hlB14d+0r?-R)H11Z{w)vL`rLEeg=)UMiX6AJ^B#yHnKG@gr?SCE-rkvbmsrYFIsWSW*v$IA}+1kou$_LdNV>G!fO%AKO~ui!rGbnqj*MAgPW*_ zD}FqWMT^oF`oQ3MEIgbQDMX4V^j<~>Vsku;!G#^XM)F}q0@#2^_9kKkwt*!9Z$UQd z=0+x8p}4&`Cp=>MP|opGkzWBoq^~#Hs85*&``y06m4a`m+i6~+t55&|qZoJ}MQh&J zq)5Zel+`szoK205!_?#Y_Pw{WM}JdfLa!I^dv7unGM%p#@NDvUz+--m@zv#r`nX1H zat-Y#ieElKmG!sDAfG3d8i~Vpc4TW|AmW(H zC}txSOf?^NbS4dL5+M1MsdiMGuFOz2BiD`pQa`FIr8NXfz2Ho){N~uZYVXaSNCAK( zWd?!3Z6Et6l9MZl4jJX;<=}jEU=Gm-fc)gG0OTLv+`)#I%V*W6!>v2-SSkP-!sPCW zNd)+qeSznsVjaoB9|I!IE#I?Z%9vMB1HzupHr{nGcpg|^&yv3WEZOh%Td1+}?9t&O z@=7WC>q%H)iEcwnU|LB(o4{TLFl?M}O0!UPNTq>pMDA4DdHZ(4QQ? z6^Ek89P)?p$hu1JykUM>lvse@_dRR=MD+7fW!MUG69a(3H_Z5#unJK{yGkH14A42P zaCRDFWKRf)HgU37Rnigmg%4AyA>V9zN7Yy>ivu|E$5v_6FlC znTijWaJWU*#P_>M8=_3!=D zsH_q?YRXM#C)!wfSWjF}F~@o<_vpSit3{Zc49Obn2ta&ZZy*@ae7q+o1IJN>k!Y?M zoIL8!3cVRA>c{c>li}~T$nr~oAPcDNH$|s;Td4gAW2i0p#xhqYJCCNP<%{6#a$9rS zbZqV1NJI7R7P%h)!EOw`A!l5&+C_Qw|h(hWYBmFQvXy% zRa4`zl&O3A?a$tZX53%i>{Hl>6k>EC$sB+{%YHW)0Tr6l)5s)}h<2Gz_71=6As*ix zjSK4}#3#WlK+-l9IlBh*;>yY}i;d_N-&FY2vO%YLbx zzK{f7ZZ(Miy#1WJAV6rQscJkOrTjF4@F4*f^W%eZo07?UvNlYPYr6!9*X!T=&7l6* z0U?)62&rO!t`klGkhhRQeuzE#8wLpaba{0-FyzaAmUxp9Oh4h^CH5qqfHy1fVrhSc zu-Mh)>XhD06?Hx?;d!D5B+IURpDDzr=*iPPoo$+l2fpQm?cA15&q~Y6owAuqQY0Mw zq^qu3DVXT&Z)Y16&j-}S_^Z&ODAo?MBx+O2KoC5vk2O^{1nfd*9~!dzSCK)^h`E?n z_05~ArFGqh9f2Kw;FyfW* zAZUU*cKh-i#gVUy(DY`sjN7zI^*{!+9wm$PdkMev20;peE^l34fFOl@6*oyvOOdxM ziKtGlJyekW-IH{eS)6JnP6o7cdsWmG07R8oH1L32Ld8dL*=*9D>wT)kD#fx!AcP;0 z%t0AtGu;404jp$^-HH@)XmWT;#hC|DW0}jjBd+q@?npU$o9$B0Dv4P)GZaVr1nl!Q+$9I;%u&8zVfU@0(p&hgp!pr zEeh|bG4B_~NRG{BmB^EL9MpjEB>^({^y?qL6~PAIn}27q$dV~U@on}lKh{mX=Y$KS zp!_1j5d=`f9ZHyIhyoyJJ^E)lYO1QMs;bKM0Zv5~qDIr3fqdZq_&zg;7hFa8d30XX z(?El0)5Q;1HaYA|+Zi)MoTYn~s$qD*si{85u$}6Hgj(=sw@M%~g_v`Z&C9MXq`7jPIGk!jDe&G@Hany8%(VK zV4C|LiY%qWB)5Lv)rYfBo-D)Cn=uQBg!21SLT4u+0D}E#Z&S_3?|)!YocTc0(;zlt4E* zY9o``HfChe+G=`g9vmcQnn2fz9z1zs6efc=e$$3!rhXVqh9iC0>CBsoC(hXPTvz7y z9y`_^ilq!9FTKI`Zcj#ZJ6#hNRcM-VKHuw}4&)YD<9ECgAfK)n0J%C-3wTu3b~ILh z_(6Fi03xyY?GN7FbHeQKNdX6*dHSVWWa8m6Sh(f{cEq>qkxCc>nK@eggJPyng_R`9A$uwl7){csPx=IYuYKoi(!^le0 z3LjF|SZmV{&EL}N^6njctXf^S>L3PZ#M(sq2`P(uFYp@+N-P1`GwZ1geAqV^U&ePp zIZo)8w+_dtV*!H3uT=?hW6*%&$ulVo5iv6B%eM-7@!FGizqcnBA(1<~5+L{b2m1_w z)O^evu;@%9##uEggRJ~7KYSaCCU1DkE6Ip5qeiG3$MUKLtlUB2{zwxG608Q{$C}^v zJ~AE{`;Eb(;M`9MeGngp-pumlH;wQ7bwN0Ip|h(*cDv%cJfdo_v`}qT-EcpWpOZ=< zNy(V!u+@bMRE4<*p9f|*%oi){1Eo}`}VKcoHPwm8CE}S{5 zi4?6TmTV4jh+?_zJE50OWK7mBdt+i`4;!z;~1=XVhw)f%j zZXW<5yS7VBCMBFIq35T|X?(APUcXn2Ck3bKqT6me0uYT)6@+b&$-LP7DM@@eQDn)B z!mj-0PspbCImaT()OBJ?V&)J6y(-cP5PmZcS4NG>3TU&O4Uk!$=>}1#+|(pT6?A%V)?M zj!X^wGk&+MvYMKz3=6>8OUxhAw;fNg@6|s?rH~%Vk*E&DP+`DMjlfOweYOgWEW(f1VURuxD*a*l&{$;T2tynylg~7Eg~rqT3by?MAS3W$2anQ$ zg`{<93%SIm1LXJ?#OuW_gk1efT@Dea3*02*7bY64rc9 zrg2kf0OTJ3{ywfjRsoM2+Kme!GCb25)hOI>X8)(Z{>}Z;VgLM(-xolTQ3XOGQ@ep{ zigm~ws{AIILqbOpg5C8vRgoplWK|pp5Fq7Emy`im-}eg;wF9QbR9Ckpi?=R2U#ADf z(Z1Yxr>J+72Ow=_4l#pm!}cRz`gnC6BRH&;Mc{-$!{E<%Mxh}bBzqyEoJ+~|k z&x8*4{dE&ypKe_!oL_M!b^@gT_=2FG6g=e?^Bwg`}; zU!zN*t`Tx=V2St;*19kCl_T3=b0{)tkm6NDOTlJ=TU_yjoRxj0fdDxT1CrPp0q@1=a-5_b7g65 zy^^0R2+@Q^u4`PTeHA|%<%j&MhTF(CQkR8%o*n1_U)$_^$~!ysf7(KCcD{!pH1GL|MftH)}Lvq*PM+ zja>Enfi!f3sjtwwJZIzq^$&)=YdnjG5y zAGNL_kS!ug1p|=}u<%0`TuuKMt-Gi;7KEt}R4_*brGB z6b-pcpPZ-c57Ap`#7-&FH}=N|-~nBMwvG+F#+fI{XAvbp1|`v`0tok}dMj8aQ=O5z z>yL2qiQaS6t6YWk$?bSt+sxoMpx+X=iT%R4t(z|cAb)D$pbaT4ymiL=&0DS)=Svpc zp4VW)bcX~)^I)+9FIf3u<3vxv@YM&s;2`_`Bz@~g&7(%nbE*PJfSmVV*S zsp>E0rMWqBF zvOK7BtiF#vx%h^RYRYi}d~}8n(vRs#Cf73S>uc-l>vM}8ZCflGBF6PtOob3Dos$4E zQ*R5=K=r?vsqlFw={dXDMieS;>a1|f_DwGvsQz^U2*SoS@%5Er{uZUJT1tLnjODp;v`sxaX znQzMWVp+%SbSB~OOqIK$UtD$324@v&&dK2&D~f@jOh zJ8VdVl~dR_8Ht!3<|_}aI=u!b5@7se^9LaxHxwYeI-X4$kehe9~c0~BGgBCCH?r3G^}#T%VxBCW2EJNSk}UN|IM~bdY@x- zu29NN%NVS>G1vCSTj$&GQ&qV&B@=PhXntLxapz@ueR6Wmx$LKpS@KNxFPm=_MJ+!0 z^fNuNM`9%oB&x^TIka#17)n0L*t_g`D+NlnG0|$blB}iGiWx}UsB_Eo^ax?tLzifI0X)r+82AWdILw5=W-W@dcZc!_vKD_4>DV$Ib z5Yksw+49E1>}brC_z$Sj(U{p8zo2)_P=YkU0Fl;vQC)?cmmP&6>QsBG5D zhlJ|odbAULw4_$|Rjj%62^(!XY)G^BJ$Feg@jqCT5&^W~BoUI=hRiqPH(951wNOvf z89?fsK(Rh|Hm^!po%RIi11z5CRLLaW;^9NLy)4$6w^Xee{-XJ^qm6C?4Yl{^UE=_R z$+`5TT_DLiM7_;JfK+*U@60|lzYtTcOdsS~1PuWqihd2Q)Ac@F>^kNA<*obN*^k1& zCwhC|Gje^zt({Fp1hsdM6M}sE2VO2>GiKsgA*9R%A@9^qiOw5>O$;I)(L< zs-esf!WA$VfS7yl#_-?2(tK6LMt4ci_1IoW0h2GHNmZcy6CWtuyC2=Z1T)r=k+Lwd z(=VHzu7z74jYS)OWFHRi|8^(!rxZRIK*~j#rGr(gP_GIgQ54y{0eGlNoAl!9fWH~o ztoYsVpib{+2(bYoKXCPZ2gNg&_c>0w4IRhM_l0syn5bskhv&aB_8|qOOpiBBtM_`X zA|Y?ndfN#Qf?4l@%s;M=<6}fR)2jXu`0)k^rk(oOAl5U4ghLz#xqZ`1ohqFh{-6Hr z0Ag%CAVAC-GTG%by~Q*uHwD;S?YKr$@6TZBy)BN#)@({^G`kmWUpGF0$S_0&hZu#d z^{4@I>DMdL!rKP`#Dy@x5)H_}EzwO?TGJ;JVjf9Ll$MLd-8+*~rt3mot2aWp3XCik z%{vKnqQ7~aAFqN?d8+O6aBX~al$ltieP>$(X@^ZniNlKPqtTcum#hk8_GWz*2nK|< zOcxr+dy5kuZY%`5((s%v+9AYHA>_f-LwaY)(P#{rjKMGg@@F#NlY-}P9MM?^?~ z-#-uC_h|pn{n1~2cCqvP8?f|#^NsUurm43SA&j}T0a8AvY6c~XRmhuk98{y}^9Uff z4|TwDq{c2aH>pbNhbpZyk;TT4-xQ@y^|8r!dw_nSdKRLl>7w4q{;SDH00J+4Cj0OD zfZy_Y%^?WQmx~Sqx!nmb=sXA^;t-NaVvYxd;2WWo9{^o%1;P%8x z_f5F=o^2}UoYQa8HP;hJ<{e4aMjLv)&@;m~vb@quQ_VZ!NVvWXt8K1in#TuyI3DW; zXz}=Xfnqrsus^_k_$X?icZ6e@u5{OMDX29O9%X3%2FS<5(vBk zXInhD0XCIeU3=WpLYuc6Wx_I^b3Zq)~4a4_tM&I+q67vNY@Tpzk~$r>a)<-C^%EazkuKnCDcihn@mYRn$b2VrEiCM)UIwApCd`+OAlg zKl5&9O@J8jp~ZrN2289rkpi&@I;#|MgA>evc6ae7m2ksHAWMG#{-tp^LE%atu5$(g zfb5x{JI%k}2|&Z{VsdjKxoaZuB;P|d3z6^Jsllvmxtj}+S6}&fs38C`s9`eP_7V91 z$>iM1;2=Ae%EJpp#j|jM#BJH)|Er7V-#w!?7`WE+_!nom$^e9%K7VmU=U7uU`8liI z&8a|ynr!uYN4Md1cKXa)=dSa8Jk;T;X$r}#s|(S>WcxUDssxy8xx7y zCF>tzBNUgA9E&R`Z+w0ud_awmPY1O%2mf?rcwQd{yYM4qL#tGvp;rVJN#UWZE2}GY z>-8Dv-4Y-gArc`0LgHi38n#?9C%z0J<=?mI1f%~nnG_!Bg-lpVv4T>i%>u4O=yklsD zu#xq~=?~wdEaKtt!LF|j5W0|e1w42)l|UZwLCTpH^;y6|0QvMXM`r~Rm1*O^fc?yC zpC5DDExbpWx}n-%6>9|3UBQPG$kB&yX<-T!G*cit92gNbGg(?e1yZ+C!`1^0kbJuA z1`vEGg`u#aS8t{0v}6aSuG`@%+-!g}V&Rs*m3Ek0W^*NV3fXL?kYDKG6wK$LC*8-10*`_9EIc|yk5p!b10}F$8!3x*KT3)FV$|=2oyGLIZ>7ZLAFiB4+10= zj_B0j@%++*NTl8-jd4XPoHVu-_O+qxNJg#Uvhtvf2a zV^1=AH%3!>*0T$!(MiP((FHR3DP%r$u6+9RtxTz;B{B(^ch7C>5aQOyVg=GSwZ0JmViL{-AUi6A$oP45r^c*hgm$+=sC>7rMgZY4_BsML4!ct~Bx>J+#<@8}c zeeB}Ciq+=`5ECI(S7MvM#Au5T_|Px#CMmbt@}FXgb@SLB6lBV>7bHN=T5bNc!;j0V zK~$aYn5I*oe8A~b_V<6$WN(lL;G->>DafxxI5(xjTq;DpBb4hsSI;9ie)lcZCIIs`pt@-SJM%K-qpx{_=qK96a*WGCinR0K@nux z0g!+P=zx6tS#)^(0edTCaJ4_7W+oCsL>{~H5Whkgdlx(NwG%83a@%E!u3g^F3O@8O zeU1Rp?>v93pUv$U;Oqvy@K=NIF1nZ=onf)YL6I&q*;%`@PlodJ=*Tle0P<>6ySy(R zAaU+imWs9|S=!Ds^T-PJ$jYSv$JGa~zXjDMbxyzk-P3H5m*Nk%ehL2vI6)LMu1#11OiVQlh5}4PQ2F2=j)Sg7l23zAt!R`UUWn(0t`lwrUJxx;qhZJ=j8tTNDLKkeIP`& zdp|vY2ICLq>HXdJx6-EXWMS<|`quaF(CYhLB_Cz26HyPQlHJ*8d&2rv%H_nAJpJh1 zd-uNm_Wu2A+r!~F$BPF5q#FpZ$ZB^2Enuhx!N))~AWI=&YQ=Wcc~r2)w`y-@u?p$L zEK}eONwjb7dP|`Qnd}7tL8p=5+kf#LzuQWtq+Qju9ZgK1OA;TZ4famQ-mZ)7w1;W<&PX{3kD5HP|ZBDK|8y+SL%`iYDAPsoGlZfe+ zSx}r(kZ->L-;=%+8or>sn*hOYtQ$?LC}xrambOqaQ%gHV6UN?n|CHJOIQMzj*#8@w z6U&9Y2_NCXDu{zzi6A+4nVu6MPm8i>;%{YfJ`ud&Z^0~bQ}g#Zh;+;du9|yU;h%0yW8Nkaq9HeXAT6)H=1Q;pw6uT2rKOc6vT6~zYs``Y%iXU}d7hbb==!Q@#4oA)_81J)w8 zvO+-%yw4J)4O~cZEsS1_3;mBCO)qXNE>175Ws91|yYGM=^iKv5*ys))bfs;GDei8- zOLGa27b(zLUm#sxL_a4$Qn`}jzVu^wzPF39Bz{cWO)PT^q74fl%&Qe-Rv?ojx8Vfq zh#-G?l$j=xNL$*mn8sfSc$>jZQ99dOFK|chH^-1>t zQAN-R?}fBX?Vs1`ju{hKWag*^{A6;k$n8zy2GE4a(r$ZPTEoCBmynfW#nkvtbkzBh z{{BB{DnMTBAl)GMUx=Y9fH=ApRu;7|_T}ntXr~7s{nNK>KUPuufAan5Gw;89>fK}Q z(&;JZKrg?%0KyYDfRHHT#(f;b4Ol8NVrcr=@G~1A23f!d0A$wOGesiR-2-@-$pu&M zlimEszU&Wc*(~Ko@L#|N4r%VS5kf$sk#!7h^bdb7zR$J&(WNI3CNGPiiHR=dVI=@z zjquzdWHD3JkDu7Idp59rpV+hHQ#Ql#a!g^1m{-HnWE5a`0_2ZP1;{HeHiASVvROb< z-CmOPI}$_p@^-nG&GuLTp_IVs$67T|ce;L{SU<7@x^9fv?@+nk%>3n-6F}r5fF2%F zs%P}*r35;)akPDP*gQ_j|C&eFSct0hztA$9CPaFBdZ3TB_vA^|IaT8JM5fYU!9@y~ zjV#o0ZDICu_wCD_%$Dp?x8Do?2R*F10$z_K$Hk|^&kvBT6nii{yMTwBy>xQdnvq@E zikJU>DN@I+th+n0(YxgUIl>ONsL%`M?*Y3ppebVc<1ATs{w`Q-pF(!^%ddX( zbINXzr1*=+KRmHYbW_P3^K`Y+dKxK~t*FC7R$5r|A^tvJ;vsF1QG$UZ&ZwdOL&vdS zN&IN{v7#_8fSeM)tC&1SFs)yq^zS2xHropDJmF>o@Mp<1@N><}bb2s?8wwU&X)kk)};WH(xMo7ZqP2}Cs#?m#yAyQhr?Hi(dC#&y{wEJPKT3GqyMO<; z)c_GfW;H+rA9~K6X3C?T*lA(D&l$he`TDV8@P5Lb?U%2HLYLd|;anmK?a}r7yUYDo zNr5(#oBY!`1vw1w%`iH|H>)Cu=oVR|98zfhO|7gfGm#v%imCc%|r+RBI)&$#qX#)Wr{67kT)QT*-@`nxOhb8+@H>2_z0`r zmnTo2tSu%_wqgCw5Msu)XbcmQYhl{CRUFxy6oQ_ko4rST*rbG{-?v+yW$hC|V0<^! z*%=OB?hj4DTXs zGQWNQx0B1u-3bEZo&W^rPhT8eGH+yy%xM!LU5ZsC>v154c5PZ|6llHO7mw+co-^;5 zT|i}pQC$Dw76GC}*^XV0Id0h%yfT*J<>*M*_z59|2Bpch#SKh!3beh*ZX`b%#)~Kh zBX`F+RgYY90|=#1xHk#tSL35lHdFF=SvA|rxv11@;sd^SapRkB+Co_BhqJJ<4QJa@vz;ob{e93pFKwfsdlE=BkuZ16A-e0Kl0-`*Wvf}(kX zPPj1olxO|%NCV_SUPV%zP44~(Kw5o5yeR@8egEzo@0S6jm_xIsglMb$^ei!1&3B54 zaB?r%ojar35X}849AWoE6}@B+J9BgClS6jxK8z6wzW%sT9YI9@OR5kXAPZSd-qkZD z2olPhTY?*VVxIs4IqHvQXO_9nsSdRk23O~&E)T`yRX4oYSm&$C>3kuz6+axkBK_ot ztXTix*e?nxc%1~_&_Q-Le+#QFwe?J+T1c>t`9r~iVZ1)#fgM?+Z0Eb@pEqe8) zh4`?)Yc7U-|GJ_=Fq8Ujtx$yL{RUR73aHXGKtRSC5gNx1wSd$I5rINP}usk-6U%TOWy3hIhKd8nocm4ERENH8p~L`rbe#lN!s?Y(i#TStJ7 zQSE7Jd8s>p-NPThdPE~gm;fPZL=fT;-kZXQM39~e1QDyMW!Tc| zPYCIq5d>~w=Qu0muGCYMwvWF9_5J#7l9$9(x-o{FYAEa-X?yVSc0V>p>&!`HMFv0qe!sA zA$yO8lGw?RfAz$r`tKIZaCQkkV8LMO{7S$Dc8NkgZ|skwIZg zTaGZxf{IUB2vHSa)hU`y6-xXZ>KGh_5P|mnDRx-}(=C($altyrAo5F;o!g@rLHKLf zEa;I26)ex5fIzhebSx-5rS+v$EaiIukSm{@10X=!{qELx5c*-mmz%clJl_2N7vyO{ zx1n6tGr?KNDq7>_)NRCMl=Hkyd<=1jW1n3xHFh1U<=K;l;Q+|paSe7vjpzUj!zUjN z#G+APJptvJ7?R0fD+@e)?lH=gR$#{3m4Q(Y1a)P(QzbLm)X?d15M2>zn9M2 z`r%@prl}n;Un}UBR|1LXH5~3x;r$2ZSoZZezAcCpB8 zmI$&L^Z*%Ne7zp#SZO<3C@jz@>c9Eyo3}nZh4b@wPum(C+)~G~l#>2=>p?}hrOf{_ z1l07_-ZgAu###NoG>ou5cRDBKlipTeQeLinZcb_?!+2%^1k2^X#)jn=4i@_(1eAVG z)150}O9ef2^{~+)dRd6d_^qmmcX4lE$1TCS8E>D}RyQV(-UGE=YCve`?fI+WNLdxV zPH}8Gl4}(@L9_W)IV>L6mQh@+*>0pI1HnJRq=`0*V2MkKDmTw(7UuE`C2Fk}YtLS{yyqh(` ziy*#5bSqhchzMet@wJMnw!?G({*A3IE1eEE86b=xFVnc` zlq%g$+L>T2P=g)V;GrV&2iSkQ5E`=%a5EpO2qB6TY5kE!Nw$h8(IYQp)szk=R``%M z00Kxv1Eeg)O0Y!3C}esvb>(Cy=B~i=5H|~(96??vK)AlC%}n=_fuO~F+XX}d!CjlI zy;sPtuV-+ctj#_C9^2=qE1d7y+&X{FMHXS8Uzy=bnu5phtgS7!4Q+8U*IY_(hY}@} z0ODo(!}S*lAxT@?6%k}q;bTqO!Vcod^pt37b_6j}RQxe@`pSr*0n?O@V?r#UGrv%$ zus-+n)-TWKB1BB@-+~)#^-0M6LSIWP*D+1u$*re5hDf4l+TpD`r>#tX#6565XWKZ{cY6 zzuRgr>$M6VFMJjBZ8LJ$+5hgJ0yqHcnDpPNHzwm;kJ35<)5MH_&GgjhE zOicKFt(Nso5G#2}oK0pZdKW0d#Snb%OwKV(P43$7;$C*fVe~L&0wiB1`+SxO7S_-5 zb}y(3Anfp302%8`2JxY2$MHjX(*A_SG z(PEB+%6#(5)ywT+f~3Z;t5k`=OfqZ(VXhS69OS4* z5c<(+w^S+goW#)5`dU@Ly_n0~c}Fct2|(VH0OAG{_cW!HN%Pxm-r{W%u^`V*>;<3K zYZ_ehz~9>AMJHBel_kCF0Dxe>dYYNO(5w6^9n<*|j0GG3DHNT0YgDv8PTL4?myBA9 z7=$D$3J`SmAi%DcN#I(=-0b+{Df4wx#RsnArKP2n)m6(OSPH64u2eSI9!T>SW{vG3rf$UHx~05XE%gNB9;agvky28b)&C^rUYhLb%MW$^B4$*3KTn z?%y?6DTXY77}yJ$oO3D`r+rkuk$j1(WHKl;n?89Z$xqpJ*?vY{A~_i7ukW03==Hl-AX0v;oNX%Qi2@!pF#GV@?7Qo$%Jlr6-XQ;PV3r5N3tmsLW<{~E+u znVH3_Y*ZnHH;SA*zAZ;hj~<4mZYmC$#Q{iZ4ewrZWZL62f@y$eB0y2_QR(M^^mE>*pxHNsW-sCLsi=%$<@gT2A8&0SLXJcJ=m4 zhs9OAdH!?Be&~Zc7Mm3(ZKHU(+!^B;Z8w$p8@B zS9oH2S&=-=f9&Qoo#aI*>cIFfZj`^jR$LaEVx|MYK8Wmp_2Dwmp(7Lz^SG;05X#G; zhmm>)qW%>Dh{gx8rVd6pL0`A_y#>=~;lV%r>_~F4gprp7F;vzVv>$68_{b6;8Z(o3Yv6t5E8zr0AihVkeyhCj!N0*Ldu9( z5oA)=A6iB2gX1lLx4e|a`BfVrtB$`Vpw#LE2Wx^3G#>KWG|yH5qB^_=oi!Ojw6E~O z9A)Wj57i)ixAi*K>ipG8QtzDbhb_8r=YjYbx;jq;juC-MlNBg$*J66>f?lIEd0F*5Wc32 zAH6!Bboie(hhm|S7mAN!YPANEj(%5e zok!)-sY+hT%Yz8Ev|P6ZmJ2PEfD0IJFihL-xzG=@0l>v6(~H3l2fTfrPVzWs0CP z#WL^UG2mkrx4Wh+ru-fsLP)Ru3eRfySUsxPEI7AebIC~j03kHs!*-jJZyHjAFo56z=Aq3JJ=?t(Qed|dB0Q`A`#(F% z4s0BSZ0Isw!U$EXi*l>x=df)EDm-2a{Vy<}f5&;@nbV!y(V7`nR00U^;za}^nlW{y zF}fCe{n04+@Yk{9jPI~9=#ZjTWV(rt7C0S~)FHiF(76p0Ak#T>u6V)cX=Qe$4Z~Yn zP+>r}TKO$652`5$7sIC6cCDJZaz$j%dV~8N0AYePAk}LGs@K^Y>^1?&*Ljc#DRb+I3~?dC3?OjG8vpHYwIYK- zfb2y37x*NeF?{q{IBuzJqEH`6mpGIoWe7QnJLy6<(d(6R7(mQddY7_`)Li6T*vsvo zO{g(3zbNHyL2mifhi_fHRvRFX7Om$vOuf(IIe`g22q#YlAEsx32+sDffzz-_Isl>v z2FXu>40M{jt=6c*I)$fvM-)KP)~k`^0zjD=pv^xlmX?r$k1>J2otUi98j%^drF*~( zOE@OmhGB1ZE_^kHrz`^}Tt`=j{%(x6ft3B9n11KwYa7yt&#mv@?%*!_l#Die$%#Dv z?*)=NhXX>(CH{uhEQDMnOP@Y5E{Y{am;f1=T4ns`>Few3?hd8Y*Q?n56QNLdAO7PW z)K&l2zdXtjgaW+~(ksg9jTJ!5ky;Q(_J8Qb?GN�g%GiBrd*p?o#avgaJfN5R`VK z*K4(oT0DG^KNuiUFkcLj(nyPc1`_sC8U&D&R5{X2UZ0}bs`ZzD&mYtPp{7mT_Q|k> zy(g%NbXGKx6h3tPLrza?a0G_|@?UG8Vkxxazy}g6X-D-b>F4_x z*&jMGOePKig4tjyh@+%Am0@Cwhu<#0UsfYy|KC4<^{7S=A%;5Jg)9uXY`{|Xf*XYr@D(fLZ{9g|2B!D51IUi$gk0ovTI4Z&kbVwvsHL4_F~pJUWr^^M)yXS~ z^Ng3yFlkf>_+&l;ByUC#Q*(`z>c1gC%zNU3(^4O)rme+L+?`tK<%<==mf^JY10D68 z^vC+001+`gK-S0PWT%$~As$KBXXIE+vJ@(05lD z>H-it*6H`Un0b5(p2fBCL5*I$iH1`5-$R}vYecAXb!lAC;{hE-z;JC$j+H6dU0xR1 zRuMhHh+r+?KUO73SOY{;cavRS)L<=VTRuQnIFOd+YGJY;tlQbdj-q4=Z>Ov;$fHUv z5mFqEmt9d)%Pi5y%-$<9I=zy}KD0>{3x;|**y|&JelVW+Nw-1*6>4f9q7+rRaVD2^9rtloitFc-eEN z1t2(4AjD`u41qzc&LwGeA;}MP(XG!?g65iGWiO_alPp)6L&X+WEW%hs^us85X&{l{ z&}{k#y@e+L(Ksne08v{~Mj7#Nc4n}bgbjs|3E#hW;)MLpkFzNdgdaCMO)FA_XeoAv zMYgaafOYK?33F``Ib0~H|3s|ygV2L9~Y zJqsYH^HW`ZondKDYR(H)2mJr~=SLVIJaLGV-N{azO{Ut|0Urfm5omNJb24zuAyn5}H5abRh?gSqmV$dRB%PBkf?CqqMdB)RX#_bLZ}iTvC-jp zV=e;e#Fh&ZYU`wk3MA=)G@;T{cD@^oRpp&xC#d9T!O!V2*>3Bk55n$KXh|>^t3a$ari*r<`+S z{x2Ci^TLAAo>s>jmRa_70k?X)dMl7RDGIVyD;0u zOu_?2Z)zeP|G+^bMdE_91L>j|3L6zVz4sdM2@Mzxvom%AbvO|lv2r|2y7>UU5fQi#i zIW<$QFjuE>w9nZGAh0ldh&`!6%>v<&!m1IDQ~yW!Sk(ZDqY9Zj$a0OG;r|>FL?a|c z0E(;xzrtqD{_V3`|rJWmirJ|lXUOFvqbCw*L{5p^EqsX@j1Sh*N*#@ ze^mtqL(XVtBieOvh}E4~NfezKmUCk+qP+ldHpz{ljD=#b11i=7Sb|gxei%ZelC!hX zX=(NeK;*>RvDUr3YHzrQd|otnb&EIIGiG1MVjd--?&RgLaWFuBSC$WP3Sue~DRQBH z{&HoCMZ=V9T#dqnp2geYbri{W9L3TfUj@6>a?X1N2IkBC@Zb_cw<@9_4&+)e$_sVlhA-P=b z2-0pe1R>$HaF?qREm|j)MOCedg#H5Ip&QmgTL`WgidL|fC+!?AuQDysb(a&X21o=U zWZnh{>S)qHAh_a1*haL~Ya6H$T&i)S9;vuU{J{cQ^*YJ&sXj6@UJn@|TK{gjd@D=V z&xw%VRv;uE{(7}nlYv8)XL~T9ehAq`I&1W1MUVpk!jcWxXm7tfJ3E_dhe2h$9(6XE znChW#c5=F)6X?AO54z+@rWXO9$2(zD-V5Gm99rz3V@>CZ!tU^JdY#{8JPeW8`d3kw$X%-51R6VM1 zoPJU|poNX-WTs%}-+sR-Do57~zdvoi*q2d(Bo1)hcRUB*ws{Ye-XY`YqN`x-^#+N@ zwd+o7Q3i$fvh7f$yoyUY#0AUeCRPO5758%qAyUm*08|#Y6@DO*stXEYzdB!G!Q1Nf zg9DQ4!tlt82-0f>kXu{NPuuPmfPgA|f@||&GXsEK7@})Ny`*sR*=`UZJmZ28>(@zf zFiUWo9Ns=sy1G+-{{UAP339Io_-GAGB?-P>*2kgs4=Cv-AL7H}KHEBt!zdj(ZhA`Z}K57(p04bjugZipf6y=McX8zy3uN0rK|m z4-#|%p$EsraW6mOAhx9smiP>FFT_-VV#{TR)YP2qZz@OhX-m78>jB8lBR?ttT$e_MjRxr}b~r3zostLD!!|0Mub0XkYRW8^T;?}yWNj2G?2~gF|=)2Jb?Vee)yov9p#RgWcFCw_~shSfpgX{ z*=*KsL1B*M?MK2)bwBBmIsn3y!}*-b*>w%qrC4m_Sz`cV(4ewle+WT8HKmMdLvnU) z1x11pncq}j3DP3B14tD>3>UrJ#}C1JSJ!S|AK{^2ww`XJKqf#QY#kzaqRe4Q&6ezi z0M<)Xgc|EZJ{06wPu1w>Tmb@+N&9dh5;yFCJUgR$V->dX_QxOm+kf6<_3C{DUHDOZ z^}caZ4M#<0Nu}xnzB|9V3+?;nqy_*f)KSOCOmgBx0Uc%VS=(o_`u^>p{BKebkbviwX1A>V>Kta}R&H4)i)#8>ElYc4=IN_YR(uL?et zfR}f|so%AH_23(sId`d8%BuZ7=2%F;^&Ok9EK?=_J_sSQMkEiANaX&U=t$#?)#I{a zESRP9MKvTN5lr5*u01an^#eQm4u5n2;S6MdfXE9xvt0W+9vfUZ)O5%|h++j=ykU5R2AHae?Hr z@qw2QpOVSttkAF%+i>!htRN!7*5nq|b9SPIGs zvNx1`5p*~)B31^~Aq0_F)R8K26dNDW_z>~~CQ+m|J*@Cwm%{?#PWVs&L6!Q@9e@^G z25a>IB9*4`TrVU`j3_-s>{7fty>)i5Xg%=^eR*cF%IN$8DM11#dfSj zVPHeQ*m8L~S*&#)$l=IyB*$`njs%c~L=aJ_CZAGHk+Lp?Y?JcT674Isn^GOWWDX6j|0$F#5p09U&OA1=Yv zLWnf8p3#YwpPAA}Zcjv8`s1bpB;s0u%&t<|j$J#Po=HD=vn^bk?_oIxd{7&+j>5GXm~ZRoNUyDJJb9AY*jP*sZ$aMV;XG3Tw=77nqaP;6QaN0$ z2sOW7gfilS5KDN1Q+3cZuDU;ydL|1GK7QrZmmfilFe(t>gC>xvR5ArAKoXgi&T=vp z!ogIN_fH+aLdi9iN=H^(4Oa$`ItmbZ4m-xOq$ngPKF6&Bx!zd+TZ60tN%c(49HZ7d zm3rbpw`gv!*DS)KO0v6Tx#7AI%@{$@G#pN@tz~irWsq9HNq4jj^|R!4FVU9{Z4?n9 z0O>vIb{L@qAg&2GZ3*Q>)kMS$dxP!(>Hhr}KWjEXBJKf%z4JcMWO*p)qJhCr{bbcMpF^(@_|=nVx3?`|DJik7cN z%`UhRX%}*pbcKbVTSJq0nnPD}rc_mBjU$5K?rmRuk}ESdg>hF$3RQy3b==EzE*{i5r9B*wO6@7USMwJkdZY-I0B&_(z3oD ziqx|)asRF`4J|HGUcXFwsOC&BsCWY(!hwMSQr{D9vt=#HS;17s8}e?jgOw##-`$eo1L3tzTzH04*zT6w4M$< z?h)!h;fJ^~1u65$x_52JYL2;d-Im(_p~(Pw_3hugMi5Fos%?C(J&L4~GLiICl8+VB z!v1@i(()b^;$0cjLe_sKqdW30037|ZQ#0`Np6wrqx`Yv$@te;PIh?%poP=utX}qE5 z$!y7<_+`?STXYp(fVr|sI!}(J+I|30qN~LOhYm{NjJOO$B#7Jq5qUTzo z5#ohrh$!5_U?Omb-ChQ~x`;fqKaSd&!bYZ0Jtiv%cY+q^vp~oEGEKdgm#~8};DCrc zM{ePwBY?Q!Bl_%S;|-@G!(t7?0OATs*-bCXhnEe(eGeH~rNUgyy-CMWjH8jZncNd8 z_?d?*Zm(~7pZ*Y(UiX55uSY!@xDu@{HzK`%V|dn)V@XqN=|T7pU;IUL0rJY<54%Oa z|Grn#jDe8W59D}*dN~*&w5~3QAu}P)LMo*Kl{uR&6^a&rKTW+?R+TTS+Cf=h7^#|t z{E&4LR^&O&oq;&xf~FJ}=`CK@HnPZ0<`zd22LJ?BNUp{-b#yqKBtFDG*Qd9~xW+s0 zAUDZKS|+`RLr5p4=`I1Jz6iyE2(6`}WpmGamo9?=&|6v4%!jtZe~>w0(}aJF>Q#=L zztO8=LjHi@SOdf)!+GWa(kLoWh1yV^8eFX0a)X4jK=;$@per>OEV9 zkbyN#5R_>Mp5qokwr@5bAYrO37IY`}fZSWWEbR(pZSvp&>1eiA9u|G}k@&CUB)uNm zKkDJ>k__`4`TSu6h>+e{Qdj3g%Tx8$I2fRB-y1IvBKPl2QU9kBaaXp62#_X^(kuJC zVFeK2R};@ByF8|MD}_RdkKP{%5D6hM(26p}a()PB!!ZjV%0k|9jW?$)%0Ue2fV}#e z;i`w%`tUion>_=O-&w@4yk|<3YB;FpB_Txkxd$9ZUuT4rlNgy0V<^jiz0CRdVI@F> zDs=dRmZ$Uik`L7*lR-WV&akq8jyc$ilk!aAZgj>8kS3pxUD{ZYo4?^}sx`-g9;NPS zDnxe^AN2u5N--?yO9&~*h)|sZ*{OmLO*JJY)Lbf{;S&4+DpzlF4r-u&PNKOp5J3n# z8*{mmsz8uhg!lh_+@N84We7d+3_KceFW^VhCCB6T=-a5w)GdYiVimWEW8O~ry&Sp< zS?R3;NIfNv0>{=?cxwwIk@3-(<2D$d5`gFcf=$*N1jx%DrN?i6Es8O{G*XlnZ%Ax} z4{YNJ;B+CzMpmw@kHyx0Y{z=(Rs7I|(3DLd=G=a&;^nY8;QDDL1dwWcfX3VC3SIU> zG6ha5QU}PQb3%4c&vEp|Wuh(?S}o^zlT4h~JOAiBQqI)=HP2L*yy7hNLNxB3+$kw> z4gw%}C7{K$pX^9>bhNcyx^!(M>HvNJ(qI`tU`p2>kNoMcf7WDxy!ypIhFxYCHb5x9 z0)Rm14X$Za_)KZdF^tmdoWvS8kz|buYoa_iDr}4kqN~D4#3Ogx7f`AuV^9h zPg|iUfXgPTOxj%DA9vB}hSA=$g#vsv;s=wQ?>`a&JT)DE?!)$$_Fv!KRQ~Ipvy^)d zc3B3g^k0`*p`ET6FOaJ_RX(g2@5B8BLE09dWU`q2LjxbDkey3@bZLAv8jD%iB|=EA zvxOB##CZt-dHWAH45KP)p6eUbMh)Fq1@U4HKN*D1a*N*v$l!|fx$8=@B!q~O3>%!c zcg!YD{{nv_Vkz8m+@F*XLSIW0N%EXRS)D8Rsg(O@&M^$o-g5wMK#{+jbu1%;pcV}g zAVRNt{*#C<7MNdc!qdsG{MSvJj#i%!B%ui$G_;l-({5#f_~HTxNnlrHR%qu#k^RF* zxMM8?bjUymt95|L_Q?1sA%d4;R;KBy=7(nCP_yTRoD}}yo9ZN;E|5CK3I%+=0PM7S z?j)(Glr+T~NJTpr{}H$Av%91A48xItmoliV^^HO3=?Wz2r^^IFh>j^J)MGpDAw-^2 z36N&YK%CilCeu+z$wOs9e0Xg~&JcQ-2(nl*OAqD0-U4EfIA40;MM&e6qP%QWf1Ys> zZ$I4Pl+Lkqgu1%_C@4OZe3FxIPwtA2i`yvIN7V~~f>ivZp|Op2=wHA6YSRJo*KPm_ z&#FE&U)9hBQ&NeFE=d@TnrTmOy$kE9ydI=<0YW(q~bwV)dgzLRy z0|jBbf2V@L=U{hCx(5)Wi2&h%W8-AxW<3B=>_aUYcBlZdGcZ@wwkr_cB{FPdKk;8L z;HOY7VERXKF~&#j4n?8pxcIIAjIBrxKQJ5Y z=?OuY8i};GD;VnQA#QqE_|dx0b&V*`=eTa7Hz&c8zhoQ##ClS!#3Ro3bPaZhvoo+) zv^8DD{Sn8+hk{4GXb;}TnEx;he6b;9r7VDO6Knq+<&tjpQ}VA2A$S_x3h&>$+i$jP z2)V|SQT>OSl0S|N8Zn+Bgy=i3RI~*M zEP%`|bKcPnQ*WLLBqZ z61yCc;o)c7m+noi4B9=hIPaf7ecWUw7S9*Ib{REOx6)dB9Am`L2SKFAZ zm`zs*=2&cUI`=p5cF(R*-?V!|n|hmGEG-@{>Yl&_DzhTV>W^0Jg;-UH2pNF$Qg2~lP?Joi&auPv;zP)oj!-iX zY9o+gHYvp;1Bh2FF!)KcCuy@0xjFRg(b6hk3PAdiA_fB>ue=n1xQ<7)V2lY9QB=}V zk3sK8<{x?zv}2_g;@2D9Z?Qc2jPdWvl=9IFnflB@k8~@A+uMOQaBM7%anta~=$07H1e3>pej}=G< z`_BE?+c^U3Ej{F$WQ@(D!O7cG0i;iXk&dbKXOmXUi4*@G9FY(|fS=WcXr-`o*7=;u zLz>A?5g%a^3lfAk4fSiFgC{z24fAD%kD3@EK!lh8TRIgzke{{&gS!rkujvJ(^oo)i@~%&=Hc?~`ENNK5>neGrUAyj>2b_!1P8;tEPg+*Sx_AkF|e!7zUR@!QSM zu`md6AO6%>X66}tE?liX&k20)07OP~Jwlg~c+^`%SqiISRaUUf-`y)<2(_}}OO zZpya)+@lauf-&oDd+}7X@D>T!J78iwp}oX!auUu-jt=oz!AEy`0^J3^ZH zF!e15m-=0Vo%M6759Q*1dWSQisMV}+Z(&hu`_oT8`TU#CbLY>U>+I~jsEA6j8oP$P zB*YmT9#8aN|KP+2z6)uGb^Lbw63c{@SrnKJATwih#+-Z%Lzev_lo4-p$YSRAvh;eU zi+7SEe?9ay7iy>$v$Tqu-_(9EB7gki?YCcf2>|)WT9QY#B_IbuJ$@dcF|Ob0Z?%-O zW_v1wP-3o@FMXF^5aJ6EA6h1(-$j+Ppr6wuBG%ynvVB*>dwL+@9zH(#)KHbv+#R~-qJl$rmqx;#3rX?YoxTydGe4*+kVZ^NFH_Bm6^OB4g>G~x zO*8UhHaF3(^m{CtIBb_^!#s30APQCZm`Ohy!U1P}3BqNB;C6eVO_ zTAByR#IOK@IXa83_}Kb@;Y%W_esL|HZ~O1PFCgthOlE8F478q^Q}sTN_A$8`dZK z;K~^Zof?aoD+~!p1Rz;~*L38_f)vXl3X8Dlz)(RWw^!*u5J?PX2;Y0(%*XeU9?^gt zW#+rvO)r|A-@Na=_baMULHrL8(dWf=I6Z&q=hLSpK*h*VFc=QAUr3?wsp-Rccf%9n zN9zGQe;uRk`pycfDKoJT4kXXEQNwdmg%Qovu*Fe2!DxKVve?=m(w(~z9egU?-QA6K zB#RA`0e39!n(_pNB^)3>DlmwR<;u!M^A()3xjI0uACs$qx2#B9b*>lURSC#n93Wq2 zM!SF74UY^)yg=LD;r|XmuvcA%I1ix%S?*xz?z4l;X3qV0Z$JM1)ANH;aA;^`BrFZh zZAlXR+E7^fcyRiX>V}ZWMpI&wZRW4nFxQmt7Ys{J@8gaB$-R?fH*0riwx2)y?~WP> zMH{bK_GK^==zd!q=)e6F;NGp+GOtD{s&Mh;I=5ewmEXPT4M6^MM{#$}b2UE3K?PE6 zjyvPjfRzOh;mm&lAkIOeB5;aeN7x6Ckfq-L7tbsfa6l>|8y(Ad+SVXZA65`8nof1Z z$EDj{BT{$-k0d?Ktqp|2fDizSbZX*Ibpr@X{x#STYmD;OYncmtQD`+*FU1sCZhd`1 z9S9x`?r_gKS16p0)+~z?V|s}g1A7}VJm6zDbFInq!}%`X!FsVr$0h^_@9vAe@7?ZL z$Oe5KvYQM=gdwC=-7&*OX&89d4}%!+r^CclN~OOJqk)$IV%smqA3uH^Uv8@-Do_=D z36RB31w=iZ=o$$INALtg!)t}YdQd`uz(q?sJsnY90FvQuV|85&Hmzr!{B^@J6NfPw zKF60&lAHzre9}3b4=cj=Hb4wO$f&dSw=dI(4})7Q$259fnyEWqPy^!ioR|D6L}&>9 zE6VHa0hE2R%HjaI_MD7VfVK_Qc4ub=j2&4l38$gXv;(9HLhaRu8yg$o)%K^M zTxwtQ%Z1&CP)ImL z)KtuO0Kw^Cha1)c;v)>*xm__ro8WL^7T1HJks&-`DSVz9b;8u$DW3f6mTZdokB^f~ zId;MoRhypdRG~OPXy&#uc9wyIDIod%N~|E_kv(Za5Fn_!bsud%aPdgJjs--1O|pf& z--eLoDki2no5ImCNG)cGsQ{4+qrk)BEl8WewYmzKJfw5Ct7xI$f~3 zBxz&_dUQ#WLZP{01MKjMTcJ=;3gQW!nTWLGBXxN207L1-py<}qD5=TFkMh&K>cfcu z5gb^uXt~A;2y>a>|Mu<`B>LMoyaCAHzxnxH*G~&(nY7bQh->p&hY&(d2u=iSfIy-! zOJW6xT!+~0drsK*FJ7|#0XuVg+;}XoYlh|9vI7vshcm252Y{%N>C*s%@Sqe9g+tOn z2}M=r9`xxF{vTi_c>c5bw){2t4oqUMgka`swBp3P7hj6}7y}Dgd9{8$E12eGVUop( zG5ul%(W5U}C&@9S@_N*S92Iqox+$Sc=X$iL@&i1{7!I?d@`Oz6y^SVPcslqIGjC`5fTNKl;i z{pv!i7$hgCn)R%pN<)uce^wApPA58yup*xhejE(HzqMY{b!e@eSE*4h?iJVcQmOQG zPzs%%RK)=02#k%u7uHZ4{b!B&ohG~<)`i=_)VFpVGg?bZ2oNDs?MpY;{ zB0ksxAWI3e7`9RMBS0wr*wyt)O;4QpI2;7c}QI&?b zEHx5Sd^o~#??5n8YgxV76^5OMG+f%_yKzC#v9~)n7#s6%vseBgU8V^q7Czb?j) zU~c0w0>md3WU|oop3U_40ashE*Y%6QuI%TOcdJr5Kt5O7o$z-aRS@jb{}?@b>Hq{A z@il$&8U+NMisfi*qGzgS0+O~`5mH@11WEau&MX!uZo~ z6-0}y?A(&H2`3VmXFtLXXb7pY!px%PwR_aOFew zghSqViEE>x&KY4#ME10X(Cd*OtE&%j(RpQV0EW9TtlHd#6e>E1kKz^%fJa6KyCzi!AF%wR z-0mVu+)2tx)fGt7s&4>-F8Cb$^_4Ly`!%qX;>4JGPwb|;pbBpq0_2M~JOjuZl!4$< z5;6Tjw3JkijSpC8RSVYAvl}6d%{@CC^LL8`l17ng?K_R{Zi~n zFYi1MDBRl}^Vj2xegOz>6L~n8p~Iq|j=rKhqx#bPJd@Fh2vPpx%^sZ$dgY^rP2?*H zI*{W#VkigGnPR@uuw!m5G-R!;WqS@I@n&|&H!gvY{A|w%0Eusy;`JQ%P0V>dYY4;M zjZ{qb;hqo#G3}AodDwL}EcQeimGav9zz85@AiI}uUY5*a@hK#GyF%LBw-fBI3QCabV|;hGVY8mO*pI5T-qDL0UFXWp##$<> z_;Qh+QVAZAYFZF?o%l$~`uYGMMA(M;^}ty ze`I>^lNN;TSUci8K{zDts@jf53q;43mEZoImjLLvsfCD25o}YVAlhT@gsat2@(HZhUE;uU?&t$Qn%uVK`#cy zi=>#=@M?=IL;)f(X4 zs?p?cA?tV?^2$Ei1x@pb8y=_L8H5(IsWe?+gBE8C z@{isEZZXFVmIK`>a|DW=3a2WpAlWF<28#L z2|~D!ph{z{dZtdQG~XQ=Z53@-EVZRst--2O=p4-T68up!UxfX61#nX20FegICzmeG zDz4+9O8cg;fw_%p0_%-$j)GgwTx&Nfl#m8k43KDgKgwGW@-y*|E}a5Wo;`;V?>4X$ zqsO{;Ppmas*LuC9Yb_alDW`>GaMtYP)$8mV@hCbGv&5vqAtlGx?P}Z$vxD6fFK3=E?CJ@HvkAi&CIy zu?+_x2J1fz=a&{M{IJ&~(R7+?)1#lf`G&_$h|-C~k0oUL$%A8g@?jbTt-Wot$q%7~ zP*8ZIysGjP1WJ$>3kY1KTLIE^DF8!rRHfOIMC~Md zCOlUszgx_1N-*#(POMfPEOM=-ozG z4ZTVLNk!Nw8(n!{c*NzUxOAnHjQZL(gq4GVmwdbnmLpbR|7WMLf)_)Rm2JQ*GO^70 zCfr9~)WCl&R9%%<5d5nVA!8`IVL8=8{lNK+KLH}kP(rv@4}S(g{KkaTEL}sbN};qh z$kyt?%~El%G!O)YKnwC94gB3sL_q#wMv&okMfJ^$mqZ~snqeC)7c5J30c=8BQGTEP z#Irp*r9pStetx@+Iqt`M91|@u-iE!_3tZHNOICh$e%TQgl9P%MsV6!-Gy%eIS-ot6 z^$`{jht6a87$CE#H%8lSktt)ZRCVc(Dtsx{0qR=)pG?&#kv4ntc!{tj+t%L8a z)f)VZjur{u0c1AAN{EY?r=bgsqJ-U|BZ2GE3lGP<2#|OG@CtYPCr>&Cf^;fB8P+=* z_Ev9gBhZTjr@o69vum){gJWQyp0EJ|CFBY5v78;qqgLaU0lh+F-<(8W5qiEMBhDmpee`m z6Wd_VLeH##7sG`>ppThNcK3~qLRbzg`k2(o1ZfEGLYyXqjIxQx%iRqLrfEfvhRC)ij8GY){?Ddpx;sySi(KUoE01mY?rf2iLA0 zlRS?9quC?bQI^7b7B52#BH%&Z3$FwNNc}NipOMF+Gs2<*LR6EA;Af7q&F+4{9jek+ z>f}^FGil%DgDheJ!RqJaX*nL87^uY(wa_7|QJF)4umiscBF`lF)`KJzgriLp>=I%K z!M`a4l&`)IaJ0M49jPJyqOuz&fZ%>pX0Tsedf{mS!2C1gmw@h{yc|i zJG!}!VJP^)5VD&w@PU0aEb~|I2S@l}cdbzP{Co$1AX_-wXkM_GIXIDi{lfSMk|k4k zl?84-FD7|m#;XFI#@>KJ0eLCj)`J|K&f8W+Ire>%ul2GJpa-p}u-1dFI%_y8WUig6 zR%f7uTo)85FU2Ga3F#QX0%d3gD2t<`y{Jm#W766ret!IU$GVeVvz(DP#$DqSj@#LD zhgxh{>#Q-S6P8X-rjkcjgecg5P9ft>EFeCinGmURV=Ag?@C#Vl@J%{z*Ub&JDpG>&k1iZ{LtrSYW7qY%E^79_r60U^JiGJbsQ znHVJDX6uZ2G6rPD8rLnB1eD2S;;|2<`O^3%m3${&Erzk^=OnfKXbn9%nzNq9~UZQwhvR_q+)qVfqgl&ZPiA8ngo$?MFC|nz00ik+Cs#rE zF@S%|?e5Rg$O*Z()3J1%Kb)E8yaN$;grbSoZh_xXT5V``emz+`)MP&cL=4^>?ZpSe zqMOm7Rscwd00JpGr_aH&Nv1mhM462waRtfdrI;`Q-(i37OcXqtGO=O8&$Y3*w3JM& z2~J)H8(|4E-c)LTR>1}&oxHCudJhn!W1Ywy3up5U0U-Q7fiHvbv20{#qiNEGAio|9 z2(qx;QpfH;-0Pr9!@u7{VzBzr!I~-vZgP479B{f>GA(fdDy;yKPThnMw&Y@`3Ibbt zNdAQpF?#1AF=t=)1A`gBAL=ZSQTkd!%YgZX+_dDIXK=}4Boi@nO|-?zxhb$o zRA62{@Fh0rqd^X}xJE}N0L;BnSWi{e+!C)?(%`vys0pc#6(o8o0SUq;<~G`Cpk7-a zp%EG!pB#W?_3KA{t2K;bHG3}NHR46wUp*# zfZ#K+I2nLNH^2Q+F9y@XGszfDXO{2Z7Yc|Zp>H(;B&u{yA6d{VD70mtVULNtiUMV0 z|L}19^6KhF4su-V{kfUTZDcb{9S!$yn^X$bJUM z!Ig$(a4rCTG?+te-_I~op95Xkq~i&NCs;%wY9u;4Z!OQ{^L7F8nx}|SNfGGBzuG7k z%4G=bHX9E1%aux{oXcg#r*>E|#l}S3cP(HAfwVr<&cr?DnGogu(~~G6icAbTbYsQk zIj;2rXTc1Sh*Q&0h6Pu(8?a6Xj|eKd?W>U0JuYk(O+3VeA|D@FftU;-x*0b@nGAe2 zKI{%q1*vQiK*G?0u;7D^6$Jmzhe>r|74z4b;3%eedzD;D;z_LT7TS&YEerIL`oEmN z``HdOWQNJ63UokBsKC#X02*G(7dI@VWBuvQ2>=A$1Sv4u;5Pc73AWpY884$vbA%Lkq41WC^-1mxzBd2M$3p- z#WC+bybmz>uc}F6@_OBb+*VGagrF3ZZ^iy2qu1@ngKIrLvT2x;8WM?8yo4YlYx~(% zva5F66>^6@L2l!?(blH@dch)xh2|m|WWzjcQ_qayGihl-cpMuR5R##GU_5~4y;^l9 zLCE&=wt(1k7iIuvwOXPAK88aWr8U?EsX9Ud;Zv-bJ+)DjUJrR`(EF);A^-u)21kva z#W#T;Ai&$3Lc{K&aCt#}BJ6JQe;8!7?};Y8DX4xBWDNUW0&-{a4)HqD?c`l&8y5yzM1bG0>$*AirE)@fxtowi>FbrAvLkMri|x8;*S$iWmZA)=oi z9q6eQ`;(JMiIYBjWF1Qgf8ec`+rpIW^8!L;)i@%%`TwcA4xL7_tgZh&2=c$Hv^ntt zjc=6;Z$j>|Jv|A$k~c8Dm=>|hpo|MwGm<j4Zf{U;_;~IaQ^xg04+J8M(SR8{XkxUL0d3Un^9Q)gOoZ>OMRx%>WibbnuoH7e??YOS!0XF?ngMWF@R?hniR6U9tc3b3KJ(>SWx~A z1a1l42J@0B8-DyF)n&{Z%M6M}1;pcuzb-+TOFkK|_j39*s9s zC>BdQ=l@D-)L=VzzR8(^uldjm?0rcB8F%Hl?M?^S#%A?|5uSh|N3w-W0Kx2|@4y;8 zJT;b@59D4wG@CWl#=`v3#e{-AL+=+6AVqk?aK0SA3#r!qHI`jVguDa65$J6b3r_^c z}XLs#$H=?vjF(+Zc7^g#bWY$~&M!&tszT7NH9n3~vdd_1!Z{4jc-( z?6qr|%!ImS>y~8 z>L@2dhTPG~(Dv=f^v8|5WmeCQqsNC;)2h`sm_(0DN|I;aOCkhkr3N&5gXq%pXj9x< zRNy04Sl`#QK5xtUv!mzUetRa79vzQH$Hzv}$wY=jL@y2-WMPfvg>@AE4g~cTZ`ZJg zLTr%KYM&bALTZFDC8o#{Pawuldvjf!fTeGVo-fagP9K|QwQ>@dK}+?}G|jW9OaKy- z*yy6+Lx{0QB}c?0$uUVo-0aivo~RU*z1IS?~)?AX|Di$q~X6$VhV02*3j;V4omr2(K4zjmsxy zAd0Xh3>84&WO^`k6SOIYp!IeamLTLrT&YyZ&ZfsW zIwZyvNs{>0w8R;0?I8*H;^H0&6GR*^9|1UAFo+`^=B`sf_O3ak&WH*{TJ4ehZUkW{moyh zK`qAWMDd;&uu*}xyqbl=LQ>q(-|^{2%ozqMip&T?D5%4N7>Go84oliO5L0T`B=VQJ~mfFJJ<}(90tViy<&*L}OG}bufbzjZed~C8U0y z0o^qe^d?%YkU-RR0+8kOIAaPjSlL;<+c8gMskcy`O!{*OPa(FaixK97Qoe&td&Wia z2-7M(8R^M;=!?lzvakcvJpzSBk1Ze*D>cUYkcc5FNP*>KkP%-Gvbz_q85Sxmt_Egq z+8JDn*^T5jEwGYNS&2Cj=Lv-G(Yj`ZBSmq)GaUh4kHKBY?T(FT6DNT{a4H5Iw6g|D z&bH+lh3kps#S&_binJpnGhTciqY8yaEDE1uh!M93Q6jf|71pPrtFS;}aV04B+L6`u zx^rx*Rnmd1ERRZ3beus*a{P?{dYAK}C0W96ji=f}x{w-<$E*Wb$%_&i93JOh&=zUS z2KAwe#l=Jplu5+h5h6ftjd;h0@e_VQDE*7YfdsN2vLP?3SO*{=hh~K}`!YMvt`cUt zrYX8Iz@X##a1 zyrJBN=QRkBt;OUB%kuHWiF{3O3Xznr6|a8WKoUVx08Z zY?`K7Z*_35*lE>Fv&rLwNlA|Smq}pBZ#xMjzpje3Z04c_P$9N#Y|)Xe4Xd=|xyuW1b91CkKyvATr?(J|nc77eo3Jc7pR)Xq6l67zFZ(B#CLx&~En5@Jd zg!q)(yDdj#%uzV^XeQoyNF+Gy6h zl+*|!e3dDVj~HW-wm!@a!NOyS!ex*x=tBCN^ltrLkrr6{Vy!^HqO(xm;(|2u^N)GV z&p%oy14j5JWM+0!j?q1c``8yY8NYwIGShdnKr;zt@ER+a3<8$7$iDT}MCy7Z1^`hQ zi*tn7WLxql2OrSRF_{8{tkdfpZK45W6957!1UoZy-lPRqR@H>Uhjw1LSm4-rz~jlY zC-5*|)Gx|qUSrLq6bXSr(?^f&KJtk^(4zl3bW0FI>D7YTg}mzYUkg{aFC`E)0whHU zi6exHjA8z8G{)$#oUYR=Nl}V*>gC}wlGpl&TC96K9nul6CKfH3DkWRTbKF9AsIQ_3g_)j6`u%u0WO5 z>X%q8#D`-;HWVOb-GF(RSfRNKHNEV)TH9b-Kqgpip`H}j73|MHc<}t?(v6!u=HL_e zVSVxJ@j|)GkHICQE=}7juppwtD}&wNKmrMAd?}!9x(eq)ESn|}3XsuBrl1JSRHgpc zOCn>@I0A$$LP$P7#|~XE%F?bog}a9o11@oXK?^MLI3~C6K6!ba_LAoLYcxsD>4^73L^M!HbSvU6*r12rFKt#evzRmG*<0d+I&;9Tx zYjbmO$q{n>#k2X`%-gdO#{7gVv|k*cnS?iiph|CG_c2lHz{w3i!$^a(AlRiJLaTxz zW8He=qz4csJsco#>PomkfZ#5~=|DUanLW`~AlvQRPhQ?|-~sq}|KT^T{BZ8(4HqIy zJcrC&n@uy;M+Y^y9!U*u(X-*)qSIAKP=hSa$m&=vO1z~2aY`(C@~m##E%ShjjMcl{ zRu3Qw;UkbJqLY$fp{ZFHAh1riy0&$jbm%)DZElNIV6EJ~^8)bU#N6E4m9JfSb=^%N z@a>n+jM=vnQHgo`bI(01Jve$Pg>;Kf4i>Hi*UD8aYnV8Xmc$eilP8Yq9kW?EmL|?j z(`wZ=T%B6UPl-k%gLnXeCJzAu?imMG=YWi`c0X+A^FrZ6E#1NV;UthBKm7Vgmap zEHhA0ik?)OjR`sC0;Dhu9|cuJfS_RzrjUl$ffS9s{Y}B}aen(5INS5!3lQF%zxu{^ zKmVO?yt6jP!~HH#A?=yWnC$C7{HJ_EyhSH%`tO3PEt1J$C6T5rza5bov>FpnCjcHj zk+BaBr{rOjXpG&QkoW*?tiG*p`H}0=2gWz(BPG-ZWdCpMUCnOdSQ;IvU!$Oe#EvWw z_z5U%@WhBjj=YczX?u~lutWD*G?9*c&v+3ZC&9E%eKkw`Giys8V0np|uK z+*c2vfROnzQsYIv=(r5Md+>#671&P{2^*~LH<3=R{vkiql|LUr`X&HihbUI8Men9N z06#bhNC)oZ?*oDeKqPpE0pz&IMj{v46~f_g{L7a)4+KW4eybEi)D}U=)W6V7E3T~0ZyGrFEg=_r?$_6kX%LHS!M#KOfZm;lGkp8POI=4K4Q-IEE%Io zDzNJXvEz1l%@t29L`aPVphl-_2c8}LYSlJBWZvnZw;3Y3(T|IWiyu;Brc`pYn;_(6 zuq>*GfV?6#-V+|k>Uf>CmI|NQ_sc_DN}Z;%7^aCaKRUfdZ}lI@4t(M&WRbg} zjF)SI2>;OAOd@)beFxyjT(bEg2rsj5G8-Z(*V&v@s3@Wt$d52Z$AKZgG@&iT)0m@G z`dmt;(uiMReZ=lcb)#<>ec6J639kIGi2)ks9q@xGx^PRqrU8OTYXF91GBKMWVeog1 zVVr>zL4TQP<9gmDAtbre1JO)O1O%QH{mP8Y&<#MaM-#{^_}^x%9cbeglyVgsUT4FRUZq%J%{C4|6@RKYMO$ zVk{z-jYQy|vq+qoRvm&!FW2L-s<5^%4uT4@7TWa1p-Jef^d6&-RSHl}?%{aP()48z zZ6_(i#c|soKDy2@*?4*FCI}M+)QHC8VNl~`GPQLIA~kB??3)hxkEsyK42rq?5{$sueD8xHBE#g(O80Ei0D~1 z0SF?j3G#hB)-*-_EeM;1ut%7)zzb*w^21+nk`T|ckefxR>|B}JjANyOyL;U=!}2BM z__F|}Vo#ENe^(G;N`zwsGo4PDL^MlG9D)dq*>Y@42t1Pn0<2W1j0%WZ!J|p&Y8HBa zKC)LXaF=9yyNiCwRg^uu8g9BiLyqjLw}!($P!M(Y)DTt#sZJ6ElWAA0)p>@A6BAx{ z2y(p~L&vmO=8_bgQp{N@5)}+z|BjP@*e45by+*5$gA(ipI`Qc|Z;tLH^wH^wL(>FF z$m6plthO~UUovwZxE zCny zb$uOG0g6=H^O_FXB7q3YDL{&B@RH%|AQuBdx4Ru$tE7J&HZ4BpxgkI#aBfFF9}Kg!ZYkb0TjIcobi=(NRB zLcHH*z;bDlb|yY^74-nLF~~x!6L3=a=)V2-@Bnv@O8Wr4Ac{*tRQU>h=xGL?0%C7j z^t{q*v1@aGnxaC@x~d%xvHm6c5^@R{+}uBaAWJwPAnphYLP7b_$1($f_`&mDNcTpx zLiDN^a`~w#s)x{rdq5Va;5YIyc>4+n($M!4JbK- zvZn2)hjDjjoy>|gKMT3Ke|SU*;^6rkN)X%y1o4G?#M5}3OG`SnkcZKP;3Fm>u?DQ7W(!VhXK;?F!FUwQv-xn1qbt zJc5*~wMM_de6=zq%XD~S%_WE{ApZ|Rwt9hVVNLczL{=fT4FQ(}{RsvEnUnhr&E4$4 zu2dWeUzO?K{qXLm|C(2#|G1bSrBb#hU{Ok3;*@}8=j}#3jAA$(-=1lB0P3~A6b~Ot zNMYxP_p`G?=<&Y)(*lB&;h$&0tw20SRxc;CS2UK88OP@Y^=iSN{E&?-SPPkfD@1f;aMg;h^(j&J=0 zw~_VH5&f*?#J@^7LiS-l*&Ih&nVEYbDuJ+mNXwk`8mXS`S(}rc`qTT)~>Rmksu zoRSb|Vf`6aZ5LMPVs2pxh@5hm*yPmO-2@phHubi0a+!2GqlH%y#&j)|(Bh_L*^b0A z_Cj{1>?W?5xGk)O0#eR;#}osPe|fxVaVFM~RV&{4#JVjX>5WV{iV!BT7{M4(C8Qf> zPKwA<3@7g(ZE9lU{qtg*VyT+kd>nWI0X%yAbx*AA-Ib8~olh)wqaQ9mGT}8$Fmi!0 z@Py!KNH=qigm?+DcivA`=}=pPAy8!HPt2Iocldt$TvN)%X<|D@e_*( z0{pNHeGPjD;W5tdw!Pm|gcaSi9SQLg^4;}r`l!YGYQY4gx|J4Za~JT)`sS~KGuaA_ z+WaTh^(39ymZ?WERXk2aj=Ov7MD?!gleMQyVTi0kJOzOk@7o0xNU>bceC$Ds_x>U;&Mc>0mE%)}GmhZjoUJiI)}V|;zFbWIZ*vnauAn^!ci3UOs*fyty) zu4nt^nE(@(P)pWdZ6=f#B?KSqbrad#1HC`JgBjr+@-eV0RSLvL)pl3CB%JTfytya*GpHg_gTd@l3>ERUw9<^5-Dec zPbccNJ_qvTj6@8nhyYM@z1bOFTwGjsj$TJp0>E%pOEN?>7*rwOf`GjG+uYYxy>Igh zGg2a4yy911d~y{7xs>voHh zsJ;Y($VS%h-u~x*yx)28>W<=^S2(khY4IZvA&DV5(F}o!`Yb_g#vQi;K^WoIn{Kz$ z=^UQA`~VCuPY&FFcfZW5*ky<$i1;d`zw_?>TS$HWR6eqO#u?|fk@|H^Sn}LEXP=m| zs@WXl%raN8q9T;<91O39!x23I=T|OH_dCsXN(m0zk|Bb@c>gbN-|dwCHfK3%U~|qK z&dhXLd|;=bM^;WSLn?(@eU=~v#vDthSWy+MHanLW6LxsNTpo1ul&A`(2}uya0MW1S z{P>6283^=t3l8VNpjmCd*COE$Yeh?MpMUjnO;b5#V$PNZs7u(tTc5%B{ECc$SkGG=D6qpq6 zD;_VqPA}FP{Yr(g6@V+C1C zn^$7Y2l!y#Pc|Wsl}?Kfv=uxI5j-yB>{gv#ELUsaH=gSH%Gk+^P<#J!(#JaKHdU(l z^NA$^BM|WqEWr{YJU+c*zl34PEsoR&S_o5*2T`xpJG>miXLm1xR9`BH1ZPG%2_BRC z%@D!1UWb2b>vg;8unRJ-(vJ_WF0L*+-OkC?#jx`xGWNjxj35$>TW$yI*DpY1CyQlk z<=L32#419{C@Z?PdpW#3=Rg0wrQCmq*Zf?LP?ho>h8ZHyFEp*R|LBzy$!z=-hv^8-3rCTGiR^@4&7jPQsE zh~&GS&T$J7jMrPo9oL72iK415LHtysOE6}pzl@1jda_u>o;h+-Ds889jG+|A`Tb@q zO0c3Jg4gp$-DBhtWKGXG5`KZ7JXiueSv{LC+4o-EFjfgt6+~NYg-nh&kk)Y?VR&Mp zkRuhuKkz(QARrF`k3@U2DlB_jLW;F5Lq{MXlww53b9F_fSdFS6AV`%Zh>rjx^mOkF z35eV-WQ@=H-m6(7y@C-;3Mo?5YbY4g@!=m`8cqDv;q^RN4+W1zZx=FtYjp|~#7t=l zJgpQ(y@8@cRRBg|e^nr|0GU+i52Xwd9DZA9+;;U2T+L1(MAdmfXhoLjzUuI%(s0M* z0TD#>{w=EvzAxX}O*c~;nH7wbYw4iT8!5q5w;TzdfI$J0giE6ji6NrPkcvH3r-Oo6 z#sMKJ-ql7b5%UN#`M5bf>MH?}1qeK_9u^*n?)CD*%knfqY%{r`AvDd6aREY+5-vCr ze&L60_;UmzAeoH|z9UzhK0%r@HsVjFi;xLX$Zs_}@Xr!tt>CIy8+7?M(EQTgrK-#2ezO!Q>k<& zt|b!xt!o-2zgsqAfnKsrLs;hn#aEjmO<8Q}6e%#I?^s5BjnEr%01yrtR#5dLXKtk9 ziB&{mu^4f&7S`dd73c}b*kbZfA6Y`DA(b3#-`+69HqtAxTPp{mrqd}uZ=nm=Q16M{4dMJ&tGCfNQ(+9+aRZ7&nOq?MJ~2CI zWWrH`5hMde6-2?cj|mC^;{&>cF5pUo-^-AXB5jL&dUdK?Yh=>8g4AhXRWkxPMQ1t7 zh_7I8wFQ%QGlDP>UL~>BxM>Ho01-by_hGLW3U#5YQ_~s(f2XGH?uZ1m0^znf`m=Z! zCrI>E+Y_> zKRG;Vjp?Ew6bc?gxMQZ0(7<}=cqFt?XS_1SkdiwvOi(;MBn%r?04osYSY~1kVUG|B zS>HV!9v(*tRjxH8V+C%9@azm6CKB#6q`-w{4Nuh}^#;7#Zz}X?KxZI1Q&%uj6&I?4 zNxpM=aS3;ZDSS1uC!0Z=5GH#N)hPka_cNOdy_0owNv>4i(xX^WJzyNp86+I=O-{hyCt{X1?8uM4||jwE)FhyZlHdd(&q|B}0Vn zs58zcm$FJ_Erju?LXU-v9AiNg5L1t0gj&tL-QC^8!^4wttTlvMpX|PQbKFJ*uQ+ya z9460_vOvGZkjLQ4T28P|@p)aBIJNaOuW4TzULBcYia4!`$7y zHbs#89vFTkld?dcZT7;Bx>$xZYUMHB~YQajygACKw}IK zy2mZ5QlbQeAdFebXObWDe2b1F_>4oXT6R@r`?(&XSd9_gbeI!F0xK@b-TIWIlVmi&>9sXqgZR^bN!GG zcR!v2nq0BvPGG@oGrmHuW33N6M|s!;X&rYu2m7xvhT_EUvDS=Rk{`eL6wp$tWyXTc zkaU7zZ<(;Wn~xxj5hAGdq1$a@qI$8`_Wj_8EYv^uX0HSgBohT9Ahn%uVS*rS5o5BR zf73){6l=ZW*gn5e-IM(IVq5BxAVxZjq1cE<5kl(tnu$tqtA(&K$^>%!%?~&+D)}K9 z^2M%>x)K8YDhim~;zksyR2hZJC2T+Q!$|gma)MVfB%oXAsRZ&u-rXNlsX%Cak=yn! zL0o?HdeUDa8S-WOSSbkYRcE0nBYyaK2*T};k{_SXkZ=Cya~L9FZlts*zR7Y>ZrzJa z6nsl<;K%3B2PGa!hJ5B8-bQLvrvtptN%A}KZ>%-rj`@%BL%L2RLq4m{-Ovb{){gP7 z6wy$@$C+4XasmAxJ$3T+FJ*`XcPz+#$1{&B#S;+S_AjrW$p!R(;wWjb7{Zno-O1pu zS}GGl=$aUca-Ew+=f+xd<`dmJlMCqg|CPo5kG(U9ZQE)RFbeGb4y?OH7P?6XSt5D| z+r$V!t&~bu(`;nK&Y~72QAxR0Eb=|=sZb<~+=F2Ose!c`CmY6b3Lj#Ny3|hZ&~8ui zp?_l(u3vr78#o8M9tcs-i5~ z*IEM^gLh_Ky(GW3#(Yl|K92J-`U4u=o1&c;G`V(LE*9lB2qk1(YN-nPKniR1YWluLjLG@sO@4rHlNy9U++q(3FDY7h{ttX`{QbA*JSHi?eeRn5AC?WNIopdp>Qi(qc3=t!Z07{Ls**ndw5?DKA2S z57&SE!w^E=o?w8TCiRW=&CShi_-t;jOAAGH^kxTYWBTLuCr?ldbu9t(!y1KU_j^#?X0@-|jx7N1NL_b)$%x$tnO}djxl_-9O8lwsY$tEc{mYbDKDV#6p1KmZ_`o%V>6b7@b!Hs?4xeAo zdabR=e49ElA9Zs${==OQx%~$q1oMlxeUGm{0y+diQPSzOq6nfO=C;?9ZFQ6{t*Uvz zvYrz})T@Ai+U#eyKAakeugor!*+qLzaqDFZ>97UQw{C64RO*2LxN+l)e{%U41|jC0 zy0aq7@>~2z^2uf$tyBR-3_kENSKm&_qa%b;Qk0(TW4M8uoEm_wxN$ zjc)A?;&Eaz(t9>JW*gS3`*(*;2$l1B*}SOzKufg@7gP1* zC|vw3tNL@jEqv-8yBR111o2(oPHJ&TVg z&m(v~^$0E?bo;X4b_7z$=N+6$y1%qA=tPJb-`GJAEC(WJtk=WoV5ue_LT+b0u96W% z@W}x_lr&!pM3|ZxWC@w1eXTXtKrYQK$|lRx79W-a2?fHzP!pc|K4f2St7B>}xpiX{ z$1}KxoqX}LqnlZj7MGUF@$+0=ZO=b9?Nq=GEXY8DJ}(=}rqha%9S91fAu=7l1Bq?q ztn>rbiW(E~`Z*mQ6(ue3@ej>0TkKN&G`dL4HPL5hMs9BYB z*3`>~0$#6&o#B-ukRv(=qUIV}#=$ zZb9S=CkY|6SXx@L!z?h=P4hb(vW`ra*CA?&ggp$WNqi<_77cTo-^payjx4rOxAY2` z3@>SnKjIAsxsc9hGnlgXk0HH!?O*2>%{3(2Fbg0j$H(1fvr%LG;c(a=n$a4~?y5?u< z8AYk{!|o(gWqn6b1SKm;hFTWYdc&R|%hfa;v_AZH;_4OSJojst?iHxHM%zaQx{Zcb ztJN5MRfIXfvK(8}v__+O0xo2-O-B3;a}Q3Z9_99xn}|3{2)Gcu6}PmsAQP&}^DlB> zsG^ieunZFn_&pH>Bp0CL((w&`dKtu7y9nGnfS;uIk0LePiY z2g{RF89~76pvDE!*x;xCFNk>9gq{@yMaU)P5db2JX@%!lKX74d2DRY65;dNWL6CI? zPF1{)S2`HZPHvc6Slt>6$p^mRz#1k|Yht#3+KkiD@-ddvciq!Y9PEFm#rq{71U?

p#X)Rd*`PqH3pF zDx(uAbr%0uQTiPwTp%)FsNMkh55XvH3)@5KHzCG6FEuKDg|Dpwp&}(1zxUjM_#zC4 z4L?(iiK=`k$1N0+nTWP(eQb zI%ib~GdjlxJbhaa`%OLsMf}fumo8tMh%PLZ%N2AYYT?IIy9a9~6uh{mYgg0tHXT{_ z?!hbf_VY2O>X3*yR14{>n1GZ^sq8?P;tUh9jgFnM_&^VGhpO*C1NFL45VcL@Vsui| zrYDO989hka1QT>fGogT)qKCa6iw~(lGe`(=<)b>*%M9>i`l`M=Oi(0tQ~v8HSP z&B(HJO7Fdb;X#*=F{bLbok`V+T3o3jAmz2SI~mautfI62z6%L*n#G5xK!~N%_oYKV z>~uPFoz9nYbMVvY9D)?{vFT}TYwL&B?k-G`H>UII*J(wtz!ddRFk+~U_&yHJNNIx| z0XniSU5_u6O{py3J^ay%uuvK^xCa0DpuX7r)t3EaTOHBiy9ck_;g4|>@(ZPo425)7 zDrFD=q@J_;u+lpFu@}C^y1}p~-!~|AM#^W*Ya;B83tIdHysRkQB zkbPmp>llEX^m7pOS)(|7_x8A}gRVH0h^X>PwNwH?j=p-aBUl_LS&i|682hFkw#Ezn z{AByP-ws=daTWD9->g(C6)3cnDz;Qt9=_ab^-c#SWP5wNz31krlmJ->>-YLFQTO^h zOhUH+Q3QVO9y$=4kjK5VJ_sib##rO=_ePg-<)hVzDq(MhKzBSAU}FhkM=$ zB@4?{^dU!O=;gIy9fhw2!Q28^qV{>&8Oa8u{@dHUlv26#;K6bQxwB=-U~mhDoJ>4y zfg$qU7r=l4h{kw;$N&@YfUzeuORXr>le72Bwj7lnp7**Rn`?q>5H_a+TQQ5(zHo^)Vqyu>cWv z-ktd3&J>joR}qi$MOi~Wc5Ux*f-O^a=j|~P0)W&Qtn_gSj`90EoR;aUt=~Di@T;C4 zpY{W(<600mqPY+U<(n{T19IAvj>;9-^@5Z|rYap)_2b~STm5iIK5(QWLTSfLLXP;l zXbN`n1_IcosLyage}IuPW~`IT@o_@l#RriQ4@~@D=i_MY>DKOeh&+P2yX%cvQ}#LPWo#@LEPMJG&PP3co+ka6EniXHKj_mTDjjj z9LCXJ6q|Q%yR%VFHZP7f5g|lHkrzsa1>dpeUh$ipWw;Oyr1M&cWmtF;%`(V;wcqKE z4m)2W9+mPNV)J21lVx$f$sUn?j=k6k+G93xFJzxAyz4s2gIK zkOo+sG;1N24K-~KVy?kPfhrUj53%8l{LZUCTt1v{%^Ken72shWQGHl7v-I_C(F7zL zN`&;RV2p+E8keY?qqXw|kgx1K9lO9wnM zX%HbRL7*k|x6k;}+C_KtaIc5I2eIHdt!qVF&02zMnB+h!R>_8{R4P>=8Bhe zgEtRuI~`uRGa_T_?AYx8g##iI7s{H2bRip8-&K}> zGxxA9y7YK(#OY*<_4>KSz=&+Cl>tqpqR~7D zt=p(+$7Y0emb$>y66~QtHbQ`rzqdE><^hbJfAE1zh|^)#c=~%OIfN=jwNhFtSw?+y z=g|&k#@=D zF=RKPP5m#B$1T`HlEfg3eyx#grdjy^QV$YDpU{%{Z@1S=>=u_ z?{4450ol#X%{`m|+_(DOnB#pDE+vREuO%3_C>MrLsy^=qxb5{ z1zbhr#8;=MXb1ql>6|BUJ zAU_^MbmjCWp1Pu8^*c|n4)V+&{SszDqIYs~8EYY>z$*IFG6I54!I3ZgV62c0C`c7u zonR@f%@!Cm`5u}Iu~QhE5}}3adl)yt8ChV+8%u&bT$#}=L}^CT)-onJ@DKaP{K+O~ zR4alId%>`WureY^M<#b+^y8k>+I|{)v&gGgx0`n)B2)b>HaR){una*Smft)&B#n>c zV>MKbP{`le1@MlCLNXSilCnUceYLXok=&MG5^-$o6SQO>;|r!~xa7etCwpCJPjW4*u_%UVF@_H1k?vPg=oNsBD; zBsYsikfWiXia=!~5U@^Oed_$^wC5apoD-;r{)zV9yAG}hAV+$G&6!3 zu^@;fq5C-fYulZKZ}nPF;Jlm7SdqvWBM3?e5~P$LEC2Z{P_BYLI$)kRIn>>Hk>hxt zg9rP8_paI>U*)Jjoh>5yHvlAhTUv-8zh^8$tij%;uwJe>zo8|wq#F!um-Q@)PGwNg zjf8glq>}LJ@rREeF}dsDwBKm>{*N0I!Euct3j~QFK8&#*Smau#+pMeTz>g8+2SWDW zxlt$ljT7B&H_t6D2%OvP5;;M*2n?Yb_w%MpIChSJ-Pm7B7@55XgQd>rMY+SSh9|TH zEpI4%&1_Ui5HcfU!Jz}H`s5uB)}94=I0;{n@RQ@HE+69b9qed65 z4#mP{Sn^&%5WE}2y4pwyECu+17n{310G@B0-D(!_EqQgOb|Ia;$8=R`1zhF%~6wO)rv|0`}N|q6{#C(9~DoCzz{sl2>QOiQIe}#NLRL zZ^25zxJD!zjgBDLYjiXMKd@PW)kAb;da|ToXIu>;SrKGtXt#hLUf>7EI3aj`T3_$y zdG?7DfgxGuL-t{85Vj$H`|YL6|M-2=?NzFSTM;Dwq9*@aB3fCt$z^~t(|n4`z~@L${qlC2jd&i(K|c_Q+H-dFS?Kwi-Q^qTGgEc zU|)tQzVdd|^PI>S!7nCuc4nIew+A62L$BE$C|Q>|gNp?SI`v3CXU)1t8xwwY+)` zL*y__&Ikg??)+X%5S%1@aag`qS3yFUeh@{_f%G6h>`F*L%6FCkKOA#@7DeQJ@FWz$ zc_t*t0A@&4cqs74GJOhjQ>9k-5$3n2#a73vWc}u zf%mup9-afE4ibV}NUmOMdA_>8x7yNj^=i{ATH~;@e6Wl7;c|@VYb_!9xv6xafZ%uR zN=QnQm^uFuwlbW}tyfOj5WC<5Ctye_G6F%>n5-f*6b19Lr9cT;DM}~7hvg}+7gi$% zrK0Yo0E~c;0SQ6*1CzUg0nZi=G-bBIrvrF=h#miq60+9>gX3&r!yXL0|2^;0)0xR- zkg8$~=Ek{=4BF+y_UdA@Q4jI(Lfwu305a@>dQk0S z^VQ$~WiNlSV=*LVQDz_(K7t@U8yV{8&EjizeF|xBUqOb3*w_aw^>O%dX3K_9SwBGs zBW`pX9f>lEsAbQQt}MkL6nB}#u$+cVrf?A(PUNu)`Z)1J@poT``iEc7qlwctWvh#VO~OM6yd?XeHpE!jr|VTezccOXjaMmX6iZzPI=)_|-YA|WtXSXcvrgQ}X#L10&*e;3RUE~oY* zKNytpJ1)V^yXLg*b!{D%?`F-es7!KwUEAK)=CJ)_!LaGY<4ybQHJkOp^3&c2MFQeG zG96{i@)F&UkrV1M_yHl-lOMZ3I?>gcM@_zNC>>8iuxgH5rEzhtELS2SSgiBWp~K!K zW1nYW=n3mEVUR;N>Ul`+F3cA6pi^ODO`B`vFx86}-&iBJujqPg8QWZlm#oX=NC}~B z5E!S;V-ejh@B*PbAF-|7;m6q*5wId}$%@$XAV3g+l=5Q*BmzYcxvUGJeiLx$FNhxo z3>itKh#!c7NB_ienBHC3&~gXHU~>s=u2~T4p|^J~Pmm%Z!Jpiwtb>Ha?Fk4<$SkN8 z(QJK2SC2!GkTF#I)zHI~@xpO- zW$YzyR6Kad?`pJI+SHHjIky1GUeVR?1H@R=ep{S;noxCB^4_{s7!|Bh$sz@b^G$p{ZJ}@5WJXn*-=qPyfuzG0v^i3~2sDot=syrYUefnpn zAgCb=Yg&>bshp-6`T^B+QM~vwxpW5j#NO{rsVck02bGI;DJqo_M4!l*-749gDMhzU zkC6An&981-iGvy#raHQCCmKo4UgYY+}&rd}?doColT=_v&y}a$@Ph_T9JATf4+C$se7Eusa%*j#DS)g7A)GlZVxay6;moFi1$t{ zuKD4`UsmT9M4mSWZTZGIZNqTsB3J)Xg`3l81f8%mRg@@G!!aDRwJCQ~8%NGbDY(95 z*n9JeLyvRnML|e~>|YQ? zBum}Tx;zgPfDDw)%8`Ij+SaGo6A=8)jC}Oq`M~&RXWINc;{uuyph)0=4WY{kY(m#< z)D=SAck2YsBYJqA!`2c8H!pZxZd4Pl*0>moCIIsdi#ziN%NMG8oWH7CiS=+6?VfMc zKuXIPsgk7PAZuhaY#%m_fVb-gCx~tl;32r(rb8F&USj=mDxb&7;)9Ji+5Nrtp&&hQ z9LnK`6KO#=JToJO>ks|7-mR)olt*3N;6gkH;WmpP9gm9Un`qh31{#hkLc!glq0i2^ zM-iOL2&=EtF#33OpxOlScin1*&7&SGh(i615Zi{BDJT>&2cm|n2(%vloA({-;h+$P zVGmM)T^dTEPp>XQon5y&aPotc1K-l_(MK|?=@m=J&b(Yjeo$=XoQP65)9XkPbCXrz znHN`BRTn5B^~`d(kQ)UA5$Zrd5IWTKkRi0is(JyIVz2{Zt1^3h95|!7aJxtlLoG=f z>Wf6GDb_fRCU^@S2>98qVYY-rCzB>cC0-;?ziRc&xe=2Y)BTSRR*{ zHzDlF@fTY|CWQaD<@>hwr`uA5oaH)eT6A^-&#`=;t=Jy;*z(? z9uO~(E50S!N>$H9-UW8G#zTNmUynUpkT~$G{B_l|fB(=|{gB8*hz+TDC_B!?6H$Xn zWFG@qzn8~C-h5d=X6yRa^G!0;`%w;ygMOqOFw!}ddA8%Um76d^1)z6TL=M`ep5b1Ls{h>NCFDU?c=sh8DCKHR2jm^CK?5w_f z8seXF3}PQn9`J(ZhpxY2D@8Fm`v_4)@O_75@pkZeKt{upy?1N4bIQWyM>)!5hiEVW zfJD^)B%-2ZS#ox|Aq=vy1^tzf>8SXufSe4cZ|nQMT<{Wh3WyKb5S3Mx8}$z5Q7|?M z31N(geJP2DaXXLIQS7~6z&)od{Ptl7B^T>B=X5x0)H{?%Bx^T+OTq;7vE#a&jWz)} z8BNY$b%$TP_YV^CRY1hZ)=?cg?RO~u1(|J)gqjGjvy}K1Og62M)C2MNfAh_@(g93} z&4pTr@)SnmIwipXezgm*oE#PZD*C}>-9uGkAjHVoDCgQKSDpludL&Xx>N<40L=WtR zj0eX>+e9yBKi3bB8$fDk28^+3QaYSf>rkE$BTkY^$s!;xNNlU=%fWGbnBvKg@J}Ov*u2ayDF^+aDC=$w{BL4(Dak5(&x5Z{adAcNwW+)VByB#Rpi7$qp*UqaT?gJIDch~FY0km?2m#O8t;DwA zQk3U_vG&#`@LXbY5g7~#kPxiC0W2o_M@2C#29xD?pIwC*6HScNmW|wsacDM_=R|f( zf-`Gv?wp88SrRo(#H1!3I=)gu_J10l9(*kyUM`RqAO>Dcn+t}Eh7%drWGF9(Ok$Ed zsV8(r3}QqkFkaX=gmk*=chk{nF&NjY6rpr65Fms$T=IkWkOpxD4#r{SIEuN|WGF9_ zOzMjmyzr?cVL{YTq#JDi<;Cdv9v9Q&)4j^JNmW8?L-|Om#gs_tyzAeoct- z%CVI*-)ctw({3G*0000W0P6qhZUpHHd8b=uWTCXwb>^sY!*cLZ+@~TcAQ#=Nf9u zzx8wP8Y1`e0#51n2Mi1j3>|e9vk=5d*>OISmm)qXj@DW^dF#Q`aw8j(Rx9Hnl-4GG ztdFi22GlV*e4cO@?frv5ba*X>oL8n>g$AC<~9ko7( z#JOqcvU!M00s*_@Srs|)T^(n(%)fI2uipLo5eKJ>m_2=)5DUFybl)5*7$ZCuxOppO zm17uDM)Jw3h^{|B#?|`M#5=Z{SWOOuP&~D@e2I+8OsAY?*Qr{@Ax%9!l(GzY^x@l3 z*S1UQiVgqbt0smA)OX0OM#IOA9O6+f#m~?M7SVG8^?ndbi8IR+VAf&_HQwI6Tdv$T z+GK9JWLOrj;wj=nC>?!q-CWQ!r#Of2y$5o^{K{r?eRa*iNtGPDB)u{w9ZU>(_AbwVhWE1 z@H%p=&tPV1o%cz&6G;^=JBb>uUoCOGq8RTpO#e`pPTLH>dd9IZQg2c<_%J;z~;^`8@R*5&6W-bq+)oJgVo@5 ze}Y{)SOc;;<7!+&VZ@lZCi7&_tLW!elXhgvI&vi9@zp#D0F&2oajXM)>*VpCoCtH3 z=H@t|8J`E;SMnw4Zz%uC9?tij=y-KtY>%qT-N*NsrNIyP?BVsQLPvXBg%dbc9Ekm= zxn$G=W=uq5vU2Sku3jpzsfOo+EGw@mgrqSS##hCEH8BHrkfh&hjG1Q{gQM*tE!@~f zp%ke10pX@j&IxDwl(}B$at}M=DqeYJY+k!J&--NY7Gh0vy|v<1AZ|SOVJqS3G$V>hz)@F3XzWpus zJnO3UVF+5QKm~{a9;WYIeD!}w_@T74hEB?8{@X&(R}WmOZIpMd96B7>`voB5_F`eM zNbzA8IA~*YMmYZurw`S%rAN1ee=&TA^O!di>s*aKDK~Pu3(FDUPo}_}6~RYkK1^V$ zQDyZImW8Mi&yrYhNe;GvyN~D9TH>C3QSoH_;PIrb?$M8KINLbph|f^+yU$Pn&#g4{ zCYset^2L&SMRel?1u7l*u&4Q?!Y=%;F@W!`zN}}%RC~CzOrFp&O$6Jg-s1A z5^J&bESBzskmZm@{kwHCU3dyi=y_#o)7Ooho07OUMSs;E=@#LIT964#2XERGH-@gf z7slJ#=lVqBMNG2^#fQanc{)APm>>As-Il%Bt^0%;N?p!s4BZZUIr%&RF|B#3qj9=L zUQ_o-z`=ZAHyU4LG~#SxalC3?UhbVRoztHwMg|DW6(U~=Os@;gbh z_&gaaHh4(NdV+0AkxqoxhIHwa%;$IEqk)=e29g&{jurI@%wmQ=oi%X2u@|9%iry>IJY%hQT|lx!tLh=ycH{DEoF z(C5PRBe5I|pciD1+p)XapNX*voh%4O<3SerJqxUZhNP7?=hd; zhP$>MBEqF3l^~HF_u7S@2^Lxj5Nv5c)5%ov8ZK5NAD^Ewz~QUJDm*{-=2Oh2LFyP= zB)=A$@O!%87~t8ozD-zsw6_#lXG-9uu6XdIDFX9a_gLCKoO8m!F{B~1F2QRi2Dx$C ztZpN*6qrV?-t62s7*wB@sz2oX+M+nz@eh5!3u~N+$YNqa?<(Mnodm^%SZpuhq`ai} zb8-zPqN)r(6}G`iRES?~X0!gzWLIcTEO1y#0Pt{FY1=vfMO=s%8Ex+dFgdK`K&+%# zBoz#qoxb}tSeO9Kk1l4px(&P(ToJo=Rw)@TeyzDKF5o5plt}+63IWG_<4~@$s0z(? zY)0a|z`4yYA6Tsqk9mh{>0;YA1SL^yMPmk#vu(HFGN?|iUyD2mk-I9aDOCWN}L<;qug#O<%hEOGX^H2Uc{4%Bhr7I_>n<=)&qO77`kMwj% z&)|`^=B2#96J0%stAm7^9sc`Kx?8rP-%O&8^#3kxM&49p?D#4sZ*wB6kpl-;SRLAD zFTiHFHn-xr&hzprCRMG=9k;E}Uf7WXF^&r{w3J_3y&V6=PYa-a`;R>yJd~FlJc;s( zlepBMQKURF7y3h=)F`PM*oUF+?WLj@{9uraUKb_P)$xLE%c__7R-|gqvMh~sbr3Jk z$~qWBxp=B-4gzByy_leu&+jrSmLTc$D}yKU<3%s!9}1yfi)@$|n(^r!RIg)C*72kA z=RXmlLM0O!)R3vUj-!CgtEZLF6RvrFe(1KdQ$wXcie+gL-|FMuzK_+0!ST8z1qhkK z3s~5i{DohyT?^q^?nwWXl+Ps8+g>0jvA*X3_UgB!0PU&k5u{N%^+Sj}k?#ECBrhM)&rOSJ=>xqN#GSdZZRrJI=9fCvX4*6)u@;00QX zpP9RwWip59&2IA29kO(B$E8uB+G{-5CB8Mw{DEF8Llud*30Xc>NUuDZf9uOC#XdSj z1jktd7$~83{I$3rXG$z{84C<;TceVH&fI7oT8?^o#))CMzwTuJ=rzA!%*~Rk%#vq- zIKtoPRKi#MAblkTmifdXu~a%+8It|2>(zktN7T%x4VsVjZ8jgseKkLbE5(So^l=1K zejqz!ur2eLk=E2uLJd>6WkZ>&K;{e1EPiy>%MGpx0qi3O#|AB9;&?(%hD)8HA9E6? z@2)67U8xpV@l2BWDGpCHW%m6pw^=&J!D4RxlTa(?k|xQ`UF-!|ioG7))VR1<&x^$; zzkIZe$bpM$k#2ycrPxoe&FK4FFsnc`FX17B-G;8ECSr;;K6Lfu4RkL?x-Rk&1vB9! zfx*vT+jc*?2tDpuk6xrAN}KWlSD%U)Pie1JIwQ>gfhbd8on^ToFF9z=nC41 z^4as9P@IjHGyyP}0x}Op8r%&3@+`?VkqRl|Re^XsY$IulT$~WNlOGG#Hja$DFVvu5 z+GFWPg#YiB1Ivwd#g#_Mh9bEq3`nn1a}9W^ttLkEc)(V{V0q^m2T(=tTfn~{{brvc zfd=l|iMqNBQvnWyh4C~FRpO>C`vo25PH1qnHDUl{!E>o(E8miS25 zjJ`L36|lgtKzGQHL8tq@G=YW?oe9%UPK?_VaV-0klr=_1Cuuyg2)CcF6ZMzL== zmIl8W3EUBy?|0DpJQu0I4kOA^fm*gMxbHEv=pceZYkqu~mcpxdL@dM8m(DM!=f#)M z8>apCIbQn9l5fMv+itylhI8={WJf`Ybq2Bd#Wxl54$dkVrLE%2%a zI>UTasfYxHac@3%Eo03;12QiE2|euXooKQZrD&Bds8pSid>$7l83Sx%NfLirx#A7& z=+K%V4m-~H#nn}q$Bd43FXYz^dl-6-2^{n80#NQb&Xx8 zig#90TF0w+Vj`cN#fP}Q^v4bdc^EKK?iX2zQh1myGChiqUuZ)&5SN-(oaa6*c%79M z>7EaFHn7_Muo=qU-khly3ac4)6s?O$Hri_~ZI|003q z(Msyxg&B@eMHi#%;>#p&ekigZIU%Mrm%uf5o(Ax5rys8cQY{QcPMn@7RaY5w=C>UR z>I-0bo4q+0<6)O9UTt^Fd5^A_P&sDW)W#O3gtXwRc4Sw)auBI>VM%&rMWXhs0^xbv zRA%AdskL|y4R@JLtJ2)&t%Hl>-ZC|rq8^QuW!P&|>=GY2H2 zt72hVaA9#!$esCz_9PWrk8Xa?Ga2RuGL0JCduin)W7C2gTxI_L+Q`15FZQUOOMIR|6352-80HY3)Vxico614!md}d&Z zr&_Bou=1U-2(~sJu2jznxH6ZIKX-U%V3R@k6_ANGnkCKQhr|NgtSfOZlk|)5%)z-B z()npbNgM($ze56Z$Q!O$mMqSDIjb^g0q1W=PV^}F$>XswSU8avM(zk2g+$MatFrN@ zC?maCi&tB>;#=L?&A15q|NqFTPi*esiO8 zDSP(6SgUqvk*1?tX|CPNE%MND@D7+WGxTImiC^&v$R`k5`4&lTsdt=UJVlE6I5Dnn zGqIlLXkvK#Pt@WxHlPa&!D(0I81Rv+bD?MS90$bu z)oKlP3r&&KI}R^`0zj#}PfI(Ot^hd@^%Jrl;_}m2+CB|T0K%T*m)+>dTs)bfRM^4$ z?*E&tlN5phTevB-*4PnZ+y29i{3n=<^<_oRa|{#J{??PHD9f?LuX+4*CXXAv9WM`P zYn!jhi}A@B&R>6dmANKT!w8iqH$DsYuK8W3z#u- z6FzD0fCCqrfDe)HT_8id~)hcHetoiOFBVb zoRTJ`kJci))#rHq%wopuMTDvU$8ipL*w&e7kbAvBn%qO{IfL@;nA>-0WL(L2->iK7 zu4Npa+m!0UWsd~xzwcMS?k{ZrSx#@_ zncSa%a#*#_hsRTgm%^sF|0$5P%cU^w#_zVH{FC`7W-$P>)Aolt$L$;5nVHER7^`27 z@JAtV(c9;6!>duPXEg)weoa(p@Uk5eN3rI@D2;$d98huwP%p6B@~SdU`j2}=UvI`M zxzDZ-&vIuS!gc+^jp;H>huos>4%ljRRa?`DHDs&Ct#ta&YGZf#b-&P6XD+3!n2G)jVzwFcCR z*wN@PLew^aP%zq^G-#&$EeEQe0fe!R(HhWwro2u7dlHfMJv;sCe*EfqW;|G@D3mo^ zAo6sP2?J$G4e&X^U)82pX_nAUX197^bJfev!$%UH?F~sUl);&TfR@b2FxPCX%2A!$@~ZYsm!=4Yot?&xfcQgfj*^Yq-K%u#utpDC?aJ5X zgd<^hdy4_=8f^o-i9)*(H9iGm32Z zLwDecB#-go^sbYb>#2onb+``tn+z%5TpnAnT=YGZ-xLAA{lLJLY#F2+S`E9tWav-pCILO+ zBu1OB@kDh{>nj7Wa{Omd6oDi2Pj7Nz*#mIXqLqoo)CYmpN#$Mg@UgUg7nYi zG^EBaJ(D+uxGFCH86^UK10C9Yt{K^{kg(r?i;x&oe900*h;BLD`B^yAMZBasiHn|x zSZ?Jc8w=QPu^3NLPUuoPbG`psdhKug+FPhyo&J{&1N)`VCLl+d3r_Zxy0OaKz>YC3 z;z=Apmss;qc_wp-1W;_{5|+9X$h>MXHZiuIyE^E55V zKd?5IAFSbfmWRDf8jU_C5ONP&(QxVUNu`Q@4i~_0IOu4#{;lp!qz^Nb?IsU0LiOZk z-%7W=kDv4mBs})SwU%4jTT<3=ZDPXrB5uggldT2CQv*&MEhTA2v18%xc# zfUz`D8Uit)8qed2CSIrztN!Z2Rk2XAAOGre^5%tG6zZ$C#P_KM^pMZdTny=Ny^D?l zwq|&pn?<@bc=x@+&JqC+6q^8r=VMR|PWZgD*Z#9Y%@FPe#x>1%D+4VkGgwF@Tk&%7LbMm#X! zk>r&F&iatg>zoE~EXRsQ%fDaL|8ntx9af4^_V-UqXIm|p=y;rGo?u${3cafNJorHg zd%`J6kwM*VN_Pvx^@=Av9TOgjU&-A?q%5R>#U8Pq{gq!`(8%bs>k&0I*1vyq;`5k} zD>rf|vCfctu{9njE8o1NOop38a0_(L`H)?0B5i`zyfBgY;~F;PEKnlwour`vDX>qb z8w;)pNl49Otaco@7U-aU0vrfF!Z@65VsL%FHr|}nlLeTi(|SX0d$RldhwX(`{cb?v z1tvW4d8!G(GXtT?U&+l!6D_$#9}y?1kH+wbYGFA%VomDk(+vM6L|<`?vmW1lLAN^; zyokHv?oDpH9Yj!%`WvY&qo_ikfIZFr(r09Xs2aK$jmF_yHgfT@q+OcCY*Z2>pPwk* zPSHz6UOus~xhp=rZqRhlT4^+8mfKvjqA3gUz~Zw5KUv2isd||v5XQmaWU4q4oj;Fu zREO}gBYg&vJJO$Z?%r0+tSMrzKUWTB_d({eR+ND|AVI$&KZ1}Gc6~Z*g;WHW8r_TYM_&VP{4XsBy@gh%5tvS3;jh{Iy9jbFsU%=TdlbbgwI+HRMzG3a{^1T6#+Es9b|8@JNeCs$T89(ugRs1=uVP;|X zevjz^n|^waIxOH~GNBl;MTd*GOYrx!|ZoW|PN7Ukhj#5Y_uv7w0XslEWpA+iZ3~ z{GhJE^s}8(-_(5JEBtqN&m5V>@^1huIM9n!dKy^eH=5LmCTGd!e@=PN!wug*dNu>j z~|3&Yn`IQV)<0PHx}jq%-Pfl9)!iR z0g0I-?mBeDN+*z4N7-BLJgz{MZ`pa5?$l~6Y}UDC#lU##L62`!JE zt#bE}GFr!njCXSfnge1S?J0c(R4;l@T?8opKJ{dMspQL0&AiF zCL1ykFghN}_pQQ^?FqmY)OQAHro-Rw;6f6m>(~;Fx~Sw@kiiilcVd=b{?sJmlOFX^ zAo!OJKTP)a$DM$D*pnu)+#V#_W-GYX3}@cwMA_DX%&1&>1YYLrSM3SYX4wrd*SR#G z?#=kW;l&0k*zXrMfRd>6L*;TEq*q9spKKULVRb66lMne~+0g4~i!`&UG4?sgxKATn z3w}hY!)PsuzLht>x&nm2xU}RC z$|SS|kjBZqYmaxYZ%{W5HsF(;<;joVMZeMg{4&?-Ca@^mH19hROkHRhx?h;EpHc~Z z87*0o97K-+vaMC&AGlP>HbH# zhw#x4(LV#)dLiP1L7Zsy*1rtwBJDbX4b3z%W>1pf#mkkr)9wZ;yev^laLwie@$uy% zh1oEU{?!c7LZLz@Rwy;j$x!gGE~P6YJwqh!6~R#mSF z)#!X&1r7rad5oVo4ar(t4qgJzm_NR37Mqk_Nf`A7k-Sp~oDZ(HWj^H27kD3MCa!(I zOZ=4fv!`>=FLn~XEFl8WJI9BKZ+RdYUjeZk7Tvn1UN;XF15La9SI&nUi~)^JPjlv` z)Qsjk2r$(#4du%J!ZU9%5I!B&0bc?Rcnc@YuR7SWd*b&Bj-@zmFSYU3-G}K?AXyD) z!k2Y-uA2WaLN3g1#9(x zu0=Rz^kL@hv!5d!yYAm}!~faH5i8Dz9;jA2y6AX{CM>#4y4rD^l=#^zKQ)I(=BV|vMStV?*!^nT>*@zvX|$H zIF!h|;YW25%Pm*atM5 z^Bwb$`Gj?0)kj>B@M7*m)FQtS%NYr@8w15+T4^kIK%wd3n9hhoVS~i!ktmm)!iy&I z_6X~)P1vQz@zd@MhXqZgWfGCk&f`q%A^wfc0shHGl)wTu=$>$NzG>y)N6Npnh~Uhs zUe1#4p6drmk-=v-VmYEXzJdSO3*aVcGgIF359xUP16AyyHP(LYb1chL-*mU#226?- z$@Qi!jAc&^Vp8^^i!OU#6a$kKpeX^Luky9PCHMIyZ~kV=seHOrn416YJk>$-wPk8L zYS?Ff-J(p2A}K9A!g{dv`rz}S8fLA=VMk!1jmABmzH4v;_cs!8IGuf!n`+p_N#C5% z!s5M;e)#lDzCkJahqc#lGDO@9xjCQAJgF&QK|Zb+Z!I*9ub6IbY}C?H2BotOw+Xqz zGlc^3(DFOa@DRnhF2O1{Nw4NCfXo1aJSTu!F*qi=mGj)MEqBcU#3}1O>`a)pt14!Np5XkKD#-|ZC9GNw5Lie1G zd&!FG&0yTe?bg{^ats@nmzveBEWo%BA86tI7w~j~I{49AX0tzVa=)F;Lv z2DSf+t7q?@+4`hUSMgX&DOa8FFMlUK;&rG*qm*U)d(DDsM`()D72GK2RscPYSg z5WQdWuSj0F0qsp%J5+Z@*(M|KOa7jJ+Xc;s4+?k9FM9^_&nC%L@>l;idauVDA0Kv$ zSsQk=DWV}wxA@l9shsG>*qB&6TWP+|mlt%YToRhOPAE}j>KBL#d7aScv5(;eI2DPxZ5(pH~%d8rNK;5F50vl*0BHo`+w}helln8n$k*<^Rkp zl0I8C2h7Q~s>wupGyRC7k*-uf56EpdvMpT}^UYnpi=_t5oFy@>z!Wu-l#d(2eQNhx_Nx9Po@bVK9^kVV(I5CYv-QB~ z>6cDr((hsK+?J?~XzzJFdq|H2qal9%(w_#$#-env-Uul!J*(`T!)*Mp53Qm`^@6}< z1A!-mLLj6V1;V6I_2|cGu9X692xVN9ZN6Lbeq-8NxnmfMq`1v>;Oar$pYmLM&!IJj z*viNxoA2RvSdeC&BQ-f+X5b|cVA_^$ON?hV(^ByI$oqBwztH+v&is0>cG52^J{Zuy z_MQayWZ4sb1J4wLyDcv-u3f=GOFxFYF9Ia?T{kSR&e?{e%;?i)PmoROq6f%vITASEr zLVm)w9=9rA8CvmO(GIImQ__q6Eu`r8)M;L0ez9ZQsq2^opW_#$P+`z&4MR-j(VODR^kzABg<4u?H2QI$q8$Wgy~2dXUjZ+6Mkh=P z+@XgZza7E*M=p+fD28CUjh_j>@?C16QSp?|Tdy11P4sdWG`B9kDBCPQ5+sGr#l+IC zj!lG>LQZf|SNP-J(P3tA&q`r`w+n=|Q{SrK3cq{F^W?P&dH}l?A9cNeUCBMD)y!2X zbS#SpempXl-xNiFtniQ1oc%H!m&vT@-slN{Mb#HR*1XnSMR)J9MdwRbj+JMblvFK> zEgoTZJyzt2D;9j?HWN21w@~v-yYDmzqOJU$zYy>1b*^;pt;ATEXj=dC4wQn9X{q5= z|DlC07>^jjB z9bfQsLJ=I*c^|h%m;OcP%Fu?^0M4H^2k!jFIQl}UzCyJ)n)AlU_99pOjKMW z(SP)ne-8il;!<4!GJ+}e4ekswqAh?P`uu+gd&&Yv;LR2_c~f=SIX)p2GXfnkL5hW< z8N;5QQ8?c)=wNG0Wd?xA@Brn$3_>_+>&~yOGQS$8EWSV6^aaTIQUI4KUIdhCsM?&6 z9ratplwE~|yuDC$!rH5QUD@JtWtA4Br}vTE42qKTWqkC(8+oyEzmO-1=4KsQ$Ml}~ z?vF{KJrR5vXhQis*H9&0;0D-m+3sg8=SvQ($ARXG2(^=hQjT!ia<{s$#^f^!867M4 zldhbqwD4W*5`DVn7*F^RLZTG`&!opgghdAvb{N-myZors*zaWme+4Aou{|PRsdWj9 z%zT5w5+G7A%3hokxDWtjyIJUyK;ML9RtItLM*UFMR+$Ol-pj-#rkF|3ucrqKJ=lio zHhFS}$yMkz8;? z6`4Asu6vYkQ!@OmX8$m^&|_xdD-%zrOFZ8Esq|;ji8L?^*Mi7^^t;N(Y!bgeU{^x4 zWHqlYhm~iRlIXoKRJ{d&W8!ITbQ~Z#x^E9t%3EIO=Wi0V`+D=p8jx*Mu}le5X>uK<EG55M_OU09hYU1?e7qiC zdrulfr%ENRl{psL_3_AB4N>r3mzzpOv{%^Atm+SD#o#y03a_54ATINl>N$SBTtLs0 zN;~c5fWahMR6XDMlZ(GQheh+TD~rIXAnV1{m9mK{1kLzc6{HlhIw3vRnA={v`=!Lwy7@4643IOVO7vToHUJ3&XE-#07FUQ6t$sn_a!KYxvX}-$ z&>?`sT)1L0d2CBsVTQ87L(%1|!2R{lCtnaxgu{h&^sj#O=^=w;X%6tsN=B|t+rX$2 zZjdE<&(rG_)YF8mAd|eh}a z=K!XCwKLeqhQc_;p@A%Rlpls&w<~=wl~M_PwmKqVo@&R>{;Z{VCKL2mrLbk!@_|=_ zd6E~93yt%YVI-Ox1b9#6#lnt}pM8!@qrqQ4zlAE>Ox5l^;bk84DKufiJO%}q@V%&t zoxYgsUGDj#F;~abCH1f76%9}U*HY=*>s;vIA2`v%bKt`z4X7HN@RN`L;H&_Es(Fs4 zq9d3yi-?EEaU9G@oh_Od$tylxh)-==-vpZM@WKJLjnQ=6sG7gyI!Mdn5i366SlmQ; z?9Q2**i-MTc=Vo~Z6+-WIiO-4?_*{7H})$s4~O{+gwRG46$a+c#n0h}bl-Wkcc|2I z@;pY|sJVA*Ozy?P**XMuY!v|TWSKH#)WBlQliFauj8Zc{3~i(=4nT1t@Ey=RGK|3 zOR?N$8Wc`aCX8P~rS;^zOn7v|77k=9WK9{4aZoTqmS>KMBAYT858`^X&`S=XiZhYx z^qmA^7}Vk6sSlpVpNvU^?pFThl9qj&i>j(xT)@d95%N%?$h3MdLoKg+PXtG3C|H(s zS58H)RF?C_`pmDRdoGWhG9B4A`jQ;`JmIgb$IP0)A(1JIk*p3*A&A2~B&S$g?BXI> zF4VM%b&u$GtAP}-j4$0h78Z7r!1Vs~R&`PJuXCylj~)OIMND6{5O2$IDyA(=8hnWUa#`@S2CrxX_j9Ri-uYpiQ$rZLQ+`}8I%3l8Es?~rN z;A3S4C`QF(Oj&iaZT9&y7Eo5$qz2z`dl~)+q(la00>9s0)KuZZ-#Sy)b9m;k@{72m z5T)mh;t3tPa79rWC+(fzWm#cvltOXn=IPwU^|7TIdT0Cf^3z!nkx#1oPRMO@O`+wi zn?!l@se)zY=B^rp;D%D9D6|pS%yQmH2`&4NE=*TtS)jfRRulejIUmhFryEFT3c>+L#>Xm8nxyl)6^+50u@~6;DsTzL6 zh20Y4aC)~i+SC_7Yyrfft?_tNm1@TeP#2+0Du4%Nnz~|qD`*M;v+|eYZV#{m(i4Ab zWbmcGj%s{hV_G0tiIfYx6 z|0rSBC5PU)$FdRyUzft)Y;brS(u}95+#bs{oNq2CB{LPvsTLP7cMQ86@5nRZ%{`jp>gEGwd zLF=YL9QU{dwkvopy;%MGqG2|a{wBmCbQQZGs{#{Z3Z;SYSJIa8=Yt*C&Yj?qoq-=A zz?r16p0Ans=`wX+tZTV|+;Qj&T7CKHfZ{{y){4>uU{>h zlDtg2iydwUz}(#f_-C~uF%#|Mbz?jr`E>z(rxtRkUGr__`>|#L3*M1hm$+^hMTiu# zE2ZmREgmp5x(i2f8!rDMZJ>bO0C3r|Ky{*M2}#dmY>>!c!0bu6 zR^J#=En$CV&RL>Le_YquA4Fbc>-Y31rnRgxCmkCRASWvkH%LnIMi-W|>lG!CY#v6Fhy2y82X zQpcgOZ_*6V|6}`%@Qcpcz35AY@b`Yp8Hb<{zl^Yu!;!8fMQy-nO@x(99UoJ4PcNcjkZkV74$U|m0gbnJEGDG>2K$*vX#`2{5(|ZTG zJu5spzo?kJw&~V$W(|IP( zD~#YW^M4*){ld}ZddyxCD8>mhNe#>M-1#T)m%mkOY)FQ+Ve3c4B-MAw8g8YZrp&-w zO%>!7FHj-^4zPfhl>WKZ9b|;O)loIvnn`+)osgaoJQd;|oljB}+Nv@TSuS!-n@BuitK`{cq)Vsh5 zjOm}UX_uD-__0B&HKhsV>i8B7L^u$OMDh!{L>GpW^{;C5N({x5?`dzY9+8c zj|9=L*|2D|SuHZi5((Ebclz_I1+IT}y5(RSysBoIlQR}KQAfjiVEW=}!= zb1ry~)e;-b`Yfi=_%|&ib^wb6Ay7tR{<4r%Uk=}4DaNm~|2Ax#Sa;Dx0Ka>cI3bvS zQb97@!T0L1Qv|T^@1N?{1zgzewwVWYrj2~_1q_LWHU_49($X$xI<;ZMp_}|!=G>zY z1S}1l{A;(lcgTB*m$J=o`YSs*b!7*|dT2oWPk^ZgfN*T59jKd1ShuC4Gn{R$3KZxo zXr8IXPz9+9YUyH4B|p)d)9qhv!Lj`L>BHuGQ_U5oPfS;#6v^2Z!}Yk>;U2y*l6EhM zwY@G_jSPH=XAyf|H@A~uH~8S~VC=NmMZ#G#763OnHD;S^pOJ8E{Ey-L^88sGFrshR#lz2ib{Frnaoci+I~&Kaj;k!K;CHO z_0YWyLP2hzM}n9y8q`4uAU*cn)Qi$*2Adaq<q z^#HR%T?oa}L#ZLH&VyRdfo&>bniChTH@v9tX%d@VFBWkIo@#>TkKQus%p^7lh|t95 zHylfM(1|@y)>J9^>#1fwv(=0RiX-=5pUy1bOBegA0GI#|Y&(Q&jGQW`@OqSm7Evt@ z0Z~sh(ik)67=qch@E}X-tKW}8hYpur_ocDlIKv~!pdd7`|2JW`;Q;ryYIFIjP`3oE z80b9B$-a%fW0B-#uZ%$GUJS38g6`uY$qJ`JeI2@7T5D(Z`r(VBb%Y1*U(ddr68-GA zW!H>Ws^|@km>*j}*#)YiN-9Xt=w9vL;Qy*(;{~XL-hC83lLW@SbmfLvSkI^6B_tK% zUFWOZios!h7Xu;}X%fAa97P2xVGCgM#l|v);8#PR4fxq-P#9@4OzR9&&*!B+8haQm zQk%e}+!R*32>@2Jn^!Idz7567$P~#{5$F9v^x%~ex6Wf|@9kxyslATz+$)`DIVq{c zkCxk89@Yajbf#(sYJrftf377ZP?wTv7yYfqX;O1~AksD{JuM7cXFdHvYIEuD&cNS8 ze1XwXUT2aHi6jGL@8!CkFLdCh9`74wl<5NhG^BX3#vmnNwk*|ITi4!J!$K5DUQ$IX zgnkMRY!T>lghVfRFOzjD&BF_XmAzk}0zPcilsRIw zv#yK;p7N1Oex~3wL7{Og?MU(e~!AHCY2BeW(}y9cvmLsZ~%`Tg&2GopaO7yk;|e1km1XN zwd9B8@Yh)fo;#z%mzy7a7Cw}+s{UEhPq&kDmow9=uNpFI2;yB?u7MCh?W&vkMI$?k z7saF{LO4-XS+SB%ba^(fAW1*1d#mb5$?5QhlS%^wJw<3BPs%^n?G`!KQ~!-sS1V13 znOK605Qjg0yP*HX*I0=4`JTL!Lf({0|P{=GScxm7E3Voca}rb519m-r8WD{WYo_+9(q0W5S zRc>5ZsABzS8Ae`3(Y3P{rd{R((@ZGhXdqTL)$iJk^=uBOpTjTQSUSy8W3iaKGFsJD2>{V<#M3Q?Wt} z#NL!;Xxgw@&zIW%1C*gnRm<96&fJft`$FWl5*4_=md4L|E77G2njk(%emRzIrYaDn zZ}g$P;pbllzrtsz#d|`84f$d|Qs6zAaLI~4e{Ks8gackoCJ0K8LU@Si!&@=6r<$tv z3xaJU*7DSOnWKKO1=6|f7r!t0b1AFLd^a!=rpx(VI|<9XQDO{-=UJyJ8PEVEIqR(osu<6uAU_*~iWqg8i zGb{7=K}6rPcu)=CJ4N{J*NpzwBLm-s)FxKHO9dhTy(-9n^z?vn^y4ZCi){<&YH5DzAo58A@}v?YrfQ zqHX)I51ET>;JoZ%NwyN)A&Zhc9fYQSj)h8?w@!b(dGZs`@=bYCw{Pds$MgB;6H1E1 zKi#FGpnpKPLT9$c-N7GYB$KyK21h(z_}745ZFIzqGtwavq0>`SS9C$I_a&v48f~nG@(H zB81D%cHV>1yF>M>LR6mS=n3E5i2(|3zYOQR(vj(pl}t@eSO-nWn<1RI4>Q)WdB#a= z!2?}&`*BSdSLM%*;gRW5a!J~GD4CoA45;KA&pZ6o{EYd0m*Vk$p+Vu0i(f`;dz8ScYt4nPe+I zS%$Jy)-l#FB#(Vd#YAX^Y-6kJ%aEl(ir@5oy?*~c&vT!1&pGe&zUQ8EFEuUiCtD&L z<4C2y-8%B)sV+-Sh1fFY4)P=^W2Q=M?aJ}ba}PhBJq^%sOLEFV^Zz%TEt1zgu+~0RJUlmZ zkJ!mdLWHNM)=e?x_Qakcy>-0X3`u7t1=8YZ7yWB5SWfrZ#69KX6b6-;P+hlTm5UX8 zQ%Glr9oZf%zHRtvP8ti9T|RD_3YacgV7Qjq6CkPnzhP|%IZl$V88b_YTJ0z|}Z0|Iq$ddw42FGRmavKpOhu74U zWvlP=8+%{xtL}!*o^ulRZS=q@^0W#2-j=$!!q%+nv-dmvjR~pGxE{hrD_4p^?DFDX zIBS%jdDw+-n@Y0XBkqQG5gsn8{at(Ldc}|tp#=GS^q!mvYG(;n-5P;L4j54zd6@uO z7qCFE?b=MkGG+B54s@jC|9FjEa;iMCAy}MrWN9-ev%;-0+7do4U~_5Y+vM}^n*4O| zD_mcH7nKjWNxnY+Od75^8cBXxJM+TB!+0gzBbRQ7749Z=ks0hd6}!N?YT(oMy_ahF z_6lED5>dZx)N@$jqOxj0rlw=YNwPgyXHJTs%Xt3DKiY<%p_+-IM~u2}4Y(LMksV$!)?numlqrs*DdpiVL!avd8zrA z7mnqheZJ=)BFQgZz+hcA9b-TB+W29=#m@7?77R-aBoqJE8 ze@i?^3;&2;>9bbKd+q;hS4 zd}q9a?(uw4Ng;0Ia>Mz9=lp7bSo6&I7k6e%t9){)Z;ma9BIP4u*jWy;^tTmbZMsoBj zSf+RMZ!S&#d}5a_ygH z{U}=p+ewHcT49moJma^5(hQqNA}{>;z#SdT?UG__{5Yfa)Q>-}UwOP^?!WdsrfES} z_qdnFa4RAmrVan_#bVTCxu#LIbYZBStIdQ_WjBYK60eu*Wl)ccxco;ugVuB zrSXgRoyDc!BV}p9qj2?rCA!C)2vv~288G-lB(WegYg-(Z#{=v%-1y{}qly!d{7aNC zs?$AXiaAw5H?Au*Em-Rw+Y`_T4|X&bG5Puiw+Z_0;&mo~P@Yjaa;{Sdyku{h;ikLc zMEUGX?2;{m#KHVpdZAsDXcQyavC~T1u1z2u(iiY$ox2Lq?n$7?#w%Ubzs*Vdy;q76 zzgOlFwFBWwBIyJ5+9CBFj)X^}p_ZyN**8rsD8S8dV2|xvoYuT8FS!8bmk>|k7_I+x zb7auUNbRdUxV3+7rihg-vn= z2fEo0Q*Sf7drgTy{SWlu#*mpRalBJ?bKLz%h_cZeT~w6S@2h1CCc4K=fF~r-kpM+y zj>o2YFUFw8f2Pq)*E0}uxlM`7h5C2O0rB*Mtg&tW^B|A?#NzE5U_KI)q3d!Be?|7q z<EI|nk+z-bN={qFim&4>%(%SAkwl>Z+wnpw|)Y2rY5u|nIcEX(Kf_x{;m6N zB{rC&Z0nEzOmw#+JW5)N0E+p$S90|Au?y14*n*4|lmKW~4`F5`lVQTU+s1RMb(+W# zZ0Y;(YRPAc^C2h#bg+Q)b?9Jp5+mrQ0rY3aQ}!?FIVMmbk0b%{;2iXWO2jVX!ur&y z_`83K5fdHBC`Yv{T-2&{Hz3nbA@kpdN&|JwI59@VY^W^gsjm&6+3~u75N0HY$0FbD z>g|jiG!^~VvDv~(CtBLL(rt`zjse$UD}Us5=Oo}AOf&cR%fXBYsP4(O zPV|8i21K^|FVYrnzmA2f($z8Iq)FkhyvG!O3TbDOwh`Ey4nF(F;oAuYQlEUO?*V4A z<tG%J+}KUhl0nYZT`0Jpej zr*b=D=t#}W03Uc61!eP@m`UV*+Q0~=#Z#&=WTME0lcs$)9YDLi_yMyIE-gUAJhANp zNP!S+B47znR(nt(g)yq-VCj3J5Fc2yua|AZLP+@VtH@dh2zfikpf%5f)odL5lQ$Cd zH$k77EaWTk4BUwQLi3_zB6qq1GVeyzgC6AFu~Hva2)j#=PadB)CrSg=VH0X^2WbUUzNer zQ;R}+h~UGw0;}PYaJRo`cG9#IX}`~-43n)smucDL!cr1PPmTzg-kH^%uJr)Vrldx8 z+Ml9s;Xh|TSV1LYe~s|U#U&swD|8iJKl=dfmU$uu^vx z{4bhdre{-=W~X+Q%^1v7KRSY zVG%U*)n>pnywUwxy2=ZcGhi}3FqS`hRr^1vCDGyyH-WzlU<8el`JZw=N{0$Vy5BBL z`4*oiJbHocY`W!JOtNDOtELA>p#mQ!>fft5Iw^g1NgfY&1dYQ)5R)bDRlDzviB&A5 z`_4f;gu+|Ixyg^Z9RUaDx)P+T(0^}|5(C9>L3PU5C(8hH7Y30-Q0m7nJcxhreZ{GG znS-C&uSBZ#d|qPzT57X`)nMaGz0o*^vDA^BaZtCKmK)%F#PvCt9>?lwHOG1C5E^4S zg&{9P;l0?jCi~Z`E%EM^hjSA(y2tB}r9PF@g@A*)ewE#80fQH0?0{18G&EBG3}6}G zw8EomQ6l-~T(w7R5HF!CB04k(!$>PfZoVC}6f&5fo~H~PV}*S_Ga)oIZMBfE1i@IV zrxQx?zmgP&c)%@Brgz;MX^Q|`^^?nWfWizf;-Y^A|7TWOaw{)lP*qYQd7SxCfYXz) z9a+*ObVR7)P8rSn6x$2HJsU7BHs|NG#qCT#xxC38%j*RlytDIrb^D*{73{r#bgKy~ zB2^Z>xtF>6lE=SUqnn<&OVW~K+GUjqRRrVdMzg8I6g4z>P#eZ3QmFq6c|W#4|uQBhLLT{v*~SR$~DDA!&h)^!?YjaBFah58_BeVv`9w zht6xRq?*V)FC_d@WPj;1=%#cND?u+;2J=e7Crvngxl3R9MBa36fXE7%DD(~{D49BU z_uLRy9m!!QJsR3j{^oz}ZcWK*gay%pIiP&Ziqw4Yu9~n@m*Bt#2*&bHzJeT|h|K2& za}yp}vyC<0a>q*bXEK2B`QJcXE|zf)16l3f(Fj;TX#vN4U}r3a9Y9H_ z;HBf5(sd_T_3$TpNhczS_yDq7djByGp)H)LTbU78OAnr{Dt0pG`}vrxeIGVC9%W$z)0+7WXZ!BImL2`4I_xvIPt!0{RaR+2tjpx$A`tHrQEUegLH>XD&=fvNgbqfXOCGcI?rEUQF2;$m_$R@71K? z9*GG-prJR;5%sf>T{aW+q9dEt z9<6D2&&=&{0d+j}~P+fQE%caHFg9xmUWlKXk|SiRj@A3c62A_qWY z!k95nZmgC>n-PPV$W|ZDY=vHEb(a5q#otp@*CkjC(Szx%r$glKg_=CZ&Kn6^2&BeR zT8oY1FugGx9s~#L3*Xbla;y`fP7|zDI`zbTktA4vRv42cz2W|L!ImKM80~>Z9^TIC zpob3$faS?Nu8q_-w&5YmQgS9&Tr7nb&@@bL%4=hNrO$&(4MP=|{Fx9!3XVO(k3_zSVWJC5{+bik zmm%JgwZ#ioq5jpCX>Ynl61ag9m8{cc35>Q2+t|)`e>Kte-dI0~Eu+^L)05SPzmsmvm}pW&0@i%|C6|MhK0o^xLeO=M z+7c+X+wEQ7nTcD^!3lt4>l-p(B zppPs%rOa8rY$VJ#XjL$$np=kIPbF>62l|&R7-e>qvyf=lGr+rbzEP*n63?O6*-k(D z7Mits;d|pLeH>u%?`p<@m*(Znd9E))_F>gYVQCAi@9`(yrvilvn$dTYsV71VOT1bR z+}{db3r8P?xO4@}yLtgdTi?1Nf3t^AL-6s?xjT9377XRn+uJa1&^{tHi5I7!;YCk^ zn)3nKu@o)f=&RnZ&zmCeo=Fnu$kF|RmtIb!zZpDXU~ zCQWT*0QZV+?nr4+0V z~u0b~tTjK9){k|ZedfFPHc%fZFIneDoHuQ;b<2yx+O53L&8i!J@uYNp=k zPhoitPxOsG8mRr~b8xR#+jjr>vR)-ca=tgCxpXM<;X$wARJl>UszOq0H|7jUg9J=; zGV+OX^?jpcN~GoZaM()&nuQnxOtb_??Ub4L*OFof!IJH=xlDSJ+cp_!IWst?#C_xE zpLQ zM%h4^bu=b6bWEw%JTGG=6<#Wsd&;LxSg!>9SRoCxh-$CmU_Z0MKk^tkeWKfs>m*h_xmX{T1gP@P zP&tK0{;?|};gaaD2365VP=BtRjAKZp2_@|Lh0KbDpM`C|Q4huBM4K1XVwW!$FNAQW zcEJ2(7;w#rzJ?>1p`pjk4`wZrKZM236$tM9wTkoH=UV28fZnf&T&!RxRRu$HxV%<& zwCP9iQHN>mlq4C!M#FOAfd;9S{IPte{(0cQU^hzS_U4b;@IC}UN9-%C>P+s&n z?^t*WF+A4X!~Q*hCB2XSKJ;Y&vH-7cd)BT!k494}yG%TlPCM|Dt#f+ zX_#JV6U}p9h@8s|4wf}6cU9#)a!rIsWrvGdNacnEi{z%Ia%#Y$BYog`t4QfIByiSu zC&>b2K{pG(3UAAILdFh|Q3g4OWp+j_ErAupexcQk(G_?60SoYX()lt_-{&rQL1KVF zhZDhftWSCb3!nTlnWDu_e;92ELTm}%YLU2tG@|j_2gr&V%J9>Y!;2rjG1e4{MsvZl zE|3-CkTskji(JWMP!US;U+A*B^_N`$}K;S0q?S#cv7q^I17lha%bKtSrC{M#LBK-`3T4 z3}Vp|%p@;HId?DhxbShyJgn4Yiw5FW$+&0@Lf842OdleZYyXBr-=!qObWD4y&9 zJC*=k3^52*`q7Ou5EPzu)`}7FwrX749f$z--8plCir7{-<(d$sz=2F3R{sS$?*H5l3`u2sqFPg00Tx)sRooZ=Z zYzM*uD`~D0nixS`ERqLkSEe7VB5K^CHTRZWU?xBTsGCa?+I!;E;O=2^@ehOL#%oTl zH&d!Jg34~6r)Q(dV1*~01D%r8X2j%F3DVYJ9-kbWuFD1Uw|AagVuM3;tBJAW6Y9%V z{Jz|DZW^YkHP>I9P0T*FU3%BD`#4uFleT&y=p73@Wz6Nb8{)ACGl}8|lfiVJUhl_< zR|22M^Db7``@id#1fG=?2xz|L^+mvwvWM(o?4PeKGFCa-9^BQPRhec4PcyKMCB*Ax z7vydbsuE%yV5qB6`2in?hiUqiB7HW7I_A>y#+u|}JE=q)EYKXAVe=*suqS;gv9|9_}hA+d0SYuMn82G8+cwn%(FbUIJZ;| z&F3_LZsbf^(;oX-I8YgpU*({F>)i+_AYXCtZZU*51x3ln<5zQ=$}6H{9UgmtD)HIC|=Py zVfn|!3+2U5o&hhPpxd#4we^*B||=@Oie{5E@u=*YM`q9SaIu_E*tD^dXs-wYd5nPFnTlh zY<^JZK{S^mHFWX(R$AY1Rn#AhRO&?j3I4BIPqF6yPu@&JVU4C$m>Hq&vUa+FphM+{ z9o4@wRQfk3otO(V3n`72YI-Qd0}Nqb%3NtE33B#}e%MG_Zr)KQMHS5v=a%cPhNJh# zjT9@k*YurtKJ2C);Y$yMh5MGGXMT<*#XfX((VAeEQjuxtrum zkSeUYc-?A)HPQD9M#Ww!%kLy;O6f`(5ijq9Rs z`bYKc8UY$(0wN5^~LAr*V4 zKq{r1f8Ow&nRJheLsYLaAbJr_q;nJb#LunQ^wN_I?-|97plRT;-?7C4 z+kI_|k0$XIqnclmi(+b>AD&YJXfFXzbBrY2UfNTa=B8+hmv6C_Cg%W+iHWA2$aGOp zBb|O2`(z%o?Ri`M**77?c6wW%ok>aqq5lB~$ZNwWplkN5p`!|omvyD`asw0_*v$yu zPb;>$0<|BzETuV~R&RO139)=VeA~{#%IaWS(Rl|ZcdlZnEiK3E%2WH*7GC|o{{n;R z_Q&B5KSh#{gPJsueTR0ePw2t4!h+(hGryh|_tnhE`u1v`e0TyH!j9z{xoegeJx4eb zsC2FyVFrJ{#)U6=X>l=Bo@)*}Jr=wc&(A*eNN4(E`$mx~@>Xx=_6SYn?)5~rKhHz!yGnrixTXqL zctG)j#XsyEol};AKkrrQ+c)o6--(4vlYV}T8yo9Ytnl^Q{z0ru-~wnfq(~!%W_wH% zJ3nf2TP{&8-7OMr#R)k-9`Wg~Ho%MXV(3c`{Mk=&{v&;&`(|!hVL&!DXJVbQ=XY61^@~naD5CT!FJ>)w*)oz3f0(VX zbADiTo)#0}&@f0j3)Qj;kWS}ef%=~d@{KN+;DwgSXedOR^1 z9cA;e-t43!h4bQinc%6#r7h}nc`k#BMyPXCS1KAHx{Dk}uf!{y@06$QHRP2$x*#Xb z)%U|OZo6#*ZDb9mgz-|J6P-&jFfb#%4t%3TnB*m2htSj>%E`~kdL2Df6H(-QmD^A6 zu}YTgR(foC>L!md*l-Ne5&4k7;=~C5?UtIti;Jc7tBj{Z)Z)f7nm(Fi#?*Mp=fH$D zL&o+2W>$wsc$%NiS1SjUT9H}>6p~5mPnFk{-qLJ9u&zY*mi);8yAP>Bc5PXMI*|?< z<#e*6L*e_6Udfp{76@}XJ1De7U=C5!vHIaml{nILJpO8K38MJ0NoXJv zA?72~weDpY@JGl_7hw$wlK@(>Ra_FrzSVRUCJHkDn<*0mv-(c&u1ytF0~bmIZAg=| z9OOo(SnE>BPV{kWkfLBiF))>UCsGeR+^yUdrOH@$;0R~YP00kgwyTq|=G4O3PNi2D z{ugxlGhXwB0voF1S z(sKFpZ@O{b8kM&CIgRav^gvhY`4lx*=B%V`T?xOJUl)f6HZECCw*Hx<(I99fk5`BR z_OJ2cT%?iNQ7Y-6mGdJkzg@_3xJgU$iv~k_tS<*>*vh-Gsw)e_zYgI7{WF%tBNl!& zgiD-h)Ub;oKT@@O`5UNjB6eYc%xRs!+MtYKJo7)^;hez#GuA<&pm^LXCEM2(u0O=l zyglBsDC!ZtxH&pFkp1ZqGM&T&a!3$-^)*8C*@88HBS1lFb09TO9nAsC&U}b?j4mFO z>SZRqDhfLnHt<-;N!_sXd|N?`ld+t3ofe#XK+4t+87=ai9>+M43~kpd7^ZFrwNvfq zhfuT(wbJ3f{GV&x%=$5wqxwLWHk$sbFIoT}0N{wGK zaEWm%yv?pS6)&%GLDK(f3n1@w(~)hOERfbIpMr-LnzLe{pCW2m)>(ai4I6-cC|Arc zSgU|^bC;wD#(efY9SKqFK`U24sK=K8xZ5k{eys1cG6Rx%@*}G4Q2BXR(-*OrS9y>e@HCuUK&g{UsqA+ zm3tGHvuyA}_jAR%Q&?oM9xd4fb_`;*MLA9D>2Q}2j?W~rFViAM8M@~ezHV4PfKH3# z-PXgmz^1vFuJ9_T8#Y?uG}r)DDH2bK*G7o1paTs!jk1aP!j<@TfwXaWLqGZmxkw+k zU=!70Iegt0JwBUZiGp7m2_Sa)>$>X%dt-=W7Dm93VNc@s(C>6hY-KqHyDZ58VD@Rc9 zO4+j}ZUfX`!z;}?kNWJTPO?hJC=nX>=nw%VjQV45^z5V3JK#QC1(GB=jOVo!WCw@s zz*&XF_?dYzOsBJ~!$avC^sle@97rd=XMi7|Ng zFCdr@)6WZ^zu+1=Pw=${n~kSqHhWA?tlk)j;+g?iUK?t_-YDeOoUFY7HJBALfYf%} zjhqrS_QxJPc`s8gZJ)kP5zo6%3H{;&NIVx;Za5BU*5`@IDwQrsPFx2&QauSwYm`Fx zAMHXGaC-X`SuitiEGz{(&iAtcQ`p=q(2#SLd0DI393ajJr@A=hhLotdP| z4IB%^@B37ivBsoV&>()#-kHY!y3)AN2Gi6m#&CF=6|NcaVTO?3%K>4aTLpd)9RkOzxbZGWU7KJG2mGJrqtaf9hhB>Ja(XF%zZ zH*7$e!XvH#-1~Wb8hH4TEblnFh@pE$1LhZvJa~MO7rf+tR#(Ht?vwM+5h$UM4#zqu zM1y;ZEh%=@K1OMorz7>VI{C%N6&M2TRHR51nbN@Rb)t}#s|3V%eBYc1C7k@??l1G` zf66CG@}-q~N_S==o_`m8X0F252CU}stx7;RXT138V-2p2A~`?~FeZ{u*fv{h;DE@q zfAEG{i9?HPpGr|jv27$}ru#}mT%O z)lK62n{z9OKGEnvWyP=>dXOm(q^7;%D3w@yFr!J?B6M5{%Ek>g#Zjt-L)-s!4f-91 zra%Wn#4%+iG{+YJlmX_+n09#_<>%PzR~pn_V;T7O=g@DHK@A5Fqfxbm8Wxx^Q45{m z+RFsP{`@c&l5P@~d=YpnEcDOBe10t4|5iR{uwuW+219w&0Y1jZT)gDdlmpR20sDP` z8+e4W0SbiW+pK8pFjq#>037ZfzL>wQSjcr;|Hig>g0-4=5RN8>@O)73c6X=u zR7LdoPbrhUC@?z~$&IM^ya8-ub^Uf$2;hc2Z?Ynh#}~4 z4g|eSWEVfUCv0r${)sv9!7>~sqv4{pSaW5H+Kl5lQ1q6nY{s##^^U$c|-W8>vSDE!+F_9WDWZu}Omf5Y_ zS$8xoB{d~Vdrjv{gxLW~mIcySgm#q-^VB%~p8I#1M*2iH8MT8&cf;cvgCqNNDC zdLeIIlPe3HgJ>laJN}kQZuZP(?K3cgb?Jh^8Lh!Tj+e@d7b5u~a$C^DTM~_cz5g!} z8b1GU)&~sa$AMScU~Gb^(tYR;1CNA~-_Px}$@gUavh+VbmxY$0m1{vU#LPnpXe;$Z zY}Lbr#d6>%pr6`id@0>q_|qW)3yktylcvG3sT`tM_z(}y&s-2tmw268UPfmh%Rj3f z-+;DN=X=W%TA3X%!$&TOqj)FtZ)Xv$e?^$pv{WmOwAl$Sb$mzyL-Vhk)}`R5uR1+Q zef7g2E+(DdyV#-sgO&WZSn+s=I4pVO_#^f8vp_MD-NElRhO8n9-#_>%qKV8pz{_<% z3MV^LiHd0SRbJ^`ozfyC5Ixb}JulBTAtQcZMBjfKe^jfsil!COa$Mq!_3oXW|c5QhhAaj`&HzkhHk{bYap=WMtC9efgx2 zgD1|0TQBnOk=O3d4ZJ^Gd;f~KF{2Ktx!9wE2JAPKDWb+^Z&+S=ahu!daySE`IS7er z&&ZF=|Et~c@0PI7XKnurl56{!l+3S|ce&UYmF`oq@24MrL5*o5- zOiuky$`&}l@qXmN%ahsJ5_<4qLh)ogQkrN533!(Ig`};>VfM-0GB(U2L8k_fHqmt{ zFV0W#t9?hc6(lMq$f>I=YfZkOohP8hfdEtZyyuyVlNkZ!10wBo&|n>P=tMK zO%0YA8i>(mgtr9xjvs7}9zHnJbfDE~CK#Q{rMREg;>q6=R~0bl+U` zG12`TWA27LV0h-T>&o9)F6yR_XGIgz_-rR&sKs1UeNAsgA&3rX;`gV}em?Nh&7TKv znB?fo7RGx;n8*@7D=-($veL_s!-yHxijhwp4`hR6IEY@6mz3 z)LQm0^`wQb?2~hIZB~HrW zi%O0_%veyAgxxoSlBKYm8G*BG7)`X&*p+5~q%7f4nlS$TL}VNj7ALKw7S3tAba==i z?Xqk9g7wWd5!+sI|AC3DAfvabqTTS5Ymt`+jJ4Dn)UT<|3jthT(V_|joz&;@a)&6x z1tubb@_xA(x+ENS2#zi-raLSe_< z)LUuYSB+X z8NDAt>k}V&{wYRCUwWH$MdY)cLB%LUU*U_b0*yfkpnBlE{cPKXz9q8bE zIwUtnK-otQMPSOk_i9Ehf5o=JeRX?B#xotNRnWcT0H(w&Pe{HpW29yf%+r&5f z4a5s1FGr+DIDZP>#{4~y(S}LXPS(}2-5U!^W>nrfD)hS4@&Ng47mr~)-vyGWqJ(d|@f|0Ln$;&_A>oW?4b;w-a-SWSM|e+Biu?oFkmBeJILy3ijbQiz@g> zb5agQZrJ&IQbh*NWZEV)6#`zOI@iMtoCm1z%$7xWOmKZp7e&oTUiayx-quP^b?}&< z_qabzY8zYj3NV6cHviclrfrx|iXCTo?lQq!6;rQB{#<4843Zt zW5<kur{L> zbvc&bXMNNrtY+_Gl@<$$;LDLe=M75gwg*#F+PEJJ70r!6_PY)WB*suP$XO;MX=Z>O zCz=STcoN_*w{@!$pX2QDyMzRj#)Z4pE+LsBh%zBl!mwAlw&6z7+sY&(@t=i)L|s%w z24%Q(!ivLGcktr1`)h?A+@I0rE(G~yr>Y_w(j;(9U;}nM!LV?yB@x67?6ZfH2PqD@ zj`{maXyEk66~levA37r3H4JIWbF|3w`)Z4^8>NDeBd0C^} zRio()=sL6Si@b&;h%l2sz85fEw0EF^bNpIxIJQz~du}OeL4fkMQI)~mmWc!@F$l5DWGK7Ip?c^B+G0pR<6ngb%R3~C&L3_NMsw@mb z-3Vo<$0CJj7m*7lND!62r;fi5(w-iFdsgK9UR?VJt=T<@AQ{tg;fqa4&r`MKG%yPV za^o%q*b;Jbe}AWw+P|a;oLW+cWAIyuat*&MtRG}`(;Na;s5{I|-3Qljf*ynBaI>Su zGy%}O*J_uY@IKa(Cs1;xY{5MAmJ>UlQL)`C0p44|JT!9aYlRB5IPdq)&o(Yf!*4{8 z_){xrp17|?sF#!$o<9WZ?}Dqk?N0A={CqYvezpX~o?@!QKc?}&-(#)%0&U&UX9r$oUp{lXw z8)KlCs*Do!@Mz(7eF!soyHs`stPL^rbNK~uC-C3IXK7wjV$M7hU;d2=KCg>n2a_3n z@D)O)8>`tD$ zGpP=v+`IB{A8LI5ab1S5O|W^$=+&j8jeGY3t|fJzJWc6gCDlBMBGmBmC7iRypTEHM zg>^y~h4o+*Ey=_t(tRGGMII8&eQ?*+hR}Jj(22-Kj%9ELH>3lXw7<)zkHC677evV4 z{SU5D7*Vr56*3-1KoU;afC{kPTe~`Ppo)V=uJ5Z6losJ8TKy$g-YxJ4@ut}eSV~k| z((+sMeydv`Zr}5&i1M>K>;fmLBmqRHhk5TN3f+T{ufI#>nw20A&0OizL6oFI$CO`; z`fJ_KGl8!Xv5W|QYWi(q?P#9{$tUF?tx8#=Y9;0q01<0ms1F#hRa|G@&bXLQeE-mr znXFTy?Rbev)5qoGv7j=LaONgtBDB8xtirA-e{K#Zse#GosIvGmwJn(eZlG4eIGetS zne_x$wt}+o`dVUCSlZe3SdjjQ66x&qvBwTB+c&4s_@u_x z`u`q=e>orLurulI8W!4UqG>Y>1gaHqyo;|lF%%wpjmh36-emvvZXNf^0H1SzO&~z3 ze2u+Fs@U9C$h49w`7&zjmhWZk>Z)O7pwxM(1ZY1xD8A|GdW2HNW$9K$B(+T{1v#E8 z0pRSNuS-Xap|7eWv!9_FKDDtuBr;)_PSok7E0O*^e=4*>C%VI%9;XcfoB2Dv7BSJh zwm$Jy9(QE-oyx$-Pxwm{deO81^=csZz2Emgvx>^CiAM^`zD+;aWcj7$4Dq_Z83JxI zrQS5aKZu&_@D+RpMKqs3C{Cc(XiK#K`5D2%fY=R zGo!$q^@(he@FNz{&!opsG?By|>ZF{JaJ#xNUfNiy-hOv>e$5y(DhNMW2 z&Vk57C@Bh)9!SVQIwU3{5`xHYpYQAS`+sNWKIh)&-g}<&KJPaRUl-e6DuIo3;U#G0 z+1UQW+JT@J%2ob#-?bPB9KBxpXJi2Kz|@sY&9UKy ziq*v3fqI!Az5b+l_GDxqF;K{rVz}0M5nO)|X?(9V0a+RGJMHv!rkd4O=lWf_Suh*L z%BC#)UmK_4pOo53R^qeld>lVxgCeXlC1Hq(ykV%Qf$h)^T#4SPE#$K@1-Z3V%~o zNA8T`J^bznxDexfAGJ%ER~mh0F?#gWEU1;+NH$$aoWZ z_c6VG68nKh)TA1wzOoAxqeBaMhlr@Dy)*NC=`G`A(|tma7#@Bpq^|Igzb`eCdY1~F ziw*shRjDZT#CO#t{>}Zc2>q_HTL+f!{s|EKm#lg0_^I0p)?6q5{N~EPA3REO|83_d za+%ASdb=2WRTVUKX5YRSfbB-8|B)x7=0tC}(Vvh*#Ai@}ho0h~=E=Fr6PfvpI+=QU z3l2Qt&<`f<+Nkomd-TYG&%7U3?OGJE zOAY?pFfU&p8;t_2HxcI@W1&L z)QaX`*SJK0o0x!ZlZO}{_j?Ayr|2cLnDXnp+< zA_KMxR>P>R#N7nuQ_GzF7YPD=>2@IaR4gd|b#-)<*OXcLz0&g>WS>sJ5(`k8vRB7N z)X7^anr7l$Jnhp0l9Yv=<}}i4i7m+W;#yi_Y&o32dH{7(J-R8RyB7=P#e4m<6=|nZ zfQ7V{YJ{hY>Nyd^cIqH^%CJ?8_YV@q8zRsxwt_0Cx^a&|5o(sUm^8fy$4Mgv+tSJ2 z^iH8KjNtpI9_oTh@T7&D?UIU~Kg|zXwumK%jSAz*+&1#n%Ec*?lR^b@dAU^vFB;Gh zTGwfez@2|AhCi4L$eZo&3nXy-K}TYm34efFduDJ0HBMc^?cihUodn!^cjx_wOyChP zH3ml$^>%uH*WE1o`OpZG$_nT@-ud}?kOG(KwAC4Rn*DXx+DTo#2k5LRxbrqN;_vnV z6<>AAW;-Ldd*xfG&c2pQy-H#rBNKG%D_QyRcb}a4Iw~Jbn3>nFUP9n(Zk!zLR*Is- zKycP<#rxi-koZ$9$hT_tx^soX#cYFCL#2*MCy{4Jo3bU_*(& zHO-Zl3uWGPh5NO8mKBLV-k30?J7I;?wxa?|OD3xm>#6xF<~_K78eY9ha1D>XnK@%o z9hWz~GrQWz!%gT(IuGU^&9`^B1fy6ij&=VxNxRPqfwPB69>7)I9P)A2oLjbdil?Fd ziK_}Bw`nFqV0G!F0Mj+bAtlkLxqX5vB`UD%qLz!kw~asBga@AWWA@wx2%RDDj26R1 zt+4N8ZWgx458v})yGpD*qU6b2bLCe|(l$_RWWeL48H+*pRLjFM9%)zGA5tmA%Dk9o z*h)Rtf~}|nrx!tsN;mFFSTpGrUthOMkqGFi8agVPy&~(!_g0&Qe{NCY8hg}VpJ5xr zMuq4*>wcG= zy6>y6s331v7%MC)3%g9e|Fr<=)W{x;LYuy2Y0saWie<0gmJ5CTOTUi$K9Iu1Z}C*C zF7I)aIV3Ew7aG>uKq4xX&L(>1&23(ker-tv4M?R~6iL$WwrC^8E5&e2rft?R|0dR^ zFP-}o?A0_89KQaqi3_hdrfi%}N}e~{a+|k{1SUoVu?*BC$DNt+3yfQ35o+Br?HgTp z`A=q%tgybpH+dIS`1QFcRhggsy(<${Xjd{6uU|?+Z4R$F1K;U+KCRcbqDf+kp zJx1?_et^1~ko{eof&KA>dX>X%?=Ch7d|yS#Lr^-jj0LtbLw+yt^UqC=c~j4yYZI`Z zhH?5T@TGcU+aW6xp*t zj`j&oJUho8+Qge@{5n_ncEblG5)*fOHxl2>Hvt!HYuQ#+`d!zd+XQB zZq@fH?;qd%2%}_fD3&$=(uwdn?wqM3YMg#bHa`hF2|^N24I~LlbEDdf`;Ll-a@^1Q zzn*ECRcC04aCKW`li<&`7I++D#HH#(yb~WPyLVe+Zk8|5E7oE?M^R&cK}U{A%J4CtuRRC4EG&xPWI zYu|a?)PYy%s!Cyd37Ls;CGXe+8&)f|p|MxQV+m)-qeM$fH5)SAym#sH;o^t8#%Chd z+=e_&Nu{g5`|;8r4;(UV>)22LY;Pr%u3eW> zki(2JBjj{WoR9RKrJQRiqCqASZ`Z?J$n|VFx@-G!M?8vemFHe^dYQJJmmQ4vk^nh& zhxYDsed2BW3dCsqrF8r0oA?EuZzk%|JI;*p z+@}V)iDB1Ho6(Z&bd+I;OQZ3qyj6Y|BvOmF57lNzE4?!! z=bVypCj~_1HA*Bq(@1E0$qX{eWThxqOV5O=Otfvh*jDv#;2o^*r5;ZIM3AS#m+{+14H?RNv-GRB> z2oiqaRRw*uQ1k>9IOA)@fL(6?=Ob}5p-TKm>d4XUX1^t~hkDFlRW09WU4l?ZRt}_| zcQW&6DkP@6!gog*6X$aypM(utvfer9KWZM5cOFgxe%?=Su~#K7FstAT|ohG#*) zct~6528NPB!c*S-}#WOHO-r`cbY#D3|Z)C`}$CGJrT|=W0P6qcLiy8yTq@bbf2g-MmPjL8Q5VLVL-lO z-Ipv@JCaQ(V?6INug3qYF`99>#H~65%XkP7#9AGstWM?j7so_kI;PU!JwQ z(TDl)E>WMdZ*vxE?JhFk|HVku5V@Pn&YZ$2JpXK*?#hLoM-sm!i`yG<7hjsQt01r@|x4yYkrSc>0UO2 zv-CSWPVpOq=iX1!_Y*r)3<(Ye5ghQQXzE|xfptM@rFZV>7_eY)zU}L`4W|BGJ40gc zE=G|p=}O)u5Xsw?x4anXjorV}bUY;u>p@Cdx~MG$m>|&VY{<|_-=GPLLl<_R#^^>6 zF0b3dln9@e5c0h;;mp?d#ivc2+&MC4!S8@pm~!H2!%KJ+X=?L_?<+rdlOXV<`V^@juQHP{B;;xikATvWB(YwmeZfj?V#=hy`%0B6*4(j{8?vx1|OfZkf z-#APS0R$030F^Ez=`++)+Yhy#LCPKGcbo#^(|Z?YRtY`m#@Dx4z21<)KF&P@-Yw+Y0)n^j6GU{~x7QUY7aI zR<_7=#$3CpeBDJV?8JFqIo+O&WFlj#R$VU0>^X(|=(~Hi=H3ZS6to!3dj4GqgIVq6 zjJgd{&k)doG9iS(mjcrh>){xkCSHvF1vLcj@Jx6@=jf|s)$EDj#PS^eXG!q&ZI!Yg z8{uoWU%(}&2sbd(O1+hqoD3GH+G%Blb*fUIP{Gcp;<$~9{bn*q#+NMnLh>sbVUXIr zDH^LU6wsmSb;$x^oK!&u%rCazO7Ds|NPX?Ij$GGo^!}*@HrB~VFYA3b{jK7v?l3(_oBY2S-N@Epe zkEA$KMtsGj`)ic{^V6e?Ll!t?nHnVP7amx&1o7Z4C@_#?KJT9YLc!mh4*BTQOSf`7 zAn>C2$pmvWqR*=_wVjth+91g9F>PgGC6+i<;P)16-;(;Y8t%}z2-m8fU2kd9bQmp| zrVcITFo1QL{Sd}ch~R>vLH*=66wU*NVPdbO1Nvm zdVi#1DRI zy$G^FUERuL^TId<1n(GPeu*P)s33VYhN!>VcaH$?H3s&+&|M*J6$PeIOIw{%SEOSG zXhh)j=wT;-upLu+VVFVZH*zYZM-i{|&mXNG9pop~Kwk|t5gy0<%>}S7PK;SfF!zV` z++tE?wG}rkMv70h&n6kVDG4P83R_k53MHAtVC8?tt* z(}slK&HPF!l_QQ)7*GG~MGH%%;2$V5+ESZ~Oi#uKVt%*a^-?19O10#%J zlNm$X8TYs{{H-8r{O(4v1vFAQfGCa`R@lJPK}O)BFOgeljk8BQe&shz{8;cW84u~< zg6#cwtSP|zr;3*?KHcZDO@Ajzl$fV;&g5A~I3B09YrSZfL-jxl&5a%(JaHO!Q=Kt! z9luTF5mT+JlcSOm7_ptU_i9!;HJbUuV_}|yu#E~xmN!TMDnWq z+n1n)GJ!N+@!udtfjw!LeNg2HByx+pD7- z5))C`&E?{(y1RemK@-ENi&yO61`8FC>&dZj35^@p8%Z**{x%wPwBS2nvoz%=>Ta|z zL{f#IZWd0q3Yfaf5fND&rLjXm6tkNxw!h7+(*Cg4h{&X&0j^g>5aP=%Hl@mq3oUgz z6&5R9-?cck*<3GOK2yzArnogcbf&L>6E{_&xhS!2rqlf z*8C!Kv`qV7=aVG!Ttk7h37eZ$9y~mU)|iOCKB5+cn;h*gF8^1sAB+@0&4-#<-46=q z`FYgPy4$izb~cZH{8oHk6DzJB?(;X6${ViKrN~rxhxV7JPNso>#y!GWSt|0ix1zri zkdu`aO0a#jsiSN@4JGGPci;>TBR+DVajKH#%hu++lRqAByP0CkfenhAJhJN{=maj- zgH9nhL7gQ5D(Nb|L&YlK`Ce>Z{jx6yqJC7K)(9q27*6r*~s^ z1kMU)^*EeFoRZ+qUYLcv(iS1zMk(w|&MXPBz|0kh*0b7EZ{5Hn8iVh&LUZ}{3BZtT z9=5VT1z)+cAs*%ku>>RuKI)FDXq@@CX$rL>d@v5&y3tvdTs9IF`QUjYEkyp5Xw91( zGFoXtjTQzD#-9{~eImwl($8*M?5E7R_&R$cA}(KQC>K0$RJ!z!BG&R&7<>T zk(L!VaDSXHu5aY_csphaQV18uHP>PGei1ukdtc5B#kabJ3{oS+(+?lz z%o!B(q>@71e>yOgbJgFl(B|i3A9Lbm!d^IKvT=Jv#gqikBd>%3gBu_3_)qG@oc7&F zf>@E|Eay@iMSW{Tu#zgp0dumb4XDirxtaRP7zBNda`RUf+sFO782$Qp_eHVo3rDW- z*tfBGNscNJ+dhukgj}KQ3_pm;2j8bmU@LCxhQv_X1_O$x0YzdM!|$8+eAr(LE$Ir} zG+^w}_<~l8jy~J)uaSk~bwI zAM^$*IX=|rQ&AuKv~WqEYi&7lZ^<@|B1mCu5xP1cxjCe5NCtWO^9AR#1DcbuDI=WP z1$Re60TX#^xpWlUf8zodo$yIA?w!}gHxD-+T8ZBiL$j(Xvrz#t2|8}lH#xBFUk=+B zo&7n!%?Pz^`+XNJt+9eAT^~$dZA~GM9bsR&1X5w;udh>b<=KEhv+ZFhI(*> zBh-t&qEzkj46|F7{< zNFySYnG_whPrAek|M2LPkgPF6I@&H+NV)x&Vr&mK?FF&FTw~tX6Mb4J`N)9?WksA2 zkKF)@TKKP%4uIeU$jzcEcQqwcTZFyZ?^7Z_NK1=_d<^J~YYe3X$qo4`y1^&xikg9> z-N(%<<8*r)?lli8$t|?pNYRToIT0d2A|vFJA67*<5B`IZ8qjI!ry23!tWy8n=rUSr zohtXOq=IJY(Ppzj0}e`tig>#CZS59%H~utD8I)YH@!;2{y)agvkG`#`*1(IiDzM!W z_u@WARzCPnWuRwG!iR;$?UKHb3h1*%GDe|OdkyBP9k%%G-*Ie;vp2Ey<1+Bs=PHZjQq`$!=xgw3ASRDb z#Q=rR0X<;A&(v>3ee%6Iy_Xl{t{oQj4!^ToJtq(zwQLyR9eUw<@1IMJOwQD^ZaE?ylj;h`nR1%H#pO-iGW3%|KjK+c>F z9z11NPP0_T7sWvb92770e(@`g;=k#1MN3+ZY${1&|5g1sS9%%9_AxI=Q>M?iv~Vi& z+f?r1p>bxASy2za(qirHX=I+Q$Z}POh4?zFin1;0iuqfMdWoi5_M`#4XC*HUn9#w$ zm7FiTqd$mS@K*1r3AP|otw+LjMyb){ZT30Ot_WL=tOv${h2^KHBunzF1b!R2|7>ZQ zcKX)eMCDS;j~rq-+$$x8g-Zheo>hMPa(~2^Q2@$FbAh&1D$At-4&QI^J--pWz}*fU zo%;vM-E+ z_&FbGnPeuT-fjCkge~?crlo8G$;cYI|E@|pXHLoF!~prouCh3Oa@i$cu-0g`!+m>A z0z>N=YP4oe$oNTGH*Dms!Q870c_3>X(VrN>RyREeFQ4&FtCf@t_y1!7WNjQ79wRQ= z%LZ>0D6DU=yOH8|4!%B;hv>r*jC`_e)4>KeYIC+FYFLr2XY2_w+8P*z^-f{38}V}_ zk*i}Y1<+xz>KM}4rGi{~RJ8+Wv4-?#I*NcVO_kB%Md&-JR6vPJSPIjgjmq2;zE6kT zhGkhKcsF+pg-?+8vQhZMQ*!&U1-XbKR=8NdLy$j7C6J3P$i#}qQ3DBBno=HP3LIr2 z?_!#QFF7l1nlla|QO6psio;cPcyUyC7hRovQ>T4L0*?>krNYPVI;+8Sb2OFN=zzE% zonuI?2bg_a2jD>U;I_ugw02jtA7nvk|2>@6KcM^M=U~4N+uh3_=iS4KQ#1sQi6HOV zcT)l+()@Cqc2-uw2D84$4<&1ICp`B13=Cf3&gi78$=r&c_}%7$X}V)ZQ^Eu*fNBef zi9R^F!9Z#j9QM=UbV;Q%b=?q#X-sh~AN=(o-w5WB&ofE^0jZj8)tOMR!K7QyJGnyB zxE#w)fa#qfzJQYt!WhaSHKmDx6KcSv(EY!k<1!X}AEsMDesy`&FjRYHYuKj%+J72@ zU*6rA@Q^AqH3{)GL(;KL1TiCQP(5=8gv45UxkUQ*9JIXzI4KcC>lU57L8$lC)G|Vr zMZwoZ!@aQjjwD!w1?tMni2LH;tFF~{j4PU2y-iT{$SPBhcmgSv8T_N_1Yq)I%bjY6 zwYG)2Q;M)42H${ynIX1n!l)>5zCqzP9kCyUQ`);bFSl>u89j6m8$hsIo4n8IyEcg% zmFSwklb;G6$k~T||4701S;s-m+MukG6j98ZbRitO{j`Htpm{V7e-z-s+#NRi98%10 z+`mwo(t6TPMu6S4J)0tYe+3ji^P1Bu==@zL19K;KZ^Yw&?mn;G?4o0AeTZ@>BL|>WAcC_!$`bagV>t;m*{IAV@h13Qd8?jzDe&tU5lLY5#o>H z2y-KC0xLpLpjm@K7`#Y2obBGDs@|HO1Q4w%p1K8P3b+e0yT4_RY9{@^AY|V6_LQXEkHXPkc!0MCZygrv%bxh9%h?DLg z?XvL`n0_&DZEG;v=Z#6@@(q1UGNtjLTsMTSFyLN1q^nAb)pxI|dav|#;mC7nhUTGz zp|vmDTa;Gn}r*fiolh>03lMPJ>}b- z}9kEnJ zH%1QBQ#n*w&;awT({pRIwu|KOK5w-3otmd|{daNyB+f?QvfZV6%Trv{@si)IV!2`+ z_IJDodHC41xmjV&`tZVBP-YR44Y;3w`tC3LE1;s(Hq-X1^;PD_E^BH%>iVh19w*gX zRu29~Ww9jq2WWtna|#?*#f77PF76trqP2~Ks_&Ivg~@e8ok)y>q(iXQvO*uOh1Xoa#^Vc8NF5#H++Hr zB59?Dbn*0ItJI4;Ee$&qD)bm_55A64naOf{insL5k`emPVtSlpO89V7X4HDo(3HTx zk5e%ZBZc?%JiXmhF?Hy!t=v}Xdw^LoJjvJfeMW?fnxS_)W_eoZiP4_l`m-)a_k{!q z(8L4aFOgy2LI!#_PcoVmyX`VELu2ah7|zKv1Kwa`McPjS1-5>z%PBub?-JB|&c4I~ zE1wrUG;e8gGYF?+-}8DTG|h@~uh4-npW(_L*7F97&LPP!%l7Wz$)@wv5aJI188`s) zS*YSFX%M68eYPW!j(Pbz#@E~s_2goXffK3E|T{} zZ-6f+7t2%>1Dw9sr<#3X(qxeV;kcz{p)XJO_lH`%Y4jXvF!h#7^sio-EXwI*prMo#7 zWk0>G1h0yoVF8!X1vOu;?d}p5WU+kGK+A|B`wKfejJG7qUF=-eTn7CEqjnUp(Y^=8 z<2p{s3ui5y?AC#o&}}0Ob8$}y3_G-ts_hTlCYKh&BJUX$f=pi60uS=pl0|Yi)Lt@H zURh0?E_y2Qe4Nfz7Y%!FI$@MUlj72z#0f*3pV;qZ@K?s=nYb3+xwU7ZLjmtgY2|O` z+j&NN`qGkhqeY7#K;t1xPiid1B8z?hKB#faEKzW{TE!$a73n(Xg=2Vm+Mq<+>g(xb zGCR%Zf18KaOhlf?e~cbz;~jZ+#Q8Jl4nDr{X^qrCF6Hz;{Eo9y>IORl@4~4@&^Q%Z z_t5>kLK#w)A2Wv)M~Hn3Dhfb<6dtm6V~mUiTu>f0e3jB-<`4FNA{ik&xt! zTjV%c63$4Dlm)?BUA%U>l#8s8+9RI+=ce8ze2WsB*wOWtXOf2-m}4lA)1Iepj8Z|` zia$ju*^Ab!+T1>)|xD}d`v*Y(737w`TPoDg1IaTb6d`D}AS#{U*Zo^`y)Cf%JU3SpL!aJE;U{@MdEMcI4o>p3eAZ8>}BG zLY>$$awwiu7colz#WY=q-ki4x^D>yEV7Y;;1!B2eehr z_TPqw>+bkwy#9e^@^i^#tG&{lsJ2rrYVCE_UW6}-^CZbOuu(5`chqnb<4SXXP9>iS z&#;Ms3f$7U-bOiBK2M9pi={iIJ!gA*cHmbdRJN4a3ZnP+iNj7=JZx3Jq2)-Y7WByb zx!rBzKgxeJwZ5jb?o(9Er;mW~c^Nv07bF4d66vS?OkyH7j~}-CFPKuV z5UN2>THfSj8DR=hEA3y{DQdqi4=4(}I#mbmtMBWm5BEwqU?I_`Np$Ep^hKu4DR2>e zaXx5gSYhiIAQ~ujP>jr?VlDX@>Bt4pP2iYVZz{*hiTvXQUs?;J33ZAbWUE(68v4y$ zGX0M?Sd(uWrc&T*(wxG#{S%pt{@t_*KKXub#B)a~3qUrb+^8US!qP?<@^;V06pR4g zY+BzbwJo$1voP+SIPDu*(P~#Th?s3@)Al8kURaBp_WcrCM4@|Y<*R%HVJsgV8uuk+ z{Rkz%CME8?4T)jT=vLGg6{OV=LOGG;|Ijt;n5_h(XWx|}_VUz!h`aB3XZk4j!%B4T zdgH9Clf|EwG;-fX`LuEVB>v4>!E&^vD|(&*f3 zGC-XGNtxt^JXR3Ke^4(?!7P?5sTDd5GN_ldjO|RG988<5Lzo?~Lz9o&=My%*SH28; zEHM|GCjv7bplsjR6W{mjB9g?UGp+bJT3&()CQ7P^u1Meha{hJGIFN9duA@(lo(%P%sA4E8Q3HSz{`tGP{ zo{8WqFsmCYE<(}%Z4Eq=+oo?Zn^h%7n?04&Z)hm7|7PONlh13ZAZrvC97(cXHNN~M za~ELT3O{8+W-105A7-sYKn#76k8PsdJ~-CN>c}Ka z^>!=B@ecCn)eyJ&Vj4|R1O6RIJ8&qAHPmVm_)9MBg4H*4Oc?mEaNbdkfGovhrhN-u zpLO;y!5_c4(1fxZ2e4u4i^QI>zk^K=9hO^Lks~@Y&uJmO1Y%w(BZz5P2v6@=rD-bn z5lp4z;>oT9AFaXVwX*RJ_r^m)vuU5#$2M+Bgl1-ew#nsD2rXm?g)oF9kheXzsWe@z zLmVlWtFJgCO@WA7|xYSg~bt& zxE|oJa+rA=>T{|Hxe5PO{v4{B_w9?7#KN=t(Wg5M=csB|4E6M{Ol0dA(MtpuntRYmEA1-fV) zW^h*aywOr`S-q+ZIOv1AKetn2d&+AmNJb#(vQo{Vl@3ll0ghOwGeKw&`L|ao0Ni6K$8KaZuuGHe zQ@D(BDrta{qKfG3xatJWN}!+)_7{b8E+85Y!B)|^z?lskdk?U}ud4HM-*$-I!!P91 z{5~)2xdOjDP->U{gnN0ANe8(Vo2LkCP)=(JY0Od*>sZ(>IT^0vi8x{z~`F;%@apDG}RzfHCYU8WTxo^ z+9uawIZZD4jSDyXn9U|vs?$ihQ{@(0&`ymRioa3|J!c&M9e?)l2z^^3HcuG_eKq$K zbRi7SJ@~*XX{yehRBuYF7nV0|P-&VDf#LcW9Fr&4yLnv3f*O{`=Uy~+52=7)Zi+2A zELx+yz=ScRgM3bZx32A>Dxd2&LYQ_U_lR+K4Z9*i4J8rP5|;hm$&;=VhR2=fXYvCM zHHl>pl-oZj#uAZT@1`<=9Sw0OXTqp1+EIGU{+m{T-_=|LG?AL_4d|=`6)` zuZ4z83ttYh&|Ta~5xN_YZ)F~28xm(rXM{v;F+jRpi1fs$Bu{0rf?#DpQ1=a+4-zN2m{w;{^=a!>w|1Wc+HRP_B4LI+;SrKhz8>>++A9D3R62(dc(JU&%<+0YOPPN5-(B z7y{Dzjjhvwn;rf}FLe4e){vXva3WUy*sQm`$bzCHqc7^y6IentTh{5!@0yP{l^nUt zMe`p{G+AD+sS(7h!;D1G9o&=RAw{JOtu6%dN}ffnHIl5HGFB2?MP-`>P!_;rxDTK` z-TXgur1z8r8*pUlrW7|4>N(;C~!zO9uNmLt}tT6ph#knq{+}MSY)CBBs(3Ww7XVQdTrtt zY5T$CdAooi64>yf^;QmVKP#1Ga@dA~zc*HrTu;gjJ3?R^@lZ6}zb7o636woo zqn~-67QOj;U&$_`M)^}X-&=$I>pJ5CtC)=`75=b^Jqi!JK*Y@R_mM^7T2f@dzHDGN z@c2ML7?B5*0C_5)F*O1Q#k$He&qAx(vG0;#^xuQfU3>npmUId{kvcb@L#!gq z)?9qYm@wRT^D0@~y61V)6^X;#y0&^~_n#1^dw-M=`yajpabM2$sQcI|w)cFD=ag}B z;DyMcoGiNxalQtEE|-b>Ik#{N)PR*)y*lcO&i zHI8HT)m#}X87}jnD$sJe+*;dNZuc*jld!bR+!xxQcPlRcl8B}+>QbAj#~1EqFJ0VU zh;A?$jo3uYmp&cHYdDNJ-^7~!<-QN?- z+Khf*vt<D(yy>DrE*ydpm(_YA0obW(1P zS=lS4UO{Kn=YZu0cNs6_G3wipPJ)90eeQ;L_XNL=DI~;Y+38Ks8Sl<8MscF(8;E>e zF{+VAY+@p(^?gqq8(K005*lmE0UJ+bWLMN%A08|^uZExbLLN5GqfT@(T++rdz3P_- z*$gz8vIzQr&_hU$uwKlnfN2A`;@|aTNjD1_%Vm&9SYl(({zB*1m^)zx*_9#aV8KQW!-b#7??#b@tD;wAqshYDHGY&dA9a{%w1dREuhp{K z#6Hq1RTuK7bh+`qb~>zm@Oo4~F1}p>wUzN^kn(fE9mh~G#QXT&?b(0pZa<4(zfYcb zx$|*>LDksDajD|97rlpX-Lu!&b_#&IN~->#10B}>dGxg~9w z8AR5g?g6@BL<@A?Q3&j-wD9to`*_fc}nrv~>QRQwH}Jh1vQ0k8&Mq^}BW2)`*; zb@FQB5r+^3YY{Vqwj-5~@~^SG9idWP5Ui4VRw~80dF~zGI#Xs8@(Bzp6b9%>q{ZXsK=8bdp>VBEwa3hYK(ASZRS5F%3IlL)P3?Jz+(XfG1VolpKM z(hnS&kQt1=sPXcZGungI+^wDtMxdV(f?Ex@EPP@jm~Bu_x!y-}trWjHci{`3Gt z?z`t%9B_3<9b6CnNx%{JNGlPpDE4t%Kmk{3sIZXZ*R9&|#9Ley=|1)>e3ZH%SP+y`CyNww|z)1HDq__X$cKX;tkBEcQ2$6CDK^!wSi8LREuS z={z%u1`XkD^e@f|ri1w4QI+A1qphulloZqzwY=F8A|;hxR3jPfwGp$bkJ^LHweBf} zw>(Cr+v(B7qPdQI-(={-8>DJvc*1=_0+)9)ZAXV9CHO!+?1*h|Ha^Q-l}^gyrzYyF zf*sy35^jt$;XpB`V7Q2x)*gLY=A1MK5q2&G^Cjb<{HnLb2PN_DLmsS(hScz97Q?)5 z%J8{wj<;Sf+!w%k2a-j{y>6mf)G3~l=;*QKY9U(K-L{Gu4gD6;AZNqhjotbL7 z=F{Qmf0iEL-50cy*mS+-YioT)kUuJ(^r3K$bVJs1P7AjPfF{AebQoEJX3UoDO7Hc} z@A>L!qE{N{JrgFk*K@zf9C%1`{(CJfB6oR9NqKT)-eo1 zfvX(EJf?jKYTHN(#2wX_&dvK32d5B}@)8O5Vu-kTB~@bg$#|N}SCHd{+zI*Z^MkTd z+xNb*JnU!c>G_|GxSO!;w7`9%E;}(s?lKYT>5Cj|{}T_>)1>q3tE#Z3zdtc7o(dB( z`S9>2o_+Ii4{~26W2U05rx%%E73%ZGHQBcdb0yU=dHh!vN-PT;f|a~d7x0B;>X}FD z%QpTBJVC#QCk)%%<)WzkxG5| z5B8}cQ_%Y8ek3j*+YU=~ja*^0Ha;up)8L19o$Q23nACPgqFXmwD@vdy%o<*7-CqzH zM86FCjvRDgg{(+N3LJppF({lunsTNXIe#luI?)V7G5mfZCwt0VM1|HLzG*{A2jra&IgdcqvHZZ3;x;ky2ucp4#bHED0>B@`^4H zm+FW13B*l74Xf?Fa-oG;*xT#215t0o8>8NEwk;eNGB57fh*x(#3Efi!eO-jA=rvJn z`B6r*MT&O}QhID|ezw<)qXE^ngr^7HTgT}T!ST?Ghkrt@-l;g2=sgUfKM02^Kes+A z^ChNL9BtYtX*YuvQb1n#`<;y?_msBVV2@di5WSU;jPlMJ81TnaN~(`5kLm>F5|u7d zGqbNZ89hYy-V$J)#9&$@uV;11siYsT=F~J_$80rPESDR4+!0x{X&B1L$xt|z71Fsr z$Q5om9L#3$k~AZ<eoW=Tz>|Ekn69A0;A~7Mwv^ zqw}@%3`~6*c?swV?={4ugJ<5$Sx!!hPfCt~dL^4$$vp74H}1>VlSl}?d!>qe_Fsfz zr}^A-PxBvIs;SD4Nh7D7Z`bN|0_f`9S<^3Kof)Q~Y$+exC?&t|FAyojwZiCbvlIrX z%*M9|u5p0FP(ViS{gy3Zm`$Elq&GiPkQ+K^_dUb+Vpn1!ZX_f zU?}o3a_lxFoT?Gy@c_angf1l`*LQTQpSoLK@=T3hcJHwAuJ;7TpUn_*z|^8}P$&_lULH;_|OpKzrd;{iE(q zS`^)%g946CA%2T~8U=_k>=q9xtTj?Rzs!i;#<73Ju&Boi~lL)uV32beLL>e$hJ{zjIl% zL`C1qb*VLn-C(z>*@DLtDV(sbqJv6lYsQGG~?$P1%#05v__u; zi2fy+r9ApI!-Gd}k}@rVOiQMSh?uJkb+v5le>*o}xtK`9iLu*P76WGxQcv@jc}Y6u z`jha?ekozYE4knm6VFmxP>?bI&ytB12IvE&hTYpSKOYz{Ct|e;vB?{R2K)I$(v*lt zqzs%=w9!Fz>zm3=(%_X>y>gb$pi?OMQOShoE>vW~sPxuLaX+}Wm@O5C2q#!Yz#3Py zDrs@5cooyD@i8fsJ8kAkj0oWO3n8AQ9dg??4~;LOtP?bzm^N*di5==}JCS~Juwy0A zEyf}qhTCE;%us&tQ)kvVyFCxBc%kO9GG*oUWFvWOUA?#)rBamJq>?I1z#otOHyP$v z7W=odlr*<=o>--s=-Uy&8gihMl62GmuC&oHzeG4zXm`)ouWVKuQDys-nTfXmFdGqq zMSfT7P=wwh5BtMSf@>I0qZD>u6(kXHAJ<3OreA2g*m;9uYi;jpX7#{wO{)^EE&veW zxQ_BKvV@VAS~|#T-FHquh1~h)jXrzbj^c)QY&(2n?Y-c(NNX)Jmatmju(T{oV5R|w zZ6$F%AIPwE)cviCTns;u30X8v{p6hewOC|tmqITvDrq9sq5|lkk5pvc*>X`b{J;ps+3{@`+DDml}@$NKL^{TYqQ0 zxi|GwSM)3RWAFC<^Q7Iz*t0rZMYZM=HGw96!eeu;P0PZkCE}q(i1d)ZSg#4+F!d9D z$2W9m0rWJ}M|8ViGo#|(?`1UADb)6yKZ~Vw_DC$JbZIehgMLkuH8z4MZU5&uaJ}Uq zOeU-`M%Ef~nUR^I>-|F8z1fF1$=U8W@EnVRkGU{#OAA9jJWTM+`Vd_+6Jw40L+-LPwDZXhk84-waHGD19%?mV|1 z`|9u31o-q`-eAHZAl)}cL`c*=F1EBG=~%R z+L$A0`=2jyLAa|@u^YWIGfKaKM* za7>ZgB3x_hWkLM#uEUZ!n~#t7*qI;BvA=8LuSmw&L^@<$zd_M?)2-}6&&Ip&p|`DT zg;#3^6D0`a#UCR2mw&Z9n(QM+&y@>$J1!L=epk#fxg55w0GG6(>Qa$^|2i-$(OpkP z<>sf)O(I(YX)?ESnvz`JyOj_+$K8&;uxvNY_>Sp8xCk@oGnM?(a8N=H)Ka`6l*|Cz zz*RJ@%L$G3PD)Pv4u#Yhw>he+Vr#@fGq)zfp-rL=Aw7=+L!7uTLZ2?Jv)ZcPh{E?jKlQ?m<7m z1`wbO$tNG61Mu<@VuDae1Yt$nfby}BRifoT8DwCSsLN73pia4L#+q-uKUdHwmE#GE zvTgEh46>s&^c1}=9yUs+k>Pn9nUINih;;71SM87Hg5>(*e*-d2WV0Gj8&M6@~NBLX~&_p`m^o7lm250^oJke`uIVUH!e2#67T(;!;&S?@S zoc5<>+KJC+9JF|?`ZLZzES`lKyZAjU?md>Z}P33(giHn*>l$xMk^epCKyZ}g#} zH>Cx!)~%71of_~`kw_i_%t468LiI;G9`V!he(ZjCW82zGX+%iS6PKrMWCmoEC4cv! z!V4oZ{Ef*Ts$mTp7bfz!{({)KYl3dEM>+Rs1-`gv&+?H^;D~W&z2@6V*{J*?+ERiB zyYFsJ-@G+%xYudskSPRVQ@H!NZpVwt2cBKjlVhiPYx%>&;4;sBjk}R8J0t4qJK6|1 z=QeoYM-?*mgo;U1 z2W&-DlcZ5)|AyI(&&~o1)fit4eOmLiFXbx_OdA;L`L`f^WqDa5`nX}KAa)fbY~3Gw z{4avU7o^~iN}bs|Z!Uqo2l~59)J>tIM($&JEeWklhSH6rzT}j@qC$hM4&1NSM*Vkf zyymjJZe?M{{Y9SG)byj*aSFP_nTxl@gPV03^yuqfQvQ6fyt~>?syMN_oEK=-{OD5K zqRs1Wck~+I+|4$pJqh)fc<{h!C#-WY%G@Fe*H+c6TN}cVJpzSA4nBKKncxvU+1``f z20DBbGE&~0^i>T1;6RM1h{?c3q)~??nW21!axqDOrREGCC(bf1ObU4iW~fV) zEEnh$4F40Pc4=@Kq}#iedS5H4wd86eud0QS@fyk96;zvkrRaO;&+FnQvm5aYcf9CB z3R|^>Oc3!tar_V-8pDf-f`@aGADA0&}&pUVZX;IO^q1cJDh zcnO=Y?PcV%H>n21x*wx?QCD>w)-l8q$9oO=nh0en1g`nFDC~}Z8hm)!o^J?eng!&M z4Wu#QVVir-*?!wUEG!*nJ`Mg9>H(oDPu&9QmztgDTb+y97KK5#P13@ncL6)f0Xk7` zeGH+3tiJ2ny|)LT!+oTyV|@*SbNdw|ZkYUvPojQ98b9X`LNzZGBd)kFsV;u*AqmMa zc#%W@G0lp&pZ!&xR&t|!5%bDym}s)ggM7_QoSQeWBT1J~`vg&HgKM%Kii!x9W>|r) z23~<^cwMfZ;}xctw2c6K{GMG($qY~(=hRo6eO@-(6tiyk6DEJSM>%hOx*ECLRv`C@ z5v3vQy3L(+)8}@~_Le=o(%X!Nt^T>jm2;^$1`Uh>)FsKl6}1fu{alRQ z?nlCH^_-r)D%-nEB44W~)0$Qe>Xl|+%lbJ>!4~FRm3cD$L?uHjM3^a-15lLk!Xp>| z2oZAj3A)ryHD*7=rH(*VOr9rDyrIX_B=iR!JkvFAKZv)IbhIuTN+i=zxDP7UI7Z09esKD?OyMrqT8vWJ?= z{~OmWtr%lv7m!Rj)jYA`KT)|B#3gcSer_%GW{#>%o5;uv(HqBsZg zoOKui+zPK70YZ;OORAmH@HF6mh$~C=d@Jx>-tpoRn2o94QJf1yN^LnL-;Yg3LMLK0 z)-~B>%AtTgv~xAn$x^2XitD{uh#nlT(=;j#Y{S|~BVobu(@)+@0i&2GceDGhi(gLs zxtuwoTw*OLk$X-4g_(Puk>;@1-97ibj<5sAE7eP$Xh7Tmzi>R z2(JsyoZ$n^)#UZoeCxL;u`~eh+#{z%nn)p?m$?56lKJwb9%-TGN!>;!@z9O2189&O zz>muylN{cjTF9uVh;#9O$1^c;sKtWAbs0;WY<+mS5ItT|BrAsDXJ~Mk-pZamljm1^ z2R)f*_QNN%PS^``d3&Q!%_jZI)2DOo(e0C!S5R9cb>7c}(J=%oMNFSeU+w2al0xkm zTM*BG2yjHtq%Gg5J+!0&yu?p^uHxsk*jp@E_r+{ zEfvv{p6^;mMrOa;Rkcqo2I4PWM+g4v9W`6MX|u0-!$dxg_K4dK-pYHH-c(=>_)o=F zLCf_-El<&c51He!C8yKd`ol35_l_9E>`ne&|7|6zxCOe*PUWFT>XD#fZiq2cxo^r_mF;QVM@Y$`}hl*dYI_X;ZUK6qt*jl3ND64-g z)`Z0F0~ZiJ?>8docP_neL|6aNJh`R>@{OY?U$YYD?O0cTU>0X=uFvipySTXFQmDi% z^mXG_drc~ckqB1@@XuuG0?D!yWovq2mY{&-Qp#9l^@W=n|AJe}lZUJW?&WuolJ9q) zW*dFVZ0PWh$JhJ7pXaU6>KS5^UPpCdIa>`iGN3^rUbrRaL12+;i;%q(!i2Gpu{8gDcVx8VWnv_c0f_*$6 z6|ixC^8PIi%LTWwI8h7}Wu$Q|f_b4ZtJ;Vgxw?)gFoSuck!WDbg#y{J#qusnN5^$> zLm`m|PGp6_RH^kqEm;P`();lb-7lCJemIFw*Z&V-ua}wO zlGJ)PV+B6Rj5m*7Q~dided7 zd6|s?$yBD{#XZ{OvZM4DqXKkJ0EdS?QMUGy8y zLHYk9EB63vaKrQcw(IyF>x^qoH+_USVWxU?+XL2c85eZvoqW`%)NR;x}9Q`fF(WDzT9FxOG=gUwk{nbV%ex=2oTH1J$S-QYF a{y=YGb@*post_date ) { $time = ''; } else { - /* translators: Date format in table columns, see https://www.php.net/date */ + /* translators: Date format in table columns, see https://www.php.net/manual/datetime.format.php */ $time = mysql2date( __( 'Y/m/d' ), $post->post_date ); } @@ -2370,7 +2370,7 @@ function wp_ajax_save_widget() { } /** - * Ajax handler for saving a widget. + * Ajax handler for updating a widget. * * @since 3.9.0 * @@ -2594,7 +2594,7 @@ function wp_ajax_upload_attachment() { * @since 3.1.0 */ function wp_ajax_image_editor() { - $attachment_id = intval( $_POST['postid'] ); + $attachment_id = (int) $_POST['postid']; if ( empty( $attachment_id ) || ! current_user_can( 'edit_post', $attachment_id ) ) { wp_die( -1 ); @@ -2651,12 +2651,12 @@ function wp_ajax_image_editor() { function wp_ajax_set_post_thumbnail() { $json = ! empty( $_REQUEST['json'] ); // New-style request. - $post_ID = intval( $_POST['post_id'] ); + $post_ID = (int) $_POST['post_id']; if ( ! current_user_can( 'edit_post', $post_ID ) ) { wp_die( -1 ); } - $thumbnail_id = intval( $_POST['thumbnail_id'] ); + $thumbnail_id = (int) $_POST['thumbnail_id']; if ( $json ) { check_ajax_referer( "update-post_$post_ID" ); @@ -2687,7 +2687,7 @@ function wp_ajax_set_post_thumbnail() { * @since 4.6.0 */ function wp_ajax_get_post_thumbnail_html() { - $post_ID = intval( $_POST['post_id'] ); + $post_ID = (int) $_POST['post_id']; check_ajax_referer( "update-post_$post_ID" ); @@ -2695,7 +2695,7 @@ function wp_ajax_get_post_thumbnail_html() { wp_die( -1 ); } - $thumbnail_id = intval( $_POST['thumbnail_id'] ); + $thumbnail_id = (int) $_POST['thumbnail_id']; // For backward compatibility, -1 refers to no featured image. if ( -1 === $thumbnail_id ) { @@ -3208,7 +3208,7 @@ function wp_ajax_send_attachment_to_editor() { $attachment = wp_unslash( $_POST['attachment'] ); - $id = intval( $attachment['id'] ); + $id = (int) $attachment['id']; $post = get_post( $id ); if ( ! $post ) { @@ -3221,7 +3221,7 @@ function wp_ajax_send_attachment_to_editor() { if ( current_user_can( 'edit_post', $id ) ) { // If this attachment is unattached, attach it. Primarily a back compat thing. - $insert_into_post_id = intval( $_POST['post_id'] ); + $insert_into_post_id = (int) $_POST['post_id']; if ( 0 == $post->post_parent && $insert_into_post_id ) { wp_update_post( @@ -3622,7 +3622,7 @@ function wp_ajax_parse_embed() { wp_send_json_error(); } - $post_id = isset( $_POST['post_ID'] ) ? intval( $_POST['post_ID'] ) : 0; + $post_id = isset( $_POST['post_ID'] ) ? (int) $_POST['post_ID'] : 0; if ( $post_id > 0 ) { $post = get_post( $post_id ); @@ -3674,9 +3674,9 @@ function wp_ajax_parse_embed() { // Set $content_width so any embeds fit in the destination iframe. if ( isset( $_POST['maxwidth'] ) && is_numeric( $_POST['maxwidth'] ) && $_POST['maxwidth'] > 0 ) { if ( ! isset( $content_width ) ) { - $content_width = intval( $_POST['maxwidth'] ); + $content_width = (int) $_POST['maxwidth']; } else { - $content_width = min( $content_width, intval( $_POST['maxwidth'] ) ); + $content_width = min( $content_width, (int) $_POST['maxwidth'] ); } } @@ -5142,8 +5142,21 @@ function wp_ajax_wp_privacy_erase_personal_data() { * Ajax handler for site health checks on server communication. * * @since 5.2.0 + * @deprecated 5.6.0 Use WP_REST_Site_Health_Controller::test_dotorg_communication() + * @see WP_REST_Site_Health_Controller::test_dotorg_communication() */ function wp_ajax_health_check_dotorg_communication() { + _doing_it_wrong( + 'wp_ajax_health_check_dotorg_communication', + sprintf( + // translators: 1: The Site Health action that is no longer used by core. 2: The new function that replaces it. + __( 'The Site Health check for %1$s has been replaced with %2$s.' ), + 'wp_ajax_health_check_dotorg_communication', + 'WP_REST_Site_Health_Controller::test_dotorg_communication' + ), + '5.6.0' + ); + check_ajax_referer( 'health-check-site-status' ); if ( ! current_user_can( 'view_site_health_checks' ) ) { @@ -5158,32 +5171,25 @@ function wp_ajax_health_check_dotorg_communication() { wp_send_json_success( $site_health->get_test_dotorg_communication() ); } -/** - * Ajax handler for site health checks on debug mode. - * - * @since 5.2.0 - */ -function wp_ajax_health_check_is_in_debug_mode() { - wp_verify_nonce( 'health-check-site-status' ); - - if ( ! current_user_can( 'view_site_health_checks' ) ) { - wp_send_json_error(); - } - - if ( ! class_exists( 'WP_Site_Health' ) ) { - require_once ABSPATH . 'wp-admin/includes/class-wp-site-health.php'; - } - - $site_health = WP_Site_Health::get_instance(); - wp_send_json_success( $site_health->get_test_is_in_debug_mode() ); -} - /** * Ajax handler for site health checks on background updates. * * @since 5.2.0 + * @deprecated 5.6.0 Use WP_REST_Site_Health_Controller::test_background_updates() + * @see WP_REST_Site_Health_Controller::test_background_updates() */ function wp_ajax_health_check_background_updates() { + _doing_it_wrong( + 'wp_ajax_health_check_background_updates', + sprintf( + // translators: 1: The Site Health action that is no longer used by core. 2: The new function that replaces it. + __( 'The Site Health check for %1$s has been replaced with %2$s.' ), + 'wp_ajax_health_check_background_updates', + 'WP_REST_Site_Health_Controller::test_background_updates' + ), + '5.6.0' + ); + check_ajax_referer( 'health-check-site-status' ); if ( ! current_user_can( 'view_site_health_checks' ) ) { @@ -5202,8 +5208,21 @@ function wp_ajax_health_check_background_updates() { * Ajax handler for site health checks on loopback requests. * * @since 5.2.0 + * @deprecated 5.6.0 Use WP_REST_Site_Health_Controller::test_loopback_requests() + * @see WP_REST_Site_Health_Controller::test_loopback_requests() */ function wp_ajax_health_check_loopback_requests() { + _doing_it_wrong( + 'wp_ajax_health_check_loopback_requests', + sprintf( + // translators: 1: The Site Health action that is no longer used by core. 2: The new function that replaces it. + __( 'The Site Health check for %1$s has been replaced with %2$s.' ), + 'wp_ajax_health_check_loopback_requests', + 'WP_REST_Site_Health_Controller::test_loopback_requests' + ), + '5.6.0' + ); + check_ajax_referer( 'health-check-site-status' ); if ( ! current_user_can( 'view_site_health_checks' ) ) { @@ -5239,8 +5258,21 @@ function wp_ajax_health_check_site_status_result() { * Ajax handler for site health check to get directories and database sizes. * * @since 5.2.0 + * @deprecated 5.6.0 Use WP_REST_Site_Health_Controller::get_directory_sizes() + * @see WP_REST_Site_Health_Controller::get_directory_sizes() */ function wp_ajax_health_check_get_sizes() { + _doing_it_wrong( + 'wp_ajax_health_check_get_sizes', + sprintf( + // translators: 1: The Site Health action that is no longer used by core. 2: The new function that replaces it. + __( 'The Site Health check for %1$s has been replaced with %2$s.' ), + 'wp_ajax_health_check_get_sizes', + 'WP_REST_Site_Health_Controller::get_directory_sizes' + ), + '5.6.0' + ); + check_ajax_referer( 'health-check-site-status-result' ); if ( ! current_user_can( 'view_site_health_checks' ) || is_multisite() ) { diff --git a/wp-admin/includes/bookmark.php b/wp-admin/includes/bookmark.php index 622ea06955..6cc6683f02 100644 --- a/wp-admin/includes/bookmark.php +++ b/wp-admin/includes/bookmark.php @@ -142,13 +142,34 @@ function get_link_to_edit( $link ) { } /** - * Inserts/updates links into/in the database. + * Inserts a link into the database, or updates an existing link. + * + * Runs all the necessary sanitizing, provides default values if arguments are missing, + * and finally saves the link. * * @since 2.0.0 * * @global wpdb $wpdb WordPress database abstraction object. * - * @param array $linkdata Elements that make up the link to insert. + * @param array $linkdata { + * Elements that make up the link to insert. + * + * @type int $link_id Optional. The ID of the existing link if updating. + * @type string $link_url The URL the link points to. + * @type string $link_name The title of the link. + * @type string $link_image Optional. A URL of an image. + * @type string $link_target Optional. The target element for the anchor tag. + * @type string $link_description Optional. A short description of the link. + * @type string $link_visible Optional. 'Y' means visible, anything else means not. + * @type int $link_owner Optional. A user ID. + * @type int $link_rating Optional. A rating for the link. + * @type string $link_updated Optional. When the link was last updated. + * @type string $link_rel Optional. A relationship of the link to you. + * @type string $link_notes Optional. An extended description of or notes on the link. + * @type string $link_rss Optional. A URL of an associated RSS feed. + * @type int $link_category Optional. The term ID of the link category. + * If empty, uses default link category. + * } * @param bool $wp_error Optional. Whether to return a WP_Error object on failure. Default false. * @return int|WP_Error Value 0 or WP_Error on failure. The link ID on success. */ @@ -274,7 +295,7 @@ function wp_set_link_cats( $link_id = 0, $link_categories = array() ) { * * @since 2.0.0 * - * @param array $linkdata Link data to update. + * @param array $linkdata Link data to update. See wp_insert_link() for accepted arguments. * @return int|WP_Error Value 0 or WP_Error on failure. The updated link ID on success. */ function wp_update_link( $linkdata ) { diff --git a/wp-admin/includes/class-automatic-upgrader-skin.php b/wp-admin/includes/class-automatic-upgrader-skin.php index 9875c6dee5..1835b3952c 100644 --- a/wp-admin/includes/class-automatic-upgrader-skin.php +++ b/wp-admin/includes/class-automatic-upgrader-skin.php @@ -8,7 +8,7 @@ */ /** - * Upgrader Skin for Automatic WordPress Upgrades + * Upgrader Skin for Automatic WordPress Upgrades. * * This skin is designed to be used when no output is intended, all output * is captured and stored for the caller to process and log/email/discard. @@ -52,14 +52,22 @@ public function request_filesystem_credentials( $error = false, $context = '', $ } /** - * @return array + * Retrieves the upgrade messages. + * + * @since 3.7.0 + * + * @return array Messages during an upgrade. */ public function get_upgrade_messages() { return $this->messages; } /** - * @param string|array|WP_Error $data + * Stores a message about the upgrade. + * + * @since 3.7.0 + * + * @param string|array|WP_Error $data Message data. * @param mixed ...$args Optional text replacements. */ public function feedback( $data, ...$args ) { @@ -103,12 +111,18 @@ public function feedback( $data, ...$args ) { } /** + * Creates a new output buffer. + * + * @since 3.7.0 */ public function header() { ob_start(); } /** + * Retrieves the buffered content, deletes the buffer, and processes the output. + * + * @since 3.7.0 */ public function footer() { $output = ob_get_clean(); diff --git a/wp-admin/includes/class-bulk-plugin-upgrader-skin.php b/wp-admin/includes/class-bulk-plugin-upgrader-skin.php index 308cacf553..9844e19460 100644 --- a/wp-admin/includes/class-bulk-plugin-upgrader-skin.php +++ b/wp-admin/includes/class-bulk-plugin-upgrader-skin.php @@ -48,12 +48,12 @@ public function bulk_footer() { 'plugins_page' => sprintf( '%s', self_admin_url( 'plugins.php' ), - __( 'Return to Plugins page' ) + __( 'Go to Plugins page' ) ), 'updates_page' => sprintf( '%s', self_admin_url( 'update-core.php' ), - __( 'Return to WordPress Updates page' ) + __( 'Go to WordPress Updates page' ) ), ); diff --git a/wp-admin/includes/class-bulk-theme-upgrader-skin.php b/wp-admin/includes/class-bulk-theme-upgrader-skin.php index d3f0c914ea..94daa27131 100644 --- a/wp-admin/includes/class-bulk-theme-upgrader-skin.php +++ b/wp-admin/includes/class-bulk-theme-upgrader-skin.php @@ -48,12 +48,12 @@ public function bulk_footer() { 'themes_page' => sprintf( '%s', self_admin_url( 'themes.php' ), - __( 'Return to Themes page' ) + __( 'Go to Themes page' ) ), 'updates_page' => sprintf( '%s', self_admin_url( 'update-core.php' ), - __( 'Return to WordPress Updates page' ) + __( 'Go to WordPress Updates page' ) ), ); diff --git a/wp-admin/includes/class-core-upgrader.php b/wp-admin/includes/class-core-upgrader.php index d7305589bf..b57a13fd7b 100644 --- a/wp-admin/includes/class-core-upgrader.php +++ b/wp-admin/includes/class-core-upgrader.php @@ -279,18 +279,21 @@ public static function should_update_to_version( $offered_ver ) { $current_is_development_version = (bool) strpos( $wp_version, '-' ); // Defaults: - $upgrade_dev = true; - $upgrade_minor = true; - $upgrade_major = false; + $upgrade_dev = get_site_option( 'auto_update_core_dev', 'enabled' ) === 'enabled'; + $upgrade_minor = get_site_option( 'auto_update_core_minor', 'enabled' ) === 'enabled'; + $upgrade_major = get_site_option( 'auto_update_core_major', 'unset' ) === 'enabled'; - // WP_AUTO_UPDATE_CORE = true (all), 'minor', false. + // WP_AUTO_UPDATE_CORE = true (all), 'beta', 'rc', 'minor', false. if ( defined( 'WP_AUTO_UPDATE_CORE' ) ) { if ( false === WP_AUTO_UPDATE_CORE ) { // Defaults to turned off, unless a filter allows it. $upgrade_dev = false; $upgrade_minor = false; $upgrade_major = false; - } elseif ( true === WP_AUTO_UPDATE_CORE ) { + } elseif ( true === WP_AUTO_UPDATE_CORE + || 'beta' === WP_AUTO_UPDATE_CORE + || 'rc' === WP_AUTO_UPDATE_CORE + ) { // ALL updates for core. $upgrade_dev = true; $upgrade_minor = true; diff --git a/wp-admin/includes/class-language-pack-upgrader-skin.php b/wp-admin/includes/class-language-pack-upgrader-skin.php index cbbc834808..05676269f0 100644 --- a/wp-admin/includes/class-language-pack-upgrader-skin.php +++ b/wp-admin/includes/class-language-pack-upgrader-skin.php @@ -75,7 +75,7 @@ public function bulk_footer() { 'updates_page' => sprintf( '%s', self_admin_url( 'update-core.php' ), - __( 'Return to WordPress Updates page' ) + __( 'Go to WordPress Updates page' ) ), ); diff --git a/wp-admin/includes/class-language-pack-upgrader.php b/wp-admin/includes/class-language-pack-upgrader.php index e88db55848..2ac6e76329 100644 --- a/wp-admin/includes/class-language-pack-upgrader.php +++ b/wp-admin/includes/class-language-pack-upgrader.php @@ -309,17 +309,18 @@ public function bulk_upgrade( $language_updates = array(), $args = array() ) { } /** - * Check the package source to make sure there are .mo and .po files. + * Checks that the package source contains .mo and .po files. * * Hooked to the {@see 'upgrader_source_selection'} filter by * Language_Pack_Upgrader::bulk_upgrade(). * * @since 3.7.0 * - * @global WP_Filesystem_Base $wp_filesystem Subclass + * @global WP_Filesystem_Base $wp_filesystem WordPress filesystem subclass. * - * @param string|WP_Error $source - * @param string $remote_source + * @param string|WP_Error $source The path to the downloaded package source. + * @param string $remote_source Remote file source location. + * @return string|WP_Error The source as passed, or a WP_Error object on failure. */ public function check_package( $source, $remote_source ) { global $wp_filesystem; diff --git a/wp-admin/includes/class-pclzip.php b/wp-admin/includes/class-pclzip.php index 47f2a344a2..8a085f8bd0 100644 --- a/wp-admin/includes/class-pclzip.php +++ b/wp-admin/includes/class-pclzip.php @@ -1171,7 +1171,7 @@ function duplicate($p_archive) $this->privErrorReset(); // ----- Look if the $p_archive is a PclZip object - if ((is_object($p_archive)) && (get_class($p_archive) == 'pclzip')) + if (is_object($p_archive) && $p_archive instanceof pclzip) { // ----- Duplicate the archive @@ -1235,7 +1235,7 @@ function merge($p_archive_to_add) } // ----- Look if the $p_archive_to_add is a PclZip object - if ((is_object($p_archive_to_add)) && (get_class($p_archive_to_add) == 'pclzip')) + if (is_object($p_archive_to_add) && $p_archive_to_add instanceof pclzip) { // ----- Merge the archive diff --git a/wp-admin/includes/class-plugin-installer-skin.php b/wp-admin/includes/class-plugin-installer-skin.php index 5bb19ebfbc..dad5983d7a 100644 --- a/wp-admin/includes/class-plugin-installer-skin.php +++ b/wp-admin/includes/class-plugin-installer-skin.php @@ -107,7 +107,7 @@ public function after() { $install_actions['activate_plugin'] = sprintf( '%s', wp_nonce_url( 'plugins.php?action=activate&from=press-this&plugin=' . urlencode( $plugin_file ), 'activate-plugin_' . $plugin_file ), - __( 'Activate Plugin & Return to Press This' ) + __( 'Activate Plugin & Go to Press This' ) ); } else { $install_actions['activate_plugin'] = sprintf( @@ -130,25 +130,25 @@ public function after() { $install_actions['importers_page'] = sprintf( '%s', admin_url( 'import.php' ), - __( 'Return to Importers' ) + __( 'Go to Importers' ) ); } elseif ( 'web' === $this->type ) { $install_actions['plugins_page'] = sprintf( '%s', self_admin_url( 'plugin-install.php' ), - __( 'Return to Plugin Installer' ) + __( 'Go to Plugin Installer' ) ); } elseif ( 'upload' === $this->type && 'plugins' === $from ) { $install_actions['plugins_page'] = sprintf( '%s', self_admin_url( 'plugin-install.php' ), - __( 'Return to Plugin Installer' ) + __( 'Go to Plugin Installer' ) ); } else { $install_actions['plugins_page'] = sprintf( '%s', self_admin_url( 'plugins.php' ), - __( 'Return to Plugins page' ) + __( 'Go to Plugins page' ) ); } diff --git a/wp-admin/includes/class-plugin-upgrader-skin.php b/wp-admin/includes/class-plugin-upgrader-skin.php index 6b911bfea2..1d56b29d21 100644 --- a/wp-admin/includes/class-plugin-upgrader-skin.php +++ b/wp-admin/includes/class-plugin-upgrader-skin.php @@ -22,7 +22,7 @@ class Plugin_Upgrader_Skin extends WP_Upgrader_Skin { * * @since 2.8.0 * - * @var object + * @var string */ public $plugin = ''; @@ -98,7 +98,7 @@ public function after() { 'plugins_page' => sprintf( '%s', self_admin_url( 'plugins.php' ), - __( 'Return to Plugins page' ) + __( 'Go to Plugins page' ) ), ); diff --git a/wp-admin/includes/class-plugin-upgrader.php b/wp-admin/includes/class-plugin-upgrader.php index 27dc757f19..b171f9228b 100644 --- a/wp-admin/includes/class-plugin-upgrader.php +++ b/wp-admin/includes/class-plugin-upgrader.php @@ -398,21 +398,20 @@ public function bulk_upgrade( $plugins, $args = array() ) { } /** - * Check a source package to be sure it contains a plugin. + * Checks that the source package contains a valid plugin. * - * This function is added to the {@see 'upgrader_source_selection'} filter by - * Plugin_Upgrader::install(). + * Hooked to the {@see 'upgrader_source_selection'} filter by Plugin_Upgrader::install(). * * @since 3.3.0 * * @global WP_Filesystem_Base $wp_filesystem WordPress filesystem subclass. + * @global string $wp_version The WordPress version string. * * @param string $source The path to the downloaded package source. - * @return string|WP_Error The source as passed, or a WP_Error object - * if no plugins were found. + * @return string|WP_Error The source as passed, or a WP_Error object on failure. */ public function check_package( $source ) { - global $wp_filesystem; + global $wp_filesystem, $wp_version; $this->new_plugin_data = array(); @@ -459,7 +458,7 @@ public function check_package( $source ) { $error = sprintf( /* translators: 1: Current WordPress version, 2: Version required by the uploaded plugin. */ __( 'Your WordPress version is %1$s, however the uploaded plugin requires %2$s.' ), - $GLOBALS['wp_version'], + $wp_version, $requires_wp ); diff --git a/wp-admin/includes/class-theme-installer-skin.php b/wp-admin/includes/class-theme-installer-skin.php index c6d0900abe..c22ad86e7a 100644 --- a/wp-admin/includes/class-theme-installer-skin.php +++ b/wp-admin/includes/class-theme-installer-skin.php @@ -155,13 +155,13 @@ public function after() { $install_actions['themes_page'] = sprintf( '%s', self_admin_url( 'theme-install.php' ), - __( 'Return to Theme Installer' ) + __( 'Go to Theme Installer' ) ); } elseif ( current_user_can( 'switch_themes' ) || current_user_can( 'edit_theme_options' ) ) { $install_actions['themes_page'] = sprintf( '%s', self_admin_url( 'themes.php' ), - __( 'Return to Themes page' ) + __( 'Go to Themes page' ) ); } diff --git a/wp-admin/includes/class-theme-upgrader-skin.php b/wp-admin/includes/class-theme-upgrader-skin.php index 7ca0b70db9..e1420b032f 100644 --- a/wp-admin/includes/class-theme-upgrader-skin.php +++ b/wp-admin/includes/class-theme-upgrader-skin.php @@ -22,7 +22,7 @@ class Theme_Upgrader_Skin extends WP_Upgrader_Skin { * * @since 2.8.0 * - * @var object + * @var string */ public $theme = ''; @@ -124,7 +124,7 @@ public function after() { $update_actions['themes_page'] = sprintf( '%s', self_admin_url( 'themes.php' ), - __( 'Return to Themes page' ) + __( 'Go to Themes page' ) ); /** diff --git a/wp-admin/includes/class-theme-upgrader.php b/wp-admin/includes/class-theme-upgrader.php index c08d3c2d5c..229a8115bd 100644 --- a/wp-admin/includes/class-theme-upgrader.php +++ b/wp-admin/includes/class-theme-upgrader.php @@ -510,21 +510,20 @@ public function bulk_upgrade( $themes, $args = array() ) { } /** - * Check that the package source contains a valid theme. + * Checks that the package source contains a valid theme. * * Hooked to the {@see 'upgrader_source_selection'} filter by Theme_Upgrader::install(). - * It will return an error if the theme doesn't have style.css or index.php - * files. * * @since 3.3.0 * * @global WP_Filesystem_Base $wp_filesystem WordPress filesystem subclass. + * @global string $wp_version The WordPress version string. * - * @param string $source The full path to the package source. - * @return string|WP_Error The source or a WP_Error. + * @param string $source The path to the downloaded package source. + * @return string|WP_Error The source as passed, or a WP_Error object on failure. */ public function check_package( $source ) { - global $wp_filesystem; + global $wp_filesystem, $wp_version; $this->new_theme_data = array(); @@ -606,7 +605,7 @@ public function check_package( $source ) { $error = sprintf( /* translators: 1: Current WordPress version, 2: Version required by the uploaded theme. */ __( 'Your WordPress version is %1$s, however the uploaded theme requires %2$s.' ), - $GLOBALS['wp_version'], + $wp_version, $requires_wp ); diff --git a/wp-admin/includes/class-walker-category-checklist.php b/wp-admin/includes/class-walker-category-checklist.php index 4c6cc9ef31..171e731987 100644 --- a/wp-admin/includes/class-walker-category-checklist.php +++ b/wp-admin/includes/class-walker-category-checklist.php @@ -62,11 +62,11 @@ public function end_lvl( &$output, $depth = 0, $args = array() ) { * * @since 2.5.1 * - * @param string $output Used to append additional content (passed by reference). - * @param object $category The current term object. - * @param int $depth Depth of the term in reference to parents. Default 0. - * @param array $args An array of arguments. @see wp_terms_checklist() - * @param int $id ID of the current term. + * @param string $output Used to append additional content (passed by reference). + * @param WP_Term $category The current term object. + * @param int $depth Depth of the term in reference to parents. Default 0. + * @param array $args An array of arguments. @see wp_terms_checklist() + * @param int $id ID of the current term. */ public function start_el( &$output, $category, $depth = 0, $args = array(), $id = 0 ) { if ( empty( $args['taxonomy'] ) ) { @@ -121,10 +121,10 @@ public function start_el( &$output, $category, $depth = 0, $args = array(), $id * * @since 2.5.1 * - * @param string $output Used to append additional content (passed by reference). - * @param object $category The current term object. - * @param int $depth Depth of the term in reference to parents. Default 0. - * @param array $args An array of arguments. @see wp_terms_checklist() + * @param string $output Used to append additional content (passed by reference). + * @param WP_Term $category The current term object. + * @param int $depth Depth of the term in reference to parents. Default 0. + * @param array $args An array of arguments. @see wp_terms_checklist() */ public function end_el( &$output, $category, $depth = 0, $args = array() ) { $output .= "\n"; diff --git a/wp-admin/includes/class-walker-nav-menu-checklist.php b/wp-admin/includes/class-walker-nav-menu-checklist.php index 11e78dd529..3f4d6c1574 100644 --- a/wp-admin/includes/class-walker-nav-menu-checklist.php +++ b/wp-admin/includes/class-walker-nav-menu-checklist.php @@ -74,7 +74,7 @@ public function end_lvl( &$output, $depth = 0, $args = null ) { public function start_el( &$output, $item, $depth = 0, $args = null, $id = 0 ) { global $_nav_menu_placeholder, $nav_menu_selected_id; - $_nav_menu_placeholder = ( 0 > $_nav_menu_placeholder ) ? intval( $_nav_menu_placeholder ) - 1 : -1; + $_nav_menu_placeholder = ( 0 > $_nav_menu_placeholder ) ? (int) $_nav_menu_placeholder - 1 : -1; $possible_object_id = isset( $item->post_type ) && 'nav_menu_item' === $item->post_type ? $item->object_id : $_nav_menu_placeholder; $possible_db_id = ( ! empty( $item->ID ) ) && ( 0 < $possible_object_id ) ? (int) $item->ID : 0; diff --git a/wp-admin/includes/class-wp-ajax-upgrader-skin.php b/wp-admin/includes/class-wp-ajax-upgrader-skin.php index cd4175cd47..27d8beb740 100644 --- a/wp-admin/includes/class-wp-ajax-upgrader-skin.php +++ b/wp-admin/includes/class-wp-ajax-upgrader-skin.php @@ -81,7 +81,7 @@ public function get_error_messages() { } /** - * Stores a log entry for an error. + * Stores an error message about the upgrade. * * @since 4.6.0 * @since 5.3.0 Formalized the existing `...$args` parameter by adding it @@ -116,13 +116,13 @@ public function error( $errors, ...$args ) { } /** - * Stores a log entry. + * Stores a message about the upgrade. * * @since 4.6.0 * @since 5.3.0 Formalized the existing `...$args` parameter by adding it * to the function signature. * - * @param string|array|WP_Error $data Log entry data. + * @param string|array|WP_Error $data Message data. * @param mixed ...$args Optional text replacements. */ public function feedback( $data, ...$args ) { diff --git a/wp-admin/includes/class-wp-application-passwords-list-table.php b/wp-admin/includes/class-wp-application-passwords-list-table.php new file mode 100644 index 0000000000..d1c128b50a --- /dev/null +++ b/wp-admin/includes/class-wp-application-passwords-list-table.php @@ -0,0 +1,267 @@ + __( 'Name' ), + 'created' => __( 'Created' ), + 'last_used' => __( 'Last Used' ), + 'last_ip' => __( 'Last IP' ), + 'revoke' => __( 'Revoke' ), + ); + } + + /** + * Prepares the list of items for displaying. + * + * @since 5.6.0 + * + * @global int $user_id User ID. + */ + public function prepare_items() { + global $user_id; + $this->items = array_reverse( WP_Application_Passwords::get_user_application_passwords( $user_id ) ); + } + + /** + * Handles the name column output. + * + * @since 5.6.0 + * + * @param array $item The current application password item. + */ + public function column_name( $item ) { + echo esc_html( $item['name'] ); + } + + /** + * Handles the created column output. + * + * @since 5.6.0 + * + * @param array $item The current application password item. + */ + public function column_created( $item ) { + if ( empty( $item['created'] ) ) { + echo '—'; + } else { + echo date_i18n( __( 'F j, Y' ), $item['created'] ); + } + } + + /** + * Handles the last used column output. + * + * @since 5.6.0 + * + * @param array $item The current application password item. + */ + public function column_last_used( $item ) { + if ( empty( $item['last_used'] ) ) { + echo '—'; + } else { + echo date_i18n( __( 'F j, Y' ), $item['last_used'] ); + } + } + + /** + * Handles the last ip column output. + * + * @since 5.6.0 + * + * @param array $item The current application password item. + */ + public function column_last_ip( $item ) { + if ( empty( $item['last_ip'] ) ) { + echo '—'; + } else { + echo $item['last_ip']; + } + } + + /** + * Handles the revoke column output. + * + * @since 5.6.0 + * + * @param array $item The current application password item. + */ + public function column_revoke( $item ) { + submit_button( + __( 'Revoke' ), + 'delete', + 'revoke-application-password-' . $item['uuid'], + false, + array( + /* translators: %s: the application password's given name. */ + 'aria-label' => sprintf( __( 'Revoke "%s"' ), $item['name'] ), + ) + ); + } + + /** + * Generates content for a single row of the table + * + * @since 5.6.0 + * + * @param array $item The current item. + * @param string $column_name The current column name. + */ + protected function column_default( $item, $column_name ) { + /** + * Fires for each custom column in the Application Passwords list table. + * + * Custom columns are registered using the {@see 'manage_application-passwords-user_columns'} filter. + * + * @since 5.6.0 + * + * @param string $column_name Name of the custom column. + * @param array $item The application password item. + */ + do_action( "manage_{$this->screen->id}_custom_column", $column_name, $item ); + } + + /** + * Generates custom table navigation to prevent conflicting nonces. + * + * @since 5.6.0 + * + * @param string $which The location of the bulk actions: 'top' or 'bottom'. + */ + protected function display_tablenav( $which ) { + ?> +

+ +
+ +
+ +
+ bulk_actions( $which ); ?> +
+ extra_tablenav( $which ); + $this->pagination( $which ); + ?> +
+
+ '; + $this->single_row_columns( $item ); + echo ''; + } + + /** + * Gets the name of the default primary column. + * + * @since 5.6.0 + * + * @return string Name of the default primary column, in this case, 'name'. + */ + protected function get_default_primary_column_name() { + return 'name'; + } + + /** + * Prints the JavaScript template for the new row item. + * + * @since 5.6.0 + */ + public function print_js_template_row() { + list( $columns, $hidden, , $primary ) = $this->get_column_info(); + + echo ''; + + foreach ( $columns as $column_name => $display_name ) { + $is_primary = $primary === $column_name; + $classes = "{$column_name} column-{$column_name}"; + + if ( $is_primary ) { + $classes .= ' has-row-actions column-primary'; + } + + if ( in_array( $column_name, $hidden, true ) ) { + $classes .= ' hidden'; + } + + printf( '', esc_attr( $classes ), esc_attr( wp_strip_all_tags( $display_name ) ) ); + + switch ( $column_name ) { + case 'name': + echo '{{ data.name }}'; + break; + case 'created': + // JSON encoding automatically doubles backslashes to ensure they don't get lost when printing the inline JS. + echo '<# print( wp.date.dateI18n( ' . wp_json_encode( __( 'F j, Y' ) ) . ', data.created ) ) #>'; + break; + case 'last_used': + echo '<# print( data.last_used !== null ? wp.date.dateI18n( ' . wp_json_encode( __( 'F j, Y' ) ) . ", data.last_used ) : '—' ) #>"; + break; + case 'last_ip': + echo "{{ data.last_ip || '—' }}"; + break; + case 'revoke': + printf( + '', + esc_attr( __( 'Revoke' ) ), + /* translators: %s: the application password's given name. */ + esc_attr( sprintf( __( 'Revoke "%s"' ), '{{ data.name }}' ) ) + ); + break; + default: + /** + * Fires in the JavaScript row template for each custom column in the Application Passwords list table. + * + * Custom columns are registered using the {@see 'manage_application-passwords-user_columns'} filter. + * + * @since 5.6.0 + * + * @param string $column_name Name of the custom column. + */ + do_action( "manage_{$this->screen->id}_custom_column_js_template", $column_name ); + break; + } + + if ( $is_primary ) { + echo ''; + } + + echo ''; + } + + echo ''; + } +} diff --git a/wp-admin/includes/class-wp-automatic-updater.php b/wp-admin/includes/class-wp-automatic-updater.php index 02f1f8d4cf..7f482daa1e 100644 --- a/wp-admin/includes/class-wp-automatic-updater.php +++ b/wp-admin/includes/class-wp-automatic-updater.php @@ -62,7 +62,7 @@ public function is_disabled() { * filesystem to the top of the drive, erring on the side of detecting a VCS * checkout somewhere. * - * ABSPATH is always checked in addition to whatever $context is (which may be the + * ABSPATH is always checked in addition to whatever `$context` is (which may be the * wp-content directory, for example). The underlying assumption is that if you are * using version control *anywhere*, then you should be making decisions for * how things get updated. @@ -70,6 +70,8 @@ public function is_disabled() { * @since 3.7.0 * * @param string $context The filesystem path to check, in addition to ABSPATH. + * @return bool True if a VCS checkout was discovered at `$context` or ABSPATH, + * or anywhere higher. False otherwise. */ public function is_vcs_checkout( $context ) { $context_dirs = array( untrailingslashit( $context ) ); @@ -112,7 +114,7 @@ public function is_vcs_checkout( $context ) { * * @since 3.7.0 * - * @param bool $checkout Whether a VCS checkout was discovered at $context + * @param bool $checkout Whether a VCS checkout was discovered at `$context` * or ABSPATH, or anywhere higher. * @param string $context The filesystem context (a path) against which * filesystem status should be checked. @@ -132,6 +134,7 @@ public function is_vcs_checkout( $context ) { * @param object $item The update offer. * @param string $context The filesystem context (a path) against which filesystem * access and status should be checked. + * @return bool True if the item should be updated, false otherwise. */ public function should_update( $type, $item, $context ) { // Used to see if WP_Filesystem is set up to allow unattended updates. @@ -242,6 +245,8 @@ public function should_update( $type, $item, $context ) { * @since 3.7.0 * * @param object $item The update offer. + * @return bool True if the site administrator is notified of a core update, + * false otherwise. */ protected function send_core_update_notification_email( $item ) { $notified = get_site_option( 'auto_core_update_notified' ); @@ -343,6 +348,11 @@ public function update( $type, $item ) { $upgrader_item = $item->theme; $theme = wp_get_theme( $upgrader_item ); $item_name = $theme->Get( 'Name' ); + // Add the current version so that it can be reported in the notification email. + $item->current_version = $theme->get( 'Version' ); + if ( empty( $item->current_version ) ) { + $item->current_version = false; + } /* translators: %s: Theme name. */ $skin->feedback( __( 'Updating theme: %s' ), $item_name ); break; @@ -350,6 +360,11 @@ public function update( $type, $item ) { $upgrader_item = $item->plugin; $plugin_data = get_plugin_data( $context . '/' . $upgrader_item ); $item_name = $plugin_data['Name']; + // Add the current version so that it can be reported in the notification email. + $item->current_version = $plugin_data['Version']; + if ( empty( $item->current_version ) ) { + $item->current_version = false; + } /* translators: %s: Plugin name. */ $skin->feedback( __( 'Updating plugin: %s' ), $item_name ); break; @@ -1065,12 +1080,22 @@ protected function send_plugin_theme_email( $type, $successful_updates, $failed_ $body[] = __( 'These plugins failed to update:' ); foreach ( $failed_updates['plugin'] as $item ) { - $body[] = sprintf( - /* translators: 1: Plugin name, 2: Version number. */ - __( '- %1$s version %2$s' ), - $item->name, - $item->item->new_version - ); + if ( $item->item->current_version ) { + $body[] = sprintf( + /* translators: 1: Plugin name, 2: Current version number, 3: New version number. */ + __( '- %1$s (from version %2$s to %3$s)' ), + $item->name, + $item->item->current_version, + $item->item->new_version + ); + } else { + $body[] = sprintf( + /* translators: 1: Plugin name, 2: Version number. */ + __( '- %1$s version %2$s' ), + $item->name, + $item->item->new_version + ); + } $past_failure_emails[ $item->item->plugin ] = $item->item->new_version; } @@ -1083,12 +1108,22 @@ protected function send_plugin_theme_email( $type, $successful_updates, $failed_ $body[] = __( 'These themes failed to update:' ); foreach ( $failed_updates['theme'] as $item ) { - $body[] = sprintf( - /* translators: 1: Theme name, 2: Version number. */ - __( '- %1$s version %2$s' ), - $item->name, - $item->item->new_version - ); + if ( $item->item->current_version ) { + $body[] = sprintf( + /* translators: 1: Theme name, 2: Current version number, 3: New version number. */ + __( '- %1$s (from version %2$s to %3$s)' ), + $item->name, + $item->item->current_version, + $item->item->new_version + ); + } else { + $body[] = sprintf( + /* translators: 1: Theme name, 2: Version number. */ + __( '- %1$s version %2$s' ), + $item->name, + $item->item->new_version + ); + } $past_failure_emails[ $item->item->theme ] = $item->item->new_version; } @@ -1106,12 +1141,22 @@ protected function send_plugin_theme_email( $type, $successful_updates, $failed_ $body[] = __( 'These plugins are now up to date:' ); foreach ( $successful_updates['plugin'] as $item ) { - $body[] = sprintf( - /* translators: 1: Plugin name, 2: Version number. */ - __( '- %1$s version %2$s' ), - $item->name, - $item->item->new_version - ); + if ( $item->item->current_version ) { + $body[] = sprintf( + /* translators: 1: Plugin name, 2: Current version number, 3: New version number. */ + __( '- %1$s (from version %2$s to %3$s)' ), + $item->name, + $item->item->current_version, + $item->item->new_version + ); + } else { + $body[] = sprintf( + /* translators: 1: Plugin name, 2: Version number. */ + __( '- %1$s version %2$s' ), + $item->name, + $item->item->new_version + ); + } unset( $past_failure_emails[ $item->item->plugin ] ); } @@ -1124,12 +1169,22 @@ protected function send_plugin_theme_email( $type, $successful_updates, $failed_ $body[] = __( 'These themes are now up to date:' ); foreach ( $successful_updates['theme'] as $item ) { - $body[] = sprintf( - /* translators: 1: Theme name, 2: Version number. */ - __( '- %1$s version %2$s' ), - $item->name, - $item->item->new_version - ); + if ( $item->item->current_version ) { + $body[] = sprintf( + /* translators: 1: Theme name, 2: Current version number, 3: New version number. */ + __( '- %1$s (from version %2$s to %3$s)' ), + $item->name, + $item->item->current_version, + $item->item->new_version + ); + } else { + $body[] = sprintf( + /* translators: 1: Theme name, 2: Version number. */ + __( '- %1$s version %2$s' ), + $item->name, + $item->item->new_version + ); + } unset( $past_failure_emails[ $item->item->theme ] ); } diff --git a/wp-admin/includes/class-wp-comments-list-table.php b/wp-admin/includes/class-wp-comments-list-table.php index 91b29c5c1f..563187ffe4 100644 --- a/wp-admin/includes/class-wp-comments-list-table.php +++ b/wp-admin/includes/class-wp-comments-list-table.php @@ -390,11 +390,14 @@ protected function extra_tablenav( $which ) { if ( ! isset( $has_items ) ) { $has_items = $this->has_items(); } + echo '
'; + if ( 'top' === $which ) { ob_start(); - $this->comment_status_dropdown( $comment_type ); + $this->comment_type_dropdown( $comment_type ); + /** * Fires just before the Filter submit button for comment types. * @@ -406,7 +409,7 @@ protected function extra_tablenav( $which ) { if ( ! empty( $output ) && $this->has_items() ) { echo $output; - submit_button( esc_html__( 'Filter' ), '', 'filter_action', false, array( 'id' => 'post-query-submit' ) ); + submit_button( __( 'Filter' ), '', 'filter_action', false, array( 'id' => 'post-query-submit' ) ); } } @@ -415,14 +418,18 @@ protected function extra_tablenav( $which ) { $title = ( 'spam' === $comment_status ) ? esc_attr__( 'Empty Spam' ) : esc_attr__( 'Empty Trash' ); submit_button( $title, 'apply', 'delete_all', false ); } + /** * Fires after the Filter submit button for comment types. * * @since 2.5.0 + * @since 5.6.0 The `$which` parameter was added. * * @param string $comment_status The comment status name. Default 'All'. + * @param string $which The location of the extra table nav markup: 'top' or 'bottom'. */ - do_action( 'manage_comments_nav', $comment_status ); + do_action( 'manage_comments_nav', $comment_status, $which ); + echo '
'; } @@ -465,34 +472,35 @@ public function get_columns() { } /** - * Displays a comment status drop-down for filtering on the Comments list table. + * Displays a comment type drop-down for filtering on the Comments list table. * * @since 5.5.0 + * @since 5.6.0 Renamed from `comment_status_dropdown()` to `comment_type_dropdown()`. * * @param string $comment_type The current comment type slug. */ - protected function comment_status_dropdown( $comment_type ) { + protected function comment_type_dropdown( $comment_type ) { /** - * Filters the comment types dropdown menu. + * Filters the comment types shown in the drop-down menu on the Comments list table. * * @since 2.7.0 * - * @param array $comment_types An array of comment types. Accepts 'Comments', 'Pings'. + * @param string[] $comment_types Array of comment type labels keyed by their name. */ $comment_types = apply_filters( 'admin_comment_types_dropdown', array( - 'comment' => esc_html__( 'Comments' ), - 'pings' => esc_html__( 'Pings' ), + 'comment' => __( 'Comments' ), + 'pings' => __( 'Pings' ), ) ); if ( $comment_types && is_array( $comment_types ) ) { - printf( '', esc_html__( 'Filter by comment type' ) ); + printf( '', __( 'Filter by comment type' ) ); echo '\n"; echo '\n"; - foreach ( $this->_actions as $name => $title ) { - $class = 'edit' === $name ? ' class="hide-if-no-js"' : ''; + foreach ( $this->_actions as $key => $value ) { + if ( is_array( $value ) ) { + echo "\t" . '' . "\n"; + + foreach ( $value as $name => $title ) { + $class = ( 'edit' === $name ) ? ' class="hide-if-no-js"' : ''; - echo "\t" . '\n"; + echo "\t\t" . '\n"; + } + echo "\t" . "\n"; + } else { + $class = ( 'edit' === $key ) ? ' class="hide-if-no-js"' : ''; + + echo "\t" . '\n"; + } } echo "\n"; @@ -947,7 +976,7 @@ protected function pagination( $which ) { if ( ! empty( $infinite_scroll ) ) { $pagination_links_class .= ' hide-if-js'; } - $output .= "\n" . join( "\n", $page_links ) . ''; + $output .= "\n" . implode( "\n", $page_links ) . ''; if ( $total_pages ) { $page_class = $total_pages < 2 ? ' one-page' : ''; @@ -1044,7 +1073,7 @@ protected function get_primary_column_name() { // If the primary column doesn't exist, // fall back to the first non-checkbox column. if ( ! isset( $columns[ $default ] ) ) { - $default = WP_List_Table::get_default_primary_column_name(); + $default = self::get_default_primary_column_name(); } /** @@ -1065,7 +1094,7 @@ protected function get_primary_column_name() { } /** - * Gets a list of all, hidden and sortable columns, with filter applied. + * Gets a list of all, hidden, and sortable columns, with filter applied. * * @since 3.1.0 * @@ -1092,7 +1121,7 @@ protected function get_column_info() { * Filters the list table sortable columns for a specific screen. * * The dynamic portion of the hook name, `$this->screen->id`, refers - * to the ID of the current screen, usually a string. + * to the ID of the current screen. * * @since 3.1.0 * @@ -1213,7 +1242,7 @@ public function print_column_headers( $with_id = true ) { $id = $with_id ? "id='$column_key'" : ''; if ( ! empty( $class ) ) { - $class = "class='" . join( ' ', $class ) . "'"; + $class = "class='" . implode( ' ', $class ) . "'"; } echo "<$tag $scope $id $class>$column_display_name"; @@ -1343,7 +1372,7 @@ public function display_rows() { * * @since 3.1.0 * - * @param object $item The current item + * @param object|array $item The current item */ public function single_row( $item ) { echo ''; @@ -1352,13 +1381,13 @@ public function single_row( $item ) { } /** - * @param object $item + * @param object|array $item * @param string $column_name */ protected function column_default( $item, $column_name ) {} /** - * @param object $item + * @param object|array $item */ protected function column_cb( $item ) {} @@ -1367,7 +1396,7 @@ protected function column_cb( $item ) {} * * @since 3.1.0 * - * @param object $item The current item. + * @param object|array $item The current item. */ protected function single_row_columns( $item ) { list( $columns, $hidden, $sortable, $primary ) = $this->get_column_info(); @@ -1419,9 +1448,9 @@ protected function single_row_columns( $item ) { * * @since 4.3.0 * - * @param object $item The item being acted upon. - * @param string $column_name Current column name. - * @param string $primary Primary column name. + * @param object|array $item The item being acted upon. + * @param string $column_name Current column name. + * @param string $primary Primary column name. * @return string The row actions HTML, or an empty string * if the current column is not the primary column. */ diff --git a/wp-admin/includes/class-wp-media-list-table.php b/wp-admin/includes/class-wp-media-list-table.php index fdc26de6ea..031f306987 100644 --- a/wp-admin/includes/class-wp-media-list-table.php +++ b/wp-admin/includes/class-wp-media-list-table.php @@ -614,7 +614,7 @@ public function column_default( $post, $column_name ) { ); } /* translators: Used between list items, there is a space after the comma. */ - echo join( __( ', ' ), $out ); + echo implode( __( ', ' ), $out ); } else { echo '' . get_taxonomy( $taxonomy )->labels->no_terms . ''; } @@ -802,9 +802,9 @@ private function _get_row_actions( $post, $att_title ) { * * @since 4.3.0 * - * @param object $post Attachment being acted upon. - * @param string $column_name Current column name. - * @param string $primary Primary column name. + * @param WP_Post $post Attachment being acted upon. + * @param string $column_name Current column name. + * @param string $primary Primary column name. * @return string Row actions output for media attachments, or an empty string * if the current column is not the primary column. */ 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 3b3c7a88a6..b928ee92c6 100644 --- a/wp-admin/includes/class-wp-ms-sites-list-table.php +++ b/wp-admin/includes/class-wp-ms-sites-list-table.php @@ -103,8 +103,8 @@ public function prepare_items() { } $args = array( - 'number' => intval( $per_page ), - 'offset' => intval( ( $pagenum - 1 ) * $per_page ), + 'number' => (int) $per_page, + 'offset' => (int) ( ( $pagenum - 1 ) * $per_page ), 'network_id' => get_current_network_id(), ); @@ -332,7 +332,9 @@ protected function extra_tablenav( $which ) { * @param string $which The location of the extra table nav markup: 'top' or 'bottom'. */ do_action( 'restrict_manage_sites', $which ); + $output = ob_get_clean(); + if ( ! empty( $output ) ) { echo $output; submit_button( __( 'Filter' ), '', 'filter_action', false, array( 'id' => 'site-query-submit' ) ); @@ -618,13 +620,13 @@ protected function site_states( $site ) { $site_status = isset( $_REQUEST['status'] ) ? wp_unslash( trim( $_REQUEST['status'] ) ) : ''; foreach ( $this->status_list as $status => $col ) { - if ( ( 1 === intval( $_site->{$status} ) ) && ( $site_status !== $status ) ) { + if ( ( 1 === (int) $_site->{$status} ) && ( $site_status !== $status ) ) { $site_states[ $col[0] ] = $col[1]; } } /** - * Filter the default site display states for items in the Sites list table. + * Filters the default site display states for items in the Sites list table. * * @since 5.3.0 * @@ -662,7 +664,7 @@ protected function get_default_primary_column_name() { * * @since 4.3.0 * - * @param object $blog Site being acted upon. + * @param array $blog Site being acted upon. * @param string $column_name Current column name. * @param string $primary Primary column name. * @return string Row actions output for sites in Multisite, or an empty string 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 7f751a3b2f..2091603cf0 100644 --- a/wp-admin/includes/class-wp-ms-themes-list-table.php +++ b/wp-admin/includes/class-wp-ms-themes-list-table.php @@ -63,7 +63,7 @@ public function __construct( $args = array() ) { $this->is_site_themes = ( 'site-themes-network' === $this->screen->id ) ? true : false; if ( $this->is_site_themes ) { - $this->site_id = isset( $_REQUEST['id'] ) ? intval( $_REQUEST['id'] ) : 0; + $this->site_id = isset( $_REQUEST['id'] ) ? (int) $_REQUEST['id'] : 0; } $this->show_autoupdates = wp_is_auto_update_enabled_for_type( 'theme' ) && @@ -179,11 +179,9 @@ public function prepare_items() { 'requires_php' => '', ); - $filter_payload = array_merge( $filter_payload, array_intersect_key( $theme_data, $filter_payload ) ); + $filter_payload = (object) array_merge( $filter_payload, array_intersect_key( $theme_data, $filter_payload ) ); - $type = 'theme'; - /** This filter is documented in wp-admin/includes/class-wp-automatic-updater.php */ - $auto_update_forced = apply_filters( "auto_update_{$type}", null, (object) $filter_payload ); + $auto_update_forced = wp_is_auto_update_forced_for_item( 'theme', null, $filter_payload ); if ( ! is_null( $auto_update_forced ) ) { $theme->auto_update_forced = $auto_update_forced; @@ -208,9 +206,11 @@ public function prepare_items() { $themes['search'] = array_filter( array_merge( $themes['all'], $themes['broken'] ), array( $this, '_search_callback' ) ); } - $totals = array(); + $totals = array(); + $js_themes = array(); foreach ( $themes as $type => $list ) { - $totals[ $type ] = count( $list ); + $totals[ $type ] = count( $list ); + $js_themes[ $type ] = array_keys( $list ); } if ( empty( $themes[ $status ] ) && ! in_array( $status, array( 'all', 'search' ), true ) ) { @@ -227,7 +227,7 @@ public function prepare_items() { 'updates', '_wpUpdatesItemCounts', array( - 'themes' => $totals, + 'themes' => $js_themes, 'totals' => wp_get_update_data(), ) ); @@ -301,7 +301,7 @@ public function _order_callback( $theme_a, $theme_b ) { $a = $theme_a[ $orderby ]; $b = $theme_b[ $orderby ]; - if ( $a == $b ) { + if ( $a === $b ) { return 0; } 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 3b9670750d..8e1656ed6c 100644 --- a/wp-admin/includes/class-wp-ms-users-list-table.php +++ b/wp-admin/includes/class-wp-ms-users-list-table.php @@ -490,9 +490,9 @@ protected function get_default_primary_column_name() { * * @since 4.3.0 * - * @param object $user User being acted upon. - * @param string $column_name Current column name. - * @param string $primary Primary column name. + * @param WP_User $user User being acted upon. + * @param string $column_name Current column name. + * @param string $primary Primary column name. * @return string Row actions output for users in Multisite, or an empty string * if the current column is not the primary column. */ 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 fe160cbd8b..ee6ba137e3 100644 --- a/wp-admin/includes/class-wp-plugin-install-list-table.php +++ b/wp-admin/includes/class-wp-plugin-install-list-table.php @@ -101,13 +101,16 @@ public function prepare_items() { if ( 'search' === $tab ) { $tabs['search'] = __( 'Search Results' ); } + if ( 'beta' === $tab || false !== strpos( get_bloginfo( 'version' ), '-' ) ) { $tabs['beta'] = _x( 'Beta Testing', 'Plugin Installer' ); } + $tabs['featured'] = _x( 'Featured', 'Plugin Installer' ); $tabs['popular'] = _x( 'Popular', 'Plugin Installer' ); $tabs['recommended'] = _x( 'Recommended', 'Plugin Installer' ); $tabs['favorites'] = _x( 'Favorites', 'Plugin Installer' ); + if ( current_user_can( 'upload_plugins' ) ) { // No longer a real tab. Here for filter compatibility. // Gets skipped in get_views(). @@ -427,7 +430,7 @@ private function order_callback( $plugin_a, $plugin_b ) { $a = $plugin_a->$orderby; $b = $plugin_b->$orderby; - if ( $a == $b ) { + if ( $a === $b ) { return 0; } @@ -472,7 +475,7 @@ public function display_rows() { } // Display the group heading if there is one. - if ( isset( $plugin['group'] ) && $plugin['group'] != $group ) { + if ( isset( $plugin['group'] ) && $plugin['group'] !== $group ) { if ( isset( $this->groups[ $plugin['group'] ] ) ) { $group_name = $this->groups[ $plugin['group'] ]; if ( isset( $plugins_group_titles[ $group_name ] ) ) { @@ -493,6 +496,7 @@ public function display_rows() { $group = $plugin['group']; } + $title = wp_kses( $plugin['name'], $plugins_allowedtags ); // Remove any HTML from the description. @@ -743,7 +747,7 @@ public function display_rows() { _nx( '%s+ Million', '%s+ Million', $active_installs_millions, 'Active plugin installations' ), number_format_i18n( $active_installs_millions ) ); - } elseif ( 0 == $plugin['active_installs'] ) { + } elseif ( 0 === $plugin['active_installs'] ) { $active_installs_text = _x( 'Less Than 10', 'Active plugin installations' ); } else { $active_installs_text = number_format_i18n( $plugin['active_installs'] ) . '+'; diff --git a/wp-admin/includes/class-wp-plugins-list-table.php b/wp-admin/includes/class-wp-plugins-list-table.php index e487e32cfb..b8af207da0 100644 --- a/wp-admin/includes/class-wp-plugins-list-table.php +++ b/wp-admin/includes/class-wp-plugins-list-table.php @@ -229,11 +229,10 @@ public function prepare_items() { 'requires_php' => '', 'compatibility' => new stdClass(), ); - $filter_payload = (object) array_merge( $filter_payload, array_intersect_key( $plugin_data, $filter_payload ) ); - $type = 'plugin'; - /** This filter is documented in wp-admin/includes/class-wp-automatic-updater.php */ - $auto_update_forced = apply_filters( "auto_update_{$type}", null, $filter_payload ); + $filter_payload = (object) wp_parse_args( $plugin_data, $filter_payload ); + + $auto_update_forced = wp_is_auto_update_forced_for_item( 'plugin', null, $filter_payload ); if ( ! is_null( $auto_update_forced ) ) { $plugin_data['auto-update-forced'] = $auto_update_forced; @@ -318,7 +317,7 @@ public function prepare_items() { $js_plugins = array(); foreach ( $plugins as $key => $list ) { - $js_plugins[ $key ] = array_keys( (array) $list ); + $js_plugins[ $key ] = array_keys( $list ); } wp_localize_script( @@ -387,7 +386,7 @@ public function _order_callback( $plugin_a, $plugin_b ) { $a = $plugin_a[ $orderby ]; $b = $plugin_b[ $orderby ]; - if ( $a == $b ) { + if ( $a === $b ) { return 0; } @@ -408,7 +407,7 @@ public function no_items() { $s = esc_html( wp_unslash( $_REQUEST['s'] ) ); /* translators: %s: Plugin search term. */ - printf( __( 'No plugins found for “%s”.' ), $s ); + printf( __( 'No plugins found for: %s.' ), '' . $s . '' ); // We assume that somebody who can install plugins in multisite is experienced enough to not need this helper link. if ( ! is_multisite() && current_user_can( 'install_plugins' ) ) { @@ -745,9 +744,11 @@ public function single_row( $item ) { } elseif ( 'dropins' === $context ) { $dropins = _get_dropins(); $plugin_name = $plugin_file; - if ( $plugin_file != $plugin_data['Name'] ) { + + if ( $plugin_file !== $plugin_data['Name'] ) { $plugin_name .= '
' . $plugin_data['Name']; } + if ( true === ( $dropins[ $plugin_file ][1] ) ) { // Doesn't require a constant. $is_active = true; $description = '

' . $dropins[ $plugin_file ][0] . '

'; @@ -764,6 +765,7 @@ public function single_row( $item ) { 'wp-config.php' ) . '

'; } + if ( $plugin_data['Description'] ) { $description .= '

' . $plugin_data['Description'] . '

'; } @@ -946,7 +948,8 @@ public function single_row( $item ) { $requires_php = isset( $plugin_data['requires_php'] ) ? $plugin_data['requires_php'] : null; $compatible_php = is_php_version_compatible( $requires_php ); $class = $is_active ? 'active' : 'inactive'; - $checkbox_id = 'checkbox_' . md5( $plugin_data['Name'] ); + $checkbox_id = 'checkbox_' . md5( $plugin_file ); + if ( $restrict_network_active || $restrict_network_only || in_array( $status, array( 'mustuse', 'dropins' ), true ) || ! $compatible_php ) { $checkbox = ''; } else { @@ -959,6 +962,7 @@ public function single_row( $item ) { esc_attr( $plugin_file ) ); } + if ( 'dropins' !== $context ) { $description = '

' . ( $plugin_data['Description'] ? $plugin_data['Description'] : ' ' ) . '

'; $plugin_name = $plugin_data['Name']; @@ -1124,7 +1128,7 @@ public function single_row( $item ) { $url = add_query_arg( $query_args, 'plugins.php' ); - if ( 'unavailable' == $action ) { + if ( 'unavailable' === $action ) { $html[] = '' . $text . ''; } else { $html[] = sprintf( diff --git a/wp-admin/includes/class-wp-posts-list-table.php b/wp-admin/includes/class-wp-posts-list-table.php index a7d4748840..22a46d27c9 100644 --- a/wp-admin/includes/class-wp-posts-list-table.php +++ b/wp-admin/includes/class-wp-posts-list-table.php @@ -89,19 +89,17 @@ public function __construct( $args = array() ) { 'show_in_admin_all_list' => false, ) ); - $this->user_posts_count = intval( - $wpdb->get_var( - $wpdb->prepare( - " + $this->user_posts_count = (int) $wpdb->get_var( + $wpdb->prepare( + " SELECT COUNT( 1 ) FROM $wpdb->posts WHERE post_type = %s AND post_status NOT IN ( '" . implode( "','", $exclude_states ) . "' ) AND post_author = %d ", - $post_type, - get_current_user_id() - ) + $post_type, + get_current_user_id() ) ); @@ -1081,9 +1079,9 @@ public function column_date( $post ) { $t_time = sprintf( /* translators: 1: Post date, 2: Post time. */ __( '%1$s at %2$s' ), - /* translators: Post date format. See https://www.php.net/date */ + /* translators: Post date format. See https://www.php.net/manual/datetime.format.php */ get_the_time( __( 'Y/m/d' ), $post ), - /* translators: Post time format. See https://www.php.net/date */ + /* translators: Post time format. See https://www.php.net/manual/datetime.format.php */ get_the_time( __( 'g:i a' ), $post ) ); @@ -1221,7 +1219,7 @@ public function column_default( $post, $column_name ) { $term_links = apply_filters( 'post_column_taxonomy_links', $term_links, $taxonomy, $terms ); /* translators: Used between list items, there is a space after the comma. */ - echo join( __( ', ' ), $term_links ); + echo implode( __( ', ' ), $term_links ); } else { echo '' . $taxonomy_object->labels->no_terms . ''; } @@ -1323,9 +1321,9 @@ protected function get_default_primary_column_name() { * * @since 4.3.0 * - * @param object $post Post being acted upon. - * @param string $column_name Current column name. - * @param string $primary Primary column name. + * @param WP_Post $post Post being acted upon. + * @param string $column_name Current column name. + * @param string $primary Primary column name. * @return string Row actions output for posts, or an empty string * if the current column is not the primary column. */ @@ -1589,6 +1587,18 @@ public function inline_edit() { $users_opt['show_option_none'] = __( '— No Change —' ); } + /** + * Filters the arguments used to generate the Quick Edit authors drop-down. + * + * @since 5.6.0 + * + * @see wp_dropdown_users() + * + * @param array $users_opt An array of arguments passed to wp_dropdown_users(). + * @param bool $bulk A flag to denote if it's a bulk action. + */ + $users_opt = apply_filters( 'quick_edit_dropdown_authors_args', $users_opt, $bulk ); + $authors = wp_dropdown_users( $users_opt ); if ( $authors ) : $authors_dropdown = '
'; } - $content .= ' ' . __( 'Return to top' ) . ''; + $content .= ' ' . __( 'Go to top' ) . ''; $content .= '
'; // End of .privacy-text-section. } @@ -584,6 +584,9 @@ public static function get_default_content( $description = false, $blocks = true $strings[] = '

' . __( 'By default WordPress does not share any personal data with anyone.' ) . '

'; } + /* translators: Default privacy policy text. */ + $strings[] = '

' . $suggested_text . __( 'If you request a password reset, your IP address will be included in the reset email.' ) . '

'; + /* translators: Default privacy policy heading. */ $strings[] = '

' . __( 'How long we retain your data' ) . '

'; diff --git a/wp-admin/includes/class-wp-privacy-requests-table.php b/wp-admin/includes/class-wp-privacy-requests-table.php index 714e087ab4..bb1d445da7 100644 --- a/wp-admin/includes/class-wp-privacy-requests-table.php +++ b/wp-admin/includes/class-wp-privacy-requests-table.php @@ -43,7 +43,7 @@ public function get_columns() { 'email' => __( 'Requester' ), 'status' => __( 'Status' ), 'created_timestamp' => __( 'Requested' ), - 'next_steps' => __( 'Next Steps' ), + 'next_steps' => __( 'Next steps' ), ); return $columns; } @@ -206,12 +206,13 @@ protected function get_views() { * * @since 4.9.6 * - * @return string[] Array of bulk action labels keyed by their action. + * @return array Array of bulk action labels keyed by their action. */ protected function get_bulk_actions() { return array( - 'delete' => __( 'Delete Requests' ), - 'resend' => __( 'Resend Confirmation Requests' ), + 'resend' => __( 'Resend confirmation requests' ), + 'complete' => __( 'Mark requests as completed' ), + 'delete' => __( 'Delete requests' ), ); } @@ -219,38 +220,74 @@ protected function get_bulk_actions() { * Process bulk actions. * * @since 4.9.6 + * @since 5.6.0 Added support for the `complete` action. */ public function process_bulk_action() { $action = $this->current_action(); $request_ids = isset( $_REQUEST['request_id'] ) ? wp_parse_id_list( wp_unslash( $_REQUEST['request_id'] ) ) : array(); - $count = 0; - - if ( $request_ids ) { - check_admin_referer( 'bulk-privacy_requests' ); + if ( empty( $request_ids ) ) { + return; } + $count = 0; + $failures = 0; + + check_admin_referer( 'bulk-privacy_requests' ); + switch ( $action ) { - case 'delete': + case 'resend': foreach ( $request_ids as $request_id ) { - if ( wp_delete_post( $request_id, true ) ) { - $count ++; + $resend = _wp_privacy_resend_request( $request_id ); + + if ( $resend && ! is_wp_error( $resend ) ) { + $count++; + } else { + $failures++; } } - add_settings_error( - 'bulk_action', - 'bulk_action', - /* translators: %d: Number of requests. */ - sprintf( _n( 'Deleted %d request', 'Deleted %d requests', $count ), $count ), - 'success' - ); + if ( $failures ) { + add_settings_error( + 'bulk_action', + 'bulk_action', + sprintf( + /* translators: %d: Number of requests. */ + _n( + '%d confirmation request failed to resend.', + '%d confirmation requests failed to resend.', + $failures + ), + $failures + ), + 'error' + ); + } + + if ( $count ) { + add_settings_error( + 'bulk_action', + 'bulk_action', + sprintf( + /* translators: %d: Number of requests. */ + _n( + '%d confirmation request re-sent successfully.', + '%d confirmation requests re-sent successfully.', + $count + ), + $count + ), + 'success' + ); + } + break; - case 'resend': + + case 'complete': foreach ( $request_ids as $request_id ) { - $resend = _wp_privacy_resend_request( $request_id ); + $result = _wp_privacy_completed_request( $request_id ); - if ( $resend && ! is_wp_error( $resend ) ) { + if ( $result && ! is_wp_error( $result ) ) { $count++; } } @@ -258,11 +295,63 @@ public function process_bulk_action() { add_settings_error( 'bulk_action', 'bulk_action', - /* translators: %d: Number of requests. */ - sprintf( _n( 'Re-sent %d request', 'Re-sent %d requests', $count ), $count ), + sprintf( + /* translators: %d: Number of requests. */ + _n( + '%d request marked as complete.', + '%d requests marked as complete.', + $count + ), + $count + ), 'success' ); break; + + case 'delete': + foreach ( $request_ids as $request_id ) { + if ( wp_delete_post( $request_id, true ) ) { + $count++; + } else { + $failures++; + } + } + + if ( $failures ) { + add_settings_error( + 'bulk_action', + 'bulk_action', + sprintf( + /* translators: %d: Number of requests. */ + _n( + '%d request failed to delete.', + '%d requests failed to delete.', + $failures + ), + $failures + ), + 'error' + ); + } + + if ( $count ) { + add_settings_error( + 'bulk_action', + 'bulk_action', + sprintf( + /* translators: %d: Number of requests. */ + _n( + '%d request deleted successfully.', + '%d requests deleted successfully.', + $count + ), + $count + ), + 'success' + ); + } + + break; } } diff --git a/wp-admin/includes/class-wp-screen.php b/wp-admin/includes/class-wp-screen.php index 440527f249..9464fabe05 100644 --- a/wp-admin/includes/class-wp-screen.php +++ b/wp-admin/includes/class-wp-screen.php @@ -377,7 +377,7 @@ public static function get( $hook_name = '' ) { return $screen; } } else { - $screen = new WP_Screen(); + $screen = new self(); $screen->id = $id; } @@ -1113,9 +1113,14 @@ public function render_meta_boxes_preferences() { } ?>
- + +

+ + +

id && has_action( 'welcome_panel' ) && current_user_can( 'edit_theme_options' ) ) { if ( isset( $_GET['welcome'] ) ) { diff --git a/wp-admin/includes/class-wp-site-health-auto-updates.php b/wp-admin/includes/class-wp-site-health-auto-updates.php index 4e3383eb1a..3483bfae91 100644 --- a/wp-admin/includes/class-wp-site-health-auto-updates.php +++ b/wp-admin/includes/class-wp-site-health-auto-updates.php @@ -27,7 +27,7 @@ public function __construct() { */ public function run_tests() { $tests = array( - $this->test_constants( 'WP_AUTO_UPDATE_CORE', array( true, 'minor' ) ), + $this->test_constants( 'WP_AUTO_UPDATE_CORE', array( true, 'beta', 'rc', 'minor' ) ), $this->test_wp_version_check_attached(), $this->test_filters_automatic_updater_disabled(), $this->test_wp_automatic_updates_disabled(), @@ -90,46 +90,7 @@ public function test_constants( $constant, $value ) { * @return array The test results. */ public function test_wp_version_check_attached() { - if ( ! is_main_site() ) { - return; - } - - $cookies = wp_unslash( $_COOKIE ); - $timeout = 10; - $headers = array( - 'Cache-Control' => 'no-cache', - ); - /** This filter is documented in wp-includes/class-wp-http-streams.php */ - $sslverify = apply_filters( 'https_local_ssl_verify', false ); - - // Include Basic auth in loopback requests. - if ( isset( $_SERVER['PHP_AUTH_USER'] ) && isset( $_SERVER['PHP_AUTH_PW'] ) ) { - $headers['Authorization'] = 'Basic ' . base64_encode( wp_unslash( $_SERVER['PHP_AUTH_USER'] ) . ':' . wp_unslash( $_SERVER['PHP_AUTH_PW'] ) ); - } - - $url = add_query_arg( - array( - 'health-check-test-wp_version_check' => true, - ), - admin_url( 'site-health.php' ) - ); - - $test = wp_remote_get( $url, compact( 'cookies', 'headers', 'timeout', 'sslverify' ) ); - - if ( is_wp_error( $test ) ) { - return array( - 'description' => sprintf( - /* translators: %s: Name of the filter used. */ - __( 'Could not confirm that the %s filter is available.' ), - 'wp_version_check()' - ), - 'severity' => 'warning', - ); - } - - $response = wp_remote_retrieve_body( $test ); - - if ( 'yes' !== $response ) { + if ( ! has_filter( 'wp_version_check', 'wp_version_check' ) ) { return array( 'description' => sprintf( /* translators: %s: Name of the filter used. */ @@ -310,6 +271,11 @@ public function test_vcs_abspath() { * @return array The test results. */ function test_check_wp_filesystem_method() { + // Make sure the `request_filesystem_credentials` function is available during our REST call. + if ( ! function_exists( 'request_filesystem_credentials' ) ) { + require_once ABSPATH . '/wp-admin/includes/file.php'; + } + $skin = new Automatic_Upgrader_Skin; $success = $skin->request_filesystem_credentials( false, ABSPATH ); @@ -356,6 +322,11 @@ function test_all_files_writable() { return false; } + // Make sure the `get_core_checksums` function is available during our REST call. + if ( ! function_exists( 'get_core_checksums' ) ) { + require_once ABSPATH . '/wp-admin/includes/update.php'; + } + $checksums = get_core_checksums( $wp_version, 'en_US' ); $dev = ( false !== strpos( $wp_version, '-' ) ); // Get the last stable version's files and test against that. diff --git a/wp-admin/includes/class-wp-site-health.php b/wp-admin/includes/class-wp-site-health.php index 42d9bd4947..fcc1ed7247 100644 --- a/wp-admin/includes/class-wp-site-health.php +++ b/wp-admin/includes/class-wp-site-health.php @@ -106,8 +106,8 @@ public function enqueue_scripts() { if ( 'site-health' === $screen->id && ! isset( $_GET['tab'] ) ) { $tests = WP_Site_Health::get_tests(); - // Don't run https test on localhost. - if ( 'localhost' === preg_replace( '|https?://|', '', get_site_url() ) ) { + // Don't run https test on development environments. + if ( $this->is_development_environment() ) { unset( $tests['direct']['https_status'] ); } @@ -133,7 +133,9 @@ public function enqueue_scripts() { if ( is_string( $test['test'] ) ) { $health_check_js_variables['site_status']['async'][] = array( 'test' => $test['test'], + 'has_rest' => ( isset( $test['has_rest'] ) ? $test['has_rest'] : false ), 'completed' => false, + 'headers' => isset( $test['headers'] ) ? $test['headers'] : array(), ); } } @@ -152,7 +154,7 @@ public function enqueue_scripts() { */ private function perform_test( $callback ) { /** - * Filter the output of a finished Site Health test. + * Filters the output of a finished Site Health test. * * @since 5.3.0 * @@ -729,7 +731,7 @@ public function get_test_php_version() { ) ), 'actions' => sprintf( - '

%s %s

', + '

%s %s

', esc_url( wp_get_update_php_url() ), __( 'Learn more about updating PHP' ), /* translators: Accessibility text. */ @@ -841,7 +843,7 @@ public function get_test_php_extensions() { __( 'The WordPress Hosting Team maintains a list of those modules, both recommended and required, in the team handbook%3$s.' ), /* translators: Localized team handbook, if one exists. */ esc_url( __( 'https://make.wordpress.org/hosting/handbook/handbook/server-environment/#php-extensions' ) ), - 'target="_blank" rel="noopener noreferrer"', + 'target="_blank" rel="noopener"', sprintf( ' %s', /* translators: Accessibility text. */ @@ -1158,7 +1160,7 @@ public function get_test_sql_server() { __( 'The SQL server is a required piece of software for the database WordPress uses to store all your site’s content and settings.' ) ), 'actions' => sprintf( - '

%s %s

', + '

%s %s

', /* translators: Localized version of WordPress requirements if one exists. */ esc_url( __( 'https://wordpress.org/about/requirements/' ) ), __( 'Learn more about what WordPress requires to run.' ), @@ -1395,7 +1397,7 @@ public function get_test_dotorg_communication() { ); $result['actions'] = sprintf( - '

%s %s

', + '

%s %s

', /* translators: Localized Support reference. */ esc_url( __( 'https://wordpress.org/support' ) ), __( 'Get help resolving this issue.' ), @@ -1433,7 +1435,7 @@ public function get_test_is_in_debug_mode() { __( 'Debug mode is often enabled to gather more details about an error or site failure, but may contain sensitive information which should not be available on a publicly available website.' ) ), 'actions' => sprintf( - '

%s %s

', + '

%s %s

', /* translators: Documentation explaining debugging in WordPress. */ esc_url( __( 'https://wordpress.org/support/article/debugging-in-wordpress/' ) ), __( 'Learn more about debugging in WordPress.' ), @@ -1464,6 +1466,11 @@ public function get_test_is_in_debug_mode() { $result['status'] = 'critical'; + // On development environments, set the status to recommended. + if ( $this->is_development_environment() ) { + $result['status'] = 'recommended'; + } + $result['description'] .= sprintf( '

%s

', sprintf( @@ -1502,7 +1509,7 @@ public function get_test_https_status() { __( 'An HTTPS connection is a more secure way of browsing the web. Many services now have HTTPS as a requirement. HTTPS allows you to take advantage of new features that can increase site speed, improve search rankings, and gain the trust of your visitors by helping to protect their online privacy.' ) ), 'actions' => sprintf( - '

%s %s

', + '

%s %s

', /* translators: Documentation explaining HTTPS and why it should be used. */ esc_url( __( 'https://wordpress.org/support/article/why-should-i-use-https/' ) ), __( 'Learn more about why you should use HTTPS' ), @@ -1854,7 +1861,7 @@ public function get_test_http_requests() { $hosts = explode( ',', WP_ACCESSIBLE_HOSTS ); } - if ( $blocked && 0 === sizeof( $hosts ) ) { + if ( $blocked && 0 === count( $hosts ) ) { $result['status'] = 'critical'; $result['label'] = __( 'HTTP requests are blocked' ); @@ -1869,7 +1876,7 @@ public function get_test_http_requests() { ); } - if ( $blocked && 0 < sizeof( $hosts ) ) { + if ( $blocked && 0 < count( $hosts ) ) { $result['status'] = 'recommended'; $result['label'] = __( 'HTTP requests are partially blocked' ); @@ -2072,6 +2079,62 @@ public function get_test_file_uploads() { return $result; } + /** + * Tests if the Authorization header has the expected values. + * + * @since 5.6.0 + * + * @return array + */ + public function get_test_authorization_header() { + $result = array( + 'label' => __( 'The Authorization header is working as expected.' ), + 'status' => 'good', + 'badge' => array( + 'label' => __( 'Security' ), + 'color' => 'blue', + ), + 'description' => sprintf( + '

%s

', + __( 'The Authorization header comes from the third-party applications you approve. Without it, those apps cannot connect to your site.' ) + ), + 'actions' => '', + 'test' => 'authorization_header', + ); + + if ( ! isset( $_SERVER['PHP_AUTH_USER'], $_SERVER['PHP_AUTH_PW'] ) ) { + $result['label'] = __( 'The authorization header is missing.' ); + } elseif ( 'user' !== $_SERVER['PHP_AUTH_USER'] || 'pwd' !== $_SERVER['PHP_AUTH_PW'] ) { + $result['label'] = __( 'The authorization header is invalid.' ); + } else { + return $result; + } + + $result['status'] = 'recommended'; + + if ( ! function_exists( 'got_mod_rewrite' ) ) { + require_once ABSPATH . 'wp-admin/includes/misc.php'; + } + + if ( got_mod_rewrite() ) { + $result['actions'] .= sprintf( + '

%s

', + esc_url( admin_url( 'options-permalink.php' ) ), + __( 'Flush permalinks' ) + ); + } else { + $result['actions'] .= sprintf( + '

%s %s

', + __( 'https://developer.wordpress.org/rest-api/frequently-asked-questions/#why-is-authentication-not-working' ), + __( 'Learn how to configure the Authorization header.' ), + /* translators: Accessibility text. */ + __( '(opens in a new tab)' ) + ); + } + + return $result; + } + /** * Return a set of tests that belong to the site status page. * @@ -2080,6 +2143,7 @@ public function get_test_file_uploads() { * experiences. * * @since 5.2.0 + * @since 5.6.0 Added support for `has_rest` and `permissions`. * * @return array The list of tests to run. */ @@ -2153,16 +2217,29 @@ public static function get_tests() { ), 'async' => array( 'dotorg_communication' => array( - 'label' => __( 'Communication with WordPress.org' ), - 'test' => 'dotorg_communication', + 'label' => __( 'Communication with WordPress.org' ), + 'test' => rest_url( 'wp-site-health/v1/tests/dotorg-communication' ), + 'has_rest' => true, + 'async_direct_test' => array( WP_Site_Health::get_instance(), 'get_test_dotorg_communication' ), ), 'background_updates' => array( - 'label' => __( 'Background updates' ), - 'test' => 'background_updates', + 'label' => __( 'Background updates' ), + 'test' => rest_url( 'wp-site-health/v1/tests/background-updates' ), + 'has_rest' => true, + 'async_direct_test' => array( WP_Site_Health::get_instance(), 'get_test_background_updates' ), ), 'loopback_requests' => array( - 'label' => __( 'Loopback request' ), - 'test' => 'loopback_requests', + 'label' => __( 'Loopback request' ), + 'test' => rest_url( 'wp-site-health/v1/tests/loopback-requests' ), + 'has_rest' => true, + 'async_direct_test' => array( WP_Site_Health::get_instance(), 'get_test_loopback_requests' ), + ), + 'authorization_header' => array( + 'label' => __( 'Authorization header' ), + 'test' => rest_url( 'wp-site-health/v1/tests/authorization-header' ), + 'has_rest' => true, + 'headers' => array( 'Authorization' => 'Basic ' . base64_encode( 'user:pwd' ) ), + 'skip_cron' => true, ), ), ); @@ -2189,6 +2266,8 @@ public static function get_tests() { * to complete should run asynchronously, to avoid extended loading periods within wp-admin. * * @since 5.2.0 + * @since 5.6.0 Added the `async_direct_test` array key. + * Added the `skip_cron` array key. * * @param array $test_type { * An associative array, where the `$test_type` is either `direct` or @@ -2199,9 +2278,14 @@ public static function get_tests() { * Plugins and themes are encouraged to prefix test identifiers with their slug * to avoid any collisions between tests. * - * @type string $label A friendly label for your test to identify it by. - * @type mixed $test A callable to perform a direct test, or a string Ajax action to be called - * to perform an async test. + * @type string $label A friendly label for your test to identify it by. + * @type mixed $test A callable to perform a direct test, or a string AJAX action + * to be called to perform an async test. + * @type boolean $has_rest Optional. Denote if `$test` has a REST API endpoint. + * @type boolean $skip_cron Whether to skip this test when running as cron. + * @type callable $async_direct_test A manner of directly calling the test marked as asynchronous, + * as the scheduled event can not authenticate, and endpoints + * may require authentication. * } * } */ @@ -2381,13 +2465,8 @@ function detect_plugin_theme_auto_update_issues() { 'requires_php' => '5.6.20', ); - $type = 'plugin'; - /** This filter is documented in wp-admin/includes/class-wp-automatic-updater.php */ - $test_plugins_enabled = apply_filters( "auto_update_{$type}", true, $mock_plugin ); - - $type = 'theme'; - /** This filter is documented in wp-admin/includes/class-wp-automatic-updater.php */ - $test_themes_enabled = apply_filters( "auto_update_{$type}", true, $mock_theme ); + $test_plugins_enabled = wp_is_auto_update_forced_for_item( 'plugin', true, $mock_plugin ); + $test_themes_enabled = wp_is_auto_update_forced_for_item( 'theme', true, $mock_theme ); $ui_enabled_for_plugins = wp_is_auto_update_enabled_for_type( 'plugin' ); $ui_enabled_for_themes = wp_is_auto_update_enabled_for_type( 'theme' ); @@ -2519,8 +2598,8 @@ public function wp_cron_scheduled_check() { 'critical' => 0, ); - // Don't run https test on localhost. - if ( 'localhost' === preg_replace( '|https?://|', '', get_site_url() ) ) { + // Don't run https test on development environments. + if ( $this->is_development_environment() ) { unset( $tests['direct']['https_status'] ); } @@ -2544,10 +2623,22 @@ public function wp_cron_scheduled_check() { } foreach ( $tests['async'] as $test ) { + if ( ! empty( $test['skip_cron'] ) ) { + continue; + } + + // Local endpoints may require authentication, so asynchronous tests can pass a direct test runner as well. + if ( ! empty( $test['async_direct_test'] ) && is_callable( $test['async_direct_test'] ) ) { + // This test is callable, do so and continue to the next asynchronous check. + $results[] = $this->perform_test( $test['async_direct_test'] ); + continue; + } + if ( is_string( $test['test'] ) ) { + // Check if this test has a REST API endpoint. if ( isset( $test['has_rest'] ) && $test['has_rest'] ) { - $result_fetch = wp_remote_post( - rest_url( $test['test'] ), + $result_fetch = wp_remote_get( + $test['test'], array( 'body' => array( '_wpnonce' => wp_create_nonce( 'wp_rest' ), @@ -2566,7 +2657,7 @@ public function wp_cron_scheduled_check() { ); } - if ( ! is_wp_error( $result_fetch ) ) { + if ( ! is_wp_error( $result_fetch ) && 200 === wp_remote_retrieve_response_code( $result_fetch ) ) { $result = json_decode( wp_remote_retrieve_body( $result_fetch ), true ); } else { $result = false; @@ -2595,4 +2686,16 @@ public function wp_cron_scheduled_check() { set_transient( 'health-check-site-status-result', wp_json_encode( $site_status ) ); } + + /** + * Checks if the current environment type is set to 'development' or 'local'. + * + * @since 5.6.0 + * + * @return bool True if it is a development environment, false if not. + */ + public function is_development_environment() { + return in_array( wp_get_environment_type(), array( 'development', 'local' ), true ); + } + } diff --git a/wp-admin/includes/class-wp-terms-list-table.php b/wp-admin/includes/class-wp-terms-list-table.php index cb48cbc875..24df0daf6b 100644 --- a/wp-admin/includes/class-wp-terms-list-table.php +++ b/wp-admin/includes/class-wp-terms-list-table.php @@ -129,7 +129,12 @@ public function prepare_items() { $this->set_pagination_args( array( - 'total_items' => wp_count_terms( $this->screen->taxonomy, compact( 'search' ) ), + 'total_items' => wp_count_terms( + array( + 'taxonomy' => $this->screen->taxonomy, + 'search' => $search, + ) + ), 'per_page' => $tags_per_page, ) ); 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 37ee8d459d..f721f9473d 100644 --- a/wp-admin/includes/class-wp-theme-install-list-table.php +++ b/wp-admin/includes/class-wp-theme-install-list-table.php @@ -246,15 +246,15 @@ public function display_rows() { * @param object $theme { * An object that contains theme data returned by the WordPress.org API. * - * @type string $name Theme name, e.g. 'Twenty Twenty'. - * @type string $slug Theme slug, e.g. 'twentytwenty'. + * @type string $name Theme name, e.g. 'Twenty Twenty-One'. + * @type string $slug Theme slug, e.g. 'twentytwentyone'. * @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. 'https://2020.wordpress.net/'. - * @type string $screenshot_url Screenshot URL, e.g. 'https://wordpress.org/themes/twentytwenty/'. + * @type string $preview_url Preview URL, e.g. 'https://2021.wordpress.net/'. + * @type string $screenshot_url Screenshot URL, e.g. 'https://wordpress.org/themes/twentytwentyone/'. * @type float $rating Rating score. * @type int $num_ratings The number of ratings. - * @type string $homepage Theme homepage, e.g. 'https://wordpress.org/themes/twentytwenty/'. + * @type string $homepage Theme homepage, e.g. 'https://wordpress.org/themes/twentytwentyone/'. * @type string $description Theme description. * @type string $download_link Theme ZIP download URL. * } diff --git a/wp-admin/includes/class-wp-upgrader-skin.php b/wp-admin/includes/class-wp-upgrader-skin.php index 6151004eab..06f10cdca3 100644 --- a/wp-admin/includes/class-wp-upgrader-skin.php +++ b/wp-admin/includes/class-wp-upgrader-skin.php @@ -20,7 +20,7 @@ class WP_Upgrader_Skin { * * @since 2.8.0 * - * @var object + * @var WP_Upgrader */ public $upgrader; diff --git a/wp-admin/includes/class-wp-upgrader.php b/wp-admin/includes/class-wp-upgrader.php index 2da3b7cb21..5faac56213 100644 --- a/wp-admin/includes/class-wp-upgrader.php +++ b/wp-admin/includes/class-wp-upgrader.php @@ -344,12 +344,12 @@ public function unpack_package( $package, $delete_package = true ) { } /** - * Flatten the results of WP_Filesystem::dirlist() for iterating over. + * Flatten the results of WP_Filesystem_Base::dirlist() for iterating over. * * @since 4.9.0 * @access protected * - * @param array $nested_files Array of files as returned by WP_Filesystem::dirlist(). + * @param array $nested_files Array of files as returned by WP_Filesystem_Base::dirlist(). * @param string $path Relative path to prepend to child nodes. Optional. * @return array A flattened array of the $nested_files specified. */ diff --git a/wp-admin/includes/class-wp-users-list-table.php b/wp-admin/includes/class-wp-users-list-table.php index 018654bdd2..42cf19f5f8 100644 --- a/wp-admin/includes/class-wp-users-list-table.php +++ b/wp-admin/includes/class-wp-users-list-table.php @@ -54,7 +54,7 @@ public function __construct( $args = array() ) { $this->is_site_users = 'site-users-network' === $this->screen->id; if ( $this->is_site_users ) { - $this->site_id = isset( $_REQUEST['id'] ) ? intval( $_REQUEST['id'] ) : 0; + $this->site_id = isset( $_REQUEST['id'] ) ? (int) $_REQUEST['id'] : 0; } } @@ -259,7 +259,7 @@ protected function get_views() { * * @since 3.1.0 * - * @return string[] Array of bulk action labels keyed by their action. + * @return array Array of bulk action labels keyed by their action. */ protected function get_bulk_actions() { $actions = array(); diff --git a/wp-admin/includes/comment.php b/wp-admin/includes/comment.php index 89022949b1..90d79dd211 100644 --- a/wp-admin/includes/comment.php +++ b/wp-admin/includes/comment.php @@ -141,8 +141,8 @@ function get_comment_to_edit( $id ) { * * @global wpdb $wpdb WordPress database abstraction object. * - * @param int|array $post_id Either a single Post ID or an array of Post IDs - * @return int|array Either a single Posts pending comments as an int or an array of ints keyed on the Post IDs + * @param int|int[] $post_id Either a single Post ID or an array of Post IDs + * @return int|int[] Either a single Posts pending comments as an int or an array of ints keyed on the Post IDs */ function get_pending_comments_num( $post_id ) { global $wpdb; diff --git a/wp-admin/includes/credits.php b/wp-admin/includes/credits.php index ed6071b1d5..23fd532fc6 100644 --- a/wp-admin/includes/credits.php +++ b/wp-admin/includes/credits.php @@ -11,23 +11,32 @@ * Retrieve the contributor credits. * * @since 3.2.0 + * @since 5.6.0 Added the `$version` and `$locale` parameters. * + * @param string $version WordPress version. Defaults to the current version. + * @param string $locale WordPress locale. Defaults to the current user's locale. * @return array|false A list of all of the contributors, or false on error. */ -function wp_credits() { - // Include an unmodified $wp_version. - require ABSPATH . WPINC . '/version.php'; +function wp_credits( $version = '', $locale = '' ) { + if ( ! $version ) { + // Include an unmodified $wp_version. + require ABSPATH . WPINC . '/version.php'; - $locale = get_user_locale(); + $version = $wp_version; + } + + if ( ! $locale ) { + $locale = get_user_locale(); + } $results = get_site_transient( 'wordpress_credits_' . $locale ); if ( ! is_array( $results ) - || false !== strpos( $wp_version, '-' ) - || ( isset( $results['data']['version'] ) && strpos( $wp_version, $results['data']['version'] ) !== 0 ) + || false !== strpos( $version, '-' ) + || ( isset( $results['data']['version'] ) && strpos( $version, $results['data']['version'] ) !== 0 ) ) { - $url = "http://api.wordpress.org/core/credits/1.1/?version={$wp_version}&locale={$locale}"; - $options = array( 'user-agent' => 'WordPress/' . $wp_version . '; ' . home_url( '/' ) ); + $url = "http://api.wordpress.org/core/credits/1.1/?version={$version}&locale={$locale}"; + $options = array( 'user-agent' => 'WordPress/' . $version . '; ' . home_url( '/' ) ); if ( wp_http_supports( array( 'ssl' ) ) ) { $url = set_url_scheme( $url, 'https' ); diff --git a/wp-admin/includes/dashboard.php b/wp-admin/includes/dashboard.php index f758c2c662..6855aa6c96 100644 --- a/wp-admin/includes/dashboard.php +++ b/wp-admin/includes/dashboard.php @@ -15,7 +15,7 @@ * * @global array $wp_registered_widgets * @global array $wp_registered_widget_controls - * @global array $wp_dashboard_control_callbacks + * @global callable[] $wp_dashboard_control_callbacks */ function wp_dashboard_setup() { global $wp_registered_widgets, $wp_registered_widget_controls, $wp_dashboard_control_callbacks; @@ -157,8 +157,9 @@ function wp_dashboard_setup() { * Adds a new dashboard widget. * * @since 2.7.0 + * @since 5.6.0 The `$context` and `$priority` parameters were added. * - * @global array $wp_dashboard_control_callbacks + * @global callable[] $wp_dashboard_control_callbacks * * @param string $widget_id Widget ID (used in the 'id' attribute for the widget). * @param string $widget_name Title of the widget. @@ -167,8 +168,12 @@ function wp_dashboard_setup() { * @param callable $control_callback Optional. Function that outputs controls for the widget. Default null. * @param array $callback_args Optional. Data that should be set as the $args property of the widget array * (which is the second parameter passed to your callback). Default null. + * @param string $context Optional. The context within the screen where the box should display. + * Accepts 'normal', 'side', 'column3', or 'column4'. Default 'normal'. + * @param string $priority Optional. The priority within the context where the box should show. + * Accepts 'high', 'core', 'default', or 'low'. Default 'core'. */ -function wp_add_dashboard_widget( $widget_id, $widget_name, $callback, $control_callback = null, $callback_args = null ) { +function wp_add_dashboard_widget( $widget_id, $widget_name, $callback, $control_callback = null, $callback_args = null, $context = 'normal', $priority = 'core' ) { $screen = get_current_screen(); global $wp_dashboard_control_callbacks; @@ -194,19 +199,24 @@ function wp_add_dashboard_widget( $widget_id, $widget_name, $callback, $control_ $side_widgets = array( 'dashboard_quick_press', 'dashboard_primary' ); - $location = 'normal'; if ( in_array( $widget_id, $side_widgets, true ) ) { - $location = 'side'; + $context = 'side'; } $high_priority_widgets = array( 'dashboard_browser_nag', 'dashboard_php_nag' ); - $priority = 'core'; if ( in_array( $widget_id, $high_priority_widgets, true ) ) { $priority = 'high'; } - add_meta_box( $widget_id, $widget_name, $callback, $screen, $location, $priority, $callback_args ); + if ( empty( $context ) ) { + $context = 'normal'; + } + if ( empty( $priority ) ) { + $priority = 'core'; + } + + add_meta_box( $widget_id, $widget_name, $callback, $screen, $context, $priority, $callback_args ); } /** @@ -606,7 +616,7 @@ function wp_dashboard_recent_drafts( $drafts = false ) { echo '

' . __( 'Your Recent Drafts' ) . "

\n
    "; /* translators: Maximum number of words used in a preview of a draft on the dashboard. */ - $draft_length = intval( _x( '10', 'draft_length' ) ); + $draft_length = (int) _x( '10', 'draft_length' ); $drafts = array_slice( $drafts, 0, 3 ); foreach ( $drafts as $draft ) { @@ -928,7 +938,7 @@ function wp_dashboard_recent_posts( $args ) { 'post_status' => $args['status'], 'orderby' => 'date', 'order' => $args['order'], - 'posts_per_page' => intval( $args['max'] ), + 'posts_per_page' => (int) $args['max'], 'no_found_rows' => true, 'cache_results' => false, 'perm' => ( 'future' === $args['status'] ) ? 'editable' : 'readable', @@ -965,10 +975,10 @@ function wp_dashboard_recent_posts( $args ) { } elseif ( gmdate( 'Y-m-d', $time ) == $tomorrow ) { $relative = __( 'Tomorrow' ); } elseif ( gmdate( 'Y', $time ) !== $year ) { - /* translators: Date and time format for recent posts on the dashboard, from a different calendar year, see https://www.php.net/date */ + /* translators: Date and time format for recent posts on the dashboard, from a different calendar year, see https://www.php.net/manual/datetime.format.php */ $relative = date_i18n( __( 'M jS Y' ), $time ); } else { - /* translators: Date and time format for recent posts on the dashboard, see https://www.php.net/date */ + /* translators: Date and time format for recent posts on the dashboard, see https://www.php.net/manual/datetime.format.php */ $relative = date_i18n( __( 'M jS' ), $time ); } @@ -1037,7 +1047,7 @@ function wp_dashboard_recent_comments( $total_items = 5 ) { } if ( $comments ) { - echo '
    '; + echo '
    '; echo '

    ' . __( 'Recent Comments' ) . '

    '; echo '
      '; @@ -1139,7 +1149,7 @@ function wp_dashboard_cached_rss_widget( $widget_id, $callback, $check_urls = ar * * @since 2.5.0 * - * @global array $wp_dashboard_control_callbacks + * @global callable[] $wp_dashboard_control_callbacks * * @param int $widget_control_id Registered Widget ID. */ @@ -1452,7 +1462,7 @@ function wp_dashboard_primary() { * @param string $title Title attribute for the widget's primary link. */ 'title' => apply_filters( 'dashboard_primary_title', __( 'WordPress Blog' ) ), - 'items' => 1, + 'items' => 2, 'show_summary' => 0, 'show_author' => 0, 'show_date' => 0, @@ -1751,7 +1761,7 @@ function wp_dashboard_php_nag() {

      %2$s %3$s', + '%2$s %3$s', esc_url( wp_get_update_php_url() ), __( 'Learn more about updating PHP' ), /* translators: Accessibility text. */ diff --git a/wp-admin/includes/deprecated.php b/wp-admin/includes/deprecated.php index ede053de6f..7caec42e54 100644 --- a/wp-admin/includes/deprecated.php +++ b/wp-admin/includes/deprecated.php @@ -981,7 +981,8 @@ function type_url_form_file() { * @deprecated 3.3.0 Use WP_Screen::add_help_tab() * @see WP_Screen::add_help_tab() * - * @param string $screen The handle for the screen to add help to. This is usually the hook name returned by the add_*_page() functions. + * @param string $screen The handle for the screen to add help to. This is usually + * the hook name returned by the `add_*_page()` functions. * @param string $help The content of an 'Overview' help tab. */ function add_contextual_help( $screen, $help ) { @@ -1085,7 +1086,7 @@ function _media_button($title, $icon, $type, $id) { * @see get_post() * * @param int $id - * @return object + * @return WP_Post */ function get_post_to_edit( $id ) { _deprecated_function( __FUNCTION__, '3.5.0', 'get_post()' ); diff --git a/wp-admin/includes/export.php b/wp-admin/includes/export.php index 7b1b797eb4..74d7c5f823 100644 --- a/wp-admin/includes/export.php +++ b/wp-admin/includes/export.php @@ -227,7 +227,7 @@ function wxr_site_url() { * * @since 2.1.0 * - * @param object $category Category Object + * @param WP_Term $category Category Object */ function wxr_cat_name( $category ) { if ( empty( $category->name ) ) { @@ -242,7 +242,7 @@ function wxr_cat_name( $category ) { * * @since 2.1.0 * - * @param object $category Category Object + * @param WP_Term $category Category Object */ function wxr_category_description( $category ) { if ( empty( $category->description ) ) { @@ -257,7 +257,7 @@ function wxr_category_description( $category ) { * * @since 2.3.0 * - * @param object $tag Tag Object + * @param WP_Term $tag Tag Object */ function wxr_tag_name( $tag ) { if ( empty( $tag->name ) ) { @@ -272,7 +272,7 @@ function wxr_tag_name( $tag ) { * * @since 2.3.0 * - * @param object $tag Tag Object + * @param WP_Term $tag Tag Object */ function wxr_tag_description( $tag ) { if ( empty( $tag->description ) ) { @@ -287,7 +287,7 @@ function wxr_tag_description( $tag ) { * * @since 2.9.0 * - * @param object $term Term Object + * @param WP_Term $term Term Object */ function wxr_term_name( $term ) { if ( empty( $term->name ) ) { @@ -302,7 +302,7 @@ function wxr_term_name( $term ) { * * @since 2.9.0 * - * @param object $term Term Object + * @param WP_Term $term Term Object */ function wxr_term_description( $term ) { if ( empty( $term->description ) ) { @@ -372,7 +372,7 @@ function wxr_authors_list( array $post_ids = null ) { foreach ( $authors as $author ) { echo "\t"; - echo '' . intval( $author->ID ) . ''; + echo '' . (int) $author->ID . ''; echo '' . wxr_cdata( $author->user_login ) . ''; echo '' . wxr_cdata( $author->user_email ) . ''; echo '' . wxr_cdata( $author->display_name ) . ''; @@ -395,7 +395,7 @@ function wxr_nav_menu_terms() { foreach ( $nav_menus as $menu ) { echo "\t"; - echo '' . intval( $menu->term_id ) . ''; + echo '' . (int) $menu->term_id . ''; echo 'nav_menu'; echo '' . wxr_cdata( $menu->slug ) . ''; wxr_term_name( $menu ); @@ -478,7 +478,7 @@ function wxr_filter_postmeta( $return_me, $meta_key ) { - term_id ); ?> + term_id; ?> slug ); ?> parent ? $cats[ $c->parent ]->slug : '' ); ?> - term_id ); ?> + term_id; ?> slug ); ?> - term_id ); ?> + term_id; ?> taxonomy ); ?> slug ); ?> parent ? $terms[ $t->parent ]->slug : '' ); ?> @@ -534,7 +534,7 @@ function wxr_filter_postmeta( $return_me, $meta_key ) { // Fetch 20 posts at a time rather than loading the entire table into memory. while ( $next_posts = array_splice( $post_ids, 0, 20 ) ) { - $where = 'WHERE ID IN (' . join( ',', $next_posts ) . ')'; + $where = 'WHERE ID IN (' . implode( ',', $next_posts ) . ')'; $posts = $wpdb->get_results( "SELECT * FROM {$wpdb->posts} $where" ); // Begin Loop. @@ -573,18 +573,18 @@ function wxr_filter_postmeta( $return_me, $meta_key ) { - ID ); ?> + ID; ?> post_date ); ?> post_date_gmt ); ?> comment_status ); ?> ping_status ); ?> post_name ); ?> post_status ); ?> - post_parent ); ?> - menu_order ); ?> + post_parent; ?> + menu_order; ?> post_type ); ?> post_password ); ?> - + post_type ) : ?> ID ) ); ?> @@ -620,7 +620,7 @@ function wxr_filter_postmeta( $return_me, $meta_key ) { foreach ( $comments as $c ) : ?> - comment_ID ); ?> + comment_ID; ?> comment_author ); ?> comment_author_email ); ?> comment_author_url ); ?> @@ -630,8 +630,8 @@ function wxr_filter_postmeta( $return_me, $meta_key ) { comment_content ); ?> comment_approved ); ?> comment_type ); ?> - comment_parent ); ?> - user_id ); ?> + comment_parent; ?> + user_id; ?> get_results( $wpdb->prepare( "SELECT * FROM $wpdb->commentmeta WHERE comment_id = %d", $c->comment_ID ) ); foreach ( $c_meta as $meta ) : diff --git a/wp-admin/includes/file.php b/wp-admin/includes/file.php index e22292c4f8..993635e460 100644 --- a/wp-admin/includes/file.php +++ b/wp-admin/includes/file.php @@ -489,7 +489,7 @@ function wp_edit_theme_plugin_file( $args ) { $previous_content = file_get_contents( $real_file ); - if ( ! is_writeable( $real_file ) ) { + if ( ! is_writable( $real_file ) ) { return new WP_Error( 'file_not_writable' ); } @@ -510,7 +510,7 @@ function wp_edit_theme_plugin_file( $args ) { $scrape_key = md5( rand() ); $transient = 'scrape_key_' . $scrape_key; - $scrape_nonce = strval( rand() ); + $scrape_nonce = (string) rand(); // It shouldn't take more than 60 seconds to make the two loopback requests. set_transient( $transient, $scrape_nonce, 60 ); @@ -928,7 +928,7 @@ function wp_handle_upload_error( &$file, $message ) { $url = $uploads['url'] . "/$filename"; if ( is_multisite() ) { - delete_transient( 'dirsize_cache' ); + clean_dirsize_cache( $new_file ); } /** @@ -1125,7 +1125,7 @@ function download_url( $url, $timeout = 300, $signature_verification = false ) { } /** - * Filter the URL where the signature for a file is located. + * Filters the URL where the signature for a file is located. * * @since 5.2.0 * @@ -1394,7 +1394,7 @@ function wp_trusted_keys() { // TODO: Add key #2 with longer expiration. /** - * Filter the valid signing keys used to verify the contents of files. + * Filters the valid signing keys used to verify the contents of files. * * @since 5.2.0 * diff --git a/wp-admin/includes/image-edit.php b/wp-admin/includes/image-edit.php index 1363f00ae7..0d23c18318 100644 --- a/wp-admin/includes/image-edit.php +++ b/wp-admin/includes/image-edit.php @@ -291,8 +291,8 @@ function wp_stream_image( $image, $mime_type, $attachment_id ) { * @since 2.9.0 * @deprecated 3.5.0 Use {@see 'image_editor_save_pre'} instead. * - * @param resource $image Image resource to be streamed. - * @param int $attachment_id The attachment post ID. + * @param resource|GdImage $image Image resource to be streamed. + * @param int $attachment_id The attachment post ID. */ $image = apply_filters_deprecated( 'image_save_pre', array( $image, $attachment_id ), '3.5.0', 'image_editor_save_pre' ); @@ -420,19 +420,22 @@ function _image_get_preview_ratio( $w, $h ) { * @see WP_Image_Editor::rotate() * * @ignore - * @param resource $img Image resource. - * @param float|int $angle Image rotation angle, in degrees. - * @return resource|false GD image resource, false otherwise. + * @param resource|GdImage $img Image resource. + * @param float|int $angle Image rotation angle, in degrees. + * @return resource|GdImage|false GD image resource or GdImage instance, false otherwise. */ function _rotate_image_resource( $img, $angle ) { _deprecated_function( __FUNCTION__, '3.5.0', 'WP_Image_Editor::rotate()' ); + if ( function_exists( 'imagerotate' ) ) { $rotated = imagerotate( $img, $angle, 0 ); - if ( is_resource( $rotated ) ) { + + if ( is_gd_image( $rotated ) ) { imagedestroy( $img ); $img = $rotated; } } + return $img; } @@ -444,17 +447,19 @@ function _rotate_image_resource( $img, $angle ) { * @see WP_Image_Editor::flip() * * @ignore - * @param resource $img Image resource. - * @param bool $horz Whether to flip horizontally. - * @param bool $vert Whether to flip vertically. - * @return resource (maybe) flipped image resource. + * @param resource|GdImage $img Image resource or GdImage instance. + * @param bool $horz Whether to flip horizontally. + * @param bool $vert Whether to flip vertically. + * @return resource|GdImage (maybe) flipped image resource or GdImage instance. */ function _flip_image_resource( $img, $horz, $vert ) { _deprecated_function( __FUNCTION__, '3.5.0', 'WP_Image_Editor::flip()' ); + $w = imagesx( $img ); $h = imagesy( $img ); $dst = wp_imagecreatetruecolor( $w, $h ); - if ( is_resource( $dst ) ) { + + if ( is_gd_image( $dst ) ) { $sx = $vert ? ( $w - 1 ) : 0; $sy = $horz ? ( $h - 1 ) : 0; $sw = $vert ? -$w : $w; @@ -465,6 +470,7 @@ function _flip_image_resource( $img, $horz, $vert ) { $img = $dst; } } + return $img; } @@ -474,21 +480,23 @@ function _flip_image_resource( $img, $horz, $vert ) { * @since 2.9.0 * * @ignore - * @param resource $img Image resource. - * @param float $x Source point x-coordinate. - * @param float $y Source point y-coordinate. - * @param float $w Source width. - * @param float $h Source height. - * @return resource (maybe) cropped image resource. + * @param resource|GdImage $img Image resource or GdImage instance. + * @param float $x Source point x-coordinate. + * @param float $y Source point y-coordinate. + * @param float $w Source width. + * @param float $h Source height. + * @return resource|GdImage (maybe) cropped image resource or GdImage instance. */ function _crop_image_resource( $img, $x, $y, $w, $h ) { $dst = wp_imagecreatetruecolor( $w, $h ); - if ( is_resource( $dst ) ) { + + if ( is_gd_image( $dst ) ) { if ( imagecopy( $dst, $img, 0, 0, $x, $y, $w, $h ) ) { imagedestroy( $img ); $img = $dst; } } + return $img; } @@ -502,7 +510,7 @@ function _crop_image_resource( $img, $x, $y, $w, $h ) { * @return WP_Image_Editor WP_Image_Editor instance with changes applied. */ function image_edit_apply_changes( $image, $changes ) { - if ( is_resource( $image ) ) { + if ( is_gd_image( $image ) ) { /* translators: 1: $image, 2: WP_Image_Editor */ _deprecated_argument( __FUNCTION__, '3.5.0', sprintf( __( '%1$s needs to be a %2$s object.' ), '$image', 'WP_Image_Editor' ) ); } @@ -566,7 +574,7 @@ function image_edit_apply_changes( $image, $changes ) { * @param array $changes Array of change operations. */ $image = apply_filters( 'wp_image_editor_before_change', $image, $changes ); - } elseif ( is_resource( $image ) ) { + } elseif ( is_gd_image( $image ) ) { /** * Filters the GD image resource before applying changes to the image. @@ -574,8 +582,8 @@ function image_edit_apply_changes( $image, $changes ) { * @since 2.9.0 * @deprecated 3.5.0 Use {@see 'wp_image_editor_before_change'} instead. * - * @param resource $image GD image resource. - * @param array $changes Array of change operations. + * @param resource|GdImage $image GD image resource or GdImage instance. + * @param array $changes Array of change operations. */ $image = apply_filters_deprecated( 'image_edit_before_change', array( $image, $changes ), '3.5.0', 'wp_image_editor_before_change' ); } @@ -778,8 +786,8 @@ function wp_save_image( $post_id ) { return $return; } - $fwidth = ! empty( $_REQUEST['fwidth'] ) ? intval( $_REQUEST['fwidth'] ) : 0; - $fheight = ! empty( $_REQUEST['fheight'] ) ? intval( $_REQUEST['fheight'] ) : 0; + $fwidth = ! empty( $_REQUEST['fwidth'] ) ? (int) $_REQUEST['fwidth'] : 0; + $fheight = ! empty( $_REQUEST['fheight'] ) ? (int) $_REQUEST['fheight'] : 0; $target = ! empty( $_REQUEST['target'] ) ? preg_replace( '/[^a-z0-9_-]+/i', '', $_REQUEST['target'] ) : ''; $scale = ! empty( $_REQUEST['do'] ) && 'scale' === $_REQUEST['do']; @@ -936,8 +944,8 @@ function wp_save_image( $post_id ) { } if ( isset( $_wp_additional_image_sizes[ $size ] ) ) { - $width = intval( $_wp_additional_image_sizes[ $size ]['width'] ); - $height = intval( $_wp_additional_image_sizes[ $size ]['height'] ); + $width = (int) $_wp_additional_image_sizes[ $size ]['width']; + $height = (int) $_wp_additional_image_sizes[ $size ]['height']; $crop = ( $nocrop ) ? false : $_wp_additional_image_sizes[ $size ]['crop']; } else { $height = get_option( "{$size}_size_h" ); diff --git a/wp-admin/includes/image.php b/wp-admin/includes/image.php index f0a3d38bb4..522e310c51 100644 --- a/wp-admin/includes/image.php +++ b/wp-admin/includes/image.php @@ -917,10 +917,12 @@ function file_is_displayable_image( $path ) { * * @since 2.9.0 * - * @param string $attachment_id Attachment ID. - * @param string $mime_type Image mime type. - * @param string $size Optional. Image size, defaults to 'full'. - * @return resource|false The resulting image resource on success, false on failure. + * @param int $attachment_id Attachment ID. + * @param string $mime_type Image mime type. + * @param string|int[] $size Optional. Image size. Accepts any registered image size name, or an array + * of width and height values in pixels (in that order). Default 'full'. + * @return resource|GdImage|false The resulting image resource or GdImage instance on success, + * false on failure. */ function load_image_to_edit( $attachment_id, $mime_type, $size = 'full' ) { $filepath = _load_image_to_edit_path( $attachment_id, $size ); @@ -942,37 +944,42 @@ function load_image_to_edit( $attachment_id, $mime_type, $size = 'full' ) { $image = false; break; } - if ( is_resource( $image ) ) { + + if ( is_gd_image( $image ) ) { /** * Filters the current image being loaded for editing. * * @since 2.9.0 * - * @param resource $image Current image. - * @param string $attachment_id Attachment ID. - * @param string $size Image size. + * @param resource|GdImage $image Current image. + * @param int $attachment_id Attachment ID. + * @param string|int[] $size Requested image size. Can be any registered image size name, or + * an array of width and height values in pixels (in that order). */ $image = apply_filters( 'load_image_to_edit', $image, $attachment_id, $size ); + if ( function_exists( 'imagealphablending' ) && function_exists( 'imagesavealpha' ) ) { imagealphablending( $image, false ); imagesavealpha( $image, true ); } } + return $image; } /** - * Retrieve the path or url of an attachment's attached file. + * Retrieve the path or URL of an attachment's attached file. * * If the attached file is not present on the local filesystem (usually due to replication plugins), - * then the url of the file is returned if url fopen is supported. + * then the URL of the file is returned if `allow_url_fopen` is supported. * * @since 3.4.0 * @access private * - * @param string $attachment_id Attachment ID. - * @param string $size Optional. Image size, defaults to 'full'. - * @return string|false File path or url on success, false on failure. + * @param int $attachment_id Attachment ID. + * @param string|int[] $size Optional. Image size. Accepts any registered image size name, or an array + * of width and height values in pixels (in that order). Default 'full'. + * @return string|false File path or URL on success, false on failure. */ function _load_image_to_edit_path( $attachment_id, $size = 'full' ) { $filepath = get_attached_file( $attachment_id ); @@ -985,30 +992,32 @@ function _load_image_to_edit_path( $attachment_id, $size = 'full' ) { $filepath = path_join( dirname( $filepath ), $data['file'] ); /** - * Filters the path to the current image. + * Filters the path to an attachment's file when editing the image. * * The filter is evaluated for all image sizes except 'full'. * * @since 3.1.0 * - * @param string $path Path to the current image. - * @param string $attachment_id Attachment ID. - * @param string $size Size of the image. + * @param string $path Path to the current image. + * @param int $attachment_id Attachment ID. + * @param string|int[] $size Requested image size. Can be any registered image size name, or + * an array of width and height values in pixels (in that order). */ $filepath = apply_filters( 'load_image_to_edit_filesystempath', $filepath, $attachment_id, $size ); } } } elseif ( function_exists( 'fopen' ) && ini_get( 'allow_url_fopen' ) ) { /** - * Filters the image URL if not in the local filesystem. + * Filters the path to an attachment's URL when editing the image. * - * The filter is only evaluated if fopen is enabled on the server. + * The filter is only evaluated if the file isn't stored locally and `allow_url_fopen` is enabled on the server. * * @since 3.1.0 * - * @param string $image_url Current image URL. - * @param string $attachment_id Attachment ID. - * @param string $size Size of the image. + * @param string $image_url Current image URL. + * @param int $attachment_id Attachment ID. + * @param string|int[] $size Requested image size. Can be any registered image size name, or + * an array of width and height values in pixels (in that order). */ $filepath = apply_filters( 'load_image_to_edit_attachmenturl', wp_get_attachment_url( $attachment_id ), $attachment_id, $size ); } @@ -1018,9 +1027,10 @@ function _load_image_to_edit_path( $attachment_id, $size = 'full' ) { * * @since 2.9.0 * - * @param string|bool $filepath File path or URL to current image, or false. - * @param string $attachment_id Attachment ID. - * @param string $size Size of the image. + * @param string|bool $filepath File path or URL to current image, or false. + * @param int $attachment_id Attachment ID. + * @param string|int[] $size Requested image size. Can be any registered image size name, or + * an array of width and height values in pixels (in that order). */ return apply_filters( 'load_image_to_edit_path', $filepath, $attachment_id, $size ); } @@ -1031,7 +1041,7 @@ function _load_image_to_edit_path( $attachment_id, $size = 'full' ) { * @since 3.4.0 * @access private * - * @param string $attachment_id Attachment ID. + * @param int $attachment_id Attachment ID. * @return string|false New file path on success, false on failure. */ function _copy_image_file( $attachment_id ) { diff --git a/wp-admin/includes/list-table.php b/wp-admin/includes/list-table.php index 342f48dc9f..bc3b6a719c 100644 --- a/wp-admin/includes/list-table.php +++ b/wp-admin/includes/list-table.php @@ -33,6 +33,7 @@ function _get_list_table( $class, $args = array() ) { 'WP_Themes_List_Table' => 'themes', 'WP_Theme_Install_List_Table' => array( 'themes', 'theme-install' ), 'WP_Plugins_List_Table' => 'plugins', + 'WP_Application_Passwords_List_Table' => 'application-passwords', // Network Admin. 'WP_MS_Sites_List_Table' => 'ms-sites', @@ -70,9 +71,10 @@ function _get_list_table( $class, $args = array() ) { * * @since 2.7.0 * - * @param string $screen The handle for the screen to add help to. This is usually the hook name returned by the - * add_*_page() functions. - * @param string[] $columns An array of columns with column IDs as the keys and translated column names as the values. + * @param string $screen The handle for the screen to register column headers for. This is + * usually the hook name returned by the `add_*_page()` functions. + * @param string[] $columns An array of columns with column IDs as the keys and translated + * column names as the values. */ function register_column_headers( $screen, $columns ) { new _WP_List_Table_Compat( $screen, $columns ); diff --git a/wp-admin/includes/media.php b/wp-admin/includes/media.php index cc92f6a583..11629ae6e9 100644 --- a/wp-admin/includes/media.php +++ b/wp-admin/includes/media.php @@ -49,10 +49,10 @@ function update_gallery_tab( $tabs ) { return $tabs; } - $post_id = intval( $_REQUEST['post_id'] ); + $post_id = (int) $_REQUEST['post_id']; if ( $post_id ) { - $attachments = intval( $wpdb->get_var( $wpdb->prepare( "SELECT count(*) FROM $wpdb->posts WHERE post_type = 'attachment' AND post_status != 'trash' AND post_parent = %d", $post_id ) ) ); + $attachments = (int) $wpdb->get_var( $wpdb->prepare( "SELECT count(*) FROM $wpdb->posts WHERE post_type = 'attachment' AND post_status != 'trash' AND post_parent = %d", $post_id ) ); } if ( empty( $attachments ) ) { @@ -125,8 +125,8 @@ function the_media_upload_tabs() { * @param string $align Image CSS alignment property. * @param string $url Optional. Image src URL. Default empty. * @param bool|string $rel Optional. Value for rel attribute or whether to add a default value. Default false. - * @param string|array $size Optional. Image size. Accepts any valid image size, or an array of width - * and height values in pixels (in that order). Default 'medium'. + * @param string|int[] $size Optional. Image size. Accepts any registered image size name, or an array of + * width and height values in pixels (in that order). Default 'medium'. * @param string $alt Optional. Image alt attribute. Default empty. * @return string The HTML output to insert into the editor. */ @@ -138,7 +138,7 @@ function get_image_send_to_editor( $id, $caption, $title, $align, $url = '', $re if ( is_string( $rel ) ) { $rel = ' rel="' . esc_attr( $rel ) . '"'; } else { - $rel = ' rel="attachment wp-att-' . intval( $id ) . '"'; + $rel = ' rel="attachment wp-att-' . (int) $id . '"'; } } else { $rel = ''; @@ -152,6 +152,7 @@ function get_image_send_to_editor( $id, $caption, $title, $align, $url = '', $re * Filters the image HTML markup to send to the editor when inserting an image. * * @since 2.5.0 + * @since 5.6.0 The `$rel` parameter was added. * * @param string $html The image HTML markup to send. * @param int $id The attachment ID. @@ -159,11 +160,12 @@ function get_image_send_to_editor( $id, $caption, $title, $align, $url = '', $re * @param string $title The image title. * @param string $align The image alignment. * @param string $url The image source URL. - * @param string|array $size Size of image. Image size or array of width and height values - * (in that order). Default 'medium'. + * @param string|int[] $size Requested image size. Can be any registered image size name, or + * an array of width and height values in pixels (in that order). * @param string $alt The image alternative, or alt, text. + * @param string $rel The image rel attribute. */ - $html = apply_filters( 'image_send_to_editor', $html, $id, $caption, $title, $align, $url, $size, $alt ); + $html = apply_filters( 'image_send_to_editor', $html, $id, $caption, $title, $align, $url, $size, $alt, $rel ); return $html; } @@ -174,12 +176,12 @@ function get_image_send_to_editor( $id, $caption, $title, $align, $url = '', $re * @since 2.6.0 * * @param string $html The image HTML markup to send. - * @param integer $id Image attachment ID. + * @param int $id Image attachment ID. * @param string $caption Image caption. * @param string $title Image title attribute (not used). * @param string $align Image CSS alignment property. * @param string $url Image source URL (not used). - * @param string $size Image size (`thumbnail`, `medium`, `large`, `full`, or added with `add_image_size()`) (not used). + * @param string $size Image size (not used). * @param string $alt Image `alt` attribute (not used). * @return string The image HTML markup with caption shortcode. */ @@ -958,11 +960,11 @@ function wp_media_upload_handler() { } /** - * Downloads an image from the specified URL and attaches it to a post. + * Downloads an image from the specified URL, saves it as an attachment, and optionally attaches it to a post. * * @since 2.6.0 * @since 4.2.0 Introduced the `$return` parameter. - * @since 4.8.0 Introduced the 'id' option within the `$return` parameter. + * @since 4.8.0 Introduced the 'id' option for the `$return` parameter. * @since 5.3.0 The `$post_id` parameter was made optional. * @since 5.4.0 The original URL of the attachment is stored in the `_source_url` * post meta value. @@ -972,13 +974,35 @@ function wp_media_upload_handler() { * @param string $desc Optional. Description of the image. * @param string $return Optional. Accepts 'html' (image tag html) or 'src' (URL), * or 'id' (attachment ID). Default 'html'. - * @return string|WP_Error Populated HTML img tag on success, WP_Error object otherwise. + * @return string|int|WP_Error Populated HTML img tag, attachment ID, or attachment source + * on success, WP_Error object otherwise. */ function media_sideload_image( $file, $post_id = 0, $desc = null, $return = 'html' ) { if ( ! empty( $file ) ) { + $allowed_extensions = array( 'jpg', 'jpeg', 'jpe', 'png', 'gif' ); + + /** + * Filters the list of allowed file extensions when sideloading an image from a URL. + * + * The default allowed extensions are: + * + * - `jpg` + * - `jpeg` + * - `jpe` + * - `png` + * - `gif` + * + * @since 5.6.0 + * + * @param string[] $allowed_extensions Array of allowed file extensions. + * @param string $file The URL of the image to download. + */ + $allowed_extensions = apply_filters( 'image_sideload_extensions', $allowed_extensions, $file ); + $allowed_extensions = array_map( 'preg_quote', $allowed_extensions ); + // Set variables for storage, fix file filename for query strings. - preg_match( '/[^\?]+\.(jpe?g|jpe|gif|png)\b/i', $file, $matches ); + preg_match( '/[^\?]+\.(' . implode( '|', $allowed_extensions ) . ')\b/i', $file, $matches ); if ( ! $matches ) { return new WP_Error( 'image_sideload_failed', __( 'Invalid image URL.' ) ); @@ -1115,7 +1139,7 @@ function image_align_input_fields( $post, $checked = '' ) { " />"; } - return join( "\n", $out ); + return implode( "\n", $out ); } /** @@ -1192,7 +1216,7 @@ function image_size_input_fields( $post, $check = '' ) { return array( 'label' => __( 'Size' ), 'input' => 'html', - 'html' => join( "\n", $out ), + 'html' => implode( "\n", $out ), ); } @@ -1317,7 +1341,7 @@ function image_attachment_fields_to_save( $post, $attachment ) { * @since 2.5.0 * * @param string $html - * @param integer $attachment_id + * @param int $attachment_id * @param array $attachment * @return string */ @@ -1421,7 +1445,7 @@ function get_attachment_fields_to_edit( $post, $errors = null ) { $values[] = $term->slug; } - $t['value'] = join( ', ', $values ); + $t['value'] = implode( ', ', $values ); $form_fields[ $taxonomy ] = $t; } @@ -1547,7 +1571,7 @@ function get_media_item( $attachment_id, $args = null ) { global $redir_tab; $thumb_url = false; - $attachment_id = intval( $attachment_id ); + $attachment_id = (int) $attachment_id; if ( $attachment_id ) { $thumb_url = wp_get_attachment_image_src( $attachment_id, 'thumbnail', true ); @@ -1781,7 +1805,7 @@ function get_media_item( $attachment_id, $args = null ) { } if ( ! empty( $field['helps'] ) ) { - $item .= "

      " . join( "

      \n

      ", array_unique( (array) $field['helps'] ) ) . '

      '; + $item .= "

      " . implode( "

      \n

      ", array_unique( (array) $field['helps'] ) ) . '

      '; } $item .= "\n\t\t\n"; @@ -1880,7 +1904,7 @@ function get_compat_media_markup( $attachment_id, $args = null ) { $values[] = $term->slug; } - $t['value'] = join( ', ', $values ); + $t['value'] = implode( ', ', $values ); $t['taxonomy'] = true; $form_fields[ $taxonomy ] = $t; @@ -1973,7 +1997,7 @@ function get_compat_media_markup( $attachment_id, $args = null ) { } if ( ! empty( $field['helps'] ) ) { - $item .= "

      " . join( "

      \n

      ", array_unique( (array) $field['helps'] ) ) . '

      '; + $item .= "

      " . implode( "

      \n

      ", array_unique( (array) $field['helps'] ) ) . '

      '; } $item .= "\n\t\t\n"; @@ -2033,7 +2057,7 @@ function get_compat_media_markup( $attachment_id, $args = null ) { * @since 2.5.0 */ function media_upload_header() { - $post_id = isset( $_REQUEST['post_id'] ) ? intval( $_REQUEST['post_id'] ) : 0; + $post_id = isset( $_REQUEST['post_id'] ) ? (int) $_REQUEST['post_id'] : 0; echo ''; @@ -2069,7 +2093,7 @@ function media_upload_form( $errors = null ) { } $upload_action_url = admin_url( 'async-upload.php' ); - $post_id = isset( $_REQUEST['post_id'] ) ? intval( $_REQUEST['post_id'] ) : 0; + $post_id = isset( $_REQUEST['post_id'] ) ? (int) $_REQUEST['post_id'] : 0; $_type = isset( $type ) ? $type : ''; $_tab = isset( $tab ) ? $tab : ''; @@ -2271,15 +2295,15 @@ function media_upload_form( $errors = null ) { * * @since 2.5.0 * - * @param string $type - * @param object $errors - * @param integer $id + * @param string $type + * @param array $errors + * @param int|WP_Error $id */ function media_upload_type_form( $type = 'file', $errors = null, $id = null ) { media_upload_header(); - $post_id = isset( $_REQUEST['post_id'] ) ? intval( $_REQUEST['post_id'] ) : 0; + $post_id = isset( $_REQUEST['post_id'] ) ? (int) $_REQUEST['post_id'] : 0; $form_action_url = admin_url( "media-upload.php?type=$type&tab=type&post_id=$post_id" ); @@ -2347,7 +2371,7 @@ function media_upload_type_form( $type = 'file', $errors = null, $id = null ) { * * @param string $type * @param object $errors - * @param integer $id + * @param int $id */ function media_upload_type_url_form( $type = null, $errors = null, $id = null ) { if ( null === $type ) { @@ -2356,7 +2380,7 @@ function media_upload_type_url_form( $type = null, $errors = null, $id = null ) media_upload_header(); - $post_id = isset( $_REQUEST['post_id'] ) ? intval( $_REQUEST['post_id'] ) : 0; + $post_id = isset( $_REQUEST['post_id'] ) ? (int) $_REQUEST['post_id'] : 0; $form_action_url = admin_url( "media-upload.php?type=$type&tab=type&post_id=$post_id" ); /** This filter is documented in wp-admin/includes/media.php */ @@ -2504,7 +2528,7 @@ function media_upload_gallery_form( $errors ) { $redir_tab = 'gallery'; media_upload_header(); - $post_id = intval( $_REQUEST['post_id'] ); + $post_id = (int) $_REQUEST['post_id']; $form_action_url = admin_url( "media-upload.php?type=$type&tab=gallery&post_id=$post_id" ); /** This filter is documented in wp-admin/includes/media.php */ $form_action_url = apply_filters( 'media_upload_form_url', $form_action_url, $type ); @@ -2667,7 +2691,7 @@ function media_upload_library_form( $errors ) { media_upload_header(); - $post_id = isset( $_REQUEST['post_id'] ) ? intval( $_REQUEST['post_id'] ) : 0; + $post_id = isset( $_REQUEST['post_id'] ) ? (int) $_REQUEST['post_id'] : 0; $form_action_url = admin_url( "media-upload.php?type=$type&tab=library&post_id=$post_id" ); /** This filter is documented in wp-admin/includes/media.php */ @@ -2680,7 +2704,7 @@ function media_upload_library_form( $errors ) { $q = $_GET; $q['posts_per_page'] = 10; - $q['paged'] = isset( $q['paged'] ) ? intval( $q['paged'] ) : 0; + $q['paged'] = isset( $q['paged'] ) ? (int) $q['paged'] : 0; if ( $q['paged'] < 1 ) { $q['paged'] = 1; } @@ -2982,9 +3006,9 @@ function media_upload_flash_bypass() { $post = get_post(); if ( $post ) { - $browser_uploader .= '&post_id=' . intval( $post->ID ); + $browser_uploader .= '&post_id=' . (int) $post->ID; } elseif ( ! empty( $GLOBALS['post_ID'] ) ) { - $browser_uploader .= '&post_id=' . intval( $GLOBALS['post_ID'] ); + $browser_uploader .= '&post_id=' . (int) $GLOBALS['post_ID']; } ?> @@ -3076,7 +3100,7 @@ function edit_form_image_editor( $post ) { } $thumb_url = false; - $attachment_id = intval( $post->ID ); + $attachment_id = (int) $post->ID; if ( $attachment_id ) { $thumb_url = wp_get_attachment_image_src( $attachment_id, array( 900, 450 ), true ); @@ -3192,7 +3216,7 @@ function edit_form_image_editor( $post ) { /* translators: 1: Link to tutorial, 2: Additional link attributes, 3: Accessibility text. */ __( 'Describe the purpose of the image%3$s. Leave empty if the image is purely decorative.' ), esc_url( 'https://www.w3.org/WAI/tutorials/images/decision-tree' ), - 'target="_blank" rel="noopener noreferrer"', + 'target="_blank" rel="noopener"', sprintf( ' %s', /* translators: Accessibility text. */ @@ -3264,12 +3288,47 @@ function attachment_submitbox_metadata() { $att_url = wp_get_attachment_url( $attachment_id ); + $author = get_userdata( $post->post_author ); + + $uploaded_by_name = __( '(no author)' ); + $uploaded_by_link = ''; + if ( $author->exists() ) { + $uploaded_by_name = $author->display_name ? $author->display_name : $author->nickname; + $uploaded_by_link = get_edit_user_link( $author->ID ); + } ?> +
      + + + + + +
      + + post_parent ) { + $post_parent = get_post( $post->post_parent ); + if ( $post_parent ) { + $uploaded_to_title = $post_parent->post_title ? $post_parent->post_title : __( '(no title)' ); + $uploaded_to_link = get_edit_post_link( $post->post_parent, 'raw' ); + ?> +
      + + + + + +
      + +
      - +
      diff --git a/wp-admin/includes/meta-boxes.php b/wp-admin/includes/meta-boxes.php index f1cec18c5e..5d003d3210 100644 --- a/wp-admin/includes/meta-boxes.php +++ b/wp-admin/includes/meta-boxes.php @@ -212,11 +212,11 @@ function post_submit_meta_box( $post, $args = array() ) {
    @@ -404,11 +404,11 @@ function attachment_submit_meta_box( $post ) { post_date ) ), - /* translators: Publish box time format, see https://www.php.net/date */ + /* translators: Publish box time format, see https://www.php.net/manual/datetime.format.php */ date_i18n( _x( 'H:i', 'publish box time format' ), strtotime( $post->post_date ) ) ); /* translators: Attachment information. %s: Date the attachment was uploaded. */ @@ -695,7 +695,7 @@ function post_categories_meta_box( $post, $box ) { * * @since 2.6.0 * - * @param object $post + * @param WP_Post $post */ function post_excerpt_meta_box( $post ) { ?> @@ -717,7 +717,7 @@ function post_excerpt_meta_box( $post ) { * * @since 2.6.0 * - * @param object $post + * @param WP_Post $post */ function post_trackback_meta_box( $post ) { $form_trackback = ' '; - echo '' . __( 'Return to Dashboard' ) . ''; + echo '' . __( 'Go to Dashboard' ) . ''; echo '
    '; require_once ABSPATH . 'wp-admin/admin-footer.php'; die(); @@ -640,6 +640,7 @@ function network_step2( $errors = false ) { $htaccess_file = <<delete( $this_plugin_dir, true ); } else { $deleted = $wp_filesystem->delete( $plugins_dir . $plugin_file ); @@ -1150,8 +1152,8 @@ function validate_plugin_requirements( $plugin ) { $compatible_wp = is_wp_version_compatible( $requirements['requires'] ); $compatible_php = is_php_version_compatible( $requirements['requires_php'] ); - /* translators: %s: URL to Update PHP page. */ $php_update_message = '

    ' . sprintf( + /* translators: %s: URL to Update PHP page. */ __( 'Learn more about updating PHP.' ), esc_url( wp_get_update_php_url() ) ); @@ -1414,9 +1416,9 @@ function add_submenu_page( $parent_slug, $page_title, $menu_title, $capability, * parent file someone is trying to link back to the parent manually. In * this case, don't automatically add a link back to avoid duplication. */ - if ( ! isset( $submenu[ $parent_slug ] ) && $menu_slug != $parent_slug ) { + if ( ! isset( $submenu[ $parent_slug ] ) && $menu_slug !== $parent_slug ) { foreach ( (array) $menu as $parent_menu ) { - if ( $parent_menu[2] == $parent_slug && current_user_can( $parent_menu[1] ) ) { + if ( $parent_menu[2] === $parent_slug && current_user_can( $parent_menu[1] ) ) { $submenu[ $parent_slug ][] = array_slice( $parent_menu, 0, 4 ); } } @@ -1767,7 +1769,7 @@ function remove_menu_page( $menu_slug ) { global $menu; foreach ( $menu as $i => $item ) { - if ( $menu_slug == $item[2] ) { + if ( $menu_slug === $item[2] ) { unset( $menu[ $i ] ); return $item; } @@ -1795,7 +1797,7 @@ function remove_submenu_page( $menu_slug, $submenu_slug ) { } foreach ( $submenu[ $menu_slug ] as $i => $item ) { - if ( $submenu_slug == $item[2] ) { + if ( $submenu_slug === $item[2] ) { unset( $submenu[ $menu_slug ][ $i ] ); return $item; } @@ -1822,6 +1824,7 @@ function menu_page_url( $menu_slug, $echo = true ) { if ( isset( $_parent_pages[ $menu_slug ] ) ) { $parent_slug = $_parent_pages[ $menu_slug ]; + if ( $parent_slug && ! isset( $_parent_pages[ $parent_slug ] ) ) { $url = admin_url( add_query_arg( 'page', $menu_slug, $parent_slug ) ); } else { @@ -1870,33 +1873,40 @@ function get_admin_page_parent( $parent = '' ) { if ( isset( $_wp_real_parent_file[ $parent ] ) ) { $parent = $_wp_real_parent_file[ $parent ]; } + return $parent; } if ( 'admin.php' === $pagenow && isset( $plugin_page ) ) { foreach ( (array) $menu as $parent_menu ) { - if ( $parent_menu[2] == $plugin_page ) { + if ( $parent_menu[2] === $plugin_page ) { $parent_file = $plugin_page; + if ( isset( $_wp_real_parent_file[ $parent_file ] ) ) { $parent_file = $_wp_real_parent_file[ $parent_file ]; } + return $parent_file; } } if ( isset( $_wp_menu_nopriv[ $plugin_page ] ) ) { $parent_file = $plugin_page; + if ( isset( $_wp_real_parent_file[ $parent_file ] ) ) { $parent_file = $_wp_real_parent_file[ $parent_file ]; } + return $parent_file; } } if ( isset( $plugin_page ) && isset( $_wp_submenu_nopriv[ $pagenow ][ $plugin_page ] ) ) { $parent_file = $pagenow; + if ( isset( $_wp_real_parent_file[ $parent_file ] ) ) { $parent_file = $_wp_real_parent_file[ $parent_file ]; } + return $parent_file; } @@ -1905,13 +1915,16 @@ function get_admin_page_parent( $parent = '' ) { if ( isset( $_wp_real_parent_file[ $parent ] ) ) { $parent = $_wp_real_parent_file[ $parent ]; } - if ( ! empty( $typenow ) && ( "$pagenow?post_type=$typenow" === $submenu_array[2] ) ) { + + if ( ! empty( $typenow ) && "$pagenow?post_type=$typenow" === $submenu_array[2] ) { $parent_file = $parent; return $parent; - } elseif ( $submenu_array[2] == $pagenow && empty( $typenow ) && ( empty( $parent_file ) || false === strpos( $parent_file, '?' ) ) ) { + } elseif ( empty( $typenow ) && $pagenow === $submenu_array[2] + && ( empty( $parent_file ) || false === strpos( $parent_file, '?' ) ) + ) { $parent_file = $parent; return $parent; - } elseif ( isset( $plugin_page ) && ( $plugin_page == $submenu_array[2] ) ) { + } elseif ( isset( $plugin_page ) && $plugin_page === $submenu_array[2] ) { $parent_file = $parent; return $parent; } @@ -1953,10 +1966,10 @@ function get_admin_page_title() { if ( empty( $parent ) ) { foreach ( (array) $menu as $menu_array ) { if ( isset( $menu_array[3] ) ) { - if ( $menu_array[2] == $pagenow ) { + if ( $menu_array[2] === $pagenow ) { $title = $menu_array[3]; return $menu_array[3]; - } elseif ( isset( $plugin_page ) && ( $plugin_page == $menu_array[2] ) && ( $hook == $menu_array[5] ) ) { + } elseif ( isset( $plugin_page ) && $plugin_page === $menu_array[2] && $hook === $menu_array[5] ) { $title = $menu_array[3]; return $menu_array[3]; } @@ -1968,21 +1981,19 @@ function get_admin_page_title() { } else { foreach ( array_keys( $submenu ) as $parent ) { foreach ( $submenu[ $parent ] as $submenu_array ) { - if ( isset( $plugin_page ) && - ( $plugin_page == $submenu_array[2] ) && - ( - ( $parent == $pagenow ) || - ( $parent == $plugin_page ) || - ( $plugin_page == $hook ) || - ( 'admin.php' === $pagenow && $parent1 != $submenu_array[2] ) || - ( ! empty( $typenow ) && $parent == $pagenow . '?post_type=' . $typenow ) - ) + if ( isset( $plugin_page ) + && $plugin_page === $submenu_array[2] + && ( $pagenow === $parent + || $plugin_page === $parent + || $plugin_page === $hook + || 'admin.php' === $pagenow && $parent1 !== $submenu_array[2] + || ! empty( $typenow ) && "$pagenow?post_type=$typenow" === $parent ) ) { $title = $submenu_array[3]; return $submenu_array[3]; } - if ( $submenu_array[2] != $pagenow || isset( $_GET['page'] ) ) { // Not the current page. + if ( $submenu_array[2] !== $pagenow || isset( $_GET['page'] ) ) { // Not the current page. continue; } @@ -1997,10 +2008,11 @@ function get_admin_page_title() { } if ( empty( $title ) ) { foreach ( $menu as $menu_array ) { - if ( isset( $plugin_page ) && - ( $plugin_page == $menu_array[2] ) && - ( 'admin.php' === $pagenow ) && - ( $parent1 == $menu_array[2] ) ) { + if ( isset( $plugin_page ) + && $plugin_page === $menu_array[2] + && 'admin.php' === $pagenow + && $parent1 === $menu_array[2] + ) { $title = $menu_array[3]; return $menu_array[3]; } @@ -2113,6 +2125,7 @@ function user_can_access_admin_page() { if ( isset( $plugin_page ) && isset( $_wp_menu_nopriv[ $plugin_page ] ) ) { return false; } + foreach ( array_keys( $_wp_submenu_nopriv ) as $key ) { if ( isset( $_wp_submenu_nopriv[ $key ][ $pagenow ] ) ) { return false; @@ -2121,38 +2134,27 @@ function user_can_access_admin_page() { return false; } } + return true; } - if ( isset( $plugin_page ) && ( $plugin_page == $parent ) && isset( $_wp_menu_nopriv[ $plugin_page ] ) ) { + if ( isset( $plugin_page ) && $plugin_page === $parent && isset( $_wp_menu_nopriv[ $plugin_page ] ) ) { return false; } if ( isset( $submenu[ $parent ] ) ) { foreach ( $submenu[ $parent ] as $submenu_array ) { - if ( isset( $plugin_page ) && ( $submenu_array[2] == $plugin_page ) ) { - if ( current_user_can( $submenu_array[1] ) ) { - return true; - } else { - return false; - } - } elseif ( $submenu_array[2] == $pagenow ) { - if ( current_user_can( $submenu_array[1] ) ) { - return true; - } else { - return false; - } + if ( isset( $plugin_page ) && $submenu_array[2] === $plugin_page ) { + return current_user_can( $submenu_array[1] ); + } elseif ( $submenu_array[2] === $pagenow ) { + return current_user_can( $submenu_array[1] ); } } } foreach ( $menu as $menu_array ) { - if ( $menu_array[2] == $parent ) { - if ( current_user_can( $menu_array[1] ) ) { - return true; - } else { - return false; - } + if ( $menu_array[2] === $parent ) { + return current_user_can( $menu_array[1] ); } } @@ -2188,7 +2190,7 @@ function option_update_filter( $options ) { /** * Adds an array of options to the list of allowed options. * - * @since 2.7.0 + * @since 5.5.0 * * @global array $allowed_options * diff --git a/wp-admin/includes/post.php b/wp-admin/includes/post.php index 486f6dc1db..fbf11b3ded 100644 --- a/wp-admin/includes/post.php +++ b/wp-admin/includes/post.php @@ -685,12 +685,15 @@ function get_default_post_to_edit( $post_type = 'post', $create_in_db = false ) 'post_title' => __( 'Auto Draft' ), 'post_type' => $post_type, 'post_status' => 'auto-draft', - ) + ), + false, + false ); $post = get_post( $post_id ); if ( current_theme_supports( 'post-formats' ) && post_type_supports( $post->post_type, 'post-formats' ) && get_option( 'default_post_format' ) ) { set_post_format( $post, get_option( 'default_post_format' ) ); } + wp_after_insert_post( $post, false, null ); // Schedule auto-draft cleanup. if ( ! wp_next_scheduled( 'wp_scheduled_auto_draft_delete' ) ) { @@ -1332,9 +1335,9 @@ function postbox_classes( $box_id, $screen_id ) { * * @since 2.5.0 * - * @param int $id Post ID or post object. - * @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. + * @param int|WP_Post $id Post ID or post object. + * @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. * @@ -1536,15 +1539,12 @@ function _wp_post_thumbnail_html( $thumbnail_id = null, $post = null ) { * * Note: When a theme adds 'post-thumbnail' support, a special 'post-thumbnail' * image size is registered, which differs from the 'thumbnail' image size - * managed via the Settings > Media screen. See the `$size` parameter description - * for more information on default values. + * managed via the Settings > Media screen. * * @since 4.4.0 * - * @param string|array $size Post thumbnail image size to display in the meta box. Accepts any valid - * image size, or an array of width and height values in pixels (in that order). - * If the 'post-thumbnail' size is set, default is 'post-thumbnail'. Otherwise, - * default is an array with 266 as both the height and width values. + * @param string|int[] $size Requested image size. Can be any registered image size name, or + * an array of width and height values in pixels (in that order). * @param int $thumbnail_id Post thumbnail attachment ID. * @param WP_Post $post The post object associated with the thumbnail. */ @@ -1585,7 +1585,7 @@ function _wp_post_thumbnail_html( $thumbnail_id = null, $post = null ) { * * @since 2.5.0 * - * @param int $post_id ID of the post to check for editing. + * @param int|WP_Post $post_id ID or object of the post to check for editing. * @return int|false ID of the user with lock. False if the post does not exist, post is not locked, * the user with lock does not exist, or the post is locked by current user. */ @@ -1623,7 +1623,7 @@ function wp_check_post_lock( $post_id ) { * * @since 2.5.0 * - * @param int $post_id ID of the post being edited. + * @param int|WP_Post $post_id ID or object of the post being edited. * @return array|false Array of the lock time and user ID. False if the post does not exist, or * there is no current user. */ @@ -1741,10 +1741,10 @@ function _admin_notice_post_locked() { display_name ) ); + printf( __( '%s is currently editing this post. Do you want to take over?' ), esc_html( $user->display_name ) ); } else { /* translators: %s: User's display name. */ - printf( __( '%s is already editing this post.' ), esc_html( $user->display_name ) ); + printf( __( '%s is currently editing this post.' ), esc_html( $user->display_name ) ); } ?>

    @@ -1926,7 +1926,7 @@ function post_preview() { } if ( isset( $_POST['_thumbnail_id'] ) ) { - $query_args['_thumbnail_id'] = ( intval( $_POST['_thumbnail_id'] ) <= 0 ) ? '-1' : intval( $_POST['_thumbnail_id'] ); + $query_args['_thumbnail_id'] = ( (int) $_POST['_thumbnail_id'] <= 0 ) ? '-1' : (int) $_POST['_thumbnail_id']; } } @@ -2088,7 +2088,7 @@ function taxonomy_meta_box_sanitize_cb_input( $taxonomy, $terms ) { ); if ( ! empty( $_term ) ) { - $clean_terms[] = intval( $_term[0] ); + $clean_terms[] = (int) $_term[0]; } else { // No existing term was found, so pass the string. A new term will be created. $clean_terms[] = $term; @@ -2127,7 +2127,7 @@ function use_block_editor_for_post( $post ) { $use_block_editor = use_block_editor_for_post_type( $post->post_type ); /** - * Filter whether a post is able to be edited in the block editor. + * Filters whether a post is able to be edited in the block editor. * * @since 5.0.0 * @@ -2163,7 +2163,7 @@ function use_block_editor_for_post_type( $post_type ) { } /** - * Filter whether a post is able to be edited in the block editor. + * Filters whether a post is able to be edited in the block editor. * * @since 5.0.0 * @@ -2216,7 +2216,7 @@ function get_block_categories( $post ) { ); /** - * Filter the default array of block categories. + * Filters the default array of block categories. * * @since 5.0.0 * diff --git a/wp-admin/includes/privacy-tools.php b/wp-admin/includes/privacy-tools.php index ada0f11410..14914dcb9c 100644 --- a/wp-admin/includes/privacy-tools.php +++ b/wp-admin/includes/privacy-tools.php @@ -13,14 +13,14 @@ * @access private * * @param int $request_id Request ID. - * @return bool|WP_Error Returns true/false based on the success of sending the email, or a WP_Error object. + * @return bool|WP_Error Returns true if sending the email was successful, or a WP_Error object. */ function _wp_privacy_resend_request( $request_id ) { $request_id = absint( $request_id ); $request = get_post( $request_id ); if ( ! $request || 'user_request' !== $request->post_type ) { - return new WP_Error( 'privacy_request_error', __( 'Invalid request.' ) ); + return new WP_Error( 'privacy_request_error', __( 'Invalid user privacy request.' ) ); } $result = wp_send_user_request( $request_id ); @@ -28,7 +28,7 @@ function _wp_privacy_resend_request( $request_id ) { if ( is_wp_error( $result ) ) { return $result; } elseif ( ! $result ) { - return new WP_Error( 'privacy_request_error', __( 'Unable to initiate confirmation request.' ) ); + return new WP_Error( 'privacy_request_error', __( 'Unable to initiate user privacy confirmation request.' ) ); } return true; @@ -49,7 +49,7 @@ function _wp_privacy_completed_request( $request_id ) { $request = wp_get_user_request( $request_id ); if ( ! $request ) { - return new WP_Error( 'privacy_request_error', __( 'Invalid request.' ) ); + return new WP_Error( 'privacy_request_error', __( 'Invalid user privacy request.' ) ); } update_post_meta( $request_id, '_wp_user_request_completed_timestamp', time() ); @@ -104,7 +104,7 @@ function _wp_personal_data_handle_actions() { add_settings_error( 'action_type', 'action_type', - __( 'Invalid action.' ), + __( 'Invalid user privacy action.' ), 'error' ); } @@ -116,7 +116,7 @@ function _wp_personal_data_handle_actions() { add_settings_error( 'action_type', 'action_type', - __( 'Invalid action.' ), + __( 'Invalid user privacy action.' ), 'error' ); } @@ -279,7 +279,7 @@ function wp_privacy_generate_personal_data_export_group_html( $group_data, $grou if ( $groups_count > 1 ) { $group_html .= '
    '; - $group_html .= ' ' . esc_html__( 'Return to top' ) . ''; + $group_html .= ' ' . esc_html__( 'Go to top' ) . ''; $group_html .= '
    '; } @@ -297,20 +297,20 @@ function wp_privacy_generate_personal_data_export_group_html( $group_data, $grou */ function wp_privacy_generate_personal_data_export_file( $request_id ) { if ( ! class_exists( 'ZipArchive' ) ) { - wp_send_json_error( __( 'Unable to generate export file. ZipArchive not available.' ) ); + wp_send_json_error( __( 'Unable to generate user privacy export file. ZipArchive not available.' ) ); } // Get the request. $request = wp_get_user_request( $request_id ); if ( ! $request || 'export_personal_data' !== $request->action_name ) { - wp_send_json_error( __( 'Invalid request ID when generating export file.' ) ); + wp_send_json_error( __( 'Invalid request ID when generating user privacy export file.' ) ); } $email_address = $request->email; if ( ! is_email( $email_address ) ) { - wp_send_json_error( __( 'Invalid email address when generating export file.' ) ); + wp_send_json_error( __( 'Invalid email address when generating user privacy export file.' ) ); } // Create the exports folder if needed. @@ -318,7 +318,7 @@ function wp_privacy_generate_personal_data_export_file( $request_id ) { $exports_url = wp_privacy_exports_url(); if ( ! wp_mkdir_p( $exports_dir ) ) { - wp_send_json_error( __( 'Unable to create export folder.' ) ); + wp_send_json_error( __( 'Unable to create user privacy export folder.' ) ); } // Protect export folder from browsing. @@ -326,7 +326,7 @@ function wp_privacy_generate_personal_data_export_file( $request_id ) { if ( ! file_exists( $index_pathname ) ) { $file = fopen( $index_pathname, 'w' ); if ( false === $file ) { - wp_send_json_error( __( 'Unable to protect export folder from browsing.' ) ); + wp_send_json_error( __( 'Unable to protect user privacy export folder from browsing.' ) ); } fwrite( $file, '' ); fclose( $file ); @@ -395,7 +395,7 @@ function wp_privacy_generate_personal_data_export_file( $request_id ) { $file = fopen( $json_report_pathname, 'w' ); if ( false === $file ) { - wp_send_json_error( __( 'Unable to open export file (JSON report) for writing.' ) ); + wp_send_json_error( __( 'Unable to open user privacy export file (JSON report) for writing.' ) ); } fwrite( $file, '{' ); @@ -410,7 +410,7 @@ function wp_privacy_generate_personal_data_export_file( $request_id ) { $file = fopen( $html_report_pathname, 'w' ); if ( false === $file ) { - wp_send_json_error( __( 'Unable to open export file (HTML report) for writing.' ) ); + wp_send_json_error( __( 'Unable to open user privacy export file (HTML report) for writing.' ) ); } fwrite( $file, "\n" ); @@ -504,11 +504,11 @@ function wp_privacy_generate_personal_data_export_file( $request_id ) { $zip = new ZipArchive; if ( true === $zip->open( $archive_pathname, ZipArchive::CREATE ) ) { if ( ! $zip->addFile( $json_report_pathname, 'export.json' ) ) { - $error = __( 'Unable to add data to JSON file.' ); + $error = __( 'Unable to add data to user privacy export file (JSON format).' ); } if ( ! $zip->addFile( $html_report_pathname, 'index.html' ) ) { - $error = __( 'Unable to add data to HTML file.' ); + $error = __( 'Unable to add data to user privacy export file (HTML format).' ); } $zip->close(); @@ -529,7 +529,7 @@ function wp_privacy_generate_personal_data_export_file( $request_id ) { do_action( 'wp_privacy_personal_data_export_file_created', $archive_pathname, $archive_url, $html_report_pathname, $request_id, $json_report_pathname ); } } else { - $error = __( 'Unable to open export file (archive) for writing.' ); + $error = __( 'Unable to open user privacy export file (archive) for writing.' ); } // Remove the JSON file. @@ -758,7 +758,7 @@ function wp_privacy_process_personal_data_export_page( $response, $exporter_inde $request = wp_get_user_request( $request_id ); if ( ! $request || 'export_personal_data' !== $request->action_name ) { - wp_send_json_error( __( 'Invalid request ID when merging exporter data.' ) ); + wp_send_json_error( __( 'Invalid request ID when merging user privacy exporter data.' ) ); } $export_data = array(); @@ -767,7 +767,11 @@ function wp_privacy_process_personal_data_export_page( $response, $exporter_inde if ( 1 === $exporter_index && 1 === $page ) { update_post_meta( $request_id, '_export_data_raw', $export_data ); } else { - $export_data = get_post_meta( $request_id, '_export_data_raw', true ); + $accumulated_data = get_post_meta( $request_id, '_export_data_raw', true ); + + if ( $accumulated_data ) { + $export_data = $accumulated_data; + } } // Now, merge the data from the exporter response into the data we have accumulated already. @@ -905,7 +909,7 @@ function wp_privacy_process_personal_data_erasure_page( $response, $eraser_index $request = wp_get_user_request( $request_id ); if ( ! $request || 'remove_personal_data' !== $request->action_name ) { - wp_send_json_error( __( 'Invalid request ID when processing eraser data.' ) ); + wp_send_json_error( __( 'Invalid request ID when processing user privacy eraser data.' ) ); } /** This filter is documented in wp-admin/includes/ajax-actions.php */ diff --git a/wp-admin/includes/revision.php b/wp-admin/includes/revision.php index 52600dce06..7718a831e4 100644 --- a/wp-admin/includes/revision.php +++ b/wp-admin/includes/revision.php @@ -275,7 +275,7 @@ function wp_prepare_revisions_for_js( $post, $selected_revision_id, $from = null * If we only have one revision, the initial revision is missing; This happens * when we have an autsosave and the user has clicked 'View the Autosave' */ - if ( 1 === sizeof( $revisions ) ) { + if ( 1 === count( $revisions ) ) { $revisions[ $post->ID ] = array( 'id' => $post->ID, 'title' => get_the_title( $post->ID ), diff --git a/wp-admin/includes/schema.php b/wp-admin/includes/schema.php index 54e9171f4b..a59c7c36ce 100644 --- a/wp-admin/includes/schema.php +++ b/wp-admin/includes/schema.php @@ -422,11 +422,11 @@ function populate_options( array $options = array() ) { 'default_ping_status' => 'open', 'default_pingback_flag' => 1, 'posts_per_page' => 10, - /* translators: Default date format, see https://www.php.net/date */ + /* translators: Default date format, see https://www.php.net/manual/datetime.format.php */ 'date_format' => __( 'F j, Y' ), - /* translators: Default time format, see https://www.php.net/date */ + /* translators: Default time format, see https://www.php.net/manual/datetime.format.php */ 'time_format' => __( 'g:i a' ), - /* translators: Links last updated date format, see https://www.php.net/date */ + /* translators: Links last updated date format, see https://www.php.net/manual/datetime.format.php */ 'links_updated_date_format' => __( 'F j, Y g:i a' ), 'comment_moderation' => 0, 'moderation_notify' => 1, @@ -535,6 +535,13 @@ function populate_options( array $options = array() ) { 'disallowed_keys' => '', 'comment_previously_approved' => 1, 'auto_plugin_theme_update_emails' => array(), + + // 5.6.0 + 'auto_update_core_dev' => 'enabled', + 'auto_update_core_minor' => 'enabled', + // Default to enabled for new installs. + // See https://core.trac.wordpress.org/ticket/51742. + 'auto_update_core_major' => 'enabled', ); // 3.3.0 diff --git a/wp-admin/includes/taxonomy.php b/wp-admin/includes/taxonomy.php index 7f7e60952c..de76917cd0 100644 --- a/wp-admin/includes/taxonomy.php +++ b/wp-admin/includes/taxonomy.php @@ -278,7 +278,7 @@ function get_terms_to_edit( $post_id, $taxonomy = 'post_tag' ) { $term_names[] = $term->name; } - $terms_to_edit = esc_attr( join( ',', $term_names ) ); + $terms_to_edit = esc_attr( implode( ',', $term_names ) ); /** * Filters the comma-separated list of terms available to edit. diff --git a/wp-admin/includes/template.php b/wp-admin/includes/template.php index 49725a9ce5..4acbb25afa 100644 --- a/wp-admin/includes/template.php +++ b/wp-admin/includes/template.php @@ -813,7 +813,7 @@ function touch_time( $edit = 1, $for_post = 1, $tab_index = 0, $multi = 0 ) { $cur_hh = current_time( 'H' ); $cur_mn = current_time( 'i' ); - $month = ''; - $day = ''; - $year = ''; - $hour = ''; - $minute = ''; + $day = ''; + $year = ''; + $hour = ''; + $minute = ''; echo '
    '; /* translators: 1: Month, 2: Day, 3: Year, 4: Hour, 5: Minute. */ @@ -1014,14 +1014,14 @@ function wp_import_upload_form( $action ) { * add_submenu_page() to create a new screen (and hence screen_id), * make sure your menu slug conforms to the limits of sanitize_key() * otherwise the 'screen' menu may not correctly render on your page. - * @param string $context Optional. The context within the screen where the boxes + * @param string $context Optional. The context within the screen where the box * should display. Available contexts vary from screen to * screen. Post edit screen contexts include 'normal', 'side', * and 'advanced'. Comments screen contexts include 'normal' * and 'side'. Menus meta boxes (accordion sections) all use * the 'side' context. Global default is 'advanced'. - * @param string $priority Optional. The priority within the context where the boxes - * should show ('high', 'low'). Default 'default'. + * @param string $priority Optional. The priority within the context where the box should show. + * Accepts 'high', 'core', 'default', or 'low'. Default 'default'. * @param array $callback_args Optional. Data that should be set as the $args property * of the box array (which is the second parameter passed * to your callback). Default null. @@ -1321,7 +1321,7 @@ function do_meta_boxes( $screen, $context, $object ) { echo ''; echo '' . __( 'Warning:' ) . ' '; } - echo "{$box['title']}"; + echo $box['title']; echo "

\n"; if ( 'dashboard_browser_nag' !== $box['id'] ) { @@ -1797,7 +1797,16 @@ function add_settings_error( $setting, $code, $message, $type = 'error' ) { * * @param string $setting Optional. Slug title of a specific setting whose errors you want. * @param bool $sanitize Optional. Whether to re-sanitize the setting value before returning errors. - * @return array Array of settings errors. + * @return array { + * Array of settings errors. + * + * @type string $setting Slug title of the setting to which this error applies. + * @type string $code Slug-name to identify the error. Used as part of 'id' attribute in HTML output. + * @type string $message The formatted message text to display to the user (will be shown inside styled + * `
` and `

` tags). + * @type string $type Optional. Message type, controls HTML class. Possible values include 'error', + * 'success', 'warning', 'info'. Default 'error'. + * } */ function get_settings_errors( $setting = '', $sanitize = false ) { global $wp_settings_errors; @@ -2196,16 +2205,16 @@ function get_post_states( $post ) { } if ( 'page' === get_option( 'show_on_front' ) ) { - if ( intval( get_option( 'page_on_front' ) ) === $post->ID ) { + if ( (int) get_option( 'page_on_front' ) === $post->ID ) { $post_states['page_on_front'] = _x( 'Front Page', 'page label' ); } - if ( intval( get_option( 'page_for_posts' ) ) === $post->ID ) { + if ( (int) get_option( 'page_for_posts' ) === $post->ID ) { $post_states['page_for_posts'] = _x( 'Posts Page', 'page label' ); } } - if ( intval( get_option( 'wp_page_for_privacy_policy' ) ) === $post->ID ) { + if ( (int) get_option( 'wp_page_for_privacy_policy' ) === $post->ID ) { $post_states['page_for_privacy_policy'] = _x( 'Privacy Policy Page', 'page label' ); } @@ -2228,10 +2237,45 @@ function get_post_states( $post ) { * Outputs the attachment media states as HTML. * * @since 3.2.0 + * @since 5.6.0 Added the `$echo` parameter and a return value. * * @param WP_Post $post The attachment post to retrieve states for. + * @param bool $echo Optional. Whether to echo the post states as an HTML string. Default true. + * @return string Media states string. */ -function _media_states( $post ) { +function _media_states( $post, $echo = true ) { + $media_states = get_media_states( $post ); + $media_states_string = ''; + + if ( ! empty( $media_states ) ) { + $state_count = count( $media_states ); + $i = 0; + + $media_states_string .= ' — '; + + foreach ( $media_states as $state ) { + $sep = ( ++$i === $state_count ) ? '' : ', '; + + $media_states_string .= "$state$sep"; + } + } + + if ( $echo ) { + echo $media_states_string; + } + + return $media_states_string; +} + +/** + * Retrieves an array of media states from an attachment. + * + * @since 5.6.0 + * + * @param WP_Post $post The attachment to retrieve states for. + * @return string[] Array of media state labels keyed by their state. + */ +function get_media_states( $post ) { static $header_images; $media_states = array(); @@ -2261,6 +2305,13 @@ function _media_states( $post ) { $media_states[] = __( 'Current Header Image' ); } } + + if ( get_theme_support( 'custom-header', 'video' ) && has_header_video() ) { + $mods = get_theme_mods(); + if ( isset( $mods['header_video'] ) && $post->ID === $mods['header_video'] ) { + $media_states[] = __( 'Current Header Video' ); + } + } } if ( current_theme_supports( 'custom-background' ) ) { @@ -2294,20 +2345,7 @@ function _media_states( $post ) { * 'Background Image', 'Site Icon', 'Logo'. * @param WP_Post $post The current attachment object. */ - $media_states = apply_filters( 'display_media_states', $media_states, $post ); - - if ( ! empty( $media_states ) ) { - $state_count = count( $media_states ); - $i = 0; - - echo ' — '; - - foreach ( $media_states as $state ) { - $sep = ( ++$i === $state_count ) ? '' : ', '; - - echo "$state$sep"; - } - } + return apply_filters( 'display_media_states', $media_states, $post ); } /** diff --git a/wp-admin/includes/theme.php b/wp-admin/includes/theme.php index 21730339cd..f11a6fc234 100644 --- a/wp-admin/includes/theme.php +++ b/wp-admin/includes/theme.php @@ -649,7 +649,7 @@ function wp_prepare_themes_for_js( $themes = null ) { $updates = array(); $no_updates = array(); - if ( current_user_can( 'update_themes' ) ) { + if ( ! is_multisite() && current_user_can( 'update_themes' ) ) { $updates_transient = get_site_transient( 'update_themes' ); if ( isset( $updates_transient->response ) ) { $updates = $updates_transient->response; @@ -716,9 +716,7 @@ function wp_prepare_themes_for_js( $themes = null ) { ); } - $type = 'theme'; - /** This filter is documented in wp-admin/includes/class-wp-automatic-updater.php */ - $auto_update_forced = apply_filters( "auto_update_{$type}", null, $auto_update_filter_payload ); + $auto_update_forced = wp_is_auto_update_forced_for_item( 'theme', null, $auto_update_filter_payload ); $prepared_themes[ $slug ] = array( 'id' => $slug, @@ -748,7 +746,7 @@ function wp_prepare_themes_for_js( $themes = null ) { 'actions' => array( 'activate' => current_user_can( 'switch_themes' ) ? wp_nonce_url( admin_url( 'themes.php?action=activate&stylesheet=' . $encoded_slug ), 'switch-theme_' . $slug ) : null, 'customize' => $customize_action, - 'delete' => current_user_can( 'delete_themes' ) ? wp_nonce_url( admin_url( 'themes.php?action=delete&stylesheet=' . $encoded_slug ), 'delete-theme_' . $slug ) : null, + 'delete' => ( ! is_multisite() && current_user_can( 'delete_themes' ) ) ? wp_nonce_url( admin_url( 'themes.php?action=delete&stylesheet=' . $encoded_slug ), 'delete-theme_' . $slug ) : null, 'autoupdate' => wp_is_auto_update_enabled_for_type( 'theme' ) && ! is_multisite() && current_user_can( 'update_themes' ) ? wp_nonce_url( admin_url( 'themes.php?action=' . $auto_update_action . '&stylesheet=' . $encoded_slug ), 'updates' ) : null, diff --git a/wp-admin/includes/update-core.php b/wp-admin/includes/update-core.php index 27599cc192..fea68cbad2 100644 --- a/wp-admin/includes/update-core.php +++ b/wp-admin/includes/update-core.php @@ -798,6 +798,9 @@ 'wp-admin/css/ie.min.css', 'wp-admin/css/ie-rtl.css', 'wp-admin/css/ie-rtl.min.css', + // 5.6 + 'wp-includes/js/jquery/ui/position.min.js', + 'wp-includes/js/jquery/ui/widget.min.js', ); /** @@ -835,6 +838,7 @@ 'themes/twentyseventeen/' => '4.7', 'themes/twentynineteen/' => '5.0', 'themes/twentytwenty/' => '5.3', + 'themes/twentytwentyone/' => '5.6', ); /** diff --git a/wp-admin/includes/update.php b/wp-admin/includes/update.php index e7ebabb8f7..e01fd28eb3 100644 --- a/wp-admin/includes/update.php +++ b/wp-admin/includes/update.php @@ -240,14 +240,19 @@ function core_update_footer( $msg = '' ) { $cur->current = ''; } - if ( ! isset( $cur->url ) ) { - $cur->url = ''; - } - if ( ! isset( $cur->response ) ) { $cur->response = ''; } + // Include an unmodified $wp_version. + require ABSPATH . WPINC . '/version.php'; + + $is_development_version = preg_match( '/alpha|beta|RC/', $wp_version ); + + if ( $is_development_version && 'latest' === $cur->response ) { + $cur->response = 'development'; + } + switch ( $cur->response ) { case 'development': return sprintf( @@ -1045,6 +1050,22 @@ function wp_is_auto_update_enabled_for_type( $type ) { return false; } +/** + * Checks whether auto-updates are forced for an item. + * + * @since 5.6.0 + * + * @param string $type The type of update being checked: 'theme' or 'plugin'. + * @param bool|null $update Whether to update. The value of null is internally used + * to detect whether nothing has hooked into this filter. + * @param object $item The update offer. + * @return bool True if auto-updates are forced for `$item`, false otherwise. + */ +function wp_is_auto_update_forced_for_item( $type, $update, $item ) { + /** This filter is documented in wp-admin/includes/class-wp-automatic-updater.php */ + return apply_filters( "auto_update_{$type}", $update, $item ); +} + /** * Determines the appropriate auto-update message to be displayed. * @@ -1059,7 +1080,7 @@ function wp_get_auto_update_message() { if ( false === $next_update_time ) { $message = __( 'Automatic update not scheduled. There may be a problem with WP-Cron.' ); } else { - $time_to_next_update = human_time_diff( intval( $next_update_time ) ); + $time_to_next_update = human_time_diff( (int) $next_update_time ); // See if cron is overdue. $overdue = ( time() - $next_update_time ) > 0; diff --git a/wp-admin/includes/upgrade.php b/wp-admin/includes/upgrade.php index e0170f2705..5b8822552e 100644 --- a/wp-admin/includes/upgrade.php +++ b/wp-admin/includes/upgrade.php @@ -586,17 +586,18 @@ function wp_install_maybe_enable_pretty_permalinks() { if ( ! function_exists( 'wp_new_blog_notification' ) ) : /** - * Notifies the site admin that the setup is complete. + * Notifies the site admin that the installation of WordPress is complete. * - * Sends an email with wp_mail to the new administrator that the site setup is complete, + * Sends an email to the new administrator that the installation is complete * and provides them with a record of their login credentials. * * @since 2.1.0 * * @param string $blog_title Site title. - * @param string $blog_url Site url. - * @param int $user_id User ID. - * @param string $password User's Password. + * @param string $blog_url Site URL. + * @param int $user_id Administrator's user ID. + * @param string $password Administrator's password. Note that a placeholder message is + * usually passed instead of the actual password. */ function wp_new_blog_notification( $blog_title, $blog_url, $user_id, $password ) { $user = new WP_User( $user_id ); @@ -629,7 +630,40 @@ function wp_new_blog_notification( $blog_title, $blog_url, $user_id, $password ) $login_url ); - wp_mail( $email, __( 'New WordPress Site' ), $message ); + $installed_email = array( + 'to' => $email, + 'subject' => __( 'New WordPress Site' ), + 'message' => $message, + 'headers' => '', + ); + + /** + * Filters the contents of the email sent to the site administrator when WordPress is installed. + * + * @since 5.6.0 + * + * @param array $installed_email { + * Used to build wp_mail(). + * + * @type string $to The email address of the recipient. + * @type string $subject The subject of the email. + * @type string $message The content of the email. + * @type string $headers Headers. + * } + * @param WP_User $user The site administrator user object. + * @param string $blog_title The site title. + * @param string $blog_url The site URL. + * @param string $password The site administrator's password. Note that a placeholder message + * is usually passed instead of the user's actual password. + */ + $installed_email = apply_filters( 'wp_installed_email', $installed_email, $user, $blog_title, $blog_url, $password ); + + wp_mail( + $installed_email['to'], + $installed_email['subject'], + $installed_email['message'], + $installed_email['headers'] + ); } endif; @@ -840,6 +874,10 @@ function upgrade_all() { upgrade_550(); } + if ( $wp_current_db_version < 49752 ) { + upgrade_560(); + } + maybe_disable_link_manager(); maybe_disable_automattic_widgets(); @@ -988,8 +1026,8 @@ function upgrade_110() { if ( ! $got_gmt_fields ) { // Add or subtract time to all dates, to get GMT dates. - $add_hours = intval( $diff_gmt_weblogger ); - $add_minutes = intval( 60 * ( $diff_gmt_weblogger - $add_hours ) ); + $add_hours = (int) $diff_gmt_weblogger; + $add_minutes = (int) ( 60 * ( $diff_gmt_weblogger - $add_hours ) ); $wpdb->query( "UPDATE $wpdb->posts SET post_date_gmt = DATE_ADD(post_date, INTERVAL '$add_hours:$add_minutes' HOUR_MINUTE)" ); $wpdb->query( "UPDATE $wpdb->posts SET post_modified = post_date" ); $wpdb->query( "UPDATE $wpdb->posts SET post_modified_gmt = DATE_ADD(post_modified, INTERVAL '$add_hours:$add_minutes' HOUR_MINUTE) WHERE post_modified != '0000-00-00 00:00:00'" ); @@ -1078,7 +1116,7 @@ function upgrade_130() { $limit = $option->dupes - 1; $dupe_ids = $wpdb->get_col( $wpdb->prepare( "SELECT option_id FROM $wpdb->options WHERE option_name = %s LIMIT %d", $option->option_name, $limit ) ); if ( $dupe_ids ) { - $dupe_ids = join( ',', $dupe_ids ); + $dupe_ids = implode( ',', $dupe_ids ); $wpdb->query( "DELETE FROM $wpdb->options WHERE option_id IN ($dupe_ids)" ); } } @@ -2014,7 +2052,7 @@ function upgrade_430_fix_comments() { return; } - $allowed_length = intval( $content_length['length'] ) - 10; + $allowed_length = (int) $content_length['length'] - 10; $comments = $wpdb->get_results( "SELECT `comment_ID` FROM `{$wpdb->comments}` @@ -2202,6 +2240,60 @@ function upgrade_550() { } } +/** + * Executes changes made in WordPress 5.6.0. + * + * @ignore + * @since 5.6.0 + */ +function upgrade_560() { + global $wp_current_db_version, $wpdb; + + if ( $wp_current_db_version < 49572 ) { + /* + * Clean up the `post_category` column removed from schema in version 2.8.0. + * Its presence may conflict with `WP_Post::__get()`. + */ + $post_category_exists = $wpdb->get_var( "SHOW COLUMNS FROM $wpdb->posts LIKE 'post_category'" ); + if ( ! is_null( $post_category_exists ) ) { + $wpdb->query( "ALTER TABLE $wpdb->posts DROP COLUMN `post_category`" ); + } + + /* + * When upgrading from WP < 5.6.0 set the core major auto-updates option to `unset` by default. + * This overrides the same option from populate_options() that is intended for new installs. + * See https://core.trac.wordpress.org/ticket/51742. + */ + update_option( 'auto_update_core_major', 'unset' ); + } + + if ( $wp_current_db_version < 49632 ) { + /* + * Regenerate the .htaccess file to add the `HTTP_AUTHORIZATION` rewrite rule. + * See https://core.trac.wordpress.org/ticket/51723. + */ + save_mod_rewrite_rules(); + } + + if ( $wp_current_db_version < 49735 ) { + delete_transient( 'dirsize_cache' ); + } + + if ( $wp_current_db_version < 49752 ) { + $results = $wpdb->get_results( + $wpdb->prepare( + "SELECT 1 FROM {$wpdb->usermeta} WHERE meta_key = %s LIMIT 1", + WP_Application_Passwords::USERMETA_KEY_APPLICATION_PASSWORDS + ) + ); + + if ( ! empty( $results ) ) { + $network_id = get_main_network_id(); + update_network_option( $network_id, WP_Application_Passwords::OPTION_KEY_IN_USE, 1 ); + } + } +} + /** * Executes network-level upgrade routines. * diff --git a/wp-admin/includes/user.php b/wp-admin/includes/user.php index 78deb2552e..a08fe3f4b2 100644 --- a/wp-admin/includes/user.php +++ b/wp-admin/includes/user.php @@ -47,10 +47,10 @@ function edit_user( $user_id = 0 ) { $pass1 = ''; $pass2 = ''; if ( isset( $_POST['pass1'] ) ) { - $pass1 = $_POST['pass1']; + $pass1 = trim( $_POST['pass1'] ); } if ( isset( $_POST['pass2'] ) ) { - $pass2 = $_POST['pass2']; + $pass2 = trim( $_POST['pass2'] ); } if ( isset( $_POST['role'] ) && current_user_can( 'promote_users' ) && ( ! $user_id || current_user_can( 'promote_user', $user_id ) ) ) { @@ -489,8 +489,8 @@ function default_password_nag_handler( $errors = false ) { /** * @since 2.8.0 * - * @param int $user_ID - * @param object $old_data + * @param int $user_ID + * @param WP_User $old_data */ function default_password_nag_edit_user( $user_ID, $old_data ) { // Short-circuit it. @@ -594,3 +594,69 @@ function admin_created_user_email( $text ) { wp_specialchars_decode( translate_user_role( $role['name'] ) ) ); } + +/** + * Checks if the Authorize Application Password request is valid. + * + * @since 5.6.0 + * + * @param array $request { + * The array of request data. All arguments are optional and may be empty. + * + * @type string $app_name The suggested name of the application. + * @type string $app_id A uuid provided by the application to uniquely identify it. + * @type string $success_url The url the user will be redirected to after approving the application. + * @type string $reject_url The url the user will be redirected to after rejecting the application. + * } + * @param WP_User $user The user authorizing the application. + * @return true|WP_Error True if the request is valid, a WP_Error object contains errors if not. + */ +function wp_is_authorize_application_password_request_valid( $request, $user ) { + $error = new WP_Error(); + + if ( ! empty( $request['success_url'] ) ) { + $scheme = wp_parse_url( $request['success_url'], PHP_URL_SCHEME ); + + if ( 'http' === $scheme ) { + $error->add( + 'invalid_redirect_scheme', + __( 'The success url must be served over a secure connection.' ) + ); + } + } + + if ( ! empty( $request['reject_url'] ) ) { + $scheme = wp_parse_url( $request['reject_url'], PHP_URL_SCHEME ); + + if ( 'http' === $scheme ) { + $error->add( + 'invalid_redirect_scheme', + __( 'The rejection url must be served over a secure connection.' ) + ); + } + } + + if ( ! empty( $request['app_id'] ) && ! wp_is_uuid( $request['app_id'] ) ) { + $error->add( + 'invalid_app_id', + __( 'The app id must be a uuid.' ) + ); + } + + /** + * Fires before application password errors are returned. + * + * @since 5.6.0 + * + * @param WP_Error $error The error object. + * @param array $request The array of request data. + * @param WP_User $user The user authorizing the application. + */ + do_action( 'wp_authorize_application_password_request_errors', $error, $request, $user ); + + if ( $error->has_errors() ) { + return $error; + } + + return true; +} diff --git a/wp-admin/includes/widgets.php b/wp-admin/includes/widgets.php index a74896cc54..ac98cdb527 100644 --- a/wp-admin/includes/widgets.php +++ b/wp-admin/includes/widgets.php @@ -294,8 +294,7 @@ function wp_widget_control( $sidebar_args ) {

- | - + |
diff --git a/wp-admin/index.php b/wp-admin/index.php index 8cb469f1a2..6c704cc2fe 100644 --- a/wp-admin/index.php +++ b/wp-admin/index.php @@ -72,8 +72,16 @@ $help = '

' . __( 'The boxes on your Dashboard screen are:' ) . '

'; +if ( current_user_can( 'edit_theme_options' ) ) { + $help .= '

' . __( 'Welcome — Shows links for some of the most common tasks when setting up a new site.' ) . '

'; +} + +if ( current_user_can( 'view_site_health_checks' ) ) { + $help .= '

' . __( 'Site Health Status — Informs you of any potential issues that should be addressed to improve the performance or security of your website.' ) . '

'; +} + if ( current_user_can( 'edit_posts' ) ) { - $help .= '

' . __( 'At A Glance — Displays a summary of the content on your site and identifies which theme and version of WordPress you are using.' ) . '

'; + $help .= '

' . __( 'At a Glance — Displays a summary of the content on your site and identifies which theme and version of WordPress you are using.' ) . '

'; } $help .= '

' . __( 'Activity — Shows the upcoming scheduled posts, recently published posts, and the most recent comments on your posts and allows you to moderate them.' ) . '

'; @@ -88,10 +96,6 @@ __( 'https://planet.wordpress.org/' ) ) . '

'; -if ( current_user_can( 'edit_theme_options' ) ) { - $help .= '

' . __( 'Welcome — Shows links for some of the most common tasks when setting up a new site.' ) . '

'; -} - $screen->add_help_tab( array( 'id' => 'help-content', diff --git a/wp-admin/js/application-passwords.js b/wp-admin/js/application-passwords.js new file mode 100644 index 0000000000..b1a20ceb8e --- /dev/null +++ b/wp-admin/js/application-passwords.js @@ -0,0 +1,212 @@ +/** + * @output wp-admin/js/application-passwords.js + */ + +( function( $ ) { + var $appPassSection = $( '#application-passwords-section' ), + $newAppPassForm = $appPassSection.find( '.create-application-password' ), + $newAppPassField = $newAppPassForm.find( '.input' ), + $newAppPassButton = $newAppPassForm.find( '.button' ), + $appPassTwrapper = $appPassSection.find( '.application-passwords-list-table-wrapper' ), + $appPassTbody = $appPassSection.find( 'tbody' ), + $appPassTrNoItems = $appPassTbody.find( '.no-items' ), + $removeAllBtn = $( '#revoke-all-application-passwords' ), + tmplNewAppPass = wp.template( 'new-application-password' ), + tmplAppPassRow = wp.template( 'application-password-row' ), + userId = $( '#user_id' ).val(); + + $newAppPassButton.click( function( e ) { + e.preventDefault(); + + if ( $newAppPassButton.prop( 'aria-disabled' ) ) { + return; + } + + var name = $newAppPassField.val(); + + if ( 0 === name.length ) { + $newAppPassField.focus(); + return; + } + + clearNotices(); + $newAppPassButton.prop( 'aria-disabled', true ).addClass( 'disabled' ); + + var request = { + name: name + }; + + /** + * Filters the request data used to create a new Application Password. + * + * @since 5.6.0 + * + * @param {Object} request The request data. + * @param {number} userId The id of the user the password is added for. + */ + request = wp.hooks.applyFilters( 'wp_application_passwords_new_password_request', request, userId ); + + wp.apiRequest( { + path: '/wp/v2/users/' + userId + '/application-passwords?_locale=user', + method: 'POST', + data: request + } ).always( function() { + $newAppPassButton.removeProp( 'aria-disabled' ).removeClass( 'disabled' ); + } ).done( function( response ) { + $newAppPassField.val( '' ); + $newAppPassButton.prop( 'disabled', false ); + + $newAppPassForm.after( tmplNewAppPass( { + name: name, + password: response.password + } ) ); + $( '.new-application-password-notice' ).focus(); + + $appPassTbody.prepend( tmplAppPassRow( response ) ); + + $appPassTwrapper.show(); + $appPassTrNoItems.remove(); + + /** + * Fires after an application password has been successfully created. + * + * @since 5.6.0 + * + * @param {Object} response The response data from the REST API. + * @param {Object} request The request data used to create the password. + */ + wp.hooks.doAction( 'wp_application_passwords_created_password', response, request ); + } ).fail( handleErrorResponse ); + } ); + + $appPassTbody.on( 'click', '.delete', function( e ) { + e.preventDefault(); + + if ( ! window.confirm( wp.i18n.__( 'Are you sure you want to revoke this password? This action cannot be undone.' ) ) ) { + return; + } + + var $submitButton = $( this ), + $tr = $submitButton.closest( 'tr' ), + uuid = $tr.data( 'uuid' ); + + clearNotices(); + $submitButton.prop( 'disabled', true ); + + wp.apiRequest( { + path: '/wp/v2/users/' + userId + '/application-passwords/' + uuid + '?_locale=user', + method: 'DELETE' + } ).always( function() { + $submitButton.prop( 'disabled', false ); + } ).done( function( response ) { + if ( response.deleted ) { + if ( 0 === $tr.siblings().length ) { + $appPassTwrapper.hide(); + } + $tr.remove(); + + addNotice( wp.i18n.__( 'Application password revoked.' ), 'success' ).focus(); + } + } ).fail( handleErrorResponse ); + } ); + + $removeAllBtn.on( 'click', function( e ) { + e.preventDefault(); + + if ( ! window.confirm( wp.i18n.__( 'Are you sure you want to revoke all passwords? This action cannot be undone.' ) ) ) { + return; + } + + var $submitButton = $( this ); + + clearNotices(); + $submitButton.prop( 'disabled', true ); + + wp.apiRequest( { + path: '/wp/v2/users/' + userId + '/application-passwords?_locale=user', + method: 'DELETE' + } ).always( function() { + $submitButton.prop( 'disabled', false ); + } ).done( function( response ) { + if ( response.deleted ) { + $appPassTbody.children().remove(); + $appPassSection.children( '.new-application-password' ).remove(); + $appPassTwrapper.hide(); + + addNotice( wp.i18n.__( 'All application passwords revoked.' ), 'success' ).focus(); + } + } ).fail( handleErrorResponse ); + } ); + + $appPassSection.on( 'click', '.notice-dismiss', function( e ) { + e.preventDefault(); + var $el = $( this ).parent(); + $el.removeAttr( 'role' ); + $el.fadeTo( 100, 0, function () { + $el.slideUp( 100, function () { + $el.remove(); + $newAppPassField.focus(); + } ); + } ); + } ); + + // If there are no items, don't display the table yet. If there are, show it. + if ( 0 === $appPassTbody.children( 'tr' ).not( $appPassTrNoItems ).length ) { + $appPassTwrapper.hide(); + } + + /** + * Handles an error response from the REST API. + * + * @since 5.6.0 + * + * @param {jqXHR} xhr The XHR object from the ajax call. + * @param {string} textStatus The string categorizing the ajax request's status. + * @param {string} errorThrown The HTTP status error text. + */ + function handleErrorResponse( xhr, textStatus, errorThrown ) { + var errorMessage = errorThrown; + + if ( xhr.responseJSON && xhr.responseJSON.message ) { + errorMessage = xhr.responseJSON.message; + } + + addNotice( errorMessage, 'error' ); + } + + /** + * Displays a message in the Application Passwords section. + * + * @since 5.6.0 + * + * @param {string} message The message to display. + * @param {string} type The notice type. Either 'success' or 'error'. + * @returns {jQuery} The notice element. + */ + function addNotice( message, type ) { + var $notice = $( '
' ) + .attr( 'role', 'alert' ) + .attr( 'tabindex', '-1' ) + .addClass( 'is-dismissible notice notice-' + type ) + .append( $( '

' ).text( message ) ) + .append( + $( '' ) + .attr( 'type', 'button' ) + .addClass( 'notice-dismiss' ) + .append( $( '' ).addClass( 'screen-reader-text' ).text( wp.i18n.__( 'Dismiss this notice.' ) ) ) + ); + + $newAppPassForm.after( $notice ); + + return $notice; + } + + /** + * Clears notice messages from the Application Passwords section. + * + * @since 5.6.0 + */ + function clearNotices() { + $( '.notice', $appPassSection ).remove(); + } +}( jQuery ) ); diff --git a/wp-admin/js/application-passwords.min.js b/wp-admin/js/application-passwords.min.js new file mode 100644 index 0000000000..95389326ae --- /dev/null +++ b/wp-admin/js/application-passwords.min.js @@ -0,0 +1,2 @@ +/*! This file is auto-generated */ +!function(i){var a=i("#application-passwords-section"),o=a.find(".create-application-password"),n=o.find(".input"),t=o.find(".button"),p=a.find(".application-passwords-list-table-wrapper"),r=a.find("tbody"),d=r.find(".no-items"),e=i("#revoke-all-application-passwords"),l=wp.template("new-application-password"),c=wp.template("application-password-row"),u=i("#user_id").val();function w(e,s,a){var o=a;e.responseJSON&&e.responseJSON.message&&(o=e.responseJSON.message),f(o,"error")}function f(e,s){var a=i("
").attr("role","alert").attr("tabindex","-1").addClass("is-dismissible notice notice-"+s).append(i("

").text(e)).append(i("").attr("type","button").addClass("notice-dismiss").append(i("").addClass("screen-reader-text").text(wp.i18n.__("Dismiss this notice."))));return o.after(a),a}function v(){i(".notice",a).remove()}t.click(function(e){if(e.preventDefault(),!t.prop("aria-disabled")){var s=n.val();if(0!==s.length){v(),t.prop("aria-disabled",!0).addClass("disabled");var a={name:s};a=wp.hooks.applyFilters("wp_application_passwords_new_password_request",a,u),wp.apiRequest({path:"/wp/v2/users/"+u+"/application-passwords?_locale=user",method:"POST",data:a}).always(function(){t.removeProp("aria-disabled").removeClass("disabled")}).done(function(e){n.val(""),t.prop("disabled",!1),o.after(l({name:s,password:e.password})),i(".new-application-password-notice").focus(),r.prepend(c(e)),p.show(),d.remove(),wp.hooks.doAction("wp_application_passwords_created_password",e,a)}).fail(w)}else n.focus()}}),r.on("click",".delete",function(e){if(e.preventDefault(),window.confirm(wp.i18n.__("Are you sure you want to revoke this password? This action cannot be undone."))){var s=i(this),a=s.closest("tr"),o=a.data("uuid");v(),s.prop("disabled",!0),wp.apiRequest({path:"/wp/v2/users/"+u+"/application-passwords/"+o+"?_locale=user",method:"DELETE"}).always(function(){s.prop("disabled",!1)}).done(function(e){e.deleted&&(0===a.siblings().length&&p.hide(),a.remove(),f(wp.i18n.__("Application password revoked."),"success").focus())}).fail(w)}}),e.on("click",function(e){if(e.preventDefault(),window.confirm(wp.i18n.__("Are you sure you want to revoke all passwords? This action cannot be undone."))){var s=i(this);v(),s.prop("disabled",!0),wp.apiRequest({path:"/wp/v2/users/"+u+"/application-passwords?_locale=user",method:"DELETE"}).always(function(){s.prop("disabled",!1)}).done(function(e){e.deleted&&(r.children().remove(),a.children(".new-application-password").remove(),p.hide(),f(wp.i18n.__("All application passwords revoked."),"success").focus())}).fail(w)}}),a.on("click",".notice-dismiss",function(e){e.preventDefault();var s=i(this).parent();s.removeAttr("role"),s.fadeTo(100,0,function(){s.slideUp(100,function(){s.remove(),n.focus()})})}),0===r.children("tr").not(d).length&&p.hide()}(jQuery); \ No newline at end of file diff --git a/wp-admin/js/auth-app.js b/wp-admin/js/auth-app.js new file mode 100644 index 0000000000..ad4403032d --- /dev/null +++ b/wp-admin/js/auth-app.js @@ -0,0 +1,161 @@ +/** + * @output wp-admin/js/auth-app.js + */ + +/* global authApp */ + +( function( $, authApp ) { + var $appNameField = $( '#app_name' ), + $approveBtn = $( '#approve' ), + $rejectBtn = $( '#reject' ), + $form = $appNameField.closest( 'form' ), + context = { + userLogin: authApp.user_login, + successUrl: authApp.success, + rejectUrl: authApp.reject + }; + + $approveBtn.click( function( e ) { + var name = $appNameField.val(), + appId = $( 'input[name="app_id"]', $form ).val(); + + e.preventDefault(); + + if ( $approveBtn.prop( 'aria-disabled' ) ) { + return; + } + + if ( 0 === name.length ) { + $appNameField.focus(); + return; + } + + $approveBtn.prop( 'aria-disabled', true ).addClass( 'disabled' ); + + var request = { + name: name + }; + + if ( appId.length > 0 ) { + request.app_id = appId; + } + + /** + * Filters the request data used to Authorize an Application Password request. + * + * @since 5.6.0 + * + * @param {Object} request The request data. + * @param {Object} context Context about the Application Password request. + * @param {string} context.userLogin The user's login username. + * @param {string} context.successUrl The URL the user will be redirected to after approving the request. + * @param {string} context.rejectUrl The URL the user will be redirected to after rejecting the request. + */ + request = wp.hooks.applyFilters( 'wp_application_passwords_approve_app_request', request, context ); + + wp.apiRequest( { + path: '/wp/v2/users/me/application-passwords?_locale=user', + method: 'POST', + data: request + } ).done( function( response, textStatus, jqXHR ) { + + /** + * Fires when an Authorize Application Password request has been successfully approved. + * + * @since 5.6.0 + * + * @param {Object} response The response from the REST API. + * @param {string} response.password The newly created password. + * @param {string} textStatus The status of the request. + * @param {jqXHR} jqXHR The underlying jqXHR object that made the request. + */ + wp.hooks.doAction( 'wp_application_passwords_approve_app_request_success', response, textStatus, jqXHR ); + + var raw = authApp.success, + url, message, $notice; + + if ( raw ) { + url = raw + ( -1 === raw.indexOf( '?' ) ? '?' : '&' ) + + 'site_url=' + encodeURIComponent( authApp.site_url ) + + '&user_login=' + encodeURIComponent( authApp.user_login ) + + '&password=' + encodeURIComponent( response.password ); + + window.location = url; + } else { + message = wp.i18n.sprintf( + /* translators: %s: Application name. */ + '', + '' + ) + ' '; + $notice = $( '
' ) + .attr( 'role', 'alert' ) + .attr( 'tabindex', -1 ) + .addClass( 'notice notice-success notice-alt' ) + .append( $( '

' ).addClass( 'application-password-display' ).html( message ) ) + .append( '

' + wp.i18n.__( 'Be sure to save this in a safe location. You will not be able to retrieve it.' ) + '

' ); + + // We're using .text() to write the variables to avoid any chance of XSS. + $( 'strong', $notice ).text( name ); + $( 'input', $notice ).val( response.password ); + + $form.replaceWith( $notice ); + $notice.focus(); + } + } ).fail( function( jqXHR, textStatus, errorThrown ) { + var errorMessage = errorThrown, + error = null; + + if ( jqXHR.responseJSON ) { + error = jqXHR.responseJSON; + + if ( error.message ) { + errorMessage = error.message; + } + } + + var $notice = $( '
' ) + .attr( 'role', 'alert' ) + .addClass( 'notice notice-error' ) + .append( $( '

' ).text( errorMessage ) ); + + $( 'h1' ).after( $notice ); + + $approveBtn.removeProp( 'aria-disabled', false ).removeClass( 'disabled' ); + + /** + * Fires when an Authorize Application Password request encountered an error when trying to approve the request. + * + * @since 5.6.0 + * + * @param {Object|null} error The error from the REST API. May be null if the server did not send proper JSON. + * @param {string} textStatus The status of the request. + * @param {string} errorThrown The error message associated with the response status code. + * @param {jqXHR} jqXHR The underlying jqXHR object that made the request. + */ + wp.hooks.doAction( 'wp_application_passwords_approve_app_request_success', error, textStatus, jqXHR ); + } ); + } ); + + $rejectBtn.click( function( e ) { + e.preventDefault(); + + /** + * Fires when an Authorize Application Password request has been rejected by the user. + * + * @since 5.6.0 + * + * @param {Object} context Context about the Application Password request. + * @param {string} context.userLogin The user's login username. + * @param {string} context.successUrl The URL the user will be redirected to after approving the request. + * @param {string} context.rejectUrl The URL the user will be redirected to after rejecting the request. + */ + wp.hooks.doAction( 'wp_application_passwords_reject_app', context ); + + // @todo: Make a better way to do this so it feels like less of a semi-open redirect. + window.location = authApp.reject; + } ); + + $form.on( 'submit', function( e ) { + e.preventDefault(); + } ); +}( jQuery, authApp ) ); diff --git a/wp-admin/js/auth-app.min.js b/wp-admin/js/auth-app.min.js new file mode 100644 index 0000000000..6695f4dc1a --- /dev/null +++ b/wp-admin/js/auth-app.min.js @@ -0,0 +1,2 @@ +/*! This file is auto-generated */ +!function(r,l){var o=r("#app_name"),i=r("#approve"),e=r("#reject"),d=o.closest("form"),p={userLogin:l.user_login,successUrl:l.success,rejectUrl:l.reject};i.click(function(e){var n=o.val(),a=r('input[name="app_id"]',d).val();if(e.preventDefault(),!i.prop("aria-disabled"))if(0!==n.length){i.prop("aria-disabled",!0).addClass("disabled");var s={name:n};0'+wp.i18n.__("Your new password for %s is:")+"","")+' ',t=r("
").attr("role","alert").attr("tabindex",-1).addClass("notice notice-success notice-alt").append(r("

").addClass("application-password-display").html(p)).append("

"+wp.i18n.__("Be sure to save this in a safe location. You will not be able to retrieve it.")+"

"),r("strong",t).text(n),r("input",t).val(e.password),d.replaceWith(t),t.focus())}).fail(function(e,a,s){var o=s,p=null;e.responseJSON&&(p=e.responseJSON).message&&(o=p.message);var t=r("
").attr("role","alert").addClass("notice notice-error").append(r("

").text(o));r("h1").after(t),i.removeProp("aria-disabled",!1).removeClass("disabled"),wp.hooks.doAction("wp_application_passwords_approve_app_request_success",p,a,e)})}else o.focus()}),e.click(function(e){e.preventDefault(),wp.hooks.doAction("wp_application_passwords_reject_app",p),window.location=l.reject}),d.on("submit",function(e){e.preventDefault()})}(jQuery,authApp); \ No newline at end of file diff --git a/wp-admin/js/common.js b/wp-admin/js/common.js index 772ec1f1f7..eea96d3778 100644 --- a/wp-admin/js/common.js +++ b/wp-admin/js/common.js @@ -55,13 +55,15 @@ function deprecatedProperty( propName, version, replacement ) { * Deprecate all properties on an object. * * @since 5.5.1 + * @since 5.6.0 Added the `version` parameter. * * @param {string} name The name of the object, i.e. commonL10n. * @param {object} l10nObject The object to deprecate the properties on. + * @param {string} version The version of WordPress that deprecated the property. * * @return {object} The object with all its properties deprecated. */ -function deprecateL10nObject( name, l10nObject ) { +function deprecateL10nObject( name, l10nObject, version ) { var deprecatedObject = {}; Object.keys( l10nObject ).forEach( function( key ) { @@ -70,12 +72,12 @@ function deprecateL10nObject( name, l10nObject ) { if ( 'object' === typeof prop ) { Object.defineProperty( deprecatedObject, key, { get: function() { - deprecatedProperty( propName, '5.5.0', prop.alternative ); + deprecatedProperty( propName, version, prop.alternative ); return prop.func(); } } ); } else { Object.defineProperty( deprecatedObject, key, { get: function() { - deprecatedProperty( propName, '5.5.0', 'wp.i18n' ); + deprecatedProperty( propName, version, 'wp.i18n' ); return prop; } } ); } @@ -99,7 +101,7 @@ window.commonL10n = window.commonL10n || { expandMenu: '' }; -window.commonL10n = deprecateL10nObject( 'commonL10n', window.commonL10n ); +window.commonL10n = deprecateL10nObject( 'commonL10n', window.commonL10n, '5.5.0' ); /** * Removed in 5.5.0, needed for back-compatibility. @@ -111,7 +113,7 @@ window.wpPointerL10n = window.wpPointerL10n || { dismiss: '' }; -window.wpPointerL10n = deprecateL10nObject( 'wpPointerL10n', window.wpPointerL10n ); +window.wpPointerL10n = deprecateL10nObject( 'wpPointerL10n', window.wpPointerL10n, '5.5.0' ); /** * Removed in 5.5.0, needed for back-compatibility. @@ -129,7 +131,7 @@ window.userProfileL10n = window.userProfileL10n || { ariaHide: '' }; -window.userProfileL10n = deprecateL10nObject( 'userProfileL10n', window.userProfileL10n ); +window.userProfileL10n = deprecateL10nObject( 'userProfileL10n', window.userProfileL10n, '5.5.0' ); /** * Removed in 5.5.0, needed for back-compatibility. @@ -148,7 +150,7 @@ window.privacyToolsL10n = window.privacyToolsL10n || { exportError: '' }; -window.privacyToolsL10n = deprecateL10nObject( 'privacyToolsL10n', window.privacyToolsL10n ); +window.privacyToolsL10n = deprecateL10nObject( 'privacyToolsL10n', window.privacyToolsL10n, '5.5.0' ); /** * Removed in 5.5.0, needed for back-compatibility. @@ -160,7 +162,7 @@ window.authcheckL10n = { beforeunload: '' }; -window.authcheckL10n = window.authcheckL10n || deprecateL10nObject( 'authcheckL10n', window.authcheckL10n ); +window.authcheckL10n = window.authcheckL10n || deprecateL10nObject( 'authcheckL10n', window.authcheckL10n, '5.5.0' ); /** * Removed in 5.5.0, needed for back-compatibility. @@ -173,7 +175,7 @@ window.tagsl10n = { broken: '' }; -window.tagsl10n = window.tagsl10n || deprecateL10nObject( 'tagsl10n', window.tagsl10n ); +window.tagsl10n = window.tagsl10n || deprecateL10nObject( 'tagsl10n', window.tagsl10n, '5.5.0' ); /** * Removed in 5.5.0, needed for back-compatibility. @@ -198,7 +200,7 @@ window.adminCommentsL10n = window.adminCommentsL10n || { docTitleCommentsCount: '' }; -window.adminCommentsL10n = deprecateL10nObject( 'adminCommentsL10n', window.adminCommentsL10n ); +window.adminCommentsL10n = deprecateL10nObject( 'adminCommentsL10n', window.adminCommentsL10n, '5.5.0' ); /** * Removed in 5.5.0, needed for back-compatibility. @@ -214,7 +216,7 @@ window.tagsSuggestL10n = window.tagsSuggestL10n || { termRemoved: '' }; -window.tagsSuggestL10n = deprecateL10nObject( 'tagsSuggestL10n', window.tagsSuggestL10n ); +window.tagsSuggestL10n = deprecateL10nObject( 'tagsSuggestL10n', window.tagsSuggestL10n, '5.5.0' ); /** * Removed in 5.5.0, needed for back-compatibility. @@ -231,7 +233,7 @@ window.wpColorPickerL10n = window.wpColorPickerL10n || { defaultLabel: '' }; -window.wpColorPickerL10n = deprecateL10nObject( 'wpColorPickerL10n', window.wpColorPickerL10n ); +window.wpColorPickerL10n = deprecateL10nObject( 'wpColorPickerL10n', window.wpColorPickerL10n, '5.5.0' ); /** * Removed in 5.5.0, needed for back-compatibility. @@ -243,7 +245,7 @@ window.attachMediaBoxL10n = window.attachMediaBoxL10n || { error: '' }; -window.attachMediaBoxL10n = deprecateL10nObject( 'attachMediaBoxL10n', window.attachMediaBoxL10n ); +window.attachMediaBoxL10n = deprecateL10nObject( 'attachMediaBoxL10n', window.attachMediaBoxL10n, '5.5.0' ); /** * Removed in 5.5.0, needed for back-compatibility. @@ -276,7 +278,7 @@ window.postL10n = window.postL10n || { permalinkSaved: '' }; -window.postL10n = deprecateL10nObject( 'postL10n', window.postL10n ); +window.postL10n = deprecateL10nObject( 'postL10n', window.postL10n, '5.5.0' ); /** * Removed in 5.5.0, needed for back-compatibility. @@ -292,7 +294,7 @@ window.inlineEditL10n = window.inlineEditL10n || { saved: '' }; -window.inlineEditL10n = deprecateL10nObject( 'inlineEditL10n', window.inlineEditL10n ); +window.inlineEditL10n = deprecateL10nObject( 'inlineEditL10n', window.inlineEditL10n, '5.5.0' ); /** * Removed in 5.5.0, needed for back-compatibility. @@ -306,7 +308,7 @@ window.plugininstallL10n = window.plugininstallL10n || { ays: '' }; -window.plugininstallL10n = deprecateL10nObject( 'plugininstallL10n', window.plugininstallL10n ); +window.plugininstallL10n = deprecateL10nObject( 'plugininstallL10n', window.plugininstallL10n, '5.5.0' ); /** * Removed in 5.5.0, needed for back-compatibility. @@ -321,7 +323,7 @@ window.navMenuL10n = window.navMenuL10n || { untitled: '' }; -window.navMenuL10n = deprecateL10nObject( 'navMenuL10n', window.navMenuL10n ); +window.navMenuL10n = deprecateL10nObject( 'navMenuL10n', window.navMenuL10n, '5.5.0' ); /** * Removed in 5.5.0, needed for back-compatibility. @@ -334,7 +336,7 @@ window.commentL10n = window.commentL10n || { dateFormat: '' }; -window.commentL10n = deprecateL10nObject( 'commentL10n', window.commentL10n ); +window.commentL10n = deprecateL10nObject( 'commentL10n', window.commentL10n, '5.5.0' ); /** * Removed in 5.5.0, needed for back-compatibility. @@ -349,7 +351,7 @@ window.setPostThumbnailL10n = window.setPostThumbnailL10n || { done: '' }; -window.setPostThumbnailL10n = deprecateL10nObject( 'setPostThumbnailL10n', window.setPostThumbnailL10n ); +window.setPostThumbnailL10n = deprecateL10nObject( 'setPostThumbnailL10n', window.setPostThumbnailL10n, '5.5.0' ); /** * Removed in 3.3.0, needed for back-compatibility. @@ -1092,6 +1094,10 @@ $document.ready( function() { var $el = $( this ), $button = $( '' ); + if ( $el.find( '.notice-dismiss' ).length ) { + return; + } + // Ensure plain text. $button.find( '.screen-reader-text' ).text( __( 'Dismiss this notice.' ) ); $button.on( 'click.wp-dismiss-notice', function( event ) { @@ -1233,7 +1239,7 @@ $document.ready( function() { focusedRowActions.removeClass( 'visible' ); }, 30 ); } - }, '.has-row-actions' ); + }, '.table-view-list .has-row-actions' ); // Toggle list table rows on small screens. $( 'tbody' ).on( 'click', '.toggle-row', function() { diff --git a/wp-admin/js/common.min.js b/wp-admin/js/common.min.js index f61e647207..be463b7cc2 100644 --- a/wp-admin/js/common.min.js +++ b/wp-admin/js/common.min.js @@ -1,2 +1,2 @@ /*! This file is auto-generated */ -!function(W,$){var Q=W(document),H=W($),V=W(document.body),q=wp.i18n.__,o=wp.i18n.sprintf;function a(e,t,n){var i;i=void 0!==n?o(q("%1$s is deprecated since version %2$s! Use %3$s instead."),e,t,n):o(q("%1$s is deprecated since version %2$s with no alternative available."),e,t),$.console.warn(i)}function e(i,o){var s={};return Object.keys(o).forEach(function(e){var t=o[e],n=i+"."+e;"object"==typeof t?Object.defineProperty(s,e,{get:function(){return a(n,"5.5.0",t.alternative),t.func()}}):Object.defineProperty(s,e,{get:function(){return a(n,"5.5.0","wp.i18n"),t}})}),s}$.wp.deprecateL10nObject=e,$.commonL10n=$.commonL10n||{warnDelete:"",dismiss:"",collapseMenu:"",expandMenu:""},$.commonL10n=e("commonL10n",$.commonL10n),$.wpPointerL10n=$.wpPointerL10n||{dismiss:""},$.wpPointerL10n=e("wpPointerL10n",$.wpPointerL10n),$.userProfileL10n=$.userProfileL10n||{warn:"",warnWeak:"",show:"",hide:"",cancel:"",ariaShow:"",ariaHide:""},$.userProfileL10n=e("userProfileL10n",$.userProfileL10n),$.privacyToolsL10n=$.privacyToolsL10n||{noDataFound:"",foundAndRemoved:"",noneRemoved:"",someNotRemoved:"",removalError:"",emailSent:"",noExportFile:"",exportError:""},$.privacyToolsL10n=e("privacyToolsL10n",$.privacyToolsL10n),$.authcheckL10n={beforeunload:""},$.authcheckL10n=$.authcheckL10n||e("authcheckL10n",$.authcheckL10n),$.tagsl10n={noPerm:"",broken:""},$.tagsl10n=$.tagsl10n||e("tagsl10n",$.tagsl10n),$.adminCommentsL10n=$.adminCommentsL10n||{hotkeys_highlight_first:{alternative:"window.adminCommentsSettings.hotkeys_highlight_first",func:function(){return $.adminCommentsSettings.hotkeys_highlight_first}},hotkeys_highlight_last:{alternative:"window.adminCommentsSettings.hotkeys_highlight_last",func:function(){return $.adminCommentsSettings.hotkeys_highlight_last}},replyApprove:"",reply:"",warnQuickEdit:"",warnCommentChanges:"",docTitleComments:"",docTitleCommentsCount:""},$.adminCommentsL10n=e("adminCommentsL10n",$.adminCommentsL10n),$.tagsSuggestL10n=$.tagsSuggestL10n||{tagDelimiter:"",removeTerm:"",termSelected:"",termAdded:"",termRemoved:""},$.tagsSuggestL10n=e("tagsSuggestL10n",$.tagsSuggestL10n),$.wpColorPickerL10n=$.wpColorPickerL10n||{clear:"",clearAriaLabel:"",defaultString:"",defaultAriaLabel:"",pick:"",defaultLabel:""},$.wpColorPickerL10n=e("wpColorPickerL10n",$.wpColorPickerL10n),$.attachMediaBoxL10n=$.attachMediaBoxL10n||{error:""},$.attachMediaBoxL10n=e("attachMediaBoxL10n",$.attachMediaBoxL10n),$.postL10n=$.postL10n||{ok:"",cancel:"",publishOn:"",publishOnFuture:"",publishOnPast:"",dateFormat:"",showcomm:"",endcomm:"",publish:"",schedule:"",update:"",savePending:"",saveDraft:"",private:"",public:"",publicSticky:"",password:"",privatelyPublished:"",published:"",saveAlert:"",savingText:"",permalinkSaved:""},$.postL10n=e("postL10n",$.postL10n),$.inlineEditL10n=$.inlineEditL10n||{error:"",ntdeltitle:"",notitle:"",comma:"",saved:""},$.inlineEditL10n=e("inlineEditL10n",$.inlineEditL10n),$.plugininstallL10n=$.plugininstallL10n||{plugin_information:"",plugin_modal_label:"",ays:""},$.plugininstallL10n=e("plugininstallL10n",$.plugininstallL10n),$.navMenuL10n=$.navMenuL10n||{noResultsFound:"",warnDeleteMenu:"",saveAlert:"",untitled:""},$.navMenuL10n=e("navMenuL10n",$.navMenuL10n),$.commentL10n=$.commentL10n||{submittedOn:"",dateFormat:""},$.commentL10n=e("commentL10n",$.commentL10n),$.setPostThumbnailL10n=$.setPostThumbnailL10n||{setThumbnail:"",saving:"",error:"",done:""},$.setPostThumbnailL10n=e("setPostThumbnailL10n",$.setPostThumbnailL10n),$.adminMenu={init:function(){},fold:function(){},restoreMenuState:function(){},toggle:function(){},favorites:function(){}},$.columns={init:function(){var n=this;W(".hide-column-tog","#adv-settings").click(function(){var e=W(this),t=e.val();e.prop("checked")?n.checked(t):n.unchecked(t),columns.saveManageColumnsState()})},saveManageColumnsState:function(){var e=this.hidden();W.post(ajaxurl,{action:"hidden-columns",hidden:e,screenoptionnonce:W("#screenoptionnonce").val(),page:pagenow})},checked:function(e){W(".column-"+e).removeClass("hidden"),this.colSpanChange(1)},unchecked:function(e){W(".column-"+e).addClass("hidden"),this.colSpanChange(-1)},hidden:function(){return W(".manage-column[id]").filter(".hidden").map(function(){return this.id}).get().join(",")},useCheckboxesForHidden:function(){this.hidden=function(){return W(".hide-column-tog").not(":checked").map(function(){var e=this.id;return e.substring(e,e.length-5)}).get().join(",")}},colSpanChange:function(e){var t,n=W("table").find(".colspanchange");n.length&&(t=parseInt(n.attr("colspan"),10)+e,n.attr("colspan",t.toString()))}},Q.ready(function(){columns.init()}),$.validateForm=function(e){return!W(e).find(".form-required").filter(function(){return""===W(":input:visible",this).val()}).addClass("form-invalid").find(":input:visible").change(function(){W(this).closest(".form-invalid").removeClass("form-invalid")}).length},$.showNotice={warn:function(){return!!confirm(q("You are about to permanently delete these items from your site.\nThis action cannot be undone.\n'Cancel' to stop, 'OK' to delete."))},note:function(e){alert(e)}},$.screenMeta={element:null,toggles:null,page:null,init:function(){this.element=W("#screen-meta"),this.toggles=W("#screen-meta-links").find(".show-settings"),this.page=W("#wpcontent"),this.toggles.click(this.toggleEvent)},toggleEvent:function(){var e=W("#"+W(this).attr("aria-controls"));e.length&&(e.is(":visible")?screenMeta.close(e,W(this)):screenMeta.open(e,W(this)))},open:function(e,t){W("#screen-meta-links").find(".screen-meta-toggle").not(t.parent()).css("visibility","hidden"),e.parent().show(),e.slideDown("fast",function(){e.focus(),t.addClass("screen-meta-active").attr("aria-expanded",!0)}),Q.trigger("screen:options:open")},close:function(e,t){e.slideUp("fast",function(){t.removeClass("screen-meta-active").attr("aria-expanded",!1),W(".screen-meta-toggle").css("visibility",""),e.parent().hide()}),Q.trigger("screen:options:close")}},W(".contextual-help-tabs").delegate("a","click",function(e){var t,n=W(this);if(e.preventDefault(),n.is(".active a"))return!1;W(".contextual-help-tabs .active").removeClass("active"),n.parent("li").addClass("active"),t=W(n.attr("href")),W(".help-tab-content").not(t).removeClass("active").hide(),t.addClass("active").show()});var t,r=!1,l=W("#permalink_structure"),n=W(".permalink-structure input:radio"),c=W("#custom_selection"),i=W(".form-table.permalink-structure .available-structure-tags button");function d(e){-1!==l.val().indexOf(e.text().trim())?(e.attr("data-label",e.attr("aria-label")),e.attr("aria-label",e.attr("data-used")),e.attr("aria-pressed",!0),e.addClass("active")):e.attr("data-label")&&(e.attr("aria-label",e.attr("data-label")),e.attr("aria-pressed",!1),e.removeClass("active"))}function s(){Q.trigger("wp-window-resized")}n.on("change",function(){"custom"!==this.value&&(l.val(this.value),i.each(function(){d(W(this))}))}),l.on("click input",function(){c.prop("checked",!0)}),l.on("focus",function(e){r=!0,W(this).off(e)}),i.each(function(){d(W(this))}),l.on("change",function(){i.each(function(){d(W(this))})}),i.on("click",function(){var e,t=l.val(),n=l[0].selectionStart,i=l[0].selectionEnd,o=W(this).text().trim(),s=W(this).attr("data-added");if(-1!==t.indexOf(o))return t=t.replace(o+"/",""),l.val("/"===t?"":t),W("#custom_selection_updated").text(s),void d(W(this));r||0!==n||0!==i||(n=i=t.length),c.prop("checked",!0),"/"!==t.substr(0,n).substr(-1)&&(o="/"+o),"/"!==t.substr(i,1)&&(o+="/"),l.val(t.substr(0,n)+o+t.substr(i)),W("#custom_selection_updated").text(s),d(W(this)),r&&l[0].setSelectionRange&&(e=(t.substr(0,n)+o).length,l[0].setSelectionRange(e,e),l.focus())}),Q.ready(function(){var n,i,o,s,e,t,a,r,l,c,d,u=!1,p=W("input.current-page"),m=p.val(),h=/iPhone|iPad|iPod/.test(navigator.userAgent),f=-1!==navigator.userAgent.indexOf("Android"),v=W("#adminmenuwrap"),b=W("#wpwrap"),g=W("#adminmenu"),w=W("#wp-responsive-overlay"),k=W("#wp-toolbar"),C=k.find('a[aria-haspopup="true"]'),L=W(".meta-box-sortables"),y=!1,x=W("#wpadminbar"),S=0,P=!1,T=!1,M=0,_=!1,D={window:H.height(),wpwrap:b.height(),adminbar:x.height(),menu:v.height()},E=W(".wp-header-end");function A(){var e=W("a.wp-has-current-submenu");"folded"===r?e.attr("aria-haspopup","true"):e.attr("aria-haspopup","false")}function O(e){var t,n,i,o,s,a,r=e.find(".wp-submenu");a=(o=e.offset().top)-(s=H.scrollTop())-30,n=60+(t=o+r.height()+1)-b.height(),(i=H.height()+s-50)');e.find(".screen-reader-text").text(q("Dismiss this notice.")),e.on("click.wp-dismiss-notice",function(e){e.preventDefault(),t.fadeTo(100,0,function(){t.slideUp(100,function(){t.remove()})})}),t.append(e)})}function R(){l.prop("disabled",""===c.map(function(){return W(this).val()}).get().join(""))}function U(e){var t=H.scrollTop(),n=!e||"scroll"!==e.type;if(!h&&!g.data("wp-responsive"))if(D.menu+D.adminbarD.wpwrap)I();else{if(_=!0,D.menu+D.adminbar>D.window){if(t<0)return void(P||(T=!(P=!0),v.css({position:"fixed",top:"",bottom:""})));if(t+D.window>Q.height()-1)return void(T||(P=!(T=!0),v.css({position:"fixed",top:"",bottom:0})));St+D.window&&(M=t),v.css({position:"absolute",top:M,bottom:""})):!P&&v.offset().top>=t+D.adminbar&&(P=!0,v.css({position:"fixed",top:"",bottom:""})):n&&(P=T=!1,0<(M=t+D.window-D.menu-D.adminbar-1)?v.css({position:"absolute",top:M,bottom:""}):I())}S=t}}function F(){D={window:H.height(),wpwrap:b.height(),adminbar:x.height(),menu:v.height()}}function I(){!h&&_&&(P=T=_=!1,v.css({position:"",top:"",bottom:""}))}function K(){F(),g.data("wp-responsive")?(V.removeClass("sticky-menu"),I()):D.menu+D.adminbar>D.window?(U(),V.removeClass("sticky-menu")):(V.addClass("sticky-menu"),I())}function z(){W(".aria-button-if-js").attr("role","button")}function B(){var e=!1;return $.innerWidth&&(e=Math.max($.innerWidth,document.documentElement.clientWidth)),e}function N(){var e=B()||961;r=e<=782?"responsive":V.hasClass("folded")||V.hasClass("auto-fold")&&e<=960&&782 tr > .check-column :checkbox",function(e){if("undefined"==e.shiftKey)return!0;if(e.shiftKey){if(!u)return!0;n=W(u).closest("form").find(":checkbox").filter(":visible:enabled"),i=n.index(u),o=n.index(this),s=W(this).prop("checked"),0 a",function(e){g.data("wp-responsive")&&(W(this).parent("li").toggleClass("selected"),e.preventDefault())}),e.trigger(),Q.on("wp-window-resized.wp-responsive",W.proxy(this.trigger,this)),H.on("load.wp-responsive",this.maybeDisableSortables),Q.on("postbox-toggled",this.maybeDisableSortables),W("#screen-options-wrap input").on("click",this.maybeDisableSortables)},maybeDisableSortables:function(){(-1
').insertAfter("#wpcontent").hide().on("click.wp-responsive",function(){k.find(".menupop.hover").removeClass("hover"),W(this).hide()})),C.on("click.wp-responsive",function(){w.show()})},disableOverlay:function(){C.off("click.wp-responsive"),w.hide()},disableSortables:function(){if(L.length)try{L.sortable("disable"),L.find(".ui-sortable-handle").addClass("is-non-sortable")}catch(e){}},enableSortables:function(){if(L.length)try{L.sortable("enable"),L.find(".ui-sortable-handle").removeClass("is-non-sortable")}catch(e){}}},W(document).ajaxComplete(function(){z()}),Q.on("wp-window-resized.set-menu-state",N),Q.on("wp-menu-state-set wp-collapse-menu",function(e,t){var n,i,o=W("#collapse-button");i="folded"===t.state?(n="false",q("Expand Main menu")):(n="true",q("Collapse Main menu")),o.attr({"aria-expanded":n,"aria-label":i})}),$.wpResponsive.init(),K(),N(),A(),j(),z(),Q.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",K),W(".wp-initial-focus").focus(),V.on("click",".js-update-details-toggle",function(){var e=W(this).closest(".js-update-details"),t=W("#"+e.data("update-details"));t.hasClass("update-details-moved")||t.insertAfter(e).addClass("update-details-moved"),t.toggle(),W(this).attr("aria-expanded",t.is(":visible"))})}),Q.ready(function(e){var t,n;V.hasClass("update-php")&&(t=e("a.update-from-upload-overwrite"),n=e(".update-from-upload-expired"),t.length&&n.length&&$.setTimeout(function(){t.hide(),n.removeClass("hidden"),$.wp&&$.wp.a11y&&$.wp.a11y.speak(n.text())},714e4))}),H.on("resize.wp-fire-once",function(){$.clearTimeout(t),t=$.setTimeout(s,200)}),function(){if("-ms-user-select"in document.documentElement.style&&navigator.userAgent.match(/IEMobile\/10\.0/)){var e=document.createElement("style");e.appendChild(document.createTextNode("@-ms-viewport{width:auto!important}")),document.getElementsByTagName("head")[0].appendChild(e)}}()}(jQuery,window); \ No newline at end of file +!function(W,$){var Q=W(document),H=W($),V=W(document.body),q=wp.i18n.__,o=wp.i18n.sprintf;function r(e,t,n){var i;i=void 0!==n?o(q("%1$s is deprecated since version %2$s! Use %3$s instead."),e,t,n):o(q("%1$s is deprecated since version %2$s with no alternative available."),e,t),$.console.warn(i)}function e(i,o,s){var a={};return Object.keys(o).forEach(function(e){var t=o[e],n=i+"."+e;"object"==typeof t?Object.defineProperty(a,e,{get:function(){return r(n,s,t.alternative),t.func()}}):Object.defineProperty(a,e,{get:function(){return r(n,s,"wp.i18n"),t}})}),a}$.wp.deprecateL10nObject=e,$.commonL10n=$.commonL10n||{warnDelete:"",dismiss:"",collapseMenu:"",expandMenu:""},$.commonL10n=e("commonL10n",$.commonL10n,"5.5.0"),$.wpPointerL10n=$.wpPointerL10n||{dismiss:""},$.wpPointerL10n=e("wpPointerL10n",$.wpPointerL10n,"5.5.0"),$.userProfileL10n=$.userProfileL10n||{warn:"",warnWeak:"",show:"",hide:"",cancel:"",ariaShow:"",ariaHide:""},$.userProfileL10n=e("userProfileL10n",$.userProfileL10n,"5.5.0"),$.privacyToolsL10n=$.privacyToolsL10n||{noDataFound:"",foundAndRemoved:"",noneRemoved:"",someNotRemoved:"",removalError:"",emailSent:"",noExportFile:"",exportError:""},$.privacyToolsL10n=e("privacyToolsL10n",$.privacyToolsL10n,"5.5.0"),$.authcheckL10n={beforeunload:""},$.authcheckL10n=$.authcheckL10n||e("authcheckL10n",$.authcheckL10n,"5.5.0"),$.tagsl10n={noPerm:"",broken:""},$.tagsl10n=$.tagsl10n||e("tagsl10n",$.tagsl10n,"5.5.0"),$.adminCommentsL10n=$.adminCommentsL10n||{hotkeys_highlight_first:{alternative:"window.adminCommentsSettings.hotkeys_highlight_first",func:function(){return $.adminCommentsSettings.hotkeys_highlight_first}},hotkeys_highlight_last:{alternative:"window.adminCommentsSettings.hotkeys_highlight_last",func:function(){return $.adminCommentsSettings.hotkeys_highlight_last}},replyApprove:"",reply:"",warnQuickEdit:"",warnCommentChanges:"",docTitleComments:"",docTitleCommentsCount:""},$.adminCommentsL10n=e("adminCommentsL10n",$.adminCommentsL10n,"5.5.0"),$.tagsSuggestL10n=$.tagsSuggestL10n||{tagDelimiter:"",removeTerm:"",termSelected:"",termAdded:"",termRemoved:""},$.tagsSuggestL10n=e("tagsSuggestL10n",$.tagsSuggestL10n,"5.5.0"),$.wpColorPickerL10n=$.wpColorPickerL10n||{clear:"",clearAriaLabel:"",defaultString:"",defaultAriaLabel:"",pick:"",defaultLabel:""},$.wpColorPickerL10n=e("wpColorPickerL10n",$.wpColorPickerL10n,"5.5.0"),$.attachMediaBoxL10n=$.attachMediaBoxL10n||{error:""},$.attachMediaBoxL10n=e("attachMediaBoxL10n",$.attachMediaBoxL10n,"5.5.0"),$.postL10n=$.postL10n||{ok:"",cancel:"",publishOn:"",publishOnFuture:"",publishOnPast:"",dateFormat:"",showcomm:"",endcomm:"",publish:"",schedule:"",update:"",savePending:"",saveDraft:"",private:"",public:"",publicSticky:"",password:"",privatelyPublished:"",published:"",saveAlert:"",savingText:"",permalinkSaved:""},$.postL10n=e("postL10n",$.postL10n,"5.5.0"),$.inlineEditL10n=$.inlineEditL10n||{error:"",ntdeltitle:"",notitle:"",comma:"",saved:""},$.inlineEditL10n=e("inlineEditL10n",$.inlineEditL10n,"5.5.0"),$.plugininstallL10n=$.plugininstallL10n||{plugin_information:"",plugin_modal_label:"",ays:""},$.plugininstallL10n=e("plugininstallL10n",$.plugininstallL10n,"5.5.0"),$.navMenuL10n=$.navMenuL10n||{noResultsFound:"",warnDeleteMenu:"",saveAlert:"",untitled:""},$.navMenuL10n=e("navMenuL10n",$.navMenuL10n,"5.5.0"),$.commentL10n=$.commentL10n||{submittedOn:"",dateFormat:""},$.commentL10n=e("commentL10n",$.commentL10n,"5.5.0"),$.setPostThumbnailL10n=$.setPostThumbnailL10n||{setThumbnail:"",saving:"",error:"",done:""},$.setPostThumbnailL10n=e("setPostThumbnailL10n",$.setPostThumbnailL10n,"5.5.0"),$.adminMenu={init:function(){},fold:function(){},restoreMenuState:function(){},toggle:function(){},favorites:function(){}},$.columns={init:function(){var n=this;W(".hide-column-tog","#adv-settings").click(function(){var e=W(this),t=e.val();e.prop("checked")?n.checked(t):n.unchecked(t),columns.saveManageColumnsState()})},saveManageColumnsState:function(){var e=this.hidden();W.post(ajaxurl,{action:"hidden-columns",hidden:e,screenoptionnonce:W("#screenoptionnonce").val(),page:pagenow})},checked:function(e){W(".column-"+e).removeClass("hidden"),this.colSpanChange(1)},unchecked:function(e){W(".column-"+e).addClass("hidden"),this.colSpanChange(-1)},hidden:function(){return W(".manage-column[id]").filter(".hidden").map(function(){return this.id}).get().join(",")},useCheckboxesForHidden:function(){this.hidden=function(){return W(".hide-column-tog").not(":checked").map(function(){var e=this.id;return e.substring(e,e.length-5)}).get().join(",")}},colSpanChange:function(e){var t,n=W("table").find(".colspanchange");n.length&&(t=parseInt(n.attr("colspan"),10)+e,n.attr("colspan",t.toString()))}},Q.ready(function(){columns.init()}),$.validateForm=function(e){return!W(e).find(".form-required").filter(function(){return""===W(":input:visible",this).val()}).addClass("form-invalid").find(":input:visible").change(function(){W(this).closest(".form-invalid").removeClass("form-invalid")}).length},$.showNotice={warn:function(){return!!confirm(q("You are about to permanently delete these items from your site.\nThis action cannot be undone.\n'Cancel' to stop, 'OK' to delete."))},note:function(e){alert(e)}},$.screenMeta={element:null,toggles:null,page:null,init:function(){this.element=W("#screen-meta"),this.toggles=W("#screen-meta-links").find(".show-settings"),this.page=W("#wpcontent"),this.toggles.click(this.toggleEvent)},toggleEvent:function(){var e=W("#"+W(this).attr("aria-controls"));e.length&&(e.is(":visible")?screenMeta.close(e,W(this)):screenMeta.open(e,W(this)))},open:function(e,t){W("#screen-meta-links").find(".screen-meta-toggle").not(t.parent()).css("visibility","hidden"),e.parent().show(),e.slideDown("fast",function(){e.focus(),t.addClass("screen-meta-active").attr("aria-expanded",!0)}),Q.trigger("screen:options:open")},close:function(e,t){e.slideUp("fast",function(){t.removeClass("screen-meta-active").attr("aria-expanded",!1),W(".screen-meta-toggle").css("visibility",""),e.parent().hide()}),Q.trigger("screen:options:close")}},W(".contextual-help-tabs").delegate("a","click",function(e){var t,n=W(this);if(e.preventDefault(),n.is(".active a"))return!1;W(".contextual-help-tabs .active").removeClass("active"),n.parent("li").addClass("active"),t=W(n.attr("href")),W(".help-tab-content").not(t).removeClass("active").hide(),t.addClass("active").show()});var t,a=!1,l=W("#permalink_structure"),n=W(".permalink-structure input:radio"),c=W("#custom_selection"),i=W(".form-table.permalink-structure .available-structure-tags button");function d(e){-1!==l.val().indexOf(e.text().trim())?(e.attr("data-label",e.attr("aria-label")),e.attr("aria-label",e.attr("data-used")),e.attr("aria-pressed",!0),e.addClass("active")):e.attr("data-label")&&(e.attr("aria-label",e.attr("data-label")),e.attr("aria-pressed",!1),e.removeClass("active"))}function s(){Q.trigger("wp-window-resized")}n.on("change",function(){"custom"!==this.value&&(l.val(this.value),i.each(function(){d(W(this))}))}),l.on("click input",function(){c.prop("checked",!0)}),l.on("focus",function(e){a=!0,W(this).off(e)}),i.each(function(){d(W(this))}),l.on("change",function(){i.each(function(){d(W(this))})}),i.on("click",function(){var e,t=l.val(),n=l[0].selectionStart,i=l[0].selectionEnd,o=W(this).text().trim(),s=W(this).attr("data-added");if(-1!==t.indexOf(o))return t=t.replace(o+"/",""),l.val("/"===t?"":t),W("#custom_selection_updated").text(s),void d(W(this));a||0!==n||0!==i||(n=i=t.length),c.prop("checked",!0),"/"!==t.substr(0,n).substr(-1)&&(o="/"+o),"/"!==t.substr(i,1)&&(o+="/"),l.val(t.substr(0,n)+o+t.substr(i)),W("#custom_selection_updated").text(s),d(W(this)),a&&l[0].setSelectionRange&&(e=(t.substr(0,n)+o).length,l[0].setSelectionRange(e,e),l.focus())}),Q.ready(function(){var n,i,o,s,e,t,a,r,l,c,d,u=!1,p=W("input.current-page"),m=p.val(),h=/iPhone|iPad|iPod/.test(navigator.userAgent),f=-1!==navigator.userAgent.indexOf("Android"),v=W("#adminmenuwrap"),b=W("#wpwrap"),g=W("#adminmenu"),w=W("#wp-responsive-overlay"),k=W("#wp-toolbar"),C=k.find('a[aria-haspopup="true"]'),L=W(".meta-box-sortables"),y=!1,x=W("#wpadminbar"),S=0,P=!1,T=!1,M=0,_=!1,D={window:H.height(),wpwrap:b.height(),adminbar:x.height(),menu:v.height()},E=W(".wp-header-end");function A(){var e=W("a.wp-has-current-submenu");"folded"===r?e.attr("aria-haspopup","true"):e.attr("aria-haspopup","false")}function O(e){var t,n,i,o,s,a,r=e.find(".wp-submenu");a=(o=e.offset().top)-(s=H.scrollTop())-30,n=60+(t=o+r.height()+1)-b.height(),(i=H.height()+s-50)');t.find(".notice-dismiss").length||(e.find(".screen-reader-text").text(q("Dismiss this notice.")),e.on("click.wp-dismiss-notice",function(e){e.preventDefault(),t.fadeTo(100,0,function(){t.slideUp(100,function(){t.remove()})})}),t.append(e))})}function R(){l.prop("disabled",""===c.map(function(){return W(this).val()}).get().join(""))}function U(e){var t=H.scrollTop(),n=!e||"scroll"!==e.type;if(!h&&!g.data("wp-responsive"))if(D.menu+D.adminbarD.wpwrap)I();else{if(_=!0,D.menu+D.adminbar>D.window){if(t<0)return void(P||(T=!(P=!0),v.css({position:"fixed",top:"",bottom:""})));if(t+D.window>Q.height()-1)return void(T||(P=!(T=!0),v.css({position:"fixed",top:"",bottom:0})));St+D.window&&(M=t),v.css({position:"absolute",top:M,bottom:""})):!P&&v.offset().top>=t+D.adminbar&&(P=!0,v.css({position:"fixed",top:"",bottom:""})):n&&(P=T=!1,0<(M=t+D.window-D.menu-D.adminbar-1)?v.css({position:"absolute",top:M,bottom:""}):I())}S=t}}function F(){D={window:H.height(),wpwrap:b.height(),adminbar:x.height(),menu:v.height()}}function I(){!h&&_&&(P=T=_=!1,v.css({position:"",top:"",bottom:""}))}function K(){F(),g.data("wp-responsive")?(V.removeClass("sticky-menu"),I()):D.menu+D.adminbar>D.window?(U(),V.removeClass("sticky-menu")):(V.addClass("sticky-menu"),I())}function z(){W(".aria-button-if-js").attr("role","button")}function B(){var e=!1;return $.innerWidth&&(e=Math.max($.innerWidth,document.documentElement.clientWidth)),e}function N(){var e=B()||961;r=e<=782?"responsive":V.hasClass("folded")||V.hasClass("auto-fold")&&e<=960&&782 tr > .check-column :checkbox",function(e){if("undefined"==e.shiftKey)return!0;if(e.shiftKey){if(!u)return!0;n=W(u).closest("form").find(":checkbox").filter(":visible:enabled"),i=n.index(u),o=n.index(this),s=W(this).prop("checked"),0 a",function(e){g.data("wp-responsive")&&(W(this).parent("li").toggleClass("selected"),e.preventDefault())}),e.trigger(),Q.on("wp-window-resized.wp-responsive",W.proxy(this.trigger,this)),H.on("load.wp-responsive",this.maybeDisableSortables),Q.on("postbox-toggled",this.maybeDisableSortables),W("#screen-options-wrap input").on("click",this.maybeDisableSortables)},maybeDisableSortables:function(){(-1
').insertAfter("#wpcontent").hide().on("click.wp-responsive",function(){k.find(".menupop.hover").removeClass("hover"),W(this).hide()})),C.on("click.wp-responsive",function(){w.show()})},disableOverlay:function(){C.off("click.wp-responsive"),w.hide()},disableSortables:function(){if(L.length)try{L.sortable("disable"),L.find(".ui-sortable-handle").addClass("is-non-sortable")}catch(e){}},enableSortables:function(){if(L.length)try{L.sortable("enable"),L.find(".ui-sortable-handle").removeClass("is-non-sortable")}catch(e){}}},W(document).ajaxComplete(function(){z()}),Q.on("wp-window-resized.set-menu-state",N),Q.on("wp-menu-state-set wp-collapse-menu",function(e,t){var n,i,o=W("#collapse-button");i="folded"===t.state?(n="false",q("Expand Main menu")):(n="true",q("Collapse Main menu")),o.attr({"aria-expanded":n,"aria-label":i})}),$.wpResponsive.init(),K(),N(),A(),j(),z(),Q.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",K),W(".wp-initial-focus").focus(),V.on("click",".js-update-details-toggle",function(){var e=W(this).closest(".js-update-details"),t=W("#"+e.data("update-details"));t.hasClass("update-details-moved")||t.insertAfter(e).addClass("update-details-moved"),t.toggle(),W(this).attr("aria-expanded",t.is(":visible"))})}),Q.ready(function(e){var t,n;V.hasClass("update-php")&&(t=e("a.update-from-upload-overwrite"),n=e(".update-from-upload-expired"),t.length&&n.length&&$.setTimeout(function(){t.hide(),n.removeClass("hidden"),$.wp&&$.wp.a11y&&$.wp.a11y.speak(n.text())},714e4))}),H.on("resize.wp-fire-once",function(){$.clearTimeout(t),t=$.setTimeout(s,200)}),function(){if("-ms-user-select"in document.documentElement.style&&navigator.userAgent.match(/IEMobile\/10\.0/)){var e=document.createElement("style");e.appendChild(document.createTextNode("@-ms-viewport{width:auto!important}")),document.getElementsByTagName("head")[0].appendChild(e)}}()}(jQuery,window); \ No newline at end of file diff --git a/wp-admin/js/customize-controls.js b/wp-admin/js/customize-controls.js index 484ac5a49b..0c359c79c6 100644 --- a/wp-admin/js/customize-controls.js +++ b/wp-admin/js/customize-controls.js @@ -3700,8 +3700,8 @@ parentContainer = ( section.contentContainer.is( 'ul' ) ) ? section.contentContainer : section.contentContainer.find( 'ul:first' ); if ( ! control.container.parent().is( parentContainer ) ) { parentContainer.append( control.container ); - control.renderContent(); } + control.renderContent(); control.deferred.embedded.resolve(); }); }); diff --git a/wp-admin/js/customize-controls.min.js b/wp-admin/js/customize-controls.min.js index 550bb7b4ab..3c3cc18e65 100644 --- a/wp-admin/js/customize-controls.min.js +++ b/wp-admin/js/customize-controls.min.js @@ -1,2 +1,2 @@ /*! This file is auto-generated */ -!function(e,Z){var a,t,s,n,i,o,r,ee=wp.customize;ee.OverlayNotification=ee.Notification.extend({loading:!1,initialize:function(e,t){var n=this;ee.Notification.prototype.initialize.call(n,e,t),n.containerClasses+=" notification-overlay",n.loading&&(n.containerClasses+=" notification-loading")},render:function(){var e=ee.Notification.prototype.render.call(this);return e.on("keydown",_.bind(this.handleEscape,this)),e},handleEscape:function(e){var t=this;27===e.which&&(e.stopPropagation(),t.dismissible&&t.parent&&t.parent.remove(t.code))}}),ee.Notifications=ee.Values.extend({alt:!1,defaultConstructor:ee.Notification,initialize:function(e){var t=this;ee.Values.prototype.initialize.call(t,e),_.bindAll(t,"constrainFocus"),t._addedIncrement=0,t._addedOrder={},t.bind("add",function(e){t.trigger("change",e)}),t.bind("removed",function(e){t.trigger("change",e)})},count:function(){return _.size(this._value)},add:function(e,t){var n,i,a=this;return i="string"==typeof e?(n=e,t):(n=e.code,e),a.has(n)||(a._addedIncrement+=1,a._addedOrder[n]=a._addedIncrement),ee.Values.prototype.add.call(a,n,i)},remove:function(e){return delete this._addedOrder[e],ee.Values.prototype.remove.call(this,e)},get:function(e){var t,a,o=this;return t=_.values(o._value),_.extend({sort:!1},e).sort&&(a={error:4,warning:3,success:2,info:1},t.sort(function(e,t){var n=0,i=0;return _.isUndefined(a[e.type])||(n=a[e.type]),_.isUndefined(a[t.type])||(i=a[t.type]),n!==i?i-n:o._addedOrder[t.code]-o._addedOrder[e.code]})),t},render:function(){var e,t,n,i,a=this,o=!1,s=[],r={};a.container&&a.container.length&&(e=a.get({sort:!0}),a.container.toggle(0!==e.length),a.container.is(a.previousContainer)&&_.isEqual(e,a.previousNotifications)||((n=a.container.children("ul").first()).length||(n=Z("
    "),a.container.append(n)),n.find("> [data-code]").remove(),_.each(a.previousNotifications,function(e){r[e.code]=e}),_.each(e,function(e){var t;!wp.a11y||r[e.code]&&_.isEqual(e.message,r[e.code].message)||wp.a11y.speak(e.message,"assertive"),t=Z(e.render()),e.container=t,n.append(t),e.extended(ee.OverlayNotification)&&s.push(e)}),t=Boolean(s.length),a.previousNotifications&&(o=Boolean(_.find(a.previousNotifications,function(e){return e.extended(ee.OverlayNotification)}))),t!==o&&(Z(document.body).toggleClass("customize-loading",t),a.container.toggleClass("has-overlay-notifications",t),t?(a.previousActiveElement=document.activeElement,Z(document).on("keydown",a.constrainFocus)):Z(document).off("keydown",a.constrainFocus)),t?(a.focusContainer=s[s.length-1].container,a.focusContainer.prop("tabIndex",-1),(i=a.focusContainer.find(":focusable")).length?i.first().focus():a.focusContainer.focus()):a.previousActiveElement&&(Z(a.previousActiveElement).focus(),a.previousActiveElement=null),a.previousNotifications=e,a.previousContainer=a.container,a.trigger("rendered")))},constrainFocus:function(e){var t,n=this;e.stopPropagation(),9===e.which&&(0===(t=n.focusContainer.find(":focusable")).length&&(t=n.focusContainer),Z.contains(n.focusContainer[0],e.target)&&Z.contains(n.focusContainer[0],document.activeElement)?t.last().is(e.target)&&!e.shiftKey?(e.preventDefault(),t.first().focus()):t.first().is(e.target)&&e.shiftKey&&(e.preventDefault(),t.last().focus()):(e.preventDefault(),t.first().focus()))}}),ee.Setting=ee.Value.extend({defaults:{transport:"refresh",dirty:!1},initialize:function(e,t,n){var i,a=this;i=_.extend({previewer:ee.previewer},a.defaults,n||{}),ee.Value.prototype.initialize.call(a,t,i),a.id=e,a._dirty=i.dirty,a.notifications=new ee.Notifications,a.bind(a.preview)},preview:function(){var e,t=this;"postMessage"!==(e=t.transport)||ee.state("previewerAlive").get()||(e="refresh"),"postMessage"===e?t.previewer.send("setting",[t.id,t()]):"refresh"===e&&t.previewer.refresh()},findControls:function(){var n=this,i=[];return ee.control.each(function(t){_.each(t.settings,function(e){e.id===n.id&&i.push(t)})}),i}}),ee._latestRevision=0,ee._lastSavedRevision=0,ee._latestSettingRevisions={},ee.bind("change",function(e){ee._latestRevision+=1,ee._latestSettingRevisions[e.id]=ee._latestRevision}),ee.bind("ready",function(){ee.bind("add",function(e){e._dirty&&(ee._latestRevision+=1,ee._latestSettingRevisions[e.id]=ee._latestRevision)})}),ee.dirtyValues=function(n){var i={};return ee.each(function(e){var t;e._dirty&&(t=ee._latestSettingRevisions[e.id],ee.state("changesetStatus").get()&&n&&n.unsaved&&(_.isUndefined(t)||t<=ee._lastSavedRevision)||(i[e.id]=e.get()))}),i},ee.requestChangesetUpdate=function(n,e){var t,i,a,o,s={};return t=new Z.Deferred,0!==ee.state("processing").get()?(t.reject("already_processing"),t.promise()):(o=_.extend({title:null,date:null,autosave:!1,force:!1},e),n&&_.extend(s,n),_.each(ee.dirtyValues({unsaved:!0}),function(e,t){n&&null===n[t]||(s[t]=_.extend({},s[t]||{},{value:e}))}),ee.trigger("changeset-save",s,o),!o.force&&_.isEmpty(s)&&null===o.title&&null===o.date?(t.resolve({}),t.promise()):o.status?t.reject({code:"illegal_status_in_changeset_update"}).promise():o.date&&o.autosave?t.reject({code:"illegal_autosave_with_date_gmt"}).promise():(ee.state("processing").set(ee.state("processing").get()+1),t.always(function(){ee.state("processing").set(ee.state("processing").get()-1)}),delete(a=ee.previewer.query({excludeCustomizedSaved:!0})).customized,_.extend(a,{nonce:ee.settings.nonce.save,customize_theme:ee.settings.theme.stylesheet,customize_changeset_data:JSON.stringify(s)}),null!==o.title&&(a.customize_changeset_title=o.title),null!==o.date&&(a.customize_changeset_date=o.date),!1!==o.autosave&&(a.customize_changeset_autosave="true"),ee.trigger("save-request-params",a),(i=wp.ajax.post("customize_save",a)).done(function(e){var n={};ee._lastSavedRevision=Math.max(ee._latestRevision,ee._lastSavedRevision),ee.state("changesetStatus").set(e.changeset_status),e.changeset_date&&ee.state("changesetDate").set(e.changeset_date),t.resolve(e),ee.trigger("changeset-saved",e),e.setting_validities&&_.each(e.setting_validities,function(e,t){!0===e&&_.isObject(s[t])&&!_.isUndefined(s[t].value)&&(n[t]=s[t].value)}),ee.previewer.send("changeset-saved",_.extend({},e,{saved_changeset_values:n}))}),i.fail(function(e){t.reject(e),ee.trigger("changeset-error",e)}),i.always(function(e){e.setting_validities&&ee._handleSettingValidities({settingValidities:e.setting_validities})}),t.promise()))},ee.utils.bubbleChildValueChanges=function(n,e){Z.each(e,function(e,t){n[t].bind(function(e,t){n.parent&&e!==t&&n.parent.trigger("change",n)})})},t=function(e){var t,n,i,a;t=this,i=function(){var e;e=(t.extended(ee.Panel)||t.extended(ee.Section))&&t.expanded&&t.expanded()?t.contentContainer:t.container,0===(a=e.find(".control-focus:first")).length&&(a=e.find("input, select, textarea, button, object, a[href], [tabindex]").filter(":visible").first()),a.focus()},(e=e||{}).completeCallback?(n=e.completeCallback,e.completeCallback=function(){i(),n()}):e.completeCallback=i,ee.state("paneVisible").set(!0),t.expand?t.expand(e):e.completeCallback()},ee.utils.prioritySort=function(e,t){return e.priority()===t.priority()&&"number"==typeof e.params.instanceNumber&&"number"==typeof t.params.instanceNumber?e.params.instanceNumber-t.params.instanceNumber:e.priority()-t.priority()},ee.utils.isKeydownButNotEnterEvent=function(e){return"keydown"===e.type&&13!==e.which},ee.utils.areElementListsEqual=function(e,t){return e.length===t.length&&-1===_.indexOf(_.map(_.zip(e,t),function(e){return Z(e[0]).is(e[1])}),!1)},ee.utils.highlightButton=function(e,t){var n,i="button-see-me",a=!1;function o(){a=!0}return(n=_.extend({delay:0,focusTarget:e},t)).focusTarget.on("focusin",o),setTimeout(function(){n.focusTarget.off("focusin",o),a||(e.addClass(i),e.one("animationend",function(){e.removeClass(i)}))},n.delay),o},ee.utils.getCurrentTimestamp=function(){var e,t,n;return t=_.now(),e=new Date(ee.settings.initialServerDate.replace(/-/g,"/")),n=t-ee.settings.initialClientTimestamp,n+=ee.settings.initialClientTimestamp-ee.settings.initialServerTimestamp,e.setTime(e.getTime()+n),e.getTime()},ee.utils.getRemainingTime=function(e){var t;return t=(e instanceof Date?e.getTime():"string"==typeof e?new Date(e.replace(/-/g,"/")).getTime():e)-ee.utils.getCurrentTimestamp(),t=Math.ceil(t/1e3)},n=document.createElement("div"),i={transition:"transitionend",OTransition:"oTransitionEnd",MozTransition:"transitionend",WebkitTransition:"webkitTransitionEnd"},s=(o=_.find(_.keys(i),function(e){return!_.isUndefined(n.style[e])}))?i[o]:null,a=ee.Class.extend({defaultActiveArguments:{duration:"fast",completeCallback:Z.noop},defaultExpandedArguments:{duration:"fast",completeCallback:Z.noop},containerType:"container",defaults:{title:"",description:"",priority:100,type:"default",content:null,active:!0,instanceNumber:null},initialize:function(e,t){var n=this;n.id=e,a.instanceCounter||(a.instanceCounter=0),a.instanceCounter++,Z.extend(n,{params:_.defaults(t.params||t,n.defaults)}),n.params.instanceNumber||(n.params.instanceNumber=a.instanceCounter),n.notifications=new ee.Notifications,n.templateSelector=n.params.templateId||"customize-"+n.containerType+"-"+n.params.type,n.container=Z(n.params.content),0===n.container.length&&(n.container=Z(n.getContainer())),n.headContainer=n.container,n.contentContainer=n.getContent(),n.container=n.container.add(n.contentContainer),n.deferred={embedded:new Z.Deferred},n.priority=new ee.Value,n.active=new ee.Value,n.activeArgumentsQueue=[],n.expanded=new ee.Value,n.expandedArgumentsQueue=[],n.active.bind(function(e){var t=n.activeArgumentsQueue.shift();t=Z.extend({},n.defaultActiveArguments,t),e=e&&n.isContextuallyActive(),n.onChangeActive(e,t)}),n.expanded.bind(function(e){var t=n.expandedArgumentsQueue.shift();t=Z.extend({},n.defaultExpandedArguments,t),n.onChangeExpanded(e,t)}),n.deferred.embedded.done(function(){n.setupNotifications(),n.attachEvents()}),ee.utils.bubbleChildValueChanges(n,["priority","active"]),n.priority.set(n.params.priority),n.active.set(n.params.active),n.expanded.set(!1)},getNotificationsContainerElement:function(){return this.contentContainer.find(".customize-control-notifications-container:first")},setupNotifications:function(){var e,t=this;t.notifications.container=t.getNotificationsContainerElement(),e=function(){t.expanded.get()&&t.notifications.render()},t.expanded.bind(e),e(),t.notifications.bind("change",_.debounce(e))},ready:function(){},_children:function(t,e){var n=this,i=[];return ee[e].each(function(e){e[t].get()===n.id&&i.push(e)}),i.sort(ee.utils.prioritySort),i},isContextuallyActive:function(){throw new Error("Container.isContextuallyActive() must be overridden in a subclass.")},onChangeActive:function(e,t){var n,i=this,a=i.headContainer;t.unchanged?t.completeCallback&&t.completeCallback():(n="resolved"===ee.previewer.deferred.active.state()?t.duration:0,i.extended(ee.Panel)&&(ee.panel.each(function(e){e!==i&&e.expanded()&&(e,n=0)}),e||_.each(i.sections(),function(e){e.collapse({duration:0})})),Z.contains(document,a.get(0))?e?a.slideDown(n,t.completeCallback):i.expanded()?i.collapse({duration:n,completeCallback:function(){a.slideUp(n,t.completeCallback)}}):a.slideUp(n,t.completeCallback):(a.toggle(e),t.completeCallback&&t.completeCallback()))},_toggleActive:function(e,t){return t=t||{},e&&this.active.get()||!e&&!this.active.get()?(t.unchanged=!0,this.onChangeActive(this.active.get(),t),!1):(t.unchanged=!1,this.activeArgumentsQueue.push(t),this.active.set(e),!0)},activate:function(e){return this._toggleActive(!0,e)},deactivate:function(e){return this._toggleActive(!1,e)},onChangeExpanded:function(){throw new Error("Must override with subclass.")},_toggleExpanded:function(e,t){var n,i=this;return n=(t=t||{}).completeCallback,!(e&&!i.active())&&(ee.state("paneVisible").set(!0),t.completeCallback=function(){n&&n.apply(i,arguments),e?i.container.trigger("expanded"):i.container.trigger("collapsed")},e&&i.expanded.get()||!e&&!i.expanded.get()?(t.unchanged=!0,i.onChangeExpanded(i.expanded.get(),t),!1):(t.unchanged=!1,i.expandedArgumentsQueue.push(t),i.expanded.set(e),!0))},expand:function(e){return this._toggleExpanded(!0,e)},collapse:function(e){return this._toggleExpanded(!1,e)},_animateChangeExpanded:function(t){if(s){var n,i,a=this,o=a.contentContainer,e=o.closest(".wp-full-overlay");n=e.add(o),(!a.panel||""===a.panel()||!!ee.panel(a.panel()).contentContainer.hasClass("skip-transition"))&&(n=n.add("#customize-info, .customize-pane-parent")),i=function(e){2===e.eventPhase&&Z(e.target).is(o)&&(o.off(s,i),n.removeClass("busy"),t&&t())},o.on(s,i),n.addClass("busy"),_.defer(function(){var e=o.closest(".wp-full-overlay-sidebar-content"),t=e.scrollTop(),n=o.data("previous-scrollTop")||0,i=a.expanded();i&&0"},getContent:function(){var e=this.container,t=e.find(".accordion-section-content, .control-panel-content").first(),n="sub-"+e.attr("id"),i=n,a=e.attr("aria-owns");return a&&(i=i+" "+a),e.attr("aria-owns",i),t.detach().attr({id:n,class:"customize-pane-child "+t.attr("class")+" "+e.attr("class")})}}),ee.Section=a.extend({containerType:"section",containerParent:"#customize-theme-controls",containerPaneParent:".customize-pane-parent",defaults:{title:"",description:"",priority:100,type:"default",content:null,active:!0,instanceNumber:null,panel:null,customizeAction:""},initialize:function(e,t){var n,i=this;(n=t.params||t).type||_.find(ee.sectionConstructor,function(e,t){return e===i.constructor&&(n.type=t,!0)}),a.prototype.initialize.call(i,e,n),i.id=e,i.panel=new ee.Value,i.panel.bind(function(e){Z(i.headContainer).toggleClass("control-subsection",!!e)}),i.panel.set(i.params.panel||""),ee.utils.bubbleChildValueChanges(i,["panel"]),i.embed(),i.deferred.embedded.done(function(){i.ready()})},embed:function(){var e,n=this;n.containerParent=ee.ensure(n.containerParent),e=function(e){var t;e?ee.panel(e,function(e){e.deferred.embedded.done(function(){t=e.contentContainer,n.headContainer.parent().is(t)||t.append(n.headContainer),n.contentContainer.parent().is(n.headContainer)||n.containerParent.append(n.contentContainer),n.deferred.embedded.resolve()})}):(t=ee.ensure(n.containerPaneParent),n.headContainer.parent().is(t)||t.append(n.headContainer),n.contentContainer.parent().is(n.headContainer)||n.containerParent.append(n.contentContainer),n.deferred.embedded.resolve())},n.panel.bind(e),e(n.panel.get())},attachEvents:function(){var e,t,n=this;n.container.hasClass("cannot-expand")||(n.container.find(".accordion-section-title, .customize-section-back").on("click keydown",function(e){ee.utils.isKeydownButNotEnterEvent(e)||(e.preventDefault(),n.expanded()?n.collapse():n.expand())}),n.container.find(".customize-section-title .customize-help-toggle").on("click",function(){(e=n.container.find(".section-meta")).hasClass("cannot-expand")||((t=e.find(".customize-section-description:first")).toggleClass("open"),t.slideToggle(n.defaultExpandedArguments.duration,function(){t.trigger("toggled")}),Z(this).attr("aria-expanded",function(e,t){return"true"===t?"false":"true"}))}))},isContextuallyActive:function(){var e=this.controls(),t=0;return _(e).each(function(e){e.active()&&(t+=1)}),0!==t},controls:function(){return this._children("section","control")},onChangeExpanded:function(e,t){var n,i,a=this,o=a.headContainer.closest(".wp-full-overlay-sidebar-content"),s=a.contentContainer,r=a.headContainer.closest(".wp-full-overlay"),c=s.find(".customize-section-back"),l=a.headContainer.find(".accordion-section-title").first();e&&!s.hasClass("open")?(n=t.unchanged?t.completeCallback:Z.proxy(function(){a._animateChangeExpanded(function(){l.attr("tabindex","-1"),c.attr("tabindex","0"),c.focus(),s.css("top",""),o.scrollTop(0),t.completeCallback&&t.completeCallback()}),s.addClass("open"),r.addClass("section-open"),ee.state("expandedSection").set(a)},this),t.allowMultiple||ee.section.each(function(e){e!==a&&e.collapse({duration:t.duration})}),a.panel()?ee.panel(a.panel()).expand({duration:t.duration,completeCallback:n}):(t.allowMultiple||ee.panel.each(function(e){e.collapse()}),n())):!e&&s.hasClass("open")?(a.panel()&&(i=ee.panel(a.panel())).contentContainer.hasClass("skip-transition")&&i.collapse(),a._animateChangeExpanded(function(){c.attr("tabindex","-1"),l.attr("tabindex","0"),l.focus(),s.css("top",""),t.completeCallback&&t.completeCallback()}),s.removeClass("open"),r.removeClass("section-open"),a===ee.state("expandedSection").get()&&ee.state("expandedSection").set(!1)):t.completeCallback&&t.completeCallback()}}),ee.ThemesSection=ee.Section.extend({currentTheme:"",overlay:"",template:"",screenshotQueue:null,$window:null,$body:null,loaded:0,loading:!1,fullyLoaded:!1,term:"",tags:"",nextTerm:"",nextTags:"",filtersHeight:0,headerContainer:null,updateCountDebounced:null,initialize:function(e,t){var n=this;n.headerContainer=Z(),n.$window=Z(window),n.$body=Z(document.body),ee.Section.prototype.initialize.call(n,e,t),n.updateCountDebounced=_.debounce(n.updateCount,500)},embed:function(){var e,n=this;e=function(e){var t;ee.panel(e,function(e){e.deferred.embedded.done(function(){t=e.contentContainer,n.headContainer.parent().is(t)||t.find(".customize-themes-full-container-container").before(n.headContainer),n.contentContainer.parent().is(n.headContainer)||n.containerParent.append(n.contentContainer),n.deferred.embedded.resolve()})})},n.panel.bind(e),e(n.panel.get())},ready:function(){var t=this;t.overlay=t.container.find(".theme-overlay"),t.template=wp.template("customize-themes-details-view"),t.container.on("keydown",function(e){t.overlay.find(".theme-wrap").is(":visible")&&(39===e.keyCode&&t.nextTheme(),37===e.keyCode&&t.previousTheme(),27===e.keyCode&&(t.$body.hasClass("modal-open")?t.closeDetails():t.headerContainer.find(".customize-themes-section-title").focus(),e.stopPropagation()))}),t.renderScreenshots=_.throttle(t.renderScreenshots,100),_.bindAll(t,"renderScreenshots","loadMore","checkTerm","filtersChecked")},isContextuallyActive:function(){return this.active()},attachEvents:function(){var e,a=this;function t(){var e=a.headerContainer.find(".customize-themes-section-title");e.toggleClass("selected",a.expanded()),e.attr("aria-expanded",a.expanded()?"true":"false"),a.expanded()||e.removeClass("details-open")}a.container.find(".customize-section-back").on("click keydown",function(e){ee.utils.isKeydownButNotEnterEvent(e)||(e.preventDefault(),a.collapse())}),a.headerContainer=Z("#accordion-section-"+a.id),a.headerContainer.on("click",".customize-themes-section-title",function(){a.headerContainer.find(".filter-details").length&&(a.headerContainer.find(".customize-themes-section-title").toggleClass("details-open").attr("aria-expanded",function(e,t){return"true"===t?"false":"true"}),a.headerContainer.find(".filter-details").slideToggle(180)),a.expanded()||a.expand()}),a.container.on("click",".theme-actions .preview-theme",function(){ee.panel("themes").loadThemePreview(Z(this).data("slug"))}),a.container.on("click",".left",function(){a.previousTheme()}),a.container.on("click",".right",function(){a.nextTheme()}),a.container.on("click",".theme-backdrop, .close",function(){a.closeDetails()}),"local"===a.params.filter_type?a.container.on("input",".wp-filter-search-themes",function(e){a.filterSearch(e.currentTarget.value)}):"remote"===a.params.filter_type&&(e=_.debounce(a.checkTerm,500),a.contentContainer.on("input",".wp-filter-search",function(){ee.panel("themes").expanded()&&(e(a),a.expanded()||a.expand())}),a.contentContainer.on("click",".filter-group input",function(){a.filtersChecked(),a.checkTerm(a)})),a.contentContainer.on("click",".feature-filter-toggle",function(e){var t=Z(".customize-themes-full-container"),n=Z(e.currentTarget);if(a.filtersHeight=n.parent().next(".filter-drawer").height(),!(0 .accordion-section-title .customize-help-toggle").on("click",function(){if(!t.hasClass("cannot-expand")){var e=t.find(".customize-panel-description:first");t.hasClass("open")?(t.toggleClass("open"),e.slideUp(n.defaultExpandedArguments.duration,function(){e.trigger("toggled")}),Z(this).attr("aria-expanded",!1)):(e.slideDown(n.defaultExpandedArguments.duration,function(){e.trigger("toggled")}),t.toggleClass("open"),Z(this).attr("aria-expanded",!0))}})},sections:function(){return this._children("panel","section")},isContextuallyActive:function(){var e=this.sections(),t=0;return _(e).each(function(e){e.active()&&e.isContextuallyActive()&&(t+=1)}),0!==t},onChangeExpanded:function(e,t){if(t.unchanged)t.completeCallback&&t.completeCallback();else{var n=this,i=n.contentContainer,a=i.closest(".wp-full-overlay"),o=i.closest(".wp-full-overlay-sidebar-content"),s=n.headContainer.find(".accordion-section-title"),r=i.find(".customize-panel-back"),c=n.sections();e&&!i.hasClass("current-panel")?(ee.section.each(function(e){n.id!==e.panel()&&e.collapse({duration:0})}),ee.panel.each(function(e){n!==e&&e.collapse({duration:0})}),n.params.autoExpandSoleSection&&1===c.length&&c[0].active.get()?(i.addClass("current-panel skip-transition"),a.addClass("in-sub-panel"),c[0].expand({completeCallback:t.completeCallback})):(n._animateChangeExpanded(function(){s.attr("tabindex","-1"),r.attr("tabindex","0"),r.focus(),i.css("top",""),o.scrollTop(0),t.completeCallback&&t.completeCallback()}),i.addClass("current-panel"),a.addClass("in-sub-panel")),ee.state("expandedPanel").set(n)):!e&&i.hasClass("current-panel")&&(i.hasClass("skip-transition")?i.removeClass("skip-transition"):n._animateChangeExpanded(function(){s.attr("tabindex","0"),r.attr("tabindex","-1"),s.focus(),i.css("top",""),t.completeCallback&&t.completeCallback()}),a.removeClass("in-sub-panel"),i.removeClass("current-panel"),n===ee.state("expandedPanel").get()&&ee.state("expandedPanel").set(!1))}},renderContent:function(){var e,t=this;(e=0!==Z("#tmpl-"+t.templateSelector+"-content").length?wp.template(t.templateSelector+"-content"):wp.template("customize-panel-default-content"))&&t.headContainer&&t.contentContainer.html(e(_.extend({id:t.id},t.params)))}}),ee.ThemesPanel=ee.Panel.extend({initialize:function(e,t){this.installingThemes=[],ee.Panel.prototype.initialize.call(this,e,t)},canSwitchTheme:function(e){return!(!e||e!==ee.settings.theme.stylesheet)||"publish"===ee.state("selectedChangesetStatus").get()&&(""===ee.state("changesetStatus").get()||"auto-draft"===ee.state("changesetStatus").get())},attachEvents:function(){var t=this;function e(){t.canSwitchTheme()?t.notifications.remove("theme_switch_unavailable"):t.notifications.add(new ee.Notification("theme_switch_unavailable",{message:ee.l10n.themePreviewUnavailable,type:"warning"}))}ee.Panel.prototype.attachEvents.apply(t),ee.settings.theme._canInstall&&ee.settings.theme._filesystemCredentialsNeeded&&t.notifications.add(new ee.Notification("theme_install_unavailable",{message:ee.l10n.themeInstallUnavailable,type:"info",dismissible:!0})),e(),ee.state("selectedChangesetStatus").bind(e),ee.state("changesetStatus").bind(e),t.contentContainer.on("click",".customize-theme",function(){t.collapse()}),t.contentContainer.on("click",".customize-themes-section-title, .customize-themes-mobile-back",function(){Z(".wp-full-overlay").toggleClass("showing-themes")}),t.contentContainer.on("click",".theme-install",function(e){t.installTheme(e)}),t.contentContainer.on("click",".update-theme, #update-theme",function(e){e.preventDefault(),e.stopPropagation(),t.updateTheme(e)}),t.contentContainer.on("click",".delete-theme",function(e){t.deleteTheme(e)}),_.bindAll(t,"installTheme","updateTheme")},onChangeExpanded:function(e,t){var n,i,a=!1;ee.Panel.prototype.onChangeExpanded.apply(this,[e,t]),t.unchanged?t.completeCallback&&t.completeCallback():(n=this.headContainer.closest(".wp-full-overlay"),e?(n.addClass("in-themes-panel").delay(200).find(".customize-themes-full-container").addClass("animate"),_.delay(function(){n.addClass("themes-panel-expanded")},200),600",{id:"customize-control-"+e.replace(/]/g,"").replace(/\[/g,"-"),class:"customize-control customize-control-"+a.params.type})),a.id=e,a.selector="#customize-control-"+e.replace(/\]/g,"").replace(/\[/g,"-"),a.params.content?a.container=Z(a.params.content):a.container=Z(a.selector),a.params.templateId?a.templateSelector=a.params.templateId:a.templateSelector="customize-control-"+a.params.type+"-content",a.deferred=_.extend(a.deferred||{},{embedded:new Z.Deferred}),a.section=new ee.Value,a.priority=new ee.Value,a.active=new ee.Value,a.activeArgumentsQueue=[],a.notifications=new ee.Notifications({alt:a.altNotice}),a.elements=[],a.active.bind(function(e){var t=a.activeArgumentsQueue.shift();t=Z.extend({},a.defaultActiveArguments,t),a.onChangeActive(e,t)}),a.section.set(a.params.section),a.priority.set(isNaN(a.params.priority)?10:a.params.priority),a.active.set(a.params.active),ee.utils.bubbleChildValueChanges(a,["section","priority","active"]),a.settings={},n={},a.params.setting&&(n.default=a.params.setting),_.extend(n,a.params.settings),_.each(n,function(e,t){var n;_.isObject(e)&&_.isFunction(e.extended)&&e.extended(ee.Value)?a.settings[t]=e:_.isString(e)&&((n=ee(e))?a.settings[t]=n:o.push(e))}),i=function(){_.each(n,function(e,t){!a.settings[t]&&_.isString(e)&&(a.settings[t]=ee(e))}),a.settings[0]&&!a.settings.default&&(a.settings.default=a.settings[0]),a.setting=a.settings.default||null,a.linkElements(),a.embed()},0===o.length?i():ee.apply(ee,o.concat(i)),a.deferred.embedded.done(function(){a.linkElements(),a.setupNotifications(),a.ready()})},linkElements:function(){var i,a,o,s=this;i=s.container.find("[data-customize-setting-link], [data-customize-setting-key-link]"),a={},i.each(function(){var e,t,n=Z(this);if(!n.data("customizeSettingLinked")){if(n.data("customizeSettingLinked",!0),n.is(":radio")){if(e=n.prop("name"),a[e])return;a[e]=!0,n=i.filter('[name="'+e+'"]')}n.data("customizeSettingLink")?t=ee(n.data("customizeSettingLink")):n.data("customizeSettingKeyLink")&&(t=s.settings[n.data("customizeSettingKeyLink")]),t&&(o=new ee.Element(n),s.elements.push(o),o.sync(t),o.set(t()))}})},embed:function(){var e,n=this;e=function(e){var t;e&&ee.section(e,function(e){e.deferred.embedded.done(function(){t=e.contentContainer.is("ul")?e.contentContainer:e.contentContainer.find("ul:first"),n.container.parent().is(t)||(t.append(n.container),n.renderContent()),n.deferred.embedded.resolve()})})},n.section.bind(e),e(n.section.get())},ready:function(){var t,n=this;"dropdown-pages"===n.params.type&&n.params.allow_addition&&((t=n.container.find(".new-content-item")).hide(),n.container.on("click",".add-new-toggle",function(e){Z(e.currentTarget).slideUp(180),t.slideDown(180),t.find(".create-item-input").focus()}),n.container.on("click",".add-content",function(){n.addNewPage()}),n.container.on("keydown",".create-item-input",function(e){13===e.which&&n.addNewPage()}))},getNotificationsContainerElement:function(){var e,t,n=this;return(t=n.container.find(".customize-control-notifications-container:first")).length||(t=Z('
    '),n.container.hasClass("customize-control-nav_menu_item")?n.container.find(".menu-item-settings:first").prepend(t):n.container.hasClass("customize-control-widget_form")?n.container.find(".widget-inside:first").prepend(t):(e=n.container.find(".customize-control-title")).length?e.after(t):n.container.prepend(t)),t},setupNotifications:function(){var n,e,i=this;_.each(i.settings,function(n){n.notifications&&(n.notifications.bind("add",function(e){var t=_.extend({},e,{setting:n.id});i.notifications.add(new ee.Notification(n.id+":"+e.code,t))}),n.notifications.bind("remove",function(e){i.notifications.remove(n.id+":"+e.code)}))}),n=function(){var e=i.section();(!e||ee.section.has(e)&&ee.section(e).expanded())&&i.notifications.render()},i.notifications.bind("rendered",function(){var e=i.notifications.get();i.container.toggleClass("has-notifications",0!==e.length),i.container.toggleClass("has-error",0!==_.where(e,{type:"error"}).length)}),e=function(e,t){t&&ee.section.has(t)&&ee.section(t).expanded.unbind(n),e&&ee.section(e,function(e){e.expanded.bind(n),n()})},i.section.bind(e),e(i.section.get()),i.notifications.bind("change",_.debounce(n))},renderNotifications:function(){var e,t,n=this,i=!1;"undefined"!=typeof console&&console.warn&&console.warn("[DEPRECATED] wp.customize.Control.prototype.renderNotifications() is deprecated in favor of instantating a wp.customize.Notifications and calling its render() method."),(e=n.getNotificationsContainerElement())&&e.length&&(t=[],n.notifications.each(function(e){t.push(e),"error"===e.type&&(i=!0)}),0===t.length?e.stop().slideUp("fast"):e.stop().slideDown("fast",null,function(){Z(this).css("height","auto")}),n.notificationsTemplate||(n.notificationsTemplate=wp.template("customize-control-notifications")),n.container.toggleClass("has-notifications",0!==t.length),n.container.toggleClass("has-error",i),e.empty().append(Z.trim(n.notificationsTemplate({notifications:t,altNotice:Boolean(n.altNotice)}))))},expand:function(e){ee.section(this.section()).expand(e)},focus:t,onChangeActive:function(e,t){t.unchanged?t.completeCallback&&t.completeCallback():Z.contains(document,this.container[0])?e?this.container.slideDown(t.duration,t.completeCallback):this.container.slideUp(t.duration,t.completeCallback):(this.container.toggle(e),t.completeCallback&&t.completeCallback())},toggle:function(e){return this.onChangeActive(e,this.defaultActiveArguments)},activate:a.prototype.activate,deactivate:a.prototype.deactivate,_toggleActive:a.prototype._toggleActive,dropdownInit:function(){function e(e){"string"==typeof e&&i.statuses&&i.statuses[e]?n.html(i.statuses[e]).show():n.hide()}var t=this,n=this.container.find(".dropdown-status"),i=this.params,a=!1;this.container.on("click keydown",".dropdown",function(e){ee.utils.isKeydownButNotEnterEvent(e)||(e.preventDefault(),a||t.container.toggleClass("open"),t.container.hasClass("open")&&t.container.parent().parent().find("li.library-selected").focus(),a=!0,setTimeout(function(){a=!1},400))}),this.setting.bind(e),e(this.setting())},renderContent:function(){var e,t,n,i,a=this;t=["button","checkbox","date","datetime-local","email","month","number","password","radio","range","search","select","tel","time","text","textarea","week","url"],(n=a.templateSelector)==="customize-control-"+a.params.type+"-content"&&_.contains(t,a.params.type)&&!document.getElementById("tmpl-"+n)&&0===a.container.children().length&&(n="customize-control-default-content"),document.getElementById("tmpl-"+n)&&(e=wp.template(n))&&a.container&&a.container.html(e(a.params)),a.notifications.container=a.getNotificationsContainerElement(),(!(i=a.section())||ee.section.has(i)&&ee.section(i).expanded())&&a.notifications.render()},addNewPage:function(){var e,a,o,t,s,r,c=this;"dropdown-pages"===c.params.type&&c.params.allow_addition&&ee.Menus&&(a=c.container.find(".add-new-toggle"),o=c.container.find(".new-content-item"),t=c.container.find(".create-item-input"),s=t.val(),r=c.container.find("select"),s?(t.removeClass("invalid"),t.attr("disabled","disabled"),(e=ee.Menus.insertAutoDraftPost({post_title:s,post_type:"page"})).done(function(e){var t,n,i;t=new ee.Menus.AvailableItemModel({id:"post-"+e.post_id,title:s,type:"post_type",type_label:ee.Menus.data.l10n.page_label,object:"page",object_id:e.post_id,url:e.url}),ee.Menus.availableMenuItemsPanel.collection.add(t),n=Z("#available-menu-items-post_type-page").find(".available-menu-items-list"),i=wp.template("available-menu-item"),n.prepend(i(t.attributes)),r.focus(),c.setting.set(String(e.post_id)),o.slideUp(180),a.slideDown(180)}),e.always(function(){t.val("").removeAttr("disabled")})):t.addClass("invalid"))}}),ee.ColorControl=ee.Control.extend({ready:function(){var t,n=this,e="hue"===this.params.mode,i=!1;e?(t=this.container.find(".color-picker-hue")).val(n.setting()).wpColorPicker({change:function(e,t){i=!0,n.setting(t.color.h()),i=!1}}):(t=this.container.find(".color-picker-hex")).val(n.setting()).wpColorPicker({change:function(){i=!0,n.setting.set(t.wpColorPicker("color")),i=!1},clear:function(){i=!0,n.setting.set(""),i=!1}}),n.setting.bind(function(e){i||(t.val(e),t.wpColorPicker("color",e))}),n.container.on("keydown",function(e){27===e.which&&n.container.find(".wp-picker-container").hasClass("wp-picker-active")&&(t.wpColorPicker("close"),n.container.find(".wp-color-result").focus(),e.stopPropagation())})}}),ee.MediaControl=ee.Control.extend({ready:function(){var n=this;function e(e){var t=Z.Deferred();n.extended(ee.UploadControl)?t.resolve():(e=parseInt(e,10),_.isNaN(e)||e<=0?(delete n.params.attachment,t.resolve()):n.params.attachment&&n.params.attachment.id===e&&t.resolve()),"pending"===t.state()&&wp.media.attachment(e).fetch().done(function(){n.params.attachment=this.attributes,t.resolve(),wp.customize.previewer.send(n.setting.id+"-attachment-data",this.attributes)}),t.done(function(){n.renderContent()})}_.bindAll(n,"restoreDefault","removeFile","openFrame","select","pausePlayer"),n.container.on("click keydown",".upload-button",n.openFrame),n.container.on("click keydown",".upload-button",n.pausePlayer),n.container.on("click keydown",".thumbnail-image img",n.openFrame),n.container.on("click keydown",".default-button",n.restoreDefault),n.container.on("click keydown",".remove-button",n.pausePlayer),n.container.on("click keydown",".remove-button",n.removeFile),n.container.on("click keydown",".remove-button",n.cleanupPlayer),ee.section(n.section()).container.on("expanded",function(){n.player&&n.player.setControlsSize()}).on("collapsed",function(){n.pausePlayer()}),e(n.setting()),n.setting.bind(e)},pausePlayer:function(){this.player&&this.player.pause()},cleanupPlayer:function(){this.player&&wp.media.mixin.removePlayer(this.player)},openFrame:function(e){ee.utils.isKeydownButNotEnterEvent(e)||(e.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 e,t=this.frame.state().get("selection").first().toJSON(),n=window._wpmejsSettings||{};this.params.attachment=t,this.setting(t.id),(e=this.container.find("audio, video").get(0))?this.player=new MediaElementPlayer(e,n):this.cleanupPlayer()},restoreDefault:function(e){ee.utils.isKeydownButNotEnterEvent(e)||(e.preventDefault(),this.params.attachment=this.params.defaultAttachment,this.setting(this.params.defaultAttachment.url))},removeFile:function(e){ee.utils.isKeydownButNotEnterEvent(e)||(e.preventDefault(),this.params.attachment={},this.setting(""),this.renderContent())}}),ee.UploadControl=ee.MediaControl.extend({select:function(){var e,t=this.frame.state().get("selection").first().toJSON(),n=window._wpmejsSettings||{};this.params.attachment=t,this.setting(t.url),(e=this.container.find("audio, video").get(0))?this.player=new MediaElementPlayer(e,n):this.cleanupPlayer()},success:function(){},removerVisibility:function(){}}),ee.ImageControl=ee.UploadControl.extend({thumbnailSrc:function(){}}),ee.BackgroundControl=ee.UploadControl.extend({ready:function(){ee.UploadControl.prototype.ready.apply(this,arguments)},select:function(){ee.UploadControl.prototype.select.apply(this,arguments),wp.ajax.post("custom-background-add",{nonce:_wpCustomizeBackground.nonces.add,wp_customize:"on",customize_theme:ee.settings.theme.stylesheet,attachment_id:this.params.attachment.id})}}),ee.BackgroundPositionControl=ee.Control.extend({ready:function(){var e,i=this;i.container.on("change",'input[name="background-position"]',function(){var e=Z(this).val().split(" ");i.settings.x(e[0]),i.settings.y(e[1])}),e=_.debounce(function(){var e,t,n;e=i.settings.x.get(),t=i.settings.y.get(),n=String(e)+" "+String(t),i.container.find('input[name="background-position"][value="'+n+'"]').click()}),i.settings.x.bind(e),i.settings.y.bind(e),e()}}),ee.CroppedImageControl=ee.MediaControl.extend({openFrame:function(e){ee.utils.isKeydownButNotEnterEvent(e)||(this.initFrame(),this.frame.setState("library").open())},initFrame:function(){var e=_wpMediaViewsL10n;this.frame=wp.media({button:{text:e.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 e=this.frame.state().get("selection").first().toJSON();this.params.width!==e.width||this.params.height!==e.height||this.params.flex_width||this.params.flex_height?this.frame.setState("cropper"):(this.setImageFromAttachment(e),this.frame.close())},onCropped:function(e){this.setImageFromAttachment(e)},calculateImageSelectOptions:function(e,t){var n,i,a,o=t.get("control"),s=!!parseInt(o.params.flex_width,10),r=!!parseInt(o.params.flex_height,10),c=e.get("width"),l=e.get("height"),d=parseInt(o.params.width,10),u=parseInt(o.params.height,10),p=d/u,h=d,f=u;return t.set("canSkipCrop",!o.mustBeCropped(s,r,d,u,c,l)),p",{title:ee.l10n.previewIframeTitle,name:"customize-"+a.channel()}),a.iframe.attr("onmousewheel",""),a.iframe.attr("sandbox","allow-forms allow-modals allow-orientation-lock allow-pointer-lock allow-popups allow-popups-to-escape-sandbox allow-presentation allow-same-origin allow-scripts"),c?a.iframe.attr("data-src",e.href):a.iframe.attr("src",e.href),a.iframe.appendTo(a.container),a.targetWindow(a.iframe[0].contentWindow),c&&((i=Z("
    ",{action:e.href,target:a.iframe.attr("name"),method:"post",hidden:"hidden"})).append(Z("",{type:"hidden",name:"_method",value:"GET"})),_.each(a.query,function(e,t){i.append(Z("",{type:"hidden",name:t,value:e}))}),a.container.append(i),i.submit(),i.remove()),a.bind("iframe-loading-error",function(e){a.iframe.remove(),0!==e?-1!==e?t.rejectWith(a,["request failure"]):t.rejectWith(a,["cheatin"]):a.login(t)}),a.iframe.one("load",function(){o=!0,s?t.resolveWith(a,[r]):setTimeout(function(){t.rejectWith(a,["ready timeout"])},a.sensitivity)})},login:function(n){var i,a=this;if(i=function(){n.rejectWith(a,["logged out"])},this.triedLogin)return i();Z.get(ee.settings.url.ajax,{action:"logged-in"}).fail(i).done(function(e){var t;"1"!==e&&i(),(t=Z(""; @@ -352,8 +352,13 @@ ' . __( 'Search results for “%s”' ) . '', esc_html( $s ) ); + echo ''; + printf( + /* translators: %s: Search query. */ + __( 'Search results for: %s' ), + '' . esc_html( $s ) . '' + ); + echo ''; } ?> diff --git a/wp-admin/network/upgrade.php b/wp-admin/network/upgrade.php index 98e3a8b41f..8b0194e6ce 100644 --- a/wp-admin/network/upgrade.php +++ b/wp-admin/network/upgrade.php @@ -45,7 +45,7 @@ switch ( $action ) { case 'upgrade': - $n = ( isset( $_GET['n'] ) ) ? intval( $_GET['n'] ) : 0; + $n = ( isset( $_GET['n'] ) ) ? (int) $_GET['n'] : 0; if ( $n < 5 ) { /** diff --git a/wp-admin/network/users.php b/wp-admin/network/users.php index c2e6ee5d6b..e15a5811cd 100644 --- a/wp-admin/network/users.php +++ b/wp-admin/network/users.php @@ -26,7 +26,7 @@ check_admin_referer( 'deleteuser' ); - $id = intval( $_GET['id'] ); + $id = (int) $_GET['id']; if ( $id > 1 ) { $_POST['allusers'] = array( $id ); // confirm_delete_users() can only handle arrays. $title = __( 'Users' ); @@ -278,8 +278,13 @@ endif; if ( strlen( $usersearch ) ) { - /* translators: %s: Search query. */ - printf( '' . __( 'Search results for “%s”' ) . '', esc_html( $usersearch ) ); + echo ''; + printf( + /* translators: %s: Search query. */ + __( 'Search results for: %s' ), + '' . esc_html( $usersearch ) . '' + ); + echo ''; } ?> diff --git a/wp-admin/options-general.php b/wp-admin/options-general.php index 975e01937e..aad04ced9b 100644 --- a/wp-admin/options-general.php +++ b/wp-admin/options-general.php @@ -18,7 +18,7 @@ $title = __( 'General Settings' ); $parent_file = 'options-general.php'; -/* translators: Date and time format for exact current time, mainly about timezones, see https://www.php.net/date */ +/* translators: Date and time format for exact current time, mainly about timezones, see https://www.php.net/manual/datetime.format.php */ $timezone_format = _x( 'Y-m-d H:i:s', 'timezone date format' ); add_action( 'admin_head', 'options_general_add_js' ); diff --git a/wp-admin/options-permalink.php b/wp-admin/options-permalink.php index a52e95ebb7..55a0cc2304 100644 --- a/wp-admin/options-permalink.php +++ b/wp-admin/options-permalink.php @@ -72,7 +72,7 @@ $prefix = '/index.php'; } -/** +/* * In a subdirectory configuration of multisite, the `/blog` prefix is used by * default on the main site to avoid collisions with other sites created on that * network. If the `permalink_structure` option has been changed to remove this @@ -82,36 +82,17 @@ $blog_prefix = '/blog'; } -$category_base = get_option( 'category_base' ); -$tag_base = get_option( 'tag_base' ); -$update_required = false; - -if ( $iis7_permalinks ) { - if ( ( ! file_exists( $home_path . 'web.config' ) && win_is_writable( $home_path ) ) || win_is_writable( $home_path . 'web.config' ) ) { - $writable = true; - } else { - $writable = false; - } -} elseif ( $is_nginx ) { - $writable = false; -} else { - if ( ( ! file_exists( $home_path . '.htaccess' ) && is_writable( $home_path ) ) || is_writable( $home_path . '.htaccess' ) ) { - $writable = true; - } else { - $writable = false; - $existing_rules = array_filter( extract_from_markers( $home_path . '.htaccess', 'WordPress' ) ); - $new_rules = array_filter( explode( "\n", $wp_rewrite->mod_rewrite_rules() ) ); - $update_required = ( $new_rules !== $existing_rules ); - } -} +$category_base = get_option( 'category_base' ); +$tag_base = get_option( 'tag_base' ); -$using_index_permalinks = $wp_rewrite->using_index_permalinks(); +$structure_updated = false; +$htaccess_update_required = false; if ( isset( $_POST['permalink_structure'] ) || isset( $_POST['category_base'] ) ) { check_admin_referer( 'update-permalink' ); if ( isset( $_POST['permalink_structure'] ) ) { - if ( isset( $_POST['selection'] ) && 'custom' != $_POST['selection'] ) { + if ( isset( $_POST['selection'] ) && 'custom' !== $_POST['selection'] ) { $permalink_structure = $_POST['selection']; } else { $permalink_structure = $_POST['permalink_structure']; @@ -129,46 +110,78 @@ $permalink_structure = sanitize_option( 'permalink_structure', $permalink_structure ); $wp_rewrite->set_permalink_structure( $permalink_structure ); + + $structure_updated = true; } if ( isset( $_POST['category_base'] ) ) { $category_base = $_POST['category_base']; + if ( ! empty( $category_base ) ) { $category_base = $blog_prefix . preg_replace( '#/+#', '/', '/' . str_replace( '#', '', $category_base ) ); } + $wp_rewrite->set_category_base( $category_base ); } if ( isset( $_POST['tag_base'] ) ) { $tag_base = $_POST['tag_base']; + if ( ! empty( $tag_base ) ) { $tag_base = $blog_prefix . preg_replace( '#/+#', '/', '/' . str_replace( '#', '', $tag_base ) ); } + $wp_rewrite->set_tag_base( $tag_base ); } +} + +if ( $iis7_permalinks ) { + if ( ( ! file_exists( $home_path . 'web.config' ) && win_is_writable( $home_path ) ) || win_is_writable( $home_path . 'web.config' ) ) { + $writable = true; + } else { + $writable = false; + } +} elseif ( $is_nginx ) { + $writable = false; +} else { + if ( ( ! file_exists( $home_path . '.htaccess' ) && is_writable( $home_path ) ) || is_writable( $home_path . '.htaccess' ) ) { + $writable = true; + } else { + $writable = false; + $existing_rules = array_filter( extract_from_markers( $home_path . '.htaccess', 'WordPress' ) ); + $new_rules = array_filter( explode( "\n", $wp_rewrite->mod_rewrite_rules() ) ); + + $htaccess_update_required = ( $new_rules !== $existing_rules ); + } +} +$using_index_permalinks = $wp_rewrite->using_index_permalinks(); + +if ( $structure_updated ) { $message = __( 'Permalink structure updated.' ); - if ( $iis7_permalinks ) { - if ( $permalink_structure && ! $using_index_permalinks && ! $writable ) { + if ( ! is_multisite() && $permalink_structure && ! $using_index_permalinks ) { + if ( $iis7_permalinks ) { + if ( ! $writable ) { + $message = sprintf( + /* translators: %s: web.config */ + __( 'You should update your %s file now.' ), + 'web.config' + ); + } else { + $message = sprintf( + /* translators: %s: web.config */ + __( 'Permalink structure updated. Remove write access on %s file now!' ), + 'web.config' + ); + } + } elseif ( ! $is_nginx && $htaccess_update_required && ! $writable ) { $message = sprintf( - /* translators: %s: web.config */ + /* translators: %s: .htaccess */ __( 'You should update your %s file now.' ), - 'web.config' - ); - } elseif ( $permalink_structure && ! $using_index_permalinks && $writable ) { - $message = sprintf( - /* translators: %s: web.config */ - __( 'Permalink structure updated. Remove write access on %s file now!' ), - 'web.config' + '.htaccess' ); } - } elseif ( ! $is_nginx && $permalink_structure && ! $using_index_permalinks && ! $writable && $update_required ) { - $message = sprintf( - /* translators: %s: .htaccess */ - __( 'You should update your %s file now.' ), - '.htaccess' - ); } if ( ! get_settings_errors() ) { @@ -400,7 +413,7 @@ class="button button-secondary"

    Documentation on Nginx configuration.' ); ?>

    'site-visibility', 'title' => has_action( 'blog_privacy_selector' ) ? __( 'Site visibility' ) : __( 'Search engine visibility' ), - 'content' => '

    ' . __( 'You can choose whether or not your site will be crawled by robots, ping services, and spiders. If you want those services to ignore your site, click the checkbox next to “Discourage search engines from indexing this site” and click the Save Changes button at the bottom of the screen. Note that your privacy is not complete; your site is still visible on the web.' ) . '

    ' . - '

    ' . __( 'When this setting is in effect, a reminder is shown in the At a Glance box of the Dashboard that says, “Search engines discouraged,” to remind you that your site is not being crawled.' ) . '

    ', + 'content' => '

    ' . __( 'You can choose whether or not your site will be crawled by robots, ping services, and spiders. If you want those services to ignore your site, click the checkbox next to “Discourage search engines from indexing this site” and click the Save Changes button at the bottom of the screen.' ) . '

    ' . + '

    ' . __( 'Note that even when set to discourage search engines, your site is still visible on the web and not all search engines adhere to this directive.' ) . '

    ' . + '

    ' . __( 'When this setting is in effect, a reminder is shown in the At a Glance box of the Dashboard that says, “Search engines discouraged”, to remind you that you have directed search engines to not crawl your site.' ) . '

    ', ) ); @@ -137,10 +138,10 @@ -

    Warning: these pages should not be the same!' ); ?>

    +

    Warning: these pages should not be the same!' ); ?>

    -

    Warning: these pages should not be the same as your Privacy Policy page!' ); ?>

    +

    Warning: these pages should not be the same as your Privacy Policy page!' ); ?>

    diff --git a/wp-admin/plugin-editor.php b/wp-admin/plugin-editor.php index 50d5acee4f..7467ace6aa 100644 --- a/wp-admin/plugin-editor.php +++ b/wp-admin/plugin-editor.php @@ -195,7 +195,7 @@

    ' . esc_html( $file ) . '' ); } else { @@ -203,7 +203,7 @@ printf( __( 'Browsing %s (active)' ), '' . esc_html( $file ) . '' ); } } else { - if ( is_writeable( $real_file ) ) { + if ( is_writable( $real_file ) ) { /* translators: %s: Plugin file name. */ printf( __( 'Editing %s (inactive)' ), '' . esc_html( $file ) . '' ); } else { @@ -275,7 +275,7 @@

    - +
    diff --git a/wp-admin/plugins.php b/wp-admin/plugins.php index fe8ea41fb2..d8f909a7da 100644 --- a/wp-admin/plugins.php +++ b/wp-admin/plugins.php @@ -162,7 +162,7 @@ echo '
    '; echo '

    ' . esc_html( $title ) . '

    '; - $url = self_admin_url( 'update.php?action=update-selected&plugins=' . urlencode( join( ',', $plugins ) ) ); + $url = self_admin_url( 'update.php?action=update-selected&plugins=' . urlencode( implode( ',', $plugins ) ) ); $url = wp_nonce_url( $url, 'bulk-update-plugins' ); echo ""; @@ -727,8 +727,13 @@ } if ( strlen( $s ) ) { - /* translators: %s: Search query. */ - printf( '' . __( 'Search results for “%s”' ) . '', esc_html( urldecode( $s ) ) ); + echo ''; + printf( + /* translators: %s: Search query. */ + __( 'Search results for: %s' ), + '' . esc_html( urldecode( $s ) ) . '' + ); + echo ''; } ?> diff --git a/wp-admin/post.php b/wp-admin/post.php index 759e4b6b93..c4a0ab17e5 100644 --- a/wp-admin/post.php +++ b/wp-admin/post.php @@ -291,7 +291,14 @@ wp_die( __( 'Error in restoring the item from Trash.' ) ); } - wp_redirect( add_query_arg( 'untrashed', 1, $sendback ) ); + $sendback = add_query_arg( + array( + 'untrashed' => 1, + 'ids' => $post_id, + ), + $sendback + ); + wp_redirect( $sendback ); exit; case 'delete': diff --git a/wp-admin/privacy-policy-guide.php b/wp-admin/privacy-policy-guide.php index 566f3f14cd..137a5016f9 100644 --- a/wp-admin/privacy-policy-guide.php +++ b/wp-admin/privacy-policy-guide.php @@ -10,7 +10,7 @@ require_once __DIR__ . '/admin.php'; if ( ! current_user_can( 'manage_privacy_options' ) ) { - wp_die( __( 'Sorry, you are not allowed to manage privacy on this site.' ) ); + wp_die( __( 'Sorry, you are not allowed to manage privacy options on this site.' ) ); } if ( ! class_exists( 'WP_Privacy_Policy_Content' ) ) { diff --git a/wp-admin/privacy.php b/wp-admin/privacy.php index a007b4347d..222f4b13b2 100644 --- a/wp-admin/privacy.php +++ b/wp-admin/privacy.php @@ -18,15 +18,27 @@
    -
    - +
    + + ' ); ?>" /> + <?php _e( 'Code is Poetry' ); ?>' ); ?>" /> +
    -
    -

    - - -

    +
    +
    +

    + + +

    +
    + +
    + +
    +
    + <?php _e( 'New' ); ?>' ); ?>" /> +
    ').css(n).appendTo(a)[0];return c.set(_.some({caret:i,element:e,before:t})),c.get().each(function(e){t&&gn(e.caret).addClass("mce-visual-caret-before")}),f(),(r=e.ownerDocument.createRange()).setStart(s,0),r.setEnd(s,0),r},hide:l,getCss:function(){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;}"},reposition:function(){c.get().each(function(e){var t=fs(a,e.element,e.before);gn(e.caret).css(t)})},destroy:function(){return he.clearInterval(t)}}},ms=function(){return cs.isIE()||cs.isEdge()||cs.isFirefox()},gs=function(e){return ls(e)||jo.isTable(e)&&ms()},ps=jo.isContentEditableFalse,hs=jo.matchStyleValues("display","block table table-cell table-caption list-item"),vs=ka,ys=Sa,bs=jo.isElement,Cs=Ha,xs=function(e){return 0=o.data.length-1)return 1===e&&(r=s(o))?Rs(r):n;if(Oa(o)&&i<=1)return-1===e&&(r=u(o))?Ds(r):n;if(i===o.data.length)return(r=s(o))?Rs(r):n;if(0===i)return(r=u(o))?Ds(r):n}return n},Bs=function(e,t){return _.from(ks(e?0:-1,t)).filter(ps)},Ps=function(e,t,n){var r=Os(e,t,n);return-1===e?Su.fromRangeStart(r):Su.fromRangeEnd(r)},Is=function(e){return _.from(e.getNode()).map(ar.fromDom)},Ls=function(e,t){for(;t=e(t);)if(t.isVisible())return t;return t},Fs=function(e,t){var n=Ts(e,t);return!(n||!jo.isBr(e.getNode()))||n};(ku=Tu||(Tu={}))[ku.Backwards=-1]="Backwards",ku[ku.Forwards=1]="Forwards";var Ms,zs,Us,js=jo.isContentEditableFalse,Vs=jo.isText,Hs=jo.isElement,qs=jo.isBr,$s=Ha,Ws=function(e){return Ua(e)||!!qa(t=e)&&!0!==j(te(t.getElementsByTagName("*")),function(e,t){return e||Ia(t)},!1);var t},Ks=$a,Xs=function(e,t){return e.hasChildNodes()&&tu.length-1)return!!fc(c,i,r)||lc(i,r);i=u[s[o]]}3===i.nodeType&&(a=Math.min(s[0],i.nodeValue.length)),1===i.nodeType&&(a=Math.min(s[0],i.childNodes.length)),t?r.setStart(i,a):r.setEnd(i,a)}return!0},mc=function(e){return jo.isText(e)&&0=t.nodeValue.length&&e.splice(0,1),t=e[e.length-1],0===m&&0h.length-1?p=h.length-1:p<0&&(p=0),d=h[p]||g),l===d)return o(v([l]));for(n=e.findCommonAncestor(l,d),a=l;a;a=a.parentNode){if(a===d)return C(l,n,!0);if(a===n)break}for(a=d;a;a=a.parentNode){if(a===l)return C(d,n);if(a===n)break}r=b(l,n)||l,i=b(d,n)||d,C(l,r,!0),(s=y(r===l?r:r.nextSibling,"nextSibling",i===d?i.nextSibling:i)).length&&o(v(s)),C(d,i)}},Fc=(Ms=mr,zs="text",{get:function(e){if(!Ms(e))throw new Error("Can only get "+zs+" value of a "+zs+" node");return Us(e).getOr("")},getOption:Us=function(e){return Ms(e)?_.from(e.dom().nodeValue):_.none()},set:function(e,t){if(!Ms(e))throw new Error("Can only set raw "+zs+" value of a "+zs+" node");e.dom().nodeValue=t}}),Mc=function(e){return Fc.get(e)},zc=function(r,o,i,a){return Vr(o).fold(function(){return"skipping"},function(e){return"br"===a||mr(n=o)&&"\ufeff"===Mc(n)?"valid":dr(t=o)&&Gi(t,aa())?"existing":Ju(o)?"caret":wc.isValid(r,i,a)&&wc.isValid(r,lr(e),i)?"valid":"invalid-child";var t,n})},Uc=function(e,t,n,r){var o,i,a=t.uid,u=void 0===a?(o="mce-annotation",i=(new Date).getTime(),o+"_"+Math.floor(1e9*Math.random())+ ++ga+String(i)):a,s=function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var o=0;for(r=Object.getOwnPropertySymbols(e);o=n.startOffset&&"\xa0"===n.startContainer.nodeValue[n.startOffset]),t.setStart(r.startContainer,r.startOffset),t.setEnd(r.endContainer,r.endOffset),e.selection.setRng(t)),s.selection.getRng().collapsed){var i=Uc(s.getDoc(),f,c,l.decorate);ya(i,"\xa0"),s.selection.getRng().insertNode(i.dom()),s.selection.select(i.dom())}else{var a=Yu.getPersistentBookmark(s.selection,!1),u=s.selection.getRng();jc(s,u,c,l.decorate,f),s.selection.moveToBookmark(a)}})};function Hc(s){var n,r=(n={},{register:function(e,t){n[e]={name:e,settings:t}},lookup:function(e){return n.hasOwnProperty(e)?_.from(n[e]).map(function(e){return e.settings}):_.none()}});da(s,r);var o=fa(s);return{register:function(e,t){r.register(e,t)},annotate:function(t,n){r.lookup(t).each(function(e){Vc(s,t,e,n)})},annotationChanged:function(e,t){o.addListener(e,t)},remove:function(e){ca(s,_.some(e)).each(function(e){var t=e.elements;z(t,ji)})},getAll:function(e){var t,n,r,o,i,a,u=(t=s,n=e,r=ar.fromDom(t.getBody()),o=Qi(r,"["+ua()+'="'+n+'"]'),i={},z(o,function(e){var t=Er(e,sa()),n=i.hasOwnProperty(t)?i[t]:[];i[t]=n.concat([e])}),i);return a=function(e){return W(e,function(e){return e.dom()})},vr(u,function(e,t){return{k:t,v:a(e,t)}})}}}var qc=function(e){return Xt.grep(e.childNodes,function(e){return"LI"===e.nodeName})},$c=function(e){return e&&e.firstChild&&e.firstChild===e.lastChild&&("\xa0"===(t=e.firstChild).data||jo.isBr(t));var t},Wc=function(e){return 0'))},rl=function(n){Gr(n).each(function(t){Hr(t).each(function(e){Co(n)&&wo(t)&&Co(e)&&Ui(t)})})},ol=Xt.makeMap;function il(e){var u,s,c,l,f,d=[];return u=(e=e||{}).indent,s=ol(e.indent_before||""),c=ol(e.indent_after||""),l=ti.getEncodeFunc(e.entity_encoding||"raw",e.entities),f="html"===e.element_format,{start:function(e,t,n){var r,o,i,a;if(u&&s[e]&&0":" />",n&&u&&c[e]&&0"),u&&c[e]&&0")},comment:function(e){d.push("\x3c!--",e,"--\x3e")},pi:function(e,t){t?d.push(""):d.push(""),u&&d.push("\n")},doctype:function(e){d.push("",u?"\n":"")},reset:function(){d.length=0},getContent:function(){return d.join("").replace(/\n$/,"")}}}function al(t,g){void 0===g&&(g=di());var p=il(t);return(t=t||{}).validate=!("validate"in t)||t.validate,{serialize:function(e){var f,d;d=t.validate,f={3:function(e){p.text(e.value,e.raw)},8:function(e){p.comment(e.value)},7:function(e){p.pi(e.name,e.value)},10:function(e){p.doctype(e.value)},4:function(e){p.cdata(e.value)},11:function(e){if(e=e.firstChild)for(;m(e),e=e.next;);}},p.reset();var m=function(e){var t,n,r,o,i,a,u,s,c,l=f[e.type];if(l)l(e);else{if(t=e.name,n=e.shortEnded,r=e.attributes,d&&r&&1|)$/," "):o("nextSibling")||(t=t.replace(/( | )(
    |)$/," "))),t}(g.getRng(),t)),r=e.parser,m=n.merge,o=al({validate:e.settings.validate},e.schema),d='​',s={content:t,format:"html",selection:!0,paste:n.paste},(s=e.fire("BeforeSetContent",s)).isDefaultPrevented())e.fire("SetContent",{content:s.content,format:"html",selection:!0,paste:n.paste});else{-1===(t=s.content).indexOf("{$caret}")&&(t+="{$caret}"),t=t.replace(/\{\$caret\}/,d);var h,v,y,b,C,x,w=(l=g.getRng()).startContainer||(l.parentElement?l.parentElement():null),N=e.getBody();w===N&&g.isCollapsed()&&p.isBlock(N.firstChild)&&(h=e,(v=N.firstChild)&&!h.schema.getShortEndedElements()[v.nodeName])&&p.isEmpty(N.firstChild)&&((l=p.createRng()).setStart(N.firstChild,0),l.setEnd(N.firstChild,0),g.setRng(l)),g.isCollapsed()||(e.selection.setRng(cl(e.selection.getRng())),e.getDoc().execCommand("Delete",!1,null),y=e.selection.getRng(),b=t,C=y.startContainer,x=y.startOffset,3===C.nodeType&&y.collapsed&&("\xa0"===C.data[x]?(C.deleteData(x,1),/[\u00a0| ]$/.test(b)||(b+=" ")):"\xa0"===C.data[x-1]&&(C.deleteData(x-1,1),/[\u00a0| ]$/.test(b)||(b=" "+b))),t=b);var E,S,T,k={context:(i=g.getNode()).nodeName.toLowerCase(),data:n.data,insert:!0};if(u=r.parse(t,k),!0===n.paste&&Gc(e.schema,u)&&Qc(p,i))return l=Jc(o,p,e.selection.getRng(),u),e.selection.setRng(l),void e.fire("SetContent",s);if(function(e){for(var t=e;t=t.walk();)1===t.type&&t.attr("data-mce-fragment","1")}(u),"mce_marker"===(f=u.lastChild).attr("id"))for(f=(c=f).prev;f;f=f.walk(!0))if(3===f.type||!p.isBlock(f.name)){e.schema.isValidChild(f.parent.name,"span")&&f.parent.insert(c,f,"br"===f.name);break}if(e._selectionOverrides.showBlockCaretContainer(i),k.invalid){for(fl(e,d),i=g.getNode(),a=e.getBody(),9===i.nodeType?i=f=a:f=i;f!==a;)f=(i=f).parentNode;t=i===a?a.innerHTML:p.getOuterHTML(i),t=o.serialize(r.parse(t.replace(//i,function(){return o.serialize(u)}))),i===a?p.setHTML(a,t):p.setOuterHTML(i,t)}else!function(e,t,n){if("all"===n.getAttribute("data-mce-bogus"))n.parentNode.insertBefore(e.dom.createFragment(t),n);else{var r=n.firstChild,o=n.lastChild;!r||r===o&&"BR"===r.nodeName?e.dom.setHTML(n,t):fl(e,t)}}(e,t=o.serialize(u),i);!function(e,t){var n=e.schema.getTextInlineElements(),r=e.dom;if(t){var o=e.getBody(),i=new el(r);Xt.each(r.select("*[data-mce-fragment]"),function(e){for(var t=e.parentNode;t&&t!==o;t=t.parentNode)n[e.nodeName.toLowerCase()]&&i.compare(t,e)&&r.remove(e,!0)})}}(e,m),function(n,e){var t,r,o,i,a,u=n.dom,s=n.selection;if(e){if(n.selection.scrollIntoView(e),t=function(e){for(var t=n.getBody();e&&e!==t;e=e.parentNode)if("false"===n.dom.getContentEditable(e))return e;return null}(e))return u.remove(e),s.select(t);var c=u.createRng();(i=e.previousSibling)&&3===i.nodeType?(c.setStart(i,i.nodeValue.length),fe.ie||(a=e.nextSibling)&&3===a.nodeType&&(i.appendData(a.data),a.parentNode.removeChild(a))):(c.setStartBefore(e),c.setEndBefore(e)),r=u.getParent(e,u.isBlock),u.remove(e),r&&u.isEmpty(r)&&(n.$(r).empty(),c.setStart(r,0),c.setEnd(r,0),ll(r)||r.getAttribute("data-mce-fragment")||!(o=function(e){var t=_u.fromRangeStart(e);if(t=Js(n.getBody()).next(t))return t.toRange()}(c))?u.add(r,u.create("br",{"data-mce-bogus":"1"})):(c=o,u.remove(r))),s.setRng(c)}}(e,p.get("mce_marker")),E=e.getBody(),Xt.each(E.getElementsByTagName("*"),function(e){e.removeAttribute("data-mce-fragment")}),S=e.dom,T=e.selection.getStart(),_.from(S.getParent(T,"td,th")).map(ar.fromDom).each(rl),e.fire("SetContent",s),e.addVisual()}},ml=function(e,t){var n,r,o="string"!=typeof(n=t)?(r=Xt.extend({paste:n.paste,data:{paste:n.paste}},n),{content:n.content,details:r}):{content:n,details:{}};dl(e,o.content,o.details)},gl=/[\u0591-\u07FF\uFB1D-\uFDFF\uFE70-\uFEFC]/,pl=function(e,t,n){var r=e.getParam(t,n);if(-1!==r.indexOf("=")){var o=e.getParam(t,"","hash");return o.hasOwnProperty(e.id)?o[e.id]:n}return r},hl=function(e){return e.getParam("iframe_attrs",{})},vl=function(e){return e.getParam("doctype","")},yl=function(e){return e.getParam("document_base_url","")},bl=function(e){return pl(e,"body_id","tinymce")},Cl=function(e){return pl(e,"body_class","")},xl=function(e){return e.getParam("content_security_policy","")},wl=function(e){return e.getParam("br_in_pre",!0)},Nl=function(e){if(e.getParam("force_p_newlines",!1))return"p";var t=e.getParam("forced_root_block","p");return!1===t?"":t},El=function(e){return e.getParam("forced_root_block_attrs",{})},Sl=function(e){return e.getParam("br_newline_selector",".mce-toc h2,figcaption,caption")},Tl=function(e){return e.getParam("no_newline_selector","")},kl=function(e){return e.getParam("keep_styles",!0)},_l=function(e){return e.getParam("end_container_on_empty_block",!1)},Al=function(e){return Xt.explode(e.getParam("font_size_style_values",""))},Rl=function(e){return Xt.explode(e.getParam("font_size_classes",""))},Dl=function(e){return e.getParam("images_dataimg_filter",q(!0),"function")},Ol=function(e){return e.getParam("automatic_uploads",!0,"boolean")},Bl=function(e){return e.getParam("images_reuse_filename",!1,"boolean")},Pl=function(e){return e.getParam("images_replace_blob_uris",!0,"boolean")},Il=function(e){return e.getParam("images_upload_url","","string")},Ll=function(e){return e.getParam("images_upload_base_path","","string")},Fl=function(e){return e.getParam("images_upload_credentials",!1,"boolean")},Ml=function(e){return e.getParam("images_upload_handler",null,"function")},zl=function(e){return e.getParam("content_css_cors",!1,"boolean")},Ul=function(e){return e.getParam("inline_boundaries_selector","a[href],code,.mce-annotation","string")},jl=function(e,t){if(!t)return t;var n=t.container(),r=t.offset();return e?Ta(n)?jo.isText(n.nextSibling)?_u(n.nextSibling,0):_u.after(n):Aa(t)?_u(n,r+1):t:Ta(n)?jo.isText(n.previousSibling)?_u(n.previousSibling,n.previousSibling.data.length):_u.before(n):Ra(t)?_u(n,r-1):t},Vl={isInlineTarget:function(e,t){return Lr(ar.fromDom(t),Ul(e))},findRootInline:function(e,t,n){var r,o,i,a=(r=e,o=t,i=n,U(Si.DOM.getParents(i.container(),"*",o),r));return _.from(a[a.length-1])},isRtl:function(e){return"rtl"===Si.DOM.getStyle(e,"direction",!0)||(t=e.textContent,gl.test(t));var t},isAtZwsp:function(e){return Aa(e)||Ra(e)},normalizePosition:jl,normalizeForwards:d(jl,!0),normalizeBackwards:d(jl,!1),hasSameParentBlock:function(e,t,n){var r=Ss(t,e),o=Ss(n,e);return r&&r===o}},Hl=function(e,t){return zr(e,t)?na(t,function(e){return No(e)||So(e)},(n=e,function(e){return Mr(n,ar.fromDom(e.dom().parentNode))})):_.none();var n},ql=function(e){var t,n,r;e.dom.isEmpty(e.getBody())&&(e.setContent(""),n=(t=e).getBody(),r=n.firstChild&&t.dom.isBlock(n.firstChild)?n.firstChild:n,t.selection.setCursorLocation(r,0))},$l=function(i,a,u){return ru(sc.firstPositionIn(u),sc.lastPositionIn(u),function(e,t){var n=Vl.normalizePosition(!0,e),r=Vl.normalizePosition(!1,t),o=Vl.normalizePosition(!1,a);return i?sc.nextPosition(u,o).map(function(e){return e.isEqual(r)&&a.isEqual(n)}).getOr(!1):sc.prevPosition(u,o).map(function(e){return e.isEqual(n)&&a.isEqual(r)}).getOr(!1)}).getOr(!0)},Wl=function(e,t){var n,r,o,i=ar.fromDom(e),a=ar.fromDom(t);return n=a,r="pre,code",o=d(Mr,i),ra(n,r,o).isSome()},Kl=function(e,t){return Ha(t)&&!1===(r=e,o=t,jo.isText(o)&&/^[ \t\r\n]*$/.test(o.data)&&!1===Wl(r,o))||(n=t,jo.isElement(n)&&"A"===n.nodeName&&n.hasAttribute("name"))||Xl(t);var n,r,o},Xl=jo.hasAttribute("data-mce-bookmark"),Yl=jo.hasAttribute("data-mce-bogus"),Gl=jo.hasAttributeValue("data-mce-bogus","all"),Jl=function(e){return function(e){var t,n,r=0;if(Kl(e,e))return!1;if(!(n=e.firstChild))return!0;t=new go(n,e);do{if(Gl(n))n=t.next(!0);else if(Yl(n))n=t.next();else if(jo.isBr(n))r++,n=t.next();else{if(Kl(e,n))return!1;n=t.next()}}while(n);return r<=1}(e.dom())},Ql=Ar("block","position"),Zl=Ar("from","to"),ef=function(e,t){var n=ar.fromDom(e),r=ar.fromDom(t.container());return Hl(n,r).map(function(e){return Ql(e,t)})},tf=function(o,i,e){var t=ef(o,_u.fromRangeStart(e)),n=t.bind(function(e){return sc.fromPosition(i,o,e.position()).bind(function(e){return ef(o,e).map(function(e){return t=o,n=i,r=e,jo.isBr(r.position().getNode())&&!1===Jl(r.block())?sc.positionIn(!1,r.block().dom()).bind(function(e){return e.isEqual(r.position())?sc.fromPosition(n,t,e).bind(function(e){return ef(t,e)}):_.some(r)}).getOr(r):r;var t,n,r})})});return ru(t,n,Zl).filter(function(e){return!1===Mr((r=e).from().block(),r.to().block())&&Vr((n=e).from().block()).bind(function(t){return Vr(n.to().block()).filter(function(e){return Mr(t,e)})}).isSome()&&(t=e,!1===jo.isContentEditableFalse(t.from().block().dom())&&!1===jo.isContentEditableFalse(t.to().block().dom()));var t,n,r})},nf=function(e,t,n){return n.collapsed?tf(e,t,n):_.none()},rf=function(e,t,n){return zr(t,e)?function(e,t){for(var n=D(t)?t:b,r=e.dom(),o=[];null!==r.parentNode&&r.parentNode!==undefined;){var i=r.parentNode,a=ar.fromDom(i);if(o.push(a),!0===n(a))break;r=i}return o}(e,function(e){return n(e)||Mr(e,t)}).slice(0,-1):[]},of=function(e,t){return rf(e,t,q(!1))},af=of,uf=function(e,t){return[e].concat(of(e,t))},sf=function(e){var t,n=(t=Kr(e),Y(t,Co).fold(function(){return t},function(e){return t.slice(0,e)}));return z(n,Ui),n},cf=function(e,t){var n=uf(t,e);return X(n.reverse(),Jl).each(Ui)},lf=function(e,t,n,r){if(Jl(n))return nl(n),sc.firstPositionIn(n.dom());0===U($r(r),function(e){return!Jl(e)}).length&&Jl(t)&&Pi(r,ar.fromTag("br"));var o=sc.prevPosition(n.dom(),_u.before(r.dom()));return z(sf(t),function(e){Pi(r,e)}),cf(e,t),o},ff=function(e,t,n){if(Jl(n))return Ui(n),Jl(t)&&nl(t),sc.firstPositionIn(t.dom());var r=sc.lastPositionIn(n.dom());return z(sf(t),function(e){Fi(n,e)}),cf(e,t),r},df=function(e,t){return zr(t,e)?(n=uf(e,t),_.from(n[n.length-1])):_.none();var n},mf=function(e,t){sc.positionIn(e,t.dom()).map(function(e){return e.getNode()}).map(ar.fromDom).filter(wo).each(Ui)},gf=function(e,t,n){return mf(!0,t),mf(!1,n),df(t,n).fold(d(ff,e,t,n),d(lf,e,t,n))},pf=function(e,t,n,r){return t?gf(e,r,n):gf(e,n,r)},hf=function(t,n){var e,r=ar.fromDom(t.getBody());return(e=nf(r.dom(),n,t.selection.getRng()).bind(function(e){return pf(r,n,e.from().block(),e.to().block())})).each(function(e){t.selection.setRng(e.toRange())}),e.isSome()},vf=function(e,t){var n=ar.fromDom(t),r=d(Mr,e);return ta(n,_o,r).isSome()},yf=function(e,t){var n,r,o=sc.prevPosition(e.dom(),_u.fromRangeStart(t)).isNone(),i=sc.nextPosition(e.dom(),_u.fromRangeEnd(t)).isNone();return!(vf(n=e,(r=t).startContainer)||vf(n,r.endContainer))&&o&&i},bf=function(e){var n,r,o,t,i=ar.fromDom(e.getBody()),a=e.selection.getRng();return yf(i,a)?((t=e).setContent(""),t.selection.setCursorLocation(),!0):(n=i,r=e.selection,o=r.getRng(),ru(Hl(n,ar.fromDom(o.startContainer)),Hl(n,ar.fromDom(o.endContainer)),function(e,t){return!1===Mr(e,t)&&(o.deleteContents(),pf(n,!0,e,t).each(function(e){r.setRng(e.toRange())}),!0)}).getOr(!1))},Cf=function(e,t){return!e.selection.isCollapsed()&&bf(e)},xf=function(a){if(!k(a))throw new Error("cases must be an array");if(0===a.length)throw new Error("there must be at least one case");var u=[],n={};return z(a,function(e,r){var t=gr(e);if(1!==t.length)throw new Error("one and only one name per case");var o=t[0],i=e[o];if(n[o]!==undefined)throw new Error("duplicate key detected:"+o);if("cata"===o)throw new Error("cannot have a case named cata (sorry)");if(!k(i))throw new Error("case arguments must be an array");u.push(o),n[o]=function(){var e=arguments.length;if(e!==i.length)throw new Error("Wrong number of arguments to case "+o+". Expected "+i.length+" ("+i+"), got "+e);for(var n=new Array(e),t=0;t=e.data.length,s=0===t;e.replaceData(t,n,(o=s,i=u,j((r=a).split(""),function(e,t){return-1!==" \f\n\r\t\x0B".indexOf(t)||"\xa0"===t?e.previousCharIsSpace||""===e.str&&o||e.str.length===r.length-1&&i?{previousCharIsSpace:!1,str:e.str+"\xa0"}:{previousCharIsSpace:!0,str:e.str+" "}:{previousCharIsSpace:!1,str:e.str+t}},{previousCharIsSpace:!1,str:""}).str))}},Wf=function(e,t){var n,r=e.data.slice(t),o=r.length-(n=r,n.replace(/^\s+/g,"")).length;return $f(e,t,o)},Kf=function(e,t){return r=e,o=(n=t).container(),i=n.offset(),!1===_u.isTextPosition(n)&&o===r.parentNode&&i>_u.before(r).offset()?_u(t.container(),t.offset()-1):t;var n,r,o,i},Xf=function(e){return Ha(e.previousSibling)?_.some((t=e.previousSibling,jo.isText(t)?_u(t,t.data.length):_u.after(t))):e.previousSibling?sc.lastPositionIn(e.previousSibling):_.none();var t},Yf=function(e){return Ha(e.nextSibling)?_.some((t=e.nextSibling,jo.isText(t)?_u(t,0):_u.before(t))):e.nextSibling?sc.firstPositionIn(e.nextSibling):_.none();var t},Gf=function(r,o){return Xf(o).orThunk(function(){return Yf(o)}).orThunk(function(){return e=r,t=o,n=_u.before(t.previousSibling?t.previousSibling:t.parentNode),sc.prevPosition(e,n).fold(function(){return sc.nextPosition(e,_u.after(t))},_.some);var e,t,n})},Jf=function(n,r){return Yf(r).orThunk(function(){return Xf(r)}).orThunk(function(){return e=n,t=r,sc.nextPosition(e,_u.after(t)).fold(function(){return sc.prevPosition(e,_u.before(t))},_.some);var e,t})},Qf=function(e,t,n){return(r=e,o=t,i=n,r?Jf(o,i):Gf(o,i)).map(d(Kf,n));var r,o,i},Zf=function(t,n,e){e.fold(function(){t.focus()},function(e){t.selection.setRng(e.toRange(),n)})},ed=function(e,t){return t&&e.schema.getBlockElements().hasOwnProperty(lr(t))},td=function(e){if(Jl(e)){var t=ar.fromHtml('
    ');return zi(e),Fi(e,t),_.some(_u.before(t.dom()))}return _.none()},nd=function(e,t,l){var n,r,o,i,a=Hr(e).filter(mr),u=qr(e).filter(mr);return Ui(e),(n=a,r=u,o=t,i=function(e,t,n){var r,o,i,a,u=e.dom(),s=t.dom(),c=u.data.length;return o=s,i=l,a=Jn((r=u).data).length,r.appendData(o.data),Ui(ar.fromDom(o)),i&&Wf(r,a),n.container()===s?_u(u,c):n},n.isSome()&&r.isSome()&&o.isSome()?_.some(i(n.getOrDie(),r.getOrDie(),o.getOrDie())):_.none()).orThunk(function(){return l&&(a.each(function(e){return t=e.dom(),n=e.dom().length,r=t.data.slice(0,n),o=r.length-Jn(r).length,$f(t,n-o,o);var t,n,r,o}),u.each(function(e){return Wf(e.dom(),0)})),t})},rd=function(t,n,e,r){void 0===r&&(r=!0);var o,i,a=Qf(n,t.getBody(),e.dom()),u=ta(e,d(ed,t),(o=t.getBody(),function(e){return e.dom()===o})),s=nd(e,a,(i=e,br(t.schema.getTextInlineElements(),lr(i))));t.dom.isEmpty(t.getBody())?(t.setContent(""),t.selection.setCursorLocation()):u.bind(td).fold(function(){r&&Zf(t,n,s)},function(e){r&&Zf(t,n,_.some(e))})},od=function(a,u){var e,t,n,r,o,i;return(e=a.getBody(),t=u,n=a.selection.getRng(),r=Os(t?1:-1,e,n),o=_u.fromRangeStart(r),i=ar.fromDom(e),!1===t&&Ff(o)?_.some(jf.remove(o.getNode(!0))):t&&Lf(o)?_.some(jf.remove(o.getNode())):!1===t&&Lf(o)&&Sf(i,o)?Tf(i,o).map(function(e){return jf.remove(e.getNode())}):t&&Ff(o)&&Ef(i,o)?kf(i,o).map(function(e){return jf.remove(e.getNode())}):qf(e,t,o)).map(function(e){return e.fold((o=a,i=u,function(e){return o._selectionOverrides.hideFakeCaret(),rd(o,i,ar.fromDom(e)),!0}),(n=a,r=u,function(e){var t=r?_u.before(e):_u.after(e);return n.selection.setRng(t.toRange()),!0}),(t=a,function(e){return t.selection.setRng(e.toRange()),!0}));var t,n,r,o,i}).getOr(!1)},id=function(e,t){var n,r=e.selection.getNode();return!!jo.isContentEditableFalse(r)&&(n=ar.fromDom(e.getBody()),z(Qi(n,".mce-offscreen-selection"),Ui),rd(e,t,ar.fromDom(e.selection.getNode())),ql(e),!0)},ad=function(e,t){return e.selection.isCollapsed()?od(e,t):id(e,t)},ud=function(e){var t,n=function(e,t){for(;t&&t!==e;){if(jo.isContentEditableTrue(t)||jo.isContentEditableFalse(t))return t;t=t.parentNode}return null}(e.getBody(),e.selection.getNode());return jo.isContentEditableTrue(n)&&e.dom.isBlock(n)&&e.dom.isEmpty(n)&&(t=e.dom.create("br",{"data-mce-bogus":"1"}),e.dom.setHTML(n,""),n.appendChild(t),e.selection.setRng(_u.before(t).toRange())),!0},sd=jo.isText,cd=function(e){return sd(e)&&e.data[0]===xa},ld=function(e){return sd(e)&&e.data[e.data.length-1]===xa},fd=function(e){return e.ownerDocument.createTextNode(xa)},dd=function(e,t){return e?function(e){if(sd(e.previousSibling))return ld(e.previousSibling)||e.previousSibling.appendData(xa),e.previousSibling;if(sd(e))return cd(e)||e.insertData(0,xa),e;var t=fd(e);return e.parentNode.insertBefore(t,e),t}(t):function(e){if(sd(e.nextSibling))return cd(e.nextSibling)||e.nextSibling.insertData(0,xa),e.nextSibling;if(sd(e))return ld(e)||e.appendData(xa),e;var t=fd(e);return e.nextSibling?e.parentNode.insertBefore(t,e.nextSibling):e.parentNode.appendChild(t),t}(t)},md=d(dd,!0),gd=d(dd,!1),pd=function(e,t){return jo.isText(e.container())?dd(t,e.container()):dd(t,e.getNode())},hd=function(e,t){var n=t.get();return n&&e.container()===n&&Ta(n)},vd=function(n,e){return e.fold(function(e){ss.remove(n.get());var t=md(e);return n.set(t),_.some(_u(t,t.length-1))},function(e){return sc.firstPositionIn(e).map(function(e){if(hd(e,n))return _u(n.get(),1);ss.remove(n.get());var t=pd(e,!0);return n.set(t),_u(t,1)})},function(e){return sc.lastPositionIn(e).map(function(e){if(hd(e,n))return _u(n.get(),n.get().length-1);ss.remove(n.get());var t=pd(e,!1);return n.set(t),_u(t,t.length-1)})},function(e){ss.remove(n.get());var t=gd(e);return n.set(t),_.some(_u(t,1))})},yd=function(e,t){for(var n=0;ni.left&&a.rightr.top&&o.bottomo.childNodes.length-1&&(c=!1),jo.isDocument(o)&&(o=g,i=0),o===g){if(c&&(u=o.childNodes[0s.childNodes.length-1;s=s.childNodes[Math.min(u,s.childNodes.length-1)]||s,u=c&&3===s.nodeType?s.nodeValue.length:0}var l=i.getParent(s,i.isBlock),f=l?i.getParent(l.parentNode,i.isBlock):null,d=f?f.nodeName.toUpperCase():"",m=t&&t.ctrlKey;"LI"!==d||m||(l=f),s&&3===s.nodeType&&u>=s.nodeValue.length&&(function(e,t,n){for(var r,o=new go(t,n),i=e.getNonEmptyElements();r=o.next();)if(i[r.nodeName.toLowerCase()]||0")},mceToggleVisualAid:function(){s.hasVisual=!s.hasVisual,s.addVisual()},mceReplaceContent:function(e,t,n){s.execCommand("mceInsertContent",!1,n.replace(/\{\$selection\}/g,i.getContent({format:"text"})))},mceInsertLink:function(e,t,n){var r;"string"==typeof n&&(n={href:n}),r=o.getParent(i.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=o.getParent(i.getStart(),jo.isContentEditableTrue);if(e){var t=o.createRng();t.selectNodeContents(e),i.setRng(t)}},"delete":function(){hg(s)},forwardDelete:function(){vg(s)},mceNewDocument:function(){s.setContent("")},InsertLineBreak:function(e,t,n){return jg(s,n),!0}});var p=function(n){return function(){var e=i.isCollapsed()?[o.getParent(i.getNode(),o.isBlock)]:i.getSelectedBlocks(),t=mp(e,function(e){return!!a.matchNode(e,n)});return-1!==gp(t,!0)}};e({JustifyLeft:p("alignleft"),JustifyCenter:p("aligncenter"),JustifyRight:p("alignright"),JustifyFull:p("alignjustify"),"Bold,Italic,Underline,Strikethrough,Superscript,Subscript":function(e){return f(e)},mceBlockQuote:function(){return f("blockquote")},Outdent:function(){var e;if(n.inline_styles){if((e=o.getParent(i.getStart(),o.isBlock))&&0"),u))[o.length-1]=Xt.extend(o[o.length-1],{func:n,scope:r||i}),Xt.extend(o[0],{desc:i.translate(t),subpatterns:o.slice(1)})},o=function(e,t){return!!t&&t.ctrl===e.ctrlKey&&t.meta===e.metaKey&&t.alt===e.altKey&&t.shift===e.shiftKey&&!!(e.keyCode===t.keyCode||e.charCode&&e.charCode===t.charCode)&&(e.preventDefault(),!0)},c=function(e){return e.func?e.func.call(e.scope):null};i.on("keyup keypress keydown",function(t){var e,n;((n=t).altKey||n.ctrlKey||n.metaKey||"keydown"===(e=t).type&&112<=e.keyCode&&e.keyCode<=123)&&!t.isDefaultPrevented()&&(Xp(a,function(e){if(o(t,e))return r=e.subpatterns.slice(0),"keydown"===t.type&&c(e),!0}),o(t,r[0])&&(1===r.length&&"keydown"===t.type&&c(r[0]),r.shift()))}),this.add=function(e,n,r,o){var t;return"string"==typeof(t=r)?r=function(){i.execCommand(t,!1,null)}:Xt.isArray(t)&&(r=function(){i.execCommand(t[0],t[1],t[2])}),Xp(Yp(Xt.trim(e.toLowerCase())),function(e){var t=s(e,n,r,o);a[t.id]=t}),!0},this.remove=function(e){var t=s(e);return!!a[t.id]&&(delete a[t.id],!0)}}var Zp=function(e){var t=Ur(e).dom();return e.dom()===t.activeElement},eh=function(t){return(e=Ur(t),n=e!==undefined?e.dom():V.document,_.from(n.activeElement).map(ar.fromDom)).filter(function(e){return t.dom().contains(e.dom())});var e,n},th=function(t,e){return(n=e,n.collapsed?_.from(eu(n.startContainer,n.startOffset)).map(ar.fromDom):_.none()).bind(function(e){return ko(e)?_.some(e):!1===zr(t,e)?_.some(t):_.none()});var n},nh=function(t,e){th(ar.fromDom(t.getBody()),e).bind(function(e){return sc.firstPositionIn(e.dom())}).fold(function(){t.selection.normalize()},function(e){return t.selection.setRng(e.toRange())})},rh=function(e){if(e.setActive)try{e.setActive()}catch(t){e.focus()}else e.focus()},oh=function(e){var t,n=e.getBody();return n&&(t=ar.fromDom(n),Zp(t)||eh(t).isSome())},ih=function(e){return e.inline?oh(e):(t=e).iframeElement&&Zp(ar.fromDom(t.iframeElement));var t},ah=function(e){return e.editorManager.setActive(e)},uh=function(e,t){e.removed||(t?ah(e):function(t){var e=t.selection,n=t.settings.content_editable,r=t.getBody(),o=e.getRng();t.quirks.refreshContentEditable();var i,a,u=(i=t,a=e.getNode(),i.dom.getParent(a,function(e){return"true"===i.dom.getContentEditable(e)}));if(t.$.contains(r,u))return rh(u),nh(t,o),ah(t);t.bookmark!==undefined&&!1===ih(t)&&up(t).each(function(e){t.selection.setRng(e),o=e}),n||(fe.opera||rh(r),t.getWin().focus()),(fe.gecko||n)&&(rh(r),nh(t,o)),ah(t)}(e))},sh=ih,ch=function(e,t){return t.dom()[e]},lh=function(e,t){return parseInt(kr(t,e),10)},fh=d(ch,"clientWidth"),dh=d(ch,"clientHeight"),mh=d(lh,"margin-top"),gh=d(lh,"margin-left"),ph=function(e,t,n){var r,o,i,a,u,s,c,l,f,d,m,g=ar.fromDom(e.getBody()),p=e.inline?g:(r=g,ar.fromDom(r.dom().ownerDocument.documentElement)),h=(o=e.inline,a=t,u=n,s=(i=p).dom().getBoundingClientRect(),{x:a-(o?s.left+i.dom().clientLeft+gh(i):0),y:u-(o?s.top+i.dom().clientTop+mh(i):0)});return l=h.x,f=h.y,d=fh(c=p),m=dh(c),0<=l&&0<=f&&l<=d&&f<=m},hh=function(e){var t,n=e.inline?e.getBody():e.getContentAreaContainer();return(t=n,_.from(t).map(ar.fromDom)).map(function(e){return zr(Ur(e),e)}).getOr(!1)};function vh(n){var t,o=[],i=function(){var e,t=n.theme;return t&&t.getNotificationManagerImpl?t.getNotificationManagerImpl():{open:e=function(){throw new Error("Theme did not provide a NotificationManager implementation.")},close:e,reposition:e,getArgs:e}},a=function(){0t;var t}},cv=function(n){return function(e){return t=n,e.line===t;var t}},lv=jo.isContentEditableFalse,fv=Es,dv=function(e,t){return Math.abs(e.left-t)},mv=function(e,t){return Math.abs(e.right-t)},gv=function(e,t){return e>=t.left&&e<=t.right},pv=function(e,o){return Ht.reduce(e,function(e,t){var n,r;return n=Math.min(dv(e,o),mv(e,o)),r=Math.min(dv(t,o),mv(t,o)),gv(o,t)?t:gv(o,e)?e:r===n&&lv(t.node)?t:r=e.top&&n<=e.bottom});return(r=pv(f,t))&&(r=pv((a=e,c=function(t,e){var n;return n=U(ov([e]),function(e){return!t(e,u)}),s=s.concat(n),0===n.length},(s=[]).push(u=r),hv(tv.Up,a,d(c,Ga),u.node),hv(tv.Down,a,d(c,Ja),u.node),s),t))&&gs(r.node)?(i=t,{node:(o=r).node,before:dv(o,i)i&&(u=n.pageX+r-i),n.pageY+o>a&&(s=n.pageY+o-a),t.style.width=r-u+"px",t.style.height=o-s+"px",v(e.clientX,e.clientY)}},o=Sv(c,e),u=c,i=function(){u.dragging&&s.fire("dragend"),Tv(u)},(s=e).on("mousedown",n),e.on("mousemove",r),e.on("mouseup",o),t.bind(a,"mousemove",r),t.bind(a,"mouseup",i),e.on("remove",function(){t.unbind(a,"mousemove",r),t.unbind(a,"mouseup",i)})},_v=function(e){var n;kv(e),(n=e).on("drop",function(e){var t="undefined"!=typeof e.clientX?n.getDoc().elementFromPoint(e.clientX,e.clientY):null;(xv(t)||xv(n.dom.getContentEditableParent(t)))&&e.preventDefault()})},Av=function(t){var e=Vi(function(){if(!t.removed&&t.selection.getRng().collapsed){var e=fg(t,t.selection.getRng(),!1);t.selection.setRng(e)}},0);t.on("focus",function(){e.throttle()}),t.on("blur",function(){e.cancel()})},Rv=jo.isContentEditableTrue,Dv=jo.isContentEditableFalse,Ov=function(e,t){for(var n=e.getBody();t&&t!==n;){if(Rv(t)||Dv(t))return t;t=t.parentNode}return null},Bv=function(g){var p,e,t,a=g.getBody(),o=ds(g.getBody(),function(e){return g.dom.isBlock(e)},function(){return sh(g)}),h="sel-"+g.dom.uniqueId(),u=function(e){e&&g.selection.setRng(e)},s=function(){return g.selection.getRng()},v=function(e,t,n,r){return void 0===r&&(r=!0),g.fire("ShowCaret",{target:t,direction:e,before:n}).isDefaultPrevented()?null:(r&&g.selection.scrollIntoView(t,-1===e),o.show(n,t))},y=function(e,t){return t=Os(e,a,t),-1===e?_u.fromRangeStart(t):_u.fromRangeEnd(t)},n=function(e){return ka(e)||Oa(e)||Ba(e)},b=function(e){return n(e.startContainer)||n(e.endContainer)},c=function(e){var t=g.schema.getShortEndedElements(),n=g.dom.createRng(),r=e.startContainer,o=e.startOffset,i=e.endContainer,a=e.endOffset;return br(t,r.nodeName.toLowerCase())?0===o?n.setStartBefore(r):n.setStartAfter(r):n.setStart(r,o),br(t,i.nodeName.toLowerCase())?0===a?n.setEndBefore(i):n.setEndAfter(i):n.setEnd(i,a),n},l=function(e,t){var n,r,o,i,a,u,s,c,l,f,d=g.$,m=g.dom;if(!e)return null;if(e.collapsed){if(!b(e))if(!1===t){if(c=y(-1,e),gs(c.getNode(!0)))return v(-1,c.getNode(!0),!1,!1);if(gs(c.getNode()))return v(-1,c.getNode(),!c.isAtEnd(),!1)}else{if(c=y(1,e),gs(c.getNode()))return v(1,c.getNode(),!c.isAtEnd(),!1);if(gs(c.getNode(!0)))return v(1,c.getNode(!0),!1,!1)}return null}return i=e.startContainer,a=e.startOffset,u=e.endOffset,3===i.nodeType&&0===a&&Dv(i.parentNode)&&(i=i.parentNode,a=m.nodeIndex(i),i=i.parentNode),1!==i.nodeType?null:(u===a+1&&i===e.endContainer&&(n=i.childNodes[a]),Dv(n)?(l=f=n.cloneNode(!0),(s=g.fire("ObjectSelected",{target:n,targetClone:l})).isDefaultPrevented()?null:(r=oa(ar.fromDom(g.getBody()),"#"+h).fold(function(){return d([])},function(e){return d([e.dom()])}),l=s.targetClone,0===r.length&&(r=d('
    ').attr("id",h)).appendTo(g.getBody()),e=g.dom.createRng(),l===f&&fe.ie?(r.empty().append('

    \xa0

    ').append(l),e.setStartAfter(r[0].firstChild.firstChild),e.setEndAfter(l)):(r.empty().append("\xa0").append(l).append("\xa0"),e.setStart(r[0].firstChild,1),e.setEnd(r[0].lastChild,0)),r.css({top:m.getPos(n,g.getBody()).y}),r[0].focus(),(o=g.selection.getSel()).removeAllRanges(),o.addRange(e),z(Qi(ar.fromDom(g.getBody()),"*[data-mce-selected]"),function(e){Sr(e,"data-mce-selected")}),n.setAttribute("data-mce-selected","1"),p=n,C(),e)):null)},f=function(){p&&(p.removeAttribute("data-mce-selected"),oa(ar.fromDom(g.getBody()),"#"+h).each(Ui),p=null),oa(ar.fromDom(g.getBody()),"#"+h).each(Ui),p=null},C=function(){o.hide()};return fe.ceFalse&&(function(){g.on("mouseup",function(e){var t=s();t.collapsed&&ph(g,e.clientX,e.clientY)&&u(lg(g,t,!1))}),g.on("click",function(e){var t;(t=Ov(g,e.target))&&(Dv(t)&&(e.preventDefault(),g.focus()),Rv(t)&&g.dom.isChildOf(t,g.selection.getNode())&&f())}),g.on("blur NewBlock",function(){f()}),g.on("ResizeWindow FullscreenStateChanged",function(){return o.reposition()});var n,r,i=function(e,t){var n,r,o=g.dom.getParent(e,g.dom.isBlock),i=g.dom.getParent(t,g.dom.isBlock);return!(!o||!g.dom.isChildOf(o,i)||!1!==Dv(Ov(g,o)))||o&&(n=o,r=i,!(g.dom.getParent(n,g.dom.isBlock)===g.dom.getParent(r,g.dom.isBlock)))&&function(e){var t=Js(e);if(!e.firstChild)return!1;var n=_u.before(e.firstChild),r=t.next(n);return r&&!Lf(r)&&!Ff(r)}(o)};r=!1,(n=g).on("touchstart",function(){r=!1}),n.on("touchmove",function(){r=!0}),n.on("touchend",function(e){var t=Ov(n,e.target);Dv(t)&&(r||(e.preventDefault(),l(cg(n,t))))}),g.on("mousedown",function(e){var t,n=e.target;if((n===a||"HTML"===n.nodeName||g.dom.isChildOf(n,a))&&!1!==ph(g,e.clientX,e.clientY))if(t=Ov(g,n))Dv(t)?(e.preventDefault(),l(cg(g,t))):(f(),Rv(t)&&e.shiftKey||yv(e.clientX,e.clientY,g.selection.getRng())||(C(),g.selection.placeCaretAt(e.clientX,e.clientY)));else if(!1===gs(n)){f(),C();var r=vv(a,e.clientX,e.clientY);if(r&&!i(e.target,r.node)){e.preventDefault();var o=v(1,r.node,r.before,!1);g.getBody().focus(),u(o)}}}),g.on("keypress",function(e){rv.modifierPressed(e)||(e.keyCode,Dv(g.selection.getNode())&&e.preventDefault())}),g.on("getSelectionRange",function(e){var t=e.range;if(p){if(!p.parentNode)return void(p=null);(t=t.cloneRange()).selectNode(p),e.range=t}}),g.on("setSelectionRange",function(e){e.range=c(e.range);var t=l(e.range,e.forward);t&&(e.range=t)}),g.on("AfterSetSelectionRange",function(e){var t,n=e.range;b(n)||"mcepastebin"===n.startContainer.parentNode.id||C(),t=n.startContainer.parentNode,g.dom.hasClass(t,"mce-offscreen-selection")||f()}),g.on("copy",function(e){var t,n=e.clipboardData;if(!e.isDefaultPrevented()&&e.clipboardData&&!fe.ie){var r=(t=g.dom.get(h))?t.getElementsByTagName("*")[0]:t;r&&(e.preventDefault(),n.clearData(),n.setData("text/html",r.outerHTML),n.setData("text/plain",r.outerText))}}),_v(g),Av(g)}(),e=g.contentStyles,t=".mce-content-body",e.push(o.getCss()),e.push(t+" .mce-offscreen-selection {position: absolute;left: -9999999999px;max-width: 1000000px;}"+t+" *[contentEditable=false] {cursor: default;}"+t+" *[contentEditable=true] {cursor: text;}")),{showCaret:v,showBlockCaretContainer:function(e){e.hasAttribute("data-mce-caret")&&(Pa(e),u(s()),g.selection.scrollIntoView(e[0]))},hideFakeCaret:C,destroy:function(){o.destroy(),p=null}}},Pv=function(e){for(var t=e;/)/g,"\n").replace(/^[\r\n]*|[\r\n]*$/g,"").replace(/^\s*(()?|\s*\/\/\s*\]\]>(-->)?|\/\/\s*(-->)?|\]\]>|\/\*\s*-->\s*\*\/|\s*-->\s*)\s*$/g,"")};i--;)r=(n=e[i]).firstChild?n.firstChild.value:"","script"===t?((o=n.attr("type"))&&n.attr("type","mce-no/type"===o?null:o.replace(/^mce\-/,"")),"xhtml"===s.element_format&&0")):"xhtml"===s.element_format&&0k(n)?(C=_(b*y),b=_(C/y)):(b=_(C/y),C=_(b*y))),N.setStyles(D(s),{width:b,height:C}),r=0<(r=f.startPos.x+t)?r:0,o=0<(o=f.startPos.y+n)?o:0,N.setStyles(c,{left:r,top:o,display:"block"}),c.innerHTML=b+" × "+C,f[2]<0&&s.clientWidth<=b&&N.setStyle(s,"left",g+(h-b)),f[3]<0&&s.clientHeight<=C&&N.setStyle(s,"top",p+(v-C)),(t=A.scrollWidth-x)+(n=A.scrollHeight-w)!=0&&N.setStyles(c,{left:r-t,top:o-n}),i||(Tp(a,u,h,v),i=!0)},P=function(){i=!1;var e=function(e,t){t&&(u.style[e]||!a.schema.isValid(u.nodeName.toLowerCase(),e)?N.setStyle(D(u),e,t):N.setAttrib(D(u),e,t))};e("width",b),e("height",C),N.unbind(S,"mousemove",B),N.unbind(S,"mouseup",P),T!==S&&(N.unbind(T,"mousemove",B),N.unbind(T,"mouseup",P)),N.remove(s),N.remove(c),o(u),kp(a,u,b,C),N.setAttrib(u,"style",N.getAttrib(u,"style")),a.nodeChanged()},o=function(e){var t,r,o,n,i;I(),M(),t=N.getPos(e,A),g=t.x,p=t.y,i=e.getBoundingClientRect(),r=i.width||i.right-i.left,o=i.height||i.bottom-i.top,u!==e&&(u=e,b=C=0),n=a.fire("ObjectSelected",{target:e}),O(e)&&!n.isDefaultPrevented()?E(l,function(n,e){var t;(t=N.get("mceResizeHandle"+e))&&N.remove(t),t=N.add(A,"div",{id:"mceResizeHandle"+e,"data-mce-bogus":"all","class":"mce-resizehandle",unselectable:!0,style:"cursor:"+e+"-resize; margin:0; padding:0"}),11===fe.ie&&(t.contentEditable=!1),N.bind(t,"mousedown",function(e){var t;e.stopImmediatePropagation(),e.preventDefault(),d=(t=e).screenX,m=t.screenY,h=D(u).clientWidth,v=D(u).clientHeight,y=v/h,(f=n).startPos={x:r*n[0]+g,y:o*n[1]+p},x=A.scrollWidth,w=A.scrollHeight,s=u.cloneNode(!0),N.addClass(s,"mce-clonedresizable"),N.setAttrib(s,"data-mce-bogus","all"),s.contentEditable=!1,s.unSelectabe=!0,N.setStyles(s,{left:g,top:p,margin:0}),s.removeAttribute("data-mce-selected"),A.appendChild(s),N.bind(S,"mousemove",B),N.bind(S,"mouseup",P),T!==S&&(N.bind(T,"mousemove",B),N.bind(T,"mouseup",P)),c=N.add(A,"div",{"class":"mce-resize-helper","data-mce-bogus":"all"},h+" × "+v)}),n.elm=t,N.setStyles(t,{left:r*n[0]+g-t.offsetWidth/2,top:o*n[1]+p-t.offsetHeight/2})}):I(),u.setAttribute("data-mce-selected","1")},I=function(){var e,t;for(e in M(),u&&u.removeAttribute("data-mce-selected"),l)(t=N.get("mceResizeHandle"+e))&&(N.unbind(t),N.remove(t))},L=function(e){var t,n=function(e,t){if(e)do{if(e===t)return!0}while(e=e.parentNode)};i||a.removed||(E(N.select("img[data-mce-selected],hr[data-mce-selected]"),function(e){e.removeAttribute("data-mce-selected")}),t="mousedown"===e.type?e.target:r.getNode(),n(t=N.$(t).closest("table,img,figure.image,hr")[0],A)&&(z(),n(r.getStart(!0),t)&&n(r.getEnd(!0),t))?o(t):I())},F=function(e){return Ab(function(e,t){for(;t&&t!==e;){if(Rb(t)||Ab(t))return t;t=t.parentNode}return null}(a.getBody(),e))},M=function(){for(var e in l){var t=l[e];t.elm&&(N.unbind(t.elm),delete t.elm)}},z=function(){try{a.getDoc().execCommand("enableObjectResizing",!1,!1)}catch(e){}};return a.on("init",function(){z(),fe.ie&&11<=fe.ie&&(a.on("mousedown click",function(e){var t=e.target,n=t.nodeName;i||!/^(TABLE|IMG|HR)$/.test(n)||F(t)||(2!==e.button&&a.selection.select(t,"TABLE"===n),"mousedown"===e.type&&a.nodeChanged())}),a.dom.bind(A,"mscontrolselect",function(e){var t=function(e){he.setEditorTimeout(a,function(){a.selection.select(e)})};if(F(e.target))return e.preventDefault(),void t(e.target);/^(TABLE|IMG|HR)$/.test(e.target.nodeName)&&(e.preventDefault(),"IMG"===e.target.tagName&&t(e.target))}));var t=he.throttle(function(e){a.composing||L(e)});a.on("nodechange ResizeEditor ResizeWindow drop FullscreenStateChanged",t),a.on("keyup compositionend",function(e){u&&"TABLE"===u.nodeName&&t(e)}),a.on("hide blur",I),a.on("contextmenu",n)}),a.on("remove",M),{isResizable:O,showResizeRect:o,hideResizeRect:I,updateResizeRect:L,destroy:function(){u=s=null}}},Ob=function(e){return jo.isContentEditableTrue(e)||jo.isContentEditableFalse(e)},Bb=function(e,t,n){var r,o,i,a,u,s=n;if(s.caretPositionFromPoint)(o=s.caretPositionFromPoint(e,t))&&((r=n.createRange()).setStart(o.offsetNode,o.offset),r.collapse(!0));else if(n.caretRangeFromPoint)r=n.caretRangeFromPoint(e,t);else if(s.body.createTextRange){r=s.body.createTextRange();try{r.moveToPoint(e,t),r.collapse(!0)}catch(c){r=function(e,n,t){var r,o,i;if(r=t.elementFromPoint(e,n),o=t.body.createTextRange(),r&&"HTML"!==r.tagName||(r=t.body),o.moveToElementText(r),0<(i=(i=Xt.toArray(o.getClientRects())).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)))})).length){n=(i[0].bottom+i[0].top)/2;try{return o.moveToPoint(e,n),o.collapse(!0),o}catch(a){}}return null}(e,t,n)}return i=r,a=n.body,u=i&&i.parentElement?i.parentElement():null,jo.isContentEditableFalse(function(e,t,n){for(;e&&e!==t;){if(n(e))return e;e=e.parentNode}return null}(u,a,Ob))?null:i}return r},Pb=function(n,e){return W(e,function(e){var t=n.fire("GetSelectionRange",{range:e});return t.range!==e?t.range:e})},Ib=function(e,t){var n=(t||V.document).createDocumentFragment();return z(e,function(e){n.appendChild(e.dom())}),ar.fromDom(n)},Lb=Ar("element","width","rows"),Fb=Ar("element","cells"),Mb=Ar("x","y"),zb=function(e,t){var n=parseInt(Er(e,t),10);return isNaN(n)?1:n},Ub=function(e){return j(e,function(e,t){return t.cells().length>e?t.cells().length:e},0)},jb=function(e,t){for(var n=e.rows(),r=0;r_
    '+t),e.dom.remove("__mce_tmp")):l.pasteHTML(t)}u.no_events||e.fire("SetContent",u)}else e.fire("SetContent",u)},eC=function(e,t,n,r,o){var i=n?t.startContainer:t.endContainer,a=n?t.startOffset:t.endOffset;return _.from(i).map(ar.fromDom).map(function(e){return r&&t.collapsed?e:Xr(e,o(e,a)).getOr(e)}).bind(function(e){return dr(e)?_.some(e):Vr(e)}).map(function(e){return e.dom()}).getOr(e)},tC=function(e,t,n){return eC(e,t,!0,n,function(e,t){return Math.min(e.dom().childNodes.length,t)})},nC=function(e,t,n){return eC(e,t,!1,n,function(e,t){return 0t.clientHeight){e=t;break}t=t.parentNode}return e},scrollIntoView:function(e,t){return og(c,e,t)},placeCaretAt:function(e,t){return i(Bb(e,t,c.getDoc()))},getBoundingClientRect:function(){var e=m();return e.collapsed?_u.fromRangeStart(e).getClientRects()[0]:e.getBoundingClientRect()},destroy:function(){s=l=f=null,t.destroy()}};return n=_b(p),t=Db(p,c),p.bookmarkManager=n,p.controlSelection=t,p};(kb=Tb||(Tb={}))[kb.Br=0]="Br",kb[kb.Block=1]="Block",kb[kb.Wrap=2]="Wrap",kb[kb.Eol=3]="Eol";var sC=function(e,t){return e===Tu.Backwards?t.reverse():t},cC=function(e,t,n,r){for(var o,i,a,u,s,c,l=Js(n),f=r,d=[];f&&(s=l,c=f,o=t===Tu.Forwards?s.next(c):s.prev(c));){if(jo.isBr(o.getNode(!1)))return t===Tu.Forwards?{positions:sC(t,d).concat([o]),breakType:Tb.Br,breakAt:_.some(o)}:{positions:sC(t,d),breakType:Tb.Br,breakAt:_.some(o)};if(o.isVisible()){if(e(f,o)){var m=(i=t,a=f,u=o,jo.isBr(u.getNode(i===Tu.Forwards))?Tb.Br:!1===Ts(a,u)?Tb.Block:Tb.Wrap);return{positions:sC(t,d),breakType:m,breakAt:_.some(o)}}d.push(o),f=o}else f=o}return{positions:sC(t,d),breakType:Tb.Eol,breakAt:_.none()}},lC=function(n,r,o,e){return r(o,e).breakAt.map(function(e){var t=r(o,e).positions;return n===Tu.Backwards?t.concat(e):[e].concat(t)}).getOr([])},fC=function(e,i){return j(e,function(e,o){return e.fold(function(){return _.some(o)},function(r){return ru(Z(r.getClientRects()),Z(o.getClientRects()),function(e,t){var n=Math.abs(i-e.left);return Math.abs(i-t.left)<=n?o:r}).or(e)})},_.none())},dC=function(t,e){return Z(e.getClientRects()).bind(function(e){return fC(t,e.left)})},mC=d(cC,Su.isAbove,-1),gC=d(cC,Su.isBelow,1),pC=d(lC,-1,mC),hC=d(lC,1,gC),vC=jo.isContentEditableFalse,yC=Za,bC=function(e,t,n,r){var o=e===Tu.Forwards,i=o?Lf:Ff;if(!r.collapsed){var a=yC(r);if(vC(a))return sg(e,t,a,e===Tu.Backwards,!0)}var u=Sa(r.startContainer),s=Ps(e,t.getBody(),r);if(i(s))return cg(t,s.getNode(!o));var c=Vl.normalizePosition(o,n(s));if(!c)return u?r:null;if(i(c))return sg(e,t,c.getNode(!o),o,!0);var l=n(c);return l&&i(l)&&Fs(c,l)?sg(e,t,l.getNode(!o),o,!0):u?fg(t,c.toRange(),!0):null},CC=function(e,t,n,r){var o,i,a,u,s,c,l,f,d;if(d=yC(r),o=Ps(e,t.getBody(),r),i=n(t.getBody(),sv(1),o),a=U(i,cv(1)),s=Ht.last(o.getClientRects()),(Lf(o)||zf(o))&&(d=o.getNode()),(Ff(o)||Uf(o))&&(d=o.getNode(!0)),!s)return null;if(c=s.left,(u=pv(a,c))&&vC(u.node))return l=Math.abs(c-u.left),f=Math.abs(c-u.right),sg(e,t,u.node,l'),o=a,1===t?e.$(r).after(o):e.$(r).before(o),e.selection.select(o,!0),e.selection.collapse())}},wC=function(l,f){return function(){var e,t,n,r,o,i,a,u,s,c=(t=f,r=Js((e=l).getBody()),o=d(Ls,r.next),i=d(Ls,r.prev),a=t?Tu.Forwards:Tu.Backwards,u=t?o:i,s=e.selection.getRng(),(n=bC(a,e,u,s))?n:(n=xC(e,a,s))||null);return!!c&&(dg(l,c),!0)}},NC=function(u,s){return function(){var e,t,n,r,o,i,a=(r=(t=s)?1:-1,o=t?uv:av,i=(e=u).selection.getRng(),(n=CC(r,e,o,i))?n:(n=xC(e,r,i))||null);return!!a&&(dg(u,a),!0)}},EC=function(r,o){return function(){var t,e=o?_u.fromRangeEnd(r.selection.getRng()):_u.fromRangeStart(r.selection.getRng()),n=o?gC(r.getBody(),e):mC(r.getBody(),e);return(o?ee(n.positions):Z(n.positions)).filter((t=o,function(e){return t?Ff(e):Lf(e)})).fold(q(!1),function(e){return r.selection.setRng(e.toRange()),!0})}},SC=function(e,t,n,r,o){var i,a,u,s,c=Qi(ar.fromDom(n),"td,th,caption").map(function(e){return e.dom()}),l=U((i=e,G(c,function(e){var t,n,r=(t=Ka(e.getBoundingClientRect()),n=-1,{left:t.left-n,top:t.top-n,right:t.right+2*n,bottom:t.bottom+2*n,width:t.width+n,height:t.height+n});return[{x:r.left,y:i(r),cell:e},{x:r.right,y:i(r),cell:e}]})),function(e){return t(e,o)});return(a=l,u=r,s=o,j(a,function(e,r){return e.fold(function(){return _.some(r)},function(e){var t=Math.sqrt(Math.abs(e.x-u)+Math.abs(e.y-s)),n=Math.sqrt(Math.abs(r.x-u)+Math.abs(r.y-s));return _.some(nt}),_C=function(t,n){return Z(n.getClientRects()).bind(function(e){return TC(t,e.left,e.top)}).bind(function(e){return dC((t=e,sc.lastPositionIn(t).map(function(e){return mC(t,e).positions.concat(e)}).getOr([])),n);var t})},AC=function(t,n){return ee(n.getClientRects()).bind(function(e){return kC(t,e.left,e.top)}).bind(function(e){return dC((t=e,sc.firstPositionIn(t).map(function(e){return[e].concat(gC(t,e).positions)}).getOr([])),n);var t})},RC=function(e,t,n){var r,o,i,a,u=e(t,n);return(a=u).breakType===Tb.Wrap&&0===a.positions.length||!jo.isBr(n.getNode())&&(i=u).breakType===Tb.Br&&1===i.positions.length?(r=e,o=t,!u.breakAt.map(function(e){return r(o,e).breakAt.isSome()}).getOr(!1)):u.breakAt.isNone()},DC=d(RC,mC),OC=d(RC,gC),BC=function(e,t,n,r){var o,i,a,u,s=e.selection.getRng(),c=t?1:-1;if(ms()&&(o=t,i=s,a=n,u=_u.fromRangeStart(i),sc.positionIn(!o,a).map(function(e){return e.isEqual(u)}).getOr(!1))){var l=sg(c,e,n,!t,!0);return dg(e,l),!0}return!1},PC=function(e,t){var n=t.getNode(e);return jo.isElement(n)&&"TABLE"===n.nodeName?_.some(n):_.none()},IC=function(u,s,c){var e=PC(!!s,c),t=!1===s;e.fold(function(){return dg(u,c.toRange())},function(a){return sc.positionIn(t,u.getBody()).filter(function(e){return e.isEqual(c)}).fold(function(){return dg(u,c.toRange())},function(e){return n=s,o=a,t=c,void((i=Nl(r=u))?r.undoManager.transact(function(){var e=ar.fromTag(i);Nr(e,El(r)),Fi(e,ar.fromTag("br")),n?Ii(ar.fromDom(o),e):Pi(ar.fromDom(o),e);var t=r.dom.createRng();t.setStart(e.dom(),0),t.setEnd(e.dom(),0),dg(r,t)}):dg(r,t.toRange()));var n,r,o,t,i})})},LC=function(e,t,n,r){var o,i,a,u,s,c,l=e.selection.getRng(),f=_u.fromRangeStart(l),d=e.getBody();if(!t&&DC(r,f)){var m=(u=d,_C(s=n,c=f).orThunk(function(){return Z(c.getClientRects()).bind(function(e){return fC(pC(u,_u.before(s)),e.left)})}).getOr(_u.before(s)));return IC(e,t,m),!0}return!(!t||!OC(r,f))&&(o=d,m=AC(i=n,a=f).orThunk(function(){return Z(a.getClientRects()).bind(function(e){return fC(hC(o,_u.after(i)),e.left)})}).getOr(_u.after(i)),IC(e,t,m),!0)},FC=function(t,n){return function(){return _.from(t.dom.getParent(t.selection.getNode(),"td,th")).bind(function(e){return _.from(t.dom.getParent(e,"table")).map(function(e){return BC(t,n,e)})}).getOr(!1)}},MC=function(n,r){return function(){return _.from(n.dom.getParent(n.selection.getNode(),"td,th")).bind(function(t){return _.from(n.dom.getParent(t,"table")).map(function(e){return LC(n,r,e,t)})}).getOr(!1)}},zC=function(e){return F(["figcaption"],lr(e))},UC=function(e){var t=V.document.createRange();return t.setStartBefore(e.dom()),t.setEndBefore(e.dom()),t},jC=function(e,t,n){n?Fi(e,t):Li(e,t)},VC=function(e,t,n,r){return""===t?(l=e,f=r,d=ar.fromTag("br"),jC(l,d,f),UC(d)):(o=e,i=r,a=t,u=n,s=ar.fromTag(a),c=ar.fromTag("br"),Nr(s,u),Fi(s,c),jC(o,s,i),UC(c));var o,i,a,u,s,c,l,f,d},HC=function(e,t,n){return t?(o=e.dom(),gC(o,n).breakAt.isNone()):(r=e.dom(),mC(r,n).breakAt.isNone());var r,o},qC=function(t,n){var e,r,o,i=ar.fromDom(t.getBody()),a=_u.fromRangeStart(t.selection.getRng()),u=Nl(t),s=El(t);return(e=a,r=i,o=d(Mr,r),na(ar.fromDom(e.container()),Co,o).filter(zC)).exists(function(){if(HC(i,n,a)){var e=VC(i,u,s,n);return t.selection.setRng(e),!0}return!1})},$C=function(e,t){return function(){return!!e.selection.isCollapsed()&&qC(e,t)}},WC=function(e,r){return G(W(e,function(e){return Zy({shiftKey:!1,altKey:!1,ctrlKey:!1,metaKey:!1,keyCode:0,action:o},e)}),function(e){return t=e,(n=r).keyCode===t.keyCode&&n.shiftKey===t.shiftKey&&n.altKey===t.altKey&&n.ctrlKey===t.ctrlKey&&n.metaKey===t.metaKey?[e]:[];var t,n})},KC=function(e){for(var t=[],n=1;n'},cx=function(e,t){return e.nodeName===t||e.previousSibling&&e.previousSibling.nodeName===t},lx=function(e,t){return t&&e.isBlock(t)&&!/^(TD|TH|CAPTION|FORM)$/.test(t.nodeName)&&!/^(fixed|absolute)/i.test(t.style.position)&&"true"!==e.getContentEditable(t)},fx=function(e,t,n){return!1===jo.isText(t)?n:e?1===n&&t.data.charAt(n-1)===xa?0:n:n===t.data.length-1&&t.data.charAt(n)===xa?t.data.length:n},dx=function(e,t){var n,r,o=e.getRoot();for(n=t;n!==o&&"false"!==e.getContentEditable(n);)"true"===e.getContentEditable(n)&&(r=n),n=n.parentNode;return n!==o?r:o},mx=function(o,i,e){_.from(e.style).map(o.dom.parseStyle).each(function(e){var t=function(e){var t={},n=e.dom();if(Cr(n))for(var r=0;rs.childNodes.length-1,s=s.childNodes[Math.min(i,s.childNodes.length-1)]||s,i=g&&jo.isText(s)?s.nodeValue.length:0),(u=dx(x,s))&&((m&&!n||!m&&n)&&(s=function(e,t,n,r,o){var i,a,u,s,c,l,f,d=t||"P",m=e.dom,g=dx(m,r);if(!(a=m.getParent(r,m.isBlock))||!lx(m,a)){if(l=(a=a||g)===e.getBody()||(f=a)&&/^(TD|TH|CAPTION)$/.test(f.nodeName)?a.nodeName.toLowerCase():a.parentNode.nodeName.toLowerCase(),!a.hasChildNodes())return i=m.create(d),gx(e,i),a.appendChild(i),n.setStart(i,0),n.setEnd(i,0),i;for(s=r;s.parentNode!==a;)s=s.parentNode;for(;s&&!m.isBlock(s);)s=(u=s).previousSibling;if(u&&e.schema.isValidChild(l,d.toLowerCase())){for(i=m.create(d),gx(e,i),u.parentNode.insertBefore(i,u),s=u;s&&!m.isBlock(s);)c=s.nextSibling,i.appendChild(s),s=c;n.setStart(r,o),n.setEnd(r,o)}}return r}(a,m,E,s,i)),c=x.getParent(s,x.isBlock),l=c?x.getParent(c.parentNode,x.isBlock):null,f=c?c.nodeName.toUpperCase():"","LI"!==(d=l?l.nodeName.toUpperCase():"")||e.ctrlKey||(l=(c=l).parentNode,f=d),/^(LI|DT|DD)$/.test(f)&&x.isEmpty(c)?ux(a,S,l,c,m):m&&c===a.getBody()||(m=m||"P",Sa(c)?(r=Pa(c),x.isEmpty(c)&&sx(c),gx(a,r),QC(a,r)):T()?k():T(!0)?(r=c.parentNode.insertBefore(S(),c),QC(a,cx(c,"HR")?r:c)):((t=(b=E,C=b.cloneRange(),C.setStart(b.startContainer,fx(!0,b.startContainer,b.startOffset)),C.setEnd(b.endContainer,fx(!1,b.endContainer,b.endOffset)),C).cloneRange()).setEndAfter(c),o=t.extractContents(),y=o,z(Ji(ar.fromDom(y),mr),function(e){var t=e.dom();t.nodeValue=wa(t.nodeValue)}),function(e){for(;jo.isText(e)&&(e.nodeValue=e.nodeValue.replace(/^[\r\n]+/,"")),e=e.firstChild;);}(o),r=o.firstChild,x.insertAfter(o,c),function(e,t,n){var r,o=n,i=[];if(o){for(;o=o.firstChild;){if(e.isBlock(o))return;jo.isElement(o)&&!t[o.nodeName.toLowerCase()]&&i.push(o)}for(r=i.length;r--;)!(o=i[r]).hasChildNodes()||o.firstChild===o.lastChild&&""===o.firstChild.nodeValue?e.remove(o):(a=e,(u=o)&&"A"===u.nodeName&&a.isEmpty(u)&&e.remove(o));var a,u}}(x,N,r),p=x,(h=c).normalize(),(v=h.lastChild)&&!/^(left|right)$/gi.test(p.getStyle(v,"float",!0))||p.add(h,"br"),x.isEmpty(c)&&sx(c),r.normalize(),x.isEmpty(r)?(x.remove(r),k()):(gx(a,r),QC(a,r))),x.setAttrib(r,"id",""),a.fire("NewBlock",{newBlock:r})))},hx=function(e,t){return ex(e).filter(function(e){return 0",yl(f)!==f.documentBaseUrl&&(g+=''),g+='',d=bl(f),m=Cl(f),xl(f)&&(g+=''),g+='
    '),Cw.add(t.iframeContainer,l),p},ww=function(e,t){var n=xw(e,t);t.editorContainer&&(Cw.get(t.editorContainer).style.display=e.orgDisplay,e.hidden=Cw.isHidden(t.editorContainer)),e.getElement().style.display="none",Cw.setAttrib(e.id,"aria-hidden","true"),n||bw(e)},Nw=Si.DOM,Ew=function(t,n,e){var r=_h.get(e),o=_h.urls[e]||t.documentBaseUrl.replace(/\/$/,"");if(e=Xt.trim(e),r&&-1===Xt.inArray(n,e)){if(Xt.each(_h.dependencies(e),function(e){Ew(t,n,e)}),t.plugins[e])return;try{var i=new r(t,o,t.$);(t.plugins[e]=i).init&&(i.init(t,o),n.push(e))}catch(iE){kh.pluginInitError(t,e,iE)}}},Sw=function(e){return e.replace(/^\-/,"")},Tw=function(e){return{editorContainer:e,iframeContainer:e}},kw=function(e){var t,n,r=e.getElement();return e.inline?Tw(null):(t=r,n=Nw.create("div"),Nw.insertAfter(n,t),Tw(n))},_w=function(e){var t,n,r,o,i,a,u,s,c,l,f,d=e.settings,m=e.getElement();return e.orgDisplay=m.style.display,S(d.theme)?(l=(o=e).settings,f=o.getElement(),i=l.width||Nw.getStyle(f,"width")||"100%",a=l.height||Nw.getStyle(f,"height")||f.offsetHeight,u=l.min_height||100,(s=/^[0-9\.]+(|px)$/i).test(""+i)&&(i=Math.max(parseInt(i,10),100)),s.test(""+a)&&(a=Math.max(parseInt(a,10),u)),c=o.theme.renderUI({targetNode:f,width:i,height:a,deltaWidth:l.delta_width,deltaHeight:l.delta_height}),l.content_editable||(a=(c.iframeHeight||a)+("number"==typeof a?c.deltaHeight||0:""))=n.length)for(r=0,o=e.length;r=n.length||e[r]!==n[r]){i=r+1;break}if(e.length=e.length||e[r]!==n[r]){i=r+1;break}if(1===i)return t;for(r=0,o=e.length-(i-1);r]*>( | |\\s|\xa0|
    |)<\\/"+a+">[\r\n]*|
    [\r\n]*)$"),r=i.replace(u,"")}return"text"===t.format||Ao(ar.fromDom(n))?t.content=r:t.content=Xt.trim(r),t.no_events||e.fire("GetContent",t),t.content},jw=function(e,t){t(e),e.firstChild&&jw(e.firstChild,t),e.next&&jw(e.next,t)},Vw=function(e,t,n){var r=function(e,n,t){var r={},o={},i=[];for(var a in t.firstChild&&jw(t.firstChild,function(t){z(e,function(e){e.name===t.name&&(r[e.name]?r[e.name].nodes.push(t):r[e.name]={filter:e,nodes:[t]})}),z(n,function(e){"string"==typeof t.attr(e.name)&&(o[e.name]?o[e.name].nodes.push(t):o[e.name]={filter:e,nodes:[t]})})}),r)r.hasOwnProperty(a)&&i.push(r[a]);for(var a in o)o.hasOwnProperty(a)&&i.push(o[a]);return i}(e,t,n);z(r,function(t){z(t.filter.callbacks,function(e){e(t.nodes,t.filter.name,{})})})},Hw=function(e){return e instanceof sb},qw=function(e,t){var r;e.dom.setHTML(e.getBody(),t),sh(r=e)&&sc.firstPositionIn(r.getBody()).each(function(e){var t=e.getNode(),n=jo.isTable(t)?sc.firstPositionIn(t).getOr(e):e;r.selection.setRng(n.toRange())})},$w=function(u,s,c){return void 0===c&&(c={}),c.format=c.format?c.format:"html",c.set=!0,c.content=Hw(s)?"":s,Hw(s)||c.no_events||(u.fire("BeforeSetContent",c),s=c.content),_.from(u.getBody()).fold(q(s),function(e){return Hw(s)?function(e,t,n,r){Vw(e.parser.getNodeFilters(),e.parser.getAttributeFilters(),n);var o=al({validate:e.validate},e.schema).serialize(n);return r.content=Ao(ar.fromDom(t))?o:Xt.trim(o),qw(e,r.content),r.no_events||e.fire("SetContent",r),n}(u,e,s,c):(t=u,n=e,o=c,0===(r=s).length||/^\s+$/.test(r)?(a='
    ',"TABLE"===n.nodeName?r=""+a+"":/^(UL|OL)$/.test(n.nodeName)&&(r="
  • "+a+"
  • "),(i=Nl(t))&&t.schema.isValidChild(n.nodeName.toLowerCase(),i.toLowerCase())?(r=a,r=t.dom.createHTML(i,t.settings.forced_root_block_attrs,r)):r||(r='
    '),qw(t,r),t.fire("SetContent",o)):("raw"!==o.format&&(r=al({validate:t.validate},t.schema).serialize(t.parser.parse(r,{isRootContent:!0,insert:!0}))),o.content=Ao(ar.fromDom(n))?r:Xt.trim(r),qw(t,o.content),o.no_events||t.fire("SetContent",o)),o.content);var t,n,r,o,i,a})},Ww=Si.DOM,Kw=function(e){return _.from(e).each(function(e){return e.destroy()})},Xw=function(e){if(!e.removed){var t=e._selectionOverrides,n=e.editorUpload,r=e.getBody(),o=e.getElement();r&&e.save({is_removing:!0}),e.removed=!0,e.unbindAllNativeEvents(),e.hasHiddenInput&&o&&Ww.remove(o.nextSibling),Np(e),e.editorManager.remove(e),!e.inline&&r&&(i=e,Ww.setStyle(i.id,"display",i.orgDisplay)),Ep(e),Ww.remove(e.getContainer()),Kw(t),Kw(n),e.destroy()}var i},Yw=function(e,t){var n,r,o,i=e.selection,a=e.dom;e.destroyed||(t||e.removed?(t||(e.editorManager.off("beforeunload",e._beforeUnload),e.theme&&e.theme.destroy&&e.theme.destroy(),Kw(i),Kw(a)),(r=(n=e).formElement)&&(r._mceOldSubmit&&(r.submit=r._mceOldSubmit,r._mceOldSubmit=null),Ww.unbind(r,"submit reset",n.formEventDelegate)),(o=e).contentAreaContainer=o.formElement=o.container=o.editorContainer=null,o.bodyElement=o.contentDocument=o.contentWindow=null,o.iframeElement=o.targetElm=null,o.selection&&(o.selection=o.selection.win=o.selection.dom=o.selection.dom.doc=null),e.destroyed=!0):e.remove())},Gw=Si.DOM,Jw=Xt.extend,Qw=Xt.each,Zw=Xt.resolve,eN=fe.ie,tN=function(e,t,n){var r,o,i,a,u,s,c,l=this,f=l.documentBaseUrl=n.documentBaseURL,d=n.baseURI;r=l,o=e,i=f,a=n.defaultSettings,u=t,c={id:o,theme:"modern",delta_width:0,delta_height:0,popup_css:"",plugins:"",document_base_url:i,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:"",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,render_ui:!0,indentation:"40px",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,summary,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,summary,article,hgroup,aside,figure,figcaption,option,optgroup,datalist",entity_encoding:"named",url_converter:(s=r).convertURL,url_converter_scope:s,ie7_compat:!0},t=$p(zp,c,a,u),l.settings=t,Bi.language=t.language||"en",Bi.languageLoad=t.language_load,Bi.baseURL=n.baseURL,l.id=e,l.setDirty(!1),l.plugins={},l.documentBaseURI=new zw(t.document_base_url,{base_uri:d}),l.baseURI=d,l.contentCSS=[],l.contentStyles=[],l.shortcuts=new Qp(l),l.loadedCSS={},l.editorCommands=new pp(l),l.suffix=n.suffix,l.editorManager=n,l.inline=t.inline,l.buttons={},l.menuItems={},t.cache_suffix&&(fe.cacheSuffix=t.cache_suffix.replace(/^[\?\&]+/,"")),!1===t.override_viewport&&(fe.overrideViewPort=!1),n.fire("SetupEditor",{editor:l}),l.execCallback("setup",l),l.$=gn.overrideDefaults(function(){return{context:l.inline?l.getBody():l.getDoc(),element:l.getBody()}})};Jw(tN.prototype={render:function(){Bw(this)},focus:function(e){uh(this,e)},hasFocus:function(){return sh(this)},execCallback:function(e){for(var t=[],n=1;n=n.x&&o.x+o.w<=n.w+n.x&&o.y>=n.y&&o.y+o.h<=n.h+n.y)return r[i];return null},intersect:function(e,t){var n,r,o,i;return n=ON(e.x,t.x),r=ON(e.y,t.y),o=DN(e.x+e.w,t.x+t.w),i=DN(e.y+e.h,t.y+t.h),o-n<0||i-r<0?null:IN(n,r,o-n,i-r)},clamp:function(e,t,n){var r,o,i,a,u,s,c,l,f,d;return u=e.x,s=e.y,c=e.x+e.w,l=e.y+e.h,f=t.x+t.w,d=t.y+t.h,r=ON(0,t.x-u),o=ON(0,t.y-s),i=ON(0,c-f),a=ON(0,l-d),u+=r,s+=o,n&&(c+=r,l+=o,u-=i,s-=a),IN(u,s,(c-=i)-u,(l-=a)-s)},create:IN,fromClientRect:function(e){return IN(e.left,e.top,e.width,e.height)}},FN={},MN={add:function(e,t){FN[e.toLowerCase()]=t},has:function(e){return!!FN[e.toLowerCase()]},get:function(e){var t=e.toLowerCase(),n=FN.hasOwnProperty(t)?FN[t]:null;if(null===n)throw new Error("Could not find module for type: "+e);return n},create:function(e,t){var n;if("string"==typeof e?(t=t||{}).type=e:e=(t=e).type,e=e.toLowerCase(),!(n=FN[e]))throw new Error("Could not find control by type: "+e);return(n=new n(t)).type=e,n}},zN=Xt.each,UN=Xt.extend,jN=function(){};jN.extend=_N=function(n){var e,t,r,o=this.prototype,i=function(){var e,t,n;if(!AN&&(this.init&&this.init.apply(this,arguments),t=this.Mixins))for(e=t.length;e--;)(n=t[e]).init&&n.init.apply(this,arguments)},a=function(){return this},u=function(n,r){return function(){var e,t=this._super;return this._super=o[n],e=r.apply(this,arguments),this._super=t,e}};for(t in AN=!0,e=new this,AN=!1,n.Mixins&&(zN(n.Mixins,function(e){for(var t in e)"init"!==t&&(n[t]=e[t])}),o.Mixins&&(n.Mixins=o.Mixins.concat(n.Mixins))),n.Methods&&zN(n.Methods.split(","),function(e){n[e]=a}),n.Properties&&zN(n.Properties.split(","),function(e){var t="_"+e;n[e]=function(e){return e!==undefined?(this[t]=e,this):this[t]}}),n.Statics&&zN(n.Statics,function(e,t){i[t]=e}),n.Defaults&&o.Defaults&&(n.Defaults=UN({},o.Defaults,n.Defaults)),n)"function"==typeof(r=n[t])&&o[t]?e[t]=u(t,r):e[t]=r;return i.prototype=e,(i.constructor=i).extend=_N,i};var VN=Math.min,HN=Math.max,qN=Math.round,$N=function(e,n){var r,o,t,i;if(n=n||'"',null===e)return"null";if("string"==(t=typeof e))return o="\bb\tt\nn\ff\rr\"\"''\\\\",n+e.replace(/([\u0080-\uFFFF\x00-\x1f\"\'\\])/g,function(e,t){return'"'===n&&"'"===e?e:(r=o.indexOf(t))+1?"\\"+o.charAt(r+1):(e=t.charCodeAt().toString(16),"\\u"+"0000".substring(e.length)+e)})+n;if("object"===t){if(e.hasOwnProperty&&"[object Array]"===Object.prototype.toString.call(e)){for(r=0,o="[";r+~]|"+at+")"+at+"*"),mt=new RegExp("="+at+"*([^\\]'\"]*?)"+at+"*\\]","g"),gt=new RegExp(ct),pt=new RegExp("^"+ut+"$"),ht={ID:new RegExp("^#("+ut+")"),CLASS:new RegExp("^\\.("+ut+")"),TAG:new RegExp("^("+ut+"|[*])"),ATTR:new RegExp("^"+st),PSEUDO:new RegExp("^"+ct),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+at+"*(even|odd|(([+-]|)(\\d*)n|)"+at+"*(?:([+-]|)"+at+"*(\\d+)|))"+at+"*\\)|)","i"),bool:new RegExp("^(?:checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped)$","i"),needsContext:new RegExp("^"+at+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+at+"*((?:-\\d)?\\d*)"+at+"*\\)|)(?=[^-]|$)","i")},vt=/^(?:input|select|textarea|button)$/i,yt=/^h\d$/i,bt=/^[^{]+\{\s*\[native \w/,Ct=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,xt=/[+~]/,wt=/'|\\/g,Nt=new RegExp("\\\\([\\da-f]{1,6}"+at+"?|("+at+")|.)","ig"),Et=function(e,t,n){var r="0x"+t-65536;return r!=r||n?t:r<0?String.fromCharCode(r+65536):String.fromCharCode(r>>10|55296,1023&r|56320)};try{rt.apply(et=ot.call($e.childNodes),$e.childNodes),et[$e.childNodes.length].nodeType}catch(iE){rt={apply:et.length?function(e,t){nt.apply(e,ot.call(t))}:function(e,t){for(var n=e.length,r=0;e[n++]=t[r++];);e.length=n-1}}}var St=function(e,t,n,r){var o,i,a,u,s,c,l,f,d,m;if((t?t.ownerDocument||t:$e)!==Me&&Fe(t),n=n||[],!e||"string"!=typeof e)return n;if(1!==(u=(t=t||Me).nodeType)&&9!==u)return[];if(Ue&&!r){if(o=Ct.exec(e))if(a=o[1]){if(9===u){if(!(i=t.getElementById(a))||!i.parentNode)return n;if(i.id===a)return n.push(i),n}else if(t.ownerDocument&&(i=t.ownerDocument.getElementById(a))&&He(t,i)&&i.id===a)return n.push(i),n}else{if(o[2])return rt.apply(n,t.getElementsByTagName(e)),n;if((a=o[3])&&ke.getElementsByClassName)return rt.apply(n,t.getElementsByClassName(a)),n}if(ke.qsa&&(!je||!je.test(e))){if(f=l=qe,d=t,m=9===u&&e,1===u&&"object"!==t.nodeName.toLowerCase()){for(c=De(e),(l=t.getAttribute("id"))?f=l.replace(wt,"\\$&"):t.setAttribute("id",f),f="[id='"+f+"'] ",s=c.length;s--;)c[s]=f+Pt(c[s]);d=xt.test(e)&&Ot(t.parentNode)||t,m=c.join(",")}if(m)try{return rt.apply(n,d.querySelectorAll(m)),n}catch(g){}finally{l||t.removeAttribute("id")}}}return Be(e.replace(lt,"$1"),t,n,r)};function Tt(){var r=[];return function e(t,n){return r.push(t+" ")>_e.cacheLength&&delete e[r.shift()],e[t+" "]=n}}function kt(e){return e[qe]=!0,e}function _t(e,t){var n=t&&e,r=n&&1===e.nodeType&&1===t.nodeType&&(~t.sourceIndex||1<<31)-(~e.sourceIndex||1<<31);if(r)return r;if(n)for(;n=n.nextSibling;)if(n===t)return-1;return e?1:-1}function At(t){return function(e){return"input"===e.nodeName.toLowerCase()&&e.type===t}}function Rt(n){return function(e){var t=e.nodeName.toLowerCase();return("input"===t||"button"===t)&&e.type===n}}function Dt(a){return kt(function(i){return i=+i,kt(function(e,t){for(var n,r=a([],e.length,i),o=r.length;o--;)e[n=r[o]]&&(e[n]=!(t[n]=e[n]))})})}function Ot(e){return e&&typeof e.getElementsByTagName!==Qe&&e}for(Te in ke=St.support={},Re=St.isXML=function(e){var t=e&&(e.ownerDocument||e).documentElement;return!!t&&"HTML"!==t.nodeName},Fe=St.setDocument=function(e){var t,s=e?e.ownerDocument||e:$e,n=s.defaultView;return s!==Me&&9===s.nodeType&&s.documentElement?(ze=(Me=s).documentElement,Ue=!Re(s),n&&n!==function(e){try{return e.top}catch(t){}return null}(n)&&(n.addEventListener?n.addEventListener("unload",function(){Fe()},!1):n.attachEvent&&n.attachEvent("onunload",function(){Fe()})),ke.attributes=!0,ke.getElementsByTagName=!0,ke.getElementsByClassName=bt.test(s.getElementsByClassName),ke.getById=!0,_e.find.ID=function(e,t){if(typeof t.getElementById!==Qe&&Ue){var n=t.getElementById(e);return n&&n.parentNode?[n]:[]}},_e.filter.ID=function(e){var t=e.replace(Nt,Et);return function(e){return e.getAttribute("id")===t}},_e.find.TAG=ke.getElementsByTagName?function(e,t){if(typeof t.getElementsByTagName!==Qe)return t.getElementsByTagName(e)}:function(e,t){var n,r=[],o=0,i=t.getElementsByTagName(e);if("*"===e){for(;n=i[o++];)1===n.nodeType&&r.push(n);return r}return i},_e.find.CLASS=ke.getElementsByClassName&&function(e,t){if(Ue)return t.getElementsByClassName(e)},Ve=[],je=[],ke.disconnectedMatch=!0,je=je.length&&new RegExp(je.join("|")),Ve=Ve.length&&new RegExp(Ve.join("|")),t=bt.test(ze.compareDocumentPosition),He=t||bt.test(ze.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},Je=t?function(e,t){if(e===t)return Le=!0,0;var n=!e.compareDocumentPosition-!t.compareDocumentPosition;return n||(1&(n=(e.ownerDocument||e)===(t.ownerDocument||t)?e.compareDocumentPosition(t):1)||!ke.sortDetached&&t.compareDocumentPosition(e)===n?e===s||e.ownerDocument===$e&&He($e,e)?-1:t===s||t.ownerDocument===$e&&He($e,t)?1:Ie?it.call(Ie,e)-it.call(Ie,t):0:4&n?-1:1)}:function(e,t){if(e===t)return Le=!0,0;var n,r=0,o=e.parentNode,i=t.parentNode,a=[e],u=[t];if(!o||!i)return e===s?-1:t===s?1:o?-1:i?1:Ie?it.call(Ie,e)-it.call(Ie,t):0;if(o===i)return _t(e,t);for(n=e;n=n.parentNode;)a.unshift(n);for(n=t;n=n.parentNode;)u.unshift(n);for(;a[r]===u[r];)r++;return r?_t(a[r],u[r]):a[r]===$e?-1:u[r]===$e?1:0},s):Me},St.matches=function(e,t){return St(e,null,null,t)},St.matchesSelector=function(e,t){if((e.ownerDocument||e)!==Me&&Fe(e),t=t.replace(mt,"='$1']"),ke.matchesSelector&&Ue&&(!Ve||!Ve.test(t))&&(!je||!je.test(t)))try{var n=(void 0).call(e,t);if(n||ke.disconnectedMatch||e.document&&11!==e.document.nodeType)return n}catch(iE){}return 0":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(e){return e[1]=e[1].replace(Nt,Et),e[3]=(e[3]||e[4]||e[5]||"").replace(Nt,Et),"~="===e[2]&&(e[3]=" "+e[3]+" "),e.slice(0,4)},CHILD:function(e){return e[1]=e[1].toLowerCase(),"nth"===e[1].slice(0,3)?(e[3]||St.error(e[0]),e[4]=+(e[4]?e[5]+(e[6]||1):2*("even"===e[3]||"odd"===e[3])),e[5]=+(e[7]+e[8]||"odd"===e[3])):e[3]&&St.error(e[0]),e},PSEUDO:function(e){var t,n=!e[6]&&e[2];return ht.CHILD.test(e[0])?null:(e[3]?e[2]=e[4]||e[5]||"":n&>.test(n)&&(t=De(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(Nt,Et).toLowerCase();return"*"===e?function(){return!0}:function(e){return e.nodeName&&e.nodeName.toLowerCase()===t}},CLASS:function(e){var t=Xe[e+" "];return t||(t=new RegExp("(^|"+at+")"+e+"("+at+"|$)"))&&Xe(e,function(e){return t.test("string"==typeof e.className&&e.className||typeof e.getAttribute!==Qe&&e.getAttribute("class")||"")})},ATTR:function(n,r,o){return function(e){var t=St.attr(e,n);return null==t?"!="===r:!r||(t+="","="===r?t===o:"!="===r?t!==o:"^="===r?o&&0===t.indexOf(o):"*="===r?o&&-1)[^>]*$|#([\w\-]*)$)/,Zt=Se.Event,en=Xt.makeMap("children,contents,next,prev"),tn=function(e){return void 0!==e},nn=function(e){return"string"==typeof e},rn=function(e,t){var n,r,o;for(o=(t=t||Yt).createElement("div"),n=t.createDocumentFragment(),o.innerHTML=e;r=o.firstChild;)n.appendChild(r);return n},on=function(e,t,n,r){var o;if(nn(t))t=rn(t,bn(e[0]));else if(t.length&&!t.nodeType){if(t=gn.makeArray(t),r)for(o=t.length-1;0<=o;o--)on(e,t[o],n,r);else for(o=0;o"===e.charAt(e.length-1)&&3<=e.length?[null,e,null]:Qt.exec(e)))return gn(t).find(e);if(n[1])for(r=rn(e,bn(t)).firstChild;r;)Gt.call(o,r),r=r.nextSibling;else{if(!(r=bn(t).getElementById(n[2])))return o;if(r.id!==n[2])return o.find(e);o.length=1,o[0]=r}}else this.add(e,!1);return o},toArray:function(){return Xt.toArray(this)},add:function(e,t){var n,r,o=this;if(nn(e))return o.add(gn(e));if(!1!==t)for(n=gn.unique(o.toArray().concat(gn.makeArray(e))),o.length=n.length,r=0;r=a.length&&r(o)}))})})},co=function(e){return so(e,uo.nu)},lo=function(n){return{is:function(e){return n===e},isValue:C,isError:b,getOr:q(n),getOrThunk:q(n),getOrDie:q(n),or:function(e){return lo(n)},orThunk:function(e){return lo(n)},fold:function(e,t){return t(n)},map:function(e){return lo(e(n))},mapError:function(e){return lo(n)},each:function(e){e(n)},bind:function(e){return e(n)},exists:function(e){return e(n)},forall:function(e){return e(n)},toOption:function(){return _.some(n)}}},fo=function(n){return{is:b,isValue:b,isError:C,getOr:$,getOrThunk:function(e){return e()},getOrDie:function(){return e=String(n),function(){throw new Error(e)}();var e},or:function(e){return e},orThunk:function(e){return e()},fold:function(e,t){return e(n)},map:function(e){return fo(n)},mapError:function(e){return fo(e(n))},each:o,bind:function(e){return fo(n)},exists:b,forall:C,toOption:_.none}},mo={value:lo,error:fo,fromOption:function(e,t){return e.fold(function(){return fo(t)},lo)}};function go(e,u){var t=e,n=function(e,t,n,r){var o,i;if(e){if(!r&&e[t])return e[t];if(e!==u){if(o=e[n])return o;for(i=e.parentNode;i&&i!==u;i=i.parentNode)if(o=i[n])return o}}};this.current=function(){return t},this.next=function(e){return t=n(t,"firstChild","nextSibling",e)},this.prev=function(e){return t=n(t,"lastChild","previousSibling",e)},this.prev2=function(e){return t=function(e,t,n,r){var o,i,a;if(e){if(o=e[n],u&&o===u)return;if(o){if(!r)for(a=o[t];a;a=a[t])if(!a[t])return a;return o}if((i=e.parentNode)&&i!==u)return i}}(t,"lastChild","previousSibling",e)}}var po,ho,vo,yo=function(t){var n;return function(e){return(n=n||function(e,t){for(var n={},r=0,o=e.length;r\"\u0060\u007E-\uD7FF\uE000-\uFFEF]|[\uD800-\uDBFF][\uDC00-\uDFFF]/g,Ko=/[<>&\u007E-\uD7FF\uE000-\uFFEF]|[\uD800-\uDBFF][\uDC00-\uDFFF]/g,Xo=/[<>&\"\']/g,Yo=/&#([a-z0-9]+);?|&([a-z0-9]+);/gi,Go={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"};ho={'"':""","'":"'","<":"<",">":">","&":"&","`":"`"},vo={"<":"<",">":">","&":"&",""":'"',"'":"'"};var Jo=function(e,t){var n,r,o,i={};if(e){for(e=e.split(","),t=t||10,n=0;n>10),56320+(1023&t))):Go[t]||String.fromCharCode(t):vo[e]||po[e]||(n=e,(r=ar.fromTag("div").dom()).innerHTML=n,r.textContent||r.innerText||n);var n,r})}},ni={},ri={},oi=Xt.makeMap,ii=Xt.each,ai=Xt.extend,ui=Xt.explode,si=Xt.inArray,ci=function(e,t){return(e=Xt.trim(e))?e.split(t||" "):[]},li=function(e){var u,t,n,r,o,i,s={},a=function(e,t,n){var r,o,i,a=function(e,t){var n,r,o={};for(n=0,r=e.length;n
    ').css(n).appendTo(a)[0];return c.set(_.some({caret:i,element:e,before:t})),c.get().each(function(e){t&&gn(e.caret).addClass("mce-visual-caret-before")}),f(),(r=e.ownerDocument.createRange()).setStart(s,0),r.setEnd(s,0),r},hide:l,getCss:function(){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;}"},reposition:function(){c.get().each(function(e){var t=fs(a,e.element,e.before);gn(e.caret).css(t)})},destroy:function(){return he.clearInterval(t)}}},ms=function(){return cs.isIE()||cs.isEdge()||cs.isFirefox()},gs=function(e){return ls(e)||jo.isTable(e)&&ms()},ps=jo.isContentEditableFalse,hs=jo.matchStyleValues("display","block table table-cell table-caption list-item"),vs=ka,ys=Sa,bs=jo.isElement,Cs=Ha,xs=function(e){return 0=o.data.length-1)return 1===e&&(r=s(o))?Rs(r):n;if(Oa(o)&&i<=1)return-1===e&&(r=u(o))?Ds(r):n;if(i===o.data.length)return(r=s(o))?Rs(r):n;if(0===i)return(r=u(o))?Ds(r):n}return n},Bs=function(e,t){return _.from(ks(e?0:-1,t)).filter(ps)},Ps=function(e,t,n){var r=Os(e,t,n);return-1===e?Su.fromRangeStart(r):Su.fromRangeEnd(r)},Is=function(e){return _.from(e.getNode()).map(ar.fromDom)},Ls=function(e,t){for(;t=e(t);)if(t.isVisible())return t;return t},Fs=function(e,t){var n=Ts(e,t);return!(n||!jo.isBr(e.getNode()))||n};(ku=Tu||(Tu={}))[ku.Backwards=-1]="Backwards",ku[ku.Forwards=1]="Forwards";var Ms,zs,Us,js=jo.isContentEditableFalse,Vs=jo.isText,Hs=jo.isElement,qs=jo.isBr,$s=Ha,Ws=function(e){return Ua(e)||!!qa(t=e)&&!0!==j(te(t.getElementsByTagName("*")),function(e,t){return e||Ia(t)},!1);var t},Ks=$a,Xs=function(e,t){return e.hasChildNodes()&&tu.length-1)return!!fc(c,i,r)||lc(i,r);i=u[s[o]]}3===i.nodeType&&(a=Math.min(s[0],i.nodeValue.length)),1===i.nodeType&&(a=Math.min(s[0],i.childNodes.length)),t?r.setStart(i,a):r.setEnd(i,a)}return!0},mc=function(e){return jo.isText(e)&&0=t.nodeValue.length&&e.splice(0,1),t=e[e.length-1],0===m&&0h.length-1?p=h.length-1:p<0&&(p=0),d=h[p]||g),l===d)return o(v([l]));for(n=e.findCommonAncestor(l,d),a=l;a;a=a.parentNode){if(a===d)return C(l,n,!0);if(a===n)break}for(a=d;a;a=a.parentNode){if(a===l)return C(d,n);if(a===n)break}r=b(l,n)||l,i=b(d,n)||d,C(l,r,!0),(s=y(r===l?r:r.nextSibling,"nextSibling",i===d?i.nextSibling:i)).length&&o(v(s)),C(d,i)}},Fc=(Ms=mr,zs="text",{get:function(e){if(!Ms(e))throw new Error("Can only get "+zs+" value of a "+zs+" node");return Us(e).getOr("")},getOption:Us=function(e){return Ms(e)?_.from(e.dom().nodeValue):_.none()},set:function(e,t){if(!Ms(e))throw new Error("Can only set raw "+zs+" value of a "+zs+" node");e.dom().nodeValue=t}}),Mc=function(e){return Fc.get(e)},zc=function(r,o,i,a){return Vr(o).fold(function(){return"skipping"},function(e){return"br"===a||mr(n=o)&&"\ufeff"===Mc(n)?"valid":dr(t=o)&&Gi(t,aa())?"existing":Ju(o)?"caret":wc.isValid(r,i,a)&&wc.isValid(r,lr(e),i)?"valid":"invalid-child";var t,n})},Uc=function(e,t,n,r){var o,i,a=t.uid,u=void 0===a?(o="mce-annotation",i=(new Date).getTime(),o+"_"+Math.floor(1e9*Math.random())+ ++ga+String(i)):a,s=function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var o=0;for(r=Object.getOwnPropertySymbols(e);o=n.startOffset&&"\xa0"===n.startContainer.nodeValue[n.startOffset]),t.setStart(r.startContainer,r.startOffset),t.setEnd(r.endContainer,r.endOffset),e.selection.setRng(t)),s.selection.getRng().collapsed){var i=Uc(s.getDoc(),f,c,l.decorate);ya(i,"\xa0"),s.selection.getRng().insertNode(i.dom()),s.selection.select(i.dom())}else{var a=Yu.getPersistentBookmark(s.selection,!1),u=s.selection.getRng();jc(s,u,c,l.decorate,f),s.selection.moveToBookmark(a)}})};function Hc(s){var n,r=(n={},{register:function(e,t){n[e]={name:e,settings:t}},lookup:function(e){return n.hasOwnProperty(e)?_.from(n[e]).map(function(e){return e.settings}):_.none()}});da(s,r);var o=fa(s);return{register:function(e,t){r.register(e,t)},annotate:function(t,n){r.lookup(t).each(function(e){Vc(s,t,e,n)})},annotationChanged:function(e,t){o.addListener(e,t)},remove:function(e){ca(s,_.some(e)).each(function(e){var t=e.elements;z(t,ji)})},getAll:function(e){var t,n,r,o,i,a,u=(t=s,n=e,r=ar.fromDom(t.getBody()),o=Qi(r,"["+ua()+'="'+n+'"]'),i={},z(o,function(e){var t=Er(e,sa()),n=i.hasOwnProperty(t)?i[t]:[];i[t]=n.concat([e])}),i);return a=function(e){return W(e,function(e){return e.dom()})},vr(u,function(e,t){return{k:t,v:a(e,t)}})}}}var qc=function(e){return Xt.grep(e.childNodes,function(e){return"LI"===e.nodeName})},$c=function(e){return e&&e.firstChild&&e.firstChild===e.lastChild&&("\xa0"===(t=e.firstChild).data||jo.isBr(t));var t},Wc=function(e){return 0'))},rl=function(n){Gr(n).each(function(t){Hr(t).each(function(e){Co(n)&&wo(t)&&Co(e)&&Ui(t)})})},ol=Xt.makeMap;function il(e){var u,s,c,l,f,d=[];return u=(e=e||{}).indent,s=ol(e.indent_before||""),c=ol(e.indent_after||""),l=ti.getEncodeFunc(e.entity_encoding||"raw",e.entities),f="html"===e.element_format,{start:function(e,t,n){var r,o,i,a;if(u&&s[e]&&0":" />",n&&u&&c[e]&&0"),u&&c[e]&&0")},comment:function(e){d.push("\x3c!--",e,"--\x3e")},pi:function(e,t){t?d.push(""):d.push(""),u&&d.push("\n")},doctype:function(e){d.push("",u?"\n":"")},reset:function(){d.length=0},getContent:function(){return d.join("").replace(/\n$/,"")}}}function al(t,g){void 0===g&&(g=di());var p=il(t);return(t=t||{}).validate=!("validate"in t)||t.validate,{serialize:function(e){var f,d;d=t.validate,f={3:function(e){p.text(e.value,e.raw)},8:function(e){p.comment(e.value)},7:function(e){p.pi(e.name,e.value)},10:function(e){p.doctype(e.value)},4:function(e){p.cdata(e.value)},11:function(e){if(e=e.firstChild)for(;m(e),e=e.next;);}},p.reset();var m=function(e){var t,n,r,o,i,a,u,s,c,l=f[e.type];if(l)l(e);else{if(t=e.name,n=e.shortEnded,r=e.attributes,d&&r&&1|)$/," "):o("nextSibling")||(t=t.replace(/( | )(
    |)$/," "))),t}(g.getRng(),t)),r=e.parser,m=n.merge,o=al({validate:e.settings.validate},e.schema),d='​',s={content:t,format:"html",selection:!0,paste:n.paste},(s=e.fire("BeforeSetContent",s)).isDefaultPrevented())e.fire("SetContent",{content:s.content,format:"html",selection:!0,paste:n.paste});else{-1===(t=s.content).indexOf("{$caret}")&&(t+="{$caret}"),t=t.replace(/\{\$caret\}/,d);var h,v,y,b,C,x,w=(l=g.getRng()).startContainer||(l.parentElement?l.parentElement():null),N=e.getBody();w===N&&g.isCollapsed()&&p.isBlock(N.firstChild)&&(h=e,(v=N.firstChild)&&!h.schema.getShortEndedElements()[v.nodeName])&&p.isEmpty(N.firstChild)&&((l=p.createRng()).setStart(N.firstChild,0),l.setEnd(N.firstChild,0),g.setRng(l)),g.isCollapsed()||(e.selection.setRng(cl(e.selection.getRng())),e.getDoc().execCommand("Delete",!1,null),y=e.selection.getRng(),b=t,C=y.startContainer,x=y.startOffset,3===C.nodeType&&y.collapsed&&("\xa0"===C.data[x]?(C.deleteData(x,1),/[\u00a0| ]$/.test(b)||(b+=" ")):"\xa0"===C.data[x-1]&&(C.deleteData(x-1,1),/[\u00a0| ]$/.test(b)||(b=" "+b))),t=b);var E,S,T,k={context:(i=g.getNode()).nodeName.toLowerCase(),data:n.data,insert:!0};if(u=r.parse(t,k),!0===n.paste&&Gc(e.schema,u)&&Qc(p,i))return l=Jc(o,p,e.selection.getRng(),u),e.selection.setRng(l),void e.fire("SetContent",s);if(function(e){for(var t=e;t=t.walk();)1===t.type&&t.attr("data-mce-fragment","1")}(u),"mce_marker"===(f=u.lastChild).attr("id"))for(f=(c=f).prev;f;f=f.walk(!0))if(3===f.type||!p.isBlock(f.name)){e.schema.isValidChild(f.parent.name,"span")&&f.parent.insert(c,f,"br"===f.name);break}if(e._selectionOverrides.showBlockCaretContainer(i),k.invalid){for(fl(e,d),i=g.getNode(),a=e.getBody(),9===i.nodeType?i=f=a:f=i;f!==a;)f=(i=f).parentNode;t=i===a?a.innerHTML:p.getOuterHTML(i),t=o.serialize(r.parse(t.replace(//i,function(){return o.serialize(u)}))),i===a?p.setHTML(a,t):p.setOuterHTML(i,t)}else!function(e,t,n){if("all"===n.getAttribute("data-mce-bogus"))n.parentNode.insertBefore(e.dom.createFragment(t),n);else{var r=n.firstChild,o=n.lastChild;!r||r===o&&"BR"===r.nodeName?e.dom.setHTML(n,t):fl(e,t)}}(e,t=o.serialize(u),i);!function(e,t){var n=e.schema.getTextInlineElements(),r=e.dom;if(t){var o=e.getBody(),i=new el(r);Xt.each(r.select("*[data-mce-fragment]"),function(e){for(var t=e.parentNode;t&&t!==o;t=t.parentNode)n[e.nodeName.toLowerCase()]&&i.compare(t,e)&&r.remove(e,!0)})}}(e,m),function(n,e){var t,r,o,i,a,u=n.dom,s=n.selection;if(e){if(n.selection.scrollIntoView(e),t=function(e){for(var t=n.getBody();e&&e!==t;e=e.parentNode)if("false"===n.dom.getContentEditable(e))return e;return null}(e))return u.remove(e),s.select(t);var c=u.createRng();(i=e.previousSibling)&&3===i.nodeType?(c.setStart(i,i.nodeValue.length),fe.ie||(a=e.nextSibling)&&3===a.nodeType&&(i.appendData(a.data),a.parentNode.removeChild(a))):(c.setStartBefore(e),c.setEndBefore(e)),r=u.getParent(e,u.isBlock),u.remove(e),r&&u.isEmpty(r)&&(n.$(r).empty(),c.setStart(r,0),c.setEnd(r,0),ll(r)||r.getAttribute("data-mce-fragment")||!(o=function(e){var t=_u.fromRangeStart(e);if(t=Js(n.getBody()).next(t))return t.toRange()}(c))?u.add(r,u.create("br",{"data-mce-bogus":"1"})):(c=o,u.remove(r))),s.setRng(c)}}(e,p.get("mce_marker")),E=e.getBody(),Xt.each(E.getElementsByTagName("*"),function(e){e.removeAttribute("data-mce-fragment")}),S=e.dom,T=e.selection.getStart(),_.from(S.getParent(T,"td,th")).map(ar.fromDom).each(rl),e.fire("SetContent",s),e.addVisual()}},ml=function(e,t){var n,r,o="string"!=typeof(n=t)?(r=Xt.extend({paste:n.paste,data:{paste:n.paste}},n),{content:n.content,details:r}):{content:n,details:{}};dl(e,o.content,o.details)},gl=/[\u0591-\u07FF\uFB1D-\uFDFF\uFE70-\uFEFC]/,pl=function(e,t,n){var r=e.getParam(t,n);if(-1!==r.indexOf("=")){var o=e.getParam(t,"","hash");return o.hasOwnProperty(e.id)?o[e.id]:n}return r},hl=function(e){return e.getParam("iframe_attrs",{})},vl=function(e){return e.getParam("doctype","")},yl=function(e){return e.getParam("document_base_url","")},bl=function(e){return pl(e,"body_id","tinymce")},Cl=function(e){return pl(e,"body_class","")},xl=function(e){return e.getParam("content_security_policy","")},wl=function(e){return e.getParam("br_in_pre",!0)},Nl=function(e){if(e.getParam("force_p_newlines",!1))return"p";var t=e.getParam("forced_root_block","p");return!1===t?"":t},El=function(e){return e.getParam("forced_root_block_attrs",{})},Sl=function(e){return e.getParam("br_newline_selector",".mce-toc h2,figcaption,caption")},Tl=function(e){return e.getParam("no_newline_selector","")},kl=function(e){return e.getParam("keep_styles",!0)},_l=function(e){return e.getParam("end_container_on_empty_block",!1)},Al=function(e){return Xt.explode(e.getParam("font_size_style_values",""))},Rl=function(e){return Xt.explode(e.getParam("font_size_classes",""))},Dl=function(e){return e.getParam("images_dataimg_filter",q(!0),"function")},Ol=function(e){return e.getParam("automatic_uploads",!0,"boolean")},Bl=function(e){return e.getParam("images_reuse_filename",!1,"boolean")},Pl=function(e){return e.getParam("images_replace_blob_uris",!0,"boolean")},Il=function(e){return e.getParam("images_upload_url","","string")},Ll=function(e){return e.getParam("images_upload_base_path","","string")},Fl=function(e){return e.getParam("images_upload_credentials",!1,"boolean")},Ml=function(e){return e.getParam("images_upload_handler",null,"function")},zl=function(e){return e.getParam("content_css_cors",!1,"boolean")},Ul=function(e){return e.getParam("inline_boundaries_selector","a[href],code,.mce-annotation","string")},jl=function(e,t){if(!t)return t;var n=t.container(),r=t.offset();return e?Ta(n)?jo.isText(n.nextSibling)?_u(n.nextSibling,0):_u.after(n):Aa(t)?_u(n,r+1):t:Ta(n)?jo.isText(n.previousSibling)?_u(n.previousSibling,n.previousSibling.data.length):_u.before(n):Ra(t)?_u(n,r-1):t},Vl={isInlineTarget:function(e,t){return Lr(ar.fromDom(t),Ul(e))},findRootInline:function(e,t,n){var r,o,i,a=(r=e,o=t,i=n,U(Si.DOM.getParents(i.container(),"*",o),r));return _.from(a[a.length-1])},isRtl:function(e){return"rtl"===Si.DOM.getStyle(e,"direction",!0)||(t=e.textContent,gl.test(t));var t},isAtZwsp:function(e){return Aa(e)||Ra(e)},normalizePosition:jl,normalizeForwards:d(jl,!0),normalizeBackwards:d(jl,!1),hasSameParentBlock:function(e,t,n){var r=Ss(t,e),o=Ss(n,e);return r&&r===o}},Hl=function(e,t){return zr(e,t)?na(t,function(e){return No(e)||So(e)},(n=e,function(e){return Mr(n,ar.fromDom(e.dom().parentNode))})):_.none();var n},ql=function(e){var t,n,r;e.dom.isEmpty(e.getBody())&&(e.setContent(""),n=(t=e).getBody(),r=n.firstChild&&t.dom.isBlock(n.firstChild)?n.firstChild:n,t.selection.setCursorLocation(r,0))},$l=function(i,a,u){return ru(sc.firstPositionIn(u),sc.lastPositionIn(u),function(e,t){var n=Vl.normalizePosition(!0,e),r=Vl.normalizePosition(!1,t),o=Vl.normalizePosition(!1,a);return i?sc.nextPosition(u,o).map(function(e){return e.isEqual(r)&&a.isEqual(n)}).getOr(!1):sc.prevPosition(u,o).map(function(e){return e.isEqual(n)&&a.isEqual(r)}).getOr(!1)}).getOr(!0)},Wl=function(e,t){var n,r,o,i=ar.fromDom(e),a=ar.fromDom(t);return n=a,r="pre,code",o=d(Mr,i),ra(n,r,o).isSome()},Kl=function(e,t){return Ha(t)&&!1===(r=e,o=t,jo.isText(o)&&/^[ \t\r\n]*$/.test(o.data)&&!1===Wl(r,o))||(n=t,jo.isElement(n)&&"A"===n.nodeName&&n.hasAttribute("name"))||Xl(t);var n,r,o},Xl=jo.hasAttribute("data-mce-bookmark"),Yl=jo.hasAttribute("data-mce-bogus"),Gl=jo.hasAttributeValue("data-mce-bogus","all"),Jl=function(e){return function(e){var t,n,r=0;if(Kl(e,e))return!1;if(!(n=e.firstChild))return!0;t=new go(n,e);do{if(Gl(n))n=t.next(!0);else if(Yl(n))n=t.next();else if(jo.isBr(n))r++,n=t.next();else{if(Kl(e,n))return!1;n=t.next()}}while(n);return r<=1}(e.dom())},Ql=Ar("block","position"),Zl=Ar("from","to"),ef=function(e,t){var n=ar.fromDom(e),r=ar.fromDom(t.container());return Hl(n,r).map(function(e){return Ql(e,t)})},tf=function(o,i,e){var t=ef(o,_u.fromRangeStart(e)),n=t.bind(function(e){return sc.fromPosition(i,o,e.position()).bind(function(e){return ef(o,e).map(function(e){return t=o,n=i,r=e,jo.isBr(r.position().getNode())&&!1===Jl(r.block())?sc.positionIn(!1,r.block().dom()).bind(function(e){return e.isEqual(r.position())?sc.fromPosition(n,t,e).bind(function(e){return ef(t,e)}):_.some(r)}).getOr(r):r;var t,n,r})})});return ru(t,n,Zl).filter(function(e){return!1===Mr((r=e).from().block(),r.to().block())&&Vr((n=e).from().block()).bind(function(t){return Vr(n.to().block()).filter(function(e){return Mr(t,e)})}).isSome()&&(t=e,!1===jo.isContentEditableFalse(t.from().block().dom())&&!1===jo.isContentEditableFalse(t.to().block().dom()));var t,n,r})},nf=function(e,t,n){return n.collapsed?tf(e,t,n):_.none()},rf=function(e,t,n){return zr(t,e)?function(e,t){for(var n=D(t)?t:b,r=e.dom(),o=[];null!==r.parentNode&&r.parentNode!==undefined;){var i=r.parentNode,a=ar.fromDom(i);if(o.push(a),!0===n(a))break;r=i}return o}(e,function(e){return n(e)||Mr(e,t)}).slice(0,-1):[]},of=function(e,t){return rf(e,t,q(!1))},af=of,uf=function(e,t){return[e].concat(of(e,t))},sf=function(e){var t,n=(t=Kr(e),Y(t,Co).fold(function(){return t},function(e){return t.slice(0,e)}));return z(n,Ui),n},cf=function(e,t){var n=uf(t,e);return X(n.reverse(),Jl).each(Ui)},lf=function(e,t,n,r){if(Jl(n))return nl(n),sc.firstPositionIn(n.dom());0===U($r(r),function(e){return!Jl(e)}).length&&Jl(t)&&Pi(r,ar.fromTag("br"));var o=sc.prevPosition(n.dom(),_u.before(r.dom()));return z(sf(t),function(e){Pi(r,e)}),cf(e,t),o},ff=function(e,t,n){if(Jl(n))return Ui(n),Jl(t)&&nl(t),sc.firstPositionIn(t.dom());var r=sc.lastPositionIn(n.dom());return z(sf(t),function(e){Fi(n,e)}),cf(e,t),r},df=function(e,t){return zr(t,e)?(n=uf(e,t),_.from(n[n.length-1])):_.none();var n},mf=function(e,t){sc.positionIn(e,t.dom()).map(function(e){return e.getNode()}).map(ar.fromDom).filter(wo).each(Ui)},gf=function(e,t,n){return mf(!0,t),mf(!1,n),df(t,n).fold(d(ff,e,t,n),d(lf,e,t,n))},pf=function(e,t,n,r){return t?gf(e,r,n):gf(e,n,r)},hf=function(t,n){var e,r=ar.fromDom(t.getBody());return(e=nf(r.dom(),n,t.selection.getRng()).bind(function(e){return pf(r,n,e.from().block(),e.to().block())})).each(function(e){t.selection.setRng(e.toRange())}),e.isSome()},vf=function(e,t){var n=ar.fromDom(t),r=d(Mr,e);return ta(n,_o,r).isSome()},yf=function(e,t){var n,r,o=sc.prevPosition(e.dom(),_u.fromRangeStart(t)).isNone(),i=sc.nextPosition(e.dom(),_u.fromRangeEnd(t)).isNone();return!(vf(n=e,(r=t).startContainer)||vf(n,r.endContainer))&&o&&i},bf=function(e){var n,r,o,t,i=ar.fromDom(e.getBody()),a=e.selection.getRng();return yf(i,a)?((t=e).setContent(""),t.selection.setCursorLocation(),!0):(n=i,r=e.selection,o=r.getRng(),ru(Hl(n,ar.fromDom(o.startContainer)),Hl(n,ar.fromDom(o.endContainer)),function(e,t){return!1===Mr(e,t)&&(o.deleteContents(),pf(n,!0,e,t).each(function(e){r.setRng(e.toRange())}),!0)}).getOr(!1))},Cf=function(e,t){return!e.selection.isCollapsed()&&bf(e)},xf=function(a){if(!k(a))throw new Error("cases must be an array");if(0===a.length)throw new Error("there must be at least one case");var u=[],n={};return z(a,function(e,r){var t=gr(e);if(1!==t.length)throw new Error("one and only one name per case");var o=t[0],i=e[o];if(n[o]!==undefined)throw new Error("duplicate key detected:"+o);if("cata"===o)throw new Error("cannot have a case named cata (sorry)");if(!k(i))throw new Error("case arguments must be an array");u.push(o),n[o]=function(){var e=arguments.length;if(e!==i.length)throw new Error("Wrong number of arguments to case "+o+". Expected "+i.length+" ("+i+"), got "+e);for(var n=new Array(e),t=0;t=e.data.length,s=0===t;e.replaceData(t,n,(o=s,i=u,j((r=a).split(""),function(e,t){return-1!==" \f\n\r\t\x0B".indexOf(t)||"\xa0"===t?e.previousCharIsSpace||""===e.str&&o||e.str.length===r.length-1&&i?{previousCharIsSpace:!1,str:e.str+"\xa0"}:{previousCharIsSpace:!0,str:e.str+" "}:{previousCharIsSpace:!1,str:e.str+t}},{previousCharIsSpace:!1,str:""}).str))}},Wf=function(e,t){var n,r=e.data.slice(t),o=r.length-(n=r,n.replace(/^\s+/g,"")).length;return $f(e,t,o)},Kf=function(e,t){return r=e,o=(n=t).container(),i=n.offset(),!1===_u.isTextPosition(n)&&o===r.parentNode&&i>_u.before(r).offset()?_u(t.container(),t.offset()-1):t;var n,r,o,i},Xf=function(e){return Ha(e.previousSibling)?_.some((t=e.previousSibling,jo.isText(t)?_u(t,t.data.length):_u.after(t))):e.previousSibling?sc.lastPositionIn(e.previousSibling):_.none();var t},Yf=function(e){return Ha(e.nextSibling)?_.some((t=e.nextSibling,jo.isText(t)?_u(t,0):_u.before(t))):e.nextSibling?sc.firstPositionIn(e.nextSibling):_.none();var t},Gf=function(r,o){return Xf(o).orThunk(function(){return Yf(o)}).orThunk(function(){return e=r,t=o,n=_u.before(t.previousSibling?t.previousSibling:t.parentNode),sc.prevPosition(e,n).fold(function(){return sc.nextPosition(e,_u.after(t))},_.some);var e,t,n})},Jf=function(n,r){return Yf(r).orThunk(function(){return Xf(r)}).orThunk(function(){return e=n,t=r,sc.nextPosition(e,_u.after(t)).fold(function(){return sc.prevPosition(e,_u.before(t))},_.some);var e,t})},Qf=function(e,t,n){return(r=e,o=t,i=n,r?Jf(o,i):Gf(o,i)).map(d(Kf,n));var r,o,i},Zf=function(t,n,e){e.fold(function(){t.focus()},function(e){t.selection.setRng(e.toRange(),n)})},ed=function(e,t){return t&&e.schema.getBlockElements().hasOwnProperty(lr(t))},td=function(e){if(Jl(e)){var t=ar.fromHtml('
    ');return zi(e),Fi(e,t),_.some(_u.before(t.dom()))}return _.none()},nd=function(e,t,l){var n,r,o,i,a=Hr(e).filter(mr),u=qr(e).filter(mr);return Ui(e),(n=a,r=u,o=t,i=function(e,t,n){var r,o,i,a,u=e.dom(),s=t.dom(),c=u.data.length;return o=s,i=l,a=Jn((r=u).data).length,r.appendData(o.data),Ui(ar.fromDom(o)),i&&Wf(r,a),n.container()===s?_u(u,c):n},n.isSome()&&r.isSome()&&o.isSome()?_.some(i(n.getOrDie(),r.getOrDie(),o.getOrDie())):_.none()).orThunk(function(){return l&&(a.each(function(e){return t=e.dom(),n=e.dom().length,r=t.data.slice(0,n),o=r.length-Jn(r).length,$f(t,n-o,o);var t,n,r,o}),u.each(function(e){return Wf(e.dom(),0)})),t})},rd=function(t,n,e,r){void 0===r&&(r=!0);var o,i,a=Qf(n,t.getBody(),e.dom()),u=ta(e,d(ed,t),(o=t.getBody(),function(e){return e.dom()===o})),s=nd(e,a,(i=e,br(t.schema.getTextInlineElements(),lr(i))));t.dom.isEmpty(t.getBody())?(t.setContent(""),t.selection.setCursorLocation()):u.bind(td).fold(function(){r&&Zf(t,n,s)},function(e){r&&Zf(t,n,_.some(e))})},od=function(a,u){var e,t,n,r,o,i;return(e=a.getBody(),t=u,n=a.selection.getRng(),r=Os(t?1:-1,e,n),o=_u.fromRangeStart(r),i=ar.fromDom(e),!1===t&&Ff(o)?_.some(jf.remove(o.getNode(!0))):t&&Lf(o)?_.some(jf.remove(o.getNode())):!1===t&&Lf(o)&&Sf(i,o)?Tf(i,o).map(function(e){return jf.remove(e.getNode())}):t&&Ff(o)&&Ef(i,o)?kf(i,o).map(function(e){return jf.remove(e.getNode())}):qf(e,t,o)).map(function(e){return e.fold((o=a,i=u,function(e){return o._selectionOverrides.hideFakeCaret(),rd(o,i,ar.fromDom(e)),!0}),(n=a,r=u,function(e){var t=r?_u.before(e):_u.after(e);return n.selection.setRng(t.toRange()),!0}),(t=a,function(e){return t.selection.setRng(e.toRange()),!0}));var t,n,r,o,i}).getOr(!1)},id=function(e,t){var n,r=e.selection.getNode();return!!jo.isContentEditableFalse(r)&&(n=ar.fromDom(e.getBody()),z(Qi(n,".mce-offscreen-selection"),Ui),rd(e,t,ar.fromDom(e.selection.getNode())),ql(e),!0)},ad=function(e,t){return e.selection.isCollapsed()?od(e,t):id(e,t)},ud=function(e){var t,n=function(e,t){for(;t&&t!==e;){if(jo.isContentEditableTrue(t)||jo.isContentEditableFalse(t))return t;t=t.parentNode}return null}(e.getBody(),e.selection.getNode());return jo.isContentEditableTrue(n)&&e.dom.isBlock(n)&&e.dom.isEmpty(n)&&(t=e.dom.create("br",{"data-mce-bogus":"1"}),e.dom.setHTML(n,""),n.appendChild(t),e.selection.setRng(_u.before(t).toRange())),!0},sd=jo.isText,cd=function(e){return sd(e)&&e.data[0]===xa},ld=function(e){return sd(e)&&e.data[e.data.length-1]===xa},fd=function(e){return e.ownerDocument.createTextNode(xa)},dd=function(e,t){return e?function(e){if(sd(e.previousSibling))return ld(e.previousSibling)||e.previousSibling.appendData(xa),e.previousSibling;if(sd(e))return cd(e)||e.insertData(0,xa),e;var t=fd(e);return e.parentNode.insertBefore(t,e),t}(t):function(e){if(sd(e.nextSibling))return cd(e.nextSibling)||e.nextSibling.insertData(0,xa),e.nextSibling;if(sd(e))return ld(e)||e.appendData(xa),e;var t=fd(e);return e.nextSibling?e.parentNode.insertBefore(t,e.nextSibling):e.parentNode.appendChild(t),t}(t)},md=d(dd,!0),gd=d(dd,!1),pd=function(e,t){return jo.isText(e.container())?dd(t,e.container()):dd(t,e.getNode())},hd=function(e,t){var n=t.get();return n&&e.container()===n&&Ta(n)},vd=function(n,e){return e.fold(function(e){ss.remove(n.get());var t=md(e);return n.set(t),_.some(_u(t,t.length-1))},function(e){return sc.firstPositionIn(e).map(function(e){if(hd(e,n))return _u(n.get(),1);ss.remove(n.get());var t=pd(e,!0);return n.set(t),_u(t,1)})},function(e){return sc.lastPositionIn(e).map(function(e){if(hd(e,n))return _u(n.get(),n.get().length-1);ss.remove(n.get());var t=pd(e,!1);return n.set(t),_u(t,t.length-1)})},function(e){ss.remove(n.get());var t=gd(e);return n.set(t),_.some(_u(t,1))})},yd=function(e,t){for(var n=0;no.childNodes.length-1&&(c=!1),jo.isDocument(o)&&(o=g,i=0),o===g){if(c&&(u=o.childNodes[0s.childNodes.length-1;s=s.childNodes[Math.min(u,s.childNodes.length-1)]||s,u=c&&3===s.nodeType?s.nodeValue.length:0}var l=i.getParent(s,i.isBlock),f=l?i.getParent(l.parentNode,i.isBlock):null,d=f?f.nodeName.toUpperCase():"",m=t&&t.ctrlKey;"LI"!==d||m||(l=f),s&&3===s.nodeType&&u>=s.nodeValue.length&&(function(e,t,n){for(var r,o=new go(t,n),i=e.getNonEmptyElements();r=o.next();)if(i[r.nodeName.toLowerCase()]||0")},mceToggleVisualAid:function(){s.hasVisual=!s.hasVisual,s.addVisual()},mceReplaceContent:function(e,t,n){s.execCommand("mceInsertContent",!1,n.replace(/\{\$selection\}/g,i.getContent({format:"text"})))},mceInsertLink:function(e,t,n){var r;"string"==typeof n&&(n={href:n}),r=o.getParent(i.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=o.getParent(i.getStart(),jo.isContentEditableTrue);if(e){var t=o.createRng();t.selectNodeContents(e),i.setRng(t)}},"delete":function(){dg(s)},forwardDelete:function(){mg(s)},mceNewDocument:function(){s.setContent("")},InsertLineBreak:function(e,t,n){return Fg(s,n),!0}});var p=function(n){return function(){var e=i.isCollapsed()?[o.getParent(i.getNode(),o.isBlock)]:i.getSelectedBlocks(),t=cp(e,function(e){return!!a.matchNode(e,n)});return-1!==lp(t,!0)}};e({JustifyLeft:p("alignleft"),JustifyCenter:p("aligncenter"),JustifyRight:p("alignright"),JustifyFull:p("alignjustify"),"Bold,Italic,Underline,Strikethrough,Superscript,Subscript":function(e){return f(e)},mceBlockQuote:function(){return f("blockquote")},Outdent:function(){var e;if(n.inline_styles){if((e=o.getParent(i.getStart(),o.isBlock))&&0"),u))[o.length-1]=Xt.extend(o[o.length-1],{func:n,scope:r||i}),Xt.extend(o[0],{desc:i.translate(t),subpatterns:o.slice(1)})},o=function(e,t){return!!t&&t.ctrl===e.ctrlKey&&t.meta===e.metaKey&&t.alt===e.altKey&&t.shift===e.shiftKey&&!!(e.keyCode===t.keyCode||e.charCode&&e.charCode===t.charCode)&&(e.preventDefault(),!0)},c=function(e){return e.func?e.func.call(e.scope):null};i.on("keyup keypress keydown",function(t){var e,n;((n=t).altKey||n.ctrlKey||n.metaKey||"keydown"===(e=t).type&&112<=e.keyCode&&e.keyCode<=123)&&!t.isDefaultPrevented()&&(qp(a,function(e){if(o(t,e))return r=e.subpatterns.slice(0),"keydown"===t.type&&c(e),!0}),o(t,r[0])&&(1===r.length&&"keydown"===t.type&&c(r[0]),r.shift()))}),this.add=function(e,n,r,o){var t;return"string"==typeof(t=r)?r=function(){i.execCommand(t,!1,null)}:Xt.isArray(t)&&(r=function(){i.execCommand(t[0],t[1],t[2])}),qp($p(Xt.trim(e.toLowerCase())),function(e){var t=s(e,n,r,o);a[t.id]=t}),!0},this.remove=function(e){var t=s(e);return!!a[t.id]&&(delete a[t.id],!0)}}var Yp=function(e){var t=Ur(e).dom();return e.dom()===t.activeElement},Gp=function(t){return(e=Ur(t),n=e!==undefined?e.dom():V.document,_.from(n.activeElement).map(ar.fromDom)).filter(function(e){return t.dom().contains(e.dom())});var e,n},Jp=function(t,e){return(n=e,n.collapsed?_.from(eu(n.startContainer,n.startOffset)).map(ar.fromDom):_.none()).bind(function(e){return ko(e)?_.some(e):!1===zr(t,e)?_.some(t):_.none()});var n},Qp=function(t,e){Jp(ar.fromDom(t.getBody()),e).bind(function(e){return sc.firstPositionIn(e.dom())}).fold(function(){t.selection.normalize()},function(e){return t.selection.setRng(e.toRange())})},Zp=function(e){if(e.setActive)try{e.setActive()}catch(t){e.focus()}else e.focus()},eh=function(e){var t,n=e.getBody();return n&&(t=ar.fromDom(n),Yp(t)||Gp(t).isSome())},th=function(e){return e.inline?eh(e):(t=e).iframeElement&&Yp(ar.fromDom(t.iframeElement));var t},nh=function(e){return e.editorManager.setActive(e)},rh=function(e,t){e.removed||(t?nh(e):function(t){var e=t.selection,n=t.settings.content_editable,r=t.getBody(),o=e.getRng();t.quirks.refreshContentEditable();var i,a,u=(i=t,a=e.getNode(),i.dom.getParent(a,function(e){return"true"===i.dom.getContentEditable(e)}));if(t.$.contains(r,u))return Zp(u),Qp(t,o),nh(t);t.bookmark!==undefined&&!1===th(t)&&rp(t).each(function(e){t.selection.setRng(e),o=e}),n||(fe.opera||Zp(r),t.getWin().focus()),(fe.gecko||n)&&(Zp(r),Qp(t,o)),nh(t)}(e))},oh=th,ih=function(e,t){return t.dom()[e]},ah=function(e,t){return parseInt(kr(t,e),10)},uh=d(ih,"clientWidth"),sh=d(ih,"clientHeight"),ch=d(ah,"margin-top"),lh=d(ah,"margin-left"),fh=function(e,t,n){var r,o,i,a,u,s,c,l,f,d,m,g=ar.fromDom(e.getBody()),p=e.inline?g:(r=g,ar.fromDom(r.dom().ownerDocument.documentElement)),h=(o=e.inline,a=t,u=n,s=(i=p).dom().getBoundingClientRect(),{x:a-(o?s.left+i.dom().clientLeft+lh(i):0),y:u-(o?s.top+i.dom().clientTop+ch(i):0)});return l=h.x,f=h.y,d=uh(c=p),m=sh(c),0<=l&&0<=f&&l<=d&&f<=m},dh=function(e){var t,n=e.inline?e.getBody():e.getContentAreaContainer();return(t=n,_.from(t).map(ar.fromDom)).map(function(e){return zr(Ur(e),e)}).getOr(!1)};function mh(n){var t,o=[],i=function(){var e,t=n.theme;return t&&t.getNotificationManagerImpl?t.getNotificationManagerImpl():{open:e=function(){throw new Error("Theme did not provide a NotificationManager implementation.")},close:e,reposition:e,getArgs:e}},a=function(){0t;var t}},iv=function(n){return function(e){return t=n,e.line===t;var t}},av=jo.isContentEditableFalse,uv=Es,sv=function(e,t){return Math.abs(e.left-t)},cv=function(e,t){return Math.abs(e.right-t)},lv=function(e,t){return e>=t.left&&e<=t.right},fv=function(e,o){return Ht.reduce(e,function(e,t){var n,r;return n=Math.min(sv(e,o),cv(e,o)),r=Math.min(sv(t,o),cv(t,o)),lv(o,t)?t:lv(o,e)?e:r===n&&av(t.node)?t:r=e.top&&n<=e.bottom});return(r=fv(f,t))&&(r=fv((a=e,c=function(t,e){var n;return n=U(ev([e]),function(e){return!t(e,u)}),s=s.concat(n),0===n.length},(s=[]).push(u=r),dv(Jh.Up,a,d(c,Ga),u.node),dv(Jh.Down,a,d(c,Ja),u.node),s),t))&&gs(r.node)?(i=t,{node:(o=r).node,before:sv(o,i)i&&(u=n.pageX+r-i),n.pageY+o>a&&(s=n.pageY+o-a),t.style.width=r-u+"px",t.style.height=o-s+"px",v(e.clientX,e.clientY)}},o=xv(c,e),u=c,i=function(){u.dragging&&s.fire("dragend"),wv(u)},(s=e).on("mousedown",n),e.on("mousemove",r),e.on("mouseup",o),t.bind(a,"mousemove",r),t.bind(a,"mouseup",i),e.on("remove",function(){t.unbind(a,"mousemove",r),t.unbind(a,"mouseup",i)})},Ev=function(e){var n;Nv(e),(n=e).on("drop",function(e){var t="undefined"!=typeof e.clientX?n.getDoc().elementFromPoint(e.clientX,e.clientY):null;(vv(t)||vv(n.dom.getContentEditableParent(t)))&&e.preventDefault()})},Sv=function(t){var e=Vi(function(){if(!t.removed&&t.selection.getRng().collapsed){var e=sg(t,t.selection.getRng(),!1);t.selection.setRng(e)}},0);t.on("focus",function(){e.throttle()}),t.on("blur",function(){e.cancel()})},Tv=jo.isContentEditableTrue,kv=jo.isContentEditableFalse,_v=function(e,t){for(var n=e.getBody();t&&t!==n;){if(Tv(t)||kv(t))return t;t=t.parentNode}return null},Av=function(g){var p,e,t,a=g.getBody(),o=ds(g.getBody(),function(e){return g.dom.isBlock(e)},function(){return oh(g)}),h="sel-"+g.dom.uniqueId(),u=function(e){e&&g.selection.setRng(e)},s=function(){return g.selection.getRng()},v=function(e,t,n,r){return void 0===r&&(r=!0),g.fire("ShowCaret",{target:t,direction:e,before:n}).isDefaultPrevented()?null:(r&&g.selection.scrollIntoView(t,-1===e),o.show(n,t))},y=function(e,t){return t=Os(e,a,t),-1===e?_u.fromRangeStart(t):_u.fromRangeEnd(t)},n=function(e){return ka(e)||Oa(e)||Ba(e)},b=function(e){return n(e.startContainer)||n(e.endContainer)},c=function(e){var t=g.schema.getShortEndedElements(),n=g.dom.createRng(),r=e.startContainer,o=e.startOffset,i=e.endContainer,a=e.endOffset;return br(t,r.nodeName.toLowerCase())?0===o?n.setStartBefore(r):n.setStartAfter(r):n.setStart(r,o),br(t,i.nodeName.toLowerCase())?0===a?n.setEndBefore(i):n.setEndAfter(i):n.setEnd(i,a),n},l=function(e,t){var n,r,o,i,a,u,s,c,l,f,d=g.$,m=g.dom;if(!e)return null;if(e.collapsed){if(!b(e))if(!1===t){if(c=y(-1,e),gs(c.getNode(!0)))return v(-1,c.getNode(!0),!1,!1);if(gs(c.getNode()))return v(-1,c.getNode(),!c.isAtEnd(),!1)}else{if(c=y(1,e),gs(c.getNode()))return v(1,c.getNode(),!c.isAtEnd(),!1);if(gs(c.getNode(!0)))return v(1,c.getNode(!0),!1,!1)}return null}return i=e.startContainer,a=e.startOffset,u=e.endOffset,3===i.nodeType&&0===a&&kv(i.parentNode)&&(i=i.parentNode,a=m.nodeIndex(i),i=i.parentNode),1!==i.nodeType?null:(u===a+1&&i===e.endContainer&&(n=i.childNodes[a]),kv(n)?(l=f=n.cloneNode(!0),(s=g.fire("ObjectSelected",{target:n,targetClone:l})).isDefaultPrevented()?null:(r=oa(ar.fromDom(g.getBody()),"#"+h).fold(function(){return d([])},function(e){return d([e.dom()])}),l=s.targetClone,0===r.length&&(r=d('
    ').attr("id",h)).appendTo(g.getBody()),e=g.dom.createRng(),l===f&&fe.ie?(r.empty().append('

    \xa0

    ').append(l),e.setStartAfter(r[0].firstChild.firstChild),e.setEndAfter(l)):(r.empty().append("\xa0").append(l).append("\xa0"),e.setStart(r[0].firstChild,1),e.setEnd(r[0].lastChild,0)),r.css({top:m.getPos(n,g.getBody()).y}),r[0].focus(),(o=g.selection.getSel()).removeAllRanges(),o.addRange(e),z(Qi(ar.fromDom(g.getBody()),"*[data-mce-selected]"),function(e){Sr(e,"data-mce-selected")}),n.setAttribute("data-mce-selected","1"),p=n,C(),e)):null)},f=function(){p&&(p.removeAttribute("data-mce-selected"),oa(ar.fromDom(g.getBody()),"#"+h).each(Ui),p=null),oa(ar.fromDom(g.getBody()),"#"+h).each(Ui),p=null},C=function(){o.hide()};return fe.ceFalse&&(function(){g.on("mouseup",function(e){var t=s();t.collapsed&&fh(g,e.clientX,e.clientY)&&u(ug(g,t,!1))}),g.on("click",function(e){var t;(t=_v(g,e.target))&&(kv(t)&&(e.preventDefault(),g.focus()),Tv(t)&&g.dom.isChildOf(t,g.selection.getNode())&&f())}),g.on("blur NewBlock",function(){f()}),g.on("ResizeWindow FullscreenStateChanged",function(){return o.reposition()});var n,r,i=function(e,t){var n,r,o=g.dom.getParent(e,g.dom.isBlock),i=g.dom.getParent(t,g.dom.isBlock);return!(!o||!g.dom.isChildOf(o,i)||!1!==kv(_v(g,o)))||o&&(n=o,r=i,!(g.dom.getParent(n,g.dom.isBlock)===g.dom.getParent(r,g.dom.isBlock)))&&function(e){var t=Js(e);if(!e.firstChild)return!1;var n=_u.before(e.firstChild),r=t.next(n);return r&&!Lf(r)&&!Ff(r)}(o)};r=!1,(n=g).on("touchstart",function(){r=!1}),n.on("touchmove",function(){r=!0}),n.on("touchend",function(e){var t=_v(n,e.target);kv(t)&&(r||(e.preventDefault(),l(ag(n,t))))}),g.on("mousedown",function(e){var t,n=e.target;if((n===a||"HTML"===n.nodeName||g.dom.isChildOf(n,a))&&!1!==fh(g,e.clientX,e.clientY))if(t=_v(g,n))kv(t)?(e.preventDefault(),l(ag(g,t))):(f(),Tv(t)&&e.shiftKey||gv(e.clientX,e.clientY,g.selection.getRng())||(C(),g.selection.placeCaretAt(e.clientX,e.clientY)));else if(!1===gs(n)){f(),C();var r=mv(a,e.clientX,e.clientY);if(r&&!i(e.target,r.node)){e.preventDefault();var o=v(1,r.node,r.before,!1);g.getBody().focus(),u(o)}}}),g.on("keypress",function(e){Zh.modifierPressed(e)||(e.keyCode,kv(g.selection.getNode())&&e.preventDefault())}),g.on("getSelectionRange",function(e){var t=e.range;if(p){if(!p.parentNode)return void(p=null);(t=t.cloneRange()).selectNode(p),e.range=t}}),g.on("setSelectionRange",function(e){e.range=c(e.range);var t=l(e.range,e.forward);t&&(e.range=t)}),g.on("AfterSetSelectionRange",function(e){var t,n=e.range;b(n)||"mcepastebin"===n.startContainer.parentNode.id||C(),t=n.startContainer.parentNode,g.dom.hasClass(t,"mce-offscreen-selection")||f()}),g.on("copy",function(e){var t,n=e.clipboardData;if(!e.isDefaultPrevented()&&e.clipboardData&&!fe.ie){var r=(t=g.dom.get(h))?t.getElementsByTagName("*")[0]:t;r&&(e.preventDefault(),n.clearData(),n.setData("text/html",r.outerHTML),n.setData("text/plain",r.outerText))}}),Ev(g),Sv(g)}(),e=g.contentStyles,t=".mce-content-body",e.push(o.getCss()),e.push(t+" .mce-offscreen-selection {position: absolute;left: -9999999999px;max-width: 1000000px;}"+t+" *[contentEditable=false] {cursor: default;}"+t+" *[contentEditable=true] {cursor: text;}")),{showCaret:v,showBlockCaretContainer:function(e){e.hasAttribute("data-mce-caret")&&(Pa(e),u(s()),g.selection.scrollIntoView(e[0]))},hideFakeCaret:C,destroy:function(){o.destroy(),p=null}}},Rv=function(e){for(var t=e;/)/g,"\n").replace(/^[\r\n]*|[\r\n]*$/g,"").replace(/^\s*(()?|\s*\/\/\s*\]\]>(-->)?|\/\/\s*(-->)?|\]\]>|\/\*\s*-->\s*\*\/|\s*-->\s*)\s*$/g,"")};i--;)r=(n=e[i]).firstChild?n.firstChild.value:"","script"===t?((o=n.attr("type"))&&n.attr("type","mce-no/type"===o?null:o.replace(/^mce\-/,"")),"xhtml"===s.element_format&&0")):"xhtml"===s.element_format&&0k(n)?(C=_(b*y),b=_(C/y)):(b=_(C/y),C=_(b*y))),N.setStyles(D(s),{width:b,height:C}),r=0<(r=f.startPos.x+t)?r:0,o=0<(o=f.startPos.y+n)?o:0,N.setStyles(c,{left:r,top:o,display:"block"}),c.innerHTML=b+" × "+C,f[2]<0&&s.clientWidth<=b&&N.setStyle(s,"left",g+(h-b)),f[3]<0&&s.clientHeight<=C&&N.setStyle(s,"top",p+(v-C)),(t=A.scrollWidth-x)+(n=A.scrollHeight-w)!=0&&N.setStyles(c,{left:r-t,top:o-n}),i||(wp(a,u,h,v),i=!0)},P=function(){i=!1;var e=function(e,t){t&&(u.style[e]||!a.schema.isValid(u.nodeName.toLowerCase(),e)?N.setStyle(D(u),e,t):N.setAttrib(D(u),e,t))};e("width",b),e("height",C),N.unbind(S,"mousemove",B),N.unbind(S,"mouseup",P),T!==S&&(N.unbind(T,"mousemove",B),N.unbind(T,"mouseup",P)),N.remove(s),N.remove(c),o(u),Np(a,u,b,C),N.setAttrib(u,"style",N.getAttrib(u,"style")),a.nodeChanged()},o=function(e){var t,r,o,n,i;I(),M(),t=N.getPos(e,A),g=t.x,p=t.y,i=e.getBoundingClientRect(),r=i.width||i.right-i.left,o=i.height||i.bottom-i.top,u!==e&&(u=e,b=C=0),n=a.fire("ObjectSelected",{target:e}),O(e)&&!n.isDefaultPrevented()?E(l,function(n,e){var t;(t=N.get("mceResizeHandle"+e))&&N.remove(t),t=N.add(A,"div",{id:"mceResizeHandle"+e,"data-mce-bogus":"all","class":"mce-resizehandle",unselectable:!0,style:"cursor:"+e+"-resize; margin:0; padding:0"}),11===fe.ie&&(t.contentEditable=!1),N.bind(t,"mousedown",function(e){var t;e.stopImmediatePropagation(),e.preventDefault(),d=(t=e).screenX,m=t.screenY,h=D(u).clientWidth,v=D(u).clientHeight,y=v/h,(f=n).startPos={x:r*n[0]+g,y:o*n[1]+p},x=A.scrollWidth,w=A.scrollHeight,s=u.cloneNode(!0),N.addClass(s,"mce-clonedresizable"),N.setAttrib(s,"data-mce-bogus","all"),s.contentEditable=!1,s.unSelectabe=!0,N.setStyles(s,{left:g,top:p,margin:0}),s.removeAttribute("data-mce-selected"),A.appendChild(s),N.bind(S,"mousemove",B),N.bind(S,"mouseup",P),T!==S&&(N.bind(T,"mousemove",B),N.bind(T,"mouseup",P)),c=N.add(A,"div",{"class":"mce-resize-helper","data-mce-bogus":"all"},h+" × "+v)}),n.elm=t,N.setStyles(t,{left:r*n[0]+g-t.offsetWidth/2,top:o*n[1]+p-t.offsetHeight/2})}):I(),u.setAttribute("data-mce-selected","1")},I=function(){var e,t;for(e in M(),u&&u.removeAttribute("data-mce-selected"),l)(t=N.get("mceResizeHandle"+e))&&(N.unbind(t),N.remove(t))},L=function(e){var t,n=function(e,t){if(e)do{if(e===t)return!0}while(e=e.parentNode)};i||a.removed||(E(N.select("img[data-mce-selected],hr[data-mce-selected]"),function(e){e.removeAttribute("data-mce-selected")}),t="mousedown"===e.type?e.target:r.getNode(),n(t=N.$(t).closest("table,img,figure.image,hr")[0],A)&&(z(),n(r.getStart(!0),t)&&n(r.getEnd(!0),t))?o(t):I())},F=function(e){return Sb(function(e,t){for(;t&&t!==e;){if(Tb(t)||Sb(t))return t;t=t.parentNode}return null}(a.getBody(),e))},M=function(){for(var e in l){var t=l[e];t.elm&&(N.unbind(t.elm),delete t.elm)}},z=function(){try{a.getDoc().execCommand("enableObjectResizing",!1,!1)}catch(e){}};return a.on("init",function(){z(),fe.ie&&11<=fe.ie&&(a.on("mousedown click",function(e){var t=e.target,n=t.nodeName;i||!/^(TABLE|IMG|HR)$/.test(n)||F(t)||(2!==e.button&&a.selection.select(t,"TABLE"===n),"mousedown"===e.type&&a.nodeChanged())}),a.dom.bind(A,"mscontrolselect",function(e){var t=function(e){he.setEditorTimeout(a,function(){a.selection.select(e)})};if(F(e.target))return e.preventDefault(),void t(e.target);/^(TABLE|IMG|HR)$/.test(e.target.nodeName)&&(e.preventDefault(),"IMG"===e.target.tagName&&t(e.target))}));var t=he.throttle(function(e){a.composing||L(e)});a.on("nodechange ResizeEditor ResizeWindow drop FullscreenStateChanged",t),a.on("keyup compositionend",function(e){u&&"TABLE"===u.nodeName&&t(e)}),a.on("hide blur",I),a.on("contextmenu",n)}),a.on("remove",M),{isResizable:O,showResizeRect:o,hideResizeRect:I,updateResizeRect:L,destroy:function(){u=s=null}}},_b=function(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}},Ab=function(e,t,n){var r,o,i,a,u,s=e.dom,c=s.getRoot(),l=0;if(u={elm:t,alignToTop:n},e.fire("scrollIntoView",u),!u.isDefaultPrevented()&&jo.isElement(t)){if(!1===n&&(l=t.offsetHeight),"BODY"!==c.nodeName){var f=e.selection.getScrollContainer();if(f)return r=_b(t).y-_b(f).y+l,a=f.clientHeight,void((r<(i=f.scrollTop)||i+ai.left&&a.rightr.top&&o.bottome?t.cells().length:e},0)},Ub=function(e,t){for(var n=e.rows(),r=0;r_
    ',a.startContainer===u&&a.endContainer===u?u.body.innerHTML=t:(a.deleteContents(),0===u.body.childNodes.length?u.body.innerHTML=t:a.createContextualFragment?a.insertNode(a.createContextualFragment(t)):(o=u.createDocumentFragment(),i=u.createElement("div"),o.appendChild(i),i.outerHTML=t,a.insertNode(o))),r=e.dom.get("__caret"),(a=u.createRange()).setStartBefore(r),a.setEndBefore(r),e.selection.setRng(a),e.dom.remove("__caret");try{e.selection.setRng(a)}catch(s){}}else a.item&&(u.execCommand("Delete",!1,null),a=e.getRng()),/^\s+/.test(t)?(a.pasteHTML('_'+t),e.dom.remove("__mce_tmp")):a.pasteHTML(t);n.no_events||e.fire("SetContent",n)}else e.fire("SetContent",n)},Zb=function(e,t,n,r,o){var i=n?t.startContainer:t.endContainer,a=n?t.startOffset:t.endOffset;return _.from(i).map(ar.fromDom).map(function(e){return r&&t.collapsed?e:Xr(e,o(e,a)).getOr(e)}).bind(function(e){return dr(e)?_.some(e):Vr(e)}).map(function(e){return e.dom()}).getOr(e)},eC=function(e,t,n){return Zb(e,t,!0,n,function(e,t){return Math.min(e.dom().childNodes.length,t)})},tC=function(e,t,n){return Zb(e,t,!1,n,function(e,t){return 0t.clientHeight){e=t;break}t=t.parentNode}return e},scrollIntoView:function(e,t){return Ab(c,e,t)},placeCaretAt:function(e,t){return i(Ob(e,t,c.getDoc()))},getBoundingClientRect:function(){var e=m();return e.collapsed?_u.fromRangeStart(e).getClientRects()[0]:e.getBoundingClientRect()},destroy:function(){s=l=f=null,t.destroy()}};return n=Eb(p),t=kb(p,c),p.bookmarkManager=n,p.controlSelection=t,p};(Nb=wb||(wb={}))[Nb.Br=0]="Br",Nb[Nb.Block=1]="Block",Nb[Nb.Wrap=2]="Wrap",Nb[Nb.Eol=3]="Eol";var uC=function(e,t){return e===Tu.Backwards?t.reverse():t},sC=function(e,t,n,r){for(var o,i,a,u,s,c,l=Js(n),f=r,d=[];f&&(s=l,c=f,o=t===Tu.Forwards?s.next(c):s.prev(c));){if(jo.isBr(o.getNode(!1)))return t===Tu.Forwards?{positions:uC(t,d).concat([o]),breakType:wb.Br,breakAt:_.some(o)}:{positions:uC(t,d),breakType:wb.Br,breakAt:_.some(o)};if(o.isVisible()){if(e(f,o)){var m=(i=t,a=f,u=o,jo.isBr(u.getNode(i===Tu.Forwards))?wb.Br:!1===Ts(a,u)?wb.Block:wb.Wrap);return{positions:uC(t,d),breakType:m,breakAt:_.some(o)}}d.push(o),f=o}else f=o}return{positions:uC(t,d),breakType:wb.Eol,breakAt:_.none()}},cC=function(n,r,o,e){return r(o,e).breakAt.map(function(e){var t=r(o,e).positions;return n===Tu.Backwards?t.concat(e):[e].concat(t)}).getOr([])},lC=function(e,i){return j(e,function(e,o){return e.fold(function(){return _.some(o)},function(r){return ru(Z(r.getClientRects()),Z(o.getClientRects()),function(e,t){var n=Math.abs(i-e.left);return Math.abs(i-t.left)<=n?o:r}).or(e)})},_.none())},fC=function(t,e){return Z(e.getClientRects()).bind(function(e){return lC(t,e.left)})},dC=d(sC,Su.isAbove,-1),mC=d(sC,Su.isBelow,1),gC=d(cC,-1,dC),pC=d(cC,1,mC),hC=jo.isContentEditableFalse,vC=Za,yC=function(e,t,n,r){var o=e===Tu.Forwards,i=o?Lf:Ff;if(!r.collapsed){var a=vC(r);if(hC(a))return ig(e,t,a,e===Tu.Backwards,!0)}var u=Sa(r.startContainer),s=Ps(e,t.getBody(),r);if(i(s))return ag(t,s.getNode(!o));var c=Vl.normalizePosition(o,n(s));if(!c)return u?r:null;if(i(c))return ig(e,t,c.getNode(!o),o,!0);var l=n(c);return l&&i(l)&&Fs(c,l)?ig(e,t,l.getNode(!o),o,!0):u?sg(t,c.toRange(),!0):null},bC=function(e,t,n,r){var o,i,a,u,s,c,l,f,d;if(d=vC(r),o=Ps(e,t.getBody(),r),i=n(t.getBody(),ov(1),o),a=U(i,iv(1)),s=Ht.last(o.getClientRects()),(Lf(o)||zf(o))&&(d=o.getNode()),(Ff(o)||Uf(o))&&(d=o.getNode(!0)),!s)return null;if(c=s.left,(u=fv(a,c))&&hC(u.node))return l=Math.abs(c-u.left),f=Math.abs(c-u.right),ig(e,t,u.node,l'),o=a,1===t?e.$(r).after(o):e.$(r).before(o),e.selection.select(o,!0),e.selection.collapse())}},xC=function(l,f){return function(){var e,t,n,r,o,i,a,u,s,c=(t=f,r=Js((e=l).getBody()),o=d(Ls,r.next),i=d(Ls,r.prev),a=t?Tu.Forwards:Tu.Backwards,u=t?o:i,s=e.selection.getRng(),(n=yC(a,e,u,s))?n:(n=CC(e,a,s))||null);return!!c&&(l.selection.setRng(c),!0)}},wC=function(u,s){return function(){var e,t,n,r,o,i,a=(r=(t=s)?1:-1,o=t?rv:nv,i=(e=u).selection.getRng(),(n=bC(r,e,o,i))?n:(n=CC(e,r,i))||null);return!!a&&(u.selection.setRng(a),!0)}},NC=function(r,o){return function(){var t,e=o?_u.fromRangeEnd(r.selection.getRng()):_u.fromRangeStart(r.selection.getRng()),n=o?mC(r.getBody(),e):dC(r.getBody(),e);return(o?ee(n.positions):Z(n.positions)).filter((t=o,function(e){return t?Ff(e):Lf(e)})).fold(q(!1),function(e){return r.selection.setRng(e.toRange()),!0})}},EC=function(e,t,n,r,o){var i,a,u,s,c=Qi(ar.fromDom(n),"td,th,caption").map(function(e){return e.dom()}),l=U((i=e,G(c,function(e){var t,n,r=(t=Ka(e.getBoundingClientRect()),n=-1,{left:t.left-n,top:t.top-n,right:t.right+2*n,bottom:t.bottom+2*n,width:t.width+n,height:t.height+n});return[{x:r.left,y:i(r),cell:e},{x:r.right,y:i(r),cell:e}]})),function(e){return t(e,o)});return(a=l,u=r,s=o,j(a,function(e,r){return e.fold(function(){return _.some(r)},function(e){var t=Math.sqrt(Math.abs(e.x-u)+Math.abs(e.y-s)),n=Math.sqrt(Math.abs(r.x-u)+Math.abs(r.y-s));return _.some(nt}),kC=function(t,n){return Z(n.getClientRects()).bind(function(e){return SC(t,e.left,e.top)}).bind(function(e){return fC((t=e,sc.lastPositionIn(t).map(function(e){return dC(t,e).positions.concat(e)}).getOr([])),n);var t})},_C=function(t,n){return ee(n.getClientRects()).bind(function(e){return TC(t,e.left,e.top)}).bind(function(e){return fC((t=e,sc.firstPositionIn(t).map(function(e){return[e].concat(mC(t,e).positions)}).getOr([])),n);var t})},AC=function(e,t){e.selection.setRng(t),Rb(e,t)},RC=function(e,t,n){var r,o,i,a,u=e(t,n);return(a=u).breakType===wb.Wrap&&0===a.positions.length||!jo.isBr(n.getNode())&&(i=u).breakType===wb.Br&&1===i.positions.length?(r=e,o=t,!u.breakAt.map(function(e){return r(o,e).breakAt.isSome()}).getOr(!1)):u.breakAt.isNone()},DC=d(RC,dC),OC=d(RC,mC),BC=function(e,t,n,r){var o,i,a,u,s=e.selection.getRng(),c=t?1:-1;if(ms()&&(o=t,i=s,a=n,u=_u.fromRangeStart(i),sc.positionIn(!o,a).map(function(e){return e.isEqual(u)}).getOr(!1))){var l=ig(c,e,n,!t,!0);return AC(e,l),!0}return!1},PC=function(e,t){var n=t.getNode(e);return jo.isElement(n)&&"TABLE"===n.nodeName?_.some(n):_.none()},IC=function(u,s,c){var e=PC(!!s,c),t=!1===s;e.fold(function(){return AC(u,c.toRange())},function(a){return sc.positionIn(t,u.getBody()).filter(function(e){return e.isEqual(c)}).fold(function(){return AC(u,c.toRange())},function(e){return n=s,o=a,t=c,void((i=Nl(r=u))?r.undoManager.transact(function(){var e=ar.fromTag(i);Nr(e,El(r)),Fi(e,ar.fromTag("br")),n?Ii(ar.fromDom(o),e):Pi(ar.fromDom(o),e);var t=r.dom.createRng();t.setStart(e.dom(),0),t.setEnd(e.dom(),0),AC(r,t)}):AC(r,t.toRange()));var n,r,o,t,i})})},LC=function(e,t,n,r){var o,i,a,u,s,c,l=e.selection.getRng(),f=_u.fromRangeStart(l),d=e.getBody();if(!t&&DC(r,f)){var m=(u=d,kC(s=n,c=f).orThunk(function(){return Z(c.getClientRects()).bind(function(e){return lC(gC(u,_u.before(s)),e.left)})}).getOr(_u.before(s)));return IC(e,t,m),!0}return!(!t||!OC(r,f))&&(o=d,m=_C(i=n,a=f).orThunk(function(){return Z(a.getClientRects()).bind(function(e){return lC(pC(o,_u.after(i)),e.left)})}).getOr(_u.after(i)),IC(e,t,m),!0)},FC=function(t,n){return function(){return _.from(t.dom.getParent(t.selection.getNode(),"td,th")).bind(function(e){return _.from(t.dom.getParent(e,"table")).map(function(e){return BC(t,n,e)})}).getOr(!1)}},MC=function(n,r){return function(){return _.from(n.dom.getParent(n.selection.getNode(),"td,th")).bind(function(t){return _.from(n.dom.getParent(t,"table")).map(function(e){return LC(n,r,e,t)})}).getOr(!1)}},zC=function(e){return F(["figcaption"],lr(e))},UC=function(e){var t=V.document.createRange();return t.setStartBefore(e.dom()),t.setEndBefore(e.dom()),t},jC=function(e,t,n){n?Fi(e,t):Li(e,t)},VC=function(e,t,n,r){return""===t?(l=e,f=r,d=ar.fromTag("br"),jC(l,d,f),UC(d)):(o=e,i=r,a=t,u=n,s=ar.fromTag(a),c=ar.fromTag("br"),Nr(s,u),Fi(s,c),jC(o,s,i),UC(c));var o,i,a,u,s,c,l,f,d},HC=function(e,t,n){return t?(o=e.dom(),mC(o,n).breakAt.isNone()):(r=e.dom(),dC(r,n).breakAt.isNone());var r,o},qC=function(t,n){var e,r,o,i=ar.fromDom(t.getBody()),a=_u.fromRangeStart(t.selection.getRng()),u=Nl(t),s=El(t);return(e=a,r=i,o=d(Mr,r),na(ar.fromDom(e.container()),Co,o).filter(zC)).exists(function(){if(HC(i,n,a)){var e=VC(i,u,s,n);return t.selection.setRng(e),!0}return!1})},$C=function(e,t){return function(){return!!e.selection.isCollapsed()&&qC(e,t)}},WC=function(e,r){return G(W(e,function(e){return Yy({shiftKey:!1,altKey:!1,ctrlKey:!1,metaKey:!1,keyCode:0,action:o},e)}),function(e){return t=e,(n=r).keyCode===t.keyCode&&n.shiftKey===t.shiftKey&&n.altKey===t.altKey&&n.ctrlKey===t.ctrlKey&&n.metaKey===t.metaKey?[e]:[];var t,n})},KC=function(e){for(var t=[],n=1;n'},cx=function(e,t){return e.nodeName===t||e.previousSibling&&e.previousSibling.nodeName===t},lx=function(e,t){return t&&e.isBlock(t)&&!/^(TD|TH|CAPTION|FORM)$/.test(t.nodeName)&&!/^(fixed|absolute)/i.test(t.style.position)&&"true"!==e.getContentEditable(t)},fx=function(e,t,n){return!1===jo.isText(t)?n:e?1===n&&t.data.charAt(n-1)===xa?0:n:n===t.data.length-1&&t.data.charAt(n)===xa?t.data.length:n},dx=function(e,t){var n,r,o=e.getRoot();for(n=t;n!==o&&"false"!==e.getContentEditable(n);)"true"===e.getContentEditable(n)&&(r=n),n=n.parentNode;return n!==o?r:o},mx=function(o,i,e){_.from(e.style).map(o.dom.parseStyle).each(function(e){var t=function(e){var t={},n=e.dom();if(Cr(n))for(var r=0;rs.childNodes.length-1,s=s.childNodes[Math.min(i,s.childNodes.length-1)]||s,i=g&&jo.isText(s)?s.nodeValue.length:0),(u=dx(x,s))&&((m&&!n||!m&&n)&&(s=function(e,t,n,r,o){var i,a,u,s,c,l,f,d=t||"P",m=e.dom,g=dx(m,r);if(!(a=m.getParent(r,m.isBlock))||!lx(m,a)){if(l=(a=a||g)===e.getBody()||(f=a)&&/^(TD|TH|CAPTION)$/.test(f.nodeName)?a.nodeName.toLowerCase():a.parentNode.nodeName.toLowerCase(),!a.hasChildNodes())return i=m.create(d),gx(e,i),a.appendChild(i),n.setStart(i,0),n.setEnd(i,0),i;for(s=r;s.parentNode!==a;)s=s.parentNode;for(;s&&!m.isBlock(s);)s=(u=s).previousSibling;if(u&&e.schema.isValidChild(l,d.toLowerCase())){for(i=m.create(d),gx(e,i),u.parentNode.insertBefore(i,u),s=u;s&&!m.isBlock(s);)c=s.nextSibling,i.appendChild(s),s=c;n.setStart(r,o),n.setEnd(r,o)}}return r}(a,m,E,s,i)),c=x.getParent(s,x.isBlock),l=c?x.getParent(c.parentNode,x.isBlock):null,f=c?c.nodeName.toUpperCase():"","LI"!==(d=l?l.nodeName.toUpperCase():"")||e.ctrlKey||(l=(c=l).parentNode,f=d),/^(LI|DT|DD)$/.test(f)&&x.isEmpty(c)?ux(a,S,l,c,m):m&&c===a.getBody()||(m=m||"P",Sa(c)?(r=Pa(c),x.isEmpty(c)&&sx(c),gx(a,r),QC(a,r)):T()?k():T(!0)?(r=c.parentNode.insertBefore(S(),c),QC(a,cx(c,"HR")?r:c)):((t=(b=E,C=b.cloneRange(),C.setStart(b.startContainer,fx(!0,b.startContainer,b.startOffset)),C.setEnd(b.endContainer,fx(!1,b.endContainer,b.endOffset)),C).cloneRange()).setEndAfter(c),o=t.extractContents(),y=o,z(Ji(ar.fromDom(y),mr),function(e){var t=e.dom();t.nodeValue=wa(t.nodeValue)}),function(e){for(;jo.isText(e)&&(e.nodeValue=e.nodeValue.replace(/^[\r\n]+/,"")),e=e.firstChild;);}(o),r=o.firstChild,x.insertAfter(o,c),function(e,t,n){var r,o=n,i=[];if(o){for(;o=o.firstChild;){if(e.isBlock(o))return;jo.isElement(o)&&!t[o.nodeName.toLowerCase()]&&i.push(o)}for(r=i.length;r--;)!(o=i[r]).hasChildNodes()||o.firstChild===o.lastChild&&""===o.firstChild.nodeValue?e.remove(o):(a=e,(u=o)&&"A"===u.nodeName&&a.isEmpty(u)&&e.remove(o));var a,u}}(x,N,r),p=x,(h=c).normalize(),(v=h.lastChild)&&!/^(left|right)$/gi.test(p.getStyle(v,"float",!0))||p.add(h,"br"),x.isEmpty(c)&&sx(c),r.normalize(),x.isEmpty(r)?(x.remove(r),k()):(gx(a,r),QC(a,r))),x.setAttrib(r,"id",""),a.fire("NewBlock",{newBlock:r})))},hx=function(e,t){return ex(e).filter(function(e){return 0",yl(f)!==f.documentBaseUrl&&(g+=''),g+='',d=bl(f),m=Cl(f),xl(f)&&(g+=''),g+='
    '),Cw.add(t.iframeContainer,l),p},ww=function(e,t){var n=xw(e,t);t.editorContainer&&(Cw.get(t.editorContainer).style.display=e.orgDisplay,e.hidden=Cw.isHidden(t.editorContainer)),e.getElement().style.display="none",Cw.setAttrib(e.id,"aria-hidden","true"),n||bw(e)},Nw=Si.DOM,Ew=function(t,n,e){var r=Eh.get(e),o=Eh.urls[e]||t.documentBaseUrl.replace(/\/$/,"");if(e=Xt.trim(e),r&&-1===Xt.inArray(n,e)){if(Xt.each(Eh.dependencies(e),function(e){Ew(t,n,e)}),t.plugins[e])return;try{var i=new r(t,o,t.$);(t.plugins[e]=i).init&&(i.init(t,o),n.push(e))}catch(iE){Nh.pluginInitError(t,e,iE)}}},Sw=function(e){return e.replace(/^\-/,"")},Tw=function(e){return{editorContainer:e,iframeContainer:e}},kw=function(e){var t,n,r=e.getElement();return e.inline?Tw(null):(t=r,n=Nw.create("div"),Nw.insertAfter(n,t),Tw(n))},_w=function(e){var t,n,r,o,i,a,u,s,c,l,f,d=e.settings,m=e.getElement();return e.orgDisplay=m.style.display,S(d.theme)?(l=(o=e).settings,f=o.getElement(),i=l.width||Nw.getStyle(f,"width")||"100%",a=l.height||Nw.getStyle(f,"height")||f.offsetHeight,u=l.min_height||100,(s=/^[0-9\.]+(|px)$/i).test(""+i)&&(i=Math.max(parseInt(i,10),100)),s.test(""+a)&&(a=Math.max(parseInt(a,10),u)),c=o.theme.renderUI({targetNode:f,width:i,height:a,deltaWidth:l.delta_width,deltaHeight:l.delta_height}),l.content_editable||(a=(c.iframeHeight||a)+("number"==typeof a?c.deltaHeight||0:""))=n.length)for(r=0,o=e.length;r=n.length||e[r]!==n[r]){i=r+1;break}if(e.length=e.length||e[r]!==n[r]){i=r+1;break}if(1===i)return t;for(r=0,o=e.length-(i-1);r]*>( | |\\s|\xa0|
    |)<\\/"+a+">[\r\n]*|
    [\r\n]*)$"),r=i.replace(u,"")}return"text"===t.format||Ao(ar.fromDom(n))?t.content=r:t.content=Xt.trim(r),t.no_events||e.fire("GetContent",t),t.content},jw=function(e,t){t(e),e.firstChild&&jw(e.firstChild,t),e.next&&jw(e.next,t)},Vw=function(e,t,n){var r=function(e,n,t){var r={},o={},i=[];for(var a in t.firstChild&&jw(t.firstChild,function(t){z(e,function(e){e.name===t.name&&(r[e.name]?r[e.name].nodes.push(t):r[e.name]={filter:e,nodes:[t]})}),z(n,function(e){"string"==typeof t.attr(e.name)&&(o[e.name]?o[e.name].nodes.push(t):o[e.name]={filter:e,nodes:[t]})})}),r)r.hasOwnProperty(a)&&i.push(r[a]);for(var a in o)o.hasOwnProperty(a)&&i.push(o[a]);return i}(e,t,n);z(r,function(t){z(t.filter.callbacks,function(e){e(t.nodes,t.filter.name,{})})})},Hw=function(e){return e instanceof ob},qw=function(e,t){var r;e.dom.setHTML(e.getBody(),t),oh(r=e)&&sc.firstPositionIn(r.getBody()).each(function(e){var t=e.getNode(),n=jo.isTable(t)?sc.firstPositionIn(t).getOr(e):e;r.selection.setRng(n.toRange())})},$w=function(u,s,c){return void 0===c&&(c={}),c.format=c.format?c.format:"html",c.set=!0,c.content=Hw(s)?"":s,Hw(s)||c.no_events||(u.fire("BeforeSetContent",c),s=c.content),_.from(u.getBody()).fold(q(s),function(e){return Hw(s)?function(e,t,n,r){Vw(e.parser.getNodeFilters(),e.parser.getAttributeFilters(),n);var o=al({validate:e.validate},e.schema).serialize(n);return r.content=Ao(ar.fromDom(t))?o:Xt.trim(o),qw(e,r.content),r.no_events||e.fire("SetContent",r),n}(u,e,s,c):(t=u,n=e,o=c,0===(r=s).length||/^\s+$/.test(r)?(a='
    ',"TABLE"===n.nodeName?r=""+a+"":/^(UL|OL)$/.test(n.nodeName)&&(r="
  • "+a+"
  • "),(i=Nl(t))&&t.schema.isValidChild(n.nodeName.toLowerCase(),i.toLowerCase())?(r=a,r=t.dom.createHTML(i,t.settings.forced_root_block_attrs,r)):r||(r='
    '),qw(t,r),t.fire("SetContent",o)):("raw"!==o.format&&(r=al({validate:t.validate},t.schema).serialize(t.parser.parse(r,{isRootContent:!0,insert:!0}))),o.content=Ao(ar.fromDom(n))?r:Xt.trim(r),qw(t,o.content),o.no_events||t.fire("SetContent",o)),o.content);var t,n,r,o,i,a})},Ww=Si.DOM,Kw=function(e){return _.from(e).each(function(e){return e.destroy()})},Xw=function(e){if(!e.removed){var t=e._selectionOverrides,n=e.editorUpload,r=e.getBody(),o=e.getElement();r&&e.save({is_removing:!0}),e.removed=!0,e.unbindAllNativeEvents(),e.hasHiddenInput&&o&&Ww.remove(o.nextSibling),bp(e),e.editorManager.remove(e),!e.inline&&r&&(i=e,Ww.setStyle(i.id,"display",i.orgDisplay)),Cp(e),Ww.remove(e.getContainer()),Kw(t),Kw(n),e.destroy()}var i},Yw=function(e,t){var n,r,o,i=e.selection,a=e.dom;e.destroyed||(t||e.removed?(t||(e.editorManager.off("beforeunload",e._beforeUnload),e.theme&&e.theme.destroy&&e.theme.destroy(),Kw(i),Kw(a)),(r=(n=e).formElement)&&(r._mceOldSubmit&&(r.submit=r._mceOldSubmit,r._mceOldSubmit=null),Ww.unbind(r,"submit reset",n.formEventDelegate)),(o=e).contentAreaContainer=o.formElement=o.container=o.editorContainer=null,o.bodyElement=o.contentDocument=o.contentWindow=null,o.iframeElement=o.targetElm=null,o.selection&&(o.selection=o.selection.win=o.selection.dom=o.selection.dom.doc=null),e.destroyed=!0):e.remove())},Gw=Si.DOM,Jw=Xt.extend,Qw=Xt.each,Zw=Xt.resolve,eN=fe.ie,tN=function(e,t,n){var r,o,i,a,u,s,c,l=this,f=l.documentBaseUrl=n.documentBaseURL,d=n.baseURI;r=l,o=e,i=f,a=n.defaultSettings,u=t,c={id:o,theme:"modern",delta_width:0,delta_height:0,popup_css:"",plugins:"",document_base_url:i,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:"",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,render_ui:!0,indentation:"40px",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,summary,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,summary,article,hgroup,aside,figure,figcaption,option,optgroup,datalist",entity_encoding:"named",url_converter:(s=r).convertURL,url_converter_scope:s,ie7_compat:!0},t=jp(Ip,c,a,u),l.settings=t,Bi.language=t.language||"en",Bi.languageLoad=t.language_load,Bi.baseURL=n.baseURL,l.id=e,l.setDirty(!1),l.plugins={},l.documentBaseURI=new zw(t.document_base_url,{base_uri:d}),l.baseURI=d,l.contentCSS=[],l.contentStyles=[],l.shortcuts=new Xp(l),l.loadedCSS={},l.editorCommands=new fp(l),l.suffix=n.suffix,l.editorManager=n,l.inline=t.inline,l.buttons={},l.menuItems={},t.cache_suffix&&(fe.cacheSuffix=t.cache_suffix.replace(/^[\?\&]+/,"")),!1===t.override_viewport&&(fe.overrideViewPort=!1),n.fire("SetupEditor",{editor:l}),l.execCallback("setup",l),l.$=gn.overrideDefaults(function(){return{context:l.inline?l.getBody():l.getDoc(),element:l.getBody()}})};Jw(tN.prototype={render:function(){Bw(this)},focus:function(e){rh(this,e)},hasFocus:function(){return oh(this)},execCallback:function(e){for(var t=[],n=1;n=n.x&&o.x+o.w<=n.w+n.x&&o.y>=n.y&&o.y+o.h<=n.h+n.y)return r[i];return null},intersect:function(e,t){var n,r,o,i;return n=ON(e.x,t.x),r=ON(e.y,t.y),o=DN(e.x+e.w,t.x+t.w),i=DN(e.y+e.h,t.y+t.h),o-n<0||i-r<0?null:IN(n,r,o-n,i-r)},clamp:function(e,t,n){var r,o,i,a,u,s,c,l,f,d;return u=e.x,s=e.y,c=e.x+e.w,l=e.y+e.h,f=t.x+t.w,d=t.y+t.h,r=ON(0,t.x-u),o=ON(0,t.y-s),i=ON(0,c-f),a=ON(0,l-d),u+=r,s+=o,n&&(c+=r,l+=o,u-=i,s-=a),IN(u,s,(c-=i)-u,(l-=a)-s)},create:IN,fromClientRect:function(e){return IN(e.left,e.top,e.width,e.height)}},FN={},MN={add:function(e,t){FN[e.toLowerCase()]=t},has:function(e){return!!FN[e.toLowerCase()]},get:function(e){var t=e.toLowerCase(),n=FN.hasOwnProperty(t)?FN[t]:null;if(null===n)throw new Error("Could not find module for type: "+e);return n},create:function(e,t){var n;if("string"==typeof e?(t=t||{}).type=e:e=(t=e).type,e=e.toLowerCase(),!(n=FN[e]))throw new Error("Could not find control by type: "+e);return(n=new n(t)).type=e,n}},zN=Xt.each,UN=Xt.extend,jN=function(){};jN.extend=_N=function(n){var e,t,r,o=this.prototype,i=function(){var e,t,n;if(!AN&&(this.init&&this.init.apply(this,arguments),t=this.Mixins))for(e=t.length;e--;)(n=t[e]).init&&n.init.apply(this,arguments)},a=function(){return this},u=function(n,r){return function(){var e,t=this._super;return this._super=o[n],e=r.apply(this,arguments),this._super=t,e}};for(t in AN=!0,e=new this,AN=!1,n.Mixins&&(zN(n.Mixins,function(e){for(var t in e)"init"!==t&&(n[t]=e[t])}),o.Mixins&&(n.Mixins=o.Mixins.concat(n.Mixins))),n.Methods&&zN(n.Methods.split(","),function(e){n[e]=a}),n.Properties&&zN(n.Properties.split(","),function(e){var t="_"+e;n[e]=function(e){return e!==undefined?(this[t]=e,this):this[t]}}),n.Statics&&zN(n.Statics,function(e,t){i[t]=e}),n.Defaults&&o.Defaults&&(n.Defaults=UN({},o.Defaults,n.Defaults)),n)"function"==typeof(r=n[t])&&o[t]?e[t]=u(t,r):e[t]=r;return i.prototype=e,(i.constructor=i).extend=_N,i};var VN=Math.min,HN=Math.max,qN=Math.round,$N=function(e,n){var r,o,t,i;if(n=n||'"',null===e)return"null";if("string"==(t=typeof e))return o="\bb\tt\nn\ff\rr\"\"''\\\\",n+e.replace(/([\u0080-\uFFFF\x00-\x1f\"\'\\])/g,function(e,t){return'"'===n&&"'"===e?e:(r=o.indexOf(t))+1?"\\"+o.charAt(r+1):(e=t.charCodeAt().toString(16),"\\u"+"0000".substring(e.length)+e)})+n;if("object"===t){if(e.hasOwnProperty&&"[object Array]"===Object.prototype.toString.call(e)){for(r=0,o="[";r+~]|"+at+")"+at+"*"),mt=new RegExp("="+at+"*([^\\]'\"]*?)"+at+"*\\]","g"),gt=new RegExp(ct),pt=new RegExp("^"+ut+"$"),ht={ID:new RegExp("^#("+ut+")"),CLASS:new RegExp("^\\.("+ut+")"),TAG:new RegExp("^("+ut+"|[*])"),ATTR:new RegExp("^"+st),PSEUDO:new RegExp("^"+ct),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+at+"*(even|odd|(([+-]|)(\\d*)n|)"+at+"*(?:([+-]|)"+at+"*(\\d+)|))"+at+"*\\)|)","i"),bool:new RegExp("^(?:checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped)$","i"),needsContext:new RegExp("^"+at+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+at+"*((?:-\\d)?\\d*)"+at+"*\\)|)(?=[^-]|$)","i")},vt=/^(?:input|select|textarea|button)$/i,yt=/^h\d$/i,bt=/^[^{]+\{\s*\[native \w/,Ct=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,xt=/[+~]/,wt=/'|\\/g,Nt=new RegExp("\\\\([\\da-f]{1,6}"+at+"?|("+at+")|.)","ig"),Et=function(e,t,n){var r="0x"+t-65536;return r!=r||n?t:r<0?String.fromCharCode(r+65536):String.fromCharCode(r>>10|55296,1023&r|56320)};try{rt.apply(et=ot.call($e.childNodes),$e.childNodes),et[$e.childNodes.length].nodeType}catch(iE){rt={apply:et.length?function(e,t){nt.apply(e,ot.call(t))}:function(e,t){for(var n=e.length,r=0;e[n++]=t[r++];);e.length=n-1}}}var St=function(e,t,n,r){var o,i,a,u,s,c,l,f,d,m;if((t?t.ownerDocument||t:$e)!==Me&&Fe(t),n=n||[],!e||"string"!=typeof e)return n;if(1!==(u=(t=t||Me).nodeType)&&9!==u)return[];if(Ue&&!r){if(o=Ct.exec(e))if(a=o[1]){if(9===u){if(!(i=t.getElementById(a))||!i.parentNode)return n;if(i.id===a)return n.push(i),n}else if(t.ownerDocument&&(i=t.ownerDocument.getElementById(a))&&He(t,i)&&i.id===a)return n.push(i),n}else{if(o[2])return rt.apply(n,t.getElementsByTagName(e)),n;if((a=o[3])&&ke.getElementsByClassName)return rt.apply(n,t.getElementsByClassName(a)),n}if(ke.qsa&&(!je||!je.test(e))){if(f=l=qe,d=t,m=9===u&&e,1===u&&"object"!==t.nodeName.toLowerCase()){for(c=De(e),(l=t.getAttribute("id"))?f=l.replace(wt,"\\$&"):t.setAttribute("id",f),f="[id='"+f+"'] ",s=c.length;s--;)c[s]=f+Pt(c[s]);d=xt.test(e)&&Ot(t.parentNode)||t,m=c.join(",")}if(m)try{return rt.apply(n,d.querySelectorAll(m)),n}catch(g){}finally{l||t.removeAttribute("id")}}}return Be(e.replace(lt,"$1"),t,n,r)};function Tt(){var r=[];return function e(t,n){return r.push(t+" ")>_e.cacheLength&&delete e[r.shift()],e[t+" "]=n}}function kt(e){return e[qe]=!0,e}function _t(e,t){var n=t&&e,r=n&&1===e.nodeType&&1===t.nodeType&&(~t.sourceIndex||1<<31)-(~e.sourceIndex||1<<31);if(r)return r;if(n)for(;n=n.nextSibling;)if(n===t)return-1;return e?1:-1}function At(t){return function(e){return"input"===e.nodeName.toLowerCase()&&e.type===t}}function Rt(n){return function(e){var t=e.nodeName.toLowerCase();return("input"===t||"button"===t)&&e.type===n}}function Dt(a){return kt(function(i){return i=+i,kt(function(e,t){for(var n,r=a([],e.length,i),o=r.length;o--;)e[n=r[o]]&&(e[n]=!(t[n]=e[n]))})})}function Ot(e){return e&&typeof e.getElementsByTagName!==Qe&&e}for(Te in ke=St.support={},Re=St.isXML=function(e){var t=e&&(e.ownerDocument||e).documentElement;return!!t&&"HTML"!==t.nodeName},Fe=St.setDocument=function(e){var t,s=e?e.ownerDocument||e:$e,n=s.defaultView;return s!==Me&&9===s.nodeType&&s.documentElement?(ze=(Me=s).documentElement,Ue=!Re(s),n&&n!==function(e){try{return e.top}catch(t){}return null}(n)&&(n.addEventListener?n.addEventListener("unload",function(){Fe()},!1):n.attachEvent&&n.attachEvent("onunload",function(){Fe()})),ke.attributes=!0,ke.getElementsByTagName=!0,ke.getElementsByClassName=bt.test(s.getElementsByClassName),ke.getById=!0,_e.find.ID=function(e,t){if(typeof t.getElementById!==Qe&&Ue){var n=t.getElementById(e);return n&&n.parentNode?[n]:[]}},_e.filter.ID=function(e){var t=e.replace(Nt,Et);return function(e){return e.getAttribute("id")===t}},_e.find.TAG=ke.getElementsByTagName?function(e,t){if(typeof t.getElementsByTagName!==Qe)return t.getElementsByTagName(e)}:function(e,t){var n,r=[],o=0,i=t.getElementsByTagName(e);if("*"===e){for(;n=i[o++];)1===n.nodeType&&r.push(n);return r}return i},_e.find.CLASS=ke.getElementsByClassName&&function(e,t){if(Ue)return t.getElementsByClassName(e)},Ve=[],je=[],ke.disconnectedMatch=!0,je=je.length&&new RegExp(je.join("|")),Ve=Ve.length&&new RegExp(Ve.join("|")),t=bt.test(ze.compareDocumentPosition),He=t||bt.test(ze.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},Je=t?function(e,t){if(e===t)return Le=!0,0;var n=!e.compareDocumentPosition-!t.compareDocumentPosition;return n||(1&(n=(e.ownerDocument||e)===(t.ownerDocument||t)?e.compareDocumentPosition(t):1)||!ke.sortDetached&&t.compareDocumentPosition(e)===n?e===s||e.ownerDocument===$e&&He($e,e)?-1:t===s||t.ownerDocument===$e&&He($e,t)?1:Ie?it.call(Ie,e)-it.call(Ie,t):0:4&n?-1:1)}:function(e,t){if(e===t)return Le=!0,0;var n,r=0,o=e.parentNode,i=t.parentNode,a=[e],u=[t];if(!o||!i)return e===s?-1:t===s?1:o?-1:i?1:Ie?it.call(Ie,e)-it.call(Ie,t):0;if(o===i)return _t(e,t);for(n=e;n=n.parentNode;)a.unshift(n);for(n=t;n=n.parentNode;)u.unshift(n);for(;a[r]===u[r];)r++;return r?_t(a[r],u[r]):a[r]===$e?-1:u[r]===$e?1:0},s):Me},St.matches=function(e,t){return St(e,null,null,t)},St.matchesSelector=function(e,t){if((e.ownerDocument||e)!==Me&&Fe(e),t=t.replace(mt,"='$1']"),ke.matchesSelector&&Ue&&(!Ve||!Ve.test(t))&&(!je||!je.test(t)))try{var n=(void 0).call(e,t);if(n||ke.disconnectedMatch||e.document&&11!==e.document.nodeType)return n}catch(iE){}return 0":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(e){return e[1]=e[1].replace(Nt,Et),e[3]=(e[3]||e[4]||e[5]||"").replace(Nt,Et),"~="===e[2]&&(e[3]=" "+e[3]+" "),e.slice(0,4)},CHILD:function(e){return e[1]=e[1].toLowerCase(),"nth"===e[1].slice(0,3)?(e[3]||St.error(e[0]),e[4]=+(e[4]?e[5]+(e[6]||1):2*("even"===e[3]||"odd"===e[3])),e[5]=+(e[7]+e[8]||"odd"===e[3])):e[3]&&St.error(e[0]),e},PSEUDO:function(e){var t,n=!e[6]&&e[2];return ht.CHILD.test(e[0])?null:(e[3]?e[2]=e[4]||e[5]||"":n&>.test(n)&&(t=De(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(Nt,Et).toLowerCase();return"*"===e?function(){return!0}:function(e){return e.nodeName&&e.nodeName.toLowerCase()===t}},CLASS:function(e){var t=Xe[e+" "];return t||(t=new RegExp("(^|"+at+")"+e+"("+at+"|$)"))&&Xe(e,function(e){return t.test("string"==typeof e.className&&e.className||typeof e.getAttribute!==Qe&&e.getAttribute("class")||"")})},ATTR:function(n,r,o){return function(e){var t=St.attr(e,n);return null==t?"!="===r:!r||(t+="","="===r?t===o:"!="===r?t!==o:"^="===r?o&&0===t.indexOf(o):"*="===r?o&&-1)[^>]*$|#([\w\-]*)$)/,Zt=Se.Event,en=Xt.makeMap("children,contents,next,prev"),tn=function(e){return void 0!==e},nn=function(e){return"string"==typeof e},rn=function(e,t){var n,r,o;for(o=(t=t||Yt).createElement("div"),n=t.createDocumentFragment(),o.innerHTML=e;r=o.firstChild;)n.appendChild(r);return n},on=function(e,t,n,r){var o;if(nn(t))t=rn(t,bn(e[0]));else if(t.length&&!t.nodeType){if(t=gn.makeArray(t),r)for(o=t.length-1;0<=o;o--)on(e,t[o],n,r);else for(o=0;o"===e.charAt(e.length-1)&&3<=e.length?[null,e,null]:Qt.exec(e)))return gn(t).find(e);if(n[1])for(r=rn(e,bn(t)).firstChild;r;)Gt.call(o,r),r=r.nextSibling;else{if(!(r=bn(t).getElementById(n[2])))return o;if(r.id!==n[2])return o.find(e);o.length=1,o[0]=r}}else this.add(e,!1);return o},toArray:function(){return Xt.toArray(this)},add:function(e,t){var n,r,o=this;if(nn(e))return o.add(gn(e));if(!1!==t)for(n=gn.unique(o.toArray().concat(gn.makeArray(e))),o.length=n.length,r=0;r=a.length&&r(o)}))})})},co=function(e){return so(e,uo.nu)},lo=function(n){return{is:function(e){return n===e},isValue:C,isError:b,getOr:q(n),getOrThunk:q(n),getOrDie:q(n),or:function(e){return lo(n)},orThunk:function(e){return lo(n)},fold:function(e,t){return t(n)},map:function(e){return lo(e(n))},mapError:function(e){return lo(n)},each:function(e){e(n)},bind:function(e){return e(n)},exists:function(e){return e(n)},forall:function(e){return e(n)},toOption:function(){return _.some(n)}}},fo=function(n){return{is:b,isValue:b,isError:C,getOr:$,getOrThunk:function(e){return e()},getOrDie:function(){return e=String(n),function(){throw new Error(e)}();var e},or:function(e){return e},orThunk:function(e){return e()},fold:function(e,t){return e(n)},map:function(e){return fo(n)},mapError:function(e){return fo(e(n))},each:o,bind:function(e){return fo(n)},exists:b,forall:C,toOption:_.none}},mo={value:lo,error:fo,fromOption:function(e,t){return e.fold(function(){return fo(t)},lo)}};function go(e,u){var t=e,n=function(e,t,n,r){var o,i;if(e){if(!r&&e[t])return e[t];if(e!==u){if(o=e[n])return o;for(i=e.parentNode;i&&i!==u;i=i.parentNode)if(o=i[n])return o}}};this.current=function(){return t},this.next=function(e){return t=n(t,"firstChild","nextSibling",e)},this.prev=function(e){return t=n(t,"lastChild","previousSibling",e)},this.prev2=function(e){return t=function(e,t,n,r){var o,i,a;if(e){if(o=e[n],u&&o===u)return;if(o){if(!r)for(a=o[t];a;a=a[t])if(!a[t])return a;return o}if((i=e.parentNode)&&i!==u)return i}}(t,"lastChild","previousSibling",e)}}var po,ho,vo,yo=function(t){var n;return function(e){return(n=n||function(e,t){for(var n={},r=0,o=e.length;r\"\u0060\u007E-\uD7FF\uE000-\uFFEF]|[\uD800-\uDBFF][\uDC00-\uDFFF]/g,Ko=/[<>&\u007E-\uD7FF\uE000-\uFFEF]|[\uD800-\uDBFF][\uDC00-\uDFFF]/g,Xo=/[<>&\"\']/g,Yo=/&#([a-z0-9]+);?|&([a-z0-9]+);/gi,Go={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"};ho={'"':""","'":"'","<":"<",">":">","&":"&","`":"`"},vo={"<":"<",">":">","&":"&",""":'"',"'":"'"};var Jo=function(e,t){var n,r,o,i={};if(e){for(e=e.split(","),t=t||10,n=0;n>10),56320+(1023&t))):Go[t]||String.fromCharCode(t):vo[e]||po[e]||(n=e,(r=ar.fromTag("div").dom()).innerHTML=n,r.textContent||r.innerText||n);var n,r})}},ni={},ri={},oi=Xt.makeMap,ii=Xt.each,ai=Xt.extend,ui=Xt.explode,si=Xt.inArray,ci=function(e,t){return(e=Xt.trim(e))?e.split(t||" "):[]},li=function(e){var u,t,n,r,o,i,s={},a=function(e,t,n){var r,o,i,a=function(e,t){var n,r,o={};for(n=0,r=e.length;n
    ').css(n).appendTo(a)[0];return c.set(_.some({caret:i,element:e,before:t})),c.get().each(function(e){t&&gn(e.caret).addClass("mce-visual-caret-before")}),f(),(r=e.ownerDocument.createRange()).setStart(s,0),r.setEnd(s,0),r},hide:l,getCss:function(){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;}"},reposition:function(){c.get().each(function(e){var t=fs(a,e.element,e.before);gn(e.caret).css(t)})},destroy:function(){return he.clearInterval(t)}}},ms=function(){return cs.isIE()||cs.isEdge()||cs.isFirefox()},gs=function(e){return ls(e)||jo.isTable(e)&&ms()},ps=jo.isContentEditableFalse,hs=jo.matchStyleValues("display","block table table-cell table-caption list-item"),vs=ka,ys=Sa,bs=jo.isElement,Cs=Ha,xs=function(e){return 0=o.data.length-1)return 1===e&&(r=s(o))?Rs(r):n;if(Oa(o)&&i<=1)return-1===e&&(r=u(o))?Ds(r):n;if(i===o.data.length)return(r=s(o))?Rs(r):n;if(0===i)return(r=u(o))?Ds(r):n}return n},Bs=function(e,t){return _.from(ks(e?0:-1,t)).filter(ps)},Ps=function(e,t,n){var r=Os(e,t,n);return-1===e?Su.fromRangeStart(r):Su.fromRangeEnd(r)},Is=function(e){return _.from(e.getNode()).map(ar.fromDom)},Ls=function(e,t){for(;t=e(t);)if(t.isVisible())return t;return t},Fs=function(e,t){var n=Ts(e,t);return!(n||!jo.isBr(e.getNode()))||n};(ku=Tu||(Tu={}))[ku.Backwards=-1]="Backwards",ku[ku.Forwards=1]="Forwards";var Ms,zs,Us,js=jo.isContentEditableFalse,Vs=jo.isText,Hs=jo.isElement,qs=jo.isBr,$s=Ha,Ws=function(e){return Ua(e)||!!qa(t=e)&&!0!==j(te(t.getElementsByTagName("*")),function(e,t){return e||Ia(t)},!1);var t},Ks=$a,Xs=function(e,t){return e.hasChildNodes()&&tu.length-1)return!!fc(c,i,r)||lc(i,r);i=u[s[o]]}3===i.nodeType&&(a=Math.min(s[0],i.nodeValue.length)),1===i.nodeType&&(a=Math.min(s[0],i.childNodes.length)),t?r.setStart(i,a):r.setEnd(i,a)}return!0},mc=function(e){return jo.isText(e)&&0=t.nodeValue.length&&e.splice(0,1),t=e[e.length-1],0===m&&0h.length-1?p=h.length-1:p<0&&(p=0),d=h[p]||g),l===d)return o(v([l]));for(n=e.findCommonAncestor(l,d),a=l;a;a=a.parentNode){if(a===d)return C(l,n,!0);if(a===n)break}for(a=d;a;a=a.parentNode){if(a===l)return C(d,n);if(a===n)break}r=b(l,n)||l,i=b(d,n)||d,C(l,r,!0),(s=y(r===l?r:r.nextSibling,"nextSibling",i===d?i.nextSibling:i)).length&&o(v(s)),C(d,i)}},Fc=(Ms=mr,zs="text",{get:function(e){if(!Ms(e))throw new Error("Can only get "+zs+" value of a "+zs+" node");return Us(e).getOr("")},getOption:Us=function(e){return Ms(e)?_.from(e.dom().nodeValue):_.none()},set:function(e,t){if(!Ms(e))throw new Error("Can only set raw "+zs+" value of a "+zs+" node");e.dom().nodeValue=t}}),Mc=function(e){return Fc.get(e)},zc=function(r,o,i,a){return Vr(o).fold(function(){return"skipping"},function(e){return"br"===a||mr(n=o)&&"\ufeff"===Mc(n)?"valid":dr(t=o)&&Gi(t,aa())?"existing":Ju(o)?"caret":wc.isValid(r,i,a)&&wc.isValid(r,lr(e),i)?"valid":"invalid-child";var t,n})},Uc=function(e,t,n,r){var o,i,a=t.uid,u=void 0===a?(o="mce-annotation",i=(new Date).getTime(),o+"_"+Math.floor(1e9*Math.random())+ ++ga+String(i)):a,s=function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var o=0;for(r=Object.getOwnPropertySymbols(e);o=n.startOffset&&"\xa0"===n.startContainer.nodeValue[n.startOffset]),t.setStart(r.startContainer,r.startOffset),t.setEnd(r.endContainer,r.endOffset),e.selection.setRng(t)),s.selection.getRng().collapsed){var i=Uc(s.getDoc(),f,c,l.decorate);ya(i,"\xa0"),s.selection.getRng().insertNode(i.dom()),s.selection.select(i.dom())}else{var a=Yu.getPersistentBookmark(s.selection,!1),u=s.selection.getRng();jc(s,u,c,l.decorate,f),s.selection.moveToBookmark(a)}})};function Hc(s){var n,r=(n={},{register:function(e,t){n[e]={name:e,settings:t}},lookup:function(e){return n.hasOwnProperty(e)?_.from(n[e]).map(function(e){return e.settings}):_.none()}});da(s,r);var o=fa(s);return{register:function(e,t){r.register(e,t)},annotate:function(t,n){r.lookup(t).each(function(e){Vc(s,t,e,n)})},annotationChanged:function(e,t){o.addListener(e,t)},remove:function(e){ca(s,_.some(e)).each(function(e){var t=e.elements;z(t,ji)})},getAll:function(e){var t,n,r,o,i,a,u=(t=s,n=e,r=ar.fromDom(t.getBody()),o=Qi(r,"["+ua()+'="'+n+'"]'),i={},z(o,function(e){var t=Er(e,sa()),n=i.hasOwnProperty(t)?i[t]:[];i[t]=n.concat([e])}),i);return a=function(e){return W(e,function(e){return e.dom()})},vr(u,function(e,t){return{k:t,v:a(e,t)}})}}}var qc=function(e){return Xt.grep(e.childNodes,function(e){return"LI"===e.nodeName})},$c=function(e){return e&&e.firstChild&&e.firstChild===e.lastChild&&("\xa0"===(t=e.firstChild).data||jo.isBr(t));var t},Wc=function(e){return 0'))},rl=function(n){Gr(n).each(function(t){Hr(t).each(function(e){Co(n)&&wo(t)&&Co(e)&&Ui(t)})})},ol=Xt.makeMap;function il(e){var u,s,c,l,f,d=[];return u=(e=e||{}).indent,s=ol(e.indent_before||""),c=ol(e.indent_after||""),l=ti.getEncodeFunc(e.entity_encoding||"raw",e.entities),f="html"===e.element_format,{start:function(e,t,n){var r,o,i,a;if(u&&s[e]&&0":" />",n&&u&&c[e]&&0"),u&&c[e]&&0")},comment:function(e){d.push("\x3c!--",e,"--\x3e")},pi:function(e,t){t?d.push(""):d.push(""),u&&d.push("\n")},doctype:function(e){d.push("",u?"\n":"")},reset:function(){d.length=0},getContent:function(){return d.join("").replace(/\n$/,"")}}}function al(t,g){void 0===g&&(g=di());var p=il(t);return(t=t||{}).validate=!("validate"in t)||t.validate,{serialize:function(e){var f,d;d=t.validate,f={3:function(e){p.text(e.value,e.raw)},8:function(e){p.comment(e.value)},7:function(e){p.pi(e.name,e.value)},10:function(e){p.doctype(e.value)},4:function(e){p.cdata(e.value)},11:function(e){if(e=e.firstChild)for(;m(e),e=e.next;);}},p.reset();var m=function(e){var t,n,r,o,i,a,u,s,c,l=f[e.type];if(l)l(e);else{if(t=e.name,n=e.shortEnded,r=e.attributes,d&&r&&1|)$/," "):o("nextSibling")||(t=t.replace(/( | )(
    |)$/," "))),t}(g.getRng(),t)),r=e.parser,m=n.merge,o=al({validate:e.settings.validate},e.schema),d='​',s={content:t,format:"html",selection:!0,paste:n.paste},(s=e.fire("BeforeSetContent",s)).isDefaultPrevented())e.fire("SetContent",{content:s.content,format:"html",selection:!0,paste:n.paste});else{-1===(t=s.content).indexOf("{$caret}")&&(t+="{$caret}"),t=t.replace(/\{\$caret\}/,d);var h,v,y,b,C,x,w=(l=g.getRng()).startContainer||(l.parentElement?l.parentElement():null),N=e.getBody();w===N&&g.isCollapsed()&&p.isBlock(N.firstChild)&&(h=e,(v=N.firstChild)&&!h.schema.getShortEndedElements()[v.nodeName])&&p.isEmpty(N.firstChild)&&((l=p.createRng()).setStart(N.firstChild,0),l.setEnd(N.firstChild,0),g.setRng(l)),g.isCollapsed()||(e.selection.setRng(cl(e.selection.getRng())),e.getDoc().execCommand("Delete",!1,null),y=e.selection.getRng(),b=t,C=y.startContainer,x=y.startOffset,3===C.nodeType&&y.collapsed&&("\xa0"===C.data[x]?(C.deleteData(x,1),/[\u00a0| ]$/.test(b)||(b+=" ")):"\xa0"===C.data[x-1]&&(C.deleteData(x-1,1),/[\u00a0| ]$/.test(b)||(b=" "+b))),t=b);var E,S,T,k={context:(i=g.getNode()).nodeName.toLowerCase(),data:n.data,insert:!0};if(u=r.parse(t,k),!0===n.paste&&Gc(e.schema,u)&&Qc(p,i))return l=Jc(o,p,e.selection.getRng(),u),e.selection.setRng(l),void e.fire("SetContent",s);if(function(e){for(var t=e;t=t.walk();)1===t.type&&t.attr("data-mce-fragment","1")}(u),"mce_marker"===(f=u.lastChild).attr("id"))for(f=(c=f).prev;f;f=f.walk(!0))if(3===f.type||!p.isBlock(f.name)){e.schema.isValidChild(f.parent.name,"span")&&f.parent.insert(c,f,"br"===f.name);break}if(e._selectionOverrides.showBlockCaretContainer(i),k.invalid){for(fl(e,d),i=g.getNode(),a=e.getBody(),9===i.nodeType?i=f=a:f=i;f!==a;)f=(i=f).parentNode;t=i===a?a.innerHTML:p.getOuterHTML(i),t=o.serialize(r.parse(t.replace(//i,function(){return o.serialize(u)}))),i===a?p.setHTML(a,t):p.setOuterHTML(i,t)}else!function(e,t,n){if("all"===n.getAttribute("data-mce-bogus"))n.parentNode.insertBefore(e.dom.createFragment(t),n);else{var r=n.firstChild,o=n.lastChild;!r||r===o&&"BR"===r.nodeName?e.dom.setHTML(n,t):fl(e,t)}}(e,t=o.serialize(u),i);!function(e,t){var n=e.schema.getTextInlineElements(),r=e.dom;if(t){var o=e.getBody(),i=new el(r);Xt.each(r.select("*[data-mce-fragment]"),function(e){for(var t=e.parentNode;t&&t!==o;t=t.parentNode)n[e.nodeName.toLowerCase()]&&i.compare(t,e)&&r.remove(e,!0)})}}(e,m),function(n,e){var t,r,o,i,a,u=n.dom,s=n.selection;if(e){if(n.selection.scrollIntoView(e),t=function(e){for(var t=n.getBody();e&&e!==t;e=e.parentNode)if("false"===n.dom.getContentEditable(e))return e;return null}(e))return u.remove(e),s.select(t);var c=u.createRng();(i=e.previousSibling)&&3===i.nodeType?(c.setStart(i,i.nodeValue.length),fe.ie||(a=e.nextSibling)&&3===a.nodeType&&(i.appendData(a.data),a.parentNode.removeChild(a))):(c.setStartBefore(e),c.setEndBefore(e)),r=u.getParent(e,u.isBlock),u.remove(e),r&&u.isEmpty(r)&&(n.$(r).empty(),c.setStart(r,0),c.setEnd(r,0),ll(r)||r.getAttribute("data-mce-fragment")||!(o=function(e){var t=_u.fromRangeStart(e);if(t=Js(n.getBody()).next(t))return t.toRange()}(c))?u.add(r,u.create("br",{"data-mce-bogus":"1"})):(c=o,u.remove(r))),s.setRng(c)}}(e,p.get("mce_marker")),E=e.getBody(),Xt.each(E.getElementsByTagName("*"),function(e){e.removeAttribute("data-mce-fragment")}),S=e.dom,T=e.selection.getStart(),_.from(S.getParent(T,"td,th")).map(ar.fromDom).each(rl),e.fire("SetContent",s),e.addVisual()}},ml=function(e,t){var n,r,o="string"!=typeof(n=t)?(r=Xt.extend({paste:n.paste,data:{paste:n.paste}},n),{content:n.content,details:r}):{content:n,details:{}};dl(e,o.content,o.details)},gl=/[\u0591-\u07FF\uFB1D-\uFDFF\uFE70-\uFEFC]/,pl=function(e,t,n){var r=e.getParam(t,n);if(-1!==r.indexOf("=")){var o=e.getParam(t,"","hash");return o.hasOwnProperty(e.id)?o[e.id]:n}return r},hl=function(e){return e.getParam("iframe_attrs",{})},vl=function(e){return e.getParam("doctype","")},yl=function(e){return e.getParam("document_base_url","")},bl=function(e){return pl(e,"body_id","tinymce")},Cl=function(e){return pl(e,"body_class","")},xl=function(e){return e.getParam("content_security_policy","")},wl=function(e){return e.getParam("br_in_pre",!0)},Nl=function(e){if(e.getParam("force_p_newlines",!1))return"p";var t=e.getParam("forced_root_block","p");return!1===t?"":t},El=function(e){return e.getParam("forced_root_block_attrs",{})},Sl=function(e){return e.getParam("br_newline_selector",".mce-toc h2,figcaption,caption")},Tl=function(e){return e.getParam("no_newline_selector","")},kl=function(e){return e.getParam("keep_styles",!0)},_l=function(e){return e.getParam("end_container_on_empty_block",!1)},Al=function(e){return Xt.explode(e.getParam("font_size_style_values",""))},Rl=function(e){return Xt.explode(e.getParam("font_size_classes",""))},Dl=function(e){return e.getParam("images_dataimg_filter",q(!0),"function")},Ol=function(e){return e.getParam("automatic_uploads",!0,"boolean")},Bl=function(e){return e.getParam("images_reuse_filename",!1,"boolean")},Pl=function(e){return e.getParam("images_replace_blob_uris",!0,"boolean")},Il=function(e){return e.getParam("images_upload_url","","string")},Ll=function(e){return e.getParam("images_upload_base_path","","string")},Fl=function(e){return e.getParam("images_upload_credentials",!1,"boolean")},Ml=function(e){return e.getParam("images_upload_handler",null,"function")},zl=function(e){return e.getParam("content_css_cors",!1,"boolean")},Ul=function(e){return e.getParam("inline_boundaries_selector","a[href],code,.mce-annotation","string")},jl=function(e,t){if(!t)return t;var n=t.container(),r=t.offset();return e?Ta(n)?jo.isText(n.nextSibling)?_u(n.nextSibling,0):_u.after(n):Aa(t)?_u(n,r+1):t:Ta(n)?jo.isText(n.previousSibling)?_u(n.previousSibling,n.previousSibling.data.length):_u.before(n):Ra(t)?_u(n,r-1):t},Vl={isInlineTarget:function(e,t){return Lr(ar.fromDom(t),Ul(e))},findRootInline:function(e,t,n){var r,o,i,a=(r=e,o=t,i=n,U(Si.DOM.getParents(i.container(),"*",o),r));return _.from(a[a.length-1])},isRtl:function(e){return"rtl"===Si.DOM.getStyle(e,"direction",!0)||(t=e.textContent,gl.test(t));var t},isAtZwsp:function(e){return Aa(e)||Ra(e)},normalizePosition:jl,normalizeForwards:d(jl,!0),normalizeBackwards:d(jl,!1),hasSameParentBlock:function(e,t,n){var r=Ss(t,e),o=Ss(n,e);return r&&r===o}},Hl=function(e,t){return zr(e,t)?na(t,function(e){return No(e)||So(e)},(n=e,function(e){return Mr(n,ar.fromDom(e.dom().parentNode))})):_.none();var n},ql=function(e){var t,n,r;e.dom.isEmpty(e.getBody())&&(e.setContent(""),n=(t=e).getBody(),r=n.firstChild&&t.dom.isBlock(n.firstChild)?n.firstChild:n,t.selection.setCursorLocation(r,0))},$l=function(i,a,u){return ru(sc.firstPositionIn(u),sc.lastPositionIn(u),function(e,t){var n=Vl.normalizePosition(!0,e),r=Vl.normalizePosition(!1,t),o=Vl.normalizePosition(!1,a);return i?sc.nextPosition(u,o).map(function(e){return e.isEqual(r)&&a.isEqual(n)}).getOr(!1):sc.prevPosition(u,o).map(function(e){return e.isEqual(n)&&a.isEqual(r)}).getOr(!1)}).getOr(!0)},Wl=function(e,t){var n,r,o,i=ar.fromDom(e),a=ar.fromDom(t);return n=a,r="pre,code",o=d(Mr,i),ra(n,r,o).isSome()},Kl=function(e,t){return Ha(t)&&!1===(r=e,o=t,jo.isText(o)&&/^[ \t\r\n]*$/.test(o.data)&&!1===Wl(r,o))||(n=t,jo.isElement(n)&&"A"===n.nodeName&&n.hasAttribute("name"))||Xl(t);var n,r,o},Xl=jo.hasAttribute("data-mce-bookmark"),Yl=jo.hasAttribute("data-mce-bogus"),Gl=jo.hasAttributeValue("data-mce-bogus","all"),Jl=function(e){return function(e){var t,n,r=0;if(Kl(e,e))return!1;if(!(n=e.firstChild))return!0;t=new go(n,e);do{if(Gl(n))n=t.next(!0);else if(Yl(n))n=t.next();else if(jo.isBr(n))r++,n=t.next();else{if(Kl(e,n))return!1;n=t.next()}}while(n);return r<=1}(e.dom())},Ql=Ar("block","position"),Zl=Ar("from","to"),ef=function(e,t){var n=ar.fromDom(e),r=ar.fromDom(t.container());return Hl(n,r).map(function(e){return Ql(e,t)})},tf=function(o,i,e){var t=ef(o,_u.fromRangeStart(e)),n=t.bind(function(e){return sc.fromPosition(i,o,e.position()).bind(function(e){return ef(o,e).map(function(e){return t=o,n=i,r=e,jo.isBr(r.position().getNode())&&!1===Jl(r.block())?sc.positionIn(!1,r.block().dom()).bind(function(e){return e.isEqual(r.position())?sc.fromPosition(n,t,e).bind(function(e){return ef(t,e)}):_.some(r)}).getOr(r):r;var t,n,r})})});return ru(t,n,Zl).filter(function(e){return!1===Mr((r=e).from().block(),r.to().block())&&Vr((n=e).from().block()).bind(function(t){return Vr(n.to().block()).filter(function(e){return Mr(t,e)})}).isSome()&&(t=e,!1===jo.isContentEditableFalse(t.from().block().dom())&&!1===jo.isContentEditableFalse(t.to().block().dom()));var t,n,r})},nf=function(e,t,n){return n.collapsed?tf(e,t,n):_.none()},rf=function(e,t,n){return zr(t,e)?function(e,t){for(var n=D(t)?t:b,r=e.dom(),o=[];null!==r.parentNode&&r.parentNode!==undefined;){var i=r.parentNode,a=ar.fromDom(i);if(o.push(a),!0===n(a))break;r=i}return o}(e,function(e){return n(e)||Mr(e,t)}).slice(0,-1):[]},of=function(e,t){return rf(e,t,q(!1))},af=of,uf=function(e,t){return[e].concat(of(e,t))},sf=function(e){var t,n=(t=Kr(e),Y(t,Co).fold(function(){return t},function(e){return t.slice(0,e)}));return z(n,Ui),n},cf=function(e,t){var n=uf(t,e);return X(n.reverse(),Jl).each(Ui)},lf=function(e,t,n,r){if(Jl(n))return nl(n),sc.firstPositionIn(n.dom());0===U($r(r),function(e){return!Jl(e)}).length&&Jl(t)&&Pi(r,ar.fromTag("br"));var o=sc.prevPosition(n.dom(),_u.before(r.dom()));return z(sf(t),function(e){Pi(r,e)}),cf(e,t),o},ff=function(e,t,n){if(Jl(n))return Ui(n),Jl(t)&&nl(t),sc.firstPositionIn(t.dom());var r=sc.lastPositionIn(n.dom());return z(sf(t),function(e){Fi(n,e)}),cf(e,t),r},df=function(e,t){return zr(t,e)?(n=uf(e,t),_.from(n[n.length-1])):_.none();var n},mf=function(e,t){sc.positionIn(e,t.dom()).map(function(e){return e.getNode()}).map(ar.fromDom).filter(wo).each(Ui)},gf=function(e,t,n){return mf(!0,t),mf(!1,n),df(t,n).fold(d(ff,e,t,n),d(lf,e,t,n))},pf=function(e,t,n,r){return t?gf(e,r,n):gf(e,n,r)},hf=function(t,n){var e,r=ar.fromDom(t.getBody());return(e=nf(r.dom(),n,t.selection.getRng()).bind(function(e){return pf(r,n,e.from().block(),e.to().block())})).each(function(e){t.selection.setRng(e.toRange())}),e.isSome()},vf=function(e,t){var n=ar.fromDom(t),r=d(Mr,e);return ta(n,_o,r).isSome()},yf=function(e,t){var n,r,o=sc.prevPosition(e.dom(),_u.fromRangeStart(t)).isNone(),i=sc.nextPosition(e.dom(),_u.fromRangeEnd(t)).isNone();return!(vf(n=e,(r=t).startContainer)||vf(n,r.endContainer))&&o&&i},bf=function(e){var n,r,o,t,i=ar.fromDom(e.getBody()),a=e.selection.getRng();return yf(i,a)?((t=e).setContent(""),t.selection.setCursorLocation(),!0):(n=i,r=e.selection,o=r.getRng(),ru(Hl(n,ar.fromDom(o.startContainer)),Hl(n,ar.fromDom(o.endContainer)),function(e,t){return!1===Mr(e,t)&&(o.deleteContents(),pf(n,!0,e,t).each(function(e){r.setRng(e.toRange())}),!0)}).getOr(!1))},Cf=function(e,t){return!e.selection.isCollapsed()&&bf(e)},xf=function(a){if(!k(a))throw new Error("cases must be an array");if(0===a.length)throw new Error("there must be at least one case");var u=[],n={};return z(a,function(e,r){var t=gr(e);if(1!==t.length)throw new Error("one and only one name per case");var o=t[0],i=e[o];if(n[o]!==undefined)throw new Error("duplicate key detected:"+o);if("cata"===o)throw new Error("cannot have a case named cata (sorry)");if(!k(i))throw new Error("case arguments must be an array");u.push(o),n[o]=function(){var e=arguments.length;if(e!==i.length)throw new Error("Wrong number of arguments to case "+o+". Expected "+i.length+" ("+i+"), got "+e);for(var n=new Array(e),t=0;t=e.data.length,s=0===t;e.replaceData(t,n,(o=s,i=u,j((r=a).split(""),function(e,t){return-1!==" \f\n\r\t\x0B".indexOf(t)||"\xa0"===t?e.previousCharIsSpace||""===e.str&&o||e.str.length===r.length-1&&i?{previousCharIsSpace:!1,str:e.str+"\xa0"}:{previousCharIsSpace:!0,str:e.str+" "}:{previousCharIsSpace:!1,str:e.str+t}},{previousCharIsSpace:!1,str:""}).str))}},Wf=function(e,t){var n,r=e.data.slice(t),o=r.length-(n=r,n.replace(/^\s+/g,"")).length;return $f(e,t,o)},Kf=function(e,t){return r=e,o=(n=t).container(),i=n.offset(),!1===_u.isTextPosition(n)&&o===r.parentNode&&i>_u.before(r).offset()?_u(t.container(),t.offset()-1):t;var n,r,o,i},Xf=function(e){return Ha(e.previousSibling)?_.some((t=e.previousSibling,jo.isText(t)?_u(t,t.data.length):_u.after(t))):e.previousSibling?sc.lastPositionIn(e.previousSibling):_.none();var t},Yf=function(e){return Ha(e.nextSibling)?_.some((t=e.nextSibling,jo.isText(t)?_u(t,0):_u.before(t))):e.nextSibling?sc.firstPositionIn(e.nextSibling):_.none();var t},Gf=function(r,o){return Xf(o).orThunk(function(){return Yf(o)}).orThunk(function(){return e=r,t=o,n=_u.before(t.previousSibling?t.previousSibling:t.parentNode),sc.prevPosition(e,n).fold(function(){return sc.nextPosition(e,_u.after(t))},_.some);var e,t,n})},Jf=function(n,r){return Yf(r).orThunk(function(){return Xf(r)}).orThunk(function(){return e=n,t=r,sc.nextPosition(e,_u.after(t)).fold(function(){return sc.prevPosition(e,_u.before(t))},_.some);var e,t})},Qf=function(e,t,n){return(r=e,o=t,i=n,r?Jf(o,i):Gf(o,i)).map(d(Kf,n));var r,o,i},Zf=function(t,n,e){e.fold(function(){t.focus()},function(e){t.selection.setRng(e.toRange(),n)})},ed=function(e,t){return t&&e.schema.getBlockElements().hasOwnProperty(lr(t))},td=function(e){if(Jl(e)){var t=ar.fromHtml('
    ');return zi(e),Fi(e,t),_.some(_u.before(t.dom()))}return _.none()},nd=function(e,t,l){var n,r,o,i,a=Hr(e).filter(mr),u=qr(e).filter(mr);return Ui(e),(n=a,r=u,o=t,i=function(e,t,n){var r,o,i,a,u=e.dom(),s=t.dom(),c=u.data.length;return o=s,i=l,a=Jn((r=u).data).length,r.appendData(o.data),Ui(ar.fromDom(o)),i&&Wf(r,a),n.container()===s?_u(u,c):n},n.isSome()&&r.isSome()&&o.isSome()?_.some(i(n.getOrDie(),r.getOrDie(),o.getOrDie())):_.none()).orThunk(function(){return l&&(a.each(function(e){return t=e.dom(),n=e.dom().length,r=t.data.slice(0,n),o=r.length-Jn(r).length,$f(t,n-o,o);var t,n,r,o}),u.each(function(e){return Wf(e.dom(),0)})),t})},rd=function(t,n,e,r){void 0===r&&(r=!0);var o,i,a=Qf(n,t.getBody(),e.dom()),u=ta(e,d(ed,t),(o=t.getBody(),function(e){return e.dom()===o})),s=nd(e,a,(i=e,br(t.schema.getTextInlineElements(),lr(i))));t.dom.isEmpty(t.getBody())?(t.setContent(""),t.selection.setCursorLocation()):u.bind(td).fold(function(){r&&Zf(t,n,s)},function(e){r&&Zf(t,n,_.some(e))})},od=function(a,u){var e,t,n,r,o,i;return(e=a.getBody(),t=u,n=a.selection.getRng(),r=Os(t?1:-1,e,n),o=_u.fromRangeStart(r),i=ar.fromDom(e),!1===t&&Ff(o)?_.some(jf.remove(o.getNode(!0))):t&&Lf(o)?_.some(jf.remove(o.getNode())):!1===t&&Lf(o)&&Sf(i,o)?Tf(i,o).map(function(e){return jf.remove(e.getNode())}):t&&Ff(o)&&Ef(i,o)?kf(i,o).map(function(e){return jf.remove(e.getNode())}):qf(e,t,o)).map(function(e){return e.fold((o=a,i=u,function(e){return o._selectionOverrides.hideFakeCaret(),rd(o,i,ar.fromDom(e)),!0}),(n=a,r=u,function(e){var t=r?_u.before(e):_u.after(e);return n.selection.setRng(t.toRange()),!0}),(t=a,function(e){return t.selection.setRng(e.toRange()),!0}));var t,n,r,o,i}).getOr(!1)},id=function(e,t){var n,r=e.selection.getNode();return!!jo.isContentEditableFalse(r)&&(n=ar.fromDom(e.getBody()),z(Qi(n,".mce-offscreen-selection"),Ui),rd(e,t,ar.fromDom(e.selection.getNode())),ql(e),!0)},ad=function(e,t){return e.selection.isCollapsed()?od(e,t):id(e,t)},ud=function(e){var t,n=function(e,t){for(;t&&t!==e;){if(jo.isContentEditableTrue(t)||jo.isContentEditableFalse(t))return t;t=t.parentNode}return null}(e.getBody(),e.selection.getNode());return jo.isContentEditableTrue(n)&&e.dom.isBlock(n)&&e.dom.isEmpty(n)&&(t=e.dom.create("br",{"data-mce-bogus":"1"}),e.dom.setHTML(n,""),n.appendChild(t),e.selection.setRng(_u.before(t).toRange())),!0},sd=jo.isText,cd=function(e){return sd(e)&&e.data[0]===xa},ld=function(e){return sd(e)&&e.data[e.data.length-1]===xa},fd=function(e){return e.ownerDocument.createTextNode(xa)},dd=function(e,t){return e?function(e){if(sd(e.previousSibling))return ld(e.previousSibling)||e.previousSibling.appendData(xa),e.previousSibling;if(sd(e))return cd(e)||e.insertData(0,xa),e;var t=fd(e);return e.parentNode.insertBefore(t,e),t}(t):function(e){if(sd(e.nextSibling))return cd(e.nextSibling)||e.nextSibling.insertData(0,xa),e.nextSibling;if(sd(e))return ld(e)||e.appendData(xa),e;var t=fd(e);return e.nextSibling?e.parentNode.insertBefore(t,e.nextSibling):e.parentNode.appendChild(t),t}(t)},md=d(dd,!0),gd=d(dd,!1),pd=function(e,t){return jo.isText(e.container())?dd(t,e.container()):dd(t,e.getNode())},hd=function(e,t){var n=t.get();return n&&e.container()===n&&Ta(n)},vd=function(n,e){return e.fold(function(e){ss.remove(n.get());var t=md(e);return n.set(t),_.some(_u(t,t.length-1))},function(e){return sc.firstPositionIn(e).map(function(e){if(hd(e,n))return _u(n.get(),1);ss.remove(n.get());var t=pd(e,!0);return n.set(t),_u(t,1)})},function(e){return sc.lastPositionIn(e).map(function(e){if(hd(e,n))return _u(n.get(),n.get().length-1);ss.remove(n.get());var t=pd(e,!1);return n.set(t),_u(t,t.length-1)})},function(e){ss.remove(n.get());var t=gd(e);return n.set(t),_.some(_u(t,1))})},yd=function(e,t){for(var n=0;ni.left&&a.rightr.top&&o.bottomo.childNodes.length-1&&(c=!1),jo.isDocument(o)&&(o=g,i=0),o===g){if(c&&(u=o.childNodes[0s.childNodes.length-1;s=s.childNodes[Math.min(u,s.childNodes.length-1)]||s,u=c&&3===s.nodeType?s.nodeValue.length:0}var l=i.getParent(s,i.isBlock),f=l?i.getParent(l.parentNode,i.isBlock):null,d=f?f.nodeName.toUpperCase():"",m=t&&t.ctrlKey;"LI"!==d||m||(l=f),s&&3===s.nodeType&&u>=s.nodeValue.length&&(function(e,t,n){for(var r,o=new go(t,n),i=e.getNonEmptyElements();r=o.next();)if(i[r.nodeName.toLowerCase()]||0")},mceToggleVisualAid:function(){s.hasVisual=!s.hasVisual,s.addVisual()},mceReplaceContent:function(e,t,n){s.execCommand("mceInsertContent",!1,n.replace(/\{\$selection\}/g,i.getContent({format:"text"})))},mceInsertLink:function(e,t,n){var r;"string"==typeof n&&(n={href:n}),r=o.getParent(i.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=o.getParent(i.getStart(),jo.isContentEditableTrue);if(e){var t=o.createRng();t.selectNodeContents(e),i.setRng(t)}},"delete":function(){hg(s)},forwardDelete:function(){vg(s)},mceNewDocument:function(){s.setContent("")},InsertLineBreak:function(e,t,n){return jg(s,n),!0}});var p=function(n){return function(){var e=i.isCollapsed()?[o.getParent(i.getNode(),o.isBlock)]:i.getSelectedBlocks(),t=mp(e,function(e){return!!a.matchNode(e,n)});return-1!==gp(t,!0)}};e({JustifyLeft:p("alignleft"),JustifyCenter:p("aligncenter"),JustifyRight:p("alignright"),JustifyFull:p("alignjustify"),"Bold,Italic,Underline,Strikethrough,Superscript,Subscript":function(e){return f(e)},mceBlockQuote:function(){return f("blockquote")},Outdent:function(){var e;if(n.inline_styles){if((e=o.getParent(i.getStart(),o.isBlock))&&0"),u))[o.length-1]=Xt.extend(o[o.length-1],{func:n,scope:r||i}),Xt.extend(o[0],{desc:i.translate(t),subpatterns:o.slice(1)})},o=function(e,t){return!!t&&t.ctrl===e.ctrlKey&&t.meta===e.metaKey&&t.alt===e.altKey&&t.shift===e.shiftKey&&!!(e.keyCode===t.keyCode||e.charCode&&e.charCode===t.charCode)&&(e.preventDefault(),!0)},c=function(e){return e.func?e.func.call(e.scope):null};i.on("keyup keypress keydown",function(t){var e,n;((n=t).altKey||n.ctrlKey||n.metaKey||"keydown"===(e=t).type&&112<=e.keyCode&&e.keyCode<=123)&&!t.isDefaultPrevented()&&(Xp(a,function(e){if(o(t,e))return r=e.subpatterns.slice(0),"keydown"===t.type&&c(e),!0}),o(t,r[0])&&(1===r.length&&"keydown"===t.type&&c(r[0]),r.shift()))}),this.add=function(e,n,r,o){var t;return"string"==typeof(t=r)?r=function(){i.execCommand(t,!1,null)}:Xt.isArray(t)&&(r=function(){i.execCommand(t[0],t[1],t[2])}),Xp(Yp(Xt.trim(e.toLowerCase())),function(e){var t=s(e,n,r,o);a[t.id]=t}),!0},this.remove=function(e){var t=s(e);return!!a[t.id]&&(delete a[t.id],!0)}}var Zp=function(e){var t=Ur(e).dom();return e.dom()===t.activeElement},eh=function(t){return(e=Ur(t),n=e!==undefined?e.dom():V.document,_.from(n.activeElement).map(ar.fromDom)).filter(function(e){return t.dom().contains(e.dom())});var e,n},th=function(t,e){return(n=e,n.collapsed?_.from(eu(n.startContainer,n.startOffset)).map(ar.fromDom):_.none()).bind(function(e){return ko(e)?_.some(e):!1===zr(t,e)?_.some(t):_.none()});var n},nh=function(t,e){th(ar.fromDom(t.getBody()),e).bind(function(e){return sc.firstPositionIn(e.dom())}).fold(function(){t.selection.normalize()},function(e){return t.selection.setRng(e.toRange())})},rh=function(e){if(e.setActive)try{e.setActive()}catch(t){e.focus()}else e.focus()},oh=function(e){var t,n=e.getBody();return n&&(t=ar.fromDom(n),Zp(t)||eh(t).isSome())},ih=function(e){return e.inline?oh(e):(t=e).iframeElement&&Zp(ar.fromDom(t.iframeElement));var t},ah=function(e){return e.editorManager.setActive(e)},uh=function(e,t){e.removed||(t?ah(e):function(t){var e=t.selection,n=t.settings.content_editable,r=t.getBody(),o=e.getRng();t.quirks.refreshContentEditable();var i,a,u=(i=t,a=e.getNode(),i.dom.getParent(a,function(e){return"true"===i.dom.getContentEditable(e)}));if(t.$.contains(r,u))return rh(u),nh(t,o),ah(t);t.bookmark!==undefined&&!1===ih(t)&&up(t).each(function(e){t.selection.setRng(e),o=e}),n||(fe.opera||rh(r),t.getWin().focus()),(fe.gecko||n)&&(rh(r),nh(t,o)),ah(t)}(e))},sh=ih,ch=function(e,t){return t.dom()[e]},lh=function(e,t){return parseInt(kr(t,e),10)},fh=d(ch,"clientWidth"),dh=d(ch,"clientHeight"),mh=d(lh,"margin-top"),gh=d(lh,"margin-left"),ph=function(e,t,n){var r,o,i,a,u,s,c,l,f,d,m,g=ar.fromDom(e.getBody()),p=e.inline?g:(r=g,ar.fromDom(r.dom().ownerDocument.documentElement)),h=(o=e.inline,a=t,u=n,s=(i=p).dom().getBoundingClientRect(),{x:a-(o?s.left+i.dom().clientLeft+gh(i):0),y:u-(o?s.top+i.dom().clientTop+mh(i):0)});return l=h.x,f=h.y,d=fh(c=p),m=dh(c),0<=l&&0<=f&&l<=d&&f<=m},hh=function(e){var t,n=e.inline?e.getBody():e.getContentAreaContainer();return(t=n,_.from(t).map(ar.fromDom)).map(function(e){return zr(Ur(e),e)}).getOr(!1)};function vh(n){var t,o=[],i=function(){var e,t=n.theme;return t&&t.getNotificationManagerImpl?t.getNotificationManagerImpl():{open:e=function(){throw new Error("Theme did not provide a NotificationManager implementation.")},close:e,reposition:e,getArgs:e}},a=function(){0t;var t}},cv=function(n){return function(e){return t=n,e.line===t;var t}},lv=jo.isContentEditableFalse,fv=Es,dv=function(e,t){return Math.abs(e.left-t)},mv=function(e,t){return Math.abs(e.right-t)},gv=function(e,t){return e>=t.left&&e<=t.right},pv=function(e,o){return Ht.reduce(e,function(e,t){var n,r;return n=Math.min(dv(e,o),mv(e,o)),r=Math.min(dv(t,o),mv(t,o)),gv(o,t)?t:gv(o,e)?e:r===n&&lv(t.node)?t:r=e.top&&n<=e.bottom});return(r=pv(f,t))&&(r=pv((a=e,c=function(t,e){var n;return n=U(ov([e]),function(e){return!t(e,u)}),s=s.concat(n),0===n.length},(s=[]).push(u=r),hv(tv.Up,a,d(c,Ga),u.node),hv(tv.Down,a,d(c,Ja),u.node),s),t))&&gs(r.node)?(i=t,{node:(o=r).node,before:dv(o,i)i&&(u=n.pageX+r-i),n.pageY+o>a&&(s=n.pageY+o-a),t.style.width=r-u+"px",t.style.height=o-s+"px",v(e.clientX,e.clientY)}},o=Sv(c,e),u=c,i=function(){u.dragging&&s.fire("dragend"),Tv(u)},(s=e).on("mousedown",n),e.on("mousemove",r),e.on("mouseup",o),t.bind(a,"mousemove",r),t.bind(a,"mouseup",i),e.on("remove",function(){t.unbind(a,"mousemove",r),t.unbind(a,"mouseup",i)})},_v=function(e){var n;kv(e),(n=e).on("drop",function(e){var t="undefined"!=typeof e.clientX?n.getDoc().elementFromPoint(e.clientX,e.clientY):null;(xv(t)||xv(n.dom.getContentEditableParent(t)))&&e.preventDefault()})},Av=function(t){var e=Vi(function(){if(!t.removed&&t.selection.getRng().collapsed){var e=fg(t,t.selection.getRng(),!1);t.selection.setRng(e)}},0);t.on("focus",function(){e.throttle()}),t.on("blur",function(){e.cancel()})},Rv=jo.isContentEditableTrue,Dv=jo.isContentEditableFalse,Ov=function(e,t){for(var n=e.getBody();t&&t!==n;){if(Rv(t)||Dv(t))return t;t=t.parentNode}return null},Bv=function(g){var p,e,t,a=g.getBody(),o=ds(g.getBody(),function(e){return g.dom.isBlock(e)},function(){return sh(g)}),h="sel-"+g.dom.uniqueId(),u=function(e){e&&g.selection.setRng(e)},s=function(){return g.selection.getRng()},v=function(e,t,n,r){return void 0===r&&(r=!0),g.fire("ShowCaret",{target:t,direction:e,before:n}).isDefaultPrevented()?null:(r&&g.selection.scrollIntoView(t,-1===e),o.show(n,t))},y=function(e,t){return t=Os(e,a,t),-1===e?_u.fromRangeStart(t):_u.fromRangeEnd(t)},n=function(e){return ka(e)||Oa(e)||Ba(e)},b=function(e){return n(e.startContainer)||n(e.endContainer)},c=function(e){var t=g.schema.getShortEndedElements(),n=g.dom.createRng(),r=e.startContainer,o=e.startOffset,i=e.endContainer,a=e.endOffset;return br(t,r.nodeName.toLowerCase())?0===o?n.setStartBefore(r):n.setStartAfter(r):n.setStart(r,o),br(t,i.nodeName.toLowerCase())?0===a?n.setEndBefore(i):n.setEndAfter(i):n.setEnd(i,a),n},l=function(e,t){var n,r,o,i,a,u,s,c,l,f,d=g.$,m=g.dom;if(!e)return null;if(e.collapsed){if(!b(e))if(!1===t){if(c=y(-1,e),gs(c.getNode(!0)))return v(-1,c.getNode(!0),!1,!1);if(gs(c.getNode()))return v(-1,c.getNode(),!c.isAtEnd(),!1)}else{if(c=y(1,e),gs(c.getNode()))return v(1,c.getNode(),!c.isAtEnd(),!1);if(gs(c.getNode(!0)))return v(1,c.getNode(!0),!1,!1)}return null}return i=e.startContainer,a=e.startOffset,u=e.endOffset,3===i.nodeType&&0===a&&Dv(i.parentNode)&&(i=i.parentNode,a=m.nodeIndex(i),i=i.parentNode),1!==i.nodeType?null:(u===a+1&&i===e.endContainer&&(n=i.childNodes[a]),Dv(n)?(l=f=n.cloneNode(!0),(s=g.fire("ObjectSelected",{target:n,targetClone:l})).isDefaultPrevented()?null:(r=oa(ar.fromDom(g.getBody()),"#"+h).fold(function(){return d([])},function(e){return d([e.dom()])}),l=s.targetClone,0===r.length&&(r=d('
    ').attr("id",h)).appendTo(g.getBody()),e=g.dom.createRng(),l===f&&fe.ie?(r.empty().append('

    \xa0

    ').append(l),e.setStartAfter(r[0].firstChild.firstChild),e.setEndAfter(l)):(r.empty().append("\xa0").append(l).append("\xa0"),e.setStart(r[0].firstChild,1),e.setEnd(r[0].lastChild,0)),r.css({top:m.getPos(n,g.getBody()).y}),r[0].focus(),(o=g.selection.getSel()).removeAllRanges(),o.addRange(e),z(Qi(ar.fromDom(g.getBody()),"*[data-mce-selected]"),function(e){Sr(e,"data-mce-selected")}),n.setAttribute("data-mce-selected","1"),p=n,C(),e)):null)},f=function(){p&&(p.removeAttribute("data-mce-selected"),oa(ar.fromDom(g.getBody()),"#"+h).each(Ui),p=null),oa(ar.fromDom(g.getBody()),"#"+h).each(Ui),p=null},C=function(){o.hide()};return fe.ceFalse&&(function(){g.on("mouseup",function(e){var t=s();t.collapsed&&ph(g,e.clientX,e.clientY)&&u(lg(g,t,!1))}),g.on("click",function(e){var t;(t=Ov(g,e.target))&&(Dv(t)&&(e.preventDefault(),g.focus()),Rv(t)&&g.dom.isChildOf(t,g.selection.getNode())&&f())}),g.on("blur NewBlock",function(){f()}),g.on("ResizeWindow FullscreenStateChanged",function(){return o.reposition()});var n,r,i=function(e,t){var n,r,o=g.dom.getParent(e,g.dom.isBlock),i=g.dom.getParent(t,g.dom.isBlock);return!(!o||!g.dom.isChildOf(o,i)||!1!==Dv(Ov(g,o)))||o&&(n=o,r=i,!(g.dom.getParent(n,g.dom.isBlock)===g.dom.getParent(r,g.dom.isBlock)))&&function(e){var t=Js(e);if(!e.firstChild)return!1;var n=_u.before(e.firstChild),r=t.next(n);return r&&!Lf(r)&&!Ff(r)}(o)};r=!1,(n=g).on("touchstart",function(){r=!1}),n.on("touchmove",function(){r=!0}),n.on("touchend",function(e){var t=Ov(n,e.target);Dv(t)&&(r||(e.preventDefault(),l(cg(n,t))))}),g.on("mousedown",function(e){var t,n=e.target;if((n===a||"HTML"===n.nodeName||g.dom.isChildOf(n,a))&&!1!==ph(g,e.clientX,e.clientY))if(t=Ov(g,n))Dv(t)?(e.preventDefault(),l(cg(g,t))):(f(),Rv(t)&&e.shiftKey||yv(e.clientX,e.clientY,g.selection.getRng())||(C(),g.selection.placeCaretAt(e.clientX,e.clientY)));else if(!1===gs(n)){f(),C();var r=vv(a,e.clientX,e.clientY);if(r&&!i(e.target,r.node)){e.preventDefault();var o=v(1,r.node,r.before,!1);g.getBody().focus(),u(o)}}}),g.on("keypress",function(e){rv.modifierPressed(e)||(e.keyCode,Dv(g.selection.getNode())&&e.preventDefault())}),g.on("getSelectionRange",function(e){var t=e.range;if(p){if(!p.parentNode)return void(p=null);(t=t.cloneRange()).selectNode(p),e.range=t}}),g.on("setSelectionRange",function(e){e.range=c(e.range);var t=l(e.range,e.forward);t&&(e.range=t)}),g.on("AfterSetSelectionRange",function(e){var t,n=e.range;b(n)||"mcepastebin"===n.startContainer.parentNode.id||C(),t=n.startContainer.parentNode,g.dom.hasClass(t,"mce-offscreen-selection")||f()}),g.on("copy",function(e){var t,n=e.clipboardData;if(!e.isDefaultPrevented()&&e.clipboardData&&!fe.ie){var r=(t=g.dom.get(h))?t.getElementsByTagName("*")[0]:t;r&&(e.preventDefault(),n.clearData(),n.setData("text/html",r.outerHTML),n.setData("text/plain",r.outerText))}}),_v(g),Av(g)}(),e=g.contentStyles,t=".mce-content-body",e.push(o.getCss()),e.push(t+" .mce-offscreen-selection {position: absolute;left: -9999999999px;max-width: 1000000px;}"+t+" *[contentEditable=false] {cursor: default;}"+t+" *[contentEditable=true] {cursor: text;}")),{showCaret:v,showBlockCaretContainer:function(e){e.hasAttribute("data-mce-caret")&&(Pa(e),u(s()),g.selection.scrollIntoView(e[0]))},hideFakeCaret:C,destroy:function(){o.destroy(),p=null}}},Pv=function(e){for(var t=e;/)/g,"\n").replace(/^[\r\n]*|[\r\n]*$/g,"").replace(/^\s*(()?|\s*\/\/\s*\]\]>(-->)?|\/\/\s*(-->)?|\]\]>|\/\*\s*-->\s*\*\/|\s*-->\s*)\s*$/g,"")};i--;)r=(n=e[i]).firstChild?n.firstChild.value:"","script"===t?((o=n.attr("type"))&&n.attr("type","mce-no/type"===o?null:o.replace(/^mce\-/,"")),"xhtml"===s.element_format&&0")):"xhtml"===s.element_format&&0k(n)?(C=_(b*y),b=_(C/y)):(b=_(C/y),C=_(b*y))),N.setStyles(D(s),{width:b,height:C}),r=0<(r=f.startPos.x+t)?r:0,o=0<(o=f.startPos.y+n)?o:0,N.setStyles(c,{left:r,top:o,display:"block"}),c.innerHTML=b+" × "+C,f[2]<0&&s.clientWidth<=b&&N.setStyle(s,"left",g+(h-b)),f[3]<0&&s.clientHeight<=C&&N.setStyle(s,"top",p+(v-C)),(t=A.scrollWidth-x)+(n=A.scrollHeight-w)!=0&&N.setStyles(c,{left:r-t,top:o-n}),i||(Tp(a,u,h,v),i=!0)},P=function(){i=!1;var e=function(e,t){t&&(u.style[e]||!a.schema.isValid(u.nodeName.toLowerCase(),e)?N.setStyle(D(u),e,t):N.setAttrib(D(u),e,t))};e("width",b),e("height",C),N.unbind(S,"mousemove",B),N.unbind(S,"mouseup",P),T!==S&&(N.unbind(T,"mousemove",B),N.unbind(T,"mouseup",P)),N.remove(s),N.remove(c),o(u),kp(a,u,b,C),N.setAttrib(u,"style",N.getAttrib(u,"style")),a.nodeChanged()},o=function(e){var t,r,o,n,i;I(),M(),t=N.getPos(e,A),g=t.x,p=t.y,i=e.getBoundingClientRect(),r=i.width||i.right-i.left,o=i.height||i.bottom-i.top,u!==e&&(u=e,b=C=0),n=a.fire("ObjectSelected",{target:e}),O(e)&&!n.isDefaultPrevented()?E(l,function(n,e){var t;(t=N.get("mceResizeHandle"+e))&&N.remove(t),t=N.add(A,"div",{id:"mceResizeHandle"+e,"data-mce-bogus":"all","class":"mce-resizehandle",unselectable:!0,style:"cursor:"+e+"-resize; margin:0; padding:0"}),11===fe.ie&&(t.contentEditable=!1),N.bind(t,"mousedown",function(e){var t;e.stopImmediatePropagation(),e.preventDefault(),d=(t=e).screenX,m=t.screenY,h=D(u).clientWidth,v=D(u).clientHeight,y=v/h,(f=n).startPos={x:r*n[0]+g,y:o*n[1]+p},x=A.scrollWidth,w=A.scrollHeight,s=u.cloneNode(!0),N.addClass(s,"mce-clonedresizable"),N.setAttrib(s,"data-mce-bogus","all"),s.contentEditable=!1,s.unSelectabe=!0,N.setStyles(s,{left:g,top:p,margin:0}),s.removeAttribute("data-mce-selected"),A.appendChild(s),N.bind(S,"mousemove",B),N.bind(S,"mouseup",P),T!==S&&(N.bind(T,"mousemove",B),N.bind(T,"mouseup",P)),c=N.add(A,"div",{"class":"mce-resize-helper","data-mce-bogus":"all"},h+" × "+v)}),n.elm=t,N.setStyles(t,{left:r*n[0]+g-t.offsetWidth/2,top:o*n[1]+p-t.offsetHeight/2})}):I(),u.setAttribute("data-mce-selected","1")},I=function(){var e,t;for(e in M(),u&&u.removeAttribute("data-mce-selected"),l)(t=N.get("mceResizeHandle"+e))&&(N.unbind(t),N.remove(t))},L=function(e){var t,n=function(e,t){if(e)do{if(e===t)return!0}while(e=e.parentNode)};i||a.removed||(E(N.select("img[data-mce-selected],hr[data-mce-selected]"),function(e){e.removeAttribute("data-mce-selected")}),t="mousedown"===e.type?e.target:r.getNode(),n(t=N.$(t).closest("table,img,figure.image,hr")[0],A)&&(z(),n(r.getStart(!0),t)&&n(r.getEnd(!0),t))?o(t):I())},F=function(e){return Ab(function(e,t){for(;t&&t!==e;){if(Rb(t)||Ab(t))return t;t=t.parentNode}return null}(a.getBody(),e))},M=function(){for(var e in l){var t=l[e];t.elm&&(N.unbind(t.elm),delete t.elm)}},z=function(){try{a.getDoc().execCommand("enableObjectResizing",!1,!1)}catch(e){}};return a.on("init",function(){z(),fe.ie&&11<=fe.ie&&(a.on("mousedown click",function(e){var t=e.target,n=t.nodeName;i||!/^(TABLE|IMG|HR)$/.test(n)||F(t)||(2!==e.button&&a.selection.select(t,"TABLE"===n),"mousedown"===e.type&&a.nodeChanged())}),a.dom.bind(A,"mscontrolselect",function(e){var t=function(e){he.setEditorTimeout(a,function(){a.selection.select(e)})};if(F(e.target))return e.preventDefault(),void t(e.target);/^(TABLE|IMG|HR)$/.test(e.target.nodeName)&&(e.preventDefault(),"IMG"===e.target.tagName&&t(e.target))}));var t=he.throttle(function(e){a.composing||L(e)});a.on("nodechange ResizeEditor ResizeWindow drop FullscreenStateChanged",t),a.on("keyup compositionend",function(e){u&&"TABLE"===u.nodeName&&t(e)}),a.on("hide blur",I),a.on("contextmenu",n)}),a.on("remove",M),{isResizable:O,showResizeRect:o,hideResizeRect:I,updateResizeRect:L,destroy:function(){u=s=null}}},Ob=function(e){return jo.isContentEditableTrue(e)||jo.isContentEditableFalse(e)},Bb=function(e,t,n){var r,o,i,a,u,s=n;if(s.caretPositionFromPoint)(o=s.caretPositionFromPoint(e,t))&&((r=n.createRange()).setStart(o.offsetNode,o.offset),r.collapse(!0));else if(n.caretRangeFromPoint)r=n.caretRangeFromPoint(e,t);else if(s.body.createTextRange){r=s.body.createTextRange();try{r.moveToPoint(e,t),r.collapse(!0)}catch(c){r=function(e,n,t){var r,o,i;if(r=t.elementFromPoint(e,n),o=t.body.createTextRange(),r&&"HTML"!==r.tagName||(r=t.body),o.moveToElementText(r),0<(i=(i=Xt.toArray(o.getClientRects())).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)))})).length){n=(i[0].bottom+i[0].top)/2;try{return o.moveToPoint(e,n),o.collapse(!0),o}catch(a){}}return null}(e,t,n)}return i=r,a=n.body,u=i&&i.parentElement?i.parentElement():null,jo.isContentEditableFalse(function(e,t,n){for(;e&&e!==t;){if(n(e))return e;e=e.parentNode}return null}(u,a,Ob))?null:i}return r},Pb=function(n,e){return W(e,function(e){var t=n.fire("GetSelectionRange",{range:e});return t.range!==e?t.range:e})},Ib=function(e,t){var n=(t||V.document).createDocumentFragment();return z(e,function(e){n.appendChild(e.dom())}),ar.fromDom(n)},Lb=Ar("element","width","rows"),Fb=Ar("element","cells"),Mb=Ar("x","y"),zb=function(e,t){var n=parseInt(Er(e,t),10);return isNaN(n)?1:n},Ub=function(e){return j(e,function(e,t){return t.cells().length>e?t.cells().length:e},0)},jb=function(e,t){for(var n=e.rows(),r=0;r_
    '+t),e.dom.remove("__mce_tmp")):l.pasteHTML(t)}u.no_events||e.fire("SetContent",u)}else e.fire("SetContent",u)},eC=function(e,t,n,r,o){var i=n?t.startContainer:t.endContainer,a=n?t.startOffset:t.endOffset;return _.from(i).map(ar.fromDom).map(function(e){return r&&t.collapsed?e:Xr(e,o(e,a)).getOr(e)}).bind(function(e){return dr(e)?_.some(e):Vr(e)}).map(function(e){return e.dom()}).getOr(e)},tC=function(e,t,n){return eC(e,t,!0,n,function(e,t){return Math.min(e.dom().childNodes.length,t)})},nC=function(e,t,n){return eC(e,t,!1,n,function(e,t){return 0t.clientHeight){e=t;break}t=t.parentNode}return e},scrollIntoView:function(e,t){return og(c,e,t)},placeCaretAt:function(e,t){return i(Bb(e,t,c.getDoc()))},getBoundingClientRect:function(){var e=m();return e.collapsed?_u.fromRangeStart(e).getClientRects()[0]:e.getBoundingClientRect()},destroy:function(){s=l=f=null,t.destroy()}};return n=_b(p),t=Db(p,c),p.bookmarkManager=n,p.controlSelection=t,p};(kb=Tb||(Tb={}))[kb.Br=0]="Br",kb[kb.Block=1]="Block",kb[kb.Wrap=2]="Wrap",kb[kb.Eol=3]="Eol";var sC=function(e,t){return e===Tu.Backwards?t.reverse():t},cC=function(e,t,n,r){for(var o,i,a,u,s,c,l=Js(n),f=r,d=[];f&&(s=l,c=f,o=t===Tu.Forwards?s.next(c):s.prev(c));){if(jo.isBr(o.getNode(!1)))return t===Tu.Forwards?{positions:sC(t,d).concat([o]),breakType:Tb.Br,breakAt:_.some(o)}:{positions:sC(t,d),breakType:Tb.Br,breakAt:_.some(o)};if(o.isVisible()){if(e(f,o)){var m=(i=t,a=f,u=o,jo.isBr(u.getNode(i===Tu.Forwards))?Tb.Br:!1===Ts(a,u)?Tb.Block:Tb.Wrap);return{positions:sC(t,d),breakType:m,breakAt:_.some(o)}}d.push(o),f=o}else f=o}return{positions:sC(t,d),breakType:Tb.Eol,breakAt:_.none()}},lC=function(n,r,o,e){return r(o,e).breakAt.map(function(e){var t=r(o,e).positions;return n===Tu.Backwards?t.concat(e):[e].concat(t)}).getOr([])},fC=function(e,i){return j(e,function(e,o){return e.fold(function(){return _.some(o)},function(r){return ru(Z(r.getClientRects()),Z(o.getClientRects()),function(e,t){var n=Math.abs(i-e.left);return Math.abs(i-t.left)<=n?o:r}).or(e)})},_.none())},dC=function(t,e){return Z(e.getClientRects()).bind(function(e){return fC(t,e.left)})},mC=d(cC,Su.isAbove,-1),gC=d(cC,Su.isBelow,1),pC=d(lC,-1,mC),hC=d(lC,1,gC),vC=jo.isContentEditableFalse,yC=Za,bC=function(e,t,n,r){var o=e===Tu.Forwards,i=o?Lf:Ff;if(!r.collapsed){var a=yC(r);if(vC(a))return sg(e,t,a,e===Tu.Backwards,!0)}var u=Sa(r.startContainer),s=Ps(e,t.getBody(),r);if(i(s))return cg(t,s.getNode(!o));var c=Vl.normalizePosition(o,n(s));if(!c)return u?r:null;if(i(c))return sg(e,t,c.getNode(!o),o,!0);var l=n(c);return l&&i(l)&&Fs(c,l)?sg(e,t,l.getNode(!o),o,!0):u?fg(t,c.toRange(),!0):null},CC=function(e,t,n,r){var o,i,a,u,s,c,l,f,d;if(d=yC(r),o=Ps(e,t.getBody(),r),i=n(t.getBody(),sv(1),o),a=U(i,cv(1)),s=Ht.last(o.getClientRects()),(Lf(o)||zf(o))&&(d=o.getNode()),(Ff(o)||Uf(o))&&(d=o.getNode(!0)),!s)return null;if(c=s.left,(u=pv(a,c))&&vC(u.node))return l=Math.abs(c-u.left),f=Math.abs(c-u.right),sg(e,t,u.node,l'),o=a,1===t?e.$(r).after(o):e.$(r).before(o),e.selection.select(o,!0),e.selection.collapse())}},wC=function(l,f){return function(){var e,t,n,r,o,i,a,u,s,c=(t=f,r=Js((e=l).getBody()),o=d(Ls,r.next),i=d(Ls,r.prev),a=t?Tu.Forwards:Tu.Backwards,u=t?o:i,s=e.selection.getRng(),(n=bC(a,e,u,s))?n:(n=xC(e,a,s))||null);return!!c&&(dg(l,c),!0)}},NC=function(u,s){return function(){var e,t,n,r,o,i,a=(r=(t=s)?1:-1,o=t?uv:av,i=(e=u).selection.getRng(),(n=CC(r,e,o,i))?n:(n=xC(e,r,i))||null);return!!a&&(dg(u,a),!0)}},EC=function(r,o){return function(){var t,e=o?_u.fromRangeEnd(r.selection.getRng()):_u.fromRangeStart(r.selection.getRng()),n=o?gC(r.getBody(),e):mC(r.getBody(),e);return(o?ee(n.positions):Z(n.positions)).filter((t=o,function(e){return t?Ff(e):Lf(e)})).fold(q(!1),function(e){return r.selection.setRng(e.toRange()),!0})}},SC=function(e,t,n,r,o){var i,a,u,s,c=Qi(ar.fromDom(n),"td,th,caption").map(function(e){return e.dom()}),l=U((i=e,G(c,function(e){var t,n,r=(t=Ka(e.getBoundingClientRect()),n=-1,{left:t.left-n,top:t.top-n,right:t.right+2*n,bottom:t.bottom+2*n,width:t.width+n,height:t.height+n});return[{x:r.left,y:i(r),cell:e},{x:r.right,y:i(r),cell:e}]})),function(e){return t(e,o)});return(a=l,u=r,s=o,j(a,function(e,r){return e.fold(function(){return _.some(r)},function(e){var t=Math.sqrt(Math.abs(e.x-u)+Math.abs(e.y-s)),n=Math.sqrt(Math.abs(r.x-u)+Math.abs(r.y-s));return _.some(nt}),_C=function(t,n){return Z(n.getClientRects()).bind(function(e){return TC(t,e.left,e.top)}).bind(function(e){return dC((t=e,sc.lastPositionIn(t).map(function(e){return mC(t,e).positions.concat(e)}).getOr([])),n);var t})},AC=function(t,n){return ee(n.getClientRects()).bind(function(e){return kC(t,e.left,e.top)}).bind(function(e){return dC((t=e,sc.firstPositionIn(t).map(function(e){return[e].concat(gC(t,e).positions)}).getOr([])),n);var t})},RC=function(e,t,n){var r,o,i,a,u=e(t,n);return(a=u).breakType===Tb.Wrap&&0===a.positions.length||!jo.isBr(n.getNode())&&(i=u).breakType===Tb.Br&&1===i.positions.length?(r=e,o=t,!u.breakAt.map(function(e){return r(o,e).breakAt.isSome()}).getOr(!1)):u.breakAt.isNone()},DC=d(RC,mC),OC=d(RC,gC),BC=function(e,t,n,r){var o,i,a,u,s=e.selection.getRng(),c=t?1:-1;if(ms()&&(o=t,i=s,a=n,u=_u.fromRangeStart(i),sc.positionIn(!o,a).map(function(e){return e.isEqual(u)}).getOr(!1))){var l=sg(c,e,n,!t,!0);return dg(e,l),!0}return!1},PC=function(e,t){var n=t.getNode(e);return jo.isElement(n)&&"TABLE"===n.nodeName?_.some(n):_.none()},IC=function(u,s,c){var e=PC(!!s,c),t=!1===s;e.fold(function(){return dg(u,c.toRange())},function(a){return sc.positionIn(t,u.getBody()).filter(function(e){return e.isEqual(c)}).fold(function(){return dg(u,c.toRange())},function(e){return n=s,o=a,t=c,void((i=Nl(r=u))?r.undoManager.transact(function(){var e=ar.fromTag(i);Nr(e,El(r)),Fi(e,ar.fromTag("br")),n?Ii(ar.fromDom(o),e):Pi(ar.fromDom(o),e);var t=r.dom.createRng();t.setStart(e.dom(),0),t.setEnd(e.dom(),0),dg(r,t)}):dg(r,t.toRange()));var n,r,o,t,i})})},LC=function(e,t,n,r){var o,i,a,u,s,c,l=e.selection.getRng(),f=_u.fromRangeStart(l),d=e.getBody();if(!t&&DC(r,f)){var m=(u=d,_C(s=n,c=f).orThunk(function(){return Z(c.getClientRects()).bind(function(e){return fC(pC(u,_u.before(s)),e.left)})}).getOr(_u.before(s)));return IC(e,t,m),!0}return!(!t||!OC(r,f))&&(o=d,m=AC(i=n,a=f).orThunk(function(){return Z(a.getClientRects()).bind(function(e){return fC(hC(o,_u.after(i)),e.left)})}).getOr(_u.after(i)),IC(e,t,m),!0)},FC=function(t,n){return function(){return _.from(t.dom.getParent(t.selection.getNode(),"td,th")).bind(function(e){return _.from(t.dom.getParent(e,"table")).map(function(e){return BC(t,n,e)})}).getOr(!1)}},MC=function(n,r){return function(){return _.from(n.dom.getParent(n.selection.getNode(),"td,th")).bind(function(t){return _.from(n.dom.getParent(t,"table")).map(function(e){return LC(n,r,e,t)})}).getOr(!1)}},zC=function(e){return F(["figcaption"],lr(e))},UC=function(e){var t=V.document.createRange();return t.setStartBefore(e.dom()),t.setEndBefore(e.dom()),t},jC=function(e,t,n){n?Fi(e,t):Li(e,t)},VC=function(e,t,n,r){return""===t?(l=e,f=r,d=ar.fromTag("br"),jC(l,d,f),UC(d)):(o=e,i=r,a=t,u=n,s=ar.fromTag(a),c=ar.fromTag("br"),Nr(s,u),Fi(s,c),jC(o,s,i),UC(c));var o,i,a,u,s,c,l,f,d},HC=function(e,t,n){return t?(o=e.dom(),gC(o,n).breakAt.isNone()):(r=e.dom(),mC(r,n).breakAt.isNone());var r,o},qC=function(t,n){var e,r,o,i=ar.fromDom(t.getBody()),a=_u.fromRangeStart(t.selection.getRng()),u=Nl(t),s=El(t);return(e=a,r=i,o=d(Mr,r),na(ar.fromDom(e.container()),Co,o).filter(zC)).exists(function(){if(HC(i,n,a)){var e=VC(i,u,s,n);return t.selection.setRng(e),!0}return!1})},$C=function(e,t){return function(){return!!e.selection.isCollapsed()&&qC(e,t)}},WC=function(e,r){return G(W(e,function(e){return Zy({shiftKey:!1,altKey:!1,ctrlKey:!1,metaKey:!1,keyCode:0,action:o},e)}),function(e){return t=e,(n=r).keyCode===t.keyCode&&n.shiftKey===t.shiftKey&&n.altKey===t.altKey&&n.ctrlKey===t.ctrlKey&&n.metaKey===t.metaKey?[e]:[];var t,n})},KC=function(e){for(var t=[],n=1;n'},cx=function(e,t){return e.nodeName===t||e.previousSibling&&e.previousSibling.nodeName===t},lx=function(e,t){return t&&e.isBlock(t)&&!/^(TD|TH|CAPTION|FORM)$/.test(t.nodeName)&&!/^(fixed|absolute)/i.test(t.style.position)&&"true"!==e.getContentEditable(t)},fx=function(e,t,n){return!1===jo.isText(t)?n:e?1===n&&t.data.charAt(n-1)===xa?0:n:n===t.data.length-1&&t.data.charAt(n)===xa?t.data.length:n},dx=function(e,t){var n,r,o=e.getRoot();for(n=t;n!==o&&"false"!==e.getContentEditable(n);)"true"===e.getContentEditable(n)&&(r=n),n=n.parentNode;return n!==o?r:o},mx=function(o,i,e){_.from(e.style).map(o.dom.parseStyle).each(function(e){var t=function(e){var t={},n=e.dom();if(Cr(n))for(var r=0;rs.childNodes.length-1,s=s.childNodes[Math.min(i,s.childNodes.length-1)]||s,i=g&&jo.isText(s)?s.nodeValue.length:0),(u=dx(x,s))&&((m&&!n||!m&&n)&&(s=function(e,t,n,r,o){var i,a,u,s,c,l,f,d=t||"P",m=e.dom,g=dx(m,r);if(!(a=m.getParent(r,m.isBlock))||!lx(m,a)){if(l=(a=a||g)===e.getBody()||(f=a)&&/^(TD|TH|CAPTION)$/.test(f.nodeName)?a.nodeName.toLowerCase():a.parentNode.nodeName.toLowerCase(),!a.hasChildNodes())return i=m.create(d),gx(e,i),a.appendChild(i),n.setStart(i,0),n.setEnd(i,0),i;for(s=r;s.parentNode!==a;)s=s.parentNode;for(;s&&!m.isBlock(s);)s=(u=s).previousSibling;if(u&&e.schema.isValidChild(l,d.toLowerCase())){for(i=m.create(d),gx(e,i),u.parentNode.insertBefore(i,u),s=u;s&&!m.isBlock(s);)c=s.nextSibling,i.appendChild(s),s=c;n.setStart(r,o),n.setEnd(r,o)}}return r}(a,m,E,s,i)),c=x.getParent(s,x.isBlock),l=c?x.getParent(c.parentNode,x.isBlock):null,f=c?c.nodeName.toUpperCase():"","LI"!==(d=l?l.nodeName.toUpperCase():"")||e.ctrlKey||(l=(c=l).parentNode,f=d),/^(LI|DT|DD)$/.test(f)&&x.isEmpty(c)?ux(a,S,l,c,m):m&&c===a.getBody()||(m=m||"P",Sa(c)?(r=Pa(c),x.isEmpty(c)&&sx(c),gx(a,r),QC(a,r)):T()?k():T(!0)?(r=c.parentNode.insertBefore(S(),c),QC(a,cx(c,"HR")?r:c)):((t=(b=E,C=b.cloneRange(),C.setStart(b.startContainer,fx(!0,b.startContainer,b.startOffset)),C.setEnd(b.endContainer,fx(!1,b.endContainer,b.endOffset)),C).cloneRange()).setEndAfter(c),o=t.extractContents(),y=o,z(Ji(ar.fromDom(y),mr),function(e){var t=e.dom();t.nodeValue=wa(t.nodeValue)}),function(e){for(;jo.isText(e)&&(e.nodeValue=e.nodeValue.replace(/^[\r\n]+/,"")),e=e.firstChild;);}(o),r=o.firstChild,x.insertAfter(o,c),function(e,t,n){var r,o=n,i=[];if(o){for(;o=o.firstChild;){if(e.isBlock(o))return;jo.isElement(o)&&!t[o.nodeName.toLowerCase()]&&i.push(o)}for(r=i.length;r--;)!(o=i[r]).hasChildNodes()||o.firstChild===o.lastChild&&""===o.firstChild.nodeValue?e.remove(o):(a=e,(u=o)&&"A"===u.nodeName&&a.isEmpty(u)&&e.remove(o));var a,u}}(x,N,r),p=x,(h=c).normalize(),(v=h.lastChild)&&!/^(left|right)$/gi.test(p.getStyle(v,"float",!0))||p.add(h,"br"),x.isEmpty(c)&&sx(c),r.normalize(),x.isEmpty(r)?(x.remove(r),k()):(gx(a,r),QC(a,r))),x.setAttrib(r,"id",""),a.fire("NewBlock",{newBlock:r})))},hx=function(e,t){return ex(e).filter(function(e){return 0",yl(f)!==f.documentBaseUrl&&(g+=''),g+='',d=bl(f),m=Cl(f),xl(f)&&(g+=''),g+='
    '),Cw.add(t.iframeContainer,l),p},ww=function(e,t){var n=xw(e,t);t.editorContainer&&(Cw.get(t.editorContainer).style.display=e.orgDisplay,e.hidden=Cw.isHidden(t.editorContainer)),e.getElement().style.display="none",Cw.setAttrib(e.id,"aria-hidden","true"),n||bw(e)},Nw=Si.DOM,Ew=function(t,n,e){var r=_h.get(e),o=_h.urls[e]||t.documentBaseUrl.replace(/\/$/,"");if(e=Xt.trim(e),r&&-1===Xt.inArray(n,e)){if(Xt.each(_h.dependencies(e),function(e){Ew(t,n,e)}),t.plugins[e])return;try{var i=new r(t,o,t.$);(t.plugins[e]=i).init&&(i.init(t,o),n.push(e))}catch(iE){kh.pluginInitError(t,e,iE)}}},Sw=function(e){return e.replace(/^\-/,"")},Tw=function(e){return{editorContainer:e,iframeContainer:e}},kw=function(e){var t,n,r=e.getElement();return e.inline?Tw(null):(t=r,n=Nw.create("div"),Nw.insertAfter(n,t),Tw(n))},_w=function(e){var t,n,r,o,i,a,u,s,c,l,f,d=e.settings,m=e.getElement();return e.orgDisplay=m.style.display,S(d.theme)?(l=(o=e).settings,f=o.getElement(),i=l.width||Nw.getStyle(f,"width")||"100%",a=l.height||Nw.getStyle(f,"height")||f.offsetHeight,u=l.min_height||100,(s=/^[0-9\.]+(|px)$/i).test(""+i)&&(i=Math.max(parseInt(i,10),100)),s.test(""+a)&&(a=Math.max(parseInt(a,10),u)),c=o.theme.renderUI({targetNode:f,width:i,height:a,deltaWidth:l.delta_width,deltaHeight:l.delta_height}),l.content_editable||(a=(c.iframeHeight||a)+("number"==typeof a?c.deltaHeight||0:""))=n.length)for(r=0,o=e.length;r=n.length||e[r]!==n[r]){i=r+1;break}if(e.length=e.length||e[r]!==n[r]){i=r+1;break}if(1===i)return t;for(r=0,o=e.length-(i-1);r]*>( | |\\s|\xa0|
    |)<\\/"+a+">[\r\n]*|
    [\r\n]*)$"),r=i.replace(u,"")}return"text"===t.format||Ao(ar.fromDom(n))?t.content=r:t.content=Xt.trim(r),t.no_events||e.fire("GetContent",t),t.content},jw=function(e,t){t(e),e.firstChild&&jw(e.firstChild,t),e.next&&jw(e.next,t)},Vw=function(e,t,n){var r=function(e,n,t){var r={},o={},i=[];for(var a in t.firstChild&&jw(t.firstChild,function(t){z(e,function(e){e.name===t.name&&(r[e.name]?r[e.name].nodes.push(t):r[e.name]={filter:e,nodes:[t]})}),z(n,function(e){"string"==typeof t.attr(e.name)&&(o[e.name]?o[e.name].nodes.push(t):o[e.name]={filter:e,nodes:[t]})})}),r)r.hasOwnProperty(a)&&i.push(r[a]);for(var a in o)o.hasOwnProperty(a)&&i.push(o[a]);return i}(e,t,n);z(r,function(t){z(t.filter.callbacks,function(e){e(t.nodes,t.filter.name,{})})})},Hw=function(e){return e instanceof sb},qw=function(e,t){var r;e.dom.setHTML(e.getBody(),t),sh(r=e)&&sc.firstPositionIn(r.getBody()).each(function(e){var t=e.getNode(),n=jo.isTable(t)?sc.firstPositionIn(t).getOr(e):e;r.selection.setRng(n.toRange())})},$w=function(u,s,c){return void 0===c&&(c={}),c.format=c.format?c.format:"html",c.set=!0,c.content=Hw(s)?"":s,Hw(s)||c.no_events||(u.fire("BeforeSetContent",c),s=c.content),_.from(u.getBody()).fold(q(s),function(e){return Hw(s)?function(e,t,n,r){Vw(e.parser.getNodeFilters(),e.parser.getAttributeFilters(),n);var o=al({validate:e.validate},e.schema).serialize(n);return r.content=Ao(ar.fromDom(t))?o:Xt.trim(o),qw(e,r.content),r.no_events||e.fire("SetContent",r),n}(u,e,s,c):(t=u,n=e,o=c,0===(r=s).length||/^\s+$/.test(r)?(a='
    ',"TABLE"===n.nodeName?r=""+a+"":/^(UL|OL)$/.test(n.nodeName)&&(r="
  • "+a+"
  • "),(i=Nl(t))&&t.schema.isValidChild(n.nodeName.toLowerCase(),i.toLowerCase())?(r=a,r=t.dom.createHTML(i,t.settings.forced_root_block_attrs,r)):r||(r='
    '),qw(t,r),t.fire("SetContent",o)):("raw"!==o.format&&(r=al({validate:t.validate},t.schema).serialize(t.parser.parse(r,{isRootContent:!0,insert:!0}))),o.content=Ao(ar.fromDom(n))?r:Xt.trim(r),qw(t,o.content),o.no_events||t.fire("SetContent",o)),o.content);var t,n,r,o,i,a})},Ww=Si.DOM,Kw=function(e){return _.from(e).each(function(e){return e.destroy()})},Xw=function(e){if(!e.removed){var t=e._selectionOverrides,n=e.editorUpload,r=e.getBody(),o=e.getElement();r&&e.save({is_removing:!0}),e.removed=!0,e.unbindAllNativeEvents(),e.hasHiddenInput&&o&&Ww.remove(o.nextSibling),Np(e),e.editorManager.remove(e),!e.inline&&r&&(i=e,Ww.setStyle(i.id,"display",i.orgDisplay)),Ep(e),Ww.remove(e.getContainer()),Kw(t),Kw(n),e.destroy()}var i},Yw=function(e,t){var n,r,o,i=e.selection,a=e.dom;e.destroyed||(t||e.removed?(t||(e.editorManager.off("beforeunload",e._beforeUnload),e.theme&&e.theme.destroy&&e.theme.destroy(),Kw(i),Kw(a)),(r=(n=e).formElement)&&(r._mceOldSubmit&&(r.submit=r._mceOldSubmit,r._mceOldSubmit=null),Ww.unbind(r,"submit reset",n.formEventDelegate)),(o=e).contentAreaContainer=o.formElement=o.container=o.editorContainer=null,o.bodyElement=o.contentDocument=o.contentWindow=null,o.iframeElement=o.targetElm=null,o.selection&&(o.selection=o.selection.win=o.selection.dom=o.selection.dom.doc=null),e.destroyed=!0):e.remove())},Gw=Si.DOM,Jw=Xt.extend,Qw=Xt.each,Zw=Xt.resolve,eN=fe.ie,tN=function(e,t,n){var r,o,i,a,u,s,c,l=this,f=l.documentBaseUrl=n.documentBaseURL,d=n.baseURI;r=l,o=e,i=f,a=n.defaultSettings,u=t,c={id:o,theme:"modern",delta_width:0,delta_height:0,popup_css:"",plugins:"",document_base_url:i,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:"",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,render_ui:!0,indentation:"40px",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,summary,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,summary,article,hgroup,aside,figure,figcaption,option,optgroup,datalist",entity_encoding:"named",url_converter:(s=r).convertURL,url_converter_scope:s,ie7_compat:!0},t=$p(zp,c,a,u),l.settings=t,Bi.language=t.language||"en",Bi.languageLoad=t.language_load,Bi.baseURL=n.baseURL,l.id=e,l.setDirty(!1),l.plugins={},l.documentBaseURI=new zw(t.document_base_url,{base_uri:d}),l.baseURI=d,l.contentCSS=[],l.contentStyles=[],l.shortcuts=new Qp(l),l.loadedCSS={},l.editorCommands=new pp(l),l.suffix=n.suffix,l.editorManager=n,l.inline=t.inline,l.buttons={},l.menuItems={},t.cache_suffix&&(fe.cacheSuffix=t.cache_suffix.replace(/^[\?\&]+/,"")),!1===t.override_viewport&&(fe.overrideViewPort=!1),n.fire("SetupEditor",{editor:l}),l.execCallback("setup",l),l.$=gn.overrideDefaults(function(){return{context:l.inline?l.getBody():l.getDoc(),element:l.getBody()}})};Jw(tN.prototype={render:function(){Bw(this)},focus:function(e){uh(this,e)},hasFocus:function(){return sh(this)},execCallback:function(e){for(var t=[],n=1;n=n.x&&o.x+o.w<=n.w+n.x&&o.y>=n.y&&o.y+o.h<=n.h+n.y)return r[i];return null},intersect:function(e,t){var n,r,o,i;return n=ON(e.x,t.x),r=ON(e.y,t.y),o=DN(e.x+e.w,t.x+t.w),i=DN(e.y+e.h,t.y+t.h),o-n<0||i-r<0?null:IN(n,r,o-n,i-r)},clamp:function(e,t,n){var r,o,i,a,u,s,c,l,f,d;return u=e.x,s=e.y,c=e.x+e.w,l=e.y+e.h,f=t.x+t.w,d=t.y+t.h,r=ON(0,t.x-u),o=ON(0,t.y-s),i=ON(0,c-f),a=ON(0,l-d),u+=r,s+=o,n&&(c+=r,l+=o,u-=i,s-=a),IN(u,s,(c-=i)-u,(l-=a)-s)},create:IN,fromClientRect:function(e){return IN(e.left,e.top,e.width,e.height)}},FN={},MN={add:function(e,t){FN[e.toLowerCase()]=t},has:function(e){return!!FN[e.toLowerCase()]},get:function(e){var t=e.toLowerCase(),n=FN.hasOwnProperty(t)?FN[t]:null;if(null===n)throw new Error("Could not find module for type: "+e);return n},create:function(e,t){var n;if("string"==typeof e?(t=t||{}).type=e:e=(t=e).type,e=e.toLowerCase(),!(n=FN[e]))throw new Error("Could not find control by type: "+e);return(n=new n(t)).type=e,n}},zN=Xt.each,UN=Xt.extend,jN=function(){};jN.extend=_N=function(n){var e,t,r,o=this.prototype,i=function(){var e,t,n;if(!AN&&(this.init&&this.init.apply(this,arguments),t=this.Mixins))for(e=t.length;e--;)(n=t[e]).init&&n.init.apply(this,arguments)},a=function(){return this},u=function(n,r){return function(){var e,t=this._super;return this._super=o[n],e=r.apply(this,arguments),this._super=t,e}};for(t in AN=!0,e=new this,AN=!1,n.Mixins&&(zN(n.Mixins,function(e){for(var t in e)"init"!==t&&(n[t]=e[t])}),o.Mixins&&(n.Mixins=o.Mixins.concat(n.Mixins))),n.Methods&&zN(n.Methods.split(","),function(e){n[e]=a}),n.Properties&&zN(n.Properties.split(","),function(e){var t="_"+e;n[e]=function(e){return e!==undefined?(this[t]=e,this):this[t]}}),n.Statics&&zN(n.Statics,function(e,t){i[t]=e}),n.Defaults&&o.Defaults&&(n.Defaults=UN({},o.Defaults,n.Defaults)),n)"function"==typeof(r=n[t])&&o[t]?e[t]=u(t,r):e[t]=r;return i.prototype=e,(i.constructor=i).extend=_N,i};var VN=Math.min,HN=Math.max,qN=Math.round,$N=function(e,n){var r,o,t,i;if(n=n||'"',null===e)return"null";if("string"==(t=typeof e))return o="\bb\tt\nn\ff\rr\"\"''\\\\",n+e.replace(/([\u0080-\uFFFF\x00-\x1f\"\'\\])/g,function(e,t){return'"'===n&&"'"===e?e:(r=o.indexOf(t))+1?"\\"+o.charAt(r+1):(e=t.charCodeAt().toString(16),"\\u"+"0000".substring(e.length)+e)})+n;if("object"===t){if(e.hasOwnProperty&&"[object Array]"===Object.prototype.toString.call(e)){for(r=0,o="[";rTiny
    ']),u=t.getParam("branding",!0,"boolean")?{type:"label",classes:"branding",html:" "+l}:null;i.add({type:"panel",name:"statusbar",classes:"statusbar",layout:"flow",border:"1 0 0 0",ariaRoot:!0,items:[{type:"elementpath",editor:t},r,u]})}return x(t),t.on("SwitchMode",(a=i,function(e){a.find("*").disabled("readonly"===e.mode)})),i.renderBefore(n.targetNode).reflow(),t.getParam("readonly",!1,"boolean")&&t.setMode("readonly"),n.width&&pe.setStyle(i.getEl(),"width",n.width),t.on("remove",function(){i.remove(),i=null}),R(t,i),F(t),{iframeContainer:i.find("#iframe")[0].getEl(),editorContainer:i.getEl()}},ye=tinymce.util.Tools.resolve("tinymce.dom.DomQuery"),xe=0,we={id:function(){return"mceu_"+xe++},create:function(e,t,n){var i=_.document.createElement(e);return p.DOM.setAttribs(i,t),"string"==typeof n?i.innerHTML=n:w.each(n,function(e){e.nodeType&&i.appendChild(e)}),i},createFragment:function(e){return p.DOM.createFragment(e)},getWindowSize:function(){return p.DOM.getViewPort()},getSize:function(e){var t,n;if(e.getBoundingClientRect){var i=e.getBoundingClientRect();t=Math.max(i.width||i.right-i.left,e.offsetWidth),n=Math.max(i.height||i.bottom-i.bottom,e.offsetHeight)}else t=e.offsetWidth,n=e.offsetHeight;return{width:t,height:n}},getPos:function(e,t){return p.DOM.getPos(e,t||we.getContainer())},getContainer:function(){return ce.container?ce.container:_.document.body},getViewPort:function(e){return p.DOM.getViewPort(e)},get:function(e){return _.document.getElementById(e)},addClass:function(e,t){return p.DOM.addClass(e,t)},removeClass:function(e,t){return p.DOM.removeClass(e,t)},hasClass:function(e,t){return p.DOM.hasClass(e,t)},toggleClass:function(e,t,n){return p.DOM.toggleClass(e,t,n)},css:function(e,t,n){return p.DOM.setStyle(e,t,n)},getRuntimeStyle:function(e,t){return p.DOM.getStyle(e,t,!0)},on:function(e,t,n,i){return p.DOM.bind(e,t,n,i)},off:function(e,t,n){return p.DOM.unbind(e,t,n)},fire:function(e,t,n){return p.DOM.fire(e,t,n)},innerHtml:function(e,t){p.DOM.setHTML(e,t)}},_e=function(e){return"static"===we.getRuntimeStyle(e,"position")},Re=function(e){return e.state.get("fixed")};function Ce(e,t,n){var i,r,o,s,a,l,u,c,d,f;return d=Ee(),o=(r=we.getPos(t,W.getUiContainer(e))).x,s=r.y,Re(e)&&_e(_.document.body)&&(o-=d.x,s-=d.y),i=e.getEl(),a=(f=we.getSize(i)).width,l=f.height,u=(f=we.getSize(t)).width,c=f.height,"b"===(n=(n||"").split(""))[0]&&(s+=c),"r"===n[1]&&(o+=u),"c"===n[0]&&(s+=Math.round(c/2)),"c"===n[1]&&(o+=Math.round(u/2)),"b"===n[3]&&(s-=l),"r"===n[4]&&(o-=a),"c"===n[3]&&(s-=Math.round(l/2)),"c"===n[4]&&(o-=Math.round(a/2)),{x:o,y:s,w:a,h:l}}var Ee=function(){var e=_.window;return{x:Math.max(e.pageXOffset,_.document.body.scrollLeft,_.document.documentElement.scrollLeft),y:Math.max(e.pageYOffset,_.document.body.scrollTop,_.document.documentElement.scrollTop),w:e.innerWidth||_.document.documentElement.clientWidth,h:e.innerHeight||_.document.documentElement.clientHeight}},ke=function(e){var t,n=W.getUiContainer(e);return n&&!Re(e)?{x:0,y:0,w:(t=n).scrollWidth-1,h:t.scrollHeight-1}:Ee()},He={testMoveRel:function(e,t){for(var n=ke(this),i=0;in.x&&r.x+r.wn.y&&r.y+r.h+~,(\[\\]+)+|[>+~])(\s*,\s*)?((?:.|\r|\n)*)/g,ze=/^\s*|\s*$/g,Ie=Se.extend({init:function(e){var o=this.match;function s(e,t,n){var i;function r(e){e&&t.push(e)}return r(function(t){if(t)return t=t.toLowerCase(),function(e){return"*"===t||e.type===t}}((i=Be.exec(e.replace(ze,"")))[1])),r(function(t){if(t)return function(e){return e._name===t}}(i[2])),r(function(n){if(n)return n=n.split("."),function(e){for(var t=n.length;t--;)if(!e.classes.contains(n[t]))return!1;return!0}}(i[3])),r(function(n,i,r){if(n)return function(e){var t=e[n]?e[n]():"";return i?"="===i?t===r:"*="===i?0<=t.indexOf(r):"~="===i?0<=(" "+t+" ").indexOf(" "+r+" "):"!="===i?t!==r:"^="===i?0===t.indexOf(r):"$="===i&&t.substr(t.length-r.length)===r:!!r}}(i[4],i[5],i[6])),r(function(i){var t;if(i)return(i=/(?:not\((.+)\))|(.+)/i.exec(i))[1]?(t=a(i[1],[]),function(e){return!o(e,t)}):(i=i[2],function(e,t,n){return"first"===i?0===t:"last"===i?t===n-1:"even"===i?t%2==0:"odd"===i?t%2==1:!!e[i]&&e[i]()})}(i[7])),t.pseudo=!!i[7],t.direct=n,t}function a(e,t){var n,i,r,o=[];do{if(Le.exec(""),(i=Le.exec(e))&&(e=i[3],o.push(i[1]),i[2])){n=i[3];break}}while(i);for(n&&a(n,t),e=[],r=0;r"!==o[r]&&e.push(s(o[r],[],">"===o[r-1]));return t.push(e),t}this._selectors=a(e,[])},match:function(e,t){var n,i,r,o,s,a,l,u,c,d,f,h,m;for(n=0,i=(t=t||this._selectors).length;na.maxW?a.maxW:n,a.w=n,a.innerW=n-i),(n=e.h)!==undefined&&(n=(n=na.maxH?a.maxH:n,a.h=n,a.innerH=n-r),(n=e.innerW)!==undefined&&(n=(n=na.maxW-i?a.maxW-i:n,a.innerW=n,a.w=n+i),(n=e.innerH)!==undefined&&(n=(n=na.maxH-r?a.maxH-r:n,a.innerH=n,a.h=n+r),e.contentW!==undefined&&(a.contentW=e.contentW),e.contentH!==undefined&&(a.contentH=e.contentH),(t=s._lastLayoutRect).x===a.x&&t.y===a.y&&t.w===a.w&&t.h===a.h||((o=je.repaintControls)&&o.map&&!o.map[s._id]&&(o.push(s),o.map[s._id]=!0),t.x=a.x,t.y=a.y,t.w=a.w,t.h=a.h),s):a},repaint:function(){var e,t,n,i,r,o,s,a,l,u,c=this;l=_.document.createRange?function(e){return e}:Math.round,e=c.getEl().style,i=c._layoutRect,a=c._lastRepaintRect||{},o=(r=c.borderBox).left+r.right,s=r.top+r.bottom,i.x!==a.x&&(e.left=l(i.x)+"px",a.x=i.x),i.y!==a.y&&(e.top=l(i.y)+"px",a.y=i.y),i.w!==a.w&&(u=l(i.w-o),e.width=(0<=u?u:0)+"px",a.w=i.w),i.h!==a.h&&(u=l(i.h-s),e.height=(0<=u?u:0)+"px",a.h=i.h),c._hasBody&&i.innerW!==a.innerW&&(u=l(i.innerW),(n=c.getEl("body"))&&((t=n.style).width=(0<=u?u:0)+"px"),a.innerW=i.innerW),c._hasBody&&i.innerH!==a.innerH&&(u=l(i.innerH),(n=n||c.getEl("body"))&&((t=t||n.style).height=(0<=u?u:0)+"px"),a.innerH=i.innerH),c._lastRepaintRect=a,c.fire("repaint",{},!1)},updateLayoutRect:function(){var e=this;e.parent()._lastRect=null,we.css(e.getEl(),{width:"",height:""}),e._layoutRect=e._lastRepaintRect=e._lastLayoutRect=null,e.initLayoutRect()},on:function(e,t){var n,i,r,o=this;return nt(o).on(e,"string"!=typeof(n=t)?n:function(e){return i||o.parentsAndSelf().each(function(e){var t=e.settings.callbacks;if(t&&(i=t[n]))return r=e,!1}),i?i.call(r,e):(e.action=n,void this.fire("execute",e))}),o},off:function(e,t){return nt(this).off(e,t),this},fire:function(e,t,n){if((t=t||{}).control||(t.control=this),t=nt(this).fire(e,t),!1!==n&&this.parent)for(var i=this.parent();i&&!t.isPropagationStopped();)i.fire(e,t,!1),i=i.parent();return t},hasEventListeners:function(e){return nt(this).has(e)},parents:function(e){var t,n=new Ve;for(t=this.parent();t;t=t.parent())n.add(t);return e&&(n=n.filter(e)),n},parentsAndSelf:function(e){return new Ve(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]=ye("#"+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,i=n.getEl(n.ariaTarget);return void 0===t?n._aria[e]:(n._aria[e]=t,n.state.get("rendered")&&i.setAttribute("role"===e?e:"aria-"+e,t),n)},encode:function(e,t){return!1!==t&&(e=this.translate(e)),(e||"").replace(/[&<>"]/g,function(e){return"&#"+e.charCodeAt(0)+";"})},translate:function(e){return je.translate?je.translate(e):e},before:function(e){var t=this.parent();return t&&t.insert(e,t.items().indexOf(this),!0),this},after:function(e){var t=this.parent();return t&&t.insert(e,t.items().indexOf(this)),this},remove:function(){var t,e,n=this,i=n.getEl(),r=n.parent();if(n.items){var o=n.items().toArray();for(e=o.length;e--;)o[e].remove()}r&&r.items&&(t=[],r.items().each(function(e){e!==n&&t.push(e)}),r.items().set(t),r._lastRect=null),n._eventsRoot&&n._eventsRoot===n&&ye(i).off();var s=n.getRoot().controlIdLookup;return s&&delete s[n._id],i&&i.parentNode&&i.parentNode.removeChild(i),n.state.set("rendered",!1),n.state.destroy(),n.fire("remove"),n},renderBefore:function(e){return ye(e).before(this.renderHtml()),this.postRender(),this},renderTo:function(e){return ye(e||this.getContainerElm()).append(this.renderHtml()),this.postRender(),this},preRender:function(){},render:function(){},renderHtml:function(){return'
    '},postRender:function(){var e,t,n,i,r,o=this,s=o.settings;for(i in o.$el=ye(o.getEl()),o.state.set("rendered",!0),s)0===i.indexOf("on")&&o.on(i.substr(2),s[i]);if(o._eventsRoot){for(n=o.parent();!r&&n;n=n.parent())r=n._eventsRoot;if(r)for(i in r._nativeEvents)o._nativeEvents[i]=!0}it(o),s.style&&(e=o.getEl())&&(e.setAttribute("style",s.style),e.style.cssText=s.style),o.settings.border&&(t=o.borderBox,o.$el.css({"border-top-width":t.top,"border-right-width":t.right,"border-bottom-width":t.bottom,"border-left-width":t.left}));var a=o.getRoot();for(var l in a.controlIdLookup||(a.controlIdLookup={}),(a.controlIdLookup[o._id]=o)._aria)o.aria(l,o._aria[l]);!1===o.state.get("visible")&&(o.getEl().style.display="none"),o.bindStates(),o.state.on("change:visible",function(e){var t,n=e.value;o.state.get("rendered")&&(o.getEl().style.display=!1===n?"none":"",o.getEl().getBoundingClientRect()),(t=o.parent())&&(t._lastRect=null),o.fire(n?"show":"hide"),Ke.add(o)}),o.fire("postrender",{},!1)},bindStates:function(){},scrollIntoView:function(e){var t,n,i,r,o,s,a=this.getEl(),l=a.parentNode,u=function(e,t){var n,i,r=e;for(n=i=0;r&&r!==t&&r.nodeType;)n+=r.offsetLeft||0,i+=r.offsetTop||0,r=r.offsetParent;return{x:n,y:i}}(a,l);return t=u.x,n=u.y,i=a.offsetWidth,r=a.offsetHeight,o=l.clientWidth,s=l.clientHeight,"end"===e?(t-=o-i,n-=s-r):"center"===e&&(t-=o/2-i/2,n-=s/2-r/2),l.scrollLeft=t,l.scrollTop=n,this},getRoot:function(){for(var e,t=this,n=[];t;){if(t.rootControl){e=t.rootControl;break}n.push(t),t=(e=t).parent()}e||(e=this);for(var i=n.length;i--;)n[i].rootControl=e;return e},reflow:function(){Ke.remove(this);var e=this.parent();return e&&e._layout&&!e._layout.isNative()&&e.reflow(),this}};function nt(n){return n._eventDispatcher||(n._eventDispatcher=new Te({scope:n,toggleEvent:function(e,t){t&&Te.isNative(e)&&(n._nativeEvents||(n._nativeEvents={}),n._nativeEvents[e]=!0,n.state.get("rendered")&&it(n))}})),n._eventDispatcher}function it(a){var e,t,n,l,i,r;function o(e){var t=a.getParentCtrl(e.target);t&&t.fire(e.type,e)}function s(){var e=l._lastHoverCtrl;e&&(e.fire("mouseleave",{target:e.getEl()}),e.parents().each(function(e){e.fire("mouseleave",{target:e.getEl()})}),l._lastHoverCtrl=null)}function u(e){var t,n,i,r=a.getParentCtrl(e.target),o=l._lastHoverCtrl,s=0;if(r!==o){if((n=(l._lastHoverCtrl=r).parents().toArray().reverse()).push(r),o){for((i=o.parents().toArray().reverse()).push(o),s=0;s=t.length&&(e=0),t[e]&&t[e].focus(),e}function h(e,t){var n=-1,i=d();t=t||c(i.getEl());for(var r=0;r
    '+(e.settings.html||"")+t.renderHtml(e)+"
    "},postRender:function(){var e,t=this;return t.items().exec("postRender"),t._super(),t._layout.postRender(t),t.state.set("rendered",!0),t.settings.style&&t.$el.css(t.settings.style),t.settings.border&&(e=t.borderBox,t.$el.css({"border-top-width":e.top,"border-right-width":e.right,"border-bottom-width":e.bottom,"border-left-width":e.left})),t.parent()||(t.keyboardNav=st({root:t})),t},initLayoutRect:function(){var e=this._super();return this._layout.recalc(this),e},recalc:function(){var e=this,t=e._layoutRect,n=e._lastRect;if(!n||n.w!==t.w||n.h!==t.h)return 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 e;if(Ke.remove(this),this.visible()){for(rt.repaintControls=[],rt.repaintControls.map={},this.recalc(),e=rt.repaintControls.length;e--;)rt.repaintControls[e].repaint();"flow"!==this.settings.layout&&"stack"!==this.settings.layout&&this.repaint(),rt.repaintControls=[]}return this}});function ut(e){var t,n;if(e.changedTouches)for(t="screenX screenY pageX pageY clientX clientY".split(" "),n=0;n
    ").css({position:"absolute",top:0,left:0,width:f.width,height:f.height,zIndex:2147483647,opacity:1e-4,cursor:d}).appendTo(x.body),ye(x).on("mousemove touchmove",v).on("mouseup touchend",p),h.start(e)},v=function(e){if(ut(e),e.button!==g)return p(e);e.deltaX=e.screenX-b,e.deltaY=e.screenY-y,e.preventDefault(),h.drag(e)},p=function(e){ut(e),ye(x).off("mousemove touchmove",v).off("mouseup touchend",p),m.remove(),h.stop&&h.stop(e)},this.destroy=function(){ye(w).off()},ye(w).on("mousedown touchstart",t)}var dt,ft,ht,mt,gt={init:function(){this.on("repaint",this.renderScroll)},renderScroll:function(){var p=this,v=2;function n(){var m,g,e;function t(e,t,n,i,r,o){var s,a,l,u,c,d,f,h;if(a=p.getEl("scroll"+e)){if(f=t.toLowerCase(),h=n.toLowerCase(),ye(p.getEl("absend")).css(f,p.layoutRect()[i]-1),!r)return void ye(a).css("display","none");ye(a).css("display","block"),s=p.getEl("body"),l=p.getEl("scroll"+e+"t"),u=s["client"+n]-2*v,c=(u-=m&&g?a["client"+o]:0)/s["scroll"+n],(d={})[f]=s["offset"+t]+v,d[h]=u,ye(a).css(d),(d={})[f]=s["scroll"+t]*c,d[h]=u*c,ye(l).css(d)}}e=p.getEl("body"),m=e.scrollWidth>e.clientWidth,g=e.scrollHeight>e.clientHeight,t("h","Left","Width","contentW",m,"Height"),t("v","Top","Height","contentH",g,"Width")}p.settings.autoScroll&&(p._hasScroll||(p._hasScroll=!0,function(){function e(s,a,l,u,c){var d,e=p._id+"-scroll"+s,t=p.classPrefix;ye(p.getEl()).append('
    '),p.draghelper=new ct(e+"t",{start:function(){d=p.getEl("body")["scroll"+a],ye("#"+e).addClass(t+"active")},drag:function(e){var t,n,i,r,o=p.layoutRect();n=o.contentW>o.innerW,i=o.contentH>o.innerH,r=p.getEl("body")["client"+l]-2*v,t=(r-=n&&i?p.getEl("scroll"+s)["client"+c]:0)/p.getEl("body")["scroll"+l],p.getEl("body")["scroll"+a]=d+e["delta"+u]/t},stop:function(){ye("#"+e).removeClass(t+"active")}})}p.classes.add("scroll"),e("v","Top","Height","Y","Width"),e("h","Left","Width","X","Height")}(),p.on("wheel",function(e){var t=p.getEl("body");t.scrollLeft+=10*(e.deltaX||0),t.scrollTop+=10*e.deltaY,n()}),ye(p.getEl("body")).on("scroll",n)),n())}},pt=lt.extend({Defaults:{layout:"fit",containerCls:"panel"},Mixins:[gt],renderHtml:function(){var e=this,t=e._layout,n=e.settings.html;return e.preRender(),t.preRender(e),void 0===n?n='
    '+t.renderHtml(e)+"
    ":("function"==typeof n&&(n=n.call(e)),e._hasBody=!1),'
    '+(e._preBodyHtml||"")+n+"
    "}}),vt={resizeToContent:function(){this._layoutRect.autoResize=!0,this._lastRect=null,this.reflow()},resizeTo:function(e,t){if(e<=1||t<=1){var n=we.getWindowSize();e=e<=1?e*n.w:e,t=t<=1?t*n.h:t}return this._layoutRect.autoResize=!1,this.layoutRect({minW:e,minH:t,w:e,h:t}).reflow()},resizeBy:function(e,t){var n=this.layoutRect();return this.resizeTo(n.w+e,n.h+t)}},bt=[],yt=[];function xt(e,t){for(;e;){if(e===t)return!0;e=e.parent()}}function wt(){dt||(dt=function(e){2!==e.button&&function(e){for(var t=bt.length;t--;){var n=bt[t],i=n.getParentCtrl(e.target);if(n.settings.autohide){if(i&&(xt(i,n)||n.parent()===i))continue;(e=n.fire("autohide",{target:e.target})).isDefaultPrevented()||n.hide()}}}(e)},ye(_.document).on("click touchstart",dt))}function _t(r){var e=we.getViewPort().y;function t(e,t){for(var n,i=0;ie&&(r.fixed(!1).layoutRect({y:r._autoFixY}).repaint(),t(!1,r._autoFixY-e)):(r._autoFixY=r.layoutRect().y,r._autoFixY
    ').appendTo(i.getContainerElm())),u.setTimeout(function(){t.addClass(n+"in"),ye(i.getEl()).addClass(n+"in")}),mt=!0),Rt(!0,i)}}),i.on("show",function(){i.parents().each(function(e){if(e.state.get("fixed"))return i.fixed(!0),!1})}),e.popover&&(i._preBodyHtml='
    ',i.classes.add("popover").add("bottom").add(i.isRtl()?"end":"start")),i.aria("label",e.ariaLabel),i.aria("labelledby",i._id),i.aria("describedby",i.describedBy||i._id+"-none")},fixed:function(e){var t=this;if(t.state.get("fixed")!==e){if(t.state.get("rendered")){var n=we.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,t=this._super();for(e=bt.length;e--&&bt[e]!==this;);return-1===e&&bt.push(this),t},hide:function(){return Et(this),Rt(!1,this),this._super()},hideAll:function(){Ct.hideAll()},close:function(){return this.fire("close").isDefaultPrevented()||(this.remove(),Rt(!1,this)),this},remove:function(){Et(this),this._super()},postRender:function(){return this.settings.bodyRole&&this.getEl("body").setAttribute("role",this.settings.bodyRole),this._super()}});function Et(e){var t;for(t=bt.length;t--;)bt[t]===e&&bt.splice(t,1);for(t=yt.length;t--;)yt[t]===e&&yt.splice(t,1)}Ct.hideAll=function(){for(var e=bt.length;e--;){var t=bt[e];t&&t.settings.autohide&&(t.hide(),bt.splice(e,1))}};var kt=function(s,n,e){var a,i,l=p.DOM,t=s.getParam("fixed_toolbar_container");t&&(i=l.select(t)[0]);var r=function(){if(a&&a.moveRel&&a.visible()&&!a._fixed){var e=s.selection.getScrollContainer(),t=s.getBody(),n=0,i=0;if(e){var r=l.getPos(t),o=l.getPos(e);n=Math.max(0,o.x-r.x),i=Math.max(0,o.y-r.y)}a.fixed(!1).moveRel(t,s.rtl?["tr-br","br-tr"]:["tl-bl","bl-tl","tr-br"]).moveBy(n,i)}},o=function(){a&&(a.show(),r(),l.addClass(s.getBody(),"mce-edit-focus"))},u=function(){a&&(a.hide(),Ct.hideAll(),l.removeClass(s.getBody(),"mce-edit-focus"))},c=function(){var e,t;a?a.visible()||o():(a=n.panel=v.create({type:i?"panel":"floatpanel",role:"application",classes:"tinymce tinymce-inline",layout:"flex",direction:"column",align:"stretch",autohide:!1,autofix:!0,fixed:(e=i,t=s,!(!e||t.settings.ui_container)),border:1,items:[!1===d(s)?null:{type:"menubar",border:"0 0 1 0",items:re(s)},A(s,f(s))]}),W.setUiContainer(s,a),x(s),i?a.renderTo(i).reflow():a.renderTo().reflow(),R(s,a),o(),F(s),s.on("nodeChange",r),s.on("ResizeWindow",r),s.on("activate",o),s.on("deactivate",u),s.nodeChanged())};return s.settings.content_editable=!0,s.on("focus",function(){!1===m(s)&&e.skinUiCss?l.styleSheetLoader.load(e.skinUiCss,c,c):c()}),s.on("blur hide",u),s.on("remove",function(){a&&(a.remove(),a=null)}),!1===m(s)&&e.skinUiCss?l.styleSheetLoader.load(e.skinUiCss,ge(s)):ge(s)(),{}};function Ht(i,r){var o,s,a=this,l=rt.classPrefix;a.show=function(e,t){function n(){o&&(ye(i).append('
    '),t&&t())}return a.hide(),o=!0,e?s=u.setTimeout(n,e):n(),a},a.hide=function(){var e=i.lastChild;return u.clearTimeout(s),e&&-1!==e.className.indexOf("throbber")&&e.parentNode.removeChild(e),o=!1,a}}var St=function(e,t){var n;e.on("ProgressState",function(e){n=n||new Ht(t.panel.getEl("body")),e.state?n.show(e.time):n.hide()})},Tt=function(e,t,n){var i=function(e){var t=e.settings,n=t.skin,i=t.skin_url;if(!1!==n){var r=n||"lightgray";i=i?e.documentBaseURI.toAbsolute(i):l.baseURL+"/skins/"+r}return i}(e);return i&&(n.skinUiCss=i+"/skin.min.css",e.contentCSS.push(i+"/content"+(e.inline?".inline":"")+".min.css")),St(e,t),e.getParam("inline",!1,"boolean")?kt(e,t,n):be(e,t,n)},Mt=rt.extend({Mixins:[He],Defaults:{classes:"widget tooltip tooltip-n"},renderHtml:function(){var e=this,t=e.classPrefix;return'"},bindStates:function(){var t=this;return t.state.on("change:text",function(e){t.getEl().lastChild.innerHTML=t.encode(e.value)}),t._super()},repaint:function(){var e,t;e=this.getEl().style,t=this._layoutRect,e.left=t.x+"px",e.top=t.y+"px",e.zIndex=131070}}),Nt=rt.extend({init:function(i){var r=this;r._super(i),i=r.settings,r.canFocus=!0,i.tooltip&&!1!==Nt.tooltips&&(r.on("mouseenter",function(e){var t=r.tooltip().moveTo(-65535);if(e.control===r){var n=t.text(i.tooltip).show().testMoveRel(r.getEl(),["bc-tc","bc-tl","bc-tr"]);t.classes.toggle("tooltip-n","bc-tc"===n),t.classes.toggle("tooltip-nw","bc-tl"===n),t.classes.toggle("tooltip-ne","bc-tr"===n),t.moveRel(r.getEl(),n)}else t.hide()}),r.on("mouseleave mousedown click",function(){r.tooltip().remove(),r._tooltip=null})),r.aria("label",i.ariaLabel||i.tooltip)},tooltip:function(){return this._tooltip||(this._tooltip=new Mt({type:"tooltip"}),W.inheritUiContainer(this,this._tooltip),this._tooltip.renderTo()),this._tooltip},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(){var t=this;function n(e){t.aria("disabled",e),t.classes.toggle("disabled",e)}function i(e){t.aria("pressed",e),t.classes.toggle("active",e)}return t.state.on("change:disabled",function(e){n(e.value)}),t.state.on("change:active",function(e){i(e.value)}),t.state.get("disabled")&&n(!0),t.state.get("active")&&i(!0),t._super()},remove:function(){this._super(),this._tooltip&&(this._tooltip.remove(),this._tooltip=null)}}),Pt=Nt.extend({Defaults:{value:0},init:function(e){this._super(e),this.classes.add("progress"),this.settings.filter||(this.settings.filter=function(e){return Math.round(e)})},renderHtml:function(){var e=this._id,t=this.classPrefix;return'
    0%
    '},postRender:function(){return this._super(),this.value(this.settings.value),this},bindStates:function(){var t=this;function n(e){e=t.settings.filter(e),t.getEl().lastChild.innerHTML=e+"%",t.getEl().firstChild.firstChild.style.width=e+"%"}return t.state.on("change:value",function(e){n(e.value)}),n(t.state.get("value")),t._super()}}),Wt=function(e,t){e.getEl().lastChild.textContent=t+(e.progressBar?" "+e.progressBar.value()+"%":"")},Dt=rt.extend({Mixins:[He],Defaults:{classes:"widget notification"},init:function(e){var t=this;t._super(e),t.maxWidth=e.maxWidth,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||0
    '),e=' style="max-width: '+t.maxWidth+"px;"+(t.color?"background-color: "+t.color+';"':'"'),t.closeButton&&(r=''),t.progressBar&&(o=t.progressBar.renderHtml()),''},postRender:function(){var e=this;return u.setTimeout(function(){e.$el.addClass(e.classPrefix+"in"),Wt(e,e.state.get("text"))},100),e._super()},bindStates:function(){var t=this;return t.state.on("change:text",function(e){t.getEl().firstChild.innerHTML=e.value,Wt(t,e.value)}),t.progressBar&&(t.progressBar.bindStates(),t.progressBar.state.on("change:value",function(e){Wt(t,t.state.get("text"))})),t._super()},close:function(){return this.fire("close").isDefaultPrevented()||this.remove(),this},repaint:function(){var e,t;e=this.getEl().style,t=this._layoutRect,e.left=t.x+"px",e.top=t.y+"px",e.zIndex=65534}});function Ot(o){var s=function(e){return e.inline?e.getElement():e.getContentAreaContainer()};return{open:function(e,t){var n,i=w.extend(e,{maxWidth:(n=s(o),we.getSize(n).width)}),r=new Dt(i);return 0<(r.args=i).timeout&&(r.timer=setTimeout(function(){r.close(),t()},i.timeout)),r.on("close",function(){t()}),r.renderTo(),r},close:function(e){e.close()},reposition:function(e){K(e,function(e){e.moveTo(0,0)}),function(n){if(0e.w&&(n=e.x-Math.max(0,t/2),r.layoutRect({w:t,x:n}),i=!0),o&&(o.layoutRect({w:r.layoutRect().innerW}).recalc(),(t=o.layoutRect().minW+e.deltaW)>e.w&&(n=e.x-Math.max(0,t-e.w),r.layoutRect({w:t,x:n}),i=!0)),i&&r.recalc()},initLayoutRect:function(){var e,t=this,n=t._super(),i=0;if(t.settings.title&&!t._fullscreen){e=t.getEl("head");var r=we.getSize(e);n.headerW=r.width,n.headerH=r.height,i+=n.headerH}t.statusbar&&(i+=t.statusbar.layoutRect().h),n.deltaH+=i,n.minH+=i,n.h+=i;var o=we.getWindowSize();return n.x=t.settings.x||Math.max(0,o.w/2-n.w/2),n.y=t.settings.y||Math.max(0,o.h/2-n.h/2),n},renderHtml:function(){var e=this,t=e._layout,n=e._id,i=e.classPrefix,r=e.settings,o="",s="",a=r.html;return e.preRender(),t.preRender(e),r.title&&(o='
    '+e.encode(r.title)+'
    '),r.url&&(a=''),void 0===a&&(a=t.renderHtml(e)),e.statusbar&&(s=e.statusbar.renderHtml()),'
    '+o+'
    '+a+"
    "+s+"
    "},fullscreen:function(e){var n,t,i=this,r=_.document.documentElement,o=i.classPrefix;if(e!==i._fullscreen)if(ye(_.window).on("resize",function(){var e;if(i._fullscreen)if(n)i._timer||(i._timer=u.setTimeout(function(){var e=we.getWindowSize();i.moveTo(0,0).resizeTo(e.w,e.h),i._timer=0},50));else{e=(new Date).getTime();var t=we.getWindowSize();i.moveTo(0,0).resizeTo(t.w,t.h),50<(new Date).getTime()-e&&(n=!0)}}),t=i.layoutRect(),i._fullscreen=e){i._initial={x:t.x,y:t.y,w:t.w,h:t.h},i.borderBox=Me("0"),i.getEl("head").style.display="none",t.deltaH-=t.headerH+2,ye([r,_.document.body]).addClass(o+"fullscreen"),i.classes.add("fullscreen");var s=we.getWindowSize();i.moveTo(0,0).resizeTo(s.w,s.h)}else i.borderBox=Me(i.settings.border),i.getEl("head").style.display="",t.deltaH+=t.headerH,ye([r,_.document.body]).removeClass(o+"fullscreen"),i.classes.remove("fullscreen"),i.moveTo(i._initial.x,i._initial.y).resizeTo(i._initial.w,i._initial.h);return i.reflow()},postRender:function(){var t,n=this;setTimeout(function(){n.classes.add("in"),n.fire("open")},0),n._super(),n.statusbar&&n.statusbar.postRender(),n.focus(),this.dragHelper=new ct(n._id+"-dragh",{start:function(){t={x:n.layoutRect().x,y:n.layoutRect().y}},drag:function(e){n.moveTo(t.x+e.deltaX,t.y+e.deltaY)}}),n.on("submit",function(e){e.isDefaultPrevented()||n.close()}),At.push(n),Lt(!0)},submit:function(){return this.fire("submit",{data:this.toJSON()})},remove:function(){var e,t=this;for(t.dragHelper.destroy(),t._super(),t.statusbar&&this.statusbar.remove(),zt(t.classPrefix,!1),e=At.length;e--;)At[e]===t&&At.splice(e,1);Lt(0
    '+this._super(e)}}),jt=Nt.extend({Defaults:{classes:"widget btn",role:"button"},init:function(e){var t,n=this;n._super(e),e=n.settings,t=n.settings.size,n.on("click mousedown",function(e){e.preventDefault()}),n.on("touchstart",function(e){n.fire("click",e),e.preventDefault()}),e.subtype&&n.classes.add(e.subtype),t&&n.classes.add("btn-"+t),e.icon&&n.icon(e.icon)},icon:function(e){return arguments.length?(this.state.set("icon",e),this):this.state.get("icon")},repaint:function(){var e,t=this.getEl().firstChild;t&&((e=t.style).width=e.height="100%"),this._super()},renderHtml:function(){var e,t,n=this,i=n._id,r=n.classPrefix,o=n.state.get("icon"),s=n.state.get("text"),a="",l=n.settings;return(e=l.image)?(o="none","string"!=typeof e&&(e=_.window.getSelection?e[0]:e[1]),e=" style=\"background-image: url('"+e+"')\""):e="",s&&(n.classes.add("btn-has-text"),a=''+n.encode(s)+""),o=o?r+"ico "+r+"i-"+o:"",t="boolean"==typeof l.active?' aria-pressed="'+l.active+'"':"",'
    "},bindStates:function(){var o=this,n=o.$,i=o.classPrefix+"txt";function s(e){var t=n("span."+i,o.getEl());e?(t[0]||(n("button:first",o.getEl()).append(''),t=n("span."+i,o.getEl())),t.html(o.encode(e))):t.remove(),o.classes.toggle("btn-has-text",!!e)}return o.state.on("change:text",function(e){s(e.value)}),o.state.on("change:icon",function(e){var t=e.value,n=o.classPrefix;t=(o.settings.icon=t)?n+"ico "+n+"i-"+o.settings.icon:"";var i=o.getEl().firstChild,r=i.getElementsByTagName("i")[0];t?(r&&r===i.firstChild||(r=_.document.createElement("i"),i.insertBefore(r,i.firstChild)),r.className=t):r&&i.removeChild(r),s(o.state.get("text"))}),o._super()}}),Jt=jt.extend({init:function(e){e=w.extend({text:"Browse...",multiple:!1,accept:null},e),this._super(e),this.classes.add("browsebutton"),e.multiple&&this.classes.add("multiple")},postRender:function(){var n=this,t=we.create("input",{type:"file",id:n._id+"-browse",accept:n.settings.accept});n._super(),ye(t).on("change",function(e){var t=e.target.files;n.value=function(){return t.length?n.settings.multiple?t:t[0]:null},e.preventDefault(),t.length&&n.fire("change",e)}),ye(t).on("click",function(e){e.stopPropagation()}),ye(n.getEl("button")).on("click touchstart",function(e){e.stopPropagation(),t.click(),e.preventDefault()}),n.getEl().appendChild(t)},remove:function(){ye(this.getEl("button")).off(),ye(this.getEl("input")).off(),this._super()}}),Gt=lt.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),'
    '+(e.settings.html||"")+t.renderHtml(e)+"
    "}}),Kt=Nt.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'
    '+e.encode(e.state.get("text"))+"
    "},bindStates:function(){var o=this;function t(e){o.classes.toggle("checked",e),o.aria("checked",e)}return o.state.on("change:text",function(e){o.getEl("al").firstChild.data=o.translate(e.value)}),o.state.on("change:checked change:value",function(e){o.fire("change"),t(e.value)}),o.state.on("change:icon",function(e){var t=e.value,n=o.classPrefix;if(void 0===t)return o.settings.icon;t=(o.settings.icon=t)?n+"ico "+n+"i-"+o.settings.icon:"";var i=o.getEl().firstChild,r=i.getElementsByTagName("i")[0];t?(r&&r===i.firstChild||(r=_.document.createElement("i"),i.insertBefore(r,i.firstChild)),r.className=t):r&&i.removeChild(r)}),o.state.get("checked")&&t(!0),o._super()}}),Zt=tinymce.util.Tools.resolve("tinymce.util.VK"),Qt=Nt.extend({init:function(i){var r=this;r._super(i),i=r.settings,r.classes.add("combobox"),r.subinput=!0,r.ariaTarget="inp",i.menu=i.menu||i.values,i.menu&&(i.icon="caret"),r.on("click",function(e){var t=e.target,n=r.getEl();if(ye.contains(n,t)||t===n)for(;t&&t!==n;)t.id&&-1!==t.id.indexOf("-open")&&(r.fire("action"),i.menu&&(r.showMenu(),e.aria&&r.menu.items()[0].focus())),t=t.parentNode}),r.on("keydown",function(e){var t;13===e.keyCode&&"INPUT"===e.target.nodeName&&(e.preventDefault(),r.parents().reverse().each(function(e){if(e.toJSON)return t=e,!1}),r.fire("submit",{data:t.toJSON()}))}),r.on("keyup",function(e){if("INPUT"===e.target.nodeName){var t=r.state.get("value"),n=e.target.value;n!==t&&(r.state.set("value",n),r.fire("autocomplete",e))}}),r.on("mouseover",function(e){var t=r.tooltip().moveTo(-65535);if(r.statusLevel()&&-1!==e.target.className.indexOf(r.classPrefix+"status")){var n=r.statusMessage()||"Ok",i=t.text(n).show().testMoveRel(e.target,["bc-tc","bc-tl","bc-tr"]);t.classes.toggle("tooltip-n","bc-tc"===i),t.classes.toggle("tooltip-nw","bc-tl"===i),t.classes.toggle("tooltip-ne","bc-tr"===i),t.moveRel(e.target,i)}})},statusLevel:function(e){return 0
    ',i.disabled()&&(u+=' disabled="disabled"'),(e=o.icon)&&"caret"!==e&&(e=s+"ico "+s+"i-"+o.icon),t=i.state.get("text"),(e||t)&&(l='
    ",i.classes.add("has-open")),'
    '+n+l+"
    "},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"))},showAutoComplete:function(e,i){var r=this;if(0!==e.length){r.menu?r.menu.items().remove():r.menu=v.create({type:"menu",classes:"combobox-menu",layout:"flow"}).parent(r).renderTo(),w.each(e,function(e){var t,n;r.menu.add({text:e.title,url:e.previewUrl,match:i,classes:"menu-item-ellipsis",onclick:(t=e.value,n=e.title,function(){r.fire("selectitem",{title:n,value:t})})})}),r.menu.renderNew(),r.hideMenu(),r.menu.on("cancel",function(e){e.control.parent()===r.menu&&(e.stopPropagation(),r.focus(),r.hideMenu())}),r.menu.on("select",function(){r.focus()});var t=r.layoutRect().w;r.menu.layoutRect({w:t,minW:0,maxW:t}),r.menu.repaint(),r.menu.reflow(),r.menu.show(),r.menu.moveRel(r.getEl(),r.isRtl()?["br-tr","tr-br"]:["bl-tl","tl-bl"])}else r.hideMenu()},hideMenu:function(){this.menu&&this.menu.hide()},bindStates:function(){var r=this;r.state.on("change:value",function(e){r.getEl("inp").value!==e.value&&(r.getEl("inp").value=e.value)}),r.state.on("change:disabled",function(e){r.getEl("inp").disabled=e.value}),r.state.on("change:statusLevel",function(e){var t=r.getEl("status"),n=r.classPrefix,i=e.value;we.css(t,"display","none"===i?"none":""),we.toggleClass(t,n+"i-checkmark","ok"===i),we.toggleClass(t,n+"i-warning","warn"===i),we.toggleClass(t,n+"i-error","error"===i),r.classes.toggle("has-status","none"!==i),r.repaint()}),we.on(r.getEl("status"),"mouseleave",function(){r.tooltip().hide()}),r.on("cancel",function(e){r.menu&&r.menu.visible()&&(e.stopPropagation(),r.hideMenu())});var n=function(e,t){t&&0'+e.encode(i)+""),'
    '},postRender:function(){var t=this,n=t.settings.onclick;return t.on("click",function(e){e.aria&&"down"===e.aria.key||e.control!==t||nn.getParent(e.target,"."+t.classPrefix+"open")||(e.stopImmediatePropagation(),n.call(t,e))}),delete t.settings.onclick,t._super()}}),on=tinymce.util.Tools.resolve("tinymce.util.Color"),sn=Nt.extend({Defaults:{classes:"widget colorpicker"},init:function(e){this._super(e)},postRender:function(){var n,i,r,o,s,a=this,l=a.color();function u(e,t){var n,i,r=we.getPos(e);return n=t.pageX-r.x,i=t.pageY-r.y,{x:n=Math.max(0,Math.min(n/e.clientWidth,1)),y:i=Math.max(0,Math.min(i/e.clientHeight,1))}}function c(e,t){var n=(360-e.h)/360;we.css(r,{top:100*n+"%"}),t||we.css(s,{left:e.s+"%",top:100-e.v+"%"}),o.style.background=on({s:100,v:100,h:e.h}).toHex(),a.color().parse({s:e.s,v:e.v,h:e.h})}function e(e){var t;t=u(o,e),n.s=100*t.x,n.v=100*(1-t.y),c(n),a.fire("change")}function t(e){var t;t=u(i,e),(n=l.toHsv()).h=360*(1-t.y),c(n,!0),a.fire("change")}i=a.getEl("h"),r=a.getEl("hp"),o=a.getEl("sv"),s=a.getEl("svp"),a._repaint=function(){c(n=l.toHsv())},a._super(),a._svdraghelper=new ct(a._id+"-sv",{start:e,drag:e}),a._hdraghelper=new ct(a._id+"-h",{start:t,drag:t}),a._repaint()},rgb:function(){return this.color().toRgb()},value:function(e){if(!arguments.length)return this.color().toHex();this.color().parse(e),this._rendered&&this._repaint()},color:function(){return this._color||(this._color=on()),this._color},renderHtml:function(){var e,t=this._id,o=this.classPrefix,s="#ff0000,#ff0080,#ff00ff,#8000ff,#0000ff,#0080ff,#00ffff,#00ff80,#00ff00,#80ff00,#ffff00,#ff8000,#ff0000";return e='
    '+function(){var e,t,n,i,r="";for(n="filter:progid:DXImageTransform.Microsoft.gradient(GradientType=0,startColorstr=",e=0,t=(i=s.split(",")).length-1;e
    ';return r}()+'
    ','
    '+e+"
    "}}),an=Nt.extend({init:function(e){e=w.extend({height:100,text:"Drop an image here",multiple:!1,accept:null},e),this._super(e),this.classes.add("dropzone"),e.multiple&&this.classes.add("multiple")},renderHtml:function(){var e,t,n=this.settings;return e={id:this._id,hidefocus:"1"},t=we.create("div",e,""+this.translate(n.text)+""),n.height&&we.css(t,"height",n.height+"px"),n.width&&we.css(t,"width",n.width+"px"),t.className=this.classes,t.outerHTML},postRender:function(){var i=this,e=function(e){e.preventDefault(),i.classes.toggle("dragenter"),i.getEl().className=i.classes};i._super(),i.$el.on("dragover",function(e){e.preventDefault()}),i.$el.on("dragenter",e),i.$el.on("dragleave",e),i.$el.on("drop",function(e){if(e.preventDefault(),!i.state.get("disabled")){var t=function(e){var t=i.settings.accept;if("string"!=typeof t)return e;var n=new RegExp("("+t.split(/\s*,\s*/).join("|")+")$","i");return w.grep(e,function(e){return n.test(e.name)})}(e.dataTransfer.files);i.value=function(){return t.length?i.settings.multiple?t:t[0]:null},t.length&&i.fire("change",e)}})},remove:function(){this.$el.off(),this._super()}}),ln=Nt.extend({init:function(e){var n=this;e.delimiter||(e.delimiter="\xbb"),n._super(e),n.classes.add("path"),n.canFocus=!0,n.on("click",function(e){var t;(t=e.target.getAttribute("data-index"))&&n.fire("select",{value:n.row()[t],index:t})}),n.row(n.settings.row)},focus:function(){return this.getEl().firstChild.focus(),this},row:function(e){return arguments.length?(this.state.set("row",e),this):this.state.get("row")},renderHtml:function(){return'
    '+this._getDataPathHtml(this.state.get("row"))+"
    "},bindStates:function(){var t=this;return t.state.on("change:row",function(e){t.innerHtml(t._getDataPathHtml(e.value))}),t._super()},_getDataPathHtml:function(e){var t,n,i=e||[],r="",o=this.classPrefix;for(t=0,n=i.length;t
    ":"")+'
    '+i[t].name+"
    ";return r||(r='
    \xa0
    '),r}}),un=ln.extend({postRender:function(){var o=this,s=o.settings.editor;function a(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}return!1!==s.settings.elementpath&&(o.on("select",function(e){s.focus(),s.selection.select(this.row()[e.index].element),s.nodeChanged()}),s.on("nodeChange",function(e){for(var t=[],n=e.parents,i=n.length;i--;)if(1===n[i].nodeType&&!a(n[i])){var r=s.fire("ResolveName",{name:n[i].nodeName.toLowerCase(),target:n[i]});if(r.isDefaultPrevented()||t.push({name:r.name,element:n[i]}),r.isPropagationStopped())break}o.row(t)})),o._super()}}),cn=lt.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),'
    '+(e.settings.title?'
    '+e.settings.title+"
    ":"")+'
    '+(e.settings.html||"")+t.renderHtml(e)+"
    "}}),dn=lt.extend({Defaults:{containerCls:"form",layout:"flex",direction:"column",align:"stretch",flex:1,padding:15,labelGap:30,spacing:10,callbacks:{submit:function(){this.submit()}}},preRender:function(){var i=this,e=i.items();i.settings.formItemDefaults||(i.settings.formItemDefaults={layout:"flex",autoResize:"overflow",defaults:{flex:1}}),e.each(function(e){var t,n=e.settings.label;n&&((t=new cn(w.extend({items:{type:"label",id:e._id+"-l",text:n,flex:0,forId:e._id,disabled:e.disabled()}},i.settings.formItemDefaults))).type="formitem",e.aria("labelledby",e._id+"-l"),"undefined"==typeof e.settings.flex&&(e.settings.flex=1),i.replace(e,t),t.add(e))})},submit:function(){return this.fire("submit",{data:this.toJSON()})},postRender:function(){this._super(),this.fromJSON(this.settings.data)},bindStates:function(){var n=this;function e(){var e,t,i=0,r=[];if(!1!==n.settings.labelGapCalc)for(("children"===n.settings.labelGapCalc?n.find("formitem"):n.items()).filter("formitem").each(function(e){var t=e.items()[0],n=t.getEl().clientWidth;i=i'+(e.settings.title?''+e.settings.title+"":"")+'
    '+(e.settings.html||"")+t.renderHtml(e)+"
    "}}),hn=0,mn=function(e){if(null===e||e===undefined)throw new Error("Node cannot be null or undefined");return{dom:k(e)}},gn={fromHtml:function(e,t){var n=(t||_.document).createElement("div");if(n.innerHTML=e,!n.hasChildNodes()||1",l)),null!==u&&a.push(di("",u)),a))],o=function(e,t){return 0===e.length||0===t.length?e.concat(t):e.concat(c,t)},s=[],K(n,function(e){s=o(s,e)}),s):mi(e,d(ui))},mi=function(e,t){var n=e.toLowerCase(),i=w.grep(t,function(e){return-1!==e.title.toLowerCase().indexOf(n)});return 1===i.length&&i[0].title===e?[]:i},gi=function(r,i,o,s){var t=function(e){var t=li(o),n=hi(e,t,s,i);r.showAutoComplete(n,e)};r.on("autocomplete",function(){t(r.value())}),r.on("selectitem",function(e){var t=e.value;r.value(t.url);var n,i=(n=t.title).raw?n.raw:n;"image"===s?r.fire("change",{meta:{alt:i,attach:t.attach}}):r.fire("change",{meta:{text:i,attach:t.attach}}),r.focus()}),r.on("click",function(e){0===r.value().length&&"INPUT"===e.target.nodeName&&t("")}),r.on("PostRender",function(){r.getRoot().on("submit",function(e){var t,n,i;e.isDefaultPrevented()||(t=r.value(),i=ui[n=s],/^https?/.test(t)&&(i?j(i,t).isNone()&&(ui[n]=i.slice(0,5).concat(t)):ui[n]=[t]))})})},pi=function(o,e,n){var i=e.filepicker_validator_handler;i&&o.state.on("change:value",function(e){var t;0!==(t=e.value).length?i({url:t,type:n},function(e){var t,n,i,r=(n=(t=e).status,i=t.message,"valid"===n?{status:"ok",message:i}:"unknown"===n?{status:"warn",message:i}:"invalid"===n?{status:"warn",message:i}:{status:"none",message:""});o.statusMessage(r.message),o.statusLevel(r.status)}):o.statusLevel("none")})},vi=Qt.extend({Statics:{clearHistory:function(){ui={}}},init:function(e){var t,n,i,r=this,o=window.tinymce?window.tinymce.activeEditor:l.activeEditor,s=o.settings,a=e.filetype;e.spellcheck=!1,(i=s.file_picker_types||s.file_browser_callback_types)&&(i=w.makeMap(i,/[, ]/)),i&&!i[a]||(!(n=s.file_picker_callback)||i&&!i[a]?!(n=s.file_browser_callback)||i&&!i[a]||(t=function(){n(r.getEl("inp").id,r.value(),a,window)}):t=function(){var e=r.fire("beforecall").meta;e=w.extend({filetype:a},e),n.call(o,function(e,t){r.value(e).fire("change",{meta:t})},r.value(),e)}),t&&(e.icon="browse",e.onaction=t),r._super(e),r.classes.add("filepicker"),gi(r,s,o.getBody(),a),pi(r,s,a)}}),bi=Xt.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()})}}),yi=Xt.extend({recalc:function(e){var t,n,i,r,o,s,a,l,u,c,d,f,h,m,g,p,v,b,y,x,w,_,R,C,E,k,H,S,T,M,N,P,W,D,O,A,B,L=[],z=Math.max,I=Math.min;for(i=e.items().filter(":visible"),r=e.layoutRect(),o=e.paddingBox,s=e.settings,f=e.isRtl()?s.direction||"row-reversed":s.direction,a=s.align,l=e.isRtl()?s.pack||"end":s.pack,u=s.spacing||0,"row-reversed"!==f&&"column-reverse"!==f||(i=i.set(i.toArray().reverse()),f=f.split("-")[0]),"column"===f?(C="y",_="h",R="minH",E="maxH",H="innerH",k="top",S="deltaH",T="contentH",D="left",P="w",M="x",N="innerW",W="minW",O="right",A="deltaW",B="contentW"):(C="x",_="w",R="minW",E="maxW",H="innerW",k="left",S="deltaW",T="contentW",D="top",P="h",M="y",N="innerH",W="minH",O="bottom",A="deltaH",B="contentH"),d=r[H]-o[k]-o[k],w=c=0,t=0,n=i.length;tT[d]?C:T[d],M[f]=E>M[f]?E:M[f];for(k=o.innerW-p.left-p.right,d=_=0;d'},src:function(e){this.getEl().src=e},html:function(e,t){var n=this,i=this.getEl().contentWindow.document.body;return i?(i.innerHTML=e,t&&t()):u.setTimeout(function(){n.html(e)}),this}}),Zi=Nt.extend({init:function(e){this._super(e),this.classes.add("widget").add("infobox"),this.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'
    '+e.encode(e.state.get("text"))+'
    '},bindStates:function(){var t=this;return t.state.on("change:text",function(e){t.getEl("body").firstChild.data=t.encode(e.value),t.state.get("rendered")&&t.updateLayoutRect()}),t.state.on("change:help",function(e){t.classes.toggle("has-help",e.value),t.state.get("rendered")&&t.updateLayoutRect()}),t._super()}}),Qi=Nt.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,t=e._super();return e.settings.multiline&&(we.getSize(e.getEl()).width>t.maxW&&(t.minW=t.maxW,e.classes.add("multiline")),e.getEl().style.width=t.minW+"px",t.startMinH=t.h=t.minH=Math.min(t.maxH,we.getSize(e.getEl()).height)),t},repaint:function(){return this.settings.multiline||(this.getEl().style.lineHeight=this.layoutRect().h+"px"),this._super()},severity:function(e){this.classes.remove("error"),this.classes.remove("warning"),this.classes.remove("success"),this.classes.add(e)},renderHtml:function(){var e,t,n=this,i=n.settings.forId,r=n.settings.html?n.settings.html:n.encode(n.state.get("text"));return!i&&(t=n.settings.forName)&&(e=n.getRoot().find("#"+t)[0])&&(i=e._id),i?'":''+r+""},bindStates:function(){var t=this;return t.state.on("change:text",function(e){t.innerHtml(t.encode(e.value)),t.state.get("rendered")&&t.updateLayoutRect()}),t._super()}}),er=lt.extend({Defaults:{role:"toolbar",layout:"flow"},init:function(e){this._super(e),this.classes.add("toolbar")},postRender:function(){return this.items().each(function(e){e.classes.add("toolbar-item")}),this._super()}}),tr=er.extend({Defaults:{role:"menubar",containerCls:"menubar",ariaRoot:!0,defaults:{type:"menubutton"}}}),nr=jt.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(e){var t,n=this;if(n.menu&&n.menu.visible()&&!1!==e)return n.hideMenu();n.menu||(t=n.state.get("menu")||[],n.classes.add("opened"),t.length?t={type:"menu",animate:!0,items:t}:(t.type=t.type||"menu",t.animate=!0),t.renderTo?n.menu=t.parent(n).show().renderTo():n.menu=v.create(t).parent(n).renderTo(),n.fire("createmenu"),n.menu.reflow(),n.menu.on("cancel",function(e){e.control.parent()===n.menu&&(e.stopPropagation(),n.focus(),n.hideMenu())}),n.menu.on("select",function(){n.focus()}),n.menu.on("show hide",function(e){"hide"===e.type&&e.control.parent()===n&&n.classes.remove("opened-under"),e.control===n.menu&&(n.activeMenu("show"===e.type),n.classes.toggle("opened","show"===e.type)),n.aria("expanded","show"===e.type)}).fire("show")),n.menu.show(),n.menu.layoutRect({w:n.layoutRect().w}),n.menu.repaint(),n.menu.moveRel(n.getEl(),n.isRtl()?["br-tr","tr-br"]:["bl-tl","tl-bl"]);var i=n.menu.layoutRect(),r=n.$el.offset().top+n.layoutRect().h;r>i.y&&r'+t.encode(o)+""),r=t.settings.icon?i+"ico "+i+"i-"+r:"",t.aria("role",t.parent()instanceof tr?"menuitem":"button"),'
    '},postRender:function(){var r=this;return r.on("click",function(e){e.control===r&&function(e,t){for(;e;){if(t===e)return!0;e=e.parentNode}return!1}(e.target,r.getEl())&&(r.focus(),r.showMenu(!e.aria),e.aria&&r.menu.items().filter(":visible")[0].focus())}),r.on("mouseenter",function(e){var t,n=e.control,i=r.parent();n&&i&&n instanceof nr&&n.parent()===i&&(i.items().filter("MenuButton").each(function(e){e.hideMenu&&e!==n&&(e.menu&&e.menu.visible()&&(t=!0),e.hideMenu())}),t&&(n.focus(),n.showMenu()))}),r._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()}}),ir=Ct.extend({Defaults:{defaultType:"menuitem",border:1,layout:"stack",role:"application",bodyRole:"menu",ariaRoot:!0},init:function(e){if(e.autohide=!0,e.constrainToViewport=!0,"function"==typeof e.items&&(e.itemsFactory=e.items,e.items=[]),e.itemDefaults)for(var t=e.items,n=t.length;n--;)t[n]=w.extend({},e.itemDefaults,t[n]);this._super(e),this.classes.add("menu"),e.animate&&11!==ce.ie&&this.classes.add("animate")},repaint:function(){return this.classes.toggle("menu-align",!0),this._super(),this.getEl().style.height="",this.getEl("body").style.height="",this},cancel:function(){this.hideAll(),this.fire("select")},load:function(){var t,n=this;function i(){n.throbber&&(n.throbber.hide(),n.throbber=null)}n.settings.itemsFactory&&(n.throbber||(n.throbber=new Ht(n.getEl("body"),!0),0===n.items().length?(n.throbber.show(),n.fire("loading")):n.throbber.show(100,function(){n.items().remove(),n.fire("loading")}),n.on("hide close",i)),n.requestTime=t=(new Date).getTime(),n.settings.itemsFactory(function(e){0!==e.length?n.requestTime===t&&(n.getEl().style.width="",n.getEl("body").style.width="",i(),n.items().remove(),n.getEl("body").innerHTML="",n.add(e),n.renderNew(),n.fire("loaded")):n.hide()}))},hideAll:function(){return this.find("menuitem").exec("hideMenu"),this._super()},preRender:function(){var n=this;return n.items().each(function(e){var t=e.settings;if(t.icon||t.image||t.selectable)return!(n._hasIcons=!0)}),n.settings.itemsFactory&&n.on("postrender",function(){n.settings.itemsFactory&&n.load()}),n.on("show hide",function(e){e.control===n&&("show"===e.type?u.setTimeout(function(){n.classes.add("in")},0):n.classes.remove("in"))}),n._super()}}),rr=nr.extend({init:function(i){var t,r,o,n,s=this;s._super(i),i=s.settings,s._values=t=i.values,t&&("undefined"!=typeof i.value&&function e(t){for(var n=0;n").replace(new RegExp(c("]mce~match!"),"g"),"
    ")}return s&&t.parent().classes.add("menu-has-icons"),i.image&&(a=" style=\"background-image: url('"+i.image+"')\""),l&&(l=function(e){var t,n,i={};for(i=ce.mac?{alt:"⌥",ctrl:"⌘",shift:"⇧",meta:"⌘"}:{meta:"Ctrl"},e=e.split("+"),t=0;t
    \xa0":"",o=f(t.encode(d(o))),u=f(t.encode(d(u))),'
    '+e+("-"!==o?''+o+"":"")+(l?'
    '+l+"
    ":"")+(i.menu?'
    ':"")+(u?'":"")+"
    "},postRender:function(){var t=this,n=t.settings,e=n.textStyle;if("function"==typeof e&&(e=e.call(this)),e){var i=t.getEl("text");i&&(i.setAttribute("style",e),t._textStyle=e)}return t.on("mouseenter click",function(e){e.control===t&&(n.menu||"click"!==e.type?(t.showMenu(),e.aria&&t.menu.focus(!0)):(t.fire("select"),u.requestAnimationFrame(function(){t.parent().hideAll()})))}),t._super(),t},hover:function(){return this.parent().items().each(function(e){e.classes.remove("selected")}),this.classes.toggle("selected",!0),this},active:function(e){return function(e,t){var n=e._textStyle;if(n){var i=e.getEl("text");i.setAttribute("style",n),t&&(i.style.color="",i.style.backgroundColor="")}}(this,e),void 0!==e&&this.aria("checked",e),this._super(e)},remove:function(){this._super(),this.menu&&this.menu.remove()}}),sr=Kt.extend({Defaults:{classes:"radio",role:"radio"}}),ar=Nt.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,'
    '},postRender:function(){var t=this;t._super(),t.resizeDragHelper=new ct(this._id,{start:function(){t.fire("ResizeStart")},drag:function(e){"both"!==t.settings.direction&&(e.deltaX=0),t.fire("Resize",e)},stop:function(){t.fire("ResizeEnd")}})},remove:function(){return this.resizeDragHelper&&this.resizeDragHelper.destroy(),this._super()}});function lr(e){var t="";if(e)for(var n=0;n'+e[n]+"";return t}var ur=Nt.extend({Defaults:{classes:"selectbox",role:"selectbox",options:[]},init:function(e){var n=this;n._super(e),n.settings.size&&(n.size=n.settings.size),n.settings.options&&(n._options=n.settings.options),n.on("keydown",function(e){var t;13===e.keyCode&&(e.preventDefault(),n.parents().reverse().each(function(e){if(e.toJSON)return t=e,!1}),n.fire("submit",{data:t.toJSON()}))})},options:function(e){return arguments.length?(this.state.set("options",e),this):this.state.get("options")},renderHtml:function(){var e,t=this,n="";return e=lr(t._options),t.size&&(n=' size = "'+t.size+'"'),'"},bindStates:function(){var t=this;return t.state.on("change:options",function(e){t.getEl().innerHTML=lr(e.value)}),t._super()}});function cr(e,t,n){return e
    '},reset:function(){this.value(this._initValue).repaint()},postRender:function(){var e,t,n,i,r,o,s,a,l,u,c,d,f,h,m=this;e=m._minValue,t=m._maxValue,"v"===m.settings.orientation?(n="screenY",i="top",r="height",o="h"):(n="screenX",i="left",r="width",o="w"),m._super(),function(o,s){function t(e){var t,n,i,r;t=cr(t=(((t=m.value())+(r=n=o))/((i=s)-r)+.05*e)*(i-n)-n,o,s),m.value(t),m.fire("dragstart",{value:t}),m.fire("drag",{value:t}),m.fire("dragend",{value:t})}m.on("keydown",function(e){switch(e.keyCode){case 37:case 38:t(-1);break;case 39:case 40:t(1)}})}(e,t),s=e,a=t,l=m.getEl("handle"),m._dragHelper=new ct(m._id,{handle:m._id+"-handle",start:function(e){u=e[n],c=parseInt(m.getEl("handle").style[i],10),d=(m.layoutRect()[o]||100)-we.getSize(l)[r],m.fire("dragstart",{value:h})},drag:function(e){var t=e[n]-u;f=cr(c+t,0,d),l.style[i]=f+"px",h=s+f/d*(a-s),m.value(h),m.tooltip().text(""+m.settings.previewFilter(h)).show().moveRel(l,"bc tc"),m.fire("drag",{value:h})},stop:function(){m.tooltip().hide(),m.fire("dragend",{value:h})}})},repaint:function(){this._super(),fr(this,this.value())},bindStates:function(){var t=this;return t.state.on("change:value",function(e){fr(t,e.value)}),t._super()}}),mr=Nt.extend({renderHtml:function(){return this.classes.add("spacer"),this.canFocus=!1,'
    '}}),gr=nr.extend({Defaults:{classes:"widget btn splitbtn",role:"button"},repaint:function(){var e,t,n=this.getEl(),i=this.layoutRect();return this._super(),e=n.firstChild,t=n.lastChild,ye(e).css({width:i.w-we.getSize(t).width,height:i.h-2}),ye(t).css({height:i.h-2}),this},activeMenu:function(e){ye(this.getEl().lastChild).toggleClass(this.classPrefix+"active",e)},renderHtml:function(){var e,t,n=this,i=n._id,r=n.classPrefix,o=n.state.get("icon"),s=n.state.get("text"),a=n.settings,l="";return(e=a.image)?(o="none","string"!=typeof e&&(e=_.window.getSelection?e[0]:e[1]),e=" style=\"background-image: url('"+e+"')\""):e="",o=a.icon?r+"ico "+r+"i-"+o:"",s&&(n.classes.add("btn-has-text"),l=''+n.encode(s)+""),t="boolean"==typeof a.active?' aria-pressed="'+a.active+'"':"",'
    '},postRender:function(){var n=this.settings.onclick;return this.on("click",function(e){var t=e.target;if(e.control===this)for(;t;){if(e.aria&&"down"!==e.aria.key||"BUTTON"===t.nodeName&&-1===t.className.indexOf("open"))return e.stopImmediatePropagation(),void(n&&n.call(this,e));t=t.parentNode}}),delete this.settings.onclick,this._super()}}),pr=xi.extend({Defaults:{containerClass:"stack-layout",controlClass:"stack-layout-item",endClass:"break"},isNative:function(){return!0}}),vr=pt.extend({Defaults:{layout:"absolute",defaults:{type:"panel"}},activateTab:function(n){var e;this.activeTabId&&(e=this.getEl(this.activeTabId),ye(e).removeClass(this.classPrefix+"active"),e.setAttribute("aria-selected","false")),this.activeTabId="t"+n,(e=this.getEl("t"+n)).setAttribute("aria-selected","true"),ye(e).addClass(this.classPrefix+"active"),this.items()[n].show().fire("showtab"),this.reflow(),this.items().each(function(e,t){n!==t&&e.hide()})},renderHtml:function(){var i=this,e=i._layout,r="",o=i.classPrefix;return i.preRender(),e.preRender(i),i.items().each(function(e,t){var n=i._id+"-t"+t;e.aria("role","tabpanel"),e.aria("labelledby",n),r+='"}),'
    '+r+'
    '+e.renderHtml(i)+"
    "},postRender:function(){var i=this;i._super(),i.settings.activeTab=i.settings.activeTab||0,i.activateTab(i.settings.activeTab),this.on("click",function(e){var t=e.target.parentNode;if(t&&t.id===i._id+"-head")for(var n=t.childNodes.length;n--;)t.childNodes[n]===e.target&&i.activateTab(n)})},initLayoutRect:function(){var e,t,n,i=this;t=(t=we.getSize(i.getEl("head")).width)<0?0:t,n=0,i.items().each(function(e){t=Math.max(t,e.layoutRect().minW),n=Math.max(n,e.layoutRect().minH)}),i.items().each(function(e){e.settings.x=0,e.settings.y=0,e.settings.w=t,e.settings.h=n,e.layoutRect({x:0,y:0,w:t,h:n})});var r=we.getSize(i.getEl("head")).height;return i.settings.minWidth=t,i.settings.minHeight=n+r,(e=i._super()).deltaH+=r,e.innerH=e.h-e.deltaH,e}}),br=Nt.extend({init:function(e){var n=this;n._super(e),n.classes.add("textbox"),e.multiline?n.classes.add("multiline"):(n.on("keydown",function(e){var t;13===e.keyCode&&(e.preventDefault(),n.parents().reverse().each(function(e){if(e.toJSON)return t=e,!1}),n.fire("submit",{data:t.toJSON()}))}),n.on("keyup",function(e){n.state.set("value",e.target.value)}))},repaint:function(){var e,t,n,i,r,o=this,s=0;e=o.getEl().style,t=o._layoutRect,r=o._lastRepaintRect||{};var a=_.document;return!o.settings.multiline&&a.all&&(!a.documentMode||a.documentMode<=8)&&(e.lineHeight=t.h-s+"px"),i=(n=o.borderBox).left+n.right+8,s=n.top+n.bottom+(o.settings.multiline?8:0),t.x!==r.x&&(e.left=t.x+"px",r.x=t.x),t.y!==r.y&&(e.top=t.y+"px",r.y=t.y),t.w!==r.w&&(e.width=t.w-i+"px",r.w=t.w),t.h!==r.h&&(e.height=t.h-s+"px",r.h=t.h),o._lastRepaintRect=r,o.fire("repaint",{},!1),o},renderHtml:function(){var t,e,n=this,i=n.settings;return t={id:n._id,hidefocus:"1"},w.each(["rows","spellcheck","maxLength","size","readonly","min","max","step","list","pattern","placeholder","required","multiple"],function(e){t[e]=i[e]}),n.disabled()&&(t.disabled="disabled"),i.subtype&&(t.type=i.subtype),(e=we.create(i.multiline?"textarea":"input",t)).value=n.state.get("value"),e.className=n.classes.toString(),e.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 t=this;t.getEl().value=t.state.get("value"),t._super(),t.$el.on("change",function(e){t.state.set("value",e.target.value),t.fire("change",e)})},bindStates:function(){var t=this;return t.state.on("change:value",function(e){t.getEl().value!==e.value&&(t.getEl().value=e.value)}),t.state.on("change:disabled",function(e){t.getEl().disabled=e.value}),t._super()},remove:function(){this.$el.off(),this._super()}}),yr=function(){return{Selector:Ie,Collection:Ve,ReflowQueue:Ke,Control:rt,Factory:v,KeyboardNavigation:st,Container:lt,DragHelper:ct,Scrollable:gt,Panel:pt,Movable:He,Resizable:vt,FloatPanel:Ct,Window:It,MessageBox:Yt,Tooltip:Mt,Widget:Nt,Progress:Pt,Notification:Dt,Layout:qt,AbsoluteLayout:Xt,Button:jt,ButtonGroup:Gt,Checkbox:Kt,ComboBox:Qt,ColorBox:en,PanelButton:tn,ColorButton:rn,ColorPicker:sn,Path:ln,ElementPath:un,FormItem:cn,Form:dn,FieldSet:fn,FilePicker:vi,FitLayout:bi,FlexLayout:yi,FlowLayout:xi,FormatControls:Ji,GridLayout:Gi,Iframe:Ki,InfoBox:Zi,Label:Qi,Toolbar:er,MenuBar:tr,MenuButton:nr,MenuItem:or,Throbber:Ht,Menu:ir,ListBox:rr,Radio:sr,ResizeHandle:ar,SelectBox:ur,Slider:hr,Spacer:mr,SplitButton:gr,StackLayout:pr,TabPanel:vr,TextBox:br,DropZone:an,BrowseButton:Jt}},xr=function(n){n.ui?w.each(yr(),function(e,t){n.ui[t]=e}):n.ui=yr()};w.each(yr(),function(e,t){v.add(t,e)}),xr(window.tinymce?window.tinymce:{}),r.add("modern",function(e){return Ji.setup(e),$t(e)})}(window); // Source: wp-includes/js/tinymce/plugins/charmap/plugin.min.js diff --git a/wp-includes/js/twemoji.js b/wp-includes/js/twemoji.js index a3ef4298c9..ea86c63ae8 100644 --- a/wp-includes/js/twemoji.js +++ b/wp-includes/js/twemoji.js @@ -24,7 +24,7 @@ var twemoji = (function ( ///////////////////////// // default assets url, by default will be Twitter Inc. CDN - base: 'https://twemoji.maxcdn.com/v/13.0.0/', + base: 'https://twemoji.maxcdn.com/v/13.0.1/', // default assets file extensions, by default '.png' ext: '.png', diff --git a/wp-includes/js/twemoji.min.js b/wp-includes/js/twemoji.min.js index 02eff41be9..ab0eef7f6d 100644 --- a/wp-includes/js/twemoji.min.js +++ b/wp-includes/js/twemoji.min.js @@ -1,2 +1,2 @@ /*! This file is auto-generated */ -var twemoji=function(){"use strict";var f={base:"https://twemoji.maxcdn.com/v/13.0.0/",ext:".png",size:"72x72",className:"emoji",convert:{fromCodePoint:function(d){var u="string"==typeof d?parseInt(d,16):d;if(u<65536)return a(u);return a(55296+((u-=65536)>>10),56320+(1023&u))},toCodePoint:i},onerror:function(){this.parentNode&&this.parentNode.replaceChild(C(this.alt,!1),this)},parse:function(d,u){u&&"function"!=typeof u||(u={callback:u});return("string"==typeof d?function(d,b){return o(d,function(d){var u,f,c=d,e=N(d),a=b.callback(e,b);if(e&&a){for(f in c="")}return c})}:function(d,u){var f,c,e,a,b,t,r,n,o,i,s,l,p,m=function d(u,f){var c,e,a=u.childNodes,b=a.length;for(;b--;)c=a[b],3===(e=c.nodeType)?f.push(c):1!==e||"ownerSVGElement"in c||x.test(c.nodeName.toLowerCase())||d(c,f);return f}(d,[]),h=m.length;for(;h--;){for(e=!1,a=document.createDocumentFragment(),b=m[h],t=b.nodeValue,n=0;r=g.exec(t);){if((o=r.index)!==n&&a.appendChild(C(t.slice(n,o),!0)),s=r[0],l=N(s),n=o+s.length,p=u.callback(l,u),l&&p){for(c in(i=new Image).onerror=u.onerror,i.setAttribute("draggable","false"),f=u.attributes(s,l))f.hasOwnProperty(c)&&0!==c.indexOf("on")&&!i.hasAttribute(c)&&i.setAttribute(c,f[c]);i.className=u.className,i.alt=s,i.src=p,e=!0,a.appendChild(i)}i||a.appendChild(C(s,!1)),i=null}e&&(n":">","'":"'",'"':"""},g=/(?:\ud83d\udc68\ud83c\udffb\u200d\ud83e\udd1d\u200d\ud83d\udc68\ud83c[\udffc-\udfff]|\ud83d\udc68\ud83c\udffc\u200d\ud83e\udd1d\u200d\ud83d\udc68\ud83c[\udffb\udffd-\udfff]|\ud83d\udc68\ud83c\udffd\u200d\ud83e\udd1d\u200d\ud83d\udc68\ud83c[\udffb\udffc\udffe\udfff]|\ud83d\udc68\ud83c\udffe\u200d\ud83e\udd1d\u200d\ud83d\udc68\ud83c[\udffb-\udffd\udfff]|\ud83d\udc68\ud83c\udfff\u200d\ud83e\udd1d\u200d\ud83d\udc68\ud83c[\udffb-\udffe]|\ud83d\udc69\ud83c\udffb\u200d\ud83e\udd1d\u200d\ud83d\udc68\ud83c[\udffc-\udfff]|\ud83d\udc69\ud83c\udffb\u200d\ud83e\udd1d\u200d\ud83d\udc69\ud83c[\udffc-\udfff]|\ud83d\udc69\ud83c\udffc\u200d\ud83e\udd1d\u200d\ud83d\udc68\ud83c[\udffb\udffd-\udfff]|\ud83d\udc69\ud83c\udffc\u200d\ud83e\udd1d\u200d\ud83d\udc69\ud83c[\udffb\udffd-\udfff]|\ud83d\udc69\ud83c\udffd\u200d\ud83e\udd1d\u200d\ud83d\udc68\ud83c[\udffb\udffc\udffe\udfff]|\ud83d\udc69\ud83c\udffd\u200d\ud83e\udd1d\u200d\ud83d\udc69\ud83c[\udffb\udffc\udffe\udfff]|\ud83d\udc69\ud83c\udffe\u200d\ud83e\udd1d\u200d\ud83d\udc68\ud83c[\udffb-\udffd\udfff]|\ud83d\udc69\ud83c\udffe\u200d\ud83e\udd1d\u200d\ud83d\udc69\ud83c[\udffb-\udffd\udfff]|\ud83d\udc69\ud83c\udfff\u200d\ud83e\udd1d\u200d\ud83d\udc68\ud83c[\udffb-\udffe]|\ud83d\udc69\ud83c\udfff\u200d\ud83e\udd1d\u200d\ud83d\udc69\ud83c[\udffb-\udffe]|\ud83e\uddd1\ud83c\udffb\u200d\ud83e\udd1d\u200d\ud83e\uddd1\ud83c[\udffb-\udfff]|\ud83e\uddd1\ud83c\udffc\u200d\ud83e\udd1d\u200d\ud83e\uddd1\ud83c[\udffb-\udfff]|\ud83e\uddd1\ud83c\udffd\u200d\ud83e\udd1d\u200d\ud83e\uddd1\ud83c[\udffb-\udfff]|\ud83e\uddd1\ud83c\udffe\u200d\ud83e\udd1d\u200d\ud83e\uddd1\ud83c[\udffb-\udfff]|\ud83e\uddd1\ud83c\udfff\u200d\ud83e\udd1d\u200d\ud83e\uddd1\ud83c[\udffb-\udfff]|\ud83e\uddd1\u200d\ud83e\udd1d\u200d\ud83e\uddd1|\ud83d\udc6b\ud83c[\udffb-\udfff]|\ud83d\udc6c\ud83c[\udffb-\udfff]|\ud83d\udc6d\ud83c[\udffb-\udfff]|\ud83d[\udc6b-\udc6d])|(?:\ud83d[\udc68\udc69]|\ud83e\uddd1)(?:\ud83c[\udffb-\udfff])?\u200d(?:\u2695\ufe0f|\u2696\ufe0f|\u2708\ufe0f|\ud83c[\udf3e\udf73\udf7c\udf84\udf93\udfa4\udfa8\udfeb\udfed]|\ud83d[\udcbb\udcbc\udd27\udd2c\ude80\ude92]|\ud83e[\uddaf-\uddb3\uddbc\uddbd])|(?:\ud83c[\udfcb\udfcc]|\ud83d[\udd74\udd75]|\u26f9)((?:\ud83c[\udffb-\udfff]|\ufe0f)\u200d[\u2640\u2642]\ufe0f)|(?:\ud83c[\udfc3\udfc4\udfca]|\ud83d[\udc6e\udc70\udc71\udc73\udc77\udc81\udc82\udc86\udc87\ude45-\ude47\ude4b\ude4d\ude4e\udea3\udeb4-\udeb6]|\ud83e[\udd26\udd35\udd37-\udd39\udd3d\udd3e\uddb8\uddb9\uddcd-\uddcf\uddd6-\udddd])(?:\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\u26a7\ufe0f|\ud83c\udff3\ufe0f\u200d\ud83c\udf08|\ud83c\udff4\u200d\u2620\ufe0f|\ud83d\udc15\u200d\ud83e\uddba|\ud83d\udc3b\u200d\u2744\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|\ud83e\uddde\u200d\u2640\ufe0f|\ud83e\uddde\u200d\u2642\ufe0f|\ud83e\udddf\u200d\u2640\ufe0f|\ud83e\udddf\u200d\u2642\ufe0f|\ud83d\udc08\u200d\u2b1b)|[#*0-9]\ufe0f?\u20e3|(?:[\xa9\xae\u2122\u265f]\ufe0f)|(?:\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]|[\u203c\u2049\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\u2640\u2642\u2648-\u2653\u2660\u2663\u2665\u2666\u2668\u267b\u267f\u2692-\u2697\u2699\u269b\u269c\u26a0\u26a1\u26a7\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))|(?:(?:\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[\udd0c\udd0f\udd18-\udd1c\udd1e\udd1f\udd26\udd30-\udd39\udd3d\udd3e\udd77\uddb5\uddb6\uddb8\uddb9\uddbb\uddcd-\uddcf\uddd1-\udddd]|[\u270a\u270b]))(?:\ud83c[\udffb-\udfff])?|(?:\ud83c\udff4\udb40\udc67\udb40\udc62\udb40\udc65\udb40\udc6e\udb40\udc67\udb40\udc7f|\ud83c\udff4\udb40\udc67\udb40\udc62\udb40\udc73\udb40\udc63\udb40\udc74\udb40\udc7f|\ud83c\udff4\udb40\udc67\udb40\udc62\udb40\udc77\udb40\udc6c\udb40\udc73\udb40\udc7f|\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]|\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\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\uded5-\uded7\udeeb\udeec\udef4-\udefc\udfe0-\udfeb]|\ud83e[\udd0d\udd0e\udd10-\udd17\udd1d\udd20-\udd25\udd27-\udd2f\udd3a\udd3c\udd3f-\udd45\udd47-\udd76\udd78\udd7a-\uddb4\uddb7\uddba\uddbc-\uddcb\uddd0\uddde-\uddff\ude70-\ude74\ude78-\ude7a\ude80-\ude86\ude90-\udea8\udeb0-\udeb6\udec0-\udec2\uded0-\uded6]|[\u23e9-\u23ec\u23f0\u23f3\u267e\u26ce\u2705\u2728\u274c\u274e\u2753-\u2755\u2795-\u2797\u27b0\u27bf\ue50a])|\ufe0f/g,c=/\uFE0F/g,e=String.fromCharCode(8205),t=/[&<>'"]/g,x=/^(?:iframe|noframes|noscript|script|select|style|textarea)$/,a=String.fromCharCode;return f;function C(d,u){return document.createTextNode(u?d.replace(c,""):d)}function b(d,u){return"".concat(u.base,u.size,"/",d,u.ext)}function N(d){return i(d.indexOf(e)<0?d.replace(c,""):d)}function r(d){return u[d]}function n(){return null}function o(d,u){return String(d).replace(g,u)}function i(d,u){for(var f=[],c=0,e=0,a=0;a>10),56320+(1023&u))},toCodePoint:i},onerror:function(){this.parentNode&&this.parentNode.replaceChild(C(this.alt,!1),this)},parse:function(d,u){u&&"function"!=typeof u||(u={callback:u});return("string"==typeof d?function(d,b){return o(d,function(d){var u,f,c=d,e=N(d),a=b.callback(e,b);if(e&&a){for(f in c="")}return c})}:function(d,u){var f,c,e,a,b,t,r,n,o,i,s,l,p,m=function d(u,f){var c,e,a=u.childNodes,b=a.length;for(;b--;)c=a[b],3===(e=c.nodeType)?f.push(c):1!==e||"ownerSVGElement"in c||x.test(c.nodeName.toLowerCase())||d(c,f);return f}(d,[]),h=m.length;for(;h--;){for(e=!1,a=document.createDocumentFragment(),b=m[h],t=b.nodeValue,n=0;r=g.exec(t);){if((o=r.index)!==n&&a.appendChild(C(t.slice(n,o),!0)),s=r[0],l=N(s),n=o+s.length,p=u.callback(l,u),l&&p){for(c in(i=new Image).onerror=u.onerror,i.setAttribute("draggable","false"),f=u.attributes(s,l))f.hasOwnProperty(c)&&0!==c.indexOf("on")&&!i.hasAttribute(c)&&i.setAttribute(c,f[c]);i.className=u.className,i.alt=s,i.src=p,e=!0,a.appendChild(i)}i||a.appendChild(C(s,!1)),i=null}e&&(n":">","'":"'",'"':"""},g=/(?:\ud83d\udc68\ud83c\udffb\u200d\ud83e\udd1d\u200d\ud83d\udc68\ud83c[\udffc-\udfff]|\ud83d\udc68\ud83c\udffc\u200d\ud83e\udd1d\u200d\ud83d\udc68\ud83c[\udffb\udffd-\udfff]|\ud83d\udc68\ud83c\udffd\u200d\ud83e\udd1d\u200d\ud83d\udc68\ud83c[\udffb\udffc\udffe\udfff]|\ud83d\udc68\ud83c\udffe\u200d\ud83e\udd1d\u200d\ud83d\udc68\ud83c[\udffb-\udffd\udfff]|\ud83d\udc68\ud83c\udfff\u200d\ud83e\udd1d\u200d\ud83d\udc68\ud83c[\udffb-\udffe]|\ud83d\udc69\ud83c\udffb\u200d\ud83e\udd1d\u200d\ud83d\udc68\ud83c[\udffc-\udfff]|\ud83d\udc69\ud83c\udffb\u200d\ud83e\udd1d\u200d\ud83d\udc69\ud83c[\udffc-\udfff]|\ud83d\udc69\ud83c\udffc\u200d\ud83e\udd1d\u200d\ud83d\udc68\ud83c[\udffb\udffd-\udfff]|\ud83d\udc69\ud83c\udffc\u200d\ud83e\udd1d\u200d\ud83d\udc69\ud83c[\udffb\udffd-\udfff]|\ud83d\udc69\ud83c\udffd\u200d\ud83e\udd1d\u200d\ud83d\udc68\ud83c[\udffb\udffc\udffe\udfff]|\ud83d\udc69\ud83c\udffd\u200d\ud83e\udd1d\u200d\ud83d\udc69\ud83c[\udffb\udffc\udffe\udfff]|\ud83d\udc69\ud83c\udffe\u200d\ud83e\udd1d\u200d\ud83d\udc68\ud83c[\udffb-\udffd\udfff]|\ud83d\udc69\ud83c\udffe\u200d\ud83e\udd1d\u200d\ud83d\udc69\ud83c[\udffb-\udffd\udfff]|\ud83d\udc69\ud83c\udfff\u200d\ud83e\udd1d\u200d\ud83d\udc68\ud83c[\udffb-\udffe]|\ud83d\udc69\ud83c\udfff\u200d\ud83e\udd1d\u200d\ud83d\udc69\ud83c[\udffb-\udffe]|\ud83e\uddd1\ud83c\udffb\u200d\ud83e\udd1d\u200d\ud83e\uddd1\ud83c[\udffb-\udfff]|\ud83e\uddd1\ud83c\udffc\u200d\ud83e\udd1d\u200d\ud83e\uddd1\ud83c[\udffb-\udfff]|\ud83e\uddd1\ud83c\udffd\u200d\ud83e\udd1d\u200d\ud83e\uddd1\ud83c[\udffb-\udfff]|\ud83e\uddd1\ud83c\udffe\u200d\ud83e\udd1d\u200d\ud83e\uddd1\ud83c[\udffb-\udfff]|\ud83e\uddd1\ud83c\udfff\u200d\ud83e\udd1d\u200d\ud83e\uddd1\ud83c[\udffb-\udfff]|\ud83e\uddd1\u200d\ud83e\udd1d\u200d\ud83e\uddd1|\ud83d\udc6b\ud83c[\udffb-\udfff]|\ud83d\udc6c\ud83c[\udffb-\udfff]|\ud83d\udc6d\ud83c[\udffb-\udfff]|\ud83d[\udc6b-\udc6d])|(?:\ud83d[\udc68\udc69]|\ud83e\uddd1)(?:\ud83c[\udffb-\udfff])?\u200d(?:\u2695\ufe0f|\u2696\ufe0f|\u2708\ufe0f|\ud83c[\udf3e\udf73\udf7c\udf84\udf93\udfa4\udfa8\udfeb\udfed]|\ud83d[\udcbb\udcbc\udd27\udd2c\ude80\ude92]|\ud83e[\uddaf-\uddb3\uddbc\uddbd])|(?:\ud83c[\udfcb\udfcc]|\ud83d[\udd74\udd75]|\u26f9)((?:\ud83c[\udffb-\udfff]|\ufe0f)\u200d[\u2640\u2642]\ufe0f)|(?:\ud83c[\udfc3\udfc4\udfca]|\ud83d[\udc6e\udc70\udc71\udc73\udc77\udc81\udc82\udc86\udc87\ude45-\ude47\ude4b\ude4d\ude4e\udea3\udeb4-\udeb6]|\ud83e[\udd26\udd35\udd37-\udd39\udd3d\udd3e\uddb8\uddb9\uddcd-\uddcf\uddd6-\udddd])(?:\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\u26a7\ufe0f|\ud83c\udff3\ufe0f\u200d\ud83c\udf08|\ud83c\udff4\u200d\u2620\ufe0f|\ud83d\udc15\u200d\ud83e\uddba|\ud83d\udc3b\u200d\u2744\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|\ud83e\uddde\u200d\u2640\ufe0f|\ud83e\uddde\u200d\u2642\ufe0f|\ud83e\udddf\u200d\u2640\ufe0f|\ud83e\udddf\u200d\u2642\ufe0f|\ud83d\udc08\u200d\u2b1b)|[#*0-9]\ufe0f?\u20e3|(?:[\xa9\xae\u2122\u265f]\ufe0f)|(?:\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]|[\u203c\u2049\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\u2640\u2642\u2648-\u2653\u2660\u2663\u2665\u2666\u2668\u267b\u267f\u2692-\u2697\u2699\u269b\u269c\u26a0\u26a1\u26a7\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))|(?:(?:\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[\udd0c\udd0f\udd18-\udd1c\udd1e\udd1f\udd26\udd30-\udd39\udd3d\udd3e\udd77\uddb5\uddb6\uddb8\uddb9\uddbb\uddcd-\uddcf\uddd1-\udddd]|[\u270a\u270b]))(?:\ud83c[\udffb-\udfff])?|(?:\ud83c\udff4\udb40\udc67\udb40\udc62\udb40\udc65\udb40\udc6e\udb40\udc67\udb40\udc7f|\ud83c\udff4\udb40\udc67\udb40\udc62\udb40\udc73\udb40\udc63\udb40\udc74\udb40\udc7f|\ud83c\udff4\udb40\udc67\udb40\udc62\udb40\udc77\udb40\udc6c\udb40\udc73\udb40\udc7f|\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]|\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\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\uded5-\uded7\udeeb\udeec\udef4-\udefc\udfe0-\udfeb]|\ud83e[\udd0d\udd0e\udd10-\udd17\udd1d\udd20-\udd25\udd27-\udd2f\udd3a\udd3c\udd3f-\udd45\udd47-\udd76\udd78\udd7a-\uddb4\uddb7\uddba\uddbc-\uddcb\uddd0\uddde-\uddff\ude70-\ude74\ude78-\ude7a\ude80-\ude86\ude90-\udea8\udeb0-\udeb6\udec0-\udec2\uded0-\uded6]|[\u23e9-\u23ec\u23f0\u23f3\u267e\u26ce\u2705\u2728\u274c\u274e\u2753-\u2755\u2795-\u2797\u27b0\u27bf\ue50a])|\ufe0f/g,c=/\uFE0F/g,e=String.fromCharCode(8205),t=/[&<>'"]/g,x=/^(?:iframe|noframes|noscript|script|select|style|textarea)$/,a=String.fromCharCode;return f;function C(d,u){return document.createTextNode(u?d.replace(c,""):d)}function b(d,u){return"".concat(u.base,u.size,"/",d,u.ext)}function N(d){return i(d.indexOf(e)<0?d.replace(c,""):d)}function r(d){return u[d]}function n(){return null}function o(d,u){return String(d).replace(g,u)}function i(d,u){for(var f=[],c=0,e=0,a=0;a[\\d]+)/");return i<0?"":((t=(t=e.substr(0,i-1)).split("/")).pop(),t=t.pop())},wp.api.utils.decorateFromRoute=function(e,t){_.each(e,function(e){_.includes(e.methods,"POST")||_.includes(e.methods,"PUT")?_.isEmpty(e.args)||(_.isEmpty(t.prototype.args)?t.prototype.args=e.args:t.prototype.args=_.extend(t.prototype.args,e.args)):_.includes(e.methods,"GET")&&(_.isEmpty(e.args)||(_.isEmpty(t.prototype.options)?t.prototype.options=e.args:t.prototype.options=_.extend(t.prototype.options,e.args)))})},wp.api.utils.addMixinsAndHelpers=function(t,e,i){function n(e,t,i,n,o){var s,a,r,p;return p=jQuery.Deferred(),a=e.get("_embedded")||{},_.isNumber(t)&&0!==t?(a[n]&&(r=_.findWhere(a[n],{id:t})),r=r||{id:t},(s=new wp.api.models[i](r)).get(o)?p.resolve(s):s.fetch({success:function(e){p.resolve(e)},error:function(e,t){p.reject(t)}}),p.promise()):(p.reject(),p)}var o=!1,s=["date","modified","date_gmt","modified_gmt"],a={setDate:function(e,t){var i=t||"date";if(_.indexOf(s,i)<0)return!1;this.set(i,e.toISOString())},getDate:function(e){var t=e||"date",i=this.get(t);return!(_.indexOf(s,t)<0||_.isNull(i))&&new Date(wp.api.utils.parseISO8601(i))}},d=function(e,t){_.each(e.models,function(e){e.set("parent_post",t)})},r={getMeta:function(e){return this.get("meta")[e]},getMetas:function(){return this.get("meta")},setMetas:function(e){var t=this.get("meta");_.extend(t,e),this.set("meta",t)},setMeta:function(e,t){var i=this.get("meta");i[e]=t,this.set("meta",i)}},p={getRevisions:function(){return function(e,t,i,n){var o,s,a,r="",p="",c=jQuery.Deferred();return o=e.get("id"),s=e.get("_embedded")||{},_.isNumber(o)&&0!==o?(_.isUndefined(i)||_.isUndefined(s[i])?r={parent:o}:p=_.isUndefined(n)?s[i]:s[i][n],a=new wp.api.collections[t](p,r),_.isUndefined(a.models[0])?a.fetch({success:function(e){d(e,o),c.resolve(e)},error:function(e,t){c.reject(t)}}):(d(a,o),c.resolve(a)),c.promise()):(c.reject(),c)}(this,"PostRevisions")}},c={getTags:function(){var e=this.get("tags"),t=new wp.api.collections.Tags;return _.isEmpty(e)?jQuery.Deferred().resolve([]):t.fetch({data:{include:e}})},setTags:function(e){var i,n=this,o=[];if(_.isString(e))return!1;_.isArray(e)?(new wp.api.collections.Tags).fetch({data:{per_page:100},success:function(t){_.each(e,function(e){(i=new wp.api.models.Tag(t.findWhere({slug:e}))).set("parent_post",n.get("id")),o.push(i)}),e=new wp.api.collections.Tags(o),n.setTagsWithCollection(e)}}):this.setTagsWithCollection(e)},setTagsWithCollection:function(e){return this.set("tags",e.pluck("id")),this.save()}},l={getCategories:function(){var e=this.get("categories"),t=new wp.api.collections.Categories;return _.isEmpty(e)?jQuery.Deferred().resolve([]):t.fetch({data:{include:e}})},setCategories:function(e){var i,n=this,o=[];if(_.isString(e))return!1;_.isArray(e)?(new wp.api.collections.Categories).fetch({data:{per_page:100},success:function(t){_.each(e,function(e){(i=new wp.api.models.Category(t.findWhere({slug:e}))).set("parent_post",n.get("id")),o.push(i)}),e=new wp.api.collections.Categories(o),n.setCategoriesWithCollection(e)}}):this.setCategoriesWithCollection(e)},setCategoriesWithCollection:function(e){return this.set("categories",e.pluck("id")),this.save()}},u={getAuthorUser:function(){return n(this,this.get("author"),"User","author","name")}},g={getFeaturedMedia:function(){return n(this,this.get("featured_media"),"Media","wp:featuredmedia","source_url")}};return _.isUndefined(t.prototype.args)||(_.each(s,function(e){_.isUndefined(t.prototype.args[e])||(o=!0)}),o&&(t=t.extend(a)),_.isUndefined(t.prototype.args.author)||(t=t.extend(u)),_.isUndefined(t.prototype.args.featured_media)||(t=t.extend(g)),_.isUndefined(t.prototype.args.categories)||(t=t.extend(l)),_.isUndefined(t.prototype.args.meta)||(t=t.extend(r)),_.isUndefined(t.prototype.args.tags)||(t=t.extend(c)),_.isUndefined(i.collections[e+"Revisions"])||(t=t.extend(p))),t}}(window),function(){"use strict";var i=window.wpApiSettings||{},e=["Comment","Media","Comment","Post","Page","Status","Taxonomy","Type"];wp.api.WPApiBaseModel=Backbone.Model.extend({initialize:function(){-1===_.indexOf(e,this.name)&&(this.requireForceForDelete=!0)},sync:function(e,i,t){var n;return t=t||{},_.isNull(i.get("date_gmt"))&&i.unset("date_gmt"),_.isEmpty(i.get("slug"))&&i.unset("slug"),_.isFunction(i.nonce)&&!_.isEmpty(i.nonce())&&(n=t.beforeSend,t.beforeSend=function(e){if(e.setRequestHeader("X-WP-Nonce",i.nonce()),n)return n.apply(this,arguments)},t.complete=function(e){var t=e.getResponseHeader("X-WP-Nonce");t&&_.isFunction(i.nonce)&&i.nonce()!==t&&i.endpointModel.set("nonce",t)}),this.requireForceForDelete&&"delete"===e&&(i.url=i.url()+"?force=true"),Backbone.sync(e,i,t)},save:function(e,t){return!(!_.includes(this.methods,"PUT")&&!_.includes(this.methods,"POST"))&&Backbone.Model.prototype.save.call(this,e,t)},destroy:function(e){return!!_.includes(this.methods,"DELETE")&&Backbone.Model.prototype.destroy.call(this,e)}}),wp.api.models.Schema=wp.api.WPApiBaseModel.extend({defaults:{_links:{},namespace:null,routes:{}},initialize:function(e,t){t=t||{},wp.api.WPApiBaseModel.prototype.initialize.call(this,e,t),this.apiRoot=t.apiRoot||i.root,this.versionString=t.versionString||i.versionString},url:function(){return this.apiRoot+this.versionString}})}(),function(){"use strict";window.wpApiSettings;wp.api.WPApiBaseCollection=Backbone.Collection.extend({initialize:function(e,t){this.state={data:{},currentPage:null,totalPages:null,totalObjects:null},_.isUndefined(t)?this.parent="":this.parent=t.parent},sync:function(e,i,t){var n,o,s=this;return t=t||{},_.isFunction(i.nonce)&&!_.isEmpty(i.nonce())&&(n=t.beforeSend,t.beforeSend=function(e){if(e.setRequestHeader("X-WP-Nonce",i.nonce()),n)return n.apply(s,arguments)},t.complete=function(e){var t=e.getResponseHeader("X-WP-Nonce");t&&_.isFunction(i.nonce)&&i.nonce()!==t&&i.endpointModel.set("nonce",t)}),"read"===e&&(t.data?(s.state.data=_.clone(t.data),delete s.state.data.page):s.state.data=t.data={},void 0===t.data.page?(s.state.currentPage=null,s.state.totalPages=null,s.state.totalObjects=null):s.state.currentPage=t.data.page-1,o=t.success,t.success=function(e,t,i){if(_.isUndefined(i)||(s.state.totalPages=parseInt(i.getResponseHeader("x-wp-totalpages"),10),s.state.totalObjects=parseInt(i.getResponseHeader("x-wp-total"),10)),null===s.state.currentPage?s.state.currentPage=1:s.state.currentPage++,o)return o.apply(this,arguments)}),Backbone.sync(e,i,t)},more:function(e){if((e=e||{}).data=e.data||{},_.extend(e.data,this.state.data),void 0===e.data.page){if(!this.hasMore())return!1;null===this.state.currentPage||this.state.currentPage<=1?e.data.page=2:e.data.page=this.state.currentPage+1}return this.fetch(e)},hasMore:function(){return null===this.state.totalPages||null===this.state.totalObjects||null===this.state.currentPage?null:this.state.currentPage[\\d]+)/");return i<0?"":((t=(t=e.substr(0,i-1)).split("/")).pop(),t=t.pop())},wp.api.utils.decorateFromRoute=function(e,t){_.each(e,function(e){_.includes(e.methods,"POST")||_.includes(e.methods,"PUT")?_.isEmpty(e.args)||(_.isEmpty(t.prototype.args)?t.prototype.args=e.args:t.prototype.args=_.extend(t.prototype.args,e.args)):_.includes(e.methods,"GET")&&(_.isEmpty(e.args)||(_.isEmpty(t.prototype.options)?t.prototype.options=e.args:t.prototype.options=_.extend(t.prototype.options,e.args)))})},wp.api.utils.addMixinsAndHelpers=function(t,e,i){function n(e,t,i,n,o){var s,a,r,p;return p=jQuery.Deferred(),a=e.get("_embedded")||{},_.isNumber(t)&&0!==t?(a[n]&&(r=_.findWhere(a[n],{id:t})),r=r||{id:t},(s=new wp.api.models[i](r)).get(o)?p.resolve(s):s.fetch({success:function(e){p.resolve(e)},error:function(e,t){p.reject(t)}}),p.promise()):(p.reject(),p)}var o=!1,s=["date","modified","date_gmt","modified_gmt"],a={setDate:function(e,t){var i=t||"date";if(_.indexOf(s,i)<0)return!1;this.set(i,e.toISOString())},getDate:function(e){var t=e||"date",i=this.get(t);return!(_.indexOf(s,t)<0||_.isNull(i))&&new Date(wp.api.utils.parseISO8601(i))}},d=function(e,t){_.each(e.models,function(e){e.set("parent_post",t)})},r={getMeta:function(e){return this.get("meta")[e]},getMetas:function(){return this.get("meta")},setMetas:function(e){var t=this.get("meta");_.extend(t,e),this.set("meta",t)},setMeta:function(e,t){var i=this.get("meta");i[e]=t,this.set("meta",i)}},p={getRevisions:function(){return function(e,t,i,n){var o,s,a,r="",p="",c=jQuery.Deferred();return o=e.get("id"),s=e.get("_embedded")||{},_.isNumber(o)&&0!==o?(_.isUndefined(i)||_.isUndefined(s[i])?r={parent:o}:p=_.isUndefined(n)?s[i]:s[i][n],a=new wp.api.collections[t](p,r),_.isUndefined(a.models[0])?a.fetch({success:function(e){d(e,o),c.resolve(e)},error:function(e,t){c.reject(t)}}):(d(a,o),c.resolve(a)),c.promise()):(c.reject(),c)}(this,"PostRevisions")}},c={getTags:function(){var e=this.get("tags"),t=new wp.api.collections.Tags;return _.isEmpty(e)?jQuery.Deferred().resolve([]):t.fetch({data:{include:e}})},setTags:function(e){var i,n=this,o=[];if(_.isString(e))return!1;_.isArray(e)?(new wp.api.collections.Tags).fetch({data:{per_page:100},success:function(t){_.each(e,function(e){(i=new wp.api.models.Tag(t.findWhere({slug:e}))).set("parent_post",n.get("id")),o.push(i)}),e=new wp.api.collections.Tags(o),n.setTagsWithCollection(e)}}):this.setTagsWithCollection(e)},setTagsWithCollection:function(e){return this.set("tags",e.pluck("id")),this.save()}},l={getCategories:function(){var e=this.get("categories"),t=new wp.api.collections.Categories;return _.isEmpty(e)?jQuery.Deferred().resolve([]):t.fetch({data:{include:e}})},setCategories:function(e){var i,n=this,o=[];if(_.isString(e))return!1;_.isArray(e)?(new wp.api.collections.Categories).fetch({data:{per_page:100},success:function(t){_.each(e,function(e){(i=new wp.api.models.Category(t.findWhere({slug:e}))).set("parent_post",n.get("id")),o.push(i)}),e=new wp.api.collections.Categories(o),n.setCategoriesWithCollection(e)}}):this.setCategoriesWithCollection(e)},setCategoriesWithCollection:function(e){return this.set("categories",e.pluck("id")),this.save()}},u={getAuthorUser:function(){return n(this,this.get("author"),"User","author","name")}},g={getFeaturedMedia:function(){return n(this,this.get("featured_media"),"Media","wp:featuredmedia","source_url")}};return _.isUndefined(t.prototype.args)||(_.each(s,function(e){_.isUndefined(t.prototype.args[e])||(o=!0)}),o&&(t=t.extend(a)),_.isUndefined(t.prototype.args.author)||(t=t.extend(u)),_.isUndefined(t.prototype.args.featured_media)||(t=t.extend(g)),_.isUndefined(t.prototype.args.categories)||(t=t.extend(l)),_.isUndefined(t.prototype.args.meta)||(t=t.extend(r)),_.isUndefined(t.prototype.args.tags)||(t=t.extend(c)),_.isUndefined(i.collections[e+"Revisions"])||(t=t.extend(p))),t}}(window),function(){"use strict";var i=window.wpApiSettings||{},e=["Comment","Media","Comment","Post","Page","Status","Taxonomy","Type"];wp.api.WPApiBaseModel=Backbone.Model.extend({initialize:function(){-1===_.indexOf(e,this.name)&&(this.requireForceForDelete=!0)},sync:function(e,i,t){var n;return t=t||{},_.isNull(i.get("date_gmt"))&&i.unset("date_gmt"),_.isEmpty(i.get("slug"))&&i.unset("slug"),_.isFunction(i.nonce)&&!_.isEmpty(i.nonce())&&(n=t.beforeSend,t.beforeSend=function(e){if(e.setRequestHeader("X-WP-Nonce",i.nonce()),n)return n.apply(this,arguments)},t.complete=function(e){var t=e.getResponseHeader("X-WP-Nonce");t&&_.isFunction(i.nonce)&&i.nonce()!==t&&i.endpointModel.set("nonce",t)}),this.requireForceForDelete&&"delete"===e&&(i.url=i.url()+"?force=true"),Backbone.sync(e,i,t)},save:function(e,t){return!(!_.includes(this.methods,"PUT")&&!_.includes(this.methods,"POST"))&&Backbone.Model.prototype.save.call(this,e,t)},destroy:function(e){return!!_.includes(this.methods,"DELETE")&&Backbone.Model.prototype.destroy.call(this,e)}}),wp.api.models.Schema=wp.api.WPApiBaseModel.extend({defaults:{_links:{},namespace:null,routes:{}},initialize:function(e,t){t=t||{},wp.api.WPApiBaseModel.prototype.initialize.call(this,e,t),this.apiRoot=t.apiRoot||i.root,this.versionString=t.versionString||i.versionString},url:function(){return this.apiRoot+this.versionString}})}(),function(){"use strict";window.wpApiSettings;wp.api.WPApiBaseCollection=Backbone.Collection.extend({initialize:function(e,t){this.state={data:{},currentPage:null,totalPages:null,totalObjects:null},_.isUndefined(t)?this.parent="":this.parent=t.parent},sync:function(e,i,t){var n,o,s=this;return t=t||{},_.isFunction(i.nonce)&&!_.isEmpty(i.nonce())&&(n=t.beforeSend,t.beforeSend=function(e){if(e.setRequestHeader("X-WP-Nonce",i.nonce()),n)return n.apply(s,arguments)},t.complete=function(e){var t=e.getResponseHeader("X-WP-Nonce");t&&_.isFunction(i.nonce)&&i.nonce()!==t&&i.endpointModel.set("nonce",t)}),"read"===e&&(t.data?(s.state.data=_.clone(t.data),delete s.state.data.page):s.state.data=t.data={},void 0===t.data.page?(s.state.currentPage=null,s.state.totalPages=null,s.state.totalObjects=null):s.state.currentPage=t.data.page-1,o=t.success,t.success=function(e,t,i){if(_.isUndefined(i)||(s.state.totalPages=parseInt(i.getResponseHeader("x-wp-totalpages"),10),s.state.totalObjects=parseInt(i.getResponseHeader("x-wp-total"),10)),null===s.state.currentPage?s.state.currentPage=1:s.state.currentPage++,o)return o.apply(this,arguments)}),Backbone.sync(e,i,t)},more:function(e){if((e=e||{}).data=e.data||{},_.extend(e.data,this.state.data),void 0===e.data.page){if(!this.hasMore())return!1;null===this.state.currentPage||this.state.currentPage<=1?e.data.page=2:e.data.page=this.state.currentPage+1}return this.fetch(e)},hasMore:function(){return null===this.state.totalPages||null===this.state.totalObjects||null===this.state.currentPage?null:this.state.currentPage>10),56320+(1023&u))},toCodePoint:i},onerror:function(){this.parentNode&&this.parentNode.replaceChild(C(this.alt,!1),this)},parse:function(d,u){u&&"function"!=typeof u||(u={callback:u});return("string"==typeof d?function(d,b){return o(d,function(d){var u,f,c=d,e=N(d),a=b.callback(e,b);if(e&&a){for(f in c="")}return c})}:function(d,u){var f,c,e,a,b,t,r,n,o,i,s,l,p,m=function d(u,f){var c,e,a=u.childNodes,b=a.length;for(;b--;)c=a[b],3===(e=c.nodeType)?f.push(c):1!==e||"ownerSVGElement"in c||x.test(c.nodeName.toLowerCase())||d(c,f);return f}(d,[]),h=m.length;for(;h--;){for(e=!1,a=document.createDocumentFragment(),b=m[h],t=b.nodeValue,n=0;r=g.exec(t);){if((o=r.index)!==n&&a.appendChild(C(t.slice(n,o),!0)),s=r[0],l=N(s),n=o+s.length,p=u.callback(l,u),l&&p){for(c in(i=new Image).onerror=u.onerror,i.setAttribute("draggable","false"),f=u.attributes(s,l))f.hasOwnProperty(c)&&0!==c.indexOf("on")&&!i.hasAttribute(c)&&i.setAttribute(c,f[c]);i.className=u.className,i.alt=s,i.src=p,e=!0,a.appendChild(i)}i||a.appendChild(C(s,!1)),i=null}e&&(n":">","'":"'",'"':"""},g=/(?:\ud83d\udc68\ud83c\udffb\u200d\ud83e\udd1d\u200d\ud83d\udc68\ud83c[\udffc-\udfff]|\ud83d\udc68\ud83c\udffc\u200d\ud83e\udd1d\u200d\ud83d\udc68\ud83c[\udffb\udffd-\udfff]|\ud83d\udc68\ud83c\udffd\u200d\ud83e\udd1d\u200d\ud83d\udc68\ud83c[\udffb\udffc\udffe\udfff]|\ud83d\udc68\ud83c\udffe\u200d\ud83e\udd1d\u200d\ud83d\udc68\ud83c[\udffb-\udffd\udfff]|\ud83d\udc68\ud83c\udfff\u200d\ud83e\udd1d\u200d\ud83d\udc68\ud83c[\udffb-\udffe]|\ud83d\udc69\ud83c\udffb\u200d\ud83e\udd1d\u200d\ud83d\udc68\ud83c[\udffc-\udfff]|\ud83d\udc69\ud83c\udffb\u200d\ud83e\udd1d\u200d\ud83d\udc69\ud83c[\udffc-\udfff]|\ud83d\udc69\ud83c\udffc\u200d\ud83e\udd1d\u200d\ud83d\udc68\ud83c[\udffb\udffd-\udfff]|\ud83d\udc69\ud83c\udffc\u200d\ud83e\udd1d\u200d\ud83d\udc69\ud83c[\udffb\udffd-\udfff]|\ud83d\udc69\ud83c\udffd\u200d\ud83e\udd1d\u200d\ud83d\udc68\ud83c[\udffb\udffc\udffe\udfff]|\ud83d\udc69\ud83c\udffd\u200d\ud83e\udd1d\u200d\ud83d\udc69\ud83c[\udffb\udffc\udffe\udfff]|\ud83d\udc69\ud83c\udffe\u200d\ud83e\udd1d\u200d\ud83d\udc68\ud83c[\udffb-\udffd\udfff]|\ud83d\udc69\ud83c\udffe\u200d\ud83e\udd1d\u200d\ud83d\udc69\ud83c[\udffb-\udffd\udfff]|\ud83d\udc69\ud83c\udfff\u200d\ud83e\udd1d\u200d\ud83d\udc68\ud83c[\udffb-\udffe]|\ud83d\udc69\ud83c\udfff\u200d\ud83e\udd1d\u200d\ud83d\udc69\ud83c[\udffb-\udffe]|\ud83e\uddd1\ud83c\udffb\u200d\ud83e\udd1d\u200d\ud83e\uddd1\ud83c[\udffb-\udfff]|\ud83e\uddd1\ud83c\udffc\u200d\ud83e\udd1d\u200d\ud83e\uddd1\ud83c[\udffb-\udfff]|\ud83e\uddd1\ud83c\udffd\u200d\ud83e\udd1d\u200d\ud83e\uddd1\ud83c[\udffb-\udfff]|\ud83e\uddd1\ud83c\udffe\u200d\ud83e\udd1d\u200d\ud83e\uddd1\ud83c[\udffb-\udfff]|\ud83e\uddd1\ud83c\udfff\u200d\ud83e\udd1d\u200d\ud83e\uddd1\ud83c[\udffb-\udfff]|\ud83e\uddd1\u200d\ud83e\udd1d\u200d\ud83e\uddd1|\ud83d\udc6b\ud83c[\udffb-\udfff]|\ud83d\udc6c\ud83c[\udffb-\udfff]|\ud83d\udc6d\ud83c[\udffb-\udfff]|\ud83d[\udc6b-\udc6d])|(?:\ud83d[\udc68\udc69]|\ud83e\uddd1)(?:\ud83c[\udffb-\udfff])?\u200d(?:\u2695\ufe0f|\u2696\ufe0f|\u2708\ufe0f|\ud83c[\udf3e\udf73\udf7c\udf84\udf93\udfa4\udfa8\udfeb\udfed]|\ud83d[\udcbb\udcbc\udd27\udd2c\ude80\ude92]|\ud83e[\uddaf-\uddb3\uddbc\uddbd])|(?:\ud83c[\udfcb\udfcc]|\ud83d[\udd74\udd75]|\u26f9)((?:\ud83c[\udffb-\udfff]|\ufe0f)\u200d[\u2640\u2642]\ufe0f)|(?:\ud83c[\udfc3\udfc4\udfca]|\ud83d[\udc6e\udc70\udc71\udc73\udc77\udc81\udc82\udc86\udc87\ude45-\ude47\ude4b\ude4d\ude4e\udea3\udeb4-\udeb6]|\ud83e[\udd26\udd35\udd37-\udd39\udd3d\udd3e\uddb8\uddb9\uddcd-\uddcf\uddd6-\udddd])(?:\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\u26a7\ufe0f|\ud83c\udff3\ufe0f\u200d\ud83c\udf08|\ud83c\udff4\u200d\u2620\ufe0f|\ud83d\udc15\u200d\ud83e\uddba|\ud83d\udc3b\u200d\u2744\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|\ud83e\uddde\u200d\u2640\ufe0f|\ud83e\uddde\u200d\u2642\ufe0f|\ud83e\udddf\u200d\u2640\ufe0f|\ud83e\udddf\u200d\u2642\ufe0f|\ud83d\udc08\u200d\u2b1b)|[#*0-9]\ufe0f?\u20e3|(?:[\xa9\xae\u2122\u265f]\ufe0f)|(?:\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]|[\u203c\u2049\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\u2640\u2642\u2648-\u2653\u2660\u2663\u2665\u2666\u2668\u267b\u267f\u2692-\u2697\u2699\u269b\u269c\u26a0\u26a1\u26a7\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))|(?:(?:\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[\udd0c\udd0f\udd18-\udd1c\udd1e\udd1f\udd26\udd30-\udd39\udd3d\udd3e\udd77\uddb5\uddb6\uddb8\uddb9\uddbb\uddcd-\uddcf\uddd1-\udddd]|[\u270a\u270b]))(?:\ud83c[\udffb-\udfff])?|(?:\ud83c\udff4\udb40\udc67\udb40\udc62\udb40\udc65\udb40\udc6e\udb40\udc67\udb40\udc7f|\ud83c\udff4\udb40\udc67\udb40\udc62\udb40\udc73\udb40\udc63\udb40\udc74\udb40\udc7f|\ud83c\udff4\udb40\udc67\udb40\udc62\udb40\udc77\udb40\udc6c\udb40\udc73\udb40\udc7f|\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]|\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\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\uded5-\uded7\udeeb\udeec\udef4-\udefc\udfe0-\udfeb]|\ud83e[\udd0d\udd0e\udd10-\udd17\udd1d\udd20-\udd25\udd27-\udd2f\udd3a\udd3c\udd3f-\udd45\udd47-\udd76\udd78\udd7a-\uddb4\uddb7\uddba\uddbc-\uddcb\uddd0\uddde-\uddff\ude70-\ude74\ude78-\ude7a\ude80-\ude86\ude90-\udea8\udeb0-\udeb6\udec0-\udec2\uded0-\uded6]|[\u23e9-\u23ec\u23f0\u23f3\u267e\u26ce\u2705\u2728\u274c\u274e\u2753-\u2755\u2795-\u2797\u27b0\u27bf\ue50a])|\ufe0f/g,c=/\uFE0F/g,e=String.fromCharCode(8205),t=/[&<>'"]/g,x=/^(?:iframe|noframes|noscript|script|select|style|textarea)$/,a=String.fromCharCode;return f;function C(d,u){return document.createTextNode(u?d.replace(c,""):d)}function b(d,u){return"".concat(u.base,u.size,"/",d,u.ext)}function N(d){return i(d.indexOf(e)<0?d.replace(c,""):d)}function r(d){return u[d]}function n(){return null}function o(d,u){return String(d).replace(g,u)}function i(d,u){for(var f=[],c=0,e=0,a=0;a>10),56320+(1023&u))},toCodePoint:i},onerror:function(){this.parentNode&&this.parentNode.replaceChild(C(this.alt,!1),this)},parse:function(d,u){u&&"function"!=typeof u||(u={callback:u});return("string"==typeof d?function(d,b){return o(d,function(d){var u,f,c=d,e=N(d),a=b.callback(e,b);if(e&&a){for(f in c="")}return c})}:function(d,u){var f,c,e,a,b,t,r,n,o,i,s,l,p,m=function d(u,f){var c,e,a=u.childNodes,b=a.length;for(;b--;)c=a[b],3===(e=c.nodeType)?f.push(c):1!==e||"ownerSVGElement"in c||x.test(c.nodeName.toLowerCase())||d(c,f);return f}(d,[]),h=m.length;for(;h--;){for(e=!1,a=document.createDocumentFragment(),b=m[h],t=b.nodeValue,n=0;r=g.exec(t);){if((o=r.index)!==n&&a.appendChild(C(t.slice(n,o),!0)),s=r[0],l=N(s),n=o+s.length,p=u.callback(l,u),l&&p){for(c in(i=new Image).onerror=u.onerror,i.setAttribute("draggable","false"),f=u.attributes(s,l))f.hasOwnProperty(c)&&0!==c.indexOf("on")&&!i.hasAttribute(c)&&i.setAttribute(c,f[c]);i.className=u.className,i.alt=s,i.src=p,e=!0,a.appendChild(i)}i||a.appendChild(C(s,!1)),i=null}e&&(n":">","'":"'",'"':"""},g=/(?:\ud83d\udc68\ud83c\udffb\u200d\ud83e\udd1d\u200d\ud83d\udc68\ud83c[\udffc-\udfff]|\ud83d\udc68\ud83c\udffc\u200d\ud83e\udd1d\u200d\ud83d\udc68\ud83c[\udffb\udffd-\udfff]|\ud83d\udc68\ud83c\udffd\u200d\ud83e\udd1d\u200d\ud83d\udc68\ud83c[\udffb\udffc\udffe\udfff]|\ud83d\udc68\ud83c\udffe\u200d\ud83e\udd1d\u200d\ud83d\udc68\ud83c[\udffb-\udffd\udfff]|\ud83d\udc68\ud83c\udfff\u200d\ud83e\udd1d\u200d\ud83d\udc68\ud83c[\udffb-\udffe]|\ud83d\udc69\ud83c\udffb\u200d\ud83e\udd1d\u200d\ud83d\udc68\ud83c[\udffc-\udfff]|\ud83d\udc69\ud83c\udffb\u200d\ud83e\udd1d\u200d\ud83d\udc69\ud83c[\udffc-\udfff]|\ud83d\udc69\ud83c\udffc\u200d\ud83e\udd1d\u200d\ud83d\udc68\ud83c[\udffb\udffd-\udfff]|\ud83d\udc69\ud83c\udffc\u200d\ud83e\udd1d\u200d\ud83d\udc69\ud83c[\udffb\udffd-\udfff]|\ud83d\udc69\ud83c\udffd\u200d\ud83e\udd1d\u200d\ud83d\udc68\ud83c[\udffb\udffc\udffe\udfff]|\ud83d\udc69\ud83c\udffd\u200d\ud83e\udd1d\u200d\ud83d\udc69\ud83c[\udffb\udffc\udffe\udfff]|\ud83d\udc69\ud83c\udffe\u200d\ud83e\udd1d\u200d\ud83d\udc68\ud83c[\udffb-\udffd\udfff]|\ud83d\udc69\ud83c\udffe\u200d\ud83e\udd1d\u200d\ud83d\udc69\ud83c[\udffb-\udffd\udfff]|\ud83d\udc69\ud83c\udfff\u200d\ud83e\udd1d\u200d\ud83d\udc68\ud83c[\udffb-\udffe]|\ud83d\udc69\ud83c\udfff\u200d\ud83e\udd1d\u200d\ud83d\udc69\ud83c[\udffb-\udffe]|\ud83e\uddd1\ud83c\udffb\u200d\ud83e\udd1d\u200d\ud83e\uddd1\ud83c[\udffb-\udfff]|\ud83e\uddd1\ud83c\udffc\u200d\ud83e\udd1d\u200d\ud83e\uddd1\ud83c[\udffb-\udfff]|\ud83e\uddd1\ud83c\udffd\u200d\ud83e\udd1d\u200d\ud83e\uddd1\ud83c[\udffb-\udfff]|\ud83e\uddd1\ud83c\udffe\u200d\ud83e\udd1d\u200d\ud83e\uddd1\ud83c[\udffb-\udfff]|\ud83e\uddd1\ud83c\udfff\u200d\ud83e\udd1d\u200d\ud83e\uddd1\ud83c[\udffb-\udfff]|\ud83e\uddd1\u200d\ud83e\udd1d\u200d\ud83e\uddd1|\ud83d\udc6b\ud83c[\udffb-\udfff]|\ud83d\udc6c\ud83c[\udffb-\udfff]|\ud83d\udc6d\ud83c[\udffb-\udfff]|\ud83d[\udc6b-\udc6d])|(?:\ud83d[\udc68\udc69]|\ud83e\uddd1)(?:\ud83c[\udffb-\udfff])?\u200d(?:\u2695\ufe0f|\u2696\ufe0f|\u2708\ufe0f|\ud83c[\udf3e\udf73\udf7c\udf84\udf93\udfa4\udfa8\udfeb\udfed]|\ud83d[\udcbb\udcbc\udd27\udd2c\ude80\ude92]|\ud83e[\uddaf-\uddb3\uddbc\uddbd])|(?:\ud83c[\udfcb\udfcc]|\ud83d[\udd74\udd75]|\u26f9)((?:\ud83c[\udffb-\udfff]|\ufe0f)\u200d[\u2640\u2642]\ufe0f)|(?:\ud83c[\udfc3\udfc4\udfca]|\ud83d[\udc6e\udc70\udc71\udc73\udc77\udc81\udc82\udc86\udc87\ude45-\ude47\ude4b\ude4d\ude4e\udea3\udeb4-\udeb6]|\ud83e[\udd26\udd35\udd37-\udd39\udd3d\udd3e\uddb8\uddb9\uddcd-\uddcf\uddd6-\udddd])(?:\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\u26a7\ufe0f|\ud83c\udff3\ufe0f\u200d\ud83c\udf08|\ud83c\udff4\u200d\u2620\ufe0f|\ud83d\udc15\u200d\ud83e\uddba|\ud83d\udc3b\u200d\u2744\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|\ud83e\uddde\u200d\u2640\ufe0f|\ud83e\uddde\u200d\u2642\ufe0f|\ud83e\udddf\u200d\u2640\ufe0f|\ud83e\udddf\u200d\u2642\ufe0f|\ud83d\udc08\u200d\u2b1b)|[#*0-9]\ufe0f?\u20e3|(?:[\xa9\xae\u2122\u265f]\ufe0f)|(?:\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]|[\u203c\u2049\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\u2640\u2642\u2648-\u2653\u2660\u2663\u2665\u2666\u2668\u267b\u267f\u2692-\u2697\u2699\u269b\u269c\u26a0\u26a1\u26a7\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))|(?:(?:\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[\udd0c\udd0f\udd18-\udd1c\udd1e\udd1f\udd26\udd30-\udd39\udd3d\udd3e\udd77\uddb5\uddb6\uddb8\uddb9\uddbb\uddcd-\uddcf\uddd1-\udddd]|[\u270a\u270b]))(?:\ud83c[\udffb-\udfff])?|(?:\ud83c\udff4\udb40\udc67\udb40\udc62\udb40\udc65\udb40\udc6e\udb40\udc67\udb40\udc7f|\ud83c\udff4\udb40\udc67\udb40\udc62\udb40\udc73\udb40\udc63\udb40\udc74\udb40\udc7f|\ud83c\udff4\udb40\udc67\udb40\udc62\udb40\udc77\udb40\udc6c\udb40\udc73\udb40\udc7f|\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]|\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\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\uded5-\uded7\udeeb\udeec\udef4-\udefc\udfe0-\udfeb]|\ud83e[\udd0d\udd0e\udd10-\udd17\udd1d\udd20-\udd25\udd27-\udd2f\udd3a\udd3c\udd3f-\udd45\udd47-\udd76\udd78\udd7a-\uddb4\uddb7\uddba\uddbc-\uddcb\uddd0\uddde-\uddff\ude70-\ude74\ude78-\ude7a\ude80-\ude86\ude90-\udea8\udeb0-\udeb6\udec0-\udec2\uded0-\uded6]|[\u23e9-\u23ec\u23f0\u23f3\u267e\u26ce\u2705\u2728\u274c\u274e\u2753-\u2755\u2795-\u2797\u27b0\u27bf\ue50a])|\ufe0f/g,c=/\uFE0F/g,e=String.fromCharCode(8205),t=/[&<>'"]/g,x=/^(?:iframe|noframes|noscript|script|select|style|textarea)$/,a=String.fromCharCode;return f;function C(d,u){return document.createTextNode(u?d.replace(c,""):d)}function b(d,u){return"".concat(u.base,u.size,"/",d,u.ext)}function N(d){return i(d.indexOf(e)<0?d.replace(c,""):d)}function r(d){return u[d]}function n(){return null}function o(d,u){return String(d).replace(g,u)}function i(d,u){for(var f=[],c=0,e=0,a=0;a. $relative = implode( '/', $relative ); - } elseif ( ! isset( $src_url['host'] ) || $src_url['host'] === $site_url['host'] ) { + } elseif ( ! isset( $src_url['host'] ) || ! isset( $site_url['host'] ) || $src_url['host'] === $site_url['host'] ) { if ( ! isset( $site_url['path'] ) ) { $relative = trim( $src_url['path'], '/' ); } elseif ( ( strpos( $src_url['path'], trailingslashit( $site_url['path'] ) ) === 0 ) ) { @@ -1617,7 +1617,7 @@ function wp_dropdown_languages( $args = array() ) { // Combine the output string. $output = sprintf( ''; if ( $parsed_args['echo'] ) { diff --git a/wp-includes/link-template.php b/wp-includes/link-template.php index 58366208b1..027f2b8ea2 100644 --- a/wp-includes/link-template.php +++ b/wp-includes/link-template.php @@ -164,7 +164,10 @@ function get_permalink( $post = 0, $leavename = false ) { */ $permalink = apply_filters( 'pre_post_link', $permalink, $post, $leavename ); - if ( $permalink && ! in_array( $post->post_status, array( 'draft', 'pending', 'auto-draft', 'future' ), true ) ) { + if ( + $permalink && + ! in_array( $post->post_status, array( 'draft', 'pending', 'auto-draft', 'future', 'trash' ), true ) + ) { $category = ''; if ( strpos( $permalink, '%category%' ) !== false ) { @@ -452,6 +455,8 @@ function get_attachment_link( $post = null, $leavename = false ) { * Filters the permalink for an attachment. * * @since 2.0.0 + * @since 5.6.0 Providing an empty string will now disable + * the view attachment page link on the media modal. * * @param string $link The attachment's permalink. * @param int $post_id Attachment ID. @@ -515,7 +520,7 @@ function get_month_link( $year, $month ) { $monthlink = $wp_rewrite->get_month_permastruct(); if ( ! empty( $monthlink ) ) { $monthlink = str_replace( '%year%', $year, $monthlink ); - $monthlink = str_replace( '%monthnum%', zeroise( intval( $month ), 2 ), $monthlink ); + $monthlink = str_replace( '%monthnum%', zeroise( (int) $month, 2 ), $monthlink ); $monthlink = home_url( user_trailingslashit( $monthlink, 'month' ) ); } else { $monthlink = home_url( '?m=' . $year . zeroise( $month, 2 ) ); @@ -560,8 +565,8 @@ function get_day_link( $year, $month, $day ) { $daylink = $wp_rewrite->get_day_permastruct(); if ( ! empty( $daylink ) ) { $daylink = str_replace( '%year%', $year, $daylink ); - $daylink = str_replace( '%monthnum%', zeroise( intval( $month ), 2 ), $daylink ); - $daylink = str_replace( '%day%', zeroise( intval( $day ), 2 ), $daylink ); + $daylink = str_replace( '%monthnum%', zeroise( (int) $month, 2 ), $daylink ); + $daylink = str_replace( '%day%', zeroise( (int) $day, 2 ), $daylink ); $daylink = home_url( user_trailingslashit( $daylink, 'day' ) ); } else { $daylink = home_url( '?m=' . $year . zeroise( $month, 2 ) . zeroise( $day, 2 ) ); @@ -1208,7 +1213,8 @@ function get_search_comments_feed_link( $search_query = '', $feed = '' ) { * @global WP_Rewrite $wp_rewrite WordPress rewrite component. * * @param string $post_type Post type. - * @return string|false The post type archive permalink. + * @return string|false The post type archive permalink. False if the post type + * does not exist or does not have an archive. */ function get_post_type_archive_link( $post_type ) { global $wp_rewrite; @@ -1263,10 +1269,11 @@ function get_post_type_archive_link( $post_type ) { * * @since 3.1.0 * - * @param string $post_type Post type + * @param string $post_type Post type. * @param string $feed Optional. Feed type. Possible values include 'rss2', 'atom'. * Default is the value of get_default_feed(). - * @return string|false The post type feed permalink. + * @return string|false The post type feed permalink. False if the post type + * does not exist or does not have an archive. */ function get_post_type_archive_feed_link( $post_type, $feed = '' ) { $default_feed = get_default_feed(); @@ -1353,8 +1360,8 @@ function get_preview_post_link( $post = null, $query_args = array(), $preview_li * * @param int|WP_Post $id Optional. Post ID or post object. Default is the global `$post`. * @param string $context Optional. How to output the '&' character. Default '&'. - * @return string|null The edit post link for the given post. null if the post type is invalid or does - * not allow an editing UI. + * @return string|null The edit post link for the given post. Null if the post type does not exist + * or does not allow an editing UI. */ function get_edit_post_link( $id = 0, $context = 'display' ) { $post = get_post( $id ); @@ -1961,6 +1968,7 @@ function adjacent_posts_rel_link( $title = '%title', $in_same_term = false, $exc * or theme templates. * * @since 3.0.0 + * @since 5.6.0 No longer used in core. * * @see adjacent_posts_rel_link() */ @@ -2317,7 +2325,7 @@ function get_next_posts_page_link( $max_page = 0 ) { if ( ! $paged ) { $paged = 1; } - $nextpage = intval( $paged ) + 1; + $nextpage = (int) $paged + 1; if ( ! $max_page || $max_page >= $nextpage ) { return get_pagenum_link( $nextpage ); } @@ -2366,7 +2374,7 @@ function get_next_posts_link( $label = null, $max_page = 0 ) { $paged = 1; } - $nextpage = intval( $paged ) + 1; + $nextpage = (int) $paged + 1; if ( null === $label ) { $label = __( 'Next Page »' ); @@ -2415,7 +2423,7 @@ function get_previous_posts_page_link() { global $paged; if ( ! is_single() ) { - $nextpage = intval( $paged ) - 1; + $nextpage = (int) $paged - 1; if ( $nextpage < 1 ) { $nextpage = 1; } @@ -2888,7 +2896,7 @@ function get_next_comments_link( $label = '', $max_page = 0 ) { $page = 1; } - $nextpage = intval( $page ) + 1; + $nextpage = (int) $page + 1; if ( empty( $max_page ) ) { $max_page = $wp_query->max_num_comment_pages; @@ -2943,11 +2951,11 @@ function get_previous_comments_link( $label = '' ) { $page = get_query_var( 'cpage' ); - if ( intval( $page ) <= 1 ) { + if ( (int) $page <= 1 ) { return; } - $prevpage = intval( $page ) - 1; + $prevpage = (int) $page - 1; if ( empty( $label ) ) { $label = __( '« Older Comments' ); @@ -3910,7 +3918,7 @@ function wp_get_shortlink( $id = 0, $context = 'post', $allow_slugs = true ) { if ( 'page' === $post->post_type && get_option( 'page_on_front' ) == $post->ID && 'page' === get_option( 'show_on_front' ) ) { $shortlink = home_url( '/' ); - } elseif ( $post_type->public ) { + } elseif ( $post_type && $post_type->public ) { $shortlink = home_url( '?p=' . $post_id ); } } diff --git a/wp-includes/load.php b/wp-includes/load.php index 8cc14e06db..6bd7614ecd 100644 --- a/wp-includes/load.php +++ b/wp-includes/load.php @@ -86,6 +86,47 @@ function wp_fix_server_vars() { $_SERVER['PHP_SELF'] = preg_replace( '/(\?.*)?$/', '', $_SERVER['REQUEST_URI'] ); $PHP_SELF = $_SERVER['PHP_SELF']; } + + wp_populate_basic_auth_from_authorization_header(); +} + +/** + * Populates the Basic Auth server details from the Authorization header. + * + * Some servers running in CGI or FastCGI mode don't pass the Authorization + * header on to WordPress. If it's been rewritten to the `HTTP_AUTHORIZATION` header, + * fill in the proper $_SERVER variables instead. + * + * @since 5.6.0 + */ +function wp_populate_basic_auth_from_authorization_header() { + // If we don't have anything to pull from, return early. + if ( ! isset( $_SERVER['HTTP_AUTHORIZATION'] ) && ! isset( $_SERVER['REDIRECT_HTTP_AUTHORIZATION'] ) ) { + return; + } + + // If either PHP_AUTH key is already set, do nothing. + if ( isset( $_SERVER['PHP_AUTH_USER'] ) || isset( $_SERVER['PHP_AUTH_PW'] ) ) { + return; + } + + // From our prior conditional, one of these must be set. + $header = isset( $_SERVER['HTTP_AUTHORIZATION'] ) ? $_SERVER['HTTP_AUTHORIZATION'] : $_SERVER['REDIRECT_HTTP_AUTHORIZATION']; + + // Test to make sure the pattern matches expected. + if ( ! preg_match( '%^Basic [a-z\d/+]*={0,2}$%i', $header ) ) { + return; + } + + // Removing `Basic ` the token would start six characters in. + $token = substr( $header, 6 ); + $userpass = base64_decode( $token ); + + list( $user, $pass ) = explode( ':', $userpass ); + + // Now shove them in the proper keys where we're expecting later on. + $_SERVER['PHP_AUTH_USER'] = $user; + $_SERVER['PHP_AUTH_PW'] = $pass; } /** @@ -112,7 +153,11 @@ function wp_check_php_mysql_versions() { exit( 1 ); } - if ( ! extension_loaded( 'mysql' ) && ! extension_loaded( 'mysqli' ) && ! extension_loaded( 'mysqlnd' ) && ! file_exists( WP_CONTENT_DIR . '/db.php' ) ) { + if ( ! extension_loaded( 'mysql' ) && ! extension_loaded( 'mysqli' ) && ! extension_loaded( 'mysqlnd' ) + // This runs before default constants are defined, so we can't assume WP_CONTENT_DIR is set yet. + && ( defined( 'WP_CONTENT_DIR' ) && ! file_exists( WP_CONTENT_DIR . '/db.php' ) + || ! file_exists( ABSPATH . 'wp-content/db.php' ) ) + ) { require_once ABSPATH . WPINC . '/functions.php'; wp_load_translations_early(); $args = array( @@ -134,7 +179,7 @@ function wp_check_php_mysql_versions() { * The type can be set via the `WP_ENVIRONMENT_TYPE` global system variable, * or a constant of the same name. * - * Possible values include 'local', 'development', 'staging', 'production'. + * Possible values are 'local', 'development', 'staging', and 'production'. * If not set, the type defaults to 'production'. * * @since 5.5.0 @@ -1446,17 +1491,30 @@ function wp_doing_cron() { } /** - * Check whether variable is a WordPress Error. + * Checks whether the given variable is a WordPress Error. * - * Returns true if $thing is an object of the WP_Error class. + * Returns whether `$thing` is an instance 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. + * @param mixed $thing The variable to check. + * @return bool Whether the variable is an instance of WP_Error. */ function is_wp_error( $thing ) { - return ( $thing instanceof WP_Error ); + $is_wp_error = ( $thing instanceof WP_Error ); + + if ( $is_wp_error ) { + /** + * Fires when `is_wp_error()` is called and its parameter is an instance of `WP_Error`. + * + * @since 5.6.0 + * + * @param WP_Error $thing The error object passed to `is_wp_error()`. + */ + do_action( 'is_wp_error_instance', $thing ); + } + + return $is_wp_error; } /** @@ -1537,11 +1595,11 @@ function wp_finalize_scraping_edited_file_errors( $scrape_key ) { */ function wp_is_json_request() { - if ( isset( $_SERVER['HTTP_ACCEPT'] ) && false !== strpos( $_SERVER['HTTP_ACCEPT'], 'application/json' ) ) { + if ( isset( $_SERVER['HTTP_ACCEPT'] ) && wp_is_json_media_type( $_SERVER['HTTP_ACCEPT'] ) ) { return true; } - if ( isset( $_SERVER['CONTENT_TYPE'] ) && 'application/json' === $_SERVER['CONTENT_TYPE'] ) { + if ( isset( $_SERVER['CONTENT_TYPE'] ) && wp_is_json_media_type( $_SERVER['CONTENT_TYPE'] ) ) { return true; } @@ -1577,6 +1635,24 @@ function wp_is_jsonp_request() { } +/** + * Checks whether a string is a valid JSON Media Type. + * + * @since 5.6.0 + * + * @param string $media_type A Media Type string to check. + * @return bool True if string is a valid JSON Media Type. + */ +function wp_is_json_media_type( $media_type ) { + static $cache = array(); + + if ( ! isset( $cache[ $media_type ] ) ) { + $cache[ $media_type ] = (bool) preg_match( '/(^|\s|,)application\/([\w!#\$&-\^\.\+]+\+)?json(\+oembed)?($|\s|;|,)/i', $media_type ); + } + + return $cache[ $media_type ]; +} + /** * Checks whether current request is an XML request, or is expecting an XML response. * diff --git a/wp-includes/media-template.php b/wp-includes/media-template.php index 0a07b5619f..84952584ab 100644 --- a/wp-includes/media-template.php +++ b/wp-includes/media-template.php @@ -160,7 +160,7 @@ function wp_print_media_templates() { /* translators: 1: Link to tutorial, 2: Additional link attributes, 3: Accessibility text. */ __( 'Describe the purpose of the image%3$s. Leave empty if the image is purely decorative.' ), esc_url( 'https://www.w3.org/WAI/tutorials/images/decision-tree' ), - 'target="_blank" rel="noopener noreferrer"', + 'target="_blank" rel="noopener"', sprintf( ' %s', /* translators: Accessibility text. */ @@ -309,10 +309,10 @@ function wp_print_media_templates() { @@ -366,7 +366,7 @@ function wp_print_media_templates() { <# } #> <# if ( 'audio' === data.type ) { #> -
    +
    @@ -405,10 +405,27 @@ function wp_print_media_templates() {

    -
    {{ data.filename }}
    -
    {{ data.mime }}
    {{ data.dateFormatted }}
    - +
    + + <# if ( data.authorLink ) { #> + {{ data.authorName }} + <# } else { #> + {{ data.authorName }} + <# } #> +
    + <# if ( data.uploadedToTitle ) { #> +
    + + <# if ( data.uploadedToLink ) { #> + {{ data.uploadedToTitle }} + <# } else { #> + {{ data.uploadedToTitle }} + <# } #> +
    + <# } #> +
    {{ data.filename }}
    +
    {{ data.mime }}
    {{ data.filesizeHumanReadable }}
    <# if ( 'image' === data.type && ! data.uploading ) { #> <# if ( data.width && data.height ) { #> @@ -442,6 +459,10 @@ function wp_print_media_templates() {
    <# } #> + <# if ( data.mediaStates ) { #> +
    {{ data.mediaStates }}
    + <# } #> +
    <# if ( data.compat && data.compat.meta ) { #> {{{ data.compat.meta }}} @@ -485,25 +506,11 @@ function wp_print_media_templates() { - - - {{ data.authorName }} - - <# if ( data.uploadedToTitle ) { #> - - - <# if ( data.uploadedToLink ) { #> - {{ data.uploadedToTitle }} - <# } else { #> - {{ data.uploadedToTitle }} - <# } #> - - <# } #> - + @@ -511,11 +518,19 @@ function wp_print_media_templates() {
    - - <# if ( data.can.save ) { #> | + <# if ( data.link ) { #> + + <# } #> + <# if ( data.can.save ) { #> + <# if ( data.link ) { #> + | + <# } #> <# } #> - <# if ( ! data.uploading && data.can.remove ) { #> | + <# if ( ! data.uploading && data.can.remove ) { #> + <# if ( data.link || data.can.save ) { #> + | + <# } #> <# if ( 'trash' === data.status ) { #> @@ -536,7 +551,7 @@ function wp_print_media_templates() {
    <# if ( data.uploading ) { #>
    - <# } else if ( 'image' === data.type && data.sizes ) { #> + <# } else if ( 'image' === data.type && data.size && data.size.url ) { #>
    @@ -595,15 +610,41 @@ function wp_print_media_templates() {
    -
    - <# if ( data.uploading ) { #> -
    - <# } else if ( 'image' === data.type && data.sizes ) { #> - - <# } else { #> - - <# } #> -
    + + <# if ( 'audio' === data.type ) { #> +
    + +
    + <# } else if ( 'video' === data.type ) { + var w_rule = ''; + if ( data.width ) { + w_rule = 'width: ' + data.width + 'px;'; + } else if ( wp.media.view.settings.contentWidth ) { + w_rule = 'width: ' + wp.media.view.settings.contentWidth + 'px;'; + } + #> +
    + +
    + <# } else { #> +
    + <# if ( data.uploading ) { #> +
    + <# } else if ( 'image' === data.type && data.size && data.size.url ) { #> + + <# } else { #> + + <# } #> +
    + <# } #> +
    {{ data.filename }}
    {{ data.dateFormatted }}
    @@ -636,6 +677,10 @@ function wp_print_media_templates() {
    <# } #> + <# if ( data.mediaStates ) { #> +
    {{ data.mediaStates }}
    + <# } #> + <# if ( ! data.uploading && data.can.remove ) { #> <# if ( 'trash' === data.status ) { #> @@ -694,7 +739,7 @@ function wp_print_media_templates() {
    - +
    diff --git a/wp-includes/media.php b/wp-includes/media.php index bd15e841ac..e651dcbccf 100644 --- a/wp-includes/media.php +++ b/wp-includes/media.php @@ -42,13 +42,12 @@ function wp_get_additional_image_sizes() { * * @since 2.5.0 * - * @global int $content_width + * @global int $content_width * * @param int $width Width of the image in pixels. * @param int $height Height of the image in pixels. - * @param string|array $size Optional. Image size. Accepts any valid image size, or an array - * of width and height values in pixels (in that order). - * Default 'medium'. + * @param string|int[] $size Optional. Image size. Accepts any registered image size name, or an array + * of width and height values in pixels (in that order). Default 'medium'. * @param string $context Optional. Could be 'display' (like in a theme) or 'edit' * (like inserting into an editor). Default null. * @return int[] { @@ -71,23 +70,23 @@ function image_constrain_size_for_editor( $width, $height, $size = 'medium', $co $max_width = $size[0]; $max_height = $size[1]; } elseif ( 'thumb' === $size || 'thumbnail' === $size ) { - $max_width = intval( get_option( 'thumbnail_size_w' ) ); - $max_height = intval( get_option( 'thumbnail_size_h' ) ); + $max_width = (int) get_option( 'thumbnail_size_w' ); + $max_height = (int) get_option( 'thumbnail_size_h' ); // Last chance thumbnail size defaults. if ( ! $max_width && ! $max_height ) { $max_width = 128; $max_height = 96; } } elseif ( 'medium' === $size ) { - $max_width = intval( get_option( 'medium_size_w' ) ); - $max_height = intval( get_option( 'medium_size_h' ) ); + $max_width = (int) get_option( 'medium_size_w' ); + $max_height = (int) get_option( 'medium_size_h' ); } elseif ( 'medium_large' === $size ) { - $max_width = intval( get_option( 'medium_large_size_w' ) ); - $max_height = intval( get_option( 'medium_large_size_h' ) ); + $max_width = (int) get_option( 'medium_large_size_w' ); + $max_height = (int) get_option( 'medium_large_size_h' ); - if ( intval( $content_width ) > 0 ) { - $max_width = min( intval( $content_width ), $max_width ); + if ( (int) $content_width > 0 ) { + $max_width = min( (int) $content_width, $max_width ); } } elseif ( 'large' === $size ) { /* @@ -96,18 +95,18 @@ function image_constrain_size_for_editor( $width, $height, $size = 'medium', $co * itself, and within the theme's content width if it's known. The user * can resize it in the editor if they wish. */ - $max_width = intval( get_option( 'large_size_w' ) ); - $max_height = intval( get_option( 'large_size_h' ) ); + $max_width = (int) get_option( 'large_size_w' ); + $max_height = (int) get_option( 'large_size_h' ); - if ( intval( $content_width ) > 0 ) { - $max_width = min( intval( $content_width ), $max_width ); + if ( (int) $content_width > 0 ) { + $max_width = min( (int) $content_width, $max_width ); } } elseif ( ! empty( $_wp_additional_image_sizes ) && in_array( $size, array_keys( $_wp_additional_image_sizes ), true ) ) { - $max_width = intval( $_wp_additional_image_sizes[ $size ]['width'] ); - $max_height = intval( $_wp_additional_image_sizes[ $size ]['height'] ); + $max_width = (int) $_wp_additional_image_sizes[ $size ]['width']; + $max_height = (int) $_wp_additional_image_sizes[ $size ]['height']; // 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 ); + if ( (int) $content_width > 0 && 'edit' === $context ) { + $max_width = min( (int) $content_width, $max_width ); } } else { // $size === 'full' has no constraint. $max_width = $width; @@ -125,10 +124,11 @@ function image_constrain_size_for_editor( $width, $height, $size = 'medium', $co * @type int $0 The maximum width in pixels. * @type int $1 The maximum height in pixels. * } - * @param string|array $size Size of what the result image should be. - * @param string $context The context the image is being resized for. - * Possible values are 'display' (like in a theme) - * or 'edit' (like inserting into an editor). + * @param string|int[] $size Requested image size. Can be any registered image size name, or + * an array of width and height values in pixels (in that order). + * @param string $context The context the image is being resized for. + * Possible values are 'display' (like in a theme) + * or 'edit' (like inserting into an editor). */ list( $max_width, $max_height ) = apply_filters( 'editor_max_image_size', array( $max_width, $max_height ), $size, $context ); @@ -155,10 +155,10 @@ function image_constrain_size_for_editor( $width, $height, $size = 'medium', $co function image_hwstring( $width, $height ) { $out = ''; if ( $width ) { - $out .= 'width="' . intval( $width ) . '" '; + $out .= 'width="' . (int) $width . '" '; } if ( $height ) { - $out .= 'height="' . intval( $height ) . '" '; + $out .= 'height="' . (int) $height . '" '; } return $out; } @@ -177,9 +177,8 @@ function image_hwstring( $width, $height ) { * @since 2.5.0 * * @param int $id Attachment ID for image. - * @param string|int[] $size Optional. Image size to scale to. Accepts any valid image size name, - * or an array of width and height values in pixels (in that order). - * Default 'medium'. + * @param string|int[] $size Optional. Image size. Accepts any registered image size name, or an array + * of width and height values in pixels (in that order). Default 'medium'. * @return array|false { * Array of image data, or boolean false if no image is available. * @@ -202,8 +201,8 @@ function image_downsize( $id, $size = 'medium' ) { * * @param bool|array $downsize Whether to short-circuit the image downsize. * @param int $id Attachment ID for image. - * @param array|string $size Requested size of image. Image size name, or array of width - * and height values (in that order). + * @param string|int[] $size Requested image size. Can be any registered image size name, or + * an array of width and height values in pixels (in that order). */ $out = apply_filters( 'image_downsize', false, $id, $size ); @@ -367,9 +366,8 @@ function set_post_thumbnail_size( $width = 0, $height = 0, $crop = false ) { * @param string $alt Image description for the alt attribute. * @param string $title Image description for the title attribute. * @param string $align Part of the class name for aligning the image. - * @param string|array $size Optional. Registered image size to retrieve a tag for. Accepts any - * valid image size, or an array of width and height values in pixels - * (in that order). Default 'medium'. + * @param string|int[] $size Optional. Image size. Accepts any registered image size name, or an array of + * width and height values in pixels (in that order). Default 'medium'. * @return string HTML IMG element for given image attachment */ function get_image_tag( $id, $alt, $title, $align, $size = 'medium' ) { @@ -379,7 +377,8 @@ function get_image_tag( $id, $alt, $title, $align, $size = 'medium' ) { $title = $title ? 'title="' . esc_attr( $title ) . '" ' : ''; - $class = 'align' . esc_attr( $align ) . ' size-' . esc_attr( $size ) . ' wp-image-' . $id; + $size_class = is_array( $size ) ? implode( 'x', $size ) : $size; + $class = 'align' . esc_attr( $align ) . ' size-' . esc_attr( $size_class ) . ' wp-image-' . $id; /** * Filters the value of the attachment's image tag class attribute. @@ -389,8 +388,8 @@ function get_image_tag( $id, $alt, $title, $align, $size = 'medium' ) { * @param string $class CSS class name or space-separated list of classes. * @param int $id Attachment ID. * @param string $align Part of the class name for aligning the image. - * @param string|array $size Size of image. Image size or array of width and height values (in that order). - * Default 'medium'. + * @param string|int[] $size Requested image size. Can be any registered image size name, or + * an array of width and height values in pixels (in that order). */ $class = apply_filters( 'get_image_tag_class', $class, $id, $align, $size ); @@ -406,8 +405,8 @@ function get_image_tag( $id, $alt, $title, $align, $size = 'medium' ) { * @param string $alt Image description for the alt attribute. * @param string $title Image description for the title attribute. * @param string $align Part of the class name for aligning the image. - * @param string|array $size Size of image. Image size or array of width and height values (in that order). - * Default 'medium'. + * @param string|int[] $size Requested image size. Can be any registered image size name, or + * an array of width and height values in pixels (in that order). */ return apply_filters( 'get_image_tag', $html, $id, $alt, $title, $align, $size ); } @@ -744,18 +743,17 @@ function wp_image_matches_ratio( $source_width, $source_height, $target_width, $ * @since 2.5.0 * * @param int $post_id Attachment ID. - * @param array|string $size Optional. Image size. Accepts any valid image size, or an array - * of width and height values in pixels (in that order). - * Default 'thumbnail'. + * @param string|int[] $size Optional. Image size. Accepts any registered image size name, or an array + * of width and height values in pixels (in that order). Default 'thumbnail'. * @return array|false { * Array of file relative path, width, and height on success. Additionally includes absolute - * path and URL if registered size is passed to $size parameter. False on failure. + * path and URL if registered size is passed to `$size` parameter. False on failure. * - * @type string $file Image's path relative to uploads directory - * @type int $width Width of image - * @type int $height Height of image - * @type string $path Image's absolute filesystem path. - * @type string $url Image's URL. + * @type string $file Path of image relative to uploads directory. + * @type int $width Width of image in pixels. + * @type int $height Height of image in pixels. + * @type string $path Absolute filesystem path of image. + * @type string $url URL of image. * } */ function image_get_intermediate_size( $post_id, $size = 'thumbnail' ) { @@ -778,7 +776,7 @@ function image_get_intermediate_size( $post_id, $size = 'thumbnail' ) { foreach ( $imagedata['sizes'] as $_size => $data ) { // If there's an exact match to an existing image size, short circuit. - if ( intval( $data['width'] ) === intval( $size[0] ) && intval( $data['height'] ) === intval( $size[1] ) ) { + if ( (int) $data['width'] === (int) $size[0] && (int) $data['height'] === (int) $size[1] ) { $candidates[ $data['width'] * $data['height'] ] = $data; break; } @@ -844,9 +842,9 @@ function image_get_intermediate_size( $post_id, $size = 'thumbnail' ) { * * @param array $data Array of file relative path, width, and height on success. May also include * file absolute path and URL. - * @param int $post_id The post_id of the image attachment - * @param string|array $size Registered image size or flat array of initially-requested height and width - * dimensions (in that order). + * @param int $post_id The ID of the image attachment. + * @param string|int[] $size Requested image size. Can be any registered image size name, or + * an array of width and height values in pixels (in that order). */ return apply_filters( 'image_get_intermediate_size', $data, $post_id, $size ); } @@ -899,16 +897,16 @@ function wp_get_registered_image_subsizes() { if ( isset( $additional_sizes[ $size_name ]['width'] ) ) { // For sizes added by plugins and themes. - $size_data['width'] = intval( $additional_sizes[ $size_name ]['width'] ); + $size_data['width'] = (int) $additional_sizes[ $size_name ]['width']; } else { // For default sizes set in options. - $size_data['width'] = intval( get_option( "{$size_name}_size_w" ) ); + $size_data['width'] = (int) get_option( "{$size_name}_size_w" ); } if ( isset( $additional_sizes[ $size_name ]['height'] ) ) { - $size_data['height'] = intval( $additional_sizes[ $size_name ]['height'] ); + $size_data['height'] = (int) $additional_sizes[ $size_name ]['height']; } else { - $size_data['height'] = intval( get_option( "{$size_name}_size_h" ) ); + $size_data['height'] = (int) get_option( "{$size_name}_size_h" ); } if ( empty( $size_data['width'] ) && empty( $size_data['height'] ) ) { @@ -938,8 +936,8 @@ function wp_get_registered_image_subsizes() { * @since 2.5.0 * * @param int $attachment_id Image attachment ID. - * @param string|int[] $size Optional. Image size. Accepts any valid image size name, or an array of width - * and height values in pixels (in that order). Default 'thumbnail'. + * @param string|int[] $size Optional. Image size. Accepts any registered image size name, or an array of + * width and height values in pixels (in that order). Default 'thumbnail'. * @param bool $icon Optional. Whether the image should fall back to a mime type icon. Default false. * @return array|false { * Array of image data, or boolean false if no image is available. @@ -986,15 +984,15 @@ function wp_get_attachment_image_src( $attachment_id, $size = 'thumbnail', $icon * @type bool $3 Whether the image is a resized image. * } * @param int $attachment_id Image attachment ID. - * @param string|int[] $size Requested size of image. Image size name, or array of width - * and height values (in that order). + * @param string|int[] $size Requested image size. Can be any registered image size name, or + * an array of width and height values in pixels (in that order). * @param bool $icon Whether the image should be treated as an icon. */ return apply_filters( 'wp_get_attachment_image_src', $image, $attachment_id, $size, $icon ); } /** - * Get an HTML img element representing an image attachment + * Get an HTML img element representing an image attachment. * * While `$size` will accept an array, it is better to register a size with * add_image_size() so that a cropped version is generated. It's much more @@ -1006,8 +1004,8 @@ function wp_get_attachment_image_src( $attachment_id, $size = 'thumbnail', $icon * @since 5.5.0 The `$loading` attribute was added. * * @param int $attachment_id Image attachment ID. - * @param string|array $size Optional. Image size. Accepts any valid image size, or an array of width - * and height values in pixels (in that order). Default 'thumbnail'. + * @param string|int[] $size Optional. Image size. Accepts any registered image size name, or an array + * of width and height values in pixels (in that order). Default 'thumbnail'. * @param bool $icon Optional. Whether the image should be treated as an icon. Default false. * @param string|array $attr { * Optional. Attributes for the image markup. @@ -1037,7 +1035,7 @@ function wp_get_attachment_image( $attachment_id, $size = 'thumbnail', $icon = f $size_class = $size; if ( is_array( $size_class ) ) { - $size_class = join( 'x', $size_class ); + $size_class = implode( 'x', $size_class ); } $default_attr = array( @@ -1083,11 +1081,11 @@ function wp_get_attachment_image( $attachment_id, $size = 'thumbnail', $icon = f * * @since 2.8.0 * - * @param array $attr Array of attribute values for the image markup, keyed by attribute name. + * @param string[] $attr Array of attribute values for the image markup, keyed by attribute name. * See wp_get_attachment_image(). * @param WP_Post $attachment Image attachment post. - * @param string|array $size Requested size. Image size or array of width and height values - * (in that order). Default 'thumbnail'. + * @param string|int[] $size Requested image size. Can be any registered image size name, or + * an array of width and height values in pixels (in that order). */ $attr = apply_filters( 'wp_get_attachment_image_attributes', $attr, $attachment, $size ); @@ -1101,7 +1099,20 @@ function wp_get_attachment_image( $attachment_id, $size = 'thumbnail', $icon = f $html .= ' />'; } - return $html; + /** + * HTML img element representing an image attachment. + * + * @since 5.6.0 + * + * @param string $html HTML img element or empty string on failure. + * @param int $attachment_id Image attachment ID. + * @param string|int[] $size Requested image size. Can be any registered image size name, or + * an array of width and height values in pixels (in that order). + * @param bool $icon Whether the image should be treated as an icon. + * @param string[] $attr Array of attribute values for the image markup, keyed by attribute name. + * See wp_get_attachment_image(). + */ + return apply_filters( 'wp_get_attachment_image', $html, $attachment_id, $size, $icon, $attr ); } /** @@ -1110,8 +1121,8 @@ function wp_get_attachment_image( $attachment_id, $size = 'thumbnail', $icon = f * @since 4.4.0 * * @param int $attachment_id Image attachment ID. - * @param string|array $size Optional. Image size to retrieve. Accepts any valid image size, or an array - * of width and height values in pixels (in that order). Default 'thumbnail'. + * @param string|int[] $size Optional. Image size. Accepts any registered image size name, or an array of + * width and height values in pixels (in that order). Default 'thumbnail'. * @param bool $icon Optional. Whether the image should be treated as an icon. Default false. * @return string|false Attachment URL or false if no image is available. */ @@ -1153,9 +1164,14 @@ function _wp_get_attachment_relative_path( $file ) { * @since 4.4.0 * @access private * - * @param string $size_name Image size. Accepts any valid image size name ('thumbnail', 'medium', etc.). + * @param string $size_name Image size. Accepts any registered image size name. * @param array $image_meta The image meta data. - * @return array|bool The image meta data as returned by `wp_get_attachment_metadata()`. + * @return array|false { + * Array of width and height or false if the size isn't present in the meta data. + * + * @type int $0 Image width. + * @type int $1 Image height. + * } */ function _wp_get_image_size_from_meta( $size_name, $image_meta ) { if ( 'full' === $size_name ) { @@ -1181,7 +1197,7 @@ function _wp_get_image_size_from_meta( $size_name, $image_meta ) { * @see wp_calculate_image_srcset() * * @param int $attachment_id Image attachment ID. - * @param array|string $size Optional. Image size. Accepts any valid image size, or an array of + * @param string|int[] $size Optional. Image size. Accepts any registered image size name, or an array of * width and height values in pixels (in that order). Default 'medium'. * @param array $image_meta Optional. The image meta data as returned by 'wp_get_attachment_metadata()'. * Default null. @@ -1221,7 +1237,7 @@ function wp_get_attachment_image_srcset( $attachment_id, $size = 'medium', $imag * @param string $image_src The 'src' of the image. * @param array $image_meta The image meta data as returned by 'wp_get_attachment_metadata()'. * @param int $attachment_id Optional. The image attachment ID. Default 0. - * @return string|bool The 'srcset' attribute value. False on error or when only one source exists. + * @return string|false The 'srcset' attribute value. False on error or when only one source exists. */ function wp_calculate_image_srcset( $size_array, $image_src, $image_meta, $attachment_id = 0 ) { /** @@ -1422,8 +1438,8 @@ function wp_calculate_image_srcset( $size_array, $image_src, $image_meta, $attac * @see wp_calculate_image_sizes() * * @param int $attachment_id Image attachment ID. - * @param array|string $size Optional. Image size. Accepts any valid image size, or an array of width - * and height values in pixels (in that order). Default 'medium'. + * @param string|int[] $size Optional. Image size. Accepts any registered image size name, or an array of + * width and height values in pixels (in that order). Default 'medium'. * @param array $image_meta Optional. The image meta data as returned by 'wp_get_attachment_metadata()'. * Default null. * @return string|bool A valid source size value for use in a 'sizes' attribute or false. @@ -1453,14 +1469,14 @@ function wp_get_attachment_image_sizes( $attachment_id, $size = 'medium', $image * * @since 4.4.0 * - * @param array|string $size Image size to retrieve. Accepts any valid image size, or an array - * of width and height values in pixels (in that order). Default 'medium'. + * @param string|int[] $size Image size. Accepts any registered image size name, or an array of + * width and height values in pixels (in that order). * @param string $image_src Optional. The URL to the image file. Default null. * @param array $image_meta Optional. The image meta data as returned by 'wp_get_attachment_metadata()'. * Default null. * @param int $attachment_id Optional. Image attachment ID. Either `$image_meta` or `$attachment_id` * is needed when using the image size name as argument for `$size`. Default 0. - * @return string|bool A valid source size value for use in a 'sizes' attribute or false. + * @return string|false A valid source size value for use in a 'sizes' attribute or false. */ function wp_calculate_image_sizes( $size, $image_src = null, $image_meta = null, $attachment_id = 0 ) { $width = 0; @@ -1493,8 +1509,8 @@ function wp_calculate_image_sizes( $size, $image_src = null, $image_meta = null, * @since 4.4.0 * * @param string $sizes A source size value for use in a 'sizes' attribute. - * @param array|string $size Requested size. Image size or array of width and height values - * in pixels (in that order). + * @param string|int[] $size Requested image size. Can be any registered image size name, or + * an array of width and height values in pixels (in that order). * @param string|null $image_src The URL to the image file or null. * @param array|null $image_meta The image meta data as returned by wp_get_attachment_metadata() or null. * @param int $attachment_id Image attachment ID of the original image or 0. @@ -1558,7 +1574,7 @@ function wp_image_file_matches_image_meta( $image_location, $image_meta, $attach } /** - * Filter whether an image path or URI matches image meta. + * Filters whether an image path or URI matches image meta. * * @since 5.5.0 * @@ -1684,12 +1700,13 @@ function wp_image_add_srcset_and_sizes( $image, $image_meta, $attachment_id ) { } /** - * Determine whether to add the `loading` attribute to the specified tag in the specified context. + * Determines whether to add the `loading` attribute to the specified tag in the specified context. * * @since 5.5.0 * * @param string $tag_name The tag name. - * @param string $context Additional context, like the current filter name or the function name from where this was called. + * @param string $context Additional context, like the current filter name + * or the function name from where this was called. * @return bool Whether to add the attribute. */ function wp_lazy_loading_enabled( $tag_name, $context ) { @@ -1704,7 +1721,8 @@ function wp_lazy_loading_enabled( $tag_name, $context ) { * * @param bool $default Default value. * @param string $tag_name The tag name. - * @param string $context Additional context, like the current filter name or the function name from where this was called. + * @param string $context Additional context, like the current filter name + * or the function name from where this was called. */ return (bool) apply_filters( 'wp_lazy_loading_enabled', $default, $tag_name, $context ); } @@ -1817,7 +1835,7 @@ function wp_img_tag_add_loading_attr( $image, $context ) { * @since 5.5.0 * * @param string|bool $value The `loading` attribute value. Returning a falsey value will result in - * the attribute being omitted for the image. Default is `lazy`. + * the attribute being omitted for the image. Default 'lazy'. * @param string $image The HTML `img` tag to be filtered. * @param string $context Additional context about how the function was called or where the img tag is. */ @@ -2147,8 +2165,8 @@ function img_caption_shortcode( $attr, $content = null ) { * @type string $captiontag HTML tag to use for each image's caption. * Default 'dd', or 'figcaption' when the theme registers HTML5 gallery support. * @type int $columns Number of columns of images to display. Default 3. - * @type string|array $size Size of the images to display. Accepts any valid image size, or an array of width - * and height values in pixels (in that order). Default 'thumbnail'. + * @type string|int[] $size Size of the images to display. Accepts any registered image size name, or an array + * of width and height values in pixels (in that order). Default 'thumbnail'. * @type string $ids A comma-separated list of IDs of attachments to display. Default empty. * @type string $include A comma-separated list of IDs of attachments to include. Default empty. * @type string $exclude A comma-separated list of IDs of attachments to exclude. Default empty. @@ -2211,7 +2229,7 @@ function gallery_shortcode( $attr ) { 'gallery' ); - $id = intval( $atts['id'] ); + $id = (int) $atts['id']; if ( ! empty( $atts['include'] ) ) { $_attachments = get_posts( @@ -2289,7 +2307,7 @@ function gallery_shortcode( $attr ) { $icontag = 'dt'; } - $columns = intval( $atts['columns'] ); + $columns = (int) $atts['columns']; $itemwidth = $columns > 0 ? floor( 100 / $columns ) : 100; $float = is_rtl() ? 'right' : 'left'; @@ -2330,7 +2348,7 @@ function gallery_shortcode( $attr ) { \n\t\t"; } - $size_class = sanitize_html_class( $atts['size'] ); + $size_class = sanitize_html_class( is_array( $atts['size'] ) ? implode( 'x', $atts['size'] ) : $atts['size'] ); $gallery_div = "