From 66dafc36c38bc579d7b42e2275f659eef5150988 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Lo=C3=AFc=20Guibert?= <13170944+GuibertLo@users.noreply.github.com> Date: Fri, 30 Sep 2022 20:02:02 +0100 Subject: [PATCH] init --- .gitignore | 11 + .htaccess | 78 + CHANGELOG.md | 3918 + CODE_OF_CONDUCT.md | 133 + CONTRIBUTING.md | 138 + LICENSE.txt | 21 + README.md | 156 + SECURITY.md | 21 + composer.json | 130 + composer.lock | 6696 ++ index.php | 51 + logs/.gitkeep | 1 + logs/email.log | 9 + logs/grav.log | 17 + now.json | 4 + robots.txt | 16 + user/LICENSE | 21 + user/README.md | 159 + user/accounts/.gitkeep | 0 user/accounts/avatars/ru2bhyrgjlfwt7i.png | Bin 0 -> 1288 bytes user/accounts/boyatzon.yaml | 21 + user/blueprints.yaml | 18 + user/cli/config/security.yaml | 1 + user/config/media.yaml | 0 user/config/plugins/comments.yaml | 63 + user/config/plugins/email.yaml | 30 + user/config/plugins/feed.yaml | 7 + user/config/security.yaml | 1 + user/config/site.yaml | 47 + user/config/system.yaml | 217 + user/config/versions.yaml | 8 + user/data/.gitkeep | 0 user/data/comments/fr/blog/theme-setup.yaml | 4 + .../contact-20210808-124706-735424.txt | 4 + .../contact-20210808-124742-662139.txt | 4 + .../contact-20210907-162954-660264.txt | 5 + user/data/email-queue/4bIKlgC8Hh.message | Bin 0 -> 20530 bytes user/data/email-queue/Dbn4A79d20.message | Bin 0 -> 20530 bytes user/data/email-queue/H9a13A58Rx.message | Bin 0 -> 14215 bytes user/data/email-queue/MDCU3ZtZgw.message | Bin 0 -> 20517 bytes user/data/email-queue/j0DjvxfjZk.message | Bin 0 -> 14215 bytes user/data/email-queue/kCx3Ub5ghj.message | Bin 0 -> 20534 bytes user/data/email-queue/w1cWt1JZCB.message | Bin 0 -> 20525 bytes .../17a4d176a17a068732653cf9cac204f8.yaml | 52 + user/data/flex/indexes/accounts.yaml | 9 + user/data/flex/indexes/pages.json | 1 + user/data/licenses.yaml | 0 .../17a4d176a17a068732653cf9cac204f8.yaml | 117 + user/data/notifications/boyatzon.yaml | 1 + user/images/avatar.jpg | Bin 0 -> 23508 bytes user/images/logo.jpg | Bin 0 -> 23508 bytes user/localhost/config/plugins/comments.yaml | 63 + user/localhost/config/plugins/email.yaml | 30 + user/localhost/config/security.yaml | 1 + user/pages/about/page.md | 13 + .../pages/blog/2014-02-05-theme-setup/post.md | 152 + .../blog/2014-02-05-theme-setup/tools.jpg | Bin 0 -> 668130 bytes .../blog/2014-08-12-sample-link-post/post.md | 11 + .../blog/2014-11-30-welcome-to-grav/post.md | 51 + .../blog/2014-11-30-welcome-to-grav/stuff.jpg | Bin 0 -> 324596 bytes .../blog/2014-11-30-welcome-to-grav/swim.jpg | Bin 0 -> 507750 bytes user/pages/blog/default.md | 19 + ...atch-forest-mountains-minimalism-4k-hb.jpg | Bin 0 -> 1241709 bytes user/pages/blog/shore.jpg | Bin 0 -> 406973 bytes user/pages/contact-temp/page.md | 6 + user/pages/contact/emailsent/page.fr.md | 9 + user/pages/contact/form.fr.md | 53 + user/plugins/.gitkeep | 0 user/plugins/admin/.editorconfig | 17 + user/plugins/admin/.gitattributes | 8 + user/plugins/admin/.github/FUNDING.yml | 8 + user/plugins/admin/.gitignore | 17 + user/plugins/admin/CHANGELOG.md | 2560 + user/plugins/admin/CONTRIBUTING.md | 1 + user/plugins/admin/LICENSE | 21 + user/plugins/admin/README.md | 152 + user/plugins/admin/UPGRADE.md | 6 + user/plugins/admin/admin.php | 1350 + user/plugins/admin/admin.yaml | 84 + user/plugins/admin/assets/admin-dashboard.png | Bin 0 -> 241372 bytes user/plugins/admin/blueprints.yaml | 781 + .../admin/blueprints/admin/pages/copy.yaml | 43 + .../blueprints/admin/pages/modular_new.yaml | 52 + .../blueprints/admin/pages/modular_raw.yaml | 104 + .../admin/blueprints/admin/pages/move.yaml | 5 + .../admin/blueprints/admin/pages/new.yaml | 62 + .../blueprints/admin/pages/new_folder.yaml | 31 + .../admin/blueprints/admin/pages/raw.yaml | 104 + .../blueprints/admin/pages/root_raw.yaml | 34 + .../admin/blueprints/config/media.yaml | 36 + user/plugins/admin/classes/plugin/Admin.php | 2493 + .../classes/plugin/AdminBaseController.php | 1167 + .../admin/classes/plugin/AdminController.php | 3066 + .../admin/classes/plugin/AdminForm.php | 182 + .../admin/classes/plugin/AdminFormFactory.php | 44 + .../plugin/Controllers/AbstractController.php | 407 + .../plugin/Controllers/AdminController.php | 359 + .../Controllers/Login/LoginController.php | 637 + user/plugins/admin/classes/plugin/Gpm.php | 435 + .../admin/classes/plugin/Popularity.php | 303 + user/plugins/admin/classes/plugin/Router.php | 72 + .../classes/plugin/Routers/LoginRouter.php | 93 + .../admin/classes/plugin/ScssCompiler.php | 55 + .../plugins/admin/classes/plugin/ScssList.php | 52 + user/plugins/admin/classes/plugin/Themes.php | 22 + .../plugin/Twig/AdminTwigExtension.php | 131 + user/plugins/admin/classes/plugin/Utils.php | 54 + .../admin/classes/plugin/WhiteLabel.php | 93 + user/plugins/admin/codeception.yml | 18 + user/plugins/admin/composer.json | 58 + user/plugins/admin/composer.lock | 3951 + user/plugins/admin/hebe.json | 15 + user/plugins/admin/languages/ar.yaml | 307 + user/plugins/admin/languages/bg.yaml | 356 + user/plugins/admin/languages/bn.yaml | 4 + user/plugins/admin/languages/br.yaml | 592 + user/plugins/admin/languages/ca.yaml | 643 + user/plugins/admin/languages/cs.yaml | 1112 + user/plugins/admin/languages/cy.yaml | 89 + user/plugins/admin/languages/da.yaml | 760 + user/plugins/admin/languages/de.yaml | 965 + user/plugins/admin/languages/el.yaml | 710 + user/plugins/admin/languages/en.yaml | 1151 + user/plugins/admin/languages/eo.yaml | 766 + user/plugins/admin/languages/es.yaml | 989 + user/plugins/admin/languages/et.yaml | 896 + user/plugins/admin/languages/eu.yaml | 181 + user/plugins/admin/languages/fa.yaml | 878 + user/plugins/admin/languages/fi.yaml | 259 + user/plugins/admin/languages/fr.yaml | 1112 + user/plugins/admin/languages/gl.yaml | 867 + user/plugins/admin/languages/he.yaml | 410 + user/plugins/admin/languages/hr.yaml | 600 + user/plugins/admin/languages/hu.yaml | 777 + user/plugins/admin/languages/id.yaml | 708 + user/plugins/admin/languages/it.yaml | 1112 + user/plugins/admin/languages/ja.yaml | 759 + user/plugins/admin/languages/ko.yaml | 107 + user/plugins/admin/languages/ku.yaml | 121 + user/plugins/admin/languages/lt.yaml | 359 + user/plugins/admin/languages/mn.yaml | 1112 + user/plugins/admin/languages/nl.yaml | 853 + user/plugins/admin/languages/no.yaml | 730 + user/plugins/admin/languages/pl.yaml | 795 + user/plugins/admin/languages/pt.yaml | 620 + user/plugins/admin/languages/ro.yaml | 1106 + user/plugins/admin/languages/ru.yaml | 1103 + user/plugins/admin/languages/si.yaml | 98 + user/plugins/admin/languages/sk.yaml | 548 + user/plugins/admin/languages/sl.yaml | 242 + user/plugins/admin/languages/sr.yaml | 805 + user/plugins/admin/languages/sv.yaml | 670 + user/plugins/admin/languages/th.yaml | 688 + user/plugins/admin/languages/tlh.yaml | 8 + user/plugins/admin/languages/tr.yaml | 862 + user/plugins/admin/languages/uk.yaml | 600 + user/plugins/admin/languages/vi.yaml | 452 + user/plugins/admin/languages/zh-cn.yaml | 1112 + user/plugins/admin/languages/zh-tw.yaml | 718 + user/plugins/admin/languages/zh.yaml | 1112 + user/plugins/admin/pages/admin/ajax.md | 8 + user/plugins/admin/pages/admin/backup.md | 9 + user/plugins/admin/pages/admin/cache.md | 10 + user/plugins/admin/pages/admin/changelog.md | 9 + user/plugins/admin/pages/admin/config.md | 7 + user/plugins/admin/pages/admin/dashboard.md | 8 + user/plugins/admin/pages/admin/denied.md | 5 + user/plugins/admin/pages/admin/error.md | 10 + user/plugins/admin/pages/admin/feed.md | 8 + user/plugins/admin/pages/admin/forgot.md | 19 + user/plugins/admin/pages/admin/info.md | 9 + user/plugins/admin/pages/admin/installer.md | 8 + user/plugins/admin/pages/admin/login.md | 45 + user/plugins/admin/pages/admin/media.md | 9 + .../admin/pages/admin/notifications.md | 8 + .../plugins/admin/pages/admin/pages-filter.md | 9 + user/plugins/admin/pages/admin/pages.md | 8 + user/plugins/admin/pages/admin/plugins.md | 8 + user/plugins/admin/pages/admin/preview.md | 8 + user/plugins/admin/pages/admin/register.md | 63 + user/plugins/admin/pages/admin/reset.md | 24 + user/plugins/admin/pages/admin/site.md | 9 + user/plugins/admin/pages/admin/statistics.md | 8 + user/plugins/admin/pages/admin/system.md | 9 + user/plugins/admin/pages/admin/themes.md | 8 + user/plugins/admin/pages/admin/tools.md | 7 + user/plugins/admin/pages/admin/update.md | 9 + user/plugins/admin/pages/admin/user.md | 9 + user/plugins/admin/permissions.yaml | 48 + user/plugins/admin/presets.yaml | 370 + user/plugins/admin/tests/_bootstrap.php | 11 + .../admin/tests/_support/Helper/Unit.php | 80 + .../admin/tests/_support/UnitTester.php | 26 + user/plugins/admin/tests/unit.suite.yml | 9 + user/plugins/admin/tests/unit/_bootstrap.php | 3 + .../tests/unit/classes/controllerTest.php | 42 + user/plugins/admin/themes/grav/.babelrc | 3 + user/plugins/admin/themes/grav/.eslintignore | 1 + user/plugins/admin/themes/grav/.eslintrc | 165 + .../admin/themes/grav/app/dashboard/backup.js | 42 + .../admin/themes/grav/app/dashboard/cache.js | 49 + .../admin/themes/grav/app/dashboard/chart.js | 138 + .../admin/themes/grav/app/dashboard/index.js | 12 + .../admin/themes/grav/app/dashboard/update.js | 1 + .../grav/app/forms/fields/acl-picker.js | 89 + .../themes/grav/app/forms/fields/array.js | 205 + .../grav/app/forms/fields/collections.js | 311 + .../grav/app/forms/fields/colorpicker.js | 579 + .../themes/grav/app/forms/fields/cron.js | 85 + .../themes/grav/app/forms/fields/datetime.js | 63 + .../themes/grav/app/forms/fields/editor.js | 237 + .../grav/app/forms/fields/editor/buttons.js | 416 + .../themes/grav/app/forms/fields/elements.js | 12 + .../grav/app/forms/fields/filepicker.js | 144 + .../themes/grav/app/forms/fields/files.js | 402 + .../themes/grav/app/forms/fields/folder.js | 20 + .../grav/app/forms/fields/iconpicker.js | 298 + .../grav/app/forms/fields/indeterminate.js | 52 + .../themes/grav/app/forms/fields/index.js | 76 + .../grav/app/forms/fields/mediapicker.js | 51 + .../grav/app/forms/fields/multilevel.js | 281 + .../themes/grav/app/forms/fields/parents.js | 270 + .../grav/app/forms/fields/permissions.js | 46 + .../themes/grav/app/forms/fields/range.js | 10 + .../themes/grav/app/forms/fields/selectize.js | 66 + .../grav/app/forms/fields/selectunique.js | 160 + .../themes/grav/app/forms/fields/text.js | 13 + .../admin/themes/grav/app/forms/form.js | 139 + .../admin/themes/grav/app/forms/index.js | 16 + .../admin/themes/grav/app/forms/state.js | 150 + user/plugins/admin/themes/grav/app/main.js | 73 + .../admin/themes/grav/app/media/index.js | 226 + .../admin/themes/grav/app/pages/filter.js | 148 + .../admin/themes/grav/app/pages/index.js | 53 + .../admin/themes/grav/app/pages/page/add.js | 69 + .../themes/grav/app/pages/page/delete.js | 15 + .../grav/app/pages/page/disable-buttons.js | 5 + .../admin/themes/grav/app/pages/page/index.js | 47 + .../admin/themes/grav/app/pages/page/media.js | 293 + .../admin/themes/grav/app/pages/page/move.js | 63 + .../themes/grav/app/pages/page/multilang.js | 22 + .../admin/themes/grav/app/pages/page/unset.js | 18 + .../admin/themes/grav/app/pages/tree.js | 125 + .../admin/themes/grav/app/plugins/index.js | 92 + .../admin/themes/grav/app/themes/index.js | 46 + .../admin/themes/grav/app/tools/index.js | 1 + .../admin/themes/grav/app/tools/logs.js | 14 + .../grav/app/updates/channel-switcher.js | 24 + .../admin/themes/grav/app/updates/check.js | 26 + .../admin/themes/grav/app/updates/feed.js | 68 + .../admin/themes/grav/app/updates/index.js | 196 + .../themes/grav/app/updates/notifications.js | 169 + .../admin/themes/grav/app/updates/update.js | 22 + .../admin/themes/grav/app/utils/2fa.js | 32 + .../grav/app/utils/bootstrap-collapse.js | 210 + .../app/utils/bootstrap-datetimepicker.js | 2632 + .../grav/app/utils/bootstrap-dropdown.js | 169 + .../grav/app/utils/bootstrap-transition.js | 52 + .../admin/themes/grav/app/utils/changelog.js | 25 + .../admin/themes/grav/app/utils/colors.js | 152 + .../admin/themes/grav/app/utils/cookies.js | 164 + .../admin/themes/grav/app/utils/cron-ui.js | 864 + .../admin/themes/grav/app/utils/finderjs.js | 325 + .../themes/grav/app/utils/formatbytes.js | 11 + .../admin/themes/grav/app/utils/gpm.js | 57 + .../themes/grav/app/utils/jquery-utils.js | 50 + .../admin/themes/grav/app/utils/keepalive.js | 34 + .../admin/themes/grav/app/utils/offline.js | 21 + .../admin/themes/grav/app/utils/packages.js | 498 + .../admin/themes/grav/app/utils/remodal.js | 820 + .../admin/themes/grav/app/utils/request.js | 38 + .../admin/themes/grav/app/utils/response.js | 101 + .../grav/app/utils/selectize-option-click.js | 42 + .../grav/app/utils/selectize-required-fix.js | 28 + .../admin/themes/grav/app/utils/sidebar.js | 180 + .../admin/themes/grav/app/utils/storage.js | 41 + .../themes/grav/app/utils/tabs-memory.js | 29 + .../admin/themes/grav/app/utils/toastr.js | 6 + .../themes/grav/app/whitelabel/compile.js | 25 + .../admin/themes/grav/app/whitelabel/index.js | 93 + .../themes/grav/app/whitelabel/presets.js | 169 + .../themes/grav/css-compiled/nucleus.css | 625 + .../themes/grav/css-compiled/nucleus.css.map | 93 + .../admin/themes/grav/css-compiled/preset.css | 1520 + .../themes/grav/css-compiled/preset.css.map | 18 + .../themes/grav/css-compiled/simple-fonts.css | 13 + .../grav/css-compiled/simple-fonts.css.map | 10 + .../themes/grav/css-compiled/template.css | 5644 + .../themes/grav/css-compiled/template.css.map | 129 + .../admin/themes/grav/css/chartist.min.css | 1 + .../themes/grav/css/codemirror/codemirror.css | 334 + .../grav/css/codemirror/themes/3024-day.css | 41 + .../grav/css/codemirror/themes/3024-night.css | 39 + .../grav/css/codemirror/themes/abcdef.css | 32 + .../css/codemirror/themes/ambiance-mobile.css | 5 + .../grav/css/codemirror/themes/ambiance.css | 74 + .../grav/css/codemirror/themes/ayu-dark.css | 42 + .../grav/css/codemirror/themes/ayu-mirage.css | 43 + .../css/codemirror/themes/base16-dark.css | 38 + .../css/codemirror/themes/base16-light.css | 38 + .../grav/css/codemirror/themes/bespin.css | 34 + .../grav/css/codemirror/themes/blackboard.css | 32 + .../grav/css/codemirror/themes/cobalt.css | 25 + .../grav/css/codemirror/themes/colorforth.css | 33 + .../grav/css/codemirror/themes/darcula.css | 53 + .../grav/css/codemirror/themes/dracula.css | 40 + .../css/codemirror/themes/duotone-dark.css | 35 + .../css/codemirror/themes/duotone-light.css | 36 + .../grav/css/codemirror/themes/eclipse.css | 23 + .../grav/css/codemirror/themes/elegant.css | 13 + .../css/codemirror/themes/erlang-dark.css | 34 + .../css/codemirror/themes/gruvbox-dark.css | 37 + .../grav/css/codemirror/themes/hopscotch.css | 34 + .../grav/css/codemirror/themes/icecoder.css | 43 + .../grav/css/codemirror/themes/idea.css | 42 + .../grav/css/codemirror/themes/isotope.css | 34 + .../css/codemirror/themes/lesser-dark.css | 47 + .../grav/css/codemirror/themes/liquibyte.css | 95 + .../grav/css/codemirror/themes/lucario.css | 37 + .../css/codemirror/themes/material-darker.css | 135 + .../css/codemirror/themes/material-ocean.css | 135 + .../codemirror/themes/material-palenight.css | 135 + .../grav/css/codemirror/themes/material.css | 135 + .../themes/grav/css/codemirror/themes/mbo.css | 37 + .../grav/css/codemirror/themes/mdn-like.css | 46 + .../grav/css/codemirror/themes/midnight.css | 39 + .../grav/css/codemirror/themes/monokai.css | 41 + .../grav/css/codemirror/themes/moxer.css | 143 + .../grav/css/codemirror/themes/neat.css | 12 + .../themes/grav/css/codemirror/themes/neo.css | 43 + .../grav/css/codemirror/themes/night.css | 27 + .../grav/css/codemirror/themes/nord.css | 42 + .../css/codemirror/themes/oceanic-next.css | 44 + .../css/codemirror/themes/panda-syntax.css | 85 + .../grav/css/codemirror/themes/paper.css | 143 + .../css/codemirror/themes/paraiso-dark.css | 38 + .../css/codemirror/themes/paraiso-light.css | 38 + .../css/codemirror/themes/pastel-on-dark.css | 52 + .../grav/css/codemirror/themes/railscasts.css | 34 + .../grav/css/codemirror/themes/rubyblue.css | 25 + .../grav/css/codemirror/themes/seti.css | 44 + .../grav/css/codemirror/themes/shadowfox.css | 52 + .../grav/css/codemirror/themes/solarized.css | 168 + .../grav/css/codemirror/themes/ssms.css | 16 + .../grav/css/codemirror/themes/the-matrix.css | 30 + .../themes/tomorrow-night-bright.css | 35 + .../themes/tomorrow-night-eighties.css | 38 + .../grav/css/codemirror/themes/ttcn.css | 64 + .../grav/css/codemirror/themes/twilight.css | 32 + .../css/codemirror/themes/vibrant-ink.css | 34 + .../grav/css/codemirror/themes/xq-dark.css | 53 + .../grav/css/codemirror/themes/xq-light.css | 43 + .../grav/css/codemirror/themes/yeti.css | 44 + .../grav/css/codemirror/themes/yonce.css | 59 + .../grav/css/codemirror/themes/zenburn.css | 37 + .../themes/grav/css/fork-awesome.min.css | 12 + .../admin/themes/grav/css/hint.base.min.css | 5 + .../admin/themes/grav/css/iconpicker.css | 222 + .../admin/themes/grav/css/nucleus-ie10.css | 24 + .../admin/themes/grav/css/nucleus-ie9.css | 62 + user/plugins/admin/themes/grav/css/prism.css | 121 + .../themes/grav/css/pure-0.5.0/grids-min.css | 15 + user/plugins/admin/themes/grav/css/rtl.css | 1240 + .../admin/themes/grav/css/selectize.min.css | 1 + .../themes/grav/fonts/forkawesome-webfont.eot | Bin 0 -> 186490 bytes .../themes/grav/fonts/forkawesome-webfont.svg | 2810 + .../themes/grav/fonts/forkawesome-webfont.ttf | Bin 0 -> 186300 bytes .../grav/fonts/forkawesome-webfont.woff | Bin 0 -> 113404 bytes .../grav/fonts/forkawesome-webfont.woff2 | Bin 0 -> 90420 bytes .../rockettheme-apps/rockettheme-apps.eot | Bin 0 -> 4838 bytes .../rockettheme-apps/rockettheme-apps.svg | 16 + .../rockettheme-apps/rockettheme-apps.ttf | Bin 0 -> 4644 bytes .../rockettheme-apps/rockettheme-apps.woff | Bin 0 -> 3348 bytes .../admin/themes/grav/images/favicon.png | Bin 0 -> 13203 bytes .../admin/themes/grav/images/grav-regular.svg | 1 + .../admin/themes/grav/images/grav-small.svg | 1 + .../themes/grav/images/icons/book-edit.svg | 10 + .../themes/grav/images/icons/clock-hands.svg | 8 + .../admin/themes/grav/images/icons/crown.svg | 1 + .../admin/themes/grav/images/icons/house.svg | 5 + .../themes/grav/images/icons/module-four.svg | 12 + .../themes/grav/images/icons/superman.svg | 7 + .../themes/grav/images/icons/touchid-lock.svg | 15 + .../plugins/admin/themes/grav/images/logo.svg | 1 + .../admin/themes/grav/images/transparent.png | Bin 0 -> 5123 bytes .../plugins/admin/themes/grav/js/admin.min.js | 15273 +++ .../themes/grav/js/form-attr.polyfill.js | 80 + .../admin/themes/grav/js/vendor.min.js | 88854 ++++++++++++++++ .../admin/themes/grav/package-lock.json | 10249 ++ user/plugins/admin/themes/grav/package.json | 64 + .../scss/configuration/nucleus/_base.scss | 14 + .../configuration/nucleus/_breakpoints.scss | 16 + .../scss/configuration/nucleus/_core.scss | 2 + .../scss/configuration/nucleus/_layout.scss | 8 + .../grav/scss/configuration/nucleus/_nav.scss | 3 + .../configuration/nucleus/_typography.scss | 14 + .../scss/configuration/template/_base.scss | 5 + .../scss/configuration/template/_colors.scss | 15 + .../configuration/template/_variables.scss | 22 + .../admin/themes/grav/scss/nucleus.scss | 27 + .../admin/themes/grav/scss/nucleus/_core.scss | 217 + .../admin/themes/grav/scss/nucleus/_flex.scss | 195 + .../themes/grav/scss/nucleus/_forms.scss | 62 + .../themes/grav/scss/nucleus/_typography.scss | 89 + .../grav/scss/nucleus/functions/_base.scss | 2 + .../scss/nucleus/functions/_direction.scss | 37 + .../grav/scss/nucleus/functions/_range.scss | 13 + .../grav/scss/nucleus/mixins/_base.scss | 2 + .../scss/nucleus/mixins/_breakpoints.scss | 44 + .../grav/scss/nucleus/mixins/_utilities.scss | 30 + .../scss/nucleus/particles/_align-text.scss | 46 + .../scss/nucleus/particles/_visibility.scss | 0 .../admin/themes/grav/scss/preset.scss | 2372 + .../admin/themes/grav/scss/simple-fonts.scss | 13 + .../admin/themes/grav/scss/template.scss | 109 + .../themes/grav/scss/template/_admin.scss | 1431 + .../themes/grav/scss/template/_buttons.scss | 131 + .../themes/grav/scss/template/_changelog.scss | 117 + .../themes/grav/scss/template/_colors.scss | 93 + .../themes/grav/scss/template/_core.scss | 51 + .../themes/grav/scss/template/_custom.scss | 2 + .../themes/grav/scss/template/_dropzone.scss | 306 + .../themes/grav/scss/template/_editor.scss | 315 + .../themes/grav/scss/template/_errors.scss | 17 + .../grav/scss/template/_extensions.scss | 58 + .../themes/grav/scss/template/_fonts.scss | 40 + .../themes/grav/scss/template/_forms.scss | 997 + .../admin/themes/grav/scss/template/_gpm.scss | 207 + .../themes/grav/scss/template/_header.scss | 3 + .../scss/template/_horizontal-scroll.scss | 54 + .../themes/grav/scss/template/_jqcron.scss | 70 + .../themes/grav/scss/template/_login.scss | 200 + .../themes/grav/scss/template/_media.scss | 331 + .../grav/scss/template/_nav-toggle.scss | 71 + .../grav/scss/template/_notifications.scss | 116 + .../themes/grav/scss/template/_pages.scss | 856 + .../themes/grav/scss/template/_phpinfo.scss | 35 + .../themes/grav/scss/template/_remodal.scss | 329 + .../grav/scss/template/_scrollbars.scss | 210 + .../themes/grav/scss/template/_tables.scss | 190 + .../themes/grav/scss/template/_tabs.scss | 125 + .../themes/grav/scss/template/_toastr.scss | 183 + .../themes/grav/scss/template/_tools.scss | 97 + .../grav/scss/template/_typography.scss | 166 + .../themes/grav/scss/template/_utilities.scss | 9 + .../grav/scss/template/_whitelabel.scss | 268 + .../grav/scss/template/modules/_base.scss | 5 + .../template/modules/_bourbon_essentials.scss | 120 + .../grav/scss/template/modules/_buttons.scss | 91 + .../scss/template/modules/_colorpicker.scss | 253 + .../template/modules/_datetimepicker.scss | 466 + .../grav/scss/template/modules/_finderjs.scss | 161 + .../scss/template/modules/_input-range.scss | 87 + .../scss/template/modules/_scrollbars.scss | 18 + .../scss/template/modules/_toggle-switch.scss | 20 + .../bourbon/_bourbon-deprecated-upcoming.scss | 8 + .../grav/scss/vendor/bourbon/_bourbon.scss | 77 + .../scss/vendor/bourbon/addons/_button.scss | 374 + .../scss/vendor/bourbon/addons/_clearfix.scss | 23 + .../bourbon/addons/_directional-values.scss | 111 + .../scss/vendor/bourbon/addons/_ellipsis.scss | 7 + .../vendor/bourbon/addons/_font-family.scss | 5 + .../vendor/bourbon/addons/_hide-text.scss | 10 + .../bourbon/addons/_html5-input-types.scss | 86 + .../scss/vendor/bourbon/addons/_position.scss | 32 + .../scss/vendor/bourbon/addons/_prefixer.scss | 45 + .../grav/scss/vendor/bourbon/addons/_rem.scss | 33 + .../vendor/bourbon/addons/_retina-image.scss | 31 + .../scss/vendor/bourbon/addons/_size.scss | 16 + .../bourbon/addons/_timing-functions.scss | 32 + .../scss/vendor/bourbon/addons/_triangle.scss | 83 + .../vendor/bourbon/addons/_word-wrap.scss | 8 + .../scss/vendor/bourbon/css3/_animation.scss | 52 + .../scss/vendor/bourbon/css3/_appearance.scss | 3 + .../bourbon/css3/_backface-visibility.scss | 6 + .../bourbon/css3/_background-image.scss | 42 + .../scss/vendor/bourbon/css3/_background.scss | 55 + .../vendor/bourbon/css3/_border-image.scss | 59 + .../vendor/bourbon/css3/_border-radius.scss | 22 + .../scss/vendor/bourbon/css3/_box-sizing.scss | 4 + .../grav/scss/vendor/bourbon/css3/_calc.scss | 4 + .../scss/vendor/bourbon/css3/_columns.scss | 47 + .../scss/vendor/bourbon/css3/_filter.scss | 5 + .../scss/vendor/bourbon/css3/_flex-box.scss | 321 + .../scss/vendor/bourbon/css3/_font-face.scss | 23 + .../bourbon/css3/_font-feature-settings.scss | 10 + .../bourbon/css3/_hidpi-media-query.scss | 10 + .../scss/vendor/bourbon/css3/_hyphens.scss | 4 + .../vendor/bourbon/css3/_image-rendering.scss | 14 + .../scss/vendor/bourbon/css3/_keyframes.scss | 35 + .../vendor/bourbon/css3/_linear-gradient.scss | 38 + .../vendor/bourbon/css3/_perspective.scss | 8 + .../vendor/bourbon/css3/_placeholder.scss | 8 + .../vendor/bourbon/css3/_radial-gradient.scss | 39 + .../scss/vendor/bourbon/css3/_transform.scss | 15 + .../scss/vendor/bourbon/css3/_transition.scss | 77 + .../vendor/bourbon/css3/_user-select.scss | 3 + .../vendor/bourbon/functions/_assign.scss | 11 + .../bourbon/functions/_color-lightness.scss | 13 + .../vendor/bourbon/functions/_flex-grid.scss | 39 + .../bourbon/functions/_golden-ratio.scss | 3 + .../vendor/bourbon/functions/_grid-width.scss | 13 + .../bourbon/functions/_modular-scale.scss | 66 + .../vendor/bourbon/functions/_px-to-em.scss | 13 + .../vendor/bourbon/functions/_px-to-rem.scss | 15 + .../bourbon/functions/_strip-units.scss | 5 + .../vendor/bourbon/functions/_tint-shade.scss | 9 + .../functions/_transition-property-name.scss | 22 + .../vendor/bourbon/functions/_unpack.scss | 17 + .../bourbon/helpers/_convert-units.scss | 15 + .../helpers/_gradient-positions-parser.scss | 13 + .../scss/vendor/bourbon/helpers/_is-num.scss | 8 + .../bourbon/helpers/_linear-angle-parser.scss | 25 + .../helpers/_linear-gradient-parser.scss | 41 + .../helpers/_linear-positions-parser.scss | 61 + .../helpers/_linear-side-corner-parser.scss | 31 + .../bourbon/helpers/_radial-arg-parser.scss | 69 + .../helpers/_radial-gradient-parser.scss | 50 + .../helpers/_radial-positions-parser.scss | 18 + .../bourbon/helpers/_render-gradients.scss | 26 + .../bourbon/helpers/_shape-size-stripper.scss | 10 + .../vendor/bourbon/helpers/_str-to-num.scss | 50 + .../vendor/bourbon/settings/_prefixer.scss | 6 + .../vendor/bourbon/settings/_px-to-em.scss | 1 + .../vendor/color-schemer/_color-schemer.scss | 31 + .../color-schemer/color-schemer/_cmyk.scss | 14 + .../color-schemer/_color-adjustments.scss | 30 + .../color-schemer/_color-schemer.scss | 208 + .../color-schemer/_colorblind.scss | 29 + .../color-schemer/_comparison.scss | 15 + .../color-schemer/_equalize.scss | 5 + .../color-schemer/_harmonize.scss | 59 + .../color-schemer/_interpolation.scss | 34 + .../color-schemer/color-schemer/_mix.scss | 40 + .../color-schemer/color-schemer/_mixins.scss | 29 + .../color-schemer/color-schemer/_ryb.scss | 76 + .../color-schemer/_tint-shade.scss | 9 + .../themes/grav/templates/changelog.html.twig | 21 + .../themes/grav/templates/config.html.twig | 82 + .../themes/grav/templates/dashboard.html.twig | 73 + .../themes/grav/templates/default.json.twig | 5 + .../themes/grav/templates/denied.html.twig | 18 + .../grav/templates/email/base.html.twig | 194 + .../themes/grav/templates/empty.html.twig | 0 .../themes/grav/templates/error.html.twig | 20 + .../themes/grav/templates/error.json.twig | 1 + .../themes/grav/templates/forgot.html.twig | 14 + .../grav/templates/forms/field.html.twig | 130 + .../fields/acl_picker/acl_picker.html.twig | 134 + .../forms/fields/array/array.html.twig | 96 + .../backupshistory/backupshistory.html.twig | 32 + .../fields/blueprint/blueprint.html.twig | 12 + .../fields/codemirror/codemirror.html.twig | 10 + .../fields/colorpicker/colorpicker.html.twig | 38 + .../colorscheme.color.html.twig | 40 + .../fields/colorscheme/colorscheme.html.twig | 12 + .../forms/fields/column/column.html.twig | 8 + .../forms/fields/columns/columns.html.twig | 8 + .../forms/fields/cron/cron.html.twig | 7 + .../fields/cronstatus/cronstatus.html.twig | 71 + .../fields/dateformat/dateformat.html.twig | 24 + .../forms/fields/datetime/datetime.html.twig | 27 + .../forms/fields/editor/editor.html.twig | 62 + .../forms/fields/element/element.html.twig | 23 + .../forms/fields/elements/elements.html.twig | 20 + .../forms/fields/fieldset/fieldset.html.twig | 81 + .../forms/fields/file/file.html.twig | 118 + .../fields/filepicker/filepicker.html.twig | 27 + .../fields/folder-slug/folder-slug.html.twig | 8 + .../fields/frontmatter/frontmatter.html.twig | 10 + .../fields/iconpicker/iconpicker.html.twig | 44 + .../forms/fields/iconpicker/icons.yaml | 6570 ++ .../forms/fields/list/list.html.twig | 188 + .../forms/fields/markdown/markdown.html.twig | 1 + .../fields/mediapicker/mediapicker.html.twig | 17 + .../fields/multilevel/multilevel.html.twig | 121 + .../forms/fields/order/order.html.twig | 68 + .../fields/pagemedia/pagemedia.html.twig | 65 + .../pagemediaselect/pagemediaselect.html.twig | 1 + .../forms/fields/pages/pages.html.twig | 52 + .../forms/fields/parents/parents.html.twig | 58 + .../fields/permissions/permissions.html.twig | 161 + .../forms/fields/range/range.html.twig | 28 + .../forms/fields/section/section.html.twig | 24 + .../fields/selectize/selectize.html.twig | 19 + .../selectunique/selectunique.html.twig | 43 + .../forms/fields/taxonomy/taxonomy.html.twig | 39 + .../themepreview/themepreview.html.twig | 106 + .../fields/themeselect/themeselect.html.twig | 31 + .../forms/fields/userinfo/userinfo.html.twig | 19 + .../forms/fields/widgets/widgets.html.twig | 61 + .../templates/forms/fields/xss/xss.html.twig | 6 + .../themes/grav/templates/installer.html.twig | 13 + .../themes/grav/templates/login.html.twig | 11 + .../templates/media-list-content.html.twig | 19 + .../themes/grav/templates/pages.html.twig | 469 + .../partials/backups-button.html.twig | 21 + .../templates/partials/base-root.html.twig | 156 + .../grav/templates/partials/base.html.twig | 1 + .../partials/blueprints-copy.html.twig | 19 + .../partials/blueprints-new-folder.html.twig | 18 + .../partials/blueprints-new.html.twig | 19 + .../partials/blueprints-raw.html.twig | 22 + .../templates/partials/blueprints.html.twig | 34 + .../partials/dashboard-feed.html.twig | 14 + .../partials/dashboard-maintenance.html.twig | 33 + .../dashboard-notifications.html.twig | 13 + .../partials/dashboard-pages.html.twig | 18 + .../partials/dashboard-problems.html.twig | 11 + .../partials/dashboard-statistics.html.twig | 24 + .../templates/partials/feed-block.html.twig | 3 + .../grav/templates/partials/footer.html.twig | 5 + .../grav/templates/partials/header.html.twig | 11 + .../partials/javascript-config.html.twig | 43 + .../templates/partials/javascripts.html.twig | 11 + .../templates/partials/list-sort.html.twig | 13 + .../templates/partials/login-form.html.twig | 25 + .../templates/partials/login-logo.html.twig | 14 + .../templates/partials/login-logout.html.twig | 15 + .../templates/partials/login-twofa.html.twig | 20 + .../grav/templates/partials/login.html.twig | 33 + .../grav/templates/partials/logo.html.twig | 20 + .../partials/media-list-wrapper.html.twig | 32 + .../media-list-wrapper__list.html.twig | 23 + ...edia-list-wrapper__list__filters.html.twig | 28 + .../media-list-wrapper__sidebar.html.twig | 36 + .../templates/partials/messages.html.twig | 14 + .../partials/modal-add-package.html.twig | 89 + .../partials/modal-changelog.html.twig | 1 + .../partials/modal-changes-detected.html.twig | 13 + .../modal-reinstall-package.html.twig | 38 + .../partials/modal-remove-package.html.twig | 44 + .../partials/modal-switch-theme.html.twig | 16 + .../partials/modal-update-packages.html.twig | 89 + .../partials/nav-quick-tray.html.twig | 47 + .../templates/partials/nav-toggle.html.twig | 3 + .../partials/nav-user-avatar.html.twig | 2 + .../partials/nav-user-details.html.twig | 21 + .../grav/templates/partials/nav.html.twig | 47 + .../notification-dashboard-block.html.twig | 6 + .../notification-feed-block.html.twig | 3 + .../notification-plugins-block.html.twig | 6 + .../notification-themes-block.html.twig | 6 + .../partials/notification-top-block.html.twig | 6 + .../partials/page-children.html.twig | 11 + .../templates/partials/page-legend.html.twig | 11 + .../templates/partials/page-move.html.twig | 21 + .../templates/partials/plugin-data.html.twig | 74 + .../partials/plugins-details.html.twig | 76 + .../templates/partials/plugins-list.html.twig | 76 + .../templates/partials/register.html.twig | 24 + .../partials/release-toggle.html.twig | 11 + .../partials/spinning-wheel.html.twig | 3 + .../templates/partials/stylesheets.html.twig | 16 + .../grav/templates/partials/theme.html.twig | 13 + .../partials/themes-details.html.twig | 161 + .../templates/partials/themes-list.html.twig | 81 + .../partials/tools-backups-titlebar.html.twig | 7 + .../partials/tools-backups.html.twig | 81 + .../partials/tools-direct-install.html.twig | 29 + .../templates/partials/tools-logs.html.twig | 80 + .../partials/tools-reports.html.twig | 15 + .../tools-scheduler-titlebar.html.twig | 6 + .../partials/tools-scheduler.html.twig | 36 + .../partials/userinfo-avatar-credit.html.twig | 10 + .../partials/userinfo-avatar.html.twig | 2 + .../themes/grav/templates/plugins.html.twig | 94 + .../templates/plugins/admin-buttons.html.twig | 3 + .../themes/grav/templates/preview.html.twig | 24 + .../themes/grav/templates/register.html.twig | 24 + .../grav/templates/reports/security.html.twig | 20 + .../templates/reports/yamllinter.html.twig | 31 + .../themes/grav/templates/reset.html.twig | 14 + .../grav/templates/statistics.html.twig | 15 + .../themes/grav/templates/themes.html.twig | 87 + .../themes/grav/templates/tools.html.twig | 50 + .../grav/templates/unauthorized.html.twig | 1 + .../themes/grav/templates/user.html.twig | 63 + user/plugins/admin/themes/grav/theme.yaml | 0 user/plugins/admin/themes/grav/watch.sh | 27 + .../plugins/admin/themes/grav/webpack.conf.js | 58 + user/plugins/admin/themes/grav/yarn.lock | 3201 + .../plugins/admin/twig/AdminTwigExtension.php | 7 + user/plugins/admin/vendor/autoload.php | 12 + user/plugins/admin/vendor/bin/picofeed | 107 + user/plugins/admin/vendor/bin/pscss | 120 + .../admin/vendor/composer/ClassLoader.php | 572 + .../vendor/composer/InstalledVersions.php | 352 + user/plugins/admin/vendor/composer/LICENSE | 21 + .../vendor/composer/autoload_classmap.php | 11 + .../admin/vendor/composer/autoload_files.php | 10 + .../vendor/composer/autoload_namespaces.php | 10 + .../admin/vendor/composer/autoload_psr4.php | 13 + .../admin/vendor/composer/autoload_real.php | 57 + .../admin/vendor/composer/autoload_static.php | 73 + .../admin/vendor/composer/installed.json | 280 + .../admin/vendor/composer/installed.php | 77 + .../admin/vendor/composer/platform_check.php | 26 + .../.github/workflows/auto-close.yml | 22 + .../workflows/continuous-integration.yml | 33 + .../workflows/release-on-milestone-closed.yml | 71 + .../vendor/laminas/laminas-xml/COPYRIGHT.md | 1 + .../vendor/laminas/laminas-xml/LICENSE.md | 26 + .../vendor/laminas/laminas-xml/README.md | 51 + .../vendor/laminas/laminas-xml/composer.json | 55 + .../vendor/laminas/laminas-xml/composer.lock | 2285 + .../src/Exception/ExceptionInterface.php | 7 + .../Exception/InvalidArgumentException.php | 10 + .../src/Exception/RuntimeException.php | 10 + .../laminas/laminas-xml/src/Security.php | 407 + .../.github/FUNDING.yml | 1 + .../workflows/continuous-integration.yml | 32 + .../workflows/release-on-milestone-closed.yml | 61 + .../.laminas-ci.json | 5 + .../laminas-zendframework-bridge/COPYRIGHT.md | 1 + .../laminas-zendframework-bridge/LICENSE.md | 26 + .../laminas-zendframework-bridge/README.md | 30 + .../composer.json | 61 + .../composer.lock | 3841 + .../config/replacements.php | 372 + .../psalm-baseline.xml | 345 + .../psalm.xml.dist | 33 + .../src/Autoloader.php | 181 + .../src/ConfigPostProcessor.php | 426 + .../src/Module.php | 48 + .../src/Replacements.php | 40 + .../src/RewriteRules.php | 73 + .../src/autoload.php | 3 + .../plugins/admin/vendor/p3k/picofeed/LICENSE | 21 + .../vendor/p3k/picofeed/lib/PicoFeed/Base.php | 38 + .../picofeed/lib/PicoFeed/Client/Client.php | 712 + .../lib/PicoFeed/Client/ClientException.php | 14 + .../p3k/picofeed/lib/PicoFeed/Client/Curl.php | 412 + .../PicoFeed/Client/ForbiddenException.php | 10 + .../lib/PicoFeed/Client/HttpHeaders.php | 79 + .../Client/InvalidCertificateException.php | 12 + .../PicoFeed/Client/InvalidUrlException.php | 12 + .../PicoFeed/Client/MaxRedirectException.php | 12 + .../lib/PicoFeed/Client/MaxSizeException.php | 12 + .../picofeed/lib/PicoFeed/Client/Stream.php | 205 + .../lib/PicoFeed/Client/TimeoutException.php | 12 + .../PicoFeed/Client/UnauthorizedException.php | 10 + .../p3k/picofeed/lib/PicoFeed/Client/Url.php | 283 + .../picofeed/lib/PicoFeed/Config/Config.php | 102 + .../lib/PicoFeed/Encoding/Encoding.php | 33 + .../lib/PicoFeed/Filter/Attribute.php | 700 + .../picofeed/lib/PicoFeed/Filter/Filter.php | 144 + .../p3k/picofeed/lib/PicoFeed/Filter/Html.php | 243 + .../p3k/picofeed/lib/PicoFeed/Filter/Tag.php | 208 + .../Generator/ContentGeneratorInterface.php | 23 + .../Generator/FileContentGenerator.php | 36 + .../Generator/YoutubeContentGenerator.php | 67 + .../picofeed/lib/PicoFeed/Logging/Logger.php | 114 + .../p3k/picofeed/lib/PicoFeed/Parser/Atom.php | 395 + .../lib/PicoFeed/Parser/DateParser.php | 128 + .../p3k/picofeed/lib/PicoFeed/Parser/Feed.php | 315 + .../p3k/picofeed/lib/PicoFeed/Parser/Item.php | 562 + .../PicoFeed/Parser/MalformedXmlException.php | 13 + .../picofeed/lib/PicoFeed/Parser/Parser.php | 397 + .../lib/PicoFeed/Parser/ParserException.php | 15 + .../lib/PicoFeed/Parser/ParserInterface.php | 191 + .../picofeed/lib/PicoFeed/Parser/Rss10.php | 318 + .../picofeed/lib/PicoFeed/Parser/Rss20.php | 330 + .../picofeed/lib/PicoFeed/Parser/Rss91.php | 13 + .../picofeed/lib/PicoFeed/Parser/Rss92.php | 13 + .../PicoFeed/Parser/XmlEntityException.php | 13 + .../lib/PicoFeed/Parser/XmlParser.php | 249 + .../lib/PicoFeed/PicoFeedException.php | 14 + .../Processor/ContentFilterProcessor.php | 39 + .../Processor/ContentGeneratorProcessor.php | 49 + .../PicoFeed/Processor/ItemPostProcessor.php | 106 + .../Processor/ItemProcessorInterface.php | 25 + .../PicoFeed/Processor/ScraperProcessor.php | 96 + .../picofeed/lib/PicoFeed/Reader/Favicon.php | 186 + .../picofeed/lib/PicoFeed/Reader/Reader.php | 189 + .../lib/PicoFeed/Reader/ReaderException.php | 14 + .../Reader/SubscriptionNotFoundException.php | 12 + .../Reader/UnsupportedFeedFormatException.php | 12 + .../lib/PicoFeed/Rules/.blog.lemonde.fr.php | 14 + .../lib/PicoFeed/Rules/.blogs.nytimes.com.php | 15 + .../picofeed/lib/PicoFeed/Rules/.igen.fr.php | 13 + .../lib/PicoFeed/Rules/.nytimes.com.php | 11 + .../lib/PicoFeed/Rules/.over-blog.com.php | 11 + .../lib/PicoFeed/Rules/.phoronix.com.php | 12 + .../lib/PicoFeed/Rules/.slate.com.php | 20 + .../lib/PicoFeed/Rules/.theguardian.com.php | 14 + .../lib/PicoFeed/Rules/.wikipedia.org.php | 29 + .../lib/PicoFeed/Rules/.wired.com.php | 44 + .../picofeed/lib/PicoFeed/Rules/.wsj.com.php | 15 + .../picofeed/lib/PicoFeed/Rules/01net.com.php | 18 + .../p3k/picofeed/lib/PicoFeed/Rules/24.hu.php | 16 + .../picofeed/lib/PicoFeed/Rules/444.hu.php | 19 + .../picofeed/lib/PicoFeed/Rules/888.hu.php | 16 + .../lib/PicoFeed/Rules/abstrusegoose.com.php | 8 + .../lib/PicoFeed/Rules/achgut.com.php | 16 + .../PicoFeed/Rules/adventuregamers.com.php | 23 + .../lib/PicoFeed/Rules/alainonline.net.php | 14 + .../lib/PicoFeed/Rules/aljazeera.com.php | 25 + .../lib/PicoFeed/Rules/allafrica.com.php | 20 + .../PicoFeed/Rules/allgemeine-zeitung.de.php | 23 + .../PicoFeed/Rules/amazingsuperpowers.com.php | 8 + .../lib/PicoFeed/Rules/anythingcomic.com.php | 13 + .../picofeed/lib/PicoFeed/Rules/ap.org.php | 13 + .../lib/PicoFeed/Rules/areadvd.de.php | 10 + .../lib/PicoFeed/Rules/arstechnica.com.php | 25 + .../picofeed/lib/PicoFeed/Rules/atv.hu.php | 18 + .../lib/PicoFeed/Rules/awkwardzombie.com.php | 10 + .../lib/PicoFeed/Rules/backchannel.com.php | 18 + .../lib/PicoFeed/Rules/bangkokpost.com.php | 19 + .../lib/PicoFeed/Rules/bauerwilli.com.php | 17 + .../picofeed/lib/PicoFeed/Rules/bgr.com.php | 15 + .../lib/PicoFeed/Rules/bigfootjustice.com.php | 8 + .../lib/PicoFeed/Rules/bigpicture.ru.php | 31 + .../lib/PicoFeed/Rules/bizjournals.com.php | 12 + .../lib/PicoFeed/Rules/biztimes.com.php | 22 + .../PicoFeed/Rules/bleepingcomputer.com.php | 15 + .../lib/PicoFeed/Rules/blog.fefe.de.php | 13 + .../lib/PicoFeed/Rules/blog.mapillary.com.php | 11 + .../lib/PicoFeed/Rules/brewers.mlb.com.php | 22 + .../PicoFeed/Rules/buenosairesherald.com.php | 17 + .../lib/PicoFeed/Rules/bunicomic.com.php | 13 + .../lib/PicoFeed/Rules/buttersafe.com.php | 13 + .../lib/PicoFeed/Rules/cad-comic.com.php | 12 + .../Rules/chaoslife.findchaos.com.php | 10 + .../lib/PicoFeed/Rules/chinafile.com.php | 18 + .../picofeed/lib/PicoFeed/Rules/cicero.de.php | 17 + .../lib/PicoFeed/Rules/cliquerefresh.com.php | 10 + .../picofeed/lib/PicoFeed/Rules/cnet.com.php | 37 + .../lib/PicoFeed/Rules/coinwelt.de.php | 14 + .../lib/PicoFeed/Rules/consomac.fr.php | 13 + .../lib/PicoFeed/Rules/cowbirdsinlove.com.php | 8 + .../picofeed/lib/PicoFeed/Rules/crash.net.php | 18 + .../lib/PicoFeed/Rules/csmonitor.com.php | 19 + .../lib/PicoFeed/Rules/dailyjs.com.php | 19 + .../lib/PicoFeed/Rules/dailyreporter.com.php | 15 + .../lib/PicoFeed/Rules/dailytech.com.php | 13 + .../lib/PicoFeed/Rules/degroupnews.com.php | 14 + .../lib/PicoFeed/Rules/derstandard.at.php | 14 + .../lib/PicoFeed/Rules/dilbert.com.php | 11 + .../PicoFeed/Rules/discovermagazine.com.php | 26 + .../lib/PicoFeed/Rules/distrowatch.com.php | 13 + .../lib/PicoFeed/Rules/dozodomo.com.php | 15 + .../PicoFeed/Rules/drawingboardcomic.com.php | 15 + .../picofeed/lib/PicoFeed/Rules/e-w-e.ru.php | 22 + .../lib/PicoFeed/Rules/economist.com.php | 25 + .../Rules/encyclopedie.naheulbeuk.com.php | 13 + .../lib/PicoFeed/Rules/endlessorigami.com.php | 8 + .../lib/PicoFeed/Rules/engadget.com.php | 10 + .../PicoFeed/Rules/escapistmagazine.com.php | 45 + .../lib/PicoFeed/Rules/espn.go.com.php | 11 + .../lib/PicoFeed/Rules/exocomics.com.php | 15 + .../lib/PicoFeed/Rules/explosm.net.php | 13 + .../Rules/extrafabulouscomics.com.php | 8 + .../lib/PicoFeed/Rules/factroom.ru.php | 27 + .../lib/PicoFeed/Rules/fastcodesign.com.php | 13 + .../lib/PicoFeed/Rules/fastcoexist.com.php | 13 + .../lib/PicoFeed/Rules/fastcompany.com.php | 13 + .../lib/PicoFeed/Rules/ffworld.com.php | 13 + .../lib/PicoFeed/Rules/foreignpolicy.com.php | 21 + .../lib/PicoFeed/Rules/fossbytes.com.php | 18 + .../lib/PicoFeed/Rules/fototelegraf.ru.php | 19 + .../PicoFeed/Rules/fowllanguagecomics.com.php | 10 + .../lib/PicoFeed/Rules/gamechannel.hu.php | 15 + .../lib/PicoFeed/Rules/gamestar.hu.php | 17 + .../picofeed/lib/PicoFeed/Rules/geek.com.php | 17 + .../lib/PicoFeed/Rules/geektimes.ru.php | 12 + .../PicoFeed/Rules/gerbilwithajetpack.com.php | 12 + .../lib/PicoFeed/Rules/giantitp.com.php | 12 + .../lib/PicoFeed/Rules/github.com.php | 14 + .../lib/PicoFeed/Rules/gocomics.com.php | 12 + .../picofeed/lib/PicoFeed/Rules/golem.de.php | 21 + .../lib/PicoFeed/Rules/gondola.hu.php | 22 + .../lib/PicoFeed/Rules/gorabbit.ru.php | 19 + .../lib/PicoFeed/Rules/habrahabr.ru.php | 12 + .../lib/PicoFeed/Rules/happletea.com.php | 18 + .../lib/PicoFeed/Rules/hardware.fr.php | 11 + .../picofeed/lib/PicoFeed/Rules/heise.de.php | 79 + .../lib/PicoFeed/Rules/hirek.prim.hu.php | 14 + .../lib/PicoFeed/Rules/hotshowlife.com.php | 23 + .../lib/PicoFeed/Rules/huffingtonpost.com.php | 13 + .../picofeed/lib/PicoFeed/Rules/hvg.hu.php | 17 + .../picofeed/lib/PicoFeed/Rules/idokep.hu.php | 18 + .../lib/PicoFeed/Rules/imogenquest.net.php | 8 + .../picofeed/lib/PicoFeed/Rules/index.hu.php | 29 + .../lib/PicoFeed/Rules/indiehaven.com.php | 11 + .../lib/PicoFeed/Rules/inforadio.hu.php | 25 + .../picofeed/lib/PicoFeed/Rules/ing.dk.php | 12 + .../lib/PicoFeed/Rules/invisiblebread.com.php | 8 + .../lib/PicoFeed/Rules/ir.amd.com.php | 10 + .../lib/PicoFeed/Rules/japantimes.co.jp.php | 21 + .../lib/PicoFeed/Rules/japantoday.com.php | 15 + .../lib/PicoFeed/Rules/journaldugeek.com.php | 11 + .../lib/PicoFeed/Rules/jsonline.com.php | 37 + .../lib/PicoFeed/Rules/justcoolidea.ru.php | 19 + .../picofeed/lib/PicoFeed/Rules/kanpai.fr.php | 13 + .../PicoFeed/Rules/karriere.jobfinder.dk.php | 12 + .../lib/PicoFeed/Rules/kisalfold.hu.php | 17 + .../lib/PicoFeed/Rules/kiszamolo.hu.php | 14 + .../picofeed/lib/PicoFeed/Rules/kodi.tv.php | 11 + .../lib/PicoFeed/Rules/koreaherald.com.php | 11 + .../lib/PicoFeed/Rules/koreatimes.php | 14 + .../PicoFeed/Rules/lastplacecomics.com.php | 8 + .../lib/PicoFeed/Rules/legorafi.fr.php | 22 + .../lib/PicoFeed/Rules/lejapon.fr.php | 17 + .../lib/PicoFeed/Rules/lesjoiesducode.fr.php | 13 + .../picofeed/lib/PicoFeed/Rules/lfg.co.php | 12 + .../lib/PicoFeed/Rules/lifehacker.com.php | 18 + .../lib/PicoFeed/Rules/lifehacker.ru.php | 22 + .../lib/PicoFeed/Rules/linux-magazin.de.php | 16 + .../picofeed/lib/PicoFeed/Rules/linux.org.php | 14 + .../lib/PicoFeed/Rules/linux.org.ru.php | 13 + .../lib/PicoFeed/Rules/linuxinsider.com.php | 20 + .../p3k/picofeed/lib/PicoFeed/Rules/lists.php | 13 + .../lib/PicoFeed/Rules/loadingartist.com.php | 8 + .../lib/PicoFeed/Rules/loldwell.com.php | 10 + .../lib/PicoFeed/Rules/lukesurl.com.php | 15 + .../picofeed/lib/PicoFeed/Rules/macg.co.php | 13 + .../lib/PicoFeed/Rules/maclife.de.php | 11 + .../lib/PicoFeed/Rules/magyarkurir.hu.php | 21 + .../picofeed/lib/PicoFeed/Rules/marc.info.php | 13 + .../PicoFeed/Rules/marriedtothesea.com.php | 12 + .../lib/PicoFeed/Rules/marycagle.com.php | 13 + .../Rules/maximumble.thebookofbiff.com.php | 10 + .../lib/PicoFeed/Rules/medium.com.php | 19 + .../lib/PicoFeed/Rules/mercworks.net.php | 17 + .../lib/PicoFeed/Rules/metronieuws.nl.php | 10 + .../lib/PicoFeed/Rules/milwaukeenns.php | 14 + .../picofeed/lib/PicoFeed/Rules/mno.hu.php | 14 + .../Rules/mokepon.smackjeeves.com.php | 10 + .../lib/PicoFeed/Rules/monandroid.com.php | 13 + .../lib/PicoFeed/Rules/monwindows.com.php | 13 + .../lib/PicoFeed/Rules/moya-planeta.ru.php | 21 + .../lib/PicoFeed/Rules/mrlovenstein.com.php | 9 + .../lib/PicoFeed/Rules/muckrock.com.php | 20 + .../PicoFeed/Rules/mynorthshorenow.com.php | 27 + .../lib/PicoFeed/Rules/nakedCapitalism.php | 11 + .../picofeed/lib/PicoFeed/Rules/nasa.gov.php | 14 + .../lib/PicoFeed/Rules/nat-geo.ru.php | 11 + .../PicoFeed/Rules/nationaljournal.com.php | 15 + .../lib/PicoFeed/Rules/nature.com.php | 13 + .../picofeed/lib/PicoFeed/Rules/nba.com.php | 15 + .../lib/PicoFeed/Rules/nedroid.com.php | 8 + .../lib/PicoFeed/Rules/networkworld.com.php | 20 + .../lib/PicoFeed/Rules/neustadt-ticker.de.php | 15 + .../lib/PicoFeed/Rules/nextinpact.com.php | 18 + .../lib/PicoFeed/Rules/niceteethcomic.com.php | 10 + .../lib/PicoFeed/Rules/nichtlustig.de.php | 8 + .../picofeed/lib/PicoFeed/Rules/nlcafe.hu.php | 18 + .../lib/PicoFeed/Rules/novo-argumente.com.php | 16 + .../picofeed/lib/PicoFeed/Rules/oglaf.com.php | 19 + .../picofeed/lib/PicoFeed/Rules/onhax.net.php | 15 + .../lib/PicoFeed/Rules/onlinekosten.de.php | 13 + .../lib/PicoFeed/Rules/onmilwaukee.php | 24 + .../lib/PicoFeed/Rules/openculture.com.php | 11 + .../lib/PicoFeed/Rules/opennet.ru.php | 13 + .../PicoFeed/Rules/openrightsgroup.org.php | 20 + .../lib/PicoFeed/Rules/opensource.com.php | 22 + .../lib/PicoFeed/Rules/optipess.com.php | 8 + .../picofeed/lib/PicoFeed/Rules/origo.hu.php | 14 + .../lib/PicoFeed/Rules/osnews.com.php | 11 + .../lib/PicoFeed/Rules/pastebin.com.php | 13 + .../lib/PicoFeed/Rules/pcgameshardware.de.php | 16 + .../lib/PicoFeed/Rules/peebleslab.com.php | 9 + .../lib/PicoFeed/Rules/penny-arcade.com.php | 21 + .../lib/PicoFeed/Rules/pixelbeat.org.php | 12 + .../lib/PicoFeed/Rules/plus.google.com.php | 11 + .../lib/PicoFeed/Rules/popstrip.com.php | 8 + .../lib/PicoFeed/Rules/portfolio.hu.php | 15 + .../lib/PicoFeed/Rules/pro-linux.de.php | 16 + .../PicoFeed/Rules/publicpolicyforum.org.php | 15 + .../picofeed/lib/PicoFeed/Rules/publy.ru.php | 24 + .../lib/PicoFeed/Rules/putaindecode.fr.php | 16 + .../lib/PicoFeed/Rules/recode.net.php | 20 + .../PicoFeed/Rules/retractionwatch.com.php | 18 + .../PicoFeed/Rules/rockpapershotgun.com.php | 11 + .../PicoFeed/Rules/rue89.nouvelobs.com.php | 13 + .../lib/PicoFeed/Rules/rugbyrama.fr.php | 20 + .../lib/PicoFeed/Rules/salonkolumnisten.com | 17 + .../lib/PicoFeed/Rules/satwcomic.com.php | 13 + .../PicoFeed/Rules/science-skeptical.de.php | 14 + .../lib/PicoFeed/Rules/scrumalliance.org.php | 12 + .../lib/PicoFeed/Rules/securityfocus.com.php | 17 + .../PicoFeed/Rules/sentfromthemoon.com.php | 18 + .../lib/PicoFeed/Rules/sitepoint.com.php | 13 + .../lib/PicoFeed/Rules/slashdot.org.php | 11 + .../PicoFeed/Rules/smallhousebliss.com.php | 19 + .../lib/PicoFeed/Rules/smarthomewelt.de.php | 10 + .../PicoFeed/Rules/smashingmagazine.com.php | 10 + .../lib/PicoFeed/Rules/smbc-comics.com.php | 14 + .../lib/PicoFeed/Rules/snopes.com.php | 22 + .../lib/PicoFeed/Rules/soundandvision.com.php | 21 + .../lib/PicoFeed/Rules/spiegel.de.php | 14 + .../lib/PicoFeed/Rules/stereophile.com.php | 11 + .../lib/PicoFeed/Rules/stupidfox.net.php | 13 + .../lib/PicoFeed/Rules/subtraction.com.php | 15 + .../p3k/picofeed/lib/PicoFeed/Rules/sz.de.php | 10 + .../lib/PicoFeed/Rules/takprosto.cc.php | 21 + .../lib/PicoFeed/Rules/techcrunch.com.php | 15 + .../PicoFeed/Rules/the-ebook-reader.com.php | 15 + .../lib/PicoFeed/Rules/theatlantic.com.php | 23 + .../lib/PicoFeed/Rules/theawkwardyeti.com.php | 12 + .../lib/PicoFeed/Rules/thecodinglove.com.php | 10 + .../PicoFeed/Rules/thedoghousediaries.com.php | 18 + .../lib/PicoFeed/Rules/thegamercat.com.php | 10 + .../lib/PicoFeed/Rules/thehindu.com.php | 19 + .../lib/PicoFeed/Rules/thelocal.se.php | 17 + .../lib/PicoFeed/Rules/themerepublic.net.php | 10 + .../lib/PicoFeed/Rules/themoscowtimes.com.php | 18 + .../lib/PicoFeed/Rules/thenewslens.com.php | 21 + .../lib/PicoFeed/Rules/theodd1sout.com.php | 8 + .../lib/PicoFeed/Rules/theonion.com.php | 12 + .../lib/PicoFeed/Rules/theregister.co.uk.php | 18 + .../lib/PicoFeed/Rules/thestandard.com.hk.php | 22 + .../lib/PicoFeed/Rules/theverge.com.php | 16 + .../lib/PicoFeed/Rules/threepanelsoul.com.php | 11 + .../lib/PicoFeed/Rules/tichyseinblick.de.php | 22 + .../Rules/timesofindia.indiatimes.com.php | 14 + .../lib/PicoFeed/Rules/totalcar.hu.php | 18 + .../lib/PicoFeed/Rules/tozsdeforum.hu.php | 15 + .../lib/PicoFeed/Rules/travel-dealz.de.php | 15 + .../lib/PicoFeed/Rules/travelo.hu.php | 17 + .../lib/PicoFeed/Rules/treehugger.com.php | 14 + .../lib/PicoFeed/Rules/treelobsters.com.php | 8 + .../lib/PicoFeed/Rules/tutorialzine.com.php | 20 + .../lib/PicoFeed/Rules/twogag.com.php | 8 + .../PicoFeed/Rules/twokinds.keenspot.com.php | 10 + .../lib/PicoFeed/Rules/undeadly.org.php | 14 + .../picofeed/lib/PicoFeed/Rules/upi.com.php | 15 + .../lib/PicoFeed/Rules/usatoday.com.php | 27 + .../lib/PicoFeed/Rules/version2.dk.php | 12 + .../picofeed/lib/PicoFeed/Rules/vezess.hu.php | 20 + .../lib/PicoFeed/Rules/vgcats.com.php | 15 + .../picofeed/lib/PicoFeed/Rules/vuxml.org.php | 17 + .../PicoFeed/Rules/wausaudailyherald.com.php | 27 + .../picofeed/lib/PicoFeed/Rules/welt.de.php | 20 + .../lib/PicoFeed/Rules/westfalen-blatt.de.php | 16 + .../lib/PicoFeed/Rules/www.bbc.co.uk.php | 33 + .../lib/PicoFeed/Rules/www.bdgest.com.php | 15 + .../lib/PicoFeed/Rules/www.bgr.in.php | 23 + .../PicoFeed/Rules/www.businessweek.com.php | 15 + .../lib/PicoFeed/Rules/www.cnn.com.php | 24 + .../lib/PicoFeed/Rules/www.developpez.com.php | 21 + .../lib/PicoFeed/Rules/www.egscomics.com.php | 12 + .../Rules/www.fakingnews.firstpost.com.php | 17 + .../lib/PicoFeed/Rules/www.forbes.com.php | 20 + .../PicoFeed/Rules/www.franceculture.fr.php | 14 + .../Rules/www.futura-sciences.com.php | 19 + .../PicoFeed/Rules/www.geekculture.com.php | 13 + .../lib/PicoFeed/Rules/www.howtogeek.com.php | 14 + .../lib/PicoFeed/Rules/www.lepoint.fr.php | 18 + .../PicoFeed/Rules/www.lesnumeriques.com.php | 25 + .../lib/PicoFeed/Rules/www.mac4ever.com.php | 13 + .../lib/PicoFeed/Rules/www.makeuseof.com.php | 18 + .../Rules/www.monsieur-le-chien.fr.php | 11 + .../lib/PicoFeed/Rules/www.npr.org.php | 28 + .../lib/PicoFeed/Rules/www.numerama.com.php | 15 + .../lib/PicoFeed/Rules/www.oneindia.com.php | 14 + .../Rules/www.pseudo-sciences.org.php | 16 + .../lib/PicoFeed/Rules/www.sciencemag.org.php | 16 + .../lib/PicoFeed/Rules/www.slate.fr.php | 19 + .../PicoFeed/Rules/www.universfreebox.com.php | 15 + .../lib/PicoFeed/Rules/www.zeit.de.php | 41 + .../picofeed/lib/PicoFeed/Rules/xkcd.com.php | 8 + .../lib/PicoFeed/Rules/ymatuhin.ru.php | 21 + .../lib/PicoFeed/Rules/zarojel.hu.php | 19 + .../picofeed/lib/PicoFeed/Rules/zdnet.com.php | 23 + .../picofeed/lib/PicoFeed/Rules/zoom.hu.php | 17 + .../lib/PicoFeed/Scraper/CandidateParser.php | 281 + .../lib/PicoFeed/Scraper/ParserInterface.php | 20 + .../lib/PicoFeed/Scraper/RuleLoader.php | 104 + .../lib/PicoFeed/Scraper/RuleParser.php | 102 + .../picofeed/lib/PicoFeed/Scraper/Scraper.php | 282 + .../PicoFeed/Serialization/Subscription.php | 175 + .../Serialization/SubscriptionList.php | 75 + .../Serialization/SubscriptionListBuilder.php | 204 + .../Serialization/SubscriptionListParser.php | 100 + .../Serialization/SubscriptionParser.php | 142 + .../PicoFeed/Syndication/AtomFeedBuilder.php | 65 + .../lib/PicoFeed/Syndication/AtomHelper.php | 139 + .../PicoFeed/Syndication/AtomItemBuilder.php | 63 + .../lib/PicoFeed/Syndication/FeedBuilder.php | 185 + .../lib/PicoFeed/Syndication/ItemBuilder.php | 209 + .../PicoFeed/Syndication/Rss20FeedBuilder.php | 76 + .../lib/PicoFeed/Syndication/Rss20Helper.php | 115 + .../PicoFeed/Syndication/Rss20ItemBuilder.php | 67 + .../admin/vendor/p3k/picofeed/picofeed | 135 + .../admin/vendor/scssphp/scssphp/LICENSE.md | 20 + .../admin/vendor/scssphp/scssphp/README.md | 71 + .../admin/vendor/scssphp/scssphp/bin/pscss | 244 + .../vendor/scssphp/scssphp/composer.json | 117 + .../vendor/scssphp/scssphp/phpcs.xml.dist | 12 + .../admin/vendor/scssphp/scssphp/scss.inc.php | 21 + .../vendor/scssphp/scssphp/src/Base/Range.php | 57 + .../vendor/scssphp/scssphp/src/Block.php | 73 + .../scssphp/scssphp/src/Block/AtRootBlock.php | 37 + .../scssphp/src/Block/CallableBlock.php | 45 + .../scssphp/src/Block/ContentBlock.php | 38 + .../scssphp/src/Block/DirectiveBlock.php | 37 + .../scssphp/scssphp/src/Block/EachBlock.php | 37 + .../scssphp/scssphp/src/Block/ElseBlock.php | 27 + .../scssphp/scssphp/src/Block/ElseifBlock.php | 32 + .../scssphp/scssphp/src/Block/ForBlock.php | 47 + .../scssphp/scssphp/src/Block/IfBlock.php | 37 + .../scssphp/scssphp/src/Block/MediaBlock.php | 37 + .../scssphp/src/Block/NestedPropertyBlock.php | 37 + .../scssphp/scssphp/src/Block/WhileBlock.php | 32 + .../vendor/scssphp/scssphp/src/Cache.php | 272 + .../vendor/scssphp/scssphp/src/Colors.php | 247 + .../scssphp/scssphp/src/CompilationResult.php | 69 + .../vendor/scssphp/scssphp/src/Compiler.php | 10408 ++ .../scssphp/src/Compiler/CachedResult.php | 77 + .../scssphp/src/Compiler/Environment.php | 68 + .../src/Exception/CompilerException.php | 24 + .../scssphp/src/Exception/ParserException.php | 58 + .../scssphp/src/Exception/RangeException.php | 24 + .../scssphp/src/Exception/SassException.php | 7 + .../src/Exception/SassScriptException.php | 32 + .../scssphp/src/Exception/ServerException.php | 26 + .../vendor/scssphp/scssphp/src/Formatter.php | 377 + .../scssphp/scssphp/src/Formatter/Compact.php | 52 + .../scssphp/src/Formatter/Compressed.php | 83 + .../scssphp/src/Formatter/Crunched.php | 87 + .../scssphp/scssphp/src/Formatter/Debug.php | 127 + .../scssphp/src/Formatter/Expanded.php | 72 + .../scssphp/scssphp/src/Formatter/Nested.php | 238 + .../scssphp/src/Formatter/OutputBlock.php | 68 + .../scssphp/src/Logger/LoggerInterface.php | 48 + .../scssphp/src/Logger/QuietLogger.php | 29 + .../scssphp/src/Logger/StreamLogger.php | 62 + .../admin/vendor/scssphp/scssphp/src/Node.php | 43 + .../scssphp/scssphp/src/Node/Number.php | 804 + .../scssphp/scssphp/src/OutputStyle.php | 9 + .../vendor/scssphp/scssphp/src/Parser.php | 4201 + .../scssphp/scssphp/src/SourceMap/Base64.php | 187 + .../scssphp/src/SourceMap/Base64VLQ.php | 151 + .../src/SourceMap/SourceMapGenerator.php | 390 + .../admin/vendor/scssphp/scssphp/src/Type.php | 208 + .../admin/vendor/scssphp/scssphp/src/Util.php | 184 + .../vendor/scssphp/scssphp/src/Util/Path.php | 77 + .../scssphp/scssphp/src/ValueConverter.php | 95 + .../vendor/scssphp/scssphp/src/Version.php | 23 + .../admin/vendor/scssphp/scssphp/src/Warn.php | 84 + user/plugins/comments/.gitignore | 1 + user/plugins/comments/CHANGELOG.md | 135 + user/plugins/comments/README.md | 74 + user/plugins/comments/admin/pages/comments.md | 7 + .../admin/templates/comments.html.twig | 133 + user/plugins/comments/blueprints.yaml | 33 + user/plugins/comments/comments.php | 435 + user/plugins/comments/comments.yaml | 77 + user/plugins/comments/languages.yaml | 276 + .../templates/partials/comments.html.twig | 60 + user/plugins/devtools/CHANGELOG.md | 197 + user/plugins/devtools/LICENSE | 21 + user/plugins/devtools/README.md | 79 + user/plugins/devtools/blueprints.yaml | 41 + .../devtools/classes/DevToolsCommand.php | 362 + .../devtools/cli/NewBlueprintCommand.php | 88 + .../plugins/devtools/cli/NewPluginCommand.php | 146 + user/plugins/devtools/cli/NewThemeCommand.php | 171 + .../blueprint/append/blueprint.yaml.twig | 21 + .../blueprint/newtab/blueprint.yaml.twig | 15 + .../components/plugin/blank/CHANGELOG.md.twig | 5 + .../components/plugin/blank/LICENSE.twig | 21 + .../components/plugin/blank/README.md.twig | 59 + .../plugin/blank/blueprints.yaml.twig | 37 + .../components/plugin/blank/classes/.gitkeep | 0 .../plugin/blank/composer.json.twig | 30 + .../plugin/blank/languages.yaml.twig | 4 + .../components/plugin/blank/plugin.php.twig | 59 + .../components/plugin/blank/plugin.yaml.twig | 2 + .../theme/inheritance/CHANGELOG.md.twig | 5 + .../components/theme/inheritance/LICENSE.twig | 21 + .../theme/inheritance/README.md.twig | 7 + .../theme/inheritance/blueprints.yaml.twig | 19 + .../components/theme/inheritance/css/.gitkeep | 0 .../components/theme/inheritance/js/.gitkeep | 0 .../theme/inheritance/screenshot.jpg | Bin 0 -> 15428 bytes .../theme/inheritance/templates/.gitkeep | 0 .../theme/inheritance/theme.php.twig | 9 + .../theme/inheritance/theme.yaml.twig | 10 + .../theme/inheritance/thumbnail.jpg | Bin 0 -> 3681 bytes .../theme/pure-blank/CHANGELOG.md.twig | 5 + .../components/theme/pure-blank/LICENSE.twig | 21 + .../theme/pure-blank/README.md.twig | 7 + .../theme/pure-blank/blueprints.yaml.twig | 33 + .../theme/pure-blank/css/custom.css | 175 + .../theme/pure-blank/fonts/.gitkeep | 0 .../theme/pure-blank/images/logo.png | Bin 0 -> 8714 bytes .../components/theme/pure-blank/js/.gitkeep | 0 .../theme/pure-blank/screenshot.jpg | Bin 0 -> 15428 bytes .../pure-blank/templates/default.html.twig | 5 + .../pure-blank/templates/error.html.twig | 8 + .../templates/partials/base.html.twig | 70 + .../templates/partials/navigation.html.twig | 47 + .../theme/pure-blank/theme.php.twig | 9 + .../theme/pure-blank/theme.yaml.twig | 3 + .../components/theme/pure-blank/thumbnail.jpg | Bin 0 -> 3681 bytes .../theme/tailwind/CHANGELOG.md.twig | 5 + .../components/theme/tailwind/LICENSE.twig | 21 + .../components/theme/tailwind/README.md.twig | 41 + .../theme/tailwind/blueprints.yaml.twig | 43 + .../components/theme/tailwind/css/site.css | 5 + .../components/theme/tailwind/fonts/.gitkeep | 0 .../components/theme/tailwind/images/logo.png | Bin 0 -> 8714 bytes .../components/theme/tailwind/js/.gitkeep | 0 .../theme/tailwind/languages/en.yaml.twig | 2 + .../theme/tailwind/package.json.twig | 30 + .../theme/tailwind/postcss.config.js | 11 + .../components/theme/tailwind/screenshot.jpg | Bin 0 -> 15428 bytes .../theme/tailwind/tailwind.config.js.twig | 70 + .../tailwind/templates/default.html.twig | 5 + .../theme/tailwind/templates/error.html.twig | 8 + .../templates/partials/base.html.twig | 67 + .../templates/partials/navigation.html.twig | 47 + .../components/theme/tailwind/theme.php.twig | 9 + .../components/theme/tailwind/theme.yaml.twig | 4 + .../components/theme/tailwind/thumbnail.jpg | Bin 0 -> 3681 bytes user/plugins/devtools/devtools.php | 13 + user/plugins/devtools/devtools.yaml | 2 + user/plugins/devtools/languages.yaml | 3 + user/plugins/email/CHANGELOG.md | 330 + user/plugins/email/LICENSE | 21 + user/plugins/email/README.md | 491 + user/plugins/email/blueprints.yaml | 251 + user/plugins/email/classes/Email.php | 564 + user/plugins/email/classes/Utils.php | 48 + .../email/cli/ClearQueueFailuresCommand.php | 62 + user/plugins/email/cli/FlushQueueCommand.php | 63 + user/plugins/email/cli/TestEmailCommand.php | 107 + user/plugins/email/composer.json | 43 + user/plugins/email/composer.lock | 415 + user/plugins/email/email.php | 188 + user/plugins/email/email.yaml | 23 + user/plugins/email/hebe.json | 15 + user/plugins/email/languages.yaml | 165 + .../email/templates/email/base.html.twig | 214 + user/plugins/email/vendor/autoload.php | 7 + .../email/vendor/composer/ClassLoader.php | 572 + .../vendor/composer/InstalledVersions.php | 350 + user/plugins/email/vendor/composer/LICENSE | 21 + .../vendor/composer/autoload_classmap.php | 12 + .../email/vendor/composer/autoload_files.php | 12 + .../vendor/composer/autoload_namespaces.php | 9 + .../email/vendor/composer/autoload_psr4.php | 15 + .../email/vendor/composer/autoload_real.php | 80 + .../email/vendor/composer/autoload_static.php | 78 + .../email/vendor/composer/installed.json | 412 + .../email/vendor/composer/installed.php | 86 + .../email/vendor/composer/platform_check.php | 26 + .../email/vendor/doctrine/lexer/LICENSE | 19 + .../email/vendor/doctrine/lexer/README.md | 9 + .../email/vendor/doctrine/lexer/composer.json | 41 + .../Doctrine/Common/Lexer/AbstractLexer.php | 337 + .../email/vendor/doctrine/lexer/psalm.xml | 15 + .../egulias/email-validator/CHANGELOG.md | 33 + .../egulias/email-validator/CONTRIBUTING.md | 153 + .../vendor/egulias/email-validator/LICENSE | 19 + .../egulias/email-validator/composer.json | 38 + .../egulias/email-validator/composer.lock | 4440 + .../email-validator/src/EmailLexer.php | 361 + .../email-validator/src/EmailParser.php | 91 + .../email-validator/src/EmailValidator.php | 67 + .../email-validator/src/MessageIDParser.php | 93 + .../egulias/email-validator/src/Parser.php | 78 + .../email-validator/src/Parser/Comment.php | 103 + .../CommentStrategy/CommentStrategy.php | 18 + .../Parser/CommentStrategy/DomainComment.php | 37 + .../Parser/CommentStrategy/LocalComment.php | 37 + .../src/Parser/DomainLiteral.php | 212 + .../email-validator/src/Parser/DomainPart.php | 312 + .../src/Parser/DoubleQuote.php | 87 + .../src/Parser/FoldingWhiteSpace.php | 82 + .../email-validator/src/Parser/IDLeftPart.php | 16 + .../src/Parser/IDRightPart.php | 29 + .../email-validator/src/Parser/LocalPart.php | 164 + .../email-validator/src/Parser/PartParser.php | 63 + .../src/Result/InvalidEmail.php | 46 + .../src/Result/MultipleErrors.php | 56 + .../src/Result/Reason/AtextAfterCFWS.php | 16 + .../src/Result/Reason/CRLFAtTheEnd.php | 19 + .../src/Result/Reason/CRLFX2.php | 16 + .../src/Result/Reason/CRNoLF.php | 16 + .../src/Result/Reason/CharNotAllowed.php | 16 + .../src/Result/Reason/CommaInDomain.php | 16 + .../src/Result/Reason/CommentsInIDRight.php | 16 + .../src/Result/Reason/ConsecutiveAt.php | 17 + .../src/Result/Reason/ConsecutiveDot.php | 16 + .../src/Result/Reason/DetailedReason.php | 13 + .../src/Result/Reason/DomainAcceptsNoMail.php | 16 + .../src/Result/Reason/DomainHyphened.php | 16 + .../src/Result/Reason/DomainTooLong.php | 16 + .../src/Result/Reason/DotAtEnd.php | 16 + .../src/Result/Reason/DotAtStart.php | 16 + .../src/Result/Reason/EmptyReason.php | 16 + .../src/Result/Reason/ExceptionFound.php | 26 + .../src/Result/Reason/ExpectingATEXT.php | 16 + .../src/Result/Reason/ExpectingCTEXT.php | 16 + .../src/Result/Reason/ExpectingDTEXT.php | 16 + .../Reason/ExpectingDomainLiteralClose.php | 16 + .../src/Result/Reason/LabelTooLong.php | 16 + .../Result/Reason/LocalOrReservedDomain.php | 16 + .../src/Result/Reason/NoDNSRecord.php | 16 + .../src/Result/Reason/NoDomainPart.php | 16 + .../src/Result/Reason/NoLocalPart.php | 16 + .../src/Result/Reason/RFCWarnings.php | 16 + .../src/Result/Reason/Reason.php | 16 + .../src/Result/Reason/SpoofEmail.php | 17 + .../src/Result/Reason/UnOpenedComment.php | 16 + .../Result/Reason/UnableToGetDNSRecord.php | 19 + .../src/Result/Reason/UnclosedComment.php | 16 + .../Result/Reason/UnclosedQuotedString.php | 16 + .../src/Result/Reason/UnusualElements.php | 26 + .../email-validator/src/Result/Result.php | 27 + .../email-validator/src/Result/SpoofEmail.php | 14 + .../email-validator/src/Result/ValidEmail.php | 27 + .../src/Validation/DNSCheckValidation.php | 184 + .../src/Validation/EmailValidation.php | 34 + .../Exception/EmptyValidationList.php | 16 + .../Validation/Extra/SpoofCheckValidation.php | 52 + .../src/Validation/MessageIDValidation.php | 51 + .../Validation/MultipleValidationWithAnd.php | 117 + .../Validation/NoRFCWarningsValidation.php | 41 + .../src/Validation/RFCValidation.php | 55 + .../src/Warning/AddressLiteral.php | 14 + .../src/Warning/CFWSNearAt.php | 13 + .../src/Warning/CFWSWithFWS.php | 13 + .../email-validator/src/Warning/Comment.php | 13 + .../src/Warning/DeprecatedComment.php | 13 + .../src/Warning/DomainLiteral.php | 14 + .../src/Warning/EmailTooLong.php | 15 + .../src/Warning/IPV6BadChar.php | 14 + .../src/Warning/IPV6ColonEnd.php | 14 + .../src/Warning/IPV6ColonStart.php | 14 + .../src/Warning/IPV6Deprecated.php | 14 + .../src/Warning/IPV6DoubleColon.php | 14 + .../src/Warning/IPV6GroupCount.php | 14 + .../src/Warning/IPV6MaxGroups.php | 14 + .../src/Warning/LocalTooLong.php | 15 + .../src/Warning/NoDNSMXRecord.php | 14 + .../src/Warning/ObsoleteDTEXT.php | 14 + .../src/Warning/QuotedPart.php | 17 + .../src/Warning/QuotedString.php | 17 + .../email-validator/src/Warning/TLD.php | 13 + .../email-validator/src/Warning/Warning.php | 47 + .../swiftmailer/swiftmailer/.gitattributes | 11 + .../swiftmailer/.github/ISSUE_TEMPLATE.md | 19 + .../.github/PULL_REQUEST_TEMPLATE.md | 14 + .../swiftmailer/.github/workflows/tests.yml | 55 + .../vendor/swiftmailer/swiftmailer/.gitignore | 9 + .../swiftmailer/swiftmailer/.php_cs.dist | 21 + .../vendor/swiftmailer/swiftmailer/CHANGES | 391 + .../vendor/swiftmailer/swiftmailer/LICENSE | 19 + .../vendor/swiftmailer/swiftmailer/README.md | 25 + .../swiftmailer/swiftmailer/composer.json | 44 + .../swiftmailer/swiftmailer/doc/headers.rst | 621 + .../swiftmailer/swiftmailer/doc/index.rst | 12 + .../swiftmailer/doc/introduction.rst | 67 + .../swiftmailer/swiftmailer/doc/japanese.rst | 19 + .../swiftmailer/swiftmailer/doc/messages.rst | 949 + .../swiftmailer/swiftmailer/doc/plugins.rst | 337 + .../swiftmailer/swiftmailer/doc/sending.rst | 464 + .../swiftmailer/lib/classes/Swift.php | 78 + .../lib/classes/Swift/AddressEncoder.php | 25 + .../AddressEncoder/IdnAddressEncoder.php | 50 + .../AddressEncoder/Utf8AddressEncoder.php | 36 + .../classes/Swift/AddressEncoderException.php | 32 + .../lib/classes/Swift/Attachment.php | 54 + .../AbstractFilterableInputStream.php | 176 + .../Swift/ByteStream/ArrayByteStream.php | 178 + .../Swift/ByteStream/FileByteStream.php | 214 + .../ByteStream/TemporaryFileByteStream.php | 52 + .../lib/classes/Swift/CharacterReader.php | 67 + .../GenericFixedWidthReader.php | 97 + .../Swift/CharacterReader/UsAsciiReader.php | 84 + .../Swift/CharacterReader/Utf8Reader.php | 176 + .../classes/Swift/CharacterReaderFactory.php | 26 + .../SimpleCharacterReaderFactory.php | 124 + .../lib/classes/Swift/CharacterStream.php | 87 + .../CharacterStream/ArrayCharacterStream.php | 291 + .../CharacterStream/NgCharacterStream.php | 262 + .../lib/classes/Swift/ConfigurableSpool.php | 63 + .../lib/classes/Swift/DependencyContainer.php | 387 + .../lib/classes/Swift/DependencyException.php | 27 + .../lib/classes/Swift/EmbeddedFile.php | 53 + .../swiftmailer/lib/classes/Swift/Encoder.php | 28 + .../classes/Swift/Encoder/Base64Encoder.php | 58 + .../lib/classes/Swift/Encoder/QpEncoder.php | 300 + .../classes/Swift/Encoder/Rfc2231Encoder.php | 90 + .../lib/classes/Swift/Events/CommandEvent.php | 64 + .../classes/Swift/Events/CommandListener.php | 22 + .../lib/classes/Swift/Events/Event.php | 38 + .../classes/Swift/Events/EventDispatcher.php | 70 + .../classes/Swift/Events/EventListener.php | 18 + .../lib/classes/Swift/Events/EventObject.php | 61 + .../classes/Swift/Events/ResponseEvent.php | 64 + .../classes/Swift/Events/ResponseListener.php | 22 + .../lib/classes/Swift/Events/SendEvent.php | 126 + .../lib/classes/Swift/Events/SendListener.php | 27 + .../Swift/Events/SimpleEventDispatcher.php | 142 + .../Swift/Events/TransportChangeEvent.php | 27 + .../Swift/Events/TransportChangeListener.php | 37 + .../Swift/Events/TransportExceptionEvent.php | 43 + .../Events/TransportExceptionListener.php | 22 + .../lib/classes/Swift/FailoverTransport.php | 33 + .../lib/classes/Swift/FileSpool.php | 208 + .../lib/classes/Swift/FileStream.php | 24 + .../lib/classes/Swift/Filterable.php | 31 + .../lib/classes/Swift/IdGenerator.php | 22 + .../swiftmailer/lib/classes/Swift/Image.php | 43 + .../lib/classes/Swift/InputByteStream.php | 75 + .../lib/classes/Swift/IoException.php | 28 + .../lib/classes/Swift/KeyCache.php | 104 + .../classes/Swift/KeyCache/ArrayKeyCache.php | 197 + .../classes/Swift/KeyCache/DiskKeyCache.php | 294 + .../Swift/KeyCache/KeyCacheInputStream.php | 47 + .../classes/Swift/KeyCache/NullKeyCache.php | 113 + .../KeyCache/SimpleKeyCacheInputStream.php | 123 + .../classes/Swift/LoadBalancedTransport.php | 33 + .../swiftmailer/lib/classes/Swift/Mailer.php | 98 + .../Swift/Mailer/ArrayRecipientIterator.php | 53 + .../Swift/Mailer/RecipientIterator.php | 32 + .../lib/classes/Swift/MemorySpool.php | 110 + .../swiftmailer/lib/classes/Swift/Message.php | 279 + .../lib/classes/Swift/Mime/Attachment.php | 144 + .../classes/Swift/Mime/CharsetObserver.php | 24 + .../lib/classes/Swift/Mime/ContentEncoder.php | 34 + .../ContentEncoder/Base64ContentEncoder.php | 101 + .../ContentEncoder/NativeQpContentEncoder.php | 121 + .../ContentEncoder/NullContentEncoder.php | 79 + .../ContentEncoder/PlainContentEncoder.php | 164 + .../Mime/ContentEncoder/QpContentEncoder.php | 134 + .../ContentEncoder/QpContentEncoderProxy.php | 96 + .../Mime/ContentEncoder/RawContentEncoder.php | 65 + .../lib/classes/Swift/Mime/EmbeddedFile.php | 41 + .../classes/Swift/Mime/EncodingObserver.php | 22 + .../lib/classes/Swift/Mime/Header.php | 93 + .../lib/classes/Swift/Mime/HeaderEncoder.php | 24 + .../HeaderEncoder/Base64HeaderEncoder.php | 55 + .../Mime/HeaderEncoder/QpHeaderEncoder.php | 65 + .../Swift/Mime/Headers/AbstractHeader.php | 486 + .../classes/Swift/Mime/Headers/DateHeader.php | 113 + .../Mime/Headers/IdentificationHeader.php | 189 + .../Swift/Mime/Headers/MailboxHeader.php | 358 + .../Swift/Mime/Headers/OpenDKIMHeader.php | 135 + .../Mime/Headers/ParameterizedHeader.php | 255 + .../classes/Swift/Mime/Headers/PathHeader.php | 153 + .../Swift/Mime/Headers/UnstructuredHeader.php | 109 + .../lib/classes/Swift/Mime/IdGenerator.php | 54 + .../lib/classes/Swift/Mime/MimePart.php | 199 + .../Swift/Mime/SimpleHeaderFactory.php | 195 + .../classes/Swift/Mime/SimpleHeaderSet.php | 399 + .../lib/classes/Swift/Mime/SimpleMessage.php | 642 + .../classes/Swift/Mime/SimpleMimeEntity.php | 826 + .../lib/classes/Swift/MimePart.php | 45 + .../lib/classes/Swift/NullTransport.php | 26 + .../lib/classes/Swift/OutputByteStream.php | 46 + .../classes/Swift/Plugins/AntiFloodPlugin.php | 137 + .../Swift/Plugins/BandwidthMonitorPlugin.php | 154 + .../Swift/Plugins/Decorator/Replacements.php | 31 + .../classes/Swift/Plugins/DecoratorPlugin.php | 200 + .../Swift/Plugins/ImpersonatePlugin.php | 65 + .../lib/classes/Swift/Plugins/Logger.php | 36 + .../classes/Swift/Plugins/LoggerPlugin.php | 126 + .../Swift/Plugins/Loggers/ArrayLogger.php | 72 + .../Swift/Plugins/Loggers/EchoLogger.php | 58 + .../classes/Swift/Plugins/MessageLogger.php | 70 + .../Swift/Plugins/Pop/Pop3Connection.php | 31 + .../Swift/Plugins/Pop/Pop3Exception.php | 27 + .../Swift/Plugins/PopBeforeSmtpPlugin.php | 242 + .../Swift/Plugins/RedirectingPlugin.php | 201 + .../lib/classes/Swift/Plugins/Reporter.php | 31 + .../classes/Swift/Plugins/ReporterPlugin.php | 57 + .../Swift/Plugins/Reporters/HitReporter.php | 58 + .../Swift/Plugins/Reporters/HtmlReporter.php | 38 + .../lib/classes/Swift/Plugins/Sleeper.php | 24 + .../classes/Swift/Plugins/ThrottlerPlugin.php | 196 + .../lib/classes/Swift/Plugins/Timer.php | 24 + .../lib/classes/Swift/Preferences.php | 100 + .../Swift/ReplacementFilterFactory.php | 27 + .../classes/Swift/RfcComplianceException.php | 27 + .../lib/classes/Swift/SendmailTransport.php | 33 + .../swiftmailer/lib/classes/Swift/Signer.php | 19 + .../lib/classes/Swift/Signers/BodySigner.php | 31 + .../lib/classes/Swift/Signers/DKIMSigner.php | 682 + .../classes/Swift/Signers/DomainKeySigner.php | 504 + .../classes/Swift/Signers/HeaderSigner.php | 61 + .../classes/Swift/Signers/OpenDKIMSigner.php | 183 + .../lib/classes/Swift/Signers/SMimeSigner.php | 542 + .../lib/classes/Swift/SmtpTransport.php | 45 + .../swiftmailer/lib/classes/Swift/Spool.php | 53 + .../lib/classes/Swift/SpoolTransport.php | 33 + .../lib/classes/Swift/StreamFilter.php | 35 + .../ByteArrayReplacementFilter.php | 166 + .../StreamFilters/StringReplacementFilter.php | 70 + .../StringReplacementFilterFactory.php | 45 + .../lib/classes/Swift/SwiftException.php | 28 + .../lib/classes/Swift/Transport.php | 76 + .../Swift/Transport/AbstractSmtpTransport.php | 541 + .../Esmtp/Auth/CramMd5Authenticator.php | 75 + .../Esmtp/Auth/LoginAuthenticator.php | 45 + .../Esmtp/Auth/NTLMAuthenticator.php | 681 + .../Esmtp/Auth/PlainAuthenticator.php | 44 + .../Esmtp/Auth/XOAuth2Authenticator.php | 64 + .../Swift/Transport/Esmtp/AuthHandler.php | 268 + .../Swift/Transport/Esmtp/Authenticator.php | 36 + .../Transport/Esmtp/EightBitMimeHandler.php | 113 + .../Swift/Transport/Esmtp/SmtpUtf8Handler.php | 107 + .../classes/Swift/Transport/EsmtpHandler.php | 86 + .../Swift/Transport/EsmtpTransport.php | 446 + .../Swift/Transport/FailoverTransport.php | 103 + .../lib/classes/Swift/Transport/IoBuffer.php | 65 + .../Swift/Transport/LoadBalancedTransport.php | 192 + .../classes/Swift/Transport/NullTransport.php | 98 + .../Swift/Transport/SendmailTransport.php | 158 + .../lib/classes/Swift/Transport/SmtpAgent.php | 36 + .../Swift/Transport/SpoolTransport.php | 120 + .../classes/Swift/Transport/StreamBuffer.php | 319 + .../lib/classes/Swift/TransportException.php | 28 + .../lib/dependency_maps/cache_deps.php | 23 + .../lib/dependency_maps/message_deps.php | 9 + .../lib/dependency_maps/mime_deps.php | 134 + .../lib/dependency_maps/transport_deps.php | 97 + .../swiftmailer/lib/mime_types.php | 1007 + .../swiftmailer/lib/preferences.php | 19 + .../swiftmailer/lib/swift_required.php | 22 + .../lib/swiftmailer_generate_mimes_config.php | 182 + .../vendor/symfony/polyfill-intl-idn/Idn.php | 925 + .../vendor/symfony/polyfill-intl-idn/Info.php | 23 + .../vendor/symfony/polyfill-intl-idn/LICENSE | 19 + .../symfony/polyfill-intl-idn/README.md | 12 + .../Resources/unidata/DisallowedRanges.php | 375 + .../Resources/unidata/Regex.php | 24 + .../Resources/unidata/deviation.php | 8 + .../Resources/unidata/disallowed.php | 2638 + .../unidata/disallowed_STD3_mapped.php | 308 + .../unidata/disallowed_STD3_valid.php | 71 + .../Resources/unidata/ignored.php | 273 + .../Resources/unidata/mapped.php | 5778 + .../Resources/unidata/virama.php | 65 + .../symfony/polyfill-intl-idn/bootstrap.php | 145 + .../symfony/polyfill-intl-idn/bootstrap80.php | 125 + .../symfony/polyfill-intl-idn/composer.json | 44 + .../symfony/polyfill-intl-normalizer/LICENSE | 19 + .../polyfill-intl-normalizer/Normalizer.php | 310 + .../polyfill-intl-normalizer/README.md | 14 + .../Resources/stubs/Normalizer.php | 17 + .../unidata/canonicalComposition.php | 945 + .../unidata/canonicalDecomposition.php | 2065 + .../Resources/unidata/combiningClass.php | 876 + .../unidata/compatibilityDecomposition.php | 3695 + .../polyfill-intl-normalizer/bootstrap.php | 23 + .../polyfill-intl-normalizer/bootstrap80.php | 19 + .../polyfill-intl-normalizer/composer.json | 39 + user/plugins/error/.gitignore | 9 + user/plugins/error/CHANGELOG.md | 91 + user/plugins/error/LICENSE | 21 + user/plugins/error/README.md | 93 + user/plugins/error/assets/readme_1.png | Bin 0 -> 41685 bytes user/plugins/error/blueprints.yaml | 36 + user/plugins/error/cli/LogCommand.php | 130 + user/plugins/error/composer.json | 39 + user/plugins/error/error.php | 117 + user/plugins/error/error.yaml | 3 + user/plugins/error/hebe.json | 15 + user/plugins/error/languages.yaml | 55 + user/plugins/error/pages/error.md | 14 + user/plugins/error/templates/error.html.twig | 3 + user/plugins/error/templates/error.json.twig | 1 + user/plugins/error/vendor/autoload.php | 7 + .../error/vendor/composer/ClassLoader.php | 445 + user/plugins/error/vendor/composer/LICENSE | 21 + .../vendor/composer/autoload_classmap.php | 10 + .../vendor/composer/autoload_namespaces.php | 9 + .../error/vendor/composer/autoload_psr4.php | 10 + .../error/vendor/composer/autoload_real.php | 52 + .../error/vendor/composer/autoload_static.php | 36 + .../error/vendor/composer/installed.json | 1 + user/plugins/feed/CHANGELOG.md | 143 + user/plugins/feed/LICENSE | 21 + user/plugins/feed/README.md | 146 + user/plugins/feed/assets/readme_1.png | Bin 0 -> 298108 bytes user/plugins/feed/blueprints.yaml | 78 + user/plugins/feed/blueprints/feed.yaml | 22 + user/plugins/feed/composer.json | 36 + user/plugins/feed/composer.lock | 21 + user/plugins/feed/feed.php | 162 + user/plugins/feed/feed.yaml | 7 + user/plugins/feed/hebe.json | 15 + user/plugins/feed/templates/feed.atom.twig | 45 + user/plugins/feed/templates/feed.json.twig | 43 + user/plugins/feed/templates/feed.rss.twig | 40 + user/plugins/feed/vendor/autoload.php | 7 + .../feed/vendor/composer/ClassLoader.php | 445 + .../vendor/composer/InstalledVersions.php | 209 + user/plugins/feed/vendor/composer/LICENSE | 21 + .../vendor/composer/autoload_classmap.php | 11 + .../vendor/composer/autoload_namespaces.php | 9 + .../feed/vendor/composer/autoload_psr4.php | 9 + .../feed/vendor/composer/autoload_real.php | 55 + .../feed/vendor/composer/autoload_static.php | 21 + .../feed/vendor/composer/installed.json | 5 + .../feed/vendor/composer/installed.php | 24 + user/plugins/flex-objects/.eslintrc | 170 + user/plugins/flex-objects/.gitignore | 3 + user/plugins/flex-objects/CHANGELOG.md | 523 + user/plugins/flex-objects/LICENSE | 21 + user/plugins/flex-objects/README.md | 289 + .../flex-objects/admin/pages/flex-objects.md | 7 + .../admin/templates/flex-objects.html.twig | 30 + .../admin/templates/flex-objects.json.twig | 1 + .../flex-objects/layouts/404.html.twig | 1 + .../layouts/accounts/partials/top.html.twig | 25 + .../types/default/buttons/add.html.twig | 3 + .../types/default/buttons/back.html.twig | 3 + .../default/buttons/configuration.html.twig | 7 + .../types/default/buttons/delete.html.twig | 3 + .../default/buttons/export-csv.html.twig | 3 + .../types/default/buttons/export.html.twig | 21 + .../types/default/buttons/languages.html.twig | 18 + .../default/buttons/preview-open.html.twig | 5 + .../types/default/buttons/preview.html.twig | 3 + .../types/default/buttons/save.html.twig | 4 + .../types/default/configure.html.twig | 103 + .../flex-objects/types/default/edit.html.twig | 121 + .../flex-objects/types/default/list.html.twig | 98 + .../types/default/list/list.html.twig | 112 + .../types/default/list/list_actions.html.twig | 39 + .../types/default/modals/remove.html.twig | 13 + .../types/default/preview.html.twig | 62 + .../default/titlebar/configure.html.twig | 32 + .../types/default/titlebar/edit.html.twig | 46 + .../types/default/titlebar/list.html.twig | 48 + .../types/default/titlebar/preview.html.twig | 30 + .../types/default/titlebar/types.html.twig | 22 + .../types/default/types.html.twig | 46 + .../types/pages/buttons/add.html.twig | 20 + .../types/pages/buttons/back.html.twig | 3 + .../types/pages/buttons/copy.html.twig | 4 + .../types/pages/buttons/delete.html.twig | 3 + .../types/pages/buttons/move.html.twig | 6 + .../types/pages/buttons/nav-child.html.twig | 9 + .../types/pages/buttons/nav-next.html.twig | 9 + .../types/pages/buttons/nav-parent.html.twig | 9 + .../types/pages/buttons/nav-prev.html.twig | 9 + .../types/pages/buttons/preview.html.twig | 5 + .../types/pages/buttons/save.html.twig | 23 + .../flex-objects/types/pages/edit.html.twig | 236 + .../flex-objects/types/pages/list.html.twig | 29 + .../types/pages/list/columns.html.twig | 155 + .../types/pages/list/list.html.twig | 41 + .../types/pages/preview.html.twig | 16 + .../types/user-accounts/configure.html.twig | 9 + .../types/user-accounts/edit.html.twig | 9 + .../types/user-accounts/list.html.twig | 7 + .../types/user-groups/configure.html.twig | 9 + .../types/user-groups/list.html.twig | 7 + .../flex-objects/flex-objects.html.twig | 69 + .../save-redirect/save-redirect.html.twig | 37 + .../flex-objects/app/columns/finder.js | 425 + .../plugins/flex-objects/app/columns/index.js | 102 + .../plugins/flex-objects/app/filters/index.js | 46 + .../plugins/flex-objects/app/filters/panel.js | 15 + user/plugins/flex-objects/app/list/App.vue | 27 + .../app/list/VuetableCssConfig.js | 29 + .../app/list/components/ContentLoader.vue | 48 + .../app/list/components/FilterBar.vue | 66 + .../app/list/components/Table.vue | 94 + user/plugins/flex-objects/app/list/index.js | 19 + user/plugins/flex-objects/app/main.js | 3 + user/plugins/flex-objects/app/utils/finder.js | 393 + .../flex-objects/app/utils/get-filters.js | 34 + .../flex-objects/app/utils/indeterminate.js | 44 + .../assets/flex-objects-directory.png | Bin 0 -> 137785 bytes .../flex-objects/assets/flex-objects-edit.png | Bin 0 -> 159728 bytes .../flex-objects/assets/flex-objects-list.png | Bin 0 -> 239360 bytes .../assets/flex-objects-options.png | Bin 0 -> 256165 bytes .../flex-objects/assets/flex-objects-site.png | Bin 0 -> 253928 bytes user/plugins/flex-objects/blueprints.yaml | 55 + .../flex-objects/blueprints/flex-objects.yaml | 16 + .../blueprints/flex-objects/contacts.yaml | 158 + .../blueprints/flex-objects/pages.yaml | 22 + .../flex-objects/user-accounts.yaml | 7 + .../blueprints/flex-objects/user-groups.yaml | 7 + .../blueprints/pages/flex-objects.yaml | 21 + .../classes/Admin/AdminController.php | 1910 + .../Controllers/AbstractController.php | 361 + .../classes/Controllers/MediaController.php | 675 + .../classes/Controllers/ObjectController.php | 543 + .../classes/Events/FlexTaskEvent.php | 84 + user/plugins/flex-objects/classes/Flex.php | 444 + .../flex-objects/classes/FlexFormFactory.php | 80 + .../flex-objects/classes/FlexRouter.php | 64 + .../flex-objects/classes/Table/DataTable.php | 410 + .../cli/FlexConvertDataCommand.php | 141 + user/plugins/flex-objects/composer.json | 32 + user/plugins/flex-objects/composer.lock | 25 + user/plugins/flex-objects/css/admin.css | 97 + user/plugins/flex-objects/css/admin.css.map | 11 + user/plugins/flex-objects/css/admin.min.css | 1 + user/plugins/flex-objects/css/site.css | 27 + user/plugins/flex-objects/css/site.css.map | 11 + user/plugins/flex-objects/css/site.min.css | 1 + .../data/flex-objects/contacts.json | 6262 ++ user/plugins/flex-objects/flex-objects.php | 805 + user/plugins/flex-objects/flex-objects.yaml | 14 + user/plugins/flex-objects/js/flex-objects.js | 905 + user/plugins/flex-objects/js/list.min.js | 2 + user/plugins/flex-objects/languages/de.yaml | 71 + user/plugins/flex-objects/languages/en.yaml | 73 + user/plugins/flex-objects/languages/es.yaml | 73 + user/plugins/flex-objects/languages/ja.yaml | 73 + user/plugins/flex-objects/languages/ru.yaml | 12 + user/plugins/flex-objects/package.json | 51 + user/plugins/flex-objects/permissions.yaml | 45 + user/plugins/flex-objects/scss/_preset.scss | 69 + user/plugins/flex-objects/scss/admin.scss | 3 + .../flex-objects/scss/plugin/_admin.scss | 215 + .../flex-objects/scss/plugin/_site.scss | 68 + user/plugins/flex-objects/scss/site.scss | 2 + .../templates/flex-edit.html.twig | 42 + .../templates/flex-objects.html.twig | 21 + .../directories/default.html.twig | 30 + .../templates/flex-objects/page.html.twig | 37 + .../flex-objects/views/404.html.twig | 1 + .../flex-objects/views/directories.html.twig | 12 + .../flex-objects/views/directory.html.twig | 24 + .../flex-objects/views/object.html.twig | 23 + .../contacts/collection/default.html.twig | 26 + .../flex/contacts/object/default.html.twig | 15 + .../contacts/object/list-default.html.twig | 15 + .../collection/default.html.twig | 25 + .../user-accounts/object/default.html.twig | 17 + .../object/list-default.html.twig | 27 + .../user-groups/collection/default.html.twig | 25 + .../flex/user-groups/object/default.html.twig | 14 + .../user-groups/object/list-default.html.twig | 16 + .../fields/filepicker/filepicker.html.twig | 17 + .../forms/fields/list/list.html.twig | 177 + .../fields/pagemedia/pagemedia.html.twig | 95 + .../forms/fields/pagemedia/template.html.twig | 33 + user/plugins/flex-objects/vendor/autoload.php | 7 + .../vendor/composer/ClassLoader.php | 572 + .../vendor/composer/InstalledVersions.php | 350 + .../flex-objects/vendor/composer/LICENSE | 21 + .../vendor/composer/autoload_classmap.php | 11 + .../vendor/composer/autoload_namespaces.php | 9 + .../vendor/composer/autoload_psr4.php | 10 + .../vendor/composer/autoload_real.php | 57 + .../vendor/composer/autoload_static.php | 37 + .../vendor/composer/installed.json | 5 + .../vendor/composer/installed.php | 23 + .../vendor/composer/platform_check.php | 26 + user/plugins/flex-objects/watch.sh | 27 + user/plugins/flex-objects/webpack.conf.js | 75 + user/plugins/flex-objects/yarn.lock | 3271 + user/plugins/form/.eslintrc | 165 + user/plugins/form/.gitignore | 5 + user/plugins/form/CHANGELOG.md | 1233 + user/plugins/form/LICENSE | 21 + user/plugins/form/README.md | 41 + user/plugins/form/app/fields/array.js | 200 + user/plugins/form/app/fields/file.js | 340 + user/plugins/form/app/fields/form.js | 94 + user/plugins/form/app/fields/index.js | 7 + user/plugins/form/app/fields/media.js | 174 + user/plugins/form/app/fields/tabs.js | 14 + user/plugins/form/app/main.js | 4 + user/plugins/form/app/utils/keep-alive.js | 17 + user/plugins/form/assets/dropzone.min.css | 1 + user/plugins/form/assets/form-styles.css | 1 + user/plugins/form/assets/form-styles.css.map | 1 + user/plugins/form/assets/form-styles.min.css | 1 + user/plugins/form/assets/form.min.js | 41 + user/plugins/form/assets/form.vendor.js | 24 + .../form/assets/object.assign.polyfill.js | 29 + user/plugins/form/assets/signature_pad.js | 617 + user/plugins/form/blueprints.yaml | 322 + user/plugins/form/classes/BasicCaptcha.php | 122 + user/plugins/form/classes/Form.php | 1422 + user/plugins/form/classes/FormFactory.php | 38 + user/plugins/form/classes/Forms.php | 129 + user/plugins/form/classes/TwigExtension.php | 163 + user/plugins/form/composer.json | 40 + user/plugins/form/composer.lock | 77 + user/plugins/form/fonts/zxx-camo.ttf | Bin 0 -> 32032 bytes user/plugins/form/fonts/zxx-noise.ttf | Bin 0 -> 23404 bytes user/plugins/form/fonts/zxx-sans.ttf | Bin 0 -> 13548 bytes user/plugins/form/fonts/zxx-xed.ttf | Bin 0 -> 21720 bytes user/plugins/form/form.php | 1289 + user/plugins/form/form.yaml | 36 + user/plugins/form/gulpfile.js | 84 + user/plugins/form/hebe.json | 15 + user/plugins/form/languages.yaml | 913 + user/plugins/form/package.json | 45 + user/plugins/form/scss.sh | 2 + user/plugins/form/scss/form-styles.scss | 315 + .../form/templates/form-messages.html.twig | 2 + .../form/templates/form-messages.json.twig | 2 + user/plugins/form/templates/form.html.twig | 8 + user/plugins/form/templates/form.json.twig | 1 + .../plugins/form/templates/formdata.html.twig | 20 + .../form/templates/forms/ajax.json.twig | 5 + .../form/templates/forms/data.html.twig | 1 + .../form/templates/forms/data.txt.twig | 1 + .../templates/forms/default/data.html.twig | 77 + .../templates/forms/default/data.txt.twig | 21 + .../templates/forms/default/field.html.twig | 158 + .../templates/forms/default/fields.html.twig | 17 + .../templates/forms/default/form.html.twig | 208 + .../forms/default/toggleable.html.twig | 9 + .../forms/dropzone/template.html.twig | 39 + .../form/templates/forms/field.html.twig | 9 + .../forms/fields/array/array.html.twig | 99 + .../forms/fields/avatar/avatar.html.twig | 10 + .../basic-captcha/basic-captcha.html.twig | 28 + .../forms/fields/captcha/captcha.html.twig | 100 + .../forms/fields/checkbox/checkbox.html.twig | 46 + .../fields/checkboxes/checkboxes.html.twig | 41 + .../forms/fields/color/color.html.twig | 6 + .../forms/fields/column/column.html.twig | 8 + .../forms/fields/columns/columns.html.twig | 7 + .../fields/conditional/conditional.html.twig | 19 + .../forms/fields/date/date.html.twig | 8 + .../forms/fields/date/edit_list.html.twig | 1 + .../forms/fields/datetime/datetime.html.twig | 2 + .../forms/fields/datetime/edit_list.html.twig | 1 + .../forms/fields/display/display.html.twig | 21 + .../forms/fields/email/email.html.twig | 10 + .../forms/fields/fieldset/fieldset.html.twig | 12 + .../forms/fields/file/file.html.twig | 124 + .../forms/fields/formname/formname.html.twig | 5 + .../forms/fields/formtask/formtask.html.twig | 8 + .../forms/fields/hidden/hidden.html.twig | 15 + .../forms/fields/honeypot/honeypot.html.twig | 13 + .../forms/fields/ignore/ignore.html.twig | 0 .../templates/forms/fields/key/key.html.twig | 28 + .../forms/fields/month/month.html.twig | 6 + .../forms/fields/nonce/nonce.html.twig | 1 + .../forms/fields/number/number.html.twig | 9 + .../forms/fields/password/password.html.twig | 8 + .../forms/fields/radio/radio.html.twig | 21 + .../forms/fields/range/range.html.twig | 9 + .../forms/fields/section/section.html.twig | 21 + .../forms/fields/select/select.html.twig | 78 + .../select_optgroup/select_optgroup.html.twig | 2 + .../fields/signature/signature.html.twig | 105 + .../forms/fields/spacer/spacer.html.twig | 19 + .../forms/fields/switch/switch.html.twig | 1 + .../templates/forms/fields/tab/tab.html.twig | 8 + .../forms/fields/tabs/tabs.html.twig | 60 + .../templates/forms/fields/tel/tel.html.twig | 9 + .../forms/fields/text/edit_list.html.twig | 7 + .../forms/fields/text/text.html.twig | 39 + .../forms/fields/textarea/textarea.html.twig | 51 + .../forms/fields/time/edit_list.html.twig | 1 + .../forms/fields/time/time.html.twig | 6 + .../forms/fields/toggle/edit_list.html.twig | 5 + .../forms/fields/toggle/toggle.html.twig | 52 + .../forms/fields/uniqueid/uniqueid.html.twig | 5 + .../forms/fields/url/edit_list.html.twig | 1 + .../templates/forms/fields/url/url.html.twig | 9 + .../forms/fields/value/value.html.twig | 18 + .../forms/fields/week/week.html.twig | 6 + .../form/templates/forms/form.html.twig | 29 + .../templates/forms/layouts/button.html.twig | 4 + .../layouts/button/default-button.html.twig | 12 + .../forms/layouts/field-variables.html.twig | 1 + .../templates/forms/layouts/field.html.twig | 4 + .../layouts/field/default-field.html.twig | 53 + .../templates/forms/layouts/form.html.twig | 4 + .../forms/layouts/form/default-form.html.twig | 8 + .../form/templates/modular/form.html.twig | 4 + .../partials/form-messages.html.twig | 6 + .../partials/form-messages.json.twig | 3 + user/plugins/form/vendor/autoload.php | 7 + .../form/vendor/composer/ClassLoader.php | 572 + .../vendor/composer/InstalledVersions.php | 350 + user/plugins/form/vendor/composer/LICENSE | 21 + .../vendor/composer/autoload_classmap.php | 11 + .../vendor/composer/autoload_namespaces.php | 9 + .../form/vendor/composer/autoload_psr4.php | 11 + .../form/vendor/composer/autoload_real.php | 57 + .../form/vendor/composer/autoload_static.php | 45 + .../form/vendor/composer/installed.json | 61 + .../form/vendor/composer/installed.php | 32 + .../form/vendor/composer/platform_check.php | 26 + .../.github/ISSUE_TEMPLATE/bug_report.md | 28 + .../form/vendor/google/recaptcha/.gitignore | 7 + .../form/vendor/google/recaptcha/.travis.yml | 33 + .../vendor/google/recaptcha/ARCHITECTURE.md | 64 + .../vendor/google/recaptcha/CONTRIBUTING.md | 49 + .../form/vendor/google/recaptcha/LICENSE | 29 + .../form/vendor/google/recaptcha/README.md | 140 + .../form/vendor/google/recaptcha/app.yaml | 8 + .../vendor/google/recaptcha/composer.json | 39 + .../recaptcha/examples/appengine-https.php | 42 + .../google/recaptcha/examples/config.php.dist | 46 + .../google/recaptcha/examples/examples.css | 37 + .../examples/google0afd8760fd68f119.html | 1 + .../google/recaptcha/examples/index.php | 79 + .../recaptcha-content-security-policy.php | 152 + .../recaptcha-v2-checkbox-explicit.php | 148 + .../examples/recaptcha-v2-checkbox.php | 139 + .../examples/recaptcha-v2-invisible.php | 141 + .../examples/recaptcha-v3-request-scores.php | 120 + .../examples/recaptcha-v3-verify.php | 59 + .../google/recaptcha/examples/robots.txt | 2 + .../vendor/google/recaptcha/phpunit.xml.dist | 20 + .../recaptcha/src/ReCaptcha/ReCaptcha.php | 269 + .../recaptcha/src/ReCaptcha/RequestMethod.php | 50 + .../src/ReCaptcha/RequestMethod/Curl.php | 82 + .../src/ReCaptcha/RequestMethod/CurlPost.php | 104 + .../src/ReCaptcha/RequestMethod/Post.php | 88 + .../src/ReCaptcha/RequestMethod/Socket.php | 112 + .../ReCaptcha/RequestMethod/SocketPost.php | 108 + .../src/ReCaptcha/RequestParameters.php | 111 + .../recaptcha/src/ReCaptcha/Response.php | 218 + .../vendor/google/recaptcha/src/autoload.php | 69 + .../tests/ReCaptcha/ReCaptchaTest.php | 198 + .../ReCaptcha/RequestMethod/CurlPostTest.php | 123 + .../ReCaptcha/RequestMethod/PostTest.php | 149 + .../RequestMethod/SocketPostTest.php | 136 + .../tests/ReCaptcha/RequestParametersTest.php | 70 + .../tests/ReCaptcha/ResponseTest.php | 173 + user/plugins/form/webpack.conf.js | 65 + user/plugins/form/yarn.lock | 7407 ++ user/plugins/login/.gitignore | 2 + user/plugins/login/CHANGELOG.md | 870 + user/plugins/login/LICENSE | 21 + user/plugins/login/README.md | 556 + user/plugins/login/blueprints.yaml | 462 + user/plugins/login/classes/Controller.php | 740 + user/plugins/login/classes/Email.php | 294 + .../classes/Events/PageAuthorizeEvent.php | 136 + .../login/classes/Events/UserLoginEvent.php | 397 + .../login/classes/Invitations/Invitation.php | 59 + .../login/classes/Invitations/Invitations.php | 165 + user/plugins/login/classes/Login.php | 834 + user/plugins/login/classes/LoginCache.php | 105 + user/plugins/login/classes/RateLimiter.php | 110 + .../login/classes/RememberMe/RememberMe.php | 43 + .../login/classes/RememberMe/TokenStorage.php | 172 + .../classes/TwoFactorAuth/BaconQrProvider.php | 32 + .../classes/TwoFactorAuth/TwoFactorAuth.php | 118 + .../login/cli/ChangePasswordCommand.php | 177 + .../login/cli/ChangeUserStateCommand.php | 157 + user/plugins/login/cli/LookupUserCommand.php | 94 + user/plugins/login/cli/NewUserCommand.php | 324 + user/plugins/login/composer.json | 49 + user/plugins/login/composer.lock | 247 + user/plugins/login/css/login.css | 86 + user/plugins/login/hebe.json | 15 + user/plugins/login/js/2fa.js | 34 + user/plugins/login/languages/de.yaml | 139 + user/plugins/login/languages/en.yaml | 162 + user/plugins/login/languages/es.yaml | 126 + user/plugins/login/languages/fr.yaml | 97 + user/plugins/login/languages/hr.yaml | 54 + user/plugins/login/languages/hu.yaml | 35 + user/plugins/login/languages/lt.yaml | 154 + user/plugins/login/languages/no.yaml | 73 + user/plugins/login/languages/pt-BR.yaml | 136 + user/plugins/login/languages/ro.yaml | 97 + user/plugins/login/languages/ru.yaml | 145 + user/plugins/login/languages/uk.yaml | 145 + user/plugins/login/languages/zh.yaml | 136 + user/plugins/login/login.php | 1315 + user/plugins/login/login.yaml | 63 + user/plugins/login/pages/forgot.md | 22 + user/plugins/login/pages/login.md | 42 + user/plugins/login/pages/profile.md | 81 + user/plugins/login/pages/register.md | 60 + user/plugins/login/pages/reset.md | 35 + user/plugins/login/pages/unauthorized.md | 7 + .../templates/emails/login/activate.html.twig | 42 + .../templates/emails/login/invite.html.twig | 46 + .../emails/login/magic-login.html.twig | 46 + .../emails/login/notification.html.twig | 30 + .../emails/login/reset-password.html.twig | 42 + .../templates/emails/login/welcome.html.twig | 41 + user/plugins/login/templates/forgot.html.twig | 6 + .../fields/2fa_secret/2fa_secret.html.twig | 31 + user/plugins/login/templates/login.html.twig | 6 + user/plugins/login/templates/login.json.twig | 5 + .../templates/partials/forgot-form.html.twig | 29 + .../templates/partials/login-form.html.twig | 74 + .../templates/partials/login-status.html.twig | 5 + .../templates/partials/login-twofa.html.twig | 32 + .../templates/partials/reset-form.html.twig | 30 + .../plugins/login/templates/profile.html.twig | 9 + .../plugins/login/templates/profile.json.twig | 1 + .../login/templates/register.html.twig | 1 + user/plugins/login/templates/reset.html.twig | 8 + .../login/templates/unauthorized.html.twig | 1 + user/plugins/login/vendor/autoload.php | 7 + .../vendor/bacon/bacon-qr-code/.gitignore | 9 + .../vendor/bacon/bacon-qr-code/.travis.yml | 14 + .../vendor/bacon/bacon-qr-code/CHANGELOG.md | 37 + .../login/vendor/bacon/bacon-qr-code/LICENSE | 22 + .../vendor/bacon/bacon-qr-code/Module.php | 37 + .../vendor/bacon/bacon-qr-code/README.md | 24 + .../bacon/bacon-qr-code/autoload_classmap.php | 43 + .../bacon/bacon-qr-code/autoload_function.php | 12 + .../bacon/bacon-qr-code/autoload_register.php | 2 + .../vendor/bacon/bacon-qr-code/composer.json | 29 + .../src/BaconQrCode/Common/AbstractEnum.php | 115 + .../src/BaconQrCode/Common/BitArray.php | 435 + .../src/BaconQrCode/Common/BitMatrix.php | 350 + .../src/BaconQrCode/Common/BitUtils.php | 51 + .../BaconQrCode/Common/CharacterSetEci.php | 134 + .../src/BaconQrCode/Common/EcBlock.php | 65 + .../src/BaconQrCode/Common/EcBlocks.php | 101 + .../Common/ErrorCorrectionLevel.php | 62 + .../BaconQrCode/Common/FormatInformation.php | 236 + .../src/BaconQrCode/Common/Mode.php | 70 + .../BaconQrCode/Common/ReedSolomonCodec.php | 476 + .../src/BaconQrCode/Common/Version.php | 687 + .../src/BaconQrCode/Encoder/BlockPair.php | 64 + .../src/BaconQrCode/Encoder/ByteMatrix.php | 158 + .../src/BaconQrCode/Encoder/Encoder.php | 687 + .../src/BaconQrCode/Encoder/MaskUtil.php | 291 + .../src/BaconQrCode/Encoder/MatrixUtil.php | 580 + .../src/BaconQrCode/Encoder/QrCode.php | 201 + .../Exception/ExceptionInterface.php | 14 + .../Exception/InvalidArgumentException.php | 14 + .../Exception/OutOfBoundsException.php | 14 + .../Exception/RuntimeException.php | 14 + .../Exception/UnexpectedValueException.php | 14 + .../BaconQrCode/Exception/WriterException.php | 14 + .../src/BaconQrCode/Renderer/Color/Cmyk.php | 160 + .../Renderer/Color/ColorInterface.php | 37 + .../src/BaconQrCode/Renderer/Color/Gray.php | 84 + .../src/BaconQrCode/Renderer/Color/Rgb.php | 148 + .../Renderer/Image/AbstractRenderer.php | 338 + .../Image/Decorator/DecoratorInterface.php | 63 + .../Image/Decorator/FinderPattern.php | 210 + .../src/BaconQrCode/Renderer/Image/Eps.php | 152 + .../src/BaconQrCode/Renderer/Image/Png.php | 115 + .../Renderer/Image/RendererInterface.php | 61 + .../src/BaconQrCode/Renderer/Image/Svg.php | 146 + .../Renderer/RendererInterface.php | 26 + .../src/BaconQrCode/Renderer/Text/Html.php | 91 + .../src/BaconQrCode/Renderer/Text/Plain.php | 150 + .../bacon-qr-code/src/BaconQrCode/Writer.php | 105 + .../bacon-qr-code/src/Common/BitArray.php | 372 + .../bacon-qr-code/src/Common/BitMatrix.php | 313 + .../bacon-qr-code/src/Common/BitUtils.php | 41 + .../src/Common/CharacterSetEci.php | 180 + .../bacon-qr-code/src/Common/EcBlock.php | 49 + .../bacon-qr-code/src/Common/EcBlocks.php | 74 + .../src/Common/ErrorCorrectionLevel.php | 63 + .../src/Common/FormatInformation.php | 203 + .../bacon/bacon-qr-code/src/Common/Mode.php | 76 + .../src/Common/ReedSolomonCodec.php | 468 + .../bacon-qr-code/src/Common/Version.php | 596 + .../bacon-qr-code/src/Encoder/BlockPair.php | 58 + .../bacon-qr-code/src/Encoder/ByteMatrix.php | 150 + .../bacon-qr-code/src/Encoder/Encoder.php | 652 + .../bacon-qr-code/src/Encoder/MaskUtil.php | 271 + .../bacon-qr-code/src/Encoder/MatrixUtil.php | 513 + .../bacon-qr-code/src/Encoder/QrCode.php | 141 + .../src/Exception/ExceptionInterface.php | 10 + .../Exception/InvalidArgumentException.php | 8 + .../src/Exception/OutOfBoundsException.php | 8 + .../src/Exception/RuntimeException.php | 8 + .../Exception/UnexpectedValueException.php | 8 + .../src/Exception/WriterException.php | 8 + .../src/Renderer/Color/Alpha.php | 57 + .../bacon-qr-code/src/Renderer/Color/Cmyk.php | 103 + .../src/Renderer/Color/ColorInterface.php | 22 + .../bacon-qr-code/src/Renderer/Color/Gray.php | 46 + .../bacon-qr-code/src/Renderer/Color/Rgb.php | 88 + .../src/Renderer/Eye/CompositeEye.php | 38 + .../src/Renderer/Eye/EyeInterface.php | 26 + .../src/Renderer/Eye/ModuleEye.php | 54 + .../src/Renderer/Eye/SimpleCircleEye.php | 54 + .../src/Renderer/Eye/SquareEye.php | 53 + .../src/Renderer/Image/EpsImageBackEnd.php | 376 + .../Renderer/Image/ImageBackEndInterface.php | 87 + .../Renderer/Image/ImagickImageBackEnd.php | 339 + .../src/Renderer/Image/SvgImageBackEnd.php | 369 + .../Renderer/Image/TransformationMatrix.php | 67 + .../src/Renderer/ImageRenderer.php | 152 + .../src/Renderer/Module/DotsModule.php | 63 + .../src/Renderer/Module/EdgeIterator/Edge.php | 100 + .../Module/EdgeIterator/EdgeIterator.php | 169 + .../src/Renderer/Module/ModuleInterface.php | 18 + .../src/Renderer/Module/RoundnessModule.php | 129 + .../src/Renderer/Module/SquareModule.php | 47 + .../bacon-qr-code/src/Renderer/Path/Close.php | 29 + .../bacon-qr-code/src/Renderer/Path/Curve.php | 92 + .../src/Renderer/Path/EllipticArc.php | 278 + .../bacon-qr-code/src/Renderer/Path/Line.php | 41 + .../bacon-qr-code/src/Renderer/Path/Move.php | 41 + .../src/Renderer/Path/OperationInterface.php | 12 + .../bacon-qr-code/src/Renderer/Path/Path.php | 106 + .../src/Renderer/PlainTextRenderer.php | 86 + .../src/Renderer/RendererInterface.php | 11 + .../src/Renderer/RendererStyle/EyeFill.php | 74 + .../src/Renderer/RendererStyle/Fill.php | 168 + .../src/Renderer/RendererStyle/Gradient.php | 46 + .../Renderer/RendererStyle/GradientType.php | 22 + .../Renderer/RendererStyle/RendererStyle.php | 90 + .../vendor/bacon/bacon-qr-code/src/Writer.php | 68 + .../tests/BaconQrCode/Common/BitArrayTest.php | 201 + .../BaconQrCode/Common/BitMatrixTest.php | 119 + .../tests/BaconQrCode/Common/BitUtilsTest.php | 30 + .../Common/ErrorCorrectionLevelTest.php | 40 + .../Common/FormatInformationTest.php | 104 + .../tests/BaconQrCode/Common/ModeTest.php | 42 + .../Common/ReedSolomonCodecTest.php | 111 + .../tests/BaconQrCode/Common/VersionTest.php | 88 + .../tests/BaconQrCode/Encoder/EncoderTest.php | 468 + .../BaconQrCode/Encoder/MaskUtilTest.php | 281 + .../BaconQrCode/Encoder/MatrixUtilTest.php | 336 + .../BaconQrCode/Renderer/Text/HtmlTest.php | 99 + .../BaconQrCode/Renderer/Text/TextTest.php | 149 + .../bacon/bacon-qr-code/tests/bootstrap.php | 10 + .../bacon/bacon-qr-code/tests/phpunit.xml | 11 + .../login/vendor/birke/rememberme/.gitignore | 4 + .../login/vendor/birke/rememberme/LICENSE | 21 + .../login/vendor/birke/rememberme/README.md | 40 + .../vendor/birke/rememberme/composer.json | 24 + .../birke/rememberme/example/action.php | 119 + .../birke/rememberme/example/css/style.css | 157 + .../vendor/birke/rememberme/example/index.php | 42 + .../example/templates/cookie_was_stolen.php | 4 + .../rememberme/example/templates/login.php | 14 + .../example/templates/user_is_logged_in.php | 31 + .../login/vendor/birke/rememberme/phpunit.xml | 7 + .../src/Rememberme/Authenticator.php | 293 + .../rememberme/src/Rememberme/Cookie.php | 104 + .../rememberme/src/Rememberme/Storage/DB.php | 145 + .../src/Rememberme/Storage/File.php | 119 + .../rememberme/src/Rememberme/Storage/PDO.php | 121 + .../Rememberme/Storage/StorageInterface.php | 66 + .../birke/rememberme/test/CookieTest.php | 31 + .../birke/rememberme/test/RemembermeTest.php | 352 + .../birke/rememberme/test/Storage/PDO.php | 98 + .../birke/rememberme/test/Storage/tokens.xml | 8 + .../birke/rememberme/test/bootstrap.php | 3 + .../login/vendor/composer/ClassLoader.php | 572 + .../vendor/composer/InstalledVersions.php | 350 + user/plugins/login/vendor/composer/LICENSE | 21 + .../vendor/composer/autoload_classmap.php | 11 + .../login/vendor/composer/autoload_files.php | 10 + .../vendor/composer/autoload_namespaces.php | 10 + .../login/vendor/composer/autoload_psr4.php | 13 + .../login/vendor/composer/autoload_real.php | 80 + .../login/vendor/composer/autoload_static.php | 73 + .../login/vendor/composer/installed.json | 227 + .../login/vendor/composer/installed.php | 59 + .../login/vendor/composer/platform_check.php | 26 + .../login/vendor/dasprid/enum/.coveralls.yml | 2 + .../login/vendor/dasprid/enum/.gitignore | 3 + .../login/vendor/dasprid/enum/.travis.yml | 41 + .../login/vendor/dasprid/enum/README.md | 164 + .../login/vendor/dasprid/enum/composer.json | 30 + .../login/vendor/dasprid/enum/phpcs.xml | 30 + .../vendor/dasprid/enum/phpunit.xml.dist | 17 + .../vendor/dasprid/enum/src/AbstractEnum.php | 241 + .../login/vendor/dasprid/enum/src/EnumMap.php | 375 + .../Exception/CloneNotSupportedException.php | 10 + .../enum/src/Exception/ExceptionInterface.php | 10 + .../src/Exception/ExpectationException.php | 10 + .../Exception/IllegalArgumentException.php | 10 + .../enum/src/Exception/MismatchException.php | 10 + .../SerializeNotSupportedException.php | 10 + .../UnserializeNotSupportedException.php | 10 + .../vendor/dasprid/enum/src/NullValue.php | 55 + .../dasprid/enum/test/AbstractEnumTest.php | 121 + .../vendor/dasprid/enum/test/EnumMapTest.php | 243 + .../dasprid/enum/test/NullValueTest.php | 31 + .../login/vendor/dasprid/enum/test/Planet.php | 73 + .../vendor/dasprid/enum/test/WeekDay.php | 26 + .../paragonie/random_compat/CHANGELOG.md | 290 + .../vendor/paragonie/random_compat/LICENSE | 22 + .../paragonie/random_compat/RATIONALE.md | 42 + .../vendor/paragonie/random_compat/README.md | 176 + .../paragonie/random_compat/SECURITY.md | 108 + .../paragonie/random_compat/build-phar.sh | 5 + .../paragonie/random_compat/composer.json | 35 + .../dist/random_compat.phar.pubkey | 5 + .../dist/random_compat.phar.pubkey.asc | 11 + .../random_compat/lib/byte_safe_strings.php | 181 + .../random_compat/lib/cast_to_int.php | 74 + .../random_compat/lib/error_polyfill.php | 49 + .../paragonie/random_compat/lib/random.php | 247 + .../lib/random_bytes_com_dotnet.php | 88 + .../lib/random_bytes_dev_urandom.php | 150 + .../lib/random_bytes_libsodium.php | 88 + .../lib/random_bytes_libsodium_legacy.php | 92 + .../random_compat/lib/random_bytes_mcrypt.php | 77 + .../lib/random_bytes_openssl.php | 86 + .../random_compat/lib/random_int.php | 190 + .../random_compat/other/build_phar.php | 57 + .../random_compat/other/ide_stubs/COM.php | 20 + .../random_compat/other/ide_stubs/README.md | 7 + .../other/ide_stubs/com_exception.php | 11 + .../other/ide_stubs/libsodium.php | 90 + .../random_compat/psalm-autoload.php | 9 + .../vendor/paragonie/random_compat/psalm.xml | 15 + .../twofactorauth/.github/FUNDING.yml | 4 + .../.github/workflows/test-bacon.yml | 30 + .../.github/workflows/test-endroid.yml | 46 + .../twofactorauth/.github/workflows/test.yml | 28 + .../vendor/robthree/twofactorauth/.gitignore | 192 + .../vendor/robthree/twofactorauth/LICENSE | 22 + .../vendor/robthree/twofactorauth/README.md | 43 + .../twofactorauth/TwoFactorAuth.phpproj | 70 + .../robthree/twofactorauth/TwoFactorAuth.sln | 22 + .../robthree/twofactorauth/composer.json | 49 + .../robthree/twofactorauth/demo/demo.php | 51 + .../robthree/twofactorauth/docs/_config.yml | 3 + .../twofactorauth/docs/_layouts/post.html | 9 + .../twofactorauth/docs/assets/css/style.scss | 54 + .../twofactorauth/docs/getting-started.md | 58 + .../docs/improved-code-verification.md | 32 + .../robthree/twofactorauth/docs/index.md | 18 + .../docs/optional-configuration.md | 56 + .../robthree/twofactorauth/docs/qr-codes.md | 61 + .../twofactorauth/docs/qr-codes/bacon.md | 23 + .../twofactorauth/docs/qr-codes/endroid.md | 37 + .../docs/qr-codes/image-charts.md | 16 + .../twofactorauth/docs/qr-codes/qr-server.md | 20 + .../twofactorauth/docs/qr-codes/qrickit.md | 15 + .../lib/Providers/Qr/BaconQrCodeProvider.php | 159 + .../Providers/Qr/BaseHTTPQRCodeProvider.php | 33 + .../Providers/Qr/EndroidQrCodeProvider.php | 84 + .../Qr/EndroidQrCodeWithLogoProvider.php | 55 + .../Qr/GoogleChartsQrCodeProvider.php | 67 + .../lib/Providers/Qr/HandlesDataUri.php | 24 + .../lib/Providers/Qr/IQRCodeProvider.php | 24 + .../Qr/ImageChartsQRCodeProvider.php | 60 + .../lib/Providers/Qr/QRException.php | 7 + .../lib/Providers/Qr/QRServerProvider.php | 108 + .../lib/Providers/Qr/QRicketProvider.php | 76 + .../lib/Providers/Rng/CSRNGProvider.php | 22 + .../lib/Providers/Rng/HashRNGProvider.php | 43 + .../lib/Providers/Rng/IRNGProvider.php | 18 + .../lib/Providers/Rng/MCryptRNGProvider.php | 37 + .../lib/Providers/Rng/OpenSSLRNGProvider.php | 40 + .../lib/Providers/Rng/RNGException.php | 7 + .../lib/Providers/Time/HttpTimeProvider.php | 71 + .../lib/Providers/Time/ITimeProvider.php | 11 + .../Time/LocalMachineTimeProvider.php | 11 + .../lib/Providers/Time/NTPTimeProvider.php | 70 + .../lib/Providers/Time/TimeException.php | 7 + .../twofactorauth/lib/TwoFactorAuth.php | 360 + .../lib/TwoFactorAuthException.php | 7 + .../vendor/robthree/twofactorauth/logo.png | Bin 0 -> 2636 bytes .../multifactorauthforeveryone.png | Bin 0 -> 20735 bytes .../vendor/robthree/twofactorauth/phpunit.xml | 27 + .../tests/MightNotMakeAssertions.php | 26 + .../Providers/Qr/IQRCodeProviderTest.php | 60 + .../tests/Providers/Qr/TestQrProvider.php | 24 + .../tests/Providers/Rng/CSRNGProviderTest.php | 30 + .../Providers/Rng/HashRNGProviderTest.php | 24 + .../tests/Providers/Rng/IRNGProviderTest.php | 61 + .../Providers/Rng/MCryptRNGProviderTest.php | 32 + .../tests/Providers/Rng/NeedsRngLengths.php | 9 + .../Providers/Rng/OpenSSLRNGProviderTest.php | 37 + .../tests/Providers/Rng/TestRNGProvider.php | 41 + .../Providers/Time/ITimeProviderTest.php | 53 + .../tests/Providers/Time/TestTimeProvider.php | 27 + .../twofactorauth/tests/TwoFactorAuthTest.php | 246 + .../testsDependency/BaconQRCodeTest.php | 61 + .../testsDependency/EndroidQRCodeTest.php | 24 + user/plugins/pagination/CHANGELOG.md | 98 + user/plugins/pagination/LICENSE | 21 + user/plugins/pagination/README.md | 151 + user/plugins/pagination/blueprints.yaml | 52 + .../classes/plugin/PaginationHelper.php | 130 + .../classes/plugin/PaginationPage.php | 84 + user/plugins/pagination/composer.json | 32 + user/plugins/pagination/composer.lock | 24 + user/plugins/pagination/css/pagination.css | 17 + user/plugins/pagination/hebe.json | 15 + user/plugins/pagination/languages.yaml | 20 + user/plugins/pagination/pagination.php | 165 + user/plugins/pagination/pagination.yaml | 3 + .../templates/partials/pagination.html.twig | 34 + user/plugins/pagination/vendor/autoload.php | 7 + .../vendor/composer/ClassLoader.php | 445 + .../pagination/vendor/composer/LICENSE | 21 + .../vendor/composer/autoload_classmap.php | 10 + .../vendor/composer/autoload_namespaces.php | 9 + .../vendor/composer/autoload_psr4.php | 10 + .../vendor/composer/autoload_real.php | 52 + .../vendor/composer/autoload_static.php | 36 + .../pagination/vendor/composer/installed.json | 1 + user/plugins/problems/CHANGELOG.md | 164 + user/plugins/problems/LICENSE | 21 + user/plugins/problems/README.md | 92 + user/plugins/problems/assets/cli.png | Bin 0 -> 401907 bytes user/plugins/problems/assets/code-3.svg | 11 + user/plugins/problems/assets/grav-logo.svg | 1 + user/plugins/problems/assets/heart.svg | 5 + user/plugins/problems/assets/readme_1.jpg | Bin 0 -> 368222 bytes user/plugins/problems/blueprints.yaml | 43 + .../problems/classes/Problems/Apache.php | 61 + .../classes/Problems/Base/Problem.php | 141 + .../classes/Problems/Base/ProblemChecker.php | 159 + .../classes/Problems/EssentialFolders.php | 78 + .../problems/classes/Problems/PHPModules.php | 148 + .../problems/classes/Problems/PHPVersion.php | 43 + .../problems/classes/Problems/Permissions.php | 42 + user/plugins/problems/cli/CheckCommand.php | 107 + user/plugins/problems/composer.json | 32 + user/plugins/problems/composer.lock | 20 + user/plugins/problems/css/admin.css | 31 + user/plugins/problems/css/admin.min.css | 1 + user/plugins/problems/css/spectre-icons.css | 168 + .../problems/css/spectre-icons.min.css | 1 + user/plugins/problems/css/spectre.css | 1276 + user/plugins/problems/css/spectre.min.css | 1 + user/plugins/problems/gulpfile.js | 39 + user/plugins/problems/languages.yaml | 14 + user/plugins/problems/package.json | 45 + user/plugins/problems/problems.php | 185 + user/plugins/problems/problems.yaml | 2 + user/plugins/problems/scss/_accordions.scss | 38 + user/plugins/problems/scss/_animations.scss | 20 + user/plugins/problems/scss/_asian.scss | 38 + user/plugins/problems/scss/_autocomplete.scss | 47 + user/plugins/problems/scss/_avatars.scss | 77 + user/plugins/problems/scss/_badges.scss | 60 + user/plugins/problems/scss/_bars.scss | 71 + user/plugins/problems/scss/_base.scss | 44 + user/plugins/problems/scss/_breadcrumbs.scss | 29 + user/plugins/problems/scss/_buttons.scss | 195 + user/plugins/problems/scss/_calendars.scss | 222 + user/plugins/problems/scss/_cards.scss | 43 + user/plugins/problems/scss/_carousels.scss | 126 + user/plugins/problems/scss/_chips.scss | 30 + user/plugins/problems/scss/_codes.scss | 31 + .../problems/scss/_comparison-sliders.scss | 115 + user/plugins/problems/scss/_dropdowns.scss | 36 + user/plugins/problems/scss/_empty.scss | 21 + user/plugins/problems/scss/_filters.scss | 37 + user/plugins/problems/scss/_forms.scss | 545 + user/plugins/problems/scss/_icons.scss | 5 + user/plugins/problems/scss/_labels.scss | 34 + user/plugins/problems/scss/_layout.scss | 424 + user/plugins/problems/scss/_media.scss | 75 + user/plugins/problems/scss/_menus.scss | 62 + user/plugins/problems/scss/_meters.scss | 57 + user/plugins/problems/scss/_mixins.scss | 11 + user/plugins/problems/scss/_modals.scss | 87 + user/plugins/problems/scss/_navbar.scss | 29 + user/plugins/problems/scss/_navs.scss | 34 + user/plugins/problems/scss/_normalize.scss | 446 + user/plugins/problems/scss/_off-canvas.scss | 95 + user/plugins/problems/scss/_pagination.scss | 61 + user/plugins/problems/scss/_panels.scss | 23 + user/plugins/problems/scss/_parallax.scss | 135 + user/plugins/problems/scss/_popovers.scss | 65 + user/plugins/problems/scss/_preset.scss | 90 + user/plugins/problems/scss/_problems.scss | 72 + user/plugins/problems/scss/_progress.scss | 45 + user/plugins/problems/scss/_sliders.scss | 99 + user/plugins/problems/scss/_steps.scss | 70 + user/plugins/problems/scss/_tables.scss | 57 + user/plugins/problems/scss/_tabs.scss | 66 + user/plugins/problems/scss/_tiles.scss | 38 + user/plugins/problems/scss/_timelines.scss | 54 + user/plugins/problems/scss/_toasts.scss | 42 + user/plugins/problems/scss/_tooltips.scss | 79 + user/plugins/problems/scss/_typography.scss | 128 + user/plugins/problems/scss/_utilities.scss | 8 + user/plugins/problems/scss/_variables.scss | 116 + user/plugins/problems/scss/admin.scss | 92 + .../problems/scss/icons/_icons-action.scss | 316 + .../problems/scss/icons/_icons-core.scss | 53 + .../scss/icons/_icons-navigation.scss | 133 + .../problems/scss/icons/_icons-object.scss | 176 + .../plugins/problems/scss/mixins/_avatar.scss | 6 + .../plugins/problems/scss/mixins/_button.scss | 54 + .../problems/scss/mixins/_clearfix.scss | 8 + user/plugins/problems/scss/mixins/_color.scss | 27 + user/plugins/problems/scss/mixins/_label.scss | 11 + .../problems/scss/mixins/_position.scss | 65 + .../plugins/problems/scss/mixins/_shadow.scss | 9 + user/plugins/problems/scss/mixins/_text.scss | 6 + user/plugins/problems/scss/mixins/_toast.scss | 5 + .../problems/scss/mixins/_transition.scss | 4 + user/plugins/problems/scss/spectre-icons.scss | 10 + user/plugins/problems/scss/spectre.scss | 51 + .../problems/scss/utilities/_colors.scss | 31 + .../problems/scss/utilities/_cursors.scss | 24 + .../problems/scss/utilities/_display.scss | 44 + .../problems/scss/utilities/_divider.scss | 50 + .../problems/scss/utilities/_loading.scss | 34 + .../problems/scss/utilities/_position.scss | 50 + .../problems/scss/utilities/_shapes.scss | 8 + .../problems/scss/utilities/_text.scss | 64 + .../problems/templates/problems.html.twig | 34 + .../reports/problems-report.html.twig | 33 + user/plugins/problems/vendor/autoload.php | 7 + .../problems/vendor/composer/ClassLoader.php | 445 + .../vendor/composer/InstalledVersions.php | 219 + user/plugins/problems/vendor/composer/LICENSE | 21 + .../vendor/composer/autoload_classmap.php | 11 + .../vendor/composer/autoload_namespaces.php | 9 + .../vendor/composer/autoload_psr4.php | 11 + .../vendor/composer/autoload_real.php | 55 + .../vendor/composer/autoload_static.php | 42 + .../problems/vendor/composer/installed.json | 5 + .../problems/vendor/composer/installed.php | 24 + user/screenshot.jpg | Bin 0 -> 131018 bytes user/themes/.gitkeep | 0 user/themes/custom-mediator/CHANGELOG.md | 5 + user/themes/custom-mediator/LICENSE | 21 + user/themes/custom-mediator/README.md | 7 + user/themes/custom-mediator/blueprints.yaml | 18 + user/themes/custom-mediator/css/custom.css | 33 + .../custom-mediator/custom-mediator.php | 9 + .../custom-mediator/custom-mediator.yaml | 10 + .../themes/custom-mediator/images/favicon.png | Bin 0 -> 1288 bytes user/themes/custom-mediator/js/index.js | 50 + user/themes/custom-mediator/languages.yaml | 57 + user/themes/custom-mediator/screenshot.jpg | Bin 0 -> 15428 bytes .../templates/default.html.twig | 65 + .../custom-mediator/templates/form2.html.twig | 2 + .../templates/partials/article.html.twig | 20 + .../templates/partials/base.html.twig | 74 + .../templates/partials/pagination.html.twig | 15 + .../templates/partials/postmeta.html.twig | 21 + .../custom-mediator/templates/post.html.twig | 90 + user/themes/custom-mediator/thumbnail.jpg | Bin 0 -> 3681 bytes .../vendors/fontawesome/LICENSE.txt | 34 + .../vendors/fontawesome/attribution.js | 3 + .../vendors/fontawesome/css/all.min.css | 5 + .../fontawesome/webfonts/fa-brands-400.eot | Bin 0 -> 134294 bytes .../fontawesome/webfonts/fa-brands-400.svg | 3717 + .../fontawesome/webfonts/fa-brands-400.ttf | Bin 0 -> 133988 bytes .../fontawesome/webfonts/fa-brands-400.woff | Bin 0 -> 89988 bytes .../fontawesome/webfonts/fa-brands-400.woff2 | Bin 0 -> 76736 bytes .../fontawesome/webfonts/fa-regular-400.eot | Bin 0 -> 34034 bytes .../fontawesome/webfonts/fa-regular-400.svg | 801 + .../fontawesome/webfonts/fa-regular-400.ttf | Bin 0 -> 33736 bytes .../fontawesome/webfonts/fa-regular-400.woff | Bin 0 -> 16276 bytes .../fontawesome/webfonts/fa-regular-400.woff2 | Bin 0 -> 13224 bytes .../fontawesome/webfonts/fa-solid-900.eot | Bin 0 -> 203030 bytes .../fontawesome/webfonts/fa-solid-900.svg | 5034 + .../fontawesome/webfonts/fa-solid-900.ttf | Bin 0 -> 202744 bytes .../fontawesome/webfonts/fa-solid-900.woff | Bin 0 -> 101648 bytes .../fontawesome/webfonts/fa-solid-900.woff2 | Bin 0 -> 78268 bytes .../custom-mediator/vendors/fonts/LICENSE.txt | 202 + .../vendors/fonts/css/all.min.css | 1 + .../fonts/webfonts/linuxlibertine/400.woff | Bin 0 -> 298840 bytes .../fonts/webfonts/linuxlibertine/400i.woff | Bin 0 -> 255744 bytes .../fonts/webfonts/linuxlibertine/700.woff | Bin 0 -> 243024 bytes .../fonts/webfonts/linuxlibertine/700i.woff | Bin 0 -> 186752 bytes .../vendors/fonts/webfonts/opensans/400.woff | Bin 0 -> 67524 bytes .../vendors/fonts/webfonts/opensans/400i.woff | Bin 0 -> 65184 bytes .../vendors/fonts/webfonts/opensans/700.woff | Bin 0 -> 70188 bytes .../vendors/fonts/webfonts/opensans/700i.woff | Bin 0 -> 65060 bytes user/themes/mediator/CHANGELOG.md | 65 + user/themes/mediator/LICENSE | 21 + user/themes/mediator/README.md | 72 + user/themes/mediator/assets/readme_1.png | Bin 0 -> 694599 bytes user/themes/mediator/blueprints.yaml | 20 + user/themes/mediator/blueprints/.gitkeep | 0 user/themes/mediator/css/main.css | 600 + user/themes/mediator/css/main.css.map | 7 + user/themes/mediator/css/normalize.css | 406 + user/themes/mediator/css/print.css | 23 + user/themes/mediator/images/favicon.png | Bin 0 -> 1177 bytes user/themes/mediator/js/index.js | 56 + user/themes/mediator/js/jquery.fitvids.js | 74 + .../mediator/js/min/highlight.pack-ck.js | 1 + user/themes/mediator/js/min/index-ck.js | 1 + .../mediator/js/min/jquery.fitvids-ck.js | 1 + .../js/min/jquery.ghostHunter.min-ck.js | 1 + .../mediator/js/min/readingTime.min-ck.js | 1 + user/themes/mediator/js/readingTime.min.js | 12 + user/themes/mediator/mediator.php | 9 + user/themes/mediator/mediator.yaml | 1 + user/themes/mediator/screenshot.jpg | Bin 0 -> 131018 bytes user/themes/mediator/scss/main.scss | 716 + .../bourbon/_bourbon-deprecated-upcoming.scss | 8 + .../scss/vendor/bourbon/_bourbon.scss | 77 + .../scss/vendor/bourbon/addons/_button.scss | 374 + .../scss/vendor/bourbon/addons/_clearfix.scss | 23 + .../bourbon/addons/_directional-values.scss | 111 + .../scss/vendor/bourbon/addons/_ellipsis.scss | 7 + .../vendor/bourbon/addons/_font-family.scss | 5 + .../vendor/bourbon/addons/_hide-text.scss | 10 + .../bourbon/addons/_html5-input-types.scss | 86 + .../scss/vendor/bourbon/addons/_position.scss | 32 + .../scss/vendor/bourbon/addons/_prefixer.scss | 45 + .../scss/vendor/bourbon/addons/_rem.scss | 33 + .../vendor/bourbon/addons/_retina-image.scss | 31 + .../scss/vendor/bourbon/addons/_size.scss | 16 + .../bourbon/addons/_timing-functions.scss | 32 + .../scss/vendor/bourbon/addons/_triangle.scss | 83 + .../vendor/bourbon/addons/_word-wrap.scss | 8 + .../scss/vendor/bourbon/css3/_animation.scss | 52 + .../scss/vendor/bourbon/css3/_appearance.scss | 3 + .../bourbon/css3/_backface-visibility.scss | 6 + .../bourbon/css3/_background-image.scss | 42 + .../scss/vendor/bourbon/css3/_background.scss | 55 + .../vendor/bourbon/css3/_border-image.scss | 59 + .../vendor/bourbon/css3/_border-radius.scss | 22 + .../scss/vendor/bourbon/css3/_box-sizing.scss | 4 + .../scss/vendor/bourbon/css3/_calc.scss | 4 + .../scss/vendor/bourbon/css3/_columns.scss | 47 + .../scss/vendor/bourbon/css3/_filter.scss | 5 + .../scss/vendor/bourbon/css3/_flex-box.scss | 321 + .../scss/vendor/bourbon/css3/_font-face.scss | 23 + .../bourbon/css3/_font-feature-settings.scss | 10 + .../bourbon/css3/_hidpi-media-query.scss | 10 + .../scss/vendor/bourbon/css3/_hyphens.scss | 4 + .../vendor/bourbon/css3/_image-rendering.scss | 14 + .../scss/vendor/bourbon/css3/_keyframes.scss | 35 + .../vendor/bourbon/css3/_linear-gradient.scss | 38 + .../vendor/bourbon/css3/_perspective.scss | 8 + .../vendor/bourbon/css3/_placeholder.scss | 8 + .../vendor/bourbon/css3/_radial-gradient.scss | 39 + .../scss/vendor/bourbon/css3/_transform.scss | 15 + .../scss/vendor/bourbon/css3/_transition.scss | 77 + .../vendor/bourbon/css3/_user-select.scss | 3 + .../vendor/bourbon/functions/_assign.scss | 11 + .../bourbon/functions/_color-lightness.scss | 13 + .../vendor/bourbon/functions/_flex-grid.scss | 39 + .../bourbon/functions/_golden-ratio.scss | 3 + .../vendor/bourbon/functions/_grid-width.scss | 13 + .../bourbon/functions/_modular-scale.scss | 66 + .../vendor/bourbon/functions/_px-to-em.scss | 13 + .../vendor/bourbon/functions/_px-to-rem.scss | 15 + .../bourbon/functions/_strip-units.scss | 5 + .../vendor/bourbon/functions/_tint-shade.scss | 9 + .../functions/_transition-property-name.scss | 22 + .../vendor/bourbon/functions/_unpack.scss | 17 + .../bourbon/helpers/_convert-units.scss | 15 + .../helpers/_gradient-positions-parser.scss | 13 + .../scss/vendor/bourbon/helpers/_is-num.scss | 8 + .../bourbon/helpers/_linear-angle-parser.scss | 25 + .../helpers/_linear-gradient-parser.scss | 41 + .../helpers/_linear-positions-parser.scss | 61 + .../helpers/_linear-side-corner-parser.scss | 31 + .../bourbon/helpers/_radial-arg-parser.scss | 69 + .../helpers/_radial-gradient-parser.scss | 50 + .../helpers/_radial-positions-parser.scss | 18 + .../bourbon/helpers/_render-gradients.scss | 26 + .../bourbon/helpers/_shape-size-stripper.scss | 10 + .../vendor/bourbon/helpers/_str-to-num.scss | 50 + .../vendor/bourbon/settings/_prefixer.scss | 6 + .../vendor/bourbon/settings/_px-to-em.scss | 1 + .../mediator/templates/default.html.twig | 63 + .../themes/mediator/templates/error.html.twig | 12 + user/themes/mediator/templates/page.html.twig | 2 + .../templates/partials/article.html.twig | 20 + .../templates/partials/base.html.twig | 78 + .../templates/partials/javascripts.html.twig | 0 .../templates/partials/pagination.html.twig | 15 + .../templates/partials/postmeta.html.twig | 21 + user/themes/mediator/templates/post.html.twig | 89 + user/themes/mediator/thumbnail.jpg | Bin 0 -> 24886 bytes 2561 files changed, 454489 insertions(+) create mode 100644 .gitignore create mode 100644 .htaccess create mode 100644 CHANGELOG.md create mode 100644 CODE_OF_CONDUCT.md create mode 100644 CONTRIBUTING.md create mode 100644 LICENSE.txt create mode 100644 README.md create mode 100644 SECURITY.md create mode 100644 composer.json create mode 100644 composer.lock create mode 100644 index.php create mode 100644 logs/.gitkeep create mode 100644 logs/email.log create mode 100644 logs/grav.log create mode 100644 now.json create mode 100644 robots.txt create mode 100644 user/LICENSE create mode 100644 user/README.md create mode 100644 user/accounts/.gitkeep create mode 100644 user/accounts/avatars/ru2bhyrgjlfwt7i.png create mode 100644 user/accounts/boyatzon.yaml create mode 100644 user/blueprints.yaml create mode 100644 user/cli/config/security.yaml create mode 100644 user/config/media.yaml create mode 100644 user/config/plugins/comments.yaml create mode 100644 user/config/plugins/email.yaml create mode 100644 user/config/plugins/feed.yaml create mode 100644 user/config/security.yaml create mode 100644 user/config/site.yaml create mode 100644 user/config/system.yaml create mode 100644 user/config/versions.yaml create mode 100644 user/data/.gitkeep create mode 100644 user/data/comments/fr/blog/theme-setup.yaml create mode 100644 user/data/contact/contact-20210808-124706-735424.txt create mode 100644 user/data/contact/contact-20210808-124742-662139.txt create mode 100644 user/data/contact/contact-20210907-162954-660264.txt create mode 100644 user/data/email-queue/4bIKlgC8Hh.message create mode 100644 user/data/email-queue/Dbn4A79d20.message create mode 100644 user/data/email-queue/H9a13A58Rx.message create mode 100644 user/data/email-queue/MDCU3ZtZgw.message create mode 100644 user/data/email-queue/j0DjvxfjZk.message create mode 100644 user/data/email-queue/kCx3Ub5ghj.message create mode 100644 user/data/email-queue/w1cWt1JZCB.message create mode 100644 user/data/feed/17a4d176a17a068732653cf9cac204f8.yaml create mode 100644 user/data/flex/indexes/accounts.yaml create mode 100644 user/data/flex/indexes/pages.json create mode 100644 user/data/licenses.yaml create mode 100644 user/data/notifications/17a4d176a17a068732653cf9cac204f8.yaml create mode 100644 user/data/notifications/boyatzon.yaml create mode 100644 user/images/avatar.jpg create mode 100644 user/images/logo.jpg create mode 100644 user/localhost/config/plugins/comments.yaml create mode 100644 user/localhost/config/plugins/email.yaml create mode 100644 user/localhost/config/security.yaml create mode 100644 user/pages/about/page.md create mode 100644 user/pages/blog/2014-02-05-theme-setup/post.md create mode 100644 user/pages/blog/2014-02-05-theme-setup/tools.jpg create mode 100644 user/pages/blog/2014-08-12-sample-link-post/post.md create mode 100644 user/pages/blog/2014-11-30-welcome-to-grav/post.md create mode 100644 user/pages/blog/2014-11-30-welcome-to-grav/stuff.jpg create mode 100644 user/pages/blog/2014-11-30-welcome-to-grav/swim.jpg create mode 100644 user/pages/blog/default.md create mode 100644 user/pages/blog/firewatch-forest-mountains-minimalism-4k-hb.jpg create mode 100644 user/pages/blog/shore.jpg create mode 100644 user/pages/contact-temp/page.md create mode 100644 user/pages/contact/emailsent/page.fr.md create mode 100644 user/pages/contact/form.fr.md create mode 100644 user/plugins/.gitkeep create mode 100644 user/plugins/admin/.editorconfig create mode 100644 user/plugins/admin/.gitattributes create mode 100644 user/plugins/admin/.github/FUNDING.yml create mode 100644 user/plugins/admin/.gitignore create mode 100644 user/plugins/admin/CHANGELOG.md create mode 100644 user/plugins/admin/CONTRIBUTING.md create mode 100644 user/plugins/admin/LICENSE create mode 100644 user/plugins/admin/README.md create mode 100644 user/plugins/admin/UPGRADE.md create mode 100644 user/plugins/admin/admin.php create mode 100644 user/plugins/admin/admin.yaml create mode 100644 user/plugins/admin/assets/admin-dashboard.png create mode 100644 user/plugins/admin/blueprints.yaml create mode 100644 user/plugins/admin/blueprints/admin/pages/copy.yaml create mode 100644 user/plugins/admin/blueprints/admin/pages/modular_new.yaml create mode 100644 user/plugins/admin/blueprints/admin/pages/modular_raw.yaml create mode 100644 user/plugins/admin/blueprints/admin/pages/move.yaml create mode 100644 user/plugins/admin/blueprints/admin/pages/new.yaml create mode 100644 user/plugins/admin/blueprints/admin/pages/new_folder.yaml create mode 100644 user/plugins/admin/blueprints/admin/pages/raw.yaml create mode 100644 user/plugins/admin/blueprints/admin/pages/root_raw.yaml create mode 100644 user/plugins/admin/blueprints/config/media.yaml create mode 100644 user/plugins/admin/classes/plugin/Admin.php create mode 100644 user/plugins/admin/classes/plugin/AdminBaseController.php create mode 100644 user/plugins/admin/classes/plugin/AdminController.php create mode 100644 user/plugins/admin/classes/plugin/AdminForm.php create mode 100644 user/plugins/admin/classes/plugin/AdminFormFactory.php create mode 100644 user/plugins/admin/classes/plugin/Controllers/AbstractController.php create mode 100644 user/plugins/admin/classes/plugin/Controllers/AdminController.php create mode 100644 user/plugins/admin/classes/plugin/Controllers/Login/LoginController.php create mode 100644 user/plugins/admin/classes/plugin/Gpm.php create mode 100644 user/plugins/admin/classes/plugin/Popularity.php create mode 100644 user/plugins/admin/classes/plugin/Router.php create mode 100644 user/plugins/admin/classes/plugin/Routers/LoginRouter.php create mode 100644 user/plugins/admin/classes/plugin/ScssCompiler.php create mode 100644 user/plugins/admin/classes/plugin/ScssList.php create mode 100644 user/plugins/admin/classes/plugin/Themes.php create mode 100644 user/plugins/admin/classes/plugin/Twig/AdminTwigExtension.php create mode 100644 user/plugins/admin/classes/plugin/Utils.php create mode 100644 user/plugins/admin/classes/plugin/WhiteLabel.php create mode 100644 user/plugins/admin/codeception.yml create mode 100644 user/plugins/admin/composer.json create mode 100644 user/plugins/admin/composer.lock create mode 100644 user/plugins/admin/hebe.json create mode 100644 user/plugins/admin/languages/ar.yaml create mode 100644 user/plugins/admin/languages/bg.yaml create mode 100644 user/plugins/admin/languages/bn.yaml create mode 100644 user/plugins/admin/languages/br.yaml create mode 100644 user/plugins/admin/languages/ca.yaml create mode 100644 user/plugins/admin/languages/cs.yaml create mode 100644 user/plugins/admin/languages/cy.yaml create mode 100644 user/plugins/admin/languages/da.yaml create mode 100644 user/plugins/admin/languages/de.yaml create mode 100644 user/plugins/admin/languages/el.yaml create mode 100644 user/plugins/admin/languages/en.yaml create mode 100644 user/plugins/admin/languages/eo.yaml create mode 100644 user/plugins/admin/languages/es.yaml create mode 100644 user/plugins/admin/languages/et.yaml create mode 100644 user/plugins/admin/languages/eu.yaml create mode 100644 user/plugins/admin/languages/fa.yaml create mode 100644 user/plugins/admin/languages/fi.yaml create mode 100644 user/plugins/admin/languages/fr.yaml create mode 100644 user/plugins/admin/languages/gl.yaml create mode 100644 user/plugins/admin/languages/he.yaml create mode 100644 user/plugins/admin/languages/hr.yaml create mode 100644 user/plugins/admin/languages/hu.yaml create mode 100644 user/plugins/admin/languages/id.yaml create mode 100644 user/plugins/admin/languages/it.yaml create mode 100644 user/plugins/admin/languages/ja.yaml create mode 100644 user/plugins/admin/languages/ko.yaml create mode 100644 user/plugins/admin/languages/ku.yaml create mode 100644 user/plugins/admin/languages/lt.yaml create mode 100644 user/plugins/admin/languages/mn.yaml create mode 100644 user/plugins/admin/languages/nl.yaml create mode 100644 user/plugins/admin/languages/no.yaml create mode 100644 user/plugins/admin/languages/pl.yaml create mode 100644 user/plugins/admin/languages/pt.yaml create mode 100644 user/plugins/admin/languages/ro.yaml create mode 100644 user/plugins/admin/languages/ru.yaml create mode 100644 user/plugins/admin/languages/si.yaml create mode 100644 user/plugins/admin/languages/sk.yaml create mode 100644 user/plugins/admin/languages/sl.yaml create mode 100644 user/plugins/admin/languages/sr.yaml create mode 100644 user/plugins/admin/languages/sv.yaml create mode 100644 user/plugins/admin/languages/th.yaml create mode 100644 user/plugins/admin/languages/tlh.yaml create mode 100644 user/plugins/admin/languages/tr.yaml create mode 100644 user/plugins/admin/languages/uk.yaml create mode 100644 user/plugins/admin/languages/vi.yaml create mode 100644 user/plugins/admin/languages/zh-cn.yaml create mode 100644 user/plugins/admin/languages/zh-tw.yaml create mode 100644 user/plugins/admin/languages/zh.yaml create mode 100644 user/plugins/admin/pages/admin/ajax.md create mode 100644 user/plugins/admin/pages/admin/backup.md create mode 100644 user/plugins/admin/pages/admin/cache.md create mode 100644 user/plugins/admin/pages/admin/changelog.md create mode 100644 user/plugins/admin/pages/admin/config.md create mode 100644 user/plugins/admin/pages/admin/dashboard.md create mode 100644 user/plugins/admin/pages/admin/denied.md create mode 100644 user/plugins/admin/pages/admin/error.md create mode 100644 user/plugins/admin/pages/admin/feed.md create mode 100644 user/plugins/admin/pages/admin/forgot.md create mode 100644 user/plugins/admin/pages/admin/info.md create mode 100644 user/plugins/admin/pages/admin/installer.md create mode 100644 user/plugins/admin/pages/admin/login.md create mode 100644 user/plugins/admin/pages/admin/media.md create mode 100644 user/plugins/admin/pages/admin/notifications.md create mode 100644 user/plugins/admin/pages/admin/pages-filter.md create mode 100644 user/plugins/admin/pages/admin/pages.md create mode 100644 user/plugins/admin/pages/admin/plugins.md create mode 100644 user/plugins/admin/pages/admin/preview.md create mode 100644 user/plugins/admin/pages/admin/register.md create mode 100644 user/plugins/admin/pages/admin/reset.md create mode 100644 user/plugins/admin/pages/admin/site.md create mode 100644 user/plugins/admin/pages/admin/statistics.md create mode 100644 user/plugins/admin/pages/admin/system.md create mode 100644 user/plugins/admin/pages/admin/themes.md create mode 100644 user/plugins/admin/pages/admin/tools.md create mode 100644 user/plugins/admin/pages/admin/update.md create mode 100644 user/plugins/admin/pages/admin/user.md create mode 100644 user/plugins/admin/permissions.yaml create mode 100644 user/plugins/admin/presets.yaml create mode 100644 user/plugins/admin/tests/_bootstrap.php create mode 100644 user/plugins/admin/tests/_support/Helper/Unit.php create mode 100644 user/plugins/admin/tests/_support/UnitTester.php create mode 100644 user/plugins/admin/tests/unit.suite.yml create mode 100644 user/plugins/admin/tests/unit/_bootstrap.php create mode 100644 user/plugins/admin/tests/unit/classes/controllerTest.php create mode 100644 user/plugins/admin/themes/grav/.babelrc create mode 100644 user/plugins/admin/themes/grav/.eslintignore create mode 100644 user/plugins/admin/themes/grav/.eslintrc create mode 100644 user/plugins/admin/themes/grav/app/dashboard/backup.js create mode 100644 user/plugins/admin/themes/grav/app/dashboard/cache.js create mode 100644 user/plugins/admin/themes/grav/app/dashboard/chart.js create mode 100644 user/plugins/admin/themes/grav/app/dashboard/index.js create mode 100644 user/plugins/admin/themes/grav/app/dashboard/update.js create mode 100644 user/plugins/admin/themes/grav/app/forms/fields/acl-picker.js create mode 100644 user/plugins/admin/themes/grav/app/forms/fields/array.js create mode 100644 user/plugins/admin/themes/grav/app/forms/fields/collections.js create mode 100644 user/plugins/admin/themes/grav/app/forms/fields/colorpicker.js create mode 100644 user/plugins/admin/themes/grav/app/forms/fields/cron.js create mode 100644 user/plugins/admin/themes/grav/app/forms/fields/datetime.js create mode 100644 user/plugins/admin/themes/grav/app/forms/fields/editor.js create mode 100644 user/plugins/admin/themes/grav/app/forms/fields/editor/buttons.js create mode 100644 user/plugins/admin/themes/grav/app/forms/fields/elements.js create mode 100644 user/plugins/admin/themes/grav/app/forms/fields/filepicker.js create mode 100644 user/plugins/admin/themes/grav/app/forms/fields/files.js create mode 100644 user/plugins/admin/themes/grav/app/forms/fields/folder.js create mode 100644 user/plugins/admin/themes/grav/app/forms/fields/iconpicker.js create mode 100644 user/plugins/admin/themes/grav/app/forms/fields/indeterminate.js create mode 100644 user/plugins/admin/themes/grav/app/forms/fields/index.js create mode 100644 user/plugins/admin/themes/grav/app/forms/fields/mediapicker.js create mode 100644 user/plugins/admin/themes/grav/app/forms/fields/multilevel.js create mode 100644 user/plugins/admin/themes/grav/app/forms/fields/parents.js create mode 100644 user/plugins/admin/themes/grav/app/forms/fields/permissions.js create mode 100644 user/plugins/admin/themes/grav/app/forms/fields/range.js create mode 100644 user/plugins/admin/themes/grav/app/forms/fields/selectize.js create mode 100644 user/plugins/admin/themes/grav/app/forms/fields/selectunique.js create mode 100644 user/plugins/admin/themes/grav/app/forms/fields/text.js create mode 100644 user/plugins/admin/themes/grav/app/forms/form.js create mode 100644 user/plugins/admin/themes/grav/app/forms/index.js create mode 100644 user/plugins/admin/themes/grav/app/forms/state.js create mode 100644 user/plugins/admin/themes/grav/app/main.js create mode 100644 user/plugins/admin/themes/grav/app/media/index.js create mode 100644 user/plugins/admin/themes/grav/app/pages/filter.js create mode 100644 user/plugins/admin/themes/grav/app/pages/index.js create mode 100644 user/plugins/admin/themes/grav/app/pages/page/add.js create mode 100644 user/plugins/admin/themes/grav/app/pages/page/delete.js create mode 100644 user/plugins/admin/themes/grav/app/pages/page/disable-buttons.js create mode 100644 user/plugins/admin/themes/grav/app/pages/page/index.js create mode 100644 user/plugins/admin/themes/grav/app/pages/page/media.js create mode 100644 user/plugins/admin/themes/grav/app/pages/page/move.js create mode 100644 user/plugins/admin/themes/grav/app/pages/page/multilang.js create mode 100644 user/plugins/admin/themes/grav/app/pages/page/unset.js create mode 100644 user/plugins/admin/themes/grav/app/pages/tree.js create mode 100644 user/plugins/admin/themes/grav/app/plugins/index.js create mode 100644 user/plugins/admin/themes/grav/app/themes/index.js create mode 100644 user/plugins/admin/themes/grav/app/tools/index.js create mode 100644 user/plugins/admin/themes/grav/app/tools/logs.js create mode 100644 user/plugins/admin/themes/grav/app/updates/channel-switcher.js create mode 100644 user/plugins/admin/themes/grav/app/updates/check.js create mode 100644 user/plugins/admin/themes/grav/app/updates/feed.js create mode 100644 user/plugins/admin/themes/grav/app/updates/index.js create mode 100644 user/plugins/admin/themes/grav/app/updates/notifications.js create mode 100644 user/plugins/admin/themes/grav/app/updates/update.js create mode 100644 user/plugins/admin/themes/grav/app/utils/2fa.js create mode 100644 user/plugins/admin/themes/grav/app/utils/bootstrap-collapse.js create mode 100644 user/plugins/admin/themes/grav/app/utils/bootstrap-datetimepicker.js create mode 100644 user/plugins/admin/themes/grav/app/utils/bootstrap-dropdown.js create mode 100644 user/plugins/admin/themes/grav/app/utils/bootstrap-transition.js create mode 100644 user/plugins/admin/themes/grav/app/utils/changelog.js create mode 100644 user/plugins/admin/themes/grav/app/utils/colors.js create mode 100644 user/plugins/admin/themes/grav/app/utils/cookies.js create mode 100644 user/plugins/admin/themes/grav/app/utils/cron-ui.js create mode 100644 user/plugins/admin/themes/grav/app/utils/finderjs.js create mode 100644 user/plugins/admin/themes/grav/app/utils/formatbytes.js create mode 100644 user/plugins/admin/themes/grav/app/utils/gpm.js create mode 100644 user/plugins/admin/themes/grav/app/utils/jquery-utils.js create mode 100644 user/plugins/admin/themes/grav/app/utils/keepalive.js create mode 100644 user/plugins/admin/themes/grav/app/utils/offline.js create mode 100644 user/plugins/admin/themes/grav/app/utils/packages.js create mode 100644 user/plugins/admin/themes/grav/app/utils/remodal.js create mode 100644 user/plugins/admin/themes/grav/app/utils/request.js create mode 100644 user/plugins/admin/themes/grav/app/utils/response.js create mode 100644 user/plugins/admin/themes/grav/app/utils/selectize-option-click.js create mode 100644 user/plugins/admin/themes/grav/app/utils/selectize-required-fix.js create mode 100644 user/plugins/admin/themes/grav/app/utils/sidebar.js create mode 100644 user/plugins/admin/themes/grav/app/utils/storage.js create mode 100644 user/plugins/admin/themes/grav/app/utils/tabs-memory.js create mode 100644 user/plugins/admin/themes/grav/app/utils/toastr.js create mode 100644 user/plugins/admin/themes/grav/app/whitelabel/compile.js create mode 100644 user/plugins/admin/themes/grav/app/whitelabel/index.js create mode 100644 user/plugins/admin/themes/grav/app/whitelabel/presets.js create mode 100644 user/plugins/admin/themes/grav/css-compiled/nucleus.css create mode 100644 user/plugins/admin/themes/grav/css-compiled/nucleus.css.map create mode 100644 user/plugins/admin/themes/grav/css-compiled/preset.css create mode 100644 user/plugins/admin/themes/grav/css-compiled/preset.css.map create mode 100644 user/plugins/admin/themes/grav/css-compiled/simple-fonts.css create mode 100644 user/plugins/admin/themes/grav/css-compiled/simple-fonts.css.map create mode 100644 user/plugins/admin/themes/grav/css-compiled/template.css create mode 100644 user/plugins/admin/themes/grav/css-compiled/template.css.map create mode 100644 user/plugins/admin/themes/grav/css/chartist.min.css create mode 100644 user/plugins/admin/themes/grav/css/codemirror/codemirror.css create mode 100644 user/plugins/admin/themes/grav/css/codemirror/themes/3024-day.css create mode 100644 user/plugins/admin/themes/grav/css/codemirror/themes/3024-night.css create mode 100644 user/plugins/admin/themes/grav/css/codemirror/themes/abcdef.css create mode 100644 user/plugins/admin/themes/grav/css/codemirror/themes/ambiance-mobile.css create mode 100644 user/plugins/admin/themes/grav/css/codemirror/themes/ambiance.css create mode 100644 user/plugins/admin/themes/grav/css/codemirror/themes/ayu-dark.css create mode 100644 user/plugins/admin/themes/grav/css/codemirror/themes/ayu-mirage.css create mode 100644 user/plugins/admin/themes/grav/css/codemirror/themes/base16-dark.css create mode 100644 user/plugins/admin/themes/grav/css/codemirror/themes/base16-light.css create mode 100644 user/plugins/admin/themes/grav/css/codemirror/themes/bespin.css create mode 100644 user/plugins/admin/themes/grav/css/codemirror/themes/blackboard.css create mode 100644 user/plugins/admin/themes/grav/css/codemirror/themes/cobalt.css create mode 100644 user/plugins/admin/themes/grav/css/codemirror/themes/colorforth.css create mode 100644 user/plugins/admin/themes/grav/css/codemirror/themes/darcula.css create mode 100644 user/plugins/admin/themes/grav/css/codemirror/themes/dracula.css create mode 100644 user/plugins/admin/themes/grav/css/codemirror/themes/duotone-dark.css create mode 100644 user/plugins/admin/themes/grav/css/codemirror/themes/duotone-light.css create mode 100644 user/plugins/admin/themes/grav/css/codemirror/themes/eclipse.css create mode 100644 user/plugins/admin/themes/grav/css/codemirror/themes/elegant.css create mode 100644 user/plugins/admin/themes/grav/css/codemirror/themes/erlang-dark.css create mode 100644 user/plugins/admin/themes/grav/css/codemirror/themes/gruvbox-dark.css create mode 100644 user/plugins/admin/themes/grav/css/codemirror/themes/hopscotch.css create mode 100644 user/plugins/admin/themes/grav/css/codemirror/themes/icecoder.css create mode 100644 user/plugins/admin/themes/grav/css/codemirror/themes/idea.css create mode 100644 user/plugins/admin/themes/grav/css/codemirror/themes/isotope.css create mode 100644 user/plugins/admin/themes/grav/css/codemirror/themes/lesser-dark.css create mode 100644 user/plugins/admin/themes/grav/css/codemirror/themes/liquibyte.css create mode 100644 user/plugins/admin/themes/grav/css/codemirror/themes/lucario.css create mode 100644 user/plugins/admin/themes/grav/css/codemirror/themes/material-darker.css create mode 100644 user/plugins/admin/themes/grav/css/codemirror/themes/material-ocean.css create mode 100644 user/plugins/admin/themes/grav/css/codemirror/themes/material-palenight.css create mode 100644 user/plugins/admin/themes/grav/css/codemirror/themes/material.css create mode 100644 user/plugins/admin/themes/grav/css/codemirror/themes/mbo.css create mode 100644 user/plugins/admin/themes/grav/css/codemirror/themes/mdn-like.css create mode 100644 user/plugins/admin/themes/grav/css/codemirror/themes/midnight.css create mode 100644 user/plugins/admin/themes/grav/css/codemirror/themes/monokai.css create mode 100644 user/plugins/admin/themes/grav/css/codemirror/themes/moxer.css create mode 100644 user/plugins/admin/themes/grav/css/codemirror/themes/neat.css create mode 100644 user/plugins/admin/themes/grav/css/codemirror/themes/neo.css create mode 100644 user/plugins/admin/themes/grav/css/codemirror/themes/night.css create mode 100644 user/plugins/admin/themes/grav/css/codemirror/themes/nord.css create mode 100644 user/plugins/admin/themes/grav/css/codemirror/themes/oceanic-next.css create mode 100644 user/plugins/admin/themes/grav/css/codemirror/themes/panda-syntax.css create mode 100644 user/plugins/admin/themes/grav/css/codemirror/themes/paper.css create mode 100644 user/plugins/admin/themes/grav/css/codemirror/themes/paraiso-dark.css create mode 100644 user/plugins/admin/themes/grav/css/codemirror/themes/paraiso-light.css create mode 100644 user/plugins/admin/themes/grav/css/codemirror/themes/pastel-on-dark.css create mode 100644 user/plugins/admin/themes/grav/css/codemirror/themes/railscasts.css create mode 100644 user/plugins/admin/themes/grav/css/codemirror/themes/rubyblue.css create mode 100644 user/plugins/admin/themes/grav/css/codemirror/themes/seti.css create mode 100644 user/plugins/admin/themes/grav/css/codemirror/themes/shadowfox.css create mode 100644 user/plugins/admin/themes/grav/css/codemirror/themes/solarized.css create mode 100644 user/plugins/admin/themes/grav/css/codemirror/themes/ssms.css create mode 100644 user/plugins/admin/themes/grav/css/codemirror/themes/the-matrix.css create mode 100644 user/plugins/admin/themes/grav/css/codemirror/themes/tomorrow-night-bright.css create mode 100644 user/plugins/admin/themes/grav/css/codemirror/themes/tomorrow-night-eighties.css create mode 100644 user/plugins/admin/themes/grav/css/codemirror/themes/ttcn.css create mode 100644 user/plugins/admin/themes/grav/css/codemirror/themes/twilight.css create mode 100644 user/plugins/admin/themes/grav/css/codemirror/themes/vibrant-ink.css create mode 100644 user/plugins/admin/themes/grav/css/codemirror/themes/xq-dark.css create mode 100644 user/plugins/admin/themes/grav/css/codemirror/themes/xq-light.css create mode 100644 user/plugins/admin/themes/grav/css/codemirror/themes/yeti.css create mode 100644 user/plugins/admin/themes/grav/css/codemirror/themes/yonce.css create mode 100644 user/plugins/admin/themes/grav/css/codemirror/themes/zenburn.css create mode 100644 user/plugins/admin/themes/grav/css/fork-awesome.min.css create mode 100644 user/plugins/admin/themes/grav/css/hint.base.min.css create mode 100644 user/plugins/admin/themes/grav/css/iconpicker.css create mode 100644 user/plugins/admin/themes/grav/css/nucleus-ie10.css create mode 100644 user/plugins/admin/themes/grav/css/nucleus-ie9.css create mode 100644 user/plugins/admin/themes/grav/css/prism.css create mode 100644 user/plugins/admin/themes/grav/css/pure-0.5.0/grids-min.css create mode 100644 user/plugins/admin/themes/grav/css/rtl.css create mode 100644 user/plugins/admin/themes/grav/css/selectize.min.css create mode 100644 user/plugins/admin/themes/grav/fonts/forkawesome-webfont.eot create mode 100644 user/plugins/admin/themes/grav/fonts/forkawesome-webfont.svg create mode 100644 user/plugins/admin/themes/grav/fonts/forkawesome-webfont.ttf create mode 100644 user/plugins/admin/themes/grav/fonts/forkawesome-webfont.woff create mode 100644 user/plugins/admin/themes/grav/fonts/forkawesome-webfont.woff2 create mode 100644 user/plugins/admin/themes/grav/fonts/rockettheme-apps/rockettheme-apps.eot create mode 100644 user/plugins/admin/themes/grav/fonts/rockettheme-apps/rockettheme-apps.svg create mode 100644 user/plugins/admin/themes/grav/fonts/rockettheme-apps/rockettheme-apps.ttf create mode 100644 user/plugins/admin/themes/grav/fonts/rockettheme-apps/rockettheme-apps.woff create mode 100644 user/plugins/admin/themes/grav/images/favicon.png create mode 100644 user/plugins/admin/themes/grav/images/grav-regular.svg create mode 100644 user/plugins/admin/themes/grav/images/grav-small.svg create mode 100644 user/plugins/admin/themes/grav/images/icons/book-edit.svg create mode 100644 user/plugins/admin/themes/grav/images/icons/clock-hands.svg create mode 100644 user/plugins/admin/themes/grav/images/icons/crown.svg create mode 100644 user/plugins/admin/themes/grav/images/icons/house.svg create mode 100644 user/plugins/admin/themes/grav/images/icons/module-four.svg create mode 100644 user/plugins/admin/themes/grav/images/icons/superman.svg create mode 100644 user/plugins/admin/themes/grav/images/icons/touchid-lock.svg create mode 100644 user/plugins/admin/themes/grav/images/logo.svg create mode 100644 user/plugins/admin/themes/grav/images/transparent.png create mode 100644 user/plugins/admin/themes/grav/js/admin.min.js create mode 100644 user/plugins/admin/themes/grav/js/form-attr.polyfill.js create mode 100644 user/plugins/admin/themes/grav/js/vendor.min.js create mode 100644 user/plugins/admin/themes/grav/package-lock.json create mode 100644 user/plugins/admin/themes/grav/package.json create mode 100644 user/plugins/admin/themes/grav/scss/configuration/nucleus/_base.scss create mode 100644 user/plugins/admin/themes/grav/scss/configuration/nucleus/_breakpoints.scss create mode 100644 user/plugins/admin/themes/grav/scss/configuration/nucleus/_core.scss create mode 100644 user/plugins/admin/themes/grav/scss/configuration/nucleus/_layout.scss create mode 100644 user/plugins/admin/themes/grav/scss/configuration/nucleus/_nav.scss create mode 100644 user/plugins/admin/themes/grav/scss/configuration/nucleus/_typography.scss create mode 100644 user/plugins/admin/themes/grav/scss/configuration/template/_base.scss create mode 100644 user/plugins/admin/themes/grav/scss/configuration/template/_colors.scss create mode 100644 user/plugins/admin/themes/grav/scss/configuration/template/_variables.scss create mode 100644 user/plugins/admin/themes/grav/scss/nucleus.scss create mode 100644 user/plugins/admin/themes/grav/scss/nucleus/_core.scss create mode 100644 user/plugins/admin/themes/grav/scss/nucleus/_flex.scss create mode 100644 user/plugins/admin/themes/grav/scss/nucleus/_forms.scss create mode 100644 user/plugins/admin/themes/grav/scss/nucleus/_typography.scss create mode 100644 user/plugins/admin/themes/grav/scss/nucleus/functions/_base.scss create mode 100644 user/plugins/admin/themes/grav/scss/nucleus/functions/_direction.scss create mode 100644 user/plugins/admin/themes/grav/scss/nucleus/functions/_range.scss create mode 100644 user/plugins/admin/themes/grav/scss/nucleus/mixins/_base.scss create mode 100644 user/plugins/admin/themes/grav/scss/nucleus/mixins/_breakpoints.scss create mode 100644 user/plugins/admin/themes/grav/scss/nucleus/mixins/_utilities.scss create mode 100644 user/plugins/admin/themes/grav/scss/nucleus/particles/_align-text.scss create mode 100644 user/plugins/admin/themes/grav/scss/nucleus/particles/_visibility.scss create mode 100644 user/plugins/admin/themes/grav/scss/preset.scss create mode 100644 user/plugins/admin/themes/grav/scss/simple-fonts.scss create mode 100644 user/plugins/admin/themes/grav/scss/template.scss create mode 100644 user/plugins/admin/themes/grav/scss/template/_admin.scss create mode 100644 user/plugins/admin/themes/grav/scss/template/_buttons.scss create mode 100644 user/plugins/admin/themes/grav/scss/template/_changelog.scss create mode 100644 user/plugins/admin/themes/grav/scss/template/_colors.scss create mode 100644 user/plugins/admin/themes/grav/scss/template/_core.scss create mode 100644 user/plugins/admin/themes/grav/scss/template/_custom.scss create mode 100644 user/plugins/admin/themes/grav/scss/template/_dropzone.scss create mode 100644 user/plugins/admin/themes/grav/scss/template/_editor.scss create mode 100644 user/plugins/admin/themes/grav/scss/template/_errors.scss create mode 100644 user/plugins/admin/themes/grav/scss/template/_extensions.scss create mode 100644 user/plugins/admin/themes/grav/scss/template/_fonts.scss create mode 100644 user/plugins/admin/themes/grav/scss/template/_forms.scss create mode 100644 user/plugins/admin/themes/grav/scss/template/_gpm.scss create mode 100644 user/plugins/admin/themes/grav/scss/template/_header.scss create mode 100644 user/plugins/admin/themes/grav/scss/template/_horizontal-scroll.scss create mode 100644 user/plugins/admin/themes/grav/scss/template/_jqcron.scss create mode 100644 user/plugins/admin/themes/grav/scss/template/_login.scss create mode 100644 user/plugins/admin/themes/grav/scss/template/_media.scss create mode 100644 user/plugins/admin/themes/grav/scss/template/_nav-toggle.scss create mode 100644 user/plugins/admin/themes/grav/scss/template/_notifications.scss create mode 100644 user/plugins/admin/themes/grav/scss/template/_pages.scss create mode 100644 user/plugins/admin/themes/grav/scss/template/_phpinfo.scss create mode 100644 user/plugins/admin/themes/grav/scss/template/_remodal.scss create mode 100644 user/plugins/admin/themes/grav/scss/template/_scrollbars.scss create mode 100644 user/plugins/admin/themes/grav/scss/template/_tables.scss create mode 100644 user/plugins/admin/themes/grav/scss/template/_tabs.scss create mode 100644 user/plugins/admin/themes/grav/scss/template/_toastr.scss create mode 100644 user/plugins/admin/themes/grav/scss/template/_tools.scss create mode 100644 user/plugins/admin/themes/grav/scss/template/_typography.scss create mode 100644 user/plugins/admin/themes/grav/scss/template/_utilities.scss create mode 100644 user/plugins/admin/themes/grav/scss/template/_whitelabel.scss create mode 100644 user/plugins/admin/themes/grav/scss/template/modules/_base.scss create mode 100644 user/plugins/admin/themes/grav/scss/template/modules/_bourbon_essentials.scss create mode 100644 user/plugins/admin/themes/grav/scss/template/modules/_buttons.scss create mode 100644 user/plugins/admin/themes/grav/scss/template/modules/_colorpicker.scss create mode 100644 user/plugins/admin/themes/grav/scss/template/modules/_datetimepicker.scss create mode 100644 user/plugins/admin/themes/grav/scss/template/modules/_finderjs.scss create mode 100644 user/plugins/admin/themes/grav/scss/template/modules/_input-range.scss create mode 100644 user/plugins/admin/themes/grav/scss/template/modules/_scrollbars.scss create mode 100644 user/plugins/admin/themes/grav/scss/template/modules/_toggle-switch.scss create mode 100644 user/plugins/admin/themes/grav/scss/vendor/bourbon/_bourbon-deprecated-upcoming.scss create mode 100644 user/plugins/admin/themes/grav/scss/vendor/bourbon/_bourbon.scss create mode 100644 user/plugins/admin/themes/grav/scss/vendor/bourbon/addons/_button.scss create mode 100644 user/plugins/admin/themes/grav/scss/vendor/bourbon/addons/_clearfix.scss create mode 100644 user/plugins/admin/themes/grav/scss/vendor/bourbon/addons/_directional-values.scss create mode 100644 user/plugins/admin/themes/grav/scss/vendor/bourbon/addons/_ellipsis.scss create mode 100644 user/plugins/admin/themes/grav/scss/vendor/bourbon/addons/_font-family.scss create mode 100644 user/plugins/admin/themes/grav/scss/vendor/bourbon/addons/_hide-text.scss create mode 100644 user/plugins/admin/themes/grav/scss/vendor/bourbon/addons/_html5-input-types.scss create mode 100644 user/plugins/admin/themes/grav/scss/vendor/bourbon/addons/_position.scss create mode 100644 user/plugins/admin/themes/grav/scss/vendor/bourbon/addons/_prefixer.scss create mode 100644 user/plugins/admin/themes/grav/scss/vendor/bourbon/addons/_rem.scss create mode 100644 user/plugins/admin/themes/grav/scss/vendor/bourbon/addons/_retina-image.scss create mode 100644 user/plugins/admin/themes/grav/scss/vendor/bourbon/addons/_size.scss create mode 100644 user/plugins/admin/themes/grav/scss/vendor/bourbon/addons/_timing-functions.scss create mode 100644 user/plugins/admin/themes/grav/scss/vendor/bourbon/addons/_triangle.scss create mode 100644 user/plugins/admin/themes/grav/scss/vendor/bourbon/addons/_word-wrap.scss create mode 100644 user/plugins/admin/themes/grav/scss/vendor/bourbon/css3/_animation.scss create mode 100644 user/plugins/admin/themes/grav/scss/vendor/bourbon/css3/_appearance.scss create mode 100644 user/plugins/admin/themes/grav/scss/vendor/bourbon/css3/_backface-visibility.scss create mode 100644 user/plugins/admin/themes/grav/scss/vendor/bourbon/css3/_background-image.scss create mode 100644 user/plugins/admin/themes/grav/scss/vendor/bourbon/css3/_background.scss create mode 100644 user/plugins/admin/themes/grav/scss/vendor/bourbon/css3/_border-image.scss create mode 100644 user/plugins/admin/themes/grav/scss/vendor/bourbon/css3/_border-radius.scss create mode 100644 user/plugins/admin/themes/grav/scss/vendor/bourbon/css3/_box-sizing.scss create mode 100644 user/plugins/admin/themes/grav/scss/vendor/bourbon/css3/_calc.scss create mode 100644 user/plugins/admin/themes/grav/scss/vendor/bourbon/css3/_columns.scss create mode 100644 user/plugins/admin/themes/grav/scss/vendor/bourbon/css3/_filter.scss create mode 100644 user/plugins/admin/themes/grav/scss/vendor/bourbon/css3/_flex-box.scss create mode 100644 user/plugins/admin/themes/grav/scss/vendor/bourbon/css3/_font-face.scss create mode 100644 user/plugins/admin/themes/grav/scss/vendor/bourbon/css3/_font-feature-settings.scss create mode 100644 user/plugins/admin/themes/grav/scss/vendor/bourbon/css3/_hidpi-media-query.scss create mode 100644 user/plugins/admin/themes/grav/scss/vendor/bourbon/css3/_hyphens.scss create mode 100644 user/plugins/admin/themes/grav/scss/vendor/bourbon/css3/_image-rendering.scss create mode 100644 user/plugins/admin/themes/grav/scss/vendor/bourbon/css3/_keyframes.scss create mode 100644 user/plugins/admin/themes/grav/scss/vendor/bourbon/css3/_linear-gradient.scss create mode 100644 user/plugins/admin/themes/grav/scss/vendor/bourbon/css3/_perspective.scss create mode 100644 user/plugins/admin/themes/grav/scss/vendor/bourbon/css3/_placeholder.scss create mode 100644 user/plugins/admin/themes/grav/scss/vendor/bourbon/css3/_radial-gradient.scss create mode 100644 user/plugins/admin/themes/grav/scss/vendor/bourbon/css3/_transform.scss create mode 100644 user/plugins/admin/themes/grav/scss/vendor/bourbon/css3/_transition.scss create mode 100644 user/plugins/admin/themes/grav/scss/vendor/bourbon/css3/_user-select.scss create mode 100644 user/plugins/admin/themes/grav/scss/vendor/bourbon/functions/_assign.scss create mode 100644 user/plugins/admin/themes/grav/scss/vendor/bourbon/functions/_color-lightness.scss create mode 100644 user/plugins/admin/themes/grav/scss/vendor/bourbon/functions/_flex-grid.scss create mode 100644 user/plugins/admin/themes/grav/scss/vendor/bourbon/functions/_golden-ratio.scss create mode 100644 user/plugins/admin/themes/grav/scss/vendor/bourbon/functions/_grid-width.scss create mode 100644 user/plugins/admin/themes/grav/scss/vendor/bourbon/functions/_modular-scale.scss create mode 100644 user/plugins/admin/themes/grav/scss/vendor/bourbon/functions/_px-to-em.scss create mode 100644 user/plugins/admin/themes/grav/scss/vendor/bourbon/functions/_px-to-rem.scss create mode 100644 user/plugins/admin/themes/grav/scss/vendor/bourbon/functions/_strip-units.scss create mode 100644 user/plugins/admin/themes/grav/scss/vendor/bourbon/functions/_tint-shade.scss create mode 100644 user/plugins/admin/themes/grav/scss/vendor/bourbon/functions/_transition-property-name.scss create mode 100644 user/plugins/admin/themes/grav/scss/vendor/bourbon/functions/_unpack.scss create mode 100644 user/plugins/admin/themes/grav/scss/vendor/bourbon/helpers/_convert-units.scss create mode 100644 user/plugins/admin/themes/grav/scss/vendor/bourbon/helpers/_gradient-positions-parser.scss create mode 100644 user/plugins/admin/themes/grav/scss/vendor/bourbon/helpers/_is-num.scss create mode 100644 user/plugins/admin/themes/grav/scss/vendor/bourbon/helpers/_linear-angle-parser.scss create mode 100644 user/plugins/admin/themes/grav/scss/vendor/bourbon/helpers/_linear-gradient-parser.scss create mode 100644 user/plugins/admin/themes/grav/scss/vendor/bourbon/helpers/_linear-positions-parser.scss create mode 100644 user/plugins/admin/themes/grav/scss/vendor/bourbon/helpers/_linear-side-corner-parser.scss create mode 100644 user/plugins/admin/themes/grav/scss/vendor/bourbon/helpers/_radial-arg-parser.scss create mode 100644 user/plugins/admin/themes/grav/scss/vendor/bourbon/helpers/_radial-gradient-parser.scss create mode 100644 user/plugins/admin/themes/grav/scss/vendor/bourbon/helpers/_radial-positions-parser.scss create mode 100644 user/plugins/admin/themes/grav/scss/vendor/bourbon/helpers/_render-gradients.scss create mode 100644 user/plugins/admin/themes/grav/scss/vendor/bourbon/helpers/_shape-size-stripper.scss create mode 100644 user/plugins/admin/themes/grav/scss/vendor/bourbon/helpers/_str-to-num.scss create mode 100644 user/plugins/admin/themes/grav/scss/vendor/bourbon/settings/_prefixer.scss create mode 100644 user/plugins/admin/themes/grav/scss/vendor/bourbon/settings/_px-to-em.scss create mode 100644 user/plugins/admin/themes/grav/scss/vendor/color-schemer/_color-schemer.scss create mode 100644 user/plugins/admin/themes/grav/scss/vendor/color-schemer/color-schemer/_cmyk.scss create mode 100644 user/plugins/admin/themes/grav/scss/vendor/color-schemer/color-schemer/_color-adjustments.scss create mode 100644 user/plugins/admin/themes/grav/scss/vendor/color-schemer/color-schemer/_color-schemer.scss create mode 100644 user/plugins/admin/themes/grav/scss/vendor/color-schemer/color-schemer/_colorblind.scss create mode 100644 user/plugins/admin/themes/grav/scss/vendor/color-schemer/color-schemer/_comparison.scss create mode 100644 user/plugins/admin/themes/grav/scss/vendor/color-schemer/color-schemer/_equalize.scss create mode 100644 user/plugins/admin/themes/grav/scss/vendor/color-schemer/color-schemer/_harmonize.scss create mode 100644 user/plugins/admin/themes/grav/scss/vendor/color-schemer/color-schemer/_interpolation.scss create mode 100644 user/plugins/admin/themes/grav/scss/vendor/color-schemer/color-schemer/_mix.scss create mode 100644 user/plugins/admin/themes/grav/scss/vendor/color-schemer/color-schemer/_mixins.scss create mode 100644 user/plugins/admin/themes/grav/scss/vendor/color-schemer/color-schemer/_ryb.scss create mode 100644 user/plugins/admin/themes/grav/scss/vendor/color-schemer/color-schemer/_tint-shade.scss create mode 100644 user/plugins/admin/themes/grav/templates/changelog.html.twig create mode 100644 user/plugins/admin/themes/grav/templates/config.html.twig create mode 100644 user/plugins/admin/themes/grav/templates/dashboard.html.twig create mode 100644 user/plugins/admin/themes/grav/templates/default.json.twig create mode 100644 user/plugins/admin/themes/grav/templates/denied.html.twig create mode 100644 user/plugins/admin/themes/grav/templates/email/base.html.twig create mode 100644 user/plugins/admin/themes/grav/templates/empty.html.twig create mode 100644 user/plugins/admin/themes/grav/templates/error.html.twig create mode 100644 user/plugins/admin/themes/grav/templates/error.json.twig create mode 100644 user/plugins/admin/themes/grav/templates/forgot.html.twig create mode 100644 user/plugins/admin/themes/grav/templates/forms/field.html.twig create mode 100644 user/plugins/admin/themes/grav/templates/forms/fields/acl_picker/acl_picker.html.twig create mode 100644 user/plugins/admin/themes/grav/templates/forms/fields/array/array.html.twig create mode 100644 user/plugins/admin/themes/grav/templates/forms/fields/backupshistory/backupshistory.html.twig create mode 100644 user/plugins/admin/themes/grav/templates/forms/fields/blueprint/blueprint.html.twig create mode 100644 user/plugins/admin/themes/grav/templates/forms/fields/codemirror/codemirror.html.twig create mode 100644 user/plugins/admin/themes/grav/templates/forms/fields/colorpicker/colorpicker.html.twig create mode 100644 user/plugins/admin/themes/grav/templates/forms/fields/colorscheme.color/colorscheme.color.html.twig create mode 100644 user/plugins/admin/themes/grav/templates/forms/fields/colorscheme/colorscheme.html.twig create mode 100644 user/plugins/admin/themes/grav/templates/forms/fields/column/column.html.twig create mode 100644 user/plugins/admin/themes/grav/templates/forms/fields/columns/columns.html.twig create mode 100644 user/plugins/admin/themes/grav/templates/forms/fields/cron/cron.html.twig create mode 100644 user/plugins/admin/themes/grav/templates/forms/fields/cronstatus/cronstatus.html.twig create mode 100644 user/plugins/admin/themes/grav/templates/forms/fields/dateformat/dateformat.html.twig create mode 100644 user/plugins/admin/themes/grav/templates/forms/fields/datetime/datetime.html.twig create mode 100644 user/plugins/admin/themes/grav/templates/forms/fields/editor/editor.html.twig create mode 100644 user/plugins/admin/themes/grav/templates/forms/fields/element/element.html.twig create mode 100644 user/plugins/admin/themes/grav/templates/forms/fields/elements/elements.html.twig create mode 100644 user/plugins/admin/themes/grav/templates/forms/fields/fieldset/fieldset.html.twig create mode 100644 user/plugins/admin/themes/grav/templates/forms/fields/file/file.html.twig create mode 100644 user/plugins/admin/themes/grav/templates/forms/fields/filepicker/filepicker.html.twig create mode 100644 user/plugins/admin/themes/grav/templates/forms/fields/folder-slug/folder-slug.html.twig create mode 100644 user/plugins/admin/themes/grav/templates/forms/fields/frontmatter/frontmatter.html.twig create mode 100644 user/plugins/admin/themes/grav/templates/forms/fields/iconpicker/iconpicker.html.twig create mode 100644 user/plugins/admin/themes/grav/templates/forms/fields/iconpicker/icons.yaml create mode 100644 user/plugins/admin/themes/grav/templates/forms/fields/list/list.html.twig create mode 100644 user/plugins/admin/themes/grav/templates/forms/fields/markdown/markdown.html.twig create mode 100644 user/plugins/admin/themes/grav/templates/forms/fields/mediapicker/mediapicker.html.twig create mode 100644 user/plugins/admin/themes/grav/templates/forms/fields/multilevel/multilevel.html.twig create mode 100644 user/plugins/admin/themes/grav/templates/forms/fields/order/order.html.twig create mode 100644 user/plugins/admin/themes/grav/templates/forms/fields/pagemedia/pagemedia.html.twig create mode 100644 user/plugins/admin/themes/grav/templates/forms/fields/pagemediaselect/pagemediaselect.html.twig create mode 100644 user/plugins/admin/themes/grav/templates/forms/fields/pages/pages.html.twig create mode 100644 user/plugins/admin/themes/grav/templates/forms/fields/parents/parents.html.twig create mode 100644 user/plugins/admin/themes/grav/templates/forms/fields/permissions/permissions.html.twig create mode 100644 user/plugins/admin/themes/grav/templates/forms/fields/range/range.html.twig create mode 100644 user/plugins/admin/themes/grav/templates/forms/fields/section/section.html.twig create mode 100644 user/plugins/admin/themes/grav/templates/forms/fields/selectize/selectize.html.twig create mode 100644 user/plugins/admin/themes/grav/templates/forms/fields/selectunique/selectunique.html.twig create mode 100644 user/plugins/admin/themes/grav/templates/forms/fields/taxonomy/taxonomy.html.twig create mode 100644 user/plugins/admin/themes/grav/templates/forms/fields/themepreview/themepreview.html.twig create mode 100644 user/plugins/admin/themes/grav/templates/forms/fields/themeselect/themeselect.html.twig create mode 100644 user/plugins/admin/themes/grav/templates/forms/fields/userinfo/userinfo.html.twig create mode 100644 user/plugins/admin/themes/grav/templates/forms/fields/widgets/widgets.html.twig create mode 100644 user/plugins/admin/themes/grav/templates/forms/fields/xss/xss.html.twig create mode 100644 user/plugins/admin/themes/grav/templates/installer.html.twig create mode 100644 user/plugins/admin/themes/grav/templates/login.html.twig create mode 100644 user/plugins/admin/themes/grav/templates/media-list-content.html.twig create mode 100644 user/plugins/admin/themes/grav/templates/pages.html.twig create mode 100644 user/plugins/admin/themes/grav/templates/partials/backups-button.html.twig create mode 100644 user/plugins/admin/themes/grav/templates/partials/base-root.html.twig create mode 100644 user/plugins/admin/themes/grav/templates/partials/base.html.twig create mode 100644 user/plugins/admin/themes/grav/templates/partials/blueprints-copy.html.twig create mode 100644 user/plugins/admin/themes/grav/templates/partials/blueprints-new-folder.html.twig create mode 100644 user/plugins/admin/themes/grav/templates/partials/blueprints-new.html.twig create mode 100644 user/plugins/admin/themes/grav/templates/partials/blueprints-raw.html.twig create mode 100644 user/plugins/admin/themes/grav/templates/partials/blueprints.html.twig create mode 100644 user/plugins/admin/themes/grav/templates/partials/dashboard-feed.html.twig create mode 100644 user/plugins/admin/themes/grav/templates/partials/dashboard-maintenance.html.twig create mode 100644 user/plugins/admin/themes/grav/templates/partials/dashboard-notifications.html.twig create mode 100644 user/plugins/admin/themes/grav/templates/partials/dashboard-pages.html.twig create mode 100644 user/plugins/admin/themes/grav/templates/partials/dashboard-problems.html.twig create mode 100644 user/plugins/admin/themes/grav/templates/partials/dashboard-statistics.html.twig create mode 100644 user/plugins/admin/themes/grav/templates/partials/feed-block.html.twig create mode 100644 user/plugins/admin/themes/grav/templates/partials/footer.html.twig create mode 100644 user/plugins/admin/themes/grav/templates/partials/header.html.twig create mode 100644 user/plugins/admin/themes/grav/templates/partials/javascript-config.html.twig create mode 100644 user/plugins/admin/themes/grav/templates/partials/javascripts.html.twig create mode 100644 user/plugins/admin/themes/grav/templates/partials/list-sort.html.twig create mode 100644 user/plugins/admin/themes/grav/templates/partials/login-form.html.twig create mode 100644 user/plugins/admin/themes/grav/templates/partials/login-logo.html.twig create mode 100644 user/plugins/admin/themes/grav/templates/partials/login-logout.html.twig create mode 100644 user/plugins/admin/themes/grav/templates/partials/login-twofa.html.twig create mode 100644 user/plugins/admin/themes/grav/templates/partials/login.html.twig create mode 100644 user/plugins/admin/themes/grav/templates/partials/logo.html.twig create mode 100644 user/plugins/admin/themes/grav/templates/partials/media-list-wrapper.html.twig create mode 100644 user/plugins/admin/themes/grav/templates/partials/media-list-wrapper__list.html.twig create mode 100644 user/plugins/admin/themes/grav/templates/partials/media-list-wrapper__list__filters.html.twig create mode 100644 user/plugins/admin/themes/grav/templates/partials/media-list-wrapper__sidebar.html.twig create mode 100644 user/plugins/admin/themes/grav/templates/partials/messages.html.twig create mode 100644 user/plugins/admin/themes/grav/templates/partials/modal-add-package.html.twig create mode 100644 user/plugins/admin/themes/grav/templates/partials/modal-changelog.html.twig create mode 100644 user/plugins/admin/themes/grav/templates/partials/modal-changes-detected.html.twig create mode 100644 user/plugins/admin/themes/grav/templates/partials/modal-reinstall-package.html.twig create mode 100644 user/plugins/admin/themes/grav/templates/partials/modal-remove-package.html.twig create mode 100644 user/plugins/admin/themes/grav/templates/partials/modal-switch-theme.html.twig create mode 100644 user/plugins/admin/themes/grav/templates/partials/modal-update-packages.html.twig create mode 100644 user/plugins/admin/themes/grav/templates/partials/nav-quick-tray.html.twig create mode 100644 user/plugins/admin/themes/grav/templates/partials/nav-toggle.html.twig create mode 100644 user/plugins/admin/themes/grav/templates/partials/nav-user-avatar.html.twig create mode 100644 user/plugins/admin/themes/grav/templates/partials/nav-user-details.html.twig create mode 100644 user/plugins/admin/themes/grav/templates/partials/nav.html.twig create mode 100644 user/plugins/admin/themes/grav/templates/partials/notification-dashboard-block.html.twig create mode 100644 user/plugins/admin/themes/grav/templates/partials/notification-feed-block.html.twig create mode 100644 user/plugins/admin/themes/grav/templates/partials/notification-plugins-block.html.twig create mode 100644 user/plugins/admin/themes/grav/templates/partials/notification-themes-block.html.twig create mode 100644 user/plugins/admin/themes/grav/templates/partials/notification-top-block.html.twig create mode 100644 user/plugins/admin/themes/grav/templates/partials/page-children.html.twig create mode 100644 user/plugins/admin/themes/grav/templates/partials/page-legend.html.twig create mode 100644 user/plugins/admin/themes/grav/templates/partials/page-move.html.twig create mode 100644 user/plugins/admin/themes/grav/templates/partials/plugin-data.html.twig create mode 100644 user/plugins/admin/themes/grav/templates/partials/plugins-details.html.twig create mode 100644 user/plugins/admin/themes/grav/templates/partials/plugins-list.html.twig create mode 100644 user/plugins/admin/themes/grav/templates/partials/register.html.twig create mode 100644 user/plugins/admin/themes/grav/templates/partials/release-toggle.html.twig create mode 100644 user/plugins/admin/themes/grav/templates/partials/spinning-wheel.html.twig create mode 100644 user/plugins/admin/themes/grav/templates/partials/stylesheets.html.twig create mode 100644 user/plugins/admin/themes/grav/templates/partials/theme.html.twig create mode 100644 user/plugins/admin/themes/grav/templates/partials/themes-details.html.twig create mode 100644 user/plugins/admin/themes/grav/templates/partials/themes-list.html.twig create mode 100644 user/plugins/admin/themes/grav/templates/partials/tools-backups-titlebar.html.twig create mode 100644 user/plugins/admin/themes/grav/templates/partials/tools-backups.html.twig create mode 100644 user/plugins/admin/themes/grav/templates/partials/tools-direct-install.html.twig create mode 100644 user/plugins/admin/themes/grav/templates/partials/tools-logs.html.twig create mode 100644 user/plugins/admin/themes/grav/templates/partials/tools-reports.html.twig create mode 100644 user/plugins/admin/themes/grav/templates/partials/tools-scheduler-titlebar.html.twig create mode 100644 user/plugins/admin/themes/grav/templates/partials/tools-scheduler.html.twig create mode 100644 user/plugins/admin/themes/grav/templates/partials/userinfo-avatar-credit.html.twig create mode 100644 user/plugins/admin/themes/grav/templates/partials/userinfo-avatar.html.twig create mode 100644 user/plugins/admin/themes/grav/templates/plugins.html.twig create mode 100644 user/plugins/admin/themes/grav/templates/plugins/admin-buttons.html.twig create mode 100644 user/plugins/admin/themes/grav/templates/preview.html.twig create mode 100644 user/plugins/admin/themes/grav/templates/register.html.twig create mode 100644 user/plugins/admin/themes/grav/templates/reports/security.html.twig create mode 100644 user/plugins/admin/themes/grav/templates/reports/yamllinter.html.twig create mode 100644 user/plugins/admin/themes/grav/templates/reset.html.twig create mode 100644 user/plugins/admin/themes/grav/templates/statistics.html.twig create mode 100644 user/plugins/admin/themes/grav/templates/themes.html.twig create mode 100644 user/plugins/admin/themes/grav/templates/tools.html.twig create mode 100644 user/plugins/admin/themes/grav/templates/unauthorized.html.twig create mode 100644 user/plugins/admin/themes/grav/templates/user.html.twig create mode 100644 user/plugins/admin/themes/grav/theme.yaml create mode 100644 user/plugins/admin/themes/grav/watch.sh create mode 100644 user/plugins/admin/themes/grav/webpack.conf.js create mode 100644 user/plugins/admin/themes/grav/yarn.lock create mode 100644 user/plugins/admin/twig/AdminTwigExtension.php create mode 100644 user/plugins/admin/vendor/autoload.php create mode 100644 user/plugins/admin/vendor/bin/picofeed create mode 100644 user/plugins/admin/vendor/bin/pscss create mode 100644 user/plugins/admin/vendor/composer/ClassLoader.php create mode 100644 user/plugins/admin/vendor/composer/InstalledVersions.php create mode 100644 user/plugins/admin/vendor/composer/LICENSE create mode 100644 user/plugins/admin/vendor/composer/autoload_classmap.php create mode 100644 user/plugins/admin/vendor/composer/autoload_files.php create mode 100644 user/plugins/admin/vendor/composer/autoload_namespaces.php create mode 100644 user/plugins/admin/vendor/composer/autoload_psr4.php create mode 100644 user/plugins/admin/vendor/composer/autoload_real.php create mode 100644 user/plugins/admin/vendor/composer/autoload_static.php create mode 100644 user/plugins/admin/vendor/composer/installed.json create mode 100644 user/plugins/admin/vendor/composer/installed.php create mode 100644 user/plugins/admin/vendor/composer/platform_check.php create mode 100644 user/plugins/admin/vendor/laminas/laminas-xml/.github/workflows/auto-close.yml create mode 100644 user/plugins/admin/vendor/laminas/laminas-xml/.github/workflows/continuous-integration.yml create mode 100644 user/plugins/admin/vendor/laminas/laminas-xml/.github/workflows/release-on-milestone-closed.yml create mode 100644 user/plugins/admin/vendor/laminas/laminas-xml/COPYRIGHT.md create mode 100644 user/plugins/admin/vendor/laminas/laminas-xml/LICENSE.md create mode 100644 user/plugins/admin/vendor/laminas/laminas-xml/README.md create mode 100644 user/plugins/admin/vendor/laminas/laminas-xml/composer.json create mode 100644 user/plugins/admin/vendor/laminas/laminas-xml/composer.lock create mode 100644 user/plugins/admin/vendor/laminas/laminas-xml/src/Exception/ExceptionInterface.php create mode 100644 user/plugins/admin/vendor/laminas/laminas-xml/src/Exception/InvalidArgumentException.php create mode 100644 user/plugins/admin/vendor/laminas/laminas-xml/src/Exception/RuntimeException.php create mode 100644 user/plugins/admin/vendor/laminas/laminas-xml/src/Security.php create mode 100644 user/plugins/admin/vendor/laminas/laminas-zendframework-bridge/.github/FUNDING.yml create mode 100644 user/plugins/admin/vendor/laminas/laminas-zendframework-bridge/.github/workflows/continuous-integration.yml create mode 100644 user/plugins/admin/vendor/laminas/laminas-zendframework-bridge/.github/workflows/release-on-milestone-closed.yml create mode 100644 user/plugins/admin/vendor/laminas/laminas-zendframework-bridge/.laminas-ci.json create mode 100644 user/plugins/admin/vendor/laminas/laminas-zendframework-bridge/COPYRIGHT.md create mode 100644 user/plugins/admin/vendor/laminas/laminas-zendframework-bridge/LICENSE.md create mode 100644 user/plugins/admin/vendor/laminas/laminas-zendframework-bridge/README.md create mode 100644 user/plugins/admin/vendor/laminas/laminas-zendframework-bridge/composer.json create mode 100644 user/plugins/admin/vendor/laminas/laminas-zendframework-bridge/composer.lock create mode 100644 user/plugins/admin/vendor/laminas/laminas-zendframework-bridge/config/replacements.php create mode 100644 user/plugins/admin/vendor/laminas/laminas-zendframework-bridge/psalm-baseline.xml create mode 100644 user/plugins/admin/vendor/laminas/laminas-zendframework-bridge/psalm.xml.dist create mode 100644 user/plugins/admin/vendor/laminas/laminas-zendframework-bridge/src/Autoloader.php create mode 100644 user/plugins/admin/vendor/laminas/laminas-zendframework-bridge/src/ConfigPostProcessor.php create mode 100644 user/plugins/admin/vendor/laminas/laminas-zendframework-bridge/src/Module.php create mode 100644 user/plugins/admin/vendor/laminas/laminas-zendframework-bridge/src/Replacements.php create mode 100644 user/plugins/admin/vendor/laminas/laminas-zendframework-bridge/src/RewriteRules.php create mode 100644 user/plugins/admin/vendor/laminas/laminas-zendframework-bridge/src/autoload.php create mode 100644 user/plugins/admin/vendor/p3k/picofeed/LICENSE create mode 100644 user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Base.php create mode 100644 user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Client/Client.php create mode 100644 user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Client/ClientException.php create mode 100644 user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Client/Curl.php create mode 100644 user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Client/ForbiddenException.php create mode 100644 user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Client/HttpHeaders.php create mode 100644 user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Client/InvalidCertificateException.php create mode 100644 user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Client/InvalidUrlException.php create mode 100644 user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Client/MaxRedirectException.php create mode 100644 user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Client/MaxSizeException.php create mode 100644 user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Client/Stream.php create mode 100644 user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Client/TimeoutException.php create mode 100644 user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Client/UnauthorizedException.php create mode 100644 user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Client/Url.php create mode 100644 user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Config/Config.php create mode 100644 user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Encoding/Encoding.php create mode 100644 user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Filter/Attribute.php create mode 100644 user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Filter/Filter.php create mode 100644 user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Filter/Html.php create mode 100644 user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Filter/Tag.php create mode 100644 user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Generator/ContentGeneratorInterface.php create mode 100644 user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Generator/FileContentGenerator.php create mode 100644 user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Generator/YoutubeContentGenerator.php create mode 100644 user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Logging/Logger.php create mode 100644 user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Parser/Atom.php create mode 100644 user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Parser/DateParser.php create mode 100644 user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Parser/Feed.php create mode 100644 user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Parser/Item.php create mode 100644 user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Parser/MalformedXmlException.php create mode 100644 user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Parser/Parser.php create mode 100644 user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Parser/ParserException.php create mode 100644 user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Parser/ParserInterface.php create mode 100644 user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Parser/Rss10.php create mode 100644 user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Parser/Rss20.php create mode 100644 user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Parser/Rss91.php create mode 100644 user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Parser/Rss92.php create mode 100644 user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Parser/XmlEntityException.php create mode 100644 user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Parser/XmlParser.php create mode 100644 user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/PicoFeedException.php create mode 100644 user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Processor/ContentFilterProcessor.php create mode 100644 user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Processor/ContentGeneratorProcessor.php create mode 100644 user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Processor/ItemPostProcessor.php create mode 100644 user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Processor/ItemProcessorInterface.php create mode 100644 user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Processor/ScraperProcessor.php create mode 100644 user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Reader/Favicon.php create mode 100644 user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Reader/Reader.php create mode 100644 user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Reader/ReaderException.php create mode 100644 user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Reader/SubscriptionNotFoundException.php create mode 100644 user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Reader/UnsupportedFeedFormatException.php create mode 100644 user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/.blog.lemonde.fr.php create mode 100644 user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/.blogs.nytimes.com.php create mode 100644 user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/.igen.fr.php create mode 100644 user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/.nytimes.com.php create mode 100644 user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/.over-blog.com.php create mode 100644 user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/.phoronix.com.php create mode 100644 user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/.slate.com.php create mode 100644 user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/.theguardian.com.php create mode 100644 user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/.wikipedia.org.php create mode 100644 user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/.wired.com.php create mode 100644 user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/.wsj.com.php create mode 100644 user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/01net.com.php create mode 100644 user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/24.hu.php create mode 100644 user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/444.hu.php create mode 100644 user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/888.hu.php create mode 100644 user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/abstrusegoose.com.php create mode 100644 user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/achgut.com.php create mode 100644 user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/adventuregamers.com.php create mode 100644 user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/alainonline.net.php create mode 100644 user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/aljazeera.com.php create mode 100644 user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/allafrica.com.php create mode 100644 user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/allgemeine-zeitung.de.php create mode 100644 user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/amazingsuperpowers.com.php create mode 100644 user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/anythingcomic.com.php create mode 100644 user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/ap.org.php create mode 100644 user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/areadvd.de.php create mode 100644 user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/arstechnica.com.php create mode 100644 user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/atv.hu.php create mode 100644 user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/awkwardzombie.com.php create mode 100644 user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/backchannel.com.php create mode 100644 user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/bangkokpost.com.php create mode 100644 user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/bauerwilli.com.php create mode 100644 user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/bgr.com.php create mode 100644 user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/bigfootjustice.com.php create mode 100644 user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/bigpicture.ru.php create mode 100644 user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/bizjournals.com.php create mode 100644 user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/biztimes.com.php create mode 100644 user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/bleepingcomputer.com.php create mode 100644 user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/blog.fefe.de.php create mode 100644 user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/blog.mapillary.com.php create mode 100644 user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/brewers.mlb.com.php create mode 100644 user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/buenosairesherald.com.php create mode 100644 user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/bunicomic.com.php create mode 100644 user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/buttersafe.com.php create mode 100644 user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/cad-comic.com.php create mode 100644 user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/chaoslife.findchaos.com.php create mode 100644 user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/chinafile.com.php create mode 100644 user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/cicero.de.php create mode 100644 user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/cliquerefresh.com.php create mode 100644 user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/cnet.com.php create mode 100644 user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/coinwelt.de.php create mode 100644 user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/consomac.fr.php create mode 100644 user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/cowbirdsinlove.com.php create mode 100644 user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/crash.net.php create mode 100644 user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/csmonitor.com.php create mode 100644 user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/dailyjs.com.php create mode 100644 user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/dailyreporter.com.php create mode 100644 user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/dailytech.com.php create mode 100644 user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/degroupnews.com.php create mode 100644 user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/derstandard.at.php create mode 100644 user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/dilbert.com.php create mode 100644 user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/discovermagazine.com.php create mode 100644 user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/distrowatch.com.php create mode 100644 user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/dozodomo.com.php create mode 100644 user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/drawingboardcomic.com.php create mode 100644 user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/e-w-e.ru.php create mode 100644 user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/economist.com.php create mode 100644 user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/encyclopedie.naheulbeuk.com.php create mode 100644 user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/endlessorigami.com.php create mode 100644 user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/engadget.com.php create mode 100644 user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/escapistmagazine.com.php create mode 100644 user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/espn.go.com.php create mode 100644 user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/exocomics.com.php create mode 100644 user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/explosm.net.php create mode 100644 user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/extrafabulouscomics.com.php create mode 100644 user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/factroom.ru.php create mode 100644 user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/fastcodesign.com.php create mode 100644 user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/fastcoexist.com.php create mode 100644 user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/fastcompany.com.php create mode 100644 user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/ffworld.com.php create mode 100644 user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/foreignpolicy.com.php create mode 100644 user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/fossbytes.com.php create mode 100644 user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/fototelegraf.ru.php create mode 100644 user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/fowllanguagecomics.com.php create mode 100644 user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/gamechannel.hu.php create mode 100644 user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/gamestar.hu.php create mode 100644 user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/geek.com.php create mode 100644 user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/geektimes.ru.php create mode 100644 user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/gerbilwithajetpack.com.php create mode 100644 user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/giantitp.com.php create mode 100644 user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/github.com.php create mode 100644 user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/gocomics.com.php create mode 100644 user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/golem.de.php create mode 100644 user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/gondola.hu.php create mode 100644 user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/gorabbit.ru.php create mode 100644 user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/habrahabr.ru.php create mode 100644 user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/happletea.com.php create mode 100644 user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/hardware.fr.php create mode 100644 user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/heise.de.php create mode 100644 user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/hirek.prim.hu.php create mode 100644 user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/hotshowlife.com.php create mode 100644 user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/huffingtonpost.com.php create mode 100644 user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/hvg.hu.php create mode 100644 user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/idokep.hu.php create mode 100644 user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/imogenquest.net.php create mode 100644 user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/index.hu.php create mode 100644 user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/indiehaven.com.php create mode 100644 user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/inforadio.hu.php create mode 100644 user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/ing.dk.php create mode 100644 user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/invisiblebread.com.php create mode 100644 user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/ir.amd.com.php create mode 100644 user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/japantimes.co.jp.php create mode 100644 user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/japantoday.com.php create mode 100644 user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/journaldugeek.com.php create mode 100644 user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/jsonline.com.php create mode 100644 user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/justcoolidea.ru.php create mode 100644 user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/kanpai.fr.php create mode 100644 user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/karriere.jobfinder.dk.php create mode 100644 user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/kisalfold.hu.php create mode 100644 user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/kiszamolo.hu.php create mode 100644 user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/kodi.tv.php create mode 100644 user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/koreaherald.com.php create mode 100644 user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/koreatimes.php create mode 100644 user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/lastplacecomics.com.php create mode 100644 user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/legorafi.fr.php create mode 100644 user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/lejapon.fr.php create mode 100644 user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/lesjoiesducode.fr.php create mode 100644 user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/lfg.co.php create mode 100644 user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/lifehacker.com.php create mode 100644 user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/lifehacker.ru.php create mode 100644 user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/linux-magazin.de.php create mode 100644 user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/linux.org.php create mode 100644 user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/linux.org.ru.php create mode 100644 user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/linuxinsider.com.php create mode 100644 user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/lists.php create mode 100644 user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/loadingartist.com.php create mode 100644 user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/loldwell.com.php create mode 100644 user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/lukesurl.com.php create mode 100644 user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/macg.co.php create mode 100644 user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/maclife.de.php create mode 100644 user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/magyarkurir.hu.php create mode 100644 user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/marc.info.php create mode 100644 user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/marriedtothesea.com.php create mode 100644 user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/marycagle.com.php create mode 100644 user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/maximumble.thebookofbiff.com.php create mode 100644 user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/medium.com.php create mode 100644 user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/mercworks.net.php create mode 100644 user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/metronieuws.nl.php create mode 100644 user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/milwaukeenns.php create mode 100644 user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/mno.hu.php create mode 100644 user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/mokepon.smackjeeves.com.php create mode 100644 user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/monandroid.com.php create mode 100644 user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/monwindows.com.php create mode 100644 user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/moya-planeta.ru.php create mode 100644 user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/mrlovenstein.com.php create mode 100644 user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/muckrock.com.php create mode 100644 user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/mynorthshorenow.com.php create mode 100644 user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/nakedCapitalism.php create mode 100644 user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/nasa.gov.php create mode 100644 user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/nat-geo.ru.php create mode 100644 user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/nationaljournal.com.php create mode 100644 user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/nature.com.php create mode 100644 user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/nba.com.php create mode 100644 user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/nedroid.com.php create mode 100644 user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/networkworld.com.php create mode 100644 user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/neustadt-ticker.de.php create mode 100644 user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/nextinpact.com.php create mode 100644 user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/niceteethcomic.com.php create mode 100644 user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/nichtlustig.de.php create mode 100644 user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/nlcafe.hu.php create mode 100644 user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/novo-argumente.com.php create mode 100644 user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/oglaf.com.php create mode 100644 user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/onhax.net.php create mode 100644 user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/onlinekosten.de.php create mode 100644 user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/onmilwaukee.php create mode 100644 user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/openculture.com.php create mode 100644 user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/opennet.ru.php create mode 100644 user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/openrightsgroup.org.php create mode 100644 user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/opensource.com.php create mode 100644 user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/optipess.com.php create mode 100644 user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/origo.hu.php create mode 100644 user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/osnews.com.php create mode 100644 user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/pastebin.com.php create mode 100644 user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/pcgameshardware.de.php create mode 100644 user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/peebleslab.com.php create mode 100644 user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/penny-arcade.com.php create mode 100644 user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/pixelbeat.org.php create mode 100644 user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/plus.google.com.php create mode 100644 user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/popstrip.com.php create mode 100644 user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/portfolio.hu.php create mode 100644 user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/pro-linux.de.php create mode 100644 user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/publicpolicyforum.org.php create mode 100644 user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/publy.ru.php create mode 100644 user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/putaindecode.fr.php create mode 100644 user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/recode.net.php create mode 100644 user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/retractionwatch.com.php create mode 100644 user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/rockpapershotgun.com.php create mode 100644 user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/rue89.nouvelobs.com.php create mode 100644 user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/rugbyrama.fr.php create mode 100644 user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/salonkolumnisten.com create mode 100644 user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/satwcomic.com.php create mode 100644 user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/science-skeptical.de.php create mode 100644 user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/scrumalliance.org.php create mode 100644 user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/securityfocus.com.php create mode 100644 user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/sentfromthemoon.com.php create mode 100644 user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/sitepoint.com.php create mode 100644 user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/slashdot.org.php create mode 100644 user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/smallhousebliss.com.php create mode 100644 user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/smarthomewelt.de.php create mode 100644 user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/smashingmagazine.com.php create mode 100644 user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/smbc-comics.com.php create mode 100644 user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/snopes.com.php create mode 100644 user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/soundandvision.com.php create mode 100644 user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/spiegel.de.php create mode 100644 user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/stereophile.com.php create mode 100644 user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/stupidfox.net.php create mode 100644 user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/subtraction.com.php create mode 100644 user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/sz.de.php create mode 100644 user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/takprosto.cc.php create mode 100644 user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/techcrunch.com.php create mode 100644 user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/the-ebook-reader.com.php create mode 100644 user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/theatlantic.com.php create mode 100644 user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/theawkwardyeti.com.php create mode 100644 user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/thecodinglove.com.php create mode 100644 user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/thedoghousediaries.com.php create mode 100644 user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/thegamercat.com.php create mode 100644 user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/thehindu.com.php create mode 100644 user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/thelocal.se.php create mode 100644 user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/themerepublic.net.php create mode 100644 user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/themoscowtimes.com.php create mode 100644 user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/thenewslens.com.php create mode 100644 user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/theodd1sout.com.php create mode 100644 user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/theonion.com.php create mode 100644 user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/theregister.co.uk.php create mode 100644 user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/thestandard.com.hk.php create mode 100644 user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/theverge.com.php create mode 100644 user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/threepanelsoul.com.php create mode 100644 user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/tichyseinblick.de.php create mode 100644 user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/timesofindia.indiatimes.com.php create mode 100644 user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/totalcar.hu.php create mode 100644 user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/tozsdeforum.hu.php create mode 100644 user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/travel-dealz.de.php create mode 100644 user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/travelo.hu.php create mode 100644 user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/treehugger.com.php create mode 100644 user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/treelobsters.com.php create mode 100644 user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/tutorialzine.com.php create mode 100644 user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/twogag.com.php create mode 100644 user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/twokinds.keenspot.com.php create mode 100644 user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/undeadly.org.php create mode 100644 user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/upi.com.php create mode 100644 user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/usatoday.com.php create mode 100644 user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/version2.dk.php create mode 100644 user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/vezess.hu.php create mode 100644 user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/vgcats.com.php create mode 100644 user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/vuxml.org.php create mode 100644 user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/wausaudailyherald.com.php create mode 100644 user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/welt.de.php create mode 100644 user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/westfalen-blatt.de.php create mode 100644 user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/www.bbc.co.uk.php create mode 100644 user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/www.bdgest.com.php create mode 100644 user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/www.bgr.in.php create mode 100644 user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/www.businessweek.com.php create mode 100644 user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/www.cnn.com.php create mode 100644 user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/www.developpez.com.php create mode 100644 user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/www.egscomics.com.php create mode 100644 user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/www.fakingnews.firstpost.com.php create mode 100644 user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/www.forbes.com.php create mode 100644 user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/www.franceculture.fr.php create mode 100644 user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/www.futura-sciences.com.php create mode 100644 user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/www.geekculture.com.php create mode 100644 user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/www.howtogeek.com.php create mode 100644 user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/www.lepoint.fr.php create mode 100644 user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/www.lesnumeriques.com.php create mode 100644 user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/www.mac4ever.com.php create mode 100644 user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/www.makeuseof.com.php create mode 100644 user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/www.monsieur-le-chien.fr.php create mode 100644 user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/www.npr.org.php create mode 100644 user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/www.numerama.com.php create mode 100644 user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/www.oneindia.com.php create mode 100644 user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/www.pseudo-sciences.org.php create mode 100644 user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/www.sciencemag.org.php create mode 100644 user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/www.slate.fr.php create mode 100644 user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/www.universfreebox.com.php create mode 100644 user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/www.zeit.de.php create mode 100644 user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/xkcd.com.php create mode 100644 user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/ymatuhin.ru.php create mode 100644 user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/zarojel.hu.php create mode 100644 user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/zdnet.com.php create mode 100644 user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/zoom.hu.php create mode 100644 user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Scraper/CandidateParser.php create mode 100644 user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Scraper/ParserInterface.php create mode 100644 user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Scraper/RuleLoader.php create mode 100644 user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Scraper/RuleParser.php create mode 100644 user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Scraper/Scraper.php create mode 100644 user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Serialization/Subscription.php create mode 100644 user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Serialization/SubscriptionList.php create mode 100644 user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Serialization/SubscriptionListBuilder.php create mode 100644 user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Serialization/SubscriptionListParser.php create mode 100644 user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Serialization/SubscriptionParser.php create mode 100644 user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Syndication/AtomFeedBuilder.php create mode 100644 user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Syndication/AtomHelper.php create mode 100644 user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Syndication/AtomItemBuilder.php create mode 100644 user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Syndication/FeedBuilder.php create mode 100644 user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Syndication/ItemBuilder.php create mode 100644 user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Syndication/Rss20FeedBuilder.php create mode 100644 user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Syndication/Rss20Helper.php create mode 100644 user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Syndication/Rss20ItemBuilder.php create mode 100644 user/plugins/admin/vendor/p3k/picofeed/picofeed create mode 100644 user/plugins/admin/vendor/scssphp/scssphp/LICENSE.md create mode 100644 user/plugins/admin/vendor/scssphp/scssphp/README.md create mode 100644 user/plugins/admin/vendor/scssphp/scssphp/bin/pscss create mode 100644 user/plugins/admin/vendor/scssphp/scssphp/composer.json create mode 100644 user/plugins/admin/vendor/scssphp/scssphp/phpcs.xml.dist create mode 100644 user/plugins/admin/vendor/scssphp/scssphp/scss.inc.php create mode 100644 user/plugins/admin/vendor/scssphp/scssphp/src/Base/Range.php create mode 100644 user/plugins/admin/vendor/scssphp/scssphp/src/Block.php create mode 100644 user/plugins/admin/vendor/scssphp/scssphp/src/Block/AtRootBlock.php create mode 100644 user/plugins/admin/vendor/scssphp/scssphp/src/Block/CallableBlock.php create mode 100644 user/plugins/admin/vendor/scssphp/scssphp/src/Block/ContentBlock.php create mode 100644 user/plugins/admin/vendor/scssphp/scssphp/src/Block/DirectiveBlock.php create mode 100644 user/plugins/admin/vendor/scssphp/scssphp/src/Block/EachBlock.php create mode 100644 user/plugins/admin/vendor/scssphp/scssphp/src/Block/ElseBlock.php create mode 100644 user/plugins/admin/vendor/scssphp/scssphp/src/Block/ElseifBlock.php create mode 100644 user/plugins/admin/vendor/scssphp/scssphp/src/Block/ForBlock.php create mode 100644 user/plugins/admin/vendor/scssphp/scssphp/src/Block/IfBlock.php create mode 100644 user/plugins/admin/vendor/scssphp/scssphp/src/Block/MediaBlock.php create mode 100644 user/plugins/admin/vendor/scssphp/scssphp/src/Block/NestedPropertyBlock.php create mode 100644 user/plugins/admin/vendor/scssphp/scssphp/src/Block/WhileBlock.php create mode 100644 user/plugins/admin/vendor/scssphp/scssphp/src/Cache.php create mode 100644 user/plugins/admin/vendor/scssphp/scssphp/src/Colors.php create mode 100644 user/plugins/admin/vendor/scssphp/scssphp/src/CompilationResult.php create mode 100644 user/plugins/admin/vendor/scssphp/scssphp/src/Compiler.php create mode 100644 user/plugins/admin/vendor/scssphp/scssphp/src/Compiler/CachedResult.php create mode 100644 user/plugins/admin/vendor/scssphp/scssphp/src/Compiler/Environment.php create mode 100644 user/plugins/admin/vendor/scssphp/scssphp/src/Exception/CompilerException.php create mode 100644 user/plugins/admin/vendor/scssphp/scssphp/src/Exception/ParserException.php create mode 100644 user/plugins/admin/vendor/scssphp/scssphp/src/Exception/RangeException.php create mode 100644 user/plugins/admin/vendor/scssphp/scssphp/src/Exception/SassException.php create mode 100644 user/plugins/admin/vendor/scssphp/scssphp/src/Exception/SassScriptException.php create mode 100644 user/plugins/admin/vendor/scssphp/scssphp/src/Exception/ServerException.php create mode 100644 user/plugins/admin/vendor/scssphp/scssphp/src/Formatter.php create mode 100644 user/plugins/admin/vendor/scssphp/scssphp/src/Formatter/Compact.php create mode 100644 user/plugins/admin/vendor/scssphp/scssphp/src/Formatter/Compressed.php create mode 100644 user/plugins/admin/vendor/scssphp/scssphp/src/Formatter/Crunched.php create mode 100644 user/plugins/admin/vendor/scssphp/scssphp/src/Formatter/Debug.php create mode 100644 user/plugins/admin/vendor/scssphp/scssphp/src/Formatter/Expanded.php create mode 100644 user/plugins/admin/vendor/scssphp/scssphp/src/Formatter/Nested.php create mode 100644 user/plugins/admin/vendor/scssphp/scssphp/src/Formatter/OutputBlock.php create mode 100644 user/plugins/admin/vendor/scssphp/scssphp/src/Logger/LoggerInterface.php create mode 100644 user/plugins/admin/vendor/scssphp/scssphp/src/Logger/QuietLogger.php create mode 100644 user/plugins/admin/vendor/scssphp/scssphp/src/Logger/StreamLogger.php create mode 100644 user/plugins/admin/vendor/scssphp/scssphp/src/Node.php create mode 100644 user/plugins/admin/vendor/scssphp/scssphp/src/Node/Number.php create mode 100644 user/plugins/admin/vendor/scssphp/scssphp/src/OutputStyle.php create mode 100644 user/plugins/admin/vendor/scssphp/scssphp/src/Parser.php create mode 100644 user/plugins/admin/vendor/scssphp/scssphp/src/SourceMap/Base64.php create mode 100644 user/plugins/admin/vendor/scssphp/scssphp/src/SourceMap/Base64VLQ.php create mode 100644 user/plugins/admin/vendor/scssphp/scssphp/src/SourceMap/SourceMapGenerator.php create mode 100644 user/plugins/admin/vendor/scssphp/scssphp/src/Type.php create mode 100644 user/plugins/admin/vendor/scssphp/scssphp/src/Util.php create mode 100644 user/plugins/admin/vendor/scssphp/scssphp/src/Util/Path.php create mode 100644 user/plugins/admin/vendor/scssphp/scssphp/src/ValueConverter.php create mode 100644 user/plugins/admin/vendor/scssphp/scssphp/src/Version.php create mode 100644 user/plugins/admin/vendor/scssphp/scssphp/src/Warn.php create mode 100644 user/plugins/comments/.gitignore create mode 100644 user/plugins/comments/CHANGELOG.md create mode 100644 user/plugins/comments/README.md create mode 100644 user/plugins/comments/admin/pages/comments.md create mode 100644 user/plugins/comments/admin/templates/comments.html.twig create mode 100644 user/plugins/comments/blueprints.yaml create mode 100644 user/plugins/comments/comments.php create mode 100644 user/plugins/comments/comments.yaml create mode 100644 user/plugins/comments/languages.yaml create mode 100644 user/plugins/comments/templates/partials/comments.html.twig create mode 100644 user/plugins/devtools/CHANGELOG.md create mode 100644 user/plugins/devtools/LICENSE create mode 100644 user/plugins/devtools/README.md create mode 100644 user/plugins/devtools/blueprints.yaml create mode 100644 user/plugins/devtools/classes/DevToolsCommand.php create mode 100644 user/plugins/devtools/cli/NewBlueprintCommand.php create mode 100644 user/plugins/devtools/cli/NewPluginCommand.php create mode 100644 user/plugins/devtools/cli/NewThemeCommand.php create mode 100644 user/plugins/devtools/components/blueprint/append/blueprint.yaml.twig create mode 100644 user/plugins/devtools/components/blueprint/newtab/blueprint.yaml.twig create mode 100644 user/plugins/devtools/components/plugin/blank/CHANGELOG.md.twig create mode 100644 user/plugins/devtools/components/plugin/blank/LICENSE.twig create mode 100644 user/plugins/devtools/components/plugin/blank/README.md.twig create mode 100644 user/plugins/devtools/components/plugin/blank/blueprints.yaml.twig create mode 100644 user/plugins/devtools/components/plugin/blank/classes/.gitkeep create mode 100644 user/plugins/devtools/components/plugin/blank/composer.json.twig create mode 100644 user/plugins/devtools/components/plugin/blank/languages.yaml.twig create mode 100644 user/plugins/devtools/components/plugin/blank/plugin.php.twig create mode 100644 user/plugins/devtools/components/plugin/blank/plugin.yaml.twig create mode 100644 user/plugins/devtools/components/theme/inheritance/CHANGELOG.md.twig create mode 100644 user/plugins/devtools/components/theme/inheritance/LICENSE.twig create mode 100644 user/plugins/devtools/components/theme/inheritance/README.md.twig create mode 100644 user/plugins/devtools/components/theme/inheritance/blueprints.yaml.twig create mode 100644 user/plugins/devtools/components/theme/inheritance/css/.gitkeep create mode 100644 user/plugins/devtools/components/theme/inheritance/js/.gitkeep create mode 100644 user/plugins/devtools/components/theme/inheritance/screenshot.jpg create mode 100644 user/plugins/devtools/components/theme/inheritance/templates/.gitkeep create mode 100644 user/plugins/devtools/components/theme/inheritance/theme.php.twig create mode 100644 user/plugins/devtools/components/theme/inheritance/theme.yaml.twig create mode 100644 user/plugins/devtools/components/theme/inheritance/thumbnail.jpg create mode 100644 user/plugins/devtools/components/theme/pure-blank/CHANGELOG.md.twig create mode 100644 user/plugins/devtools/components/theme/pure-blank/LICENSE.twig create mode 100644 user/plugins/devtools/components/theme/pure-blank/README.md.twig create mode 100644 user/plugins/devtools/components/theme/pure-blank/blueprints.yaml.twig create mode 100644 user/plugins/devtools/components/theme/pure-blank/css/custom.css create mode 100644 user/plugins/devtools/components/theme/pure-blank/fonts/.gitkeep create mode 100644 user/plugins/devtools/components/theme/pure-blank/images/logo.png create mode 100644 user/plugins/devtools/components/theme/pure-blank/js/.gitkeep create mode 100644 user/plugins/devtools/components/theme/pure-blank/screenshot.jpg create mode 100644 user/plugins/devtools/components/theme/pure-blank/templates/default.html.twig create mode 100644 user/plugins/devtools/components/theme/pure-blank/templates/error.html.twig create mode 100644 user/plugins/devtools/components/theme/pure-blank/templates/partials/base.html.twig create mode 100644 user/plugins/devtools/components/theme/pure-blank/templates/partials/navigation.html.twig create mode 100644 user/plugins/devtools/components/theme/pure-blank/theme.php.twig create mode 100644 user/plugins/devtools/components/theme/pure-blank/theme.yaml.twig create mode 100644 user/plugins/devtools/components/theme/pure-blank/thumbnail.jpg create mode 100644 user/plugins/devtools/components/theme/tailwind/CHANGELOG.md.twig create mode 100644 user/plugins/devtools/components/theme/tailwind/LICENSE.twig create mode 100644 user/plugins/devtools/components/theme/tailwind/README.md.twig create mode 100644 user/plugins/devtools/components/theme/tailwind/blueprints.yaml.twig create mode 100644 user/plugins/devtools/components/theme/tailwind/css/site.css create mode 100644 user/plugins/devtools/components/theme/tailwind/fonts/.gitkeep create mode 100644 user/plugins/devtools/components/theme/tailwind/images/logo.png create mode 100644 user/plugins/devtools/components/theme/tailwind/js/.gitkeep create mode 100644 user/plugins/devtools/components/theme/tailwind/languages/en.yaml.twig create mode 100644 user/plugins/devtools/components/theme/tailwind/package.json.twig create mode 100644 user/plugins/devtools/components/theme/tailwind/postcss.config.js create mode 100644 user/plugins/devtools/components/theme/tailwind/screenshot.jpg create mode 100644 user/plugins/devtools/components/theme/tailwind/tailwind.config.js.twig create mode 100644 user/plugins/devtools/components/theme/tailwind/templates/default.html.twig create mode 100644 user/plugins/devtools/components/theme/tailwind/templates/error.html.twig create mode 100644 user/plugins/devtools/components/theme/tailwind/templates/partials/base.html.twig create mode 100644 user/plugins/devtools/components/theme/tailwind/templates/partials/navigation.html.twig create mode 100644 user/plugins/devtools/components/theme/tailwind/theme.php.twig create mode 100644 user/plugins/devtools/components/theme/tailwind/theme.yaml.twig create mode 100644 user/plugins/devtools/components/theme/tailwind/thumbnail.jpg create mode 100644 user/plugins/devtools/devtools.php create mode 100644 user/plugins/devtools/devtools.yaml create mode 100644 user/plugins/devtools/languages.yaml create mode 100644 user/plugins/email/CHANGELOG.md create mode 100644 user/plugins/email/LICENSE create mode 100644 user/plugins/email/README.md create mode 100644 user/plugins/email/blueprints.yaml create mode 100644 user/plugins/email/classes/Email.php create mode 100644 user/plugins/email/classes/Utils.php create mode 100644 user/plugins/email/cli/ClearQueueFailuresCommand.php create mode 100644 user/plugins/email/cli/FlushQueueCommand.php create mode 100644 user/plugins/email/cli/TestEmailCommand.php create mode 100644 user/plugins/email/composer.json create mode 100644 user/plugins/email/composer.lock create mode 100644 user/plugins/email/email.php create mode 100644 user/plugins/email/email.yaml create mode 100644 user/plugins/email/hebe.json create mode 100644 user/plugins/email/languages.yaml create mode 100644 user/plugins/email/templates/email/base.html.twig create mode 100644 user/plugins/email/vendor/autoload.php create mode 100644 user/plugins/email/vendor/composer/ClassLoader.php create mode 100644 user/plugins/email/vendor/composer/InstalledVersions.php create mode 100644 user/plugins/email/vendor/composer/LICENSE create mode 100644 user/plugins/email/vendor/composer/autoload_classmap.php create mode 100644 user/plugins/email/vendor/composer/autoload_files.php create mode 100644 user/plugins/email/vendor/composer/autoload_namespaces.php create mode 100644 user/plugins/email/vendor/composer/autoload_psr4.php create mode 100644 user/plugins/email/vendor/composer/autoload_real.php create mode 100644 user/plugins/email/vendor/composer/autoload_static.php create mode 100644 user/plugins/email/vendor/composer/installed.json create mode 100644 user/plugins/email/vendor/composer/installed.php create mode 100644 user/plugins/email/vendor/composer/platform_check.php create mode 100644 user/plugins/email/vendor/doctrine/lexer/LICENSE create mode 100644 user/plugins/email/vendor/doctrine/lexer/README.md create mode 100644 user/plugins/email/vendor/doctrine/lexer/composer.json create mode 100644 user/plugins/email/vendor/doctrine/lexer/lib/Doctrine/Common/Lexer/AbstractLexer.php create mode 100644 user/plugins/email/vendor/doctrine/lexer/psalm.xml create mode 100644 user/plugins/email/vendor/egulias/email-validator/CHANGELOG.md create mode 100644 user/plugins/email/vendor/egulias/email-validator/CONTRIBUTING.md create mode 100644 user/plugins/email/vendor/egulias/email-validator/LICENSE create mode 100644 user/plugins/email/vendor/egulias/email-validator/composer.json create mode 100644 user/plugins/email/vendor/egulias/email-validator/composer.lock create mode 100644 user/plugins/email/vendor/egulias/email-validator/src/EmailLexer.php create mode 100644 user/plugins/email/vendor/egulias/email-validator/src/EmailParser.php create mode 100644 user/plugins/email/vendor/egulias/email-validator/src/EmailValidator.php create mode 100644 user/plugins/email/vendor/egulias/email-validator/src/MessageIDParser.php create mode 100644 user/plugins/email/vendor/egulias/email-validator/src/Parser.php create mode 100644 user/plugins/email/vendor/egulias/email-validator/src/Parser/Comment.php create mode 100644 user/plugins/email/vendor/egulias/email-validator/src/Parser/CommentStrategy/CommentStrategy.php create mode 100644 user/plugins/email/vendor/egulias/email-validator/src/Parser/CommentStrategy/DomainComment.php create mode 100644 user/plugins/email/vendor/egulias/email-validator/src/Parser/CommentStrategy/LocalComment.php create mode 100644 user/plugins/email/vendor/egulias/email-validator/src/Parser/DomainLiteral.php create mode 100644 user/plugins/email/vendor/egulias/email-validator/src/Parser/DomainPart.php create mode 100644 user/plugins/email/vendor/egulias/email-validator/src/Parser/DoubleQuote.php create mode 100644 user/plugins/email/vendor/egulias/email-validator/src/Parser/FoldingWhiteSpace.php create mode 100644 user/plugins/email/vendor/egulias/email-validator/src/Parser/IDLeftPart.php create mode 100644 user/plugins/email/vendor/egulias/email-validator/src/Parser/IDRightPart.php create mode 100644 user/plugins/email/vendor/egulias/email-validator/src/Parser/LocalPart.php create mode 100644 user/plugins/email/vendor/egulias/email-validator/src/Parser/PartParser.php create mode 100644 user/plugins/email/vendor/egulias/email-validator/src/Result/InvalidEmail.php create mode 100644 user/plugins/email/vendor/egulias/email-validator/src/Result/MultipleErrors.php create mode 100644 user/plugins/email/vendor/egulias/email-validator/src/Result/Reason/AtextAfterCFWS.php create mode 100644 user/plugins/email/vendor/egulias/email-validator/src/Result/Reason/CRLFAtTheEnd.php create mode 100644 user/plugins/email/vendor/egulias/email-validator/src/Result/Reason/CRLFX2.php create mode 100644 user/plugins/email/vendor/egulias/email-validator/src/Result/Reason/CRNoLF.php create mode 100644 user/plugins/email/vendor/egulias/email-validator/src/Result/Reason/CharNotAllowed.php create mode 100644 user/plugins/email/vendor/egulias/email-validator/src/Result/Reason/CommaInDomain.php create mode 100644 user/plugins/email/vendor/egulias/email-validator/src/Result/Reason/CommentsInIDRight.php create mode 100644 user/plugins/email/vendor/egulias/email-validator/src/Result/Reason/ConsecutiveAt.php create mode 100644 user/plugins/email/vendor/egulias/email-validator/src/Result/Reason/ConsecutiveDot.php create mode 100644 user/plugins/email/vendor/egulias/email-validator/src/Result/Reason/DetailedReason.php create mode 100644 user/plugins/email/vendor/egulias/email-validator/src/Result/Reason/DomainAcceptsNoMail.php create mode 100644 user/plugins/email/vendor/egulias/email-validator/src/Result/Reason/DomainHyphened.php create mode 100644 user/plugins/email/vendor/egulias/email-validator/src/Result/Reason/DomainTooLong.php create mode 100644 user/plugins/email/vendor/egulias/email-validator/src/Result/Reason/DotAtEnd.php create mode 100644 user/plugins/email/vendor/egulias/email-validator/src/Result/Reason/DotAtStart.php create mode 100644 user/plugins/email/vendor/egulias/email-validator/src/Result/Reason/EmptyReason.php create mode 100644 user/plugins/email/vendor/egulias/email-validator/src/Result/Reason/ExceptionFound.php create mode 100644 user/plugins/email/vendor/egulias/email-validator/src/Result/Reason/ExpectingATEXT.php create mode 100644 user/plugins/email/vendor/egulias/email-validator/src/Result/Reason/ExpectingCTEXT.php create mode 100644 user/plugins/email/vendor/egulias/email-validator/src/Result/Reason/ExpectingDTEXT.php create mode 100644 user/plugins/email/vendor/egulias/email-validator/src/Result/Reason/ExpectingDomainLiteralClose.php create mode 100644 user/plugins/email/vendor/egulias/email-validator/src/Result/Reason/LabelTooLong.php create mode 100644 user/plugins/email/vendor/egulias/email-validator/src/Result/Reason/LocalOrReservedDomain.php create mode 100644 user/plugins/email/vendor/egulias/email-validator/src/Result/Reason/NoDNSRecord.php create mode 100644 user/plugins/email/vendor/egulias/email-validator/src/Result/Reason/NoDomainPart.php create mode 100644 user/plugins/email/vendor/egulias/email-validator/src/Result/Reason/NoLocalPart.php create mode 100644 user/plugins/email/vendor/egulias/email-validator/src/Result/Reason/RFCWarnings.php create mode 100644 user/plugins/email/vendor/egulias/email-validator/src/Result/Reason/Reason.php create mode 100644 user/plugins/email/vendor/egulias/email-validator/src/Result/Reason/SpoofEmail.php create mode 100644 user/plugins/email/vendor/egulias/email-validator/src/Result/Reason/UnOpenedComment.php create mode 100644 user/plugins/email/vendor/egulias/email-validator/src/Result/Reason/UnableToGetDNSRecord.php create mode 100644 user/plugins/email/vendor/egulias/email-validator/src/Result/Reason/UnclosedComment.php create mode 100644 user/plugins/email/vendor/egulias/email-validator/src/Result/Reason/UnclosedQuotedString.php create mode 100644 user/plugins/email/vendor/egulias/email-validator/src/Result/Reason/UnusualElements.php create mode 100644 user/plugins/email/vendor/egulias/email-validator/src/Result/Result.php create mode 100644 user/plugins/email/vendor/egulias/email-validator/src/Result/SpoofEmail.php create mode 100644 user/plugins/email/vendor/egulias/email-validator/src/Result/ValidEmail.php create mode 100644 user/plugins/email/vendor/egulias/email-validator/src/Validation/DNSCheckValidation.php create mode 100644 user/plugins/email/vendor/egulias/email-validator/src/Validation/EmailValidation.php create mode 100644 user/plugins/email/vendor/egulias/email-validator/src/Validation/Exception/EmptyValidationList.php create mode 100644 user/plugins/email/vendor/egulias/email-validator/src/Validation/Extra/SpoofCheckValidation.php create mode 100644 user/plugins/email/vendor/egulias/email-validator/src/Validation/MessageIDValidation.php create mode 100644 user/plugins/email/vendor/egulias/email-validator/src/Validation/MultipleValidationWithAnd.php create mode 100644 user/plugins/email/vendor/egulias/email-validator/src/Validation/NoRFCWarningsValidation.php create mode 100644 user/plugins/email/vendor/egulias/email-validator/src/Validation/RFCValidation.php create mode 100644 user/plugins/email/vendor/egulias/email-validator/src/Warning/AddressLiteral.php create mode 100644 user/plugins/email/vendor/egulias/email-validator/src/Warning/CFWSNearAt.php create mode 100644 user/plugins/email/vendor/egulias/email-validator/src/Warning/CFWSWithFWS.php create mode 100644 user/plugins/email/vendor/egulias/email-validator/src/Warning/Comment.php create mode 100644 user/plugins/email/vendor/egulias/email-validator/src/Warning/DeprecatedComment.php create mode 100644 user/plugins/email/vendor/egulias/email-validator/src/Warning/DomainLiteral.php create mode 100644 user/plugins/email/vendor/egulias/email-validator/src/Warning/EmailTooLong.php create mode 100644 user/plugins/email/vendor/egulias/email-validator/src/Warning/IPV6BadChar.php create mode 100644 user/plugins/email/vendor/egulias/email-validator/src/Warning/IPV6ColonEnd.php create mode 100644 user/plugins/email/vendor/egulias/email-validator/src/Warning/IPV6ColonStart.php create mode 100644 user/plugins/email/vendor/egulias/email-validator/src/Warning/IPV6Deprecated.php create mode 100644 user/plugins/email/vendor/egulias/email-validator/src/Warning/IPV6DoubleColon.php create mode 100644 user/plugins/email/vendor/egulias/email-validator/src/Warning/IPV6GroupCount.php create mode 100644 user/plugins/email/vendor/egulias/email-validator/src/Warning/IPV6MaxGroups.php create mode 100644 user/plugins/email/vendor/egulias/email-validator/src/Warning/LocalTooLong.php create mode 100644 user/plugins/email/vendor/egulias/email-validator/src/Warning/NoDNSMXRecord.php create mode 100644 user/plugins/email/vendor/egulias/email-validator/src/Warning/ObsoleteDTEXT.php create mode 100644 user/plugins/email/vendor/egulias/email-validator/src/Warning/QuotedPart.php create mode 100644 user/plugins/email/vendor/egulias/email-validator/src/Warning/QuotedString.php create mode 100644 user/plugins/email/vendor/egulias/email-validator/src/Warning/TLD.php create mode 100644 user/plugins/email/vendor/egulias/email-validator/src/Warning/Warning.php create mode 100644 user/plugins/email/vendor/swiftmailer/swiftmailer/.gitattributes create mode 100644 user/plugins/email/vendor/swiftmailer/swiftmailer/.github/ISSUE_TEMPLATE.md create mode 100644 user/plugins/email/vendor/swiftmailer/swiftmailer/.github/PULL_REQUEST_TEMPLATE.md create mode 100644 user/plugins/email/vendor/swiftmailer/swiftmailer/.github/workflows/tests.yml create mode 100644 user/plugins/email/vendor/swiftmailer/swiftmailer/.gitignore create mode 100644 user/plugins/email/vendor/swiftmailer/swiftmailer/.php_cs.dist create mode 100644 user/plugins/email/vendor/swiftmailer/swiftmailer/CHANGES create mode 100644 user/plugins/email/vendor/swiftmailer/swiftmailer/LICENSE create mode 100644 user/plugins/email/vendor/swiftmailer/swiftmailer/README.md create mode 100644 user/plugins/email/vendor/swiftmailer/swiftmailer/composer.json create mode 100644 user/plugins/email/vendor/swiftmailer/swiftmailer/doc/headers.rst create mode 100644 user/plugins/email/vendor/swiftmailer/swiftmailer/doc/index.rst create mode 100644 user/plugins/email/vendor/swiftmailer/swiftmailer/doc/introduction.rst create mode 100644 user/plugins/email/vendor/swiftmailer/swiftmailer/doc/japanese.rst create mode 100644 user/plugins/email/vendor/swiftmailer/swiftmailer/doc/messages.rst create mode 100644 user/plugins/email/vendor/swiftmailer/swiftmailer/doc/plugins.rst create mode 100644 user/plugins/email/vendor/swiftmailer/swiftmailer/doc/sending.rst create mode 100644 user/plugins/email/vendor/swiftmailer/swiftmailer/lib/classes/Swift.php create mode 100644 user/plugins/email/vendor/swiftmailer/swiftmailer/lib/classes/Swift/AddressEncoder.php create mode 100644 user/plugins/email/vendor/swiftmailer/swiftmailer/lib/classes/Swift/AddressEncoder/IdnAddressEncoder.php create mode 100644 user/plugins/email/vendor/swiftmailer/swiftmailer/lib/classes/Swift/AddressEncoder/Utf8AddressEncoder.php create mode 100644 user/plugins/email/vendor/swiftmailer/swiftmailer/lib/classes/Swift/AddressEncoderException.php create mode 100644 user/plugins/email/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Attachment.php create mode 100644 user/plugins/email/vendor/swiftmailer/swiftmailer/lib/classes/Swift/ByteStream/AbstractFilterableInputStream.php create mode 100644 user/plugins/email/vendor/swiftmailer/swiftmailer/lib/classes/Swift/ByteStream/ArrayByteStream.php create mode 100644 user/plugins/email/vendor/swiftmailer/swiftmailer/lib/classes/Swift/ByteStream/FileByteStream.php create mode 100644 user/plugins/email/vendor/swiftmailer/swiftmailer/lib/classes/Swift/ByteStream/TemporaryFileByteStream.php create mode 100644 user/plugins/email/vendor/swiftmailer/swiftmailer/lib/classes/Swift/CharacterReader.php create mode 100644 user/plugins/email/vendor/swiftmailer/swiftmailer/lib/classes/Swift/CharacterReader/GenericFixedWidthReader.php create mode 100644 user/plugins/email/vendor/swiftmailer/swiftmailer/lib/classes/Swift/CharacterReader/UsAsciiReader.php create mode 100644 user/plugins/email/vendor/swiftmailer/swiftmailer/lib/classes/Swift/CharacterReader/Utf8Reader.php create mode 100644 user/plugins/email/vendor/swiftmailer/swiftmailer/lib/classes/Swift/CharacterReaderFactory.php create mode 100644 user/plugins/email/vendor/swiftmailer/swiftmailer/lib/classes/Swift/CharacterReaderFactory/SimpleCharacterReaderFactory.php create mode 100644 user/plugins/email/vendor/swiftmailer/swiftmailer/lib/classes/Swift/CharacterStream.php create mode 100644 user/plugins/email/vendor/swiftmailer/swiftmailer/lib/classes/Swift/CharacterStream/ArrayCharacterStream.php create mode 100644 user/plugins/email/vendor/swiftmailer/swiftmailer/lib/classes/Swift/CharacterStream/NgCharacterStream.php create mode 100644 user/plugins/email/vendor/swiftmailer/swiftmailer/lib/classes/Swift/ConfigurableSpool.php create mode 100644 user/plugins/email/vendor/swiftmailer/swiftmailer/lib/classes/Swift/DependencyContainer.php create mode 100644 user/plugins/email/vendor/swiftmailer/swiftmailer/lib/classes/Swift/DependencyException.php create mode 100644 user/plugins/email/vendor/swiftmailer/swiftmailer/lib/classes/Swift/EmbeddedFile.php create mode 100644 user/plugins/email/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Encoder.php create mode 100644 user/plugins/email/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Encoder/Base64Encoder.php create mode 100644 user/plugins/email/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Encoder/QpEncoder.php create mode 100644 user/plugins/email/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Encoder/Rfc2231Encoder.php create mode 100644 user/plugins/email/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Events/CommandEvent.php create mode 100644 user/plugins/email/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Events/CommandListener.php create mode 100644 user/plugins/email/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Events/Event.php create mode 100644 user/plugins/email/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Events/EventDispatcher.php create mode 100644 user/plugins/email/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Events/EventListener.php create mode 100644 user/plugins/email/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Events/EventObject.php create mode 100644 user/plugins/email/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Events/ResponseEvent.php create mode 100644 user/plugins/email/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Events/ResponseListener.php create mode 100644 user/plugins/email/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Events/SendEvent.php create mode 100644 user/plugins/email/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Events/SendListener.php create mode 100644 user/plugins/email/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Events/SimpleEventDispatcher.php create mode 100644 user/plugins/email/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Events/TransportChangeEvent.php create mode 100644 user/plugins/email/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Events/TransportChangeListener.php create mode 100644 user/plugins/email/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Events/TransportExceptionEvent.php create mode 100644 user/plugins/email/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Events/TransportExceptionListener.php create mode 100644 user/plugins/email/vendor/swiftmailer/swiftmailer/lib/classes/Swift/FailoverTransport.php create mode 100644 user/plugins/email/vendor/swiftmailer/swiftmailer/lib/classes/Swift/FileSpool.php create mode 100644 user/plugins/email/vendor/swiftmailer/swiftmailer/lib/classes/Swift/FileStream.php create mode 100644 user/plugins/email/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Filterable.php create mode 100644 user/plugins/email/vendor/swiftmailer/swiftmailer/lib/classes/Swift/IdGenerator.php create mode 100644 user/plugins/email/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Image.php create mode 100644 user/plugins/email/vendor/swiftmailer/swiftmailer/lib/classes/Swift/InputByteStream.php create mode 100644 user/plugins/email/vendor/swiftmailer/swiftmailer/lib/classes/Swift/IoException.php create mode 100644 user/plugins/email/vendor/swiftmailer/swiftmailer/lib/classes/Swift/KeyCache.php create mode 100644 user/plugins/email/vendor/swiftmailer/swiftmailer/lib/classes/Swift/KeyCache/ArrayKeyCache.php create mode 100644 user/plugins/email/vendor/swiftmailer/swiftmailer/lib/classes/Swift/KeyCache/DiskKeyCache.php create mode 100644 user/plugins/email/vendor/swiftmailer/swiftmailer/lib/classes/Swift/KeyCache/KeyCacheInputStream.php create mode 100644 user/plugins/email/vendor/swiftmailer/swiftmailer/lib/classes/Swift/KeyCache/NullKeyCache.php create mode 100644 user/plugins/email/vendor/swiftmailer/swiftmailer/lib/classes/Swift/KeyCache/SimpleKeyCacheInputStream.php create mode 100644 user/plugins/email/vendor/swiftmailer/swiftmailer/lib/classes/Swift/LoadBalancedTransport.php create mode 100644 user/plugins/email/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Mailer.php create mode 100644 user/plugins/email/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Mailer/ArrayRecipientIterator.php create mode 100644 user/plugins/email/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Mailer/RecipientIterator.php create mode 100644 user/plugins/email/vendor/swiftmailer/swiftmailer/lib/classes/Swift/MemorySpool.php create mode 100644 user/plugins/email/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Message.php create mode 100644 user/plugins/email/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Mime/Attachment.php create mode 100644 user/plugins/email/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Mime/CharsetObserver.php create mode 100644 user/plugins/email/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Mime/ContentEncoder.php create mode 100644 user/plugins/email/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Mime/ContentEncoder/Base64ContentEncoder.php create mode 100644 user/plugins/email/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Mime/ContentEncoder/NativeQpContentEncoder.php create mode 100644 user/plugins/email/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Mime/ContentEncoder/NullContentEncoder.php create mode 100644 user/plugins/email/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Mime/ContentEncoder/PlainContentEncoder.php create mode 100644 user/plugins/email/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Mime/ContentEncoder/QpContentEncoder.php create mode 100644 user/plugins/email/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Mime/ContentEncoder/QpContentEncoderProxy.php create mode 100644 user/plugins/email/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Mime/ContentEncoder/RawContentEncoder.php create mode 100644 user/plugins/email/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Mime/EmbeddedFile.php create mode 100644 user/plugins/email/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Mime/EncodingObserver.php create mode 100644 user/plugins/email/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Mime/Header.php create mode 100644 user/plugins/email/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Mime/HeaderEncoder.php create mode 100644 user/plugins/email/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Mime/HeaderEncoder/Base64HeaderEncoder.php create mode 100644 user/plugins/email/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Mime/HeaderEncoder/QpHeaderEncoder.php create mode 100644 user/plugins/email/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Mime/Headers/AbstractHeader.php create mode 100644 user/plugins/email/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Mime/Headers/DateHeader.php create mode 100644 user/plugins/email/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Mime/Headers/IdentificationHeader.php create mode 100644 user/plugins/email/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Mime/Headers/MailboxHeader.php create mode 100644 user/plugins/email/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Mime/Headers/OpenDKIMHeader.php create mode 100644 user/plugins/email/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Mime/Headers/ParameterizedHeader.php create mode 100644 user/plugins/email/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Mime/Headers/PathHeader.php create mode 100644 user/plugins/email/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Mime/Headers/UnstructuredHeader.php create mode 100644 user/plugins/email/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Mime/IdGenerator.php create mode 100644 user/plugins/email/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Mime/MimePart.php create mode 100644 user/plugins/email/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Mime/SimpleHeaderFactory.php create mode 100644 user/plugins/email/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Mime/SimpleHeaderSet.php create mode 100644 user/plugins/email/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Mime/SimpleMessage.php create mode 100644 user/plugins/email/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Mime/SimpleMimeEntity.php create mode 100644 user/plugins/email/vendor/swiftmailer/swiftmailer/lib/classes/Swift/MimePart.php create mode 100644 user/plugins/email/vendor/swiftmailer/swiftmailer/lib/classes/Swift/NullTransport.php create mode 100644 user/plugins/email/vendor/swiftmailer/swiftmailer/lib/classes/Swift/OutputByteStream.php create mode 100644 user/plugins/email/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Plugins/AntiFloodPlugin.php create mode 100644 user/plugins/email/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Plugins/BandwidthMonitorPlugin.php create mode 100644 user/plugins/email/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Plugins/Decorator/Replacements.php create mode 100644 user/plugins/email/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Plugins/DecoratorPlugin.php create mode 100644 user/plugins/email/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Plugins/ImpersonatePlugin.php create mode 100644 user/plugins/email/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Plugins/Logger.php create mode 100644 user/plugins/email/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Plugins/LoggerPlugin.php create mode 100644 user/plugins/email/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Plugins/Loggers/ArrayLogger.php create mode 100644 user/plugins/email/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Plugins/Loggers/EchoLogger.php create mode 100644 user/plugins/email/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Plugins/MessageLogger.php create mode 100644 user/plugins/email/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Plugins/Pop/Pop3Connection.php create mode 100644 user/plugins/email/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Plugins/Pop/Pop3Exception.php create mode 100644 user/plugins/email/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Plugins/PopBeforeSmtpPlugin.php create mode 100644 user/plugins/email/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Plugins/RedirectingPlugin.php create mode 100644 user/plugins/email/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Plugins/Reporter.php create mode 100644 user/plugins/email/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Plugins/ReporterPlugin.php create mode 100644 user/plugins/email/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Plugins/Reporters/HitReporter.php create mode 100644 user/plugins/email/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Plugins/Reporters/HtmlReporter.php create mode 100644 user/plugins/email/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Plugins/Sleeper.php create mode 100644 user/plugins/email/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Plugins/ThrottlerPlugin.php create mode 100644 user/plugins/email/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Plugins/Timer.php create mode 100644 user/plugins/email/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Preferences.php create mode 100644 user/plugins/email/vendor/swiftmailer/swiftmailer/lib/classes/Swift/ReplacementFilterFactory.php create mode 100644 user/plugins/email/vendor/swiftmailer/swiftmailer/lib/classes/Swift/RfcComplianceException.php create mode 100644 user/plugins/email/vendor/swiftmailer/swiftmailer/lib/classes/Swift/SendmailTransport.php create mode 100644 user/plugins/email/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Signer.php create mode 100644 user/plugins/email/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Signers/BodySigner.php create mode 100644 user/plugins/email/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Signers/DKIMSigner.php create mode 100644 user/plugins/email/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Signers/DomainKeySigner.php create mode 100644 user/plugins/email/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Signers/HeaderSigner.php create mode 100644 user/plugins/email/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Signers/OpenDKIMSigner.php create mode 100644 user/plugins/email/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Signers/SMimeSigner.php create mode 100644 user/plugins/email/vendor/swiftmailer/swiftmailer/lib/classes/Swift/SmtpTransport.php create mode 100644 user/plugins/email/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Spool.php create mode 100644 user/plugins/email/vendor/swiftmailer/swiftmailer/lib/classes/Swift/SpoolTransport.php create mode 100644 user/plugins/email/vendor/swiftmailer/swiftmailer/lib/classes/Swift/StreamFilter.php create mode 100644 user/plugins/email/vendor/swiftmailer/swiftmailer/lib/classes/Swift/StreamFilters/ByteArrayReplacementFilter.php create mode 100644 user/plugins/email/vendor/swiftmailer/swiftmailer/lib/classes/Swift/StreamFilters/StringReplacementFilter.php create mode 100644 user/plugins/email/vendor/swiftmailer/swiftmailer/lib/classes/Swift/StreamFilters/StringReplacementFilterFactory.php create mode 100644 user/plugins/email/vendor/swiftmailer/swiftmailer/lib/classes/Swift/SwiftException.php create mode 100644 user/plugins/email/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Transport.php create mode 100644 user/plugins/email/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Transport/AbstractSmtpTransport.php create mode 100644 user/plugins/email/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Transport/Esmtp/Auth/CramMd5Authenticator.php create mode 100644 user/plugins/email/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Transport/Esmtp/Auth/LoginAuthenticator.php create mode 100644 user/plugins/email/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Transport/Esmtp/Auth/NTLMAuthenticator.php create mode 100644 user/plugins/email/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Transport/Esmtp/Auth/PlainAuthenticator.php create mode 100644 user/plugins/email/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Transport/Esmtp/Auth/XOAuth2Authenticator.php create mode 100644 user/plugins/email/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Transport/Esmtp/AuthHandler.php create mode 100644 user/plugins/email/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Transport/Esmtp/Authenticator.php create mode 100644 user/plugins/email/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Transport/Esmtp/EightBitMimeHandler.php create mode 100644 user/plugins/email/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Transport/Esmtp/SmtpUtf8Handler.php create mode 100644 user/plugins/email/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Transport/EsmtpHandler.php create mode 100644 user/plugins/email/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Transport/EsmtpTransport.php create mode 100644 user/plugins/email/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Transport/FailoverTransport.php create mode 100644 user/plugins/email/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Transport/IoBuffer.php create mode 100644 user/plugins/email/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Transport/LoadBalancedTransport.php create mode 100644 user/plugins/email/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Transport/NullTransport.php create mode 100644 user/plugins/email/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Transport/SendmailTransport.php create mode 100644 user/plugins/email/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Transport/SmtpAgent.php create mode 100644 user/plugins/email/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Transport/SpoolTransport.php create mode 100644 user/plugins/email/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Transport/StreamBuffer.php create mode 100644 user/plugins/email/vendor/swiftmailer/swiftmailer/lib/classes/Swift/TransportException.php create mode 100644 user/plugins/email/vendor/swiftmailer/swiftmailer/lib/dependency_maps/cache_deps.php create mode 100644 user/plugins/email/vendor/swiftmailer/swiftmailer/lib/dependency_maps/message_deps.php create mode 100644 user/plugins/email/vendor/swiftmailer/swiftmailer/lib/dependency_maps/mime_deps.php create mode 100644 user/plugins/email/vendor/swiftmailer/swiftmailer/lib/dependency_maps/transport_deps.php create mode 100644 user/plugins/email/vendor/swiftmailer/swiftmailer/lib/mime_types.php create mode 100644 user/plugins/email/vendor/swiftmailer/swiftmailer/lib/preferences.php create mode 100644 user/plugins/email/vendor/swiftmailer/swiftmailer/lib/swift_required.php create mode 100644 user/plugins/email/vendor/swiftmailer/swiftmailer/lib/swiftmailer_generate_mimes_config.php create mode 100644 user/plugins/email/vendor/symfony/polyfill-intl-idn/Idn.php create mode 100644 user/plugins/email/vendor/symfony/polyfill-intl-idn/Info.php create mode 100644 user/plugins/email/vendor/symfony/polyfill-intl-idn/LICENSE create mode 100644 user/plugins/email/vendor/symfony/polyfill-intl-idn/README.md create mode 100644 user/plugins/email/vendor/symfony/polyfill-intl-idn/Resources/unidata/DisallowedRanges.php create mode 100644 user/plugins/email/vendor/symfony/polyfill-intl-idn/Resources/unidata/Regex.php create mode 100644 user/plugins/email/vendor/symfony/polyfill-intl-idn/Resources/unidata/deviation.php create mode 100644 user/plugins/email/vendor/symfony/polyfill-intl-idn/Resources/unidata/disallowed.php create mode 100644 user/plugins/email/vendor/symfony/polyfill-intl-idn/Resources/unidata/disallowed_STD3_mapped.php create mode 100644 user/plugins/email/vendor/symfony/polyfill-intl-idn/Resources/unidata/disallowed_STD3_valid.php create mode 100644 user/plugins/email/vendor/symfony/polyfill-intl-idn/Resources/unidata/ignored.php create mode 100644 user/plugins/email/vendor/symfony/polyfill-intl-idn/Resources/unidata/mapped.php create mode 100644 user/plugins/email/vendor/symfony/polyfill-intl-idn/Resources/unidata/virama.php create mode 100644 user/plugins/email/vendor/symfony/polyfill-intl-idn/bootstrap.php create mode 100644 user/plugins/email/vendor/symfony/polyfill-intl-idn/bootstrap80.php create mode 100644 user/plugins/email/vendor/symfony/polyfill-intl-idn/composer.json create mode 100644 user/plugins/email/vendor/symfony/polyfill-intl-normalizer/LICENSE create mode 100644 user/plugins/email/vendor/symfony/polyfill-intl-normalizer/Normalizer.php create mode 100644 user/plugins/email/vendor/symfony/polyfill-intl-normalizer/README.md create mode 100644 user/plugins/email/vendor/symfony/polyfill-intl-normalizer/Resources/stubs/Normalizer.php create mode 100644 user/plugins/email/vendor/symfony/polyfill-intl-normalizer/Resources/unidata/canonicalComposition.php create mode 100644 user/plugins/email/vendor/symfony/polyfill-intl-normalizer/Resources/unidata/canonicalDecomposition.php create mode 100644 user/plugins/email/vendor/symfony/polyfill-intl-normalizer/Resources/unidata/combiningClass.php create mode 100644 user/plugins/email/vendor/symfony/polyfill-intl-normalizer/Resources/unidata/compatibilityDecomposition.php create mode 100644 user/plugins/email/vendor/symfony/polyfill-intl-normalizer/bootstrap.php create mode 100644 user/plugins/email/vendor/symfony/polyfill-intl-normalizer/bootstrap80.php create mode 100644 user/plugins/email/vendor/symfony/polyfill-intl-normalizer/composer.json create mode 100644 user/plugins/error/.gitignore create mode 100644 user/plugins/error/CHANGELOG.md create mode 100644 user/plugins/error/LICENSE create mode 100644 user/plugins/error/README.md create mode 100644 user/plugins/error/assets/readme_1.png create mode 100644 user/plugins/error/blueprints.yaml create mode 100644 user/plugins/error/cli/LogCommand.php create mode 100644 user/plugins/error/composer.json create mode 100644 user/plugins/error/error.php create mode 100644 user/plugins/error/error.yaml create mode 100644 user/plugins/error/hebe.json create mode 100644 user/plugins/error/languages.yaml create mode 100644 user/plugins/error/pages/error.md create mode 100644 user/plugins/error/templates/error.html.twig create mode 100644 user/plugins/error/templates/error.json.twig create mode 100644 user/plugins/error/vendor/autoload.php create mode 100644 user/plugins/error/vendor/composer/ClassLoader.php create mode 100644 user/plugins/error/vendor/composer/LICENSE create mode 100644 user/plugins/error/vendor/composer/autoload_classmap.php create mode 100644 user/plugins/error/vendor/composer/autoload_namespaces.php create mode 100644 user/plugins/error/vendor/composer/autoload_psr4.php create mode 100644 user/plugins/error/vendor/composer/autoload_real.php create mode 100644 user/plugins/error/vendor/composer/autoload_static.php create mode 100644 user/plugins/error/vendor/composer/installed.json create mode 100644 user/plugins/feed/CHANGELOG.md create mode 100644 user/plugins/feed/LICENSE create mode 100644 user/plugins/feed/README.md create mode 100644 user/plugins/feed/assets/readme_1.png create mode 100644 user/plugins/feed/blueprints.yaml create mode 100644 user/plugins/feed/blueprints/feed.yaml create mode 100644 user/plugins/feed/composer.json create mode 100644 user/plugins/feed/composer.lock create mode 100644 user/plugins/feed/feed.php create mode 100644 user/plugins/feed/feed.yaml create mode 100644 user/plugins/feed/hebe.json create mode 100644 user/plugins/feed/templates/feed.atom.twig create mode 100644 user/plugins/feed/templates/feed.json.twig create mode 100644 user/plugins/feed/templates/feed.rss.twig create mode 100644 user/plugins/feed/vendor/autoload.php create mode 100644 user/plugins/feed/vendor/composer/ClassLoader.php create mode 100644 user/plugins/feed/vendor/composer/InstalledVersions.php create mode 100644 user/plugins/feed/vendor/composer/LICENSE create mode 100644 user/plugins/feed/vendor/composer/autoload_classmap.php create mode 100644 user/plugins/feed/vendor/composer/autoload_namespaces.php create mode 100644 user/plugins/feed/vendor/composer/autoload_psr4.php create mode 100644 user/plugins/feed/vendor/composer/autoload_real.php create mode 100644 user/plugins/feed/vendor/composer/autoload_static.php create mode 100644 user/plugins/feed/vendor/composer/installed.json create mode 100644 user/plugins/feed/vendor/composer/installed.php create mode 100644 user/plugins/flex-objects/.eslintrc create mode 100644 user/plugins/flex-objects/.gitignore create mode 100644 user/plugins/flex-objects/CHANGELOG.md create mode 100644 user/plugins/flex-objects/LICENSE create mode 100644 user/plugins/flex-objects/README.md create mode 100644 user/plugins/flex-objects/admin/pages/flex-objects.md create mode 100644 user/plugins/flex-objects/admin/templates/flex-objects.html.twig create mode 100644 user/plugins/flex-objects/admin/templates/flex-objects.json.twig create mode 100644 user/plugins/flex-objects/admin/templates/flex-objects/layouts/404.html.twig create mode 100644 user/plugins/flex-objects/admin/templates/flex-objects/layouts/accounts/partials/top.html.twig create mode 100644 user/plugins/flex-objects/admin/templates/flex-objects/types/default/buttons/add.html.twig create mode 100644 user/plugins/flex-objects/admin/templates/flex-objects/types/default/buttons/back.html.twig create mode 100644 user/plugins/flex-objects/admin/templates/flex-objects/types/default/buttons/configuration.html.twig create mode 100644 user/plugins/flex-objects/admin/templates/flex-objects/types/default/buttons/delete.html.twig create mode 100644 user/plugins/flex-objects/admin/templates/flex-objects/types/default/buttons/export-csv.html.twig create mode 100644 user/plugins/flex-objects/admin/templates/flex-objects/types/default/buttons/export.html.twig create mode 100644 user/plugins/flex-objects/admin/templates/flex-objects/types/default/buttons/languages.html.twig create mode 100644 user/plugins/flex-objects/admin/templates/flex-objects/types/default/buttons/preview-open.html.twig create mode 100644 user/plugins/flex-objects/admin/templates/flex-objects/types/default/buttons/preview.html.twig create mode 100644 user/plugins/flex-objects/admin/templates/flex-objects/types/default/buttons/save.html.twig create mode 100644 user/plugins/flex-objects/admin/templates/flex-objects/types/default/configure.html.twig create mode 100644 user/plugins/flex-objects/admin/templates/flex-objects/types/default/edit.html.twig create mode 100644 user/plugins/flex-objects/admin/templates/flex-objects/types/default/list.html.twig create mode 100644 user/plugins/flex-objects/admin/templates/flex-objects/types/default/list/list.html.twig create mode 100644 user/plugins/flex-objects/admin/templates/flex-objects/types/default/list/list_actions.html.twig create mode 100644 user/plugins/flex-objects/admin/templates/flex-objects/types/default/modals/remove.html.twig create mode 100644 user/plugins/flex-objects/admin/templates/flex-objects/types/default/preview.html.twig create mode 100644 user/plugins/flex-objects/admin/templates/flex-objects/types/default/titlebar/configure.html.twig create mode 100644 user/plugins/flex-objects/admin/templates/flex-objects/types/default/titlebar/edit.html.twig create mode 100644 user/plugins/flex-objects/admin/templates/flex-objects/types/default/titlebar/list.html.twig create mode 100644 user/plugins/flex-objects/admin/templates/flex-objects/types/default/titlebar/preview.html.twig create mode 100644 user/plugins/flex-objects/admin/templates/flex-objects/types/default/titlebar/types.html.twig create mode 100644 user/plugins/flex-objects/admin/templates/flex-objects/types/default/types.html.twig create mode 100644 user/plugins/flex-objects/admin/templates/flex-objects/types/pages/buttons/add.html.twig create mode 100644 user/plugins/flex-objects/admin/templates/flex-objects/types/pages/buttons/back.html.twig create mode 100644 user/plugins/flex-objects/admin/templates/flex-objects/types/pages/buttons/copy.html.twig create mode 100644 user/plugins/flex-objects/admin/templates/flex-objects/types/pages/buttons/delete.html.twig create mode 100644 user/plugins/flex-objects/admin/templates/flex-objects/types/pages/buttons/move.html.twig create mode 100644 user/plugins/flex-objects/admin/templates/flex-objects/types/pages/buttons/nav-child.html.twig create mode 100644 user/plugins/flex-objects/admin/templates/flex-objects/types/pages/buttons/nav-next.html.twig create mode 100644 user/plugins/flex-objects/admin/templates/flex-objects/types/pages/buttons/nav-parent.html.twig create mode 100644 user/plugins/flex-objects/admin/templates/flex-objects/types/pages/buttons/nav-prev.html.twig create mode 100644 user/plugins/flex-objects/admin/templates/flex-objects/types/pages/buttons/preview.html.twig create mode 100644 user/plugins/flex-objects/admin/templates/flex-objects/types/pages/buttons/save.html.twig create mode 100644 user/plugins/flex-objects/admin/templates/flex-objects/types/pages/edit.html.twig create mode 100644 user/plugins/flex-objects/admin/templates/flex-objects/types/pages/list.html.twig create mode 100644 user/plugins/flex-objects/admin/templates/flex-objects/types/pages/list/columns.html.twig create mode 100644 user/plugins/flex-objects/admin/templates/flex-objects/types/pages/list/list.html.twig create mode 100644 user/plugins/flex-objects/admin/templates/flex-objects/types/pages/preview.html.twig create mode 100644 user/plugins/flex-objects/admin/templates/flex-objects/types/user-accounts/configure.html.twig create mode 100644 user/plugins/flex-objects/admin/templates/flex-objects/types/user-accounts/edit.html.twig create mode 100644 user/plugins/flex-objects/admin/templates/flex-objects/types/user-accounts/list.html.twig create mode 100644 user/plugins/flex-objects/admin/templates/flex-objects/types/user-groups/configure.html.twig create mode 100644 user/plugins/flex-objects/admin/templates/flex-objects/types/user-groups/list.html.twig create mode 100644 user/plugins/flex-objects/admin/templates/forms/fields/flex-objects/flex-objects.html.twig create mode 100644 user/plugins/flex-objects/admin/templates/forms/fields/save-redirect/save-redirect.html.twig create mode 100644 user/plugins/flex-objects/app/columns/finder.js create mode 100644 user/plugins/flex-objects/app/columns/index.js create mode 100644 user/plugins/flex-objects/app/filters/index.js create mode 100644 user/plugins/flex-objects/app/filters/panel.js create mode 100644 user/plugins/flex-objects/app/list/App.vue create mode 100644 user/plugins/flex-objects/app/list/VuetableCssConfig.js create mode 100644 user/plugins/flex-objects/app/list/components/ContentLoader.vue create mode 100644 user/plugins/flex-objects/app/list/components/FilterBar.vue create mode 100644 user/plugins/flex-objects/app/list/components/Table.vue create mode 100644 user/plugins/flex-objects/app/list/index.js create mode 100644 user/plugins/flex-objects/app/main.js create mode 100644 user/plugins/flex-objects/app/utils/finder.js create mode 100644 user/plugins/flex-objects/app/utils/get-filters.js create mode 100644 user/plugins/flex-objects/app/utils/indeterminate.js create mode 100644 user/plugins/flex-objects/assets/flex-objects-directory.png create mode 100644 user/plugins/flex-objects/assets/flex-objects-edit.png create mode 100644 user/plugins/flex-objects/assets/flex-objects-list.png create mode 100644 user/plugins/flex-objects/assets/flex-objects-options.png create mode 100644 user/plugins/flex-objects/assets/flex-objects-site.png create mode 100644 user/plugins/flex-objects/blueprints.yaml create mode 100644 user/plugins/flex-objects/blueprints/flex-objects.yaml create mode 100644 user/plugins/flex-objects/blueprints/flex-objects/contacts.yaml create mode 100644 user/plugins/flex-objects/blueprints/flex-objects/pages.yaml create mode 100644 user/plugins/flex-objects/blueprints/flex-objects/user-accounts.yaml create mode 100644 user/plugins/flex-objects/blueprints/flex-objects/user-groups.yaml create mode 100644 user/plugins/flex-objects/blueprints/pages/flex-objects.yaml create mode 100644 user/plugins/flex-objects/classes/Admin/AdminController.php create mode 100644 user/plugins/flex-objects/classes/Controllers/AbstractController.php create mode 100644 user/plugins/flex-objects/classes/Controllers/MediaController.php create mode 100644 user/plugins/flex-objects/classes/Controllers/ObjectController.php create mode 100644 user/plugins/flex-objects/classes/Events/FlexTaskEvent.php create mode 100644 user/plugins/flex-objects/classes/Flex.php create mode 100644 user/plugins/flex-objects/classes/FlexFormFactory.php create mode 100644 user/plugins/flex-objects/classes/FlexRouter.php create mode 100644 user/plugins/flex-objects/classes/Table/DataTable.php create mode 100644 user/plugins/flex-objects/cli/FlexConvertDataCommand.php create mode 100644 user/plugins/flex-objects/composer.json create mode 100644 user/plugins/flex-objects/composer.lock create mode 100644 user/plugins/flex-objects/css/admin.css create mode 100644 user/plugins/flex-objects/css/admin.css.map create mode 100644 user/plugins/flex-objects/css/admin.min.css create mode 100644 user/plugins/flex-objects/css/site.css create mode 100644 user/plugins/flex-objects/css/site.css.map create mode 100644 user/plugins/flex-objects/css/site.min.css create mode 100644 user/plugins/flex-objects/data/flex-objects/contacts.json create mode 100644 user/plugins/flex-objects/flex-objects.php create mode 100644 user/plugins/flex-objects/flex-objects.yaml create mode 100644 user/plugins/flex-objects/js/flex-objects.js create mode 100644 user/plugins/flex-objects/js/list.min.js create mode 100644 user/plugins/flex-objects/languages/de.yaml create mode 100644 user/plugins/flex-objects/languages/en.yaml create mode 100644 user/plugins/flex-objects/languages/es.yaml create mode 100644 user/plugins/flex-objects/languages/ja.yaml create mode 100644 user/plugins/flex-objects/languages/ru.yaml create mode 100644 user/plugins/flex-objects/package.json create mode 100644 user/plugins/flex-objects/permissions.yaml create mode 100644 user/plugins/flex-objects/scss/_preset.scss create mode 100644 user/plugins/flex-objects/scss/admin.scss create mode 100644 user/plugins/flex-objects/scss/plugin/_admin.scss create mode 100644 user/plugins/flex-objects/scss/plugin/_site.scss create mode 100644 user/plugins/flex-objects/scss/site.scss create mode 100644 user/plugins/flex-objects/templates/flex-edit.html.twig create mode 100644 user/plugins/flex-objects/templates/flex-objects.html.twig create mode 100644 user/plugins/flex-objects/templates/flex-objects/directories/default.html.twig create mode 100644 user/plugins/flex-objects/templates/flex-objects/page.html.twig create mode 100644 user/plugins/flex-objects/templates/flex-objects/views/404.html.twig create mode 100644 user/plugins/flex-objects/templates/flex-objects/views/directories.html.twig create mode 100644 user/plugins/flex-objects/templates/flex-objects/views/directory.html.twig create mode 100644 user/plugins/flex-objects/templates/flex-objects/views/object.html.twig create mode 100644 user/plugins/flex-objects/templates/flex/contacts/collection/default.html.twig create mode 100644 user/plugins/flex-objects/templates/flex/contacts/object/default.html.twig create mode 100644 user/plugins/flex-objects/templates/flex/contacts/object/list-default.html.twig create mode 100644 user/plugins/flex-objects/templates/flex/user-accounts/collection/default.html.twig create mode 100644 user/plugins/flex-objects/templates/flex/user-accounts/object/default.html.twig create mode 100644 user/plugins/flex-objects/templates/flex/user-accounts/object/list-default.html.twig create mode 100644 user/plugins/flex-objects/templates/flex/user-groups/collection/default.html.twig create mode 100644 user/plugins/flex-objects/templates/flex/user-groups/object/default.html.twig create mode 100644 user/plugins/flex-objects/templates/flex/user-groups/object/list-default.html.twig create mode 100644 user/plugins/flex-objects/templates/forms/fields/filepicker/filepicker.html.twig create mode 100644 user/plugins/flex-objects/templates/forms/fields/list/list.html.twig create mode 100644 user/plugins/flex-objects/templates/forms/fields/pagemedia/pagemedia.html.twig create mode 100644 user/plugins/flex-objects/templates/forms/fields/pagemedia/template.html.twig create mode 100644 user/plugins/flex-objects/vendor/autoload.php create mode 100644 user/plugins/flex-objects/vendor/composer/ClassLoader.php create mode 100644 user/plugins/flex-objects/vendor/composer/InstalledVersions.php create mode 100644 user/plugins/flex-objects/vendor/composer/LICENSE create mode 100644 user/plugins/flex-objects/vendor/composer/autoload_classmap.php create mode 100644 user/plugins/flex-objects/vendor/composer/autoload_namespaces.php create mode 100644 user/plugins/flex-objects/vendor/composer/autoload_psr4.php create mode 100644 user/plugins/flex-objects/vendor/composer/autoload_real.php create mode 100644 user/plugins/flex-objects/vendor/composer/autoload_static.php create mode 100644 user/plugins/flex-objects/vendor/composer/installed.json create mode 100644 user/plugins/flex-objects/vendor/composer/installed.php create mode 100644 user/plugins/flex-objects/vendor/composer/platform_check.php create mode 100644 user/plugins/flex-objects/watch.sh create mode 100644 user/plugins/flex-objects/webpack.conf.js create mode 100644 user/plugins/flex-objects/yarn.lock create mode 100644 user/plugins/form/.eslintrc create mode 100644 user/plugins/form/.gitignore create mode 100644 user/plugins/form/CHANGELOG.md create mode 100644 user/plugins/form/LICENSE create mode 100644 user/plugins/form/README.md create mode 100644 user/plugins/form/app/fields/array.js create mode 100644 user/plugins/form/app/fields/file.js create mode 100644 user/plugins/form/app/fields/form.js create mode 100644 user/plugins/form/app/fields/index.js create mode 100644 user/plugins/form/app/fields/media.js create mode 100644 user/plugins/form/app/fields/tabs.js create mode 100644 user/plugins/form/app/main.js create mode 100644 user/plugins/form/app/utils/keep-alive.js create mode 100644 user/plugins/form/assets/dropzone.min.css create mode 100644 user/plugins/form/assets/form-styles.css create mode 100644 user/plugins/form/assets/form-styles.css.map create mode 100644 user/plugins/form/assets/form-styles.min.css create mode 100644 user/plugins/form/assets/form.min.js create mode 100644 user/plugins/form/assets/form.vendor.js create mode 100644 user/plugins/form/assets/object.assign.polyfill.js create mode 100644 user/plugins/form/assets/signature_pad.js create mode 100644 user/plugins/form/blueprints.yaml create mode 100644 user/plugins/form/classes/BasicCaptcha.php create mode 100644 user/plugins/form/classes/Form.php create mode 100644 user/plugins/form/classes/FormFactory.php create mode 100644 user/plugins/form/classes/Forms.php create mode 100644 user/plugins/form/classes/TwigExtension.php create mode 100644 user/plugins/form/composer.json create mode 100644 user/plugins/form/composer.lock create mode 100644 user/plugins/form/fonts/zxx-camo.ttf create mode 100644 user/plugins/form/fonts/zxx-noise.ttf create mode 100644 user/plugins/form/fonts/zxx-sans.ttf create mode 100644 user/plugins/form/fonts/zxx-xed.ttf create mode 100644 user/plugins/form/form.php create mode 100644 user/plugins/form/form.yaml create mode 100644 user/plugins/form/gulpfile.js create mode 100644 user/plugins/form/hebe.json create mode 100644 user/plugins/form/languages.yaml create mode 100644 user/plugins/form/package.json create mode 100644 user/plugins/form/scss.sh create mode 100644 user/plugins/form/scss/form-styles.scss create mode 100644 user/plugins/form/templates/form-messages.html.twig create mode 100644 user/plugins/form/templates/form-messages.json.twig create mode 100644 user/plugins/form/templates/form.html.twig create mode 100644 user/plugins/form/templates/form.json.twig create mode 100644 user/plugins/form/templates/formdata.html.twig create mode 100644 user/plugins/form/templates/forms/ajax.json.twig create mode 100644 user/plugins/form/templates/forms/data.html.twig create mode 100644 user/plugins/form/templates/forms/data.txt.twig create mode 100644 user/plugins/form/templates/forms/default/data.html.twig create mode 100644 user/plugins/form/templates/forms/default/data.txt.twig create mode 100644 user/plugins/form/templates/forms/default/field.html.twig create mode 100644 user/plugins/form/templates/forms/default/fields.html.twig create mode 100644 user/plugins/form/templates/forms/default/form.html.twig create mode 100644 user/plugins/form/templates/forms/default/toggleable.html.twig create mode 100644 user/plugins/form/templates/forms/dropzone/template.html.twig create mode 100644 user/plugins/form/templates/forms/field.html.twig create mode 100644 user/plugins/form/templates/forms/fields/array/array.html.twig create mode 100644 user/plugins/form/templates/forms/fields/avatar/avatar.html.twig create mode 100644 user/plugins/form/templates/forms/fields/basic-captcha/basic-captcha.html.twig create mode 100644 user/plugins/form/templates/forms/fields/captcha/captcha.html.twig create mode 100644 user/plugins/form/templates/forms/fields/checkbox/checkbox.html.twig create mode 100644 user/plugins/form/templates/forms/fields/checkboxes/checkboxes.html.twig create mode 100644 user/plugins/form/templates/forms/fields/color/color.html.twig create mode 100644 user/plugins/form/templates/forms/fields/column/column.html.twig create mode 100644 user/plugins/form/templates/forms/fields/columns/columns.html.twig create mode 100644 user/plugins/form/templates/forms/fields/conditional/conditional.html.twig create mode 100644 user/plugins/form/templates/forms/fields/date/date.html.twig create mode 100644 user/plugins/form/templates/forms/fields/date/edit_list.html.twig create mode 100644 user/plugins/form/templates/forms/fields/datetime/datetime.html.twig create mode 100644 user/plugins/form/templates/forms/fields/datetime/edit_list.html.twig create mode 100644 user/plugins/form/templates/forms/fields/display/display.html.twig create mode 100644 user/plugins/form/templates/forms/fields/email/email.html.twig create mode 100644 user/plugins/form/templates/forms/fields/fieldset/fieldset.html.twig create mode 100644 user/plugins/form/templates/forms/fields/file/file.html.twig create mode 100644 user/plugins/form/templates/forms/fields/formname/formname.html.twig create mode 100644 user/plugins/form/templates/forms/fields/formtask/formtask.html.twig create mode 100644 user/plugins/form/templates/forms/fields/hidden/hidden.html.twig create mode 100644 user/plugins/form/templates/forms/fields/honeypot/honeypot.html.twig create mode 100644 user/plugins/form/templates/forms/fields/ignore/ignore.html.twig create mode 100644 user/plugins/form/templates/forms/fields/key/key.html.twig create mode 100644 user/plugins/form/templates/forms/fields/month/month.html.twig create mode 100644 user/plugins/form/templates/forms/fields/nonce/nonce.html.twig create mode 100644 user/plugins/form/templates/forms/fields/number/number.html.twig create mode 100644 user/plugins/form/templates/forms/fields/password/password.html.twig create mode 100644 user/plugins/form/templates/forms/fields/radio/radio.html.twig create mode 100644 user/plugins/form/templates/forms/fields/range/range.html.twig create mode 100644 user/plugins/form/templates/forms/fields/section/section.html.twig create mode 100644 user/plugins/form/templates/forms/fields/select/select.html.twig create mode 100644 user/plugins/form/templates/forms/fields/select_optgroup/select_optgroup.html.twig create mode 100644 user/plugins/form/templates/forms/fields/signature/signature.html.twig create mode 100644 user/plugins/form/templates/forms/fields/spacer/spacer.html.twig create mode 100644 user/plugins/form/templates/forms/fields/switch/switch.html.twig create mode 100644 user/plugins/form/templates/forms/fields/tab/tab.html.twig create mode 100644 user/plugins/form/templates/forms/fields/tabs/tabs.html.twig create mode 100644 user/plugins/form/templates/forms/fields/tel/tel.html.twig create mode 100644 user/plugins/form/templates/forms/fields/text/edit_list.html.twig create mode 100644 user/plugins/form/templates/forms/fields/text/text.html.twig create mode 100644 user/plugins/form/templates/forms/fields/textarea/textarea.html.twig create mode 100644 user/plugins/form/templates/forms/fields/time/edit_list.html.twig create mode 100644 user/plugins/form/templates/forms/fields/time/time.html.twig create mode 100644 user/plugins/form/templates/forms/fields/toggle/edit_list.html.twig create mode 100644 user/plugins/form/templates/forms/fields/toggle/toggle.html.twig create mode 100644 user/plugins/form/templates/forms/fields/uniqueid/uniqueid.html.twig create mode 100644 user/plugins/form/templates/forms/fields/url/edit_list.html.twig create mode 100644 user/plugins/form/templates/forms/fields/url/url.html.twig create mode 100644 user/plugins/form/templates/forms/fields/value/value.html.twig create mode 100644 user/plugins/form/templates/forms/fields/week/week.html.twig create mode 100644 user/plugins/form/templates/forms/form.html.twig create mode 100644 user/plugins/form/templates/forms/layouts/button.html.twig create mode 100644 user/plugins/form/templates/forms/layouts/button/default-button.html.twig create mode 100644 user/plugins/form/templates/forms/layouts/field-variables.html.twig create mode 100644 user/plugins/form/templates/forms/layouts/field.html.twig create mode 100644 user/plugins/form/templates/forms/layouts/field/default-field.html.twig create mode 100644 user/plugins/form/templates/forms/layouts/form.html.twig create mode 100644 user/plugins/form/templates/forms/layouts/form/default-form.html.twig create mode 100644 user/plugins/form/templates/modular/form.html.twig create mode 100644 user/plugins/form/templates/partials/form-messages.html.twig create mode 100644 user/plugins/form/templates/partials/form-messages.json.twig create mode 100644 user/plugins/form/vendor/autoload.php create mode 100644 user/plugins/form/vendor/composer/ClassLoader.php create mode 100644 user/plugins/form/vendor/composer/InstalledVersions.php create mode 100644 user/plugins/form/vendor/composer/LICENSE create mode 100644 user/plugins/form/vendor/composer/autoload_classmap.php create mode 100644 user/plugins/form/vendor/composer/autoload_namespaces.php create mode 100644 user/plugins/form/vendor/composer/autoload_psr4.php create mode 100644 user/plugins/form/vendor/composer/autoload_real.php create mode 100644 user/plugins/form/vendor/composer/autoload_static.php create mode 100644 user/plugins/form/vendor/composer/installed.json create mode 100644 user/plugins/form/vendor/composer/installed.php create mode 100644 user/plugins/form/vendor/composer/platform_check.php create mode 100644 user/plugins/form/vendor/google/recaptcha/.github/ISSUE_TEMPLATE/bug_report.md create mode 100644 user/plugins/form/vendor/google/recaptcha/.gitignore create mode 100644 user/plugins/form/vendor/google/recaptcha/.travis.yml create mode 100644 user/plugins/form/vendor/google/recaptcha/ARCHITECTURE.md create mode 100644 user/plugins/form/vendor/google/recaptcha/CONTRIBUTING.md create mode 100644 user/plugins/form/vendor/google/recaptcha/LICENSE create mode 100644 user/plugins/form/vendor/google/recaptcha/README.md create mode 100644 user/plugins/form/vendor/google/recaptcha/app.yaml create mode 100644 user/plugins/form/vendor/google/recaptcha/composer.json create mode 100644 user/plugins/form/vendor/google/recaptcha/examples/appengine-https.php create mode 100644 user/plugins/form/vendor/google/recaptcha/examples/config.php.dist create mode 100644 user/plugins/form/vendor/google/recaptcha/examples/examples.css create mode 100644 user/plugins/form/vendor/google/recaptcha/examples/google0afd8760fd68f119.html create mode 100644 user/plugins/form/vendor/google/recaptcha/examples/index.php create mode 100644 user/plugins/form/vendor/google/recaptcha/examples/recaptcha-content-security-policy.php create mode 100644 user/plugins/form/vendor/google/recaptcha/examples/recaptcha-v2-checkbox-explicit.php create mode 100644 user/plugins/form/vendor/google/recaptcha/examples/recaptcha-v2-checkbox.php create mode 100644 user/plugins/form/vendor/google/recaptcha/examples/recaptcha-v2-invisible.php create mode 100644 user/plugins/form/vendor/google/recaptcha/examples/recaptcha-v3-request-scores.php create mode 100644 user/plugins/form/vendor/google/recaptcha/examples/recaptcha-v3-verify.php create mode 100644 user/plugins/form/vendor/google/recaptcha/examples/robots.txt create mode 100644 user/plugins/form/vendor/google/recaptcha/phpunit.xml.dist create mode 100644 user/plugins/form/vendor/google/recaptcha/src/ReCaptcha/ReCaptcha.php create mode 100644 user/plugins/form/vendor/google/recaptcha/src/ReCaptcha/RequestMethod.php create mode 100644 user/plugins/form/vendor/google/recaptcha/src/ReCaptcha/RequestMethod/Curl.php create mode 100644 user/plugins/form/vendor/google/recaptcha/src/ReCaptcha/RequestMethod/CurlPost.php create mode 100644 user/plugins/form/vendor/google/recaptcha/src/ReCaptcha/RequestMethod/Post.php create mode 100644 user/plugins/form/vendor/google/recaptcha/src/ReCaptcha/RequestMethod/Socket.php create mode 100644 user/plugins/form/vendor/google/recaptcha/src/ReCaptcha/RequestMethod/SocketPost.php create mode 100644 user/plugins/form/vendor/google/recaptcha/src/ReCaptcha/RequestParameters.php create mode 100644 user/plugins/form/vendor/google/recaptcha/src/ReCaptcha/Response.php create mode 100644 user/plugins/form/vendor/google/recaptcha/src/autoload.php create mode 100644 user/plugins/form/vendor/google/recaptcha/tests/ReCaptcha/ReCaptchaTest.php create mode 100644 user/plugins/form/vendor/google/recaptcha/tests/ReCaptcha/RequestMethod/CurlPostTest.php create mode 100644 user/plugins/form/vendor/google/recaptcha/tests/ReCaptcha/RequestMethod/PostTest.php create mode 100644 user/plugins/form/vendor/google/recaptcha/tests/ReCaptcha/RequestMethod/SocketPostTest.php create mode 100644 user/plugins/form/vendor/google/recaptcha/tests/ReCaptcha/RequestParametersTest.php create mode 100644 user/plugins/form/vendor/google/recaptcha/tests/ReCaptcha/ResponseTest.php create mode 100644 user/plugins/form/webpack.conf.js create mode 100644 user/plugins/form/yarn.lock create mode 100644 user/plugins/login/.gitignore create mode 100644 user/plugins/login/CHANGELOG.md create mode 100644 user/plugins/login/LICENSE create mode 100644 user/plugins/login/README.md create mode 100644 user/plugins/login/blueprints.yaml create mode 100644 user/plugins/login/classes/Controller.php create mode 100644 user/plugins/login/classes/Email.php create mode 100644 user/plugins/login/classes/Events/PageAuthorizeEvent.php create mode 100644 user/plugins/login/classes/Events/UserLoginEvent.php create mode 100644 user/plugins/login/classes/Invitations/Invitation.php create mode 100644 user/plugins/login/classes/Invitations/Invitations.php create mode 100644 user/plugins/login/classes/Login.php create mode 100644 user/plugins/login/classes/LoginCache.php create mode 100644 user/plugins/login/classes/RateLimiter.php create mode 100644 user/plugins/login/classes/RememberMe/RememberMe.php create mode 100644 user/plugins/login/classes/RememberMe/TokenStorage.php create mode 100644 user/plugins/login/classes/TwoFactorAuth/BaconQrProvider.php create mode 100644 user/plugins/login/classes/TwoFactorAuth/TwoFactorAuth.php create mode 100644 user/plugins/login/cli/ChangePasswordCommand.php create mode 100644 user/plugins/login/cli/ChangeUserStateCommand.php create mode 100644 user/plugins/login/cli/LookupUserCommand.php create mode 100644 user/plugins/login/cli/NewUserCommand.php create mode 100644 user/plugins/login/composer.json create mode 100644 user/plugins/login/composer.lock create mode 100644 user/plugins/login/css/login.css create mode 100644 user/plugins/login/hebe.json create mode 100644 user/plugins/login/js/2fa.js create mode 100644 user/plugins/login/languages/de.yaml create mode 100644 user/plugins/login/languages/en.yaml create mode 100644 user/plugins/login/languages/es.yaml create mode 100644 user/plugins/login/languages/fr.yaml create mode 100644 user/plugins/login/languages/hr.yaml create mode 100644 user/plugins/login/languages/hu.yaml create mode 100644 user/plugins/login/languages/lt.yaml create mode 100644 user/plugins/login/languages/no.yaml create mode 100644 user/plugins/login/languages/pt-BR.yaml create mode 100644 user/plugins/login/languages/ro.yaml create mode 100644 user/plugins/login/languages/ru.yaml create mode 100644 user/plugins/login/languages/uk.yaml create mode 100644 user/plugins/login/languages/zh.yaml create mode 100644 user/plugins/login/login.php create mode 100644 user/plugins/login/login.yaml create mode 100644 user/plugins/login/pages/forgot.md create mode 100644 user/plugins/login/pages/login.md create mode 100644 user/plugins/login/pages/profile.md create mode 100644 user/plugins/login/pages/register.md create mode 100644 user/plugins/login/pages/reset.md create mode 100644 user/plugins/login/pages/unauthorized.md create mode 100644 user/plugins/login/templates/emails/login/activate.html.twig create mode 100644 user/plugins/login/templates/emails/login/invite.html.twig create mode 100644 user/plugins/login/templates/emails/login/magic-login.html.twig create mode 100644 user/plugins/login/templates/emails/login/notification.html.twig create mode 100644 user/plugins/login/templates/emails/login/reset-password.html.twig create mode 100644 user/plugins/login/templates/emails/login/welcome.html.twig create mode 100644 user/plugins/login/templates/forgot.html.twig create mode 100644 user/plugins/login/templates/forms/fields/2fa_secret/2fa_secret.html.twig create mode 100644 user/plugins/login/templates/login.html.twig create mode 100644 user/plugins/login/templates/login.json.twig create mode 100644 user/plugins/login/templates/partials/forgot-form.html.twig create mode 100644 user/plugins/login/templates/partials/login-form.html.twig create mode 100644 user/plugins/login/templates/partials/login-status.html.twig create mode 100644 user/plugins/login/templates/partials/login-twofa.html.twig create mode 100644 user/plugins/login/templates/partials/reset-form.html.twig create mode 100644 user/plugins/login/templates/profile.html.twig create mode 100644 user/plugins/login/templates/profile.json.twig create mode 100644 user/plugins/login/templates/register.html.twig create mode 100644 user/plugins/login/templates/reset.html.twig create mode 100644 user/plugins/login/templates/unauthorized.html.twig create mode 100644 user/plugins/login/vendor/autoload.php create mode 100644 user/plugins/login/vendor/bacon/bacon-qr-code/.gitignore create mode 100644 user/plugins/login/vendor/bacon/bacon-qr-code/.travis.yml create mode 100644 user/plugins/login/vendor/bacon/bacon-qr-code/CHANGELOG.md create mode 100644 user/plugins/login/vendor/bacon/bacon-qr-code/LICENSE create mode 100644 user/plugins/login/vendor/bacon/bacon-qr-code/Module.php create mode 100644 user/plugins/login/vendor/bacon/bacon-qr-code/README.md create mode 100644 user/plugins/login/vendor/bacon/bacon-qr-code/autoload_classmap.php create mode 100644 user/plugins/login/vendor/bacon/bacon-qr-code/autoload_function.php create mode 100644 user/plugins/login/vendor/bacon/bacon-qr-code/autoload_register.php create mode 100644 user/plugins/login/vendor/bacon/bacon-qr-code/composer.json create mode 100644 user/plugins/login/vendor/bacon/bacon-qr-code/src/BaconQrCode/Common/AbstractEnum.php create mode 100644 user/plugins/login/vendor/bacon/bacon-qr-code/src/BaconQrCode/Common/BitArray.php create mode 100644 user/plugins/login/vendor/bacon/bacon-qr-code/src/BaconQrCode/Common/BitMatrix.php create mode 100644 user/plugins/login/vendor/bacon/bacon-qr-code/src/BaconQrCode/Common/BitUtils.php create mode 100644 user/plugins/login/vendor/bacon/bacon-qr-code/src/BaconQrCode/Common/CharacterSetEci.php create mode 100644 user/plugins/login/vendor/bacon/bacon-qr-code/src/BaconQrCode/Common/EcBlock.php create mode 100644 user/plugins/login/vendor/bacon/bacon-qr-code/src/BaconQrCode/Common/EcBlocks.php create mode 100644 user/plugins/login/vendor/bacon/bacon-qr-code/src/BaconQrCode/Common/ErrorCorrectionLevel.php create mode 100644 user/plugins/login/vendor/bacon/bacon-qr-code/src/BaconQrCode/Common/FormatInformation.php create mode 100644 user/plugins/login/vendor/bacon/bacon-qr-code/src/BaconQrCode/Common/Mode.php create mode 100644 user/plugins/login/vendor/bacon/bacon-qr-code/src/BaconQrCode/Common/ReedSolomonCodec.php create mode 100644 user/plugins/login/vendor/bacon/bacon-qr-code/src/BaconQrCode/Common/Version.php create mode 100644 user/plugins/login/vendor/bacon/bacon-qr-code/src/BaconQrCode/Encoder/BlockPair.php create mode 100644 user/plugins/login/vendor/bacon/bacon-qr-code/src/BaconQrCode/Encoder/ByteMatrix.php create mode 100644 user/plugins/login/vendor/bacon/bacon-qr-code/src/BaconQrCode/Encoder/Encoder.php create mode 100644 user/plugins/login/vendor/bacon/bacon-qr-code/src/BaconQrCode/Encoder/MaskUtil.php create mode 100644 user/plugins/login/vendor/bacon/bacon-qr-code/src/BaconQrCode/Encoder/MatrixUtil.php create mode 100644 user/plugins/login/vendor/bacon/bacon-qr-code/src/BaconQrCode/Encoder/QrCode.php create mode 100644 user/plugins/login/vendor/bacon/bacon-qr-code/src/BaconQrCode/Exception/ExceptionInterface.php create mode 100644 user/plugins/login/vendor/bacon/bacon-qr-code/src/BaconQrCode/Exception/InvalidArgumentException.php create mode 100644 user/plugins/login/vendor/bacon/bacon-qr-code/src/BaconQrCode/Exception/OutOfBoundsException.php create mode 100644 user/plugins/login/vendor/bacon/bacon-qr-code/src/BaconQrCode/Exception/RuntimeException.php create mode 100644 user/plugins/login/vendor/bacon/bacon-qr-code/src/BaconQrCode/Exception/UnexpectedValueException.php create mode 100644 user/plugins/login/vendor/bacon/bacon-qr-code/src/BaconQrCode/Exception/WriterException.php create mode 100644 user/plugins/login/vendor/bacon/bacon-qr-code/src/BaconQrCode/Renderer/Color/Cmyk.php create mode 100644 user/plugins/login/vendor/bacon/bacon-qr-code/src/BaconQrCode/Renderer/Color/ColorInterface.php create mode 100644 user/plugins/login/vendor/bacon/bacon-qr-code/src/BaconQrCode/Renderer/Color/Gray.php create mode 100644 user/plugins/login/vendor/bacon/bacon-qr-code/src/BaconQrCode/Renderer/Color/Rgb.php create mode 100644 user/plugins/login/vendor/bacon/bacon-qr-code/src/BaconQrCode/Renderer/Image/AbstractRenderer.php create mode 100644 user/plugins/login/vendor/bacon/bacon-qr-code/src/BaconQrCode/Renderer/Image/Decorator/DecoratorInterface.php create mode 100644 user/plugins/login/vendor/bacon/bacon-qr-code/src/BaconQrCode/Renderer/Image/Decorator/FinderPattern.php create mode 100644 user/plugins/login/vendor/bacon/bacon-qr-code/src/BaconQrCode/Renderer/Image/Eps.php create mode 100644 user/plugins/login/vendor/bacon/bacon-qr-code/src/BaconQrCode/Renderer/Image/Png.php create mode 100644 user/plugins/login/vendor/bacon/bacon-qr-code/src/BaconQrCode/Renderer/Image/RendererInterface.php create mode 100644 user/plugins/login/vendor/bacon/bacon-qr-code/src/BaconQrCode/Renderer/Image/Svg.php create mode 100644 user/plugins/login/vendor/bacon/bacon-qr-code/src/BaconQrCode/Renderer/RendererInterface.php create mode 100644 user/plugins/login/vendor/bacon/bacon-qr-code/src/BaconQrCode/Renderer/Text/Html.php create mode 100644 user/plugins/login/vendor/bacon/bacon-qr-code/src/BaconQrCode/Renderer/Text/Plain.php create mode 100644 user/plugins/login/vendor/bacon/bacon-qr-code/src/BaconQrCode/Writer.php create mode 100644 user/plugins/login/vendor/bacon/bacon-qr-code/src/Common/BitArray.php create mode 100644 user/plugins/login/vendor/bacon/bacon-qr-code/src/Common/BitMatrix.php create mode 100644 user/plugins/login/vendor/bacon/bacon-qr-code/src/Common/BitUtils.php create mode 100644 user/plugins/login/vendor/bacon/bacon-qr-code/src/Common/CharacterSetEci.php create mode 100644 user/plugins/login/vendor/bacon/bacon-qr-code/src/Common/EcBlock.php create mode 100644 user/plugins/login/vendor/bacon/bacon-qr-code/src/Common/EcBlocks.php create mode 100644 user/plugins/login/vendor/bacon/bacon-qr-code/src/Common/ErrorCorrectionLevel.php create mode 100644 user/plugins/login/vendor/bacon/bacon-qr-code/src/Common/FormatInformation.php create mode 100644 user/plugins/login/vendor/bacon/bacon-qr-code/src/Common/Mode.php create mode 100644 user/plugins/login/vendor/bacon/bacon-qr-code/src/Common/ReedSolomonCodec.php create mode 100644 user/plugins/login/vendor/bacon/bacon-qr-code/src/Common/Version.php create mode 100644 user/plugins/login/vendor/bacon/bacon-qr-code/src/Encoder/BlockPair.php create mode 100644 user/plugins/login/vendor/bacon/bacon-qr-code/src/Encoder/ByteMatrix.php create mode 100644 user/plugins/login/vendor/bacon/bacon-qr-code/src/Encoder/Encoder.php create mode 100644 user/plugins/login/vendor/bacon/bacon-qr-code/src/Encoder/MaskUtil.php create mode 100644 user/plugins/login/vendor/bacon/bacon-qr-code/src/Encoder/MatrixUtil.php create mode 100644 user/plugins/login/vendor/bacon/bacon-qr-code/src/Encoder/QrCode.php create mode 100644 user/plugins/login/vendor/bacon/bacon-qr-code/src/Exception/ExceptionInterface.php create mode 100644 user/plugins/login/vendor/bacon/bacon-qr-code/src/Exception/InvalidArgumentException.php create mode 100644 user/plugins/login/vendor/bacon/bacon-qr-code/src/Exception/OutOfBoundsException.php create mode 100644 user/plugins/login/vendor/bacon/bacon-qr-code/src/Exception/RuntimeException.php create mode 100644 user/plugins/login/vendor/bacon/bacon-qr-code/src/Exception/UnexpectedValueException.php create mode 100644 user/plugins/login/vendor/bacon/bacon-qr-code/src/Exception/WriterException.php create mode 100644 user/plugins/login/vendor/bacon/bacon-qr-code/src/Renderer/Color/Alpha.php create mode 100644 user/plugins/login/vendor/bacon/bacon-qr-code/src/Renderer/Color/Cmyk.php create mode 100644 user/plugins/login/vendor/bacon/bacon-qr-code/src/Renderer/Color/ColorInterface.php create mode 100644 user/plugins/login/vendor/bacon/bacon-qr-code/src/Renderer/Color/Gray.php create mode 100644 user/plugins/login/vendor/bacon/bacon-qr-code/src/Renderer/Color/Rgb.php create mode 100644 user/plugins/login/vendor/bacon/bacon-qr-code/src/Renderer/Eye/CompositeEye.php create mode 100644 user/plugins/login/vendor/bacon/bacon-qr-code/src/Renderer/Eye/EyeInterface.php create mode 100644 user/plugins/login/vendor/bacon/bacon-qr-code/src/Renderer/Eye/ModuleEye.php create mode 100644 user/plugins/login/vendor/bacon/bacon-qr-code/src/Renderer/Eye/SimpleCircleEye.php create mode 100644 user/plugins/login/vendor/bacon/bacon-qr-code/src/Renderer/Eye/SquareEye.php create mode 100644 user/plugins/login/vendor/bacon/bacon-qr-code/src/Renderer/Image/EpsImageBackEnd.php create mode 100644 user/plugins/login/vendor/bacon/bacon-qr-code/src/Renderer/Image/ImageBackEndInterface.php create mode 100644 user/plugins/login/vendor/bacon/bacon-qr-code/src/Renderer/Image/ImagickImageBackEnd.php create mode 100644 user/plugins/login/vendor/bacon/bacon-qr-code/src/Renderer/Image/SvgImageBackEnd.php create mode 100644 user/plugins/login/vendor/bacon/bacon-qr-code/src/Renderer/Image/TransformationMatrix.php create mode 100644 user/plugins/login/vendor/bacon/bacon-qr-code/src/Renderer/ImageRenderer.php create mode 100644 user/plugins/login/vendor/bacon/bacon-qr-code/src/Renderer/Module/DotsModule.php create mode 100644 user/plugins/login/vendor/bacon/bacon-qr-code/src/Renderer/Module/EdgeIterator/Edge.php create mode 100644 user/plugins/login/vendor/bacon/bacon-qr-code/src/Renderer/Module/EdgeIterator/EdgeIterator.php create mode 100644 user/plugins/login/vendor/bacon/bacon-qr-code/src/Renderer/Module/ModuleInterface.php create mode 100644 user/plugins/login/vendor/bacon/bacon-qr-code/src/Renderer/Module/RoundnessModule.php create mode 100644 user/plugins/login/vendor/bacon/bacon-qr-code/src/Renderer/Module/SquareModule.php create mode 100644 user/plugins/login/vendor/bacon/bacon-qr-code/src/Renderer/Path/Close.php create mode 100644 user/plugins/login/vendor/bacon/bacon-qr-code/src/Renderer/Path/Curve.php create mode 100644 user/plugins/login/vendor/bacon/bacon-qr-code/src/Renderer/Path/EllipticArc.php create mode 100644 user/plugins/login/vendor/bacon/bacon-qr-code/src/Renderer/Path/Line.php create mode 100644 user/plugins/login/vendor/bacon/bacon-qr-code/src/Renderer/Path/Move.php create mode 100644 user/plugins/login/vendor/bacon/bacon-qr-code/src/Renderer/Path/OperationInterface.php create mode 100644 user/plugins/login/vendor/bacon/bacon-qr-code/src/Renderer/Path/Path.php create mode 100644 user/plugins/login/vendor/bacon/bacon-qr-code/src/Renderer/PlainTextRenderer.php create mode 100644 user/plugins/login/vendor/bacon/bacon-qr-code/src/Renderer/RendererInterface.php create mode 100644 user/plugins/login/vendor/bacon/bacon-qr-code/src/Renderer/RendererStyle/EyeFill.php create mode 100644 user/plugins/login/vendor/bacon/bacon-qr-code/src/Renderer/RendererStyle/Fill.php create mode 100644 user/plugins/login/vendor/bacon/bacon-qr-code/src/Renderer/RendererStyle/Gradient.php create mode 100644 user/plugins/login/vendor/bacon/bacon-qr-code/src/Renderer/RendererStyle/GradientType.php create mode 100644 user/plugins/login/vendor/bacon/bacon-qr-code/src/Renderer/RendererStyle/RendererStyle.php create mode 100644 user/plugins/login/vendor/bacon/bacon-qr-code/src/Writer.php create mode 100644 user/plugins/login/vendor/bacon/bacon-qr-code/tests/BaconQrCode/Common/BitArrayTest.php create mode 100644 user/plugins/login/vendor/bacon/bacon-qr-code/tests/BaconQrCode/Common/BitMatrixTest.php create mode 100644 user/plugins/login/vendor/bacon/bacon-qr-code/tests/BaconQrCode/Common/BitUtilsTest.php create mode 100644 user/plugins/login/vendor/bacon/bacon-qr-code/tests/BaconQrCode/Common/ErrorCorrectionLevelTest.php create mode 100644 user/plugins/login/vendor/bacon/bacon-qr-code/tests/BaconQrCode/Common/FormatInformationTest.php create mode 100644 user/plugins/login/vendor/bacon/bacon-qr-code/tests/BaconQrCode/Common/ModeTest.php create mode 100644 user/plugins/login/vendor/bacon/bacon-qr-code/tests/BaconQrCode/Common/ReedSolomonCodecTest.php create mode 100644 user/plugins/login/vendor/bacon/bacon-qr-code/tests/BaconQrCode/Common/VersionTest.php create mode 100644 user/plugins/login/vendor/bacon/bacon-qr-code/tests/BaconQrCode/Encoder/EncoderTest.php create mode 100644 user/plugins/login/vendor/bacon/bacon-qr-code/tests/BaconQrCode/Encoder/MaskUtilTest.php create mode 100644 user/plugins/login/vendor/bacon/bacon-qr-code/tests/BaconQrCode/Encoder/MatrixUtilTest.php create mode 100644 user/plugins/login/vendor/bacon/bacon-qr-code/tests/BaconQrCode/Renderer/Text/HtmlTest.php create mode 100644 user/plugins/login/vendor/bacon/bacon-qr-code/tests/BaconQrCode/Renderer/Text/TextTest.php create mode 100644 user/plugins/login/vendor/bacon/bacon-qr-code/tests/bootstrap.php create mode 100644 user/plugins/login/vendor/bacon/bacon-qr-code/tests/phpunit.xml create mode 100644 user/plugins/login/vendor/birke/rememberme/.gitignore create mode 100644 user/plugins/login/vendor/birke/rememberme/LICENSE create mode 100644 user/plugins/login/vendor/birke/rememberme/README.md create mode 100644 user/plugins/login/vendor/birke/rememberme/composer.json create mode 100644 user/plugins/login/vendor/birke/rememberme/example/action.php create mode 100644 user/plugins/login/vendor/birke/rememberme/example/css/style.css create mode 100644 user/plugins/login/vendor/birke/rememberme/example/index.php create mode 100644 user/plugins/login/vendor/birke/rememberme/example/templates/cookie_was_stolen.php create mode 100644 user/plugins/login/vendor/birke/rememberme/example/templates/login.php create mode 100644 user/plugins/login/vendor/birke/rememberme/example/templates/user_is_logged_in.php create mode 100644 user/plugins/login/vendor/birke/rememberme/phpunit.xml create mode 100644 user/plugins/login/vendor/birke/rememberme/src/Rememberme/Authenticator.php create mode 100644 user/plugins/login/vendor/birke/rememberme/src/Rememberme/Cookie.php create mode 100644 user/plugins/login/vendor/birke/rememberme/src/Rememberme/Storage/DB.php create mode 100644 user/plugins/login/vendor/birke/rememberme/src/Rememberme/Storage/File.php create mode 100644 user/plugins/login/vendor/birke/rememberme/src/Rememberme/Storage/PDO.php create mode 100644 user/plugins/login/vendor/birke/rememberme/src/Rememberme/Storage/StorageInterface.php create mode 100644 user/plugins/login/vendor/birke/rememberme/test/CookieTest.php create mode 100644 user/plugins/login/vendor/birke/rememberme/test/RemembermeTest.php create mode 100644 user/plugins/login/vendor/birke/rememberme/test/Storage/PDO.php create mode 100644 user/plugins/login/vendor/birke/rememberme/test/Storage/tokens.xml create mode 100644 user/plugins/login/vendor/birke/rememberme/test/bootstrap.php create mode 100644 user/plugins/login/vendor/composer/ClassLoader.php create mode 100644 user/plugins/login/vendor/composer/InstalledVersions.php create mode 100644 user/plugins/login/vendor/composer/LICENSE create mode 100644 user/plugins/login/vendor/composer/autoload_classmap.php create mode 100644 user/plugins/login/vendor/composer/autoload_files.php create mode 100644 user/plugins/login/vendor/composer/autoload_namespaces.php create mode 100644 user/plugins/login/vendor/composer/autoload_psr4.php create mode 100644 user/plugins/login/vendor/composer/autoload_real.php create mode 100644 user/plugins/login/vendor/composer/autoload_static.php create mode 100644 user/plugins/login/vendor/composer/installed.json create mode 100644 user/plugins/login/vendor/composer/installed.php create mode 100644 user/plugins/login/vendor/composer/platform_check.php create mode 100644 user/plugins/login/vendor/dasprid/enum/.coveralls.yml create mode 100644 user/plugins/login/vendor/dasprid/enum/.gitignore create mode 100644 user/plugins/login/vendor/dasprid/enum/.travis.yml create mode 100644 user/plugins/login/vendor/dasprid/enum/README.md create mode 100644 user/plugins/login/vendor/dasprid/enum/composer.json create mode 100644 user/plugins/login/vendor/dasprid/enum/phpcs.xml create mode 100644 user/plugins/login/vendor/dasprid/enum/phpunit.xml.dist create mode 100644 user/plugins/login/vendor/dasprid/enum/src/AbstractEnum.php create mode 100644 user/plugins/login/vendor/dasprid/enum/src/EnumMap.php create mode 100644 user/plugins/login/vendor/dasprid/enum/src/Exception/CloneNotSupportedException.php create mode 100644 user/plugins/login/vendor/dasprid/enum/src/Exception/ExceptionInterface.php create mode 100644 user/plugins/login/vendor/dasprid/enum/src/Exception/ExpectationException.php create mode 100644 user/plugins/login/vendor/dasprid/enum/src/Exception/IllegalArgumentException.php create mode 100644 user/plugins/login/vendor/dasprid/enum/src/Exception/MismatchException.php create mode 100644 user/plugins/login/vendor/dasprid/enum/src/Exception/SerializeNotSupportedException.php create mode 100644 user/plugins/login/vendor/dasprid/enum/src/Exception/UnserializeNotSupportedException.php create mode 100644 user/plugins/login/vendor/dasprid/enum/src/NullValue.php create mode 100644 user/plugins/login/vendor/dasprid/enum/test/AbstractEnumTest.php create mode 100644 user/plugins/login/vendor/dasprid/enum/test/EnumMapTest.php create mode 100644 user/plugins/login/vendor/dasprid/enum/test/NullValueTest.php create mode 100644 user/plugins/login/vendor/dasprid/enum/test/Planet.php create mode 100644 user/plugins/login/vendor/dasprid/enum/test/WeekDay.php create mode 100644 user/plugins/login/vendor/paragonie/random_compat/CHANGELOG.md create mode 100644 user/plugins/login/vendor/paragonie/random_compat/LICENSE create mode 100644 user/plugins/login/vendor/paragonie/random_compat/RATIONALE.md create mode 100644 user/plugins/login/vendor/paragonie/random_compat/README.md create mode 100644 user/plugins/login/vendor/paragonie/random_compat/SECURITY.md create mode 100644 user/plugins/login/vendor/paragonie/random_compat/build-phar.sh create mode 100644 user/plugins/login/vendor/paragonie/random_compat/composer.json create mode 100644 user/plugins/login/vendor/paragonie/random_compat/dist/random_compat.phar.pubkey create mode 100644 user/plugins/login/vendor/paragonie/random_compat/dist/random_compat.phar.pubkey.asc create mode 100644 user/plugins/login/vendor/paragonie/random_compat/lib/byte_safe_strings.php create mode 100644 user/plugins/login/vendor/paragonie/random_compat/lib/cast_to_int.php create mode 100644 user/plugins/login/vendor/paragonie/random_compat/lib/error_polyfill.php create mode 100644 user/plugins/login/vendor/paragonie/random_compat/lib/random.php create mode 100644 user/plugins/login/vendor/paragonie/random_compat/lib/random_bytes_com_dotnet.php create mode 100644 user/plugins/login/vendor/paragonie/random_compat/lib/random_bytes_dev_urandom.php create mode 100644 user/plugins/login/vendor/paragonie/random_compat/lib/random_bytes_libsodium.php create mode 100644 user/plugins/login/vendor/paragonie/random_compat/lib/random_bytes_libsodium_legacy.php create mode 100644 user/plugins/login/vendor/paragonie/random_compat/lib/random_bytes_mcrypt.php create mode 100644 user/plugins/login/vendor/paragonie/random_compat/lib/random_bytes_openssl.php create mode 100644 user/plugins/login/vendor/paragonie/random_compat/lib/random_int.php create mode 100644 user/plugins/login/vendor/paragonie/random_compat/other/build_phar.php create mode 100644 user/plugins/login/vendor/paragonie/random_compat/other/ide_stubs/COM.php create mode 100644 user/plugins/login/vendor/paragonie/random_compat/other/ide_stubs/README.md create mode 100644 user/plugins/login/vendor/paragonie/random_compat/other/ide_stubs/com_exception.php create mode 100644 user/plugins/login/vendor/paragonie/random_compat/other/ide_stubs/libsodium.php create mode 100644 user/plugins/login/vendor/paragonie/random_compat/psalm-autoload.php create mode 100644 user/plugins/login/vendor/paragonie/random_compat/psalm.xml create mode 100644 user/plugins/login/vendor/robthree/twofactorauth/.github/FUNDING.yml create mode 100644 user/plugins/login/vendor/robthree/twofactorauth/.github/workflows/test-bacon.yml create mode 100644 user/plugins/login/vendor/robthree/twofactorauth/.github/workflows/test-endroid.yml create mode 100644 user/plugins/login/vendor/robthree/twofactorauth/.github/workflows/test.yml create mode 100644 user/plugins/login/vendor/robthree/twofactorauth/.gitignore create mode 100644 user/plugins/login/vendor/robthree/twofactorauth/LICENSE create mode 100644 user/plugins/login/vendor/robthree/twofactorauth/README.md create mode 100644 user/plugins/login/vendor/robthree/twofactorauth/TwoFactorAuth.phpproj create mode 100644 user/plugins/login/vendor/robthree/twofactorauth/TwoFactorAuth.sln create mode 100644 user/plugins/login/vendor/robthree/twofactorauth/composer.json create mode 100644 user/plugins/login/vendor/robthree/twofactorauth/demo/demo.php create mode 100644 user/plugins/login/vendor/robthree/twofactorauth/docs/_config.yml create mode 100644 user/plugins/login/vendor/robthree/twofactorauth/docs/_layouts/post.html create mode 100644 user/plugins/login/vendor/robthree/twofactorauth/docs/assets/css/style.scss create mode 100644 user/plugins/login/vendor/robthree/twofactorauth/docs/getting-started.md create mode 100644 user/plugins/login/vendor/robthree/twofactorauth/docs/improved-code-verification.md create mode 100644 user/plugins/login/vendor/robthree/twofactorauth/docs/index.md create mode 100644 user/plugins/login/vendor/robthree/twofactorauth/docs/optional-configuration.md create mode 100644 user/plugins/login/vendor/robthree/twofactorauth/docs/qr-codes.md create mode 100644 user/plugins/login/vendor/robthree/twofactorauth/docs/qr-codes/bacon.md create mode 100644 user/plugins/login/vendor/robthree/twofactorauth/docs/qr-codes/endroid.md create mode 100644 user/plugins/login/vendor/robthree/twofactorauth/docs/qr-codes/image-charts.md create mode 100644 user/plugins/login/vendor/robthree/twofactorauth/docs/qr-codes/qr-server.md create mode 100644 user/plugins/login/vendor/robthree/twofactorauth/docs/qr-codes/qrickit.md create mode 100644 user/plugins/login/vendor/robthree/twofactorauth/lib/Providers/Qr/BaconQrCodeProvider.php create mode 100644 user/plugins/login/vendor/robthree/twofactorauth/lib/Providers/Qr/BaseHTTPQRCodeProvider.php create mode 100644 user/plugins/login/vendor/robthree/twofactorauth/lib/Providers/Qr/EndroidQrCodeProvider.php create mode 100644 user/plugins/login/vendor/robthree/twofactorauth/lib/Providers/Qr/EndroidQrCodeWithLogoProvider.php create mode 100644 user/plugins/login/vendor/robthree/twofactorauth/lib/Providers/Qr/GoogleChartsQrCodeProvider.php create mode 100644 user/plugins/login/vendor/robthree/twofactorauth/lib/Providers/Qr/HandlesDataUri.php create mode 100644 user/plugins/login/vendor/robthree/twofactorauth/lib/Providers/Qr/IQRCodeProvider.php create mode 100644 user/plugins/login/vendor/robthree/twofactorauth/lib/Providers/Qr/ImageChartsQRCodeProvider.php create mode 100644 user/plugins/login/vendor/robthree/twofactorauth/lib/Providers/Qr/QRException.php create mode 100644 user/plugins/login/vendor/robthree/twofactorauth/lib/Providers/Qr/QRServerProvider.php create mode 100644 user/plugins/login/vendor/robthree/twofactorauth/lib/Providers/Qr/QRicketProvider.php create mode 100644 user/plugins/login/vendor/robthree/twofactorauth/lib/Providers/Rng/CSRNGProvider.php create mode 100644 user/plugins/login/vendor/robthree/twofactorauth/lib/Providers/Rng/HashRNGProvider.php create mode 100644 user/plugins/login/vendor/robthree/twofactorauth/lib/Providers/Rng/IRNGProvider.php create mode 100644 user/plugins/login/vendor/robthree/twofactorauth/lib/Providers/Rng/MCryptRNGProvider.php create mode 100644 user/plugins/login/vendor/robthree/twofactorauth/lib/Providers/Rng/OpenSSLRNGProvider.php create mode 100644 user/plugins/login/vendor/robthree/twofactorauth/lib/Providers/Rng/RNGException.php create mode 100644 user/plugins/login/vendor/robthree/twofactorauth/lib/Providers/Time/HttpTimeProvider.php create mode 100644 user/plugins/login/vendor/robthree/twofactorauth/lib/Providers/Time/ITimeProvider.php create mode 100644 user/plugins/login/vendor/robthree/twofactorauth/lib/Providers/Time/LocalMachineTimeProvider.php create mode 100644 user/plugins/login/vendor/robthree/twofactorauth/lib/Providers/Time/NTPTimeProvider.php create mode 100644 user/plugins/login/vendor/robthree/twofactorauth/lib/Providers/Time/TimeException.php create mode 100644 user/plugins/login/vendor/robthree/twofactorauth/lib/TwoFactorAuth.php create mode 100644 user/plugins/login/vendor/robthree/twofactorauth/lib/TwoFactorAuthException.php create mode 100644 user/plugins/login/vendor/robthree/twofactorauth/logo.png create mode 100644 user/plugins/login/vendor/robthree/twofactorauth/multifactorauthforeveryone.png create mode 100644 user/plugins/login/vendor/robthree/twofactorauth/phpunit.xml create mode 100644 user/plugins/login/vendor/robthree/twofactorauth/tests/MightNotMakeAssertions.php create mode 100644 user/plugins/login/vendor/robthree/twofactorauth/tests/Providers/Qr/IQRCodeProviderTest.php create mode 100644 user/plugins/login/vendor/robthree/twofactorauth/tests/Providers/Qr/TestQrProvider.php create mode 100644 user/plugins/login/vendor/robthree/twofactorauth/tests/Providers/Rng/CSRNGProviderTest.php create mode 100644 user/plugins/login/vendor/robthree/twofactorauth/tests/Providers/Rng/HashRNGProviderTest.php create mode 100644 user/plugins/login/vendor/robthree/twofactorauth/tests/Providers/Rng/IRNGProviderTest.php create mode 100644 user/plugins/login/vendor/robthree/twofactorauth/tests/Providers/Rng/MCryptRNGProviderTest.php create mode 100644 user/plugins/login/vendor/robthree/twofactorauth/tests/Providers/Rng/NeedsRngLengths.php create mode 100644 user/plugins/login/vendor/robthree/twofactorauth/tests/Providers/Rng/OpenSSLRNGProviderTest.php create mode 100644 user/plugins/login/vendor/robthree/twofactorauth/tests/Providers/Rng/TestRNGProvider.php create mode 100644 user/plugins/login/vendor/robthree/twofactorauth/tests/Providers/Time/ITimeProviderTest.php create mode 100644 user/plugins/login/vendor/robthree/twofactorauth/tests/Providers/Time/TestTimeProvider.php create mode 100644 user/plugins/login/vendor/robthree/twofactorauth/tests/TwoFactorAuthTest.php create mode 100644 user/plugins/login/vendor/robthree/twofactorauth/testsDependency/BaconQRCodeTest.php create mode 100644 user/plugins/login/vendor/robthree/twofactorauth/testsDependency/EndroidQRCodeTest.php create mode 100644 user/plugins/pagination/CHANGELOG.md create mode 100644 user/plugins/pagination/LICENSE create mode 100644 user/plugins/pagination/README.md create mode 100644 user/plugins/pagination/blueprints.yaml create mode 100644 user/plugins/pagination/classes/plugin/PaginationHelper.php create mode 100644 user/plugins/pagination/classes/plugin/PaginationPage.php create mode 100644 user/plugins/pagination/composer.json create mode 100644 user/plugins/pagination/composer.lock create mode 100644 user/plugins/pagination/css/pagination.css create mode 100644 user/plugins/pagination/hebe.json create mode 100644 user/plugins/pagination/languages.yaml create mode 100644 user/plugins/pagination/pagination.php create mode 100644 user/plugins/pagination/pagination.yaml create mode 100644 user/plugins/pagination/templates/partials/pagination.html.twig create mode 100644 user/plugins/pagination/vendor/autoload.php create mode 100644 user/plugins/pagination/vendor/composer/ClassLoader.php create mode 100644 user/plugins/pagination/vendor/composer/LICENSE create mode 100644 user/plugins/pagination/vendor/composer/autoload_classmap.php create mode 100644 user/plugins/pagination/vendor/composer/autoload_namespaces.php create mode 100644 user/plugins/pagination/vendor/composer/autoload_psr4.php create mode 100644 user/plugins/pagination/vendor/composer/autoload_real.php create mode 100644 user/plugins/pagination/vendor/composer/autoload_static.php create mode 100644 user/plugins/pagination/vendor/composer/installed.json create mode 100644 user/plugins/problems/CHANGELOG.md create mode 100644 user/plugins/problems/LICENSE create mode 100644 user/plugins/problems/README.md create mode 100644 user/plugins/problems/assets/cli.png create mode 100644 user/plugins/problems/assets/code-3.svg create mode 100644 user/plugins/problems/assets/grav-logo.svg create mode 100644 user/plugins/problems/assets/heart.svg create mode 100644 user/plugins/problems/assets/readme_1.jpg create mode 100644 user/plugins/problems/blueprints.yaml create mode 100644 user/plugins/problems/classes/Problems/Apache.php create mode 100644 user/plugins/problems/classes/Problems/Base/Problem.php create mode 100644 user/plugins/problems/classes/Problems/Base/ProblemChecker.php create mode 100644 user/plugins/problems/classes/Problems/EssentialFolders.php create mode 100644 user/plugins/problems/classes/Problems/PHPModules.php create mode 100644 user/plugins/problems/classes/Problems/PHPVersion.php create mode 100644 user/plugins/problems/classes/Problems/Permissions.php create mode 100644 user/plugins/problems/cli/CheckCommand.php create mode 100644 user/plugins/problems/composer.json create mode 100644 user/plugins/problems/composer.lock create mode 100644 user/plugins/problems/css/admin.css create mode 100644 user/plugins/problems/css/admin.min.css create mode 100755 user/plugins/problems/css/spectre-icons.css create mode 100755 user/plugins/problems/css/spectre-icons.min.css create mode 100755 user/plugins/problems/css/spectre.css create mode 100755 user/plugins/problems/css/spectre.min.css create mode 100644 user/plugins/problems/gulpfile.js create mode 100644 user/plugins/problems/languages.yaml create mode 100755 user/plugins/problems/package.json create mode 100644 user/plugins/problems/problems.php create mode 100644 user/plugins/problems/problems.yaml create mode 100755 user/plugins/problems/scss/_accordions.scss create mode 100755 user/plugins/problems/scss/_animations.scss create mode 100755 user/plugins/problems/scss/_asian.scss create mode 100755 user/plugins/problems/scss/_autocomplete.scss create mode 100755 user/plugins/problems/scss/_avatars.scss create mode 100755 user/plugins/problems/scss/_badges.scss create mode 100755 user/plugins/problems/scss/_bars.scss create mode 100755 user/plugins/problems/scss/_base.scss create mode 100755 user/plugins/problems/scss/_breadcrumbs.scss create mode 100755 user/plugins/problems/scss/_buttons.scss create mode 100755 user/plugins/problems/scss/_calendars.scss create mode 100755 user/plugins/problems/scss/_cards.scss create mode 100755 user/plugins/problems/scss/_carousels.scss create mode 100755 user/plugins/problems/scss/_chips.scss create mode 100755 user/plugins/problems/scss/_codes.scss create mode 100755 user/plugins/problems/scss/_comparison-sliders.scss create mode 100755 user/plugins/problems/scss/_dropdowns.scss create mode 100755 user/plugins/problems/scss/_empty.scss create mode 100755 user/plugins/problems/scss/_filters.scss create mode 100755 user/plugins/problems/scss/_forms.scss create mode 100755 user/plugins/problems/scss/_icons.scss create mode 100755 user/plugins/problems/scss/_labels.scss create mode 100755 user/plugins/problems/scss/_layout.scss create mode 100755 user/plugins/problems/scss/_media.scss create mode 100755 user/plugins/problems/scss/_menus.scss create mode 100755 user/plugins/problems/scss/_meters.scss create mode 100755 user/plugins/problems/scss/_mixins.scss create mode 100755 user/plugins/problems/scss/_modals.scss create mode 100755 user/plugins/problems/scss/_navbar.scss create mode 100755 user/plugins/problems/scss/_navs.scss create mode 100755 user/plugins/problems/scss/_normalize.scss create mode 100755 user/plugins/problems/scss/_off-canvas.scss create mode 100755 user/plugins/problems/scss/_pagination.scss create mode 100755 user/plugins/problems/scss/_panels.scss create mode 100755 user/plugins/problems/scss/_parallax.scss create mode 100755 user/plugins/problems/scss/_popovers.scss create mode 100644 user/plugins/problems/scss/_preset.scss create mode 100644 user/plugins/problems/scss/_problems.scss create mode 100755 user/plugins/problems/scss/_progress.scss create mode 100755 user/plugins/problems/scss/_sliders.scss create mode 100755 user/plugins/problems/scss/_steps.scss create mode 100755 user/plugins/problems/scss/_tables.scss create mode 100755 user/plugins/problems/scss/_tabs.scss create mode 100755 user/plugins/problems/scss/_tiles.scss create mode 100755 user/plugins/problems/scss/_timelines.scss create mode 100755 user/plugins/problems/scss/_toasts.scss create mode 100755 user/plugins/problems/scss/_tooltips.scss create mode 100755 user/plugins/problems/scss/_typography.scss create mode 100755 user/plugins/problems/scss/_utilities.scss create mode 100755 user/plugins/problems/scss/_variables.scss create mode 100644 user/plugins/problems/scss/admin.scss create mode 100755 user/plugins/problems/scss/icons/_icons-action.scss create mode 100755 user/plugins/problems/scss/icons/_icons-core.scss create mode 100755 user/plugins/problems/scss/icons/_icons-navigation.scss create mode 100755 user/plugins/problems/scss/icons/_icons-object.scss create mode 100755 user/plugins/problems/scss/mixins/_avatar.scss create mode 100755 user/plugins/problems/scss/mixins/_button.scss create mode 100755 user/plugins/problems/scss/mixins/_clearfix.scss create mode 100755 user/plugins/problems/scss/mixins/_color.scss create mode 100755 user/plugins/problems/scss/mixins/_label.scss create mode 100755 user/plugins/problems/scss/mixins/_position.scss create mode 100755 user/plugins/problems/scss/mixins/_shadow.scss create mode 100755 user/plugins/problems/scss/mixins/_text.scss create mode 100755 user/plugins/problems/scss/mixins/_toast.scss create mode 100755 user/plugins/problems/scss/mixins/_transition.scss create mode 100755 user/plugins/problems/scss/spectre-icons.scss create mode 100755 user/plugins/problems/scss/spectre.scss create mode 100755 user/plugins/problems/scss/utilities/_colors.scss create mode 100755 user/plugins/problems/scss/utilities/_cursors.scss create mode 100755 user/plugins/problems/scss/utilities/_display.scss create mode 100755 user/plugins/problems/scss/utilities/_divider.scss create mode 100755 user/plugins/problems/scss/utilities/_loading.scss create mode 100755 user/plugins/problems/scss/utilities/_position.scss create mode 100755 user/plugins/problems/scss/utilities/_shapes.scss create mode 100755 user/plugins/problems/scss/utilities/_text.scss create mode 100644 user/plugins/problems/templates/problems.html.twig create mode 100644 user/plugins/problems/templates/reports/problems-report.html.twig create mode 100644 user/plugins/problems/vendor/autoload.php create mode 100644 user/plugins/problems/vendor/composer/ClassLoader.php create mode 100644 user/plugins/problems/vendor/composer/InstalledVersions.php create mode 100644 user/plugins/problems/vendor/composer/LICENSE create mode 100644 user/plugins/problems/vendor/composer/autoload_classmap.php create mode 100644 user/plugins/problems/vendor/composer/autoload_namespaces.php create mode 100644 user/plugins/problems/vendor/composer/autoload_psr4.php create mode 100644 user/plugins/problems/vendor/composer/autoload_real.php create mode 100644 user/plugins/problems/vendor/composer/autoload_static.php create mode 100644 user/plugins/problems/vendor/composer/installed.json create mode 100644 user/plugins/problems/vendor/composer/installed.php create mode 100644 user/screenshot.jpg create mode 100644 user/themes/.gitkeep create mode 100644 user/themes/custom-mediator/CHANGELOG.md create mode 100644 user/themes/custom-mediator/LICENSE create mode 100644 user/themes/custom-mediator/README.md create mode 100644 user/themes/custom-mediator/blueprints.yaml create mode 100644 user/themes/custom-mediator/css/custom.css create mode 100644 user/themes/custom-mediator/custom-mediator.php create mode 100644 user/themes/custom-mediator/custom-mediator.yaml create mode 100644 user/themes/custom-mediator/images/favicon.png create mode 100644 user/themes/custom-mediator/js/index.js create mode 100644 user/themes/custom-mediator/languages.yaml create mode 100644 user/themes/custom-mediator/screenshot.jpg create mode 100644 user/themes/custom-mediator/templates/default.html.twig create mode 100644 user/themes/custom-mediator/templates/form2.html.twig create mode 100644 user/themes/custom-mediator/templates/partials/article.html.twig create mode 100644 user/themes/custom-mediator/templates/partials/base.html.twig create mode 100644 user/themes/custom-mediator/templates/partials/pagination.html.twig create mode 100644 user/themes/custom-mediator/templates/partials/postmeta.html.twig create mode 100644 user/themes/custom-mediator/templates/post.html.twig create mode 100644 user/themes/custom-mediator/thumbnail.jpg create mode 100644 user/themes/custom-mediator/vendors/fontawesome/LICENSE.txt create mode 100644 user/themes/custom-mediator/vendors/fontawesome/attribution.js create mode 100644 user/themes/custom-mediator/vendors/fontawesome/css/all.min.css create mode 100644 user/themes/custom-mediator/vendors/fontawesome/webfonts/fa-brands-400.eot create mode 100644 user/themes/custom-mediator/vendors/fontawesome/webfonts/fa-brands-400.svg create mode 100644 user/themes/custom-mediator/vendors/fontawesome/webfonts/fa-brands-400.ttf create mode 100644 user/themes/custom-mediator/vendors/fontawesome/webfonts/fa-brands-400.woff create mode 100644 user/themes/custom-mediator/vendors/fontawesome/webfonts/fa-brands-400.woff2 create mode 100644 user/themes/custom-mediator/vendors/fontawesome/webfonts/fa-regular-400.eot create mode 100644 user/themes/custom-mediator/vendors/fontawesome/webfonts/fa-regular-400.svg create mode 100644 user/themes/custom-mediator/vendors/fontawesome/webfonts/fa-regular-400.ttf create mode 100644 user/themes/custom-mediator/vendors/fontawesome/webfonts/fa-regular-400.woff create mode 100644 user/themes/custom-mediator/vendors/fontawesome/webfonts/fa-regular-400.woff2 create mode 100644 user/themes/custom-mediator/vendors/fontawesome/webfonts/fa-solid-900.eot create mode 100644 user/themes/custom-mediator/vendors/fontawesome/webfonts/fa-solid-900.svg create mode 100644 user/themes/custom-mediator/vendors/fontawesome/webfonts/fa-solid-900.ttf create mode 100644 user/themes/custom-mediator/vendors/fontawesome/webfonts/fa-solid-900.woff create mode 100644 user/themes/custom-mediator/vendors/fontawesome/webfonts/fa-solid-900.woff2 create mode 100644 user/themes/custom-mediator/vendors/fonts/LICENSE.txt create mode 100644 user/themes/custom-mediator/vendors/fonts/css/all.min.css create mode 100644 user/themes/custom-mediator/vendors/fonts/webfonts/linuxlibertine/400.woff create mode 100644 user/themes/custom-mediator/vendors/fonts/webfonts/linuxlibertine/400i.woff create mode 100644 user/themes/custom-mediator/vendors/fonts/webfonts/linuxlibertine/700.woff create mode 100644 user/themes/custom-mediator/vendors/fonts/webfonts/linuxlibertine/700i.woff create mode 100644 user/themes/custom-mediator/vendors/fonts/webfonts/opensans/400.woff create mode 100644 user/themes/custom-mediator/vendors/fonts/webfonts/opensans/400i.woff create mode 100644 user/themes/custom-mediator/vendors/fonts/webfonts/opensans/700.woff create mode 100644 user/themes/custom-mediator/vendors/fonts/webfonts/opensans/700i.woff create mode 100644 user/themes/mediator/CHANGELOG.md create mode 100644 user/themes/mediator/LICENSE create mode 100644 user/themes/mediator/README.md create mode 100644 user/themes/mediator/assets/readme_1.png create mode 100644 user/themes/mediator/blueprints.yaml create mode 100644 user/themes/mediator/blueprints/.gitkeep create mode 100644 user/themes/mediator/css/main.css create mode 100644 user/themes/mediator/css/main.css.map create mode 100644 user/themes/mediator/css/normalize.css create mode 100644 user/themes/mediator/css/print.css create mode 100644 user/themes/mediator/images/favicon.png create mode 100644 user/themes/mediator/js/index.js create mode 100644 user/themes/mediator/js/jquery.fitvids.js create mode 100644 user/themes/mediator/js/min/highlight.pack-ck.js create mode 100644 user/themes/mediator/js/min/index-ck.js create mode 100644 user/themes/mediator/js/min/jquery.fitvids-ck.js create mode 100644 user/themes/mediator/js/min/jquery.ghostHunter.min-ck.js create mode 100644 user/themes/mediator/js/min/readingTime.min-ck.js create mode 100644 user/themes/mediator/js/readingTime.min.js create mode 100644 user/themes/mediator/mediator.php create mode 100644 user/themes/mediator/mediator.yaml create mode 100644 user/themes/mediator/screenshot.jpg create mode 100644 user/themes/mediator/scss/main.scss create mode 100644 user/themes/mediator/scss/vendor/bourbon/_bourbon-deprecated-upcoming.scss create mode 100644 user/themes/mediator/scss/vendor/bourbon/_bourbon.scss create mode 100644 user/themes/mediator/scss/vendor/bourbon/addons/_button.scss create mode 100644 user/themes/mediator/scss/vendor/bourbon/addons/_clearfix.scss create mode 100644 user/themes/mediator/scss/vendor/bourbon/addons/_directional-values.scss create mode 100644 user/themes/mediator/scss/vendor/bourbon/addons/_ellipsis.scss create mode 100644 user/themes/mediator/scss/vendor/bourbon/addons/_font-family.scss create mode 100644 user/themes/mediator/scss/vendor/bourbon/addons/_hide-text.scss create mode 100644 user/themes/mediator/scss/vendor/bourbon/addons/_html5-input-types.scss create mode 100644 user/themes/mediator/scss/vendor/bourbon/addons/_position.scss create mode 100644 user/themes/mediator/scss/vendor/bourbon/addons/_prefixer.scss create mode 100644 user/themes/mediator/scss/vendor/bourbon/addons/_rem.scss create mode 100644 user/themes/mediator/scss/vendor/bourbon/addons/_retina-image.scss create mode 100644 user/themes/mediator/scss/vendor/bourbon/addons/_size.scss create mode 100644 user/themes/mediator/scss/vendor/bourbon/addons/_timing-functions.scss create mode 100644 user/themes/mediator/scss/vendor/bourbon/addons/_triangle.scss create mode 100644 user/themes/mediator/scss/vendor/bourbon/addons/_word-wrap.scss create mode 100644 user/themes/mediator/scss/vendor/bourbon/css3/_animation.scss create mode 100644 user/themes/mediator/scss/vendor/bourbon/css3/_appearance.scss create mode 100644 user/themes/mediator/scss/vendor/bourbon/css3/_backface-visibility.scss create mode 100644 user/themes/mediator/scss/vendor/bourbon/css3/_background-image.scss create mode 100644 user/themes/mediator/scss/vendor/bourbon/css3/_background.scss create mode 100644 user/themes/mediator/scss/vendor/bourbon/css3/_border-image.scss create mode 100644 user/themes/mediator/scss/vendor/bourbon/css3/_border-radius.scss create mode 100644 user/themes/mediator/scss/vendor/bourbon/css3/_box-sizing.scss create mode 100644 user/themes/mediator/scss/vendor/bourbon/css3/_calc.scss create mode 100644 user/themes/mediator/scss/vendor/bourbon/css3/_columns.scss create mode 100644 user/themes/mediator/scss/vendor/bourbon/css3/_filter.scss create mode 100644 user/themes/mediator/scss/vendor/bourbon/css3/_flex-box.scss create mode 100644 user/themes/mediator/scss/vendor/bourbon/css3/_font-face.scss create mode 100644 user/themes/mediator/scss/vendor/bourbon/css3/_font-feature-settings.scss create mode 100644 user/themes/mediator/scss/vendor/bourbon/css3/_hidpi-media-query.scss create mode 100644 user/themes/mediator/scss/vendor/bourbon/css3/_hyphens.scss create mode 100644 user/themes/mediator/scss/vendor/bourbon/css3/_image-rendering.scss create mode 100644 user/themes/mediator/scss/vendor/bourbon/css3/_keyframes.scss create mode 100644 user/themes/mediator/scss/vendor/bourbon/css3/_linear-gradient.scss create mode 100644 user/themes/mediator/scss/vendor/bourbon/css3/_perspective.scss create mode 100644 user/themes/mediator/scss/vendor/bourbon/css3/_placeholder.scss create mode 100644 user/themes/mediator/scss/vendor/bourbon/css3/_radial-gradient.scss create mode 100644 user/themes/mediator/scss/vendor/bourbon/css3/_transform.scss create mode 100644 user/themes/mediator/scss/vendor/bourbon/css3/_transition.scss create mode 100644 user/themes/mediator/scss/vendor/bourbon/css3/_user-select.scss create mode 100644 user/themes/mediator/scss/vendor/bourbon/functions/_assign.scss create mode 100644 user/themes/mediator/scss/vendor/bourbon/functions/_color-lightness.scss create mode 100644 user/themes/mediator/scss/vendor/bourbon/functions/_flex-grid.scss create mode 100644 user/themes/mediator/scss/vendor/bourbon/functions/_golden-ratio.scss create mode 100644 user/themes/mediator/scss/vendor/bourbon/functions/_grid-width.scss create mode 100644 user/themes/mediator/scss/vendor/bourbon/functions/_modular-scale.scss create mode 100644 user/themes/mediator/scss/vendor/bourbon/functions/_px-to-em.scss create mode 100644 user/themes/mediator/scss/vendor/bourbon/functions/_px-to-rem.scss create mode 100644 user/themes/mediator/scss/vendor/bourbon/functions/_strip-units.scss create mode 100644 user/themes/mediator/scss/vendor/bourbon/functions/_tint-shade.scss create mode 100644 user/themes/mediator/scss/vendor/bourbon/functions/_transition-property-name.scss create mode 100644 user/themes/mediator/scss/vendor/bourbon/functions/_unpack.scss create mode 100644 user/themes/mediator/scss/vendor/bourbon/helpers/_convert-units.scss create mode 100644 user/themes/mediator/scss/vendor/bourbon/helpers/_gradient-positions-parser.scss create mode 100644 user/themes/mediator/scss/vendor/bourbon/helpers/_is-num.scss create mode 100644 user/themes/mediator/scss/vendor/bourbon/helpers/_linear-angle-parser.scss create mode 100644 user/themes/mediator/scss/vendor/bourbon/helpers/_linear-gradient-parser.scss create mode 100644 user/themes/mediator/scss/vendor/bourbon/helpers/_linear-positions-parser.scss create mode 100644 user/themes/mediator/scss/vendor/bourbon/helpers/_linear-side-corner-parser.scss create mode 100644 user/themes/mediator/scss/vendor/bourbon/helpers/_radial-arg-parser.scss create mode 100644 user/themes/mediator/scss/vendor/bourbon/helpers/_radial-gradient-parser.scss create mode 100644 user/themes/mediator/scss/vendor/bourbon/helpers/_radial-positions-parser.scss create mode 100644 user/themes/mediator/scss/vendor/bourbon/helpers/_render-gradients.scss create mode 100644 user/themes/mediator/scss/vendor/bourbon/helpers/_shape-size-stripper.scss create mode 100644 user/themes/mediator/scss/vendor/bourbon/helpers/_str-to-num.scss create mode 100644 user/themes/mediator/scss/vendor/bourbon/settings/_prefixer.scss create mode 100644 user/themes/mediator/scss/vendor/bourbon/settings/_px-to-em.scss create mode 100644 user/themes/mediator/templates/default.html.twig create mode 100644 user/themes/mediator/templates/error.html.twig create mode 100644 user/themes/mediator/templates/page.html.twig create mode 100644 user/themes/mediator/templates/partials/article.html.twig create mode 100644 user/themes/mediator/templates/partials/base.html.twig create mode 100644 user/themes/mediator/templates/partials/javascripts.html.twig create mode 100644 user/themes/mediator/templates/partials/pagination.html.twig create mode 100644 user/themes/mediator/templates/partials/postmeta.html.twig create mode 100644 user/themes/mediator/templates/post.html.twig create mode 100644 user/themes/mediator/thumbnail.jpg diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..a0fe874 --- /dev/null +++ b/.gitignore @@ -0,0 +1,11 @@ +.github/* +.phan/* +assets/* +backup/* +bin/* +cache/* +images/* +system/* +tmp* +vendor/* +webserver-configs/* \ No newline at end of file diff --git a/.htaccess b/.htaccess new file mode 100644 index 0000000..83063ae --- /dev/null +++ b/.htaccess @@ -0,0 +1,78 @@ + + +RewriteEngine On + +## Begin RewriteBase +# If you are getting 500 or 404 errors on subpages, you may have to uncomment the RewriteBase entry +# You should change the '/' to your appropriate subfolder. For example if you have +# your Grav install at the root of your site '/' should work, else it might be something +# along the lines of: RewriteBase / +## + +# RewriteBase / + +## End - RewriteBase + +## Begin - X-Forwarded-Proto +# In some hosted or load balanced environments, SSL negotiation happens upstream. +# In order for Grav to recognize the connection as secure, you need to uncomment +# the following lines. +# +# RewriteCond %{HTTP:X-Forwarded-Proto} https +# RewriteRule .* - [E=HTTPS:on] +# +## End - X-Forwarded-Proto + +## Begin - Exploits +# If you experience problems on your site block out the operations listed below +# This attempts to block the most common type of exploit `attempts` to Grav +# +# Block out any script trying to use twig tags in URL. +RewriteCond %{REQUEST_URI} ({{|}}|{%|%}) [OR] +RewriteCond %{QUERY_STRING} ({{|}}|{%25|%25}) [OR] +# Block out any script trying to base64_encode data within the URL. +RewriteCond %{QUERY_STRING} base64_encode[^(]*\([^)]*\) [OR] +# Block out any script that includes a \n
\n
\n \n
\n
\n Turbo-charge your Grav site - from the creators of Grav\n Downloads Pro - Powerful download manager directly integrated with Grav\n Algolia Pro - Class-leading AI-powered search made easy for Grav\n SEO-Magic - Advanced SEO tool for Grav with automatic webshot generator\n Typhoon - The most powerful Grav theme ever built, based on Tailwind 3\n NextGen Editor - The most advanced WYSIWYM editor for Grav\n Cloudflare Manager - Configure and manage your domain right within the admin\n Lightbox Gallery - A light, versatile and mobile friendly Lightbox Gallery\n
\n Learn more\n
\n" + type: notice + link: 'https://getgrav.org/premium' + location: + - dashboard + - plugins + - themes + plugins: + - + id: 27 + date: '2020-02-21 00:01' + message: "\n\nLoading...\n\n\n
\n
\n \n
\n
\n Turbo-charge your Grav site - from the creators of Grav\n Downloads Pro - Powerful download manager directly integrated with Grav\n Algolia Pro - Class-leading AI-powered search made easy for Grav\n SEO-Magic - Advanced SEO tool for Grav with automatic webshot generator\n Typhoon - The most powerful Grav theme ever built, based on Tailwind 3\n NextGen Editor - The most advanced WYSIWYM editor for Grav\n Cloudflare Manager - Configure and manage your domain right within the admin\n Lightbox Gallery - A light, versatile and mobile friendly Lightbox Gallery\n
\n Learn more\n
\n" + type: notice + link: 'https://getgrav.org/premium' + location: + - dashboard + - plugins + - themes + themes: + - + id: 27 + date: '2020-02-21 00:01' + message: "\n\nLoading...\n\n\n
\n
\n \n
\n
\n Turbo-charge your Grav site - from the creators of Grav\n Downloads Pro - Powerful download manager directly integrated with Grav\n Algolia Pro - Class-leading AI-powered search made easy for Grav\n SEO-Magic - Advanced SEO tool for Grav with automatic webshot generator\n Typhoon - The most powerful Grav theme ever built, based on Tailwind 3\n NextGen Editor - The most advanced WYSIWYM editor for Grav\n Cloudflare Manager - Configure and manage your domain right within the admin\n Lightbox Gallery - A light, versatile and mobile friendly Lightbox Gallery\n
\n Learn more\n
\n" + type: notice + link: 'https://getgrav.org/premium' + location: + - dashboard + - plugins + - themes + none: + - + id: 15 + date: '2017-11-16 12:15' + message: 'We won! Grav voted "Best Flat File CMS" in the 2017 CMS Critic Awards!' + link: 'https://getgrav.org/blog/cms-critic-award-2017' + type: note + location: + - none diff --git a/user/data/notifications/boyatzon.yaml b/user/data/notifications/boyatzon.yaml new file mode 100644 index 0000000..5abb888 --- /dev/null +++ b/user/data/notifications/boyatzon.yaml @@ -0,0 +1 @@ +27: 'Sun, 08 Aug 2021 11:27:10 +0200' diff --git a/user/images/avatar.jpg b/user/images/avatar.jpg new file mode 100644 index 0000000000000000000000000000000000000000..5ce36bc95eb2688b0c0cf340249a2262e1d4a10b GIT binary patch literal 23508 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 AN&o-= literal 0 HcmV?d00001 diff --git a/user/images/logo.jpg b/user/images/logo.jpg new file mode 100644 index 0000000000000000000000000000000000000000..5ce36bc95eb2688b0c0cf340249a2262e1d4a10b GIT binary patch literal 23508 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 AN&o-= literal 0 HcmV?d00001 diff --git a/user/localhost/config/plugins/comments.yaml b/user/localhost/config/plugins/comments.yaml new file mode 100644 index 0000000..d1496b1 --- /dev/null +++ b/user/localhost/config/plugins/comments.yaml @@ -0,0 +1,63 @@ +enabled: true +enable_on_routes: + - /blog +disable_on_routes: + - /blog/blog-post-to-ignore + - /ignore-this-route +form: + name: comments + fields: + - + name: name + label: PLUGIN_COMMENTS.NAME_LABEL + placeholder: PLUGIN_COMMENTS.NAME_PLACEHOLDER + autocomplete: 'on' + type: text + validate: + required: true + - + name: email + label: PLUGIN_COMMENTS.EMAIL_LABEL + placeholder: PLUGIN_COMMENTS.EMAIL_PLACEHOLDER + type: email + validate: + required: true + - + name: text + label: PLUGIN_COMMENTS.MESSAGE_LABEL + placeholder: PLUGIN_COMMENTS.MESSAGE_PLACEHOLDER + type: textarea + validate: + required: true + - + name: date + type: hidden + process: + fillWithCurrentDateTime: true + - + name: title + type: hidden + evaluateDefault: grav.page.header.title + - + name: lang + type: hidden + evaluateDefault: grav.language.getLanguage + - + name: path + type: hidden + evaluateDefault: grav.uri.path + buttons: + - + type: submit + value: PLUGIN_COMMENTS.SUBMIT_COMMENT_BUTTON_TEXT + process: + - + email: + subject: PLUGIN_COMMENTS.EMAIL_NEW_COMMENT_SUBJECT + body: '{% include ''forms/data.html.twig'' %}' + - + addComment: null + - + message: PLUGIN_COMMENTS.THANK_YOU_MESSAGE + - + reset: true diff --git a/user/localhost/config/plugins/email.yaml b/user/localhost/config/plugins/email.yaml new file mode 100644 index 0000000..581d535 --- /dev/null +++ b/user/localhost/config/plugins/email.yaml @@ -0,0 +1,30 @@ +enabled: true +from: hello@boyatzon.ch +from_name: 'Site Boyatzon.ch' +to: hello@boyatzon.ch +to_name: Boyatzon.ch +queue: + enabled: false + flush_frequency: '* * * * *' + flush_msg_limit: 10 + flush_time_limit: 100 +mailer: + engine: smtp + smtp: + server: mail.infomaniak.com + port: 587 + encryption: tls + user: hello@boyatzon.ch + password: 'DRshqR9_#/361' + auth_mode: login + sendmail: + bin: '/usr/sbin/sendmail -bs' +content_type: text/html +debug: true +charset: null +cc: null +cc_name: null +bcc: null +reply_to: null +reply_to_name: null +body: null diff --git a/user/localhost/config/security.yaml b/user/localhost/config/security.yaml new file mode 100644 index 0000000..911254b --- /dev/null +++ b/user/localhost/config/security.yaml @@ -0,0 +1 @@ +salt: NrM5o6sK2QtB9n diff --git a/user/pages/about/page.md b/user/pages/about/page.md new file mode 100644 index 0000000..b5f7422 --- /dev/null +++ b/user/pages/about/page.md @@ -0,0 +1,13 @@ +--- +title: 'À propos' +--- + +**Boyatzon, Boyatz** : *nom masculin. Bon garçon alcoolique malgré lui. "Tû le boyatz', tu prends une ou bien ?"* [Désencyclopédie](https://desencyclopedie.org/wiki/Valaisan_(langue)#B) + +J'aime beaucoup écrire. Le problème, c'est que je suis très irrégulier. J'ai créé ce blog sans prétention, pour partager des idées, des concepts ou des opinions qui peuvent intéresser certains et certaines. + +La forme de ce blog, et peut-être son fond, est sujette au changement, comme l'a très bien expliqué [Serveur 410](https://serveur410.com/ton-coin-de-web-tattends/). J'ai préféré publiere ce blog sous sa forme non-finalisée plutôt que de repousser sa publication, sinon je ne l'aurais jamais fait. + +Je vais parler de technologies, de sujets plus sociétaux ou encore de ce qui me passe par la tête. Je vais essayer de ne pas me restreindre. + +[Image de fond](https://www.firewatchgame.com/media/) \ No newline at end of file diff --git a/user/pages/blog/2014-02-05-theme-setup/post.md b/user/pages/blog/2014-02-05-theme-setup/post.md new file mode 100644 index 0000000..177489d --- /dev/null +++ b/user/pages/blog/2014-02-05-theme-setup/post.md @@ -0,0 +1,152 @@ +--- +title: 'Mediator Theme Setup' +slug: theme-setup +date: '05-02-2014 00:00' +taxonomy: + tag: + - post + - featured +image: tools.jpg +--- + +# Mediator Origins + +The Mediator theme for Grav is a direct port of the [Mediator Theme for Jekyll](https://github.com/dirkfabisch/mediator) designed by [Dirk Fabisch](http://blog.base68.com/about/) which in turn was inspired by the [Readium 2.0 Theme for Ghost](http://www.svenread.com/readium-ghost-theme/). + +A couple of minor tweaks and adjustments have been made to better take advantage of Grav features and functionality. + +# Features + +* Fully Responsive layout +* Use header images in articles, if you want to (add tag "image" and url to the image in the front matter section of a post) +* Minimal design +* Featured article support +* FontAwesome implemented for easy use of icons fonts +* Free & Open Source Font usage + +## Basic Setup for a new Grav site + +The simplest way to install Mediator theme for Grav is to download and install the Mediator Skeleton package: + +1. [Download Mediator Skeleton](http://getgrav.org/downloads/skeletons#extras) +2. Simply unzip the package into your web root folder. +3. Point your browser at the folder, job done! + +**TIP:** Check out the [general Grav installation instructions](http://learn.getgrav.org/basics/installation) for more details on this process. + +--- + +## Existing Grav site + +It is possible to install just the theme, but page content will need to reference the Mediator theme's supported templates. It is strongly advised to at least install the Mediator Skeleton package to see the theme's capabilities in action. + +To install **just** the theme: + +``` +$ bin/gpm install mediator +``` + +--- + +## Advanced GitHub-based installation + +1. Download and install [Grav](https://github.com/getgrav/grav) +2. Create a new sandbox site with: `bin/grav sandbox ~/public_html/mediator` +3. Clone this repo into the `mediator` folder as `user`: `git clone: https://github.com/getgrav/grav-skeleton-mediator-site ~/public_html/mediator/user` +4. Install the plugin and theme dependencies: `bin/grav install` + +# Configuration + +Most of the configuration of the theme is done in the `user/config/site.yaml` file: + +``` +title: Mediator +description: A Grav theme - Medium inspired +taxonomies: [tag, featured] +metadata: + description: Grav is an easy to use, yet powerful, open source flat-file CMS + +logo: /user/images/logo.jpg + +date_long: 'd F Y' +date_short: 'd M Y' + +author: + name: Bill Bloggs + email: a-mail@mail.mail + image: /user/images/avatar.jpg + bio: I'm a blogger and a Grav-lover + +social: + - icon: twitter + url: https://twitter.com/getgrav + desc: Follow me on twitter + share_url: http://twitter.com/share + share_title: ?text= + share_link: "&url=" + + - icon: facebook + url: https://facebook.com/??? + desc: Connect with me facebook + share_url: //www.facebook.com/sharer.php + share_title: ?t= + share_link: "&u=" + + - icon: github + url: https://github.com/getgrav + desc: Fork me on github + share_url: + share_title: + share_link: + + - icon: google-plus + url: https://google.com/??? + desc: Add me on google+ + share_url: + share_title: + share_link: +``` + +Main settings for the site + +* **title**: name of your site +* **description**: description of your site + +* **logo**: small logo for the site (300x * 300x) +* **long date**: date used in the `default` listing page +* **short date**: date used in the `post` details page + +* **author name**: name site owner +* **author email**: mail address of the site owner +* **author image**: small image of author (300x * 300px) +* **author bio**: short one sentence biography + +### Social + +The template allows to add all major social platforms to your site. +Fill the the form for each platform. If you leave the share_* entries empty, the sharing buttons below a post are not shown. If you leave the **url** and **desc** empty the icons are not shown on the index page, but the share icons on the article pages remains untouched (Thanks to [Phil](https://github.com/philsturgeon)) + +* **icon**: name of social platform (must match a name of [font-awsome](http://fortawesome.github.io/Font-Awesome/) icon set ) +* **url**: url of your account +* **desc**: slogan of the platform +* **share_url**: share url +* **share_title**: first part of url for the title +* **share_link**: second part of the share url for the link to the post + +The Twig template engine will magical combine the different parts to a share url. + +``` +http://twitter.com/share?text=post_title&url=post_url +```` + +# Supported Page Types + +The Mediator theme supports 3 page types via templates: + +* **default**: the template used to display the default blog listing view +* **post**: a full page of the blog post +* **page**: similar to the post, but without author information or reading-time + +# Licensing + +[MIT](https://github.com/dirkfabisch/madiator/blob/master/LICENSE) with no added caveats, so feel free to use this on your site without linking back to me or using a disclaimer or anything silly like that. diff --git a/user/pages/blog/2014-02-05-theme-setup/tools.jpg b/user/pages/blog/2014-02-05-theme-setup/tools.jpg new file mode 100644 index 0000000000000000000000000000000000000000..a59940fc844b9f518402d60f09b53c2dbc78f4ce GIT binary patch literal 668130 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

Nm4^83S^(uU7>PjiE38BVCEi;CqizZ^J%W% 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

9@Rw%`LXd;|B6lBoRo>{>!G5`MRS3AWFOjgQ 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%0DlzGAg6irwC{)bLcz#+B* zvY@Df>7;F}iHK>#ilTv>nB9ts=51vW0bTe}$^>TZL1sduZ#boEK+RG&zE2>;9>5q_ z&AO5&S;|LZ=pjQnB(ra5@N95Umk0)8AzM)UBPsQ;<1Ek=p^!<7Y)Z%v zNWKEYMy3dI7j+GPYZy#}Vd-Jl9Cg-(C?vXD#cLF3WtV{o(Vwt;6l}O+0`GPNfC+S8 z#4m7l0YVElN5~4{TD*yj>;NZtT7gJeSFzosc6}ZSQW@TXH5L>JJXON+nUOH97=b}y znhgbhCu-p~0xjJS)F_9MV*J2^Koo_APG8!3!b+kN3V?V5f~kV4F6@OpPiVSYpF(wz z$qB_P$Y?UM*5ntl7$AkU&a;#y`Ksj?m-%$ zC92h$OuD9VIotO^xWWTPfH#TtZJ;Y%0Y(-m+(@F!G?5jI2i)5-81$%u1IFkn&`mOx z2WcCk7WE(s^)~@r68Dj*o?tDvfKiI%w($KE-FhUYEC-d@ MgcXn~lSohh*(zwM+yDRo literal 0 HcmV?d00001 diff --git a/user/pages/blog/2014-08-12-sample-link-post/post.md b/user/pages/blog/2014-08-12-sample-link-post/post.md new file mode 100644 index 0000000..df4ba98 --- /dev/null +++ b/user/pages/blog/2014-08-12-sample-link-post/post.md @@ -0,0 +1,11 @@ +--- +title: 'Sample Link Post' +slug: sample-link-post +description: 'Example and code for using link posts.' +date: '12-08-2014 00:00' +comments: true +link: 'http://getgrav.org' +published: false +--- + +This theme supports **link posts**, made famous by John Gruber. To use, just add `link: http://url-you-want-linked` to the post's YAML front matter and you're done. diff --git a/user/pages/blog/2014-11-30-welcome-to-grav/post.md b/user/pages/blog/2014-11-30-welcome-to-grav/post.md new file mode 100644 index 0000000..aac40fa --- /dev/null +++ b/user/pages/blog/2014-11-30-welcome-to-grav/post.md @@ -0,0 +1,51 @@ +--- +title: 'Welcome to Grav' +slug: welcome-to-grav +date: '30-11-2014 00:00' +image: swim.jpg +published: false +--- + +#Mediator Formats and CSS features + +Examples for different formats and css features + +#Header Formats +#Header1 +##Header2 + +#Blockquotes +>Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus + +#Lists +##orderd lists +1. one +2. two +3. three + +##unorderd lists +- Apple +- Banana +- Plum + +#Links +This is an [example link](http://example.com/ "With a Title"). + +#Images +![Unsplash Image](stuff.jpg) + +#Code +``` +#container { + float: left; + margin: 0 -240px 0 0; + width: 100%; +} +``` + +#Combinations +>Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus +> +> - Apple +> - Banana +> - Plum diff --git a/user/pages/blog/2014-11-30-welcome-to-grav/stuff.jpg b/user/pages/blog/2014-11-30-welcome-to-grav/stuff.jpg new file mode 100644 index 0000000000000000000000000000000000000000..2cf2ef182e34671237aa5d44b2225cb1dcfe7da2 GIT binary patch literal 324596 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%0ALjySdN>9$t#;dC0<`f*?h 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

    LH;! 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

    Y?Zq*`E!I@g6z#gri(WXDb6PZYC{ro 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

    ZJU}lGq}vD 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%0A7=FBPNY`L_BrC@2q6VDcz4^$~1sY*`0IHc! zystq(r-X|%SuP{@|6%MRj=mnlsN2W(&>U@oht^$uzVR|aE7jj+q&+3Nuo=64w4*3j zuGcxzFPm*cL9Xe}`%!Kjz!#UUd7{uAdgvP$5_Z-5FW4H?4AqE(%K@hjh*iA;R!=j) z;Zo{1xaP^3qsNTB{{x(H_AN@Ky+C1NM&Ff(vGK+iBcR{J7Urd}x}GZF}md$Z-X#d@Zd+?oIXx>Md3UcJ2D~@jQcBsZ`b$``PfW^sEt=N<;sG z=fA!8BrmR&1vLuO-^8Xrk0T&BXiAfJZ83e=Wa;n>u>*F{o`Yx#HmF0-Dt@=QX6`Xd zuRhP@aQqi-LYz2q`!B{oYfbYk$K*s+kW`%w2UqFqtboo8j;YjD#)4`$oN}?$+w>W5 z+SMS%iU+^-fU6!AY|~cun~!1G@|4e z&D`fvVbXg&NZAX1+8UHhbpL&{+=Bnu>heG_cQB#}kAKCbLbs#+{sSr@H9MI8?5o8e zGxeyU&Z$y;WNo>t6zRQ#JRyIM23&f?A&j<)7;Y3Dnf>X!8(j_K9666kwl#sB^=d!e zoQi0SQ||m1=2TNpzY3vs7P|}$OY8YQK|f44!^$mRsqNC0z5cSl>IAsu&g{Y*dh}hh zCowrDYaW32?Bm>l2+(gOFoQ$n+Jf|n$)Q$}fzzU@LcaItt{%~V6%$_ihIQm_1sqwr zQm2il#^O1?_tmtyW1*m>vSoiKTk2ZT@5|vLz`*l9<=%i@;i!nAFF1!3yDCkFl29(W z`^>-I!@p>Im@{cxH8U{#=x3r@sd>W%1Xh(AaE;q`1~u?=(v`RBKZ2=b%s4< z$&iyC*{hlS25+D6wSle#zof#kKPQkjagw}fO=pII{@T}VT3&S2Gn!(J12q@lP~OwC zdZsflqbE{<(13NSa0V?*+X*Cl=UyH~bueD{#{0C@pj=M%4E@9;=sA#@qSP^@x!DmP^XX|%Q z>`@)})BaHtt+PxbBot9@HlE_?Ve>eg>69qAXuv$k-UBW<)%(=q_t>-M+{h##`Vfl( z1$Gw<|DBo0zsYv24}j%hoG=fP0)TsD{|@s%BIIF>HD*l8PeT6LT#oaxe$URq&UV#@ zIZV2p%lB+8DDCp}DymHTo$+>GB+M-CadZ4yz=>yXcwnj{N~~+M&Yu~F_`&Q&0y|9t z;V++a56R_Wrc4(Od!avgH~f+|nI9XNZtqsZ&+JdWEddCQ!{7xI=miEuh%sZS|0&1<@M{;qKFzZfglD8CJ>;Gyc8R8_q?6 z-iXAuIkj^OJ+v29FkBT`E7_6fb^WRj6sq=f_^|$gFwiCrZJ;iB8>&3=xevaS=6a`- zH~nvCz8xADG_V~pa^uJ#R^>+68+RUNbk#NbuAk^LE#coDB~e8D=Vol< zSU-)KqpZdD6zf7r`4cqtu_NinM<#`5PTOy`c9{V>=vxyE%)XjPd1${!yZ$~s#c+P6 z%zKPnrxLu&jN&}J?KbszjO8sOQ*yIz-wd(gOBAXsv-$o(FGPDz&jp!#mUoe0dMZKe z*u6Z?<+^`};K7g0QlK>PmM#Gze}KVweF9TE1=kA=pQruE;C?tEZvisXpOf!aOGA#F z7Ql+hIMHH3TTT}Ug@KYzXK*;1Eu*5eFhOL?fj7)u@`T5YZcy8FX7YUsh(G(g771$D zF$V~t%yjT)*5x>_ae1?k3Xw*Bx?mIvRUF=`xVzU%k+R?Q6la?M5S@YLKM(HnF}_aX zAME|`B)SUNC6^Fw`rvYn^P*}f;oEMrcIv0pt-*DUQy+?dcDH z#=%E__}1=}`XUQ1``2v+U3kt9CmC&zefVPnI!__&H7^L|fv>O(C!=TlgB0d9P~?TX zEVg3pcndL*q>^N{%Td49NA*{)<1H5%%%Yf1XBTj=Xc=n)jQ?~tex9wK^@G>F!G5WF zG-(|nP}luY=V27}ID`DAYewZOT2@%ho>y~4%d+>X>wyu2?5tVKD-`^E>yEVj5nK`- z6LE17wTBn>X~EI7G_p(u(AeK@rTvGebtiXeS(OfLSe{c#D8n@4oY`9r!mO{p zMU)_veE{~j!_EUzakjBK*XR5Mm_&bP*Rt=}V-aWRTZi0y6y>aicqOO+ ze91gQ3kfs>Wx|xIchu7fbeVl*(UBR@m7RJ{kEuJl{)I7NRm$q~>KHX$0VI1BCWzlI zcZK3UhM@GMl&=eKE3Y2qZ}+7~aOm%dAlK2nu8{PaTSe4gY=%wIff$_(?*Bb#)zNmH zjJj-XE8Gkhi*^Lf#{aPh8|wS4EDxVTFxcAmtB>%}M=hyZBijMFU-1BRD)0>_|EH2e zB7R0nty2_d<0qrJuJRIk8QlphyU`NxR-h*bAx1d{zMiw`u{9E>>e{`8!f|6$AlW4| z)5mGbF{#1!x=57}%30GdrAWswcWGiBA6G#q<8Fql@7=th*L^i#?L!3NJFWj%xQKEx49aWZ;Sduuw9&>V+UY(=P4 z(|e+$*{1XFl@mp^edrp;0#c>`^%Z!jg&Fu=uyBuo2;~99Q~#sr+#i|z|2}^0Xk%t` zob%?K<0Nv5nPaF(L^;e^l7v?!QFWb)_ijWKbynsa5J>NZXd)-3T+Wsu9MhPpS1FKozrCM#FvBdVeVvG$_ zwI*3(6SCKyugc%{DQDQ2>VN*s8WzNpA5XPCsulZOLqWbRj4bE~2l~b(X7ckIJh`xU zir9q9tJvWlK1d?FW;8~SiO6w$NF;&-)wDc?r?o}-i3@M3{%91B615?_VpKo ze?C`%hE9tE)5LWG4_#5?nu}6)Fy4BKGR zU*YPUP1kC$FXH(ac}un0oy>du=%51-k5#g&WO*O1hbf$8L{D5J8GpjSo*y~U(|{es z$=^_#lYMg;FctTV0EN7Y@1|+h4@^Pxj1-4enUpX@*wyp>)mG6^Komq=!ghTex-W5tdaimSK`s%4_8;p1Xq={l9>ohP_ella)6&K0U$Fbu4jmUK{3Sqt(Hrw< zT0mnA;U@Y+G+grV+;StqTuO5ckwcB6fSl(t8gct{*z>Es+=I(5fRuUc?? zAEr4;7569aM{W=UFXi$(YBX_XAn3v-84S&F@BYGTtm;Z5L3+LoaDuU7_&OtEmM`ds z*vb8lS6y7+Y~g(2A+^l-j6`(d{v;p0I<|Rn-Y>ia4L?vO9%A6DQ&b*x`*7o+S{cKm z@`-zcm0u1if~oT9sa^ovcNIyK)vY4TtBLXsnNid|pJe?i1mdVax5Ln&OzZ>r@V)`X zwo#$t)$>4gKLvCyIbBnTt{|K|_-tI$T5ao+Z}3eC&r9MI3BP68Izl^8TKW>Rc6=O_ zb>Q{zuJId)P%6eXb@ZUUPFRKf=ie+$sIF~=(RQ4aK6kTZk%BidxHaru*{yKn?X?7( z*kIiyVDkGTCQ5V`AyR@8e7a1Y80||V)#vCiu$b<2{7ID@Ecjo@6FxX7T7Jb>ntk)O zgz!vQdDOJ4KYbAyZH#xD!?2p8DZ3y;d>|tZ65Eko5r$9Y)I5#dS{IRcIvZ6Pjd*-h zb4uSQ!lPtSM$K@c)tE1BxmV}tGr#O-HtLVglYatN^`Zu6!>q~B5?9IB8}fcDCP=1? z@>qr!jrhiMGCP0GBP*wbfA?)<&80MlgA=Pb7+^46jEB>28sofIC~$h$9juwLr%kl@ zVds=g5dAkG|Gt9aQ#*`F?VaoQb~k!OoXBGK$2+X95*bKl#hlGzd!tq?pqGb>+@+KLN}=`Gop=urV-z52-3jKewmv~^%0`y z#4SQT0l7ND;_(&Vc^)4pikZAJ@}Yl!Z=i?OoyX*44gAqJGa9$wPIYH~;!~chHDoxz zp(SfRhnV!~KcLyZ;j`PDG&z!!9&VdH<9b4U4y5yu;F@Be_zRnqjPqzyRbU4c+$hOc3q$oT9bGqCy#D08@TACWNx+W|1KC?n=F@ zDD&v-u;&$-6EQwMTO!>oC7;ulvF2sS!efJSENjeXLu!^W-`T1A(X<( z_p8k9eJHkz2H|c2%^8CyeRPE7cKIX!{xq2@c_y-@d4@}^iX{% zfKV6&v!V8yrG}tInUi5Z94_rMP9x_YY51={(C!A2lw$+Q(lzcr5vyVeP;l>6Zk04555#cwEi7K zKD!h0ZnR!(53p-sk76 z#EnL*`TYdgr#VfE%?lsm$-cOvd)~6}{nz}etKc`6^7%SvD>`j4qW=RpH-HaY z*}h&Xp$ceCwv*gc$X#XoGtrnGsVQi640*p~>o6ws_kGfRb4a!6SH6*|Q}injU#*al zDN~Jzp@DJeIiJvd$(U^#qN5j^5Yw4`+U=STzsmu(QVjYlPsTmx_L@f>5!=@f(rwnM zP08#6#u54FFXrCKxGnXRv2a|bd)a5KX<85iy6BN4Ie+Lj>Y3)4Z?|&nSEix7lKFwG zCuEZHeYx)xpbLENU|&^;t0uJQuYKZ66$Jh~4y!>Nojp=+MzY8S$Qn}Jt3cQRmqR@= z{e9nuNqwizjavd9eA=f~86?_?tx-gbKNw;-x(f2BkbifPCMmrvMeuv%gn6mo`?s5> zO_|d94Ib3ik@5z*5)oE=7==em?=bh@bc%@x@I+Tr>G$8u|MSusj+pLWe#$Bit{STm5u9Qmym(f&d?Zdm9^0Q~s62;iQTo{~+$%}l6krc@i$vYaQ zh1Qt}RdxN$awR%1R-}VA^F63$S_^-??IT{D&{U0zI?hlSn>&%oyXlY-m1B^sPO-(7 zM>(jV965f28&2OlC+%aO+BE7WUt>Qj>9m{wH(L6n?@}XDuFbKf;?$1Nl(XQHp$1IFA;jn)iDs}n2d6xu$DPgzGp5KvX{7~|fpZ(K)E z0#3ddQnHl2BLmA#+|znjZVooN{CinD*@9scnKizaAPU$2i&7I0&3H#_xoDMD6M^@T zJSWi14rPA$p1=>Acu7%eJ5MC4bUHMyE90%a5M|2{I|-YR6z6?n>c3Ep^=hBaqs2tU!h{HSq9;0S{EHk% z0g^<#IM6r3mk1vnq$OKqmnPDY8cJ%bt8MV-93X+|x(lte=MTq@`cpI8Ms2u1aWU*u zXEAnr+4nUV$l&9{x+cxh6?Wr_O4pe0B5zt$aA0=FtM7$1{bGg{pln&av6(ed%%SPi ze`+h7l$!CLy+QLs663E@81c@W)AmPkeV#+~j!C@w)Va1po2cmM6QB3hpOkO{gL4v1 zXqPKp!LM!&)AGRa2WOPwJP8MN5^ZKtPR4H$Ge=|c)8+I(H*BW3pQN2 z43EGtw$9eJeWBD_E8;<^Q>x!e*ze>S{6pGAaWPm3+b!hLu7Eh5Xm_bEMT+OHQqGOr zL2rD_fhwJ`PV$X2e?(#h@hR9j^dNoDxW%ZJt7R?HRMQa63%sVQhG zpj?L4R}jq;6No?@%1M&WpL#Dh)0f5KvGojKf3vc4*K6nuP>!!)kvXu*|K_SuC% zMb%8EATrIZ=~^Y-rv*`@2v2ivw~`VMA=Q$_+Ff+JiLP@6#h_z(-4VXB{n8(q;A87Z zg+JrE5S#`2u`?7we0OsOF5cayBsA#lIr>E$Z0-~3Cis&MhdXxTj>5RXSzGL^p8jWw z;teP80o7__3guP(aXLODsU9$Sw5Zq}%7OrwLJuDPvsFm1 z{Wnr)&q|hAhwl%&o37R!qMCG(>#v$h76uPVigilE;eTEIY_dsP4#`;yv|JlG6W5Le z1?F0g*66NP9n}7trEuTJ>!>k6_o6+`#<~ZT8S?s3p$J%4^6mP$UCBzCRkNt$nSX5a z9FL5QC0J!at^dO`pR4DB1BG8s>$xacQ9_;jmgl)}r9Pfy%_`p8cS^+kn@0AAdG5(= zCvI;(P20*piCKV@atP=N5!1Ad>UGf3|2*tl8QMno3O;^uld(Vb$0jmGmDLB(9$0@`NFXcAng!tISBvs(< zfeVdv5T~pE6%tO}sKP@;%muQb)>Qvjf{~W^)<|8xWSS6sb(z#ts_Y1W#Fnw)Y4m68 z$Y(ET(7~+i305~x%mU}8`}W5YrFnhghtq*p=`c}An*SXsrlR&z6Rg#!fOQ?L8p|n71rmkLy z?U*c=IzfUmlySgQ=vrM8sCS>EDsy&WeOd9>I5?%D-fe;i`%^-s5embjJ!8C7IXs~u zUvl`8WM+7D~@Zl{Rgr~du5jg6^byds>3u+4ARg( zh7Smm+Ya|H*vRS{*M&e{_t$RPT_|@{LOUy#Ac!W zy4JJU58g}|J^Ov`Nes|&(H|jW(1e3`3IFV^nK&r%Lt>Ve6PDwyysp2Xn_Y_KE=WoBaFA)@1vqb@Q5lM`_`1iIqH>`lBZ0Bkm=`HPI<=1Y)RbrJ)J~ z%y|3f#D6&nP}JYxp0YcKYqX$)>!LPvkevE9L;Un2ShLP3FO{}X3!S)UP{xq%IBhJ+ zR0);T_L%>>nVk&;#S(w}$HIH0>VY){))T`|y*u@47yaX4SIrrewl=J-s9)x5w^XNN z?G~*Zb6c=hlHrU3e3~o0xpX$tqfF{Jt9RC+aFag>(d;piNC>^3kr48qg7KB*CE$H; z-4cL$*r(%ob4|@Mr6wclwd<7gAsrG)f|aZz)Tp8GR<^w2_lS5J&;V?tkq5Tiywx}J zAMzxh35{;8Pa4kY7|ww$YE|jW9Zgj79iwhOXi}>NO%V%g@1kBZcL}l~XiB7AL(+Nq zowVS6x9TM&ilN+!vlAB(B)eFo_UsF+{otgn8dgRotmZ+9rz|}A-x6jI?2i4lbQiUI zj38ZG=s6*>KP#~9^M!dq&Betx}*h|{nmFBJsI*)6d z16SfO;fYk-@m9K8S& zN#`xt1JXS0LsJ$|sUxaTYw+{Rk-W6hGH&L)(5_il5Rg#!laL{_%e~YDvvjg z;T0YTApiecd+JSnl)a5tgAJDI%wG-UpP7F!$*Q?2JFADUVmMpx}eZU-9{Zx%((KIh1vC|CzX zM7OpI71vXFhZeNh9@+CTu9bdg8N%%}#Y?B%*WrhjEQl5cJyo7Mk0~yarJZo4W=p*- z2Kh<-kb;-Qsz|tZ36~IDcjzZ6H1t5v-8YS&_c}0R&U~!NX=Ornccsin&16doq|ZSA zmBLGoYeP%oK{i04KGOPu(2$44Q)z>^s-g^IfclB~DWDpA>*i@E6^quAC8HYee#}+b z>03guU1Vg&eI4@)>KD-8Dj`|hv-wpza-h2hJ8O|NxwWF;cg>1@SB6M{&j{iVBz)&F zsq``=YS`d0WJAwiq~}O80CBec!WHS#XT{|8-ghw3i)L#6=N0S~QfoVS_puZ9dEG~f zu(BZ4GW2&V5AwY@BTkOWJ^+=*?14g6#@I(Q4#mlq1#);IG5J(B!o)9LO8!)hXQ@L; zWc>etJ^BaBm`)Jzi+An6K|kmB?j~s6q%&RAoCj1I(_V8W8ut9dxjjy*aviLGU;0w= z)!o13*Qd`w+sG|%c~-YdHMFUaQjH71wO@Ff*X#1J_3F+<&_qX}$kX7!4$qPQ0c{sm zjXgp?dqsuM@dD1_*f-vXt$QUA4Qj2IwV@ioWw46q7UJIW%UbxVR*L9p6x{FmPX zsAZ7aEdJU502CoOpnP%m49eSgjFD4WH0S3KGsag_xD_D4cyb`H?JQ57puwJsCbDET)A#*9y72_a1ONTkzUID$*i5T=>GHU6H_+D{N(Iws6I7T)5XlPtm$xOAm4nCdLnwcvzsCIM*^+I;{3?3D{xCDmLubdOl zeKob%NA9r-x>k1TA+)8k4KZfR_vH9}%xSdt48tl$j66Po`NBD?aIKkz>H&x!9QnsA z$A2m0JrGCan}DnhZzN+XvDU0E~gvFU%5l2`*mK`J{Upn)b8HOV-6hK6}madh)md_twmM~a;6XdViK{{seHqx=waS$fK(;&(ViDd@!% zP`){IG#yWH$~K7{b9d_H+gZO=U;vn)uhbjbPEd+^*{O5au0I1{v7=4JyE0aBCrBXl zA9Yo%OxKhK;*6Ld^HT8iw>eQVGlsTMZdg+F?;3UCAZj6$4zsU~1P7Z2-7hXM;@~-Y+Y0#PRQ2;K;yG! z?3Z1th-mpe0i+u}GYvD!Wx~IJ!_(4iV^uYSHF}tBl=96$%1inA?#dg*mV4&*nb+2J z=TsS0>W5A7G_Yj3@x^`Uf1JYpCwBF(Z@U8*MsM%7Mn9sBWeB_4qbagv_fM=r zZ(cXix?d@{M>Tg`{#RCL8Q#9ab;RJWeXyO@6*gfzx$@;+(h`c)NMuFKEdTE7m+i;c%S29Ib}Lu zsOE30a3OP|I}w9kQT%tI_UR4szJI$>wcq@C=$W50cE#Z~o`rJf1Z_tw3r=~!*|L+T zIIylS4e@)aBg76GD82<-7pd5I&mXdB0y?ikv7#>9zGd|!Y5jMby=U~NX3n$~Sy%dw z%&wD4OuMnbjGESB7SZYGOP1&+LvUJ=dF5AAs!db*^ynv)ordPwELTK>{SPVRi^ylV zD|NHP1BH^SiWtyetp(@vnYDZWm#d59(Yz^MlWG}zEt7)1SSV;scA`6Z(RyLtk2R!X@JPgM>$Z? zI@lz$4FE6o=(u^@_4X}>iG?{>yHUMcIN}xMQpbp%Q;?)Il6qJAK62D~+?JhaLUSXu zR3TD*AEJ*IeVMP1IIfH#wwPD2D1$%pE|A`tEnJZWT; zfsL!b@?srIf~sOXSmt(fzRS+R)AvAt4zc^H7v?{$0NXpBPv(2}wLptjHMV!gR*;*whC zG0m_=Kmu~s6Z{#`F#QgaMr+|u|dohV&`;SsD_r?^qV4^Al5=agR z-66g@Wnamh0-mIB?fu!N{EHFMJ&3c&Xh@xMN+#sw(nF9a;mzq;rnE_;lmVL3q>G=k zQ3spbdRDD2V<>%5`f*(OnAAqNFyC#bv=c!M>L!Dj;{z-`-v`akZx9+XLbNfY*zglf z{}0V`!tpm|y*qj(m-r-imWorY-S>~JavSP&!Bo(8)28v%x^1GQtppK{eOH~e*nBbr zA!(WY%=E<)+HcP6$H%c%s9SIxu3;UihIKm_4UtmlhjTBp1b8;Ae+Eo%CfFVz1+8hx z>BgjzoicQiOcH^xBd21qX>H?FbQ(GG^Bma!Hj-vJF$W8tn<;HRu@*jWa}AfIOPBjH zeA8Vk=u+{QJ4{ESh(c9V8VBL_Q|r*>n!$y>XJ<0vnf9e|N5Cr`ZUZa$No8tnveMs}p8!ETXD%r!>BAFJkL|!$1Wka*CZ=2exg;4a0LmFV-9q zS0ZG71g$|D7x9*_$pT{!&L_YKBh>rn2lw&vK*7efw_+6&Hqdp`ar&`46tTC@?!5Db z2jrEXu2_^G{*9B8KCI**(Q$Ujp28!CE>LyFZe7fR0l2*vicc>`{-zfBRxK zZ>@LH^*ScPrbp)c2b3^|h`$JT#?R-dC|}Os{$ZnEye;N6i&%omQ9_}`dDS5X~sKwJB(aGW;qD8MZRYF8j&mdwDf<#Wm7o(Q4i0~sC=77XbozHxcgip zwUXy$DniXQ&(=31#}XvUo;U=^&B;3*;s6z2a_>;vD~q%QNB1*+y&$v@)f4Ax^_i&& z!avE|sC6_$x%>LuEMo2`cMk;k*noKBcujzt1Xz)Cpj)u2|A-KrV#Rwtx zL;LUphGuuIq87`MS__>=%Hk*YJjL%8b!)IB0K49+e&^P|()247mzNseaG-}jEH08S z?QNC%EZV(+&c7>TA`3npoYpJZI2mwAWADy@iiU$;QlY+twFTvkq{8>D%m)sf6Kiqv z09v4#*T9GsTkXP1M&w5EcWaf2yT-gGIZBf%7JbhE{TL_KEC)VvCYj;<$KsIpCKLS^ zx8KMVWfn3`L<`wnRcYYaMkViIwYN%+hZQB-Iq{Sb^&tOe@N?d-z`Gj6o0J-kW@u%B zC(`;!Irm6YJaMo7+F1z`U&ebi4ccHrJxT#bsP3NXlkn1hO}elunxm(JpEEv$aPj)v z3$D026rin=$2^hI4*T%OITJzjXrD4@|HliMd^v}2FA+=wtEj^75fPjjgHGmw%_n4E z6TZFdLCkpD&D4=AhO=XTulZ^s?2cw&bacL5B{lo+j#9mtJr!;tX$TA1ST<=ui%k&8 z&#l}h`Gj|?Tx+G*JS9w$u!^k(mMG{CRdE2NOxpUv5&k*MK`=CYS)0TmB|UCm}8 zb)7V&!u5ipx(3MLF~0j>{BCK6NFe)J<6D|8zks0Qi}x9~quknyg!C4vsEfUP%xjgX z=YTYt#l;=BkHJ8l7DYRF4OwdN8U26BRdri{b?P#f^Wo#)9_Iyql$F!&`I{U&P#MB? z*QT53PpTvWZanAFyq#-MqVBn;D12Zpr*Eo#Jx=rk@4(wH4oFG{23sgla4dY5q0@6J zH358)yCd6l6O|t94A~n;ce}xH7N1qHEmxbU-#xU`LU=xhZToG;6kgcA`x>F;Kc>P_ z(_bV1owK- z8*^&(kux+}!Q(jOZlg_x>?T*2kBFzdn?MBml(sJd@lbTW3Ea)E_Nz?{`P|0Q4^QZwV`!~oC=r{`JreOnJOnPyaeCLdVK zDm4LvG(PZxOdSs~$s+SYI=WdZvyQY*g?H@XTabPwSJ{k>Z-S4av8};sBALojuq

    fh|+wgY^16Ukrh#THxu}dZi*i#|=~)qW1P@wWEA-@D!+ZZ5_y6 z5L;WD1FRg5sMP=0?WK#bxeI!-V)xTHKdKIU_rkd#WBT=khjqr{@HO=nQU)#Ozo((Tme%zT(t65^ zfv-P18A{#G1vS@h*r-8Zf5|ZTL%|_8CyY$E{GKV!fh%!dkG^@fPCvx#AvG48>qlz_D*|vZL1oGJl!jH#&7`;`;Takbz28ihXFOZK+Ab&I7rxhPAaf}Ol4@V z!ax(;5pGb6SXhnvCd02ad8ZUJsp=K_Y4?B80$y?uF)D~j`o)dKUOtCCty(iF`cn0( z4$dNCwi7gwRHsw4`>)8uhzEj`6cC(ly{ImiPYtgTd)7xRxrl%f7&4QemFeS9|#Ci7PjpVts5{^giX?qWfGdUbdN`d=ug~ z)b&EtdJHxs%a9@=l%d`i9Fkw6M3Ok`PaLAfEp*DlwY#40xzl-hACK*A71aZk6jC}s z?vhR?BQohv+T%I_Q*QU(&&H%MZUMW#tSST)f`+EA?xOf!0jV+}p&nKC@@tfTV)o0@ zF<+lJbFC4BhiOR`%aDz~{TgdWxi02D>#%pT$5hmGPP)ND(dDL_uLNbX?9)mRZ8h|0+3r;fF_eQoQhV^Sv)JNmi19?K}+z z)G0`8-1FnLCRSO;IB_gQvfQMgkd#)6(B;F$S6^zypmY9%Ld-IU>t;nNW&T{HbT(pd zVzuN;0#3uCc2^vXTL;|eZ|brzvTYt?SO4TWobe|GN5x}7pf$bBDw+~LOwddzKxWy)5tnFyxywGsPry2?P`R)3JPf-DNM6VWWN<0 zdjb5uZtZZ|B-;ox!)ib%SXC z;6Qm9v(|oy5Ai~s>13tgPOtLf(eGp>Aac9QzvqUs^qEw~>&Q>c&92Vw`T(=5Bps6@qfU18qxZKWAl627E7>f+AM06tuVKcyNXax z8E?9HOaP+=!(bcN>_E2Uf^<9h^jEfD6mmt2s-C+LZoeXg?ry0m~ zv_(#Co*r)_jGFU(#hxq<`h_n$T`K7|<`wP<8J(eWWg)6)2 zh+hrkm)RXF=X87UbKREbigb*TK>qMPTP% z9d%rKy(BdJ4##*lZ(pE9_g2Xt?M>aAu}6Spf{XbbsdQ14IC@B(C~egp3&lBRI;dW? z;F(AMsuuDSmX1JmGb>dbMC!jgzX32VVHN84v2DWPv3r#V>V7&YdA==_*iI^jKqfGf zB{9iD7k(p*j71KQ|4Pcq`diwX;t-bi=?|@0<{Y+1+05DvZ_*~e zKI3oSxttVv_=U(>!k3hsJi9wh%jecvE~kjq2u<1{&WqcLAaVXvcU6~QZJl=WlunN_ z!a;4}uo#qhk~^#p^{5pR22@^k45;!WBYzV?fyNwH+QXB~$?4S#Jla*tF2cy(8_{DtHjQ?BO|ej7gU7odp7ZK8h<&sn>ZJWDu=?mhzXN1aS- ziW;ALfW0||k5c;LMcdpP#V>l&s3x|^rMJ`Lk$_$V=9Ti+Z_vIlVZjnbvIXIK`iJX5 zOlga&zDAZlO~V_j7^z#4e;CCZf8v0ibAZdkz`vu>qYOa&41S-)GKTs1MbP*@xGLQE zI(UMM3qKhFv;WH1{Cum2w=@gQG@qzK)gM)_c`**Us08}pB-inlcI-d`*YH3i$Ih{P zL+Gk=^wi%mGJgm(uz)4k-1VU#s`X6hHeIq;?{-Vx4XKsR%wtLOWZ>>!W|Hq%jkIy1 zz)V(rj!5)fT6m;#4$`0nL|(vp_O)0{uvWUf1Nx%BIqY_RN|2<#nSpeEE5Uww{P8h) zMca>tQ$Okyg)52LNb5A7bP8ml-zn*eb)G~i3#LPS^uRk&Xi zE|Ogjjq?Trr)c^3tw9wv{sPO86i}QHy!#N=Bgz6$-^$f*83dn4XB?#H(39KahZ=yd za(_kSORyzNdpX^9cmskS!->@H{j*|^k%(gRBP|49QADU~m!O>3zlMvlvTrpbA78Ye z0%-BinTbQ|o3tAmwZzAKg|lJHsJvH7Wd6O}3mAOa;AY`{`|=&OsZ_s6cO*+^jHz#3 zlE;>g`Lqm@VV^hoG(PC}sBJ?}G{hD@5(0K}8MR!Mfu;-=8um75(lq?w$NBTb{UYBk zz<5`hUR|WmhhLIkH-`&1EZuKykWghE{{zT?u~~HpQ6WkD_s>zWWwlm^1ilvU36vq{ z8k$b1A|-A}+A@*_MYpOpT0nV`XfRLpT zo0hBkcws*8(X?c*M)9B~Sox;=?A#0P{sb_ZqT#brlIHGAP9ud-sb`F8{MGvS9yh+v%BpNc(0 z;AW9wW9+OGa_~Lf0+h?zKdJcGPSQM1g^HeS`kXUoOST0A_bMOE6srECsb77M=H_Bj zeHsSOa`$M}&ztn|a2=k7(MM*taj9Y(NiNAW`4JCs0aLpK&g|m>Pjx z^y4BzKM^%?RJEt)nc~?eJVci3`9Dqm2u{2uvrWIR$~Wwk35`f!qoO}m!RKlgCgXHZ z{5oI!-E#`fxb8o!Y_%(HcNdY-iwGQm z5PbYf(fLB}o+QqlJC~T>&udH#p|)x6a+j15q>n1O8)DE%AjU5I(^hV5;`5GH)M-(z z{{iE%peqrQ8Lh9tH(IW_hX2RKbgwfsYE@^E;O_sJpjV%n=aqjh0Lq6M+F1|hh*x9( z{Wj6@q;Q?)GgtGM4x0riRMquh7a?egMSVx2KXZS*gb@kW*P;iWL~eNWInGd{g`WRIn1ziD@ZItl zBlZpR;Zi1wCR{294y7?X*OBG4Gq=@l`GBoYop|_#>8y7iaiYX&`HVrn{rkfJ^v4w5 z?BIqdyIMI|ysUM59Re>h2fqN7@gb0qmgUe1lLPK2(0M|T&NDOI)zIrY?*&e`?#K7I z2A9RE2)M>}vP!TV8h_!y9@;$%L1$7k>rW5;$wnb$|MlclA>=o{ z^o*FgxZC`S)sW%9gRY%{inJl=clq{PTFl zo_c2z7xDSNTL&5AsgL$K{i3zRwcB@8mMUt`FU#s!N3`Vm`7rQERm@m*+-cg0zKk#m z57WU#y!|G?hjV7=HtO(xHX;3dw!v~~vFfHBDLqlNwfGCwM8qYA_cnnFNn;#0`@HaH ztJYA*oqp=b^H34s3XaxCyVE^>+Gv|TX}S*i{b33(A_(2)3R)9!FH%NG_p!8reXB5d z;LNhK_m4cCS{=`8aNo{58|%n9Gcz`1 zGD}1iU@VMS;#8mV4MhgTti2KuX|V|ADX&{zD|)~PlgwI|M|#~f!juvj6IobLvSg@? z_L>Jqb`=?Mr=HqQ!nW)#k}6{M1nD5YjAS6htEP`G`qt~ZADh+3+UDR)}%`8(XRtJF=G+y4QS|r}5<^Z!=7OT4)d^@X3M>K}}}tJ7hMEQ$kz5Fo%P~ zM@rY7*r8QdUTIF>;gH~NYGsJmS%v1V%zoOZHgS#`?|(pP7D4jCc3Z5^xA40CkDY`5aINt$nvz#!N(d=cc2AWKVl zR2)hWq8I2bX*_T~9y{PRuf-nT6wl&F^wM3-H zSnUo4%3LiZjOeHVf@gN+5@BZ-W)dWGU`LHTpEQBe5U>Gt&snKfd4$9vZN*DP(>4n= zM~)Lx`83##5B2JyeZvrE*jIM-Be(3`E7s@t7GFqsDY7_+%|?qzR2)7)S{~Pe40dze z!o-}QfPAVD;wYI;A~Z-_E+2C~hEZd;gtVTv66@DOO6Q~^&qnayUaaM1o3nt78eWfJOzrs#6t1Ep9=QfKNjb5->ae7ieAXI@$1GTPQgU9PD(_-%e@ zer;Y#!DEGdqjm8dJGE+^`q1Q(G!j4oC($IOeyqxP&egjc2OLxs;{vdXCB-+_sVd!5 zR=T#-sMz%S7tg0CIHeHD-(729rhfuhcAw%hz_VY1N9j?0%HmjuAItHR_dY88q~2Vw z4g^1N++>R3>?RKlU`nNBRrW%Z)Q>_9?KS+_(Z^N50lkn!df}zT2Kf8)5M%ZvbYA3h zTufY|6*LKCl`UrUl5uM5icAR>mUWa0SZ`MxvF3cd7(iaJ*2P#$I~)c*Ncr%*G7gxx zph?UxD(&6O&g?emFNpGhX4!(J^=rQ$V2&yGb@3*c-7zuCl8KRJz^;@xfLXf#lRH(q zfl4ITtV@en(%%{qvz^nb&vta?YDArWA*OlvjkL9FPT*LTsL3T0-EdTh@+E!IU8NTi znO(Zi{_TWMUN)TV)r^uw1yi)vJwbIy5Qd4{rb$561vokSEhB2pYfH;)Re z7+1GA`we$j%tz_R+Jir|h5hH4moT8WTiMU~#Jm3k{CUw*?(>_43vXc_gTeb7cQD;= ze;u!q0w+x!v4Z}d6M}y5WPAU+Hr$JPe?(DDq+}>s>aJNTvGUN zhPk4ef23F2Wm67LWT33x57a~nGJ6KHz%<-lE(2Z^!vg(!w2pE6KZeddo~i$j<7XGM zF>LO4o9kkj`!%+?<~pUKRC7&|M&ELcZHAG1E>p^_i%Pkq($%os6H%d6E>THxN$!5X z{d@j8kH)afA271KVHKUpvcLfv2^Cv&E=bXDd-}WfOfZiF`kzdS{ zh)Uy0tD&+>lrL>zMz2c~E3TkY6T_Xu|Ius3e8>mn#fwmFIe|p*u}uV2RFE~0 z!A{^@Kly{p$^*f<|i8DMc8wx^5kB?8MPt$Z=)>`zs zH09u$3D>p53g(AL=1m5&E9L595jt_(TvD!4TegC?tLylRkm9=ug-dv_86{ir*Jz6D zorPq+nt-;A)p=cAF7c2CS3MmGxo{Ajet5FoTr`TS6S~}cL zpBH-1MeN>+Pqq*#`BzKtn4E%;!T$oa$o(HZ9Ni!j&T^hMnGS4^^EU!S&5sAl3!HuZ z*2#=}T~EW(3rD6-h8eLs#iuQ8gRs+Iru+Oj8jKwBy1^ClB;eq3pg`a!fGdwi{13Rf zLQt-`E)k7?<-{{zGO7wF3tpa~r)`rN)Y*bvOw!%y+<|8-3?E2z=*hd&{rEiF&zk;W z^5?FzHz0->wo(=ZNfq-%+~NGNx6{W1hj&pb5p8*ltaz5U=ai!KuMB)l!@$(V0wH(c z$b`wb!2(SgqJ7O6+3otf6Gj@=5&{Xyzf`@6B&?k(Fm&{H1T?!HPugwtA|l9Gg79323+zU|BsWRKGKk8CQFdn;gDUHJ2| zhM(Js=q)oodO~;NAabI_HzQ#OWr&mbmBKwdsKeVItt z%Yk^AHPh<`gfjI@X8|3dYxW=Ii_UeY>E=}3%!mER5JsS`-iKQtV9=ZO#zksETNKeZ z(6k!y(9Hc^yoW7g!;QGt4Jy04oHx>-r^Ll;!0z>%*&39NK`d%t!3!--Jqr^W)T||0{>-&n%e(h`n_2^FH)_FH=2_1#2#)bprXLF9=u)A5uskX zqj2?dvKD9WCP{qf#T&@Mgv^4y3vwyaD5Ii5U(7+!pADj=8iZYIS4@)=WVoT5HPzly zs6W3^xfvmncpq5|5IPtYI;SLQ9(W+-r;=0_C-@jyk3+KWHTra@1};JHPfTqX7)qV( zC6s7(R%N=J-^7HmDBVOD@ofw7@W|}~^3ms;^azc%bBkM~mf>wwI_Xdiq~bP0y)RAN zzMhcPv5VDU$U~QJxqe=-5&r;nNpU^|Yk8t-M>)DtqWpWnJ?)D2pMLzuAV%*`(F#pj zZEsf)(f3i^PTT9xHMRSFE=DN!t%=_46rf3qEOl2@1uuq*A_-1&)x&PECm+$@PEr7T zi|*F7g0|ZBI{QpwmUyA}RLqI_pb}}GeUCVlZ`1DMe8J$q=OugL9S*2Pl`8oZ9X6y| zImclld7}GI8}8UEH;cwS2Zy6%gs5+)tUoVMCA{E6 zuU7p1(~0(q=(tDcmeYv%#uh|dTT6?q?js}JciP4(2Gp8_See5;3@k^BYW6^#(i$yn z`Ml)Rvpzm1v^A*KdxXBOYb*6(?0cM!)kZa`42NgvhI@P(1`m*Af zREG)46cZyVi{GnYJ6xT5w1hxc-NkNqM1*kyx31i*z8^CVnc?M#G@Sk0DT{9%t_=dd z4F$M35^uaQLY$KOR_3bEf-LDRLB)Zx^(MHg8Q!_m+=IDqIo_YEB+~P)`tw9kSbJcGG&ApcEpU+WAh5c z^3Hy}U#Dt7&+sykcJqC>bIUe*c3GI`{OPwX z-7-E6P(swmH8$33!`>WQ5ase#SLPJrKZr?W(&?kWcp)Xvr>t?nQ+|z<{ED_u@JA9C$N4uUCNZB^UeGA5 zcwAas0i3o9;}Aa&OQ}CuMac{VK-VG9na91r!y8yhm_u(`l?cH==a#ATtU>H%Q-I(i0zpq zDL%6I@b$n^-L#e_(bx!$itANcV+%-9(4>H2q6 zxle6>)ds!Rq^IQmW9a_?>02<%I}sUsUw`P#EB@B8Go*U7-Uz+< zH2=a>TvC*tOiWl0RiE7erAr_!ftP&880TPYUu7!!|9zbcS+$ zl`wQ`1T^vLmP!v&d4}L{)xSuOHU$Q9f~N5m{WugJCyG&N`v7Whs4_Y8ac$2R6ABmf z0r=X#(6{63KrM`qQpsaGrDW{wlsY1ceeSSf)F*m>o}hP~Q?mkh6ai+9JHJ$L@IahK zw2BEO7`sfTfNI@CSE8-;B(l=jiWe69b(N?S#yZPSDECse`Y#8cX^H$B^_Pm75V?61 zuW1#IaW$he)jPf&++d)IJN&`H$Yh`V^?Oz;O1km(&CBuDOw4GKbXdTH*7 zue90UIwyKe^|6JVj&>}-z?va!Y{_2o1{zu25!BD`qXjo1bFQEsJVj?bmZ+GSQ-{Ln zt~*si8CVwB$1C4A@Huk%?FiP%H8J@PTX^Ss6_kuoYf-r1g93$&Dq3Il3N(ozD13vy zmL|dSe$dmuOAMi?w&oZ`LtsQ%hY3nV_m%as22ORem;RE*EQSi5O-Ie7{HiadMpnG+yi4zV*CEgg&1r z8k1@T?{0I4_rWj;YCeyh!5Is|_tv9i8sEAb61g#M>}tcv;L3=A zMXW{dDeYzGw4)a?4%>(Y1lnD=iMu@GW2?rGT0CkM$v6BC6&ZI^&UZZsO;=#`02urQoy|0&+KOprrQ71x(cP{T)9r3 z!+cD&PVWH@clGZaq8FTAQj$(qfAr4ZDxN3yPCq6{76=yjsfs-5YPqLU(-L!x2p7Ch zoGLXkJKEg#m7ASxd^Y40IqbjA{Hs92b|v&8TldDB>($4_>;i%R0egwAmeLUuxR45+ zElRc?v5gaO{b;tR&688K1cR`TIb(6G;LGoQsj&KsL_a%28q))0GX;{XfkeqWh81?P zMZ();1Hj#J%i40NG6Yk3epTNr4W%H2XeF0QG+L zfh$yh0-w1-Kyyh39GWP1tl0y3`GwjS?B2U&sf78+Sy80=dUm*j`#MMGSTv|Ta>kn% zyjYg%QaFxt{~1}|!Vj@{C*?vW-dqf;47Y#tYC=%}orxX}bcNqK6-ta5vu0)eE~KH& z$K=*feqpr#0jd~QWohLGt4(Q;dW%)(LZh5+xItYs`DsHa&_aRdw^^0=Yw7j4%K`t| zh+FUj3i4dTQ5q;j_x947D8x1UpuHoRD7klXiySm_9-Q}l*62k8G0fQDM@d&68;7LK z3)bqQA0fa99d%Tds;dSKWE4^4QO9I|x%UqaeX@{mrWCv26de0tmf1}}DF(>V_*x6$ z&IsW!O$GaoWA{rWB=fvYb?PamM0v@~<1gAprhM-_{dL`&eNRFp2rw7U%q3c!A6FrW zN9A`E-xAG1ozCYhNMqn|>|eT6QdTXveSzh4+Df~~z|mBc4+{K;d9DWe9{>T-)g&`1kFw+=Lap}( z@AiKI_e}Gtu7WjnmtOTd+ZQO7Ge@P?I@Rq=Drl$?S_5grG@scQXiUgrq6 zpV$ArpmFIW$NK&~@=(sT-pk2+b&v2ix#w&|gS}$;)%O}hm0F+^Ga_&D1fF}-6M;~~ zMt04hwMH=nxp2pe|HF;y6`ScM{WlgKnl}ZPM$)G7Aq&Q>FbjFN6H|oImjYElxL7h) zh1VEm(wBB(1};1df|``uovaAQGY`}7`vO?+FY+T>geWlq4K6iOve%+sVVXRMm{YL` z=rDUI@jLI9aEWD}o?y&>q5Yk3Q{-9pD={pdspfU@30Efo--!J6ba0VC!Cd`oX&L0@0lxtNVL_S_8(1csu6!$dnJRzT-<2M1JR)K zNtIOF5ueArKsO{96pEx5uT)7no{ih#wT#`LGL&qvN9A_KM>8;KAAj*>P!>JyAd#k5 zRsK>3SOv$zr_ivf6JF~j_@~7QPzOIOw1A) zywu1Km3?Ql$&Y~=_&m$0e#DaH6PD#RFetMhf zM!999!tS_qx{;l`DLMxhf3)lj3MyfY41Rr|eo zAcV-65U-+{zFH!FbXZ{GY;fLdkYz}vr(Oo^AJ{s;?(c~hHWEG3^wK`%iO|Gap7hL# zSyRgN{WwBZDF_Y<(W22mCyvDZuKp{#@>cWUoOpQO8PZs<_?Fu=(0sw zv??%sSJmB&XV|3L-Yj%-gDZrrOYuRtkRx!M!qCtmgEzj(m_ho5>?7r2Gh7AP&YJHo z#MjK`E;}mJ?c|B&{mXxn)rHM{r?gcX6EnQh<7(feb9JS(R?fDl54^1vh3uj@PO?fL zTe^J%QSKnHP33+u(O_+z+h$(T3h8QL)(Tl~RKoW$9EjP{<*TR__*J1Zn`vqZE zJ#dvUlQWO4=zgfX;Y3Go0-c|g206M(&-fP$*4y=_2axyg27wyJ83%qINq@9mJD!@? z!I93n5DT8S;EdZIm(RM5luxEsh52KW15NFF#i`4Yb9R3UgAN$@d!!Wb4E7}n25x!; zWwu5??9&*`@#W2!RIfef@SdtCV%qBUt1y(-35SrRw^EE<9i>Fh=&Yc=FqL&$CxD+F z&CYxu8(o^eNWh+b!mAlc);`zA7kU;IFu$f)6HM5V6H>YjiTQW#jk1(!^g-0hHrJ2b z3!xtT*}F)TS<$~++imt698shzarq|h?dwMn4O>cU3qn|o-wiYdkT!f!4KKs0MUkJ1 zy1R$aO|28{i+KgnduIzqLZ$|+F1dbwPYSvD+Ws8cS6`)5`y#B;IsVj05IWwz7jPIz zb4KO^>m3)-oe;f!-51+~^13<04e(UH=7n@i8;I#1RjDhO+C!}Z;)B85tL`=UPQ8dj zs?yMGH{b6FE}ZB{>+O+=Xs0{MmQ;dVpI2>;{1H7*Yt#Xt((16LNU3MKvwq4iY;s%= z-iqZ}==3044oTwQ!y|gJ!<1!VFSRn()k4f5O^;JRR45EB6R&O89P0r~(v3`QvOJ_h zD;L1vt~g4*jbhmp8#Lljt~MJ07a29)B$@gH1Pm$)&Z_Let(BbT+$N;}0KZW-}R=O^pO z`S!0y1k4}M&u&(S)#I~MmN+!=S5KL2oIJI3$?^0VrqIqdS@M!-FiYgnk3sH2d6UHm zgf~#X${7t*XKC$qcUL$->!)74EskWVl#vcxFxDnqjVDzI00WHn{fG5;lBZcP^?$3g zv4-S0-3Ta2Ih&Cxf~~xCwDy#+SulLy{7$EA$b_S|8|vON*(o?-x7z9Kg7#;?;y1!iL9HxbBWVJ{cj?@2H%R9fp}1fTj7nOPKWSS=y$a!L+srFCEL2(S#tPZ7 zwKG#Vs9aROH};&>=jNJj1}!!61uKk61ng3UPZ9M$+jf7A`fX2GMARDKmmMXw4+E)6rQ_~&?_H4) zV?WbwR>vH9#E-oF$&%ey$)rv8(-bGuU_Mwdf^svRLqmtyYz_Kyb$xwzz3ePa_S?$4-vds(- zU{|C5AgF?81yM(L#f&BMRmW*%XOzYH(fEnwbb7+kq9z_(zZSoM(psr{`k!C%t+>>6 z*%~dCCQF8O9W6aqgFHG-Y0#PHs+cI^M!N})9Ck1H)9gfY-UK`HlmAB=f>N)F|X?-a{c2;z}K zE0p4jVkYMxJ>}XPQYZKrLpO(2PPVP>E*}$l4BSYmJ8)d>0il(NKbsSP5g!)A$#QNp zu_b9FUB4?K!Tm;T`IK?#eLn=u1IjbPxJ|P$P4wFGQ5l58>53(>BEN#Ktf0w`hxXoO zkgCrt=MN?WnLNc%4Hqw7T;<=Afb@{G!=Y`h~iJE;a}ZvyWqKxJYb}7>_DX z^M9&A2u#!PltKl7Bw_tGpk7{lwB~!G`}n9{990yx0+|N zc;Rr1>=E;yDi68#&3Z7gSdal`tj1Ii`Ke{mkI{MaE`99eD~#9)egiSSMPPj34Q`>4 zQ!T^>k8yM4z(;-ODkEXVu?T>mpSD2`7e1_Ts7q)>h=GfIv^g2+b35OL1-i*>m{Hky zVCxS1(MM}wdKsUa1&8S41WsjvpbYK6^^799-Tdbam9muX8z1|k>r(T_Z?f8x97eMR z>H^8ajI*^Efz)H2X%_W{_^oipu1fUTtX%MI!UX}y8oA>@HKNcdfBLnCmZwyLhAMt} zLG{<^(J8nSe)0VCuPR?3?-vH<&)F*Z9T2{n`R~vK_J6=#rrg4sl^D;w?RJLw_1sFB ztAk7QRN*xnr70bIGuhGQD3cF&1bLC?aMBvB4hzTWNko#_Z2eB_89 zoq_RN;N&$yAD3g0$fQfQXGap+n?vuWw4+RK*!k@q56Va{h|4s zjF+Ui3sss|GLlH)dxZ%%UNy>W5A&>#y_-VSbX;-gD~q{^3W8qB3T4ed6lFJfm2bTwBZ6!Hmm^LG`nuIgL&KOp3fZrRA-qwz~5 zV{NjX?*6zbzanc(Htl{M`lex!r1NexZmn6X(=JM}=TP>+A8r_5i#tzL=2uneJv^jt zLemQmt#8Q_AQ6rtMISK#3^4j{ha9)V=5Vu)IW5Aavx{H0QpCGuichp$Iv?UA4PTlC zN%}e2xS(=Uz11iyjZ%aOr@5l4EX6E;d`O!hSfdal7WQXzRgUXwB#y%M?oOu*nUuF3 zWBC4AZQqw#netA_g#42M1GTYxIW^UuAP_frP8gM+aB2jH^Z~ZB0myuBm_`mWgrE++ znf?fgE9wkd5Y03sXgh#f!x#&F;vZna*h|)jrc5)w z&R)QqbhK*`V|B%?Lf2VgCdX4eJ^=4zIKKK&b6*@T19{Yq<1AKnk_WPgB5|+h;p15# zlKkAHMk@mt#YE-zUPp{Hn!el3m&5~+ekdTaxQ`+PtVEKH|ATF&nz=Z%Jjr6V6D58+ zE4xR_%hz=E`joSR_Iw&~MF2kvzRIkLOIgw}+=Uf*NYkic9{bjF;T3g7f*en(KCm@& z@TnLa0NYVrPOczi^qGu`Ywt)_EN7A-O_c!x_9Zk88@@6icK>WIBy0M~v!e)mY1wSXM{bvYZR zE!&8EQ)YgZgUOmL_q!aH4&mlg;D;T%rZkcF1J>D)nwQg!Q_7Nv+oIan8%T(t64c4n zc1!|fH!#xMXq)@j;q2g~e`3eRlBi~KF_hK*_OtB(8Bs-t1L%TT`1PPa$v5fZuGrot zZWr3$Ra2Bm|5vF)ilu417@rLdb~q^Z_>*;7-_#uC?9-kr-)Wg*Lz~VqZug9Ir|0aP z3{xn;GOAMlMX$p<3pgkW%C>Kazdx#wdLp0dP-{&4l-54YeHKEi6of`0>zMD%{M6MBOs~ zK(}E_2)FF-3TRo3W0$H#PAA;W7VA?8{#5>cl&)=izU&BuK$@)Or*1GZjpIr^wv0ak zD6Kj!0_^^**7q8i(v)1}DZRIBF*!(I4w%BE$MZHm^*2SvJSar4Uh;JJSB?Pev*OX3DJ-O7u)`9!w_wWuU`j9CK{KtT_>^7eL@9n zprun_(=E9djd)y@3g=_m`cu-rZ%O1fKq))Ov}5gwFlArmLAY`n?8Ln+E((5RIwYcX zDk&9bEPR@EBo3XzcC5UG3MWbg^YP;0W;hT0Z@lwiYD}yusyZ?)my)m|o?{>mm0pn- zjC6SVX(yiNP)nl*>4mN*4PKIk#E*^`>d8F(I`Vc|gmx|BhpO-6k#L`lY_XWWX#0{- zI%f2Ygd{_Ju~tJ>_YovprGoH8JpF|OM%BGO<4%?P3f}Q={&|Y_9N-4Jv?l}E^m=G{ zof#Is3s%}wEj6*hPJf^ZHMeHG++q@Ir80OVLj3IoaAOWi)+H4YG>U_9-M;>L5L0GAFtg)S8A3fWDC=j!Ir9}o(MP;i}U4P}b(jc0RZT$$0Cs ziy5}BeQb#zecTfcJQN6QnrDn99kf_qos~1hxakWZNqI36`uzd`QaX*>zpv40Yl>2b zyL6ZnYb7_mCY1Zm%HzC*6R;1s{Sy@#mOnV>|E_6|yYDEbk+HQw|MCF54mWnP{L>FR z%{~a!bieF;aD;v&PaQ7eCQo#gRer4@F{5&qr}a0brzb-j8nM%_Lyb5W)en*S&lO3Y;-G{Q{(Q+%!vzZ3FoC55}7rb328hqz$ zfoSnG4}`Osg}P(bXGH8>K+H>GxBImwxBKMEC*FU?{W^P%cQ`w)ly25ggEi7f0Q=}( zdxC=2)9i)%F|Q{C`Xc8HRJuShgFTf3A6fgW)9%N}&bZ$;)HQO?#)cqfH4Z*qP)jya z^QlvPKp68>Biy+<0!R@hW(102kk%mOAmf)dcr9KtftT^uIdF8F?Y~kTC z82IenYnLqFfrW#-v`YV75}n}HeO)ocbPpA`x&{!zbt`kI?=bbtinjH%XL&<3qi^U> zsi@P+o{SZ?yT&~l#_!1uKD=}>mHtgKO?37}=YM+Q!^PIGs1Wn>Hqt+d)Q?NX>@h*q zlKXD}ADYPaxZe7WeC3bS8QwE0dTCG&txZ+T}-*?&ss*+jA%r_5i}`7 z=BdX^ztRFE2v4|zl9&H)j0iHJ-vhT7&_U{l9Y-x073ORgSt@WR= zh&B?Jjt5T_H?A!JVJ?n|*QR91X^>jQIr&F6Z3mPKoHnkzl_yDXw4@7DWu{OF>7ibc zcEnUG+A+Of%5`^FJ<8bfI#2!ZDP82h3@4j!Y7^^uh8 z0@?$#lRPa)JVDXuG(EO)RuB#&K|XUZ?DbYQr2NFDqj8LIxe-Pa)vY0|S<)>hlOjwL z1T`=G4~R9S#_fyl0m~60+2zeSj{fd=a-sirMt$u-`kUc3Hl%%AxwlQ@$dk(mv7zzJ zjkKq<1|G(D7C2Uz4SOTJBs1zKU&75Hlt-R^J9nk_@ziB%B2icKuwy*n(C(vK>=6Ng zFjoSj8R7f%Lr9PJA~nSWPW%xV%x=*tNtz~+T%(FoqleVV@Q&^dC5x!nT+JZ{vrS|J z9^yywd6QvjnXU*s>=@XL%v9V$rGjqQzD|Ck<^HXzw)Zm zf~{9%eaeM5Oe7X-$=KBPmU_)Q5=|;4%r^+XvjN$rl>;Z<@@NKpR9bcVOpAnea}v?q z725T0LK+l0XgFmK+qv1Jt|{?rgoKGd358uLQ5zZC4PQY?w@mD2K1^JkvjaqD_wXjq zP7w;fwWgYCU8__3#a1SUI82S|PK|*ZF0jtL{2O2FlHWiS@|ILKk^f})d*OU%f%&&~ zvKIF+M;`RoV#VcdD5%sfZAWL2|1?D9^F=PGQT-QtPJC40j0a0Vd`YgFZTpXn11b-c zoxo-#B3m;+T=pS z;C-^Lu|CpQ36$hc2fLK*6m;BtF*MqiO_v2`9bCs48x zpoHv@s?Qj=l{%u4${&KHUl)M=7~Nv!Vut#(5q9eIn*nnm^o> z#jlV35O#DlTMc#OYp1r4-c(p{*b{Wjo)xg7SdJrmND1&0ZTV{Zt6$>#j5(yNkkYv) zXAYf3ke5@N@)L|XB}$e)^5s$fw7o7HJSP@w0gsPWn<#a=Ca;$%9)%%7(C`HN z`2ipv&PHzoUbBH(qmS5-UWj8^Hu>Jyx$^Rbfhn+6iCoFte7hT$D80c}yn1>L9eFFD zRa^4W*~>=z@L;jFJxgCtEcRE6K3TQw-2--@kCD7^V0KL|2B~tt$UCbD+ENfkPz)+R za$YO7J)O#a<6Wb#2wMI%NY@-ov~@GVhwpj81t96mFWdhdic_7|1FZL>BJ0~WGO7=C zPHFnv`2+#3y`wKI^+Txgd6jCzt8K;Ye|hRlJ+_jJKCoo>z&)oLL8k|wSCx%Njw>cG zne)Pn>JOJzaoREORV=xwgNQV4vYe*i@vZV~y!rMRxfn8Ij zY;j`Si4m^H^0_^Fwy{IGt!Qal=GT} zJZvyo@MG2F?@nr@8_PI(`Mt1Iqul^~{OOQWi`1lgUPH0daY6y|mn$t64pRMv-TU_x z>h{zkLn=9mU~%YUbgluk6vCImI%-;MV!PGl%rSw1`Ie+}-ml;!VPClv%X)Q53lKch zAN|CK(P4*$%ZJB2;JqgJ-jOG^{Zq_-VT^qc+%5C&Sjhbfp2hn}GZEFO*Ud!iNYV!1 znlAY*zma{vx47vcZ#-9ibBE{oz;hLu%__I}(=S{YUYJLbb4u$L^JsI_3ror-R+M-3 zYq10!A3-wn{pd!aMrfr=Z-f&+&8N73C~Fc8$cxQMV?d!Nr7Gw;TReMtK{aYcwN9-L zglbS{wo&M*qR#K?|SHtYgX5t8a zOgppt(jnA^__T+L<~JV`9!j>Ir<>@;4%A3q-4nO-w8aj~HP!n_`%+rF@4mRYpPO(3 zi&1$x8g%|nYj%`KsNHn6T8k^p&N{77{4C$rmJe0=J|}t3XVk$Pe$Zil=q)nn9D5o;$raV;6`fT zy<;S6*dLm6TfBx!3T;giMQElx&+Ibu&uQ&9h!pxq4}qOhd0UK&+~RNHt_!5d26>7T z&Y_o*L>iTpGtZC1f|sklc|mY8%`C^~fm?*&l; zUbdfV{de>nb5mT}r4XQ)aIrm7&CO)Qaj_8QDQDo-G50yFN5Bg+d2p?BGT=!DMhBne2JSF^UY0hj?N&9s6-E6+>O* z2VF{3KCkCQ+gU+^jp0PKE0Fy6|5nA$TZUO7LtkB`tr0h-Jbs#>ly|Hg+$rO2G; z2`HfFapQI0Q`wa^`KkG0?Dv&kB9RSCE$4im$sK@sAhcT}pcvu*(kB7k?8pv1?~|JW zMB}um3>sV$?BKLPXFL=r0mDIU=n*~S%11VFOpF9aW2n1s*m&&(+#L{K~ zGgog~n3P8&5+xM8jCI*oUj&4%mSJHXZV=wPnz0ME&sg~=qS7u#jFQIrAMp8e@-DUf ziEkNG><{g#AZ=NR3XpA5f4P*^kkl{RB@xfuK=CrBM<{R~@q)gA)ZN|SV)JiWWl-aX zvVhu~_K0-dM+iYi7QF2cSnbc0io1GU3lyeYIiIso+M*M*Ma=$JtRL}*hwW-GDpyl=ML(TvEj#J=j?v>z3?|@j+VGTxAOJF` z)wd@n=q|WgJWx_`y@I9VB@wxa8uCY0ZiI4G)GnjsyEn-|-I`doga?}zqS7vgKv7oV zUo~foG(1nx?n}&MI;H-E83n&29v@XqGxpes3WFVGtsmnyc`pIt*F)dTfx@sNjs4Wt z2!PhSIAtC505jgj7qMx3g>`xmn^Ps6a=+uQ%z^oOl;4dYHG$2pt5dW1$gFL-=40X? z(UDJ&aP;qSBUs2;D5lGK1f2A;Acu*3pZ=63by;nc!Ma-|Rtiop{#OJoRo%=PSrq}* zO|m-`Y+uJe^m%@E1wUx_5M|h%wkb9+KCvcL^N2_X79w95!44QSJNrp&ZnN#HE@hqW zhc4q*ET!f?3$h#VFI-H7@~0MpUoC;B(~coLLsnegn8lx}&@gTt^JXutaU0~hY2k-5V( zIKz=3yny{o`MoMGDtG9G^CjxH`hOEZA-Qa1e}nnr^c?yT{&Vt(L*>srl92p~PkcFZ z!)t3OQEA}GoD6;0W(9r-LQ3%?n-p?xsN?-a$`$Sk^4yo+K@OOfM!h7Z!=K%y1DXd5 z-+{jPWE{>?Jym8OxU|EUYGU-N?mGHA<&W6M9kpVxi9&;xD^lFLcK65+XEy0akC_N% z8`10H>FC)MeoIEv=kxNP1?Qwd*dt02(k#GYGRlrAhS|Wfl|>CvOElRt`*FQgpOGCw`A=9zf_{q%ec5sID z+f^74>@Fo43kY-n1}e3^aTtO_fyP*n6DIUR3AB6(gse%`cmzqpfk=N!%f6|SRYN7P z)s?o|W?mu5w2$>{gZ)SRiC2NCQYSHHBvH#@b?Xkra0WJcs;hm^8H-B^quKVV6C==S zaYFgiAIS?oeKv(|N?Io1JRwqxJE+bg)zI@tlq|HoPIm`wl*5!!mUs#lZLk^a>8rd?&@zsIMqZH$N@69Nn^|uw^Skg;?#`b!Z`ovJc^}cvpM` zU2c#%$5Eet+_*X603B6YkvCAvf6MWW6mFX$v>)(M2RhSnGsrwEI#fS-O5x<}40SL~ z#R4RIdLeW(2xPiMi|>?>{2ap`*Xh48WF>q&NC$< zFX=OnH7?D7JE>O>Ro<*98_PP$?$8-awNC?G(q6Y=2#Kvg{4Pvjl%(WZZXJ<+0KKWZ zTyD>CNPf?AgDL}qeEp^_%Z<$I&d+k*zO*H$4Mh#mKA=a0d^)~mihF8U3N24)OQynq z+%O*5|I{eXre!Zk@_`TK?OgW#>$H6QXql2AMH6@pvl%(9G1;=*QJ96&OGKeAw9)s~ zTn|H9E9MoS7xM8uVrKZFAv;<9&x7e_p6$Hg+p2-;4dF|`>)@=S!kl&X=xMr|J>g16 zW+?4G_1sGY@wBCxm49*D0!mqB-Pzo#XDkO%^VljQQ0D6uxemr%6uif{oY2kHnfBsdaxo`oZB>G%aa4Ssd0-gD|v4^lHijR)F??> z1VK9VeuH5G7H`TvO5QKiNqo}qM}_;l6(rL!N{S8pU-w$~YZ@Dh z${<~duMSY&qc_T61{-R(Z0|&RZ6~6fdpasBSCI(eA148(^)*WV8CYNTdX`*TZfRy{ z#ii`ODgyBrYuT7pdgZ6Q6muXjpQ|_L4>{ClwIQd!m9{LNVg!D4xBk8HM^yTrwx6&A zPq3`hLKHw>xUe6?5I$nh6QUZLwRk)oyY+>t<1A5s*%bX=?XwF(Jl9cL!jlZmHb}`| z0~%rjGMjP}DeA?_KLUM(O1LFr3g9(YA&iHp!iv~F!z8H3+T_-VdN}J&nCRn(THAKLqyfxStKWPg{s0+MTf)&2332);B364I z(tOs(U42oY8UPmWxfx94g=pa9s!u5B9s)LuER`kqnmeZhr)H0B%R7-bk{59Pj}EjM zP&LP-zdU?EOmxf3nKfaPG|NX4z`KdXR>dsg+{DyDtyxHktp!A2ur?!Wp2p~y9IsSP z!_se4;8d$w6tQsrO+cd!sFGZj_G0&GaI%PT>fkAPmCbFkE3o)D{f(vz27^K)+NIGO zq(D)P-|&Ekn!CquA(SM}5}wMucWHd7MRly13a=1!Nkfhv7tY-0fuA#HJnKkOmT0Gl zV&p~1flu~LPDucMddV1~Cbm#xwJf!F!KIeQAk}SG?ro2UAmc|wp0ci;rc`?pTvqIV zJZyFqz5Jo_bh?^Ol{m^@_UAOe2U`;mPcMf13upW&Ifm#%-IvQ-QX_%RESUxdRKmNf z#FuKR%nNV2x_{&Z0v5vgfuY6SqbsG8fbY6cv~vYoC$z&+1?&x$Byg;Aa# z{4Wi8DVW`jZE0_+Ex55&F*v6%bO$2=RjB8H{s&}Cq1#U=^ORgS*yxJ7_8&2Gfn`0@ zR;e_h)9fQ3%&z9OP3?94-fmKa+5M2)7{!-3`N&;~tSL#j;&;10GFT}ceLl2ZHi-(D zyqer|dRF;xXK0qG1WM9PB5X>sx|WSw^GnavA7Y0mt>U?3lW!pzA}Th^X;|y53tE>0_p<);B~`eSLCo}3 z{ce`x;r3~jlC2`SD7?usg4uUo#F6`8{OhGz4@xSZUU0 z^s|E^cOxMqE@a-lsGJ|LOL{@Y=^O45^F!#aJ-c8u{IT(u?_obk%WjPge8~)b6C|W3?rb(cp(IH%s*d zYcEh|6lKW>UmZu8xO(f%rfmQU2*L95}p1blf zch7u5f=+$?)Z)~G&d`roCsI(QJ<1MH$%rDosUuIo!b^&~OdtBb&uX8^ z#%QvmIA3B5+5QwPykFY@E_P0sOofmXjZxSeAp+o}l6(GYWYu_x} ztx|!5gw8G~JwwQ*kl?*URyo(pK|ST$NjQoIj!wqHKI|oOejAvrfxHNosN*;cD4DWw zQKA!mHSbfcrb62(4sgl;m~Fqnwsj3*`q-2jgmi+QSvR^?KyMJA!D{OQFL;She8T5n zWV1aMzi;M%BdZ*t@+hU_=gMXA62I6Uydy7(%Fc{bsN_qH{o~Zb89#H=J3u_wJ;lk- zGWJf=J$Gx*_Wg!}(yk@1;DjXWEevIwFfZR^-_vL+${$Ot>-$Ftg8DS2G#!qstohR z)~0-_8lYZ~LF*Od<@t|`RQi!bb_$8Wt}FeO5xQ_HAw66i%mjIFJLYQroRZwzjQwWV zd9hD#of8a+sm_E4O3k*$({pA-n^hQ>rj$OqrK!AH5ybRJ%A^pOdk({d>3Cglo}PHY z&Yd&AdEl7e*V@i}LR)kwrg}c%eL~@c^*9uph44fb_p**b_FTmj_TISd8d~RrKkLq9 zRxVWXr@^&c3C2tAc>R@(laG@z_Zy8{Hu(A}py(e2^HXF`*|laO*t|6*LekV5Ou$UC zYbHD6k~}Aa$$-<#DmdbTht?j8CY7!o=It%)NQf0EiwzZ`NGZy6ye(T6!_q`UP$Y0e zE%2e;V8S?Ad_ohyygPYX)>2Lcm|xx@AD*|zb-%Erk5(2X%cJqT-g8o+O^SJ+ehc8- zena(E)lk-Y$AY4a6kEmmZd;>|#)urLDSl}Q$555{nUj(Fpc2uE8VN3lLVK2_@K>S8zf-feTM*sCB_*7BL#&TimfEp&<1AoRSC)c~BjcNJ+0F#SPeOiWC+cktPyCI}UaF|#_%Gf`*%uit5!FJv z31p<(-W2EwK!SBawwQ+z7m!sV_}5`_4OK_H|GMAInjV$1Yf0@h@IoDP$6C@mPM@E( zF1|_5U{+P)2V`X3tBK2L3HzX6&~vjEBIx9mFr>Nm=vEGId#^X^Y;~3hzo zx^HREiS#2bAuy7Tf3r0XdR`>yBk6P)&`oF!D03W;qt=6r}ushrZ3a_FR^(;Qo&yo*xK zlBAr<`SacPAGmJU57%~GujljrxIa=4RA#c(0!ENya~k$m+H1@@C5uIprsOaRa{=ea zbts6lN+$J_13K-$MH*^tw|#C&+n7sezc~YCB*-9!ieFqrcLru^uZ$y8*@qD`e^28W z3Z?F98XbNzFe>lp;-c=!CwA@?U{#Sdw@^>RE&FDDGGPCJuX$HH_Y1wtZqtHVAJSbk04RiUYUthBGXjrDT?G=Y#nAPcbHw<*xzw`VTgTmCRkByp ze$cbVkAy1~q9o0f*+-4H5RcJ&sKqr^S?UqlCUA0{d=tUFXMlEiohPgNIYVfw`^7&|tuO3ga_qQ+s7oU6ZCic$o$iv}Us*(CS zeb#c4TV-xRw@4;tOAg>l7#Et_lHcppEAe6_xA{G1Zk9JHVP+L))V`>UgtHhSkO=cfV~9 zm>ZX`h;3JinI2}gq&P1VRkY0A7+&=+?JDlJd`aJ*cmDj0d;rWCEO|xSc!TVtA$pBQ zGfOEll<`;Pj8%O7syd*vuK2Wt?Rw%$GYNY9H4O-7bV$r-P_&;P4)oa)hLyiPxXnZx zonKmG58{!hE)~||8_y?|9MXPZL&;ltdr~&5TH(_b@erdP5uxKPL9Tn5=)tnH9bHf} z?GDjWWF}c=Y|-qy? z|H1hiJm7-2cya_r+gi0c$=7Yf^y4|RU7Hr6kLpx3bN_V3y!d9giZmJK?>(o}^KX5V zW#B7ugkLYHKbF<9`~2U4Kq}m*^ie^4jB>>K-Z3D=LDqEv`3Rm{}KC&Zr$J0Hx>u z7)L4g>Y2lCSljJS*+-72L&YBErijom7ypz<54{IQ^UfrVTRgsph-M6L_tB(}E<)j2 zGlJm4Vdp27XVz%UvNC4{_Bib~e~;aRG-;8dL4rBl;WHy&z0K&X`>~`E^E?C)8b$~} z*u%NX)dJiXO*?S##dwOHN@_mcNh{{g-)S>ms>Bux<;y@25lsm^=6q0p3rMPa0sx(< z6bvz>&%0WuauET}NxB&1sm!$$fNo9?YN2>*&wwfVWVF?0nq?0vOwTdeV;MD2FK&_6 zVwE)JnIg>cwZOd5viNcE-fxv{mWr6eE~PSAQsa#R=$Ct+cs_=!Ft8(UB@FcQs2kj@ zY#HZ~C?(26>9RdGQh6#Px^2{$1;dTP3e|x@=c)>6yU7yvVgf6BgV)*ia^NbR@BfD? zZfpiUq)LLk46E?w;4G0O!&xfo;97LV-m}%RHcHc54(nR{m&$IwU>)*-qkq{~F07;% zJxb-bVw#&Vg{b-BVBNN68e`}|z|nV1Qo5;13<(w&B$-+$43`w&j5Bn|_@Q^HOBbW5 zk`SSW*!Eyeg?(*F8vC#%Srjx`;{8Iumn;6Q?EA56*&d(N0^VI67na$ncnc^0wj~s2 z@GiMJ#<+@Ek65&?;kS@qEvlK!D`M14I*BWuM!ea+OliT+&mt3F`% zCotgZmH$^A5U2`G)TggnD-0myG>)To;HN8dN@W{ImAlxCz@0XuY!(N~Fg^*bI(BVm z0-uL$*6~X@d3~LJLP8T|LDchTd+5BgDn=&1An53nX624J+UESXN=o}Y%01<|#O;zk z{nN~_r@o;iP*XenG+kfw2u%!Dd)U49+udl1(`tZbRNBJySb5$XM&R_Lo*&dHc{xX^ zv3e;sk6XPo7WDQqU)J*JEe!oq>ZDZ3N-5~B(&JCt*_ly&Hf{JP>w7)M|NE>1y->5& zk|-Sdk<}g8&@C=Pf$k(lFE8Vijbnr~(4e~F-`7Tkd%|x^U~YV4Q#Hte9WP)3CL&pX zK`l~2GE|5xq{mYfA@V}_zH$@k`uQx3RT`a<@^h;r5H_F5)0J7;`2bo^K9_eEp4a6X zn9|qG1Fr0UJx1IXEk`gD!Ksy_TuKkbAqF8E9nob}wnj}V8qxUrcs^FIWxi_V^lUd8qX*nfkFN=SAw@ zww7M>s}!9>fk$*PYKvS_O9uYuVBcQl`Wdscvr&|=a>l(T^$?e(gfxBAHj%wfJbO%U zP40*y))S?52NWAxy`%9M_?x|v;j%K?>|R!wqO!>*@4vlX4!im$bfZkEo-{W@F7kxQI112(<_sdcmm^x?+~r3BdcHDi>EfFY_i8%*wS7ti zE;W~AB!mXR

    fSLB_Y^kAN{{L7`-NxRHVK(?x5k-vV8JXgpQ$CsL3USN6v$RfPNQ zj7n|>pQzb5xzed9?a-kbrrSJEjz)Qig?hY?{@3Am8dh)-ah8iH%N;FQL&|I6Z^)}J z$dFmX+KZ5w>5=7|2Qm1|Zl(W542q&p^*yz?`b{0cym=_lsGI{g9}#a?AH;uFU&eHw z@~5TWwi;2bo`iSzl3pBL6oYS5i;I7Vs-;ZsbZnJxkxw_zE~s_CE4$S0!}@t_jg?>S z4LM|JIY@fC){~*PgAewrrcFKC|VYyWlTc`Er2LhT?qtY>?_LG6_Zy$kEUhP2GU z#RV8pb_yL3B6^=feh)W*O#c`oi)7tLgb*V{!O=?#(j8G(iRR%2PaO~=Q*+DuB03k7 zv<`sh5qQVlCVf=+w3kSFK4I)6fFDmPbI^Pe7#=5^*WjGGz6fBDRoJPe_S7W3BguC| zuD!P%!P_OZxJs1M;^b?)JUIFc=!k=q76EvLAwg~~4{QV}Du~lniRnsG)dHXQX7&L= z%sBVxyFcYZ6|Ja{yszPJM8`I<9nj_aWqQX zyKB{V659;CEbbnofebMjfZ7PYc)$wKJmVxSEHE+f_L!E~_liUK)wL*DW|9_ERxjHJ zTM!3~KK;X`JmJ#yiwgPno+20dfjN<0N$MI7ZVH<@sC^b}L?S(rvu|FNOT7K~e}KCq z^V2NZzN2}CZ2mFiR+H=Hvtz^(36?OG9~jOk^U}V($QcSi4Rxb4CZM4#zhn7*EBILa_k!#u ztZ69r>||?E!o_0!1LrG9b7WbKn`jOFvsD6~)It)^{9c}IT}jnhbX&;DsV1qm+}-xZ zAC{s!w$l01^Gec9lr4fS855CG==DsF>nQ!AeADoF)yE?frsj~0P3EjP(@*Ex3uKN& z1?M8t{em*KuIZS^HdF(X`F0{Ov$uBTW%-yz*9=`4YS4W<|C#rwFjYNZjJkZgQTVOM^V4P_QvoV}xpv zMR6EvD!Ihoi17Z%i1aC8_U4zH>U~7*^ETT-jIL0ptreD@8F}R`<ZC z;U3d&`WH2y29MlL!6`T8$r*xN;e;C{&v$Re^Y8oyU>IK%)FQ{YB-klaDbM^9;XT;&r^+s}z zm{F5jDpLbt>&$6WStuwC>$ z^#&Z64ZO{KE!`WI&Q96)2#e3!ua->V&`DPjuD zAVx@S5&McfbE#qlEjqD$>Ce@G2DPmA1jC>J4FwAsz5JA#T~Ow$b|dmYHg&S{w0+cl zWY5DH$haKoux3sl=^EtV221^MUoRkKBYQw4FcQ23zcX=st4*1nfZId!Zf^^r_HjLY zo$&3-EVoDl99*~3eD}G6Q^6;A=cL`9AY4w}NKd#?FkM~t#Tnfn`yeZv^1fZ=G6gMF zxSrAcV9Tx~YVr@_z8F~+bUhFm{Q7Gf*zpSjt$Bk77d{U3U+d9yjQBo+^0y!ooB7*) zDZvo^u$75S9c_~4J)S9ST#ikh+~;htK0{hg%M0=mncL;O=0`+A9!j=7J6#ss7ew>N z+))hQO!bzQFuao1CIB6+It{=Yx75Y^8fxsyhp&@Bss&R23F}+y9>u1huzg=xj3HFb z+uE>-&1c+zi~~eC#!sg}ImZ^`kNl zkPHOkms1I&`w!xAvWa(cOw~2dOqeQ7?dS51eq*6}RPN4r5ywakk_pc{KLbKX(YG8z zT#7?HpwBcLZaw;^4{FRVU~}N$t3i>B)*vtqqnlIqUu*t875VPpqBg1Y#JFs#a1-fl zV6RB-7{8)ig&jx_NU%`cx-xGl zjL7R^AB;THT6q!-Jy%Gf;J|I^+qnH&8MB?BN@G`euC@@gmJg1uXpaLP`0RNnxBy#` z!l(Ty9vSr5rqMbApaHD^0cWQtdk|UR0phJs2;3>JGPg51FCBo?Z$i60RJ}C@-Ypq* z)rNu^DL!&;)O4#-+xw>fpsAgG)tIbFX81qYw9DM<*P1SNlQgKu5Q_KS@nGx5BGen> zo$OEgf$d6}!Rm`@J_`u9)D653da_ftyr0tHXUk17_{_40JGW(&KR!NlJZ<_DKQ7%1 z8Jz|f^LE6e#9fo{*lSgpCHVow4Z8BaXuTQCo$%dr822^QKUxaY#Q!hBU(Za;y6fef zk(b>-bY8%Agtl`^$SZ2o>ddwzdBDRiE*U%4F2z${ZDQjcMR#o>c(3lZdEI9}o-soB zBvOGNpBKQ;QIp3+**}V^)mVRaQt%MD8uE{7Y@Epn-mSKUAca@POO}|@LB#M3%*Xd) z@?MK8T9#w6Wt%LqwD8lrAl;0BPxM}LO1e_5LC?MxSvY7ry6h5afa#(_LB?JLkzpyi zY7vH-wSgnxtQe-9#qnU>-oT91gCg*0mC}1%f;w70Al^fxXZMdlA$iW6`BuC04+VJE zbJOHxLlCt_KZ)a9%uyHenMR?*2?z=2eCM&ZBU#n+xLn)v($gOlm!qj2OUA zS!xAbk+Tn1GOEhEB!gJUv#N38kcx@d{j1@?Q0t&Y1GLnkE&pRud4m}aw=BP^M{G6z zFRGKXeg|xdyvo8A#caCJ{{g3CJY$T_1CI<8Po>pgQ}m9$+N}b?n4eI+jdgKOP$bnn zvlEvPN722IL79uHj)`TVqJ7(TJle0*vSQ{YmoKsHc5A{7!|2FzZT}B*QhJ%z55}Ac zezjc;Jo$nU!oQg6YnLNaYIKqp#n%ObyO%xhi`ak>k&= zD;nLiDH^IRA8y;kzD}e{c^=wv1i@|R9Zu2LuL_4OJ1$2_N=BN^_Lyh64VcFAmv2Ij zsBsyP3kRN&h+oWU#ewq+(zF>Rt6`}Mq(<{oOMH{ot2>yCp1^8jtxq-k9#deC#3 z-x%U(>aD7X@p3%*C(Obd^?JM^++o)=#Ad<=6G;s%onO{>SGA_ZU2JInQY4fw781ep z+XA~i^(C4Y&9CCT3!V2ULEfVl2P=-gQB3m<(FXM?v7co)m@1LG*X7`ETVr)62?nL0 z2*(RHEx#k%0`SJI*u`^1(O`!}DrIa)yTo}nAMpj^XiqeNA-+ouNOB0T?qb0|^DH?v zdSWMbobC)9S+I(^vwOuZ$-eHFk?fn3TY|FlFKdR{{s;I!khGNSQEE@m4-W)b2VBdW zKc~Kc`2U6d0>AS+U|764fps}hEV~>Yqk<5jw~0HX$y~TQ-{w%D`1CjFZkaNOEAlqv zG~qM+;9d-%9#pfrhy&PZzen84ue~iNLE~*-htd9P=DWUddL5i9QozC&0A41DY{CLw z#^tep^E|B`a;P%y)K0o90{p@405;PqOsr`*`=3g4O(8s$^WOXDaeJK6H<+m;`u-v4%A43~LG*cJoRD zrh9_0hp-3>wae$#AG{MCKyS?8>?7$X525O-^(8!7#$StgbY7RHQ90fU7?)8%)*1u% zPI`mogl>o z*8IEKDZdyz4PK-5(A$EQay4G8Fmr1GOG z+RCQ8q~8p)nYO(6vs6Klv^pH&NgYsi4u%WC)J( z8+=rooa~C{WO4r(1?k$yF?q>!r4T{QIne_B^?i*qw^j|(-U;lL?h({gdOGDfjlFNl zAUSHU)s40c0zzTk)%l=iQOeoW+j5T9>yxy_^Md#3v*GsTPL*5a$k+3GXqV?%LGhK%vL#&_20CR)_`3LKlFEuS|J(Y z6>>Rvq-h}EX)~1z3u!Am9mZ|=uyBbz^~QY)thmx*O8VBJ9?}cd<*Ug{*aZ~IDsjvuX| zf(@Hzg7Xy4jKqp`pHz5q9irMiZ!z-X(6+DvTJBj8RMmQiOK&;c zu6h@fz9o$>Bkwswqm9K)Zv+Aoj;_&5u#hCdN!rCT|2U?g)=j=8=-iu$6IuKhVL5oE~kNpqXx~p`eK@l8@pzUF}@*qJ}jP)n(fdeLeF7Cwz|= zFT1CC+?H)1pB{Ym-FV}Iei9zeBu$w_yrCdnbme+j>iBPY2#cOVvPp`uaJ!OTuaO~- zV62hF`NDifHeE(KXzwml)_qK#?$K4?_+D4xjh9LbmHvBLEhu#)aQ=;3@3oxtQ8rY2 z@7dR7)&mZ;JKW6*J0(z}d&G{b4Js(l>op;+ZV)F3Odc^)~4!QhTX>e2+E%h-!FmYwvsI3;v`*Q!!-Z2AH z&%sfTPZ z^!dei&3d=V2=a0MiNE6}-tX1+t8#G0`)e13|Ih?JIa%Y*foiaS)BJt0b92F2r{z9h zIx;A~PPF^LHYBf60g+`O%h9=}Hv!}Ra-`mVs|?-uR)=03E!~mH$3x|U9-Hq%ICd+X znZffRRzzQK@uk$offq^Wv^N2XlWX%g$q#xm}!O8>RWjkIJ#NrpN{ zbj46qGZ~DQ3)ppQjgd7Mxy@>@()cefrPWYTzmh~=L_TLB5Yn#5y+`YxqNGr(4n{6g zT_Y0(7Pi82yxn8TiESZF-xr^_4UF1kVJLr3%!ocR z!SggkrcuVIE*hx6A2Ytba&Hj>BYk5kT_tY0^_UOboHPN?uA->9MV-+1%oDF1$2F4l zeklx|#-T9N;RPeGPCu0d#Y7q>1yCAGmC2qj-V>2)wkP;nbZ2cm=l0%{ zMg;EhImxwuqR8W`^Pqm(n`lI*kvaXr{nO3!fmg*;$`=ynno1bd z=Z+Ui?Z|B@;IfA-F`htpV`?Nt*Wn$-+e<4#679#uKMg|Z4!1v@lXGk?0AS+rcqym5 zr|^0|bf5uBck@}`R8Y!*6loZ$)r?_BA3b!#dY>*2MuZi#0We;}RtFw1ZZ22&lCTr( zXZeTCQOm1x6#M>n+VcE^t^JbIkBUSLELu?tv)gtLx-An>={J0UHP)j<1_85ywWH$J06+1Ss#|8zJl0JQ|Fg3 z9FqZQX^xPpEyB}}!|N*{XboE4I-$@$>yvGHwhG^%XO-uri|uIsVA4rMU#7l9ABKXM zUR|rY`rVd8ENMh-=)W1XRA`8yoL1^9G?J7>FdarmA40rV9oZjb$Y^Zq=jwm$UITvt zw-D;tHF<6~N7ROf(7XRbJ>EcinzoZpzI;Cuq8EpD=-UVb8{YpV^+o>fI;jyvtX)LQ z{6HQL@HaRw8u)N!5(e^1$@x~M`xra`ZEJ%=q@G7UGu?E16KMS+yBbg(kYtoyQeNL4 z0c!6NDj|~!*6Lw>7ngCU=+p_`G2wK(RD{Nq{%4f$rxWJt>CtK%eQ2I#irEPRzC$*P z_L#`93!#rkE{aH>2E&iSsHfT4IO1{#nSAZ_B&A8$Be0feLZ1p@0)$^7@AFke2K^MQ2nv?%!QAGNlqV0c%DA_j{7Vuh=AR2S8 zay^Yhn|D%nq8vfLL{y0FyDQGl9S~K8Cr_2x`~4f(7AUeXo^YB>e}yogkH?;g=1f0{ z4PpR2RT0m*?oUMaL{`NIwCJjgI8C)AjmYAZJ5T93%l)zoQPw9H`TcV^SM}~?I(f2p zd!$Tce}KNosmyKCH&%N$>Co(KU>oJ@Bx~UJL@>y!VG(f>&_8_S4v3wveJybj z(qxK}MW3d#UylyL9?FD=ubg0{%wCu8@wooxseTKhTXuaJkcq|P!x2P4pz}m|PPgFB z?*Z1(CXbq~tMNa8Z>rA0J#H(>GRev_v7Hs}3@wh+Z{nw9;@!CHC(=NvH(WH?76X8w zI8l#@8Z1>5GrPV+0OT?y=`zJ%uv2Bw1=aq8(T97Eb?V6^PklsDf6mCzj<$u{A3a8X z*sapvDmGrWU+up>qxz4hC>|x%6cXJZ5w{3*pP>_Ge#I<+RAdrXv3SqWylDnLnBCS! zc$G|RbYV)|xM(gsSR!LYIG~(1%f-!_1ov>(yt9L+uqd}lIgyMme?Q_)0I&P)k(KmK za7`!^L!0`2OfT_@bLS9*=PHs&gsb8tzeA@nR)_~bAK#oaI#UDzAo6KHxvu+W%%aT- zhJ1=nj$%8mJ)ntiJz8feiRy(}Kgr9%dQmjRc1wZ^FD~FDy*-PJ`;@q9``wM4nr=7A zN*NM7h2JfCpDi(r`a3%Xt$7ZqgXZGqf+3Oao#3U*s)LT&KIljACo2;b{TbBs4B(QY z;fSZLvK>8bX;FSW?pR%rl#_!xSOMfP1E%4U5?g$=`}HZ@R|&M zMgE;+4!W{E`Kci!pz0Q_nZeU?2ndt%b@*2H7Gm+lDpfCa5rU%)?@S=TTEDS^-4>DV zTCfW$t=(DP3dyu0r7E{COYgv=$H$D}lFOo0@EfIdYQSH`3BMOr_QBNgFzKahN`%I? z)n2J{!6wb5$Fdfmn%0YZCM;d*U=vE-;k_SLdWo_IO&WSUzcb6`)G@ew`5WO*#X4S2 z3K>id@d*))(Hu+UtH4iVT zl^!F*Y?|B+o-N8h@>QcvUqn-SYnwTU?&G`Nr(Uu;g;mHzoBsih-X-79p+p;w0FEYn zkKC12xiz_EDfjY^1l$ht1Wx+g?vN`J-o(n-ajpV$HDt&xV@t-3=HbPW#Q^$| z^!m3$JZ;6tx7yGec`N)FMb~DMhWmuqm3EYJYm3}M5M4op>sR8#bkWGov~RFNac7cd zl+jOGRG*6VyPe^elW{Hk=#tgxqSTDkwpW$e(;<2N%a{mn$R_<7`~4FZy6~8u-{+}a zwihL9OrChNsJ_yTtk4D$c2;)u=b%U+@od2LFTx_?uHa-tqI|J?D{THDw#TdC*mi69 zkuoZ!rdwVpGmP1&q-ivqLd1AyI)j9jW|)fLM6EtTU=RS#v>puc4=oHLvKJ27OQz~x zPdTxY*!4S-1k-^Yk~ef+9aQUgKdz>6|GO@ph`AO<(h0YbXriKR?QQ3$8CLMzTjzAl z!UwU&aS<451CShO+bXTBP?`LqG~NT3`gb0^+g(dM%KGDjoNYI+T_1P(f1=LtRk?5e z%~@zPJ4%Y|a4h6y9@S~#wB_Nb@wN{_f~->Veo9Xhp4d_xV5O2gMQDseMnCDT8`;-% zfgmZlTz1W|-L_gp=HzK05Ydv>#Ph;Eu4>Isqg}}(p4;NyzanF;s|ms+>2iJ%u#Wp1QI-3<$4(x;qDXV#-S!NzYN6wh()=AzBOnN3-|9Is%uQ9^dCB5aKU&>P+M ziQS6MIzZF^xw4is_N02eL+Y>$e>7^C)eG2a(M$HpR2ID4R+CYYX<2*SzpaMR z0K5enYsxopF#7S`Yfj)Q@JHM80H`dMO%{hqPj{BG2T<)4uy3XBw!b)ZFPyQ`mPxg4XVW!JWq)KEDHrA9*D5`XTo}d=I&8}Xpd~&g;(6oW)n6>T*`H2cr zPy5V%d4{jOx#bG|gO+9y$xHKq-+rA#<+}2`7J6daNpC7hjLH2z2tNDu84DwS zUT#VL5FQM*0Ua*|?-c*TseN61=7#L%Wc!D@qN*O-{$Mc_Wcy=YWa--(_*9o74c**W z0XWs)HEBk_enDkTW`ttSB~0e#`aTB5CkhTa+@Qdob*#p?KfN>CNv4?ri5+=L>{7q^2~4_@ksqni~C;t$85`3Ygz8`b3U ziL_LY3}UgK7AJOz*x$98C-S9c@9L3S1J!0I$ORG z)(arzc!4I+xrR-luwNGbxrUyhA(lBPT_zv6O<{=8$qQI{on0!^PzCkxt6aw%$ybCF zlp}))G&s5OG-MB~=#-x|*D*uDl`h1wa*>d}XES3z+6K_;{v|Gy%bmLVQsD)cJtCym zAlv|JaoC_wJR&g3z3FA8Egzs6{SMsF^!AIdy4Q4Ak&5ZBR~>|=dx!s77VF*%g2KuJ ziZ22xs^Htno(NHe&vFtMW@G}qbjM#QeD%Zo7@BD)xhh98q&cIDm}{=~p9CGZ;y8(2A-FQs!U!w!es;v zZ5vA7`r(>ne@f(^>BU82z+Zu@B(fzjn-U00c}}}dI74y<-Qt6DhsdcOA{+^g*69p# zCI)Nj`+1auh$o1}rNPZl24P=B?Zc%}+GH!jZnjUz>XbFYR58jKzIQcaBkqj`LC8kt zo49MD@k@dT(H9Ci8j$=uA{bvy|8qxwDMWXFtEWqR;XG_;TGjWmdxeYkwvc71rEbXm zqSkkQ9^v1=R?an|EsV2Y1LNX$j||A^WpGI+zLujRK3zdS%Y95$7Nbucw#MP@gf6Zg z(RzD@Hme=XHfgH*VPe@kSw4_3&G-cn5ciKI6nj6j6?g?stDNBI-+dW>6ZSBwJiz#XuK9iz%2`t$b>GTs0@CFn*(#IX zIVi3KLeMN|!k2EWRaJc_6pHPlAg=`O@9<6JMl=iobTn6fSIq$-x)lwn8`9W&S(= zl38mzN70|$?Q87zI?{v;B4nAqQ<4(!L(I)xauEz)E^n%rit`%(+$G0Tr>U{xp@-E5 zK6a4L|2vPsA9yrkiTo1)q}9BmR%*gyAo#y)bQWoNu|p}(mH#XRZC{luXR{r5}Hd@#5$QuU=hC66fN z*uMg4`gv=V8@+kEo!uD!nOZTWrWKA)6T;lfnB&WPcAp~WR9;t_mu0IH4d3IQt%R0@ zjZT;{imGioOJdGbVG`?V1Q=E)brX{p+xmpi=&6>qxz6r>IPG8I{u|u2Fn+6Ph8PtF zcu?Kt^d(c!?Yy#hRet2a!j&BdceUeWn)feM@gWQ|V$i~vJTL?7fc*GDNtG+|`;2#W zj#CTf1yfRMi~N7l~RQEoQ**-_DY#SL5l| zmZ?6cexYAyX#8HW3mkjd{H3_#?z2*)EWRYx#EB-Q|KPttA==FWJ#G@zTzyz|4;Mf9 ztkJ8pIRdf2I_rM`jre|8xH50dGN?1GxA>UVQ{3am^nJCFrS{p}u-z)-EdJ=eHV9pH z3IN&qkKmtlw2nDx&RdZ(f)~q?-fz8Ie)}y;4KT6u1Ub8Mo}C&^(YDarq%}qOX>kM- zwf|`+4UmnuxT-RjLP0H1b=ZJ~TZ-u%Ff3W1K)2Ivxxk!!eQ1lvVNR$R_zCjB!@t%u z=MiuA_*1bF{B!=%{|%o^mh4@oXb|KfiZD@j&L%@@0Q#g*3k6a%gB1~nUSL}3=rgub zMI}Nkh~|msieFE1^BLM!U z-xf`!l{}^g*;ftDuflWHFK(ddGC4)gq5khs)8!8)jdg;I%Z>g1m)=~ z8~{c<$b;RGIV-SCfE@Z9~DwOdysQ|18#sxyZ&w@!GvjnMJyolECAjRkv zn+vTxH_@gDZSlU}?n=kr$!UHi?^h2j3OGX2HGZin2ewAM$6An?w&_>qFXDEOuXA+&J8UUp!OIL>#q8|DQicx);9hS? zrud(`_+8)%KiKt?<<2Z+V8tK0{paWhng_1DQIk(7@Mc z-_Z4IyaHpPXup6ANK2;El({Pz97H_lFOYG%uzvH5J9Lcx0b<1Zb8mHqcHm{3i1nl+ zAO{j?T(FHx6+P(e3RP8P1w`$sYl3I&W=ZrWcc+SW4BW7NlTqi($SbbH5G9w{6^!$u zakatRw`siFMk-Juy>m1!drnRXF~bR z&UBjgK?Wji=hg$MyMHSnzEF(_N&Lv2T$SK+y=@ed6!tk%a!)k<@r;Kolh506KLJBlo2)cY&|$gZad{|`yzwB)qD={9)Ia~ zthJ?vGCp$won5yeP4sSL1X;#iQ#K*`9VwyQ^6OMh6WtSfmNZ6;%VO^TFPFxCSd>ox z?n}1koP2dNp!ySoa`|c+iH^Y2XB5`-LgSG$GVAhB&A zv9}c?>XRyI4Tk|JeM9c|9#?|d0ZR;Bv(x=UK_gU6s>BUMfR$LaXV*|!nmT_M z{L|?yyvrNv>xm5X6~rhP1z8tXTAZiY2WTJLDA8&;P&`A@ZRpmbW#6EdRg>l~O3CcG zp<%t7i@xHz6o{8*O1vA!74OmXj%N~tE1a0T91%=lr0!9Qu@MZiV+Z8le=llxx3{q9 zI#0}I`DQtw2>;>;`Sf`lBaZFtRcyj-UiowgYyI+n0JhVL2nBh4Q)<_L*v^0V?wVFR zFO4mbkyI=fa~4~sG0jdSzuc#K{#S*duD!7`y z;65sN@Eh+$R-I?o1iNz3UHWt9Z}Vp9<}clhM-O5uBNAu!`usBgyY@N!pFu#P9cQh{ z84(v4L-K3^-+ZjXCsH@a8nbmHf>ec}ETrf_d{%+>P8&|86HKu`F+BtRzMDmH{0T2? z`1I<4%!-)=@spXNZq73d^V~G~D<$WH^oi?a59*7NL_E`D5&El=Ur!#g92~aY^*!1^ zTnnH~a_H5kIM57&yR&i@86<5>LL%zt+|hGCsnK`EA%anf87R5{*ESMzR6=Tgi17^6 z9X4j(7zEt~YXCJC4voOe#{bfZhzgYS^sy9{W0sA@g6#EGWZtd;8d<|v$adsS7Uxwc zg)3QFvfOu>CO?phIvmS0v*>sk#{|i^E4R2?j*_l9pNcMbLfMk=saF-)lutZ4ubH&I zk@^NOv4DR6h#wTNLaA&~BjftJ)9MdRwyI$vy zpr5?-n`iu-(1Ho5u@{Y8Q9qdgafJItKaxGQg$`va6Ok0%C(iu9Bhy>1{MJwtWU3K_ zXI%QtP?x;gB|s|}poKqJqrtZ3kCRTwcOF`d!&zAT22AYo*R-EI)R!EEDW^GV$X6%5cGtwPMR~G*MeETYha_a@#P+d14V>+^R zRf4Pg*#$u0Sy{1~m=?PcSi3aJl|{3!6;Ism1soP-Gh3BjZnu56cuU263D-t_p>Lm- zMufe>@-a;_r+_mEKQti5#wI6r!r_qS8M#-rm12RXR0X~8B1i3(omEj#%d#M#&?Pa2 zH&s*Hq~FrvXtFdZzz_dJOrgf@H88t)ewaj^8@RN+wnl0_N zn2(>nNxnJ!f*z$jrgrfnUt%a=&eHeL)iYM~cQFO$cjun#Yv(Re)&@^arl*}bbb4p3 zvF9J=G$xzBc!(n^XR3P;Fm`i$_wxrBfVin3YkhA~d{fJB#t(wFoa? z*`5WZ=gRq)aSTxJoaN(+N@)$l$2V`U;2v)W_&Yeii!HiaS<(BS*>4h!fg;?BmWq%V zK-oKg9i1!2iYb~+&KRDQdp9nlq&#Q>`kUs8L~fN0>jSDUMr^w&Yj{Wrp^x>v-^k zUpMxrF9cE{50Wo}Ah;>fuyLC#LE88xT>)?`FOXUY>b^&;?fkJ67+QWW*j+m2V*m#A zc23i^Ct71K(0^dixLq@ ir?n+xG%=%KF@R>lc(K#2LX*xf(GhWvEIEgWV15Mw6- zrUx6_qK}Jg3eT-C?YGRtSSPycO5!e&#Z_5EEUJquIaq*};2~QU=c3_1-Aj=(lHHzs zNCjE0G8(u?WAIFt998^YPx!uVY4!F$BdOD{Nq6b_*r40Xl{}X0E>^p|-2(LVu<8u1 zWu`9T28_)a5567O!frf^;#RMd7)yVS6aF$FTm%}F<9ppHXB-p$xg?YEI!d*>WpvSfSoK!C1*O(BLI?u7p-j zPhVLB?~44a5)=T1AA#3`g<#t0XN9-lb&$>;xVdnzLj(?caTNaN7pq$sF+u-T9s)S1Hynm$7T3#N@pw z=e4di@fj^MJw71 z0;#R{p81L+EB#4(oyG^xtN4&|q@Br!@ptncMh*tCe?4++fxa~_n`ke{vFxrnTvst& z=KIG%^SQz&28#JhcoBkU|8Q1^Fww7#JPPt#mZ{y|8K3<+d_DI7hG+Jn$$WB0r?~9f`Lf2W950c$PM0&~yDd+*EcWMQ;S@`J>`<7MPi-U}8W8cVRG$p85x2cd-p3Px1B~OxN3tI%` zjRUu(5#Iy2%L_EjRg&%0E^tNU5*w*@*}Nb~WTZi(dQ5?t4pOkKo)E3ZjdGP!>Ywl1 zMPaIdlwrkr;i_bf#9OF{?h8-4dSZkeQ@qbt z1j!ZXjYBvdw^?H3di;!gz@7!|s^S8XHW*Hp?VD{*QvJ<`#mD4E4;-;6sQ0|X9g4a- zU?PpYQ}ziXC3x}FU4-J3Ha5u}j%S&s`;7qbiUs|lID!7yC@S3bev+F~`id<#AkIn9 z(`NAxurRAVhXYJ^bynJt@rGQe0?gu3Fb=2sen#i%t-`sM|-0zwh=2AxPiMcB( z*P^6hnEN%CQq3i)B%)fS43kR~QmIr(DwRkjm-_zv{)6+_Z<=n*GRciOyk8QAhSu}-BzBV z_UEsNTFEj&Rr@M;*KTGpvR-AEgvTeJyKe@*^p%!#wN)j|wlir#8WvRwayX@KnYC}s#Ucwv%S17!5!=u74n|F5`mm$-GlPBhC^w2eTjJxQdVg_NZ>b<* zkL17>u~)i3kN8rj>|%+#`rWLo_f#pFF(2T>&`VXlxQhi}nr)dfdbfYk{UprR?Q+!8 zC;qx~>^>hJnIq>7@`>eChnK4o?TJao0Ldg;h%RABLq|7C*$+KP&)&t3zu&`OGQb=- z#klsSk))@9_BU5QP415=Wx^oo#dAgpqbIlQNx**o6|gE83j_8Y3@t#$%7I^MM}Vq$ z#s~=cUy_OX{j#^r$J{>H-FO2|S?ACmCUsQq$p{q42t0Tw@Y9l&t#SL66%A*V&Mx6} z$*skZ^P}r4paMqB zH=|;SYRRHvoG56qO1Hq1f>y?*KwiWb6>bpe@K7pUPCI6x<_@g@A(zD#>S4=K<}k6cU=-!$$dtH3i;t^y0il>W1Y6JXU84KNQYI~-!H#!Z^Och-#E~Vp;u5V z`>X9jXSaGYT-uS^D#7LAK*iGpZ0wg)aX{r@2EYbCV$rV2>hM8`9jO;?tXE{zwC62> z&kJi=8DBycKV^o2|Jp0O+NtMw*K|_4Z)@mu&I10(U;1rR?rWl|CJiD%(2|rMii-;L zkly5an~$^e5P0(%nGwG^GtTeCYed_p)!`my2qSr+ckWKK2z74HBx!Mds_xKa zVvOpZVgRdS``G6ne-5~DiVSSW0ry&Dvf32S7C}@f@VznO4Wu^1_|}7O5tyR!u~kH( z+a8+>G>|Q{+(9(-v(CJ(B8iy%haIIoZ4jQoL=Em=Lee(A+B^2n8E?JP?*dvPl#{Fl z3|7JXqItbgD*YKXKO(VLg11%^@#ItOZzE%*idjTQeC|n&CDWX`Q--GB#L!(tqZtPP zE$o}}Of66>!PmUNjV%wRO*U=HUZ19ay?$*Y%i-AWo>7DP_nk_jvA{PBc%|eR5b61f zBGNVk=BDHqqlWRG9-z)Y!LFbF6sW>u#|BW^lo8wARTZaPBPQkk)#*q*cUwdH_oJpI zbo5@(Fq(dm{JGn^tDXFR`Xll_JGVYimPy2BfXQGu-GuuZxzn0+DYFziERY0aLJxMQ zIu-?-=CmtSZpSA5+O7DDq&& z0c(@aB=p?`4T&Rn4xCx#0^{npLE7>=)?{t;HZ#+Wyq{JE9r`z|YQayN!^8VD%&IU^ zLBBJ-i$!AounqT9WHF$qzH5S9m5;?w!8ldP$YzYlvdyfr3Ci*h=gTucOkp3G&(T3$ zie3?MyIeGDF8?l@EG_}(D9f0;=I48w-$#qc`h>9Tr%!9wX5dEyg2OQdP`U@_`Jz#s2T!+qo_o)}**hQm0t4LPl=^N|^ z+i7@fNzx7)ef8{MV${bE*8XFOtY-sO?cAoKX&IBB`>pG+Vs`(ukG?4Z8 zp}l!?O!Avv>dxqU?5s4#fppSsyndruEWGEbUF^;mBZ1(2@HB<+gyL7{FFk7@u|?g^ ziz|7m#6y<4PZ_W+L@;brdkFIE=P_w1lGO5_bUX9}CiQ#^c(%hj;TFNhJcdQEe zNK9(3`b?9RJ7#iSp|~28Rj{0_gsExiPMXw_1iz91UjHm2F%BhddnacelFlsavrodP ztS?_i9`Dow1L?0YMinv=_X>i4Rw~_>q^sNC`t~w&J_XGFpWxpNLbC#-G38I08 z`(jBVPd4Q&9=vTD6%9q6Xh@|m)<-|ln*$Reeh1YNAG6$}d)L#!dMI3*RkP+sLPG>F zP`a>LV-)qgfF#{@Vu`fBVTz{yq>$HC!D9&Ly5a2*x5lbU>j(BBV;A9XvESA0xRSR98|DL(EZNY;i#Li9iNRLC zCWDbSjBxuV+atH-C^tj5=z*T55Eexf2m>!0qOEu#BW+Kix`I#*bTR|5c!EqPbsMk3 z4Qx;eADcERBywnz(gbSYtmT)I8I7czwM30bc7o$JSL87NLv@q#b zw|Z+$>Q_TV9vTVp^A6`h`SsY7>sS$(Y z)f9D)X*V#GcOJ*jg}Lm6rDjDgD8N>n!9)egA$D~W3LwcpYsF>M_bz~;QY1)RRn#sl z_Ne@UhpJpgSR4DSMO&v2mvDcbT}6d3=PNX75IY9e0k}dJss3=Dd+gY)1Uh6W%i)Zv zluX>;OZqSNo&IzqKEr0}Cs*eB2+z;>H@8o_I1a<`xSsNfdQf74mYxsXp$q;h88mZK zOYS6>mFACG%2Tev%rE{zAz-VRz(&h!$=OtxLv$v%PA&W0$hG*Ftv)qxkTW`aNKeZ& zWS*eF`;})}^90MU$AdAzx^Bq(RM@LY z#QRcw0z-j-$^?Cp{EVVoCrP>;8~$y<>?08UXYGuU63P612I=>E`=ek0xkM^692Ry`)RmYvR>=ZM zpB8P%e6j{M=#`a!XuG!nvh^^XMWFZrwXOH-5C2*KK&#0{+7jNE-!e{QmfHJ+Wh)Xi+`6s87~+hXOgyvR1>&adY^(77Zb8M zIgN$pQco;MDa``-3J>N*kMn__>7xW~hF$pCMW|lL0|)iCR`S8{HBnFJXsKPZ{Frbs zGIW^@N_c`1$!ZnJitMcKPCW2Xsy(~F7aVx!7pzEl7}OVZ1tfYxNqAs-tF5sR^?lk{ zFQn)CE{Y@z?j~a5P`OZz8B^PsHnBU04N+sCy!{K?s)S*rtInKLo^ngEFkaphocax9 zSVYt>Ni;EA4u;sN*p4_)?4iY<-8W4t0iWY9;m|8NUWt2RfK4#4rLiRAr|@mXYBa!9d$5{g6Wn@*tC-+R8VJc5Gme)A}O^N64zDV03x z{dIG_3L;_`GBW}m`?k>}8W{9($uqV9b4s75*?4Rs>>k?87P>Qjv~M0<>qTQ?t<=hq zd%c1ZqK@AEg(ShS!Ra-QI?tj9_+qLM3*jQjje~)s^?}lD(tqsaTH8OS`B}f9?)k6M zMst8>>2bwNfZY4_+@rfr&6^>5m!N!Kir-g>B0K#kBjibf2}z5 zh?4C}wWmJONV7U@0`|;v;Z18@L1xTBvz?ubD5TGx2c=I(9t8J}CX6&@{YXNJ-gS%( z8Uo$23>2D3mb!6!_W$aR4Lv!mVnN_X(G_9VFV!<6QJv+g{u7 z3>8CFU5~x#4F!$C&6vNnM(;by$x_ zc(mEQ657Yl2E}SWROH%sb8+dR1hJl^s#pw)S=v=xtD*Af%Vhhxg$vcd>Iz@;tGmb9 zL28m-WF=mwY;1d;u$f*59Nd=FBpl)s6tM+H-a%i(Tdr+i&!0OCzk=>XoO^A zGU9PAW){#^eKt8%HUqa#rWgOYIR#WdYUVw;v_yV;@VH%Srw~lN;h3#f-*Wl(w9C0vHtv<#3^gJ zK$R&hz7DJ3HbERE{2)fl`B>g%34#B`GfpxbBL)48}b^V3d zZ%6ax`QM|N8OW1ju948}t9`U=g!MVK5?){Zoa@1gqZA#Muu=lt1mP9p` z+iJKu34ZsocoQjZ$D`rO%^EGmb2VPS+-r;%Exo?zD+#X>X^-Y;+PXIg3Y-FMQ7%Lq z+(?}50e3nj{(-BmrRcw4bBLcz`=lzuS>);0||Y@hz)Yp|w>gLgSS?ekgjbFjob zAsCAD*{5Jf(ukVpJdicygS;kl0R8b^cCqL7{OKH)MFaD^`|-(C^(ybpTkKM?FlPtr3gdAr+FX57Mh+fpZEiUF1@c7HR_(bf+g zerT>@hL~a45n0SYfB@09_H{sXRd3BbhkEN2fAm9lPV*#yb0_KXsX9Z1uiaoz^|``G zA?@S-NfK46VKfDE4B%h*=4fqIAmL@XEznaxeQ;zW2Qa;*np1qnsH@~~_~V$~8WqR; z*Q@0^(N~P2=`_XjO_|_IZ=PA|ybPu@tZ@1C&GYd8fWr{hzOdPcRw;9?5pLp`w4A@( z{*=lzA_vP#Y_1;=%*DV{IL_16^33c{#K#^t>?p+|UcfmS=%L_?rwN0w zG8G*3$|O`bq)tz83~Hf%%M{_MJx573m^0D7pp5PN&1$s?cnH?`+4px^Ma75NKEKMB zYtN#<&F6d#y>AG$&-Mym3YSG7G(b8L^ibu7^dXk*zjF>fV@rm860vYevk_I}^H{Lm zNS&STR=tic(;=axlzz2=bH;Gg?E4{bt!Y%gw0Q^P6V<$y_u@+d=8v30FKRbI#_RnY zbi8Xj1SVxY+Z(Hj;&CA7UmHV9pwNR(fH$-RTlsB}t)p8??KF-GXsbW-&A`m>#pf*6 zUIfH_Jg(m+Z8kUJ+Q|_XbY_b_9(&L|HaN4{?dk-jX2)l8$-W!ZDQ=!};vO;(_3vJB zaGexa)VTmnMhykJjcY`Qyj%J(+h*!_|Kiu?A|2Y5b$qOJd}Viafp_PB0L754bl^h8 zsAN0*(WHlt<9-L`5MSEMU=Q!htDWQ9NA*+vo0F)#B1Xa2&d0$#95-ecKVaty)Ao7E ztx%r9aQ|*pue+nJ%>`w`t8Y)Zj$q%uz&cRX5VapQR472)AST*GAQ!LH5raP+k<<=k z3K8s`0_C3XlglRd7p`NTN@>BXE{}}8Z?Hmb*|W!Kd3Oq4)GfL1p3@3@pzyE8-D=rP ze~=+x#~(>1F~}gufw0US**RNTSbJ3lb1(gQgUF zkkndDp#!zAudroke@0z#I==eq5Sfo!JHkmBrJ&VX_dD9ys3av*0 z0`MKkv+b&kDgicAD;P-ly{04IOQ<9Gcp*;0I4q!iSV;)EOg{)B9v3@NK()~5K2e-{ zSy`eEIBAX&BXp*$%Iu>-HHsrQ)(c=H0aHUKYAbEgGz`#M-Q+Li(@G0r#In*FDx_=@ z9k|=-59K`WYQuV}h@hllDefY=f{1X=tcHk=dUHsU zm-+-X2p!{7x%Dzh1ANfF`JmYSV#k^rg1x*J$mc*XTrfxMm5N`nMqIm&Qvy;pZSe#K z;^>YvNYuLMZ9C(jEtm0oOTYsCbxkL)Q+O^u&5yS3;5Y^<0d&CSCgoz}B!nvdT>e95 z*}x?(u_J0mq{^)99fa9=M@j|Ao32pSL%6Bf_oDu0ZxFjQ6A~YSkJZRCFcNi$BZ# zCWqS?b4`_?pElA~0OYA5I!^XGUzaVSYKm0^z3p=Gk4~weP@1R*K1yc(oHMaKNYJbb z-UBGfQ^|uLG;#(Hn_`DO>t-KuKHYl#k0M36pU+fpPV}BTI(XF_*Jqutudnfuc@`v*Q@4@IQQm?(X_6(O*2m3c>{L_JCUMVoR5kk6mBzu}thU+yx1gPo z*=ZO&-=Z@u!^qEvH71s&=yI`G_-=$(~k`Aq= z#4B5H+0VNKk1riq^arJ7V0nbt1^>Il4Fbu&wVA#%l^r~j5QRp0KTGpG_Pt``X;v;n&F7LBymDU>3;vM zv`5QUR8#+lTgp1ndB>UX3T^+)(AWpi-xozIe%xbI13a#Y&&rXo0cBV~qrlQkT+j~w zVb00uU_UE6`t%BD|j- z4IfoZC6^1VDx!WkfGuO)0Z>c#yIAdAO$a)U3Qlx>@Bz$DA5t1=AIl6Vt~qq!WD2*W z&%?`xEGxdt2eA?V)K7wmuB0D%1+Zb1qpUlxv0;fwN3OX=(eIRIr_3@v zu1l53h?>WV!w~V3tIh1N96~a?$k&@pX05ABUVoy#BVzj{+15!U{XpH}>b9?d>Mr^y zTi8y6b>@S`(21Li{x_-d4hF#(jbH-bb$jy7Y1`tRQ2Y=0s`m9+O7TVq!!_#oJN^o9 zoO5++dxI*unT~fc;;DtsJk7dN05ZFEC8x)7WOwJGT!BvQs?o{wkv*--yKHF$ri@L9 zZt9A;<2%gn9iO*V&NaZX75$qpxc5XKKRtifT>l&@g97JC$?J-;n>6&_k4zk1t%l9> z6fS>ntpks~@5$$MiLxOBYfuTn=K2|+1sG#Zb4Fz|#PhAV5Apw=e!j|rm7qU)NQeSAY~qdq$FJ)Y9%XAaT0M8=+L zhUF0HjkI4z%53uo?~U)gSe37I9I|;YhrT^HD)qsmz`u+wxb$G}yu3!DiZpU~ZR5Re zU%?~wl!&qt>Ro`(0VjCA`@(I9?cLfE&=e$CldwoNKc?6P%Vt1_E=7livMI!A2zWrR zI+_+WvFl#t5#{OitZ+BqUuX@5$XH8xlzkt)+GfdLR5y=l(EpJ`(zH!#*p3*hKrc-2 zrnI9kJcVUDZ?a*bca#_4k)CD^a%QBG=1|d z#&={*M|I@vfnIa38O~Mh9cm>JMY=lrU-5@fUonvFMP##Q*pEqD7u`aM>K59EV=tPU zje3lGeR)6c*{}rVgq2^gn*eyAJE7f*ePlX9F;k0tP?8(2*wlIem{If$zJa@u1h7@N zuaT0Iew`ug&C*6YU{uZ;qVKwlZA^+`F%55A?f5DB(5S=t{!jE94 z$$_ZfRCkaD>cro;+%{XF4thg|k0Sq!+u6k)JUv^f0eKx|N55d$`NgIr&qzc>1p2p! z*p{g{yJya!d&eA>louM+OECP!l`_13>KSfS=4G$s6E+Rz+XZQulXP?MUlV(44H_)Y`fMDZX)Dp2EzO)uMNGjKqtY()Sn2`ta zFmemVXInqi9_ru=DMnoaJIUY1M3ULZxciCa1&WUncRc0LSyOdq3v9=}k?~zV`pbw+ zImrR;BTutRyyM6paK~YAkNQm?jK`%_z2$v0qr}z*uO}3Fks&qe&{eBB9Ch{{XE;NF ziW@BKi2!C5Y}faNnBL4UEXvwHiAx~NQPG(X=petcr4K8iZc@g8^+?#*Sh3x}a`gi< z_U9Qidh;~C&6<34Mt|f~=_FM1crUxc>Xpy5%FTRCK@4ath(bRj+l)BmbmmT5ki@Ilc8m86mMFK?!HlMPBhR1%AG!vOu0!n}zk4KW{H_b}eFW z6g`T?)IEu?$e4Yo_1mk5UaqbVTNg)UmcIpDj|Z5jYS z)3wzL|IPakxJHxAm7jy_Dn=<{PxL$zAAZt|%8gmUC#T9VG2LMSS+{sQTk+H#Y8xRz zs?Tcg;`KWCV4MoD4<3))jID*7^8~|6Gx@T<=MOn3?>U80$D1byHIZL9-x*OlSPgzq z2bRxtl0@pzp5Y#lB~Q5JFM$-)VmW#D`b`rknM-Kxj-Uk$!O=uyP99XpqwpfcO;-QL zVhsyKwt6Az9vWJI4Nr;|mPk|o1J27;=4_n}8OdN{Y6~SY#G_8R=`%#^W&f$mS{ktI z2TO~>lHWC(0gbB|C98gClX8ty2_`YXa4u`~M_qq@764tX{q>GdMFYUi_-_@F>zoo* zoXQD>VN#$x;>QQSG;LIpaf54^9-a(%Rg7Dj>e0aM?ghF&odDwUuNNMR=oPq#^jy;3p+D2mBzNK%I?|lm1BPg zu3Z&s>MFz`p+DB1aIrm0fS6*2_uxNyl^nRFZL%>Jfq_eNB%^n{2j5VNf1Vrx0(^Q3 zSU#a?;h_YfOXFMltCbHA^LkDn)|3p4s^2Shut3v~-VT~F%YbF%U71$i7w2(K>O557m{?Z{gf1v?-Q)VD0a$o!4fW!+!|!razc&+dPo$%C z+RpDdB3>Fh)?>Pg!J9RzO{K4IR0Q;j;2+16Xm=GaZS13LhxShCYm;WHduDvTS0i3n zNTYf~%i<<&(Pj%t?pr@2$yslz<8QOHm{ShG>+Ov~^VrkE6Ygy!?Xu&Z7?B>YO}=@T z`7yDQr;m5Js{aMDszt-gow1J{0889}`%M~<{cn40TUzp}l^%NfGMfMRCy9N{U`AR* zy!4KYl-QP8%F`jES@f`}csg(|S)X z(Wh!?b1&)ZHxT@u-xl4*mdAhA<~?~o-waB_P-7lJgdqAphetw@Ao!192&SD`=jP!Z z%yPzPtJ8bhZ*(W&5%Z3cB$Y>RAv3CT%hrbt5@S$1MBGE{+=eQ-JBWQ8U+}94qP2ub zgvr3mJ;mB-!K~t+Y#ak(7lP7_6r&~fJd*FV>)J2&_;IP<87Okw?8kVRnXKFde9>7@ zci(Bx8kQsPnhepHdU-%YR9;lJ8U+82^5Qk8n+Fu$#i>8VX@ zM`duN1nA-K!urs76b{dT?{iVFQx z;Q3oN=)MSF1?rBGkN`-E2JLt&%%K1q@jFQfpYzRWZY7=62W0;PE?thkuwCtaWEUcB*K-#1oWwXV z(6oA62o3P}vbazD&*Z^L=s((#HU-)8YX zxkFSKh)=W(y5Ldm46t%Yg;X(FYK2H5UWx%2!PQk$;WT`fBG z`@N8!oD`=YdarprOyVmw#ao7AZY_k`C{5n#d#DA*8Cara+;(Mr zj+vc+asTIT8J%vh>nBI|(vSBzoi0K6jp+6{zs5bJhIC6w{Z6FO!6v3#tAef1!pUI;x!_fe zsNdcGoB7ZfR=FLY>ctd+U_g)K&A1FDK;mgNfEswe0H86fxH*c6x1N$-P2B}akb!}r z-5LgkZYBO5p(Cc&7a`e6(>unPiM($?>*THACb;zTa}hZVhtANQuKBq;$sIxt$vOA7Cgp@fuY0-qY%N9kO0wYyr4z)IY#K z5PIy=q%Ez}J8Jjg?g}VF52XyL{*?1~TUM_VdE_Zn6o!*$%hK279ZqPS1N|V6OGTA& z1rN)BRBc5SOHj%LW=3$W&fam|a7W~Y&^b!XO!?-E5$XlPccEWYyIR!<(SE`az4aYa$!H&kcsy4VeFbF8g5NV7X*Z6hI*#4*!Xx2StA8ZK9$O#9 zkH6q!CJffDP9y`o)*W|xz8IGw@1e`>b$NO)`qOhy^+(F*Ll>7p7kilY^VIl(5|1NK zrbU!B*-`gt^sIG5(U8MZnKfMK^-X^&z1``AYcXthV|equK%lVPj_9| zdWhiJP}eR0$)+e80vju&PR8ZS?9m6 zCfdgdiLYd4nPA4JDL&V?q5q@{Wi=LX>)HN7yFMl&1ry6TzFYF8hDSAIv{%7=2lIy9 zB@Cq@Rz%%miYPJ%Qi zsbgJ{9EyJd2KuDs(BMp&kj=mRk}tYfBz_le>%~tgqd5eqwDJIk{Cd5DVvU)F++2%L z3Lc^U;8$@yk|(kM3aQuBgY-*}ipfU*wW*`L)A0!U8Q*9A3t-pe{~)#1$a;c&zO2Z# zSOim#8l^gxwHX{kPE6L-N5N*%OP6zT;-S zmrX-jVd+j8D9zoBz(#;xG{&}KAeH+_ zX(kL1Dry}kK4PM5565OND^u$U3@YYmK@HV^DR)1#a3>h^=A7>oUK3eRYKCOqyN4MA zW{VJ$&R`SuyYTa722GhgCa}={vV}o~-LR$3s!>LXtOrt7ra8~FE;ro_DD`EyvBcr# zHL%xK`yNZ7hA;pG?KOF_CkL6}ja)SyfbbKdL>ePRhw6!fEJHeqlvH^Ha zrnU1>*w!&HSO8Ffw5F~fhq2Vk;Z#XZKY*(myZdmRNdIX18E4pZGP6yAi-FL(Zs49s(BK@NQ zk0jE_A|dEL_s(EP3(}dUAPtvwhhe(1(Sc-$;~i)(niH3OF!sA1-*+2Sg2e}Lvz}h+ zBdAhPSR?<9>;yOxJN#?+=?T5bNySPk=qg_TaH{2%oqHIMGuh8zH=Zma^PEwXm7aKH$!sW%6 zsYpP>QyBUhMQ|>N?tAX(WSixjySxDIhYn`K(b>p77F9%&)I8yViAF0G7AKowV-kS^ zsC)5<(?JeR)ofej?ph)5k`B+V-(vk#9YWsCNW-v?@nH0-KBLaK&h^YnB}xCz<2BF? zZ8ki&q)jzc1Y2@zpv|cM#2AcA4r`yw;T*I7V=a&2j%AIJ=O+}o6tf@TB;U2pFDnc_PL#FWDa#UDUQv07GN49&sE>@}fm=!i6W9t?1{UuZha z9pFIX@!ly!8*@C~Q{+yp0hjvug`Vh#C7Ef$VNaX}sCX$Icl(`y zDFT7yfKIc)PSH_gj+SmJK>2$|#B0-FU>)5x=k(`Rt!Jo7;5UZ7}uGZ0YRjt9lKn$~z>dQMkh zDbwr{jdaoF;w=m+_N9vkhtvy}f~mueWXz)sNqN18LG-7Uw^d4%&EiQ9=4SYT_2Spv z0Wku)+d#QT#x@5q*o!xjAlprFtDP@3?x4v>t2e|}@WeevCXmn?d~^n@@nV=yHoBz5 z8hY>R^{ix5K50dpm2EfOcMV8YjR{hP0+Tw_=Vhc7U|f3*D6FzE^a-)qgFzITxZO|{ z*Wl4I&NN+lwSGrBM?G|Nm%2*9D>#Lz{_Mef$udMZ9ZF^IFp5%c%~<8~;N&G&g`aNq53K zXx9_@A0sEy3y=kf7FqG?TWfF^lXSMH0L>3@ZKd)={XV;M!oz3lfk*sE+cPhpA|0k zBx=YJ9&@z?yrBR{y4~ybD>vh^k@yvFb!#{uNDZYZvpn57PDCeE0~BtOiMQQF@I=@( z-nuf|hP4%)Qf#dc%Z4xGlZtGZS3L|bt>?mkuVpHrPs-Xy$xqp3iSyw45Of99_lfT_ zDi%~yFo>T~p+h4k-9ZZAyI)z%1Ed32jnnjr3!Two5Jxq4s8US$R(&N$S}=IwHt0 zt8II#oM#=MMexaf=!J5}&ToLt;MqxB>6>M_~ z1N-;aa{68wOt`A#oVp7O;uY{IH&(d|ff}>{>HzO2Hs)TkLImP*X>O4%`Q@9!DV@nb z`IsE>!|7Xfz1NW*CGeKoz^8jeLiPZ{PXJg%{dgjh{k2ZlV@9VMEvwwP`+|tnBfvjh z1j^3i;7di$&1&7Xb0Ybig%|+&J2c97!q-E}=tx{?=5gDjYZWx4>-GPDD0`YW za)~i15M`gXC7>r%%8O~+fZ=QG02Crh(;hKFt+nmTOhV*B@icsi0C+`+H?pVS9V45D zgi;h_!FO)|i4)k`gW>(u{Pv^n8J>eN8VY3~8cO8%FJEPl#N=c@q3EGn1fs%w#3gb< zV-V#P8OhDU?)FFC>BJy<*&NWXSQKDHHTOf1L5xqJTDq`be*_UmB7Y85r0|?P<3TT7 zp<*1w6cX#8S!s^=TLDJwfP(1xKbvf>#yjDK+h7qbG~*f$R*IMCu{4^xSmF?hzl6I4 z(bsMuU_e16JL9nYuw296PFhtD0^5#??3COC!RJbPZ{Un71 zQNKg_9Hya3GM3(e6gxG{4(`tB$;?#MQ`R9-?8Q_bqu`_yW+lq!z$S~zmYau;@R)PS zkk1rQl_s=zP}wR)r(nVT)aPba^Ns8%P_(O78q4V1jHJqy%d1j|ouLNZs&e2u99vCP z@_OgN%ZONX11CLJ&y?l?o?X~|E96V)+#|(mw19yH<_}NIA5xVKIgVxV99~#NUZDm~ z?s-Wx(hhnn$yWV%gD@sZfpXb$ghs&EBdm_it%1+>#GDt2k<7+BT+owW=*miMe+6j64BHAx6hCL&N<^d8H zuiKY^OZHPdNR$0L)W?!Ef^RnN39(SsE5Jucrf^PE8OjG2vMaVhTvFk!YM-ha2Ni4AMM7>1 zdQ7%8($HEw7ZH@WmV<+`@gQ#L_lS$( zd!G?-bTD3Zm4kPM34;H`49*z3NA=Dq_B4z1t-L4a_ujk~hv90_&`Eaqz>937U(y4Ti6cmI) z5RucR*{O}tq}bghA7%c6rKxn{K}SyiS&3ee&O?Ptp5oQw|PaYr(84Gp#BmMHI>*|=Q5 zg$f*SK47J6`>8||gawfxn3Rea6D;?c8T@ayz04;DA`8%_6VfBKX!SSP`}Lv$<@`!t zqYT@Nbe{|-G?qwzYzcK&n+H2i)}^OcGf;LsfH9ccBbdkm zgGQl9y+S~}I9RYSTP<60hZsDs;s6(iX%QO|P;+?Mbr)HZKyzVxeW8Ly(*EQKlUY62Dw48IT3wtMUB-@za0K%^H%vp?BjEOfQ6KZej&HizfMrV;mC|g&o6k zWAD{#b=pYZ%RKintn&ud3Q9_FjeKj@2N%;#zDwiLfLt$4g0xxyU5ew&x8&XUViu2| zgCfMuY0&gzX~rwib9o4Ltjve%v9u%uH_6~nsISIWCAprn@^k0;&Jn1a-V%@zWJZKx6uzJEm`-^Gg%!ge&B&Zrc=A2nXvSYhN>T$JSxjP8XkD$rqjZ7Pd z-?{JMU%#Wfpcd)(f=9G}Bd}5W3z{&UX7*$DMVNRF08nTe0!qi#HoTHz7)XGT(UhjC zv6ixbknSSQQE%?6fcqv+h@ne6{RJ`5YfHglTDHs+ku9Ktl)Fw8Lt#qDegNs^>u zW;Ta0B!`mCLQ**_xur6PP}D{Tq@vv2)2&+F`?|Y3-9Nv_WB={3>yKU6=l%IyulMu) zdhzaQuL6C|O#v4aCzmZAO=ZE45r)8BQ9={5I>MDFO8BC`=(Fcxje`jSMT@-cA!U@C zaX@6cqe)9~Q(+Mbv>GoQB8S`Eg|hZlj`rucD*A-pxL>BGbPxC>hDD{XED>R5i-M^7 z-X@hg{r-;)Z=v$Ve)Q3{1RiT7F_G_Bw$wmAzmM45^2OiXGN)Yie|PtUFu?O&Qr)>PhWZQ`w%lIMUD znG@?EzxLBUa;na$qxC;RRn(wR)(+%l6F^n8_oQc4!p(?yXi)NTmZx_}D2rh`YW~;Z zLWK!74>r)}1hNu=^%$)fdWhVyI(r>RwuDfEilH}-0CmcW zULOo2)v3z@Fq zHmpbeF-^-2=^@M_sHhZhuMc9uJ)m`t!{SB}rvU^blgdMlfN9o>Pf<-5hFCuO4(sKs zNUmQi2cscJ_s0K8WIHxGO;h|I^~Lx6j-b*Q4BG6jv%lDTlNUe3~f!jmq0&cLks zz8$!V1e`x~Ri|Rl=tL+E*Si-uLQfTi*LFTf3GnX zYBUOoq!B&>H8_<#Xt#3IXog~OrFW3?wiOOr|6jD(80U-m&H5P-VcMo*&CBSWz6BSf z11Au2pe%!4A)PQ=1kllc5)42Yv4-qtn?}if4@W93^L)g;w=}X(`rl_5NeFX<_}S9@ zzyUW?Gp0ibC)I0ql#I%uB zJmw9v#DSYYDXpZwApphrLj3M4HFm6B>cD-9HKL{YWR%!fH>IZDN8&>$QcwXZ7Xv}j z2)zEqX&}f_2@5N|fY#2wy&FKUH+#RCMqt_RVoXxH;){dtCtI{pMk^kKQrfT`j8zSC zl2c7LcXYDuZrGvJ2*0vFgViTW-y`y&L{ljs?-Vae;p~H&DmV4uUQ$iSlj)V`nC>3XQ*{s_~p_O7S7y?k}1z(V%|x**4VzGT=Qlor$>Uf56hId!HuC@z0}x z$3;=`@35tiX~HPN2*6Q*rYZazFcptg1|nku&3ycSUNhMvTj4DM3fRJR~vLyq68G$&vu^*72iCp*;XV2GFb&MnL{istj2L0bVHp z9fLI?MKu$ZfB`02+1>|6?@iAGKxxE2qX+%xlp@jr1`OJL0qNYTsas83Jfq0KJAD7> z3^5{b_AkfJ7ADrHY4}x@kJh*3Qm7SbPDgT~*dE)ND&C`a=$0T6uuNHnOjC*gj0pw^ zrcs0hb-@?_fDyC;#5V!7sVs*h`;BY<7DK|^+d{)x&WdhB(Ept##72N4pY1rh-gnj1 z1{DIGz2FQAMH&5rlLG~iUhBS4P$Ug1`h6dobLtaWF@S@tqNsw4 z59x>r1{F9;AgcgDMa36&^pA*CQmGdk8&_>c`SVJMB1+!h6#-S*<;rF*$)?5I5Jq#3 z!l7tVn}Ko=No(szl7Y8ED+pL<77BzY*o)2_hSUhaR z%8jm`cL8YDs_0Lw`SK?>3WdUoP$<(G>!QzSu*fC`OQDUTPzHz!Xqx~~cAT+*c%uPy zY821X2*@yLMgJ~3R&1|ey5k+$Bn8A!as~*fAXc1>j4*kvafOf_kUazP22yr_SOlP$ z8v1l}xlw!$0*a*X9EFVTV;!G6WEkOIWa^fzUkM}wA%`(kHESyy3ZRH_arEc25(S72 z6{vzZXle#7au?L>QgP1A3Y+dm_Jww_>C>gk#mCCqjCQ9+S&6&}UAVv{K;>=(ums_2 z83+s8XX0;46^Xn`0W07rrdj3X`L<+B+*#p1FPI9Mbv=4I?}BR49ySF+)jGd`^qirn zMx7xOY+AQ#4QSdYViZ8gwz|%WuSB))a$947)BxnYs@eg$#4~Y9r43IMN{*)~*(avJ zl-wj)hOXKSoFZsjCR$ts5On%RB`gGS4fW1G$3*63T_W2G{L;fE2D#<4pqGkm8ZSIc zt3$8|gb4nsT_K(I7fr9&8Bztc0Dxx11Qq4&*2iB2iwX(sRf4iBo`FPqwD zV8~ZI6CK7(QvdoN!dR{_PXM==gabfDFpIZ2R#se#_l+}a_PHmo+CV|m8Hc-_XZ2Bf zllG3GFoma**}m<@MQMmjoU)(UIi`v_dN>M7;A@qEOxE@$(*RyOMvDMu2nMhUxC5P- z{K^4F=ssIhhu~~zDnM<bAvSTvuNNe(**X@*bbs8=iMu!~AfMWxB+%*?BpzyD#4 zUK=YGck3$y2qv8hN4sxGhJDTwt>|)}(B8gDm6F7(?Q11o-5wakE;7BTlH;^X3xsR(@2z%_Pe%dPiY(~LWKi}vNqy$?wxWT_Nwgk<0&Pov*tUKtZ!!WF z&Bo5c8jXT)SRvMPw9odxriTLnRgE-U%bVXFisN4+8UWw{eMKf6__gw`1^nC_!Jqej zHBZ#QK&+us%q<{<>Dqpc6WsC6sHpVa`ZT5|$}c{BN7n>PGO-Mek{ASHzTGii(s`a&sBF`~9ef`^N;BKK(?}ZTG{_%2=3~_4roGzs^Mr z;e$#HIAXHpxuXu4U!_Ai&1N>(BQB6L;*} zVVH$^_nI6-7$Zc`&vBO;!}caxC~czu1DtUr)OY8OQUDW0MU4J8=y-S<2%sWSfKnCe z-fSw6cD*x~9&{4D!M2%w?0Y~7D>23%k|rd&aa8LGHTz9+F6}x*1xx~Wkbwb};2o0( zRl|G}V{fD!OtVVGcH4Iwfs@)5D^yMrZvCC-MBQeWnnG7y)nI7*VgdnJG|H+Z1E;A) zNLP%K2hLBw2@JV6ak!(~6j85ag*8zeoaZTot7h~o&{m<`hZI;z9hNm(5HErfW3o!@ zaAQYEx4^VmgW0DS0Xj{S(Zx`JuY2fjPW!IJVDKW6Yf4k}7#MImWnSdE;ye-kB=5Fs z?5-l9nh9ir44}-mQ6>C^4wD!!1v-REg)n@eUoSpMMdSl&I6k8UR{mBFFm%y4XOFwi zwh_HWv2u}!q2gFZN15nrJCdY!RgvX8m_@||N~}yluE6pq-JRuH6Y~94hYpn9K6~47 z0B?TLdg}v0(L=|(W^{CRABBomBY-DBI+T6|h5i=@=Q@Mq;?WnDh+Nm8IISvAn@a}X@N$&@%L@dX}ZwpexiY1n6_k zex*JFM8`kOW6Gm{*BkdKr<>1w--wr8c90=O)ag-069R)pnJq1a0WoS-mVrKXRy2E7 z<^2sRyXlW@@#olxHG-J)M=NO1>MPjH5^V@W=s62*gQ04QqumgkH?yN#KGyJ&q^m;h zXAU0%Y*Gl6?fnZQTHW+Ac0g;3Fql0bR~1K{01IzS#G^*`Mx$f1qaw)YC;%o_9EH5p zRN7@CQW)EW03HGCwgFxzyHNmSRRq(N*+2lsZ^r;1?Mz^vukH5O&+qsNQPSS^2J#Aq zhS|RXJQ98U8?a*qjnaeyR>$W|BrhSOTK`P|EMWjerT_mZC@TPz6co0lAO#r80qPx= zaMZ-Un9J*vi6m=;&)awaNMZZ?Jl^1?L?0+kOPFg6SmvK;eJ+w6bMI;Lyp zU@AFwBfNIJciVj?9qjC~;~FBu3|ECaPWQ=RX^YRt0;e?J zitq0YdHmIUJ*P>jJ)PaT9dbJ2UMBEqw}~U22ihs0Vn#z-Ve{j;ugiEn4n4?1Yf3F} zwHm$pqbzv}I8xh(=$eJK0?lLVALhCww0D!aEhChSnC#v|w&}7hOHEAX<@`6#CHYiAD+R!4~m-hQ0o6#T1{ATerMPutRiD8$F&eH!Qw9~(txRqJA2P`F1 z3OodUNxvA-?kYHj)C~_yzS-V`^$$xtma#Rr2aFj)h}`+wW=>rdxH*dchR^mpu)jY4cB;N@8vC)xhYi$=rf9 zS?g`Dy0=Vm#r}!>1&R59+HTSTN~}8yRfxo8rKi`=?iIgV)~@veuGw5+a&z|I`w2@Z ziHQt7OGgIYylD0v6;ezVxT+&o)_KdXy7u=~{f5}sCRDa9rf zV=r9PjQ=$bk9qGh+m2i7=o?Rd*r^z&;R#zYAn9!Aq77v9 z)VXADbAh9}#z`HCu)uG?PxC%Ik~3uk|3z-rF3#WShmU`v+nf2K|5Q9*x{P+LMs1W1 z9L#o$ke@3ZmX5{2FE%BHK4MJ0E!+9~aCrOte07e=zSB@zbIQeRl8$z0iebm=WLwxO zOHXbE%Qx@6e~);_BFA}o9xW;G1W8s&QWoAoHbROEp*%>G@6PwMCa$%=L0Al`vVu!CbdM+jZ>AcsBQvvRz`32{yD;{KQ$` zGBr%g07+_b7=MO7_$vE49_di%p%7#MZsj*O_<7glE1kY(;`0z0g8zKFy!hzEK(o>fI%pGr1v{G`Um^WC|M!%0`k&0Kq`OtScWs`tq}YL&6z(j-g0$dT^XgB0fG6!cq)t2w&gND!xbDi zOMr)|{Y_~}DFBs{N5k0&)o_!KmF?gPm&a+pGenJHi&sKa^JeO3anYXsL)4n@PGAG? zmsQ_Vj9Inkyf9>WHD&*{7~p+(ti$TW=m?+xsBBf9g1494qKD9q%s7qRO3q_&9=J@^ zc_Hm$$eb%&Q=`Yevd#jd7|*Ic)3VKATf>a)II}itf>Xwmlc?{K*d|#q=yG{OL9)vT z@QFF%(YlT??S;vOoWE7(CD*?pou9d*f%s}F*|KcCM=^_k*OP}S?+?9 z4!Z}BV^r?dkzX1&UT=JzU?Fi?$xRq8FzTDnCLE~T*+AWkuMr>XTCfl46Z)%MttJ!v zNfsT(_oFvtn_qSuHoyLu7$a*E$v02<&>HVn!H7A6kVJRz6ijXMkJc&JM9e;BU9oujLoR{fX zXuMRiWgX$HOO^T2TA6P6s!91NqZZ}?tbNm#D?R@s%svJ6kg%NEXtnyW@qFSbt#?LDt^Pgpg)OP>hUG?*7K1u&!_7jg4n&XsgmGB6Mech42JTR zPZE1mS5jEB#|Oib{%HHlXSY)ezF{v%5@V!xz!OF>c73;HHj2DqlloPz{(k^+I;u

    Yc4!<1k<0`IJugnFQ0;}U<9cx8S)7)#=mdO7H{}P zxniTef|9~Z)ZB|zOEA}W4lE6Oj#xsatu+z~OQJ17YS%uq%qK?=dW|u>)Z48=N5H}2 zwQ|`A;#mwH?2ckMI2K7jSA5OCS1Xq5i=MP^vucEy0%ohcEXr~3Zr>SnFt|Ah{Wp|+ z0C_1)6kIJOM%gJ?JoxS5cE@eMG3SP&;m{z56}vif>=L6M@u8EL9R%AiKBhdkv>pa^ zx{P*r9>zUwDv(o1Mu2Nq4wvln8nA`5m*q~1J7cTX`4xeva=)BH$>zWb|NYu_3LT*3 zVpnzWJjx76=};{oUqMu-u8JkE!1wi13k)j|2L_ggQn(mS)k22QnrGSK+eA7~{;lSN z`8UT^*VWwes86fUPuD&eOMDm*?L_Q>pVA*_@WsMce^l*kw>4gJyrHFHToyXBfX0ROJj5PuH`3y3uhtw< z_FQ{r%qjC-t8Ch?Z$^U8?j`nLT-{Ro50TG^SewOy8^g_I|;T`O2B7eH7KzzHw6mCBv*(wicJ`-nubQ?C|I?-}O*h$J6dGWQry7EIUm5zLxgB zhIXB&M`MkrmdSg~`5wk%3EVF^<7m71$pMs&&FN}I%!X64sauq*KEn2aN}1 zG59rqw7!zPkIXg~kCZu5*O;>RP0i$`K=N9kjy5jeII#MHozk#*`%=K%BbUbaL##gL z(qV^hc)opLBQa?E%z6N8Bhw|l&7O7jak8$i({?Gjv&J-@`C_L;1efDxafbz&^^(A^ z`6^a>m&83!(r?le#vQp1e!L8_X#i-9#N+I0N`w!ZOng@x@JW?KNOd0dhOl8+Kq@Y%`Yfa3<;hN>>2KaoqkXT0y zB8}^q5MP01E>?|eu8xzs-?UqH{DruQlD9HG;ILe)>V%Ff;77>#x-6h$4Rg=pxsR2Y z8Q?{jFS=oS9lF||VP=LM0~;_c3`pWZbxFGS=KiGYRd$s4L|X5Np&)N(QFl}DZLd#Y zUu{hGW!fF-Cyn_h?Al4!MXJMatd=I@^O#PRC_MLG$`&)+8O z{+8HoYe+4=rz$b%kOWUtMY|W~ohA9`{7kU7Ls@E6Cn&Rp|0S!wE9y6ic?kXZj!bPy zxBiImbZhy>{TMu?|AEgs=b1LPdip)=1FOKHc-MEl{wc@G`4Y95bXY12TeqXzRk>h~ zX^V{W9bbn|WtE#xU;5%#`x%DW8wmWKD*mBgXA8eHpZW^%!QimZ;?|*djqUO2baNu|_;OQLm58@hDk9Y?i2Hjg|MbN7af z06HSo$CV}BZ}z5|HZ(M~cdq8~0y5DH+D{D;m-UjNZ>7;U+xrp}+2az+9##u+*pOjR z8s@5mAP~nj@C)Xks4B^NZhWiwqj;nmeX5EkcL;EtmAKtyFO|=${{CyCBj|77fN}02 zL~pWe%TDPSJnI#6tXpMU`t^H|C&7N8isX|E8=Ld5)+{aFVI=_)B)-p5;GSaN*e>bV zt5@tmJX(5-{^g{D{|DypupFVxpkr~;cHd@? zbCL9abazx$e*^pEo7ASBy!2*&SZcZsgf)0;DcjH;&}*`~|mU=8-i z3muyV8BAKW=JbZX9^XVFtr@9Wlg7cA`~5<71AX&|Bcd0)hl9>b*Qa1U)&&Kd{+G1^ zn#9TVHH>1QnYa{s9LF3eb)p+6t&?p={{yV=MG5NX&A?F?tB~sOH~CuJtB2{IMR9$| z^F&)>q+_U#S=5snuIfP;Ca6Ha_OAf(g`w&sia$6=Gw?7rH858+2B##|2Udi-oD+U8 z?Tp$T4E@6n70GoA;Vu^YGUy-O7iQq5kTfe+6;dy_Iu)@;5PTzCUwi@n4$iMiftXyr z>U;YtqN}m*$~SFZ)LIy)z)}2T7qY?!>`mn~1umX@)xFTPn|{ zA`A8UJ=29$@pl;COk+=RuH#}QKR)5iSSVHE#6Lzo&(AK0mg-X_SxW_u(^rfP>D`W% z+NL2e$#51#Vz)l;+0=f=InZd$sG2ID8N;Mz!EnwxOR{ev#Ru-#4y+AD1@d4?+(_=? z7N*u@IjQ^Y4}ANQJhW75-Jd-bHk@Lk!wS!1Ofzv~Xz}wZxF-@fQ2VOD)N6Xb_rq8N z0oV@pB;fCVet<4#YIyEab=Z_?>!Q?4&sC-m`VZx!7ZapHi>$HgFNsceU~4AEmCLIz zT^e!^VZqK+b2>8geg~`0;<-(xN8+X8m+e}K!u~?qlg0Y@Qy_WD=S)@gt@wZOeQo?l zYZ@G$cItvdD`kJP-$ksgHjedKASaG9%ofI%hVrv{i#+ui$TxG3j@!uMXIz|fp1YvH zRPd$Ot&kKh~}m>xdyY*tmR0D@ROxceyWP z!*+L;C96ec8Q#~HJcIVnyQhTq{xqQO^PNYZ0QP)Ik}+HR@|{8$ot=Z3hWy)P^%8ze zgts)Hv)@#XYgMx!K~9j>$DKmTMBmJ3*3EEul}jJ3khbWn3 zVjd=V%@Xwn@!XdaT9a9GSEFsN!>{C%dW7s>`u3v<+JKl!GJa~93#e4-7Vrl2H7DT<9>rfGFk(~S(0+*ME}BDQo~>=h>K9FC212^F|Unp2mS6RLQCq& zF)rdyA&U0958%tShGIg``|-;D_@qVit&FyKX~=;AgJ93e2T@;P;lkn#17Ebsg95*d zhvwI#$yIDGRjIs+scz#@8zwilDG> zRG#k%I|6*y*t2CVAtG+S@ie~eGUP}4;=CWsaK9eCJ&2iFbFpcBVF6s>djKJ~_zg7X zl$(~EDa*=^^NF0DGY5uq5khl>Iphqh?zxt@vp;z`)iC)hHbc^7Sf{Y1ar3b1YM@eS zHLWw8z+7r!!c;0@Z@u!YX6tnFC5pG^nJOAaG@%y4JO7GP~e zfgvLrPF^!I@>f6FzT{Tk4GIk7FW1BOP>GQx^A522p=LmHbwaf+Q}!)nF|=zzL$mv z_h3vq89`jdH2XMExprpBh}l)FE$aaKX)`m^6Mesvas^+vQyHg>I)zO)WXPu?iHDGf zL%iM2gJOKfU+K{!mm1h(CM&|hN!ycPTYhPJ{I-{Y(tE7J%~W2GvG|;D?m%K^0yd1F zw2RksekpU^qM&Mvb!KCdjl0}GF>Z_2SYJYSi=U>DuZb+p8l#us&a|T{c8A!1@yyJ5 zV*ZS=>b3eEwzL<+#9I_T=`>7DIc*MQyJHfyp*CjiE6Lh{&R%(&XmWZ=7mq=ptnSzc zXFp6<`lJSTy5DHnfAP*6-43e-e{j?;gXAg!QU4^;`E@exr}k1z79u{Z}(f1v^W zf0H%~C&0ge7$LPObsqkyKS_D#?+y%C`N24L3*MNTeTA!^{sEGLk|Dg%>D-Q_dh(FV zG>rxK57cpU4WyS|DQA74{YCEdBfap-9(!fXu0&pRP=DC)(dc{%Q}aqw=e++$6X|$l zf!2}}Q6jwG_SI>Fo^-SBg=$0!s#Dd9icN>VU^?aIp)1}Kv!%nz>!Anuu??`rl{6*U zOfWz3Rdx6HVjp$s#o{nZ_^@`fw@j87b7ZuyLPgO~V7F-5eBcgz?yO?)qIlk>#!d?q zYdrM#YUAB=Tf={BQe8?7cRvIx_z!;xF&D4n$bNSG&gG*{_Tr zL%^5)<~@uh@2H_?qE-_4^~~PhQpZp?SO?_{E~Y(S?&^}67hewJ|vkuKuWT)#p*D{Jw6(+A^s##KA%@l7waTePVqu!QI| zMYGXMB^m5I(m&c~#!^v750YPuVX}R?@kWIINq#Ts@E%5;8n<6gdAk zVW#x$9^5`|EPH~AckgryEABcbX8v%Qz%hp5DROGvb9IsYPAkha7~mz&&&v3#*SZ z?LA&-1biVNMpT8$BE1@aYIPOBbZ3Pr131R!ArwSdGNEEZ*%}7w0eox@_nuO!I1XSn#}(Dp|5vyR%_|z2xdn5#Ydir_G|?n zh5CdYA%9O?9y^J(zwM=k@yl}$p9^PQDqHx|pkyzlDZ84&HYVw*yeVDX%P*8Ra=z=l zCPT9I`aZ-zd_I=PF6AOzqF$_b#eI#dpI~^8P>nv*wom~Rue<~H+2m!a3@2ktMd3hf z`M7P>J=(t1Ni&T+=BqHu3nSVHN_b}ibnQ)n)>LxupFZU-z3h3s!s108JCx9OJT#Mj zu9K1@xvchuq`9YW6&W&Zx1x1e3w9b91ik(yKmmHiAk~b{$W=>eY&(*G>lL*F;jc-V z`DW|v%L4O^rd-wq`^LMIYfYq^`ez;b!y|0iU%}-A7KKI&PFjLsb&y0zPRN?HYHH5x z8=`cI_xp{D&nxzO?6B}ljzDKmEw$1=EPi*`C2{bTPUY!wSYL3$fb9Jl50f7mdh^Q0 z!&5(B!w+2b(wdXN5rBb2?$@`ktHp211YYIulqtHyuvurj^dEu2_%ZDh{bXCoM_8rL|pH zYqvwlO-C5W^OvtV)K4citgLqI>8+GoJ(2OyOP~4z`tdOXdRE|^A(i?z@k0xYUTKX(4C#FT68Pmp*2v}5BP zr0eQ&O7Y-O%-zXANte*N@88Wzouz~Ndq79YZLO~>9w@2dhX?=F$%<`Kmo9$1=2 zAJ;Gf-bCg>o~8y`l7gGt2XKQxFz-KrQeJcN^j((8Hnhk&VE0S3YB+6>P#ZAi>&G1f z`?QA|RwDNqQ*$SGE!HAH)WmPP0mUfg0(5f zqjrzKPTa{%R~4k-4Xbe3&XL;Kg}1hPmp3+ZZPQmh(6+F}GgS`b+F#6<93Sj#pRDp} z3RJnrvEY|jv@gC${vdMlop%O?WI0wzV(V?=e}IT`!UN975RM#{8K^9?B8u}TrG z7S9WXGb+o=xa#_( z(RM0Z8MGijB*=>$n=Q0leL9A(#Kbmqxo@8XXkQQXP3KnAR^H@G+!J{Rm<8JRwU>S! zrMG_VG|dY+-5kN`dXU(gUYa|d@xar-$@es-Uu|Mo%DUM(uGQY{HxBw{Sfb9>rlfFg z6z8H`PJrf&1I&4rl(nc!!CtJ6#}p0|Yae^TV(-9=p*0^lt5+-|dlVrWzoxM|AO99B!Yvka_y$h-Y=q4DGeytb6AF=P zl;us%NF#OQ%o?}_W zWADuoly!mK4#Vp9bSlr(pZHl^XJsGlw$^}X@Iyjuf2eE1!w%J~yihl*TwX|lJ1w5b zfgK#t5d;a*7%=EDKd?9@;bnsDYog3vmcchNY9N%Wo?UDM6GNorE-X}-9xpL9huho6 zKiLQgnlEg)K7Bag(F3<>!TQcSp4<&V6JBfUKY*Xm3W@i{(7(8_ewHZQF`jP8e$%Xd zg?WeP{bL8fR}Jvmw?WeEc&$Iud4qa#jH?lN zPE%L2CuAUZY*$%9p({u~p&QDUHcI^Kafch6HCZjjtQP!ETrh6MaT2fl55<*wFcnPr zMUY|>RhF4Rpt`5(Dp3h;XZGx zT0H{49|MNe=Zb^=Z7H@T>iu1(bPDI;IxHkj+9CW7?%`&pt<8DywZz55zbEAE z9gIo17cgL=_oeD!;ZBC% zCN!B1voj0z=vy1RSsDLUo%~moQ3%H-tV~)OGaRy#!sLM ze19reSQ_Cqk!vk^sWqm@H`ns56aUZ{Oo0k>2R1EKM3b^R`|QyA-aX*vRX!`O;+OP%)`Y$Aq?boA zkg+y4j`Ic-uU_*mz9;@eb)4wo^vWNZWSs0-U|#ECRK5?bT;jLw>+;Rv6w$ZtiZiSf zp5E)l@hq(gI0&s{vRL{eg1Dl)dA^$K*>#_v5rr{C$kIU5|qs#Y#~`269);&U>rD$i3Fk5enY>?|rFxJ-XApq-AY`xIOnSsJ}f4tSutp8KY% zzh(zSR&s-vRvgulcp!8vXv(kn)|KGJYX;Fre*OoL&!zEEKs0}P$ol6{{c&xw=)o~$ zOQE6%t;(EtR!Mq&x?D$kz1o(4gSn}(`Vb+=*ffqco!R~K-ajH0 zxRvd0j5K}T6u|xx|C*A;guD8WAs*Iz_*c1RRw7FBU(hRtb)d?hmK%T02U#5G_ejR8 zmH2fe45A}+H@HjfGF(Bb#hf0`cyr4re8J*0-e3&r8QgEohBO@a73<^!3=s&vCDINl)+YQ-C}mP+zrOT;w)q`+w-GXI+aHudD$_SxbY|CMwxkfZ7i_>1BGP-)%XqqfoD1+8=r~n~4SoFd407 z5URt!zq4Aq*sQdeM*->Y;rI)J5rOu+wD7#`&V$=>4cg|*B`6P%FF`@J6;gi z=F<0nw6kV@`4*soLFu32KHkz(zLNFX)n^Um!pt$$G47f)NHrpcRZiapJEFW#{A4j8 zV-LgMbTj>iqEy&YumiX0;|07etjvX38B`vLkG~gx!gO*3e#EbLn=^yGQ29ME$n+Gx z=3ShzpA7t|FCdNxHxppLGw(yw3=KDr)3*5!yk^M5(kNeA_mY7ZU?tu3i)q}X)pxk4 ze(vVf*t3gLf3(mt9n<== z59lNWh~Ljtx-`z4xV|vITiFR&=&M0vR7um9p}i5CGQ$erPiB$M0TN5ciIJ8-x4qjO zT!VDsNW0C8Lbnvy>dnh*%rJXiE9l7O&IWcaVLy{2WDStpwM@Z%BArNp++Fb@`;uV`e z?>6A_OtW?j$i2>Tas5;Mz*zF&pY4k`W7&2~CH~S8ZEomtZcE8QR6eP4vo;iVk1sgK zNKkK|H?wIt%*1Y%%4knK;X&Sb%vYboQO`7aHJ{HlMVNJ5QpCp0Pt!SJ>lGd*#lQXY zQ?Ppkal_=v0@=B9%VS`E+Hqjpw#|I*Rlcv~He%s^Ii7{hIK6x{h zo{b}Xg~)2r=}Qn#BFkIpm(-bmJ~-IRTeLwm}$gOu8BVJ_je2sw0+-f7k& zA8M4K;C{vR=Y2;u8q@e5w$vVxVh@_e`c~j8!BiQcqK(O&Ya0faJu&yIeAu_Wjan!4 zbx_dLo@Fn!m1fwctL^nETYFNM$KqcY8JEt%Uig0r*1s-UuUyC`Wx!}V#}i}1v3f*=PK~%pyvzm#rS$8f5UAu?mzrYJCa#es*ff}^ zWIVNySVmM!*@J@mZ>U`}zi(V>YPcb7Ge_$;26wV6$Q}-ZC0Er4jIP3?C5b6#``+6b zfdyb9^n!-1PY?b1IIbI9EqO}*7oD-}r7fEe=n<0bI#g{f7Cd2W#*q-FHu zjQzB)>A_wJvH;39G@4oEEH9yOF_zhvAZE>(T=UL$AHijj#o*qB7uFhhPv`0LpbAfe z=G1z$U&NkN+8T^+t{M@gCNt`fC7r}@e~QfO zoOnJ!T~$&ZHaHo;YQY7;m+a4$^>(or79W|2qE>jTA0@!6Na^VXaeev`rwabKR};g) z)-ZWeGnmXNFzH(Y4W03EU+r$v!`I7`U$P-&hY{46xWtTEU8XHPRImds>*rK^KMa2K z2U@#9CWSvBk(-Z`oNxX7p?hZP32(9aNZW)+i;uom5=IP}j`mAbd8%KZ(3*^t68FDp zzzt-wE&M)^{e^zTp+Y&CbB=%830${Nzdo?=G2u4+TFLa*q}`f4z)PJ3Pq|}Qi7$=H zVzFJ-CS1UdDO*uzh&LD>C_(KwlMi03$?$^Hld8^cSSw~G4u!9fJIf*ea2Kspi zqq=&3m}J=+Glya}Wih7VCcUM7WX)_3c$&HdS}HP}uD?xxGu0G-PBPBE zmS}~Eg-7QnX+(i97iwv9a#O2UN3XamaI7ObNMsl^jC1Qg$G!)kUJxCc`VUaBoe4G^ zN{b}y9mJ*ZFxKR5xxCV7Eb$A97rYu^AtSf1PrAQNhrK0Fm8kZcvZC_%=hXL;&Ayn; zSs{Lnmo4t}TD-lVvU$jlZ*R&Km#w4Qi>VDk%`}x zgr)rQh)497eKrnxdJTo1#s=PxU^+|ElxFLlLwY5-u}#29y!F7crGS^49E943no5$J zud*E(PsZ?0_FKM+(qNeM2v2swVV|7J_T}{6>~B7mpDvYC!{7;c*!ouo{6NO6C8ug2 zgWcaShqmSJil)bfFh*BgzI(ERn#%_BcZMV5|xp1#U6j59a!%A=BF1Kdn z>ZXXGqM_zWEzr!$O3=1e?mf_kG)&B!SX5YCGqdiO&+o@yJb(v}2anfz9nN{4=ks}r zd>p;(i@pAA;ymqI#wsH93Hz&6eHWSs;=}u!Y}moAOISJY2MHiHJAxgQR=Tf|CMFSZ z*n!JXjFgPx*EqJ6ZL_7BNH3evlEwbA+8U^ul2rD?B%I z4J!~m>oT6@zVFSwcXroUxdq&;K1jFqAso<_sk`BE`}eQfn{*cT0?c>7;?A>Si{?SK z>}(AS-;df2iH6@~7eprBg2S`@QJ!Hs6du)!mxMdA_mW zxB4%%DP*2gcRk44L9hC5`TEEgSAB&`eOGx-{XSc}D^YFbW%r7v>VqheB{#ti3L;0p zu%(J)F<~JpB5YHD8iX|3=_}1u#V>Phqwf*d?XnPOy!{OCOaX#_e)GfQz2p4xP z^6q;<(SfO#5+jC=4nCERU$6o%SnC!Rq#+%;KN4Z|)Eiw;Z3!x|iff>if#2>RjfrXM zTR@3A)Mc(j6=`fQ7G09R+9nXjD&AFaj;gEnjMz>2z*`y>=Rz+Y$usrsMXI)D8qJD` zPUr#Kkv~7Aq>0X&r8;orEv*K&6?`(h1<^As(68uvi9`- zL}#$Ct9=&ts9gKD)JbU{wyD5*&A*GfLJ~)cf^EuJ#CM57$}MJ;r5f>pme*j>tEdQN zpEa;)CMFXiBa9$!!A1^Fx6a>~(~**ec;X5ftNZofY{Q!nHG*=ViF-XE8M}oGhO@di zb1l3!2*K6m#Va}9ii;Z9*S0cGn$6_<&sM@!eN!1W^;gROQ3&!`+g%}p6>cdWf+tnM z#jZ*NNo$~E@NOK5`3u$RVe-u#B>T96UyUp5yL_t~UGYEtU02K#f`@w|t!~q6z1-z9 zv%QclWAO`q6fv+o)qMnz1UT;d(mWJx8ut}v%2^l^2rEzcQMFiiKg>RF*)RIRGW7;0IbfSOdrC7qp=Gt(&## znCPC*(l#IvcqE;ynB&n;s`vU<3a#EJk{DG_+7k4Kmr!EtdcI6%|NegD*f)ayE05Sq zshKQ>o*VL5%UEkB?Se@?+g0&^4w>$dO1n~U#HeMzMey7A3j;j;paM>H2{b$Y!hl}= zNGmp&hE&Qn^(oOqHV3@u*mx@PRj{!H5&ZtW(J{TU|8_i9ky;2g(TtUx zi`ZH=^)kcH&(m0<6L}z7XhL(r0U-Xr9Z0(|UbXscBPTP?B;8*p;z zdJW)U%hHuxxN`g-}e3cf^Ta9X?5(6AL$-r0i%}_E4I!Wlp6)4~r zmEzdWSfmuxehUL=i?eeaWDkxquj#3dj>Egm%P;BpvTVbd+f{1D8o7f0$!Wc%YbwT9 z??$?@b4Y%oQw4TXxt}e*aHn!BO6J-(Q?@9}%^BW}p`9X-UcH9g$DL25+}+zRrU{K_ zUq<>I4@`R6aB_k z=D!_P*oxUY6g2*GHTHm-h2Fvoni%^V{4JP$6I_ywQ=NdEyYKqQA+y70UR@vwM4yhQ zIjDHWOOT+oT2^LMK(hYSqWw@bUax$H{oee(;KEC2jy`2%rz?opu;-Q=y=)FaQ=AMo znympa+?pvq^fO>FcJ_LOmuTW(Y34|5!k;QW+_%h4Djkb42*UV0atHA#csK2yocBx5 z7J8^3n8?%)oY+I=jD@4{uK6G zSd%;9isxrS@O!&A!UAcQf0ypNRqO1`%RmaxPc5IB7ZwjzO*1#M->+J^*gv56!^sgU zE%Hmg4r-GXzf^zITzuYjV+iyu_=#(O-u-l?h5)|&9!@d;Z%1z_|9{V!iMC5O<-P76 zK04A()B`!A(FXO<%O?l~`&e@g8KBv1mZnR4UvMPae-yZg; zkebk4)|RtZ<`*`+KJm5QszM^|YO8lw>R-H$2pRTRjh$Qt|2e>pUmbJ)1rs?B{LNJJ z@Ck!R@`0a}yMhWHel0!%mkC^tPb)h#vgyn^10NL#gs&XdKv(-_tD^Ajq!9n&SK2kk zur~O~KYx5Kx-)%V3m`rA&-V!~vx;r833TmjL*IkQLnRSRXPA+wd&3y9JNd23mEtx# z=cM@V+qixEqEch|Ab-ZT1H-n=D;gNt263HS5|)obVFbaqXME6;a;T?nBqTS_us~VP z%mwFlQhnE&7SS2ATM}9~N4E3S2Z$V;GlLHpd0)vh{K5Tiha3Xn-|2tQkadpWUXnP; zJu(Ly9e{pru8;4DBlrU+`d!YMa5xVQ4|!^w7$Xm+Q&}N;tQ#3~=gz;?ewYNmT%8P% zCmvx{&lJUTs&iuUv`n*3qwYF>RUSxElJ9m{I^FUIbHj!)?}&U0c^P;4j`c z7Dr);^evOG6r|~;rCLmn`kbMJ!J-|EEsszdhgnuUG+l-lt#)M=;sz`L$BOhWQi>zV zu}Y))6;ZMPKcfJpr;jCmL2W$X|4sPQDG#G33bC!2+$p0y5GcXaK$7j{R?(w(Iom*3 zJ3GS;Pd!Wl4ORTIm?hOaSe=T_8p%EqfeC4&Q7J%(-g>{|yP+_Bh4RziNjK4(*=NsD z-zgSHapjK@R5E8;GsM4!U+J~a3c}An)Hwu+4@x_F1^AX@5(e5!Lz&lHzDtUzjJ__R z-F3;5)|UlFqge%qMcI|dy)~K&l#f^6qkN8Uk$V@%voo<(zS8QmKB>ps8^Fub?YnTQ zm??Q31(W@!T&=Al2=FqlA1^{+e?yuCXQIvlYdla27vnbE8Fvb(j6g-S=Mh)Xk;#6P zZy8Kh01#YS+U~IDD;uK?uvo;2BrSgn;kJ_E&E2%p*tM|vt@A406;JO*KEySvSOc`Z zC0^>+w0$d9-d(+?;M|s-n`?Mj3VzYl<1{YwOfA~Va=gAJRTMc|%5$5zMe)1aS6|67_VuO~Q^n6JuiL5O zR&m~J*u?3DxoFV|t00A+EeX!9G7pu;&JPjytqi}&iqh<{!X(l?`kq%)t~~uG_^9{Y z1NYdq>>zCj)<+*>A{IxU^)Y8I3?I`mj0jbfh)s#jhOV5eenS5-aTQSgL$mVT-+JTd zd(@D%)Gc6x6unrW)<&Kf{dWA)xqyJ-Ag27^&-iPAAzPm02hXi*UQcgqSLzQw$yI;F z6S)qFpL01DRF!C}Uc#`tQ}{^5vpdpVrQ7ZuX`Np^(^4FjbTJyIR?Q(^A1!3+CF8 z)Z$yqLRmpa zQ@pnTOaO4d%HMw-pIZ`2=1io%`#M)B_pSBDy)zMO=j#&gqj=r4Ab%xT@oP5X3S$Z| zCRJSfo;Z9Cc+}QG0V4Ba3V{Anf9Jc7Z7F@X+C zoNMOqj}MP~qDBzr1h4EGjO)eUGnFx$B`2vB~YukxKu41A5#ULwX_iv5yR} zb~5%J(MSUC*h6GcN`=v_Evrj%4ec{mxzA3pM z$AbJ-5kVn_KO`^xz3 z#$if)u|Jn6m4$pFbg5k|47e=h6=IW0YFXEPAcmjhj%x0@von?Pc%rXn@JyOtL03LK z`$!2f{wt-Gg3UuD`}tOKBqQFP#r(L-9d){^z%4hMNSXf7DwkHY)xQHtf~apfXv9hZ zfyPF=PpFc#ThHjKsHIs`XRD8YoE1HTp=6++Xy{C%a{A|T2InWHHaDSBC7_bJ1t>mZ z*0%}e-Nogah~kgsDx7H6X=Czkfgr7!$&4)f_-o4LQ`+K)vb$bc@$GNj*e>stMEN@@ zDFaI@#aB9g3c}$k@7H9Y$6MBoWzyvGt!gQ+kKJ3v7Z2Fd_K>3Su{q1I*^8M!Bc#0s zuHg7qE=*B7u`>3NExB)j?*G^>vHMG?Vqms=e_D96>^0T+6MmQw(sy3Q>%kJ4=c&zg z|B$Y$=*fDD;7VD+cmLsRz$_qI4y($$Onl$0?U^ZK$1>ehZ*5vCSD={TDwGd=xCCuU zx)Ikobef%!rzE$(I|pLN|A8Iek30mxxX~`MWe*nTv_es=>d_-{b4CO9)D{&?h`x8| z1XSqHGUBUCWmr0fnFbm|UEI@qF2=Pyg16O$QGOzm zn#x(c@c|0R$x5}7b_)>u-yE7eQp-Dz> zyOPewLR@VgqUS9DQ%l9ILO93XYCr!5FWddwCjiVl7q?U!jTg4meE(5#EZ5>{iHbs; z@E==S@muxeeEqU%D02f%<8@h$sT_L4CL?sreXc`-#t%*zL^&o-cVTNYf_$ zK@^VnLTrGEu6jBNYdzG1_E4^Vtj>n8jL)@0nb|Pw+Oi_PR0;VTEOPGRwbV*60*a;$ z{ab9!XU6=%yoXeQid(uG|HfTu^mm<8Y)Ck0&gPN3_)ERe&x~H+Vm}iL-g9T<*C3_} zdsU&#iu`>SKfZh{NVe~+PXhHF6onpH!Id9~kADrzlvH?zz%vGV5kXJs4LJ7hu|n_6 z{m1}8Hk=JMYRQzu*dR`F!t{L;>Vs(|cDU)|1q$n%aZ1#LGZ0H#T-avbGP<*H{_kp| zxR1EA6}Km5lMXdE4jO51k}b3zmk!{H=u_^yz8$@5X%xbGMwX0MqLM1^DU_IDX9LZX(WkX- zsfVM|=}&Nd5?~VWPJcGojV`RU+V?U(xGkm!<*yLBH~y7=h=?$UTzDVMN=Q;CR%MMA zruv1KS;~-gurMi;(RbbfFFtag3!8%U%Y{c3HZQRLS_@h=sBPJHAY2*defn?55Vd|f z?0z0JBPKe$c%DTj4W8KVmE>L_r!vKPu70DWy$Zv+qV0*Fv*VX^*9;N3opqe*y&w1@ zKh=U$qI7X!!2H^02s6i^2ad!3)cpH=A@_tT_NP(%r3He3GI0xa3mLzK!B7W#R7b!3 zatM+MiYs)Ld#I$3H2-E(aDZ^a6o~0F?ROS!z*{5Tx}?T95BIcMD!+=(LYh>yy6lH{ zCp5%JTn)M*dY~GtHi@+sr^nKWSDqcUReT@KO2BK+m|O$2v_y8-;7b^Ngf)Je9m_(zg#YX zu^cI7p~dgvLVwqj=hE;R*kTzIhj`MQY9J>W=3DmL;0dd-PZu4%cMy1-c?6u%e2$e5 zIFsU$A%55IIH%AI7ni>ShOyxHrABKqhqag!7E#S&qFtXR@>#xW57r6mUUy;Ke1EH{ z6BMHy&>CMbxUZ*kHZw>4t6V!6oa)(|k0?~Sf1YWL<^DJZuu`Ang+kPF1uqoCyZC;X z+AFmO$F4);U)ci67Nr74VNhaLOqFA#B!9~0B}i_!2EgAcq$Rw|YJRk|YnGNa`wN!a z5T~aOp0b&0c@0`q>f^cN%iLHCm)nL1uLk|^(baQSMiDil4z0tD38I+eLu8asT5BJ& zr2Q>ebNPtTzJu}i4ZYT7SG)?jyC*Gpzym&yyzWtIYP6qJg+E9#i+#2I$G}HQ?ESOn zNH4fz=y_M_yP3@V!^<+s=Wmd^)6?FDKktTD;%0H>cL;*mmm3lOG zkKPpvRGYCm!_B$cnP+dgOa7cKp?hpu)w{W1KXzf8iyS?v0DN)2KLmT450N%vre#<* z6jFj>S>Rf5F=lYCGCCawc!f-2u&3G(AukNPm3;)eq%fNN)nNmG8D@VB(5KAsM}Hb6 zb92DG61!IC(j6%bxq>kd#em^`1G3RDCK5~l$1`<3A;Xvc-Y`1e7(Y8R|88#Ds@Xli z>`KeSxS0X+X5Kbp#89fjGpue5^G=8kE29z(YwUhT1{0pC;)UX;(qsr1brB3-S)0-M-@ z_ER2xUfd#|*RBzYp^TCF)K{?6l*hR^M9HWaX@k}qururW%w5LA4Ai9q>JN89k_P-teC;!_qQIIZZ zs2D&$?)n~jwW4?tTyiWyd^n|4I(jD)1P#gSjV?sI-0?SHDYYN)sU{LZXGm;)iu=S7 zfGVB6&?fNb8f9-PDCB8Tv@IUp)YJ^lggY`9HQb6rBk1V!dSlc9HEuQ-Hj4NVy)ks~ z{>5`SU~>+h;whnbJ3n><$(Bt)E1?5x>cbidqC$lt8*Qt zHY}g%Iw)Lik&ojT{j?ua7GUR*kB;G?p+`n1n!`|+RP?$@@A_g|qn0W2fl&q6U& zTsgAZx~bE&ESI29c58Ll7RHJz{Q;zRXX(Er8+nEyM14@+E$s0`MOJ zyw^R_wr{asvX!je!j24Wu&KMs8hx$K)XjBIozNrB^I(!}(=go__{lE859(h>P#%=w zy6j~aXamL^8reOWTE>zpauQ9itDid)y$P~1Rl0oXoDE^A@q1$sWTjbcdN=(1&jY!- zjt_RDJ)X&yl_4r)HxKu>1c1c#+owIy83^uTj6SA!&XF9|IKTGw`~18~oGI)MO)E&t zhiaABY*m#~jIEea&J=w^wOIq=?+KKhts`NJ%8p%Nf5&1{xC||&WtR7J!2I%uBNJq6 zLw|)p(SoQ|#pX36jiC(rN-K~ORFs~!u0)hiv3bC3Ox3C?mi$kH6w-k2ci|SH6edKM zaL~%GrAh%NcFf$Dk6_e5e`}1PM*kUxxQ-!aY=^-q%b%(%E5-`5|7U)C=npwg zz}8>fDO?Fzw86WkxC}n+c&*zRLsRHHffd~P%kc8#eJAC8^+-VNo)aZp>MSr5fIs*)Z#zXRnW@>lC{ILr^__L@NeR&D_g+ zq7@g*hmgF@5es59ME|3CJj&g@#$A7Kc^jvmw0~xo4C)ldw#z+|22F`f!RK< zG9diOu%$fO&M4FFNwB?odmu5$5*igu3n$k7s2Mi z0wb>`LNG#7k79c0?m4Ph>2|+IZYjNOU)BMihe+?tBk-r^c~a8pR$Y3|iOR_WlFU3RxR^Qa7C+E%=1 zU{wpyQ*2DFJ}!yMuSg>^R}$b$wY$WYY`%5kL7NNQYz^v%`bX3deZsV%7}K;IS4_6s zrJmqyOZ#RC_i1j%{-fN?sb9U&Tz68>F1xjGBSy zM#3H+W=G+h;q+xkuZ+ojXU|BQVF5p$=^y*;3nvtCdh>WaqKb#;LsTzOs&o-`EBE9& zmh|7?EEjTRRzFd-a^a8NwWm`Id}?GGc=rbaQfc2XLf`zqv@j;gR)<>8$MGJtCV|Wh z4|-rTXZ!)wGr-viDOYTin!f23LoY$KIL@1jlgdsHXtn?#n#{JeyW$Ds3w&$JSess| zR9aF;DDNH@*3SpHvAU5D!Ju-3Wd}I-=d|rNY#&1UqsFWV>y*kM#~_`-s+UVo0KWkR zFNYz{xvSFBKBEAPM~LfB7-$74Kbdj#6D}ea(c>$ohpcyZh|LF8ue=JgZLJJyhIo`! z5+KHo#7eSs>xBhmwSWjcY7wT?(wV&Q2xhXLu~-6FcwV4!%RkS6>F;$;x?XfNIAGbm zYF9co47@UFD_27&zhC+!eLw?W=$SJQ zPsv!TMB29Eqp%Nc33G#G&`YgZ(4_7N+tkfG8>SWZ$g&B|ow@K;RT!t-W~YS(K7v`& zKG*pz9dzd9xG}t%X{CCCXgu(EN26MM{eU^$DATiXf02j{tC!tFYGDCi4Vqi^BS%-| z&z8U?`QH(x>y>8#2?UvNcy+aR3p4Z32@@jBZSXz?-1rLntKYn;%zL0ffcqXQM0M&+F z^9(QluFz!FT#R9D>TfB@^zWR5M&)5UT#>RAdmsZ+2ExYYRolg>F0@{9n&iv zQW_r&y(QI}Y^DEJdZ#_SZ~*SSf?p_2L(~!L&i6ueQDT+jn}k>IEx8nEQu(CSU2vAs zQukJpt<_e7Th&s%8+X4AAJQV$D`}_P=DgI7O`r^^jP^9YF_!Tb^P<;5@wk?;wG=;I z3kGJsU*}TGew>d%>Khn3qQdC8(ISYqbJTj#0FRPM(3pc2W!uh*syEr;GJA=&AXoML zvmV-?#8le%0rcIpOBB!h2wr0fxbMx-&gd%gyvGsO{QP5kVZMcqmC;O_fd6~ak9YX~ zb2uL~GDo*48M8K-Q!tEdU+($pGVl;{;Ysz>?jw83f}@jKFaLXaM3i7f_!Bt#&3V6( ztD7V9mMZ09<0C7M)BFM@NbyFs@5?lik;xp>U9~l9G}Fy?ZA}W4Za7ybm1i57c5tSFJT$&Xm2yzO7{z24VLk8T{f4i~9vi`6 zeSnd>MgFbEx~Ttld???Xcf>M(wiU*vXr)+1dR(FWDV4;T(VA5}g~0`mgbg%qQ3dE} z(EJCak%#W{oG?7nYRFkra+XhS-u|RR$0CwvfoZ_9HJH+K9RXy-$L$WwRqW88aFmF)MTebr;2Byb!Bp zis0}s(RI&{New-bbt!8p0y8J>X2NwyOPza5U#TGJ5GjUwc{SGQ&_3@b^2yi{@Z zR6`VL5aV=w)OjA1r|&di^4Ne%PwFi_#jop8#XdU2N9-5szS93Fb8@5>V;_*4n|2PH zS}qQPwq|A>f!7vRTwr*%t-i1avFJ|suBW~PX?SHPfwUZt!hB2PI^RAm#{9#(C67H= zd6eL%qwE`-`UJfyIdpMg*)c{QTR*Hg*A*N{-yg* zjCTpIz=tE!rwXN3(8f|LXzAnsOrZaNBj_DFK>xD_8cB_yJwvSaonvvB!T+BP^v?gY zf&SLxz@}BO4`IhG)ojpN;mRM<#9^`Re&bV-DkuDOhN4c|m0JTPxsgwk#r5wPq@nW8 zdYjUr#3yF(HIKkj4VZhCtO4f**aoTC~|R2l~l97tl)&G%AAg!B8chAH_pi_x2+6ZD$Icw<1wZg1Ob+M{<- znfnpLfg4`il`D#E|NUTwI@DolUYXGAEvROX^v9$lA8dqGE~ zb{?K!5tOZ@*Z?Ley z5u&m}yUd$V?btVVsfZ5(r{ZlGQ#u1xAAQ*!5ley7GKqyTVP1Pnc;JruXj7?&V=y1t zd%l;{xp?^|-iA7^HDU7RD`Z1q#am^e8hd^63HD@0k-Yr>#;yo*klG?6m zwvt#_SzIJ2^UOneYu1(+OxoP;%Z0GaCM`Z;JNA&ky8`X%DhVE4ba6&0 z*+uOwM))owqfbU1HTEgKBC4-{bKW+jUA;)m%7GE<4@C#@{@YOlvK7~Re^j8Gr6Ub{ z8@HT?B0pyZ-jRoGx_X5?Fo7S;!NLC(_BQD>4GPR(O{n$Ze%qh0+nEE?mLzfiV%^X& zc%`eS1IwpZ{qI;bd6NC580aaaOTv!Y8$Vs;-DjgtU}xCC$5GKf3PmKS`{k7WaU)GG zHnc|yJOe^46|nJV<>6I5;kE4YfU8)Q@?i-geSjn?SJICD6cyEIBdk@wIMt+KzHmXH zq@whW65rSse`tCA%yk{^XyHj0&2f;Ui1A4V)*ckSnR%KLiqbe-m=$`;DtKEPBxwSn zY)}{+`Gu~?Xb57Xxl^l{x{6K5wU*3TVtjO3G89dGBL*j)l@xNL>yIKYaVlHV1OMGw z;dRv51Z!FmD;ZoM5VBR@l*@mVyCb@(LOT)P_6!WwQCq_@&p#uf``n{r0Ot2%9 z6EiDY)9k1nVMe2u^9#2UEu*~oiVl>c2v{P87u}KgR{-r?9wJR1M#7O`5%lUHxv>@h zbUTdV@UoiDIq12kOF2+|5VGUhEIYu84XDXBj~Js@Izd3tXXS1xA7wVMfM3Wqj&tA5 z;q zS~@DnP83hC*9tt$janc?G1q1Em>{&LFwHn*uX!bV%J+{>;tHPMMthS;3&qmj*xYr% z-XA3RluzCDim&cE3WC!I^Y)CppmJ3J4Il|&c-c%g!8oVSJD^cYwZE;>IlW8xL17U( zM5>t>$?`nf0Onhh#wgfEiXCDAZ0t=VY$L`lVZC5^5ceYC;pngF*ciw^5%pe8*kU<|agHATgQHTcoDjsdjig<%HHZR_+~S+WZWFIE^l z@Yoh^b~(VVJng89SVX?0u+psLXr@ORqLwZ~%+x7U*$A!?nP5>Jkz8WVQD=~>y=ST2 zMo(A5RfoyuON`3is2+BggwP98jn;4~K+XD>fPfXz+A0bcS~KA3=q}p8K^QDR!5RiV z5S>@~yV_Z^>k~ioSUNTr8C*ZuNdGB=sECYhiJ0m$SV5A!#qAN(rp5fx%SbcG=bi9i z2ky8gOO%yLfEEa862C~LH5X_>OnEc4J9w2h`@EKG-N{$P7SU?SiM{xPXh4;c29`A` ztYGbNka=KI|5UsZ^z?&0j^`mu%Qk96AF5JH$L634v&QH;MU?T$C|~4ZO6ZjDZ

    M z-vm@s$D9U!M`;qMQ%;rJ)Z>OvmrRTgR}-nlUqM=P>nvLd88cOFL~_UvKVu$o01QEf zK9SuF^KMwkFF}Ug=(|~yPC!yo?5Np|2}T7^=MidYv3M}}ZNn=BgF0`N1Am3zbS!9Z z;$=om`&>_q;M{E+D{?VtN9K8};|9YFb~QEYGPMfW3PnEj=O6?B*_+0*zg4!7`yGV& zA_C|4-Xiy6XGLy|zfF}#9j8pge|+&gyAk+nU1wSOHXc_s{jGRu`Lu|?oq z&)d;Z%@VP{MhNMLAYbJSA8Oe@I1c6;0Lt_a_m__Byjpa@%Q8O;RxHrjL!W^UT_E>Z zX4FAA>ZD8~reiJ$1ci2Z?DyD@hh4%n0IwUF%KcEGh~5B_{hA_KN+kL@i#`yMEvxh< z#D$GKUHB1OsRmI^wK*7uNZjgt3~`19TQAXBosyNAYp9$Obl?U$Pu;tT>9M<{r_}@Z z0w~e)#~d+WxmESN7^~&dE@4cHjg#eQRn}tfNX~n<;iW>)Jhr33HE>IpA1uUu7K>a; ze4U6J*;{F&$?5eZovJZnu*O){F;QNH=Z?Zpmn$fz(bKS^<-oKo%Q{wt?rKk{ zVHc@`JMHWP?jnmsEtg44IIGKGNr%Pv|HeGon#}OR% zo99#9z7fQ@E>mU;KzrfG`mJO1wj$7EAz8s>r7rdAPUDYhS9aHhJi*>Kdf1>w%OCt9 zt0x;tj0t9WU?h%(0Z#=^T)!G@)gC7}c>nY+>|M&eizcFz*v6W8mNV#v=G-ZkGZJv= zegFe8HK6Tj^*b`K8->LR1HdVKNwN}ucl>67=(^TQhRlRo>}ZCMutAM|3NzIntvt@+ zp03PScvf?YwyKth4x9j4OZCPD}&g{^sctPt|jhmQqo8zC@#!4JNIv8WrnLEL%iRY zrH8?PRl|BrxOUMK+Oc(A?7KFcJ{x#ux)TV3Tjzgo!w_kjgxc}LIn0-q6PZ{la0mxM3i%w9l~>g*rL z-s$2`psx8J(u9RLM$ZFTE;OkHy^E;{t$2djfWhK1aZBsqQq2MO`fV>PXLK->ZbA=v zq_eQDqbJ{>&OvyY#J(VGYuo&b2g6Sz zvfkxEkD?3I&`h*-=>W5_mg@NxGVJUK{T3w&1-~p3daEdNIee{xQ}6lL&XEJ#IUr7L zNgu1Wn$|>$erRU>w5EKJH6xgar*{ZGQna zj3{KklS>y%mFJaR6)_~Luka}r<9nbB8%s^`H}wmMEsddL1-Aiu%N%k~s5-qUnlF=0 z9Xmj$R~0d$*Gcfo$lYk<$z4ALizX4^4P;n!zw_P+M-(x7+2}&uFUKC6vB5yBnl*qt zoe9!`g@oxlnpuUeNcV0(bkac(Z|p4vzes%O1W|}`wsc$WV1dWQy<&D_iGs9RA1)A3C`>!@{dJ z6fQ*nvhuFRd#RzKO$B;b~wd1r{zfofLkBi$bPUhS@ zrOzTi?B1>qC5+odwAj7R40$+1?DcUOA}(?XucfnwKw*BxZ6CJ1-EFLz2M!jaeZ6v> zw3X|55Qp~73sirgYXtw|yM^QMtmybYaE6Fc8UMj&DVUm$gY6y>eo_%dO`JyoT9&1 zZ=R+v_P|B4<9j-vhrNK9tU|bMhAoxf9#?TYdKo8`_$HyWOP=oosv{_O14Q+uphu{K z=pY_;mbtGNf1esLSn1$>QvCsti_9|P!j2z_X?|mXz4k^eIq~hjUYXNWRJ0!#OG7GJ z#*tIPicsEq0w&d!*f|(_SehCHH6b7yXS~V0D9b+bz6tS4oK}G!bUjMUy(2hP-ov(yA%~nvQ9IRO@Q#vVfqtla2lw`govxXs2aR#u#(3Ec8u71j(KCHD zd9!hdpk6gcH0GiiP7$6J5*O8W{G>OZKlwhC_&eKD^-J)DQ{Hh?#ng8 zj3IU1a*B%H?kcZCQ3qPG+yH(vMB>AN7YE!g=U${Q>te-pGyh9SQsPAkB zxtVWrn@`GEnAkSI8Tk{-CV%5{aAEB2+x8)6YkHMy*^#9SHG2YmHj;EB z&G`c?M{cQ-VD#_OK>}ZYQEW5?`Ygf(cjSV;^Sxr^Mt{MvUxZyuwutM%$}_{Lg$-zg zn!gdU1)G!Gh<~Hz3qPt%uh6|qheV%%W~wiXRDyqxE}A?UVvlViL-%mV!Wd;vN0=_D z>t(IGTd833=et5_?703_mhMsLY#ANfMZ7(6TW7|jZzz)oFRkMoiN{%hd3y&xjMnHbf6h zu~dZrDb?YDQzK!Ueb~jIuc07zp7D1Ns?M!t8Nb6uc!VDp8U z9kJ)dNpg>Le?>;VW`m_26&dEtb|B>+(Jav#{6Xotk*~KI7J>GN2+}MW`eWihWwzck zBkz4i61M0xxxSg!u;(lK5K}cKu@~G{Y}>(ueBwRj*|$F0Q=;SK=vWDV$G*;SW}h)( zZSNVQz|iHim4*FvH_;B!pF(JNWKPyts!E%l3&j6+T&enBHhiTrn`s(bSYL!}V1nDG z%W+?DGL>M?%q4P)&CZtRN~;AM84U&nL!@ySuJp-}`bEbf-3mR`ez=~Bszzv!LCKzV z;u9s887FeSS_FrfqC)QYGCVPL#+o@(Oyrh4nYIrhpNuB5zyEcCZ}Umv6A0z59+r|n zC~D~{k}RcES>)lpaQ=E}9qZC+wxN z$f5c4ilQ(BL^jE*AgY%kj}V`rAi{`T@r3Tap7;WDIEQ4=ZfC6ARdrkGdwdE&y{MGu z{DQdsXe6wwLT51JJ-LJL1z&Sl6`U53$>dKe^moPj%3LF!mq8Qx#nJH*$DY6+r7k8Z z7P>VNC?ah1Mb{ZF$0lMz%rOs5Z5!vOuY>Q&{6@{sE^23nu9RkYmzCrBo?~DX+Y`it z@?74KkS7$MX<*$NLgCq3Oxvh)M?f2j$XMUQ7L8KhOnlr&?uy*Fya3a(NZ2$4~uLEo+ z%V3{7@AK8d{%RFxg=L*$&_&n992+V%0u;txC&w^ZjWq$97cIS`8g03D9mE%$7|jxG zvMB5%;A5_n&NGcP`g^wqNyO5U9}CZDsEqt#3tebdK*Hkb32OLkN7T_0CriwKI|e$w zwBBq4`6b>Qb}YkHOs#f8C5p}%~ZNSP~AopTn4rrnoG>NN7>iRy`i9l+Me3V`xXS3j=nPKUd zo08=mID&VDu#Mff+_81`mh5t02dpwM8~)8`s9khq-oVTpXVu_C6h+ z_PL=F{}t5B(BuwxTkDnavdh9X$k-r_mTr^e*nFrci z+7T>i-7MG$8#YVz3el+*uB60S1$La8{Awb1N4As?MTmNWP~@gW;q!gXGuI6IMVt=J z2OSROrMyA43`E6JO)Dqr1{4()eEEQAwr#@MX+YvJa8TcbV;;P2AY+clR;-25C)NBb z(e_zcCto;=>E18)PFqpT55+t*XOBaNsyfgfIwmY`=>Yl0fV8x47|=e`arz=l&DDB& zsDWF$7y@VhYu+C?6rD~08OU0Ng5RjV?0K$Ns`{qUmXBR0_JUYkPFGsb z-E`X)&bGlHx_Y74LF^;&n+5`7fyZ%!0&$~Ab;i@Btx7k;`siPzJ6dm|GTQgjD@Z>| zS=UkFz!R2n-TwTjIFxq@w-n~y*f&`vRkdR^i$w1g4TEBI`)sYfD?OSWYRf6cM3J{N zP6s5YV*T}D6OKA{93}j-JZ>JtkCRnClV5btk-@uf=|&f^@4DImrq{DU{b4-jB zZY0Nl)qqh)J`GbROxWWSPG-t64az-XgJrAAG5jNjODwka?6f}$XXE<9g~k13%XNsJ z8ED~-@eJwt3ZL{e4pni3mu?vJk3;z6ld8NUPDrGKY=qNLh&~TH@kaN8Y%Tj=x%Op+ zw|Y&wcx)5%Ca5K%d_8*)of+67@o43by?|HMo2echaf~_`-UNBTlZM zjk{Xlwu{Nb?}?S|J@%*T2k|jsJaQL(B;R8B`-JATA+_*jAwyL_(%u=VPLZxp*(YvX zzM(q}l|+nIdtAkA9Rj~6_Jl57N2e8?RDs;YpSrY#?drdSwv0{>6TXpz#9=ax*>|+K zMod`A3&Ty5W~=8P80MAZ&cnUc8B_@(6l$I*>}{+LA?H)ab%r9D9zNU7`miV|pWd2z z!=xZHY!IO4+rlEd-i}TyDw&w@%D3%1!{Tham}8l&s#5K-i15ffD39E9n6ddhwzK}l zNlW2kBD>sQ-^{j0+J!r!!XngZ7a~+&I98&t6Yn~Rzhjy-V>G?P`n>Wk5gDXAj!PF& z>R!L-&&fe>mmz4==-}N7bc~g{&v=u)&20@TbUzWPudj4*{aNpfW_K}xZ;|@<5a_4kQ2WXg=;0nZ zrs6`rR~Pt@d9(%%MQ&!6Y;&Ipkz1wXPq0XPWKn(R644%sG8{X^UFh@4Lk@%xxcHNE zZfSqn8j)_*@0Tj$*g2W&IEC?R*Rdym{d!<-KrETG{1;`>MbfXQ46y;l1wsm4IM72< zJP&WKS8zeyOpd+3#ouanm`|Kh2JLBBG)zgN!cx9fjVlk!6Ck?+RzXtQ?P&8%6}vE5 z?8N-WT-}Y{w{I?F&E=E+oQCNM3pQh$eUIiSqPSB^J$vMsx=&A;#h)629T@+k>fJls zTl37YOwa^t42Vt&k<0}e?;}!)xfxlY;KRE5!vCmTvs93IN_U2Fl+-9NKO~gTKEcTE z*|s^z=0Ia&eg$$oMC2b3!zlUyGZTzNOK|;F)pkph>t6u)z0Z_`@uwC>9|S-7dsCd| zPvy!alGMisiq>fvIk)|u_o(YNoLl;{aLvSD<`LYwiXSn!+~UY9A-&$trtKQ@Z;+2v zAl*H^4;BsAHx5I=<`*Kob!wcpBpT_x3IlA9ZO$w&G5{g(F7X(bPT4Qj>|QIiJv+qi z6tvr;>ND#uM8;|SKWH0gsB6l0x3A0lOz{)uoW|slA=aQho5#uLwg;lI&{7cg)I||^ z9T!_P^S`l2Wq20CEQ)fGDEKQdJ-Tm2(81JQ04ri2GQiA09sK?f6b^wCmQO(gZR*;L zGz!m3&ei?=a#@AsjEdBBHx^xFGR;qdGR}CQID?T218MhZU`7v18hz2eL>tpuCa)iH zE>3C0YYk#gH3Y%%G{`dK@M-(S<3QC ziSYXC;%7&T#2SLMohVHP%i{LUg8nbb7+}S@#oxGJV!$5um%TcsJ5ym=>k#`h>l(xKy0pt(YGz)n2P@t?01f<%yVT|C#^cN}%1(S1 zL=}GshcYO#kebi7mAMQ*z5H*pgG1&J)oZ`Wy{A5&LXsH_yC>+z-7#Bau+jW^`5w<5 zc`PsufS(`@Df?{Xlu`Z#XXYy;I*=d!3n%5R01fEWi-K>x76fc(cq^dWimKt@0jO0 z83~w^AG22E&9&wt{y?9g-q+VVZjJ%NoXfylnIz7`-C%3fEeAWY@Mi7<=1`LF-z+X} z9-O62(DZ14Cu@5|){6Tt7d_ZshZ-d%PclR1fWf0iR5ZI{6e0greJq0;er1jQFw=yj z%uw&?6DJe^u|-!y8v;fP)BvY26nXC*M3fuPvo(I$oqVPp4HGGND3DiZd(0&WLP(Y; zO#Z4^mjX){PVtXysUi1T^$liAvcv#GfYXf)f?6&ESuPnVT!h;~iNC$^g+CSK0zxh+ zBLAtewSwAVuue*sOInG_&Gki+%p{;;!P+Wme$xbxe?0a+7ly`=f=wS6t;{5zd&UhR zxVQqTLtLxy$RCU*++i*2(HmQKfpb|7I%p~g-*Y1_sTJ5N1wXW|Vm&O4Gh$w3Um+H~ z$zd;fL^S!!Wl4K#n^D>?x}`}00D}pTR2td6EZ-Ucr)4b~!YSXZr-%adw2C4kP5R^^ zBo5~F&uy|dc_L^iaM&83{rtP^&lL-iB#4N#1!^Hc^M}{>Y^OpV+$1Z96UVVI+TdJJ>+N2UM7G3SrNw zL7Y1C=91rM_*>u-C=Eq6_>Z)Eq0c(V900YcCq$sdTd)ab7X6}CIg2&>tcobKzk+mF zgF~dc*R4ABJw&9O2SEJB`?TX}!bwco-kw=}HHFVUg34Km)HIYz$g|Iw$-i-Gb$V;X zEx9?k;`}-o3*Ak#vttEi$5Z=j_O8xmeC5Wk@?_NE2&i21Q)V>--9eF}7*rO1yS z<$){uNJVf)WTZo1Gud3vK}_=xYwBdlyy7#^*B$pg7)~e4+V$6xx^IlCg zk4E7f$JpV5xq<%3g)FR{a*~Wg_xu?XZf&kuA}mqu^Se>H6-#I!GJs%gK9aN=5wAnX zkB!v7LHQb#^ctyaK~{uCE)?(G49Po>mm(fnFHTb+y^VSDo1=d<2v&((EF^b1U+K7M z$Q2=_$UwaIio(VsjO1pN($y>ya38609jk3KBS=-Ed6WIh=5q4q$7wKgr-z>ydT!8g zDMAZ#S?VJQIxRrlgP9@)^wJlt;vXxdl_eikG67^Zu2wZXd`7<_q<}ezeZ(CT2fmk>gX4O@P5w#tG_Vkz#esFcKh#C2#}hgB>KLvJ5~q-@to#veP}d&|yUt zGlvB(?$o6gcLZ;EdIC(Py#=SP56-I!cJpzj}z3bVEn1jw;4%r`dL1EqdEg&Ot#don+dgW^@W zmNKDsQNB%|rzpqzkTW{7DFEM0u;?TYTr+fisXt={Y8^QZ(qhzuf&T$$k(|PjDsGZ_ z=fEodA+;RYegtLyG!xXv?;VSlU~o#+Wzbmc|8RamgOxZS@`x3WlF30+I*aiWB<4sO z9_4!opCIm)B*hRud(=^4Pi-{_&ln-3{`P%b14P3 zO;4Qy)gUs`$*~D&0F)4s-X4-QB3V7rmFZ#($?xBt%Njk*@(q5((4z^T=g`F1whz$^Hq95sQ#qLc#-|_5tPuj!S8I0UyuQmgS|a5n((NRu=OfpYF^J ze5F`l=#hcZ*Gq{&!dUEbw9K!9`g3z{lnt-~2~gaUs_z|6{Z z<9m$jk#=aAjv-;4^u5nHn{{~R5fy&q=h-Xo+pVkNdZ2_XTv<*|SvT$q>3z19qF55a z)BIe^=a*GsdCztA^y?jIVYXbHUBO z+roTGnXRc2sX^G14Snj)Ev0k;KuUSE$85e&yCPaJ1|qsesWHHq0K-hS3+>P2(wDC23v7;f5vnz%l3Cn0Fh_ zBxfi=(%7aymy<=mPYcLa|K6<{>GDNXbn7|%2iUtX(uS~tGAD)^8q=5Be@Y8A;zbHo zNn{BkE7?0YU3bQlf5{(j5rZxj$FYPxm`xdUuTVQsCJ2+kn+Gwke$g_P@>9lYjZOCo zpuQRe?l4)x=qZZsu!`G-Tra6B;4ehz6k?<}$6!O?r;YaNCKcv_B87%7!S(GcV*%Fu zaGjT%41gv9w%=zn9kYaMV5GPCTml|iwcmOhg)4?5oG#mj388BE1bhh^9BPm3S%K?V z(m^EJ-o&=byC*3UoY_NHu4Z@ofSDp1nR`llClzLDGEYP%J{A~TuW=}72;)&YTnz<0 zx=A>+IoM46WqlnbD6E_(ze1n;)i}c(8A=FJdtW#+WNC?vUC!9+R4OS=pB|;`yztUf z-M+`{?EEh&wJhgRVu`}z%z!zVUAeG=buWAZa~?ltfMqtJ#2*%rz~-X|I^f3f$eTfL zZ9hyoK~}RYfm-!W95t;*X1&j&b|A$b%qWW;USEp}gF0`z{y528P^MefXowZpdc2@8 zafH;dR|8k^u~dx=4Gs&6qUUV}hKh`*p|mnK#ttDUDK&S4QTCOINfHeE+!$F5=dK^1 zKZ@waLC)=046v$m7HXR%(E0%ZdC`(e3au#Skp(OBJgKd_CDFZgX`B(?S57{oCg|)0W>01a2ukj+Y z@jW4soFN0P(tF1BakC!T53R8ntn^;jzp{*sP13}4I{_~DfJ=q`1RQ`LV8C#aAzPzg z;5=#ryrt>ngxlwaw*=ao>`uDD)4GaWk*2)9kGMOB{yi&S+6Zo?P!-ZVvwjdfvyZvO zIWWYaOn!n*`ZK!HBU2~!Gc;xOsHX8PmxcJ(h|k#0r2%`kL21t031D2Qaf6k7w!QDI z+JBqWZF<6_HY_99c zqgu%;2_ozz?NXTGAIRNI%D_-Z$7yfKRIVwHwJT6RwGxh9Ciwp#gr9%PzPRybV_k=G z4`7K)i55;%fqdw2q0eBx98*RZSVw}{Ao&cvEn*9h%JYrLWf5-%2IC`dQ?{<06%!DE zC-W1=F7Tv*zn<7+s=bT}A5kfTZVV0#$&wz!XghBg{<3SblGh?cs;3*uxyVx*f%nx3 z&KWz912(@WlvY~>MQA@uZ?BmgGQlR?9LpLU0fxBv>sdlau5a6Y?ji|G#}(e*Pz2wB z4e(#AtOw`p<$S@tk}dAVBDG|ZU;Q27yjdV0AfB+J38IWf(274J_XRbM2Lt_S5weMs zhl@AZEvC73fj+{D`ZYIz2kZfP^_HCWD-(sozNTu2Iov7QroO6=GW{|oPi(9ak($ud zAda-$xr~y-Lo<-|l_d~1s!F_NbZe?}IQIvf7kl|fpWJR-j{S859todb+xe@1QYSTQ z!$FjDk!{CYWT>l$&993O<*V@7*FEOC$4?nFBoVkF?qc&r-j*K(u=;;g{M&IU1kaKX zCQ86M(PDe#X68qfXPRH`73TdnWS~4yY{PWBI*aGri z1Ii8LQ#SoZeE0M0CQ871#4>PdDnL2UD-G{kQ=sdkCq#&K$99b8_;)h>p=??<{`qyI%FQ914f!Q0Gf0Xbk`IE;dIg%pW5#8X zo`bHdeLIndX8{7Jqd~9;GkR*aGP3|uPeDf}BlQ!R$yCFFx@>}}p-8E0x~+l!EDY%b zK9@?5go{bLR!T?S`sw+-+s(SR3~{eQ+7w)AmxHGqU3n}b1&U17LlaYyS6+OH&)X(6 z;_eJZ-g!|Om>qpfpdvZ~1FUz1;WeW+(Brtb7HA)9SzsMOc3TyU8k4AT;R2`z>@pSG zOJoim0t6*=$|W`9Xe009eOCm3aom%Vn=rliIY-cdWa!O$WhvOx5CAP~ukXf^v6nDN zF+7-J+ASo$H^B0bxhg#%o=zq8vuw$3sw9_<{s|LWkCiFRw2tdPD#g*?l4^c0D!vsg@o zA?Uzp-N5JL6YM1`v$rIxPU__yHi98ckCnYm%1nD$3Ty?+ynI`;(LXW3L}@k-=49KE zGy4GqOHJE!k^Jac()*otH(vaWMec7I(uwKl3t<%=Ed)0??eO7!DM7B((PV$-WJyk+ z#k7gilg|WeS(%s8;F`i;*Cc}beXTizH5_aL0xafl7qD>K6&rBVU8;<-vI4gK{%#S( z*Ia~$FW33F$n9#l?YyBa|0UoTwgWcbI{8$2-*cF1CYMY#G*yKv70hIoK+R;$3b-KF z6%8o-r7)zJ9i6{$cHmT&re?Y1?c@Ta!Xy#t8Qc26%xg@AvTRatub*_Kl(-#z%G~#X zefBiKiVFaqC=-%zkzT#xl^JW(P_a>K;#DWa|58&sFa!MKQR)wOIVdTX5Y8j%{a0|s zkk3W&&A`yPXC;3gv{U)Vwc#7ju1Htto)kvNjF0$@`dBPWGJ7+jQBu--13>AAZI^fE zylO}*fPPY}nd0|k?vCI1gxql0VS&uiO*)WN0-bcQgPaE<#;kDkU=(ne%%q!H#aRk6 zX5mb=c`yvkFObaCR$xC|@Kvf#Eu;oX0x$}=B|(z8FI$_65gQ>~3PAK9xT-&!0H^@K zRlXvcvg*EI&xjw5%`?s z`9PXMh7DySIOao(;js^LoRX|W&1(c<0F5+Q_?&;2V$_f2Mxt9RAPNk3pH#spv7Y*RVyzz$v@jheTn@xPKC9%-7Q!@m#UEcRVahPyt zn9%HVl8h3f;8^t*SRCbnOig5%eXjsd^Vy{(b9R~WlkR_~8Dc{Fs-4=kYo&W`L-1KZm(Z`Cd^WKgN0siDj0geh-$BlIF4C$Eks$s))nGAUGdL zYCvE)KNaM$=WR?k% z`eob6k`#;nSl1&V5sJH10{3`MLRlpUcKDF-OpUP4Kg0ur9*_RZE+MHG9)cxOC7G73 zH7&+;+5r@FoV4Vcd}79#D#^@x{^it+b0B>{X_m#ehR=w(9vg5==ENQ`B*|pP$Jte$ zN_b{YLKp-wH_|h6!qk#snuNBmgV%4dgFZ-|M}s7p5oEaiTyUp8Fd?dP_|3yIy}C`~ zrOXmv3O(73vpj3GqrSFgl<24lB2mfVEmc+aUas{lr z#%}Q4Y>27+T#CS%3f_CVRQ{$S&XGghxv%lhGb@?OZ%xwIB zROtf+7o#XknejK8C-Y|9TvGN|eZk|O%YP;Vmm8735hZ?oQn?yJh7Cbn(E=@F0Sx@r*8?&*bIh1c`@=NE%mInmFVJZ~8AXPXLa)YVW{)9{!_EW~rt zWGwbO>EYbEVuIGWirC4R4UXx0-N06RCzg1?E_8YDTRhdAYnp7vnI$Bi%)dYV{gz*D zy4sHMm?0$%Jv3Ti0gjgI;kI(4tfdHpU2|4|F(1?+J~MnLf&bCTKa>zCLsSJ-gIRB2hmqZBXNS{K>4llOQc2$y%2l{~<>kxCq3 zN=yE|gGigx%Nw2`y#(fD28B=BUFr)HJPPPp*OkAM{KgOXv&P}BpD#acLLrEgED)BA zM8$krfwO90r{qBeTV&at?DD_zQxinM7gXqfRGC7Tp4-Cz?hUtod!>50A=Rk{`aWqE${jALB2h=w{?Nsi|nF zY3cr_oS~-r-;bIKAgN{=ZttB`Pd zo07<&?e9Bk-fpUqi*63-Y`9lqX2YNZXacmDEPOB5Ovc^kumWLH6yVx5*Z7oU3K^>*;X*e)J5#R3%xOuuyjc4lf$H-Lzj> zO&3Im?R?q~=ob&FtR6`_PuX-DtqUZxggnno{6S`@lZjILb6&jSVFfbACo?2#+31ti z*6u9?vgds6RXE%gDzOB685CKJz0``ym~XKX`oU5BVywSbs1hA_6mKw8t-|wdKwPzL zchdLj43z+$CJ4$VHy3SaLGiPnSy1?by$ON@r|lfrm{Zj%+hESF-!A7Q42-Nn`f^0V z3B2wkYsnIG$UDbZoDr%I+|9<4d)`q`0|$1hhW|7_s@-L6mfJfn?zoo398V0;C~pg| zRaKAAQQ%=&i8@a^In_EV$%49-j{bwcO=?!(pQdw9pJR%nVJBCZhqLI^cZ~*AV_4%Z zD)3a;wwJqnw_I-#J)}zc;^Q;IqgoA4&M^Zwx7qtc(f4ZDh2YQ0c7BRhZdoxuK(*MZ zxm>^2X_xi~y^K_IzZ(-gTOL~>|Bg6(c*nb}ZS|^4T#>oa*g(WSe>7#>)dHO-DXuX2n-#Tf7hEkkUQid0o%j zS%ElX7yjhp@Z?d|BLs9|+SRrFzL$aX)UcE#LBs9#Uq1`&i?Js$*JWLxnXWcwgm&?+ z6c3lT%*pg0u0%dra6inj31)7obzn;8d{*4&K;ui1HBeT(kZ)8*-soxY&8OMjc>k3a zHV@s@phFuB6Wr}Y-=SM*o=Iyd$BEg1wr!X?|FE(z@ymqi`@9oKUkJH^0jQ6|i4$MM z-QI%Lib_Ab5-lGridbl2)7IT7k=@eXQkCI}I!s^OsNwv_JaB|InAVqY2^Jot(#|)c zrbOTTx@o}4x?@*nz9Nw`6;Y{q@|$MCrSXW^>zn_PeE}6!>`M^;eUHj5mu!<5l_o>- zR-;|s{ErG+hRr%UE1@xZ6Z$!iCYAn=9d|uS7m*#-r z4@^z>8H<}}W|5?09jo7;8Feiw6Jqfb|fn zkT?na_7d>z1#{KCx+kTayb|=Zj(F3|Pz&TySbmk?Pwyq2u0jvdVb_v0?co|aHw}h% zz8wZl_XceXdKW*ZpM3y>7fy6uu%@7m$ji8E(aXA zQV|o!reJ#F7rXjZ^;fnTYVXVRzH<+a-;G@RM?j$%%TgdUd!^*MP!g@x>}$KKW&i&RwVbrW|H8H8kHG z>x%#pb?maDP9BU1Xt+D|vkY*HF>NVTGY9h7Jd~|`3}yu~IEPAY{3+gM_DPF6g&5gY z37t2R>2j4atm>xQWmuH9f1z@nn%=+VkO}}woY9@j!juy$dx6NQ89d_rr=YG95Bk{| z&Sk4OJE3w{I9ZWF#GyT0v^CMu&oXl4_WQU$ZAY@Dy7}1xNiBn z(MdEmJ=yhUnNf_vwqSU?I=#Wz)*r?RHI6n|ENlDP{6VZ^1Bmb5q% zR!i*!w%Z>qN6Oj{w9L%&%J5s3qftUgKQ zdW5aQaw`P?BZ5mq+Uj$?vZW6BvSQD36lMesHCQFHYt+vWcac?X-$qw+#Lp#S*!n)*8Maq@XG3IXR3F}zHc^(I5=hnOLU4W9n5}kl^m4a4B))|`hDP1A8~#;3 zhd5^IgUalc?ndeVuI$;D`q;G_LQyo2@SRF!=G@8n+{AD6xO9Bs= zGkv@gsnfmsSC4wuZFY82%vZ0rytU{ubg(1t5xch#4)3X4*qiFMnU_*^4}o@{-BMQ2 zhAs=f%L6j*dFG19&pi?dOt%;{OPHsx-HNm98z*k2P@A###5d;Eb~6vKqV$a^{$Et= z$eUC`Ioc&cUo#zzOiqEU;CJ%O&1WC9(L$mtP6&Oq7uR0qs4^XRIZ-88zD(j&Q(P7P z<+7LM{fbItse3v1$*WnZK05R8z@60cOvjKthgJJc4zxbgyS0HGA-sTl59}5H8X0JE zZ?8CdTXW~^C(Ui8WoL+8#%e!UD#=EyfE*G1V(lV#QrP#&FM500cP?aQ(>si}UtN^g zKWlX~lUN>)O!wP=ZxaX6WAvf@^sz}+)5!lPGK+6bRD^uB=|&IgB);PADt6*56;}ko zRhYU5lm29SX(*&Wow*xzbN~|VVOmkPHyv~gC5|bgcsFp1PlAT-o|dKNFvt$v@UBue zrc?QGRlaHGNFtw+C1hF3@}>gryHl4^xX(4e#-NetcoX%&_O};ATWX7Ud*dueE;mRq=05%JX(Z{P@~vI?XvFSiySf z-|&0yef?Dh@~Z*#_ay#41%i@I(}C^lH(_$*xSaLlW>Z$4^L>8Rd+LqP3!umsX5Vsi zskB1-1*536x-}BarYlrN$Itk7DC66s9(Cpce@0~;z!Mf zYU?$maIVSchE}5)ki6b&-jKi2x0wCDl{(y}dqvx3d|mqNt&j#&z;z$)^qa!oK}#K< z)PEkQRSJCN+$+r&RvKr*>>seWEksf;=aPJq3Hn3o(KCOKS!)!ilO{y~U(sL7Ai!09 zwAzSsgvtiyg~x(CZE*`OOt@60otN!N56k9@TQ}0v7IgVu3D@&mm|HzUZ0TmC^yX2s-iY@D{OA&%8}F7xP~xp|#} zZBt7~q8ey)49xUYZQdqmk@xv*{;U2F@4seBxF`1dML`yN;_9SDHpKm_Ng>M3ijt%3 z&p4PGH^OS1J;zr%l}~Dtb-|-KrShL6XbN1|SpXR(6+A-`<*g@7 zpditW{dZ(l?L*VI?G;hIAlm+og}Brx?D$8sa&KcP;YqM>A+(}5OR1$+KsZ(v1QdcN zR1~*`-FWwnW_V%#iQ579tGN6(oEGWOtGVl2-Sa(~4FS(uk1%z# zf0T@cP1&FPpkcgS@?}kUEp-0}Rk?}t#tcLA?BkQ)=edmC;kl2w1-lJmwBMA!bFSMF&iak=?{vUf*e;}|^oy?MAB=lMUtAE%D4w&aFxs?RkRA6z> zZNh&XPdZh0%_w8_djD@sD4kl&NEJE%h2hP)B-c`jnWuFd*A90Y#+^glUUQ;pw;#jw zyl}YEVLao=x%}$#gq^;UR5=aVQ}eNeqO%Il=xd+-POZx z%hfEO1s2B*sJDPRkJfCb(=9K2Ht2jEYJ&x~jTUl@6Q zZY4HysLT-Pc*S)vrGlnDqhvNF_6~!=%B@QO9Uc0j%S{Jiv!@uNjb)EM@$H$`@i~EB zf(EPGs$X<6W8)S>&fBkF=Y*bi05V&`Eoq92tdm}Rw6{5BLV*n?u3j=}L8W2yjk0nR z3Id>yRH~<^75QB1AxoHP77|9n2~pNMLZ))qEu-p6cA9>hjI=3tW_HI5FcjSaUQ2REYQ3gXFOLsE*)S z?|L+-ug>|nwX#a6_f!AL2%^i7y(Y)4P$Th?n-E!PY@HqSYDu5j4r8~#ys7e%x(q!% z?oqHNY@{cAbFQlZLC{K@f8B7nUwh@n{gs+hVsP2pCd2x}l_M*@r!%z+W_DqgSl;Ik zRk;}>gd6l00=}BprbHhVgFPJ80)u_6N^e~sUW?3&1U|ssqT%6TQ}+sIyaxn!d_()& z^N;`zJ2qyy)(YuOnOTEY!^RiJ4!cj?%&?TwczVK+14{Edp3TE}nu`3~_h zJFz}7>K_J3Mn26|9PbreSBIti7SOJ`N;pAf9`!@|38uXDax`Qj&8KJgJYOEHi8V0B zKjHey?;UrofB5`^ZM3(M4M$h`{gGG40VO6Jg3&iwmw)VvM%n$1xr8V_V0S&u&?dz? z9?6wCTAs+#r8fx$AD;zO-mcTTB0|^Vtj|{4eP4(GCo^5u){jt&U_TZ66rG8b5Zv5c z(|DK%YJfpt@79g%B-Ez&XNNcXCl{wl(^pOS;s}?EG%0q}cf@Ay|6b%SL#!>fu(`hL zFc1(pRya+@^C5hcXq%LNR$Nf=f$kJaXk{igtzIZ=zNR-5Nm=O(=P!s=;18@WPxzU; zf^+aX@L3G{EJQf{>RHYeCN0}_Q1^(;y8ynHZSg&}F(_&g(JY~az(;_bc`RMuWnDi? zm3%CvNXIxhX;uf1>Zom^>PJHA&L2vYub zi!F#Mxh8>hITL@G@zUX*u1IY5z~|HT@e~%0Zs$)X8uq-c`aO>8&fONJozCPoDedEsPHSc=X%n(dWMIuT+jM-K=^)cX|V?)B}3$ zo~_({1z6_{)=9#=L1`mfSND$&D7lpa1pA{2EB?1<-Dj`6f*5=f7U1W zfeDG)%j)m=DUr=+rX6ld;0Z{IE4*7_i4jQu&S~tZ&&iorFz$PwBQ@x)P6lJXpQ@Ls zf3F4&9Rnt)7B*PE}+ox z2i}?2#~#<6!7K$&tPC)TjHsS>GvPdJGS>U(nW5YNICb<-Y!dChHZia}@?;CTmZCM) z#dzw!6_hS;>!)EpD&x8i+xrE*eNB6F-V?FtQA8bV8f5ak>KS^F zGsiq2B`ld>i3)*%L%JHvxn~;2dALpJ@eV#7%nkgWznQ#8nXZ=3?vokXi&nXo9R)AA z_9pI6S7?WenP9;yW0dY~_muukI7<%4-dOyM1{*c6yA2D621@j1k91Zq zkX}ypHr2@W7}l^uvEpZe)T_|DQtaR8R9@JlpE?~8A4tF_5ne}D9)}L37q{;=)P<#l zC9DN+J2GkNX6ka+b02@Q3C?>iNTTU&T$OCaU8!>_7cs_))1d8 zpR0oUBeZ<4OC9VZK2-ll^||LdpZxO=rRZ5CLxvqE=+D==ctxxM? zie;+KEx-jcdo9R-snMz^@av9I{=d^iBwi1G^Pw++_j!37bs6Xu@4>UF>Y?DyI@}w6 zvAe^~>~J4e%$`!Fs&2zO^igsa*6V>_AVFh6>G*~^F-el;@0Pt z86x~sa_Gih$1^o`aV@}CQzl4D_TXW-^62O%OEighemaC0)cm@gW2fM?s=jtSfvv8R zU8&~1T?z%izI~6~aF#D)&2ZG2?|J7_{HDW+@IbGeQsDCp;CHp}gFel5&pEs*soASw zCy$yUy&>7LIa(v~uHBoZ#X4D{v`-}mpZ0#lt_>bKuYFLt^Pu+0jjM3Dj|IxHGw|+E zS3pc`i<|1Fo7Gd3NiYrrqv^F()>i5ym{N*RRQc+-76dnJwb*9Yh6pZ-B#0*Knem6C z9?BDQ#;+k(V1w#nUJ{EXu6f_xywA8C3=V(rHZO~ie>K^HgdXgV0@f8aK(s{Wf~RtG&sP-;n%Nw-&7n~13rCa z`Ubt?7F~|+edV7kRWZ-w_^?f#^e#S6Y)htnZjD5Ir(g2qfS~L!;>!*t!?ABee?(5q z>u>kSc;&ZkYIrQhpT&%>-4%L@?Wi7ZX2CF`@FXkK)-5e21vqQO2G5HT^PqN<2S43I zPQ2#VOgZCg+tAu!@2lbGnza-<9Tn%-cO0AdE+h*%lJZ}sUzqAg5^u9z%HdtP4zzq` z#!y<)igt-g?OUKIHMCNQ@D^3BVzl3ovLMhzO}*`g{nPi7yePi~Q{SO?eo_3;fv(pM zIkJJCmz>%!XA3WuXns&*shfCt@Yu*zzIJmkJ<~Vk%)62)y5&M%98&di4e1=s;e=1^ z1K9y321`F^f4{lpjOcQrhIl8@dkD=y9i?XJYx_nI9~Zj?hF_)HtD{-hiXu`55@prD zsZz^~KZU(x=-eL6$o7T@z%5{_g16h8H5h5mOGnITF*h6goi8MU;p$81S=pO%^Ye_C zQt>(SFaM)TEDs&dKQfs9ZK`;a_2IhInsQ+V;}ocpSww5bshaIdb<7wtVpG~raG zS<^-cck?Az!JAd=xaLAGXH(q&K^udv-RNk(i(ca~K>K1l+|vGX6q$(Wr3Q>CA13J= z#hG^qaD3b+KJU?BT;UT+(FH6r+24&UFo{Zz%$D~Y1sPyRTW;rY56m2x=nlRg(4nRh z5m$eOK~iUJ@hX%>%3p~szav(XU^M*4wt*?%KCfg9%JA-Xtfk2YjW(Gx&CTItH?Xxl z`b$NI%nD*-&_Eny>1mgFi5Ju}zTIXRdl=vxJr^cg6iS7>v89-+LZmZfdT(CFqC;7t0MmT3Xf+zJY+!NkAD&R@msFTL&g5#I9?UrkyS zVUT0}ZJNI176)hMeU!8uv7p}5oXX;7r^qcfo%JQgso#oi+FZWD8~lRq+)8v0`~3ai z7W0#08HTU)aOz!jp|$;w zDkig!?oaR?>z}48Zjs0XapDuI=5IM`ckY>}XU2BgXmF;VsdTfm#4BiDDP^!d)9GB| z^)@SR8F|)KnP1ZN(N$}osyp%X^Oy&w``Fjrmk^;S-*4+u^Y^45CM?#|Lgq8SYLw1z zw%0UHd4;?ECUbgCxL3+Im_wy)li~>Fn)E_-XWym@Iz}#^|d7?H}_~z{+O}GqvmQ%3v@}OtsUj8*5+{lEbMh5RF-44*W!>y!a^^ul$;_ zjo6n0H3wXx(0A4EQaxL-k9^PE+5Oj|hPUU<(NK*4Ut)SG3Gyx!5R(BQv})F*zJym_ z7e&JQt@Sgqv}aLr&utoOcq^48+~%DPwcT6b$8nrIRoK4DkE}r>0vHZ4x)cO|mWi;Z z3}RyNWQ4abLerG{DDd3R=Uk-rwN5_4%_-oT>;u=}(cP;;`kV|&fcIJCKAK3ygUlzV z5V0hBHHonObz@ZT2NJ!$3@r$a5q3@)WoL?e-Q6H@wDm2u`_O7y@Tyw1359Nqa zA!|rkJ2ygqW_YVHspxCK`oq zGUjDhTbYM+{aFdW32jLn=c|;|z>Nmzr$<56TWrbLvc(*a6c&%zU4Tn#_>o4W*MUFb zs_$sedo0`X$@B4;nXC30eDuoR;XYMMPrX#BeI%a;gJkZSj=%J472ujSC`{)IsmyBN z8lp2VhdJO6X!cp6Q&#Xw-2K6sj!2~`0gyT{ zAO;a&BqT&;zS^kp%5#&pU-RpD#G1P#;o+RuN>Z%*sML&qRKyQe=MJF{JEeDdb3VDc zBZbGl&EGr8pkDu%fM6u9d?wcYg=F|SG|hDK@(JLcyx%ylFmpS_3!=(r(=w0FegK~b z1Nq2T;3?o|E2~q9y6x=*|-uES95#a8FLbEmCTOZq2B&M)9}GD zQb+mPXw|Fpm(Bt+h58SJ)Ij-@Z*%>wODZVc&&#~;wPJV{l$Vuj=Y2Z;EZ06vm3}2= zjeD2#RLQiSmD%#u{FB}Z%b~^l%*wf?y`r~nHPy zFn1RGpw^wfdY0$A+}J5;Rb@~OZ(z;^;wwnpg*ln@p%;^s*22pVa~r0s*$1aX=SOhH zr!x9Xu@bd=YUj1l@1>L~t%akOILggYIjicYQ`!Rp9qNM!hJ)&9wW@Cwdh)(|^1<2n zyIr>e9XX~_`7E3Hlgq7j&1*|PNN6G7i9Et(tjda4m+=0UxLai!)G;OVY2^|1v9PHV z>YYQ#b3w8Wk-GzFUSFrJ%BkJ@D@DB3_FAO1{ySg;fx4t7c zD)c0P=w1x|<0r95cJT;Ea`yz-5rdK_Y%wGsn$^hr za$uC%1bfndo#m4E@=7guD<8}^g&55TXY|+&Cq;D{Nb^I6d=Xz2E;=lG@2jViN>>Dx z^_f?d*>A!dAe-#`jrq5QpICnS&D{{BdF#3`2Kx3~qNLQkAo|}R3G=jmWhV#0(ct=$ zJLrkuqxrjwq;CfJXB3C-qglSJLQH+n?c&BA-Hq}ik&l~bRcgVNd|UuG;HbaZ%A z!?kxWr}0j|BVDzQ9NYLj?^@giIC?(}awf6Y!WK_WCd2qD=H5}60mA-G%)FOKLuVLjzi(;Ety??TWqu#OkQwfu-K^|4T z$4pm)-FbHp!WMfmX~UKLvENi8clxxNE-vNJDKE-hs@by#dFY!xFCT}YD%>mUU$g{& z*YVyQ9+ZR^_(%KK2RjDdr_aj1+eF9t;_fHjnYf86XV0$!sN0n>l-=<(FVzceX5d6! z2LSkQ9AFh1z9n>;-x%6rGlAiWx>yxtE9lt!w(s0lqFgcVpPB8AS(yB8T?*-lI-1+= zjrhE4nB=!@6+Z+wS&pf^_(0VdK0<}|>QRqI6e!fhJw>RdS_;>^36rWUcij8Q0J|G{ z9#=-S0lsf|+op##e~a3aX&YJcZ;f4NF{G&cv+@#S11+!c!nMMoz`Kl?bc%md*cXDu zqQ?Tp0Ci~QLziuDo24K;<6|pjuDbk>eO4afUpO!#lj(&L;menSm>7($=CWk0%hDxS(LxEyp ziEqzasD3(tlKd=k(3(+tY4zN}2&Va_<&RwKA9w`!nR0Bt~$zg-MmS&?q~K(mBVzWITlKt$?W^o>rmHY@sOA%PCV zNNfa{<%QY44#7ED(E7~Ka^9ZUiTYIConA#m(hS=gM8pmho!2pf}JC?&rQc=p? zzfgkQpit`jm^B~;yGr5#um?LU1UsR2WMXYL0e=2s&^8xU-`kXFS5jTy+3HqgJ#=c% z51DF^T2-$vCJO6a)rTomQ0ba4Xb6f#6u+W;#0HH34IiQL01l2zH>^_}D?<1&Jl%&5 zzE|!Ppn!^fo?z803n5dn$ulIDdkB!Vysp16jZ(owuly0w=$p~Iu9h$fe1^>D?Z6eZ zVJf+U-B@XLTtFm7-Q$UJ#To3cGKOYkQ%^CfiFwA{dY3i9ld$a@v%XDP6Y5G)l^ZV( zl?RyAY4>SDD@S17l+!R^%>c!+Ub=%~+(N>~l^y&`@Zqq>Sx5jkXFlelsam4fJ|NVv z>9^aAE$Za`MIBRC*3Z9~ggOLT{ckLCN>o0&{6xqy!*An=RJN2WN4SKxpa!mDi9a29y5FlP4iO;MX z0L%j|p-T{TM%*D#GDDXM?L&xS&_OqZQL&g$P|hTQY{C6XTR?-$oYu2Usb7 z!&yUV+1djL^JcHCkhc|)d80@b>SL--vgdpqIw*w-4ujGM71YK*Rx3%nqWdLJ{{Scf z(iXc#c2Mgb9h<`@Zl-2bANWFb7hkzozyn8NF7X<~bVMc>!~(Ppwn3NPsFOlP{g!7j z)^4V0XznvHsj4_Mhf)aHeHf>rX0y2mM}0)vcB^I#tfeLHI3uw)p0V0%>dYBKOj-u; zAYIpjq=W`n`h|kWulp+WXlBx_lSmh!vW75l_Du`9hzc$0Vp%^hP|%QUatea9FmWf1 zAQsTuG&z(MnoLvw04-_NswEf$#_4xvUK$*zQvO5*Zvhg4sgz)jiVl56IQ>a0lZer2 zF|B3(%di+5uf5m;y)@6qG3XV!A4DKh*=tV(z%p?{^ZZz|E6_RSW(%4cHb1c}!j*Kx z+4Cs!6Et2sc_T~a0XSdUj-imk#=lr4nnvxz=*q-{D_R065M60bdGQJh-n*ym%(rX) zlPKY6e$F5}5Kv|m0{Gw$UWf}Omwnpa3u1wG7;BGH79o#J@iGY4Rpf}$*@E5uE;JcW zv3HfpC~BQ=$TJbJoYo#<7NDkguSd}t640rv_+K*1m`Mm(b4|Oz1STM~IEbZ7sn@hu z>K++H4pqVa&0bhQn&9AGBC6IvUasEaR~1)k ziM|IALJ*i$3)~EMlo)jJv~(c)fE4BkF!K~*VA7iXsfsI{InQ&Liw%ChpMba$tQoT_ z^_OI{+yz~E9-%`yX;fZ5=>?%;Sx+eFaTn2h6AH+rUEfGsd=BY!1)2seED0Wz^IGw} z!>eQF?<$Mq7ao9IFW`Mf;29FUIA>Hfx=`KxP@+av840TD#MCpFLuJ6I7LwFIA}eFFC%Rn{fND;qJWF!T4TAOSN6ab<2PmQ6 z>qr_mH@wVno5nWr#lqZlH)Hz(3fQrJlw8}nr^k|8y~P~dFBfxGU9nt6-dxF#u$lh= z)Z!$x$bmtLq1a1NX6M&gRCTxu&FPCF* zpCUn-I5C9uxjtg#4~dTHLiR|xZ3DPrcBSQtK({-;;T>R*G$83Ib9x&~%vWiWj2-Pm zfkP~r1YNP~ypRXNFYGsyTN^7WxQvd7ejnj8 z4}wb>ExcuRJwY^TbC-%Ud{OUgB`k+q=8mM8VbZ(Ez!oEt8N2L8zpWkuGm0f!gAw=J zLBFcZ_v!-eEhzT4OvnC2@-Zo@>EwdkHXyUG@jC%#2<>9|hAnAvpSVQmw%M7Lk%kQ8 zTr+X#LKg@KAljX?E;6AtQ#w$TthYex9*n1$R_F&oCeoTO0JfBZ^4GJxt<*!vI zY%EyapICr}Hac>13AbVkDWkXNGqaErL=FO=jj=@a^%!77jAww!DtQ|Sn{P8HXldN; zuLo!pMNI`&^Ahi=e4O(g13|Wm`(H6sY*+`?N+Nz%RO+IrBUDgy{w`vz#09#qOp=mK zGcU|h^BR`zI+bs>iW8_wvBLD)p~&gl<-D-4_Qww=xF|_S!?&f$rREmf6{9 zh0>3yWu1R6!N<(a5`-2ydxZ)Bx=ZuVP_yi^^jAlr02 z#Kio@SNbDkwVfYRmc_=C<{SNDT!LQrM5f4fH0#f(OKp5@4_0@Y7{Y{zU6mq7>0 zVIt*%AU6|d@+K(TBVB6o2;8q6L0nRz8dqiu+R%A;0!#z6V0bOf?8+1;Z=U zMzRf1`_{wH`IXeWVMcjM>Vy>O!x+R5YEGHGgjwDa*$%`g)HL#)XE6hz4MB-;1P2p$ zpeWPk8u0=J!XbfeEJfD>wnN<1Fz7hU-li?OJ>%vGUu_Q3wWKx5jhO>or3-7LHJO2S z+ZhoRoOX|S76{g6h}>1fkk71g>RemD@Bq)0EzmW}ABujFFM*%@QO%3!J|)K)5ClOn zt*+5&ZzDMXHR$GR1{HqZ3bJ8iXzmh&_=8qrNc@Qe+0RaZSys_jo1LxXdNeUAA!!r3Jk; z5G&H&=)4fh>=g!eFrT0x-cl8Yth0!Q=eB7q!_r&~2PA)_CcB>Dgac$NDQGkmqE-tf zLCza#>_CtuYO_RC?hG0`!d3;O39b=dKp^1#TpeYvP(IhV0ab<;pG+JHy(s8>q$V2;T=QU%|c7;JwO3ucUEFZ zRwrC|<_tOuklzqCqJo}?)7%>|DaTk?vAZc{6Z;IQENOJ+ErprImOkI9eE`6Nepl`q zU=`8~IxFJ|&hQh_c$RjBDCmDKV4}b(H zS6)%Z06=&5Qm#mVi&rMbmmbs&8e68?51Dx#*60y;Y1EJNMI)B8tu5XxsE`EF4O;Zt z1|vOVhjuB&U@NKIg_~4utJQNb!7;7H6?J@|E3H~-xhy7uoiDN`trY-m_U3l0K+^JY zEa(B1=s1aYqStNx{mKo*IkKJQh$4cUD~~MRWEdt2^$JqyG;J8$t}Ge`(qdL&=X*;Ax-YIjH|4N{`z$3ab@k#)sg94#bGGX;(i*5-;Bhv?Z6lr*V?Kj%lMckWx=^^dYL{0caBjd=Sm8?` z1T(?uoI>xmE17UwQ>?990d;)gV-(QbEj2kupb%I#ok?{9-ehDoVk|O3_I6@e(w?!c z?YUWy_{Y$IVemJ zpvX53y=d5_eFu6NJNhTUMsRSIRhQWn&%Gb{04SS(*iJIGM?1nYn4O9pF#xaI!Zy~% zGaTs%9SK4nz$tcUB#P113|WXHYl5aCf{(ij)~GHCIvX5vOz6}{C>LOQkLl)G6nbJe zr>l*QUqE#7BizfL5k#d>CuDQ zg1l)kdW!G`xu&0g5y(-00Rc{9=2SxRx~{EP&|`2z5jq;v;=M|v2Te;rpyf*7iKD4m zTT6Ok6G2`dj+o4Xh6vl7_!ed_0e`?Ara@_H_C6&y6(-4ihk74V2s4L4x1lU(WVJ?< zT=P-3IRz-S&EFLSV8%Z9nD|H=$kz&(IMc)ntk6?V@M4HYnhxK0nge>JJN(N8H@!9V znGIYQlq$>kK{7H|u5(RM6ueTFLW-neICPFff zH_zSWPVQy7;RY8ax|YQZ!<7_H{-C^y=W5>M8Yq)&GtUtKObu%Gd8uI47G4?e8Fq~& zeAw-8RM;J5%RnkAkF_qNxH`CDeSNw(^(m~JiOZw_U@J0Ryy*@DRbVsXW+mUkH0Ud= z?v7<>Yv@Y?K^MES6}wfU+(>IFU*@q5nOCwKAzNS`)*$ZH_DhV1O3Q6yKeWj34knKF z64P_Dw8z8K;%H+b{{VC)DX4CQmeoVmkg?-ZHRsA5QK zKxuIe44q2h zC=-$t2{kkD8m|q5gA=>E8p7yfd~)v0%9mY;*NTGGi6#z*LNRy~c7v=Mha2NG8^hfL z74BOVg?q8OAobuAAa)@`q!|cqw8+wbf*RKZ1jhVOanjxeaC;J^m2!j+i!g2V24YQx zCLIX^vXg9ggLFFMF2l3`00d^;GXX+Ic`or(5ZUmgu+*M`=ZRkscTF&PL3EJG)e$=3 zXac1{3CcHr|mT>XR1lcxR%b}H^ecCm$>sk3S$jaOb9?$L|3e8gmkqO}(Q}(5ktgUeP zdrLOOLtdV0AkH)^K=Tj?%FH#%<|_IcS^E3DYM0Qwo=*e?5UVx$@d>aFsQvyx+1N^R zK8ctNKuc#nB@TlHr4AvD0EcEil@^dYvGe8t;M(>0aUH$B+Pp(W8Zw$p8PczYjwUWU z8nPN2mM@t^+=NH1IS;sWl#gOw4qccO53s=%>m68qIH)3~TiaiA9$KE~*73>IIu^je zn3;qoqvXKoG*$$T*c?Iu3kb&0V$GY<$j=YeRoNWvMVxt#k7zV4(|(K4C6MEmI-QJV1_>OL1Qj z3amD1Sy&)W&ca~R>uIlmPHcuDRAf|IiHbBRU*2W#5hx{7)U0y_;8v65-NLArI2mneApFx&T7de{{6bc<3Ifa1LoeKO!wJ~l9W?oLQqSm`% zh`2%k>bIVqVgt1|R`UxL!omLloXWXjvx|T|om}6D&{4Xh>k+Yr9g*OCL{)9=*g!n^ zC@qwG;E%QwUhx1MR)G7wTBTqXT|MKfYBwzId4LT`Q)A>Ypa2%??%3p9E~n}W1+fiU z4N)I*)ozsyj_;|ZnA)!*1dEq-w)tko#o()g>ZEU`J02OSR?{Ll<{<~?7_pAlj3hzA zurKHFDuMv!n|bjS+MkHrJA@Xn?9+;7bO3bHDybF}2m>aJ;yQe4;vO?LkMxP0I%hCP zuW2>VNfUW_(u@l3fWe{~UK#$Q?qbowvRKtZ0686KT@2|kU`aC*R%2TL{{UG-LF}1yknRlT z7Q5A$lWKMW1A47;!A#~M0=*h$80V+~sdgiD-R2~L%I}m=a>BGL(-4QHO{U%Xs1^Ak z`Y{!KM_y+70$4y|u>du1m=mXz{{SMDQc}&K-WZt|KyHgjs)e&KYKLJXh+K+D^8OOr1>`WWxtHr%9@)hq1VJJTmb?tU*gIV05aq znwg{m^cBN3_xCL8Z?4WE2x2WjPR9|;8=BIFflAh;@hw9)4y3g+TmFrsmDxhFhiROB zAJBc)5wdg*SMdTA*j;Gm0Vyu680?qWS5rmzh5`Z=lQNVRn=r44($vuDNEb8I(A=&e zM5pB_36;a~C{|`yufJ1NEN<1;K0h&i5EpB2Fs7JONc;PkmJ8DYj{RYDBDXXj9;H@k zc^YBj2)fG}X8S%#fOIc?x$zikQp8f-DdOb~k=0;l=@!_XGz080MG2w>iVjWVM|QFD zB}Pu2rPMHG%U|pa3r#2t9nG>ty|XEjS8)y4)_Y4;F>0)?SS8%Xty8z%qeiRCk=iIF zW0-+>NU%8rEDe|8Q~^NR32*lhRfQW%i_yvd09bq}7eL9=(>6ob zuiwPNcyUS1NwOi37ox@OiB|&ds~yi?qQGZ@rc&ktzfUkV#=*b53Tw)W{*BCw6;7iZ zc!n*|YB<8^*UTv8S2Y2)QS}bM(4x-psw*P!s`^GCkZyV=pvq+Xj{gAcCn9=dMK@&l zhT7S|sym!U7^NPz?Bby52U9;-gfiNu;HVHZDsaC2!zff14!CY{0flbNuiJ`@s!?mgwT4hEeoZ3Q(dy-d>Xge%w{D&ynRQLzt9SX0!8Wv3yv0yv6wy@Ynv5z`D74t% zW>+h1%<~G=0KI9f{{Yf7Qa6gRnSyjBLGal`J#E!?p244n&L&)1I>$|Soj*+elL{JQ z4f^*23#qaS-+&{FGQj*nR|ZTLC2!VHxDV6GU`_ zCZ_XTM=$DWD;z5zKq^$MWh|{|Xp>N4?yvAhT9E6+M$FXHbRAJZQ);Ab(I%s(oJBjR z7%dh4hpd%FojRD>#26k>Y^VS=A*GU4Wlo9SY(W+`cFbnu6D5uP(vVv1p*JKdrIdG( z?ePja-+EA1J0Tqcoih~~G&?2zMnHG+(*`Snc5fnwbi$I;Lnn|x#^R6%L&zh(gQ)_H zm{{yL>kMLVyiD&}W|}ah>w3bSYuPHaSTHsa3gDml7*}cZ;hf+DTS+Iv+Z`0Xkre61 zuY!>-u5&uV@e80sY1Feif)xQ;IcE?S>ygapWxJB^oK_CCSAs2S?i0NfGgN6XWsK%K znqllh*9U_aW!ONApL;_Ex4Z=DR-l5QQ~v-+Li!8AZ?OSDIxp@D1gbIEOQ?oYTk#4P zG4+@)z#@)AWCC*Sxl98=f)Pa9UTh`iI5B`HW3qbO{VOAH*;wTCly13#QB+A2Y z68tq80dD>-V9~CaQQyQ}6b`5Gj?tQ`b8IU0BY0@%%&dA{?v5csR4WabJ24xmTWgfQ zTOYz++@q^^XYSE-@2)HDE@I9IW&NmC1iGVBmRagCc~lJ4I-U~29yi2hmOwQc&$2Y8 zSp=Y!-ElEMAft0f%QF^vL$JA`H&DUpm)d6R9@mgP5q9)M`>U;kHl7Mc- zstUt87>8OpZ9O_@zi<&+Ua$T|gfX|Y^YIOQl+%6w7u2jNkP5oTe6abfbYJNWl)Xj3 zebQgt506Eb7olMXt~pFm~;RB85B|j9a<7gc=bC z+1egx9*F98TlWTdDJ-@JKo4*oWo)AsJ70QzdV@5iq5zaBWXs#adyJP$S+W^+KRC-A~NjBcj1UuSgF@;?<4XnqrVNojO3;%f*X4=mSd_ z{{WNlF3g6#kZP`h8d~cjjEzQDb*6xIm{nOVvLMWBLrX%SDqS&oqY&4AFA2-&U`eAw zO7B52+99NORx>Rk8nZZdZ>)dMO%h%##z0zTn1mYethfx>dXBnV@e8t7er8Si5Qu3E znL=b6ogf=Sr=kti{s>i*VVH^q%q>=SA{+P}2jGSnmKaIGul5p(v*|75hzC6@-3y_L z(5>v75bKYL(Q7aOEx{P>)+In;7=h{rt3abH4P86DGVyU3wKtJjhUDPU2xRREKsTfp z`$Rgtr6vSpsZ41qb>S9%6TZHr)50_;83TD$j6#rI)AWuqwkD`2ly9{!)`;{_WCVZ4 z4C`kdB14e|RtI)zig!vBBGN-_*vvqw>blIyyMzGzNI{~*Vww^9Nq3v7E1Sgbgi+}V zo{<-NOaVD1*#1)yMqVRU0~cft5MA#xN<+;p@ViA(uni22P_I;7AxNn^V%x#SHgb)0 z9^Ay0+$eEgAmYqjW&DzYtTQms9aV#(Tt%9Cu?Cllk#P_^nbz2WOah>4&%Oa{C>8}^ zB+~-+R|Kx&WsCFg)KFO-g}>GJ1DK$tc0pMUD0J5kuW$i0vu1n4p?4S#(txP~k2d|d zElG=v*B)h^9W6@FW>GbU8!7x@ouxOeoxUMawH|Bj$~zqe7=gJB8PWbrDBL=$j~=6H zR}ub5)>Wt#n0JO$%ESe|(DGuu!~JSD7AJGzEL*99F1}26 zfq;QJqNA7GOAA8>>V%mYNu?2w+oT=0+>}YHrJYrnt^U%U+X$SPFK^jT#=+u1Or{I;xZS} z(sAJWOYvls*(e@QxkVDjAi4BRwg@FwUKgaPO>TRqp=J}m&VTz%SV_)51Md+FvdP~0x~Gwuoo zuuYx)L|BlerCoM|2p}{t+10Kka4)!_RJvh}CZ=;<515iOr0jQsF{Ws^zaMmu@Tg50 zF4l-}6wMa()+{utGlhL188M6n5|Ww`$5&`7rF#VXb0O7Om_LvO&0gnD^97r3pzHF* z7bWEt3sUP2zTqqyZ0#zax@L*j7N8gAv*kr)VM$4pb&$Yf-{BYs$Dsqn#FxJ}Tp6262dGW*^FS8Ngne`s*N-xm z(a?^_7n!^AFn!ZR64++q4w&kL!S17WTV_t;fa+gaNs-PrW@?rhoN64P^bJ7;ZG(lQ zQjQIon^T-G{s<-jg$Ggx)(Mn(>h*XfIT+mJQWRR!oeZPefMQfw!le@U zg9sD{M4&)3b^?FE2v|XJuT~~v?y0JznY1IrQCD!F9UrtU^)n7l7Y4XGAY>4!L1Cf} zl(ao*)zTHwj|kbou)0^&mbi>;?G49`(TjsSx~3`@>&?7A;>=QMg4 zt|_xAtq-(A5OfsN{;Df&Qq?xa>9&zkwcMIL&FLP60+iyZ?5F~3WdM_p!g!*`$;?+o zH`1NG!Obej?)doiG53tNg-Q;#`;N^|a4&7$Eq!SW+z{XPOuphn8+DIu_I7j_k#t?UJe&>zNJ*g4_<*1xGd7CeQc`Bqa+t6NtK;Sqb!xcp77HwW;NL7+G(cpbY>dxzYJXE|U-38OU%)l3`W?hm)W*c-MQ6o4SmGrn0 z6xbFA%x)UsE2H&>z%9$Vdp_ey%w($_p61Nw7`i!$kXoTD52P_vFzl~x*A!D|#(?b& zlT0sT+?k|oD9?A)40q!?_KafeyL9GKW$fzj_jy@f^|oj|qyX>}bSRg|`j@~O-&V)w zF1u`__pBB)4IWPtm0syKz{|YKoctEgxTC;bVl<#-2VY5`uNLga;}+0s+3_+~C}`*I zB85j3nPlw?usTR^Y5xF&V{It8o?~?A(7|_?LRmm=YT%N=pujGcH6YWe8vOKa$X>7m z1FiE7dabfGjW@NU68B=qc}=7s&}?xOcrtvhCg|LZ8buPFAr@$x#4dys>Vj7GQ?x4U z8%)lihp5QE%M-{6c1EZQHdG>6cVb8-=LM~J4$+jCG+B`@+@rc}2BcKsMP`o(qhxBu z6*N>c8I0=U05m<&oq(;NB$C^Fur}N2Ltz_ln7!QH3mOx$W@vVisgBIcT#7?1Mg}DT zi)uzYnxdWuFgnMCRxzRdLOduHHXzcg)^aDL!Ptv_Iq%G@;wl(k<`T;Tc&y;=g1m#d z{{X`nH4e#XwWe&)`5=r0D!4skg{mUvtjFMsq;m(<NiWc2SlDU!t z1zZ!T9;7LH$hA|v&_`6iQ4|T|WGd)xpX*Qj2W%^7L6FuVSm?WEG6i;pNRk3$fsF_b z0@i_S;$YppP0e0sP+B#Zo9i6lQxJRPE5#GWyIbju)nS@6rY#!if8wdvmWMM;Ft~pJ zijq>f+(W7f%vdnYlr}#wvCa6#Pz`jV#U`!GlwgdtnnL6#2XJ-9MY`ezu0%Q$ClI=Z zm{{agw`AtUi(-G-ATS0OXsRpSlTAzXo*21TF)Tc|ANve~UEE(J%|O9?sV_lwb#X^o zk&i=dD=jv2i{sqvsYciG`in0_bNPM5&_j;SIgQW^^;D+TR#8hk%T>6%1$6iOya_=; z*rT6wCM#VAI}cIN8w@SaxLaaX+TwTnv~tPV-TSd_3ffa%&oM4-P5%JQE>|S|Ks3?8 zv(z<1VXJYl0-df}hq=+-HEQUwmzag6D@~ONWoBA%GYG;6uODt81tE(3pSsEm!s-=F z67F^v;uc`u4AeM-=BHJGYWPc4AhwTyb4D7#z3#_9h+UJTl&>+l2JNSIDHD<@xbHNV zmWoC9_Kdm9Js{RR7v?u;oRb}hqgMrmV!jYFQiz$q!G_dxjR9`RT*T4WfID&@ahr?* z8tNml69;`oV@F*4Mvn&4w{>@5Y&u%$g%4PVL5AvqdK|Lc2Ezpia6}}Q-d^d{^ zQ60H4Or$RG=kAdJyuBfOpf?5^2~K=Vyv27uVi<*qv28j&(()n+8&$h&7*|tQRDpyk zch~MB-XX#j=fM<1YOIurXjLorT`>j-HCY$-p}d-*pFBDyLjp5%1Gyh!RjCU4V@3L? zONN5r{{V1nwkp8bI`x-zfA~`0OX_>j9BzICJkGB&y3#vndT4KAP4xy^Cdux^&5GzF@lV29=C{hL5+Y~tn z7OvAB5Ye_#%z2e8F-BBgONl*|ld1%6?VUN1 zvseu5Bh}1*5!G+}K&F3bHE4F_hq8U%RjRB7tZ1=YQa2*%i(N~iutU}dR#n{QZn?u46$wJhQov_{ zUD1w`0KjiaqFxiNpH~(Ii$j%|r*iv|4u>exl<17DFlq^Un?cM_Z`*Nnoj-r84Zt6_qR0=nR z;&BvOcfz_nzcQ1fJ}Q@dG2&KHg3^!lN*hG%3O&R;LjsF`rO5RLChIsuaz192W}SIv zB>Ttg!>Nrm@kMq}!_p)R_$93Y_-wEQ-YTdiMyv0e3*Kqp`1l5s!Frp9mGAb+_Uo zqO6FjIPyh^v2-!X;%FCU62wJYFHMPAx;IBB65~fyTYfCUt4fTy%;J!3hyt!2-}o~2 zY{bo@k!YdMoL_;T{9%jN2P-?%79z`==@swRkizMN9>&y}g0!2>W<=;gv_JT{0EUQl z(M<>$IUOnL8JY|px$O*1NW_qE5%qz{s1NRsHkOCI11%eF z>9>~g7O1l$TV#}Rt?ZTiB6YEhT_{*7Lhms-Y0FAHb;r{YsmLpIwJwWJj>l;ClF8s8 zrNQx-Z`zjVsUMkEUXU#2GJ?+RcGsQYFJy+e70hFJaVSiNH)E*_Kj=il^@B3owX$;` z^#C$+7h*|{MBhRoH3x{bI4gb#a!63pv`%3TW`Ub*gZ2q#&ak^>L`zxrcsk@RB(vp$0sT6?@fb#$vI+L63 zq)<0@-5=~2l^9)MI~>SZTS}D5{m?#z9<4EARn-krRWeY-jT%l!n{2MZ!^F=R4e{^X zV`43Co}M7Oi<7kOL?}93KagDj#>{arsBB#^XJeS#Cgp5rpDaYI6;i)1Of**vO*!m( zjI%lgK$bv_-HrI-9nm(ud!C^oH%tEj66_Q)1k;pUe`uuIqX;?o|M~j%yv@GaNXpM)`>_O5MLPU|U)QxQHWB zr_uO^f}5#n3Iw!Lkk&uQR~x2-4|mihG*d-xW4gs98@t0nqrDF|?gNW=leffk96dq6 zu7&rMgcyR|d!Bw_MwXY^evD(Q&pl@I+3dTz=`Lk4Wx4~VU8U&Be;VJIgBIHm zdz|QU6MAqd{@-&LRT@A&A6}z$GpGl+^HC4KLTY?R%K7Gwqr@iMB{=(Xu>fMRnsG5z zW@TZfHP#_QbT}Q}V_gd0RpiN)A!wl%>zyn6Axnld(XL)uscMEA1?tz)Dss^_y}dE% zHA`;ul!KYVfPoI}r+HxJPN3wvV?Jd9Jb-A+M!!i=svAI*=rV0_9gJ3=SEf?3javaP z4-8Y$W1yYx$5vyMN;f-ufZ4cMcj|}Cdkju$YYw0sdLDd34z3>m0C$Acx((Ii!2_Xc z6PxT>J)=a?bwlYo^92r1thnF!1>`l=j?h9qygU5M)DYWL;ObrHyf+-_igtjY=$`?~ z#O44nj5^$MKwMF1RO=JJR2?YSO(solRGkTHU3-ui-G4uZ4UF;pns%=Y&@k`|-f^#Ew9wi^4&3IMlZ z?Swf#^qoey+fMPZTcIpX*cx?^BGhcTs#yaTmI)%gTvf)mX$(t2yJI0McGrb*% z>9DB<5{q>PCgIR#Y}hU62wO&0=m(Di!IU+rBF$1vABs>Y`5B99934B}f!YWkgv2tf zKzBzKN$g>1Y_nr9l*T4ab=?XIAH)&&2sJTe3&{hbIWt}>Tqf<|i0OokmR)vAW+?*h0-&MMi`-ceSjY%grChacOQ3C-#4xeC(6vhf z!=qFz6mrDfsUp|L1B>trzsBYhTj?s zJ3FWTBq8 zqrDwroNJt?0r+@>X;^C0e3IhcMLnH(xzv>KN<{}QnZ7-IN*d!rHlvwvXb{%>aexLI zMmvxYO>U3&YkiBNqBVt-RRZ^7m)=Tt`aq}^RYM1Vh<`mQ|X)NsUK@v$;hyA~qR9!bGxn)2_?iTvO)>Pkd(e)EV z+KS`zSYWLC{-!q&D;rm{4O9r7kF_xAw?Tb5{KQI;x_1IZ_!8GSI|*}859Pj^-hl+| z4_p`h2@UmffN0tU*gS*OB+1hobHCL9v;P38_`eW=O8G?7@)F61wFvS@<~L0>SG#_u zVu54;sjre~Dt~HPwx9{Hn7i@D4hgHs1m9DaN?rc|QL#ZmqQ4$s852E} z_m%CX6xrfkyY;tEeox1?6$n&LF>F|A&FT_7k&L3pNS{{_o1h?ksI&&wbOL4vTmT=zGx8cEOqs;T zNu&WauM#uST*AH*3cARZap^>dxPu)NY|Q?aI>$5@zGo9=jZ3P5S6}6eeIemG1E~0% zV-iU10!=+I6?B@Jjsk`iL<2&Zs5<2h{R z1gZP?N*a%3=k*n95LHmG97BPW8KygvOpirAUI?9@X|^t6l*3G4h_tf4Ze|-s3u3Px zWe8Si=i3w|rf=)`k9H~p3}1KM-~bGTLGbc?LdDuUFY7X*$TdE`?+jJVDP&HuyTX&n z;xDXP+tbVj%NcFk?LZScv3qv)5F20^9eMRI%m*&IeIN+Zfuo~=74lrTC@qZoi)31x zN~ym*z_ES08a~_+Y*~1^?I{t)MTamQZb5gf{Ry2Ram5o5=s)4pGTf*&8P+RPtQlky z3n|X-(?~fPV*|Yg0eCwe{YTndS<|TTq45P9*0Y!VU}xDOjd>!ZMWJ;%F~BP-$*bVZ z0M;m{Tjm+6n=+pYrsAHHgzo150GO2)-xkl({X>a!#gpHekU3>zxcT^xPf1BHb3oT< zs;aGvith3GhfBh;ta0~Py#<)sD?a8DkW)T*xD*6cRvi`-)XYRjAT3r<{X%dW*sDc4 zj-1BamR@wGV`P!k2H$8U%r z7Xe}NjHj!K&k$75cWWqK?yBs!@8T-NgVDcI=u$7hqG>^KojX41 z5vwLPWB8RR=F{36=kqdUa+l}h@ewtUjqMfOIa~XE)=?^56<&qovN)nTwDW9NkL#kz{~3l&Q_MiVEXxj>=JYb(heS%Z%?%cQtaMd z(wZ&0ZEW)q02^xPcYv-I0==If5hWC2tbKp6QJ2XmHBEt|+EC)q#JWHvFhkZ5UZh05 zfefohyFZ@~Tk#a#1-LPQ6$;G51IRY0?gTuUY6x(gUDJ0l_L0gWKzg?&`2 zXCwt?vQ+)#5r_|$P?J!1gGkEei;B8EA!eN@`n?Q zh*!omIwE>PVY$Q72~*T3LOPLAhrWagcR4_%Zc-31J3m=xp%acJ*XCGZTot_#H&zWv z;f8_?lEBPcrAQ8f0XnaCA&k&EAa_%skvA}PL;Mn9ddbWN4IwW@jLt^stp-pf%$tXb zm3Ai64QpA9U_BUDr_&CDu!JousV$$djn_9rRv~+Gg0xLz62_ym9f7{sI*1H|A%YCs zGTjhp$}HI-RkhPKl-0*FXvL$@j%EE~Gg(N#n;i>(_i8$+;{T=ESXJCi$1L1kM}N^GbN452~fXKQ_&7-n18Xl2WkGuu{ z0Av3EARB-+i$P#~n7W$~-lP`=kD+WvbcGRd)J3aDOhMY11F$iO4DfQQe7((7ieB-@ zxv6&~ZVCbp2fN-nY|T&FVzjJmuQ4oJ465?OAi^gs^9WF5ZSOv1oHFs$@8)7gS`06r ziHTcBr9Z>wR*Og`CVH$53EP*Of`)c&FWNc=VZQE{?kSWF_k2bePDNax()v=&ZAHRs{unNBP^#;QF&W~fm3vC5cCA>;27Yo5C(}g>$%&0mZ?q3k?tML8& zMCCx_`-_=HTI9{0-w**n#|EYRz_*1pK9u{7k^P1SeR1^&23GGsNr5I@4KLt6<$?f; zv*{Y?gpz6WnZI{MiGKkS4VLoS)5^dowbJDC;#dTBj40kXOxV(Dfw##6QzUX7UkOzU z1;|s+nS4QH39H?HAxN86QPp^6vij`2$4qFgkL*<}{LM#S6Uby4N5cR@?h6A>I57Ac zb@NMWJ&KDUJ6~)%K*uuUP^N|@f^IFTH~dD}FoN{i7zU6NQJd@H1~!O~zlo{fr3c^U z46AxY{{RA2LWQ?L-V?zU@<3a*zUumkg~>Jy2Ygy}gw3$_BdI`Ri+P%6U?|}3v-2*u z7U_8~X&&KnOWzGez)MTp0EeT?>Ng>n_%Dn12mo!ZjyynX3=6`(kie8T7V`t9$^(CQ zgF?3fcMO8`Il6z9EEq++@N!HuSvUS+?mMF9-3#I1B_bj;myw6Vl36vdeq z_wjP`Jy2R%+E)fuMQZ2Fa1sjIHK#Qynv5B5>pFN1pPw^U)R|UDm9p{|WBU=w4wvF8 zZfB!2EK$3*Uq}+8sIM&O@z99|soqyR8Ox8PxKde}{;>I--M}ewJHcztC0%;*@j zQ@zkaxTj<<(F=JFu9E8_#J1&4LQN?ecl40xHHp-I>`fMuTzPW_oFE@f;f3JYj38xDzL_eCIDYu%VS7U4srDVSFBX%RM18#)Tynnu`=%A=+( z80i+7h!NSyV*W|g!vMEv#0XpiW!$s*mYIWin#jkYjY)yj^knKubZc*DE{`H06L2Qc zw8SYCK2$ZVWejQ<1{J&koZAo>v$8F@y0WXWY|fxogoPb83<=3{sb*?h!lcuJEiO)_ zEd_#hPRp&))X348rET4aOLBQ-Qp(0PF!=~-G*+i%#7m?d;Gwc?lr|w69aQl!Q)tx@ zYQW|fEL(puRfj}9=XBZlCCm%FE(7|PYCEYG5coo)XJReT9hsgP8}DO{kcp#7yX!hq z-i=T44eW^O92tOkKn4fW;`-eQTcizJ>$axxZyH&pc<%8!z|pG*9%bDM>S*-|t@DFb zaRAVh2=Bq_QP+0KcE(_OBCo_Zk`E0u+-DH9^SrkQRx2<9nb-ZIz0k7!GRCUPG4M+| zz^-k-uu)ZA;abfln&8rRA_dxWR%rdgGFvs%+!7KtH^H^LQpNkQp#_evuRK%)E1il1 zpP15CSzxo-#IY1{S@z~dNU7R!5`!vtTRVupC2mp?d7Pja8a2TU5uZY%W%*1QTUP$Z zi0by+B8x)R-0BzK<^W(Flxg}yQZ_AM-%T``qS;nlIstvg@*kQJms5B&-$pNbi|jeI z6@cC7jS;2~r@0MZt#ya>6$3ky5ocOj^A+JsP-I&++6lT7ZYh^vlzF=#tB+RtVRlm1 zb?LKRH@QGyZR@r?N?wByajblNz~?TyT6}~DL3MX4ZwRmuWqR*P-Xt~Adj;%!iA=qd z_2G+cMFYU@MR=c5nMTkw1L;!*tT`)xh-qe3S|4s1 zptWWU^To@0PH~$HN-}M7q1rXq+m6Sjx|VlkH%%_8@O)Txa%r{O-Qq1!mY%SKXRgVT z1A2es3RBqNW_TviCuPW}I3fWTM8VM?^ks;Oz2xshE*RxLPqGbNl;*E4 zQ?+H|Lb<@$a%2Ah3`NxCL5r~y>RyC)ybD#CQhKJG(|~u-=#E?mN-H@R4w_Ibm@c9g z>n}K${{Z2PE@|V~g1jT@q7M=EiLlYa2FQiTT3SCLfAf(dOi_qAm z*KRQ@3p5Z5T%oB)vNo8649(^sk+sAPG93sc8OFperkIeg1C(g)Nyq4d&R+?E&~7Dk zP|RnllpR5UcfGvbCq{>Koq zk(QJUZOJ8vg9gS^#fX*F=mJA-a%=y;U^R!S)B8k8(!x2TC$EpJflfWXHM@lSuP zWfio0zP=`E!?5q|F&LPqC%??FnY9A!@$&})k-sl*xzvWtxITn!i_1EzzvdNPAO`;b z0NG}NLyFQBc(^*A(#2JynUnh+K>=BJ;GW_EsBoiJx@7k%9pP^5@-QnY-cRM~JwTw3 zW1le)t!89j59C8?MHIT$Aw*QZqW!=$XDXRJr&qP)*E4BV0SPTz5l4R&8ES~NqWC;a z8%118r?j;fQ0bdJkEwFOg0t?QGN!?NMs;;fCP>L$n_D?OKvHcMe@~f86cD_fyg|Tl zTVbc|l%Ca<(T3Us(POfaHGXU@Ccbj zr9+quUx+k2Kj!)_(tM|Xthh;@$CeIM#pDsm3xLTI5>4_wzDuQ;ZF~T;#3l~f|s+) z8q+D<(}3{Fx($GHtI241x$6_~Y{mX4PzG#fcVERxM|E!%G3i zu;Z8^1jfw-q#l<>HU0(~mC4L$hgl-K!Jd74ortL35(#Fq3+Ov0yx9^CNI5w>OE-m7 zSsiJm1+pg@hYx~OZMJ%r-(1U1JKarMF7bG&kg=aA28^-dI}_yXHc_u+bSm^Q5~6sD zoG6Cq4LZTzF^PW0o1n?5il@gCiQKIr-ZLrI2it1cRX@MdUY(Ut6uQ9|3uB@OY!PkJ>4J4og!ON1;tN)1IFy~9 zkZtB$(k<>z$@~eKRjP_Ws;-Q|cX%6x5~lzV?ey6;GjN&#fo<7{7vzr?kZBOvOz*>P zt)NlW)+QLUYG^cCP;1W5v8+s`1UiGF1k}Ny!OAMwR}cY(qL6fpE{uwH5Gf0&VLDnP zeSs~pSDApbn5pHB9i(QL(H$d#SD6uAz{E9osr!o zg*OLV5kNOui+GjBinabkOHP*(1Zs*jDyj5=dNoT5<~iQjHLeXl6c8%IUEbl?LfFxD zuf))03Q8}7%mskGaY?EpJ>0yITmwBqmV8`MFUu-*u3$#YDKikt98n64rk2?5d4N^R zTR$s4W+)cun~WPfTvW;Ngp~A`f*`CKJ09f zq3$DDXoRYIkX0KQ-N%V(&9Y1e-ed%mYviMBQDV>}ouL zf%plc7`X+e`X8Bs62M-3OJhMaQG5N`Ras`}=^n-3nAkh}gdW6e#6_NTt-fMMoFq4K z>ss}Ws2JO%Tc(F-cblI&zicLq6$g#d<*h3~J1fo1{ATr&adBPZ^@^59 zSbQF$>VXeKp=?smX-ESh;^s03m8m@UYrM^5Xxk4-VKqyV{M*I)mgI0+h2QdJA<#^t ziI8Oq$H?G4!4$?fB&_ZJrLf95VTQaSh$yPUnyTk3A12m(`t={1gJQhC?F!8lDXyo#O)=$48q1c0 zc|$uUq&aqh z5(Gz4z{0wgVYYeV0=+a&7WKHaQLgY`)*xCOiQv5=un-BbbK+9L>{MIyit6myG|^vK zql>n20vMvkDkAdBbHl?smc+pTYHvuev=J2O<79s#dwRyzTG~_64TMV7L8}Qi*p&~| zG={KrfjXE^-SU{wl36+;tE5$QF$D|?psu7M1K&fAv?;14M3v0KQ_?hJ{{R9ed7C8# zq6%*93vD;9bei%==lwe!85?2OP2wU0T0GSTZz0Bqk#)ACvZ9mt^7#AsMy zv|zcFRli6)wBYQtx#J1Y_FC;wrAY{(2l!66Vh;C1W%E^Y;77^~%0yA_{3UUO2z!XB8zdXwXTc*`e zEv6Q}j4w70@Lhe(v|f>?PVcCQ(28;|xy(+%F6~-n^=QJfr?C!T7Bm1me8%Df77E8O zys)B*rw?B+BPg=EhYnAfdoQKy+tjpF?q6Tz7){~Emo4sV=m!|_1JxF0mGz%cxp5N= zW(g-ixLeu)RV?bh406D{l?KAuPW1!;Z4e(4y#ni~;X8b4g`+{YJ5;R^=y`XxxE{4C zus8$~x(Zp^Sqy+cuiE{}Lb+je?T&;~+i&=nify9bMCKI=9eN(;hy_4ETTArE%x0Ff zE3}noL z^EcOOh?tL}O5w50P%o;j_0|AZ#@ag9OiSJc?(t6&^{5Fpc>A<1I{Jmuv=xTXXsSMx z@4i>KkwVo#SFz-XMggXJhuxvW<~zfTnCTTE7S-urGtRFp8o)Mio)*4 zTK9ZKp5fwF^~(zBFafqj8-%GbM$%*TzDL9Eu#0L?{twLBAq#_BvBk^JQ3~nwsEoa9 zc>OK~%YwmNo@H2g1!U}anSs^5WF5*FH{#F&x|!PxWXMFDF?Fr@EQ@(b(f~rnr)1Yz zydc$X{STS6aj#xcz(cP(r(Zk#rPo5$D{zxsx+$10VH@t$nY1umi~Ybwy8=voKaY$*DO)+yNH%kiBmzNlB}^(*FQ*v^gKNw}LO87=qo9ZBy%XdS_6qYyN~CiE*> zFvGR69dekVip|i&Q4sZH2=+wU)V(Ozl{vN{NOq{f(+Rp4cq=s!ClHdj3lCEuHLfNc z2o_bjn6|<#BAN!MtbI&3CTxU?K1eM(CI$yGG=$z^*^@+3jl-Er(%2^8_hv$@qno+T zX}A_=LS`NDc7+z>WEPbeQFjPkUeqGjP!h_y(2%E8rh?^A)1qZs5MtEo%;?=Qe3}Tepr|_(DfvL}V5m1_0y6c08$zI% z?h-0!P*`;wN*>U$Kw>%ve^7GEs3Nhecyp+(1l|gv=!PMyt!4$vChiKR8Rx{^p|l8h z*FZyNikq=dthWg^R63p=TYbzd7Sg6Xo^B?FQ=|({s-T^aR}3HGEE0l$N0u_PTjMtF zOt8S}?*07CtOcEOj%6lSE0Tx;qf(M$`kc!XnwlAg0yaaj{*Vk;3}WAZ6G-g{wte{d zfHJPM18;bu4GiP=c}4)I7J%>Vv+q@aUIJ zFtcJWq1EV29^j@&v&wpx0!mOedwP^|BdsU>e9UjawRf*GNEsR;Q0|~0yoI~_a*fHD zTT44;HgGem!m%Dwq%u9xnm-8Kvqfm`9q6d}f|jvudg$>0r>$6P&zW{c0tIZZ0XH*> zF|eG+E!4ZOzli8IZc9(nTovhMnNEyv$oVwgjnhaeUWu5M=Vo|iBDoqoT&fKKBG*#y z;DMCD#lN9m<$=pdN_zLWu|=;vKPFucMOH6gH|huurnFo+>}$Gt@w((30Yn1^XY0Jd|@%eI!dDYrb-&58oYOmw+eVUBL^%tXG9?b#@;pa6~d z;-(0>Rxzd7D*&Jv=HLrl#DEOuE7f@Ugl!iGm#3y6h=vdJvbCoz0<8MMSZ$t#Ua*#0 zR`+56WyH=8iFL2L2b2RPsE(@pm}2f&7S;(mF3P72cqpe`wEqAif%ACAy#3N3UP|H6 z?C~lVqJU{nGVX$%J364biUp!ttV1_jT=-nUCg*G&M@1E;Ubp6LsUQ-fJ06m6JQSL&1gUYs`fy2z0A;B zfNe*_AY|Q0^BDou4-sIpjR``R#CA>jjb_Lwu{wE$y1T*b4unHvws8w~EfroX zP1{a{Y=uHXj<<)HN??OVdeaRyfGHYIuBUboJjj6#*m;raEfjJ>qTgKz2Jff2-(^^7 z@WefY6+85ks2Q}sufh=2g_nb~DpL(Hb{ysD*Nvg8T@A5!N=%p=_2|LWE7Eog*%P8G zy#se+vxRMVRB(+A2@d9Ri)mj*A}t|wO*c)|io)LRN=luKXT&36gnGKOm;s`>f*B5% zgTz5qK{_~wy8i&?0Di@&5Nh{Jv<1YPl4+?)m^L9}N{!N@u4*#Y(P%JvhtY`3OdUebBbKi~YoKJKylx=79Ao`$ z8!8Mr&Ad%^#kJYn*UYorts3zH$6Ml~hs0{8sdsuFeqiNJL4UCwGQNO*A%n3{#=q~V zWmCIZdW$G!i>!`3L!8-_4BP9kxNaaTUq8k-0cg!ycYV!9e3&o%xn?XV*2}F_Y@L?T zO9O&VY2(Ay(~04{mf=F zl@TcyrnSrfSmK&vx5udHz(J=@Bd$J1TERe#*N9HBh@;(Jrhvro3~-*1KL)DyO3FJ# z3y!VF6ACfFX{YRz$h`Z%z(w+EQE>~w^C(H2qoY>o6h%c1Ywg7az_HtzLQ&IV_>Vk+ zUm@!rE8)^+^c$tL`O(#fINVz=_!?Y#q8xhe{0S*0gtJDg36O88ZWXC1I&a4cxkM z6pkgQW!UWra+V>A{{X|I{{S$*6`8*x9%_$3V9_}ehdk!9;e_BVYnofQ>SK>V{@bF2x1zX0rh)Kgi6Y!U!wif&8d$3&|?12_DOh z5@4)dI-%NOMbwrut=0@E2^+(LTRrDM1;-9ZY$y_B@s8g!b~7m4ZT|p>1!@D<9*n)< zjetP4fx=M*SD)fivXNt34L)QAV`@yr01L0ybwI1zw6`dsyL2d7y3FobThCY~sZlZW zMe9cb1CEAIhT_b6n*u>vVq8z^>x zuOp!n-O56*GVv~{777N7K@J!opwPr)6IL-hwLxH3@JedTKphAM_{+I^K^r)RVT>-3 zk~)=nBCih`EGS*nH%5cmu?M-{%rUUu2YE8FsKX&~qq`JeQ!Sx@jF;4!8aspl(S$@d zqF81)miHG_VeP}tA*ItG?bs8xEJ zO&;FZOr+$Z{6X0`>Z<40%NZ1KJ@VRhSGI##E#gGX=mX3irIjmK4%}9XonR}`Z?aL z7f^1UZuRat{ej0S(fB(~kO@4^xcfyxxIu>vuFTuY8G74ZWyV&=3AK5ALvESDw)VLT zjm+7$U>$`t7raef8l#iKpv9FM(Cy_jq!E@}H7sptS*P5>Yq_*eq!rG>Qw#peMz$FAEY93){{SN4)Kf$jX~}_I zO3oqF=1yD#4lPnOcJc=tN_r5P08keR`znK40d}NT*|d#Yx|xMKuMuyM-6GpT3H~W4 z+6gUNS|q8bT_dS5@hUt`CZS&S%%RH>;sga9(h<4~Hb{ei97dn94MnBu$~rL_G1D+# z^`PLDz+BU^GD9rf!kc+bSgp@vF=A4X@A~e7?l+2X*edYQLI+wU*9375`dct#qo;_; zu&vW#5 z>&}>K6qp$jjlfhXjYi06VX_5O4=QYmwlbX;TtRqCZAhlnmi!ne9HpJ?qKaL-b01=Xrwz(8gmPT*`)f` zAwYFWhv^VYR=^g#qZR3F0@G_{K+3fL07r>#+&7{&?f1MW_n9oKs?*vecQ>qfklI*XnLAs_?v0371P3y&o7Yowd$_E09 zRRqfQxW#J8TYuUk)`{I4S=1LL8b+#^uy{3Uhe#OnW8J$Ea$}1Erx3q_P$_P0|{;{?<}@O$id0X zq-Dr*W3;Br*ovyiwKNA|^Br9X=$|noq#7!CM)nOTXX=RPm0>@wkpNJ&*5ig-w(D1d zDQS2V_G8>hN0$T(;x55P!FK(*R{JWIs~ur2EHb_Zt-livS};`s?eha0dd-&<1|h=y z#D?7Bs5vI2EvxpK8oIidVVGlEj0h#!*w~SpmcyRCjv&xYdnal=P}Gm@>L3ncRHsq# z77Eh>%@)|S%s>&53bVN=*Srl*8ge=wCS#PxJdi~e18nZfV?e@jO&?g7cOcU?<|fNF z9s~w6ed>6c#SD%#j>5j|GMiOB!lk97 z6ngxtDjHD?`yqmn`8gyyr}Y#|gn8&D)LG^tV+YcR)?5Jr6#O`-%_!NjktjWsnA<2I0u|B%=H03p}syN zf?@vvl!O^|{XBbsrdXqHGtaqXP{CyV%QUq!YknSO0$j*NH*D!fN1FL7k0MmVTB@Y z7e*i93<-N(T*l3;(1pM#1N=r?WldPL3J$M8Z|MLz3R2!blB&QDW8xl=(RCaMHI7cC z`WNmN#<0Ryn+nKv1!Y`obW+Y@*-9HL1YBG}Zk+e@#-jmR4u6nQqHj?WuKPrdzqb@9 z?6SOle8*f2gG3EzIu)0g)ZL#Wd59*MQBYHe%<6Q;4;6D76~Xq2d;(U|Z9Op=N1Bcu0lbqcxZ7 zG$CTq9&#>9EqfeFF)K`k%e&br`iSTZm2S>_5vw_7H6G?|8bnS`^An-O76fc9s`D7q z+d*Fa{6G(3F@f(2HRw|8=d1y(8(#+>h?E>7dp(Y0w0Svg>%ObK~@EKW^nz3@` zQvU#lpNOr6T?`&QO@m9lHvTcxphJ8*#JUUn`GvVfyA_yGgPKn7pNVu` zsOM(BN8HIW%=LXqik%f^!n$&N%Sc+P%YN%RuIjY6@)tEhZJ*>|MFy)rkSp95`7R=* zjk(zm%oeUCBW??X8uU&U@{2TRF?_{%(bK9blm?e15vQ!=m-7ijU77o=L=1|OGttCa z)T1?)c#VxNpvW?}O=>a*$_*D3P}gaGdytjxMwsSb4vHXc5D`VbI>?A%w)37Q6ez+(?5d+$31DPs88DvFB3S1e!JB zhRzOuGQco{J8|t+?3L6S)g1HV~q$oxn(ro!UifeA2JtRsjXH zb?pqAgWvjoBjUYC-gt>)DzU+EqEjHaXUo&BbBG!Lni>+0K!!;?Up{*Co;t7Zm#QQJY%t$4yoC`XP zMvDzqQmxy`DY7F%p{Kz-^@;5YiGVA$6CMD&|Tvk@lrwlDA5= zYNM~sQLdHo`GS{pbZUXaqfIBMJ?q>ZirJO)1hZp0-e-aU00ae!#stE62OP^AUb209 zBup%*IZm%pKJvklfQ@aWZa;8*{l+RpUuVCl(@<8|a>%5qv$I;XYk2PjF^cT7XMB9k z771c(2$~0|mH^;}%sW*;XHqTy0KtByAqLA?k@bcz^s&e|eq)TGXwW^FxrCbqQFU8U zrz@~8{1W6UDmCdFtMZpGNpU=}>x@NV%o$;@~ONYB?St zDnPxt)}0UBY7X6&>Fk+CY7V7w^AKLxFL36isd}A{@iC{wD&$)1{L6%0_w0*I+b>wa zrRizfjJ@D?EyA|^BXh0V)ahq=R**Vco>Aj{M7_5-J|fKuSSwpsn774HT@u1d6lB}V zdzKmkrZJEjINCjfN>h(V46rF0Bm8yJP=GQ=1MG1SkE>H-n3QSLgWTYha2-Q0c#a^q zrY#d0Q4pRUQc^ktmcDqXhN@^6^X-Pr2M1RB`Gm5K;HEA|I5fXj%o|5X(~8C$N~sE~ zR|GD!-e=l3W`ech%wZ|Pn!QHNTn$%hR{C-norX*`ryq2H!QIGK6bT{3?!Fiiy| zgI>O(3aeTvzpv&3OHPh0%xzIc6+RCzY$J>NjTi%4r#&m*%*e-S4Bw7wUY6i1&$z3o zUEybUpNUaJS3*7`olrGfrNT4Ts&##0Ej>1Di9&-`$}Cn41%t8T8Mh0&UwDkR1U8~8 zZEe!P?aZ;L1l(eB8U`u@RS2c$UfwDW^%^Z$eg6Pp0;0M6gmn<$tOn`Cb!uSh<;B50 zxGk7{4sG1p)Qe0udW2wInZpzD<;IS$MfnZ;)(J?>b> z{hIQ4VCt~V=AFokplM!UyPE>fkVfb?Z4B6IgOD|(KvOQi> z2dWs#j$#0BldHeXY`2Uyc>9^b((Cl;3qUlNr|9IOzcl-Yr|62%-h$xJ4K7_$w(^_caD_TB*}=-p5|@;M02E?gy**n()Q9sMwxgOI~NSyP%SuMe!&3I}-c*GWPL zbr`pAi0Lx6OGny>G-STEeYi{3hLcAgU;+?auFk$9S4MRoh$6=G0>1MECTjpxw#95Q1jewxgpC9#MwP!YTwg~edPX!YL%b1< zTcu%@oQY~5d&<&{H-y1x&MUVv*4-(iQ#c4~J!Rd|YpahjX_K2xRy~g-cLXU@A4#7aQ)UPeve-YB0)WmFOFxjNOf)gprK(%li~iFYlR zY|`EsLj~kCd3*SnD#f{6K2Y+hIrb6tp6g{Ru+oYlb-RJdiTI;=e zezuuig$ElPMe4;Lk(iZ->)ra4`jrc&)zVgwD!#5bV->M116|u|;%LNb1leO2D?z9` zzy*!2JOPJg8af9)px|YoRpH`UxA{A#dh;TLmQbRR@?n=%yp3>7^eBdnQlTSj)dtvW z#xn`?kg8vBS6!lIGBvDQ=w?usvx8&l7a?t=j6Ee4G$|El^uV`9??TsLMzK}xx#%|hO@6O5R);SSQrw2Y3K@I>@d`1wPsrU(PgXTfG`&?G*m`QB`dBeDFDCy0 zekL%xXk9;Q7cdk3*?0t9ZaSZKnDhrQ=3*;Lwco8Zz)UDy2(}BFW;}pX`MO35Ea-!V zye5xAL&Bbg<>nTU{Ixu>@^9Mle4pMq-)3wV?^DlG1l4DUs z#ZJ|j=_;Al?u!2aY5<0WyRpwc;!{gQWu49O_>H33N`6Nn z>S(SvZn5F!ITDv+y`1w9E8fFGX}#N3{{RyO>@WT1U9=V{uSlx2>qB!64Ef54tU^(Z zs`-k^Z01}#2w9@pC{g5%m#fDRL39hb+?Qh3vXZFma}i%-BKY}x+1uFw4*gdB zjw6yO4c-rDr~?IvrX8h2t){h)w=aRz-A3UpOkRA-3j(fjPG2lQF~AN!Vz>?JW$*JF zT~!66396A6cGo^-YA&X86H#&jdT|gPG&|hD3#I7j?G==kWVVj+)-2^k9iiV=R?Mh2Ghbs6%tUD>A`xBkcD&>FJNmM}4W*XZ~Hc#x+0JvZI z5@jyhP`Dx;kh0KP3oG&<*^#SSc9)P-aUrgY7OzjFwgV|;b$=qtH04@&iCCUQEN3!n z7_sPKboxpVqdN5#a&!wI@_3e7gvWI|5gZz`Rf_N6V2@B1clnM1XzKjDO6dYvz!xEl zzJHUaO(zGhMa@ek7I9gz3^5WA1vAE_5FCJ0EvqB;uQrb~-ePT?te+=51jt zRZKSaY-Tz$9ag+}f}pQfRm`$CMGWBQ+)W0?1#n&}OODy538S^y-k_xA@=2Sw)^j>>SRSXbut8&fC8;yA>54>ZnKZP#-=rd?7!{CBvluCc8-h%;;M)!YgDnn5X>a*w1}e^7hZc3{wc5p zF5QdFNH8r5sng67-IQkh`G5nwrj#GpvmIN-_jnF#jcNMp3UY*Z!shG0cC|PNX-cTyQTW|V;DOF`6+<7JOk2POVrS?6Gm!sM9GXma0Z9W8%Cwp8a1`NXU+0v8LNB}5RWBXvycWAVyya%TJf~>ac zmbxBj-)Y_flMhTiM**4}Bgw?V!d_UeJ;94Q7=h2fh;*A}Pp`s z+UKOJpk-`Z=3HDBtSq6v&aV-)9am-B+!q~2x7J}n(5Axr_<)yd+e85XbS&MRa}U|F zOYe5gO3KY2HrBK>=@AxewZay_rUE$U+@LjS-Qo9W+x~=JqD=_PT6Y1&Ejb6^Ql+FD zufP)5HO)o#xvuyw-mL1OzVmWTB%FYzZF=@fok>>N?dgu0ET+uy!~<{~op*pHr3&ch znV(@{quG`fuVvlL_fVz9wZ1(>GtKPPxf-QJ8|i97i)g0y`5_LCU{#-3jW)t796S($ z>b9r9a;$A#R_I}W5|9T)H5#Zj1r2%i8h~pm7GtGy!GNh~$BKX}w_{71s^@y~+wSs^ zH>+*Gx_6ZMLUqFjITvkEOEi4>@GODW{Le63uFavQMSge_p|*AusL-gxyfE-z3papi|CtY7M64Hjz0ci*|4i+4o(iD<0_jN8vJ$rW<6 z)<5ibK%tqwU%E$7slI)fI6YWh3i@DpYPTD+p9ED6x4MgY_Y2hOX~jWdO$J=Q$S5cU z85pL~tpq-_fGW?SYMvkp#gUYAH4E0J^II~iS&kwllWvZDdx~_dSn@wYQp+rn)a@w% z=L4MP8!)A~lh~~6Mz-;*WZoJtEd2SFD`qd$*qOqzlpFi>f(xC%tHz)sN&*cnC`>l& z^ZA*U^}tL^BBiRsgS1qr1-5?X47+w+)L;q!Q`@2y1tN`sT&c(Qm(Im zx=VMBw$;Q2#>NWF!d+tI#05vazt|H}#g_jY5(n%aQDOpR|6gE6fe$5>k0 zKd%!MO&C-`UX;ClBJP>AFXkz$2E(Zu;Z?)q#G`awv{O9HRw2kAdP_Z6e-fCh+b96x39BM`)8*K7kx4iI)#42?b%MY474K zFIl!c5qyZO3;X(sU~8j9uYXUeT}Mi7+<9WMWs3z|!L`yNXRaZw+PkKCg$xiS8gmF2 zVR3(0T5CpV)$mM2HlU@RUS^#L+Uh$uO?1%aLqXVhDRfs^+F9uPuw9ll{BRIqHX zF^E`YogL0<2DG(WG44i47J9E6d`nkoYR<@au}f@WZN*p0TnKf=zMVhG-WXUqQye@+ z)#^F(bg*<(AV_w8hEuvjtt2_RslS` z${8n0Me*?!L0}v$9z`)33hp)T-b36f?wDD9iS9M32O;-SfoyG2Ue6>{O=Tt0>hpe~ zf}O5dTJO6qH-!nMPi=Elgn1nYf5IgQ8!`^s@A#HiDmH_m&H9bPN>Md-Tf#E-7jfC< z1CUbHXX>KJg2Z9i^&4>-Yd!!zWvOMN1WW#}?;KxvE4*EPTas}0jzip$av$Q9|)` zkucd#S2o?AP5fQdCGcj6+Ulrd-Bqq+ufMveaf#9W9gpMOlQS2Ch$lYOT1P_6tD znoX{;^{lef%B38f{^Gz8r#8qJ8CycdyN0$Yu3sN9ylzp;`}mY*!YaSVn2pKM(WmJX zAa0?zc2|+g)-ImjBW=>u4p^t5=w9v4KQK;N5_qO)O;CGEDHgwhgFww2WA0*CL9?1m z5;kqmV~D#?L%YAkvtY=k&e619gl02a3bCO_b}TvrK}Q@)I)-cl^KPaHw~$-661Xhz`-Iacb)0;$$0lu9EQz~P=>%!ETYYU9X{_=bdXIp5nRCPqTc)zb`STUsJs4}SL1LPe zhK}q5mRP~NZ#U{8O1mhSUKNRM{{AD5wb3p05(gJmwfue{lGcLE9fyV#SvD!pX;fuzd`YZfM^m((c?n&E-R zF?$P|0I#(dCsg!d+F50leLTQw(A1^9rCB-_ui=--It?A&B?J=H+4p zp#BWB6*OIb<%|zi{{XO2W#*eXJj^oX2wle791)smQ+GwdK-0*Lt7HvY_J-KTjA0{U z0Hx*>pY|~#-728grK4}{4A*v9mU0?ZG{OYKO+O5?A*ed@4$I>(q$Xu9vAa`|?*JfHmXk zDT%tX*J!mtD++3#ZUhz8tC{Q>#gtSD)RXOu2 zP)xKm`%=NU-t54j*I;iv!!g%u{1FyWO`7|ND-*OJ2V!i6i*9z0eH$8`yv&8yviXW= zK&5!S5O8w0rwq^oMC&rdITUKB{>vp7D;V>{4K1eX;#aydrI%1j!50O%zD8LSkr~>? z41C~xuqYp0<~RxiuSXGq=maOQ_3l2P6le_`KM`cM(H6_nt{H__7`vL?y+gl>#n*@@ zb9V@$WtOp3)V-Op!$d{m0@Wu`aKCGu}FNT}tP$*IkbjkIc+D zcm>>_Y7x~}d-FA17}VDOV;mHNTz1kYAhOF{oDYc9Fs4iPlm}$Pa$sl<8SCE+plh0` zcx!9KCys&W{SJFY3C2lnKlLdyYd|ZRn0X1kCV_#f^gbgEC>USnp@Nz~p;!B~6%$M= zQSa%CRh`9lUcF5SgJ^4YEVHaq3cY|A5cdVG(!s#rLNcXPJkzlgs z3hwArQN@Pqj3h)$1xDXrh+`1&!Hw_CA$DoEz(++ILJQ9x<&mnTJNQ6TYTbMslNA|K zj?Ux^MXtEBwXnF&(XfEuhl-8vWznX;nY0mG)}2cOQD>oz{GMi}wPg&Ot7mw{f|}8W z=OQEMLf1NJ%q-0&wlY4{9Lil_14fP^WG2)#7ftg}0AmHs_ZgvC%Jyr|c3b z%c7`kI%0!W3po1gF9vQKYP?F;>qd)gUy)}{#B%u-gM1uELe}0v!C1C-Ct5C@qpo*p zPpI_*(*|lZHv^Br`>YSm&gWhth0B{q$;C?BXbUUENsbJLe=^oAtlkX6T~X~9b75IM zpHo4kC)qt;>`H^8^6)0OBD&vz^EB60Ocy9sTU1seP>L@$w~sNYMc7y=;w_D|N2B{Q znm?iUXa<#fwLHy4%99u5^Aw3^KsCp>V%G+2;v3abdyjbFrsh8{Py)bJW9vvg!x$|e z*;h$aBUXL<#DTJ{3-p$jbRS(~sdhJK>kz#LsG*ASECn2|N_+T(H$#q*S{MtfY4;Je zcgt|!n9yvk7zm0OC_1)_b4tMdcZp^O+*^+Rh|*jN&i?>zQlP=Ox^XokSiX;}8rJe< zj}QQ6D?vO*A#$D$@2EvJ(_sl+W!b>(;w;DraQwxR_@j66;V9+`7bC zGck%Ubg$xTT?8xyuIIR+sG(2c?h9T^s}H?>%G#FANp3DkkMalia?2D#~KC+~ihh7}QeFJXK z-CHN54$R6=r=#e6#5-EDETiw{6|{3;+;{nngPgU~=~2P#)td7Fvi7$^>KJSd zYPV!*0cA_w`*B@}V_LHM08P-$9Ezlj3dKO0-RPp=G?t#Kb18^zF|un_5I6dw$iWo6<{+!pdCp_Z7MF2QZt}|)A)u>| zq}PgZuLKkqnb!7zs|MI&TqaCv<|)2vs*0A+vW4UQV)0)|EI1pSs6NRxbzen0e@)0yB`l1hUNwu64bNPAVZgSVA58TxBa!srRhPstC>35h_*yB6UmE zvAIIF4Nyc$ZZX@JpTyY9m9hpX1t(dAx0`j(mQXKVJp4xr)FB+>iCj__D{7Ng0lVAW zaao6jkQ8HmQ7l`%Yp>~v%F&q z6CnAOpmEvq@%W0|k~^qPGC5$lW)u~Ix|tbKrGZt0PuxvvP3odF9e^~o$C+4Q5hA{^ zFS$xA<4LAN)WVUdEQXsWWk<;jhPE~jF$q+f#?e9B6u$E}mIJaYsB_*guVH=Ex?5bK zGoeZquMuE$fmUYQon|K}xe+gkF@pnQuEw zT{MVmGyI4qVWYLjxQl~;QtvIl>{vB+1)sy>8gRs-`~0N`qPzzFzc2zby|1zGSc>q#aCEKpW3oeE};5`)W}(qOi5YU@m9t$ z3@_8^@!n0bhy~?NxeD(;-=C z-AUR}Rmekch%Ra@xu3NzprNMsk37P$APZCTJNI{U4q}A^&Hc})qL|8zR329~Z<6?x zX;yWu<}pxdO0u|?HCuF8P8>mn>^kS-I~GCI>ncGT%`o{r`3V`j*0OAWr{S_ z{iv$~Hj5Q+cfsyjsKZv-ck?soZIr5WF)55@isRw~1j5jypa%6YU)BQK)f*x^Lhh7H znswOs^%Arx&6iWWGp~$bE7*)y@mC*n9)NGvuXuv!=Y?4=wN);fxM8hU+~?~6P^wd# ze@N5@a0A|$I7t$2jI6|0|zvSk6**5~fB^hR_+m$@rJj2N`{B?gIBnYth|ECBq( zxkJ>iJUq(@=V7FJ4NMy6YGa1mYKU2*(MJuUz$ToqxevGsDpF4v9rA9ao4x1*$^hRb6f(6zaA(Qpb` zc5#U7g4+EOipN2xj&_$odX(SHve6l`@c~O5xs$7r+>H(iT{lZnZi@YaQLa(X9K>>3 zpgYXaLX3nBhOZ(1;-KFr9Z@G~3nH&+mL1&3MOI5TaV%2T7X9rM8at%xhfz7PuiN;D z#8g9iKK@|7hpo1_AwZ3b#@>BLC|e9zmawVkC?{H_Vq%AtkXNrUOBEN{#C(vesBtM# zd5z%FU9OcC>73WHFwp|jcQJMs6_qW|sI_z}1Gf`tfQ=RR5|mQYlb>Q~gFslpROsZg zevwt6uC6P;sF@6K587qM5O1&Y7Ti(Qe@T#6t!dwX5Iag%`h&;JNV2dB%f}Fylr3GV z=HYdXa7|aU0xZfD&AYy0#ItUdN1S0=hYmjL@d`JH%L+To?utgAGVEC9SsI0cWW*k?ma=0-FO3Is4qxX10ybFHZ zLN)V6y+5(b2LdJ%q5`~izZVcT0_^-oF<>;YZL{t-Wff(9+x0BUvu%GyZ4b*7?w4$u z#^fi=SmswlMJZ(w$P`&;8os8mYjAI!bWSF^BdV6Gshm5?OYyi2ruA#@6a)zeHgqbV zFp!1Lkee;tW28;a7M1A)vbtD7R?inHoa;mTbl#mYP3XNTAW*MsrXy@0= z5DBQIF=u~pV;y*nb6I^xpy1UF>Fr)2v>Gcl^NE>a>dwAmA=Ji-zJ4VvVAIv-%sw$0 z1L?@iEWxs-dq4}g6@kBaCD7fvL2NcD70K{QR#uC5`-nq^foOF+z{+Si&Tphm1rI^` zxC~nUhb%&G4*pVCF-77Yg#spne8NMj7BF)i z;+=gv65cZ*tXgU64IRh|iWuv;^C@d!C0(qLI$K47v{qn08HYYRTQ zu)9*$$5*^z+GfUg9Lkcg*>7J_E*LP&A4n(@QrS|Jy5Q|x~1sdoK22N$gR%ed8Vl5&A$UwlF>bpD3xinmjzLKJy)}M?@ z2<@XX-JurZ_=aOGu8Zjc6&$I%z%77Ic}CzH(p|WLPPTP?$14Eib$H%iSV@gpGsWf@ zQs^)mS{P*C+k$}q0DwHev>0j^Uvcg_XxiIt&uEwlhIL-e^8jO)SoA!=lr*%pYdXSN zWAcLjT#8N_?S~gr7RuJAr|8puKD#Eku1<*>~T68x+?3t z?mI=_$KyjeF^aUh21R**lnYy99Kz&9VYZ*D2yM^U zvwhmdb1Ds+!JPj9KQJ1|uZFsLbd-ZuW~v2tmuqpyh(%bM)Q8)b2X>1t?g>h0EDw}| zU98h*i!i4QV6c1n2(VXdu3g>p>SO@1!GEub<)*TyyT|5IfVPd5#AOr_=zTD|+O^-+ zO|M!y$4!(L4ODXzpeT8RV(D;vVZ7Z`H0ADDEtZ7uhs-@Zf&d*(2i&3LlDdJeLFNc> z)QageAn3e7eFT_p?$=7g49K)n?dS6~MGRu{RcGD>2UIpbgnduX8WW(qt))V(jJE06 zcW2uQm0gNj^D)*D@K{LLjhB||hEal`u0twa0-0PjGlXG&irH`k0h4i&=E8e-Y3j zTo{Yw*I0Fm_to!cfw7Z@zvYK%Pf=l^w{wrg7bqZIH9e5WX!gokIp`h+Yv3txhUh>Z z7jQ1QhU(Q#POnGQWP?I?U5hV-c4@eX+x3V5(CCJ_JTk)c6J!r$A)pE>r*vx8+`i`g zjUgThr<^NJIEw-S#-{dHh_Z92YY*uFQxtPYFcE5_k!=3N!n+lVv+5&E6_u~Q@-cO# zDYN=PVWXI8&LVZ%T8iZaC3fz|1W3N&`rc;J;cb_vasVQ+YOCADO96AcciWd5rF?3M z0Bo=xL}?Jyh3(i&!mH98yGyiaB9E_$Z(_I2;!!DJ>QsS8V`tr^SeayI-Osv51-iTF z?FFacS=t@Y)hWyB!Pem@&A-})2I}aqxu^)x>dupU8(W@!<{Mktaho8^cr`LgAe6hM zXU7)@M-CKf^Wq(ST4$dVOwOQeVvQZ^xfPY*%h=|iZ*Yhmo+gHZg{<;t!q$)vUSC+Y#Mggu5Z4u{EUJQD!AR7g8i|9s6;^;6(WWa=(GF&eiYULTmP4>~ zgzxk5ErvGfU3iMsAfsQsnM82*`%Ggz5Y*k|LF4dg4?e}QVreq2L?=NPU zD+>F65Q{Asb>qx>(-CoR9NZOYEN$Np5g19JX_vp<;MH_y*3=U^=&axaSHk}QQn3}3 z*>=m*Q>l*iv?{lr^8}4DUS7`;O(PX8v=x;-4I+3(5SJlu zdZao>*_d-9b2wQmyLX}%&l1!*+oL5 zagyr{6FSIWzc6$Q%{Ar@w~C=(r--az?(fH$i{MN7umrP4%%M?1JO2O>i?C^de(xL8 z1jzK;tWa_opuJB@BPkg`H3(4#S{eQ^D3a9DyEs&JhE9i0XHo_m_<;8DqwNyyeM<{3 zb_>-V!NJ^!;we~L>)QmvmuBz3h~;q&i!aPB>aAh&c#guU+E4=5ZijdzIK8aV#1-WN zM5XqnBMMp6cYLu8baqDxmW#dG^E!zOH++#`WZqoov=AbLY#07q6|@)I()dWl0JQ>} zspe%2t?xS8;?r)E0GKt~#JVxK*-7Q%E`{pU$Fb|&6>2wNC;pJ*lQeR7loer&Huy#j zvjwn41pqp$@_;ZJ(J}8c5VGq}s$nC-u}0G03;=34=o`47F(1(&zM%4b#k~Nv33Tn{ zV`Z48ZX88Lm1}_aW)wsAlrDjQs|}7~6AKw!?QnL1I~7??*C#~N%^H^WgRp44r{1yP zPf`dt2%VQhpfdL=qY3~3*_BfWv8)E`UZyNMFfQ={wzE8SOP--(yWSal{m zR0#xGk*{Nl^&CF?MJeuC_M1_dmPMa#3|iz6&=ZoGlW>nzj;jXwVXVWy3uMWesDwF?7F z`>0-8UX2G-9AZ##+Wg!Ss7)1%<^a?wI^6Iwg0L+r%<<)js<1UxKCpt+Q)@HKy8!k# zL7~L1zCyik&Q|=yR>mJi|U3umz5y))WS}!p146N9vw}?%F6E|+;4b-vi zbv&y+;n2ah`lSw%QKlWIP;0H65G``$TAxW=rMO!C{X|d>(JkA=EaWY=g_>Ff1N%)&*MbJxeXo0CCX`SUZT%4&Ls;3$`jCPm|-?*>t&G;HwZ2-Sl$sP2f2Rv32BZ-$INzwe4 z)pn>s0AqIi!$TA%YL=Kz6#Ze3R|li^ql}8x9UeSD1>dAs5Ohqgp&zvc)dVw)5? z)YtFgAv#b}-$&hHm+XhylvrD6>)i447^;Q5^n1O)ft&CmBpMDgU03e$$)^Bo$GGki ziq`pwk+$nM>X0d5HZ$1sQF2(V)p~_t=pqT(+j(bEFujj3+B>eVhun87ysEo+;Q5)| z2KwmjDzPb{Vfr!9RaU(Y=ZJ3)a`o-Q10!)eK9OdPFo-PV-A?lz;cz|&?vT)IWoc2e zjGW-qhFV~t%|{<~n31)QPnfSoM;PfclnpEX5nyyJ-OO_98nS_Xj8Y(nMQx9)(Nric z;yVTC-aRHVn?)UB6oQ4f+)HG|)A1_l3ON4&CJf!r+9A6^zR(G1n?{ZyU3Y%`$`XR{ z`gxck7XjMX2Q5ZaY7;q9qHU^{wzf2@6?VZ5!GsYhMOfnDEb!1?c=0X=RE6r_)JFU2 zzsM5m`a8tLD;E7cL~UcKG&ZYVlJiNbe32s!(TZD-GPMM4u(|tiGOn?^mPK%bcrCg6 ztOGF|wxeY$O6x3$CRMg3Oep?P7`m@iU0?x?0NN7E*PbSu3)b^zXk;l=IUe6LWt3Dt z$aaMmM(+3eOVx-`g|4-DJX9$#Qys4#cZ3*+QStK-7VT!^XVwkv4Rs?J_?W<1Y1np% zT+EZf5OVgipKJwNlUDqBlww1+sX&01?YFc5#BS`%0Ihe><}S_L_5ydK;$Z%f%5aIn z^*A|(Y36hQDb{|UGd$%+zd$prZ5)~vW3)87i@itd3v~e5Na%O}0Ae|Z_0R`T!3hq9 z+Og(Q14PdKp5kFZtLj@*5$_roY!oP}Zy56eiE?7w#Y{a$;b_wf7fnz;@0pA?G+1%? z`Ii*U+-15^d6dOb2g2~4;&kP1FWc0lpr-x4{{SB0p@OR?=?5NCgKnC%YNbaailIxh z*UiB=y-Zyf<^^0pz3yD^?I^0~iN8>B_?F`*WixO=q&4QdGc*PPj=|++TA+)(52NlH zR4ZS;iQ>J)1+f$Wdy@i#nDkASIqxW_j5-~U67ZT-AJ=(b5%yl`WTaeroIKsH1jI^1 zLg*NA%L1!SKx@`y?>l*=*HW|@f{JD=sqR9HT3vwyP10E-+$4Ei*Fa)6riI_)0|ayf zj!9ulUIuT^xbd6)ce-I-4h1UG?lOj2~ zM^}am6i`}@U{#^$hds?=My*THPhwCxt$QW_ve;Ep#KnQmOlouD6uy2p6;S}5YASgE>uNQtSffo&dcm*Zguz3~_?7Ls7Jbqx zN}i;9q7_?T4)b`lV0V}WtfG&*L}{2R)8KfRoXMqN?dCmpGR!NtiEii@iwOpty92L* z2HDl3k91x;L|!2t_a333I*qe3zzSVUf0H^3g4P~opfKd-5T4X;UzlKC%MC6j zQ-QT?7*skBBT|pv^GGNxasIZJwFZNy2Qx4bwWVjzn1}$>v6pXA zu>~+`^7x5mi!nFt?3qn@bzm^JDrdKt?5aV*>Blz!9&L?nA;~@R!U+uJevrO{R6JZvOxfr$c22bM8d7 z8yNi{-?YxOs+R4C80W;H(wU{>zuo2_7<9+!q_B*xO8vdX#>}+7WmqD$X?gGFD$KN=?C> z#>(opKTs?hR5jorTi0#HbN6{-(aDoMM$37#t-P|U8q5CqWq=;KGXDS=8X=~KSSlKY zZTaRE5n7(mv;^VB9udcM6-8Hecw#6$bJ%x)q_Mlnj>k9Z4$WDkSJjTt6GDd0W?U<) zN^=$3b%x%3Kvm6P)zHi*WzjTTyaXeM{fyBupjII=P~onhSOBA11jI_MP6n%S9zg0r zR1^IP2C(Z-SHm*c0g;-ij_{ERr*9Y2yE-e%xpSNmgAY3 zKtk6z^Xdi22!~=iT|2n<;-ae1HiJF9!n4bUgSr00Opi09H*0KN7%*Ri>5rM3Lsjv+ zn)-*%#3QGspD~KFZtQzL=BD)my2A9340bztxZz5?S!;KOT2RKzdyvZZhM2EusGwFM zpJc-s1~h+9a;J**$ERJb;DSRcGp|MdB_L7HD6gzc0yjn39U!7+tghb>QE6i9CmZsY zZJSL@9p7G|fSQUjeW;f8c-GyP--(I@+5vRWlxh`P*skAlg95NtR(E54qXW@^?}Zw8 z=2Yc4$~Vv5;P|v)J+MY4G;P1==@!=nx1;ra$8Q)5Ptg;yL!i1k^HC0^Muqmg!A3;M zdRJS1BQrOW>mBmRhq5Fn9S|&ILIc_zpL0Njs_ZZdBEYbml97Rv9naRXjbMytVQIHzl^TNG->FTeRJZ7vaSe=(Mo z=IfUpq0n1LcF-!A*DwLLh#JfLaTb+BPOJM;_E=?fKHsP)^;3#Zv{1bax?C%5C5G;1 zD|KMvUZ5{F?Zn_Vjfr&jcRf7zzx6{(*BTAO!u`x2Ugt)?mM6m5&!4|pAr?sogUt*K_~M`(?eV@{6#rJQ4o zAEsjkK`Fa=kP;~Adqk{mP1D2%h?T=XJWadFcWKyzxltd;_=K+2-QaPG#}rYM_LSlb-MvmB_G ze0|;vIusO^evHf)G^2QcImvA@+^SuI-)rI#hPjO2DABMbF!lxB?7hwylFO(T8{~*q zfd2rb8p?)SKJ|caJr?@7+G5Tro>({|Yqq@}AX=(XU)>33(Oz>$c(%AoaMBrkLyIFt zH)-4TmogWI9{t2F)HT0JMYgQ8(&f}WLl^eu1a;E}U^WS=(e+Z$fzIu}YG|Y{QM2v( zl{Sbwh72?e&??q7xyRGyC=BM8e{Nw7hP5#6m6)j$HG{XP)dsT`u4TJeF6sKrT8%b# zdGRdQ(!i!WL^A@iV7`7PST(3?<|Js1*F+{DHj@<@mZIgw_8$GgkzGLE9$<~pF3l+E ze!eC7zUAlh;sG)!?8h@zn&B;qOzwh!7qe@()>Z4Mq1L0Fh2TLTqrL9}63Y_@-D1Oa zkSGB~8le5c)TL2oV|%cu>f9Ui_eokuTXSwa$EH%N{5(LKVSzudGMKg@c_6^U$#Uel z-mH;XtteKv!Xq|JtmBAI1T$TD^99H^fS~jXR3ErG7PGMT0;Q{I+F=A@vmTWxOQNlD z%os(0s(PK9oI-_T0EY7h!GeW(d1i(cfDvcgfvC{A#lJ=|5P&ou&n&3w;7eQu=ZRDa z^RvM~_ZC7dD$`ItYP9S3Xf@SB)r;fe4zkP@Y!cF`Fk$(*SO_dA+db}xs~12ve~@(JCD!M}QdVW7 zBI@(_j@VdPRL9zta8Z(G#sC9N2>C*a00%ld^HK4M^akrun3zV^amfHv;DGeHJNzTs z86AJ=P}N{tucpRSAy%>gcTT7v5Nqj9ZO`TsoGL^puA~cx#s2_YmuAcdD>wdIAI(KJ z%8m^)ThrU(D;nC6cU2b|NJt7ZUwg-6>?*>YVj~5N29_O|NYpM&JVc7wg>l$M-vg*4 zO5;Bgy2Y?|Z{doHYyd{D$^Z-v7JVYk0eY)Guc=AcJKHUQs`Wrj>~Uw(Z#+OYzTRWN z#{9jQR~l2LLPh9xtik{tCFNV*@Xv=3>lfq9xn#^2V?2arnXOnJ-k>tBr|6c;XC0z$ z;Bd8K=nEykMYb*R7Ma_vpn8hNqtn_2n`>3I_Mdfuf^!m()9pmfG@|csi1x#|#=mM| z*@is&`+=;GwyNGaxHh156m`v3UXcMVmvqA@mx*iY)GYy|^5EEGhJ-%V66Am6@ z!YyS_RSs)!7RGq@1)y~rFr}ykK`UU36`Vvx<;Fcst-xm86c;?eF}V|HTJAkXbhK(_ zpF(Sx3kILM%`v?W$N4IwmegsON^WL`IG7mh0D9LDhC^}2NT9(PF0SX9V1sJkXS4|Q zS*wL$8rGaelrHg3uhq(#6s()ReZ`Ts=TQ!04x|A`SU8~ofIp~5g-Rf+`jnuTA2Vep ze((Ysi&e5?IU;RO5}7HH>*j7o0x+^0@vi>>NJf-4y13kvJLf&#;vKq;{37iPH+AtY z)s9(o4vbrR%wR8wtre~9TzH9zR%oL=;8PV~8@GRRpf{;o>cKlZzMdf)HA;U-7)1@; z$I%^cA&YZIOMqIhCA-(ZnWP2kO|xm9JRz5bhKup{SXyA#9Zv96S;$e-h!hm;rM@uw z6034f-x0+cu*M!B3u8;$Tpr;<7hzTh-^{pCEv~6S6=(OT)bcDBHXFC0;Dlrs$ zx%C3rD`++G5IO}L)jV?@p?3h1q6JgYJcV=C3$3XlNsuJ%m{bkgNU|pXQpwkQ8Usww2 zyAMRHa9X9J2V?2I(BQgh7+BGZfr{&7obQy^(99)&B_@R17y|onyP35o3{1r^$<|IbW^veD!>>}!1nbnU=eAD z-^@-E3#$jQ2D(Jh(C+kuLvU7yyfoHF!kBf-s>fJS3wTj&kryXc34Q}mY`l2+ltjXT zq^N+Vv^Ml{QMXvpMd8mRP(?)++gwKaQAODlI zFmj<@If9+5v#=MQw(u6|%X*99^C>mhYP;@13ji8*Q){5}Fotv++RLVq2&KZ#>9wQk zS*^IO!_dTngL<>(OzhmV)n`^p2jzf}V?sWTAn3v4|;1T?Knguw_?X&~(Lt zSx$}=TE%cAsPmnS*8LDSS@2!dY5t`?W`2%Gas;qCXz}HOrZTOF;XIGH7Or@T)w;C4 z5{_~J(%z8%B8_1T^+6ld+!}}h4Nd+gcGmKw5`#-)Me=!2xc$aw7&vA{!Lj0q!ec%;$^7uv8_fWm^ZX#(mS> zd4q6eY7K9i!e3~PM1Y5q>$IpD4&$=|XyJsdYr+!fN`p!5>NT077`m@18Y6T-u-a$w z9fnv%y1ZO@0i%$jos*QOLTXK(v;)6FSUOiLpf4~GJPp&~l!CIgKIM8tu2#-{ON@xl zp)3vJjRVQzFMtvyJv>xRinCk~^sjMTbAY$&FdJ>H{7p;`?T zp5CDGVOgVZbBMQE*LAbU#6H~WT->fi*-ibp4KQoJ$BB_OK~*oFV1odKU$hSv%~7Wk z*41il<|_0YR@)2JHD+GPuw?*%GJ0>HyGqq8YN=!DOBQm&bv(qHfN9&9XL17O&Gq6A zld3iKKc{FLYYMY9*#O)NE|h{$6=F?FWmd$}2Zh;gzF=6s0tRyxa7|hJ+AItdG?&Q~ zD%ncy%qtUvzr0DC4Z2K2+!~x-=Dj;=J%!YN);RbyFhIzan(Dq`(Cf7@nz8T^EiGCa z#ih;e^zk}@nm@OgW&&R0C$q#?D$_l=meStkkDoB4Mub=GDB8UZ&u^H%xism(`G;18 za`yYY7!eOvp5&&!inpWMC)`SU@hpXk6`v?Bm8(pB)@ce#jce+`!uM)z5M-%owmI_= zxj70i9C(f`ttI|M(}LDt79IJ7Wn~hw57q*tvlef>6c@SoiLhW=3iSrw=dHveM=4=r z-`%Cb={hqh5@e#=yjUnBkUV%j!4!(LFCHfHYMITw;y7wp@1!i47Is|4MGajR`1p*a zvNRVw_=|WV(KhAgp^0hUTEDCURvO`a*@Tb*(((65CQ-H?-eZ@Pr@RM!rEI7Ytd^;a z8D0Aj0)|VcVbqP2^5Ouzfq9HtYU#5!am*d_gIC_MXQiA1c6pYrk?%Var4?1Isyn{p znp$It+1$lSy`&O z-`ypE;0v9dYnC+}hDvC}pn%K%zU>w(gu>4V3d|g6E9nYq=(^hRwz7nh;0~S`rA)Uz z(vwRt33u*^vJR&=FVHGh_2bMzv2?O=%(ey)=eIJ=sAwu^no%#|_pDVzW~=>smrflCT4Z7=7{A0X@5o_tP=Z8x4}lbB50Oj>p| zt#jrB#1SpKoFJ%@*xi{zU<+t2AgNJ0m-Kemc_d3~S-u~ML+iYpa+2UMf*+#v*TsRP#&qosVN~--f zxC+7x8oyZkVW59VAuUqb@M1P9Kz3x{JwV}Q;blTbAi1^Y>GKc+fx|fd36ZfwP}1y` z3n*ZPcs9V=rF}xZy&n2SjE!1UP^qSuV_sj0q*VmfeO$-ftui`}2nb6wG#eY}s7AMw)c)Ti@=`LNrpzqp({Z(JquXYu8Rpu~Cs-PDu11 z9?Ze&IOpSrBFJF6yU$1F2CiEqpx)0=fch=z9RkguYHA>~?D(6&C^(in8lB~e!sj;Z z+Y0kE_9dxnKG*6Gt~9bc)Yp@sDi3dnlL+CO%t5lbN9%u5sHFi>r!WI#7g*+AJT-9L zQR1Ut(MifRsku73ic-3j0g@NZ?{`wZVi5|^r#$+JW^TS1=~12FaWmn;7o!FsW)D_Y zZE+ogv{zqjVL-&B4o+hRz%0Z`+Nw5(8F5x(CLTcBO_ev>waYiAJ}Vq{b>ZqlZgOLKmpnta*zN+SztVvn5fb8no* z7z@JfdP_w+B|8mV#%e%V11<|M8;yXBRvT=oGZu1hq=$FR*Bx%|L+|1^Qz;0H_+lum zYH?3k8Il!98Z5ZZ?Dm;AoB{a!!ho(?0mK`LNpJo0@h;J^tGDOWr1f?U91x@(fz4ge zxe3t-2X;HM$z$Cvn0=)MgBeC4N0`#NKIs%lnDTP-0Cbkta`l6#YMI$BDl2dgZ+@U4 znl&o;^#Ek5a(?LqoVw`L{;|gl%6HA;>f*F~ASDrcEAW>TUFZE}t^hADGVD;ME%<%b z7PQV(@5FkZXg2+*8wu3>J_?wA-F4 zP`&_Hn&jplXi%zb@x{tIN^}B~yg^CPZTa;mi&)SGyv1z;Ck4bHTIh2!m?u*H)JqB& zGJq#oTPK6d4)TEf$VH7E?dk0cl@bQ&|nO>OrKO>O`<$%(Al6kNkt+23{+!qix| z(gKQA3uF9((IWb4VTDFkTm!KKHSlR(JTXY1<0V^&_wBVb@f{R3k4F&%>(!qF)Hz(; z+kIslUF?ngL{qSg6htXAsfx!#RT{kGxdl9cT=2ri2r3iX$u%BPtH+s99s-9I%rVnP zIQ$&`Ci%!F7X80-1DuK)AAc}PS4EnWQ1GD>@_=Tv;|ByNKf2U@zO!Aa2@# zn7$)=699fMFtk#hmU)P_`L?%~LfE`v@hlt=Fu}SmO6TSSk%F^d5V5g^1_G+O6vYQm zXE@?*%_^XVl`sLg@M^U(_JUZtIxo^VBNg;^fmjt4&8C#ORjT>lNu;$ExJc8OX;^@F z2cth(Xc2Rb>O77K8FdxWgBY+27*fCRv%_F-;-0>uP+FpzN^5vc%fujMUE2=C7`{J{iH)h9E2OUTb#3G0)Wd6`#iu?X z7CCacctVMOit9Ga2)}#8vYl&Z2Y+7Tn$`gNcYnmQmmtQEq+l)ZJb9W1RU;GW18T)n zb*sT3m9Uq6Nc98_BG8S^&hs7yKm){}5P_@dh=u?P*mMUn+Tjs^y``oYYSl7t?&EAt zZENRKyXGj?psczp+AX&Pwu}&^vca=YW@H0a+Ofwfi&p^-Yq00>D6s6eJ3c0+*--A} z;^yKA-yVZ^}I_AjTRgJe-fpiLpN@X#aL1lXx~rNAg4%G9h^Zy8iRjx#9;tv zmU)&Ir*ps@qBj%)foZ+{UJ@92Ys3s4*H6gf@iaNmy~;XW!hnHl+51qmZq0>b@8Tsa zloqgm33pAQY&!>ugVhDP;r9tgXxp*(@f!}cYeDld5|+mF?=zqSnfNKZT9sE*9@-3d zlmrTfQ{33U#J+H*?N=_^Kw}L;yMHB#O)-MaarbDHRYF@{1EgpY6;&JI^A9P4N!Pj7 z<4l%Kx~^Gjx6A@Du%-;q?dlb!HvoB+7?gKz{H)l?a1^d7n>)7+KyRt@C}DexHc7NC+M6uKi1^ zIvVgp7b_w)^d?n0CEF2By=pd%m|OkQC8IzL^m}?B_B)p~`*6?GL0x;p>H@gaw_^VQ zFhl~xeYYZO!gX2DyAXB9pxbzc;ZC=IZa1YDf0N8swgaQc^BzK(X4E>8t=lbY>>#Rd z8!F?D?t`d(%*UF^jw#fZ!P?9C5p|kcbmWQWqZ*4gMn%`uoq2IyqFR+}X}Deo4GorI z1f@#RZ@bA1i&V>Zx2a}2+J!ORU_zBabI&nuRvQZK_j#W|aozA|P+%$3>j!%%3aP)K z_b;(_8l3r=8kJ+c%t?oFzuhHq8>Xv$sMlyf!k@ZE07B*G_2$}rd%j?8Y!-9 z*K8lG7$ME%v$v1TMOexrj6CsEp2hZeWzaU7^_jK>?yI3w}>9Lb`gnIPnk(pt#3Hg(Alb!CW(DwS^b+6LGt;vp@=L zXs#u?m0MMB(hLl1iZtx=6uyg66a6)b38_ue`G%LeS6{d8WI>zWh41kNuh1`d)8ZE- z4ZADMx}Xgo`N1pz=GoJq5l{(`uI;`fWtJEKqJgF?^BHF@i^0shLiGa6{{UE7gA7(! zN<(N6b?3}521{YrHCVMLUSk47h2AL}T)~Z+u%;`YF;b+ZQrb}F8nFPIvN0teN`Nz52-BAgJV}fN1Bs&mqd;80qElv$$EdZ40TUMXnsfzwbsjxLY>2VF zQ}+GJjDc2qIk?uFEd$g3R2x9Oc@NMzWnjQEwua<+)P*#!9$4f9a`b_%!K?2`IoCjR z&6jSyA`2L>X1wx2LlslH>kixvH(m9syrdK~ichqIK-#LRd-;wTLTek^`bB^x3R8br zO_dG`{-cPvh+$sk_?rMowgG2%#8s6jw!Is$VqFLnuAD*Ywi^2o2BFl(SwI8?QA7K1 z+dctTYp&uO)^6HxLqLj75Xvt@2*?s<71{S_0O7rs>EG0J5i~7FYViEZI)IE&&n&|; zHnE}e5KVAfdKxVdR-t1!w=smgkwT+fxY5kWXkmwhlTem-iVgQcvP!G2P;4HtM?T}sW$C(lI~Ouh|axNz5XPn zGiii9$85s6E(XdU2akva2~OT&t88D)qM?g>jCO3pFJLJ%oMq6hqRURU?JX=g3br>n zl~qFf%=RvRAS%#G%3GMrb2Pqdz4ro_d0iJo05YtShcd??%wr#O0F7cj^i&|&)*A8V z;6{j2+h>1>3d2PKyLV$Ms2TgC5G_|U)6k34 zN`|rH!xtkqR$aVBD2p`59%6}rQ@h3U0bom3tsmHgwvr`p%xZ1Z_8v0CCFYe%JHEZk zD}z=FmD}#oSAlNreWn&dvy~&C-~EG*fl)*M010cL;fY^LjbNHLoe%pi00o=i%2k!E zKS_z;>7+{4E^>!dlnRWjKtmd_cz(P?eTDdz64)7@5v+}?H;=?*Hn^I*O>170Juo4q zT?R1_$@j(jm7f-W0j_J*el!+%ozK*15)}~cyuz$S64b%nlqVY!)&pSCvswDU%SN@% zWvYOn*nT4jP0GFqS;){@J-Z)^6lyyVuOQSJ3=YNMYqaf zQ%DU$&d-@b1`5HR$x)ha*3TaOKvqpER9_HA+7Dapz~dW6-=>fbp%HT3bn^fyz>hcg z^)8@&HJjLEEZg?t3Rt4mB8A%Uc<}{-zj@f7)}i}6SO6dErtDQaSGA7wa=f4qGg+EuJWeZ^0j{bMoWfih5rB->L#=@7O~6$ zE>KMx_8|aP);42i?ck<9eL|_^1Ii{aQmqvjiaa`d`HmUrRrKTB(gR59`oRP+rZiL7 zi2;_Co8<8Tz~$6mtvyT;m6e5fd@|nHIAY)hqH6S&1CiHMd;CP!K%~SsJ*pPZH2Iz* z#5HwgUH4)#%^!b8Ct$+Y*LiP8kjmY?#5Ky;WuM^?9(!(o8Az>|YomvWikiv#vCn%H z&m?I@BAKsIq1Agd`+lHm>RJ?~*_NaLQMG~^#dh5L_?S1+DOc~`%m4r~^gc(3WLw!> zaFsJ)9WaH8wl6JmKqOs7i|JCfDjCB7Eauf>71bf>lMoOtCgoq+`GZEN7isP|xQ(l8 zZ<_8R4WX*tU$+{kD8`m|@eT^)bgUflE14C=`%CN*)s7g7ty;BykT`6WsC~G2f)^c! zn7A6P+ik4!N>DwNABpGl0tGRG$z5^J;uyDU99CG?dI4eN@g7>#)=$=82rO=I&yrI| zBv;dahzr!Ummd(I3#ox#eM$fTfDOr!whN>AAs~3M66gh`d`<{1r_5oYb}H=+4TsXD zNKt9ASmqO86tCB4mu;;{&HKr9jcl%V{BRlK3=m=Q5404RBY|FlTh@!N=6b z@01B2eZVj zrh(6$(>A#K3}uR8veK@V>iB>zb(nT_rn)(#KUd0oL-0qjIS4BEZCPcu;<6{ym@ zKBY@nR3}%ww*c@>ZjJ{%pyaxiJHN@0-t=zwi1z>`zh8+)z#NusW}M8F1kE#!cwoFL z4Cm<*gegr~dql3lh5ojgrK#3FtmPhFCiNYAOrQz5{dxS%Iuzi$?t6`~CH`fm&JKIV zmB6>d8NK}CDWkgYy0REFB9KcdgF(^aB%p#pLV>=7aKfPPTzpEY4V|LRok|%@Z0&0Q z0Dm&{fV@pzxJhWeFl4TLF?FqM*GYa5xkzJF(1(BA1??8yE%y68%Y<{b{{V!QO|fW4 z2kr3=rWmSPckmE0Tcp1 z>jO{?5OLMpU1Dnx2)?W4-)M0)#WkBW(eXOj6vh(C%9ty^wJ0Mer|AX8%+)zpxT}sK zuwQGHQ6;R-?L&vr141yE0bXGhfGmU4^2?eUFjr03gDGuWFLrz$qh)BT+^;@JY_UaY zE7|Aq0j@yVqGC(4-h%lvviLEmDaHd-#hBG-u022mQZ3wm)LQ%jfIGgU`NCW2!7wOM zz>uSgz5f8BTV_)6srNB^2^YJUrWjZDu zTSB9-ca(uvD$%DAb^*&!W(W?;*SEL}CbHRQy>T!DP2i2ZMgpmb0dEr1$VBv*16sW7 zc88^I?&Rfxw?Qyn_)8%$P>HC#4Cn2}v=U^NKK`IhWrDQvE-xek>Gt5e9Ob!j5wY0J z9^PWfv5@6Qe^ad#N)9>j{KSHYEoAxe60Bsr>y9NNtSGZN=iE|77HH4bE|s96OZ#)6 zS*wb9jPf*>N2ft%E7Lfz_brgrHk`nNaL_WiIKPEzD`A$XN99 zB`VC_v~Q17ALje>)`S$Oj#*ss1Vf8a#kTy)2TU6NplIs%Zpdk%Sk~R4A%NH)y~%Pg zR_i}^gx0F@z|2Nxq@nHiNviHNO#S@8aEQ(c?f2?YbPa}WxcjUUCc^=ze{kH>Rcji3 z_=i)byX_cQDm%X;<`(80DSml~6jcRXULY+K1^{F2L};{`qdDyX%8FMN{Yt7D(Oa?J zRgfyh?C}PmD+ZaqNSbGP4xG({boV0IQnUBGaY$yr;vGy{s#G3U*xqb`z8>d>Coy3c zuVe0zqM)p_*E1ZqV;CLf)V!yMsiDAtto)LjWvO~zV?#q|U3v2W1#OZ!g8?-yeFvBU zfLTaxyO~yqcOI$=~=g-8XenV$(Q6XeIRQvdbP%iPOgUkZ+ zsNPh8vKg@bHH`~h3LFxex-w{LWfTmW>~R;85MjBD9W{Rmg%udo^oNQ93Sd#wKYL0w zw`}Wal~A=SNGvI1Q>>t?lZKHRy#Zg?lt$YNsw>6kIKzmI18cCs0xMBt1@SOLM&U(G z1FQ}&FY;NrM?bT~u~jb@t8+zR>s;Yg+GYbrCb;@R?jN;00cpR? zRn%En-X;PmN_27N0+pQ&-Iyef1Ci+vkY27rEW$BR*7t~FmsJ#sn^LZyev{q<;ci(f zxhon6nGXxh4 zS{M{is})?3rnezR{{UF1;BRB#fFeDrFH2D1-V(i$Kb@L#Cntj7>0hb4pf@i55It#6MIcZGy2W5Qe& z)D7jXy82W%115PEMvT@PYkJaU-EF6Bb@d!j+-KnuAekF|%keDCM*2seECH8I+w%@0 zCvIU1;{7VR{WkP<8%n$*r9Uz(oH3i?x)Keh9(-b20%nNVOn-udLu>K@otiih) z7Uoks_5tu^+ofvWN1x18ZD#^qd)&G5!a39CTY*`Ni|^v26t`#iaZ#e#3UB@~@$4<9 zvtj{IEGo3`<|Lxo1AU&z_;4rzt}LrdN*1!-#8a7QY}oafm^7seu4R>FQw@hpyuct> z)zRQNxOIJHy3K0b+5{+Q4QaMYwaB%@CuhBY6g6X_P;z8ll{Dhq&;B;D5zF?hz68bw3AqxX7 z{Ig~$g7eG8N>$dX4!z(_lv{2-e3G>Mf-vBSvshY}M>6o-v^9IesKz;>^W66^V6BK3 zGXMr$`}u@n02=qbF0Q)_MNu&~9>_6ZGgv6z7>581E$!k8!rO{0w?1Q2 z6tLsJq9zXQv){a-0#kSLCYM63E%N&JDHaWyX~F7hK&a5yH7P`^bE3G1PE%DJalr*! zg4%uQ1vi%2%fw!mE{s0@Wdhl6Z`QKJE=s=XC<$ILN{hV%M?M&=Qz~1(w-CBDQlGjL zIl|oPj?5~qQK5fY#Rh{Bp~CD%zn?Hd@L7*OIEfbcF>a@SDOGz7xVQ$E*Bd2RHd}wA zd8ICjqZY;5(WZ>q+2kbwW}P18fz0V&XQSK}D+Yn7&)p(4G1MJ<{n{iFHx1mAUPh}x zezM1a4Hbjj!%Mhl)O09N4cmxk%##$sUeHo%cVW;2Hs+7F0RgB6?_<<7tgUpn@8V^> z2I_nHfWgD2YqDIaw)6LSRMASMm&+TvdflEL$wyi^x)%A0P=hWIH6E5NIF?Sv(*AgW zrYf=+YRC?OPk)Hc$(-!@JVYSVZZXe*jiL?RG9T%dwM8}7Ufhp}7!5}1pAjI@TEh5C z0f~7=Dqo;4wF_l8MqQrIzjDA`lDa3e?j?>JIma=uJ@~8osfSf6k09bM1YpWzpHXyE zu-*M)d9+>hE)?ik4gFlpgmCDdIE4rdI1jA5Q>yW=c-C%lOO$B3F8a9USOTo}PX6F2 z8OU4OVzFlI)DEs&DR4JaF%0{%)^AgtLfwQ-r6(2s6B zOi>F~Pu0Xy!!-rW+eNn@F+_4k#?f7}Rp*XkoV4AS&zYXA0JCd{Fao|Atbs|}#1P2R z#{U3Vmmn}--q0QmnshjTtZ2~v#xS0N5i895#8SoOdk{B+hcN<0vW#D}*k&gOZvqgXh#oo+bH!5OqfK&k*L4UCX#O7J>f&T+E)KhOXoUS>7pV4(AiX zfw$qx%!Rq<9)#JDRf@YWYTgM{P+)=S?Hoczi=8;;T|h4=cRJO;7RvzcF0~o90kcPQ zm{$!tk8g24tm(hI%!(V|Qk%GAv<0MF1Z3CwEJjQN3p z!=AYBn=oygp`_7bRpnD1yud$uN3OlW`La?k23>iv}^suO3wfWwB81VL!tPTvqa+1Bs;(|vyU*nAXPELm@DG4Zmd ztlG_(%&-!MRJ%NF-Uh|9OR3rBXEt56R$Aj^ZM|r<9Q^#DeMbm3%6M49o??9#6pul7 z7;Awiit6C`mbs%vTwbGm66K)Q1=;ZVm|SduemR0O9FLjt3K&|{SUmcRtAMqgIda6y zZNKb@hzbxoLt_5`67>SMkFkE`--N5#^!!aCE^7-QTOH<8Uw7`1K=6ZBy`s!!gD-Nx zI$<*ARzfdpJd)Aj8m`_Zh)oG!W5QaIg{m~|E-cdJSbI#O>|T?%$El7vfNUNA0E99U zkw~M@60j6qg&*0J2A1az{+X8naSC;w74A{)1|d&#?vq6=hg0ZccHk28#5FR<8}}MaZb7M5MJ@xKE&GK6 zTd75JF$C^u;V%n8+&{BX2(t=Gks7(P;uIH3fYpv)P*Q}@zE0kT4CxITLY4-E183Wb z*_wWlD2kcCOdl}3fkL(q_ED5D?x$#inB{VT*`t#CbZO-E0h(>H z+k3>WYRhge<4`F_P?H7pn{r4?UDj?&w$9^W$b z0IKUFkGjFH76n(Q zTUA{RR()YvEr8Z&fLhsS@8V?HXc~;d0(#gKrm9-&{{RS%<1J~vVW6RT1vn*gD+6O! zS)T@6+uQEZyJaw?C)$RIKvkb3nXCW;X)Kd42fsdkB4jp7az5-;)l4=nXFC+E(b?zo z1qo!QXFf>K#fB`!d5db%t~ZF~t5;&ZdLlAK7EITORf9_xw`dpw&bm&|ENhB`WnSqSnU8hGg8><$-P>$lq-p~tvj)%C^78V1O zh(VoaD=&yI6mq69#Ia@yDD4}zY|){Zg_jlXsC9UNIT4+IdW7q+r<-E_77RmP$ zt{GJ&(R!WcjI_6(q9UEFy2TD*U1SVZfN+{w#?S$5mg?5yZ!@M6*n9P|SyHy_z3&WT zp%ouzmL13&mZ|l>a|A6mXD1(ZmqrTGSYL&{BW*(Iub(ktv~y#-=3WIV?oPsVj=*Kk zNO-?c2j?;lXxfcCkb3bV)tx;@>vESN z()g8?0rEqbQk-}Ub{7%MVU&CLerHahf$t(gJwt=c2PHtZhm*W06&52j?)!vk)HMsU z+{I04u=<8E0*=2tlGAcY*%xyfcZ?CC6sn<`&BKFVIbnMMaoB<+z;gD5Y{Q{`eM-sz zwXHzS7*=1lXlgd9;Y?6pr{w~-mRZ-c%rT)44B76cQsEda3rVPWiD^_GPMnl7`XC_n zb;<5rZxXp@v_2pnE6pz+JlCkgqkU-uBLN~SEf=OWlpR<@bTl0))-RwlYWgRG;t1d> zgmG_o%t5RWB2^soP=uL53-8g0L!IS9o7u#7ZOXB4?L)YGJ%`*X12n%g?j(zr@{!T< z`j$CLmd=&y)TQ9AEHYcq<{6&Om!>q#C4#8z%yEDR`QlLmWih+N2t!Vc+lfWA0k^Y! zSGbxCIayuh&8;j)#q%n()#IVn=+ZrTSg4fe%QYcFgSFkSh`vjDLEFqu8gD{0IBd9O z2dgz+8!Y3QLktzO@A5TnIs$3TkEwG|u^JqAC25%0=tsLQlH}~uzn{ziG{OOcW+WY# zx{olH7Dbakq%!I1@%8ZvG7^VXx>)Ee4HRJES?ut@0jRu76g6jy_LnMKL91!s+zQED z^tp=`fK|iCGRrVAs{4D2+RhHgc#UKY9=!OB7)5D$JAK|0sqvDpQ^TdfRVxd?xAHGx zz~qOY67yYpKNBIMl!GUgCOi$I+BR?QU18(? zCRM`%8a|TJkP?Zr`w76^*!?ELIU3vQ#+1M|WVb#g)3%|yQI42SQ7^*k8d>_cNG=s%s>rwgLn4e+n1a(Z+Mo_7*Gv;%&AcI94m%8e1%&b zqsdTkx?{Yu4RcB-Bx0v7Y?4({2DdfGsEXBcQ?D?*8ag43)$uH^0BTFB0cKUYmhBPhvem~AGKI~Yn$w>!OI2MBk;j502nx?f(TdPE zqj%iK<7~7JTzHDNEiU!>9J06^8CfY%psiv0{=yM1m1gMd#WzGANpZ5arCxjZiaFuZ zvUY`+T&*1QD(u3Xo#g?gc9oA)GTJrY*O*!sY-)#6Ea=1t{$*gzzg}dy@Kzqu#bh*VI(I6qWRw(X765Y3ky@_Lf0b0@A zga(T>;@yy$robQj_h^B7D@nf)rh{f^(69R)(0G$t#aoPGDPG+sAGn$d3tiq|3r5JG z3%%QZ40s!wclRnt7cw(|oFlq(0!vc0a0Ip$hZIYz4!(Z87Nj*d*g z01Fn`V~IkgMtV*>#-%HyxR%>1OGn*hgb~Pf`0*DPEn+_pF${|W_c?+sTSC31CgR^l zx=KK>G3eqr8Aa;H(iyNYdJcTcEHS3ceP$7`d&dD&gH@g-)>c}-0TOT*)ObrFkOMqk zVx1rxze$;V3R)QBd4NFZx+~A914{=R-)@>sJEv-I=39iILyle`f~`0JKauuQfUfVe zH!WI3-T0VvJLa7Cgx{P^3+3`bM8)R}zBrb-=)IlC+`&aCygP>b*7<-0Mrc>&Sxq36 z+}YPpar*X#h5e~YMJbu?-2~c1zIE>!sxWRoPrA+6G?%<5sGtRb;CK-do+~ro<|X1V zTZrp5cQ@VfG|?4L-^&9?SiB4Plp>+gZ`_6ptnRaTl@vu9(Bfzr7gC-5#Ha-3PM#_? zKBqQW+?EzM5^3-cQIrVE+Y4i{n;U_vqmHtU1IRdbADD^;Q4P|v2fC}YBu1vVZu|+a7J~ym4=khX5ZTz4pam~+aDtWrTVnS-lG-3k zt8vKrkCuVkmA}Clh^0;HnPBTGLNdCPd-#IPN-Jrj*?qt@)8IPQ)XTeHCdv+vwr7V9=0!Mh(#z{>6&gW zv~}_3Wh;;=fmrbonomI8u4hMJp=A5`j)v>#)rcZ-#%m>uF;*+|cyY(+_Up@h=E>=2PM9NJ*LP`v$Nibzc1wtGLB zKqx339oT5vA)y0$gL0U3xbq28>S66I*QC;5EDQ0v#cQ*5g1pPk{{Xj8H1pC{JfTcH zv~`UN&2e9ZuOM4$Jjdjsr+1`noeQr5u)s4B9ywo7F7_CD#(E6*GJX8UgCHGN{my*3KHyIuVPpT(%WdaJVpxZn*nE0^BSdEbbV$QUZz)feVJ;xh29yB z1(m9AvzctJSoZf|3Kg?@W)W?+5Wvpt$r`v*!m8zzi58klRTC<*=h~cO=OCF>|^ir{Be>18n z6~=YL)+3nG;aTtB{DKVzl+~}f_YlA`Sl_v1W>OZfh!&K+a$lr-z*?h@7&nV#fNJc9d=5c5w;FH8y;{>n{-t`vd`LZ;sAmpA?YG)zXuv)n zaRwc5vQS==Kds?=u*;*$ST#pgFs?ezUa3NCb z0u~fjScQ6KhAizA>sbKo_hKZA9EX3uxlS8viQJe5*~<%-EnAx0;w#pWL|5A8UnKh zD`JeElBGrGt_I1bkNEQs%KD6ESlJIzVgNIJwr7|DVANbjnoC?Vh0$rWa$4G5Z735Q z4cO*n1}`0uG6tnPa}K2nHfA}kRv4|WJ!EN8713t%)j_>ZiZKor-%D4|ve6T3d+QYJlSowEhQ5Je3W zR=PEOFlvod$asdSDzF|H(1B`Ini~20q()lAX)B6cT9&S#w)=|RQ-n8Jbn1p$U=N}j z3_Xu=NGYH@anCm?qq6R_?d6pjYVoDO)U6^MdF7R78yM%Qz>hGy9MzdS`(Qg|jmKz= zbYQ~d2K3b-yH~kLS1l$U_39Set&Zco(s8hGxBCn63-^DIQA+HYI{jQpfrVyij=z#= z@%TFZZ3qFQN$VY0r}foAr&mG{u-5fkej;LY7Z*PKSE*;kMtvU5o=m3JFK(DQ!f^3ppeT>MRDt&LtBBJcf+g2yx;GT3roRo%#Ayd8-!YPxWQ z&ROYBUjDvi-1MTIH+-;61c4KCy?o6!#nS#TWHo{YxB5c2Ku7_4yPlx*%--qtpe7E- zL&pTX;14Al3)21|G&sxA=7yMeiY_eY*!NPK#kGv~BwF}!022{wcRolfvJ(9-#2Dh` zRn;ucogul6k#|;FHICo_ODr|NS~M|~rJKW0fgK5*-shM&un3uSJ-~@TR7e+NurzT4 z9Ka`txQI|2wl99L{30N__cp@|P)oe^<>FWh03g@5%s496nxH!^D}YU=>n(##_w5^s zv2#nGxw)T{3But@J5wamN%^+_j67UiYONN5I2%)UOQyTGCLjol&3%jzNug=JX& zOFpS@caH?QSqOH$pE1xOhdo};m|ChhY&LdbVvDDr25;q>SPJPd;^j3Qc9?=Uc&NAm zs;9VTq;3t0H2nevF3uG=?DH%exjm0^7HGWW(CzaS(NJ^?Gbp0^)OL;083+%4pE${s>gE0Jo$qFrvtIy%*A5RJ73#^Qx`X+Z;voK4jnde#Ad^M?C&a8y+a6hfm%>3 z7waFHa+Mp+X|%v__t%KG$g5blh+|fuGris{ z!%gJH!$fhQyt(kq6>qJCIP(Ei7#cpJrH4l|=@Qspr2`#bFea5#IbYUOSz0(T*n;2{ znqt_hQpE+d?DKK3^s6_H(JWEhZnCQ=d){36iU~k7yX~+AjCD8V_gH7cnM=p}Gc@iS zyLqVftqGNId!68`GLeo_uv&9v3=P{1s2xUW{2-38Mui=r1xg6C2}nn|jP{nE*9X?O z5JyXHihaxmgRL!}FL40-sAIIhSaelBl`FF9RbdDNDz0sTSE?E{gt5>rZu_KkHDhx` z8{Nt^nWi-sS6Myc zj$zm!F`PUgiyGE*Xsfuf)B$A-<1h{#O)!?o1h0YMSR!gFo*zCS$ zln(a&Fe-Z9G0%7IvX>CL6zsylODVbec!5Y43cp%HiAn&+JU~E8GU*$(%tL}x9#@Dh zy>zrQp2WFwvS_Yl6$xdSx5t}?f@mAr#4B0=s%PKCZ$b=pa`dJ*(os1atLX)^cs6OS z>oAEwv!{Du_>FWC)cgMcWw8Nz*I#ZdSrjhi+4lt^!IUA(}J!@w6( zWt9m4z6i0NAW>oM;qx|5(H&XjYl(dC$m_AbXJ)@)2}%PoV34ibUIb+;+*SX)$U%hW}JI0kv=@gFW4H)%)9 z?h10%Ry=3SIYSkquZU5BdrCdiej)>{fP*(znPIx&KTNY%^ig{eiy?aB$z#nIPSae; za%K$_a_=xic*7_ru*sTGJi&C?(5RQvhJ9pm~8l_{CjyU|lMv85+ zRw|7(uand>$SAg-Q`}lamBSs3tf(082VnIog9{q5Y)}JGU46)8e-T`sCe=*S}+4Fd`6PGITRMWNS^5ULAkJELU8$v3ZWnPiwN*IY%gH?3Crj0aQ- zzz?ji0_s;(d$g3Gug~3JvPA_ud5(hQXJ>bk7c*8{N5r6k(;45@Kw4VM(w@<` znbg`^ViyA3%#l~Ntrx!b{L4XYm+>Rg?mG(miITRwh*RUtCskEVo8RIKZynE%Firy} zELj||((h6In)L$Sm-TS40{~n7s0}X;hP@*dfrfEh_^)t9(%2kx9RNl2ZQdD7A`YtM znuN7@8c$Nl%?CroYF?r*On&36_Gf3>fq_+FL+e>t4Y$Pp&iig(gejYNOknL0mglYe z`=rg4uq`+v)j-8&;2FSG9lS_?us#!E!d z7g2iK+r+TCX?Y&})T`42s_p=TZknh05|!4k1;lg+tS#())&Q@K8&QUU6)$n;mH@$S zRhQHTlX!Cd=>RwYuknfwbFnY4FeGqmr0Mt~6+m}>{kXU*NpDylH&DJ$KZ$r}04Zx9 z*=^Yb2XkzDi5RW20=RjC<@Mm(`%oa2UW5cJ4fd{nW0?k?i#vF^Xxdf2PK?ZVgTG_U z04Qp=KHeZ?oFr9-QIUHT{eQ41TQ*w1(Td_~3ib0SX32GUcbc_!*v}C#Ez)WEcw>0w zYS5wLU{{uEt@+|mXa#CMJ$r(n-8vkYS<{oR<;+@3ruDdDx}eSFM?8Kd0W`Z>T%18- ziIyzBS#AykTMubrO|Z7r`pnUgwlR_uQ(Jk?K9P)3c%i&iy3Lwb)+J?VZos)=LTKvw zP2*Zhw}=`vur*&W6<{&G9|ir1_jpSdR)T)vTcQQRH7d4;3(IAg$37#g3uG8tI0~w3 zPfrr8WwN>cX%NuPpY1XIEeX@D1k&NueZ&H&R^^jGSGzE7*fu`tECbw8+8RY@4v}yu zD5lWAa8(53XaL&LLcTo5#>ViK+86J0ouj3vpOAVkUt&9Qb@k5;(Gr&fZc2vBomuqA!ch=RM5E z4XK3JX+@^n3OD}%u)Ns~)UG^SSpcely(aTRn%$`a8^cOkf$o(crwR7;x%h(HiUC*0 zl28z>7I^jUB68)B&6-!ZcU!dO$8#O#EXQA^eVPUUF zA9a^uFjlyEDbGG)!&zME(;e;#?xC$7y2CNm1q3;#*3nrhQdLwmrKs2}0MNM% z{Kmg_n8C5{exk6-94mW#!YWdMPprZ=0wR~jHnx>r70`N>gd*86Djm)k3wMw7gOQVV zwy@hR%S|^$-IlpNqLdf*P8!?(%5aG6?>jNKX^_E5O{bn2h8Anzh8P#<@y#3rHcKH^ z8;!KoW?v7x%D@1nHak4aT%l!1HUu!spP>zm36(VV_?Jv$LaE*d9Y6((-NQBmr75?u zF$VMtvF-O+QMSvxdxm!CrhxA85DN@~^KmY+V<1ycZ)9#NjNuo{0_@u))5J~@I){#o zLduR7-ND?62Gfd79zDW;RXj%rzC#WvPmboVka6;)omurk`hYlqvI0`yFC*5x5wG+tg}(12?S zKK}sNU&@xv(Q)~Lh}H!u-;_26l&$IJIt6kA8szorVOq(^C<{zQUZ+JL?-ev2wg!(d zNh*{Rl{;?*Y^x>wxu`HDi`irVp={`ULY25KnBoqCI+|k8Rxm2LJjBJ}Xbqi-u&q@? zQC3lSsBZ8Y$s-vY0&F`!bc<_Hy0Kn7N&#U934Z>elpP!`J)UKTWEz`sE{m%xRr3%^ zEGU+TZ<(UZ7+F&R5^62q_wy-k6*hdIx?!5odq4GtQo52 z(WD7xR3N}3v5fcmh|(d}ecRlyoD>Uo;rpxzM;7MOx2PG=1$A*K8$Apm#}bro3(j7B zL>X$wA^!klLbDr<4*uZi3&@yC)>_T|eYmDYY&Bke#8FMw#XhsZrTh4a^QMeGWeHY` zUxVgn>31NmGFNwh%Pe>lw}b{5>MH)z?kW;qN~1^e1kwu4EuMI}Qid$HXmP}Af+?D- z%v@rtQ(FH3Dr!}#u`qGs6tc4`1^JaL4XxeF0o|AeM-PFeO|~ZOn~Gc5mcDt zlj|_wsxJ?{Cx5=$JD93Q*9e#HlA(86@>jSRtyT0ZpP8px7O0bF)Pm+yx(l~+>jkqJ zYm4K=ST{hY;sBftbyp}=Yi$oHO|1iNH23yQHH+*%mjPZ?7MVbD0fSv8X@=8dhs3i* zJ`7IkU~V1d)n$Uxddf}9p_#}dW4vlJyZ4IWgC$}25NuIJM;EAtJ#}V2=@AwU-F~s4 zEsz2L3s-|~VbCb0rR~pHn+hRL@VH$7ujMgh)s|sgd71i}+t-P7q^m8O_g{%+GSM&U z7m~u$q!N@@1#o`iTIk^{nowKi@g3h)V-Rrc%7jOa$j4RYHH`}|_IR1VgKl)vUWSDS z5ZWyPe@)?S%48hHLpI3i_gQJuG-vA&&Ptrs{njQDy1O7C9E%M(^DQpGVpq%*lvdl* z-SaF<>810-5FHKPm2D-0kxGBJxRj_6(!Ohm0d7due_zZTsu)-qW<`Lq81?LxVok+M z5LYF7BPTM5QiS{Wc*O2jt6~U8CEccb<&7;ORmM5^_bdR|GwTOKj_cFhMgd~gyxJ68 z8Aio8m}zj%LuSm>#k!c4*x9`x5bvkSf}@=ge=s%>sfTU$)?~*jOS`@gaPUP}OmB0U zgHS_kRM#xp#ZPY%rmq{q=aZN$H$=8-JOuz}Hg-9Pq{_|L-SI9WHu8bEvxk%<3Jo-B zZsJopl>iH`iNE#XZM^%4!l2Jl*X9;lTtjD{e&Wy=Hdw8lVqQWmA$RjMAfOEK>L7p& zM&AA4W@qxR05oa%lne@(s1gVoj}r35d#t;NwhXE*$A%ImL2oD~0-4Ba@)JE{2G-cF zI^*Uv2r{m!aV&HpI1X&$KIB~`9fzNYl+*_y&lT=CLERL&T?0c-v0~c+d+sk1*+v0m zr=a|hBcrWf)*>C+KQ2KW4N9jfUIviieEKB8E;qhN1tznJB? zJqma6ytW}IHAfu9dQD3x{-RspL6M@e+ z-^^>O3R_h6^)w45RLx~uca{|;V#lx16;45-9XIn{=5d<~*59m6J9H?|W@e=tTfSAN zL8{RE_?4lVO6y#EjcoyI?(gA^3Vmsi_CDzmoeOg(XEKJW%L9GTgwgIP%oSOtt@qK7 zS|W>JIr9TR>uO$mdyn&Aq9j(OTPW;%gc4AW_i{9z<8*P6r*nx`f|i9iJ*kmrG-3m3DK&o(cFavY)l$^oXVCe6=7Z2 zLQJch&`cgnQU~1J8VUdaTX>a?m2@e`G17oFeoP+Kz+*hT%&@w)PKyj-g%ve?cqIbJ z+j`&gGFwY-hwtWWP!L*+eIQg2slhw&ci87-D}V)h7@LKzh= z4!89$je&YoPTqeqi9$%pddR=^D%5mr?V9Z#&SO(;YSgO6V% z5YYmWmYjH+ce3C-Avz)}6+0gNOYG{!o*#1erD=QOH*BlJpp~FlRorG!!iAe1gTzZh zO|3s3w{+iThMsEZC4dJF1H5IJLdd;EKp z2*AaKo*pH|0IG0scX<5EQ`)z;+{;};32b;UUdd|>Q_BEQrJ<6%9Uw-7bqnq0bw_<| z2;phh3~dK0uU~$DGY3O)ntL%PVNrEqS&SV^JHnLF(}wJ>zhBvxOLJrR$|^CQ!?dbeF1=&B_gO*}byYmY zIUzEB-e#!m-QUlNnhi>d#}f=D#fDAArD#xT>EaccC;tEs5JHS~>gH$>R$u9a(%7wW znX42%m-7Y&uU$pcePq!npu<*Y_ep35B(qbAU`4bVF)-8AY>gPI-BVa@ssTV@(9_Jq zXv0QHX7d^~i4Os=Mi;Re(J@BS@*28)#(>XXXki#=uDrt$D7}Je8%`)|A6WZaE^qLI zp(x~Y>Tg39**J|TI2xJeP^^mNQBG#LYy(tDfB}d6oXRxX&8zgLAYB!BtT-T$bYc6_ z8@{sY{{ST_#k@C%NvsZ0cn2^Ffth;K`4w0O#+;C~t1YTm1YB!n7w#gsf`Vn_nki@E zumsWPF;*JALc6{XaS~zXCDAULG@9i$TIJR^tzNa1MH%Irv-@7AU757l6N8zVmTf?L zz(6U6GhTk_DyfuODgzw28;^(^0j)v%Y%2&B0+(_cKrmXi$EoeoP!NFy+pd2xxP~+% z!L}gP4hdSL;KRJC3SMzoBG5u9V{bCS<`dn!y2A_r;R`>)Iiwd9g|kbKW-V7aSH*f%S_`G@$;GJn7qo+5Z+|SIf>>3`$+Y52T z%$XV;{1V;`nhl+sf7y^YWhR*Kw=tbc3d7a&@hl-bU3+~Ga28`{M}HRr3JbNzXr%R+ z3qUr+x?@3MrR?zmEkt)eq#jpR)ysVQk6CvGVfwSLXoy+r3->s$aRmnN;XCacT-DbK zgC|0b+rjZW+E!4@h&l@dqP#eb-$FKY72-7ZotU#Ruy|shV(d0!{T`yNM1|ttwQCk7 zu+<*KHj%qkV~FiI!>0m@zP>yqfdj9|_2X$&(waQQysnjg~*SJ#`U9X3> zYTUM3DbI;^s%y#!$-2?k?R>*aNM8I#7rc*9#LHb5TvNAy@-uU5U9|c}3bOAY-`vD% z&0W(^x9(X?l(kbl!CZhaZ}y0-I{ffK=`I~13;II0g$T5W-?hX`e##o<@WT}>EHHZ> zCSWPK99mY4A3_`TMGMST7&yA;f;Vjz=8E42YV3uIr z)tX{WMz^kF6{uODr=Ku(QC|vt-w@WxM?>%Yj+?}KX#FA%;dIgZGRTUqRDG{-APyx~ zIP)zG3>Av=>KjCx%`pVG10(bCFn29N)!rKr2~0Tb$`egBugjTUmz&BdC@A;iM}KT+ z%&lm&hNi@D*O!SvrwvSswrtKM9UVnqe`}HRHhq zR+1@f@WCrM1*Xrn8*YO=V@p|9wD<4>$KiX~lJm{3z96xA;oE*q@z5*4;q4`@~iYI#P~uBUAA0b8|JO!FF9cw$Hn z44_5=xzU4QZ1DO^tWzsLuP`ChZxv^c622gYI0L{6@-E5F0N`Hi4b1c2r53cE0`J45dn9$MhyaU}0PUlt630u@STa%dRB~ ztfqG9Pl&K>Lq>SM2v;m*R>*GB^9yH1x*1OriwnX$aWkIAci{IPc(YCVW`oYO3#0W>DBdf~%W`xX8~-`|c9g)@Vy^i?5jI;}V^Zf?ePeR#$Vb zaJ4I2xnDsQR%?%P`&3`LicohBl?enhbfMqp+zE`z!%Ggjy1|r0?zz zG($>9Ro^!)`p~VbUKu^i06|pyBJ#S7sCVh7s0Ar*Nq1rRDW2X>lxb;UY|ax%Y)eatTsFae}7SQ6wUp6lIkmL8YTOZc?OwuAxg}$ zrdImf=2=BbEoAZFU~MgUE96I93q-K0-T{GD7kIPGGA~7V5sBx7N3$4&1S&U5_wiE^ z!7$n>&bw3v>{);_^_Og1Oq+XLF?faJtYQ?`OTc=BF3gwI_fEcy6@8(1AnHo5uhykm}tUwe`{j!WD#Bgjy~)W9bxRs_T#JyFh37;uIpZSYXF^ zD_II#ZE@xkNv=#$$0TVw36)T*a8+3QnQ&CLH`6Ur-C99a6gW^!cYMt)8r9xaxin|r z$q=g8=-);mRsb5I^osjHBDB%{Ag5W?ig}j08r;K#HeMKZIk-{LF?u)K+-(jhcaDxao7wg;@IK9CumS%~fP*d555{BE0@c;mB ztu5on%yp$VF&bkuP|^S@Eh{wlIAStIa@me~2!S>jbEiHfaGRr-oV5C_Vu1cadLqKH z#6_l}-2VV90G4VA9;2%1tFsn}-Q;KPK4lQr7E@2Sh4VF&fg%O*F?H=MAdK0Q^_D`2 zsOY3bBe2eEtTGKlSvm6z;?38zxl-O&7|lsbwd?emEPSL6O$cep*|L73@T-Qm#54hn zuo;QCD{tl^X}3t`upa~!$jNHQGY#Q)bVi|JaOV*bc?UdR*tOU`n1&lyMV!kdG>Z(x z!~t1)HcMKMa1mrbxa1ouIvxDf!8VFgHTM1>GBFT7Uy=cc2L>zesbq7E=&obthQ%=YF@W8|zM#*D zNH%Nf*6s>4X;v``37#u7{{Ur&Y+a~4kdPI`w(k*4=u>)n^$U_5=Kwp98Jd7>a}v3m z=qKlB+mvB-I34vN!bc!qH!5F+Aa064VUtnwI;fs}+~e~DXbT-q&$(Tym!&4}f;Sri zQd`;gNZf@*f%?#fz0juYnFF9QI_VYro7L`?4DgwDDjaHy3@$ftikj76p$A4&4I~#T zZPHb+@*TG}$)2KB^i%`8n$|N3v57&b@8$T2s)Z>o`ng+bA*r$5mQnyvd00jy0@BA{ zHw6gRi$oQQi$#N&fLoHr#A?_jGS@7$0U0@?r?@b*6=6>BgO;o)_kF_kEeCuI=yib* z<7DMsI5q7O1-P@*!|^IET9Vs$q4N(xn?^y|@OywW#S3o4qiMaVKFMBylMF!jS6Cn$ z5nH~j0@0LTcYilAkgd?^E$W(`A!7oBxLtrd;uSf`acPIQ?qOV8kdAH&E}-S3@M2Ox zt(x=9%Cu0{2KNACI?I_|-C;xrNzxo7ltA^#rF)fdQ&CsY^H9Pg5u(w0VSLP~#kRbC zO#-9Wu0%9GBfeV@^$@0s?kO}Y32T>`lC7wbiNS2M^mO$wCOW*2ayTV1I;{TGZrNKV zd;HAx0JTNo?D&soPOE+<-W9bUf8=zPU=K6Q6qqA+2Je}S0?XZRX^JeXst0M-8nP+l zh>8V38+{SJiiW#+mn8_ijqc~Bkljw7ZM)yOM942z4w9zUN`pP&X<*8m{lt2<*$Shy z6bk~B4_!Ek(OL~D#7sQ_mwWeFQ8>mRm&{OJxA`&3#~Cad>U?dxe=LeEMSP z!H6X(YGWK82$m?vTpUV`W!-8!`4aA#PNU4RY6_*6dU%PYMwaK}!vYN^#94n<2yyAv z5n)3P3i?e=W!m%ZYK=?+@2sVXFs;+HYFK3EyqK^mE`$TeHwJ~`@EJIPAOI>xu&b3e z+=dCmI`RUs6$B95qm=yVuUhQ_o+b=yj*WC z&mW0vTFKkHAD?o7Dx0=z{uc*aD~mITEFiI#YvLnUTDtx`La#kVSo?9}Iuy;b+ttOe zj#~iZh*K;xM_KIolv7gzZ0>U_(BoD)v3$8v~BUCO)cx&%@j(h=6IL z290ueW#{gY_ zZnarnrn#jt=g-Vsm92Xnp>PBp4OfKLY@*x2-20?iEbtfOh#<8Jjy|(BU=}h=e?Jjq z4(cz1)OCxgfe`NimK{FkAyIsEjfHXn-Ryex003ItE1c~qv1qcNoJXRUuDASxSX#Ud zd-{qdqqk?Dx@%4tN;$@iWC4 zT~T0?v|Bn<3t(w)$eohX+-Hamix~d^w5xh(#5dyAWNIfWB(+D(ceP zS$xWRx)-e%VvD0BJ##m9d6jdN0gU}+s2;{X=_^HR3(_mtSVR!Rm}VnPG|j;l!vV#9 z)K8l* zE}j@+X2(*s!ek9AfHdyr3b(04Pp8Z}3@EA=^r96P4MOg`@epCSX8j%r2LpnqPJF|+n6J;CzJfmhFczc3Y6wULL_h`^TW$}xNCH|^XuFoSwK6G532zd3&4#5j-?hppfI!C7wqj(jnuIxQKfZ0dYoq#2J3T$^V5CK3#=r?UW zz`8X`yuEm-go-2 zxoaq}0Jd4`J8ufA(4`Gw9ZN=gYgUTSh|~oExYhFfM(8J`G|$r!Nx7t>yYBL=o7NQh zxt35QLp|k=Dr{3N*o&&KsaB?HxgNbm;6mP*al?`;5=oj`)}iOg+a}>yYV_|hR|H!? z-Rqy2j3jGxH`~z1K$I-5i`4J;q$@_W7E5vD_b!YcN{k>h=zvCbEh8B-d6%+XR&Qop zZ!?i7bw7fojdu~!?d#@IfG+5?hpBAWC^K~^Hu7N%*px4C2j zsH5`??Jhi4b%7f+`h#_}q2Kt$tw60U^UQAMD_Fh}N?vXG9A+m@B8U*oAqwZM@ zTF&g}D$`g6F&IG(IH_tq8d1-Ii-2&)vD?(4O0%`Y-JK>hx6O%w)1H&DEQMOqaQBv) z6?GlA#DbRtdBTcLif3j0I2S28)IJBy7(5LZ)RfF!S%;IF^#F(kFE5`midp5f{>GXP zMgajGTT2*~OW}1<$ORsW*@zAC(8`>kRyFAmgxO9L(lXJVviL$!ABw1zV>H$k^g)2P zEzdkZ5ztcAifH?BSnIfA`pgwp+YLt^h{~>Of_sX#v10M?;-DdGXRanxc-3L`tgvE= zF7$p-5h7J;d^}8~wm7X0-eONk7j-)k>C*$S ze;H9iflW?%n}LhTJ^aq0D9QJD;@5=_k?fX}irLtffEy4v%a}z|I*POHGSa*cZv?i> zI@S+qQiYbKJ>u#tQ+sQOA1lm1Bg`r-3cx(RBR~Ph)9``kZ$)#1qL%nW`_2G+;T&cBvVp;~~4G}=oa;)R)C^XXTHhoj`DOHBY^!F_esm zx`=?%-im(jD^sD0rXW;&3%`O=(^YP${-#Jx7rEwZD77rS{STN>>NB^);xrNIs}}Yk zG&3=kOQF3ngjFkzyAK}Wnj5W#cuh)FEE9B6N}fw*1B; zY@=9X(i{f^2~AOr7^m$=rk6&>&U~ywn^4ErA}w{MRioJT80lGZ^W1=dP|jP-DR!&N zLE-~#!z#Dzi#PL)N_p}{@h~y>Fd#2*2q~l?N*-BKw_bDz+OFthQ=TBKPUB#Xt5YJf z_8=aiTjSJ9n9$gL{mh89$j-m%^B6h6{Gpr*!TS=hU06)60PFt%30@0Oq8*}&?;09a z<3Hr1dAosMbb(PYqp0En9o6k~7}DCzGb>vcR8TnP)8Cm|?_AN6nLutRc0CK%?yx2a zYf|1&dV<}}QIdkMy5>^6i=^BrbY?1!0o-;=0yfxQIPon}WLT{NBbHmw%q&dVTz))3 zrXyqambN8Q4C9#SY<=kImqp1$o40#7Bacb#J9(F&|> znV8{N*KX`oU;v1FkW3bbjd!U4uo(b&t!G~9UKd{SleSU zU-L^Fp@rYq_7t!T3svT2ODqY&aO+@6bzfiHYQrN4@cXPtC7eELwIwi+ z$7w*_R+lg9ZZzLv;!{@}7E{G}g_j}iqx2tA%R7X6d_BQRD+@EX3o8xCosJ;`^x{mv zU_*O^(;^SVJN{*ig@JZi%mo)FZ0f~nC9pL1dfYB0j7diPn+cKjwhJKI z7J+lCkY*~9fTcY7`I@&Q-8tZ5&>B}Uu+gkWRt%5_$9tF(WDafcOh#pun(DgM%BV=- zI2|;6OSUk8HFfy+78XtJFGTk%NP#EQZc8Zdaj@fZ+Xlwij6)rPMvU)`C11$xSh_D( z36vWo+gxs*{ntzB~ZL(vB^!>;%x;okaW zdPh*i8wM0zol;oE0Tz4#grJ6jTMr7kcp?f(^v0IZiEZw20sbA$>*Dg)5qO6y?=`yZ z3x3)e%mkS#;JI(iV;6+or2+F>jf28-%`?J!@ga_o`TR987x{*1BRq)|nuZ$zO3 zQN(xZq3$J$SJOe(<#5J_(!;thU>^{Hr$~#}x80&9P3S@PB>*7#WoT(%DPj$0DOvv9 z%XVA)Q0q{vU5R1`w5|bBufceziQF6^b=CrfU{m+Jy+$jk_xEXFEe4zR9%d>^+qS*5 zUl6}=EZq2v#m*!?E5S0rG|W%a z7|7^kwSTe%xXRFYn1yzhHGa)kHjK;rW*k@w^WyuwwhO+s5vZ1?fs7(6eCCB6rKx>G zMZaobqrV~em-kbq&$SjB?7IucbJw|3QO#jZ@6;<}#lvpi<}vQV(2hqPg_ixO%wkr# zw%O(dZp}A|9s|YdRKYctElYwFWje<(M74A}E!^hgp)-^9QIl7K^4`P?scAd+U_G~A zM~aCw8z1k80!MbWhn_z$3osfCq7+syEb|>g8pdevEC+8x<~n)X7U%2n1QN3GndS2l z1zWg&qM;zl+AILGF1}#sFH~1U`wb2375pGviu4xu@o;}zPtn)$3KCNxah~#o**mKO zvZ1M7C*3A>+^Q7zfpDO7#qh)@78uWOQjvDj>t773M6k)DF?-0de@I);&(ILr==p-| z{n7>36iHFwFm~A1u67vcd zi^-{%!0ZLvY|%u2v6%2jq{tkK<%Pu*tn=;6oKB|StIv+aH&Ryq$(Si<7A)jty|;L_Tzdg#O# zWj13&vFqGdqgZK;kcEt_dGTK5=%GQ3U%!YMi)!xvu@biwtOqY=?vcbMS=qn!6po_1 z4$!tBw5^o&g>quX%&E*pXkMzz;A+MFc9nH1E(*rkn5=9+_2N`qkp=95pvu#v zy189k%{Z5pa`XEoe1tO9{7Ueprd&Yd&=we3f=${&=r)+VaVTyf+J8|nMjPn%qegkDxe0s@$oKXX%WKC@oRY%^|4RCP-TNn)qZ^Z zN+M}$8X=Mkesj!6l2ppzR)Gr6$gZAV;;1g_M_=CXf zyG(X5MnS^?kPyk5b|aFpBot zSA_cK{~D44|3oVfp<7a38sbd#6**D5rBcddPa*t*FE6=)x$k&T;Hf9 z!JWC?qyEGxDvESLjsT@*?&Y3ToEA(kTdrEKNT*vjom?A^?u}p^65M5Ld_a;R6n759 z4_d&pz~3?9fJfn7X%EWl0@K1+L6`@vy^H|WvZng~06wKq>V~bme0rY1(%G0rpgM1a z5+n`c=PwVqTUcs;k5OW^BPu=5GW-hk+CP;HC3P6v?ZI*(o-3uEVQe(eG#6QYBlJKnMkUx z-o7TI!z`hv0t_0E-EUXK5JMMY?8c#%C+n;{t|+Oc51(+TT&An6zF~nKY}zIbTGVV) zo+2x-q5U_ElPs+F*F(2yRI5#@SrSYYdzkSM_BM^@@8TriuHz@#lnBqBtF#L0Q9`Ge zxvWb$P%ns(Ee#=qxd!0|Yd#@}TCh5IIh3km>MGpuGSF}ibz*3i-IKq9I3QJF(C5T4 zj$JZbco-mF^oVrm$Q9H`-Vd+DXco9=K-nvJ z6xrQ~4K}y0U%#1QfJ>org-{HjuaCOMpi1ku(clvp^nqR$im}hBMghKydwjr_NqkR! zq_7xzl}F#iwSW|Ex3d93H`P&s&51$z$8>NZt`|BQIs2qlMSumvFYU%+VMk++46R;G zUh@{-aCGH-lHva%%3OE)<4(AWdG{LilZB*H`#eKLqC2HYbpN~?MITT;%hK469YcF>cGuAN4}F!;vL{j$ zE$=Pu;weaXv^bdUwiFqW(ic-d+l350*=&Hr6~2(_zE}>9b4V$a{3K;5rTFT|m5&P2zks)L%aUf!iEiZ;_fGerepU);n6S$BOEG)538&pbq> zMHL!#^kzj0b=BQQ;AxtD0S!q)7sY-VQVL0hYsWB%AQU>b<(J_FX2?dTL#06gRoPkC z#R2WJ>6u>w(4CWb-uFw?VSt}xYUU}mp-2sAi1XA~_5 zL~orYW>9J>{$1d#fU}=he~Co6I~U}9k8-n;&q??92UKPT;5H~+O(TcPpl*VkLcMC* zl;O$h6l@9>xctV`eTh8^V9X)7VL?Yfb)SZ(_Ut=4OI4_h14mvzFxM=oy_`OwD?+Vd zr}SZzfb>W0$^$^HhuvcrM7)+G=>c7^SyH9~c0T>VLCXL(I=-L^?Cev(;u#ULx#;U= z^V(Yly4CIC9ybC4+&fBDAlrv$OO|D2ZE&OS<{czpq4n2T3Wt%)`+_F5<(lA)s2jEc z_xBB&C@m>Dnbt_UDR=fqEMxdFGv+~`(=S<-t5}8xVyuwCWi*IMFRk;!ruPk`NnAy&GYJ1SWsFWmUUgh{n4&J5Q7qq!{!NHMgtr?LTWVGjbGZDmT5q1M=)y&0xzO=l+=dSYP|CiHJUkiusf(X zo(NHohDJ088|QnQ>od?<#%bmY$nPNAEklI60w@jgv~?!vs3kJ(<%4pR7Q>Gal)}b! zd)(N!o!LA1xE6zMF3No%ik6i^XX>T~L5wir^(iU}lFFxl6$NVm@Bf~yizf#rr!sa5)%VkUwCvwjSF^Wb{6ch)Pm}{R*yR5hR)VXS*!#{KRfT7Zz zUv(lV3Nl0Fd0}wenAX_N#MQvRa{`DSOWp@ori*m*_gE(j?&^CJHqc~N^^OItE||U# zexar@O!R%kdV^tC@=UCX;rmNKbWqnM0Ng;KXR#S_0{0;IiP3u7FDSCB-lOBpX$=*T z)$Uvv#I*g?nzfvvEOtH1G@`~vn)~>QrW2s%p6{4tR~%S&WhKz-yP44AOC+KxF6&mG z<;S`$iR%PHVhG+T$6J89)aTD07*^LxyuC$39hYB#h_2W_el7&<3{jdp!__slRsADX zH|zuZEUAwrJHK^+p6c&Yx834egVMSY7-Wn7y~?Ddz-S^$V#L?G96(em^r6VG7p3YL zsLfoc$C2Qcu%~dcB!yLQeW)Q_WldUd9R$G1hxXz-h^D>$N^aX(RZ-l6i_EsFy~IIe z6_s-1^DxTOr1nWj`8>e&VH*X1w(%2UJMY%+w^vfwg=-Kn;8Y5z#XJ3eA1UF2n_N9nL zO3TA4kOfnADg2nS8oE9ig2}5Nk2M@xyv(={Y)Pgxq$+J_O6w5AX%%bCGy{H(AN3Jt z3bLxmBCRPRI5@d()bmt4(mh25DpB=4z&pAs4%2AWt664_JltwKy966on)L*B%@`{? zA*A9dRT9GaxT!^D**RmprKO2d?c46qf|QuA%jN?RD+ziZWP9Vvg?-LxE8(-B*2(+SU)_H!R6V4JQ}-g+w+F6Zl0aHwKqnFj*NjgOj@mDhYWF zX2q=DBc#DwOcQR+Y&qsE^v;(w4von6oVG0bQ{_bA?=<_QDkhnO}X?Zr)8ndUgY%n?ZxXsqz)?*Q4Q@9*bnd`V4Ms#s$^tW+T3p%dd+rM5KX-WU!^`46fN93=Fx4+7)(VvwwE%?SW0yE2YQ6*@a+;9`IY8m=;psL@lNb=nq~2SCSfQ8sGIcISMKCJJCBHQHCG$BYhRk}x$j`-q1_ zDrB6@%2q(2SFXB{>5Qno>g(oFi-DMKLR!tVU2r``m;-0}MXJWM0^8m;Tx~i+`b=Th zPh-W-gUE-xJ0(!q8aUBry`d|~=;fA`7y~x#>46YmvAOPclrvpvOO9$8FwB##e8`73 zK-XR+&gq@jcz`jx>+{XSZMG)#`*SlRLI#l-R!%fR+FOkd^C4hjsC@b+wbrXos*F1e zrZ0%-06L^GQuJ~!>qrgDu5v;Q62qZzETh~t?#5|GpgvD9KsO_~?-X{$6A5f5K-yR< z&E-thaVX5s7^BY-7K(r?giA8(7mAFa8g5(L+|4fVw$J6v0@rkv#7!R{Xx+WN6SM)c zxR|RMHL=f+iI-}-UPzAhqBZo36{fR4d|WB4tigi$`=oR=i!5IUxGDfQv+KyfI}6d& z_YeUAl3Iy`RTgZohp6DgAX=v!$BK1Q+`eCRl=7Mtw!C)aVO} zUVK8(#%+CjN>QM}-?0QM0iyYOU>D>U%YsS-&|S{oF#uZ4aQb_I6<`FexSHX&*~gfU ziEM7K@9rUj<-)n%=32-Lpy$k^MHa(J*MUPbX;!)|mFLtNc>{rU_YsXnIkAEuiZsdh zS!PRni>|}me{q^IUv4@AG=|SlkC}eTk;^j>Hlo#VL0lI$xxOZXEm0dDzU?er&Q`H! z989}{+f1cMM#HSNnPo|%k8+l^S-SZ57P8X_qLZr|10zAg4q`2sTuEU8s|>sltdiUp zj?)F=Ep2Jf648*+Mzrp6G94Dj>&MJM?-IF?DM?m1=kW@lm2-jsnzxUWiEJPZ*F(RX zmx7}9P>zn2nd3iy5H=;*j9-~>gO>Cz{-I(F7&^s@%pD`Qxn+@Xu4RIoj;m#$D)L$P z^8wQrKevRxRSw6QgstT4QXf-4bDCfN0~)w-`1FaZrnl z3q9Y7LEQF;ea%ELwKI2OkVCgs55Jjj;0q3jG@3;%uOD=bM)|xlSgg<}s(FYJ*dtWa z54lYWF72N&$2%!~&#c6eh7YHw%o3nbWJ9HLKBa)n6B={vlp?E#)#ojuQJTKrP>RGH zeFe1;Tx$)TXfH!s(h9*_ZBL3aHXHoBFi@4WLbCk)#n3}Kh~W8%&IhO)Q_%_LT&&UR>Dj6{ zn^Lko7kSb%)G<+tB(xa|NN*NC#vDSPR|3uyA<`UcT+Koq=O8h(97oor=} z#dy%d^%F;GS$!c~v$)0eGMBe#XdPwk`6h~!XpLeb0759b$y*l>D4$h}$)e*PuP8#e{B zOhW_}{{UAqR&8lO_G479MOySr4H|CO!TY2|33~~4eW{Cusv5hdU;qeKFPTcz7V5nm z9}#p6HG#9S>H{=Ja#zHC(kjLtk;>b&ZT;&V;5LbFwx4zQgrQ19YI-3LX+ny7oIsM! z%r6}JiL$pgy?gw?5N{^hJ3iq6nzb0Ne9b@v&9-1~21cUJeL!d|L{o2XP`6y$PBZ+t zg2xK8x6zj3g+r&Qf(cYx8I_dw60Vl{VOwZg!t^{;Z0L$1lj#w9byj!d%(=_q4v%NV zN*|E%=2TNIKwW*g!Unn^0j1Gx?(rL70NOlwg*BG9`js8wSKG|UvRa9`g(|@@Lr!2d zS{JRmu&hc|XJ5aVdcmVKR|L!4X>iT&?q5@*Yc<2}v5{Ojf7_VdaKPy}n0vnn)rhHi zr|A~xFF^D#3gL>ke^`jD7m(7(h^n=tMt+kiCp_zKFe^k#!d-C!*ehP$zV8r%tSg_8*V~Wo(Egv>eBu-hT1ML$5<-DmleENx$h31!^)8+{0gJ_FSA9a^_(T#ZK z3jn*z7Qt!;lp_|^TN^0H+M32KG-HptM8VV>#<}~vuxvTm+3_yN2F*=8!&huu0u3Xo z(z$rQP;-Jjh=gc#TeR)&GzCC%bmxXpUqGW5-UznncYFN9NU~lG^9G}f{{VB%`-Dgu z1xHWz0*w?lUvVl3ErS&E5lX4=#L1;(O2oaMZ;#4c(tccdo9}c0#$-5YwjQWI`Tpnd83ZTLJq;-xL)s7{W1}>ja;bl7NQhhqax2#jMvKhV9(^v228bO9Z zwSCX2odH@X$KTXfal5xto?foU4Ai9tnXv>L_ToV|}iGTw)G&twPDT40WH2(l&W&(5pea{gqUU6#K zxyuweCUIFcETgGj*xZb&R~tV5V7i*1lS@T3`GV=9-FZyp)s|~6qsUB4w%Wp%u^k9W zS?kQog$}NK$RGmlwDN$%(X$xi?vmq60?U4?BEH;^_xF!OfrUSeVLM7*4dq(Z=2jK5 z`2&lA44qi!xRsDBpgzxXEQZ*sW9s4%RMpM)8Q2!O$VvMQlgw&~vZC0)Zi_T3jL z?of)Tv3NGG63XG-;_sU#WFisSC33!z6`Bcc6Mh0@5>~B+eHbcP&{=u=mPQ7^;|~*h zwOn7L7&Y3mxW3ZxdlR#~1!N(BwvCuF?z5fc6(+9jGIsF|$W>@J-QqIBD5{<%wSWws z2N5>*Z((*g2|}a|gT^aps+DIi6*EvTfncU+!=|e*!||A9EG=03sxFEkj~ycAS-30COt!~2#WBk8GlEVq70{V z&!2=1VT$q`@%V$N7H>yvy!^}Q0-*6y<0lK~q5viPJi@y9+z^Q2EM`xKuSxV9M zz)M^rtO&&Y{LGl*!xm!wHJDg!nxa1pu-RqCi&gmoRtN^MbuVXFEvH8MpH*BGqJxlA zPYwsfFCCQr6Ex2fpIh%S~yR)0YPXx&fYK7W`>nI%k6|2GLhhiWPudJAUW^z@iBX> zuQAL;>L{a9$xx3*+CaUED^I;9Pd_sI?gp)9>^dJ`Q4B2N)Gr=j7j|%mx4F9SVO@tX z!kirQ=`Ok%E{=RN9$F}WFSu*66uMuTLe^ULMMMh=T3<0VJ8_ks$K4`DR%YiLLs27A z$3JdW5LgvgFEZBORokJGEZ9a56nA5RjcOeEj!{}w;n<6OArsmt9b=d^YJ?3}qRXg= z`RP4S$-o5a!lb6dZ*Rmv7$|ODT-r-b zqb5JI0)W^$pKe|qgl`cUQ_%GLiA_<;)0D~z)mXFbKt-0+7XJX?{6eOy8?k%Df$Hw| z9i`-kXfD0TM(AvZJWeE8k57+s_AjUSF-AeVXWtA|Qo8G(?Aug7(qbL8NUl6eSIa%z zcqJo5-`UI>5L=fpG8~_ym?_b?q_=s1E(Zj&q7`{xo|5fCi>5D_7kJt;+r_}LROxL4 z%j!^W;m$Yn8(70Y8g^nZfF->+o!XYAsrtjDqeJk*4Gz?8?*$=K6v51Jo)ykR%%XJ| z2z`-DbWpwF-_%ZkDi0KyS_JMYBV5J0Q!&?Tho>GGXhsy#Z{%u>YCqbIo|vRt^;w!0GM)Ay-mY&!~!s9|IR#wjcWH>%&tBDikW zi@%sdyS)Rq%r5K|*AS@PQT(1E$}^?c$?9hHa=SaAHNKFxcJ=cG7HXy`jKQl5HG98w zn<`c_(fe>%1>FJ}KGe4AEh+f*Dv*}ah92>K(bNWb@g29~IX>KZy#`VG+td_qyfi1j zh&(DN#~)Fa;gcmblsdo`EgZ(wYo!bu9#Z>8URClwqgzI*RZq7S-szHma?xeYeND4Md}4t&HrDdjE~Ttd40Oc~?L1Vd=fE9(mZ z73D|IH8TxYRb2JCN?lfFh;UzFxfHs=U+MDLxIn@4Hkwub~u~o zb5X-?RuwU{G-pWTTZ2aP0>!(7L3=y5l(Od5)a1Zoq~j@G`b*jqN` zVT3Fc+K)dFnJfYrJAKwyZrB@f-|I*`APs>+-FW$$R#8X+;Ngbs(;)Et5G*(>73}q; z?k~cWkuDz|;tHl14IfAr*lJ2^xq-hBg&3?lwthZhrFH^)x%$M+yDj5?`xPsle9P&G z_Q0N)`zF=%cXcnx{mZITAk5h#}hSF_bu{_E- z9@KU^Q|SXAYApGAJwm47R2g*hL}f~JHq*tNO|nf9b|~qYZHNf!j7 z-6peM@c?N70bQj7yrP9R8eSo43ZUCN>}`pHH({H%&n&pO#=74=W)LBx6<^wo6s(G_ zP{o8-#Cnq$ zUFXM%MjHknFNt6R%`3kLxpcL%+j!zwGpiM*`?E1CuR6NM2riZfUysYb(s-uo2jBlL}WI4m&a6smjz1*GO6$+UbdS}Dbz60D}h}R3cEf256 zp%$tO`=mLoGHv}#8WhbodDcG5HAkq7=&Ho~f)$8+_7oh4m| z@8V^H2MO)Ww4n|Qe0qTb0hJ5-knA`L6!$#AH;Qd{2(i}f-JdW92v#Y3PM9oCo+7Fd z)tU}{e8(+{+^@e<$wGzJS%j)fad^m$|kL!rO>0fOLv0t^fl@Qll!SL309|C9lyoLW8UOQNlJHnz70OlOxN? zD8L-BT$NUL%JbV>tVXxn0psJj9}=!k~GMYr)VjiKyH(F@Hh;Qwm^4 z{@kG4%S1z`xN2uPbE~{Jt!kw`o_{b6RPJ*d%rFQpXcClG)mt7uCsJsq>#Vo~H^Z;r z+_DPNCKm~8%rU5O1_iCcUym?vontmvsgj9qEGy_lfFi)NXJ_2d%rrBeeM)Vyut(#P zTOKt9Uzu=iqKAG+jfK%>u~Bo3W-$Rkz-P~<29zB-eItzzMpXBd3Is0WJjCdVjg-^O zE~xRdr^L3rrOs2l0ZNNDcoLf(C6&K1Qmt->oLxFH9W~l*JlYPMnm(Y~h!YP}n}=j1 zOfIj#iC5tr_YX|Iqkjczw4J=Al?{X?@{4!|#o^n;3u8b5sP6M|8eL=xQ^d5HE!4BL za40D3`1cS38icK0Wug?=mtN05nS2D0g>&Rg01O6hr!hUj{wW?JfzD_;+^7=n8uSbr z%yr3F!jct|$H zQcF0#AS(bB{D-enmqO|u>>Ys0kCEt$@rA8c-p^1fC_B<_po?*)Ybw?4)4MIa4l0qg$4m1VoVoy+$~ z%S3MMyN3E@)Uhg#kw8v<9mur3^APRGAY1Q|n6l6-!9^41qrt|`r)8T<)Nv%1%OFHEi?soms z7g*2$-)E1+4Uj0;Tqjj;6t36{zK=}d8kAGFUr7S3Bvhs~y4tvu2pRx$Ik@alDwJ)v z#HKn}{egx8xtp~CbSTnX_XjBjhHG>?oN1UaSTTbv-7VWm`_flH+?sW+Vj2MCufN$q z#>z-wvN}eYS%S)kR$r-N#U44Rr4gpWn>d9Tn9%3Ps3w52s|As5Tnkowpp?A6t=xt- zTB6-T#SN)c6EmR_8jBcz57I=*YIv7e`IGUn> zDRYSj+f*R86dD+`ZN*Y2Knmp<+Fhs}=Q|bSv(&2cq#E4|1*40P0J6UZA!+v!U2( zew&9QB+$|*+G$1)pD@000m;1U_pBcT%GyS14e+;rY6aI6%B>tlmZ&!tmq?eUKsp?e zuuIy@d=5!vjY=z_#Ku|9m@C9d&zB=a>_*B~RMq+Wq_axFeoOK55;E=>v>7i=6k?CH zD;sLDlIiaFnE)tbrA*ITMFK)yiE(wh4TbhGB&yQ zN0|nj*wL_RuvR0KsFo?nYfNy z(0jgNK}#E*Pv4kc5DKS0QibZ&&tKva5o@Z8dy&Nr3o^?=3g)--^D^9XU-n}*HCy0{ z6w7;^nQr$K7-;PyJ?Y&W)&q^PuIC>2B74_zsx|!t3c=N zzy=x3EnT6)x1yA5`20sT&U+!@?TDK(coyI3FRf^sVFDsrtz|p-xBw}Z%~3gwXhK{s zbWpm_*SVQNimfc{aSEW#qQ)N{C50UcwfvVmji_LI#8_`&x~QVEJ3HSABhFP2O;!TLZ&9WkMbkQeg~MbBK2JTUCnG&qp1ai6gYKaRuZ@=Zg@Us zC3X`hznBR?;bUA8paaygzb`+CSu9jC?Y^*wl?t}{uJElIFov=x`q85}?LC=UskaI=rq84E~Z)bPN+1*l`x&VZ~3L)e4Kl zu=__!u9E(s)>n_`sYeL`tz_JH+E^9n1zp^prBR}YQp{=9M7L`X0j<5jr)XFgwO?fQ z7O6>3CG|IDR5k%~UB0!P=n!YO3xLL6h$`v$uTh`^yJvHSLVz7?Eb6(H*eDAZl(LTb1BVHG!U>2>gbT&{MAy987mCeMP?#)cQF@+RN}ga0PC0`TcF;5pBm z^&3qZVURhOGV1_)>2otE)vcg{RJLo@7wK}XOQE0|?)XfIT2&pEC_77%qXRqp`kC)I zK?U>Xqq7VJyO)+xg>O-QkyL6`5!7^|^DWj^Eq=$ZQi~K-l=h2K@K7V^_bd@Q8p?F_ z1Ku?p8Y@M)beXElfakN#`;8Q;XLdf^ybGnTnmUw&1Hbha{6uF9^AK3J?7O!08Vq)D zE0`*}gqPQGrUuAmmcitWx~$U+5N zW^LwbBvDG^h>#VonYtJyM#N2~X zqtI%YVT#Fm`GNA?Y<#|9fI=3%R(O5NRkJOW<{XwB+O+d8QMxIFP`qQ@^Xe5B-s#`Z zi9==wb$zJkWm*q@&vAqZI5M-(xTuX=t(SicRYu$;ExSJDGVw&oh{!Mivle!Id`$}| zh=RDunl^ubFke0u2)DxG&EJQqsBS1#Jo%N31&tJaR1Aok7o9(!m{hq}pxulGJg-BN zC>2q<&<_%@RD`9h#08y0%Z?x+)iLDoMYb&CGKDbp;w$*SE8$wO^`1&FYaX~oCi;FrJ-qySD#YNA%MQ_ z@|$Q?YK|rjDOvmaORU)EpGSxRe+<~pns^}=hyYD|JVL_N@aM`#ouzG;2m{qdA8ue} zv^in-^Dl4```$UJgnQXgbIe7$+PUU6Qw$+5UOY`}h-->Ho+H#S4jgxi0Y!$Z_Ia4l z6`VF-6S)E@t|dwgVc6%>E!`T{SmL_$P;;RRZ$4r&S_c-}+wSorlG-r49^;~_0H@O9 zMvj*2(hc&;6mQJ9rBF4KDHOB-4--z@0#%*J9WL#lijYdHuaJ)v=QQc(;%ti9Mz}>> zEv;vl!~?TmIxCVTZI)hDU*Lr+gcd-?ynZ5c1y~Jw+w0t|o#DiDDS+++qy{9hr{E<@ z#i6nGrG2}?pUc!!VXcqHGSDQWVZ22k zh&(uLzhn1Fl;=(Z{uk~Ieg!Sf$1#0tCoT+{yzLDRSv3Zj_Y$jFK>EyY+c$QdlEjAL zTKfM0CbZldneFrH9Q*-%)3E}Y4Gi=7nJ(q!@DQ7D0p=W3I2U58Q`wfZCuQ30=)&-Y z(K`LVb8j~O@+{YyaimU&plG&Uq;ib7OIk8#16s>ilXMLW53f@|DyCeXkBFdNv>Ccg08BAfP(4T536qPC^?x88Sq29I16& zF1q|cz`B;(_Agw-*kA{RzV^qsx*K>{=c7t;Qmar-S%J%Uz6MQuR-W9LCqa zh@K%sLWz`BFtbn8O+W#=2L9<5b6@IeFH8`rKjwMu@DDM-wd8QtO`{4^q%3E4Z*S(RecrSzB(#o#ok1mj$ic0@v08%+D99 zeKS;g8R6nwv@jNu-Qh5TolPC{F~QXcTNn57D7zYl zj$t!8Sxfh%zOhheYnV+o<5v9h6=cH!onU&Az0x?91w&3M@c|*D17|$>meGtYMW1Wb zEdbbkw3MMI!s1v3+OW|GOC4~l^Tb0!np#?Wd`cbzt@!sW7L{bqhqsG`z;I;I?pukM zjgOeknJK?VGf?Kz-Fr*Nc#B#4b6;y>gG9Eq?y9~{7=_Bh^!4fn)VDNY(|?~)A*?fb z*O^v!m)DtB5-2oqm9?6I+4@1?fl9)UxriD{`t0Y3?OAH27x(uP$kwNCzqqr)?$eL8 z9-ZSwXzj$*!NJaP&oLxS8LSLdenQ$iN?Bb|(qd3Av^2i+IE8C>BLsGMZC+$;+gN*etC5Yayr_4*H(HLdkB@G6lbar6Uw@Lu) z#LBTC(3*dS2(hKO#khhMrB>{JNJ2VK?d}Q9au_As)MAF*;fnet)kS30(oi(fDP=o* z`I#mWtGCpY=+(3dtfC;S*cR;-YdVu29%i(b1xt?q05R>Fa#6$>t#li%A^_F|U-a z&>DG)004T9c!5yUPHzx1A&R%5%pH~$`fNIq&|HV((k6tNbv^X3A}AWxyvHxzVqckwIP zu@4A{WW=pQC-jAYD=jhc;ye2<3}4*DxC*FrsfM2=v)VW$FAG-e@2mj`tGQ2>RBXB^ ze*Kd83yK!Xw$L^@bHq>#+L^1%zSSMhfrZ=c`kiwqr5Ww+Q(A)~>+bUqHLDH7xwJ1e z)U0z5s|>WSNHtRamfPl5DMKHw@stQ(oLdnJS$5*;KnZR)TVG|6*B7jJKdd{8Gmy7$ zh;wT_Ue_eAQ0~Tuezhtc0MRz?OkB(GJ3K;HJ`LT6saSQe9$9tLp(0#p6T6{^R7k=5 zVY%pbl&~KHPMXGg)A~?E!R?{L-gW-~5Q5}ZFJ0blICLuSpY|f1LTUqN?vTk~)HQYG z3=X3v!~1?AsbT@cpXAD*qT=7DxQXZ~TV2PnKvM#nm>91$EV>yL?t(_@GzvX8WitiR zf}XJJ994W>B=j#zjMpG&?v=fEm2}$b$4_PjWm!;b&w^uZy8%x8Yt#vZH9&iKU=;8% zz&br_{6QSGoSnN>!9a-7I zp@ZRS@XSd;NGc=!Oi+=cRP}N(fsipdF4MQ-Hqx(*YuG;G0tMT1#|Ol#o$A1^p@oV7 z-Xfb#T7x+Tw)lX0&<{iH9;VuCQ8eS)G)z-v^gdFq;spNyIf#rDLaBK2lC{!%f&M=c zP$sw1`psmZE8usCP)JMXp*p(uAQc0 z<-Q0=7C>2@ghaFxO}4%C`IL^3U2ghI7+bAQfazE67;4lTG}Sn)r)rZng9G zQ#I~Axd1!xyaOHL=s@LM`GYQ&sQ!MSh`)UVzZMO%drW?X%u##Ig$A1fVfVDk23cCX zMMr9YJjIrSlaZ=#w02Zn1y|L^@-t0^`@|_>Z3bTcW>Wi|i~f+(Vu@<&&)p+lMg^-U zc2c21uxqp6k4nv;pdaZI9dNB;k*+sw@}xqnxfmrb2OdwZB0E#;Gk%-R)R zQYjlpLO)gNB-CO+;QE(u&@Kt*)Ts}4breSROw(6A{9MQ7Si94hI*|_Y0Jg2@3ZwfB z!oj$+j!0$nQ*nKvY()~T$?Ypl)ahvHeqcC)&R609a;Wwme9bdFQ8at{`GEnp)DLb# zRRlVrBQcc}*Lc;#q%ygwSSh_9znCQ(C!&tW5O%#nF&m(&bKV`@CRe|hT_y@vam;I8 znYFh6046}`TJICyb`9bC`IgFb3j3RlD=YaYxK^tf*=KKXcP$lUTe;#bg>thx`o`08 zvQ>U1fbCe)lae@=fl6uP&%`ddZjGsogwDeFA9J9n1=Vi;=A-~L1DS!;;ID`7k&YKo zjSv@fw%Tj2#Y#E=3Z#{bTG#FKF2e2EqbJfe()ZhFe-eQ}vnt4i1hXSoe-Ns+TB{IP zc`CQ@;hHYcjZW{0W(=*j_7 zyFx2}9NbBrWm7M##2k#atAZPj!fKx9uZRJyM^0jy18v_=@aLwu!bcSYz-(QBWz zH3+J^-|y--Tm>v_KC+>>Flx^1KuYcm(c8?~6uDzRT9h<8oF8|BswEY%TEw$jTibjG zpHKs#8kwTM;T6a*V!b2YrF0si8>O1tt<1ZPx3`15$f7v8?J!34cS2U^wS`gN(;DSd zWT{7ZDl8gAL~(;#F!uErEi}De9^e(QC0T>?itTr}<$cb3Xjg9g}K@{9AJaHS;Yz8ym*$oA2bmF)|$aVc~)Zs>KWfpKI3W3dx5HdU%2sHAby;SGTZRW(*~ z5+u)U^cd);NQ*!kl^hl3QnHnWYwPFn09M&^*U!W%?2`qD8=62JvVzxl+B7sust5+W z!NwMIT>6c|g;;}!#4XIWhxDSgqH3&kH_|XE4lZf`09lvIK%vlLnVTS8aaY^-4h&_Q zZPfk5J%eeu^JxuqR1`0U<_T`nA_VE#pNMtXj~5M<^RH;#F^hfIq&@)^0+Uwdf3YzpNgr5Aq|ShF{Ck7Li)|j~lt2`= zC~$Z6?mTl5cpClIXJi7P{->x2lDC!bIPvo-h&TRKo-QR>)kX&S;WOSDw6&0|zgAbw z))wkfM(5G^iwq5hoeT4E^Vk!Rs`oB?!C6WKx--SaG}KOwjN%01XjQL{4^Pa}T2-#Z z9k)Wpfv-DD9RON=dw^^$ERD7gxP}2?RYOHP73ZubNV2|^a)E6fCLo;9GCrFY)}wnm zB@yS}%zPzt^09^KHT4|r{{Wmo6G~Z&d8~9c=4Bh0mdk4WF9HVrz#rHa)}9pGM~wh{7qdWZ0r6#Em(T{YudY1_;pg%|)Dbg#O^W_u}W zpAQH<5F+>Nc1dL00*bTjjEWT4nsi06@;<#s~r~oK`K_6d5El)daj+=r~=*S!=>*Ba+mlXSe)qMnmqf6QOS(UAIQjE zYL#ak5Ebgjp!-a;wMz|e#Gy{Xs*9P7-5C#FW7QG|`}l@KX5wh^5>5x)_46*U3iX|$His+5A4VXP9BftB@-HN0SmIqvG%_yVeZx_; zL19tWd(_1{%WmP3(+@Gw7StBv7z$HlYs4)ArwD#ylB_m~uQAD0V#_`6+`z!-*@_^O z8XXIH`I=#{+f~4qK@?IJd4i$@N&{b6U8q>4c;Smd!>%2rmR2^>i}5xp8=|)2QeBI= zPhvlHq2E)dFod|mj|6T3&`^b{Qad>J@h)<;ShM|rl(=T!Sd9aAajf?Hyl&#lqeaW> z)TVy)ni7?iDDsaFkX;zHhN!IXk_go$4PySPcSW-~v%iS!>D7uShkty!`l*BN5 zpIJhwMJtPUJ;mfZ6H1ms>>{t#kvqcaRa(6YHMzMuxP5# zVaF2$vz?DK$tk^UcCJn%obLw=>q01fU zfs?Ij&xAtuRz1Ew%o;h1=j$X6N8~=g5N?>PFdf*TKttxVmM8%br9@EjY2b{=N)p@L zd6q_UYddy1AQ6(rta3uyWZ-z~EJUIM6@#*M0-IAVSP_*1LBlAWAWT#fhl4=@@Mckir7 z#zz!1-Cku8p#}@~Jdha@h`?8u?y(31rFi|`8v3oJMSWCVAe1_zv!v9?p_Ap}P$HHV ztls$~xHknYyV8zG&xT0qj?XNnTUIf@W39k&$1DYV9I@=O!ge9AvNq6c!iwF?;s_{k zODWm;l{-)(hwPCu!i5a~04^jeMnRWia0`;X+qWVmkxE)w;OUYk%Y{m{U!<s0=vEZ8y^XNx2ubKQRh);H+_a;GijxS_S~Y^r zPLdmm$Efi1(%l^J9-@wh>c-q}zqqt83P6$5+wmCNAsah~t!F~KDoWukc)HqCFpT(X zYT9+FU^OW9_P<$leM+(v$C7L7%OvNSf$puh?wv8?<06J%K&p3 zQuC#26KldY=JOilrq#39`>ZiT1bt6tvYM7B(<+>^r${v{8DA-Sw8x{`RjU#90;1j8 zcp_A7mabpl#1+zQUr=Ie?008)s63qN!z{YF81phML3wQqZNYz&#BTg#T~?)FKWs*v zCUjKo=4*&bjw#ov(yj;UTb}O#`01=?uNP7POViQ~gOrwdZYb05Vr)GWh_ zUNO87n+nk{{QSnGRask(^HeY(GvVq`>Ww%)NSy|5jSp`Uz@p}E?C0Dig$gZ-exwGG zK{;nWWo?aFA15(cK&#Il2e_ehhch2)YnH59oN?+JQrsOY?J}H=cQ%ic+OmS#%xE?J zi8=)}&pu*U(92d|<-uCI;JW%{E<{^S&$sF*9F?4xu~$--ZYpWtj|3|Kx2V^SA_&mEch){&YS}ZsKZumOqS_XY z&xoj8H3j^6m$3tagKpA>R8-h^^HV16wrak7O=ncrxZ&bDW-uyzB@5Qmp!S6v11=B0 znQWy`+xGF^%#hMK+4+q3agib|z8$^m_m%RCb^h;(A zI$}|r0E#T{0*Wfm{{WQL0S@Qe_=u{i!)U(mhACLh($~xPNcd+|;QVtCw&WA5>M&hK z!j7kR%vBZ7Zn=C$xVTn?o#q%jHO@WBNgFA7cYvn#Ai6#N?*nyf+^;X)BF9n2rKs6Z z19n?@_478U+bUS#;fD-_O%aOmD5I@rtB5vQ())k03W;pJJA}=sTxutHiX|Pc@*$&o z4PiRysak=(Tj6exub`56QRp;sNH*ND_F0ZQ6mSS@uCD_cKUlraF(CD+}l z-*{mD$~abl&H3>xnWzsT!wy}cH_6xH2T_vE5$tz=vA(*m6jRvKW)uJblHWn~6?CQT zAn5U#kWfQYu=K<3JSy7+Ra>4&Qe6xnnofV ziZ3{~ab|*Hz?2xwO(YvuoxT!|N^J*WaLvr#-=kMppxOaEo|KUdU0B&m!OK2jhMEO5 zH(W}gOd6Q?-5&rtvingG1%_ta^>%9sY?Tin)bL>~WeQu!5Gh4%K}Wmf_=5urXpaX{ zrQW$3PLGxwCE;CN{wR-FMHZI&yfA563<0k3==CU>EnS0Me(MGD13~C%k|33N1xHey zaq$wWNplXj%P-!7x0-l8#EPW@rFQvX@j%p1cG)zJxh9ng>CErqkPb6%@dJrFK&%6l zZMIRw!TUlPc+ zX2SCp_gjg@TV>2&cv$KSDQ7ptM_8J9H}$`J4-gV-VC zlC3Ke!$VxfUB`F6Ed+~sa5@(H0gCA!^VG0Kf3fR4poQ(OhNTD_TGAWN&G+QI^z1u?wc54eDWr0L=e zoo0>vaK7QgFrpYa^#Y2Glf~BgfrN}0o9BsBRV>d|2t5VJwDO9Fa8dVn3?WXVVbV6{ zbOCH9St!zNT?iNy)^G>6;#kM6z2nR+hT9hH>NcQO9|O@SNQNRH-Yx{{-7P9_PF2=Vsk&YK2C9||;$5t~=e(Ns+pkCSoH%4tU_w@?13^3I@%AI%T)OzgO8}g~1_0dc^X!EM}_uqOmI{Kmwgx6`z}ngXMWdFJ7*jeVR< z$5}81dGRW+)qt(y4&hg~*D*$FFRkVA8n6YgHRq4a1t>g*SO&Fj`12PRryT?Q8HhO0 zSb2)QjhkuR_gP_C*u_=59!WqoSX)7y~o{U7&MlwR3d0Mr8~@`sTt^W`?Lmi7^Qr5mWruGtY2q>1t!xw@r!+WHQ8fl_j}W6!Tsc{QabPGCyFqODg520$1@dLF$>F@mD)w_-F7g(q2X6)>{! ze`02WtD9ub8Q!OUJ&@B3jgQ}$R5S)r-Q(1)3dsspdpyC3qTW%2qgAHwX@4QM#Vugu zEc}loubo0%5LpBS-10$ct)RRQtAn7#)#Wdl(HK~35F&s#x8Cr5A!kzHR6cRBZ}wW~ zT33(mY|9o6cS>LuZ7N7XuUFf^!pg3J7uq?wWvD3mK0gwxTf4Ue1&CE)VejMfF2M7$ zg8F`a%j1_ee=cKnQy0ESqdvOVvhe$aP|)2}KGbgtn*gUDb%M%MTDdz+mUE-}WsuF$ zSB_w~q{8&C^q2J?);wE+Wxd4E6%yKxHK>7bu};0bMS>X|yZIjynr5uOp)+u3s`U|y}RZE4FH}VL)=ArOR~Q33W-7m88{ zYrP`k?j5e*cZh>T^AS3JfV>C-tnUdI+K( zgUUe61l^swsF*EU`UUiaEx}Yd3iLz*zz@iFV*`R&4SOGThHFAwHSv^%C^JiE%hJhO z%2MdVAMd!}F5#*ducPK0p{cs*m&*jURe%8A-L#rQgBzzn^#Pe8jTxEGxx2SQ6o zRrX!64#^ZVR_Wz_;^su_HR#-YK-OSdpzJw^U0XnOx11ro%xa}$^ESn_!FX~eXv}C& zbw6A&ORRoNrF49UsiwLvP5E!64RoDi{{Tvb)lp%m$0-c8z{);P41NZ?is|d-S_>k( z-XbkSnya5~G{Tq24u2C+5Cs|`Ola!>hPGYJO)9n8RM1dqO)w#|wqfSgezS;b09np^ zeEObtNvjbCwQ-2srsNgMp6%awodzbgKEK&vVT3tY!CsR+Bg^*!#e6C}7v7*5_WQJB zk#tz{`G7?zg*%;wH`}bRf?J&p zJNc-TwgQ?m@9@hxfV>q>2#A!+BX`faK|9`S_aB%vHX{cfkGe$XR9iw_fT5=10KhTS zEs&+NaZBa*S(-&0HU;RhN&zj6zNe{fdNA(i)LFx+-97!FVn=}Cju<2;8qw<=3aU#t z?d}>ChePNmawtXp!5d2{R*}6P;jVJV&rb}gF4|#_k5Opo=;~ov3!tsN2a*mWp_Qk< zm>_`5v44@8WMy|;MC`93D3YOd7r_ej*C))Cld(c_FA>2EVce$;ex` zKUQ~PLHSJ3+`4{WFcxLmhK{~JF;!K7p-x|Z;1s}dQ;+N(OBSY|Uv`TdFDep

    q^X zUWlXy7}dkXcI|H<4~QjqT6dyyyqt%2Yv6KGPuqT@NIDqe64t<^-iHy=YcBZz0A-eo zWYF#LE=g5Zj1TR5gG?0+mh;4>rE|!lthK}JmeCa#furAZvZ=lf=0w_Ay-hi)E9VE$n-r?O#&y z8m`JJXuQ7RXP{eAPRy_hrQoNuv1mEMtnCz+edsH+J)!v@Jrs^KzB5rberm&&&@3rc8UD zBWC3~8oY5cac=BCFS|q*S6eU762elYRUcIiOLpFN@hG`$SCP|JENQ)JZKX1E4+QRfXcO^rKE`{jD^26DS2;dxqL(DeAKerWT zmN<(z6}d-7`IY|wkSXC9ro!BhFj|3Wbq`M$>RG9kYkd_qC;(kQsFLsB7dMHlC3H1= z_=ZzbDA;{TTFF~739*jIal?E2k? zjX`(a*LT!W2&%B%KRZX~WCu6?#T|=K&aUprDzzjuRX6gM4BLgB)M2!vHt)`VyvfO zHu?NS@Q~Ko+3Re|46IfdyYJ&^beOcz>SukvVf&MgeiETE*#EBa6ytKAHH7kEI%(hZpWKNE}7xy8D$9+egl9jY?2Nc?}H8 z=m-ECGsE3M=2cgZt!2xg8CI=sLV(o^w?`b3!Hs@Vm&*ZFMDoh9Z?92eEeu;98bH-} zHDmO^dTJ8@t@>`I6LPkWUFzY>Td_b1zsKSPHH=)6bv*pUx|nm%`js3&ZLRDAW2VKe zJO=n#hK_~pJ3PvDf|rx+{J}yZsZqyu?hyf146oy##3fW{QmE)0vp59Pc0tqi6e*#S z4}s$1JrD)&dOvrIKpnRNC(>mOc*DuKrSm8*-4Hx@`H8P2SMH)%S&r8pE(i!JJ$Um0D4Yj(&&0MJu5n(kH4bip4PNk30fCd>kjg0t z-o1#UEgU^PJ|d}mq{D9Cc9d3DM{m3CWDhr?7l-nK| zKx()931L-I>7mEORyH+Q>HQ&XGNAS)y($0}_F>}KyY$imB@JCsPfw4SkQ*(wZoZ!o zR_RfCBgAZui}c$|67071aSV~V+oxm1ODy9DL+czebv6CR;%Z8Yx|}>gRe7wpUGo$} zoVHN}6u1aql%=vN_E$2(!fs;<1PxuM@x(&bvjKW7SBA@b_<^yute4=%K~^a`_LVLz zSvPNTEWOimEqYtlqr1h*+Nr7xKCr3|D1^}dvZ%zn(GRR$?KUiYM~46+Ye#omf^EPu zXzc~Us%xJxlhZh~dGT>|GT3L)9$?n>Sn`zWsKRXQ{n7?murh=H0BRLLX0mJM95$~l z6`XaH23(-dv6DD+?Dq-+s{u`Wl9?Kdx7H>#^$xs4R;U8$!yHpC?XC{~Z`3l=4UJv% z97z{Iqqp6ov`E@mM`#HPD2H?%f~8}0s!A|3s{2q@%PiO3S%Bmx$7x)h{hNg?GA**1 zdrDY}Z~Y<6kuYB8c;(jRR#WQ&z+lj;V9=cfyX-(HwTcf`7gZW82L7x^e?r0mgvr^r zm|5Cl^5VFBlJ6YkYxG0gB>_)@2xq0~Ut3FEqL2oQ;N~Fw;2t_eVuBU!A_XemnX{N8 zT4kjZxgD~$t4rLL7RA?H5GCYpsv4!O7E9#jDTuX0jQ4oBfhZxW%3t;n6fmrYYAWVi zE+1P&7-dkdoOq8muxa%mDMtIm1fq1X#QPE8ua`Tv5mo zZsFFd8Wb~Vr01BVFv$aI_DN!}QFcDm5;Vp~InHuv2t|rj+!cxzFax-Je8wu4*Ej9+ z3SN~~EaQ@74I*9;J4?|TxpwgkfFFntQxxD9z26C3M9HhD-R3W-Znil+e8FLW9qgTx zCl#&5qv76OFH3DH?JBJY4K)ZU$*>8==Mk#1ETZGnFl-c80hZnH$}|C5pZ06+1I{{> zYg5xQfc2H*4Q~+#Rs{2SSRic_(Ru1n^&MgrZrmOS=!~`v&dx~wn4*gEJN{u(3EhWt z&BbY?T52hw!2-5yU*SBAM_{ka7X|kzQ&e1Y-w+ua4$=x6qXFLg);Kc_t%=w-&&)>~ zZ9!mTco$TP6gW)5pdgxcik%==mW{kY3J$#*$*yW!H&MOL_&vbn0_kx&A2NcV3enY{ z5OR&Z0ikWOLYdI3=4SQX!v2_LZDS4ZM4+L)lLzj}#jVIWb~{Cvv-s2X$r zh%n07F`plFjTz?^;(SD|evWsHT zeqaVCYp6iQbX{F<7HQrGKq;1Maa+m^Z&+*;i&phZL4}m9A?yb;0LiN^oAtL#giwZv z=>4fx<%UgPZUt7gwlz-hK0q4^H#n7Z(Ke_}jey_BETFNf%`Robl$tNvB#BnOE7VXv zU~xzG0~pR25a-+g0ZSJd;s8{I6^on`Le0JgQ7fn%L*W@*bny{l=(Yg8nR=khVTJB} zOTrg9&uMF@wjHst6x=8&wE?wHcgz(y(N$O6OBY8W96Z9=H>?8B?aGDFY-Rrd24D(? zYVY6q2VS#yZ-`qt&{hEB!7tx*_p7^!cW6jlx9K&B*;>B85qE8sIPL0NShx)u?dDir zVu}NQaW8ZYW|5yTdqqm=#J*clx_tYFz_9^Fj^wor4n`X|;$5?5O+|fYNarjb38Y+r zH}FLodX6wB-^4%|>0>++fEzeje^11EVy*S~mNuG(+!G+pSn2ZNAchSMR;%CSmAabU z%Krf5r7v|*x^`fuqfPMp^%Z4m1O7bCLe2?ao?#s;2YTu1HNMgTw-Fv2qYSaYcFwxL z)k1D)x>?7#f|HEn?jx+ACz)~TG zcl9m0(sXQ19rV3xiJ&3ZFOm)`Rb}6qhKlqlPQFn#nhl78qX6pOKHKU74(a?M3u_EN zd{nwcyBK;)swLi~zc8btN+*(4xZMFPHDs;Z27BLWoS-GTyq|lv?lQOC6N-^R;oUd>~8D+F}Y);_pGLyXVTv zRLs?C_&(_kBFYwL9U>IbCAR$~jvBQi9wMt^rZHb?0y-_%=Pj9P?8x_cg|!1)zOyYu zD!Ej1>H%w4UA>qW%&lzldzoaSN-xR8Yf^|YV}>A6bzMi9LWQ=|mJJpJ3rUt`y|YWM zKkQtqdfg!kn)|E-*`mbwlH46Nk)tsH=^yq21`0^f<}@X2l&iP1!3J}IZOHdHxBz$} zy07g<${HOWQCLJ>ikiwvTJ;6m_uoQDQb#zBxw?tCm%T(fWp@{u$;iUt zpf1R|5olHgt-aiFaT_I*dT`Kzav-KZs?0#L#~Zh2sd9qDfcU015soO@A5FmRTJme12*wn#?y$wmwauDnW{D2s*hi9s8wAE0-@W*dze`R z3gGne?J#l=8aNndYcmk+7+;+(Vq0Aw(Uaezl910>ILgtY~D`{^}11W(~(>KStj{2CgolR*t z^8&J=wim)#a#v`p9OyQvAAs(C<_ipL6Upv2aO~E5HpRgzR<;XCb9sn83=<*WHbx2| zluLl4<(zev9d&_krY3q`xjm3Kv~&tP_>Q_*(0>E!TXx4nD>XSYpG>i|;NA-J>HwUF zOKE*Q%4G&bSI0F5+_LFu4Y9T1j>&zdg*N+|gIv)>ZD(3JGDgT2q^lWu zhJ&ti5h;OyLc3`TZ{iIUZm%8U{-LuS{Y?VkG_hqcErUb6zUvHaqQC1X^$@!6?Lszo z23q68DGE@ni+e(cO<>!OQaGzong`Mh6mXa0)N^g1nss4gy8(q9O6yTfZd!y;2jk7d zK&2Jc$m8=FLepkXwFnh~GQYYrGH9}ba(qev#q_A{FWc#HYWfSsiMm@3Jxg^R7MAe} zOPvkX;sS_kcFJaX0YFvx%qpWn_y-bzxtAmIh1>$RJi`D|wF}Ikp@mu&oo8sOY)*Sj z5OYRPyT!V#(rm4?jlMx(M!Y~TpsJdm5KvTP+TU^x>!(gtG!Uu>!W>N_R^_EdjEzj% z`1ARS3LUjtJx^UjZxF!6b)oozTMFpnzmOfO>cYwsXarz2o<8d?o~Kh@U@Z!6u%ccJ zuC&{en}9UwEI#f=>^F3y@jD<}VPQHTzk%Z7hK5&%-qQyl0_@SuQn8jF$y#mgLIcbN5I)MvGRmtdzqy5;mkNs#l&;2&2ry$G=f6jgv{Q*u^Xa zbb^OIUx*0S9GU4A5m;ke8tE|`Z<4&6+^AWGHrv>Z*4JvYZ+~&5V$C086fWyDC3hoq zMlNID7YL>{i7NMwi6ByrJR!i0lv+O2${jCP?)3(#ZUr;-P-t)iE&l+F$Q%yiNAZRm z3@x`l$*8Jw4s`7KnFS~uA4-lRL7SX*`IkjdyQc99fYd2%975;~zk~`^V=0DvJ|GHa zxlWy>nI+JqHeqW@=&ii4O~j*xZS@z67yef-8vMV~GulF(a$9@&sCGoFWN!)BpCsqY3TYZ@%_Vyw@=`b`Ui zgJobw*TVM+kR^>q{y8JASW!vYgQ8jw&6i@MOHQNiU=|Y%ey$S1T^B{~=3YiB1FxB+ z2U0Hnk(UDOtPklB@CxjkSGH1(fE2TjarjInx0oJaB~1%X=YKKCT2xZElU*5^l>o8? z?;6#~9*4KDnR1nEA{{jQq^}wkE&FW-uvPN;Mdcsa0$vRYeNbvRMuHvPr5^v z*3~a#?y(W9fNaxSdi5?f5UK+^8uXWq4Z}dYxqud0069J*#T3;c+=0ddt$gh)juA#q z2Ul3SmQuh9Eb!(uMRaRa`|$aEKbAeB)yZaraq*l#Bw? zYI!DGcgee_T_DuQRkwCMJWk&h0rK#$2mq>$pNd$CaX7-9M6C`K!t8uPQM~(uqg~l} z@fNzeu)5czMlAsTu$EH$nN}b%MkHVHw z3E3zkv$HU12oUYN0`NcuQ8x@7m{p%cu6|iW14mOGx@M*lT!psNx#jg6f-*qHy_wcM z3L0cS9H5NVzSz|M;fltyYWU(%>h6poU7k?hs!*c~sG1Lr9N84#^0}3*0vo4YaTbNY zkH}o>h9kJL#f#EvB3JVQpc>OULWSzD`25V-woI)Mh%#8Tx<4=igA{6Y@+CbAdEgpq zH*FjcG^E#(WZMqj$D(D8+EJnQ;sTwKQS2sbSR%WBj2xPjfPH_F9a5EcS&qz9>H^=l znO!&~e@_y{T}#tPvFa7VsH?fl!6-Z$mia;z#h{;CL>V4lkq)36`F2a`hFs?B~7;6auIijZ}uWm-R0ci_b7jK;is7c zH?g8AB}*)$SXUDB0;*&+>`R*ls1X_1~Vh)5} zuh*Gi${API-IK<|BW1Kj zvyJ$fOV%*Gd&a41X7}xUkb^?5t$y6AEfs?=UMgY%c1yfJLMhfNyPjaN8*|i4PU|hh z--aqJ)le4pA90+DwN2Cbmb!r+PX1#hMvu%ha=dv2YYyBnpjWe3L+dG5(To;aMlLp1(6qYBp+_QA%JLmbg;*+tzE9%J-~yZqOMzWi zEOsSAE#z2hp9B-hg`D#j0hYP;;R^;e!xZ)-vx>fz#0L^GP}t%KI;$5!&xw9TGf3U= zd6{Xh11j!#n;cP}!141K1=Iq*d6_U)-9K!J$R;<6ed#P)Oq9&rL<&*d{CviSX%zi+ zBDIp}R~Gh+t@p!Yk3TUxP(vO0@Iwm1fXm?floJu4F2=g~on>mEcySq447NVM>`9ZR z_IpMcq~Qw3XPb_SHK1sC;u$b%)v5i6Y*tp*Ldcu{0Kl8nM(s}$syJa(!;WSx89i6% zz?GJb%^dR*kP0je9yxv`N}6(4;yEJ5Y_{!NpI)W_m#GIlLNp*zMxCOih^ZHofT(K7Uno-`tChMtecm`hrZ@W1E=yWfJW`A06hniG^#BYQ zYWRwR6=@hgu&PU9=pG~0M;31QA}w(Zj2E;GRTnKl9sJY~R=VbxK9cl|7*;znsiPy@ zMwyx+kg6;!q6$@M`p2uE4Ym_B|B}isWmcx~=y2 zE7aLVt9^Kyd}`LMH(oz6?DW?(cl8p29p)yl!|@8Wq)G>^_&rBzYPG9&@c_CYYEk?k zjYN8I(#G46}b8y2uCEKh^MzJ5FD^*)z9J}qJgHKN0ZbW8mC3I{*wR& z)lu2$kt!wd02O|k`is+)t4jO4M3yN#b;viYH>iqj8<*SMbh;A9q~Q6KN`z26`d?7r zA&`r^)Jm&M_C(vnzJqzkf@GFZ3bk+gO$3VNqpPjd5V33rH;6n2Fumu2p3pi4D7H<% zexVdH2Ce@9NNm;+<9@Ea#X!ti8n(;@PE0Fd(}ZxGL03a;`9HuU0pgRQ?CTQ_1bVheQMLsG3yE;c7ygI*P zD?8HWJHl1A!DL^&wR&aPd-A_?RzfNT?cqH}^$-X;o3zp~R)O?eRt-NAkgQlo>7xay z$+M%b3kF`d=!|GgmQg4k&wl0Xi(+)_?F@zvY_j=?$X1-(RJTB;JfAF0sLfWRynbe# zx(_nuyJfe*?e`nqac4u^i56%bgP$bw^=zK2I)_2SU+&OUF9NP7nV6{HW)34u3r-?z zZGUyYQ!?SE$R~cWxTpn9xVb&$k(wndd*m)i%Q$1E<&(t)_YRQ)V;wG&#Yr*!ITItlW+r>u3Y6F6d<#-1S9z6r!Zv~1Dy@c~syl9+daLvUHlKvgPdH^Jf{02kDQyEAm9?09>L z&net&=2T%|cRirA&K%aKPjH3Q%^$rbCbr!2zkd;g8kL~GKBZfxLp~n9V_n)aXI}4! zh{#7kV~;UHhp~R(RWnUD;pQM+ZNOygLPj;Ax!cU7n+}>hyvCRvL~YdQ*MjYQBMc{RWi3Nnf``&LAPZGt>0GS2Fjks-`1KpAbv5xYKx8xp za6nq>b-w;(!RM_!N&>Ipc<~3Qz1?A~CasMf{7lBw#Bt9g7NizcdG5voNRicW;6jnML^E3ve8qXhfj)Ov}&~XZ#1!WuV zo}i7k*J;n5X0;aCZs7DRI>4v1Fl<`0ei=!`F-~iPpTt^(8K-^j3|38wXYb}UqO(z+ z-dKREQiF+p@*r-$KJO7Nlrl%@6C1FnUd*(@Se456mt`YqmH2s>G&>w0S7#Y(&p((| zfswIqW&udCMNe-M#z1X`-tnr=N~SM&7Yjo+rQ+Yeh_4njQl1E=!DX*EhGiD>a`beG zrdzP3_GejgVZbO zT`OMxv)(rBDk`$s_3CM46j!0}`-7CF24yk6?NnKzWtzLHa*>&Rlru-Ghtv~LE_!xQ$OSB9*>O@gaWP}` z(k5d^H~A~>V+JvxkVtW}Qnq_rGV)Y_IdPAyN3(f=F0QFXw@gwJhR+9=9p(bJgJBM} z<%pnZb$0&%3Ws=Xqt>4v63u}^+0Hcj#8V4N)V4VMOd~=9f$5(p0U8Z@{{U$VMfvI% z-a5rr5Ct9lej&CrG)ud5EoG4uWaIQc)@YVlp6h%jj~nqQ`2Lx7?1c(@m81yW~z z8j!Fenk<}n5b2ORbf;{TJ`f7UKr=(5!i8F`9$R|cTmq=5Iv(TYyyY7fQO9EeKy;GN zb=;-(55qN`t-c4`U}1$a>Qm;uz{`xi506mDBVEs1VNHS9>*K)^$t*Q}>iLwBK*m2( zmK6Y5&$PHz1z@d`sVG?aKrdRRucBJiwwKGY&$`S}OKOKzzPVypb(?Reh%9EJ9s5Pq zfmLC%>G+y3G$!tSOSk}4VZP@xI+swbgO$Z{rFMhtzszw_2Ak#kq)vsa1|0OodzR6F zf|c^}O?B7``u(qQ!KtHZ;O5~ZRaKfDaGs_D!%I~9L~5=w=?s-Ft!Q}rq|-)ASS@|I z(Ibol!XprrUanDWfLdG&_T!~is8H0hOAC);jz1B%RFn(PSVa~#=k1wzp|-5}N-!Gi zH17GBrcQR_<6!H-{{RqY141>`ri;6iXgDk>uUN1Kj_C7z#HGg2?48~S4?D8nRs2BB z4<~`*;L;`rs4kBF=9u8H(dGq)fC}n$jU5!3`_?A&8@x*J2us!LS%%wzDFWcq_)K)~tm>Ny3{;6%Fa3S&T zbOF4*`^40o5jRJ8CPPzJd;QuLK)^T82e{)^u8_v8-E9$qywm!%N@M0t1EB&#r1LEuLS}Ay+jgrSrl-r7Fs{ zVQ6k$uf1S}6kR(G96(BdQp&d;BCFR~L#vNorsbf!(><7ZsOf8y-X;tRkN^-W1B^In z&zWErrw$pAhK>w)eEW)_L1no1=HRt*w`+ex78NV3!gCw04&d_ml-fjlu$ zCzzHnV@<1}<|g86Ayw}zxY>jO<I^c66J6nA{KGgia3olS#bOI;%G3kZgDe4 z<^B(km^GMVI-c;-nxd^+j*;yR`j63E%n{0{^G3;_QCNqc!=O_c2NGWM*%rg7ZyFNri0@bdz_6GGRy z<(KuzZ33OVvFHU=4lU!EMDr_M;;a-VZ^y(K8VCVvhB+DuIvGs09YLPNAU24~R}#V~ zFlD3)jaSv3{gRf`Q%;1TNL}wnJI#hzVB$GebZk+Ss!Ku z2FkA|Us}pEH$fn%XbEaN_Qau}jBWgq*N`!8&_|p4riB4zYtiw zP=i*q#BKdE|tNI9xqVu;#5?riJ`~cV1-LyV7_W%8ixy|*!AusJq4v% z-e3q>Mb-E9DyUsLu4o+st7o&~I~YN;dOvl72^!7*&$>gj5FSgx8L5f%8U(?;N;Wpn zFbY!Nj8UcsFccIPc87U-gu0Dc+3AK+D5g4i9*+8O8$?7oH2r|ycn4|#pVc7JM8F@~%AF_Lb z%7Cy}FAtcGlTLv93*cEt?^fP_QQbYQtk9V zh?^kCYIpK|&Fqf59mmuk)EfA88n@P5aZDoHH+}T=2B5KGN4X}tqQI>kj%qrkye4(Q z4HO77c6NHwJnEyahjrG!GgvCq23di??yPwFfT4>F{Zu0=2B59u?`Q_~&=ijke&!Tl zhd(Lt^DU7}bhDmQ)EK6%!@4ZT05LzoU{iMBMr`qT?H&{{v)Fh~Qu#UuN7EMMTM{eN zn~m4@Dkws<&vlg$X>TD{d0ECw%ljtM#`n3~ z_X!t3sV%mJ8;zHzxT;Ex&{FP)i2ZS=yHM%0S%k87$*-+uwB*Ww?l5Bwi>Xt$U-knU z6|r)PrhsQ&xI9YpT(94oLMH`ki)HnSn#Rzk&OQ5-@l*Hz0Dt5*K&2D4xr+coud?0k zpL;|(qjv)qWyBc`lhW&bUE#hi`y+*#=(ehESdNRf!uBt+j(tsU@C*5X%po43k zP__geY2(B|($-d0^vq+uiY?ais1_>$SKRR}?WpMK6o6rNQ``{he$yjRYysC3yf`Vg z^M8o65Hhk`zr+Lz3r8X2)NnXbS^Z;kGOo_Bg#oI&yLR^#%S}_SEKuVFm$BP!#jia1K477Jb52h`bcb*o zK}O#a*~}MP%icCS$Yt%}jqVnWQwMj;9s;rd0IM*XU9Re!c#4)?kMg)+fU>H_j(+J2 zi~~z`4lO$Czqf1=%!6gI_gF?XiWe8p#IPM8=HJ_ZIvQs_Uw4SiwUWIerxZrRw5188 zQ|Zb=MPnl8R#j}$7m`aN|}D3@?b<| z{4o;Q0h5Iv9jl)tVvS?(s5#xGxUuWnP1*ym@6s8^pcX z{ro^|4ppb0k8q8K*Bu@_e8qYViu=Ch-nw5d-xD=;d0qK^$~SwZlMiA$-rCNihzF=^ zSs~}$G*E)g4vH`tQ$r_DJ|a>ZU8MN+D{!#h6?BUPQ#`?4SECAIWFeNF?$Or-01pFP zELlws0b6-K={wR^gML2i0BmTI%>wP+&)>w##VG^uA_e7b1j)ogRTWvZcRc*TfZ8RO z%rP$2k+=06!mh;m9%2?4yj%CL=41)T5$$J);Xt?g*>LJ1qp#!K$-b6Tj!tZYkMM@^uch26%Ib!Y+LZlv^JKj&#y5-dIOlRW5X4a5VQ2n z%T)9?hwV(kSu;vt0=g7&BCEA1ehwlF1tnQ<<|N5X2FIQy`bP&-FJHYPuWV^*yk*~| zyS%)-%A>UP=B+l&M+xj2>|xp+*hH*(9d4!atEH?RUx=2kt(Q$Zrn!mB9vxuEP$=FV z&LS*!7R1}d&18ccH%}MtBBOv}9iCvrfEujc?_Q(GpxwLGPG*8OFS4EQ!43?yy%f=V zN!c zlt92}dVH_cNz(ut4}JzJqAOa%OY~y#dJCsjyFO*s%2>#Lii5L&xl60^O6mY?2X7CV zk+K#j@x^1b)C)nUnAw(SdR-d7`ao!kRZ|Do#8Wm4AXl^F<_MzYZ)#hu0hzfXT}Am* zm|nG0YkqiuXk?r<*_Fxlh4ga2v7`fyff|C_fOJ1m!c}T{G<-zT!h>eEe4e1%Fg4!int=U5V(r`Y*H|`<0AuJU zFduo-$mJ0=RIpZO-pb+}d6$W~UMI{fnw3~OvXDuw3$u{-7c`nc(CAW`Y7=o;Z=SHq z13^wFf*DXtfGXcyE+8vPvreu0g+Uq8hxP)&5;!*Ww_78afcWeYMi}C1vAvgGdWD)GC`P39eO*<5ZTZZ>r+*A zHL=f_-bL!5XT)bt)%)`kTde~AvoD0?uam?Wx|GnTF&h1gYvMc{ksFlvIsC^OKxvgd z{LEFvng6Gw;6$Uj9^*y;^2Y2 zB?cAGh@M4sDFdq-HImvbXLbny-a3a8=mNF(Kgd^r#FROG`L0E;IpsjYRf5#AGcy4=omcq4Q-yy^*7Bs)8fT-JCUj5$$q>-(P!O~S) zt-CR2Vg)b>dzIXoYM0Si?n^rTB9pH@%IK6(^kCt9QeIN386jZ>#1%_LtMD96|N3tWM8{bo4I41>|MvVaB9-aCETT(NN92ss#C#wy*xV^Ae7WkuIM zBX3JX6018>D&BoZOWV5Rv}~J@I&a{ zX2=jOQ+q}ln4J%=%uPtTifI1A(6x28eW^n|04wg0sGZs^y`llj64m-&5Gu>AiP@ii zrNPK)lRWVNG0|!}&XS)UwC)exV(n2#kvzN+eG|E-V{s2i1|S7|al;Xe0wKz^_>VCl zprfJcX@j|2eO}NgcOivq&|3g5$kfO1!l*f2E$Vp;OR_;TZo`kvq>5dkPT6>3uGG!C zc^;z{#@8yHt`-YxYj|1Pr10w>oYoUT>N?HJH{w4HC1q1XMW|2z)L(uZZ zuGX!fcBf1ki9L?OuT&>2E*EI9+sBBIZ8my-+QbFOwaq&`uDv1BC1wuC59Vmlqb+oM z*FK_R0IjhxtL7eT7m{Dw<~!Jdr9z#&kbumFw5MV1IU#hqJ9oq-QJY~$zr?wqC|R@9 z-^|0(qT0KU1VB#05O(O&EYSenJ2{m!ATz?w2%uz@4}tLY17w0j8o2WmH89ZQp!0s? zq!@A3v^a*bT8y3DU46v>t)aSKSnkhZW3BUkrewFEcI*>9psfe?T^&>_JHe70wiOLO zLkSAi1uI)t)Ib2bqd#vcEV;D>CxPMj0vf`kr+2_c6hIX@y!5$Nl-f{dyS}7F?P$xg zms}&}Ait`*UoR7<#VIp&=4$;(lXDzC(G$LS;H_J8(CHFL)&W&+>2l3NsXC_~pa6#g zPb0)J1SO|FzSlL#O#!1{5i%x2D)j@HQ4F0ry2>Sqo-B&xttB)Tjq3ZAWCvHV!LBnX z9nM6f@8(dX6rezNak^UW<|k_aR&U$1vRc|#m*O@OY!s)z6F#LBeNLE#Xux}YS}_M4 zHHpS7+hXh=BgDw$3U31A4d4<=dp5#*jbM8f%kC=YuvWO5s5Tn8^2RHHfuqE2D{H7X z#}L~+8J6GeM^YYxsVF9)AbTsNGdTzb8*P{&YEWXg?dg;?v|5=t_Xt&j+Pc?oBLSJ) zW9z55;#Fp~dUt~C#dS1xgC)_m7M*_(=x!z|-?uX8yC}3pD~3R3-Osv3T}3NRmwLp5 z0MH&uko8Q^`#Fq9Pz0}KML__{DYNh5TV{1>6Yau{ZL;lQ#9g7LfTwSBFcpF-{+1zD z@s~$0sD(&yQnLn9((EsWQJ}nlQ%>;MgGQgLgz>?U{*50pu%UO8DedHjumx=WphzWT~5MzLr~yQyK=-i zaHXx!K4q=NX?s)+;41aUXu9ZH(8?vUj0+$26FG&b_KQrVH6pvdq6ene-XKuvk?Z`p zb878a70(1=TU#qfy9(aa9o-k^2u-nbr;Z|9+-amj_OACk{QH0l-2hp~BqNP2Tfe(N z@SE)Xd5+i^7xx@?Y^nR+VFV0bUvJ`J8kx1ey+pFLQN@u3fuN$a_W6`F3h2zcu(K(Y z;u;-kEEMj{eL}3tzgbWK)vpF+Dl#hAA3-cuYdH0!2x0rFAmQzVVLSP^Z54^ z6x=O3j773$*%_NxeCZ!Qa9wlE&lKw1u$D%UZ*=YR7HR0GXBF;a*x0)r;!NDZSX-g- z2dLkruFfT`Dp(j-W6VW+nl*koV5n&xq`P^qP>EWg-0X7}yR;iP<_;I3-i-CYU#`)k zx(F(``@9Z_m#EYEQl&tpzge3**8{>Pi$O1^v+mH4LfzvuUjCq9v|uuJhASpT)5J!C zo9z8%a*G+zt|O44)Mw{_j}mWuU^Odk4e!j-+_O&3tQ`fq@;tsKLXM%G`12lcc?Z9_ zsmNqX*Qed1lqq3$x6ioJ!pdk1;uI8#LD9()Pz)M1J0m4^R#-Ac#UZNP?s#EPmD#as z_agY)USBcN%Gn0KnSqsWso-`cg0>nh^gTw!K#S|jc(L!S1FH4&3*AkN;n#17!tW)| zyZV!(h!#O}n{)1YSfraVo}5SF^GJM$QUy?r=m=g93opW)bcKE3P}u zc*5v(H6afG}FMJOpduhJz}x zT1?>ER@eTn2?8aUQn&c^DSa;>eI7dm`i|XVQ->v?H8gF zv@gdIOhQ(@osHRJh9z}rjhC2!rp&~xwy#hLj2wPpS%gElwC3B##KbxTDm{<7Oy1Z; zG&|+&5mGfY=aTvz@7!>CuHXG<@is+`5}cn|nN5XH(QjfF5f^jFZ2*Bmwu$izsXcvf zX5D>6N{eGR4=_LlFmSEjk0N4>4)ydO5zA{hJNHfQy-ZdeS`@MA!wV1|3v_oiUd&m% z21!p37XY{sZv1;6F$SfE;oQG)O_t7-@7EuhsB2=Djg2+0QkNaBrP<#Gbs{C!G+K6f z_>NA3Q3Z41VIt`#LOT$UaJ}Q#wb#3byltq%m#t6^!u2Fy;y^wRFDw_wh<`smlSeI%%d_|c=nTzsdOGa#kz2XmDa|^RD4qiTMZ8{h~er9ZQIlC0vs)5 zT?b42)ZN7+-)vqx%aO!|_dQ@n;dH2R!h4uW^w@vT#IUlP?qBK~qgD(Sb2=~GPHIksBPL|)%6z`gk9T# z2Bexsu;+k^GzBaLoxWyl6vgba`l&~_qHy7o92*XovE}y&6@_t+r_>7S+Ov-AcCy8` zJqW^#*r#6SxrKc1ab1WLxIk?Cym=D}?Cs@+!BnB?gR{@#7}(Yh72a9AU2CD~<|0d5 zEk_cUKx0P&0W>V-&N;#)a7^;HkDEauErQkrG?5@Zi8mDpHgW~FH z+w0;~JELuM+ALcvvt>J+us2mOx;k?Jfo@HYj&IZ$udBIIlno`TN2A2D1Z*lk4{$U$ z?>t5e4#m^L1vLT#vFR=8q%xV7;tn3XO8Css6H{ zt1Cq!^;@7-r}A4ss@jpT3EhEP!f2ZA_&>4RH|dCifzs{A`vJKIoi)eZrQQX%w{pQO zrbh49Rg%;=8%5@Bv9GtxNP?7iA!S2QHLna=A`1$GT1w_$>d6y_O2)C^va%}jwoTDBmL@2Hye;)bI9%zE@^ zSGUZuPVriCD3!U>^smfZI-RS&7a}Q&fC6$u3bo37~v?7V2 zzI;t$VKke299%dm3bs~%VC=M79=nVP@A%G)wwGdX}q?CDVd4~_^ z@42*Y=>sbF%L0iBZHtb~wl8o$*A)q|X;#tdBdp;^5>-ugYJaJkVy#9Uyxg}@eHF<` z!h3+AAU9Ui!r*~g=Bcp$4^b&7uF+K7>8znISSzicQQa6eT5(P>!am{V<+?NhY8{R* z+$gOnY8>nOhz0IXhsAq>8w};EH@Ao4br29 zm~mRRld0cJn1o_#t<&k^24&f7ts8x5Hi|4qgB;(eotc4C$v8eG3btq~#PIu!V-<3t z-?gkhy$hDg>BvOTLV;Izl2VbKT885wZ&0pH6cm5riVO`bxu?UEo9lGtQtZVls^ z0kE9eEEnC2+RlzYFdLU5g1*HyL*NpS7T-NmYTs3AD14P}?>>38lMz-Xk&EawrH z8*oq?ubZ3LB-(X-%>l!WXRG93S2N{8{GR4XGE84py=<6ySxxV49Bm28zG+pQYPSoy zg&4+$t7Xdd);X&LwYR?nRZU73o9OWuMu>nr9w2;JMrwtsvM_gNMrqCAfK%MKc88eE zXppAeUks;^vBy8i8h6)@l;7ll;U1HODUc#3m@#f<;^0#xGLlsKqeTf0!Hmlm!8zEi zD9lr`qa&g)I%LMOuwn&8n*63^!E~*l-W&L4o?vWJ*c!f<0<_pw+0&VC+alf4JuYSg zI3AsSLh!V21o7rs07A+Y^{hZ|D2*CKfL4R3->M2BVMY*rBCSQL2~ekX1asV#zGy|B z?Feopuoa6O>Fp~@ZZ*H@0Mr(X&U&xiW|3IvV~6guI@hz~W3?O{swfLPy25cv3njSb zBJ`kvjo0-8v;bUFTzo}z+&O-gaHxQ#z8tNzOO@9e2H$A+t;Xn%I zekOYSSfzgt!~&T7k?k-DCJADiTGEz%-XfW)30l_HPMgNyU{oDkcrma=3Ijz|R|KV2wJvw` zK&Dk}EcW6KVx9c2`wU8la^r+Gw`7(B9nK-E1;%xQ6n!SNQQ59O?*Oz47oB+U z`k5j-Ow48oQ5TvfpF`YG)fS~)FvnI$53F?oVRT_l|9q=(C;}Pb!TLyhDHkb%P~9tZ{O)vl~TiG-m$(qEl@Y$`|#UAP1wW z;W>km)^%y))b~JIQ5!Az&YjP?!K~FBxqHh3G*a)w<~6Dnw@*SUJ7c7C8XAxQTZSmO zB-`il>OOaE8y9vUiUV|Bn3&AU#@*8PEn63#-QY(seP&r!Oks$im?_QuazI^Z7K?EM zaMcmj{3l494X?xQ@w8BN0eSTLfq6Z8pKe%TL}+`Gl>Q zU^ChpO4qh8W+2*Ic{h0X9s!OH2gkVgLI(~jpHXl_sdayD3YBffLH9y1r7RJ--eu~U zT^`IrSv0(}+u}Mf7Z_8wn~A7&1;u@8J0(#>&UxYpMvCFl0oZg4S|d7_bw1> z$VV@an1(CM^8?gVSsKcIJ5=gHB`fssusTo%qz>O zcQH^NpkQkmW@#)G>vtuX7HVsMSTsQB(~aYxa#2R~_&v*F0L!13&$ycc#jngC3NDp* z_Ubi2vho2-1#fv68z9vaY zc53WiSnUC6tx=O^hPnhmu$BR1{goA1UV2y0oA*53Wu0r!#B!UOmVcZ6%+df?^)IAF z5TR|v<$c9luoL+ZjDw;p{{UZz2`zwIJ`R^Hk_to=@9S7)fCixK`GqcRWHGG3>KJBi z-M$Zrg$_=9KgjnRtmL0b;P{ncS``f&_k%@O5M|urD(o8-GnevURA|%f&HI`alw01M z5|+ZCI_sXAOEgp@4gEs250>D!ZO4H!X=^3t9Q8QKIzehqJ-+E5u~9 zd>2}vh#LYcOEkB4Sc{y`3afT%ca^K5wMTAJlH^O=wz(XTla`Mn%G{ijbTy`2+@kf4 zhk8C?r3YhK-20W%6m7Z=iH4z~mgofzz3ed!phjCYI@M_a19MiWFW6=%0)la+GJJ?@ zxK@Rn(s+%HC>J--uqD)oJI^tSPz_)__+v}GLq|2Yf(lg5c3q+kEC*lKlL||ATTa#U z0AM?opSSpm0Ft(b%9KPOj3w+KMpL91S4P4+u2-cw6X)Uz%o>_8$D5Us(Gmi#6&4Es z_M&M8BWn(!5t9~GIKJceFDM0&y6X1^0iC*ABfE92T(N6 zr`#oYNr!uH04#@8^DPP~HZ1#a1}2S*r}yGwfvqxE&&*V*WuLk=MZQ*>ewdkp8!sTX z-#(>+%|z3D9%F#vwfAM9Vgm>~p>mZ)6=y!6R3M#7IOaR9YKxg-17Od@s|o;LcRnsx zag{a_%7aHQPG(EE(5McUwf^`<^ej|HOQ>^2NqgMn?jlLzV!0scyWLR|OC>jom zVz_~V6tx!f0+?Q|o0*s%u08sLEJBf@ob9v&uc3he5FKln5{pA2zGc*5MyN}S0=V!W zFbuf`^|P_&D!J5)rsPCZa83&Gk#LN!RroNuu&fjR_K-sTYMye-M% zIBgwgEqC!PRP=SDM^BV9b!COsCuDOg(weE?)D_dw4!(12nL-rkmYhAHVEr z1)vIraiuyf9cHiw-Riq>6Jf@4?99pwqJ}@|E?8JlaCN_P0P-By?E9=Lk)azqL|82} z-``=F90pNj5UtLj&**|hmZh^?N1@hVDQxVa3btkv-rDeU7f8!`d4xc?YXRJV0M)Jj zAl2Q|YYYh-IC+46V2vy73dzc30rcp{GLQPCP^fwQsck6Cw=_7Ir*9&~Zwjefo%T zfi$SAPJ6v@maNrN6pBSkI+*NLEDHAQa~*NhZv0^-}=FY%hYZ|KWb7S=YY*zp0Z4IQ_+;v$<1 zydNhl15%Z@=3^CC)vZVNHF7U=ebKe&CaYp#iYQme^Z1L+t5)pgeC3!>OEXP1hUOD@#tcVGwP0vtEKBRijW zhFlEgQ}Tx9425?->ntjUp;uZrA`^se1(}91Od5CPnOs65gm`(V3$s+!Tppvg0=6EQ zV9G0d^OX%<}Q?NPMfF7Itvac z(bVMmf#@jQS|N|EVlaA4j^5J6i%{O;pSnYJp-h9n;^Hz=fX3K)ejvQ45EWf8YuDTt zr>rU~p#|8#lR8aeY#<|4p;-g8xJO<!{)QjKZ?G$myRU6GMs$zw3vFK@p~~L?*p95mC0j@s_CqJS7Ef z7bOPWS1~t0p+i;f@I(l>4wAp%N@qw=(Ye!aP23If5fmr6YfVb8TiLsgM^sRPRA6*@%rZv2MGnsJ+N^2}4Z?Hzl_v0*$9$w~otU%eJ0R$Lj?o*gW0yG$3@eD6)9IjTmHbq$-Cdzs9 z^Dq!7D&MD=Ad091;o`kPdZejFpNT`F$$gIA{$WN~B^JA~)sO}X9nOCexed2S_K1%# z*@>^}GgtG1@aWpy@^dYsTUhJj67BB`&w?8W0nr;d(R!8ZiF-MD_?1=Ctn`&MBIvLi zC^chFh`j=L_V1UnCKuqAcYJ(Gz5t5QiVS)dqyGR1(UO6ky89#Ews>QO7H_juS0qZG#^%5EsJZqK+#S~a%% z!vMx?0tXDeodyan=iOidO0EojWP{b-b{9|fR4-Dty}W)QYLtVjQxF8F z#{5Q?hO~-u^KcMZX2si>+w9WwC|wO|#GnmusuY%fgNUN*i&_=IGYH|F=fAk2t9Vtc z!x%x{`%5r)FDrXMqNm}^51~m{qrb!;y$w(cPM7=6t)qxxe?C`K=?K2v<`=lGEacUo? zEcAnpPU^oLMh4!kUOh1zFx@P#GWaEDTPGgk6v2isJiI_`r4@NoyUPX(uOXxPQ&iMY z(HulYnZBF5_?e>&nQ`CQGJ_LtevKn`2}0oWQFC2{WOTUB`Wm}Ah{g*#+t7R-rlk#@ ztLrQfK&+>ixVFSy-fF&tyren8tncNC2SL!!x38IPv$am<&#zJ39B8i&hs>{4)m=S& zN-8*_nmx?1R8uCce^Cw`;tgJ3Bmkf=EZeWN8K4CRck4L|w5~kEC$AUT5;RejTQBvL zQmYpJKS<*MXp6DhD{$%9;+?*IK?9|g^!$(o>ZEbB?E98L1cba}QrwC&Pj|$-A`TQX zQ!hX*ZjI-(Y*l)(_>M9yxkj;zs)qNM&&)^_tYwc(DzODAZ`+OQWTaQ{b0|P6LIU6E zagKLJzWpVTqdU%h!h#A8OKUNi){*bKI6NO(eVpShFu}w?(hQCrgB@y zkC}-Y0`6O-2JqPfFk`6dehF$01sS_*pBDoMiaj1)(e}lQN56%ER!qHe`}vg{Davu; z;E3u`NVM#66Cp(c@9f2-7p13!s#imlr`!?KRIdL3FA~Fhi=+w+CM{KTK}%Y}$*I4I zjkRnS;wU_+XG^>8krKLu7F9Mw6bv%9Vo=HzvWH{byH)_~J3b(^l|pV)zk!v2#}E^? zororDTa5eojk*XZryFp5N&x`^DfCVWg7X?rvEo);eF2|7Us0V6q(i?7_X`YZfDYjJ zCO*J3Rl0a%d_W;r!)>4<($nbhxUyWz$1;7=T;?~YGkqdJS{WVU8;4lNLbY#AW--2$0ML@vpZ ze-gRQxzS&v?pQL}H?Z7a2s!``qu>d6A%Cv#sCyLatYH9H*Q<(sLSQ*M(;M*&XXI0p zzt6cswsaSB#gR(^61;dhm4RSgPV4xW3b8aa^TkF~TEPzGa6L-3Kn0G*yuufo0D(H! zPxc1Lx%(ej>(DHtlKbV~q%kxxq*rLJn5|jEd*%3**^oJ}p#(S3fVZ|iLN6{;R&>WV zIm`oNqWF50D5pS0y(UFynGC<&4`_3^O|x*IBQ~O)$WXym>pouB4vB$d2VWI0B|~PH zr0MkldeMRY7#V99039!Z^$P$-i&fNuyz160VYXpwLAyH{x?8@G6Uw6(Qw ze)DB6iN1sPGewn9fET|S69Gm_Wz)=(^~1meyXERxZJ4lgb^J?IMHZetV@s_n(94~< zmkv61xSLM4%W2?o}N=W5E`+)YTx4{dI^`FlQL-Ik}iM z6fV2{-Ymc=s#;drd`gE&O!HluhnVF_RxYY_(piA4Z$Ne;R!k)I^=4VNOiz&6?8J1f zE{t?M%r$9vYrn0*B8FQ|v}U*I9u-~bcJ~^gMbS+0;#py0WmoxemKS$Cp5otRy-#GhB~f`-`h_sG9NT_jfG*>*?I~1Re;WUl|{W)hVO5WQtAaw)jq2{DQR6R%nw2!rg6_CY85rXcz=-_ zU>elAIh3;D+U?uas$ophj{g83m=>wLny(UTRBKuZ+sOsmy)68Df%4f6is6Z&Xyjw+ zqbgD0bk$l(@e{MkP?P~(o>(d#A!>&y73cOY&4Yi zJbcRrh7@Tk{Bo6rjzy)!07d}CKsvtzx9WP0T=N*FQ5=OV^Cq%wmp{lL6I$6+?ETVb z=_X})FU2f;Z$)wO6e&!29S~h=bF};^#@_xNU zLuCugFkL5hiXOxSj27m*zGWuN19p2mMzdfHhXBB|W9`P3OrWafYLR%&L@gOiyHu{H)@NC-A60Iuhl(^0AE;SNxs-owAd#wM!XQ%6%J<(7sOtXpYNBL#A& zxy{RR$4ZZ8S_>-!0ek$)z}7*-KgM-3=G_x}#?Y$eolYz$$LfB>$$J)-x*PM!V78U>U#`nV8rz;#ppm+A#8VOI~gER0wd zE%yE*Qli~AdlBm*me&s67asY_fn1!;5G}fIZ25h`#nDOzhMv_gWtp>h zfz|Q*i_)i5ol_-aw0&#@v{5u4k{tpyEPX3%r?})RI;J+Ki}eX5abRayXJ=+mRKmF7 z^_V^y&@T_4loYZw#TD3hej;XWk3z#&iDZ;)KgUR%7^yDTVYXHm6{VC7$KmQe)J0xa za?VFXGb}CN%bzyVw7QgZxw3}K%x;|m%Z~3b<_2@<-OkoGQBfly`Vp8`vq_AOQZy+w zMW4h(TY+*tEb^YAefM>i9=uxh6KqqdeHW%8Y&{aqGvs|lMNEuFSGrUJSQ!hm*QmT# zWgopyP$qJ3VccK#1O=>EhITi_N8Xzl#ryLwHrA%rb?dZh*p>y>`Zme&D6MIGtx+)8Z$XujCd3S@U2D!oB8 zZ?SR0XzI#$=?E2}ptge*_gD}Lg*9EvfnEU3{+e0B-(!K(?vPYKVO37aiPzu*Dp;1x zx^wT;yW?y(U90ERsm*0->mbcQGB46Qbr$DNhaZUN(M@x({(S?*dIJr+*DyCihequU8 zt!B>0Ff_od+7DIc1we4Vj>`=8o4(57oh_M`(S&piI(wJG8k@`RLRc*}LZA2|q#?Cn z_h#S_>kj^jmM-*Qxfw*FitgGamKVd$X2S@G-CtnA5nIniZ~NhVy{5e@Hs4ZPqQ~CpF!bRZsYWik2d)r}9#!_t>vKqrsXtZj&^)-Bn*w zCZ|#B?ePm4!J|?BM4f5?-9E6W>6@l#-jt~#0CtUQ+Z6?%(LI)+$p*!>(BO~ZCT4JYrJ?Bcmd2a3Mr7s5Hl?e zD-`x%0{r7y_c5T2qMN?{ps}T9m#m^?y{Hw zz{^v-xD9haf%TU|8VG3ab1i(R-~q`1EHozm;u?*xaC{K3Q&z(tSwIe~!td@BT1dQH z`b};dDC4vDSRmZJHG9Xn@AC=>W%L?^?Jli~wHmLy0@QF@Dh+gE&a?uSpcO1AW}Nf`u;|Ma+cg*)s!q849W@C9SpdMy<*!zPj4{< z+<=n!e8hlGh!y4n#BLj4SPO$bJi>){SVQG5!s3VcJV!PKuR#@WQAQ6B5ny!XYR6;L zrmI=(G26rDQ3{4@tJW^uG5BO$1x zbkV>#|yJ^lPkB^<@yFa=uzac3SSlSSS* ze`)~%V(y#{(?iM{&|o_bj-9*2mR(0D7nxKI4Ky9}^D$d6wZor3m@K4ia;S`80eYU_ zbeF-b*ZpOF;4q1Twv!Zh`H4oTEn@Tp!iYEMxamn&v{!UuwyB`U(k6f030%HqMFF7L z<(UmDK~F~C@>d%)C6@2*HP>sD83cnyA1@OQW&xqw%(+OJjkb&Ulv0<(Pm)}rn$d%6 zViieLuC*Gx=?J?p(zYw#eF#Te#Y5PyGL1E2Yc;om9muU=$ATQA!ihEY@I**pN|!&9 z!8{Nxm;FpoMdwJ|_bzxN)^-#aAQoqoXnPsy1);L#U=d3Ab4#^Ns-E9Eb(t_V8=iXR zBGN2WpzVIY5Nk9jIxhZ^+0vMn`0EjwklG5)gXD%-&t*_F_WZ?GHb%zJadj|ly2jRD zSZ54e6ujV8us_3u&mo`SvQRWzGMNpsgGYE8|l^?i`3ya!O{{TcX zjRI=x9GPCtpvPZ(+b^kLfXPC*d4*82IRMvQks8n}VNGiJW&n*-32jcRSQ^yeDXq@6 z_<=OF3@QHrADHaErZ7_J#lck8vdez_MB2ieJ7r}!{K6Rqq49SJY0R3a6}k6V9dJ2e zUed`}Mid@BONuTNeFF0+Qi4`AhhCILWdI5cZi~M0Yv$z}wY`tbJcLm#_cU_xtfJf- zg^jA@fe{g==zDr#_XKNSt>!+6?F|&un+e^6;$O^y+#}H`QjrfL)VJ5DvIuox`g@&F zlqh=jDnM;70p-DtBCM>8a5$CgR&9cMZw|7tTTs!-#Y6_23Kf7C4L+gJ^X6+rP3|HJx7k*Y%SxM4rEsMw@2JHL52r^FzDJFu3XuAJj5pbyt#5t8i zWaS#WpLKzxrzuvQr5j&wSEq(q=3bY$9!X~bx6u-om6ik7&) zsHJgxn#rA9SAU54#Z{84$6cj{Tn#QBW9ZjQKGReH3Zq`fsCi*Sp?na5w0)_^)AwfI5k{K6y6$-+K*{P3B&A|3bw7lbXPYJGUm!C&wod_5jrQQ zFja8bYLbZxE=J3)n%pUgH-Qc$zXP>~V1k3eF8(-ybs!?J2DHiPT%Bbo1_J zp_`yN=g;C_dTjbZqXlK?op1nw7s8b?v`I!uz zMYHSiEEP7Rcf>LWRn-3gKM}|+a8?7EYRppTQ{9NoW@%Y_5!VJvYCfM38t7umzSqnG zI7b#oZX;lad!?#7`uLq1$dpmp=A%FbYj$b$gOqkO#|H$|8?1-R?$WLfnO6S*B>+Ic zG;`#d16t{2A8r7EWJcNIG^;dd-Fx_rwdC>S(zh9#(> zPmwB%vsCIkz9kKM!sX}B#9b*$?;kI(akUIM4`c3<(p$*f+&VT97I=L7mfB$I({FFP z$}a;Lh%}?CQ`#6PP}4)_)MDMh8b053hzx4U)AiZ_YUMKgJ^O)5t4<%Q3ly*bFTzrR zvli>=aR3gAtayGULJX@6*)%k!Q2k~tsU{K3qZJh=9%b1Bvl(~h<}$nlH35|97bm(} zKvZZr9Lg+frituwMF8F|g`9FkS6C~9Jj<|ELn=7#O5QnS(bAx>gesO1aBvZCy109t3w3VD-01n(;~^Mc9g2L?!S%!t6vA!_$IW%VERD`bv|PfbsONQp;8CDxHhP?QwW$M(KzRxVWyLQUUs>TXBWLEznYCy0i~@TpAl6;>$)dL$p9>2 z1+Qqq4fG3#K3|!1Ww`?0fyBr)m__wYZ`2I92S6Gge-P*{n10&DMssRuT@Mjs?S{OX z_{r*NgHcU?;9R7`6hh}p@6YdwFf!~oxGXXZBRF^olz^cdul|!My;1 ztZ!$6J6gzCBE$tKIP3io3j4LCW3_pgQ9!E({f;VFFlEp-IeuUikX4%&Kpi!jSO$aD zZXmT408#k(dX?h;0Dv8zh=Ld!BHlXUDxf&Asq9Il`c;bFrtnc}1qG$z{8VIyk)d0O z!SgbD?C9;n4^%I1n)1+;i>aZa6HBtK!M4(C0B_u<%>s@~{g^vBI!(Lx*W5T|U147CNp%LN>DE~& z0Z)FO7-bv}2VN%KrPX5vMsf~>1mIn)-F1hrP~lND2F-0KMBkCeqH}V}@a?ho;woI& zQibaHxlMFFXkguQLkHGnjMUe6Wgg|r4O$dC`GzQZ=`y-{1{W3ikKpF~(~SyyS|qPa|}gz$M~Vs)DAdK{lJ)@v9Md4ZH=0IvQ} zVn#+bdGQ$rqk`+lxakSCnEXp>1RINuY^;KSvs!tnoK?2^apnTi%WB!%l)``;Rta}{ zveP%(_YzXnq)p9I*6;c;p&fe1iK zvtgTK@;HfIS+1+hO*n!ZGb|+H-0PuK?ia@s(m$!y%V7oG`_VF!jHZA9PBBJp? zXNj+sk;~#@4>Y3QF9Gf?nl$g-@_UGlyfJh~0MyrZXWYOT^&G5>88zp}%%)6rHqqSs ztiy>}Dfl>ouc$4JT`;)Y$2S{7gJJVMGL?X_E`pul2%@H=-@k}Fg;I%qgTw(;B~ZBY z0I;x~2WU7@sz};jdASX#XB~*bodrx<^>)Q%P#=5Zl(g zjs9b;Vze#347)Vbz`uHNy|R23@EVqC(l))e=7gzgnMs2+*D&K{ekD^Awkkx7P|b# ztt=ulSbgy-T1+-o<9C~tfLlt)9^OdRS0$_Z%Pd9Jca|U(G)vV_9;Qutl(rh<)F3+E zT+`TshJaQdtVd!F@jMHhc=WdfIL6z}(V8dk>2 zM-srUqMdT<9_YAQvB}L$+swFOnM_bA&F1&&S8UFdF$_YW;a>i}VyL%d<>mk^l{8zS zAgBvn1g%fNJ!sNIKy?vQlc^ar_nWvU=&x2OlCXuMs|a+`%7A7W8E4aQyl z%$X$IHui}u;R9P!$jqIr7T?bw5K(gTay{P@nzMS85}FRjZK@-d4Xn|f?6%kGe=t08&vIGr~uzI`q-5}RId zJD73aU{;YSPshMZgT}2u6^eH?h-`&b>7yo8e=(B4 zr5`7g7|8%Y?sjVtb}eXNX`i}6j$-$yO|c?cH~3S*D`zQ)>WyJlxfgTdBx#YMy4g=Z zi9z7#DZV*nAS)dc$1JDnj5~W^v%579Pj%`#EVgJEd>y#YqIey`LNj3$<)wZIgcr~!^1AbG`*SMJQFFxd<% zycO;Ww^=xsaM~zh&tFj?pl~v%I0DK_Df{`AUg<)OeX?50s1{U0gF{7bosLMZg6f*# zDPmL&hgX3WKP@@38BO>WukFFXj#j$65gjPw5!6sRt9Sdfx;4n4&t9G*m1SUNoG?_Z z+G?A(bBlsgW!VEf%9JUV!3Z4?Y9%UVy^x^apK%5>U1eO#Qw5&{{{YAVwUwis_Beob zb+L8i@G_0sSYW||M(Zr?2D<^u+dH1%RJI_Wvn)bW zF7CGN7jzD2g2n2!b&k)5U;z%|y+&DpFwnJpo?;G50-P-3D{3Y)i+A{yCF8z){_OyV zVzF+>0LYH#-Q{AMHMscZHH4i<1K;k@21c1$&u@PaQ5afm;#z=jE!N&V+{17c=$*a6 zZl^X*SN6hSZjKh3U$Uwj%A)ki)-aFskC5^-k&fBE7ez3+99CO1atO?fuX`#7-cAJ zLV*I*PX7Q}fauQFg?WiiR>jz(nNW1Swj!)*QI}>(_K5hBGb88z3?2$RFfgD z<8d3??}=18GQ}rpfC|DiKW(NTXIn2J&CJ;&gja4ki+N=x1NSg=vmYa)D%2{$$V<~jRX~T%oV?xU>boV<-+19#x%VStjZ$a)}_9a<}OzWC94mwRk zLsFsrxIHTsXTQ42rbN{)9^YC@Gp}VX#}^)jU~+%K5CkAyP`BIl3oTbru_zOuiD3(-L zN+t*!saG0J{svhydb6 zXD>RZ3{{fCmsaI^^$=NhTVmXDM78YP`421=T2_?AW8xkWXeLgdFcQ=YDzneg>NQtH zKQG;3oG|rD>oFZ_ioE`62}mA-?(+j#A!3*3#=YP@QFesrpLB%eDaVq<9f1oX15NX^ zYm^koFT2btE@x}IAuB;BW9g&{SgQj*X|~Y=0lpn;l&XvjcE4(f#yu3f>0V!nUJV-9 zJdbcLux<1k!+AALd`FnG4KMU1i3nF$nC2RkSe5MZM#@`clnI<3eqnH38Ai_^aRjc@ z#DT&9#g$ramF{G-gA`S1USZ{2v{n|+L>2I)Y{LV{VCm_%(Y^bFimkt(-1G4$>Z+=u zD2jkkwD0w#tEhDtNA!gdr7@k>dy0pAm5*;+5C&l63vuO(cNzj^*F0h@l2p21_1081 zxTP)|=SOL31Pf&5k7;*R7KM-jO@&C}9^4!rRE z!c>%GReSVgmQ<$IK_N-u$9!P-<0RYEswjes23~W9 z3wB-QZe7`gHjUfbJSZLvY0T6!b4?4w9;%h710O;bL5tq3_c>)i8nDIvsH>$pV$l;T zIevH`=)+a*=B5nT8orPbHyB&~29BH}ziXDSnp3k3%qJu+5^TcPS zx{a5fWx`}^#qFd9fY1jOzLEAhmllN39rzuhWYrpVa=`&rm&^HMYb!87`KyzmheWF;|e@mB9G$k~-?EsaH2mLU%)GV`K9x63h&WS~L zKB7HEr5C~@)&uwkGT6~{)jiJ;jV*dMBIZR_wa_`Wf)*(?e}?8A}s;WEXLbWKf+YCMw$?(YdDCCaHDVB!sxOA zZaesZA9J6l_GHqwAH5=gMwC4rJ`mKaMoVuzEHAS`NKt#umu@bn!SM}g3j=F9Fck)Z z(u{8@T8uQoa~_6A5O544)cKe6%7vE?0U0%&+c=w`aTjg~v!rFL+rOX0uvi@wQT>-% z-eQ9==ol8~h#G4ObPi$k0Lch|28vrBznBGU!AEq@Ghi2Pf>%OY3MqRY;DA#Ww^QAO zDLCM<*Prre3WQemd;CNdCc1ld8BV|kk>ARuM9FkGEOX{HqS-*c*qfOf#WMC|PzAPc zuV;uBw!2I+=3h`7wd&-B1q-2Ee=ak!nCd%2m{=E*+xc;Vu&^O?_G1S3Ea%(b#8E|+ zs<5AKQIXml{it5t=+o@?^D9)wI}}&&`HKP+m1*bPDvp$_AZld8gUR#1cv#n^3%9?x z0a&~oQ?mw|Feull%NOa=;NkaaqPmJ<&!^ODD{pgJ2N9(BqblorX(`a#kZr%`;x>NF zdOiG-whXF%-Xd6pr(NxfK-8tu-^D~iz_1se@&>nR)lS}6>>)VSb)GBSpaOt5Pg>s$ zUvoLFx2F*Kf%o>mnShmDN9wK+af*w0^87^>Nw8FEYm0~iC|L3v>nscyI2YHzOaQ}x zC%r7BzDl$;qXxUhud*#TYWt)xWL9^vv(o0cvsgph^gtC`BXo{0Ug4+%cBPj7*=B&B zNnZg1qe|g=_IqP8`+dsv56O#-2I>XKofF16m4m4JzsLr6483nO^rzxsi-4PtN9G^} z4I9qhqR0@nL4U#9-!=GfDkgay3a3e(HN>E|3WnHvTZkVV26|K4H(yctY+u=P+1ffb#myg7vYa*ph*?dP;+^8QvTR}iDFmL)oF<2-^9}0kC{ve(f z09d*a^7C+`OG6(SfKa$L{f^C)3%Q<3gwlv6;yI#C6bCqd)lHo&03>-s&!qBpwXU2#!q zkyj0|)tnRMerRrwb4bcAn*(z^mMFRyTHK98?y~8XF3w&!sNJfhSQSv^c;Y1vv6kEp zUx;ve?4kfM1om$xJs=A-`x$X{RiID>ff`pYepsw1qQ*|=GU1_kxy!K$dtetf?!YM5 zo`83nh%5y8%h6yV{iQHVRUmK3n1EM8(!QS&1l>gzpXcIQ06^8aRRrQ#TeIq2qQZwu zLE-~{O`UguY*mG1$NMZ%Y2A&cYK&uPMOhMVJe#Q%}N<1v|73F`kJ-7(^B5w5FNFR?M&1q z;ceN~lqg%NZSV66z{saquHIlus*;V6m9m^s!2VPzbp?=Lq)D9B*i||66H0oHuKrL$ z4(CJ6LSt54`e47xi#Q_pNP4Y!*FFDkQZ?RtCbja z!)Oeej~{k{s=-#wT;y?*`N06v*GrD*KB@zr-&HE3P4?INnFo^=ABGfeSkb_70jS2z zvneR94vOs&0jJ3=h>%BJliLphRYwq6QsjxOd66j>t5_dgJ&Zg^d z_hYCmvihC=V}P-eC%4qF3hNXa^82g;i;YdT_x5_0rAEokWBrW52Lk>)+%A%wv{)rF z1N{$wF|eq00Zlh1^2ov~-{L%APUEXF7hvV;j%DjLnzr^m`h*Cu0@LE=;&TwyogIi8 zf~H9F_(@Y3GzQ%Jg*vHWWOqX>X)1uX%v4C}2UYEQBv~8>+MPLv^ioXRwA2v|pF0q@~cF8bHzHfnGni>R&@_ zn*FJQPz}}(qy(kAGGWJvLY)@|Q@CSbUCJ=OlOLGx1++0wFqYa{iCX=*Q$Pm6`P&g3 z;#IV&^X^f%PNsLv!mibwa#*&8)O^noNS9Ut`YY6=5kzfI&%bdILe*rlF57{~XKHwT z%&X;BnUTsbO}^Bv5TFJY`+PtVUCP;qk8CyAr3$F;>QZh+=zpJ?Y)@n8>i|bOP)VL4 zm@2e}Ymb;kq71Opxx@y`bgiR6_{1-`j~?4pe3m8IpYv7jX zDS(HUA1Ht-u+^O_frS>pU0n~D5LGKIJ-nYW{M&cU4fK6S5uscRd=j=>P@=CjwkiUJ zMrs}W2rh>f)1lO6HVCacTcpz66L_Lx+in6?fUq?FoAgAm)eNlkt6y^OSb`PXFJrroQ3K47&q0F`y0z{PF4 z0gwxuI3EzEVSGiO@m{8L8PGeO2vI!+F3rQlS3x=JFKc&&5JN>@IEE%eBD**UA!Hbf zZh+f=QvxN*8E*Z~ro9IOyhTO9GPQqhD?}9Tt*@0q+LfS;4&7081ur4qE24qdgu>R+ zgRhs*sH($YGTArv5rQcK@awD$>fUh6uw5m=5NePq+~!s-02`}r*Da1KYkpp!F!c;s ztxEAM%X-htgYg|@vrnm&ijPEK*7_Q01t6f!FODiy4xyb5b><}(bl`RKF>`TMYd_Q} zVL)ZI=;;7~j>oyL1MU)<3~Ls5_wyAlQEtlXn6G7|V0NwD9%YwDB}}~!Z>X0B>2>tS zO8mnpPD0bm;Q5+`swf_f;RfkFp~L1dXu+ub4^;OMMQCj&zPtR!(qhOHUABJLEdiu|7lj8||{ zm;S{rg*Dxeb*!{hI9;n6d50lTEE9TlqvBA&=ovlt(D|5ZTK8}Z-yWh>6C}9o#0;q} z9MWeegWSp@1k|r*HSTJ24khb7!-#?eSJ7YO5>XApGM#tP>QWIht9Y)m=;m2RyeQU_ z;wz8>N3FK@-UMBP2X%M)scMbZgJVWAAp?1|4f1-Ht(O#<^xSp#2a-(6E_?=^qf|o@ z_kqx1eMl!T&{u0>t%-%cA$gJ@MQWuMpXcHNZvw*n@c=8|j2dM1DAo(O3Co2>Ra6&l zf8drKHZw!`XY&wK0)RNJXyyrG%ED#e%kwM9j>=Q9;&z3?vUWT(4cl!mVo|#{ZrwfL z>7%tYrklWw-(P6h9;sokQ`A`3Mi$)R_J*|QqTapV5F|^;1iW?TAPQR)-Q&m1wqn+& z5c_(DhSKj_gYJ=3$OaD_t|ZopBxIbF2r}<_8yb-5=Wp69{}p_y~CHtZel?`j|)y91g>q z_XIWqs7^e~9@@ZDq29=Mva~F={2~@BLs~WFA+%=4M}J>1ShO^a{BZ!#4V1||AeB%H z3pRg$GKTG(7fuVOkf=WjMl}+;iq7*qg>Y zz{kD%JNb;M=|aa6%mx=_Ux{~30cvBj!xCtmtSt6pETw~cAMlo4b+(!~;-EFRT~_Dj zIlLFcwZz2Wtu*BIGX)+4-^EK(-4-o1_xA-YShhLfadBA4q^jN?Cbq?$wRZ1cn3|Mq zp-1ibiBR6gy^bmlo|f?X5VFZ^=}jM4psienZT|p@fY_%C7$t3tDXw9;3u^jBLUwFX zC>7<0!_CDZxLKS1W4IM9S+`sBFv!VmRT}9F4-Ba5=ZJ=;uEC-1@3dCR-6I}mtyBq; z-`G&-5~%PVWeYGgJ`Nv=Wh*MrS96Fb#sutohQVNfo}Y4uO*-!4MK*??2P>Kl#Kn1%^Z>+Sk7=EHEi4uP0Fs{zpeX+UgqOOr9mJ_>N;0ng z>%=@6!Dz0Y$nj%DOWb&xA4z0AsNs*zhC17-Eag4Rl7K%l`VpbOvoBL!pKu^-VLcNQ z9!8|>+&q%Rw_~D+4%H9<2Q9ijAww;3cWm#53I;Avs=BhKL98^aY4PeW)B)1=uewW6 zj-Ye4CJlm(k0YfoaTT_92-fr0KM~R`pqP8TY7;;vrkA&zKH*SmHTZaDLhv%u)%4_! z7H7Q8!Zx-MT@zs9X<#0uREYo~K+vtf1WGDlg375;PWedh3XcYl8a;U<92Y(TnqQ8V;Kr>+WDmkf^ugv{noiegXGc zWbHspx#|A)h+EJKquTS+F|m=Of4Bz=;dISRa15RFPN2p9GY+ZKBI85rN#XtrD@(vvE8$Oh^JT@H9QsqX#&D66tu4IN0Mrn(VTunwsG(x6BOq%`@c zS1CjVorCVO?uiC4{-O23pPKYeN8EeV1Ac080Hk+8)$)pjpec=Z>S7QSD(d51J^GH* zHlX)7W?_gUSUS;YOR^Q>;nr0q0|QGmCsdYTL@Jne94Kf;DLV^PZd(E+#o-_Sh)DfMki^FK? zS|b)Q8|+}Q7k9r=`UQpUF$0}q?fUB}7dct%zP&()UJ%(kHZmn1JCIkpa{CkQF2y>5F z2I^z7yuUF_WQU8Q4jrwLhPv?inXD~bTgR_Z&22OOnbtU709Ij2XFCAd#}EkUF7BV* zA_nFhY0O5LR6?5 z1{k6tq_R`k`=l3$Vw$-)W0V{yx9Oj8`BiO7x8Ls3Sx`C2Z+FzjO*Kr5dy`{(GtsTZ zibIS>9C#*(%IMM~FKWBEb<$W^DeJNHhyt3;i4*|RQ?}rwoKoAJy^%b;F3a$j#odR4 z?|5EnQv-^0=3-pti$*(3?tum@aqb{#Z+2^$M^It4;D?gcmpX9sFa%;OEytgUkT#ZV zzC1@jvVz<-W?NBOLtH+DBSpBN(>wgYARSwqf0H0C28wT=40X$f7B%Y@xmDXvJacio z+-+em&oaQ_6>PyMHa6@$Ji_ZGtl`2uf^sZZFAz%?RgbsbrL_Wum9E$7HUZ&kPplHO zx`h)){urpOwmGMF$IP?RQkI-=HEU5d%@Z}Y4mey!L`AX5XJQ?W0#Ksw!DSm3g;h9Q zZ^kN(r;obD!axFW>~MU*WE8B|yrV3diP@WS{J;ep$On0r<`xSKHu!K7)vqx2>za)fi>O&$4`@)` z)R z>#Ay0!;mfC)Kj=^X;+U2xkRa9QQ-2x0K4bBqyqPz_XRRP5*R6fO&WUFdsy zg(O-x>v~@;#OMmDEtg(c+7nPvcRUORr;?|Xy#8iTQDw7k-BDrzQ-8tvmyWRu!5zY_ zp#;K9(fmD13MQph{{RTQU}S=^zn{d?An1YH$(FEcF1g!ZB&$hY3BmVSWGcctJh}YK zhQ-i5$*}O22(-lNZ=xe$+ysHx@j#g#6#-$;mEQ4Qpc>>*YL&AWljaoMaHg)z(vfVZ&w^0pV`UtCh}pi8Mt6efv=!%G zD`)zS!vbKsYJF=ii>t^fXfGoaD`7KJziUrZG}(bzJNo#BLZ#zJqTjkgmr^Q&EMw9* zZAEPNh8FU}9gVQU`#>ZQcZVJ0M8H^g!0~>dtO1$|baY%-)N~)QJ;bz)h51)|_(i6T zh&k-K#s#LOR_~ga?PPUE`%uio+eQ8}NH>7dcWLCn)RfyjFp3wk}0b$(zqo@sSOmBUSx<;*rnk$dG%?WJdYix5- z#8`4brnGwL@hGo6_5s(D!J|Tr)2qV6S!5)59vGm)uF%-Vn!e@hW`G)f$B4DFzYfga>6e7Xkb|u0LtD{|O*STWRl_ISdr_9gB z)VA(--$Ez=sLPvp<^>H{G^1Fvk%Twi+uoxVO{%WITvWyj7O?R50I+V%tN!1J3;_n?Jyq^h254Dd`MAi0U7p@5 zRB3{xzRqYRZcs1|Pb9J{K-S+wgAfg5E&|znK*3U9YqxruQMzk(cd{X@O16o|-65A& zqSdWFBeGP`8@K+MXdJZ{MvKKtQ(#RhjlF!r^up=F{{YwGIkhyZk<%V!#UKwI8h++8E0<=yL*~QMwl&SW{}Utu0+!LfwzRH2zyu526WThxt|+fJ zsb(!ft=e9i_2q%EcRO{b)D)H)xh>q5jYaIcdHhPYc0sNE$GBB>nGl(X-_8?4rpxSM#_LbrAD!_afm+o|#Rn43*8mcg)H3neK2#3VCX2uE@R(_YwJ zyYo{uKr{_N5w_J69w1iD%Te(R5K&#fqkf`cI+34`%v;b(&L3`HxVK9ly~ZF7vKEHb zGn1&_$MG4(kmPzqmM);*Yv7q{n`XycaLTblfo}cra==;)y}UsE0@+ymP!v@XryhFq z3pX`XU(3VlT4E}l3JNEY06|a~Gi1tS6yez8@eUfk1*6_2lc|#3h=Gk4a$dxO!P!nC z&Nvx*Kni1#+5xy|V1*stYH2Km6-syfM%+ajKu4LZ6FU!&a~Yz@6t6y@1XkSJOHsni zh^1Ps{t-;>cai2EB`MY8{x8JFq)iLTj$Iuozc4_mNZ-|I{`3=iGO6Z2Avv&8YmVVIUbsF;vU6mY8%n!I|un`@_`raO9 zBrJ9o)>aEvEHSKjPf;@TWLIbsuqUXsdP89E2)}Asi5xo=iGBm=YKC{K`y;O>0A=>o5VPhmr^D5|S%Lmb#ub3vNd1FHe7o zOx6i`D6PIdKt`*o#(9q}RRPk|J{WBK@I2z?LZvHW&rVB?t&q^S)8-fDDV(PK46=qO zsb6P+ic_#A-s62>T2Z)Bf6+Be<>-GSFRYkcZ_Raut-;dU{d`8~@MXIAfQ&(?yDxy5 zQrOFz-0swLZ!Ok8%Ytkm*-$$td-oeT*rKrsibXAJ*6Ir4PLf$zDL~55e1>^TnSp# z1~F>)j%AxB5W=*s&BTePeWOwUnr#()ZZ!!*Y#|-h*goNtSsFaj<^UW3Bk$hsHn1DI z=R>dknfew+-hlNBmSd>3==zT}3{_62#IuC3zXJ0s$xgBEcRvsjA#1(-Y4a;>44P!* z`fC9Y8XL>%Z28|cb#7sz{t8;o#LTT;;4;^gum3Xnof82^`K)~#HX^CZ(r$Vt! zeP(4{i$;C?KQXR!0S2${<|yAKVy(U2KQJ9kz#P7zphG~pcKC=uv5iBYaH~LtB+OI^ zsyD)R`@CkAHsd|MAVio+ia34NX~tR@-+yo&*)siZN>DV~-3@D+h)<0Wz7JjKvxR&lSEWoc>@(w)BGF=bNoRw?>ax16Y(5AB2&MakSX zcpot!>~N#h>8d5!11U$L$@2pgg0BYka{7VYtjd<@?J-GJ_zQhWcHpeEJ5wz5bYFgJfCrjx6#F;b2V#N zr?XuYlvZ`J$FDI8vRX9za)yysw?%X0CI-xgREl4)G%I~#urfut zJ47c|tr+@Tx`7?`+u8E~HcK-rPvo%N4B3UHmWtu-`t=coNr2JJHrQ4}Pu9^&8!0Zk z{6xuGu(m<4iE6b29Qcc40J}g$zjhN3$G>q{G)6HN?)}m*-PF$we+&v#DR{;rWdObk zE04NFQ%epEKWYv~LfyPPej`^=)EV#KV;J2>b#wCoyFyW~huz?nTLp)Q+yJAiACo7K zn1Ym{TVGxEmKXxtpKc~;;eq;VF7nXGJ^WlrU66KrLo2YY9bV7O2o$EvjCXjHjjLQ< z(;bc&)qd2=K-F}}?l8O=Zg1ite!{bK{{XVPH%+bdL=+)47kxE4p`k}V9;Mg{t=VIT zn6lOgI(hdnD2^Q|76D_kk2oDmL7a~QDDXW z^$?GCTsQ}rNERlv(=DKpMGkrO^9zANyTA05fUbZKJVHTZ18*SYNCKOR%DV|zmnb*7 zUnB%$GKB+h>7=3tfU}VYNMlWP-n_6mLXXk*!lS`jDDCMM@j+lViRFr;MKpLGpK-Ez zRGU_)PL$wN18143IF-q_`dmT1NXWZ9nANzP;sLMHJx6tpS+|jvCy@rw%rm(T- z5OqqidTA3_8a7z%XO>wiqb@=4boiELCe}{hC&Z)0wb9Tl2UAHmd%I|nuNt82={zT-7V1 z*SK8@X=S~SUEi*&cw@enE))ed$}?Q3;D{$OM!!Ixd0e={RZG`SB>+4z=0fmFBC zpOf4~9O#s3jsx7FZKCKFygS7TPz?yU<$b{!X$4+7n?#YiC1-K*7Q@yp!{q~)oy%Gd z>rZfc^Qc&9!Syf1RnWIqn94({^ncVC5lRC1a7IcktNAOE0)uMmGx<+(Aw*TsYyFqT ziUt*aI;Xj60dA2fS={p$ZnRKkkN5E`!)wVgWv)}y0twO{18*w#C_-Hq3%$5p!~pht zKXit?Hi^;Qg_^W#5MNFY%u!gX-N^)_ilLaDj=$^`2W4p6b@@USWrhoPcFkkFw@imn zWv%_%JKS|?JyqhM8!TH%VT$_JUV|CZ`JJWPC_u2R}C1{_CR{6>BfJI&DNlo={?To1T%>JXF%d)E)d1%+wGe!=b% zl?{j<(JCq|o9gOXdYQyXrt8 zZaXhL-jG0r=^fPSW#2FbzaqReZTB__fTd1{m)y3J^5K7X?kUk6fdi|l4#o=0CjS7q zV=+>Vyb#vZl~?9oK4Cp{I4iq@@fh1hG-!79^9jJjr$c`zl?&m2r?MxCR_&kpapYjt z%5#PBDG2rv`%!8Dvw+dtO;%#E(W7=yYg{ii3g)({n)vyZb)G8K`l+C1%8o<38Ues0 zTlw76PUH%w(sgH+15r<70^MJL1NTLLm5r%rJxkf@V8|TH!6c8c1 zdho|ETcfI7toI(0!h?9elP;$4m}sU~p6~e+YS3pBo?%K}L89KyYt*5=5sW{7GOJuO zN}ZMag8){BJJtP`3l!d5(cUOH3sx%o)ULc5D*CH}mloqWUM8iAqO*YJA|mX;ygvSA z)u$X(va3@NFx$!W;EkgoG%=5?SJ5eT9pf}*cGm9y01!ZJdOESH&V*F*O@dB^^n6U^ zQWV*jFb!5%%Fj{^hzRLNPeina#oR<8x+!O0q^7R$$u1EGK#o2SFfYOep7Tesd0X}C zq^vDUpcLt65D3L}2eZsWnH-2Q%N7m6dc63BLh9JzUH)cTEOACS@%e@+-?{U?hp6l5 zp>S#b#@d}Pq9NeQc3$ytFf?=GI~OX{3-Rh#D-K?~rD`ho6=TntgH&AWKgM5b$}qFE z5p;uf`hC(ij9LI|%t|&I7hf+>(oGSBJVzYxf(ma_7zmvBgQ+VmT-W&gK#W_-($}-@ zVGW|-40a~v4sU?+j`3aT8FwC_YFe}}4Q=xtadybn8YQaRXzzYuT2@;W_L*r8&%kkW zCRCz2FO$c_O^~-0^21OsEVpToPq+=xCW}7b6D8Udv3=1+E1|PL83T;O3@E#jtTm`$RV{FiZ0KW)XQ|&NOpWhLg2(FgPZpVHMm9txykbn7=dqg z^Vjr^2rcbg^S%f~Kq@Itcld>xged!=64fZG!z~s{$S8O1gkm??+3F=3`FkmF_D{5t~+?SkY-#owK{HnAP8!Ob@Szj%m5TP zufqfa7%uJV94rtCfKje_K4YT_Q?=guvf$KEP8YYSe9b6W{{W3XVyNt_@xj2VDBVr{ zk?nec zGN)5@EA;glDK%AIS7>mX(^Kj1)FO05ax+c%BD0WMDP0zvN)bo|WVeiXW$Srn@_FJ8 zssd*88XsARAUQOg{{UqeBo$Wm;xJrDp@x`zMz)d`_Hoj`5|ymUVM^QF#V?6`nQ39B zHae^31=Wb1M{c^xz*d(p9iJ~#95oa!%xUrJB#;IdRCVMf!!;BYbnD7YGh7-T-r&Ou zQo(hMo~FRX$gbNvZR%#A7E@k%eqieMCBtX-KC9LX^|Qpf0BW;8U*uy8CIQo~UzuSr z2xtbsBNADu0-E%kzYx(oWH5L8v?-&j9m8#Y3aG0^Xs5_|h*(ihLzjXm7)AEGG1<&rmk=K^_}z$IHQ?0P;e<&v zI8pA?bVa(Qg*&gT2w_)y*IMCyKnm*>T)aOKn_vb3>0Mhhe^tekoHmz}O6;Q>-yfJ* z!bQNX>+3Sr0^I`Iyq_^(|`41di z6+y_*cBz2K356cdm)ouWN}K?$y_;*SQq{Idx;gyAjEZnU-n=k>QB=K$Rp;Cp;1FQLWr5Dp zh4}V+in|LfYwmTc^#VjI8WWGWk+QUVuOmr&!h&2qd>@IV$rQ>z<1-$11Ax0ZejsH+ z(3V|hb0Kf9S&QQZD-Q9F2DudD+ynCI=@QoLmYq69HVvw+BY=sKYxO3|*tcI^;8Rhd zLp|V#*DKZYm4!;GF9&zuxq-h>4Ky921umMnssx%9dGK=@8@M}XatSpBQri1cu{G8W zyu{aFN^FBF8YtD)X(86bPCh09y#v+zn5Pk{5kc(2);8Hp{Ie&y4CAxzIc}x2KPa?2 zMjylx&Xg$ov;wA)v91UpUre-9vk@jz>wk|m>Ih&du1kAgh)Havm2bI^0|r5lts_Wi z+evKx{$-MKGQzvbR@q6IN9y2eKudx2uZTU2-Gl1^D^(P?r!vy)(AnO+R2r?YntUNQ zNNDQu!SfS&g5T%Vu)8t}HU9vSQX<9o)W#vi)WIcAC}jD0b74g&1{j75bmYE3%6v)%-- zGB3-@dxODMx}*JqF{!Hg?)i!x;h?kYe^BKf6?s2)hMHix9)7fyx(YVGal1M|wLX(H z2Sp#O5!kXF+}!fY+RI|i^YJ#A4hLQw%%ZEQp+|pAtiZ@M?0}b)7FrV=7VQ53d8t|* zs*%Ib#KN%!_VF{QazvST<@kkR<+A%hC9s*F2kwyw2MY_tMdNhWqwcdPG_@_iOJZe! zD_c(wP_lyE;a)uaLfJzrD9?XV$~Ba%Z#$e^Qrsw7rNeZMYFTc`Q43JX?x30liqOBr z)><-P{JD$71@t$kfP$nN4OqQ?=_!M#p&bTkX0@6&da>f7_6FE!_B)kvs-Ob(28YbGp{6=R)#ZDQf>s5p-lM?;Q3a}dq~Lu; zzRCwq#c)h4WwJXsNCsABrdP0;Hd%Ea$yMrRj9|69hnks1U=;^(>Hh#`0~zR=HiotX zKw4YBAc=1Sib2QjANV@NIg_nX7>U)nQ6@705vOPUU%^ERwe^DwMEA?(x8Jr2) z@A2+i4$eithEIt=SqDNQ^sXh?f3()^HGsRq*XPt4 zgCMtmSS+UdXlP6QV=09gFYpSj+r^_)b1PC(vCi4M`S)z9L^9GL=w>TlCR({wNLiY#D^ ztx2Gs72f?y<7KOhDIx+Tz+6eVJFb}^(b9Y=kP%2h%yCjYRi^p zw18+^U-mw>q9vz)a3D1Wmv-wshqzS~-CNK8;auUm$n56*Mb=PQ0kOdPn7SF+@VjI2 z3W*Y!BbT@0HlE{3z3->yRt(yrjMnLb9)Rdv4c^!~iqe^uv-5e`fkh zMP9Z2Gf-+pVCk>9n38I-w=7D^S}%kGSY43+06!AELh)=4kCeA=y~6OG;TDqUv2-5> zv0)2P(cZe*D)Fg^(>U{q^`=wr2}6gZ2&lHj-j!e_UW~k>q8sPpI>k$Qe!d}_g%*20 z;E2Z@H5Foj`V-QO!z$so4?vkZ2UsuaF zt&~8l_KlkIXu!VI>_WTUk0i~Q!kj&NfS_o4ZT>+(dyEerC6OB|Tc_eI0NV|}f8?$3 z5Gs&8q84oi$a;AAn3NV|JpKGZ7@HxQ`-m5-Ix4>&;-wo$>3f%D5@_nd9gJ%}lS>)~ z-iX?U4Y23D9*a4)gU6_*7oZGF-^{y#H~Q?$3|&T(&$xKPH2hGQqA0NsZ(k75iKACG z?r{=CP@CQM@lZmpT}7wQ5O&sv0k*z3msxjEOC644Yn3##JtaU*n~XL*%|hwTe9t5qg0x44u9F%ayfV zKA5OULd&UEX!8xiFtBTTc!L1Na;i3!-QvB>JPW9+ zxyRxiEG<}a^YboA!A@@ue=vLGQJ0GNMwDTs=pD;)LfB*Kzs6ZWD}v`=cNkP8ND}(} z>nPrx5bm8Q%N&P$-y3=32e_t%5wC0kYT_GY-N4?LaJ2) z`aZB$u<596hQG)KOQ1YFdVl~4V=K#8%|k-mytw0!%mh?y;!4H7UsEHgDGwKe6^m2= z2)g_pqcNou4d132O<1^ABbZ$y$_~S1%)kfr+d8 zK@!khP`w#X-p0@+X1ZbZ7P`=OtJH-mtYGpMPcMKqO8N;Hy=AED|fdb#7{`7|xiBv-k?~%+bByL4sbnOFLja)`4(%4U+E>z^- z400|FmyCF3!==_YwqinH-XPZW_Kxbyt`&}Y{L128Oxd_~l>v)qJLvk3bpcW9Q1W|~ zgxa7CT8?kjrXJ-A@cw&%DxTCk9dWLb(>W2uI$wRDl_-{7TRK_uH1Tf5Ty?89%%Oy6 zD*fKLVNozj>3@)KG;Y)WzsR0`wOXA`IsC(24D{)jHR>b^!qTSwD$(H z63I+As6=QhhtL!r;-VL&rn@JX)K67f9Ox6T#K$FEg+r%ovt>+`yyHjx#j0Q;ovW9^ z0F5UW_rLa6?*bg2#AsNq%JIMbnvpXq9>-{jDk-AT`onw59eQ|#qP4Q&drlbGoif?h z_;^AzGV0H}+Rt+Uz++J7i-j{Q030}~*4ts5Rpv3ftLW_PRj>pd04g=Nhr~%0sYsp? zTX4*d{W7skF;#jVyjsO_bj{n&*py#kR=&Ok=lIti9pLusa*PDVNK=rvo^@R7mhfBf?{f^!Q=BO zQy~O7n;QTEyB=nXzvvGu>N=0GrJq#|2D`g!$nh+Ch6-c1sdSjwTZ6(YZ{$%5AfOg3 zRwp1=QVdGdVW}|}R{|J)AS-rnekPX7hFUxOjcvJLe-9NB;8chl`I$;_MJ>~wVlix6 zsNJq24Y0|pZ}cGP8VlHVV2aGGx}BcoGRW)FDXF3~0-hpMR=HSa@rD7=yL|bUriQCH zr+4mBGw8~y>q{rUSdu{?YfuICR;56j~wBYrPl~! z{T~pTZi-yhcRaF-xOME=eSF3hbJpXTlZsidUgh0%rjBMtk&s#MQn@mq0AsgyVMI5I z^p~h0t59C7?bSr1hd^pCj}nj|tOq^A?vS8b`ksF>wwgkN9^R#)ZE7_<_>RKudz*Ng zrqC;;^dOco2M63sQjx#-9X~Mv!m!teS|d|YY!)BlB^Z_ykc8H!OtYtkCWsApj|A7u zHP~;DHw$W2ur%kGm2w$P^UP*V>p0l#dsGU6W=Y*Vp^g(yZsm<~f;>6%3RR5&S)o_o zS9sm6H?zM_tVR+gY?ZgOUx;iK5rzScJ)t3@D)sI@BGFk>5$)#91Z>`yca!RF&=9ie zzfYL%dn6Y1`;|sjL+rjTF;@_28|Ue=aV_m5JEDF9Sj-@@l{KpJFd^DwFqe1C|| zKmpJ@3+vo_QC96${%R$&Lar-u*RIJexjA(ShzcTgh~z2AMk2jLWETcRE`eSb*78x#D8NfC}yF_;!J1 z#sYepH-{h#f51x)b8MWw#>d5-dOo9-avHVUwcG}&qmT%@y+6n* zM%)Ya0+iZ=vHpT2xG=eXO``D(yjahUnV6d#qjkymNE_R7O1-l4a`LXaxES~5<0*A| zj4IQ^;RQcZ0n>WFC>pYsu+da;e&M7A(u~+BEoQG*$>Zh+NLrhG{XV92V=S=Rk1!g- z@-S*w7D{ej*Ex11T9VZ*YVcnHj)L?IoXbltTt`@7$z@R0$5lL3*BDM)BGjv{v#by+ zM!~)vW{(tE==FJm+9ks?(GPNvf`P*Hc_8kx>c_gcSGi;ys>YF<->dE?Az?+@bLUT( z7b`aCPgAD4N>Jq`6D^1}8-a^1i^eWyri!mmw~1!U8lcE+YYe17T5I;>X^k)R|lWmMM2#NC9(d*lm#ylPj7P~0+R+e^%4{U6E%DEwmZwKr2tZ_;qXKP z!B=bUN~49EmZx2bs96;_U3((E9><~4UF;&OG?1yw)BKh)?AJldijA)=sqN@%D#K?z zU&rE98AJdMd=MKd0-`UcTzol7i-18iTtPno`Y)11F&+!1wMx~^Y!hqjrR z9o%xh<%U=m=YKyE(6HVm4_A+f;n*4kuA0UsH2|g0kBGv_(5n}!@;yWV*ucO2LZt>b z0a|X=g$p~0%hL!@Iv5Gp$L4A%r=oQ8@intFy;6<*zN2Hs3M*fxWRn=NXNW5-ExR&t z?jqAx9;6<$?Q90#@{28nwybs_qIr{1eUq8IVlg}% z{vw3Rl8nQi7A+*ft3&(wi@bYTHNo*5hWEJnMy*(*cW;-AmsUBoyT`Ps!Z6JGN?3!F zM5m4)n3+vr8sqIkOJLCCdX*MdF@lfaM$XVoVU8iFx<*^=2Mr68E^GW^wh2H1EhF6^ zz`uBvM`Y{{Jwyc4lKpv#kcTOTyZVX+c6GD(%0`KT@Ly<6t!-J)Ffz2QtS&uDi)U5f zzqKu@2SnT>K>AU6f24M zhjGu{VL-XbwZ}z@OK!rq$7rivzJtu9mcex&=KZD>Odtk)m9M8qujwC(Bw znwNQp6cw*(iEm#L$S5VX!|4T(dQUk@KKJy1;#9e?CfM6k@nG5DrpuuWa zYxwao1v;;6{p&1dp&oFZk4S`67Ahxqc*0zZ@rvWED3lHqVE#@)U?X4nGh z`a0B3aG@ewKaX(n7%{Nl*o@E+whzM&J4QH8TX*C=%c(6^Zf)$vQIM#<&lm1c7$_IZ zO*xrScor4g(=?Mts;#y4-d2$t(C5MK8xf|}r}(dOfo({Isr@aL2Y}`wslS)F1q>U7 znCXo_veGGfj5n`e5E6lHiq8^&%v#SO_ZNa1sE_l!z|Jic4#|Ud6tJ*$`=k)0z+v7v zCSa~6x&Hvs_X}#SQd#TyK&FUnhev9GBgIiLPQNjI)y^W1+Z49ymahkr0%MN^Ea!p& zR0;;YB$O3cJEeQ$@e(a+0Q5P2CP)TcM^*PohAOb>%cC4Ry^IdWk{sQ-8S~~Kw$4>L zuZFzKD}ZJbeon&@z+M2$ukiO4!Yd1ObbC<%8Wpu$%t&vcRo%?K7^NiT?JMekGaUR)pICic>+^`d3y3#q*ulWfaZfIv=g<|+|#f5Gyt-VdA$5g zsJS4=$zG$-i>0-4=?c;#)XsGC8w(|hiw*GYr_5aJ1=>6~W!2oFneEl!A(q-&^{$m% zd`iGvDnIJ$+#Lemz@YA220KFa0;yw$ilJvm5#SaA*Ijqo{{RsV8fJot(Bh{2VhU?f z-F?d5<U*Lm{D+6fV;V7 zmJ=0CG33C4>Y?xU#e0?=S}hkt$(8R}0xS41O0>Hb)8j}qTMmXdyVFUpMe2J2F(>6dqa_Z=FGvhQ=lF2+EXsrg~*JFfsu*1W~6l~Z3zg7W}fQQ3&(HBw6L z1@%_Ys%d`EBFo;dW=*sj?*Lv+(W6ZnhP{%3lV5SA5ETOqHR5K{D(VUQyOuyY&YLi5pF|3i^IwM#U^s zPgkX+9UN|OuRnB!uG<}Xcwq7}X{bBIMv2(H#g%ZX18sk|HGH*>AJ@dP+}9=t)j=Zx z)olJ4YM^Erw`0K^7&On|jWJM`g2q;4ZiAZfD|5!Mr&Llc1BD!p#Hq6;gskuGI7rz==>D)2^elxv-wXsHmeZlbnP8wD?!+sRWX9*mFT@Ho z7Ny_O0PO@d#x#7xV+cd9nC+}GIvt`{$qnZ{-w_!Z78F~f@d2aGpxN|2#1Pmq{{SYg zWdR5@aF@mVnZ&Mx^lj=6?WS>`vo{Q`ucn@(l!33e#1lX?XuBRF&njouSV9Z|)a!%X z6Q`4m=a0Kbn`?_QcYI6`Z4H?Sx(dNdV%Kj>O#^bcGn)2A(<6Rsm@FMTr8`G-26|~= zs0xDh9dd9@KnmGyo`<+Obk{EjUvkT%Wkjd5@7zf0uTgC@^9&1!Pc@F7;^69T>Qm{K z7rS@ycewT!tqR{R+e;#6EjRun6IId7f5G{Kv&hmUcRl->07ZT*u>6t;A#)2>ND zws#K2IAB;-6{XUivcyu#X5X=3ZHitCzUR4KLa;g0ugotHObR+F(={w>S+dj4#61GG zmR$W<&v+DSol={7OI#?-s~vb_x{&~v`waJi3S|KUu3qF!UWWnElkO(WE|d@Yi8N*Q z&ttFqDCGg72Up7wY!MV@y8UY(aL(CC*OQ3dg5_(btL`E>TS>d$cfa8dp?%ym$0V<1 z>8-Qhksv8iX^KDe`kjSA(F4Wx5py-}jT&)s-BWqUonB%g)&+6{%*zt0#Z%V!K4!sV zYKI5EQnC0!8O+ux!vk*~U_foAUAr^&iAi?KgO==mAOKf}?!6ddM}R9rI(Q(40@n@e zqtpN`vUWFolR$exhWH*}l}Z9)KaisftVl>nn zH*M+lq}nA1Q0cj;yA~+f0JDFiD0G8R1L3?>9kBEdy!VLOj|3b*Ak?lUTWRHGRxqBO_eU}>DG6{ z#4oS;?pZYxLSZ^BVUz)(q3z&d;0l37bPe?Rj4E}{2bfYm%mV28)VkWk68``QgILQ; zJ8f^oT_GGXS$hl=i&mGUMzx=a^_i;`U3BO1E>c0K*l}|T;uSp4h(j1!RHObbD%}PH ztfPiMHA)U?-$e}@VKwIn9D{|7(d3G*me#axQj`!*UL!d1En1SHt zO+8N^#Jz?!>zl+-)o&`pvC|dqH45#dE}nUp&{n8x?ZX>Bo2u|Rzfh0`XxOJGs2x^R z!)D$b!egSf5z*`{3L!&6iZ#dGq2NeZmHz<6L5hYZDc$mWfpJoW0?NYgUZPQBsBS5U z%vWkZ8DCM;2}~2Ra(qk9BB`()YnyjB3>mGeA6KnrOPr^+G8z^a}P5e&%` zm)P(yMeSF4X7N~97JT6ND=Nk+H886oGCET*~z!Xzl3eTS`)EMk3#8?3x$LaW) z%T%H&?JTXretuxPg{CsMc+(sOSFq+FO>)tzglnTkP!(r)pTx0EozphPsVw=Dfm)!C zmGdtm3!(L_5dc#{ud(7D-C(;;J5|5{O2%`380i2qIJd8vY4mCgDZMzoKEEP@>j}jQT}nbaYKr zLT(k@aD2pvO_ig3_>{+FKWH_^Ma_0lhe83*tDL94MVuknv1D`70uzw1-1@Ym+Af` z^(BY7@JodSAqw7yBM|GV&TxF+62!Ejnyu0_@`$%)5=P_>Z#{ zRA~PIPne)!P)zHr+I3w207iB1ErGIPnmV1fj2CcAe}~Fft|_^@@WgqPx>Xau-D4A= zR3A(CAJ77Z)b}_g3ZN6<4-7#Kr4$9dyiBwKXW*Tt&!PcMJ)SN!RctTEOMOEF5)lmX zZV!oFn@UxW4lC3NL^5+-kRfFYL}TcJ(J1i6UuLQ5S36z6b-%PI3@}8+f8@&}yxX7O zcoghYuAb*B?i99&grVQfOQ*u=ZpXvaTxn>|PVWQi2N(fa#`SuMr06PSKBOZMu>$Y6 zELBs0gn~-4WJOg$iz0xwi7n)j)=liZr@Fl(Q2;heM0?0YKZTrPALo zs7B%!heMfGQM)sZDJ41QTG` z+{V6{NZx>>i_s{->WQD1F`zA+ChxztASAH2{{R~gai9+}=_(g)jdwNgkAzFn zMpo!=*f<~g+lYUii=}lW^uy3z?nlptsaV*VKhaqcXirY zfWU{dFPNE>RUAO89dQ-XxdeEfslnfP;rN9>WK|j;_wy@s(*vnyeLYK+1%<2rphY7F z+w;;KYplIM?$rT)tzB1<$FOKm;XH{2p0wzzMRs zBCS@{4VZ;dkiX}NfHt&Ed-HPGngb^B&xq=@2U|TcC>(_g$8QlGZ%}=8m1HfQ57n{I z3@*$Wm4-AMpV(}yD|5*U7Lhfk+&)M%3ebzk9d0tFT84|jmP12YeG#@>F@uhNW!1FK zr8(v=trpi~u>vSNS^04?-h%Jud|W~$)H>w=7NJ_xx435-1{$yXa7~OlPVb0~BHPWh zq}4@Wco;t(`ozrC(beq2cDzjT)yl>xx!4a%kT27KZuVL*l zS$oU)Leah@U(qNP%mH}ne(w_yv6lnHYnipbvH?Mw#A$ElptOV=vYY;-Q?=9}7CJp< zN*0CEym^>5K}xzlgf?(YDzVYn@A$?uXGa{_ElNN~7 zOk7`|UZ%WQH3uWxe%lmOgs?EJ(xVy@7?Px%0~w9%ZKvo8-&*54>q zG8ZZCe2|Txt+K&eyph#c*>r?+*x5O7iw82AFaDU?bpYV&;s;|@2P}y|eh1TP@R9RkO#;tI!B(?GLJeL^VsStuN1{X(%~c#plBJ4GwBsp*qvB$5Xp# z1$#YAQr2RN3*XVH zb#$8sb4J2z=^Jg-7AWz%HR>EaMF5AM_=DH&RFf1<9;7>12D|MF)bx$Jn}L1n!x2_0 zC~4;6H4q%dZ$rxvWaNVB^nw8(yB|%{8?96x#9oR5!oD8tL)5>Vo+94dI`QgPWc4g) z)(20!wx2TgX&RiF$;d}E=n*Z)){sHbIWfO zEuAMkzY&tDE)tH%7Yq5oCROe2q*}R48aKxW%n}qTs_A^#nmSnEr#uLwa|z)NV;+}>d0a9PHU%47suAytZFwUUw5rQVvKFh#EGi@$!XPWl`* z^zuhIY|AT`74B->Oap3cdi5VRK`kAgT*JMHhC7nOC>cQLmth#8W`nK#CR{ZmT$QW^ zY#NigE^FM$$z-VKd|$Y*v`u(vPXK}lH-IlqVWhd~AAVtj3nJM60Pa;=k@v9IF&UA_ zxiR^T>`<1)&JItBmBtlA!*(W-(PNDS01R7Wf+<0U;melTUe|c;N@>W$N_!9uC~T*n zsTr-XA9t5fYrS%RBTh9{v{Se4S|&2C!W;ICC}Tn@3wa z!$6^^ud2ULx{C~k&ANUdGQ#x=jkF1IC4Q`;=IM1>e=b;QKP5|{{Rq*S5k%N zv=Kt+VxqpR1(i#i&&(R4QDJ8gS~^*b%^1aGJ&(Cbsg=H`Z%4Uez!ltAUoy_Yqm}vf zEdcQ01f;4ot$rKJI0t4hS$r*#qQa#9|xa_cTf#!`eWu&4GQo> zd|GgPB0K1qSz~AY1NOpr)%xi(AbVLzFdbu3VS2ebyub zz+KoYN8)7Hl`5&@iC*ZE?1%A|<`qC%%G}~u3aV-u=fo@4udP{djV??ez9+9zn`AO} ze@HYPqQYaj_eg>Wy32jPh}}x8I=8#e;#gNCWJ-AVDFRVumshvlqoG|3hK_h8jRuWQ zpU48lTADpI#6Smtaa=sa7K+nVNBzNTX|^k;Pr6N%tc^@}e8s!8Ccc>XiCM5T2Um|w zYbkD#;)z^+vju-2hyg|2d28df!D|NU^cT^eh$T=p6~mv1F-g}M`o~#AAadi}I9EU< zYrDxTl9?12ZR7I;HCzEcr^E-OhHcOfJY1}(0F;wkJ1jY%EM)Tef{CR{5Be81Qg90T zKXS_3Q*nJvm*&`p0;gM^$={v?Laq>fhian>K&};WnZ%whA-H;VXebpmpwgn+t#^7~uGn8*FmD z;G=axOvT5;p|3UafzmWI6<_+AbbzoO5<%bb5QYXpdxdcba6oK|w0ly+=$B?L2yWM+ z)xxc_pb5o-#(xsmI3PP zrxOK(m5Mv?ej(I&nerX~05I)_;DTA;?Qspvs-&-WdU64GS&HK^Aj|i7F(*iwt9zw<4mLf072> zL{uPb%A5DAh?WCH_Ro1vMcB}LoRd?=%!{$@nB!ZN#T#tP^DgTGHL>*O;N2Af!INb3 z^A!!Cw)>tYiCh~Z_I%4YvaS&NvlEOJ)a&M=bJh~De?H<+Eq4Q3>BxqHW~lafSfD5Z z@f&-&ekKKrJ;9*`lmsp6e_rEjS(Bi5r;nJ1pu38fwsw_e1sfGC!%OrCmA`7HL9Z;ft#0KY87#;R zYtq63(+l9U$IK0ES)qdW_Xe>7)KLD)QtM&4?t02WMuHc-5FE|L+VfE$8h1^z@8$^& zWsp$!IEMf=!$)_eSGbVSEIeT{#HK#6|s^AmF0Y6qTf zApshfLH@7Y1)*R!7|YpxNuD+#BH%tEj56oHf5rIanx+O8-kldH64eg0D@)cq`-y<|bgvLsB4gUbt77<1( z^}j4e0J=a$zqP%+j}_`sh3kbEO?V@LBceHZU~UO53O_1BY*T?pOZ98&Z$Kp-dF+1e~ZyJ&Pn2UG|%!cl6qT|QrQj+AC(3l-h> z5ZJa3*VZOz-2f@~NW>3^;Ns#6I)M&*PhOz+VPq>TRGp~l5csx%Z%mLkcRk-cOtoe$ zhKDhhI0U%yVqzv%I=W7pST_3Hv1;0jcAt-M2vvr)^POPOrarSQ)x0k%JEa6FV{P*R zQJ@Ke^?fp%v!Iyp_Y&yRD5~Z)z@uO*OwJ27>o4LeP=b|ue8iL{QOQoB_38wQ0#fvL zJP|ff>b!4EL?B>`ho4g*LgY01%n^%0V}atMrR7t;x_ZBHtTD764^K6jaoai*M1IRI*R*Nd5k3Ral@qgoLZ z!&UuY2_;yY-%dX<=b;QMmlD=XDX_2mE~=GrUrizy!j5bVZQd}RjZ_cc#L~MZ8QQ_; z(l$j^-gof^feN9Y4e>Lm4G<5amaHR278|}}PUWB{ZJWlN^ri`RdHhOdHm*4|dP&Ywgqj2>FyNeM(Y=+1k(DY z6wT~#%!dYay%laQ1ql=ox+|Oa2w*S~!PIrqWB>?qG0NuPr~pTIA|QE#uD5TPAOR?{ z4$lI5mUKedp005QvjvN&s=?3VSel}WIxErhDEC&hp8n5MBTAW%b@`p@D_dPXAa*Ns zmZhzvZifW5=CSKjt`GqC)>Uoq*o0<74N31jK&VtL)qVZOzKgY&?(jovlHi=a?#QR&fV(}0`A`6(iVB{)u~Df(395gC;s*TQHp5B{ zFFz3blC=%taGl9m;IO`dd&DtkBIh4!f2l1-Yta2noiN{+zHpn60iOs&~a&r z$A)Ksp@w&+?Fe_P3|gDtV*EseOA{Iu*TfnlQqkdKod$~qEatPf#J8iCZ0VOF?h62O zrh(VN_bc1LRZ;al!9d!|wDIW8*cRzR+x)P@xGEF;SIo%Ns|*KIkVW1ah^H;tlr5qF zF6qnlEooI-055lc`4DI|HZj(ZF-dh-I-+hHJ%GKQJ`jxx z6{cOY#l~!uCs)1ee~E3Qov&wv^%m81bB`AgFctH=$CJtKAhLsVJbU*Ob~I1GJtkA3 zy_UyaaGs+Z=@Q4$_V);}f|y6!vL2G!iyan?fGon#XsFC|74&9ZYk}L<;C#grrT|3h zCk(h#P3(4<6JxD5qw z&0V`)M%k2EZ)4P;0o>^R@Bt%CBhq{I5H04Nf@=<(G4Jyo%rurE+2HwyXqjXbT~8(& z*c4RdmicGZVy!E>ru4ajl%jTBm~?+;%SezuOCxXT*J zXD@fu^)eH*DCl}&%Bs^7rLGQ~Jg=__7^tjWgenc=Fc5gj>`=v_N%PH?1{2#Z(n+!;$0CSQh28xJ53I z*jwcJh=|m0e@CbrGz^-z>+u32(8L`(lHHpvQFQGVd$kO2*NH_nEAtK`lDgFIGOh;5 zCB@^dk-Ah3MyoW=tf|-F+ENZ{5Zw@659emZeuunL|2*cJH?`rPXdX*Y;b> zv6hE_KZs$9=c0CarfTp!CG|xy_*_2_E)xSJ)9<;2y09%@9}(A~!|lC52C8F4ah{@7 z4Tq}Qo>pL$RbAW17jdWog)omFbcxVrptpFY)ma%UyN|>`uOTh5_M&zSwUOlU8){(; zZRf|#w7Rtv!?fZx5OIBAz$s!|@cq_oB5I8dW!1YPCcOHFqlKZ7^&nAx+$4(xsQy;z^So0-av76c|@fc9lR_fbSpJFx^K`d!AT=Bn=v$YFsdd8oTyA%POp< zth@X{V!{O;pA{Lrh0Z|MtMdR{GOf7HW!vU38j%$}w?R=T((4A0DdgD6`Cb@;J&49te=hYBVQtmYxi$(5QOVm0%2JhOa7w- zC9BK8^}o!vgycfFI2eRdjs&lNrcheIt8MI>umzDjj%F8au({pxMv}Ct7f#pQcp%2v zJMc)z6<`6o)0gH4vvD$f4iG(Z1&qD^J;x1<=Oh0BQu+~GLebh;Cj>bV#IR8Vxb}(G zD~9`zizyPlW`a>|8(WamHzflORRRFVFnSju- z2aan!;-isFJsk5Bt|rpZ-ny6gjWM-a4-YXbmcii%NV7r(55aSOr2<-6uY+rA>MEiH zY2{lw?>Dtg2b3#JkVUE6&BxNHwFGqzKQM9wK|g&6*mYQy!>Cd{x_DN zkna4(s0|dYXZ+F{6m4iLv*mz>RjRFH)6}+-p#^@vB1zXNue%xEf)<8|Z@dn$HlF2< znto%)U@>jD1bZm$b0&Ks10d|HzfG;oD`jdi#-NuNNcfAW9`?f@Kdv}_fehiLj{ zVdL@I-#S4&K&+`hzC_}L3{_l%nAvOkTz%7B^YAL1wMz|s@VdIhW`M<0R_ES zCDCfG`03yw5U#IAb^ENwp3PiUsmvy7>>957-bPgr5nEl22EP$hHKF0tf&gJrx+l5T z-?e-$@~%bOaS=ko>c7Fd^~rA!q8+Yc3-N^$|dI7f<#E+z>2zbs7P0Oc7z>oP2| zLC3=2!-xYsr=OUkZyVJ;UFE*k((O)$A!7x2OWU!6305;EMVp^ln#F0bDgOXpn63u2 z)ybz_{vzCb&3zw~?HEd@e=+*OQi2}*7H+M&ZrfrVijyJqxEf&!o+jE$sVOA3O;emp zVP=g(-Qhiw?v9vkr?HG~~qwZnJND=kYDekf>?&%>_Y&W53prRg|2($xYsUKR4*6l z^)=Z3dwnq!D6aMn&)hI8YSVsnnq>CHJ$cZVM>Jqz{YXxnG=1H3p(|#KZrL~QUx{<# z<0q4)m`rL|Y&Ex|)M_Lto8CK9Px&(N5z1NLgYyCgCDjJ{rw)>;ge!gfXYnYA2s@76 zC7JcA$2?R7V9?F_@fzwjA1GSYPz{UQ)an7Ix#j|}l-`#8AvwTbO%O^fp_RLwO0-sn zBhQJ10s&1P+}t%FS!`RdS`}z`@lnFfi9xae41=XOFtCRMw>-pv7B4XR$i#(hujYG& znv<({$CxwH4j#?4hUzMjO#Q@N8=zI?9epQERgM1bDw7XzUH)Za+|X$E$KqrJunn)4 zBoeC2g#lRtHSO~d4N$cTdLAVqFkXaiWwM<-L|QMa-7mbUS)x zR`QL)8#jgj0F@Tt3b*diQiN$!Tfkk0n$H4SL3S*=oZK5$U5C5k<5^dzIX~q`1YMO0 zZs(YVg%Lql&)uc+p-VMSGM!Zmpl#=D{wBn;v913AAYh|H(b(}3RxZ=K_C3obH>N4} zquPjSM|+%KxQSO}gM2>i2Y6+5gk9@vDSUE4Xrny3rxNh!7gx)sv5=(=mihEON11>I zuXB&gTN6+^_jr~SaR#GrTRvtz03vTnJ;5_204r)9511Vac89I-&uH6i@>JfqNW>Q^ zGdsRnl$wr4?E24{LJ6irxbc4BWO*%69)||7Sp~8eF8(SZWr?*No>0IU0@(CBSK=kP z1sGRPe&Ye)qQ^qtex+bemlO2BI6$W+&mIr}b`wKSF{7Xj4^t1HiE(!p8vg*{^Bc=4 zrme3**}V3J9j8VI{12$mXDaEK8eO%?$#YWGlPH`-?%r3UvPfaJ9<58Dw6!iB1L6HCMxz-tS$ zb@Kc{g<|!?o9E_St7@u@I&dO}c9nVCU(96)js<)(&$t4RP&dXNCDp?o!1nhJ+GTH! zbko!kD!}fw*MajB+bd<|Q(Qq|<9xJid-WS`1VXy`U*bJZwDO~`nAkKf76+@X+_X0< zBHjKFT{;DnIrS=R-YIA{9vE`Ch1%y|4}=BhIbE*rKZ!(G;ts@kh|UVrkujb}+&bY` zsl4dsFzT*Uq5l9zYdylz4(1oa#6)7=&Sd3nkF}C-^$L3!~sAyxSlt4f( zt~x6C{7V7BC@k;yXaE2WBA>PvW?G4akMj6RMTOX}SBL}>fkv;dg@9|Ahfu(K2dR__ zUbCIu@E)K-lBXd4TJ0P{B4S@r>OF1YQ7yOYiBc6wsBI51h_ka_p$S+QV?gxujJ->j zG=JZ?-=L|chXowJ5Hm@gMtXH`G1UvM2Y(NVa*=p6>Tz+N7TFEwcbIOxWQM&6bsLU1 zc;D1fu{fp`0&9#_JG&S2Ek?9Nv2mX@?qRUV7m3g27TXs29nUhYcGH62z|1bI0DQj@ z`gtx5;Z(cErFi$&2Tf(12e}Ki6Aa=104lx3EEj6NuhIC8FhCGTB(!N!7>8$xZ-lTX zBNGs^o15R!8ic34OSNjsF8S5-aVQN=N^~Ci_b%ziP#oLWf>Tm99D9e|Bazb(*mMuV z0@lbi9WC4aL??}u;kSSG7SoV{%mA&|54;)#JKN-dR2u37vBLX;VRK@^*x9<9z&Y1! z@));-wKIV-H&TPS9$8`N6?cx6wpS4cBotlA|qkZwhxi()F-hKUVPLT?6tPN9U8*~z9&ca#IDNeYv5lO>RYe@RRFD~r2|e@ z*^dgvxSJY_+xWRnbu!Sv++_e%Y;L-p^X_E0!okx%&ruCBPz6oIH{0B7S?IXOJ|aN0 z2SDxSy~}CG0Jr|AJ;kuj%Jhe&z!)-=f^)>E%}YkBxvs24XroIPPQ5eUTy}0qFl_C# z9-=Lx-^tPkL;`Vm zDA4-J(S46H$;}4NKGZ^#>;-y#MI>EZ>FjfIjJ%QU=3T5XxTeqKV#KPX6m!8WG)*aV zwZYQhf&#aa{^~}BvrOvmzulluNms2u*jWOVG#?$m*;55rjr)6x7uG*Xn)d({*uxtc zIE6tbO0!)K2%u0d*@gG<1tuFD_I)u@Wz~V~@hL!cW0&t)R4^K}`ZC*E6)XIMXgD|? z{s+`kKm{@f)AJBkB-pt6##YdEoMJG$Hj5q535EgVyXp5DMJ58!J9%QQsF-nhAT>IJ zbJVCbD41yui-xEXgYOj22Q8X$<%Qf*k$xX1xZ_kw1m?4mN#1MsB1B~=eE8KS?;AmXv_#)j}gf{tx!9{8cbM7E#120ED zYFiM{ur}^Nxz#|!|Y^_G0eM*B+CjQ6djWAJ5L3TN~^dOqS z((r?M6{~99E6FU}0#U2j;^Km&pdpjL#I{tG*LJ>1kvK99yZVA5Ce~Z;>M=U7Kw;eT z9)m$@*8c#6w={rT$i*CtY7baa`yX_aXQHetmmi6s!poxjA1R(<@#|W5eN9NvMoZU! zs){Z%1>vtK)%A-he7I^^)J*E?-`3MRtwLPdbUCP??hGZl+au})B8LF4TbhXmj@z~^ zm}KUje2AbJu_vkPPg6ocVzqazdU~0P;At(V;w4+Lb+5~d^$jpt6L-IeG!)bgThh3> zWu3bAF5T&f^8JQ@!PCk-QtGQ3J@ofBu9E`YA9FB3RI%)NLjji+dh3vagtA))cgyAv zA}ygEHF$u)SY*T4=j9QEf|sc6@OzX13ej<+E@CM~Y&7@uOwVBE`_T6x4f|G?9NoHV z9^;#+LFLc3E70Alj`!!{Dcn0-siW;FkQ!jw*NI>bEm{Xb;sab*IK_vSPjD-6AW~DK z7b`8;qq6k>0AXc7tRaj406#FM_L`2?ebOO776w~qh4&i@0mEOAJfmWEgvGLXif=cX z2h;H=z%y@w!2oH6*zz2FqS9R1<-|n>BNCl!$c_^cmAgOT_?5sHD+BlQ6Qh#Cf9h>i zMPZB{WstTYR(VLK-gHI+iwH|d}_tIM!Z9cN^70K;=MxQ z4nSF-!{!{$C9QW2Vl)ES3M(&hbnP<&t0egka$GfyfGezhW@6Qef`>=Wk$wVEdRK7Z zdzT6rWrt@wk2M9Q!F%~2sZ&}f(2&61$`*!?_4lorSUz;}Jc z1xx$q5vR04ZCj@`3g}IoVXw`5lsH;6BhQGf@CX$hZS0<)BW7WsLATC3%b183VBWsq zQq8S3u&2dJ<*cnKKZ7(WIBigE;rW}80a~-OpTt=F5CC}iiB?o_V8`No%{}5Gx4Wjy zv8z)K7vTuv0Ny*i#SD#Av>!yHs_@bLSIDNP%^#5IaG?Q(ffQqNBnX9qB1 zi*;8c=2ov^Z0Y&+8`Kv{QGc`|uCGWo^!&i=mQ~fk*Q7xPZpc-w_+kJQw+qv`_eh+a zsx5B6Bh*Bo0MxZ~-z(~9sLBFA+DKN61GH$*Aum-x2fBaP<`YZ8olfDd8KA>9V195# z;lmvc-d~8|&_b4bj-TYUYSNzJadS%+oF7`vC|_~$?lCkwodirlR16*c%Fqo6?dRe+ z!FE+~#5tv4QB3w_4BecOJia20Aq8k3;qxkr$lW(jVhmua8Zq4G^AgrOFU<7{8Locq z6{6ORrJdg~TNfopR{Qvf)e(R)5A4AMj-dC2t8C;;4vY~9ag%L%+em1h%37V6*9_9f zDQU97yee^VmOvsixhnhxkQ zntdfMcS7&AdAJl2id9H;^vn?g#h~x?0W7tm!#(^#1Mmus{{R!cgd#7!M34)$i=O=z=I4goJfT@3Hadh3>RUXpzwx{F8gS4vS-S9zD6EKLqPrF1~0@ShC^ZAqn3dX}X z5I3w0_VaNrnKWPF0H955F{iWY1fYRIvE5}gL9&~pz885c&3&jU%>s~Za)pEANIDhiH%Pjdc&u|=KzqM<~}taY{u0J8BNs!6WsG|Jo@ zhGk$f0jsS$YZ5X-8sTPF=gfF-QwDoG6tFJ{0BksTiI5I-ms~gsguCx^ui^gy5P+1l zgdP61j+GWx*RNHnYQ+|U#_K%9CWgQceWJ@lXi@9r_>@?+3waFw;*t3r>DMiA9^!O1 z_YRu+eMT{AgcozHEv5}00`Ppxx3J-D>(24e0?~~Z*UJSK0Dx)kc$Vx?fz0EX?lD6Snpz{n|Fr)qaL*WB{$)pG<4dAV;;Db_y0@!<=2oS+)#(!v{ ziYe9kFzHA##`i_(TNYr49h)=B0S(qfqnT^C*iHloB7$%)&5~V5gn% zzM`Sv&4T;!aDk#tcFglhlK23u^@_dF3dS$P1}f&`la3;eD7k|5R~0%kQ!^Gk5;80n z+Bxm&1scd1L$8Ft*$!T>3xQiEb3pDXjZR10xCJ(wf21f7Zh>#P@XVuVYCd>RPy*V*}%%0wb^o-e*5AwXF`>^c0#O^Zhtx^@gg$1KUeCv9SpxdB)k zhkBKZQ2^Q4IJux`v}M_Rt^)Ph3n_iyFjLfOlwOWR$lbQ8_GX|5U{(sg`{lYe1{AcKpQM$7Cw8+%KpK$UCNo@L@6oL3Kx*R1rp{mj3`@ z_?HaOVOaJ1!?0)+}4XwPSxV0RzX*_x3(yV=qbOf zF5kR1bUfd=WLdDs2Y*7CA<(G6F6V+U6~Tpl1L|kx!TtuL>M2YcZB>^>G$rW7st2}j zwdn;2L?c?k)%izLBE_u_XNgz2h}+rX;vs7_X1F@<4Zl`cR|BSDFhm8c>f5|(xDe>m z515cr*e>CYD-xjXG_$en@ha06ACPfzLth}#jgAHkuLW~qkHAGN8Yp<$%MaFp!}O*1 z6SCD~YpH%9N1P$6FLNjh9hePA%)46>^atEKgKiS=$Kqx|E7(q+*dqoYs-fB6BnWIE z)ULVYn$atKsOTT>Nn0c!i^0|AE=mTLy=mraVwFtu*1U(PF$=0)RV?csx-wlqc#($<2opR>p2D&bTdifvGo2`yO|@ytVl36xv0 z$vf!K>#lz5Gd3JFr;dLyz!8`X=f9#LpxUPM%ta8i0^^t){Y;_b)U{EY-9xj@O94~@ ztf!6$`?e|8`ffVL$QoZCGMfznxX%2=#iqgddHIT(U7#C%eb!u3j7=WA!Llz<$=mMn zmi7W)`ltb&Lec$Hz(pF?yPgS%LYtz&@#n;>A*vP4MZMC_v6VH=dQ3hv zu*v?D+#pm>;M!~2S)dAcD^+zs^#PF9U&Dx&KwtKO%jz|z6u`gnL;%46-PQWli01W< zieCQ!TFhj@*F~+o5s58l1EMx3LbGwU4~TFB0>#+i`IX@Sqfy?gp!$u6SPNeLsw64A z3RLV~hLJ@LA%x#8y!C)N4dF?>yb)7^WFDO{_>72JCd%K$P*+=E_B=5L#ZJbLOL39i+>jtIhlz@qLvvgU%xy81Bz(P0gI_R=-Uu%SmjWu!I6a~|BXx-BWH zsgFw177PlZ!3~ZWfj~ll;ornTT1GcRVWdrYpqx8#-k>;22FgkK-fAtT)%6YY>Hy5a zQfI#eu}61iPW}&2C0?3o*!#4mfW&xjtFGSA;1@>n4+GR>r)iL}+Wk1|FXyPSdFs3$ z6HXVdz&pQomf>1l?D=VN(k?2FFZ3m>^1RUOZKN|fvJK~UC;%p`R@Xe#X<#VYSFs-8 zz3I!3A2PvNWJ1pfS4z!QpBz6C?#|F~2ZOn+2oaU672B0PM%33#W&5ZwEYw+T&vDav z?M~=K+ykih9L5_9iq&)H^DGUtEe8lz3;+&G zI6;>W9}#H+SxbIjS(h*vT+_21p{GdE&!5D&o77Ss=iMN&Qq0JswIr|G00pPcM{$-HJ zS3vjh#U#KtCEjrDUghn9y;U{jv*u9HY|91=>~?rxa{7P~f;+qrMWqf?x{e=+I}2TbZ0oje zGWN+CvDZUgW~HMPt#0jy<|4WUuF;p|{6JFMDl}gHE7YpD{F+xUPz`BZnr< zjye29LtHD*Zks+L09w~i(%DyYNx13N`%Fz(X1nNnfDL9B$)<vO^JFPMu7G>xj|`IXt8EL ze&(>)0W@~$mIlIxTYGgI2#AKwS3G*!zyPL@l}d^guTEEGBm1 z1yckIg*bd3q9hOjEbjP~*3gBIgUcCpQuuoD5L)8u2>$@47Y~V+Rngo@WgsY=H}vrl z^9>RD3}|V{CGj6~3P4~4w(R#E%4JZ_?k%?U6c>sz-~NxN!iAu7qi=*l+Q6+=`x2XO zrEr1N`>X)7!k&agrL7trygw4xH3jCUx5NviH#L0y-T?_P-$&Qt1*Y0P1HZ4Rq8@8? zy*Kp*4oh~0>~R>Ph~nmtp$!P7X0ZgVLK42^mD4clIPQCuY^tRK&)bO=0;>n7zjF*t z<5BC1_X@Bq2xU(7!7imLXg2Z72(j2Z_wg|>X+zca;1)&AI(GSn=rLf}JNTLF>pKq; z)&qxMrvZY!CNn2TikkR+? zDJ_-7HJ)OimMxdT%MF%dg5O@`y0A^!4+Nm-hD<@YTd7xE-SDHzcE60 zEgH4Inu-C`8Wr?_4HAl?_wY;~q&?nvfbFW?6@R2c(a=~rf8TLX13kC$LI0Ua@(&hL_B@G8=O zRSSSv;x<=Zk5RDnouS+JNuUCa$6r?x#F#Pw>(gi`G)g1er;-U)I5JaTIC8a+;e@R~ zD%7ICYcQDMyKZxS7t}ZQ#KQHDNIjXyDEg>sV@{%}`3UBCv&Wdxq;1d#bIhg`@q^J` zVu^slr$ST|=YLi?-p z48R8J7w2zDK&ZATD+%{_TA`~7u-Wq~Tx43O!HbQ4(5EHiN5AbX!HQW`)z3_Xq)1W< z9i4C>D+J!y4v%_?ySR#e4k4q%M6Eq~2>Y33v;|RbxN%;fIcXyFbNgq^P_Z=?9Cgga zX!U`EO1(9GOu;nV4|m-lMwp!tdDmK+(BH_1m&6L$a#ad?Vb=Xi)|&G#!26787fPzm zD70#u)32yG0dD?Rm5l|^6)$(KdyHglOqso}yYU!+R$%O~FqvR!L#fO06hO$MBdflU zuD>+875?Am8)XWR4$lc@z(U5i{MWQX1Yoi&oV_)Nk%a_w>E7$y9NXw%w_F}$ z1P+%rKjq8VfkjO_JOp4U2*^;a&wi!=)Jp=bM#fbjw7;X=L{bzAEB^qf#f6a@<}_B+ z7iV2~n1yi)`6sV&M69(9x%cip20Grg!{P>M(v#DgfF@3;G277lgK$w96g3~8Q82Z! zw0Lw_koZ_i?Vmp}hOcbLt8w5$%W45{rCc;C63QC>Yt-cFRqVG+*QvA#iFi7W{{WeE zp$p5SF8G)dnlX!O-N1Oj4e5CI^BZzovkT7)xT-G7iJE%4nF)jtAP4XaBEG*sCo@Jg02J?*7wv0axL6(Xa`?$ zQ0=o};rD2@4u_&s9ejMjp_tiEn3dgA0$v=N_Ka?U#2sty@!w$x20Qxo0Im!P!1PSP z3=PRPP(4FgDQYz72)p=l@j5=3>g8k$G4A|>n>CSJv}f& zL{tSd(BXdNH`3_P?|BFm00n`kW6V)>C~aR<=u-@`FmS64gH=a|=B3O~r9-|SUx=HF zW>j4-k`ZS^b2m)9O*W&r&bfR`Y9mp-G(PJn3Tf17&o>e@0kDsx{7mpTXHdmF+z~^I^dd3#=$Y$?$W~86`ofWD(Gn{>Uo1WA_)euqpS#~I2N_g<`T0h?%&o{ z*cUaObl-TZD%4}@)@<^NUdOl06~4`PJW=2Zl0ORJaNAQ24#xb9{9zy(>=@-SedF#&y-#K*L_4vXK{ z#7{62Akg=Zu+?bY*nlIQCG&6c6jGKJh*x3a25T5W;JjQBkwP5^brm3@t;YBdaRMsn zs~az;-DVJ~PM2%XN?%gN8mqUDP{6oOUOb<5i&PhT)PGolwpF8=`nVR1l-kk!ekJHf zMy#W|_er6<8Z-8#sD_qwIAK!~?XeffiuDZJm4@2;ecA<9Lfe7ujtJm`0-c?Ye&O3; zu@cs9e^8qPPpxpkEN+$r}1F-7 z+}P@ER)5PrB|z+3XTL_0*ddw+crL`yDMsL!4%0vdp&UoVJ8 z1+ADmEAG*{$O^f<@#p4RU{yQw{{TydAS^P&x44)cpnLc5uxct;%a`FS)uPTR-|I01 zQ7F?t<;t?V5^L4vDc#pnU3{u!niN`ZyS`u=C{q)i+QAM(auw2ti-HH$On!`PCIc~R z>C%(jt($ghYt(QW!Z%W&Zkye%*D``M4c#7U5w)uYgQE1a<|TFnz_9Pc6SEs|O_-=H zV5GL4gVdp(wo}~ueI+8>;K+CK5NEK{y=;62R-YbYyz?9PMzGBRQ$O8L(`joEVL4M~Mf(YHWV%5nP zM;6lUX|*z=O)ns>e-IGWDkM8E+uX%O1P7mrjoJX(8e?j^^(@*m4vOE?>L(DCx?$Pf zq9uj2RCq1D54hmr0QY-7VncFO%BP>qSxJjTpm+97a0|5SVLKAW;=ycCYL&K+QL}v& zt8TksWt38;TAdR6u_1#+3+>_aHKvV|OLyU~Fp0+Ux;HC?^#lXZY-sNJ_?X-h4;JqG zf{9*~3mkfk1Xgw6{{Y9tFqc7WI$up=TL89^)8Y3Fu2nCQ$14vwU7_8%o12h82Q_wm zo}d7W2wnP9$HFQ0j9a_yhqEmhAB}I`2|R8ZoqANF0~WL(yB^-AlSUn$&zWJnISTwd zGT=TD1%7YD2C9@HK^@<7YAd+Y%%dCV%A9#2iVXp5KB?*=;{dW*-{uR-7elH238gy# z%HQ~gOQ4aOJA8VAB&QWkcc;h9RNMt9Z~9G0xDb?mK45_gg_ObR8p${iA9a`H0?(B^ zu~H2H=U(H)WKz~>Q10<@#f76<>!%eh2nHlt+Vcgh%bL}6uTf>f+EGRp3&vCijcVYF zG+51g>-R}vX3(iwyqwff7G~7I8v}%(_aUw$3uK$hI{>Yf!|Ek$EjMfYiF3_5O8%oT z#G41arkk#Od?vFj0L}r^NcTa$ zhjlM|fgFH^9KY~BB@Te(vHi2BX-26=IK7A_ zDKv0{>k7ClxypK-aW!`YM2N1Aw!s@Z?C-66xt1W&fofL+2?g*~dfqg5+b|vF$_#~B z0?zx!QD(zA*c$%;BH{$J1>?y2h%f@|GBQksRp8+ZEN2<8`PcZDxR z484w<{6Q>OWH{IwE^opuZ;}Zua!xDu>nQgnHPI(oZ4?1VWV-PVru&DZ;T5PE73J)8 zzs%Mcq!oA8PzVq~#b0%cW>H2h;p_guvWs)D&m-z2SZyfl*z<7@sAUbSN5pQh4=LWy z-DBM5oY(kiE>8xcO2BuziRq2FuSdiH1Z`JN%uLRy&N)XuiKK~G3l8vks>@^9!c3qV zloxI=jR>6z`uwH9$g%FqI6^BPZ<~k}#8q5&PcnfGZkB`ohyn(BRWt43g9XeX_>Lg7 zp&NxfyeFw*TSBPi()c4}Q?Pt}u{CSGjC*-K!WML<+bg%5^(dDD6Mw9x%N5F;ehdxNI|y4~B{QlUbdE9()pZDW2#el~%un-#PI+sUp6&gym zHPPB0E^7kb4&Kr8v}~upsi_H5QBEUGK#RBe5kSrWO8ECSL!*+qq-ANP)m~+RI#qf1 z`@C2fV+{F3F`E+ND2XU;w%WidlowV^c7i7C7toCXqK7v6RJ}oG0c(~~3Wl;}{-kaz z8&CqBnM26X82R%YqcJZl;pPc+v{A994sJciW#?LO!3A+`vdRq^B-OaPnfQxHx`jvn zDr)KlsiWA4k!sXi;#Y|lEhP;oMy}4kFx%M%y}x#X)TwPWqy8p`8!VLQd46IG61_(H ze3HXg14asT`GOM@Wu#>)QNdQ9NAW6Ss1kX3g*Q|kR6U`0h#;C5cZrOcGPb*&>OI(x zsc&B>C|bC|Z8SMzK(8j*I-6uA6jLMx=^1^6AS)FV(3N^Wn>dzREK z3WcBQ^#~PV>(BL=3TePt?p<`EB}Dj3oqBqY)(Trk@;10mQv@>lg_eLtUHzWoWp2`{ zW$X7@LV-5)U;HFac!)dr6RzgOoeRO%3ruRSkulTMv!L7`UopE&6c&wX?!C+bt!fWn zCNzmPz`%W|XGYJ$JWMh$Xzyw1K@6glD>cWjQz6;8>(%cu3kKH>JGe<_(F}%9%on)W z(Qf`mGjsuogV5n~5Q^}q2Y(%Awwc1nF-O)TRbnFOI~-rRrNTv{MTZcc)ERXz#7zp2 zfE!<=bTy{5L3%nh{K_jSbo(l0VdNHS`XH8E>NI!y(ozfx&XYhp-Z_m~F2&gJp5Z2} z8l#Wjd1xhH%b!sI1iG&du4NL6HAMZa{6^WeUv_KDQWs!b8EETVcDN7~0|UXi^HN08s9Eeae737K&*HtGKxDqfMnH3~&wYmYd?Fw|l@yZtI3Q z`H!g}vL5GLFLAZ7n51Cq=jL5?B_=AnQ zn-{psg=kh&9n5&b&=!A8*O@~@Ac3EMBs-v$^)rLp>KO^>7oBa##AxcBmv_Srfx_uB z^Y=-VYSd^SS(X$>S~815yRxbO0Ca=~Bw2YQyx3v21g(^9qbfuVf;P{`xX^s2oXn*x zwe+`f?G%9x0PO}YcTMB7o*;v3+_t=LiBgbpmk)%h7Ib3Yt!1Z6p~rKd#6h9LwS$Mm z22qqUMXZ*#qmX!IWMmf%yzsynD(gm{*hQ)BnJdfe|DZDL+Py$2`EsnasR&~Kup#Z53c_DeebvT}LCc8=V%w%YVDf%0V{3t@ zX%(?7ngftLz*<(Qw0GU4di9Gd$T}bPS*bv|9nYDpQ*lL?506M30>z(Z-I&ce!2Uj5vw~3JSL; zZL+g1+{E5f#5(}!mUr;ViiDKY?l0U-V4};|S_gVFy0Wg=KN zmi?X<0xsaI4>#qF^i@&3pMMZ21nC>w<4qrlXMonNt2|ez(wLPD*N=YTr%}7=@6H`5 z$*vsp4wsygE5FT0HQ9v?n;gtWhKX_`Jrsx)ZvOyU%}79&C0l&UbO6YFf@h3|tj!0- z!;2dtY3@p>6HG_85C9&PeFj_wS%XvP#5o`Xaqr=Z;*Ym6Jflp7!QAG(z^1@DlslX;Y;YH^M=mNZ$ z17cFQ+4=VcS_1EJ$>Ir`!#ykMb1H!<;ggRs0al=>t-qB7$lUxpqmx4?7Vc-)XFv$K)zCidS<^*QQ8JnrMk-l8LI;8-0)0S zt*VQ)+Eh?9Cart;k0`;G=(di6*O-ntG==y+V<_I-rktO2mZd3-=Dw95A-Lx~m+|Ti zf~!jSb2U{}CAMCth_-SVRth*@+` zGUlLZ)Vw^@&_hqJlhp9>Oo#O$m1V43uH)RSyF!3@^ve)|8D$;3MOv+qZwlYp2TOJD zZ}(|ozPWl|Zfn#Wjb+MPJDl9DYJ_SZ*@h*R)MLBB6NE>&nBA3*H0*`!cxCW{3`V>7 zxLPv|3#VvX7cJ%I=3L&e<~RLBTT~R0c8Zp~Y%9bSra3VIyHij!_1#qBcC9tOX=b@h6Pp!N6pP4A!=2o&w~*}qeTebCy7ed43(vim}M{( zbyu&u|#iLI?I?FR|)AI%YZJ*e$*DdZLu$3X_kx#D?L}; zWmvlf3}dH>WwKX(`}i2kYKkj3EqyQ`C<0MByw|Coe43f+z6`3s8JBk6hl!bbfFoT4 zwy&rofEB9eviAsrh@i1_)5{J5_nn(>UoauLc6S=y7JWfslD6re%)4j-_B4jRd9P;` z?gNmeC|9x4W$|Q%bMrTgP15c>+|d=6`MktbzDg{w0BV_TtT;%?)y{E$YvNcj zZH6BHrXg*)%TDK%PQ+mPezOa#Eu!DQiFSE<54y|&Oi}aPa~49n3x~X^D{0BIpCs$i zngaIEdVp4;k$dO!Ed^~Y$EW5uG{yw>-~3Ap)lpCBh@A^kfj+Nrh0?Jab{vqg4QWf; z8vt2l@|*tsM?fjDbPRl^0PMh4b!E(TsdhV;8Vin4bYWC57H~XAT4S&24mEAsL^u3C zAgHj>Wv(6;RHlaYj+bevjnv92@b#zSB|}Now$^Zxmc1c+vgV!ge8lVkqGIsWFeU5$ ze--LJ0xhNb6)!=>j)p()#4|uddw{{UG-Qx1uj-%%!Rb{whzu0T=0txjK1 z5yoZ5w~Y9jLPWC{@s*8j$3ph-9^+UHxDN98uTscEP}J}0Xn$h|?bP&ytp&=~QrjGN zm2JV%w6WXpiIp7(grm5TYHXuGAKJcR3fOGzH+|LvsDS|^lWRiX9GHmD;6&eZT`SZ8 ztV$Pv_b!|&eN0=;LBPw`Lu2RWVc-Vs<3r0GSQ({db@%w0W(u|&XOr3~<21xPbNGpg zh4&AfekKx)Qq6oYN4z1H)~F*%Qu@Cyxs`=jpr>w*vq}P?`V@MMm<6g`(SstZc$aU8 z{{TJnGZZY+`a9GkY&0<7*!HQZ9F4}#rxhx+D#5mokHoPp6}BJEg4*GNr?IBY#(SYt zYjJVvP+9q3RtSPpVM6ErNtXd_L*#gf1&YaVYWY4P(o)5%!@j>0GjR&V(W?E@7Ax6+ z+1chP(@*EY5;Ij!F5@Xm%vLm=+u{R>jbPmUM1qTz<+cwpZn^>wt$ra8uGP?29WgK( z-7C|b7`lGHU=tFHLCR~t!Dx3R#^p1psRy#3Z`7i_Aeud| z$L3vv+-1#i15^+Q)6_jcqu0{I#7>ZJ7_JUx)+4B14|1K#L0sFkD7KBuey{T~h|_Ao z=D5Fd_P*zBRqEz|f)=hJ=i(-#p+_B1a63JZjiR9M9TLsShYB5ipAw?l;bot73}UXr z^*`}2!j7@7KMWcGgG?&(;tJ{khMk{35DmF(>OX2)ppr}cKK;xTfPfqR7ctXi+VKW} zX>|bGnPH}uyT88)V2WM3Usvvsg4Jsmd`25yZ5obz#StkRu*w1vt9A1&cAeQSSkN>Z z?)Za2v!TD#oq+&8Pco4q7#KT2ZD`MOW(wx;2rI*=4w|}*r#X2y3vaUGI8P|i(_o*RnO)nm_jMDx#k>}TH2vc ze-#AKC@2AYp5kv^j;FcI23IC^N~poYg;1kh9w8Hc#4X#z!p1`idM{DUL8YTE=iMfX z3I>KX@{3~?2}a*Ph}zKD-p;()8rwA1YQEn7ArUzxRKF1@1ueUdmhiy?r=#GCA{GQ?@9JuSld|vbUKA=4^gU&Y4|1&NZuQI-JSeWm?@(4@(6X=C z%tEW8I_Xbae9WRPRNZ-cwr{Lpr4@@qx#8*yZC4D( z)Zqb!7JzBuE`r4`A>koQN08X+9%YE!>|1uHrB}E@Ky2iH4KV9=7aOjpS`TpyI*_Yt zoRJ<9(wKYwYc94@j*Q{7rbeh}pm)zo8CAY&-L>jUS~H+GzmWGbCf$M>TZu+mC{>&< z@hatkq51+alBibKzk}`+7C8l(^>*t8;w+%qX*6H_7Ykjq%e{of8&Go- zq3$ljp_<2YY(ikr7Toamzi=DYf!cC-ek0YQ1liDi%J|C4fxhjMQpyw!ZTvcSjo7L- zwmP47m=?vXPkuuJAv$HVYF=KUP_H9(3Ha6OD7Is8w?X4*uP9+>^?gegv$1t*l z1glgewvGzP-Sa6skP7p^Bkz9Q$voK zfe@nBlOfmc@#G5@4+-~pR}Tknd1dsLN+~GkkIV&lnE>q!plGpp9-e;?=oU>y*RS2> zkfC8z@W54M0+xNhacWeT#~xo%B@1Il4x`B|*zQ+3zw{oa0Y(-Tr)f~oQ$qbR(RE_E zdi%7rqms}uFnPcu_s4^?u;ZDl`{HNTZKtMD1XS; zTPP(twf1_Ip;SwY!iLWrzPvJ3mvVxMQXSvP|8@8M|YRzW|2e}eF^K- zw5YbvmAt~nl%3!UH$EY)f`{xnT||*vQd3qQB6d-rs1AD@JVr7h_yfZlLaLJ3{Aw!; zL75hA;+mMM6ylL;ZbfF_oBT`>^}~De)F9?TRwja-P|Vhv~-gHQPTjDR{I`0JO{NOZyd9x7~t zERH>NVPQ~XMe^}Ai$wxINBoFq08qB?k8mru-5Q+-mIzHE;ADT%JxU@1Dm(`<PH^THw}u63R-jPQAOS_?KCPtlIs55w!*|D0R5l6D6kY-+d+q z%LDtHFd~Mk0qpbhE)@#17V+oeShQ21r@s)u^0jNk2Jp6{)7V5&xG-_`thC2TSF<`; z!J+m0l{Hd;vF<$1nF57%(1i_ptkcAKmp8J)tS=s*BC&Nx=Zp0UDR*AIK4ZC2S_yo4 zWl{jR^t+tO*2Na==ZT19uCetZ2^3SxT(m9$Y4oQSPx6`ac%nNqm_Yp5a zT4aL3fq=+W{;?_9R)!ru4^dVDk*6LYAgPldOEI-q5MDX)C|QE5@_c;D^ioF5&fX!r z7O=)Cc9~%@?pUyHEk~a*O*<46Z|%P2g%$%+w$Hc%1gg{dd4`g(36%Fiu!R*$`nWe- zR$6I8pUNbQ`8}ugHoQ(y1+oNl**GO?YZi79uyUS zSL#`kp`y*R=69gA)1FV59UVaTX1R}C9aMKcDgYB`ipE#e3YBtCM~@7+g&42p#mdVK z3onFjRD)ZQ!4?;9P#y@}ZSvAJw~3Z(Q0Dt)H)tWMe_(b1R{pbd8`}e@{{YD9DhCc7 zugACqL^HP>_GO1o!?hCyu!YtxmL!j&0K z8EKT!XiR}z>Br(G&f-$pzko6p( z1b#xdCLrr?*M7Tto5DJlow%uH0Mpgc_ODWqCYl(%_99zy;OD!;0t73h>T}-MqN)aC zjQ;@C1So)2qVzv<-546g?ZkBmZo(ahhulFozz6s=`GqYcZJb-g(;=|mUr!8TKm$Zu z)8ZUe7&SPqm6)ka05&muys;t!H9K(w)Jr0ie{K_&?>7(z8^)B%AS$h$M(OTBp zybq{0SpYk^V$9P_j&``VN;-Hpe6Of%W-C$OkIc@kRkD@ty`x5`8aKpy_Yv<6#r#g( zkx!-&t+mL8vAb;43;-dCZ#7O}?4}88v31Bn>C~O;{7ZyN(kOD`y-YIVP%)N0SUzR} zMUI)rmGu$ogKH_z%xPo*746f#r>F*5lG5G5-UF~NTsreykHi2{Fpm+fb=nXJ8a8iT zb6Jg|w(GxH+UgA*w#!b>nNZ~g)aO?}2$a`CxhmGVA9C{Dp|kiHf+dH2o*HQUM*84b zh8S;xAPbvi?9U>aT32f@J_ zb(;}Y{{Wxz5WK3&)bq&-*gHEvUzjz`Ez9Ed^DPGjUIn!K#B^jrZ0siP(YbH0iD(?F zt3J;^n8xV_5PjNE;X9nY{w0_O8UUuZ&eJ4mcGrFW1}j9hXft2(Z^cRthhxJ4Ea4qW zKo*SyqK~x@P!w#N{mdFSE&;twYnSFWsiwHLdp==;R8=TEqnM_q{{VSJD|Q>9*@M6v zp^vYmRAhBto&3wo(o(K#m&8seU>J5KhQ#fM9lSxPh+S>X_3`rwOO~)7V0(@@0H;fP zH23iq*wJVq|%{ah2rer;vmC-q!v-xg!L{+ zMiti=b(t_#&~KleJ3xi%i&ar|M?aZCTtinwO|cTJT(s|~KXFqrzM$y%l*)|s(^fsf zNrR#)$4*GaFi;jZ_P9*g0NZ*e1AW%> zQTu>3--pk{Nq|Gi_ry)Kb7+>;DR#Mp0{q+|*k#Sq~B0@zCtS@E@O$X~|$?6J#QnN2FKbdrb zg+MI)A_j|W68Mb~7Glv{5$j(O zAz5y#AL=R?qb{5O0I=N3m|^!0K&3aIrqRF+C=7Z`N@E;^-;{x@%= zaH*oIui4@Ni)=R8_K4bzgT4j@g$<8?yF^r{2E)7V@m3gB(-RtoGVce8hI_8s5xQv$g2gA9sLCrK&IKb2Ko`9)wYP*c7Laa{$F#ocH|7 zFeu3X036h-2J2Pffx8G$DHbce1((+TChHYlUk?y01E3~5`HC+=bQj6)CbqJGDe>lI zge}~FN&`+Mq^*Dk`xV>VKmt$-Qu_J1X;NK+!uviSa222qXCQBhj(~FEot`G1T5hL* z;>(lQQ@Q?M!X--N!H4_|SWT&$%auY_kj@v!t;Y$DXd3F__Z}czytMw*%e~(8eK7#E zizU7vFtn{$QC`oPecwz$jDK!W>s91F>fkPPG^ZoXL&&0(A1LY7fLq7Zg$5?5S-zg) ziv-!H!sLkZs!#i0|hpj{{Vk5L9zg&(*AK41PF%1nA;cX z1c_D!VOaP@u8^Ye@WygxWNzEK)W)LCVdJjQEfmfUf5gReVt=MX}VR5?d<~8 zv8Qh`8m2b#}J9gSWG&a%V<@l75 zLz=!F{{U%#C}fBn9jn|z9F@Vha#nzfDG}er%-k5HQ0?&_RWud1cO&jOsY#`V`Zmb> zk9G@`9mWj9q%C7y`DSDH#L49K1=X=yBm96tn}??SXnU4*smF`4@7${}G%3`5Os%b0 z4zJ&-MnSUSpWE{kZG@)$IsC`B^of(B)UYfOw!hl04Z6!kxAb0SG?;ykI@vT>jT9Rh z*M*H}=D@0Yo)4HxmWOQ}97A*!I--@ovQtzT+09!V*SSWl3^Fw@l)tzJ#xuU|7|JfxF*Wpfik(2Wk?IMxWV_(|tS=rc(5~Gv3%Fq4A3+ogh5^g4eQPaHGp35} z`j;nRfC0<}ED9|Z@UTM%QCl);k1)V%0Y$s((3%SGHxDnL#5K_OHl})O z9d8J*Y%SMvSQ|=ht?lG>fRf)S)%PgHQIOT!#rlBLB{h;gnkTqc?81Sy?v*Vo3_Q%q zIw4m=`}zDwl`2$LiKf8aI`Dgb-~$2Oymw%1H{;mZhy`q_8aVm&7CHjAFUOK#k8>b> zNk-T!Lgzg34DYJ?`_u_%Kn=Y6hT7C<+s~Pn^lZxB{z+yo8#^!hd`qq_9IlJy?mYp6 zq#Euxsb4@)cmDvV%rBE*0o5(jfH_mcmE6OiyZRV1063@}oFr1uHaPwWXa?M4fJ)p4 zE~Y=x8g0!6pC2EHgean($Gj=At%`Gj+6Z?6XG4jSCg`rwpm0X6u0HE500fjNc`(4` zjSseFKp1Q_$-xe&OAF7ZH7E;S?)vw`0JN=0FZJ@2fExsKJ&ALuv4ZZq)CveSdJlg; ziAJ)CTFy90s8s{-O4JRbPWRwJQDvG?-h*gtp>knvk7CY;;P7#V)yP$O+P} zU>5U+v^uKcB0)~6Jx{aLD|;gX{{T_IcDtee5u!CVW>&O16%;YH2&$@M73yo11}zyV zT5}XSnp}^jV1%SX?7t8m@73wcyl95NGw0zgXfUd1>0DfFx*&&B`BKqIn-39#stSXi zX!9w_Q0@%7_#hfN0oJ__GdNtOJ3FM?W!C)(&a)gq9I$gMZeM1kpo%zIh-G zRMm>7vjvkPnG`?`cC-yVaRptC(M9vbvpQ9!Vm{ZoimeJO9KiG=b#?WavMIaHZtT?2 zLpsi3f^Q7qHm%s$FH$*JyHz;OhOoc@ zDjIzZ0hl)rB*K>A91cdxc2}QLikVg})4Sn`wdUQN2N z&2=c|SGd%7{>0qCLelv41X4ytRP6oU1{qtOed2N~Ei$)bi0u)(&0g;xn2f93Rbze- zr~uwL1Fl}hW`K$nRpm78-ITZ4ZaOay5rmg zVHQ>Or_4-OJBqH}X27k1vVB4YEk$&BA+#bfi{OKcgxtdp@Mms(U zbz3EX?R_%*%M!3`TMph$dqDUg8l$n}^D%0uHGOO1HlDPe0m~>8*jan4n)fSBsAkdC zCYgXvQB2n%_XTYQh+kQHwLe~&#cST)0&mzFK8@Ux%rFJCG5&nSYgqu8 zy^gj^)n3(@^;{Z7&>OPcca@QEkT{QC;e=hrAb$~|x`%_mgGq=0Epcc4n6Ntw*K2pg zLjgO9ZpQ>IfYM(A2tWeQ+XuOh2F{h-g;LcNc0N7Fh@BQM*xz56kg%e9Cn;f|3ng&w z&!~AN5W$_t1W{;qp|Lt^sLbD9 zY|7;Rj2|)40UIi-!)&Z=GB#<(mu$bmPo7VFe*1T5ufwuu7H!>6cFz>Lm)omO^wUW{ylgjusHL z&n2Ch^#HEAFgHks3I%0fe^DEpLcX`|Cc~o}XKzn&vC`>>h4p?QsYg&;uWty%wY^wv zO}UU+jlh!E4hW`}z%Xp9?Q+4LA`bB1fPfo1f>i0qmN2STzD8X|(S{oCZ>n8u6jt%k zq6OF%BImV;qRSTI+;dS)x~6Xmm94FPEig2-&?=tKiCJ~(Z~cps6gJJ@)6^!e?F*Np z91_qI-o5XLAOyD6ecn?w39SzA1V{x%0@mStK47RRXFzX5eT#&191wX9V(n_M-=9$5 zAjP)#IAUDvhBTjlF)OQYYwIvzTNN|zd6p;zf06YsDF$QKTl;;-0ZrMjm`tkB+>NW< znOrS}S)%&*iPe;?0XC){a=E>xyx+LB9D&yNJi)^3wKeDN@}aW@RoWc#o})l2E~!Je znDfM|9B^P_r)p7jXzg)LoUL`TepXtH7O*QAw~(6Ksk(^k%O9Af1+Z(P*11mDiCbcX zu7&TbE)^{eZMW)BMj6?Tt`{hTHY{n!7b%i#RBwFOxria8jsb$#1Kuc~YAHK$sP;}2te!|JjU6MFcXatjYfZ#Igl%~yWzvle6GZmrU=gEq?> zD|^|EyFy~rOd2gQNvi{jRXg7y3=;~w%eS^A8P>M#oPA~@ZgAWQreHFT9^uk zhZ=h^qp4J?qtB0-OE*Yq`SJ5C!%PQP7st$OG&m#4ej{)N0c)qb!pk9Kn20`zdPc5? z4>g#8SkbBF@hqURG7a9Ih|HSax1Q078-oYGEDtyg4-cX+fnu*7&PD}PTGf^w{t1l5 zGR5ZQA{~$~bBLGTz3RIAmr&faJcpRdwHgKbK4J|97L0SuXogJFG##b*0u8X0xKV8V{lfDw zMv}Wd&2Z8b!(N|yLE2dwx#Cs?WunmI?vU^*R`0D?Lm2~eAbm&*I<6MZE@r-J^nQLJ zW=x4k?3@U>+ZcK}aaIa~27UR1KW@jjgRY{=YM13z*xud0;Af(^VY! z`GGOX8h<1-%2}k?=kAj$O#I*UVR5GQH8(`KT%|qn&HF%%fq8q}9jWVRnTVXCu$VwyCV8ay(qPD$6=T_wpbJ z*whZq`1nLs)(UD{>*h3OnyS^`4Op zMExbolvbne(e?F>Qq&eCV9TXC(t3?hq*ZqE97hZA8}HcCCJR6=ZQ9-;Y-A2MczsP` zt6YozLRYa}miKe{ngx=K2DkY}qPEDA{p-8&5we#BUVE(#VAXGABS)h6^%4hJrur8% z0a%a2iAvJJMi34QAqKVXz~BUp7kbRKuLJNN0tQv8f{*N(xE26i{{YMP6AUb)@4*RG zYLw|tmidfm#Fqa6K!^lTnFlUOVg}0t>-!WRV68+g)aIdmDNNY;b{p= z<62xHXlGrT%yj@V7h_%H<^t>$Ny+XM33Nidy+w&D8V(PK%&=291-m>1xiar@9{xwT zvW>F=tz&oRAsn%3!vfqm@c@@$8~*@j)EU81E;tS!iFL@9Ql0+*6$z%pRS#A1^8f)? z@4dTGEJb||0m;N*dHP?e`TQ*fWI`t<@R05%^6Cs14kuVaas)@8bL>(o2e)hv2@N>*0_hXL~o z*-AR-dElBRoR_ygCKV30>D)V0D4~`GkH5KSc|{{1;ChG>RR}bQ^((D9==+Q_$V+C} zxo=9*Ks0Se`Vr|i#R{))C@N`{YwNeTV?$9~zYsF5Sx_;=3mcaSLT+;kCM6{c=ssY2 z6(F2^gw2M+RpRVs677TyCbU;wVp10|g=}w;ak7?h(ZtK}`kLneXl%u3Rt(J=K3`Kq z1BK4>?l3w5V&&ID8f9ax9l3sIY%QsW(iC6;*?kZuNErpy`$l;xG!Is}ejylcM_Yet zh;G)g7qN<>l~RLGZ@NOzyHFZNEjTsrDi&HaJNXEU7On*V!+aqrj0^^^?YTv_NLkhQ zEjpmGOjW1xQR;by>bce^bR~p)E#-q5khtp6_eiC}=m!^tTvfI}_#dB{tve%l`&oXY zBLr=s(O%ziHwgf9&NTyr+&!QxOWFI1r%?@8W0qLiG24Bg1V964B_D#N4C)DI{Yryi zRae~e0z!h9;fpZZ0Tov_qNPmBA*`fs=^m05%N)fO!Xt6Ed_plQxDhwD`o5s9wXLi8 zbc2el3iNtPQ3k;K^uh*dWTUfR6AnuN4i^_K)u4|zFT}(sG6Cc_!vRB8yS@G)>e_Wl zL+J<3cKwoE{&T5p=-|=GX`nu%hF-avW1n^8Ld1l*D|V zW_q-%c=PAxQmP&3K9E2vI&?p)jJqwo2#<5rYg&StdWc3;Dn6V_T?2ch1$R7rLX=|K zZ`FN3E$9MeU$skCp!)K_%w;KF0pc8aNb9w@!nu`Ud0p)&0_jaTF)hXbyXWp9 zki4Rd_J?v)sJeIHLZ0+7j)z=S?-)h2JNb>!G&g#^k8`o>q6_`50x~jGvNxIYDTlYY zd!VotuKNft5e%8Q6R0dNJo}VZud1&909Xa91*rXy_FWlqf9fNPQIfw(Bekp{T~SPd zwW1bS7rG8%6c83zvER&Yp$=?q*@$c!vgqfMS52uKSL20=NDWJ(e;(jgS{iD1ecmX6 zF*5_UI$?ygaIOw-x=Okfol^O6e&J$>99%z;3YVq;RE%7=HDpvEOHJqx}j$`c?1XriJhpp7|?RV;!>{5FGGWp zORlo(S8(`?rXX&4USdrUMkkNY#MgR;34dDk2=0;b#5!z>)Wy~9`m7u4sK^)CPe8&1y=QdG&-RVVBm;Z7Kv8(y&Ziwg~Jwzj1=asKJe__v#~cwX2=a zk|VMVAPnSpboB}bLI(VvVyi8R!EIGr&*oEWhC-Tjg}7iiC~myV9fJe#c=?FMPyn@C zcs^j9z^bIaop$vC!fxqd-@)@V6ab@88A{AFaNlLcdzsRqw#NGL1B}qIyY|kp0HaV{ zXXiuaATMMN-Ic&$7n12Yc~lN@a;{O)t?7Uu+GnjZn)Meplv8Nu$%yN$5Yp^AysxOY zTvexog?osC2|4uJ{zd~S8qZ(B3Mtr1A%AWgfr4bH{rQFF)Kb@9t)_1Ji-%R_{lGUy zfil*H;u|UeWHj(eL}~yB**jmTE$)_@X?EWX5dhl7VC?z%gx<2j!QT9y=BTZ0l^wXu zb*e3k>7>vQtfY_NMG2UwHa%R%@uF$pYnGFw6gOJe*$qpB%9rbZPz5`ns&7w+)LOiS zAa82C54a#_2t_W>s2*3Tb=1CB)Np3NLs~CC5Sl3r6uPg4G*6K_%JW{`AMYjI8-gb`?2sMl||)Dd*L&|Rag2dFJ}SLFTP z5G*xq4jrxsTD8C)d_TX2C3hPVv2GOGoVb8)3rQKWkZXiy8zja+GeuYbRv$Gl;Y*uFd{) z2E_}7tJ6M7gGgiU6K2K}8S8+yy6J05;vTMHBh?aM1W zp#K2DGg>x1ot`3Sv!w@3v+6YckOdNprA|uue9BWgLfd)aB8ZF9&)MQ7HP)C%Lr!XC zh|=^No*3nl!mjPUV-%W=b7yBGFDn(~r?c+UTTLB@2)e5gA19e)3%Rq{+8vuT0^c{9 zgOgQD2i(o=3RnSn^H9ST7Nbc20AGlVS7f~4Y#w4}qi{Fl-^8f3sK76u2n!5_jJtvC zj#28-hxWZjfYl8d2X8E1h_$K~0W-?6*YzHx+K_l2;UiYGY3Nd3`_t2@M%u72;7?x&YTV&Bb+#7emwE#JaD8OI=4n2Iu*8z5A zzn9`Qf{npP)%cEHQ3WHXbjaW`+*$ts7Z`%kz{UIVabksHhTS|r615u#gIjPtKuZ97 zZJo?%-X#zOTirV0^#wvrW#Q%VG{Tvrrt2#7Al7<$FSv(HNKATrAv7$C=6pjfuVNw< z*PqM+TFRn_FH7!Fq9m{fS@BRVCkUA)xIMzm&_LH`f?Gc(5^_B69vdbcb*~>Vv{+VJ zR;-aSud_`Uaru^_>}YAcqwCxXg$kK>=x>5`7@)D9BUajF(jA^Z5X1A2yF0}qq1|i# zpe#Y$x1-O*rQlkOKgK>_0=Q5sfAcV`$)GIr(r8x7Qnq%#a4nh^scv~+Q6*QQpksbU zTaKIx?R1SsBC_%N5XJBbmF3XM8Z_1$o<;@i;XxJqTwo3q^do%C1}bk~T*&R#ux4u3F7tV4oX`dmBJKpJz^MwB*LFw5izPsBCxJR$UupA)FUN-Vyuwmqu%Y zbDj^F%0>oy&CgM!Y~TPsuf(lYnP%$8?sw?DL;gPybYM3?ov+2_KFFrUe7v5b0#fCv zah)D+WmS|E%G}#um=q$_+;fiCPzVKdtH*x_+)`Fd%4l`t^E%2j9v1Czje`=?hf|0> zUMWRuzlX|Y0Gy9gQ``YU$hzzO{J_FWPD^$CL~aDgzg@BM8d`;QG}(RnfGL10dOet7 zzG_fiIzd$ywzJ6b15m}ZM|i{mrK>z1C6<7#Xy0#*;t9FlyYa$I+N|MW_wf^Rqc#H( z^Bc>Vz`?84S>ex<+^`!funpkrM9RSV_=H{+J!iMwqG1qAsx#gDtiGAOa6SCP0`7&r zC$t7j294)W1RP$0lU}h!s)`4mVg~pk?tc%=yggL5fY=?DJI{_|pnTkUh$XH2JRdUE zfkEZFvJYLAEBU}o7O}N1n&)^0w}f>#fr=-Q3{S-nD$F(q4-@)?}3xGg=MAK4~wOjo~a<8gWo@>;7 zBNdxB_xBJjQ4SLJf(TnEbbELqfVHJ7^Y>Z1>KFTXmk`-N9uNuv!&2m%o<>D_9wM!P zmN+>+>kxI)4EuaaZnvlJ3*xDN5*SH~#=8Lx`r{lWCe7-8Xl5{7$PXfc$*G09r3+=&w*44&ylH zT(5N8XQR7T;sK;60Q!1{H7#coZtstYmfM>z#vNi41IhR9IcjhM>BqTY7GYt3b(-Uw zYrj1HC5t#_#hk&CqPJhq-Jx4|WUaltkpqJS`YINb2}tI>{vv9s%9*}hE+C!O<$LRx z3Q*4NWp4YVU@)b+VT4wNi}~>ZA*xWX_?gup3h7TiScd2e2G3{;s;a?nj@x^PrHiX* zS3bTW$z_mi$Bu4N80_zTy-xE>w)>%rP|BafZDC^3!h;>YABbU~Y+L)wr3ZFV<1!N~ zwq)$eETXjoj$+NQ!oMb91T3b$hQFdBU{<%$?pC)0 zk&@keVhmU!5|%wYlGF; z=#`{2D?)obTy3n&rJr~{w2T|XHUb>m>{wR-TllW@-zc=crmh;w#%2eqb!!G zPUnPFn-I}k=`QVabeLm2SpBO)4G@5kQPCB$TMC6-;r{@k?kFk*0B78R7~0h3o$=ochADM*?q*wb%RwN6etam&y;Wa4!PXtvI05?jn%2i0vUs}G9-k}An zI_an4Ub71oZ;lU`)ZE}Z{{V5XQrajzpD<-Xh8Pi^2A5Lvq0?!5LAPbv4d#lZFjrl; zNRi0U+&lNo!2qVOBbtobje~BKcVBQclRyjX`6VC?+V1T7^(ZL;hDTS!^DnRsid}D` znNMm6v2 zJQW%p7w%?IFQdc1-R7}U*^N2mB`{V3>eB91_4HjguUfBikr@r+f8N1^(*-)}utGou zi~5m{@Q`Xkm{#vUnS>ZB=$*VxTz1gV?)W`Hg_8y+2rMlSRn2f2L~*LP8f5eH6{!GK z{T+VkEe3%L$nyNkeYJt1%kGi8wJ3685Q@kbhd!XFuG05|XHC9ii;^^>Ts-{62C!HY z{1M)>oHP6A_W;dJGQ(PVxwBD%$h=i|g0L(@b8e@&1@f$4>?we;HDBWpfUFASu%P2Sv0Ae<9kZT8+`yw^;_H7uP6`DRp6Iz*XCm4S-pGb#HlnI zv4ws27Kk*(IR5|-aTN=j4ZWW~F=3S}wzFrbDp;rGA9jt;L#b5u`@9c`yEYwOCBdLK zp>AbrY6W9o>@O= z6vmA@{{T^3(;K#DgWtIFYU{hz^u(60Vh zgewuJk5NP-tp}0AD`~a8!12VnWfR%_MSdB`*=N6mfht+G)x;xlww=`!M@rddp5(YH zq^ebR@|ajD*R%TzM7MP`HK&ivv1brEUH(1Fcit7MzvtpQY1SGOv=jo+P#Y^_%q*6s zlxf5r3x$@Czlaqm0fRh7EfKIQ!x^XnoHXwgsi6b}ja`<)>7Rd03q`JA#r61$9d2(+ z!RB04%R!G%Ux;4St`&p7lj;%hl`99U3srdFViPDTr43tk;sKr@=rG^rRSQ)qR6V`G zCPK{Gc05AYdwM1M(k_X!EAsOYX0mcjcX@^?-r3q(ebxZvqTKD;91K#@jUA4EG0hNE zVRO6$w?qiw>RM^XgWL+F2My`d-NQIafGhqFn4VD%pY<M&!LRXI10-d4)Yvzwvhvpe;pxx2OUo&J>Q2rk>{6TsgeX3v=Z77&N{%1>j zi@)aJl?)Y_MUz~B3$@-81p&#=h*T;NEZ5qPG|5^~+uYGnCM}$-aXz|)H6(!$tldb z$yOR3;pQ2Ea#z0ZBOeUHX|B(h*fyY|{?rwDRo&bDmQo8}$l--rV3f_rgVdr+Ji_qy zglP=gjBiIb?kI&=wsW>hyp|}0{ytFj#NE_(99#u=QGvJFjFVelCxq8G45~bZu}c=?M%Je!W^;taWsP-1pKHCBJvmgE2wzWvEufHflVr>Tc{S2NqSj6e}6z|{W$ zr?>zLA>h8Bhj~B-4Ff#sx6Dli^FfzU)AX7`vaN5b_XAz17E6aPCmjfWTlMNJI~L~k zedZALpa3oBiuEbMh~v=qOa+iE^E|soDgf97ZGLam(`kBEl;`Zij=UX_;~z8EC0-WV$+bLO07Z^_ z4L%p~EJC_2mbP*DiSU5bc%AN7hAyBhm#D1TBEwX=_iZd{Fa*ADh_D*dnOo5JtWR{{ z8~*^dVxSGNv0JcemD=RAqPu6g6>iSh!P(ZMl2#^guD%JB@C3Wxqgi`OQ419uV`7)w zU6mOW9e($X`a-2xJL}>gB5>cQ{eyY4UrK+_gIQ?jeU#$ng%TCebjLB6GZ8||Jo3c4 zwwoo(ULy}mteww4!~qVBr5{W3!=eS4wRk_X@JbR29RH)OTUg1kb7IV>udf;A~FArHpvbLe%ywr45DZa5;a6K3X$s}3FQuG}L7oT$S47uJ_Y5eg4A7aTy~{)w3=!`A)@qk# z)0cckciI3M|v3Jt1DDln}1(n5!z&Hcf7I&&0F^8rAo4EB%0{BR`nYB4tL; zl`{n)nX}^MVht3Ws=W;PMKWpbu17zJ3@}4L-~4?=EpWQ^wmzAL0c#5=_B=+bmuQ>! z_QEJ+B%^%#_cg>hpiTT&sDhd(a3}tV-pP0iLUn#%0xlCk?EBtPgDl>ydU=R~y^F)Q zij;wGYH;~I%4+H=S)cbvm7rN^<-?2h1*jNk4`X?F1!4sb{VjsDhSy<3x2PIXlIm&y z0As7JiDz}Uq-rf%o$Oc9EsYZL8*9(v85ICL2Z@emZy`@{0iufre0aDhDuoVE==JV3 zLxb>#-6EsWN=7(1hyhxFD?4~*Y_{=3b)SRkETCAx&nCP4#%Xr#aSogbrCAsvcRZj) zvcHU0^;KuQUckBn6zF>;@D-U&eKwRd0SeBnVr!tv3bVeAOhF*JRj)_RWvG^Lm)4>j z!Ns@(vCJeY!0Yu6Dj}JZ_82=ascR%rCuUE&L%Z8*%INr`s%gFB_{3@?I4s_-OILL+ zBsxoesla=PSyH;!Rq)F4>TUJ&*5KDzVzpE7)#em{DwZ$lb8$_Cp;+BJ{w9V=f`hrg z{D8Cs%AASe_ZZE)r1(q&&8DZ*<|0RNwx6{zqe+oi@8Z2m-tI7_yVnrNB^Uq*he(CE zXVL6=_>QF5teHE$NbRh0kk&uRO*d^2s<4%98h;x&n*4-`q$P zXsQ+2d=QhaY(ve@;!>&%hPduU!3jydh)#i5yY}Vu(5ha%ecn0%wG^6tsEVw@vi@VN zTU_+<=jAq0p?IfrmRb;^)-Po~>nw6$1zY$)b-}@VIQ&iXR_+lnUNnGM>w-H*BNT^g zV)25&T}s%yH-`+YCbvB{(Dwl>M(5?%LOopq*kSL@M^I!slaD`{VKS3gzW&&j-E~mi z(DxjPS7duQuW?DBWpGxN;hE||{Dk!vU969xh`_K@bIZr#1~p?J3F#S)cJI5lq6M+p zMRW((sEiHL!SahffLJ+uqR_Mrnk#$qd_o3=fL(f7!xT{$C|l5R6aY0;m3K|)dzqNS zDz6WSR6yQJ3(@I878@dli|by!$3|Fni|jVf;w)iQRs5gCsILgCq5OQoRLX7QbMCQeOrodFzx{o#u#WQ2eaYs zH(Ft2TbFyUQ+tfG^16SJLrSn5A?1ZF*)5g!@IsY=s=ddkzSJSrm$S{rrDziN9>!)s zk}{xlMyz~GN~i}0%ihu7X?WP9I~hC~?J)2P2gm2!UqT9!+4+`S=%7n`oNW;_ipT}@ z=AzCULqp}k0>-XfUBaUXOarI4#Ly;<3s-r7tDym-oU^{xZIFy zL9PBDF&Yyfi*(DS{$)(bDTLI|Rlthb)&{%zV%RoVD~eXhL?|BbA}Ht#riXdCHI%#8 z7w%sja+Dn@mx06(+hBB4EE)kVAJX831K!m26=s3F&v(qf#SI#7`LoOeo_&Os#)gvg z+(zr9LnsvH+x#E|OB*Qr464~hz5?m&Oc1DncSfPd%3#NcBV&>GEU`MK+vsF;t7D_Wp_Ees;oisG!7MfH2cf?41n8Y=Qp{&126#?|uc^@i zX~@+dS%#AWp;vmZ-R5w-lwA$)8zT&eU!uU645gL6UMdg@Q-E!U4+#?yl4ulMVd6DN z7b^j900U9_8Z$w8KpEHknDwx-!0z#Ih^bnl`hTv{tWuWa zQL;U70npUL%tCqsxjtO>lmQ~a*RO`WLoSpJLwDvHt7i|By9dM$B21hPzEYxs=GGX# zjXlhn1vU?>;qfd1iiPN^ZC0+)It7(PEdK!9KoGhl*$%sTuW;IG3x%|G=*j9B(8>{iRxC)ij2BwZ-||hb~HFV)K;Qa%(iQTP0Y%MRm)ck zIb)ecgj)S99SIFh8oSQAA{2IGT*8hJ_m(%57a3g0Dz^Nv63Tj4B*0 zYF|t~B}h`DGoBs~nC^jo3$C0+vIPq-J&wdM(PihM*y12qB5XMCn)E8X5G2mgPO8FsOGpHJH{nivj_ZGN( z5L8{0VZLFdv^GN}Z{p>GS|x4s;u=s~sRsA^yi#k0Ec;m*vld{%-0|}hhJX~~pCJ+j zkxQ)?-1qJpfD>V-zla*yg1>(kDwLO;t^P6Dc&IGWDLM;HPdwbNC>AOW8S@UcR(33k<) zhLXDx1=ug9&#cu^*;3Bei1gZ+N^ifoii-ve=k3Rap@aI{)TKgkTRy7&#boRSD)Pg& zp@k-Y;$R1Z=*K)*H<`qFeqde1fzlHykb9w)piAFeTI6 zl^Mv6vHYk(ZF+)-k5DB}xlYd{4ONF?FUJu!3~d))e85cuAO>B$O2vr1OP|QpF417X z=ghEIsYS1EiEYGNWqrq!)TNzUF2(-BTf>7@cx}a`(4TMa=OD&SBiqiRykR&YY+rmqpkbEnz%wfC=f%IK_ z%-xD$R*iqyr2)xFDs&@syX<(DzyVc84c|XA1gi!eU2pEQ5Vg0Oy7r72fR$sFy6j$iXz8}&N&*lt00IKiC zekDDuXs=^{f~vsEEwFlqS2Z-${v;3rr_VQiUofGZnJKm~{KZ$hjdh3t`P2s9?GP)rPqq3`GQtmTK(%(q6F$AziP^Rc+->OW*GCnq+xm zuP>+K8VPF=L%ZYVFsBNZsCHghs4D?JjQ${kx~nj=v!q2gMc`w1mRO8H=lyt?G{CkB z71xI|7|>%!2RMDgmvyyG*L+;GuFjGF0An#kcPqmAgjb=E6kF@&T;v6u-8v_F_XBN! zMPqYp+)EH1JAb`iqd^dAaCU+QP#0n8kGe+`YQ5HYlp!ok4-;Jj+*rW1&rJIFEd_GV zm!oH&h)AHbKwo$U7}!etK;#UE=yM+Kn+HAs?NB06V@+IneL}2R+6wz|4#$R$ds*O> zzEobvpA#UJb!MD*rfXSSTKGP(5!zzSDB9gW$(K+n#q~i705LZAc!FWbpw*2rhPJe! zgzZqEfvj4d+jW=TQtWp)tiYjqrkDok_o&>1s;chyh!*-)akim5{sypF>BS2m@H|~XFzP zZNA>+;KCJK@$D|cZvlveV_>CD=eW{ksZbv8hulag1(>Hyn1zdBHKqO^a?LE-GCR8o zdFbQ;e!gFEAuO=JE!sIrv7pPxNn@~v4QX>kC zq&O4bNNA@EvMu>$;L|~UrM)YzB^g%<)NK2f)LjdQs+=Ei>COZ?e=pKha_dFcJSC%G z$Q9G-{YvVN(+mP0k5>=<1J&=2KfaRsx$_=jJ6Pt2OP1eHhQOw~1@Drkl)wDIE@G`HoAq7Jsq|b5t!p-^^Z6 zQG3~YZwM*QfT?xz9_66mt4KF$=-0GT;;_=EQ_JcWsI#lZc#K=R6IIsExFDJN1J{nU zu>eg_CPBB%a3zUdKtYeyuem`M3x3^yF{NZSptJqGp|w^Kc~4%T z^?>4D9%khQ&aT6l#Ah`Fj(m`JaH6Y&*6vlVKvU1GZAR#*YPfm$jj&^bZaY37aYF06 zPlf5UK_Syox3kK|s4S3{Z`a?bHk&yBuT~&y0GXx-U&PcvUW#|}e9h8e z18`c@8;oh)@$(Hgf`e%6aZ-Y34o3T!gC~~TcJcU)+h+O|{{YA43O z5{6F4l39%yYIEECgKcC0H*xAX8o&wYcYXSd;o+3a{n7zzcxUlTR^dqD^;xEv8m=69 zl{d0>ym&p#-pP?z?7~t~h}*H^y-I}(wJF^5@fR9iLeH1oV8Gj{K86U2){rRGr;nH; zHCm}>MfWHPV#WvAmzD|4Q}*I;(kOi%p-_M>wzIl;_ZM_fWzW_+B)|cGRV^Nb)^@l6 zB}s!Xr`)XzpkI>rUr?>qB?aGiiJL!AKUz#G!Cj|6b&XPBGPn`2>v%buv{u zGK&~}0eyU*FcAvMZFpdJ1z4?d`zM%DeM2U@krAfit(4Kdt3pCr!>r5UqZ5b=?s93q7Rb#uv0EUGuI6eGDRJsN5`Xg-vhN;r`6mgohjVboA zblg=l*-XlZBJZ$#GQ>Ms;O=#PlM@Ff*6VKvs9p+<3y!|8+`e-Ktoh$Z)ZD-|VbOVh zWgenj)tq>JL{Sb#Kn-m>!Idf&s+d!aEd#|ZhP%kO--?F-)3|@o5`l`c_=C8e8gKrI>Ld!1oWWd%3^)Z(Ex+WfdlssWpAS;7y2u*m%%@5=N{h?YLBvMN zA7^`wI--<_Ry~qk29Si&*Th^#>WgUVZ>>vpMzld>__qsoi-Z;2aWyr1k>ND{LeyFu zIa4}(KvLL6qjP@)E6_nWZ~G%bE~<}bv|1X%sgmjOexX%YQX{}d!0Ory?_B&rEe7J= z6!&1hpvsEpHf^gfDjWjCqIJ?KjI_8>(j2i1;49nfSZw4SU#HTC?5JtM+kBQ9ybn)g11C^>&^U}W&l0iUK);Z*x(=sm~Ux+~q zvvA*iHuot50f{TV#m_^JZk56yJ!qux&LD2iG z5nxrjuMcE6Lm_Z~1i&$d7KzP1;+vqhR0by)7i-(a#f4Q10oQFK;LyzzIyi_r@*JnV z>SE&M^rvKeTu5zoL3TR2LhCx3X81i#6LQ$Id-iSaYx)(vUDq)V*^+GRdyHWYg6!#7 z)ey~-?vHYVgZVGXf|{M1T6B)Rn@PUB0kynKef#t+{Vb0l*rw)fTt5&!wl9zzOZ6e{ zFTbi$6+i{^-I~vNTdf%D9O2I)>RcvBOmp{mJk|yM+SFz1wt%3!zcn!lN-03sPcVuD zSq(e;Lbd{QZtn{-AOm0E-^{8r(P5^asgy>bBUIPX5sV7KUA!<^(^llI(7;87VAp2% z?iSpe$kw}jM5zw$Tl-G&n$g^zrA62+X^-g4o0Msx_RI$0bYV`pZM3;&q}Q{+dxMu@ zqB9KsV7kjXzB^P6Xqckgpm{w+g)W<3&qys;g&htYK{8aQP;tdTr=TpVy&gXj*6=fy z9Xi7By6zO@c_!6Ibbn;sj!5M2Lsr_dX;%Kv%xN(|(D8Fpjax9cXB;TT%Gd@1e$@zG zsLUv)x8Bl)jg`C}{d9>? zG{H9T?yw@s3ndk;@0*OGU@P^nhtw^?q#c2r5oQ|FyNj)&0VowhIP&?L(7P-I?E3t` z5Q3(X-7tAQ!z_3O@g+J0Fu1h^C_m}~ix`K)JS?!ukQPp~`ilghL>}+Ih?JKg(7m1Y zB_n|!S*NGmusUbxb@-Pc4*ctmWj2B2DA^U6ARR@&?Jyv^fXlDM3Dpp*ruK45g0%!} z=)SWmz$+oH%D#$?r8?D^$1YeFGzkK_3*s9aBEx?NHxPw7MaSQidf*jB5lVFok5bZw z_nh`NrW?Kmq@wijnYNW|&`QhIP?wgTtRuX$1MGd$GDWV%SqZM@>vt?nbi6G>?dXLB ziFVeVj#dU;urG(()U84)1y%BW)+n_xV^jMAf{8=TzmZ6e>aB;@KZ$rLMH~(}{6ePf zax2#e%!Qzv9G*#?T*pIOJ|^@oxn&;#R~un{;0fK9)0l>Z1wkCVuv1$HM;*^mOKo+m z$1pK!EFf2p5|m!pEb-|nd+R~@%rsTGX&01hT<+bzrhu)ft9yLwNr%Z3MZ)fHrZ||8G+lJ>?jV{NVc__K+#5omPV(VJ zS{3*`OQbbdu50@WFa-@F&-Mdx8BtjG@pBQPg#~rfnbDH!pS@vr{x(y2*y81p3q_c` zYWK&)FgsJ!{vsPqE1g;2%pf78cU9QmBvxXJ!5$_BlnzU$bIihRqJdBA^DmqWBv9?< z{Xl@jdpURVAeI6SDKo#4Ca99dH8wu$7D%c}V&COdbVW3*IlKgP)FQCXwYON-_>5R$hAf&d8lQBOBw0&Cx#nGI3L4lsT^v`rk*&H2y~jV9V7aKeU%#KkHDCc2*UvvG zsf{F7&BvBt$`(D$#m(z@tp5Np@d*kKD=e)%zcCv|wn+L}W)LnEJPr?-7~QU!v$wyP zcHHn(Ffdv>SN3?6(Sp@q2i;`?fe;e=#nfo7!$)5*1z74k4%c(8fq+xKcu}(E+oiU~ zn*Js88;DXjql@<`0@#)UcR7_-mQeJxc+riW4mPOSOa4(iT`{eX)qmKok|3ujh> z#{RbqYPaM}7j>&2REbb+!odcs^jp zYeI$W@pDj}T2r~f^8uw?<|)Sl6yF#K2gfPyWL<<=IdA7kW(BkbuE!sUuFNIt;T4+R zW*>bveqv~XjHuH-TuOO@7htAU!|^h(X^4pCsnhuqsscK)Z|)&z-dTAZerD$~y6&`d zEuj^(0o?KN7PE1Mfb4O8K6 zyGFIBgbbeVpNT;m3*asI^)o9QAQ#v%-Xx|J@K4Du91Bf$YuaS3nx8iW)ET8I7iw!P z0@}ZJi0C4e&u4PjP&%%^LHL$R#)gN#T>QnZ*<~KLlTz8`Tf(6RpqPu<^`u#r09yDj z%)!_t$k$H`^)8TCGOOsbeHay`(P8<#67Z}5M*jfE=5!CGYw4dUkP#}~E;luTR{^PG zf7DS1L(EL??l2aYJ%RASs4U6}uTnL40W>c!%|snxX4t2I54LEz?|I zS&Z1Cfz8S#TBxOu1Dl!l+N*Q^4^R>m#abJ}^lvIOGOC$BpD`UfD7I(Yg&Z|B30=Em z<^b0XjU?yPv$ROXHP@y7BNuSWRW(7jmF5~NGL0m8(y(h$K|zwMe&OC4D5i3NH?A&U zJ5r6Eir~ds6>taJ+tf*?Rb_Xxq{tJZX!53-Fap(jvCoQ@Uec>a)U3rCSNIo*3bdWh z;P64m7o?WdT3awBbuX4sVTzyz`zH*y$qH{JG#(k6te3p$pI)Ns0@z~B z-LnZnwV1Kz$IMoaVXq?Wcp{K0TV*`Ptq5AK*xl+Jg@cK;u6kx35MYn1`GRU;QgBY5 zrX-3%yXz<@%`10jfRyE$2E;2iOOmmU(4YXVKU4Q=Kts5I#;`Y|d- zZB$o2p*`xU<(Ex(ej{qwWn!!POAx|K3g^$n09T?t=ZW3m>z~MEw7P!RoAm%?mo$eJqqZp?5Dt%$eZ!Sfra4LZJ_=J+z!kQ)gwR)@r6C$QY&}{0CgcTvbM4wV}Tv{BD@)UzJ@i7(;+{D~5ZXesdZ z1zH?}w!bOZVT)LHJKwoRz^Vt}`IyrVLL&N{7y;{U*V64U9O>Z=}%hx%Synd2cV9+uv0W_)oZVIvc+kKG=4|@mT^i^KR+a;nJCKS=`)?q zgZ7m(+8D4Y)}L`5nK~_pL&*f-wot)3Jp4q7$fF~-$GAe9mIa;P3BLkzoW8e!OZpp* zE?|ttV0iT_*j0G}S7(rhkWyu!O>^15a*YsZK+jjkkS>_-BkrUcu{5|wmOI%q;1^jj z>F4tS=wt_xiCqdyroAYXQ1}1~KfwBqp)Lf`z59SyK@keAysy+K*|8KWdEO-pD)Tkb zekQE!qRcfOSTSG}XioLV$^n3_7HhxUU|bO=0=w|ay#*Nq@8TphjEbwbljaFp8ANgC zP9^H8rMG~2jtM(aPj3|~q$=R2{X*3lj_a3RAO@>PS8mVUBOuJ2o@>%IfJIpxpajP2 zDQp8W1}iKM~nMHtF0tOl4)r7I${R^C&n5i=7VsBUR3!hjV#pmVCnK z2KhOuXiLDV>kSH1!i08fr9rSHpQz>~4{`IY{rpVe-~zah3@Qdpcg7CLxQa^gAHyvz zBqwOc4QMu#uX_23nO3%pePXorV}7h-0Ev51dbl74z;{mPADN{oYfX8-2gJ{!in?_C z)Ur=PR^GbrqvkYCVwm)Z9mm`7Xf1irBCtm>{0sD}GpSxbBT#H6;Gl&8mr0??|E zn6<4U`G?nKAC~9y3-D%ljSi+e%L>PU3U3d>Y0eaB{VUwY3qZ#9UlO079Uh|B{UHDa zGqSn?1mS7v{{V)`P&rV7?=5;FqE!VP9URxFtktc7@A3$+dR6fk!v?<#0dv2!szU`J zUsKrv(LBM79!MrFol&poiTj3u-M)$?Xn<+O@6-Is&;U~=xN#M0!&#TJuAbusVNHHV z8%tTzs|^1DKQJn@C9zNS@emg32QOjk)UE`=u*1FaaOTOA1K9cag$yzp4o@F26{Rg6 zPj4n9Z(EwP%jRH;9t7%rL4lkJxbWiUa!40a8`b!LwjGOA)b$!`Ew+hMLAkAK+4UNY z;Y+pu0BR*=z89}PKM*t&vStvu3(yMmt)ngtnkhe`Qdu=^Wb}MW3upv=Gl;{2#SQyK zfOIB-+svk7^A{XJ=}&`apUf&M)Uu9GF$g<2v7YaldQ_m;S7r6?BC?kCsO|^=QD>pV zRT!{V*U~x@3e9J<4<4!(Jda-HDq5|{U|@iGEk)Zc39-VkZ!0+jY5y2ld~ zR}V6V$g=exwGKleD6VavKM|cajJ-Q@d`lP!m{rKHXRbazYqu^)Mr@H-oFsprOGAycq0RU>vu>Ao5B)wj>evATu?JcLbzls0Zr~{94 literal 0 HcmV?d00001 diff --git a/user/pages/blog/default.md b/user/pages/blog/default.md new file mode 100644 index 0000000..31eca9d --- /dev/null +++ b/user/pages/blog/default.md @@ -0,0 +1,19 @@ +--- +title: 'Derniers articles' +sitemap: + changefreq: weekly + priority: 1.03 +content: + items: '@self.children' + order: + by: date + dir: desc + limit: 10 + pagination: true +feed: + description: 'Derniers articles' + limit: 10 +pagination: true +cover: firewatch-forest-mountains-minimalism-4k-hb.jpg +--- + diff --git a/user/pages/blog/firewatch-forest-mountains-minimalism-4k-hb.jpg b/user/pages/blog/firewatch-forest-mountains-minimalism-4k-hb.jpg new file mode 100644 index 0000000000000000000000000000000000000000..8fabed5495c35bcacf51861685e7cdc1a8c0dbd3 GIT binary patch literal 1241709 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�tIT?ewLz*Z*^UfYqXAwB5R0`yu2HxN@BcEt* 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 z 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�$z!uN&p6*mu<*C+fj07>WKi(0h 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

    xS8> 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%0A|CXaPBS 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 e|TU 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 literal 0 HcmV?d00001 diff --git a/user/pages/blog/shore.jpg b/user/pages/blog/shore.jpg new file mode 100644 index 0000000000000000000000000000000000000000..1d67cc56c405517662a222e54530fafc238d7361 GIT binary patch literal 406973 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%0AEle-f=4*6(Tm;yVG9wllRIry#=5dSg# zkThh9tm1L3xpiIX;Wg4@w=_MYTB*{?%mK2Iy17f`erd6yP>Ueke~Z&Eqnbw@^}N%S z%4a7Ri2u?$dpAdiHH6aT>YO?3z6G!V-pYOh;?TDv0_4)C3zO5z;x1WDQ!hALTU%!^ z5+s}=jE01ERW%u~LhTM|mElD5oc2jS^OMIayUos36|al!Cew8@8lsF2bj#GGLYwH_ z#3V6^qYKglIW@_MzWG7;fr+=B4{j%a`SoM#Fe!|7eiPj#;nBxaK<_0+A3JXAk*6>N z;;-`4qOSh#Rq_Xh=5B{7f4P^686MR%(e+?8cc&Rsw{;L{3%b*Fv)k9~_Nbc{0Nt#% zTp4D<=#vkP0--oXPx~UaYpEFd1psFw59SI0q#+l93-U7i#Af}L5zf5Eq{LW}edMaa zsO;W>p>+F+Mq=BRc8uaOz$qMAmF10n=2YNjV^gJdTvjKg|DyQJ5H5oUvn&Hn8@*$)j0K; z8IqZ@&|f1bqPAoek^WTSWcWeGL|5DCkY)D%>)oed@{K6#zxuaN_y~*u=d*x2_%y#U z`MM4KHNICaMslT&E=#wP*}wXh=B6DA46pgRJXoC-5Z3mQo?2CXPgK~x)F%~*ov*NA zr4+Aix=HX2cbWC1E6F}|)KCXb6g%adZh;J0jHS5xW(T?VuLU2;>ZV=8P>k&xag5bi zNOUgtRARYTxE-p>2y|qJd$$_7r!#MGwxQ^+@5j6oK+WBf2${BDOSwnZy#$!3URj+# zBR6@S3CQpNLC_bSYY?69)C^E76tC?!A7nojp?F=dtKxjJ+1hj}uq9!HcX7Kq&#Qnu zzDb(c6*Jagbgs>Nu%Y>HI}A8THX{gj3=CTIq(5o1r3Rx2#n#RE4_lfmlN$sQ9nDri z%!6jFPecuNpHaQGAQpu9WQr*-8G#)n_X8#Jy~n~(j+?~!_}jbY=*o$|YFvFocCV7R zjN(}zgv#n@wJN5W=O9YqwToC{9m{IH*z>dFUPE51Jfcy8Sn1%f_N8-Ywzsu>wfW`1 zooGivM4RUHn(wWBDJ0zNMV`GaW3D@gq|v-R0@O_b$;Gk)3glbP-cWKf1Mfl+7h_i+GZLEsO*X){(xa{lJH=n_!!ye{{nU8ydWT@-9!$*C4 zLPc{Pg_opko=b%~NyM{e`!0wV0VqETQ(VlVYdz{vbZub4MYY)+oQA)f8&ZNrV!%j# z)iO;aH>qj8U*60ZYE)zKO&Tr1W>h(Sqw)10o_|b?4UI`t3h@1YaA~_8U6Onwn=z=X z=DxVUNw^tD!O|iSUH0UX70t!_F}NJ85rTn^20xR+p*mWdUxjPmCDO=Lp)h+QKe zilPET54PesS?DFvjqo9m)Q9PjD+Z(I-8yqlaE8{2CFZ4|Y);&=-WUGlHymaAn4^fG zU#?prg-J=#(~FgPAH|NZefaBxXfiTMQ{mKQ#&r|Y!c<5<1tuX~uJ#Emg=jO|@FzCw zm+YDxKqOpx%W&-VuszxI$Hq%~cJJ4Go5$M?wGO4p!vO6&7fal<$C{uu&p$J$8WU5r z6e~}=BZK!@s-kVmBa_Rm|CqQZ!!%h%MCX$^S8P<$Qt6Zm&@xBCDQMQwnXWJ@^v_BggNgbG~1@b%&(~GSld$1T39`~E|?d0-FBhfZ6+X- zKTV98d=gotef#i<=&?xCJ5wdnR5tUE*Nt6P>+U1-N?09&VOpksc7RR#xmxMCYYxJ6 z9gs0hkPT*Z9kaD%@AOky!eS?Vcu?r^3@0%rFEfI%DCv(G3H62pX6sn-y7G?c-wK@l z?M;LZD`egSJpTEJDPLJXLO{WWO^nd` z(uqR0Tx=Mvx*n$VOc+GK;iaV0wgW?TUTw>9K1BwtR)hz=dZ~SvJIbrJ!Fj`+dW`mu z%O27YnR;1Gl5lJvVSdZ@Z(=Ec%TX-P99Sr9Jpm2XNaTjRKM-j) z_eBI_?e2zJ`*dSf3#Iz}A~y?kKz;Q*L;V+N7QjL->YlLpHiWwGcPG>^&^|fZ)<^;V z+c3RdKeHz4xWTd34pPpU&<~q*o2Dexxo~xjukqGy(x2QF zEv%R0hrZz>o(Z#)#hh)IO-3{CaB8VCl*sfVgTdRsEgXn4zvKi_h!Fgic4uQRmn8%| zTDWG#J^O+Cr-CS_A7wPrcuCY=D!Q}X5qf_)4s%RQT55&IYTYBuD4<~8u-r}kJT!tSX z($_h&A2syFaAO+a@&-`{Sh{#);6OdZ*ZIkyd6xYvJ(&Gqulx8bu z@3a;1%5(ir2EQ@!BPnx{xR*bN-LR5hqTGI1nG~ZV}>KwA4X6|gJ}Pl z#NPd5nin#;`ro3~PMby5bIT6V#5)(OOZ~J#gfmk<`xwd%)#GR zFe{oJ&=rDbjTGCF_@afxG54dNukN9gc2W>jGkp7`J$mi!14v zC2o!ENF4v@34WnWmzc*ceLv-4-xFgu8@Tx&>5u8G5@2nI?s?~{WD=!AEW${*I7BZ? z?Zb)5VjPsC(URSmeqMQOS1Lxisuy+WBqkMOWQ4O*w}oms^nln2B%EfK%%1)+JZDx*`Br_V%b*I}g*R z1_fUdBANs1A2;pVPOxjJu{0@6YmvAnH<9P_O_-9{#PSOEkI9wk3^kQ6JEjB6{ow@I zY+iVX{s>r3+7)1T2*}k+{7ljy@^85`{K6@OD<ga8 z<}TapCUT0i_W*x+qf>*^QEyDKf;>ah#MDwH1P{7uTn8%*eH0r*h{*rX+NSyorw%kd zsWu`z>9<3pm~L?ip5J%%l)QZt{jUdEZyvaAp4xR2;a8WQH~8E>s!YgAIC^3*`ZnRd zwbN7MZJ@3)&vuDyL{K_Mp2{?SFRXFOJHNYix|OFB?wc=rO{{6zQXo&ms59`^<1imX84IAi=~e)5j=N4&R{a=CPc?tFL?5}okp{xX}W!MM?g(X+F(ye?_5Eo-GCI0Rhn zp(eH-iHceTeF*TeJV}vLe{3P2D35zxZ!ypr0kUfhZyn~sYD7B309~SG;?h<1Jy99! z@C=V7LPl~U>X|(0D+(jQ*8dq1Dy}CmaP1b=E=p1~gqOen@_$H^yb7r#-s6!Wcg&`g zVQU1|_591_IIo9aPyFRy6m*FV6A#mqcHwk`A0oI-;W((;fh+bPm{UUxT?Hbn&PP1$ z^8D|{FBMNM_5CjmK0c%V11T5?Cjp&v(ttSVPS_pd3fyjO%*EwDSGJZ~w`kI;X=+1{R-L1+Qe^DWGqg5M_oskIfzoW}@)eCVmrHBY zHT_iTxNg~=VTeU*b~siUKFN}&k_UY7C$1W(QRk)aFVfpSV~+!qRV(i|Qu1b0|H7~t zP#%*mIra7$7g?VEb$x=eLY(EC2_Z+k=r`Ve$wS>)o4KKdk4w|CW?qgL*@=-=)g&74 zN-motf@_Xa!YIwVt^?eHHMZR=MWjO0V!DFLe09!MX zUh-8WU6){O>SE$4hMsAqzzae5w|wbJT_EDZ+>IM24aR@DogrLj4HBu2^i1}%h3h4bT|Z<&8}pZfn}SL z+nt>?>Xl72EkG~Hf{t>0({%@fPj1N$l|#eTC;l;|^q)o_EszDQ9@P$Nj9sYUzDPPZl*& zNQ_R%#aL;}Wb|;Jd&HvE9dGj(A;aH|xBrGaTL3Mb&$`2Ya!AO0xH#YQNlPGKq^o7393MXYxsPM;SfgBWw^B)E7SI)qO;K)?-#1@kq>5TgTlznu z`8KC&X^A3;H=JvV+_2}XMqC->d|lOyiDkz|?0QJzLVel=!;h5qRPp65QhBJ<7-dDr}R*?Uc39#L=IdgB#+eR z6?PpYk3_+YQl@*YZ))jDIaONyhDolk$~#W(C7ck;MS*$6oogF_w%8E!*g6lhPD7iP zWVm*H5q=}l^4PD!pAU=h<66FZGF_^i+i}7JVYO871enko+-!~G(+|S7^rr|ujy0Qf z$++;Tj0pq3G>#?7tNl#7&eBJ9=go8(BbQS#HD{s?=NyGpQAr%_@fMK zzrQPaRt!*=vdgH>$Y$dhYVQ;#WqEE>?jz9G6+ev9_Q}zrv|0M3Utz=Sz*{G*32s23 ztLe3u!b`=eX0O!RSX#-((7+i)BlwyEhA>^_ZBFE#aq2tKU{32Jy*|trRD%>{rrPP# zP2vWC*%vs6zIGKDDcY#NW^Nife!y}1ApgEpm$cv%vDa(VcjcE%&4xdSB@j$0?Ndz@ ztcyaYLeDe|xeM}qvHY8EQ^tjEc#2vmV|&|jZ5QmMc3`T0OjFod*|-P|Oe?mX{a7@l z3X!{FigdAAog9`r??lTw3*b}eb7XBXjSNGEPbH$x2ePwIQ(jwlm48OT45l;8zNHI4$h669XQ0o!{&n29v}#)}UTka3 zM}YG*OFx+fl=yH=yZV|-SqKCc4YgAR;8g@C6%R{ixiYXWunIq$E9Iaqy1|;B8d(Ybk8n5t z;CWgyi-$awCbK_6*L=dGH9b;sb9KQ1^p;VYG=~c)vDa1IUgUaf(-K-!Z_($$Iu`K; z?bP7hgzOl7%I8S4wztaorFI^14WQ5o&=#qbg4I)|!tRpPeh-7&W>0I|GB1R~EcP}Z zQ%?XktM_Z*f)8}ExTL3&8ax`F8~037QUV*lwtMo?B@9Ejn(ZNxix?hSH>GyCZ(WY4 zU1L1LptbjjMvOWJH! zrv&i6y|ZGp&1aYV%q*PbB6L=f^%*74t+mQcJnBCA!yU@hz~>{qG34 z^cs#~73&rA*8nsHtsu;Q_Rgu*lu{K|OuTW?P=_10eAg5jVXi~BoKi$0-C`8#%)fto z<6}ZlAZkw^S8#c1W5dv9PA>?3a#jZ!&b?58-RW4E<3467S}ci@0Dhw*VbcgRYl_M) zePxq8l~3V}1=xpnX_($~QtMi`0~Mg}9i$ms%E1D0&5Lgc((2;iXv{=y+dcO6v*H=8 z=U~TbZPV9Ow^Ro!Y6dSN<{uDk*;$(^y9nRmeG^VDcCAA_=_c1SU8zGWQsb?cUEib} z0mYSNOB3bZwXZn?L;~gEjlRGl7v_q(Fy(Hba-J%{M}52}9e`NpP{IZ{vBVNDCmaoc z;gSr=f61Fgfpg5H7I~3&@uqhd&d)-ROBHw3j%=4vGjY}TQ0BQ=qZp~hoL4W6F#(hz zJu}VKS;2d1-NGiZ5JGCTP$#N?@i_X?^_e%gwpjME^$vle7@I98$7~z8{4?-6cozYHK&S8{mMHu;qWQNLC_!% zTeVXC9>$4m_{4U1xJE&2ssSRFN{Bw<2`41h!GriQx$bO z2K_9@NuY;8k7JUQ`7TtLpTNu*j*6mjs36%r&bQ)HCQIq@KN@_ z^4_@XO|4FC4B>a0!p!(Os4D#?Koe|OVkv?j@@TAil2Jjp!WRuq39}Ju*jMOHf0wnY z%`j)=_mQ5T&Pe}Z7|m9o!YoH78}Q>H88zwF&*VqbX2-%YU}+Q=)7Y$2{l#zrF?%{B z{T-i1v71R)5PVOwh2MN7}3A)u&%z^HJSo2pyBDtG2QtIKa(Kk%%K4G^k zp9L6=&BsaJo$54D`<-*jZldGqX%`Lf-da~$7sSd)IPjm+t+CQv8v)xz-M zv6K(-k(UkcBMtwviNr}`%g!-d6il8PgH2xr({3oA_s(`_BVcc6O_|4g)h!3hb#+R;V)n5fLZX+-pcySb zjS7iup&3ebHkb08@Ao{L*f8T{Ny$^Ueihi$04*oK*i^K;5g_QlGb~en@R4Vy;u->; z?dO8B@Kp{*tFFGyL)>8o1~vydgi0mL5&L|4#Zo|wPPMNnIr-Nm$AY$hky+L?SlxtO zLehs*Yr)&vG@(kusRz=64On9(yTke!ZXFleBpSd~N%_Z=GdnN&*zUGVYka->uH9&? zkydP(EjkbD24iA=|BvZ>K{_t*0Y~s9&GY4G+1R`Xl1ePcU8dYwXITx@rls^VMsAx1 zhKc#_=%`IMinXf@xauIUUFHkdg(lqh0j2!$RGTGl!4Cot5!Wmp?@dz*2j*JX4OgW% z_?w%u6NiTy5BM%Upe%T~t$GxLyN|+nz8|=wX)b_C2HZQqFCz zYPCbsbG^roI1oH{G@laVdn}-T%o@-;ehCntT1}As+Zxtq{uLSnvLX8@ab!9{#p&;d zTxZx7<=+Q!d27c}lFgB1@Xfph4ewYC5Xz5Me&>HD-=uc-YMv2`aOd4XbN>a! zhca@#vMnF>;oX#r<&fN>g^C3lZt>y zheGrWCMW_^>012QDbeAxu$8&LcJLI*8ibY7B?%R4C_B$l=NMIsS&f1WTTa8)hXK}n z2~w|($O)aovykJ&_ZkeR(5o+J{XVi~p@9?t8S?|Ax*m$uUJhJt&J*WT>-v$bQ-GA_ zc~4K)iz!2}=1Fe@4&}Gl{?_hVLuQ5Ww4z(a)~WckE#THp(&go5>^re+5tV{(M`MC+0Juy5OVyh)zp4->C?LriCF{^}K^Oi_eP1eK zFt_#?>zt>r!(IBAJYoqC7ZXrZs>$_|KfNjTx)#l|s*}2YA+V@bM8WRy+!KQv6^4J$ zH$~~$A;@KwMSIg`m=u>hzn0`TnZ@wADw+j$us~PvsA!QhVpx$&Ixf`(z}1pb)oDgO znWN7>UdKpVpZl8OzGZiDJ%)?^$bjUohAMVnjLqpis>}?^bb0dPC6K1(C+g7nrTg}1 zGC@H86j;7sUTA#f4(<#*dD=u$1@%d)Nj(|ZaKp>mfK?HQu7yPk=6zBA=mbqt9&gwh zvUryAQyP72Ir^r+{9*q*rJL88^}x1&{!(D|)nn4@-S5i(n5JL7x8HP|2^^W{u^`b= zY89TFGW^Hq95ub3l)^N^(s1g+xGV zy^A&!m!miYwxTc$3pNcxnb2Dm@xTj0SG)Xx?SgL}-ZzX0ZJ{_cC4N7zk&k%A3LYw% z>`$bIwLTYZm;GF)$5GsR+aqh#qG)vKa}Ai{nR(8yXYtZ4*!i-_eqbXh;RI??Z&L9x z#dzL2W&De4P&zKaDY~}kP{{&*sjJo>+2|YrA4A!N57#bI-aiGkzo9f)Ah(=Z*T+;u zZpqetu(v#Sum7#*Q)%P{cVj`;o;pqr%|M=Gnw%0PSA6*7Y`{J(<4(-sELP6`TYAl%+`gu2ZM7 zPJ1eT(E*qgs|XT8i(AwK;WK z=0p*=Qnl2T?BCGPf75I%L=%HrcQHu42kY61pRRDUv6((>)$z7-za*4<{08;Do15}; zaj;#wFiOF`7?fLMyXpn|kV zExh81Be<#7({4AB&}Q8fFy{@_Mo$yHen(MOsM%uTPh zsj&1Xs}1Lb%}DFk=c_?^n)RRZl$h^v#yrC0$c}n9DjP0CG~(HQT+1~v9%f%GPek0X zugVIVg$ZC*Nw_B$AwP7B=5w(Zrz@R4evoM?GBzF18AUmLuvm4cF~a7U^UVwvIDIg3DX|`-egmp$AILcXSjq+T_p|%y&$hue97# z{D`^E2AtaZ$K;DFA7!SL2j{wRYk!tmUQgJZEd9qc^MY5r+%2J4l*&o3Xn91+(a+qe znCCsYCuK=~FLd>xC2x-5#5dmiaUhoFjwUR&E%ajqR5%X!Q^Y^yLF8Zig=CAS56$Ak z6>J+w_wySo?~#_F?-z_VfS~o>ZBI*3OV~^-Yl-{Vm3p@Nw`W!I{&3rdz4pym{A5A7 z#F7(c@k``lv0PJlt-RILH&D={E z&gv-RS0yW8gA6LW^_VMLXZ)u9e<~0BEsO^27NiB|lijDS@XsK!M+!#4g97$EPx&K$ zio(}}SIhKS-0S9rs7+62pZC!NO3rs_bG;ZiI(U!3Dm!esl^d7Mbp>L zF{0h(0*9rHF*UU$+nvDy=mJLKK?8+MEwdaK`*QomT83+cjDHZb?00xIk&D9_nE2dl z_2C`PvM+yqIi6^r32NbH)+HIFAITA=2~iuD6)J=74ydosf-j?8!f}CeYE+Xnea0RSG{s*q|#bi@reTNEbMZu{gd~cC?`@w*sSm2oW+Alh7V#; z#NfXc>$EsL7r%M0;1h=Ba)3*}24@(@i7;-~&pX%-At;=Zfyu7EvwI9@L(vynZKcj3 zBH|r#hrqC(e_>Qz{I?~JT+lzV>&*TO{cBe3M@2=ztj?y%E|(fo&z_U1O1qsnf(;<8 zP00Zp^PTRA{x z=~#zyFe8)Or*623y`1AF;#N?K59pbFzQ{vEcV6ZN@QlhCkVtKdz;g5YFyyjbxc5+@ zmo3wapk{kR2corw@iqUZ0mI6^{sN28zPYvn~cZ za0J5dA^I!PesekoRD9w0e4X7f0^6uRq_R94pj^isB*xn1T3eR5a3(0rH|(!{xz~%Q zB5Df`{wr$o53|Fy#{|#rmWOpGj(<{d{0$s`Dzcql`4W)^iP73VKRW}v*}6W<`0%*# zXwn&TSqIYZ+p>H7Rjfg%!Vf*Dd04(-i<9Fh?fzDcj|%_IqEL-@ZRN?+X{-mD2#rr1 zeIVmVc@22e-6s{it)^_j%169|0~$yEkv1U$&eme(3x#Lw&E-K|%9f~tEBudHT`zp@ zykyhW__-!oW%k*lGFCq)Ykr@fVWDw-%o_3=)5BE$Q#+Fqm!Kwv;kb@0o*NkDlDmo-xvpQ*%JM5w-Zq z9()Jfh0M|pUyMNWhIKq&au-KyU+K)!p0go-6}yXs5a0%f)Zu zHk~^jzyC481%K17kU+&J5Rk9gUlyv#PiRAW!y-k1eOhZFWhsiNdiShhkXXAg69)m`0M|ZnBfeX zb;`HisyY$a3M$z^Pxgyk5DtdC`vm&%%F`A@@e@)nHaP`)1JsJ^*AtL3*SeJh9rNsLfJX2&+$^3| zTLlNQ57i@XQ!CR|yP=ah;~Tj4_GyZ&Ce^3dRmaDboXW}*&GQ<6$=tlfI5`wpK{gY9JBVHq{AeVf{4)k! zk)888cgaQh%|Are{xJo!e^;WGA{+$)KED2k=I70dhIpUQ=Of{E@8e1yqBmW>yJQ~$ zRhN5s7_0d?!e@IN2r>A#l2EH)mmJN;^csezUw8!@IOpZYD-MsKz<|I>3yX5%fPf4<q8eE7{a{d0DO(Zx=x@Lx<6v16e}&mrIlzC@E9ul?TVm8oI-tZY{v zy62_})sa^Y%8)00q+W)WaHWq`4zCSadB%5>DzUWwvF~#hW9w;4^1QEC{M)P_wJ=FG z*jaa+Q1`sA6#Cx@yvXNPrJm;_&caV_JQt7_*g}O=hyv9?p6y?jG6pP#BuVh;LSZG6 zNgG2Cx&-iE%I0dQ$ub~HX)--d@cO25KO2Y)aA!{I;nb0vR+fr5ax=xTFYy&%^GvvJ zT=yLwuaN;siHApAQ7IX+aZx=`9vtl;&w z5-DvF_e;PpO&XESoXA}G9pQZb9ex5g`_ty_bQu!B## zmQhsDFTQ6FQn?Mw&BecD(&rV=htLZ^#s8%h+hFYTcV94et@}K%T{tZYoFKW?FBr`X z?s|Ut>3^t3vvwx_eZeWuPm<-Ajr*gIa`78C$Gttds_!PZz%~%eQvm4IXtqrQA=AO3 zZFC=e`)(AdFI;zhW|w4>#prrwP+&HV!PVrA^->^<}J zxDYBH*p{|$wHL+=7ad#jHX%cMDq=xCV5}jUC)SGCrJe4V z-cZC~)=)8O&-bl|Mf9zTV=<@jr{|x5&hSb-W~K%j5fkAt{_nzi3N8N@E`&#KpYC}l z?peMbfUJF6Aj!0rb${ocV6NA?`)ZGLLDxx>mP<+;@eL8RyZ@IxDI9Q+WkUlI#9)kA zKKXcfpc}hg<4OrTZGFo=u`WLppT~o2X(a=&dWmaTEv#8pw|#`LLA}PhE%y(Of}=@= zM?1B8X+nUeNIpo2&F(9@acAPAASD$gk8doaGG8ld!_^~drraj^#cVBg0ZV8c}o*^knCzuPF$NOQ_RDEM<2mX2BAQF?qpU(>B^x2 z&r$<#7e5kgE~-_Q=Hlu5)1^i&F{TYqy{urK%Q z?f=3ekF;aF^LO2T?d|%8*3D4I37H$8Lp{BF@;#0p43Gy7QIinr(hh*!lVzcY#Yy#( zV&l%R#Le~+rCo$(nwS{Xs0FzDz&|AE`YnTDMG@l=roT4O=&LHkyU={_S@2cdb(s4} z`5WZGUZW=O=y~h};9j7irsOB9Yfl8W#H|mRYL2M6E42idADo##NT%Ch9_}7|LwY0y z8DV|c>%v6eaoeZ}tTz^`S=c3)NeMysF+p8)m3+Kq4zSMo_ zYhmz$L9ZBt%o&{TT^@~aMmE8N?-0T)pRTB~atB)uOuD@z5tC;8f-o`frc6*~g^%jN z&;jbZepDaKhh)?J?sZ9fHu2k;=DDZ|dlm=P4&U~0AgM{kvS5Wi$cW$a92J%OPvp#J zV#m1$OJMb0y`c8PQx~-BP9S0e-_c0-e!xCBF~Zbk8DWL_q&jJN_Q88Z(E)7LmmX_v zD0qS_C-2*1Wyo8Cm5OTg%p1AQU4y5rqG>L0Pp zR9TpNnAt$`t-HWd^`N(}i;QPvj4Bewl2IZp_78BwQF(a+>CeP3uR8=zxYHj6H5=0^ z$s}BgeOBgNcp9K6p4%IuwOb`?I8UU+(P@N+J(P`@3c?;MO2BpzrFyAGOjtaN(Y z%F5^G8dt-vhrd{-oBS1iTN%P&{4!lhM&c&|2|}-0pBqVVM4b?8i&uvP*bPGSFsDf( zKY3x{@|je0Z(-a(_p4cr-`3-dJ55POX67|ohPLXW7sj>Tv)r_LAoH^)4;CnPk>!V7K~{aA=AW%|Z5 ztL_BQm^K35$?0Wqh40&`%ml16-}OqS3rD&T#CxA2+>0#M#=wxu{T5609!p2^+|qU4x`y7Hl)f^TPerFn zE(AZn1e~#w*g%QZyOJ30ZX-;5^|Mio}|9>nUp~y)vQqCA}i&!(8EHi{+X|jX>t`Z5i^KZn3ep z+(aFf^|9V|tEizZ;0r6F>t^YHfo41Ciq0XPILa|Dvd)ZwJ51q-3%-}4`x|^(W2d;3 zHK*IW5U}(b$Y19lj=&+_)RQJ0lm9|4>UlK5$d8i$(yhT>y(~2?fo~`gNjB(z6qo;~ zX&W=-x8whJ?G?SbM6+&dJ5T>Nbx(npj0tkkbhc~8`{HiFMR>kMCcFp_1he< z0+V~#s^&I?q}N=3gsX9c;p?Bq)+7-aqu=C_l1EQd+73v z=!DOTOLR;WvzEzVjP+v=m4*m?P}BqF9tc5y2|CCCnsZ;pD|d%AI)>ovsO?xaczbL| zj+gT(Qr5CHfIqYsL|fFdl2MMlF_g&r{xb|=wc=c zE9XM|LKl>_HcjAhZ>@l)?1naP(M8Btb`b=ZNI<7z`+*>lf+B%ULv#yCoA=Zr;f&NCX-f$}K z_m-2?H7tP*uS1B*NLQnP!fEosDnd_#E7K0`LY$6UWc{U+{3wwL-S=3`%rW6Y8l4eX z-Kdi(e@|1OiBWwk>eZ-C=UL0Y(d-7K&iTWF)`1P1*%S^g8I$TiN*yM9P#wNi0O#E8 z8KfV`s8o8WyS2DFx&KzC(b(R?rD}(_uMpy4I@xH|mi@rc&_NEVlPKNj_47n_GoLt= z4*FdpB0e*<={om5*F<%korTYQu7lbo3-O$o$;8C%?qf<uv4giU9~B|+ARtGm{nmNeRcCAt=K!fkhdcEl{PPu6&$CX>;8AnC@4pRf`TsNPai z$AvL>Lrza^T0Yuk9O0{vMa!|C?Q;c#MLUD+1g{|0}Z4iJ1Asj3q*y3Iyn^@xzjPi5BMvb)g{bqKt zC#7?CXV#?MYV#a&q-mV(Z#MdXdze!r(P*1BmN0R&hnV`{%*dK@BWZPUe_|2C`Mej9 zUp<@4(KFi2@}ZM#a!;-yJoQ4N<0)whrkL5={xH?b*y{>VVIkEL@~J#YvHpSSL*7Pw z>o?G*ME)VD$J61V*GOqX<-=d%o1~q8BU$$MXyMlN+VjRLS4zr9TjaQSgQ7C?6mRxcx6Bse7#sy(aRbSCc_>(?PhRwO*X}Z~0b8RE;kvt9w#%Q(JBwgSC8=mMhp_tHkpGgGgIzkh z<)z}(sFw<4cO+7C?ZCzEjF914*9~xB3(C68EdDc0$1N6qqc_tc=9=)(524`M0GaOme`FF81;m zlUBTVb-;wTJQ+mgv1*ZA?hUF9<++a>-nTl(?_lmhX5mEg!-6R#T_s6Q_H*Cv>1Jm^ zf9v1b%@Y45Pg#_F2N4?#F|ZcKPH-V0x6X=Q;cn;eEFN#ymkN&|%V86svtY|u z>mt7V756t<`Ks87o|X;gU>Eiy(CIdAj6Jc%F7dvwr}j;;mhLmh`8g@g*Jwn{ zH79q-w^akh+odN8S;9FUGrZg-X9XJGi4LiA(%bpB$Dy%rL|Z+|$RDBak86$bq< zEB84mNU_3Tr5O5qos=?nfZZ}>oG4n|N9XlMs##`HOnoD72!7cIM&OI{NDWwfw+Y-JJ0gm4o^^f!c#Az zSjAqJ(916kT=h9pm>OgG_T{WWAmtgi+bdbLUG}UnOU#{6jnm%W1qM!GCh3_4RyPrd zwgN>nreaH+sX-|rLNFYN!} z6)hP3uL8@`$~W4@KaWEFjsK#l;+Hj-tC-TNXR}J5+QGHEM_1C7ifTfj5lCs-p_4-` zs0jHh>T%lW8!w*(6{L;5W_V4i;cQ{cL_q8D;>dmr8_6$xKbttrRx!nVv-Ci|biY2j zp&Imh>f^5z=j(1C*xhJv!}XZHfs9eaF^SIKNjwGYQ(S2hRpPXb$g-7+#6$Gu_IsXU#F|n8}6em$AU(QZu>dyMZvEgTi12umwfs zejU)$=vvC}gh0Hseh?v>D`b|hwvg#)b#)`uvnV91krrW;A}X71w#$TXYA-+Mx@QE9 zTK(raZ+qQj0FtYMug9<_i78h;U@zh_Ya#k^geWn^d=TS9gH_1dRjuAB7FCn=^U`Ti z3KIV0hPQoJr+}LY;9CeEhjz@?J8Lwdqg=YLnH<-Vk(pYaR z^?V?w)z!MHbVc$lY8g_sK$_4#|I37vhCU~UDuB)AJS(eu=L!f`)`@0jt;8)(#o@Z` z-I!9C@zvY|c!xQfOkA~NO-Ix}I z*(Axw)z;SmW4s+=B7jRwbuF3k2aC+Fin@0p*# ztxevfH@GUnjXMWus+%h{>BX=NPKEVu=P%xFdFh&>Sx;$qdenBhO7imMh*26{j~NwG z9pI`{Jr71${0iNad%1weseGRO2r~+9$s45W1x#CtZ|YH*H(L&u$taMe;F@+fa2(BM zvw}P$j}QVW%an=Xklt3^%rs)6XOxc~!{RzZmgC4=nx!^yXmK~28k;aFL%|gAire*I zRkaSv^~a3=vAu@#Ih(MDhu_R&BgN3{t9X~YSY2_aRA&Dyw+#M?;e8{T`=r5-Dc)RO zd_i#y#(3RXNfFYu4uXZ&s(lk4gZgEO&<{u3Xf};Vo7JCMkZ#9LK+DIb)mCXawa+CI z`9-_xq!9%V1e%O4fc}Bz4t_09LDW%(t+w?NHn*T4+f?KbM!3&LApih2bCRc}^%V5E z3Tyd_+J%t_LU8kFG9dxW?Y-N8dBjfboio_KS;Ac(v}?q!0}7_sg5Qe-iCN>U?+kD- z8hUML^YAkj^X7k*HTF%G>6elE$5tU`LcJE~^53ikXJ4qSW^G8B&2t(v&lyHx zb8d7s?Ja5>RKu1e7u+6&$CT&qc*AbKNfC99O#$@gI=+8 zA)iz%T5m1rBz5tpyB*m7@0wvLuMJfM;{L0$%*OHtI{I3_Y4b>3~n34|Ijl+wqPO6FfptLW**~g!lRb1b_AxwT^20=+>9US!L2_|I)IvSCqbn*3( zNXO`joABP62l@18b!ZmeNK{H>Av~g<`hrhRGC=bEQ|?Fy`TTp|%=dL|1aaD82_vYA zo)9t{_bthZ#@XTB`q(G?5{fIDquDvr31v8=;%3O)Fn)IQ(+xVu=CrM5ig8m7vP$KqMPx{V)9R3({4G(v$8aSCN65Xl{90T>Sqe%=f4}_d6)e7UjtiQI_;7y^ zP9&kAf~oR=t>q#$ANJ&?xe1GOTS0U~IVP<*=}E1HKk^f;eNN)3Yx-5Xs-1~xuN}F! zdeULCzd*Lt#;E%b;3x9#S7-62-bnF6(GL=GZX9<#!A{$?Gpdjs>OsKHT2* zHR?0GW%_D#q;@?0StE%0d?Jr8N_9fs0f=30-co!fv3O(FYK%*Zz$UR|)mOm(ZX+Xb zZ}nK;i%0Fwow|sE2chtmNh=2yOt%VNn1h)3olgH-%cPq**TQRqEvQ2?KcDrY?sDEl zsH^a0J0R-`x)4c6X%KpuLeDcRtu+`&mauBYclAcALikx*r38SsP1^BS4n>+T?|)Xs zXj{X=d0`PuRhh$IZd-B#;p$8kqaT#DwdITVLyi2@NLQek5-E;uIY&dc%*F#G_X;rK zt5SGDIj{8#Sv6zln%yXrTU=s7;Z6mJqe_?#o$#3vQfz@U9!y$P8jdn4en72y|-R!@1e(w;yG)* zqz^ub;o%5p*8d`GSP4sp?NPWi_41W!c1x%%!)Qb^Q_Qeu75}?dq%p>VG^;dzTK|yV zv8X#HJlOx7hxhz>03oJIU;Ka9j;AnXI}-YpNwMwtg=Jg4lniGsSGVlC>^K8{$dXWD z;chNV=XtwTPLESYUHGBLXr52Vh6F@SmNfZ6DojxwU81@S=LB_nl&YTdlp(OtCr!14 z*eKPW+j+bRo@t9<2N~z2&l2Irp?14?J34`~0(4cXHpWSY04?KbH5FqrX|Pq^JXA%+ z2M|83CW_zzX2_xtY`e78{xXdWTSPd@qUd9H)*s#XM|}!(kEqfR0F-nP)-l+FpB=67mI`_h;-_mWr+-&;W zUiyW319C8uee36*x;B5EbiOTMuatFKMdE8D`(%BaA%Z`*lPh?gKxu;wD24|mH|kT* z!_BBxCi%Lmt(~CJcE8I1LYfoHO&3}&lh~8Aoo*KMUG^0V)B0%;ZW9KDm$4T{-!1Vq zi39joDHWxGo~jM|-@u&E_hfLP{oDMpaPAuj|1xfcYcX5eAS6U*_ z-bZnQ%Cj);RhH#X5p0UTVLS~DlIthdD7wlpDx;#1 zT0Z%n|0G7aJe1NADtGeEK&8gZmBFr0?a>;JAW-?uB6}n8G?o34IIF}{ubkXz98v9t zQxOks3~n+&bN@rtC?=aZp^yh>E3-Ng&B1&^RXQr*V_;Rvu=Nr}pN?ltR5hE=k}=pS zz{Mv*s>18qrQxK*ay2U=76w-SnoP$~>pm0&S7|ghs!j&Is+A|lifP*Uv3mjCU|>U0 z4LrXYYffXz(nzz>*w)>!OFmkB>lD+V(C|H6Rj73VzWW1vNBS`CQ08N(d1a@q=*qEuKL?4_@OQIU}Bd z$WB{Ycv6YOUxSjc@+_B3z>;Xx|E|53io#DH|KzJ`=28>mi_&^?K{Pd!Xc9L*A_42H zYT$f+8G^G3cM(@B%}KS&qxy}!nvg{r>A&2XFxeluy(Fk3Gk%{%@KR?t{rW?XTgwKC z2(Zx!;jjfFD5R&;`^NjdRD$qn`++o8?&J!b$BM|@rzvcrbAS3T=bZTk3)?vUJ(72~ zwWFnZqw47LHbrLsSI=ywY&!z<;YpOYT;NTL39523C~Lak#`b&w+Uta?^>lTqgj4M~+|Ia#!rB zUmjY!GW2(bwO608;^zD(V+kqY)T`ReIx@cT(mP?g7jk5&;I6EpcAxN|fm3i`e*L+J zua=ap71we>A@&>}xI6;@OpfM>0FFsx#V{&W=WN z{TeW(|BTM$mC&04Os@DT&Uke)HnmKu3s9YE)$C)7-ds_Rm)(Jtk1+wO zdp3A%oH)wk4zI%+D*Djt9d;8vS*%A@Gs&%VzHN?Hdy-y9>UyEHZzMj7yO(nwW>U%C z9<|PqYvZDu6c_?erlSl>EqFppkQMLpw%Rz|6Y@VArDo){ywl5%$dz}h!%lYtYpQo0 zYCP-(>5s407CK#q!Z>!!&Q-09HL(4FJjpXGk8De7OErzXY2w1}iybUMGb|pCc2G0e z|4j6vJfoAFH(vay01Nkgda&2iR??F^5!vt+OZT2fRajQ0sc`t1h6Zy*M8{W0N}$|5 z{1^c2mDI8ImbTC1%spk)2<1{#Ko6Q>NSZGfCV$5f|9j^1*B1ONK00TW(-D$VU)|3B zX))(0+TgC^RlZe|<@B@MI$(>6U!PcEKg%!{-)ZuhK3$-8b0in^jcbud0(>=7Q^t!$ z@)hIkq&tR9DAS?I<_3r6e#1Bu1$8-19;dPBf_nKj#_iH03!_rZDPQqcR!f^sBfofQ zU6V={GD^W(LXF`}^^s34=vlQJ(l?7$JvK0!Xfdb4O%0KSK5fzMej_A42Cx(@5ixJK zSZ>&jPu(0V|cS zy8eC*q~>y3sKs_vR@edP-@`Dej;c*s1P?!>+ze&(A7Sw8#@^d0OEk-QIhMTzAb`%N zIk|r>mjKA0)DRJ+ZO#Nc725fIO>}TgAV;unkSu zlwPK90gaXytTa50Z*^f6O-%@J9hc*ldPc(|WPrHt$+r>EREX`eq(bgj@h7dM^=kSK1f6+q#nZWo6;A#Mi4uJi-hmq?28#2BE$R*i>v`O9 z?xpx1)wtS_A-v8sePRfaWO~O#0&245h$2Ms(K$mya`(by1*+Q3X0eP5Uc`f18N)0& zzeLIwj&IHjT97IofVGi^ z9niD*S7u`SaPQr${hhr2bh8VSgjY14$;9ICQqq~^0xgK&sZBhxfKyd)QMf-Bn*LgT z*xu_hJN&Ch>4dkJoin5Qp|C}9+!#)`2F?`7;*n`$AlJPywa6jVvbgk{AO|oJIwEsG zwpO2Mu6Hw(swlmn7frYwn|1^kshiu4gG_1cgACf2kmB|(aMjeGd!P9>I?4M%1!j9|1#%o5=(g&=!`eS`#H?#{%gC?SQ}F zb1Kj!UM16{yr$%Z1$AYeCdx@eU8Av2YO)tFBXbhi*9kd+);_WQ3SN@6@wpVLNm_#h znJXCePN(66cmJY*8T1QG;Yw}et}350RO#Ej)YOL5aEr=n=4fFby`ekkdcN2X=<#lA zPuHuTQ4N@m=>8g~<^fFlFJCE_4kJK|Cn$+8DD%}2dV|GlwE+@5(XCcD%CBvfD;CGz=;`r+S#=La zup~-G+omJbt`*Yx@Q2+Dpzo~96HIgN>n|bitur6|{Bu=;6camJb{!=bUvwEJKe4|0 zcs+|hSU)n(A=68LEad%Zo1TXxhchzgwe+S2JhHEv=m-+iYLx*BjOSD{{!VWmipfIf zE9VF3YivqkfDTp(yLY8I4UX^e>?RmR^MplP;D!ore@m}fYaG1Ho%D0|B3Zrgl_)xO zPnx-LJ<}!;eqr{go0EG>YXgq#4M3A3qn)vW2P_<6H=4E@J4st37GFS&_}MJCKx2(o zi9^E4wm2iT`Hay@2{DM%jn)4zYAhP8zx%`=b4AB;lb(C}I#(&d22!g?OvRwQH|n`3 zbo4=q(K3t<0*FYayg)176&AHB%haF;!K>WWWLc%XnRpEkbYF_KV&w@R?32#5^L)1% zwDQobc%Kr70mp&*EYLnF9X4HhlaKIgV0iXM9mn4yk^S|%QQT87SshNssJmFgZ)@a> zrv?eiyQq(xszY0?0h+0Y`;-p)rCcTL5_QOjc^QoC(!cQ*?TJZa!G7kZXN{Xi%7Xa2Eq-_Nn2BfBMhSo= zSmuZ64})rn54i4dN#3jr1ZoA&vu7M@h$sP(aKkARy9qwDIHb550b$C}`m*J04pB}L!|7H*DJs(>ES6krY zSbh`9A5R0#rXe51n9ZskvWp*R#8a_d3XS*>&D?y5IG*p-w%tD7KRq}Uwn`!x z!~9rh<33sPvqm~db+MPlJvViu>PeJOt}fCBM*`|R{pxK9K9%IbBO<4l59~R{T+8>X zH2ra!fajvy{%;`QVlFp;r=8tR^EM>@4brq2XB%!}?p|f$&(P^vm)jtcU*NVDyX%)EqH;mflCWBL1_SfHA2Zmi3Rz-6gjf zt_+m+yJHo}F5tSU<+yA4t}}mNW2Qo!Z^^6&w72Xq1^LD4NhPV1!@sAP@s{ot!5ntu zw#@2p(K#D=e%;kfd1zARXjz{G!NPGl&L?1k22sf6CVeQDZ-dz2GX6tOqFLdzNid7t#hCiKyW8GcbA z7oBvL$CoLvY z=`q}Dz#Yo9R6F4x2ypvM6&>4Wwq`0}k~8NQrXA_A{vFD3x6?%OL=sCEPJJZi%gnMO zYhi=ich`1l?Um~%uE(wgwkbUu>dULH9?}~wEBu&S^~pg#)|bP|6q0s(A0gN-B_1uG zQTN#iUs1n#N=XSB6sSIxZ&)|Dq#NL)>K^$$>}6^-`BnL633VY|jf88Th5!i9T{fsCr((I?hHQbs z)zgvQ=8&{aAZA>|=AJ=nvsai5rOwg)q1=hl!D1++omzW=ACbJ7f6dN3Go{ob55SuF z=JVWwP-*$wP$1-si4jj@E#F~!6Yxu_PphLoC-y>YBB(ioh>g(}6AJJ=epK8yY8X}$ zXY)df^DTWs`%bL7`X5RX7nr5;?E=cHbfUFA>0r6mrh=?xw8-GtMq?@b%}0puqxolQ z8OiR2KlHtaJ1ca~Q^&8M`k~#gQ@KV2JU<|12GO)F8kRqEh2PfaB?ul=_YY)o6k;x9 z(10rPM(sC6fP*X*EQ7SI9=q+_fJxg}fyw7BF%{U%ALnx&q!v7_PpEq|rACyW2a#e{e!!4pV4uO(iCG&Fqk1#LeEVmhhu=&!KtfeV-qjuBU3S%QpuraK-;#I zFiNFQ0r;WB9AK2Tq-OeAl~#czx7D58gC;?9X}tOGddYb@>5-k_@5tqI0ZCkuf+2UM z#fBNc)qm5HhQ#BU`8nyOv}&^@L10tLNX@TEcwP8s$6bcP9I}B#pbBA|irUo_M&L}Z z>J@%q`;WR5{9Pm$H^lmrakUO+vDt5P%?7w!Ci@-p!b@5`XR%EibcL2lJ9$J3Qnt(0 zc)7ZpJ9URQg5{^GXO2M05_*4aYND@I@>>2OzAiFre0J~VtwHmnjB07q2ma#uPkVx# zA7(ko8GD7RZ$Qriq;7=jTy;i5jn;2W=n644$jn}7{+UID+g^xdi*E>{&^^~%F4E%R z#V;Lzr1zCPmr526ztg9GB3icCWjf?!3%r!26@1CY?mbPEqhk8}jNYDn&G~9hHuqC< zYQMJ|JfLd{e5M_YPdfORo2Y1#6kyIr3Kg>O%|wdI??TJoj(IK>FejO@V77T_+p*g9 zYCI=#oFF6Lu-3v;%ga48&8FVI{1wwRt>)ov7cno|%wCe+B0t7=II%mA+gk+L*x8a@ zJ*r;z29SU{#7DHYc@flcwm~@%(g$ZCdUIY-tX{Gsq4qiLws8PY8E0~CoDb#{+DOAaA^5u#bUns{8s;Z($(Ch3S-sZB92xM zig&yhH@w`^8e=s)9Q@C0`e2#~@_~=)zn@v}?wzGrrgFuU0Pe)5_DGXFFTMry4f=Im zXxepn$#x28RGevif%WlaU*7bnnwB<_P-C@cj3PW9FmNh+=8?I1^C~>&p7DEU>ztfj ztQfJ5af-}0<)hKp#PXMi2(X0b=k*P&rGpOL=Bfgqkm-$hR*5rRzO3A+28vNw*^5Dr z!umT|;!kAcbOMkSTA*?XNln9NH29jP&C$Ogx|>6Z6`^*h!mnvl4|qoWg>qQR&22xo zTKCUsNyJq|EG8qVn_t`s1j zCgp@B;|54`O7uV)FjIhiSrt8)0IPZT9esb;zB@_zXshEDou5GH@AR)qV+HvfUj+4Z z8KMPnLmE@ey8u<}Ieg8>j!`kq6hy0JJu}>V>frGG$^Ob@pn#~WjMWQt2bxO=33Nff z9P)tV?ufQpZ6g<~U`<}*@6(y6 zJV2?hTCTSFSI~)s&UsrvPj>H1P-zzLEq5NPcehNQe5-p1#FkdB=m%WEDelTv-2QAC zYWf5!23ZuKXcYlO0~&X}N|T?x>;zA^&X@Yxnz}LWnoWz_=;rRLcOx(2kn-{^k><>g~OtZ~iW$2@+UnQ-g+%IzoLG<&?xl)(!z_?QZZQIu4}XVDVfkKBDLtnXyO zG3@7IOuL`CQe-Acf)vA$ee*}Gkm?J*oYQ`F=n8{_cYz*UFl8mk_y$wLI_jycjuk{r zqItwiT=Ry6{M+1W>3hwh;l^qI4em~SS(6g{h_7^b=6x73$1Z{2Na?@s%|Qi`l6N&E zpc@GW7MgPG>0Vywy&f$s#Y2cLTeYkXO{!WWJaixIr_02~>6*T@r_x*JVn3=)_r2a9 zJPbPN3$=f%$M8^qJj$MFTdMk2_a~`pO-X0AAW2@rFU{>IN6)N9t~Tp-aZI9oUS94d zU!MYHD5&lNoUa&xxQW#8|L9YO%Ds#fT|MkTAqAvmBSu9cKZx4#S$bVUy-%3|iXTx; zyEZ26OR7e1U%Fb2E!^d5c?Q;EsfIi@G;i9oeS6yf$wWQwswp0*<74WY`T;)4!l*YO z>7sJ=CQ&VSn74(`%#wAXvTWcBQVyo}BEbwE%JHo; zCAeK2i{BRs?g!dp#<%><0e)SY98TvAXo=vVzA1S`fj>{>?t^y{w(YaY%g?~?*}CQG zD)i$d{YbW4@5uX>EDp`Ra{s%g;*0m#W3e(nl^R|CWvi;Z8$Ft}`#F_8|CCRlU%14v z-|kZNH_bz)t%9pG08zS0gunqoCzp#3`mcoEUbx-MJ~+$KmW;`kR$f>yU=`L;MXNZYi3ZFKz!ak^{7S zzb5|0M6|iN?k0yN4jY2#>XY*E(*tj($)lA0n$(ut#keHrd%xmwjZEIjDoMMv772?T zH))Ne>tE7wL6Z&yGY(W7jwX0J{Btt5uWgIqB^&kED}_0-FNNsTHp*_$z4ysKgjWSi z+(>(A=PQ7kgKSOAz5|&9dENcuixA}dSHRLuPMeM3(n(4*2FvFk8d+aMZ2WDGoZX+5 z!!K>zrE}dAe@9(0_UfKH&(cV~lz8&wCOlw_ms&g|DSj;)@`4s4oj+UkC)lR?(*^of zTnY^?uxh-k`GHbg@a#mCu@6WG5hUxsDH_5_l;1SnX3XWY=*98joU@DQk94cnDs$jw z_0COz;8IKDZ3%wc(VsxE#>>a@B-sAX95VU0g8T(P*RjSrhJo*@{FF~mALiBN6*=|g zEmvCVjrFvTjdfTZING#V*ks28iR8;`nTkcVzd3u>nz^}!V}IlZ36L2S$Cyr{uBE*) z>F@Cv;rJ0WC9}N8(>%N+>xBmhovM~YZ5Kv!1~rE++wu6}*i2Vnn=_4DVDG)qglhDO zjyPva<@JB0t8G8sA|8`@H?_D`u+oXDsF&jBnK(yp*p%}M@H6(PlTy8AQg`1RT!%u7 zes7a{+BMOU@B01EzKK5#ShY9v`NTktGk-au`O1yMJ~_4Cw` z_S$w4Mt^0+Fg%<>D8-+TOKc=(75o3PZ=y@+&mTlT+i&KTXE@b^y5tlo?0c<1Qcnxg z!1FF-&iJ>o5? zWWqUjjjqlKB`F9Bm}Lk~fLzfeie*N`Yo4;GY~t^4{MS9hiNf@HYM>@Oze3r6&}zj@ zc0xPV;l_&C0uDdf<6S>pE=wdIt<^91n@35~a>>-7v?PfjPRZu$+K~Hly~g<+1Jwq1 z(f3MZ(u|0=ZiGv@FzKZ*m5kI&4RF` zn8q0)RE-)PIN~Syx@qF?&jgJ7g*I9qwZE?TLuht>o z7vp8WPp+2c9_Em?@sar^zPIb++L?`7ZD^9LDcLm5QzQ_dR3ymAL?NUdJZuG}n}o7Y z!6;)~{|cFlJ-P;(8e)rZS1dODsw&C^xL%$?#%)}??bJfLCspM6e$HQUH}3=%{|?}| zi}0tmo3IU`AKmvxzlgfYK)TB&#apG2*O^earO5|>-Q<+vzS^u`mA0=-gg;dEw#pua z-?lsjXoaE#n)l{*PizvSv&(IzKara=hd9)!+oy(84w%Q`a&pB}oHJ|+>)ub^s>0O7Ls8nD_ySgcqKqDe9YtA?+TfH6Hgo@Lv zcC^*sD(IoCttKuWfpHr}9)_;4NwTPaXsdv)9C)43s41Eu4#fz;4)Dlu83{Q2EsyK8T4i zRRpRk_QTR--c>nnGGaQWS*CcORkM!fBL&)DegreFzr*445!Aju4ZwTQ_=}>|=*C zfSCN28SgNlzW5h?nIgQJ+0oMdhY0&v?Ka?>iEf=$FBT%nOwyIz+`BLg zLV({kO2yg;<^pWDlsDlOO^=j3PE|ygX(74=Vt<>Et1JHiQ68hlWLzZ24@<4SN)^X| z*AQ6%oWrz0;gZ~NJ)>6^)sO^0r34~`y%LSJLro@kXauTlZh|zT-Wc_E4168y;qp(& zY^2BaVv9B0V8I7dKh|L?V{!t})-boY9|Ch1TBEZiS#w1ZWE+0WdPIsl*lS8tr?qUm zkfd&~N1_rUp-ft1l~>4wDOELyHDO+rMN88KX4#;0*Mb`I*sV!gP&TkYAw*hL99zw@ zDa8cUXQYy*xBanYHfTi_5}7?n(%b`4%Ds$3eNx*fDmj*HBTY@6TK$=cS1DgZFd-1h zE(pqf{{S&5S5|(+wb}}4zKUT>@raFWqlfHdle8IEkN|r{qB1-T8GH&qajNlZ&*W`^ z5uA!E%pgEtlRBVUghF6vBzoL#(sm7ZyS)(E(b!g^SWea%Y%!A&RbE55%!s+DJda=o zQUExGPWjlJY3d`{8rl+}>J%U%p(1b#q)3@(V>R?%3{z+Zu16?oKSyMd>ok*KrZ`HEp~R z;#HcsKd`C_#gUA(dmLfOprQag)*gmNDUCP52*;>uV5*^sljsGh_97NPXm>08B6EQv zK+=7XjN}iJwhES&D+wy3vBb*kK51ZJ%XSTYAhZE8pytANKvOxD9w&+i`4C8~(@iw@ zP%G&fZfrgM%E`0^G!9Q&hlaQ~MG_JJ02wYfA@FV@eF&iOzl0`>l2Do1 zgw0Dm6;EFRp9Z;dDDYVsk>z426yXT#8R3w`2vOy-Q4Ogj+wRPP=wK>qyut@p9lWw;(PHzea6QBHy!A7m7 zhbTP-@;F<@{?v=UXt0#lY;nUUtx%E`n`pbyJ%Xn4$TZwa3nWw}acnd+`6wi!!(HjC z&|DnC?NUS8BLgCq}}`#vk4s~QjEmk z7Nxo#MvAt@#(oMiNXw0n@;PGm3Raug;zZReO0~H1$I8TXC1*Goi55_3i(^WJaaRCL zN~%qF=#WXX^e~}D=@2`r6|9n4U>p+#r7z^O<5c?&ghf<8$%~DH%p(-X9idfFVp%sL z;59Q&R81f%1uD@+Sz#ZEkmDCg^-=XFH1{IjEV5C}8EfZLiBmRg&(%%S@r^4qjSVLrtXrU!r+}A#$n^0<-OPX882sGl$?PmyK zrjO^V+*35^;UdaIo6S)`QgSp7va&W=3{;s79LZl*9(z=i<%#mN_$PHV>{_~iY8Lqs zF248uiQGBgh#Gh#LT)|!rSemkW03ARztI((2RyfIS8H~WB*A!N*xi<7*9?nQ` zv{U)uew4*!E4TR&auuJS5~^XD3EGtWtOO`(GqB*TBbZ=6_Dw4GG_P@mTIyV6x1~;g@l-E z5i!fVjY@XVJ@Uj(tgls?g*25As@y|DS}g~LIw+VU-m8P{ppDFj-hCTs5Air-otiNm z&(UTyKjGyVIMb-#f@RAz7SSTF^{OMQZbm|Z-E@nr-6Sd}1rVBGd*Bfr+O-kiVH4jZ!f+8b*axpqIS<9XJ+{6q!{qfZ;$@bogk7mqNKFt>UdU z{SL-LBZcxzL$H}BW3gJY*iGXaN)d3hhcN487{Of-f|7zDhh^MRhU{Iz#KEcNX zIX(nSSeqXBWQ=v}6;Liw<$#I>Pekf7A+c6@@Ssh1No~n2_SktlYmm|vwc5u41A*Sc znj|RQC0ImoFC>vKv@r55gB)^AlcT&;i-(N}vUV%T!f~{up+@AFz@o}XxW^L2h!hq^ zu8qN({EG)y)`ec>WW#A-hvK5LfPB+yl}xb5m1CGqV9D-I#P}WLybK}92aA*{xv4R% z22~MmR1eVT=}O#lpu>x$S`0w3PNfwFvSLoeP}C0!T?ivjh+VH?V6l#+uu=4-VtOnk z716I`g^*D{0NSLa-h%4NblMtvuxZj6ptC7eThLnsJ-ZH{eIdph`v;N$PsqlNW|T|Z zql<{|s=_&4#uJ+cQ6peDCgMcR*sx`^t=tvuz$eHGLrZo~N~lx_HAHsO4OrYIZedhC zi>DM8tQ@ddgn zDt}{~N>rSY9$S#Iw=J=X@pIw@1qI_hj@VS+BgqAnj|3$|mZOVgc0$1U zQ|2m+I6ZB=GB}bJo*+#;%zSue(9ja>g1SJDCvv}ffxn+ck}XJ1LVnLuYv5f4;DO$V z>K?hD`waxDnh~)Dv0&tA4k|09KjC3Y&l5naLnu0VT8f(~{P>OXv!nU09*8{a?q%b47 zLHid3D>CdJ(PWiy6|qTN5UHs_Ed%UHRguM8vl1})1=-+6!!3lmsQ&<=8YL%Q{@U+$66Zd0L_)jL61m3lXDqx}@Z7*dvJc5)y#SmK%x_K}Lf4u00C)lC0!&OuWH7 z%p_HgWe$^7L0lHhkkca?K@c2?2-1?JtMuw4Uh+>=AoHvB1ag=j%F$yBIDu^9<8^vrL;DV8(8~3Q?q7L>(&ugpsmnQk3<@aDmmB@)zu*Z5G)M@(?ev}KYc~JwReij#srNe$J zosxb9%180 z#<5UJj8>8sN=XHQ$_hYfU~K0_ayH2+xdV+sp;H(aJyHb=l^xi~EY>QS5_Kuimo}iL zTM+b&sFeO>6b?kF-p*nMvwHsk1d$Y~<)JT9)>Vq!ZJtpJLbCkGe+bp!;OM-K@V>-i z#cc~CS`vwFMJ7v8#3x`<;5J=i#OBWI(v3d!#;JX0A|TSyrm8UQ0Xh^NkqulyHmlK* z^^Ghlo6}(vbIn2%Lkwvt){KWu8&O3En#uEB*3@WDWs@0V#@g!DKY}xZyiAI?%N;$C z29*l*m7};#Of{LfiWuyQ2Q@%YDiw7eRRIMJL?oUtVNUi~j;>a8eoQkr1#Po}V)udj z2|EB^C4b9Hg1j<>T{_ zVoD!zG-qT@cWseU#GM&*Vw72{c3Yk5)Ctt;4{Lj*0=iDqVk{xOgcVvsNkXw+Ugt}ZMxae0a3vzm)YwEA zx=RAw&Os=Np34o#u?Zw@B$Gl4OtloQNn=fDxS=9vP1*2CPKe})U!^``b7<8ZkF|j| z7pgswn3};FO@>=dmoB0zt5Dp}B&BfDje;6^p*MoIqVBme4l5Lh+CXDNo{b8IrUG!V zrrkCJNT_l$u__{LIp|Sq0|#wHtWSzl9?6D+ojEFR8y3a?05mcrlJUsejbdoXb_(e= zt^#Xa`g>CLlN@M0XB)y5RuEW^vW5JXx-OGqSm>d|$jD@m{fL^iY4aA_6cnkQHsumX z(FW%otR!oOCSQY^Wl)1{H&)+sMZwFp3wz3G+(ig%nk7PTp4C#Cy$jYgPvj<++f^V` z0)sWFDe}`xA;7VyD|o9YR|KTQVboPl;{3x>e}lCVqbfr+q&&RnhMpkiurB$r28d)FiAWf$IpVZEoa1mvgwvc7lqC zJ$Z#qR>wf8WNp|QK@q{Ca~+kFGl{;XbDM3)S?v{}D64{7B{D)$W416kG9)bN;H7y~ za5s}76*gfe#Lhc+z=W}~)fpzKvg%qE_iU1=hT&b#RZ}Q)RIC#o$1dsB>)R+yNRN(B31g#JS2 z`^h=7*DOrx5WjfTszAAB>P5FprC22L1@pOMQSxqb3V$QWC9*Pi1QkTfwuO{7W!QaZ zx&oUxCJy+}f)5apVCgv-_;Um91{iYMle?ZFvoU&QtnsPe`edc+=*{DNRJuj)m0=y1 z0!J7_@JP?Z&cTE}5n zmm8|P*m4oV<*PQZLttH@&wzV&qfGc275Wx~8BYReVJxaoMd&(yQH<>j<)&LZo5F?| z#=No~u+uLlij%)Oy-WMDh*4-jf@rd8JB_S@SS}%Z9Mm*rEV8F53Die~>CE+1qO)Oc^p;qBf?!j@R6N6zQ7|I`MCqSx^Vk5RxP1zA@ zqgoQ~LXwWaGW83K8m$0Gi$!F9lNxSp;82<5iT6h$hn2{}3Xb8k%qmPOuI8Ag2;JaAeWbb`t??Z^5;{{N z!owT3mm(->p#VFo5cH!Amj(JWWBX=24x3QAY9dx|6(FRN$yZcWg3XFuLXqC=2^b+n zUxljBslv*5Zp3p`TC{fL!t~Vi93HYE8}7>|DU6n4ua{--FA8J2XXbM=W^&FsNkfD+(O7ca~!g5%1Ng+fwjN1@cp){Kt zABQi)I8p%l*n&`cCiJu^F<_Ev67bRpO_c6sltFXSR&Yjjh_}53HG^lt_=8~3N%#xV zvIgtHL|u*uly2l?6z_2kgq2o$5`_1`v7QS8d>RuOubtHjrh-LfQJ$S`2dOCx?H5t0>2NdYnnTQLPaB3QM${88?2GhO zMzvy!(nYGWz}~VsRiVaRir}+!VMil$>sKlkajMjmOrI*+Nx3M6>j_ZG@}2-veS}^j=`qhB$fp)LfD&qMd+T1FrC|LLv8VH*s+CuiJTx#(TlSz;U#|TNWc^ZtG zq_|*>Cjn7Q>}(9g0eXTuqL9M z2^0ihE~!?-gYqz3DH+AW)NQ!97+pJ>DXDp>Hw-dur^!!qfnIwuO374WyCBg#q5lBL z8}?8xT9CSOU6*0^n1O-EO=nD+AZ0{n*w95xHM@jqJ*1EB1PWrYNy?uj90$L0B_0SD zHe7B=J*X;GGj!@|KZ8JPQ(b+=mpn&F}U00P1}3-3a8aIux}HSi>GJK~)Ei$IM0^d(s{L6Vj7K_o5S z@DjfyD4h1N!irmpeI~dT(qQ#7QWU%b7ft*RQ!2%n9I=PjH*=c`l9EoPk$EBl(aa3p zm8LxEZZ~V2MF!AuOwNVr=4Y>?@Nv3yYT?y(~r7Da$z*{PlfF&ZeiFDv*HOanr z6xkdWZIy1>67E!5-8B}=@=$0sq}WTPJiwk)YS@Od)M`#dI54Edt~Qz@BtUY+oDLBS zRUp~O@m(P(uXZxIx-?@!$XW#EjZW%{2g;n0UP*hIC246W_W?r?;BR(j6Ufc;G!Bq% zH3+b!b-{IIj0g(#71(ENUPx*hQ0TGbVFV(ad5f|LZ3}KW7EXejl>-#Q914U)z28VE zsw7CQFjNUK4rPem#62whT~SN)Qlh=J6R#wjB3jitjnHaPKTzeY_P#gtgEP+qi)si2;i@Ho#GmqlP`9lA^fY${553`3(H;>PEI zubUzrV2vsYCCj-}A}>Kh$rUQ}2Gf!K$+SKQTAK>bPCA3J7ebYeItkY2oTo_gPSUlD zN}6sY7$Q(xQ3QhRGcjRBax-v*j*c!dG{Gi}zyzUMN4b54EtO6&`;)Wvme;f~U1 zC*-LkE~1Qd$Yiw~i|{+4!MRBhpajJEi_)xVyU;1%+qkM^ttp`*t_@yNYC>eDFALNn(ig&<+U!u`5Fnys{m=hvVxX^OPSC#QZ*di zJfGAUjO?;!VN;aPOF1n>qHBnKL}+U>t0QRYNip*zHKfboQ*najRt3I65+zhTkq8}{ zkk_HOnJIzwP0VuOih?>S+d`%V=1oPME$C8gkn=Uf0jcUU)YD^;;!i3C$)(<=~@j?NGC+0;v5cJ0wND{SsUX9UG}5VCGr_Q~oEOk&b&)OO`?J4mGlH)}!^ zWiT-7p{P(u0@NN!z{v`$AX$o}qEHiZl~j8H4{n{YBx|0!2(pdnDpOWeiA|Fz=SZc2 z(`*xbk?}nGA&_EwB9-Br8`gw+vSp#zfLhE#o43Wv(G;}B6tew^1}+X-=cyBt(@xUX zE>hdLkQ#)DJixiSMZ%mYu&j9OMoN< zDg#ptYmu#?M)EVrUI%6}`YA=PVTM92Ll#hrptxh28Th@?GEZZ%NSQ?%ifWeU>~E4c1RIRB1_U0YUraJy1#X69quC5zCftQk zsejo`y;@7?UdvfbjIS6d?2a$U z=lV!|r11eMm$ikpTCz3Z$<0z@MG$}6C8%&qNV==zs)Mn#nSdb8!mNlenrdLP70YtQMo>-T?D7;9FsrF7lsaDEjj|~cf z70?wxwy>y@Zs5)$;Gg`FSl$T=+)+P83Y8`NjP&e5e#226(v*fNSe%NF`HFir6zK~` zg1V0-=`lbl6aaP}J~m`w-)l1EZ(A>297~?V}7|N@hj}-DmS(c|!PQb<* zn8(m+dIUDX{9D0g0vXnbo+0__vWi~yC1V?<4)`6o|>Io`UHK_|iRhGdoO~i_I7?GYuYU)mjNNb$; zO-cej=o=hZgL5)v@Klkp#1nf!teh>0&LKuwuL5XA+zA(cuz@+=5+IubrM<)$%^QSL zK>OIfAWJ4{$v4+PC~1N+$9ke~$s8$CaFSI`o#jU<11=JWBA^*z^lG;XPJI&uIbecG zV*^xd)qnMgxa$&=rjjo-Y)%QbB~c6|v8m#-8i}4MKM-78%A}aRnk6EYNl2P3wIl<- zb7`hhdTuPlk5ofX+7}^P#8G2JeYq^rmWZDvxVT-#m5oI9i~^M|h;cVXa2B-FEd&$r zp9jlQX|HxDvGO-nsPvthJ{$!A@^Olu!wu!8&^h=67M}M)L;1-$eWXK>g;d0L5Zd3Uddm8l+_Cr z=b{hY4PgLzqk&CHb{v)o@+@Eqn(rhBz*As;n}c_oo(jYZ9FpO6%UO$iCL3H;=2w#7)=y%wtM*saTuOYkTjC>lS( zDB0RqNwj{+`y$gO(_>$NJy4ODJfQhW!;7aAUj;gv{xH^TIDSbiXndl292QNgMgIUP z7sAsh*RsIvehQRG${w{J%$OY~t81@ej|kyO zN4A=exhI+6=KYll#ksxz01WQLr}h|(Wfzd+RY3M=K=E|nvN6DqygI|7C`N{QJ@k0= zGxjvSC1?2x9ev6Agb%g>b5@K?=u?Y#`69HFG>^F-MOL;W@+RQeaGNZsijgXsE1PH)`Zx(12CnUT5ifNn zhML(x@^hnp4Ar;P#e9;5J)VcBh7)2yP)d#XOk3uOi(Q4LI#UjGD20=hwQ^V zNW-Ni$uH3R1~xMJ%9?2M0U*RRku;obXC~k&B?@~-|VsdDPjne-B5}`~aj6$Th2v$dek|+3< z6~AQqE2gYNi5bo+=9IGjR&MlE6>Cyr1*{}gxU4BHN>~rD=@qLm)Y}aTiwj|87Xh$B zZ1^B#;;bO8Xl6+4#8_#*T4&G-2tit)gLK_lCx;{8)fsK1kcOV*Y^Mqu!H za5bo&!*fJsltP98*n;H}7Z6T^kqJZHK%yb~csT9!h)BU@e+c_DZQSA;yf>=J7Dz%;ULLEvHvZNUB$B{^_mZgR_W z;L(gsx9y#Q{{R4~knE~>XSza=g(c=eGSbyRRp_ILppE(>JfM=4HAR+?oXbn#2o!Wt z+IeasVWnD(5b2xnO-?OBMJSq(Y+I5wN}d$RYPN7Yox-1DjYW&>f%B1%zEQQWUWzC* z10HagW2dDIr$a@m`68|8roImXAMkrl9|)w3;foyJ*%0M}L-8UtH@U8Z*_-5{Gf6U{ ztjj+mrr5X1wy8(pZG;amCB@Vl7|fD{gS8bTmYw~|Jp>9%d6@J~ifvE%S_P|19KML# z5bu!f-b3pZsozABOz?+42=P>(lum})=+5U{2lN_TDK@jvyBTU|lL+hHLL0bH^ z?)fN{ge?fO`+c$(d5_{%>xb}66Lms*O0pwdgwT_JL}e4Jaeeq7Vq3*DYQF;qD|Dpn z1q2mStwHc1N6;i5q_=YH7t?FdQ9Q~`7EjAopUFeWQZI%!$S&`i`x+HBnnq`8 zGz-0EKQhYRw~$ZgEQUt4Us*=Bnn5~R-H5>`vlr1f%|RNVnwPS4raJIadG|rbHg93< zYgSjbQ{#b%RP_Q!nH^YpFUU_VRF|S6(g5F*a@J`odkWvt84=aAOD=e@E6SrSWKJ>R zm55CxL$w~jZ$Ny9&}|U@lQIji7NER{6PKx|cw(5gmsmre1Q3?2E@Gj{`+Sf7&>vBxT);MJ`K-?5}~RiMjb22=^>8OWsbuCBw24hR>Wa^4xSFmBhS%(;5uux3ZDpHX9J4VcQwsFpy1n{ro1HF>9kV$rHlAaK?Q>`80+DS9kV7`MtMAq&cDK`)jFSE1;Q zr4va>dV2>63LZ*_aDjE6y2n%xcBhiw1qf`6i#1kEPo~sLmE7jyNXmmx7K`U->P5-6 zRz*dZ2$8Of9Byjq8BDk#ca}evZ?Lhb5HhENWe~9#HGCL}=Eg#yB}q9NuJU+QbQDm3 z7(cm*kvKkIFfee6=`>U&;_eTF4oYE@=$@atEr66wKLXX+NOuYBDnfe;z_(12gJJRF z4&{2V-h)+vHxrmy@}ebdM3~EPB+Ob4Kb9a=Dwu?K8;nGOhm4=Vn)U`NTl!Om{MWorYGVtLqfPmwpk3UA0&7jtqm$fC86Q|Se7A~oB20O-4Z%3u3XjY9!aT>NC@8c zB>a!w=-e;8OQ?-eUxS9z2CawQk#}pLRTa;EfD>6x<-=_9Q! z5T`&pfMo#~43X3f8y&j%Z0rCDDsr`5dt=`qzcR)AF-a6AauzHIq(>RJc7tj~ zR2Iqa2l|n2R)HXf#})--kI1Zv5>_@&JRRMh-bmqFhwRo92ZnHnsXps*AZol!@{- z!%i&ioNr-C4)(MkgllQWJ_Xjy#D$7Vv-v^Sw1JLLo~qmKGwR5p#w#b$3L)VpnB{Gj z+Z3vWhRX7$85_tCl_BpWAo9g}tkk5vp)(pF{DVj~6Z9{s8h!!{JOwR7Wfc)hMADs` zLJ&OYAX=?WGF&6szarG}gmOi6SalBpc#0&JXqi^%uUvrxsp8a7`9ooe$0&n2E{yBe zq9PMSSCY3P&O~YkiGIf2u%eQOnXtdbFXT%M@TcIvPYsi!Xy7O!b4KH_z|yfa+p#H? zwU;R>ImqSAT?JAzyuiVsHCKQwYHEc!uq5x3zX1x9Q?AKtvLvVEo>$l%S+dqpPRJgk zCe4;W@(L&#;so|LIj04|w-r4BL)hB`YNU>_7SjEWj_SB~R~oHV>>wr^pmw24;FWpV-%Ng;Q7g4I0&f^&X&XqiDnQc9Mhp68YEogeQEI zOXQQ;8fdDgx50f4puHhlPqDuNPFGlX{s;!8Fw;HZ@D-l8;p>^dVkoqR+@kFCzZ{CBaI_ zK@*&g^oFix7VZh_U}YC_jq0m?jMSSOGA4x)EyepifFmuVCl&BlovAJhRf30aEkTk_ zn;k0BaDN4cQ0v6Zgmt4kR)v6w@_ zMe>Q)IJ-o-C;6<4{S=c_ zgeixzk#()=ANa=tUpMqJX+Fo)P!uSC%am0Iz)toNTgo#7S}a>aM!zSZD~W4vqiS|c z67JW7(4ZufGs!CjSk4Afeuma@D0vVhL%2;%&5g8nWMJU$+MyxTth295MBL>U55RHG zA_x?1nD)PQp}YRE%nkU2RFX%tIj|aVM3ju+qmtZso#qY_4uix@L#mSVu%Oi zaJtnwpMeJ4tqO^-lYULOr1|hljcVlI1RYD#(vl;F5ZO7f6YyHXv61Wpz;RsGT%Dy9 zn}X>Z?kPzIQ3Aq|2lpn-Ds?{sgpGKqO)6V)laBKp#P!{i^i&i)DnR{5t%;H*ZoQb+ zQdz7l?8H2VT=Iuh)47up@dF+xgDSU^9yLV6F3-TRIm$_PRJlOTPc;P8C0x*U=wkvE zVEzPo05f`$4kgMB9*T-Q06KKbElIf$W$jf92yT_8$}Tw+K|QE0FQ?`qGlhT??;``9 z+mEtSo-#`?n92=~7L{^8trVDJik%^U0!PXe&I}BWWFdDNY`CisC8RK68leeWn7LME z0&0weg~%Br$pg8j%tJSl4qaYOh?sO423|HbMRY9=2Wl?pABTcBYHJo8DWei@w}Dxp z;Ur9hXLNtX_!zj>tb!$_l~7m8ts++^q_p7h1^~j(MF^%r!@!@a!wJTGrEFG-A0(S8 zsHat~P1a%!pTKz)_8C6df_0?Gtw@RE!YbZk6>q?nGSysMwwf5-^H1Eo_QeO`g6C z9m9wrl`N%x!aF|-i{A8`YuSX(#vQQdlo4}x+>&X*tIT(k`SzBRz!~+E(Ktq zheiCMeOC&Jx4FC#91xrKOS1U<0}cKogp?~0lJZGmiCg5P&k;X|*o_<*fyS?-M<}@$ zYy1lmVqZT4uJEoqo@KPY>5ZDV0uN}6B9 zqJoA^?hD{)V%gx7oh>IL`ks(|hZ^);z6P~zpR$9ucEB7Ct{|#YmjixRu?y-C87$!q|NcMDUI4AV&LpjtCF?cpjJ0C zu7V-J?P7Qw;?9H)LX!oR2aP!@Nyto;aL16%3etoMjf{zEJ<|u%i&F6(sIHlCEg(|?KNx)|2E(@>`omHbR8t%_~5+Q-ijCF=G z-tc#f6DzxjbwQMG1pH^BTteMF?;fNrR-crChBhXALO4GzG=9W0W0Hou9FC&!tEqSq zV0g@va%1og;-j4%x1Y&L!vN9QgDHGDlqep7QkK-HC~rr$#Y+4kQnYAZC~71kk`3Kr zuSGmX3;jgo?3~T>l%v3ciDgXW&cQaNO@*W#rBUdLD&a1!t*ThBP}r0T?tv^u%xa`S zqTF^hC2{Jyz%$6ZuaR2ej)b*4tMY6js*StVo(L^>tf@|TmJLZKCE3Zgk^cZ;%|go6 z?0}nYZ*(WD(PaITQyE{0zygTBc3Une>KwSlp?WI;j+dgnDWj#X%wNWBUGg;5G-hHM z=&LuS0wi`@8+jxzOo{SA*IiOB)**_r3iux<8Y<6Z3N=CgqN;3GkdYEMNGe;o2sN$< zxb{Kjh%d2a3rN4Bf(?Gcc+9s^dSjX)m2Z>PBAX~-O~&+yR_=lS01pTpACKE)zTiIw z%@woe3Arl?)9DGkKwijy$4nOfxhL#;k%AKTexg>CUt;G)-XEe%IHY(qj$`~A>D9JC z&m~}M@K{Dmi&6ZDi9Y00a;gF=2z(AJyrd%KYm4IOT2FigcbZF|fifUylMD+Oi8-`5 zCgjm5cJWz0`c0b&5JjT(R6xfXet}PnL*SVK+MN36gsM|z1Zs)1ksSuqRRYob4k$K< z(^{e#Z6F^^CK7PjvBS}4?Gk1*qG5I_>M6o@}z%yci z7iTqN0}H$_lt-)na%t_!n5O^ z5TQe<5?TjyXmEa@mG;^8Qe!G!8S>yg79~ICM>ctl9!Z~iX1fr9MMKQT#rO+KQ2P{&GwXosGTAf zkutB!$XeZsUks^jFB1HS>KG=$ZUU>_k36CBClmhwA`z3Cd{Cynn}?QgU~NPBAirTR z!J6zi3~0I$dy=Mwtb!(hXnc$gxO|Z$5)_YK-_gU6qB$|#l0sbCY(-tTne=XGKEx&b zKp2rm_Lac-kgpDAOz>6pL_PAQ>_{>!k{%Noou?nOkwob+1DLrPh|#cQ@+aWoR$oFh zl%Fm=8>I8a$kN2_ks1rw_=YG-Pc$gJA|ZmulwL?hKe`H&g|-p%`D*9ppL2sPIGSU$M6Q!m zrR2R1IqpRD=9?UkR3ebgnkZvZiGKj?WQXMV$o~LklD+0bgl@=^L&W!L8Je5YOQ~Tb zn>6GlOXR8NF8&cH-wbysBrQ^im^5ahpTP(i4`e>M&BMKH=SDO@8&k2i5Zf=1o~`cB znrhX#W6@v5Xp> z$H1dgbH{PQ%rXq@^#OD@En#OtT19dvBF61xL&=n_3VrD+k-u4}d^{SeACAjL%&k_U zfu{_W)OIG&vO~(Xu4qW8yc-u;R7K&uB217wXcg6b45g9E3_Rncl$p+J5?6YU;xzC~ z(R%qvU9Xb<1?bu!yEPepTSzN;%Nxg%V@tG9@Wtc;Eb~1{1D~*$H>3BCWsN8 z@<_e?xk{_5p<5pC$^M-ADE`z(v1OAQy1g)ZF6dhplL)Pc-|Tw?kE1CIs~eA`1{m36 z1##0g2{$toRq-Py$4#$+ZUUY}>(5p^kXS6=!jvI9$E(6Zd{wH%P+_`ETJGZbALkIG z?2vjPa8(AYf+wWIwfYc4@6dv4t&>CE)U5bBVz0^EaSApPMdUeTHQDwdWmAG6#k9TX zfJUh?Y3o2sz<}*FOYA*8pCk7La)4XjWja;BewzK1D2j`wWJ zJ7P(`(2AbT4~AA1V;S;lj1&4KQ_{&`O#uF6K{pEyoy}ImZo&O z#CI>Yy$$w)AEI=lErmZZZtsW^Id4KoFL|XUr-`MG=QSx!{T#tm9Uy?`Hi(atWnnV( zL+*|w{slkcQbH@KLi8LB66j_`-j@`nDvrV=_i-+Yf%mZS0MEdsuk1?IDkI7%F0n)= zR%iqj!3xw<(K&+M?Sx&y0u4_rtZjs!fe(0~`_76CR38-<)b>KHcWL?|J{jxas28yN zkdT|XWi=ep`5vcjO^w!tLHaLLu>zmcWs-<{u(M*G#cA$*D$s6!s-t&%oEFC1`y9M`8$w)Orkx7E-iS3%RC)*^?iUA+{K4ip#S zrqcQiJEMo#?Nh+L7NjW@40wwWkRwUGC=kTKw{mjw8i7qM6GPcv75GA?#7h0gdbpZ7 zJfzBQnKYi*^#enX)kv>)OWBlKDD~HWmDOHk30@3!@J6eXL2L}0}~Sd5fyLRYy$ ze6T8@pMwawJ4N(~<4UD_)T5T}GGx4xV^vf{1FeDO5#f~-zCp)Bsr#Xo#nt#oN#@i( zPsG_Cr6)0o2b)A0U3M~)8xn6rgA)jb+mxN+jX{-u(NWD) zQ-+MtD?DqF{{U)B^jucZYN)7G^*-809?f0KMn3FL`@`*SKF^mR;@k+31r&kjiWynJ zyS$U!GEn=0;BnZZTg;eWg37XLjcoyK|qh+znLsy3rUcl6S z7SV4^)otoI&S^s&yY!-W)xLxe@Z&-QO1lYibqHJ~H+n5G$;xwfWb{!~pnk-tfkovw zw;)$@bkSQ~={;~uGA4$`u-OCJH+S707jg>S*js-m3IfUeo!JAen#?w&oFm3P3-4Sa^7tG=Hl%RhE=6aWQGE^3!b_#&UFe!}(l3(_b^(qn`pN9dW} zwyyO=nB3-GS8@4c#TMlgw2BeGnJP}yJ1u3^ZA<2QN>EE=;(6deYhk?ZPM-%Bf^vxY zJskf4;Uzh(q2HL1Cq=7S8npp2y&AnDp+TnVm)LDAY9=-}eX$a75yTN4@cbC?Jb z+4lYfeT6{1tK{xv${P&wvWj1#n3GqdDW;u*N(`$}A{i*@D2K_G z8eQaP;5kAs4ATlbDO7_1*lQj`+q+0}aXBO74S>{;gYI02*q;IP%j&jv66nx7aZQD! z6K4#9(kep45d0aIL5k=&3n>XFF?!a*lQM;D&ryMaT|i2Mck7^3D^vncGSII31M z`zyk5aL~&x=0<8S z&yAjWku)G{yC{7|hd=#F7sMBNOtxmcXneJm3b1I#c_2X>!v6qs_8RS7_zA9dHZ@d+ zkKFzu8VYD?sQVo`dJpXGC=6u=@bq`U7X>wF&*ZaC$$bm_5g{*OVxcrAxL+hrdmx4hC zI>xkovU0ntOTe?o@q@5pV?uR;VKrO(5U1|h{Fp7JGAQx@h0Pe)g-@h%%LKSplAEZK zTb4giMQUUMCEY~Ied)192oQf@l_*ukQXVFpw;v<^$8C^NXdDoc9AtWf;aoye;*#)q zcp@v4V9;YZ`I47xFUWzMvQ}%9BHutuNhp`h)vrN*Bj6&i#c+f=a(61#)kmRJhZXQJ zXfbcOMTqe8k0K;*P$EWBty>2QL`1_?R;u|E*_nh`+&Q0?Xl_T&CixTK_Cx2mY?85( zuxn6bKn`OiT?KiA8Zd{J{&V-!^{z1U2

    W@!%8iX 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%0A^ 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 GkN?^EkM&6a literal 0 HcmV?d00001 diff --git a/user/pages/contact-temp/page.md b/user/pages/contact-temp/page.md new file mode 100644 index 0000000..ebb8a90 --- /dev/null +++ b/user/pages/contact-temp/page.md @@ -0,0 +1,6 @@ +--- +title: Contact +published: true +--- + +Je travaille sur les formulaires, en attendant vous pouvez [m'envoyer un mail](mailto:hello@boyatzon.ch). \ No newline at end of file diff --git a/user/pages/contact/emailsent/page.fr.md b/user/pages/contact/emailsent/page.fr.md new file mode 100644 index 0000000..a8e675f --- /dev/null +++ b/user/pages/contact/emailsent/page.fr.md @@ -0,0 +1,9 @@ +--- +title: 'Mail envoyé' +cache_enable: false +process: + twig: true +--- + +Merci pour votre message ! +Je vous répondrai dans les plus brefs délais. \ No newline at end of file diff --git a/user/pages/contact/form.fr.md b/user/pages/contact/form.fr.md new file mode 100644 index 0000000..5c09dbf --- /dev/null +++ b/user/pages/contact/form.fr.md @@ -0,0 +1,53 @@ +--- +title: Contact +form: + name: contact + fields: + name: + label: Name + placeholder: 'Votre nom' + autocomplete: 'on' + type: text + validate: + required: true + email: + label: Email + placeholder: 'Votre adresse mail' + type: email + validate: + required: true + message: + label: Message + placeholder: 'Votre message' + type: textarea + validate: + required: true + g-recaptcha-response: + label: Captcha + type: captcha + recaptcha_not_validated: 'Captcha not valid!' + buttons: + submit: + type: submit + value: Envoyer + reset: + type: reset + value: Reset + process: + captcha: false + save: + fileprefix: contact- + dateformat: Ymd-His-u + extension: txt + body: '{% include ''forms/data.txt.twig'' %}' + email: + subject: '[Site Contact Form] {{ form.value.name|e }}' + body: '{% include ''forms/data.html.twig'' %}' + message: 'Merci pour votre envoi !' + display: emailsent +published: true +--- + +# Contact form + +Some sample page content \ No newline at end of file diff --git a/user/plugins/.gitkeep b/user/plugins/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/user/plugins/admin/.editorconfig b/user/plugins/admin/.editorconfig new file mode 100644 index 0000000..6375a81 --- /dev/null +++ b/user/plugins/admin/.editorconfig @@ -0,0 +1,17 @@ +# EditorConfig is awesome: https://EditorConfig.org + +# top-most EditorConfig file +root = true + +# Unix-style newlines with a newline ending every file +[*] +charset = utf-8 +end_of_line = lf +trim_trailing_whitespace = true +insert_final_newline = true +indent_style = space +indent_size = 2 + +# 4 space indentation +[*.php] +indent_size = 4 diff --git a/user/plugins/admin/.gitattributes b/user/plugins/admin/.gitattributes new file mode 100644 index 0000000..c5ef731 --- /dev/null +++ b/user/plugins/admin/.gitattributes @@ -0,0 +1,8 @@ +# Linguist Normalizer +*.yaml linguistic-language=PHP +*.twig linguistic-language=PHP +**/gulpfile.babel.js linguist-vendored +**/webpack.conf.js linguist-vendored +**/js/*.js linguist-vendored +**/js/*.json linguist-vendored +**/css-compiled/*.css linguist-vendored diff --git a/user/plugins/admin/.github/FUNDING.yml b/user/plugins/admin/.github/FUNDING.yml new file mode 100644 index 0000000..e84f52b --- /dev/null +++ b/user/plugins/admin/.github/FUNDING.yml @@ -0,0 +1,8 @@ +# These are supported funding model platforms + +github: # Replace with up to 4 GitHub Sponsors-enabled usernames e.g., [user1, user2] +patreon: # Replace with a single Patreon username +open_collective: grav +ko_fi: # Replace with a single Ko-fi username +tidelift: # Replace with a single Tidelift platform-name/package-name e.g., npm/babel +custom: # Replace with a single custom sponsorship URL diff --git a/user/plugins/admin/.gitignore b/user/plugins/admin/.gitignore new file mode 100644 index 0000000..ddab4e4 --- /dev/null +++ b/user/plugins/admin/.gitignore @@ -0,0 +1,17 @@ +themes/grav/.sass-cache +.DS_Store +crowdin.yaml + +# Node Modules +**/node_modules/** +themes/grav/js/admin.js +themes/grav/js/vendor.js +themes/grav/js/*.map +.idea + +tests/_output/* +tests/_support/_generated/* +tests/cache/* +tests/error.log +/crowdin.yaml +.vscode diff --git a/user/plugins/admin/CHANGELOG.md b/user/plugins/admin/CHANGELOG.md new file mode 100644 index 0000000..d0f8820 --- /dev/null +++ b/user/plugins/admin/CHANGELOG.md @@ -0,0 +1,2560 @@ +# v1.10.36 +## 09/08/2022 + +1. [](#bugfix) + * Fixed `fieldset.html.twig` not rendering with `markdown: false` [#2313](https://github.com/getgrav/grav-plugin-admin/pull/2313) + +# v1.10.35 +## 08/04/2022 + +1. [](#improved) + * Improvements in CodeMirror editor in RTL mode [#359](https://github.com/getgrav/grav-plugin-admin/issues/359), [#2297](https://github.com/getgrav/grav-plugin-admin/pull/2297) + +# v1.10.34 +## 06/22/2022 + +1. [](#improved) + * Exposed `UriToMarkdown` util (`Grav.default.Utils.UriToMarkdown`) in admin, to convert links/images +1. [](#bugfix) + * Fixed `Latest Page Updates` permissions [#2294](https://github.com/getgrav/grav-plugin-admin/pull/2294) + +# v1.10.33.1 +## 04/25/2022 + +1. [](#bugfix) + * Reverted [PR#2265](https://github.com/getgrav/grav-plugin-admin/pull/2265) as it broke sections output + +# v1.10.33 +## 04/25/2022 + +1. [](#new) + * Require **Form 6.0.1** +2. [](#improved) + * Added support for a single `field:` vs `fields:` in element form field to store a single value to the option field + * Allow new media collapser logic to configure different cookie storage name location via `data-storage-location` +1. [](#bugfix) + * Fixed nested element form fields + * Fixed `columns` and `column` fields with `.dotted` variables inside to ignore columns and column names + * Fixed initial elements state not being restored + +# v1.10.32 +## 03/28/2022 + +1. [](#new) + * Require **Grav 1.7.32**, **Form 6.0.0**, **Login 3.7.0**, **Email 3.1.6** and **Flex Objects 1.2.0** +2. [](#improved) + * List field: Support for default values other than key/value [#2255](https://github.com/getgrav/grav-plugin-admin/issues/2255) + * Added question icon to admin fields with help text [#2261](https://github.com/getgrav/grav-plugin-admin/issues/2261) +3. [](#bugfix) + * Fix nested `toggleable`: originalValue now checks with `??` instead of `is defined` + +# v1.10.31 +## 03/14/2022 + +1. [](#new) + * Added new local Multiavatar (local generation). **This will be default in Grav 1.8** +2. [](#bugfix) + * Patch `collection.js` [#2235](https://github.com/getgrav/grav-plugin-admin/issues/2235) + +# v1.10.30.2 +## 02/09/2022 + +2. [](#bugfix) + * Fixed regression preventing new `elements` field from saving its state + +# v1.10.30.1 +## 02/09/2022 + +1. [](#improved) + * List field items will now require confirmation before getting deleted + +# v1.10.30 +## 02/07/2022 + +1. [](#new) + * Require **Grav 1.7.30** + * Updated SCSS compiler to v1.10 + * PageMedia can now be collapsed and thumbnails previewed smaller, in order to save room on the page. Selection will be remembered. + * DEPRECATED: Admin field `pages_list_display_field` is no longer available as an option [#2191](https://github.com/getgrav/grav-plugin-admin/issues/2191) + * When listing installable themes/plugins, it is now possible to sort them by [Premium](https://getgrav.org/premium) +2. [](#improved) + * Updated JavaScript dependencies + * Cleaned up JavaScript unused dependencies and warnings + * Removed unused style assets + * Plugins list rows now properly highlight on hover, no more guessing when wanting to disable a plugin! +3. [](#bugfix) + * Fixed `elements` field when it's used inside `list` field + * Fixed issue uploading non-images media when Resolution setting enabled in Admin [#2172](https://github.com/getgrav/grav-plugin-admin/issues/2172) + * Prevent fields from being toggled incorrectly by adding originalValue to childs of fieldset. [#2218](https://github.com/getgrav/grav-plugin-admin/pull/2218) + * Fixed persistent focus on Folder field when Adding page (Safari) [#2209](https://github.com/getgrav/grav-plugin-admin/issues/2209) + * Fixed performance of Plugins / Themes sort in the installation table + * Fixed list field with key/value pairs throwing an exception due to bad value [#2199](https://github.com/getgrav/grav-plugin-admin/issues/2199) + * Fixed disabling/enabling plugin from the list breaking the plugin configuration + +# v1.10.29 +## 01/28/2022 + +1. [](#new) + * Require **Grav 1.7.29** +3. [](#improved) + * Made path handling unicode-safe, use new `Utils::basename()` and `Utils::pathinfo()` everywhere + +# v1.10.28 +## 01/24/2022 + +1. [](#bugfix) + * Clean file names before displaying errors/metadata modals + * Recompiled JS for production [#2225](https://github.com/getgrav/grav-plugin-admin/issues/2225) + +# v1.10.27 +## 01/12/2022 + +1. [](#new) + * Support for `YubiKey OTP` 2-Factor authenticator + * New `elements` container field that shows/hides children fields based on boolean trigger value + * Requires Grav `v1.7.27` and Login `v3.6.2` +2. [](#improved) + * Added new asset language strings + +# v1.10.26.1 +## 01/03/2022 + +3. [](#bugfix) + * Fixed an issue with missing files reference by cached autoloader + +# v1.10.26 +## 01/03/2022 + +2. [](#improved) + * Updated SCSS compiler to v1.9 and other vendor libraries + * Fixed various deprecation warnings + * Localized dialog buttons and icons [#2207](https://github.com/getgrav/grav-plugin-admin/pull/2207) + * Updated copyright year + +# v1.10.25 +## 11/16/2021 + +3. [](#bugfix) + * Fixed unescaped messages in JSON responses + +# v1.10.24 +## 10/26/2021 + +1. [](#new) + * Require **Grav 1.7.24** +2. [](#improved) + * Use new `Http\Response` rather than deprecated `GPM\Response` +3. [](#bugfix) + * Fixed an issue with invalid HTML throwing errors on HTML security scanning + * Clear cache when installing plugins + +# v1.10.23 +## 09/29/2021 + +1. [](#new) + * Updated SCSS compiler to v1.8 +2. [](#improved) + * Updated with latest language strings from Crowdin.com +3. [](#bugfix) + * Fixed images from plugins/themes disappearing when saving twice + +# v1.10.22 +## 09/16/2021 + +1. [](#new) + * Updated SCSS compiler to v1.7 + +# v1.10.21 +## 09/14/2021 + +1. [](#new) + * Require **Grav 1.7.21** +2. [](#improved) + * Added a note about UTC times in scheduler AT syntax help + * Now using a monospaced text-based scheduler AT field in scheduler for simplicity + * Improved `Admin:data()` and `Admin::getConfigurationData()` to be more strict +3. [](#bugfix) + * Fixed configuration save location to point to existing config folder [#2176](https://github.com/getgrav/grav-plugin-admin/issues/2176) + +# v1.10.20 +## 09/01/2021 + +1. [](#bugfix) + * Fixed regression `Argument 4 passed to Grav\Plugin\Form\TwigExtension::prepareFormField() must be of the type array` [#2177](https://github.com/getgrav/grav-plugin-admin/issues/2177) + * Fixed `X-Frame-Options` to be `DENY` in all admin pages to prevent a clickjacking attack + +# v1.10.19 +## 08/31/2021 + +1. [](#new) + * Require **Grav 1.7.19** and **Form 5.1.0** and **Login 3.5.0** + * Updated SCSS compiler to v1.6 +2. [](#improved) + * Updated forms and nested fields to use new form logic + * Admin form now use layout `admin`, meaning you can create admin specific field templates by `forms/fields/myfield/admin-field.html.twig` + * Stop using `|tu` filter, Grav already has the same logic in `|t` for admin + * Remove unneeded escapes + * Allow removal of plugin when disabled [#2167](https://github.com/getgrav/grav-plugin-admin/issues/2167) +3. [](#bugfix) + * Fixed missing values in `fieldset` form field + +# v1.10.18 +## 07/19/2021 + +1. [](#improved) + * Add logic to allow fieldset form field inside a list field [#2159](https://github.com/getgrav/grav-plugin-admin/pull/2159) + +# v1.10.17 +## 06/15/2021 + +1. [](#improved) + * Added timestamp as title in logs date [#2141](https://github.com/getgrav/grav-plugin-admin/issues/2141) + * Use `base64_encode` filter rather than function + * Composer update +1. [](#bugfix) + * Fixed missing `Remove Theme` button when the theme is inactive + * Update taskGetChildTypes() to use Flex Pages (works without the plugin) [#2087](https://github.com/getgrav/grav-plugin-admin/issues/2087) + +# v1.10.16 +## 06/02/2021 + +1. [](#bugfix) + * Fixed issue with some elements overflowing closed list items [#2146](https://github.com/getgrav/grav-plugin-admin/issues/2146) + * Fixed configuration not fully updating on save [#2149](https://github.com/getgrav/grav-plugin-admin/issues/2149) + * Fixed display issue with "+ Add Page" and picking a different route [#2136](https://github.com/getgrav/grav-plugin-admin/issues/2136), [#2145](https://github.com/getgrav/grav-plugin-admin/issues/2145) + * Treat WebP as image when inserting / drag & dropping [#2150](https://github.com/getgrav/grav-plugin-admin/issues/2150) + +# v1.10.15 +## 05/19/2021 + +1. [](#new) + * Updated SCSS compiler to v1.5 +1. [](#improved) + * Updated node modules dev dependencies + * Package.json scripts cleanup + * Recompiled JS for production + * Use `base645_encode` filter rather than function + * Editor: Do not assume images URLs are going to be `http://` (wrong assumption plus not SSL) [#2127](https://github.com/getgrav/grav-plugin-admin/issues/2127) + * Improved Theme Activation + Plugin Enabled logic to ensure configuration is not displayed unless activation/enabled state. Fixes [#2140](https://github.com/getgrav/grav-plugin-admin/issues/2140) +1. [](#bugfix) + * Fixed issue with slugify where single curly quotes in titles would translate to straight single quote [#2101](https://github.com/getgrav/grav-plugin-admin/issues/2101) + * Fix z-index issue with fullscreeen editor (and toolips) [#2143](https://github.com/getgrav/grav-plugin-admin/issues/2143) + +# v1.10.14 +## 04/29/2021 + +1. [](#improved) + * Added a `min_height:` option for list field +1. [](#bugfix) + * Fixed z-index issue for tooltips in sidebar + * Fixed custom files being overridden during theme update [#2135](https://github.com/getgrav/grav-plugin-admin/issues/2135) + +# v1.10.13 +## 04/23/2021 + +1. [](#new) + * Added refresh action button for Folder to ease the regeneration of the slug based on the title. Available also as API entry `Grav.default.Forms.Fields.FolderField.Regenerate()` [#1738](https://github.com/getgrav/grav-plugin-admin/issues/1738) +1. [](#improved) + * Removed sourcemaps references from fork-awesome.min.css [#2122](https://github.com/getgrav/grav-plugin-admin/issues/2122) + * Support native spell checkers in CodeMirror editor [#1266](https://github.com/getgrav/grav-plugin-admin/issues/1266) + * Added new 'Content Highlight' color to presets + * Copying Pages now prompts a dedicated modal that allows for picking title, folder name, parent location, page template and visibility [#1738](https://github.com/getgrav/grav-plugin-admin/issues/1738) + * Updated with latest language translations from Crowdin.com +1. [](#bugfix) + * Moved preset CSS compile to earlier in the process to ensure compilation happens in time. + * Prevent Save actions from Flex Objects to trigger the unsaved unload notice [#2125](https://github.com/getgrav/grav-plugin-admin/issues/2125) + * Fixed audit vulnerabilities in module dependencies and house cleanup [#2096](https://github.com/getgrav/grav-plugin-admin/issues/2096) + * Fixed issue preventing Drag & Drop of media files while in Expert Mode [#1927](https://github.com/getgrav/grav-plugin-admin/issues/1927) + * Fixed broken link colors in `preset.css` which was causing issues with tabs and dropdowns + * Fixed permissions for page related tasks and actions + * Fixed permission check for configuration save [#2130](https://github.com/getgrav/grav-plugin-admin/issues/2130) + * Fixed missing/wrong page categories and tags when multi-language support is enabled [#2107](https://github.com/getgrav/grav-plugin-admin/issues/2107) + +# v1.10.12 +## 04/15/2021 + +1. [](#bugfix) + * Regression: Fixed broken plugin/theme installer in admin + * Fixed error reporting for AJAX tasks if user has no permissions + * Fixed missing slash in password reset URL [#2119](https://github.com/getgrav/grav-plugin-admin/issues/2119) + +# v1.10.11 +## 04/13/2021 + +1. [](#bugfix) + * **IMPORTANT** Fixed security vulnerability that allows installation of plugins with minimal admin privileges [GHSA-wg37-cf5x-55hq](https://github.com/getgrav/grav-plugin-admin/security/advisories/GHSA-wg37-cf5x-55hq) + * Fixed `You have been logged out` message when entering to 2FA authentication due to `/admin/task:getNotifications` AJAX call + * Fixed broken 2FA login when site is not configured to use Flex Users [#2109](https://github.com/getgrav/grav-plugin-admin/issues/2109) + * Fixed error message when user clicks logout link after the session has been expired + +# v1.10.10 +## 04/07/2021 + +1. [](#bugfix) + * Fixed missing `admin-preset.css` in multisite environments + * Regression: Fixed broken 2FA form [#2109](https://github.com/getgrav/grav-plugin-admin/issues/2109) + +# v1.10.9 +## 04/06/2021 + +1. [](#new) + * Requires **Grav 1.7.10** +1. [](#improved) + * Better isolate admin to prevent session related vulnerabilities + * Removed support for custom login redirects for improved security + * Shorten forgot password link lifetime from 7 days to 1 hour + * Updated with latest language translations from Crowdin.com +1. [](#bugfix) + * Fixed issue where Adding a new page and canceling from within Editing would alter the Parent location of the edited page [#2067](https://github.com/getgrav/grav-plugin-admin/issues/2067) + * Fixed and enhanced Range field to be Lists compatible [#2062](https://github.com/getgrav/grav-plugin-admin/issues/2062) + * Fixed ERR_TOO_MANY_REDIRECTS with HTTPS = 'On' [#2100](https://github.com/getgrav/grav-plugin-admin/issues/2100) + * Prevent expert editing mode from anyone else than super users [#2094](https://github.com/getgrav/grav-plugin-admin/issues/2094) + * Fixed login related pages being accessible from admin when user has logged in + * Fixed admin user creation and password reset allowing unsafe passwords + * Fixed missing validation when registering the first admin user + * Fixed reset password email not to have session specific token in it + * Fixed admin controller running before setting `$grav['page']` + +# v1.10.8 +## 03/19/2021 + +1. [](#improved) + * Include alt text and title for images added to the editor [#2098](https://github.com/getgrav/grav-plugin-admin/issues/2098) +1. [](#bugfix) + * Fixed issue replacing `wildcard` field names in flex collections [#2092](https://github.com/getgrav/grav-plugin-admin/pull/2092) + * Fixed legacy Pages having old `modular` reference instead of `module` [#2093](https://github.com/getgrav/grav-plugin-admin/issues/2093) + * Fixed issue where Add New modal would close if selecting an item outside of the modal window. It is now necessary go through the Cancel button and clicking the overlay won't trigger the closing of the modal [#2089](https://github.com/getgrav/grav-plugin-admin/issues/2089), [#2065](https://github.com/getgrav/grav-plugin-admin/issues/2065) + +# v1.10.7 +## 03/17/2021 + +1. [](#improved) + * Force height of Flex pages admin to fit available space + * Updated languages from Crowdin.com + * Better field type definitions for file, pagemedia, filepicker and pagemediafield +1. [](#bugfix) + * Fixed error when checking missing log file [#2088](https://github.com/getgrav/grav-plugin-admin/issues/2088) + +# v1.10.6 +## 02/23/2021 + +1. [](#new) + * Vastly improved support for RTL languages [#2078](https://github.com/getgrav/grav-plugin-admin/pull/2078) +1. [](#improved) + * Flex pages admin better uses available space [#2075](https://github.com/getgrav/grav/issues/2075) +1. [](#bugfix) + * Regression: Fixed enabling/disabling plugin or theme corrupting configuration + * Fixed unnecessary closing bracket causing JS error [#2079](https://github.com/getgrav/grav-plugin-admin/issues/2079) + * Fixed wrong language in Admin Tools [#2077](https://github.com/getgrav/grav-plugin-admin/issues/2077) + +# v1.10.5 +## 02/18/2021 + +1. [](#bugfix) + * Regression: Fixed fatal error in admin if POST request has `data` in it [#2074](https://github.com/getgrav/grav-plugin-admin/issues/2074) + * Fixed Admin creating empty `user/config/info.yaml` file (the file can be safely removed, it is not in use) + * Fixed ACL for users with mixed case usernames [#2073](https://github.com/getgrav/grav-plugin-admin/issues/2073) + +# v1.10.4 +## 02/17/2021 + +1. [](#new) + * Added support to include new page creation modals in other pages by using `form_action` twig variable [#2024](https://github.com/getgrav/grav-plugin-admin/pull/2024) + * Updated all languages from [Crowdin](https://crowdin.com/project/grav-admin) - Please update any translations here +1. [](#improved) + * Removed `noscript` template, because 2021... + * List field: added new `placement` property to decide wether to add new items at the top, bottom or based on the *position* of the clicked button [#2055](https://github.com/getgrav/grav-plugin-admin/pull/2055) + * Ensure admin default CSS styles load **first**, and presets loads **last** + * Tweaked handling of uploaded files [#1429](https://github.com/getgrav/grav-plugin-admin/issues/1429) + * Provide media object and filename in `onAdminAfterDelMedia` event [#1905](https://github.com/getgrav/grav-plugin-admin/pull/1905) +1. [](#bugfix) + * Fixed case-sensitive `accept` in `filepicker` field + * Fixed HTML Entities in titles [#2028](https://github.com/getgrav/grav-plugin-admin/issues/2028) + * Fixed deleting list field options completely, didn't save changes [#2056](https://github.com/getgrav/grav-plugin-admin/issues/2056) + * Fixed `onAdminAfterAddMedia` and `onAdminAfterDelMedia` events always pointing to the home page + * Fixed ACL for Configuration tabs [#771](https://github.com/getgrav/grav-plugin-admin/issues/771) + * Fixed changelog button showing up in Info page even if user cannot access it + * Fixed toggleable checkboxes being unchecked in fieldset columns [#2063](https://github.com/getgrav/grav-plugin-admin/issues/2063) + * Fixed issue with max backups of zero [#2070](https://github.com/getgrav/grav-plugin-admin/issues/2070) + +# v1.10.3 +## 02/01/2021 + +1. [](#new) + * Requires **Grav 1.7.4** (SemVer library moved to Grav) + * Added back special fonts (including Gantry) +2. [](#bugfix) + * Fixed field type `range` not taking into account legitimate `0` values + * Fixed `Call to a member function trackHit() on null` [#2049](https://github.com/getgrav/grav-plugin-admin/issues/2049) + +# v1.10.2 +## 01/21/2021 + +2. [](#bugfix) + * Fixed admin style compilation failing to save CSS if assets folder does not exist + +# v1.10.1 +## 01/20/2021 + +1. [](#improved) + * Added `watch.sh` for compiling SCSS with native sass compiler +2. [](#bugfix) + * Fixed issue with overlapping sidebar when using fullscreen editor [#2022](https://github.com/getgrav/grav-plugin-admin/issues/2022) + +# v1.10.0 +## 01/19/2021 + +1. [](#new) + * Requires **Grav 1.7 and PHP 7.3.6** + * Read about this release in the [Grav 1.7 Released](https://getgrav.org/blog/grav-1.7-released) blog post + * Read the full list of changes in the [Changelog on GitHub](https://github.com/getgrav/grav-plugin-admin/blob/1.10.0/CHANGELOG.md) + * Please read [Grav 1.7 Upgrade Guide](https://learn.getgrav.org/17/advanced/grav-development/grav-17-upgrade-guide) before upgrading! +1. [](#improved) + * Various notifications improvements +1. [](#bugfix) + * Fixed missed highlight on the selected page in Parents field + * Fixed notifications that would not be remembered as hidden + * Fixed taxonomy field not listing existing options in Flex Pages + * Fixed taxonomy field not working outside pages + * Fixed fatal error when moving a page using the old implementation [#2019](https://github.com/getgrav/grav-plugin-admin/issues/2019) + * Fixed evaluating default value in `hidden` field (thanks @NicoHood) + +# v1.10.0-rc.20 +## 12/14/2020 + +1. [](#improved) + * Cookies now explicitly set `SameSite` to `Lax` unless otherwise specified [#1998](https://github.com/getgrav/grav-plugin-admin/issues/1998) + * Exposed **Cookies** class (`Grav.default.Utils.Cookies`) for developers that need it in Admin. +1. [](#bugfix) + * Fixed Plugins references in Themes details page. + * Fixed issue preventing purchase of Themes within Admin and redirecting instead. + * Regression: Values inside Fieldset do not display [#1995](https://github.com/getgrav/grav-plugin-admin/issues/1995) + +# v1.10.0-rc.19 +## 12/02/2020 + +1. [](#improved) + * Just keeping sync with Grav rc.19 + +# v1.10.0-rc.18 +## 12/02/2020 + +1. [](#new) + * Retired "Secure Delete" and "Warn on page delete". You are now always warned and asked to confirm a deletion. +1. [](#improved) + * Auto-link a plugin/theme license in details if it starts with `http` + * Allow to fallback to `docs:` instead of `readme:` + * Forward a `sid` to GPM when downloading a premium package + * Better support for array field key/value when either key or value is stored empty [#1972](https://github.com/getgrav/grav-plugin-admin/issues/1972) + * Remember the open state of the sidebar [#1973](https://github.com/getgrav/grav-plugin-admin/issues/1973) + * Upgraded node dependencies to latest version. Improved speed of JS compilation. + * Added modal to confirm updating Grav as well as cool down counter before enabling Update button [#1257](https://github.com/getgrav/grav-plugin-admin/issues/1257) + * Better handling of offline/intranet mode when the repository index is missing. Faster admin. [#1916](https://github.com/getgrav/grav-plugin-admin/issues/1916) + * Statistics is now Page View Statistics [#1885](https://github.com/getgrav/grav-plugin-admin/issues/1885) + * It is now possible to use regex as values for "Hide page types in Admin" and "Hide modular page types in Admin" settings [#1828](https://github.com/getgrav/grav-plugin-admin/issues/1828) + * Default to `disabled` state for all cron-jobs +1. [](#bugfix) + * Fixed Safari issue with new ACL picker field [#1955](https://github.com/getgrav/grav-plugin-admin/issues/1955) + * Stop propagation of ACL add button in ACL picker [flex-objects#83](https://github.com/trilbymedia/grav-plugin-flex-objects/issues/83) + * Fixed missing special groups `authors` and `defaults` for pages + * Fixed Page Move action and selection highlight in Parents selector modal [flex-objects#80](https://github.com/trilbymedia/grav-plugin-flex-objects/issues/80) + * Fixed folder auto-naming in Add Module [#1937](https://github.com/getgrav/grav-plugin-admin/issues/1937) + * Fixed remodal issue triggering close when selecting a dropdown item ending outside of scope [#1682](https://github.com/getgrav/grav-plugin-admin/issues/1682) + * Reworked how collapsed lists work so the tooltip is not cut off [#1928](https://github.com/getgrav/grav-plugin-admin/issues/1928) + * Fixed KeepAlive issue where too large of a session value would fire the keep alive immediately [#1860](https://github.com/getgrav/grav-plugin-admin/issues/1860) + * Fixed stringable objects breaking the inputs + * Fixed filepicker, pagemediaselect fields with `multiple: true` and `array: true` [#1580](https://github.com/getgrav/grav-plugin-admin/issues/1580) + +# v1.10.0-rc.17 +## 10/07/2020 + +1. [](#new) + * Support premium themes +1. [](#improved) + * Improved some error messages for better readability + * Strip tags from browser title +1. [](#bugfix) + * More multi-site routing fixes + * Fixed issue that would force a page reload when failing to install/update a plugin or theme. + * Fixed proxy/browser caching issues in admin pages + +# v1.10.0-rc.16 +## 09/01/2020 + +1. [](#improved) + * Made all the `onAdmin*` CRUD events to pass `object` (and backwards compatible `page`) to make them easier to use + * Updated vendor libraries including `SCSSPHP` to v1.2 +1. [](#bugfix) + * Fixed issue with File field being used in Theme/Plugins + * Fixed bad redirection after successful admin login in subdirectory multisite [#1487](https://github.com/getgrav/grav-plugin-admin/issues/1487) + +# v1.10.0-rc.15 +## 07/22/2020 + +1. [](#bugfix) + * Disabled the EXIF library for Dropzone for fixing the orientation as it was getting applied twice [#1923](https://github.com/getgrav/grav-plugin-admin/issues/1923) + * Forked Dropzone fo fix issue with Resize + Exif orientation [#1923](https://github.com/getgrav/grav-plugin-admin/issues/1923) + * Fixed URI encode for the preview of images names + +# v1.10.0-rc.14 +## 07/09/2020 + +1. [](#improved) + * Completely removed old Google font support for upgrade compatibility +1. [](#bugfix) + * Fixed bad `use` reference to `UserObject` + +# v1.10.0-rc.13 +## 07/01/2020 + +1. [](#improved) + * Improved color picker field + * Trim login route for safety + * Composer update to grab latest vendor libs + +# v1.10.0-rc.12 +## 06/08/2020 + +1. [](#new) + * Added ability to set a preferred markdown editor in user profile + * Added new `onAdminListContentEditors` event to add a custom editor to the list of available +1. [](#bugfix) + * Fixed issue deleting file from a plugin's configuration + * Use `Pages::find()` instead of `Pages::dispatch()` as we do not want to redirect out of admin + * Fixed broken `parent` field when using the old pages + * Fixed broken `file` field preview when using streams in the path + +# v1.10.0-rc.11 +## 05/14/2020 + +1. [](#new) + * Major enhancements to "White Label" functionality including ability to export/import presets + * New horizontal scroller for theme presets + * Codemirror Fontsize / Preset / Font preference options +1. [](#improved) + * Fixed lots of styling issues related to "White Label" presets + * Changed out "One Light" theme for new "Firewatch Light" theme + * New scrolling system based on `SimpleBar` + native CSS scrollbar styling + +# v1.10.0-rc.10 +## 04/30/2020 + +1. [](#new) + * Addd new `taskConvertUrls` method for use with 3rd party editors + +# v1.10.0-rc.9 +## 04/27/2020 + +1. [](#new) + * Added new "White Label" functionality to customize admin colors + logos + * Added badge count for children in the Parents field +1. [](#improved) + * Added markdown support to `text` in `section` field +1. [](#bugfix) + * Prevent loading Pages in Parents field if they don't have children + * Fixed custom folder in `mediapicker` field not working with streams + * Fixed language redirect adding extra language prefix in Flex + * Fixed `Invalid input in "Parent"` when saving page in raw mode [#1869](https://github.com/getgrav/grav-plugin-admin/issues/1869) + +# v1.10.0-rc.8 +## 03/19/2020 + +1. [](#new) + * Added `has-children` flag in parent field data response + * Added `RESET` en lang string +1. [](#bugfix) + * Fixed parent field not working with regular pages + +# v1.10.0-rc.7 +## 03/05/2020 + +1. [](#new) + * Enable admin cache by default (for existing sites, check `Plugins > Admin Panel > Enable Admin Caching`) +1. [](#improved) + * Removed old `scss.sh` and `watch.sh` scripts, use `gulp watch-css` + * Added keysOnly parameter to `AdminPlugin::pagesTypes()` and `AdminPlugin::pagesModularTypes()` methods + * Added ignore parameter to `Admin::types()` and `Admin::modularTypes()` methods + * Improved configuration fields for hiding page types in Admin +1. [](#bugfix) + * Fixed minor UI padding in Flex pages [#1825](https://github.com/getgrav/grav-plugin-admin/issues/1825) + * Fixed `column` and `section` fields loosing user entered value when form submit fails + * Fixed `order` field not working with a new Flex Page + +# v1.10.0-rc.6 +## 02/11/2020 + +1. [](#new) + * Pass phpstan level 1 tests + * Updated semver library to v1.5 + * Require flex-objects plugin +1. [](#improved) + * Added some debugging messages (turned off by default) + +# v1.10.0-rc.5 +## 02/03/2020 + +1. [](#new) + * No changes, just keeping things in sync with Grav RC version + +# v1.10.0-rc.4 +## 02/03/2020 + +1. [](#new) + * Added message to dashboard to install Flex Objects plugin if it is missing + * Updated `permissions` field to use new `$grav['permissions']` + * DEPRECATED `onAdminRegisterPermissions` event, use `PermissionsRegisterEvent::class` event instead + * DEPRECATED `Admin::setPermissions()` and `Admin::addPermissions()`, use `PermissionsRegisterEvent::class` event instead + * DEPRECATED `Admin::getPermissions()`, use `$grav['permissions']->getInstances()` instead +1. [](#improved) + * Added `field.show_label` and `field.label` display logic from frontend forms +1. [](#bugfix) + * Fixed user profile when using `Flex Users` only in admin + * Fixed saving data with empty field, default value (from config, plugin, theme) was used instead + * Fixed JS bug is using empty Grav URI param key + * Fixed bug in toggleable field being disabled with empty value (`''` `0`, `false`, `[]`...) + * Fixed `admin_route()` twig function to work properly with Grav 1.7.0-rc.4, which fixes `Route` base + * Fixed misleading 'Show sensitive data' configuration option wording [#1818](https://github.com/getgrav/grav-plugin-admin/issues/1818) + +# v1.10.0-rc.3 +## 01/02/2020 + +1. [](#new) + * Added ability to display **Changelogs** for `Grav`, `Plugins` and `Themes` + * Added raw root page support for `Flex Pages` + +# v1.10.0-rc.2 +## 12/04/2019 + +1. [](#new) + * Added support for hiding parts of admin by `Deny` permissions (`Flex Users` only) + * Optimized `parent` field for Flex Pages +1. [](#improved) + * Improved `permissions` field to add support for displaying calculated permissions + * Grav 1.7: Updated deprecated `$page->modular()` method calls to `$page->isModule()` + * Output the current process user name in Scheduler instructions + * Translations: rename MODULAR to MODULE everywhere +1. [](#bugfix) + * Fixed `permissions` field with nested permissions + * Fixed Save Shortcut (CTRL + S / CMD + S) not working with new Flex Pages [#1787](https://github.com/getgrav/grav-plugin-admin/issues/1787) + +# v1.10.0-rc.1 +## 11/06/2019 + +1. [](#new) + * Added a new `onAdminLogFiles()` event for 3rd party plugins to register log files for log viewer [#1765](https://github.com/getgrav/grav-plugin-admin/issues/1765) +1. [](#improved) + * Improved delete button UI [#1769](https://github.com/getgrav/grav-plugin-admin/issues/1769) + * Ability to configure display of 3rd party dashboard widgets [#1766](https://github.com/getgrav/grav-plugin-admin/issues/1766) +1. [](#bugfix) + * Fixed administrator user creation when `Flex Users` is enabled + * Fixed minor button alignment in FF [#1760](https://github.com/getgrav/grav-plugin-admin/issues/1760) + +# v1.10.0-beta.10 +## 10/03/2019 + +1. [](#bugfix) + * Regression: Fixed language assignments for the pages without set language + +# v1.10.0-beta.9 +## 09/26/2019 + +1. [](#bugfix) + * Make pages field to work with Flex Pages + +# v1.10.0-beta.8 +## 09/19/2019 + +1. [](#new) + * Add ability to Sanitize SVGs on file upload + * Add ability to Sanitize SVGs in Page media +1. [](#improved) + * YAML linter report now supports multi-language + * Better colors/placement of toolbar buttons in page edit view +1. [](#bugfix) + * Fixed missing language for AJAX requests + * Fixed redirect with absolute language URL + * Fixed issue with user avatar reference not being deleted when image removed + +# v1.10.0-beta.7 +## 08/30/2019 + +1. [](#bugfix) + * Fixed regression: Do not require Flex Objects plugin [grav#2653](https://github.com/getgrav/grav/issues/2653) + +# v1.10.0-beta.6 +## 08/29/2019 + +1. [](#improved) + * Optimized admin for speed (only load frontend pages on demand) + * Updated navigation menu to be fully controlled and overrideable by `onAdminMenu` event + * Lots of Flex Page speed improvements + +# v1.10.0-beta.5 +## 08/11/2019 + +1. [](#new) + * Added `data()` twig function to create data object from an array +1. [](#improved) + * Better support for `array` field into `list` field + * Made RAW blueprints (expert mode) to work properly with Flex Form + * Better support for `clockwork` logs +1. [](#bugfix) + * Fixed issue with nested `list` fields both utilizing the custom `key` functionality + * Regression: Page Preview not working, bad url [#1715](https://github.com/getgrav/grav-plugin-admin/issues/1715) + * Fixed '+New Folder' to work with new parent picker + * Fixed missing XSS check field when editing modular page as raw + * Fixed minor CSS layout issue [#1717](https://github.com/getgrav/grav-plugin-admin/issues/1717) + +# v1.10.0-beta.4 +## 07/01/2019 + +1. [](#new) + * Added `Admin::redirect()` method to allow redirects to be used outside of controllers + * Added `$admin->adminRoute()` method and `admin_route()` twig function to create language aware admin page links + * Renamed `Admin::route()` to `Admin::getCurrentRoute()` and deprecated the old call +1. [](#improved) + * Much improved multi-language support for pages + * Admin redirects should now work better with multiple languages enabled +1. [](#bugfix) + * Fixed default language being renamed to `page.en.md` (English) instead of keeping existing `page.md` filename + * Fixed possibility to override already existing translation by `Save As Language` + * Fixed missing default translation if page used plain `.md` file extension without language code + * Fixed wrong translation showing up as page fallback language + * Integrated Admin 1.9.8 bug fixes + +# v1.10.0-beta.3 +## 06/24/2019 + +1. [](#improved) + * Smarter handling of symlinks in parent field +1. [](#bugfix) + * Fixed issue with windows paths in `parent` field [#1699](https://github.com/getgrav/grav-plugin-admin/issues/1699) + +# v1.10.0-beta.2 +## 06/21/2019 + +1. [](#improved) + * Moved Remodal in-house and added support for stackable modals [#1698](https://github.com/getgrav/grav-plugin-admin/issues/1698), [#1699](https://github.com/getgrav/grav-plugin-admin/issues/1699) +1. [](#bugfix) + * Fixed missing check for maximum allowed files in `files` field + +# v1.10.0-beta.1 +## 06/14/2019 + +1. [](#new) + * New Parent/Move field using Ajax for better performance + * Improvements to cache clearing when admin cache is enabled + * Require Grav v1.7 + * Use PSR-4 for plugin classes + * Added support for Twig 2.11 (compatible with Twig 1.40+) +1. [](#improved) + * Various admin performance improvements +1. [](#bugfix) + * Fixed admin caching issues + +# v1.9.19 +## 12/14/2020 + +1. [](#bugfix) + * Fixed `pages` field escaping issues, needs Grav update, too [#1990](https://github.com/getgrav/grav-plugin-admin/issues/1990) + * Fixed Plugins references in Themes details page. + * Fixed issue preventing purchase of Themes within Admin and redirecting instead. + * Fixed Page Picker not passing admin token + +# v1.9.18 +## 12/02/2020 + +1. [](#new) + * Never allow Admin pages to be rendered in ``, `'); + return true; + } + + return false; + } + + /** + * Generate HTML from item URL + * + * @access public + * @param Item $item + * @return bool + */ + public function generateHtmlFromUrl(Item $item) + { + if (preg_match('/youtube\.com\/watch\?v=(.*)/', $item->getUrl(), $matches)) { + $item->setContent(''); + return true; + } + + return false; + } +} diff --git a/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Logging/Logger.php b/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Logging/Logger.php new file mode 100644 index 0000000..caec463 --- /dev/null +++ b/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Logging/Logger.php @@ -0,0 +1,114 @@ +format('Y-m-d H:i:s').'] '.$message; + } + } + + /** + * Get all logged messages. + * + * @static + * + * @return array + */ + public static function getMessages() + { + return self::$messages; + } + + /** + * Remove all logged messages. + * + * @static + */ + public static function deleteMessages() + { + self::$messages = array(); + } + + /** + * Set a different timezone. + * + * @static + * + * @see http://php.net/manual/en/timezones.php + * + * @param string $timezone Timezone + */ + public static function setTimeZone($timezone) + { + self::$timezone = $timezone ?: self::$timezone; + } + + /** + * Get all messages serialized into a string. + * + * @static + * + * @return string + */ + public static function toString() + { + return implode(PHP_EOL, self::$messages).PHP_EOL; + } +} diff --git a/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Parser/Atom.php b/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Parser/Atom.php new file mode 100644 index 0000000..0496869 --- /dev/null +++ b/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Parser/Atom.php @@ -0,0 +1,395 @@ + 'http://www.w3.org/2005/Atom', + ); + + /** + * Get the path to the items XML tree. + * + * @param SimpleXMLElement $xml Feed xml + * @return SimpleXMLElement[] + */ + public function getItemsTree(SimpleXMLElement $xml) + { + return XmlParser::getXPathResult($xml, 'atom:entry', $this->namespaces) + ?: XmlParser::getXPathResult($xml, 'entry'); + } + + /** + * Find the feed url. + * + * @param SimpleXMLElement $xml Feed xml + * @param \PicoFeed\Parser\Feed $feed Feed object + */ + public function findFeedUrl(SimpleXMLElement $xml, Feed $feed) + { + $feed->setFeedUrl($this->getUrl($xml, 'self')); + } + + /** + * Find the site url. + * + * @param SimpleXMLElement $xml Feed xml + * @param \PicoFeed\Parser\Feed $feed Feed object + */ + public function findSiteUrl(SimpleXMLElement $xml, Feed $feed) + { + $feed->setSiteUrl($this->getUrl($xml, 'alternate', true)); + } + + /** + * Find the feed description. + * + * @param SimpleXMLElement $xml Feed xml + * @param \PicoFeed\Parser\Feed $feed Feed object + */ + public function findFeedDescription(SimpleXMLElement $xml, Feed $feed) + { + $description = XmlParser::getXPathResult($xml, 'atom:subtitle', $this->namespaces) + ?: XmlParser::getXPathResult($xml, 'subtitle'); + + $feed->setDescription(XmlParser::getValue($description)); + } + + /** + * Find the feed logo url. + * + * @param SimpleXMLElement $xml Feed xml + * @param \PicoFeed\Parser\Feed $feed Feed object + */ + public function findFeedLogo(SimpleXMLElement $xml, Feed $feed) + { + $logo = XmlParser::getXPathResult($xml, 'atom:logo', $this->namespaces) + ?: XmlParser::getXPathResult($xml, 'logo'); + + $feed->setLogo(XmlParser::getValue($logo)); + } + + /** + * Find the feed icon. + * + * @param SimpleXMLElement $xml Feed xml + * @param \PicoFeed\Parser\Feed $feed Feed object + */ + public function findFeedIcon(SimpleXMLElement $xml, Feed $feed) + { + $icon = XmlParser::getXPathResult($xml, 'atom:icon', $this->namespaces) + ?: XmlParser::getXPathResult($xml, 'icon'); + + $feed->setIcon(XmlParser::getValue($icon)); + } + + /** + * Find the feed title. + * + * @param SimpleXMLElement $xml Feed xml + * @param \PicoFeed\Parser\Feed $feed Feed object + */ + public function findFeedTitle(SimpleXMLElement $xml, Feed $feed) + { + $title = XmlParser::getXPathResult($xml, 'atom:title', $this->namespaces) + ?: XmlParser::getXPathResult($xml, 'title'); + + $feed->setTitle(Filter::stripWhiteSpace(XmlParser::getValue($title)) ?: $feed->getSiteUrl()); + } + + /** + * Find the feed language. + * + * @param SimpleXMLElement $xml Feed xml + * @param \PicoFeed\Parser\Feed $feed Feed object + */ + public function findFeedLanguage(SimpleXMLElement $xml, Feed $feed) + { + $language = XmlParser::getXPathResult($xml, '*[not(self::atom:entry)]/@xml:lang', $this->namespaces) + ?: XmlParser::getXPathResult($xml, '@xml:lang'); + + $feed->setLanguage(XmlParser::getValue($language)); + } + + /** + * Find the feed id. + * + * @param SimpleXMLElement $xml Feed xml + * @param \PicoFeed\Parser\Feed $feed Feed object + */ + public function findFeedId(SimpleXMLElement $xml, Feed $feed) + { + $id = XmlParser::getXPathResult($xml, 'atom:id', $this->namespaces) + ?: XmlParser::getXPathResult($xml, 'id'); + + $feed->setId(XmlParser::getValue($id)); + } + + /** + * Find the feed date. + * + * @param SimpleXMLElement $xml Feed xml + * @param \PicoFeed\Parser\Feed $feed Feed object + */ + public function findFeedDate(SimpleXMLElement $xml, Feed $feed) + { + $updated = XmlParser::getXPathResult($xml, 'atom:updated', $this->namespaces) + ?: XmlParser::getXPathResult($xml, 'updated'); + + $feed->setDate($this->getDateParser()->getDateTime(XmlParser::getValue($updated))); + } + + /** + * Find the item published date. + * + * @param SimpleXMLElement $entry Feed item + * @param Item $item Item object + * @param \PicoFeed\Parser\Feed $feed Feed object + */ + public function findItemPublishedDate(SimpleXMLElement $entry, Item $item, Feed $feed) + { + $date = XmlParser::getXPathResult($entry, 'atom:published', $this->namespaces) + ?: XmlParser::getXPathResult($entry, 'published'); + + $item->setPublishedDate(!empty($date) ? $this->getDateParser()->getDateTime((string) current($date)) : null); + } + + /** + * Find the item updated date. + * + * @param SimpleXMLElement $entry Feed item + * @param Item $item Item object + * @param \PicoFeed\Parser\Feed $feed Feed object + */ + public function findItemUpdatedDate(SimpleXMLElement $entry, Item $item, Feed $feed) + { + $date = XmlParser::getXPathResult($entry, 'atom:updated', $this->namespaces) + ?: XmlParser::getXPathResult($entry, 'updated'); + + $item->setUpdatedDate(!empty($date) ? $this->getDateParser()->getDateTime((string) current($date)) : null); + } + + /** + * Find the item title. + * + * @param SimpleXMLElement $entry Feed item + * @param Item $item Item object + */ + public function findItemTitle(SimpleXMLElement $entry, Item $item) + { + $title = XmlParser::getXPathResult($entry, 'atom:title', $this->namespaces) + ?: XmlParser::getXPathResult($entry, 'title'); + + $item->setTitle(Filter::stripWhiteSpace(XmlParser::getValue($title)) ?: $item->getUrl()); + } + + /** + * Find the item author. + * + * @param SimpleXMLElement $xml Feed + * @param SimpleXMLElement $entry Feed item + * @param \PicoFeed\Parser\Item $item Item object + */ + public function findItemAuthor(SimpleXMLElement $xml, SimpleXMLElement $entry, Item $item) + { + $author = XmlParser::getXPathResult($entry, 'atom:author/atom:name', $this->namespaces) + ?: XmlParser::getXPathResult($entry, 'author/name') + ?: XmlParser::getXPathResult($xml, 'atom:author/atom:name', $this->namespaces) + ?: XmlParser::getXPathResult($xml, 'author/name'); + + $item->setAuthor(XmlParser::getValue($author)); + } + + /** + * Find the item author URL. + * + * @param SimpleXMLElement $xml Feed + * @param SimpleXMLElement $entry Feed item + * @param \PicoFeed\Parser\Item $item Item object + */ + public function findItemAuthorUrl(SimpleXMLElement $xml, SimpleXMLElement $entry, Item $item) + { + $authorUrl = XmlParser::getXPathResult($entry, 'atom:author/atom:uri', $this->namespaces) + ?: XmlParser::getXPathResult($entry, 'author/uri') + ?: XmlParser::getXPathResult($xml, 'atom:author/atom:uri', $this->namespaces) + ?: XmlParser::getXPathResult($xml, 'author/uri'); + + $item->setAuthorUrl(XmlParser::getValue($authorUrl)); + } + + /** + * Find the item content. + * + * @param SimpleXMLElement $entry Feed item + * @param \PicoFeed\Parser\Item $item Item object + */ + public function findItemContent(SimpleXMLElement $entry, Item $item) + { + $item->setContent($this->getContent($entry)); + } + + /** + * Find the item URL. + * + * @param SimpleXMLElement $entry Feed item + * @param \PicoFeed\Parser\Item $item Item object + */ + public function findItemUrl(SimpleXMLElement $entry, Item $item) + { + $item->setUrl($this->getUrl($entry, 'alternate', true)); + } + + /** + * Genereate the item id. + * + * @param SimpleXMLElement $entry Feed item + * @param \PicoFeed\Parser\Item $item Item object + * @param \PicoFeed\Parser\Feed $feed Feed object + */ + public function findItemId(SimpleXMLElement $entry, Item $item, Feed $feed) + { + $id = XmlParser::getXPathResult($entry, 'atom:id', $this->namespaces) + ?: XmlParser::getXPathResult($entry, 'id'); + + if (!empty($id)) { + $item->setId($this->generateId(XmlParser::getValue($id))); + } else { + $item->setId($this->generateId( + $item->getTitle(), $item->getUrl(), $item->getContent() + )); + } + } + + /** + * Find the item enclosure. + * + * @param SimpleXMLElement $entry Feed item + * @param \PicoFeed\Parser\Item $item Item object + * @param \PicoFeed\Parser\Feed $feed Feed object + */ + public function findItemEnclosure(SimpleXMLElement $entry, Item $item, Feed $feed) + { + $enclosure = $this->findLink($entry, 'enclosure'); + + if ($enclosure) { + $item->setEnclosureUrl(Url::resolve((string) $enclosure['href'], $feed->getSiteUrl())); + $item->setEnclosureType((string) $enclosure['type']); + } + } + + /** + * Find the item language. + * + * @param SimpleXMLElement $entry Feed item + * @param \PicoFeed\Parser\Item $item Item object + * @param \PicoFeed\Parser\Feed $feed Feed object + */ + public function findItemLanguage(SimpleXMLElement $entry, Item $item, Feed $feed) + { + $language = XmlParser::getXPathResult($entry, './/@xml:lang'); + $item->setLanguage(XmlParser::getValue($language) ?: $feed->getLanguage()); + } + + /** + * Find the item categories. + * + * @param SimpleXMLElement $entry Feed item + * @param Item $item Item object + * @param Feed $feed Feed object + */ + public function findItemCategories(SimpleXMLElement $entry, Item $item, Feed $feed) + { + $categories = XmlParser::getXPathResult($entry, 'atom:category/@term', $this->namespaces) + ?: XmlParser::getXPathResult($entry, 'category/@term'); + $item->setCategoriesFromXml($categories); + } + + /** + * Get the URL from a link tag. + * + * @param SimpleXMLElement $xml XML tag + * @param string $rel Link relationship: alternate, enclosure, related, self, via + * @return string + */ + private function getUrl(SimpleXMLElement $xml, $rel, $fallback = false) + { + $link = $this->findLink($xml, $rel); + + if ($link) { + return (string) $link['href']; + } + + if ($fallback) { + $link = $this->findLink($xml, ''); + return $link ? (string) $link['href'] : ''; + } + + return ''; + } + + /** + * Get a link tag that match a relationship. + * + * @param SimpleXMLElement $xml XML tag + * @param string $rel Link relationship: alternate, enclosure, related, self, via + * @return SimpleXMLElement|null + */ + private function findLink(SimpleXMLElement $xml, $rel) + { + $links = XmlParser::getXPathResult($xml, 'atom:link', $this->namespaces) + ?: XmlParser::getXPathResult($xml, 'link'); + + foreach ($links as $link) { + if ($rel === (string) $link['rel']) { + return $link; + } + } + + return null; + } + + /** + * Get the entry content. + * + * @param SimpleXMLElement $entry XML Entry + * @return string + */ + private function getContent(SimpleXMLElement $entry) + { + $content = current( + XmlParser::getXPathResult($entry, 'atom:content', $this->namespaces) + ?: XmlParser::getXPathResult($entry, 'content') + ); + + if (!empty($content) && count($content->children())) { + $xml_string = ''; + + foreach ($content->children() as $child) { + $xml_string .= $child->asXML(); + } + + return $xml_string; + } elseif (trim((string) $content) !== '') { + return (string) $content; + } + + $summary = XmlParser::getXPathResult($entry, 'atom:summary', $this->namespaces) + ?: XmlParser::getXPathResult($entry, 'summary'); + + return (string) current($summary); + } +} diff --git a/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Parser/DateParser.php b/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Parser/DateParser.php new file mode 100644 index 0000000..0e5b80e --- /dev/null +++ b/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Parser/DateParser.php @@ -0,0 +1,128 @@ + length ]. + * + * @var array + */ + public $formats = array( + DATE_ATOM => null, + DATE_RSS => null, + DATE_COOKIE => null, + DATE_ISO8601 => null, + DATE_RFC822 => null, + DATE_RFC850 => null, + DATE_RFC1036 => null, + DATE_RFC1123 => null, + DATE_RFC2822 => null, + DATE_RFC3339 => null, + 'l, d M Y H:i:s' => null, + 'D, d M Y H:i:s' => 25, + 'D, d M Y h:i:s' => 25, + 'D M d Y H:i:s' => 24, + 'j M Y H:i:s' => 20, + 'Y-m-d H:i:s' => 19, + 'Y-m-d\TH:i:s' => 19, + 'd/m/Y H:i:s' => 19, + 'D, d M Y' => 16, + 'Y-m-d' => 10, + 'd-m-Y' => 10, + 'm-d-Y' => 10, + 'd.m.Y' => 10, + 'm.d.Y' => 10, + 'd/m/Y' => 10, + 'm/d/Y' => 10, + ); + + /** + * Try to parse all date format for broken feeds. + * + * @param string $value Original date format + * + * @return DateTime + */ + public function getDateTime($value) + { + $value = trim($value); + + foreach ($this->formats as $format => $length) { + $truncated_value = $value; + if ($length !== null) { + $truncated_value = substr($truncated_value, 0, $length); + } + + $date = $this->getValidDate($format, $truncated_value); + if ($date !== false) { + return $date; + } + } + + return $this->getCurrentDateTime(); + } + + /** + * Get a valid date from a given format. + * + * @param string $format Date format + * @param string $value Original date value + * + * @return DateTime|bool + */ + public function getValidDate($format, $value) + { + $date = DateTime::createFromFormat($format, $value, $this->getTimeZone()); + + if ($date !== false) { + $errors = DateTime::getLastErrors(); + + if ($errors['error_count'] === 0 && $errors['warning_count'] === 0) { + return $date; + } + } + + return false; + } + + /** + * Get the current datetime. + * + * @return DateTime + */ + public function getCurrentDateTime() + { + return new DateTime('now', $this->getTimeZone()); + } + + /** + * Get DateTimeZone instance + * + * @access public + * @return DateTimeZone + */ + public function getTimeZone() + { + return new DateTimeZone($this->config->getTimezone() ?: $this->timezone); + } +} diff --git a/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Parser/Feed.php b/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Parser/Feed.php new file mode 100644 index 0000000..a56e71c --- /dev/null +++ b/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Parser/Feed.php @@ -0,0 +1,315 @@ +$property.PHP_EOL; + } + + $output .= 'Feed::date = '.$this->date->format(DATE_RFC822).PHP_EOL; + $output .= 'Feed::isRTL() = '.($this->isRTL() ? 'true' : 'false').PHP_EOL; + $output .= 'Feed::items = '.count($this->items).' items'.PHP_EOL; + + foreach ($this->items as $item) { + $output .= '----'.PHP_EOL; + $output .= $item; + } + + return $output; + } + + /** + * Get title. + */ + public function getTitle() + { + return $this->title; + } + + /** + * Get description. + */ + public function getDescription() + { + return $this->description; + } + + /** + * Get the logo url. + */ + public function getLogo() + { + return $this->logo; + } + + /** + * Get the icon url. + */ + public function getIcon() + { + return $this->icon; + } + + /** + * Get feed url. + */ + public function getFeedUrl() + { + return $this->feedUrl; + } + + /** + * Get site url. + */ + public function getSiteUrl() + { + return $this->siteUrl; + } + + /** + * Get date. + */ + public function getDate() + { + return $this->date; + } + + /** + * Get language. + */ + public function getLanguage() + { + return $this->language; + } + + /** + * Get id. + */ + public function getId() + { + return $this->id; + } + + /** + * Get feed items. + */ + public function getItems() + { + return $this->items; + } + + /** + * Return true if the feed is "Right to Left". + * + * @return bool + */ + public function isRTL() + { + return Parser::isLanguageRTL($this->language); + } + + /** + * Set feed items. + * + * @param Item[] $items + * @return Feed + */ + public function setItems(array $items) + { + $this->items = $items; + return $this; + } + + /** + * Set feed id. + * + * @param string $id + * @return Feed + */ + public function setId($id) + { + $this->id = $id; + return $this; + } + + /** + * Set feed title. + * + * @param string $title + * @return Feed + */ + public function setTitle($title) + { + $this->title = $title; + return $this; + } + + /** + * Set feed description. + * + * @param string $description + * @return Feed + */ + public function setDescription($description) + { + $this->description = $description; + return $this; + } + + /** + * Set feed url. + * + * @param string $feedUrl + * @return Feed + */ + public function setFeedUrl($feedUrl) + { + $this->feedUrl = $feedUrl; + return $this; + } + + /** + * Set feed website url. + * + * @param string $siteUrl + * @return Feed + */ + public function setSiteUrl($siteUrl) + { + $this->siteUrl = $siteUrl; + return $this; + } + + /** + * Set feed date. + * + * @param \DateTime $date + * @return Feed + */ + public function setDate($date) + { + $this->date = $date; + return $this; + } + + /** + * Set feed language. + * + * @param string $language + * @return Feed + */ + public function setLanguage($language) + { + $this->language = $language; + return $this; + } + + /** + * Set feed logo. + * + * @param string $logo + * @return Feed + */ + public function setLogo($logo) + { + $this->logo = $logo; + return $this; + } + + /** + * Set feed icon. + * + * @param string $icon + * @return Feed + */ + public function setIcon($icon) + { + $this->icon = $icon; + return $this; + } +} diff --git a/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Parser/Item.php b/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Parser/Item.php new file mode 100644 index 0000000..98214b8 --- /dev/null +++ b/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Parser/Item.php @@ -0,0 +1,562 @@ +namespaces); + } + + /** + * Get specific XML tag or attribute value. + * + * @param string $tag Tag name (examples: guid, media:content) + * @param string $attribute Tag attribute + * + * @return array|false Tag values or error + */ + public function getTag($tag, $attribute = '') + { + if ($attribute !== '') { + $attribute = '/@'.$attribute; + } + + $query = './/'.$tag.$attribute; + $elements = XmlParser::getXPathResult($this->xml, $query, $this->namespaces); + + if ($elements === false) { // xPath error + return false; + } + + return array_map(function ($element) { return (string) $element;}, $elements); + } + + /** + * Return item information. + * + * @return string + */ + public function __toString() + { + $output = ''; + + foreach (array('id', 'title', 'url', 'language', 'author', 'enclosureUrl', 'enclosureType') as $property) { + $output .= 'Item::'.$property.' = '.$this->$property.PHP_EOL; + } + + $publishedDate = $this->publishedDate != null ? $this->publishedDate->format(DATE_RFC822) : null; + $updatedDate = $this->updatedDate != null ? $this->updatedDate->format(DATE_RFC822) : null; + + $categoryString = $this->categories != null ? implode(',', $this->categories) : null; + + $output .= 'Item::date = '.$this->date->format(DATE_RFC822).PHP_EOL; + $output .= 'Item::publishedDate = '.$publishedDate.PHP_EOL; + $output .= 'Item::updatedDate = '.$updatedDate.PHP_EOL; + $output .= 'Item::isRTL() = '.($this->isRTL() ? 'true' : 'false').PHP_EOL; + $output .= 'Item::categories = ['.$categoryString.']'.PHP_EOL; + $output .= 'Item::content = '.strlen($this->content).' bytes'.PHP_EOL; + + return $output; + } + + /** + * Get title. + * + * @return string + */ + public function getTitle() + { + return $this->title; + } + + /** + * Get URL + * + * @access public + * @return string + */ + public function getUrl() + { + return $this->url; + } + + /** + * Set URL + * + * @access public + * @param string $url + * @return Item + */ + public function setUrl($url) + { + $this->url = $url; + return $this; + } + + /** + * Get id. + * + * @return string + */ + public function getId() + { + return $this->id; + } + + /** + * Get date. + * + * @return \DateTime + */ + public function getDate() + { + return $this->date; + } + + /** + * Get published date. + * + * @return \DateTime + */ + public function getPublishedDate() + { + return $this->publishedDate; + } + + /** + * Get updated date. + * + * @return \DateTime + */ + public function getUpdatedDate() + { + return $this->updatedDate; + } + + /** + * Get content. + * + * @return string + */ + public function getContent() + { + return $this->content; + } + + /** + * Set content + * + * @access public + * @param string $value + * @return Item + */ + public function setContent($value) + { + $this->content = $value; + return $this; + } + + /** + * Get enclosure url. + * + * @return string + */ + public function getEnclosureUrl() + { + return $this->enclosureUrl; + } + + /** + * Get enclosure type. + * + * @return string + */ + public function getEnclosureType() + { + return $this->enclosureType; + } + + /** + * Get language. + * + * @return string + */ + public function getLanguage() + { + return $this->language; + } + + /** + * Get categories. + * + * @return array + */ + public function getCategories() + { + return $this->categories; + } + + /** + * Get author. + * + * @return string + */ + public function getAuthor() + { + return $this->author; + } + + /** + * Get author URL. + * + * @return string + */ + public function getAuthorUrl() + { + return $this->authorUrl; + } + + /** + * Return true if the item is "Right to Left". + * + * @return bool + */ + public function isRTL() + { + return Parser::isLanguageRTL($this->language); + } + + /** + * Set item id. + * + * @param string $id + * @return Item + */ + public function setId($id) + { + $this->id = $id; + return $this; + } + + /** + * Set item title. + * + * @param string $title + * @return Item + */ + public function setTitle($title) + { + $this->title = $title; + return $this; + } + + /** + * Set author. + * + * @param string $author + * @return Item + */ + public function setAuthor($author) + { + $this->author = $author; + return $this; + } + + /** + * Set author URL. + * + * @param string $authorUrl + * @return Item + */ + public function setAuthorUrl($authorUrl) + { + $this->authorUrl = $authorUrl; + return $this; + } + + /** + * Set item date. + * + * @param \DateTime $date + * @return Item + */ + public function setDate($date) + { + $this->date = $date; + return $this; + } + + /** + * Set item published date. + * + * @param \DateTime $publishedDate + * @return Item + */ + public function setPublishedDate($publishedDate) + { + $this->publishedDate = $publishedDate; + return $this; + } + + /** + * Set item updated date. + * + * @param \DateTime $updatedDate + * @return Item + */ + public function setUpdatedDate($updatedDate) + { + $this->updatedDate = $updatedDate; + return $this; + } + + /** + * Set enclosure url. + * + * @param string $enclosureUrl + * @return Item + */ + public function setEnclosureUrl($enclosureUrl) + { + $this->enclosureUrl = $enclosureUrl; + return $this; + } + + /** + * Set enclosure type. + * + * @param string $enclosureType + * @return Item + */ + public function setEnclosureType($enclosureType) + { + $this->enclosureType = $enclosureType; + return $this; + } + + /** + * Set item language. + * + * @param string $language + * @return Item + */ + public function setLanguage($language) + { + $this->language = $language; + return $this; + } + + /** + * Set item categories. + * + * @param array $categories + * @return Item + */ + public function setCategories($categories) + { + $this->categories = $categories; + return $this; + } + + /** + * Set item categories from xml. + * + * @param |SimpleXMLElement[] $categories + * @return Item + */ + public function setCategoriesFromXml($categories) + { + if ($categories !== false) { + $this->setCategories( + array_map( + function ($element) { + return trim((string) $element); + }, + $categories + ) + ); + } + + return $this; + } + + /** + * Set raw XML. + * + * @param \SimpleXMLElement $xml + * @return Item + */ + public function setXml($xml) + { + $this->xml = $xml; + return $this; + } + + /** + * Get raw XML. + * + * @return \SimpleXMLElement + */ + public function getXml() + { + return $this->xml; + } + + /** + * Set XML namespaces. + * + * @param array $namespaces + * @return Item + */ + public function setNamespaces($namespaces) + { + $this->namespaces = $namespaces; + return $this; + } + + /** + * Get XML namespaces. + * + * @return array + */ + public function getNamespaces() + { + return $this->namespaces; + } +} diff --git a/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Parser/MalformedXmlException.php b/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Parser/MalformedXmlException.php new file mode 100644 index 0000000..efaf0ff --- /dev/null +++ b/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Parser/MalformedXmlException.php @@ -0,0 +1,13 @@ +fallback_url = $fallback_url; + $xml_encoding = XmlParser::getEncodingFromXmlTag($content); + + // Strip XML tag to avoid multiple encoding/decoding in the next XML processing + $this->content = Filter::stripXmlTag($content); + + // Encode everything in UTF-8 + Logger::setMessage(get_called_class().': HTTP Encoding "'.$http_encoding.'" ; XML Encoding "'.$xml_encoding.'"'); + $this->content = Encoding::convert($this->content, $xml_encoding ?: $http_encoding); + + $this->itemPostProcessor = new ItemPostProcessor($this->config); + $this->itemPostProcessor->register(new ContentGeneratorProcessor($this->config)); + $this->itemPostProcessor->register(new ContentFilterProcessor($this->config)); + } + + /** + * Parse the document. + * @return Feed + * @throws MalformedXmlException + */ + public function execute() + { + Logger::setMessage(get_called_class().': begin parsing'); + + $xml = XmlParser::getSimpleXml($this->content); + + if ($xml === false) { + Logger::setMessage(get_called_class().': Applying XML workarounds'); + $this->content = Filter::normalizeData($this->content); + $xml = XmlParser::getSimpleXml($this->content); + + if ($xml === false) { + Logger::setMessage(get_called_class().': XML parsing error'); + Logger::setMessage(XmlParser::getErrors()); + throw new MalformedXmlException('XML parsing error'); + } + } + + $this->used_namespaces = $xml->getNamespaces(true); + $xml = $this->registerSupportedNamespaces($xml); + + $feed = new Feed(); + + $this->findFeedUrl($xml, $feed); + $this->checkFeedUrl($feed); + + $this->findSiteUrl($xml, $feed); + $this->checkSiteUrl($feed); + + $this->findFeedTitle($xml, $feed); + $this->findFeedDescription($xml, $feed); + $this->findFeedLanguage($xml, $feed); + $this->findFeedId($xml, $feed); + $this->findFeedDate($xml, $feed); + $this->findFeedLogo($xml, $feed); + $this->findFeedIcon($xml, $feed); + + foreach ($this->getItemsTree($xml) as $entry) { + $entry = $this->registerSupportedNamespaces($entry); + + $item = new Item(); + $item->xml = $entry; + $item->namespaces = $this->used_namespaces; + + $this->findItemAuthor($xml, $entry, $item); + $this->findItemAuthorUrl($xml, $entry, $item); + + $this->findItemUrl($entry, $item); + $this->checkItemUrl($feed, $item); + + $this->findItemTitle($entry, $item); + $this->findItemContent($entry, $item); + + // Id generation can use the item url/title/content (order is important) + $this->findItemId($entry, $item, $feed); + $this->findItemDate($entry, $item, $feed); + $this->findItemEnclosure($entry, $item, $feed); + $this->findItemLanguage($entry, $item, $feed); + $this->findItemCategories($entry, $item, $feed); + + $this->itemPostProcessor->execute($feed, $item); + $feed->items[] = $item; + } + + Logger::setMessage(get_called_class().PHP_EOL.$feed); + + return $feed; + } + + /** + * Check if the feed url is correct. + * + * @param Feed $feed Feed object + */ + public function checkFeedUrl(Feed $feed) + { + if ($feed->getFeedUrl() === '') { + $feed->feedUrl = $this->fallback_url; + } else { + $feed->feedUrl = Url::resolve($feed->getFeedUrl(), $this->fallback_url); + } + } + + /** + * Check if the site url is correct. + * + * @param Feed $feed Feed object + */ + public function checkSiteUrl(Feed $feed) + { + if ($feed->getSiteUrl() === '') { + $feed->siteUrl = Url::base($feed->getFeedUrl()); + } else { + $feed->siteUrl = Url::resolve($feed->getSiteUrl(), $this->fallback_url); + } + } + + /** + * Check if the item url is correct. + * + * @param Feed $feed Feed object + * @param Item $item Item object + */ + public function checkItemUrl(Feed $feed, Item $item) + { + $item->url = Url::resolve($item->getUrl(), $feed->getSiteUrl()); + } + + /** + * Find the item date. + * + * @param SimpleXMLElement $entry Feed item + * @param Item $item Item object + * @param \PicoFeed\Parser\Feed $feed Feed object + */ + public function findItemDate(SimpleXMLElement $entry, Item $item, Feed $feed) + { + $this->findItemPublishedDate($entry, $item, $feed); + $this->findItemUpdatedDate($entry, $item, $feed); + + if ($item->getPublishedDate() === null) { + // Use the updated date if available, otherwise use the feed date + $item->setPublishedDate($item->getUpdatedDate() ?: $feed->getDate()); + } + + if ($item->getUpdatedDate() === null) { + // Use the published date as fallback + $item->setUpdatedDate($item->getPublishedDate()); + } + + // Use the most recent of published and updated dates + $item->setDate(max($item->getPublishedDate(), $item->getUpdatedDate())); + } + + /** + * Get Item Post Processor instance + * + * @access public + * @return ItemPostProcessor + */ + public function getItemPostProcessor() + { + return $this->itemPostProcessor; + } + + /** + * Get DateParser instance + * + * @access public + * @return DateParser + */ + public function getDateParser() + { + if ($this->dateParser === null) { + $this->dateParser = new DateParser($this->config); + } + + return $this->dateParser; + } + + /** + * Generate a unique id for an entry (hash all arguments). + * + * @return string + */ + public function generateId() + { + return hash($this->hash_algo, implode(func_get_args())); + } + + /** + * Return true if the given language is "Right to Left". + * + * @static + * @param string $language Language: fr-FR, en-US + * @return bool + */ + public static function isLanguageRTL($language) + { + $language = strtolower($language); + + $rtl_languages = array( + 'ar', // Arabic (ar-**) + 'fa', // Farsi (fa-**) + 'ur', // Urdu (ur-**) + 'ps', // Pashtu (ps-**) + 'syr', // Syriac (syr-**) + 'dv', // Divehi (dv-**) + 'he', // Hebrew (he-**) + 'yi', // Yiddish (yi-**) + ); + + foreach ($rtl_languages as $prefix) { + if (strpos($language, $prefix) === 0) { + return true; + } + } + + return false; + } + + /** + * Set Hash algorithm used for id generation. + * + * @param string $algo Algorithm name + * @return \PicoFeed\Parser\Parser + */ + public function setHashAlgo($algo) + { + $this->hash_algo = $algo ?: $this->hash_algo; + return $this; + } + + /** + * Set config object. + * + * @param \PicoFeed\Config\Config $config Config instance + * @return \PicoFeed\Parser\Parser + */ + public function setConfig($config) + { + $this->config = $config; + $this->itemPostProcessor->setConfig($config); + return $this; + } + + /** + * Enable the content grabber. + * + * @return \PicoFeed\Parser\Parser + */ + public function disableContentFiltering() + { + $this->itemPostProcessor->unregister('PicoFeed\Processor\ContentFilterProcessor'); + return $this; + } + + /** + * Enable the content grabber. + * + * @param bool $needsRuleFile true if only pages with rule files should be + * scraped + * @param null|\Closure $scraperCallback Callback function that gets called for each + * scraper execution + * @return \PicoFeed\Parser\Parser + */ + public function enableContentGrabber($needsRuleFile = false, $scraperCallback = null) + { + $processor = new ScraperProcessor($this->config); + + if ($needsRuleFile) { + $processor->getScraper()->disableCandidateParser(); + } + + if ($scraperCallback !== null) { + $processor->setExecutionCallback($scraperCallback); + } + + $this->itemPostProcessor->register($processor); + return $this; + } + + /** + * Set ignored URLs for the content grabber. + * + * @param array $urls URLs + * @return \PicoFeed\Parser\Parser + */ + public function setGrabberIgnoreUrls(array $urls) + { + $this->itemPostProcessor->getProcessor('PicoFeed\Processor\ScraperProcessor')->ignoreUrls($urls); + return $this; + } + + /** + * Register all supported namespaces to be used within an xpath query. + * + * @param SimpleXMLElement $xml Feed xml + * @return SimpleXMLElement + */ + public function registerSupportedNamespaces(SimpleXMLElement $xml) + { + foreach ($this->namespaces as $prefix => $ns) { + $xml->registerXPathNamespace($prefix, $ns); + } + + return $xml; + } +} diff --git a/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Parser/ParserException.php b/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Parser/ParserException.php new file mode 100644 index 0000000..b5fbb69 --- /dev/null +++ b/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Parser/ParserException.php @@ -0,0 +1,15 @@ + 'http://purl.org/rss/1.0/', + 'dc' => 'http://purl.org/dc/elements/1.1/', + 'content' => 'http://purl.org/rss/1.0/modules/content/', + 'feedburner' => 'http://rssnamespace.org/feedburner/ext/1.0', + ); + + /** + * Get the path to the items XML tree. + * + * @param SimpleXMLElement $xml Feed xml + * @return SimpleXMLElement[] + */ + public function getItemsTree(SimpleXMLElement $xml) + { + return XmlParser::getXPathResult($xml, 'rss:item', $this->namespaces) + ?: XmlParser::getXPathResult($xml, 'item') + ?: $xml->item; + } + + /** + * Find the feed url. + * + * @param SimpleXMLElement $xml Feed xml + * @param \PicoFeed\Parser\Feed $feed Feed object + */ + public function findFeedUrl(SimpleXMLElement $xml, Feed $feed) + { + $feed->setFeedUrl(''); + } + + /** + * Find the site url. + * + * @param SimpleXMLElement $xml Feed xml + * @param \PicoFeed\Parser\Feed $feed Feed object + */ + public function findSiteUrl(SimpleXMLElement $xml, Feed $feed) + { + $value = XmlParser::getXPathResult($xml, 'rss:channel/rss:link', $this->namespaces) + ?: XmlParser::getXPathResult($xml, 'channel/link') + ?: $xml->channel->link; + + $feed->setSiteUrl(XmlParser::getValue($value)); + } + + /** + * Find the feed description. + * + * @param SimpleXMLElement $xml Feed xml + * @param \PicoFeed\Parser\Feed $feed Feed object + */ + public function findFeedDescription(SimpleXMLElement $xml, Feed $feed) + { + $description = XmlParser::getXPathResult($xml, 'rss:channel/rss:description', $this->namespaces) + ?: XmlParser::getXPathResult($xml, 'channel/description') + ?: $xml->channel->description; + + $feed->setDescription(XmlParser::getValue($description)); + } + + /** + * Find the feed logo url. + * + * @param SimpleXMLElement $xml Feed xml + * @param \PicoFeed\Parser\Feed $feed Feed object + */ + public function findFeedLogo(SimpleXMLElement $xml, Feed $feed) + { + $logo = XmlParser::getXPathResult($xml, 'rss:image/rss:url', $this->namespaces) + ?: XmlParser::getXPathResult($xml, 'image/url'); + + $feed->setLogo(XmlParser::getValue($logo)); + } + + /** + * Find the feed icon. + * + * @param SimpleXMLElement $xml Feed xml + * @param \PicoFeed\Parser\Feed $feed Feed object + */ + public function findFeedIcon(SimpleXMLElement $xml, Feed $feed) + { + $feed->setIcon(''); + } + + /** + * Find the feed title. + * + * @param SimpleXMLElement $xml Feed xml + * @param \PicoFeed\Parser\Feed $feed Feed object + */ + public function findFeedTitle(SimpleXMLElement $xml, Feed $feed) + { + $title = XmlParser::getXPathResult($xml, 'rss:channel/rss:title', $this->namespaces) + ?: XmlParser::getXPathResult($xml, 'channel/title') + ?: $xml->channel->title; + + $feed->setTitle(Filter::stripWhiteSpace(XmlParser::getValue($title)) ?: $feed->getSiteUrl()); + } + + /** + * Find the feed language. + * + * @param SimpleXMLElement $xml Feed xml + * @param \PicoFeed\Parser\Feed $feed Feed object + */ + public function findFeedLanguage(SimpleXMLElement $xml, Feed $feed) + { + $language = XmlParser::getXPathResult($xml, 'rss:channel/dc:language', $this->namespaces) + ?: XmlParser::getXPathResult($xml, 'channel/dc:language', $this->namespaces); + + $feed->setLanguage(XmlParser::getValue($language)); + } + + /** + * Find the feed id. + * + * @param SimpleXMLElement $xml Feed xml + * @param \PicoFeed\Parser\Feed $feed Feed object + */ + public function findFeedId(SimpleXMLElement $xml, Feed $feed) + { + $feed->setId($feed->getFeedUrl() ?: $feed->getSiteUrl()); + } + + /** + * Find the feed date. + * + * @param SimpleXMLElement $xml Feed xml + * @param \PicoFeed\Parser\Feed $feed Feed object + */ + public function findFeedDate(SimpleXMLElement $xml, Feed $feed) + { + $date = XmlParser::getXPathResult($xml, 'rss:channel/dc:date', $this->namespaces) + ?: XmlParser::getXPathResult($xml, 'channel/dc:date', $this->namespaces); + + $feed->setDate($this->getDateParser()->getDateTime(XmlParser::getValue($date))); + } + + /** + * Find the item published date. + * + * @param SimpleXMLElement $entry Feed item + * @param Item $item Item object + * @param \PicoFeed\Parser\Feed $feed Feed object + */ + public function findItemPublishedDate(SimpleXMLElement $entry, Item $item, Feed $feed) + { + $date = XmlParser::getXPathResult($entry, 'dc:date', $this->namespaces); + + $item->setPublishedDate(!empty($date) ? $this->getDateParser()->getDateTime(XmlParser::getValue($date)) : null); + } + + /** + * Find the item updated date. + * + * @param SimpleXMLElement $entry Feed item + * @param Item $item Item object + * @param \PicoFeed\Parser\Feed $feed Feed object + */ + public function findItemUpdatedDate(SimpleXMLElement $entry, Item $item, Feed $feed) + { + if ($item->publishedDate === null) { + $this->findItemPublishedDate($entry, $item, $feed); + } + $item->setUpdatedDate($item->getPublishedDate()); // No updated date in RSS 1.0 specifications + } + + /** + * Find the item title. + * + * @param SimpleXMLElement $entry Feed item + * @param \PicoFeed\Parser\Item $item Item object + */ + public function findItemTitle(SimpleXMLElement $entry, Item $item) + { + $title = XmlParser::getXPathResult($entry, 'rss:title', $this->namespaces) + ?: XmlParser::getXPathResult($entry, 'title') + ?: $entry->title; + + $item->setTitle(Filter::stripWhiteSpace(XmlParser::getValue($title)) ?: $item->getUrl()); + } + + /** + * Find the item author. + * + * @param SimpleXMLElement $xml Feed + * @param SimpleXMLElement $entry Feed item + * @param \PicoFeed\Parser\Item $item Item object + */ + public function findItemAuthor(SimpleXMLElement $xml, SimpleXMLElement $entry, Item $item) + { + $author = XmlParser::getXPathResult($entry, 'dc:creator', $this->namespaces) + ?: XmlParser::getXPathResult($xml, 'rss:channel/dc:creator', $this->namespaces) + ?: XmlParser::getXPathResult($xml, 'channel/dc:creator', $this->namespaces); + + $item->setAuthor(XmlParser::getValue($author)); + } + + /** + * Find the item author URL. + * + * @param SimpleXMLElement $xml Feed + * @param SimpleXMLElement $entry Feed item + * @param \PicoFeed\Parser\Item $item Item object + */ + public function findItemAuthorUrl(SimpleXMLElement $xml, SimpleXMLElement $entry, Item $item) + { + // There appears to be no support for author URL in the dc: terms + $item->setAuthorUrl(''); + } + + /** + * Find the item content. + * + * @param SimpleXMLElement $entry Feed item + * @param \PicoFeed\Parser\Item $item Item object + */ + public function findItemContent(SimpleXMLElement $entry, Item $item) + { + $content = XmlParser::getXPathResult($entry, 'content:encoded', $this->namespaces); + + if (XmlParser::getValue($content) === '') { + $content = XmlParser::getXPathResult($entry, 'rss:description', $this->namespaces) + ?: XmlParser::getXPathResult($entry, 'description') + ?: $entry->description; + } + + $item->setContent(XmlParser::getValue($content)); + } + + /** + * Find the item URL. + * + * @param SimpleXMLElement $entry Feed item + * @param \PicoFeed\Parser\Item $item Item object + */ + public function findItemUrl(SimpleXMLElement $entry, Item $item) + { + $link = XmlParser::getXPathResult($entry, 'feedburner:origLink', $this->namespaces) + ?: XmlParser::getXPathResult($entry, 'rss:link', $this->namespaces) + ?: XmlParser::getXPathResult($entry, 'link') + ?: $entry->link; + + $item->setUrl(XmlParser::getValue($link)); + } + + /** + * Genereate the item id. + * + * @param SimpleXMLElement $entry Feed item + * @param \PicoFeed\Parser\Item $item Item object + * @param \PicoFeed\Parser\Feed $feed Feed object + */ + public function findItemId(SimpleXMLElement $entry, Item $item, Feed $feed) + { + $item->setId($this->generateId( + $item->getTitle(), $item->getUrl(), $item->getContent() + )); + } + + /** + * Find the item enclosure. + * + * @param SimpleXMLElement $entry Feed item + * @param \PicoFeed\Parser\Item $item Item object + * @param \PicoFeed\Parser\Feed $feed Feed object + */ + public function findItemEnclosure(SimpleXMLElement $entry, Item $item, Feed $feed) + { + } + + /** + * Find the item language. + * + * @param SimpleXMLElement $entry Feed item + * @param \PicoFeed\Parser\Item $item Item object + * @param \PicoFeed\Parser\Feed $feed Feed object + */ + public function findItemLanguage(SimpleXMLElement $entry, Item $item, Feed $feed) + { + $language = XmlParser::getXPathResult($entry, 'dc:language', $this->namespaces); + + $item->setLanguage(XmlParser::getValue($language) ?: $feed->getLanguage()); + } + + /** + * Find the item categories. + * + * @param SimpleXMLElement $entry Feed item + * @param Item $item Item object + * @param Feed $feed Feed object + */ + public function findItemCategories(SimpleXMLElement $entry, Item $item, Feed $feed) + { + $categories = XmlParser::getXPathResult($entry, 'dc:subject', $this->namespaces); + $item->setCategoriesFromXml($categories); + } +} diff --git a/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Parser/Rss20.php b/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Parser/Rss20.php new file mode 100644 index 0000000..da9c0d5 --- /dev/null +++ b/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Parser/Rss20.php @@ -0,0 +1,330 @@ + 'http://purl.org/dc/elements/1.1/', + 'content' => 'http://purl.org/rss/1.0/modules/content/', + 'feedburner' => 'http://rssnamespace.org/feedburner/ext/1.0', + 'atom' => 'http://www.w3.org/2005/Atom', + ); + + /** + * Get the path to the items XML tree. + * + * @param SimpleXMLElement $xml Feed xml + * @return SimpleXMLElement[] + */ + public function getItemsTree(SimpleXMLElement $xml) + { + return XmlParser::getXPathResult($xml, 'channel/item'); + } + + /** + * Find the feed url. + * + * @param SimpleXMLElement $xml Feed xml + * @param \PicoFeed\Parser\Feed $feed Feed object + */ + public function findFeedUrl(SimpleXMLElement $xml, Feed $feed) + { + $feed->setFeedUrl(''); + } + + /** + * Find the site url. + * + * @param SimpleXMLElement $xml Feed xml + * @param \PicoFeed\Parser\Feed $feed Feed object + */ + public function findSiteUrl(SimpleXMLElement $xml, Feed $feed) + { + $value = XmlParser::getXPathResult($xml, 'channel/link'); + $feed->setSiteUrl(XmlParser::getValue($value)); + } + + /** + * Find the feed description. + * + * @param SimpleXMLElement $xml Feed xml + * @param \PicoFeed\Parser\Feed $feed Feed object + */ + public function findFeedDescription(SimpleXMLElement $xml, Feed $feed) + { + $value = XmlParser::getXPathResult($xml, 'channel/description'); + $feed->setDescription(XmlParser::getValue($value)); + } + + /** + * Find the feed logo url. + * + * @param SimpleXMLElement $xml Feed xml + * @param \PicoFeed\Parser\Feed $feed Feed object + */ + public function findFeedLogo(SimpleXMLElement $xml, Feed $feed) + { + $value = XmlParser::getXPathResult($xml, 'channel/image/url'); + $feed->setLogo(XmlParser::getValue($value)); + } + + /** + * Find the feed icon. + * + * @param SimpleXMLElement $xml Feed xml + * @param \PicoFeed\Parser\Feed $feed Feed object + */ + public function findFeedIcon(SimpleXMLElement $xml, Feed $feed) + { + $feed->setIcon(''); + } + + /** + * Find the feed title. + * + * @param SimpleXMLElement $xml Feed xml + * @param \PicoFeed\Parser\Feed $feed Feed object + */ + public function findFeedTitle(SimpleXMLElement $xml, Feed $feed) + { + $title = XmlParser::getXPathResult($xml, 'channel/title'); + $feed->setTitle(Filter::stripWhiteSpace(XmlParser::getValue($title)) ?: $feed->getSiteUrl()); + } + + /** + * Find the feed language. + * + * @param SimpleXMLElement $xml Feed xml + * @param \PicoFeed\Parser\Feed $feed Feed object + */ + public function findFeedLanguage(SimpleXMLElement $xml, Feed $feed) + { + $value = XmlParser::getXPathResult($xml, 'channel/language'); + $feed->setLanguage(XmlParser::getValue($value)); + } + + /** + * Find the feed id. + * + * @param SimpleXMLElement $xml Feed xml + * @param \PicoFeed\Parser\Feed $feed Feed object + */ + public function findFeedId(SimpleXMLElement $xml, Feed $feed) + { + $feed->setId($feed->getFeedUrl() ?: $feed->getSiteUrl()); + } + + /** + * Find the feed date. + * + * @param SimpleXMLElement $xml Feed xml + * @param \PicoFeed\Parser\Feed $feed Feed object + */ + public function findFeedDate(SimpleXMLElement $xml, Feed $feed) + { + $publish_date = XmlParser::getXPathResult($xml, 'channel/pubDate'); + $update_date = XmlParser::getXPathResult($xml, 'channel/lastBuildDate'); + + $published = !empty($publish_date) ? $this->getDateParser()->getDateTime(XmlParser::getValue($publish_date)) : null; + $updated = !empty($update_date) ? $this->getDateParser()->getDateTime(XmlParser::getValue($update_date)) : null; + + if ($published === null && $updated === null) { + $feed->setDate($this->getDateParser()->getCurrentDateTime()); // We use the current date if there is no date for the feed + } elseif ($published !== null && $updated !== null) { + $feed->setDate(max($published, $updated)); // We use the most recent date between published and updated + } else { + $feed->setDate($updated ?: $published); + } + } + + /** + * Find the item published date. + * + * @param SimpleXMLElement $entry Feed item + * @param Item $item Item object + * @param \PicoFeed\Parser\Feed $feed Feed object + */ + public function findItemPublishedDate(SimpleXMLElement $entry, Item $item, Feed $feed) + { + $date = XmlParser::getXPathResult($entry, 'pubDate'); + + $item->setPublishedDate(!empty($date) ? $this->getDateParser()->getDateTime(XmlParser::getValue($date)) : null); + } + + /** + * Find the item updated date. + * + * @param SimpleXMLElement $entry Feed item + * @param Item $item Item object + * @param \PicoFeed\Parser\Feed $feed Feed object + */ + public function findItemUpdatedDate(SimpleXMLElement $entry, Item $item, Feed $feed) + { + if ($item->publishedDate === null) { + $this->findItemPublishedDate($entry, $item, $feed); + } + $item->setUpdatedDate($item->getPublishedDate()); // No updated date in RSS 2.0 specifications + } + + /** + * Find the item title. + * + * @param SimpleXMLElement $entry Feed item + * @param \PicoFeed\Parser\Item $item Item object + */ + public function findItemTitle(SimpleXMLElement $entry, Item $item) + { + $value = XmlParser::getXPathResult($entry, 'title'); + $item->setTitle(Filter::stripWhiteSpace(XmlParser::getValue($value)) ?: $item->getUrl()); + } + + /** + * Find the item author. + * + * @param SimpleXMLElement $xml Feed + * @param SimpleXMLElement $entry Feed item + * @param \PicoFeed\Parser\Item $item Item object + */ + public function findItemAuthor(SimpleXMLElement $xml, SimpleXMLElement $entry, Item $item) + { + $value = XmlParser::getXPathResult($entry, 'dc:creator', $this->namespaces) + ?: XmlParser::getXPathResult($entry, 'author') + ?: XmlParser::getXPathResult($xml, 'channel/dc:creator', $this->namespaces) + ?: XmlParser::getXPathResult($xml, 'channel/managingEditor'); + + $item->setAuthor(XmlParser::getValue($value)); + } + + /** + * Find the item author URL. + * + * @param SimpleXMLElement $xml Feed + * @param SimpleXMLElement $entry Feed item + * @param \PicoFeed\Parser\Item $item Item object + */ + public function findItemAuthorUrl(SimpleXMLElement $xml, SimpleXMLElement $entry, Item $item) + { + // There appears to be no support for author URL in the dc: terms or author element + $item->setAuthorUrl(''); + } + + /** + * Find the item content. + * + * @param SimpleXMLElement $entry Feed item + * @param \PicoFeed\Parser\Item $item Item object + */ + public function findItemContent(SimpleXMLElement $entry, Item $item) + { + $content = XmlParser::getXPathResult($entry, 'content:encoded', $this->namespaces); + + if (XmlParser::getValue($content) === '') { + $content = XmlParser::getXPathResult($entry, 'description'); + } + + $item->setContent(XmlParser::getValue($content)); + } + + /** + * Find the item URL. + * + * @param SimpleXMLElement $entry Feed item + * @param \PicoFeed\Parser\Item $item Item object + */ + public function findItemUrl(SimpleXMLElement $entry, Item $item) + { + $link = XmlParser::getXPathResult($entry, 'feedburner:origLink', $this->namespaces) + ?: XmlParser::getXPathResult($entry, 'link') + ?: XmlParser::getXPathResult($entry, 'atom:link/@href', $this->namespaces); + + if (!empty($link)) { + $item->setUrl(XmlParser::getValue($link)); + } else { + $link = XmlParser::getXPathResult($entry, 'guid'); + $link = XmlParser::getValue($link); + + if (filter_var($link, FILTER_VALIDATE_URL) !== false) { + $item->setUrl($link); + } + } + } + + /** + * Genereate the item id. + * + * @param SimpleXMLElement $entry Feed item + * @param \PicoFeed\Parser\Item $item Item object + * @param \PicoFeed\Parser\Feed $feed Feed object + */ + public function findItemId(SimpleXMLElement $entry, Item $item, Feed $feed) + { + $id = XmlParser::getValue(XmlParser::getXPathResult($entry, 'guid')); + + if ($id) { + $item->setId($this->generateId($id)); + } else { + $item->setId($this->generateId( + $item->getTitle(), $item->getUrl(), $item->getContent() + )); + } + } + + /** + * Find the item enclosure. + * + * @param SimpleXMLElement $entry Feed item + * @param \PicoFeed\Parser\Item $item Item object + * @param \PicoFeed\Parser\Feed $feed Feed object + */ + public function findItemEnclosure(SimpleXMLElement $entry, Item $item, Feed $feed) + { + if (isset($entry->enclosure)) { + $type = XmlParser::getXPathResult($entry, 'enclosure/@type'); + $url = XmlParser::getXPathResult($entry, 'feedburner:origEnclosureLink', $this->namespaces) + ?: XmlParser::getXPathResult($entry, 'enclosure/@url'); + + $item->setEnclosureUrl(Url::resolve(XmlParser::getValue($url), $feed->getSiteUrl())); + $item->setEnclosureType(XmlParser::getValue($type)); + } + } + + /** + * Find the item language. + * + * @param SimpleXMLElement $entry Feed item + * @param \PicoFeed\Parser\Item $item Item object + * @param \PicoFeed\Parser\Feed $feed Feed object + */ + public function findItemLanguage(SimpleXMLElement $entry, Item $item, Feed $feed) + { + $language = XmlParser::getXPathResult($entry, 'dc:language', $this->namespaces); + $item->setLanguage(XmlParser::getValue($language) ?: $feed->getLanguage()); + } + + /** + * Find the item categories. + * + * @param SimpleXMLElement $entry Feed item + * @param Item $item Item object + * @param Feed $feed Feed object + */ + public function findItemCategories(SimpleXMLElement $entry, Item $item, Feed $feed) + { + $categories = XmlParser::getXPathResult($entry, 'category'); + $item->setCategoriesFromXml($categories); + } +} diff --git a/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Parser/Rss91.php b/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Parser/Rss91.php new file mode 100644 index 0000000..058fca1 --- /dev/null +++ b/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Parser/Rss91.php @@ -0,0 +1,13 @@ +childNodes->length === 0) { + return false; + } + + return $dom; + } + + /** + * Small wrapper around Laminas Xml to turn their exceptions into PicoFeed exceptions + * + * @static + * @access private + * @param string $input + * @param DOMDocument $dom + * @throws XmlEntityException + * @return SimpleXMLElement|DomDocument|boolean + */ + private static function scan($input, $dom = null) + { + try { + return Security::scan($input, $dom); + } catch(RuntimeException $e) { + throw new XmlEntityException($e->getMessage()); + } + } + + /** + * Load HTML document by using a DomDocument instance or return false on failure. + * + * @static + * @access public + * @param string $input XML content + * @return DOMDocument + */ + public static function getHtmlDocument($input) + { + $dom = new DomDocument(); + + if (empty($input)) { + return $dom; + } + + libxml_use_internal_errors(true); + + if (version_compare(PHP_VERSION, '5.4.0', '>=')) { + $dom->loadHTML($input, LIBXML_NONET); + } else { + $dom->loadHTML($input); + } + + self::$errors = []; + foreach (libxml_get_errors() as $error) { + self::$errors[] = sprintf('XML error: %s (Line: %d - Column: %d - Code: %d)', + $error->message, + $error->line, + $error->column, + $error->code + ); + } + + libxml_use_internal_errors(false); + + return $dom; + } + + /** + * Convert a HTML document to XML. + * + * @static + * @access public + * @param string $html HTML document + * @return string + */ + public static function htmlToXml($html) + { + $dom = self::getHtmlDocument(''.$html); + return $dom->saveXML($dom->getElementsByTagName('body')->item(0)); + } + + /** + * Get XML parser errors. + * + * @static + * @access public + * @return string + */ + public static function getErrors() + { + return implode(', ', self::$errors); + } + + /** + * Get the encoding from a xml tag. + * + * @static + * @access public + * @param string $data Input data + * @return string + */ + public static function getEncodingFromXmlTag($data) + { + $encoding = ''; + + if (strpos($data, '')); + $data = str_replace("'", '"', $data); + + $p1 = strpos($data, 'encoding='); + $p2 = strpos($data, '"', $p1 + 10); + + if ($p1 !== false && $p2 !== false) { + $encoding = substr($data, $p1 + 10, $p2 - $p1 - 10); + $encoding = strtolower($encoding); + } + } + + return $encoding; + } + + /** + * Get the charset from a meta tag. + * + * @static + * @access public + * @param string $data Input data + * @return string + */ + public static function getEncodingFromMetaTag($data) + { + $encoding = ''; + + if (preg_match('/;]+)/i', $data, $match) === 1) { + $encoding = strtolower($match[1]); + } + + return $encoding; + } + + /** + * Rewrite XPath query to use namespace-uri and local-name derived from prefix. + * + * @static + * @access public + * @param string $query XPath query + * @param array $ns Prefix to namespace URI mapping + * @return string + */ + public static function replaceXPathPrefixWithNamespaceURI($query, array $ns) + { + return preg_replace_callback('/([A-Z0-9]+):([A-Z0-9]+)/iu', function ($matches) use ($ns) { + // don't try to map the special prefix XML + if (strtolower($matches[1]) === 'xml') { + return $matches[0]; + } + + return '*[namespace-uri()="'.$ns[$matches[1]].'" and local-name()="'.$matches[2].'"]'; + }, + $query); + } + + /** + * Get the result elements of a XPath query. + * + * @static + * @access public + * @param SimpleXMLElement $xml XML element + * @param string $query XPath query + * @param array $ns Prefix to namespace URI mapping + * @return SimpleXMLElement[] + */ + public static function getXPathResult(SimpleXMLElement $xml, $query, array $ns = array()) + { + if (!empty($ns)) { + $query = static::replaceXPathPrefixWithNamespaceURI($query, $ns); + } + + return $xml->xpath($query); + } + + /** + * Get the first Xpath result or SimpleXMLElement value + * + * @static + * @access public + * @param mixed $value + * @return string + */ + public static function getValue($value) + { + $result = ''; + + if (is_array($value) && count($value) > 0) { + $result = (string) $value[0]; + } elseif (is_a($value, 'SimpleXMLElement')) { + return $result = (string) $value; + } + + return trim($result); + } +} diff --git a/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/PicoFeedException.php b/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/PicoFeedException.php new file mode 100644 index 0000000..2de9e4b --- /dev/null +++ b/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/PicoFeedException.php @@ -0,0 +1,14 @@ +config->getContentFiltering(true)) { + $filter = Filter::html($item->getContent(), $feed->getSiteUrl()); + $filter->setConfig($this->config); + $item->setContent($filter->execute()); + } else { + Logger::setMessage(get_called_class().': Content filtering disabled'); + } + + return false; + } +} diff --git a/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Processor/ContentGeneratorProcessor.php b/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Processor/ContentGeneratorProcessor.php new file mode 100644 index 0000000..49adf9c --- /dev/null +++ b/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Processor/ContentGeneratorProcessor.php @@ -0,0 +1,49 @@ +generators as $generator) { + $className = '\PicoFeed\Generator\\'.ucfirst($generator).'ContentGenerator'; + $object = new $className($this->config); + + if ($object->execute($item)) { + return true; + } + } + + return false; + } +} diff --git a/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Processor/ItemPostProcessor.php b/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Processor/ItemPostProcessor.php new file mode 100644 index 0000000..7b092b5 --- /dev/null +++ b/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Processor/ItemPostProcessor.php @@ -0,0 +1,106 @@ +processors as $processor) { + if ($processor->execute($feed, $item)) { + return true; + } + } + + return false; + } + + /** + * Register a new Item post-processor + * + * @access public + * @param ItemProcessorInterface $processor + * @return ItemPostProcessor + */ + public function register(ItemProcessorInterface $processor) + { + $this->processors[get_class($processor)] = $processor; + return $this; + } + + /** + * Remove Processor instance + * + * @access public + * @param string $class + * @return ItemPostProcessor + */ + public function unregister($class) + { + if (isset($this->processors[$class])) { + unset($this->processors[$class]); + } + + return $this; + } + + /** + * Checks whether a specific processor is registered or not + * + * @access public + * @param string $class + * @return bool + */ + public function hasProcessor($class) + { + return isset($this->processors[$class]); + } + + /** + * Get Processor instance + * + * @access public + * @param string $class + * @return ItemProcessorInterface|null + */ + public function getProcessor($class) + { + return isset($this->processors[$class]) ? $this->processors[$class] : null; + } + + public function setConfig(Config $config) + { + foreach ($this->processors as $processor) { + $processor->setConfig($config); + } + + return false; + } +} diff --git a/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Processor/ItemProcessorInterface.php b/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Processor/ItemProcessorInterface.php new file mode 100644 index 0000000..5d53226 --- /dev/null +++ b/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Processor/ItemProcessorInterface.php @@ -0,0 +1,25 @@ +executionCallback = $executionCallback; + return $this; + } + + /** + * Execute Item Processor + * + * @access public + * @param Feed $feed + * @param Item $item + * @return bool + */ + public function execute(Feed $feed, Item $item) + { + if (!in_array($item->getUrl(), $this->ignoredUrls)) { + $scraper = $this->getScraper(); + $scraper->setUrl($item->getUrl()); + $scraper->execute(); + + if ($this->executionCallback && is_callable($this->executionCallback)) { + call_user_func($this->executionCallback, $feed, $item, $scraper); + } + + if ($scraper->hasRelevantContent()) { + $item->setContent($scraper->getFilteredContent()); + } + } + + return false; + } + + /** + * Ignore list of URLs + * + * @access public + * @param array $urls + * @return $this + */ + public function ignoreUrls(array $urls) + { + $this->ignoredUrls = $urls; + return $this; + } + + /** + * Returns Scraper instance + * + * @access public + * @return Scraper + */ + public function getScraper() + { + if ($this->scraper === null) { + $this->scraper = new Scraper($this->config); + } + + return $this->scraper; + } +} diff --git a/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Reader/Favicon.php b/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Reader/Favicon.php new file mode 100644 index 0000000..d4ca07d --- /dev/null +++ b/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Reader/Favicon.php @@ -0,0 +1,186 @@ +content; + } + + /** + * Get the icon file type (available only after the download). + * + * @return string + */ + public function getType() + { + foreach ($this->types as $type) { + if (strpos($this->content_type, $type) === 0) { + return $type; + } + } + + return 'image/x-icon'; + } + + /** + * Get data URI (http://en.wikipedia.org/wiki/Data_URI_scheme). + * + * @return string + */ + public function getDataUri() + { + if (empty($this->content)) { + return ''; + } + + return sprintf( + 'data:%s;base64,%s', + $this->getType(), + base64_encode($this->content) + ); + } + + /** + * Download and check if a resource exists. + * + * @param string $url URL + * @return \PicoFeed\Client\Client Client instance + */ + public function download($url) + { + $client = Client::getInstance(); + $client->setConfig($this->config); + + Logger::setMessage(get_called_class().' Download => '.$url); + + try { + $client->execute($url); + } catch (ClientException $e) { + Logger::setMessage(get_called_class().' Download Failed => '.$e->getMessage()); + } + + return $client; + } + + /** + * Check if a remote file exists. + * + * @param string $url URL + * @return bool + */ + public function exists($url) + { + return $this->download($url)->getContent() !== ''; + } + + /** + * Get the icon link for a website. + * + * @param string $website_link URL + * @param string $favicon_link optional URL + * @return string + */ + public function find($website_link, $favicon_link = '') + { + $website = new Url($website_link); + + if ($favicon_link !== '') { + $icons = array($favicon_link); + } else { + $icons = $this->extract($this->download($website->getBaseUrl('/'))->getContent()); + $icons[] = $website->getBaseUrl('/favicon.ico'); + } + + foreach ($icons as $icon_link) { + $icon_link = Url::resolve($icon_link, $website); + $resource = $this->download($icon_link); + $this->content = $resource->getContent(); + $this->content_type = $resource->getContentType(); + + if ($this->content !== '') { + return $icon_link; + } elseif ($favicon_link !== '') { + return $this->find($website_link); + } + } + + return ''; + } + + /** + * Extract the icon links from the HTML. + * + * @param string $html HTML + * @return array + */ + public function extract($html) + { + $icons = array(); + + if (empty($html)) { + return $icons; + } + + $dom = XmlParser::getHtmlDocument($html); + + $xpath = new DOMXpath($dom); + $elements = $xpath->query('//link[@rel="icon" or @rel="shortcut icon" or @rel="Shortcut Icon" or @rel="icon shortcut"]'); + + for ($i = 0; $i < $elements->length; ++$i) { + $icons[] = $elements->item($i)->getAttribute('href'); + } + + return $icons; + } +} diff --git a/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Reader/Reader.php b/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Reader/Reader.php new file mode 100644 index 0000000..596b02d --- /dev/null +++ b/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Reader/Reader.php @@ -0,0 +1,189 @@ + '//feed', + 'Rss20' => '//rss[@version="2.0"]', + 'Rss92' => '//rss[@version="0.92"]', + 'Rss91' => '//rss[@version="0.91"]', + 'Rss10' => '//rdf', + ); + + /** + * Download a feed (no discovery). + * + * @param string $url Feed url + * @param string $last_modified Last modified HTTP header + * @param string $etag Etag HTTP header + * @param string $username HTTP basic auth username + * @param string $password HTTP basic auth password + * + * @return \PicoFeed\Client\Client + */ + public function download($url, $last_modified = '', $etag = '', $username = '', $password = '') + { + $url = $this->prependScheme($url); + + return Client::getInstance() + ->setConfig($this->config) + ->setLastModified($last_modified) + ->setEtag($etag) + ->setUsername($username) + ->setPassword($password) + ->execute($url); + } + + /** + * Discover and download a feed. + * + * @param string $url Feed or website url + * @param string $last_modified Last modified HTTP header + * @param string $etag Etag HTTP header + * @param string $username HTTP basic auth username + * @param string $password HTTP basic auth password + * @return Client + * @throws SubscriptionNotFoundException + */ + public function discover($url, $last_modified = '', $etag = '', $username = '', $password = '') + { + $client = $this->download($url, $last_modified, $etag, $username, $password); + + // It's already a feed or the feed was not modified + if (!$client->isModified() || $this->detectFormat($client->getContent())) { + return $client; + } + + // Try to find a subscription + $links = $this->find($client->getUrl(), $client->getContent()); + + if (empty($links)) { + throw new SubscriptionNotFoundException('Unable to find a subscription'); + } + + return $this->download($links[0], $last_modified, $etag, $username, $password); + } + + /** + * Find feed urls inside a HTML document. + * + * @param string $url Website url + * @param string $html HTML content + * + * @return array List of feed links + */ + public function find($url, $html) + { + Logger::setMessage(get_called_class().': Try to discover subscriptions'); + + $dom = XmlParser::getHtmlDocument($html); + $xpath = new DOMXPath($dom); + $links = array(); + + $queries = array( + '//link[@type="application/rss+xml"]', + '//link[@type="application/atom+xml"]', + ); + + foreach ($queries as $query) { + $nodes = $xpath->query($query); + + foreach ($nodes as $node) { + $link = $node->getAttribute('href'); + + if (!empty($link)) { + $feedUrl = new Url($link); + $siteUrl = new Url($url); + + $links[] = $feedUrl->getAbsoluteUrl($feedUrl->isRelativeUrl() ? $siteUrl->getBaseUrl() : ''); + } + } + } + + Logger::setMessage(get_called_class().': '.implode(', ', $links)); + + return $links; + } + + /** + * Get a parser instance. + * + * @param string $url Site url + * @param string $content Feed content + * @param string $encoding HTTP encoding + * @return \PicoFeed\Parser\Parser + * @throws UnsupportedFeedFormatException + */ + public function getParser($url, $content, $encoding) + { + $format = $this->detectFormat($content); + + if (empty($format)) { + throw new UnsupportedFeedFormatException('Unable to detect feed format'); + } + + $className = '\PicoFeed\Parser\\'.$format; + + $parser = new $className($content, $encoding, $url); + $parser->setHashAlgo($this->config->getParserHashAlgo()); + $parser->setConfig($this->config); + + return $parser; + } + + /** + * Detect the feed format. + * + * @param string $content Feed content + * @return string + */ + public function detectFormat($content) + { + $dom = XmlParser::getHtmlDocument($content); + $xpath = new DOMXPath($dom); + + foreach ($this->formats as $parser_name => $query) { + $nodes = $xpath->query($query); + + if ($nodes->length === 1) { + return $parser_name; + } + } + + return ''; + } + + /** + * Add the prefix "http://" if the end-user just enter a domain name. + * + * @param string $url Url + * @return string + */ + public function prependScheme($url) + { + if (!preg_match('%^https?://%', $url)) { + $url = 'http://'.$url; + } + + return $url; + } +} diff --git a/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Reader/ReaderException.php b/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Reader/ReaderException.php new file mode 100644 index 0000000..4f03dbe --- /dev/null +++ b/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Reader/ReaderException.php @@ -0,0 +1,14 @@ + array( + '%.*%' => array( + 'test_url' => 'http://combat.blog.lemonde.fr/2013/08/31/teddy-riner-le-rookie-devenu-rambo/#xtor=RSS-3208', + 'body' => array( + '//div[@class="entry-content"]', + ), + 'strip' => array( + '//*[contains(@class, "fb-like") or contains(@class, "social")]' + ), + ) + ) +); diff --git a/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/.blogs.nytimes.com.php b/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/.blogs.nytimes.com.php new file mode 100644 index 0000000..ee641b0 --- /dev/null +++ b/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/.blogs.nytimes.com.php @@ -0,0 +1,15 @@ + array( + '%.*%' => array( + 'title' => '//header/h1', + 'test_url' => 'http://bits.blogs.nytimes.com/2012/01/16/wikipedia-plans-to-go-dark-on-wednesday-to-protest-sopa/', + 'body' => array( + '//div[@class="postContent"]', + ), + 'strip' => array( + '//*[@class="shareToolsBox"]', + ), + ) + ) +); diff --git a/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/.igen.fr.php b/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/.igen.fr.php new file mode 100644 index 0000000..f2028f4 --- /dev/null +++ b/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/.igen.fr.php @@ -0,0 +1,13 @@ + array( + '%.*%' => array( + 'test_url' => 'http://www.igen.fr/ailleurs/2014/05/nvidia-va-delaisser-les-smartphones-grand-public-86031', + 'body' => array( + '//div[contains(@class, "field-name-body")]' + ), + 'strip' => array( + ), + ) + ) +); diff --git a/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/.nytimes.com.php b/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/.nytimes.com.php new file mode 100644 index 0000000..8ff921c --- /dev/null +++ b/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/.nytimes.com.php @@ -0,0 +1,11 @@ + array( + '%.*%' => array( + 'test_url' => 'http://www.nytimes.com/2011/05/15/world/middleeast/15prince.html', + 'body' => array( + '//p[contains(@class, "story-content")] | //div[@class="image"]', + ), + ) + ) +); diff --git a/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/.over-blog.com.php b/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/.over-blog.com.php new file mode 100644 index 0000000..cc5d83c --- /dev/null +++ b/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/.over-blog.com.php @@ -0,0 +1,11 @@ + array( + '%.*%' => array( + 'test_url' => 'http://eliascarpe.over-blog.com/2015/12/re-upload-projets-d-avenir.html', + 'body' => array( + '//div[contains(concat(" ", normalize-space(@class), " "), " ob-section ")]', + ), + ) + ) +); diff --git a/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/.phoronix.com.php b/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/.phoronix.com.php new file mode 100644 index 0000000..66713f7 --- /dev/null +++ b/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/.phoronix.com.php @@ -0,0 +1,12 @@ + array( + '%.*%' => array( + 'test_url' => 'http://www.phoronix.com/scan.php?page=article&item=amazon_ec2_bare&num=1', + 'body' => array( + '//div[@class="content"]', + ), + 'strip' => array(), + ), + ), +); diff --git a/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/.slate.com.php b/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/.slate.com.php new file mode 100644 index 0000000..a795bca --- /dev/null +++ b/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/.slate.com.php @@ -0,0 +1,20 @@ + array( + '%.*%' => array( + 'test_url' => 'http://www.slate.com/articles/business/moneybox/2013/08/microsoft_ceo_steve_ballmer_retires_a_firsthand_account_of_the_company_s.html', + 'body' => array( + '//div[@class="sl-art-body"]', + ), + 'strip' => array( + '//*[contains(@class, "social") or contains(@class, "comments") or contains(@class, "sl-article-floatin-tools") or contains(@class, "sl-art-pag")]', + '//*[@id="mys_slate_logged_in"]', + '//*[@id="sl_article_tools_myslate_bottom"]', + '//*[@id="mys_myslate"]', + '//*[@class="sl-viral-container"]', + '//*[@class="sl-art-creds-cntr"]', + '//*[@class="sl-art-ad-midflex"]', + ) + ) + ) +); diff --git a/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/.theguardian.com.php b/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/.theguardian.com.php new file mode 100644 index 0000000..e0d6f3f --- /dev/null +++ b/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/.theguardian.com.php @@ -0,0 +1,14 @@ + array( + '%.*%' => array( + 'test_url' => 'http://www.theguardian.com/sustainable-business/2015/feb/02/2015-hyper-transparency-global-business', + 'body' => array( + '//div[contains(@class, "content__main-column--article")]', + ), + 'strip' => array( + '//div[contains(@class, "meta-container")]', + ), + ) + ) +); diff --git a/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/.wikipedia.org.php b/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/.wikipedia.org.php new file mode 100644 index 0000000..7b8f76e --- /dev/null +++ b/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/.wikipedia.org.php @@ -0,0 +1,29 @@ + array( + '%.*%' => array( + 'test_url' => 'https://en.wikipedia.org/wiki/Grace_Hopper', + 'body' => array( + '//div[@id="bodyContent"]', + ), + 'strip' => array( + "//div[@id='toc']", + "//div[@id='catlinks']", + "//div[@id='jump-to-nav']", + "//div[@class='thumbcaption']//div[@class='magnify']", + "//table[@class='navbox']", + "//table[contains(@class, 'infobox')]", + "//div[@class='dablink']", + "//div[@id='contentSub']", + "//div[@id='siteSub']", + "//table[@id='persondata']", + "//table[contains(@class, 'metadata')]", + "//*[contains(@class, 'noprint')]", + "//*[contains(@class, 'printfooter')]", + "//*[contains(@class, 'editsection')]", + "//*[contains(@class, 'error')]", + "//span[@title='pronunciation:']", + ), + ) + ) +); diff --git a/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/.wired.com.php b/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/.wired.com.php new file mode 100644 index 0000000..952b09a --- /dev/null +++ b/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/.wired.com.php @@ -0,0 +1,44 @@ + array( + '%.*%' => array( + 'test_url' => 'http://www.wired.com/gamelife/2013/09/ouya-free-the-games/', + 'body' => array( + '//div[@data-js="gallerySlides"]', + '//div[starts-with(@class,"post")]', + ), + 'strip' => array( + '//h1', + '//nav', + '//button', + '//figure[starts-with(@class,"rad-slide")]', + '//figure[starts-with(@class,"end-slate")]', + '//div[contains(@class,"mobile-")]', + '//div[starts-with(@class,"mob-gallery-launcher")]', + '//div[contains(@id,"mobile-")]', + '//span[contains(@class,"slide-count")]', + '//div[contains(@class,"show-ipad")]', + '//img[contains(@id,"-hero-bg")]', + '//div[@data-js="overlayWrap"]', + '//ul[contains(@class,"metadata")]', + '//div[@class="opening center"]', + '//p[contains(@class="byline-mob"]', + '//div[@id="o-gallery"]', + '//div[starts-with(@class,"sm-col")]', + '//div[contains(@class,"pad-b-huge")]', + '//a[contains(@class,"visually-hidden")]', + '//*[@class="social"]', + '//i', + '//div[@data-js="mobGalleryAd"]', + '//div[contains(@class,"footer")]', + '//div[contains(@data-js,"fader")]', + '//div[@id="sharing"]', + '//div[contains(@id,"related")]', + '//div[@id="most-pop"]', + '//ul[@id="article-tags"]', + '//style', + '//section[contains(@class,"footer")]' + ), + ) + ) +); diff --git a/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/.wsj.com.php b/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/.wsj.com.php new file mode 100644 index 0000000..f6e6cc1 --- /dev/null +++ b/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/.wsj.com.php @@ -0,0 +1,15 @@ + array( + '%.*%' => array( + 'test_url' => 'http://online.wsj.com/article/SB10001424127887324108204579023143974408428.html', + 'body' => array( + '//div[@class="articlePage"]', + ), + 'strip' => array( + '//*[@id="articleThumbnail_2"]', + '//*[@class="socialByline"]', + ) + ) + ) +); diff --git a/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/01net.com.php b/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/01net.com.php new file mode 100644 index 0000000..6d144f0 --- /dev/null +++ b/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/01net.com.php @@ -0,0 +1,18 @@ + array( + '%.*%' => array( + 'test_url' => 'http://www.01net.com/editorial/624550/twitter-rachete-madbits-un-specialiste-francais-de-lanalyse-dimages/', + 'body' => array( + '//div[@class="article_ventre_box"]', + ), + 'strip' => array( + '//link', + '//*[contains(@class, "article_navigation")]', + '//h1', + '//*[contains(@class, "article_toolbarMain")]', + '//*[contains(@class, "article_imagehaute_box")]', + ), + ), + ), +); diff --git a/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/24.hu.php b/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/24.hu.php new file mode 100644 index 0000000..6c269db --- /dev/null +++ b/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/24.hu.php @@ -0,0 +1,16 @@ + array( + '%.*%' => array( + 'test_url' => 'http://24.hu/belfold/2017/10/20/millios-lehuzasok-miatt-razziaztak-egy-budapesti-barban-videoval/', + 'body' => array( + '//div[@class="post-title-wrapper"]/h1', + '//div[@class="post-header-wrapper has-img"]/img', + '//div[@class="post-body"]' + + ), + 'strip' => array( + ) + ), + ), +); diff --git a/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/444.hu.php b/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/444.hu.php new file mode 100644 index 0000000..e65bad1 --- /dev/null +++ b/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/444.hu.php @@ -0,0 +1,19 @@ + array( + '%.*%' => array( + 'test_url' => 'https://444.hu/2017/10/20/tulszamlazo-helyen-utottek-rajta-budapest-belvarosaban', + 'body' => array( + '//div[@id="headline"]/h1', + '//article' + ), + 'strip' => array( + '//article/footer', + '//article/div[@class="jeti-roadblock ad"]', + '//figcaption', + '//noscript', + '//ul[@class="widget-stream-items"]' + ) + ), + ), +); diff --git a/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/888.hu.php b/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/888.hu.php new file mode 100644 index 0000000..68cfe05 --- /dev/null +++ b/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/888.hu.php @@ -0,0 +1,16 @@ + array( + '%.*%' => array( + 'test_url' => 'https://888.hu/article-a-budapesti-szocik-nem-szeretik-a-videki-szocikat', + 'body' => array( + '//div[@id="cikkholder"]/h1', + '//div[@class="maincontent8"]' + ), + 'strip' => array( + '//div[@class="AdW"]', + '//h1[@class="olvastadmar"]' + ) + ), + ), +); diff --git a/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/abstrusegoose.com.php b/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/abstrusegoose.com.php new file mode 100644 index 0000000..752d041 --- /dev/null +++ b/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/abstrusegoose.com.php @@ -0,0 +1,8 @@ + array( + '%.*%' => array( + '%alt="(.+)" title="(.+)" */>%' => '/>
    $1
    $2', + ), + ), +); diff --git a/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/achgut.com.php b/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/achgut.com.php new file mode 100644 index 0000000..1e61fe6 --- /dev/null +++ b/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/achgut.com.php @@ -0,0 +1,16 @@ + array( + '%.*%' => array( + 'test_url' => 'http://www.achgut.com/artikel/deutscher_herbst_wg_reichsstrasse_106', + 'body' => array( + '//div[@class="headerpict_half"]/div/img', + '//div[@class="beitrag"]/div[@class="teaser_blog_text"]' + ), + 'strip' => array( + '//div[@class="footer_blog_text"]', + '//div[@class="beitrag"]/div[@class="teaser_blog_text"]/h2[1]' + ) + ), + ), +); diff --git a/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/adventuregamers.com.php b/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/adventuregamers.com.php new file mode 100644 index 0000000..98d384e --- /dev/null +++ b/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/adventuregamers.com.php @@ -0,0 +1,23 @@ + array( + '%^/news.*%' => array( + 'test_url' => 'http://www.adventuregamers.com/news/view/31079', + 'body' => array( + '//div[@class="bodytext"]', + ) + ), + '%^/videos.*%' => array( + 'test_url' => 'http://www.adventuregamers.com/videos/view/31056', + 'body' => array( + '//iframe', + ) + ), + '%^/articles.*%' => array( + 'test_url' => 'http://www.adventuregamers.com/articles/view/31049', + 'body' => array( + '//div[@class="cleft"]', + ) + ) + ), +); diff --git a/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/alainonline.net.php b/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/alainonline.net.php new file mode 100644 index 0000000..f440b23 --- /dev/null +++ b/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/alainonline.net.php @@ -0,0 +1,14 @@ + array( + '%.*%' => array( + 'test_url' => 'http://www.alainonline.net/news_details.php?lang=arabic&sid=18907', + 'body' => array( + '//div[@class="news_details"]', + ), + 'strip' => array( + '//div[@class="news_details"]/div/div[last()]', + ), + ), + ), +); diff --git a/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/aljazeera.com.php b/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/aljazeera.com.php new file mode 100644 index 0000000..c02eb21 --- /dev/null +++ b/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/aljazeera.com.php @@ -0,0 +1,25 @@ + array( + '%.*%' => array( + 'test_url' => 'http://www.aljazeera.com/news/2015/09/xi-jinping-seattle-china-150922230118373.html', + 'body' => array( + '//article[@id="main-story"]', + ), + 'strip' => array( + '//script', + '//header', + '//ul', + '//section[contains(@class,"profile")]', + '//a[@target="_self"]', + '//div[contains(@id,"_2")]', + '//div[contains(@id,"_3")]', + '//img[@class="viewMode"]', + '//table[contains(@class,"in-article-item")]', + '//div[@data-embed-type="Brightcove"]', + '//div[@class="QuoteContainer"]', + '//div[@class="BottomByLine"]', + ), + ), + ), +); diff --git a/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/allafrica.com.php b/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/allafrica.com.php new file mode 100644 index 0000000..e8a506d --- /dev/null +++ b/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/allafrica.com.php @@ -0,0 +1,20 @@ + array( + '%.*%' => array( + 'test_url' => 'http://www.aljazeera.com/news/2015/09/xi-jinping-seattle-china-150922230118373.html', + 'body' => array( + '//div[@class="story-body"]', + ), + 'strip' => array( + '//p[@class="kindofstory"]', + '//cite[@class="byline"]', + '//div[@class="useful-top"]', + '//div[contains(@class,"related-topics")]', + '//links', + '//sharebar', + '//related-topics', + ), + ), + ), +); diff --git a/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/allgemeine-zeitung.de.php b/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/allgemeine-zeitung.de.php new file mode 100644 index 0000000..8ede99b --- /dev/null +++ b/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/allgemeine-zeitung.de.php @@ -0,0 +1,23 @@ + array( + '%.*%' => array( + 'test_url' => 'http://www.allgemeine-zeitung.de/lokales/polizei/mainz-gonsenheim-unbekannte-rauben-esso-tankstelle-in-kurt-schumacher-strasse-aus_14913147.htm', + 'body' => array( + '//div[contains(@class, "article")][1]', + ), + 'strip' => array( + '//read/h1', + '//*[@id="t-map"]', + '//*[contains(@class, "modules")]', + '//*[contains(@class, "adsense")]', + '//*[contains(@class, "linkbox")]', + '//*[contains(@class, "info")]', + '//*[@class="skip"]', + '//*[@class="funcs"]', + '//span[@class="nd address"]', + '//a[contains(@href, "abo-und-services")]', + ), + ), + ), +); diff --git a/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/amazingsuperpowers.com.php b/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/amazingsuperpowers.com.php new file mode 100644 index 0000000..3214c62 --- /dev/null +++ b/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/amazingsuperpowers.com.php @@ -0,0 +1,8 @@ + array( + '%.*%' => array( + '%title="(.+)" */>%' => '/>
    $1', + ), + ), +); diff --git a/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/anythingcomic.com.php b/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/anythingcomic.com.php new file mode 100644 index 0000000..51247f7 --- /dev/null +++ b/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/anythingcomic.com.php @@ -0,0 +1,13 @@ + array( + '%.*%' => array( + 'body' => array( + '//img[@id="comic_image"]', + '//div[@class="comment-wrapper"][position()=1]', + ), + 'strip' => array(), + 'test_url' => 'http://www.anythingcomic.com/comics/2108929/stress-free/', + ), + ), +); diff --git a/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/ap.org.php b/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/ap.org.php new file mode 100644 index 0000000..5bb2bb6 --- /dev/null +++ b/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/ap.org.php @@ -0,0 +1,13 @@ + array( + '%.*%' => array( + 'test_url' => 'http://hosted.ap.org/dynamic/stories/A/AS_CHINA_GAO_ZHISHENG?SITE=AP&SECTION=HOME&TEMPLATE=DEFAULT', + 'body' => array( + '//img[@class="ap-smallphoto-img"]', + '//span[@class="entry-content"]', + ), + 'strip' => array(), + ), + ), +); diff --git a/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/areadvd.de.php b/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/areadvd.de.php new file mode 100644 index 0000000..fc56922 --- /dev/null +++ b/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/areadvd.de.php @@ -0,0 +1,10 @@ + array( + '%.*%' => array( + 'test_url' => 'http://www.areadvd.de/news/daily-deals-angebote-bei-lautsprecher-teufel-3/', + 'body' => array('//div[contains(@class,"entry")]'), + 'strip' => array(), + ), + ), +); diff --git a/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/arstechnica.com.php b/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/arstechnica.com.php new file mode 100644 index 0000000..55e01ce --- /dev/null +++ b/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/arstechnica.com.php @@ -0,0 +1,25 @@ + array( + '%.*%' => array( + 'test_url' => 'http://arstechnica.com/tech-policy/2015/09/judge-warners-2m-happy-birthday-copyright-is-bogus/', + 'body' => array( + '//article', + ), + 'strip' => array( + '//h4[@class="post-upperdek"]', + '//h1', + '//ul[@class="lSPager lSGallery"]', + '//div[@class="lSAction"]', + '//section[@class="post-meta"]', + '//figcaption', + '//aside', + '//div[@class="gallery-image-credit"]', + '//section[@class="article-author"]', + '//*[contains(@id,"social-")]', + '//div[contains(@id,"footer")]', + ), + ), + ), +); + diff --git a/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/atv.hu.php b/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/atv.hu.php new file mode 100644 index 0000000..170ec4d --- /dev/null +++ b/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/atv.hu.php @@ -0,0 +1,18 @@ + array( + '%.*%' => array( + 'test_url' => 'http://www.atv.hu/belfold/20171020-tobb-millio-forintot-csalt-ki-egy-idos-ferfitol-a-budapesti-no', + 'body' => array( + '//article' + ), + 'strip' => array( + '//span[@class="date"]', + '//div[@class="fb-like db_iframe_widget"]', + '//div[@class="ad-wrapper dashed-border"]', + '//div[@class="footer-meta-wrapper"]', + '//div[@class="image-wrapper "]' + ) + ), + ), +); diff --git a/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/awkwardzombie.com.php b/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/awkwardzombie.com.php new file mode 100644 index 0000000..5ab7051 --- /dev/null +++ b/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/awkwardzombie.com.php @@ -0,0 +1,10 @@ + array( + '%/index.php.*comic=.*%' => array( + 'test_url' => 'http://www.awkwardzombie.com/index.php?comic=041315', + 'body' => array('//*[@id="comic"]/img'), + 'strip' => array(), + ), + ), +); diff --git a/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/backchannel.com.php b/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/backchannel.com.php new file mode 100644 index 0000000..bc5932a --- /dev/null +++ b/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/backchannel.com.php @@ -0,0 +1,18 @@ + array( + '%.*%' => array( + 'test_url' => 'https://medium.com/lessons-learned/917b8b63ae3e', + 'body' => array( + '//div[contains(@class,"section-inner")]', + ), + 'strip' => array( + '//div[contains(@class,"metabar")]', + '//img[contains(@class,"thumbnail")]', + '//h1', + '//blockquote', + '//p[contains(@class,"graf-after--h4")]' + ), + ), + ), +); diff --git a/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/bangkokpost.com.php b/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/bangkokpost.com.php new file mode 100644 index 0000000..165515b --- /dev/null +++ b/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/bangkokpost.com.php @@ -0,0 +1,19 @@ + array( + '%.*%' => array( + 'test_url' => 'http://www.bangkokpost.com/news/politics/704204/new-us-ambassador-arrives-in-bangkok', + 'body' => array( + '//article/div[@class="articleContents"]', + ), + 'strip' => array( + '//h2', + '//h4', + '//div[@class="text-size"]', + '//div[@class="relate-story"]', + '//div[@class="text-ads"]', + '//ul', + ), + ), + ), +); diff --git a/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/bauerwilli.com.php b/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/bauerwilli.com.php new file mode 100644 index 0000000..b191a6e --- /dev/null +++ b/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/bauerwilli.com.php @@ -0,0 +1,17 @@ + array( + '%.*%' => array( + 'test_url' => 'http://www.bauerwilli.com/intuitive-eating/', + 'body' => array( + '//div[@class="entry-thumbnail"]', + '//div[@class="entry-content"]', + ), + 'strip' => array( + '//div[@class="tptn_counter"]', + '//div[contains(@class, "sharedaddy")]' + ), + ), + ), +); + diff --git a/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/bgr.com.php b/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/bgr.com.php new file mode 100644 index 0000000..7507a2f --- /dev/null +++ b/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/bgr.com.php @@ -0,0 +1,15 @@ + array( + '%.*%' => array( + 'test_url' => 'http://bgr.com/2015/09/27/iphone-6s-waterproof-testing/', + 'body' => array( + '//img[contains(@class,"img")]', + '//div[@class="text-column"]', + ), + 'strip' => array( + '//strong', + ), + ), + ), +); diff --git a/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/bigfootjustice.com.php b/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/bigfootjustice.com.php new file mode 100644 index 0000000..d06ed12 --- /dev/null +++ b/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/bigfootjustice.com.php @@ -0,0 +1,8 @@ + array( + '%.*%' => array( + '%-150x150%' => '', + ), + ), +); diff --git a/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/bigpicture.ru.php b/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/bigpicture.ru.php new file mode 100644 index 0000000..55c4089 --- /dev/null +++ b/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/bigpicture.ru.php @@ -0,0 +1,31 @@ + array( + '%.*%' => array( + 'test_url' => 'http://bigpicture.ru/?p=556658', + 'body' => array( + '//div[@class="article container"]', + ), + 'strip' => array( + '//script', + '//form', + '//style', + '//h1', + '//*[@class="wp-smiley"]', + '//div[@class="ipmd"]', + '//div[@class="tags"]', + '//div[@class="social-button"]', + '//div[@class="bottom-share"]', + '//div[@class="raccoonbox"]', + '//div[@class="yndadvert"]', + '//div[@class="we-recommend"]', + '//div[@class="relap-bigpicture_ru-wrapper"]', + '//div[@id="mmail"]', + '//div[@id="mobile-ads-cut"]', + '//div[@id="liquidstorm-alt-html"]', + '//div[contains(@class, "post-tags")]', + '//*[contains(text(),"Смотрите также")]', + ), + ), + ), +); diff --git a/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/bizjournals.com.php b/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/bizjournals.com.php new file mode 100644 index 0000000..d1cc3da --- /dev/null +++ b/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/bizjournals.com.php @@ -0,0 +1,12 @@ + array( + '%.*%' => array( + 'test_url' => 'http://www.bizjournals.com/milwaukee/news/2015/09/30/bucks-will-hike-prices-on-best-seats-at-new-arena.html', + 'body' => array( + '//figure/div/a/img', + '//p[@class="content__segment"]', + ), + ), + ), +); diff --git a/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/biztimes.com.php b/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/biztimes.com.php new file mode 100644 index 0000000..d21aa98 --- /dev/null +++ b/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/biztimes.com.php @@ -0,0 +1,22 @@ + array( + '%.*%' => array( + 'test_url' => 'https://www.biztimes.com/2017/02/10/settlement-would-revive-fowler-lake-condo-project-in-oconomowoc/', + 'body' => array( + '//h2/span[@class="subhead"]', + '//div[contains(@class,"article-content")]', + ), + 'strip' => array( + '//script', + '//div[contains(@class,"mobile-article-content")]', + '//div[contains(@class,"sharedaddy")]', + '//div[contains(@class,"author-details")]', + '//div[@class="row ad"]', + '//div[contains(@class,"relatedposts")]', + '//div[@class="col-lg-12"]', + '//div[contains(@class,"widget")]', + ), + ), + ), +); diff --git a/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/bleepingcomputer.com.php b/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/bleepingcomputer.com.php new file mode 100644 index 0000000..7b74060 --- /dev/null +++ b/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/bleepingcomputer.com.php @@ -0,0 +1,15 @@ + array( + '%.*%' => array( + 'test_url' => 'https://www.bleepingcomputer.com/news/google/chromes-sandbox-feature-infringes-on-three-patents-so-google-must-now-pay-20m/', + 'body' => array( + '//div[@class="article_section"]', + ), + 'strip' => array( + '//*[@itemprop="headline"]', + '//div[@class="cz-news-story-title-section"]' + ), + ), + ), +); diff --git a/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/blog.fefe.de.php b/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/blog.fefe.de.php new file mode 100644 index 0000000..39c88ae --- /dev/null +++ b/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/blog.fefe.de.php @@ -0,0 +1,13 @@ + array( + '%.*%' => array( + 'test_url' => 'http://blog.fefe.de/?ts=ad706a73', + 'body' => array( + '/html/body/ul', + ), + 'strip' => array( + ), + ), + ), +); diff --git a/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/blog.mapillary.com.php b/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/blog.mapillary.com.php new file mode 100644 index 0000000..ce01651 --- /dev/null +++ b/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/blog.mapillary.com.php @@ -0,0 +1,11 @@ + array( + '%.*%' => array( + 'test_url' => 'http://blog.mapillary.com/update/2015/08/26/traffic-sign-updates.html', + 'body' => array( + '//div[contains(@class, "blog-post__content")]', + ), + ), + ), +); diff --git a/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/brewers.mlb.com.php b/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/brewers.mlb.com.php new file mode 100644 index 0000000..be406fa --- /dev/null +++ b/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/brewers.mlb.com.php @@ -0,0 +1,22 @@ + array( + '%.*%' => array( + 'test_url' => 'http://m.brewers.mlb.com/news/article/161364798', + 'body' => array( + '//article[contains(@class,"article")]', + ), + 'strip' => array( + '//div[contains(@class,"ad-slot")]', + '//h1', + '//span[@class="timestamp"]', + '//div[contains(@class,"contributor-bottom")]', + '//div[contains(@class,"video")]', + '//ul[contains(@class,"social")]', + '//p[@class="tagline"]', + '//div[contains(@class,"social")]', + '//div[@class="button-wrap"]', + ), + ), + ), +); diff --git a/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/buenosairesherald.com.php b/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/buenosairesherald.com.php new file mode 100644 index 0000000..4e73e79 --- /dev/null +++ b/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/buenosairesherald.com.php @@ -0,0 +1,17 @@ + array( + '%.*%' => array( + 'test_url' => 'http://www.buenosairesherald.com/article/199344/manzur-named-next-governor-of-tucum%C3%A1n', + 'body' => array( + '//div[@style="float:none"]', + ), + 'strip' => array( + '//div[contains(@class, "bz_alias_short_desc_container"]', + '//td[@id="bz_show_bug_column_1"]', + '//table[@id="attachment_table"]', + '//table[@class="bz_comment_table"]', + ), + ), + ), +); diff --git a/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/bunicomic.com.php b/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/bunicomic.com.php new file mode 100644 index 0000000..ad83e43 --- /dev/null +++ b/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/bunicomic.com.php @@ -0,0 +1,13 @@ + array( + '%.*%' => array( + 'test_url' => 'http://www.bunicomic.com/comic/buni-623/', + 'body' => array( + '//div[@class="comic-table"]', + ), + 'strip' => array( + ), + ), + ), +); diff --git a/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/buttersafe.com.php b/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/buttersafe.com.php new file mode 100644 index 0000000..1f313cd --- /dev/null +++ b/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/buttersafe.com.php @@ -0,0 +1,13 @@ + array( + '%.*%' => array( + 'test_url' => 'http://buttersafe.com/2015/04/21/the-incredible-flexible-man/', + 'body' => array( + '//div[@id="comic"]', + '//div[@class="post-comic"]', + ), + 'strip' => array(), + ), + ), +); diff --git a/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/cad-comic.com.php b/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/cad-comic.com.php new file mode 100644 index 0000000..a631c97 --- /dev/null +++ b/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/cad-comic.com.php @@ -0,0 +1,12 @@ + array( + '%/cad/.+%' => array( + 'test_url' => 'http://www.cad-comic.com/cad/20150417', + 'body' => array( + '//*[@id="content"]/img', + ), + 'strip' => array(), + ), + ), +); diff --git a/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/chaoslife.findchaos.com.php b/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/chaoslife.findchaos.com.php new file mode 100644 index 0000000..ea6191e --- /dev/null +++ b/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/chaoslife.findchaos.com.php @@ -0,0 +1,10 @@ + array( + '%.*%' => array( + 'test_url' => 'http://chaoslife.findchaos.com/pets-in-the-wild', + 'body' => array('//div[@id="comic"]'), + 'strip' => array(), + ), + ), +); diff --git a/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/chinafile.com.php b/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/chinafile.com.php new file mode 100644 index 0000000..450117b --- /dev/null +++ b/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/chinafile.com.php @@ -0,0 +1,18 @@ + array( + '%.*%' => array( + 'test_url' => 'http://www.chinafile.com/books/shanghai-faithful?utm_source=feedburner&utm_medium=feed&utm_campaign=Feed%3A+chinafile%2FAll+%28ChinaFile%29', + 'body' => array( + '//div[contains(@class,"pane-featured-photo-panel-pane-1")]', + '//div[contains(@class,"video-above-fold")]', + '//div[@class="sc-media"]', + '//div[contains(@class,"field-name-body")]', + ), + 'strip' => array( + '//div[contains(@class,"cboxes")]', + '//div[contains(@class,"l-middle")]', + ), + ), + ), +); diff --git a/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/cicero.de.php b/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/cicero.de.php new file mode 100644 index 0000000..2cd1b70 --- /dev/null +++ b/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/cicero.de.php @@ -0,0 +1,17 @@ + array( + '%.*%' => array( + 'test_url' => 'https://cicero.de/innenpolitik/plaene-der-eu-kommission-der-ganz-normale-terror', + 'body' => array( + '//p[@class="lead"]', + '//article/div[2]/div[contains(@class, "field--name-field-cc-image")]', + '//article/div[2]/div[contains(@class, "image-description")]', + '//div[@class="field field-name-field-cc-body"]', + ), + 'strip' => array( + '//*[contains(@class, "urban-ad-sign")]' + ) + ), + ), +); diff --git a/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/cliquerefresh.com.php b/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/cliquerefresh.com.php new file mode 100644 index 0000000..9dcc7e5 --- /dev/null +++ b/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/cliquerefresh.com.php @@ -0,0 +1,10 @@ + array( + '%/comic.*%' => array( + 'test_url' => 'http://cliquerefresh.com/comic/078-stating-the-obvious/', + 'body' => array('//div[@class="comicImg"]/img | //div[@class="comicImg"]/a/img'), + 'strip' => array(), + ), + ), +); diff --git a/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/cnet.com.php b/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/cnet.com.php new file mode 100644 index 0000000..60767a5 --- /dev/null +++ b/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/cnet.com.php @@ -0,0 +1,37 @@ + array( + '%^/products.*%' => array( + 'test_url' => 'http://www.cnet.com/products/fibaro-flood-sensor/#ftag=CADf328eec', + 'body' => array( + '//li[contains(@class,"slide first"] || //figure[contains(@class,(promoFigure))]', + '//div[@class="quickInfo"]', + '//div[@class="col-6 ratings"]', + '//div[@id="editorReview"]', + ), + 'strip' => array( + '//script', + '//a[@class="clickToEnlarge"]', + '//div[@section="topSharebar"]', + '//div[contains(@class,"related")]', + '//div[contains(@class,"ad-")]', + '//div[@section="shortcodeGallery"]', + ), + ), + '%.*%' => array( + 'test_url' => 'http://cnet.com.feedsportal.com/c/34938/f/645093/s/4a340866/sc/28/l/0L0Scnet0N0Cnews0Cman0Eclaims0Eonline0Epsychic0Emade0Ehim0Ebuy0E10Emillion0Epowerball0Ewinning0Eticket0C0Tftag0FCAD590Aa51e/story01.htm', + 'body' => array( + '//p[@itemprop="description"]', + '//div[@itemprop="articleBody"]', + ), + 'strip' => array( + '//script', + '//a[@class="clickToEnlarge"]', + '//div[@section="topSharebar"]', + '//div[contains(@class,"related")]', + '//div[contains(@class,"ad-")]', + '//div[@section="shortcodeGallery"]', + ), + ), + ), +); diff --git a/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/coinwelt.de.php b/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/coinwelt.de.php new file mode 100644 index 0000000..28a8bba --- /dev/null +++ b/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/coinwelt.de.php @@ -0,0 +1,14 @@ + array( + '%.*%' => array( + 'test_url' => 'http://coinwelt.de/2017/08/bitcache-kreierer-kim-dotcom-bietet-arbeitsplaetze-fuer-blockchain-goetter/', + 'body' => array( + '//div[@class="post-inner"]//div[@class="entry"]', + ), + 'strip' => array( + '//div[contains(@class, "shariff")]', + ), + ), + ), +); diff --git a/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/consomac.fr.php b/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/consomac.fr.php new file mode 100644 index 0000000..9209f9c --- /dev/null +++ b/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/consomac.fr.php @@ -0,0 +1,13 @@ + array( + '%.*%' => array( + 'test_url' => 'http://consomac.fr/news-2430-l-iphone-6-toujours-un-secret-bien-garde.html', + 'body' => array( + '//div[contains(@id, "newscontent")]', + ), + 'strip' => array( + ), + ), + ), +); diff --git a/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/cowbirdsinlove.com.php b/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/cowbirdsinlove.com.php new file mode 100644 index 0000000..3214c62 --- /dev/null +++ b/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/cowbirdsinlove.com.php @@ -0,0 +1,8 @@ + array( + '%.*%' => array( + '%title="(.+)" */>%' => '/>
    $1', + ), + ), +); diff --git a/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/crash.net.php b/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/crash.net.php new file mode 100644 index 0000000..88cef14 --- /dev/null +++ b/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/crash.net.php @@ -0,0 +1,18 @@ + array( + '%.*%' => array( + 'test_url' => 'http://www.crash.net/motogp/news/885102/1/dovizioso-mugello-win-was-catalyst-for-title-challenge', + 'body' => array( + '//*[@id="block-system-main"]', + ), + 'strip' => array( + '//script', + '//style', + '//*[@class="social-bar"]', + '//*[@id="below-headline-image-ad"]', + '//*[@class="advert-"]', + ), + ), + ), +); diff --git a/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/csmonitor.com.php b/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/csmonitor.com.php new file mode 100644 index 0000000..481e4b0 --- /dev/null +++ b/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/csmonitor.com.php @@ -0,0 +1,19 @@ + array( + '%.*%' => array( + 'test_url' => 'http://www.csmonitor.com/USA/Politics/2015/0925/John-Boehner-steps-down-Self-sacrificing-but-will-it-lead-to-better-government', + 'body' => array( + '//h2[@id="summary"]', + '//div[@class="flex-video youtube"]', + '//div[contains(@class,"eza-body")]', + ), + 'strip' => array( + '//span[@id="breadcrumb"]', + '//div[@id="byline-wrapper"]', + '//div[@class="injection"]', + '//*[contains(@class,"promo_link")]', + ), + ), + ), +); diff --git a/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/dailyjs.com.php b/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/dailyjs.com.php new file mode 100644 index 0000000..20eb1d7 --- /dev/null +++ b/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/dailyjs.com.php @@ -0,0 +1,19 @@ + array( + '%.*%' => array( + 'test_url' => 'http://dailyjs.com/2014/08/07/p5js/', + 'body' => array( + '//div[@id="post"]', + ), + 'strip' => array( + '//h2[@class="post"]', + '//div[@class="meta"]', + '//*[contains(@class, "addthis_toolbox")]', + '//*[contains(@class, "addthis_default_style")]', + '//*[@class="navigation small"]', + '//*[@id="related"]', + ), + ), + ), +); diff --git a/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/dailyreporter.com.php b/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/dailyreporter.com.php new file mode 100644 index 0000000..db3fc0e --- /dev/null +++ b/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/dailyreporter.com.php @@ -0,0 +1,15 @@ + array( + '%.*%' => array( + 'test_url' => 'http://dailyreporter.com/2016/01/09/us-supreme-court-case-could-weaken-government-workers-unions/', + 'body' => array( + '//div[contains(@class, "entry-content")]', + ), + 'strip' => array( + '//div[@class="dmcss_login_form"]', + '//*[contains(@class, "sharedaddy")]', + ), + ), + ), +); diff --git a/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/dailytech.com.php b/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/dailytech.com.php new file mode 100644 index 0000000..5d1df4a --- /dev/null +++ b/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/dailytech.com.php @@ -0,0 +1,13 @@ + array( + '%.*%' => array( + 'test_url' => 'http://www.dailytech.com/Apples+First+Fixes+to+iOS+9+Land+w+iOS++901+Release/article37495.htm', + 'body' => array( + '//div[@class="NewsBodyImage"]', + '//span[@id="lblSummary"]', + '//span[@id="lblBody"]', + ), + ), + ), +); diff --git a/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/degroupnews.com.php b/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/degroupnews.com.php new file mode 100644 index 0000000..91f5c56 --- /dev/null +++ b/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/degroupnews.com.php @@ -0,0 +1,14 @@ + array( + '%.*%' => array( + 'test_url' => 'http://www.degroupnews.com/medias/vodsvod/amazon-concurrence-la-chromecast-de-google-avec-fire-tv-stick', + 'body' => array( + '//div[@class="contenu"]', + ), + 'strip' => array( + '//div[contains(@class, "a2a")]', + ), + ), + ), +); diff --git a/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/derstandard.at.php b/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/derstandard.at.php new file mode 100644 index 0000000..7e95a51 --- /dev/null +++ b/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/derstandard.at.php @@ -0,0 +1,14 @@ + array( + '%.*%' => array( + 'test_url' => 'http://derstandard.at/2000010267354/The-Witcher-3-Hohe-Hardware-Anforderungen-fuer-PC-Spieler?ref=rss', + 'body' => array( + '//div[@class="copytext"]', + '//ul[@id="media-list"]', + ), + 'strip' => array( + ), + ), + ), +); diff --git a/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/dilbert.com.php b/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/dilbert.com.php new file mode 100644 index 0000000..b8e9b3d --- /dev/null +++ b/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/dilbert.com.php @@ -0,0 +1,11 @@ + array( + '%.*%' => array( + 'body' => array( + '//img[@class="img-responsive img-comic"]', + ), + 'test_url' => 'http://dilbert.com/strip/2016-01-28', + ), + ), +); diff --git a/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/discovermagazine.com.php b/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/discovermagazine.com.php new file mode 100644 index 0000000..ae0dfe7 --- /dev/null +++ b/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/discovermagazine.com.php @@ -0,0 +1,26 @@ + array( + '%.*%' => array( + 'test_url' => 'http://blogs.discovermagazine.com/neuroskeptic/2017/01/25/publishers-jeffrey-beall/', + 'body' => array( + '//div[@class="contentWell"]', + ), + 'strip' => array( + '//h1', + '//div[@class="breadcrumbs"]', + '//div[@class="mobile"]', + '//div[@class="fromIssue"]', + '//div[contains(@class,"belowDeck")]', + '//div[@class="meta"]', + '//div[@class="shareIcons"]', + '//div[@class="categories"]', + '//div[@class="navigation"]', + '//div[@class="heading"]', + '//div[contains(@id,"-ad")]', + '//div[@class="relatedArticles"]', + '//div[@id="disqus_thread"]' + ), + ), + ), +); diff --git a/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/distrowatch.com.php b/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/distrowatch.com.php new file mode 100644 index 0000000..aefc8f8 --- /dev/null +++ b/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/distrowatch.com.php @@ -0,0 +1,13 @@ + array( + '%.*%' => array( + 'test_url' => 'http://distrowatch.com/?newsid=08355', + 'body' => array( + '//td[@class="NewsText"][1]', + ), + 'strip' => array( + ), + ), + ), +); diff --git a/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/dozodomo.com.php b/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/dozodomo.com.php new file mode 100644 index 0000000..e116695 --- /dev/null +++ b/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/dozodomo.com.php @@ -0,0 +1,15 @@ + array( + '%.*%' => array( + 'test_url' => 'http://dozodomo.com/bento/2014/03/04/lart-des-maki-de-takayo-kiyota/', + 'body' => array( + '//div[@class="joke"]', + '//div[@class="story-cover"]', + '//div[@class="story-content"]', + ), + 'strip' => array( + ), + ), + ), +); diff --git a/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/drawingboardcomic.com.php b/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/drawingboardcomic.com.php new file mode 100644 index 0000000..cd30f2e --- /dev/null +++ b/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/drawingboardcomic.com.php @@ -0,0 +1,15 @@ + array( + '%.*%' => array( + 'body' => array('//img[@id="comicimage"]'), + 'strip' => array(), + 'test_url' => 'http://drawingboardcomic.com/index.php?comic=208', + ), + ), + 'filter' => array( + '%.*%' => array( + '%title="(.+)" */>%' => '/>
    $1', + ), + ), +); diff --git a/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/e-w-e.ru.php b/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/e-w-e.ru.php new file mode 100644 index 0000000..8139cc9 --- /dev/null +++ b/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/e-w-e.ru.php @@ -0,0 +1,22 @@ + array( + '%.*%' => array( + 'test_url' => 'http://e-w-e.ru/16-prekrasnyx-izobretenij-zhenshhin/', + 'body' => array( + '//div[contains(@class, "post_text")]', + ), + 'strip' => array( + '//script', + '//form', + '//style', + '//*[@class="views_post"]', + '//*[@class="adman_mobile"]', + '//*[@class="adman_desctop"]', + '//*[contains(@rel, "nofollow")]', + '//*[contains(@class, "wp-smiley")]', + '//*[contains(text(),"Источник:")]', + ), + ), + ), +); diff --git a/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/economist.com.php b/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/economist.com.php new file mode 100644 index 0000000..522032f --- /dev/null +++ b/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/economist.com.php @@ -0,0 +1,25 @@ + array( + '%.*%' => array( + 'test_url' => 'http://www.economist.com/blogs/buttonwood/2017/02/mixed-signals?fsrc=rss', + 'body' => array( + '//article', + ), + 'strip' => array( + '//span[@class="blog-post__siblings-list-header "]', + '//h1', + '//aside', + '//div[@class="blog-post__asideable-wrapper"]', + '//div[@class="share_inline_header"]', + '//div[@id="column-right"]', + '//div[contains(@class,"blog-post__siblings-list-aside")]', + '//div[@class="video-player__wrapper"]', + '//div[@class="blog-post__bottom-panel"]', + '//div[contains(@class,"latest-updates-panel__container")]', + '//div[contains(@class,"blog-post__asideable-content")]', + '//div[@aria-label="Advertisement"]' + ), + ), + ), +); diff --git a/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/encyclopedie.naheulbeuk.com.php b/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/encyclopedie.naheulbeuk.com.php new file mode 100644 index 0000000..19bcbde --- /dev/null +++ b/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/encyclopedie.naheulbeuk.com.php @@ -0,0 +1,13 @@ + array( + '%.*%' => array( + 'test_url' => 'http://encyclopedie.naheulbeuk.com/article.php3?id_article=352', + 'body' => array( + '//td//h1[@class="titre-texte"]', + '//td//div[@class="surtitre"]', + '//td//div[@class="texte"]', + ), + ) + ), +); diff --git a/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/endlessorigami.com.php b/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/endlessorigami.com.php new file mode 100644 index 0000000..d06ed12 --- /dev/null +++ b/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/endlessorigami.com.php @@ -0,0 +1,8 @@ + array( + '%.*%' => array( + '%-150x150%' => '', + ), + ), +); diff --git a/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/engadget.com.php b/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/engadget.com.php new file mode 100644 index 0000000..cf9e448 --- /dev/null +++ b/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/engadget.com.php @@ -0,0 +1,10 @@ + array( + '%.*%' => array( + 'test_url' => 'http://www.engadget.com/2015/04/20/dark-matter-discovery/?ncid=rss_truncated', + 'body' => array('//div[@id="page_body"]/div[@class="container@m-"]'), + 'strip' => array('//aside[@role="banner"]'), + ), + ), +); diff --git a/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/escapistmagazine.com.php b/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/escapistmagazine.com.php new file mode 100644 index 0000000..e86b59c --- /dev/null +++ b/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/escapistmagazine.com.php @@ -0,0 +1,45 @@ + array( + '%/articles/view/comicsandcosplay/comics/critical-miss.*%' => array( + 'body' => array('//*[@class="body"]/span/img | //div[@class="folder_nav_links"]/following::p'), + 'test_url' => 'http://www.escapistmagazine.com/articles/view/comicsandcosplay/comics/critical-miss/13776-Critical-Miss-on-Framerates?utm_source=rss&utm_medium=rss&utm_campaign=articles', + 'strip' => array(), + ), + '%/articles/view/comicsandcosplay/comics/namegame.*%' => array( + 'body' => array('//*[@class="body"]/span/p/img[@height != "120"]'), + 'test_url' => 'http://www.escapistmagazine.com/articles/view/comicsandcosplay/comics/namegame/9759-Leaving-the-Nest?utm_source=rss&utm_medium=rss&utm_campaign=articles', + 'strip' => array(), + ), + '%/articles/view/comicsandcosplay/comics/stolen-pixels.*%' => array( + 'body' => array('//*[@class="body"]/span/p[2]/img'), + 'test_url' => 'http://www.escapistmagazine.com/articles/view/comicsandcosplay/comics/stolen-pixels/8866-Stolen-Pixels-258-Where-the-Boys-Are?utm_source=rss&utm_medium=rss&utm_campaign=articles', + 'strip' => array(), + ), + '%/articles/view/comicsandcosplay/comics/bumhugparade.*%' => array( + 'body' => array('//*[@class="body"]/span/p[2]/img'), + 'test_url' => 'http://www.escapistmagazine.com/articles/view/comicsandcosplay/comics/bumhugparade/8262-Bumhug-Parade-13?utm_source=rss&utm_medium=rss&utm_campaign=articles', + 'strip' => array(), + ), + '%/articles/view/comicsandcosplay.*/comics/escapistradiotheater%' => array( + 'body' => array('//*[@class="body"]/span/p[2]/img'), + 'test_url' => 'http://www.escapistmagazine.com/articles/view/comicsandcosplay/comics/escapistradiotheater/8265-The-Escapist-Radio-Theater-13?utm_source=rss&utm_medium=rss&utm_campaign=articles', + 'strip' => array(), + ), + '%/articles/view/comicsandcosplay/comics/paused.*%' => array( + 'body' => array('//*[@class="body"]/span/p[2]/img | //*[@class="body"]/span/div/img'), + 'test_url' => 'http://www.escapistmagazine.com/articles/view/comicsandcosplay/comics/paused/8263-Paused-16?utm_source=rss&utm_medium=rss&utm_campaign=articles', + 'strip' => array(), + ), + '%/articles/view/comicsandcosplay/comics/fraughtwithperil.*%' => array( + 'body' => array('//*[@class="body"]'), + 'test_url' => 'http://www.escapistmagazine.com/articles/view/comicsandcosplay/comics/fraughtwithperil/12166-The-Escapist-Presents-Escapist-Comics-Critical-Miss-B-lyeh-Fhlop?utm_source=rss&utm_medium=rss&utm_campaign=articles', + 'strip' => array(), + ), + '%/articles/view/video-games/columns/.*%' => array( + 'body' => array('//*[@id="article_content"]'), + 'test_url' => 'http://www.escapistmagazine.com/articles/view/video-games/columns/experienced-points/13971-What-50-Shades-and-Batman-Have-in-Common.2', + 'strip' => array(), + ), + ), +); diff --git a/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/espn.go.com.php b/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/espn.go.com.php new file mode 100644 index 0000000..76a20f7 --- /dev/null +++ b/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/espn.go.com.php @@ -0,0 +1,11 @@ + array( + '%.*%' => array( + 'test_url' => 'http://espn.go.com/nfl/story/_/id/13388208/jason-whitlock-chip-kelly-controversy', + 'body' => array( + '//p', + ), + ), + ), +); diff --git a/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/exocomics.com.php b/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/exocomics.com.php new file mode 100644 index 0000000..5adc59f --- /dev/null +++ b/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/exocomics.com.php @@ -0,0 +1,15 @@ + array( + '%.*%' => array( + 'body' => array('//a[@class="comic"]/img'), + 'strip' => array(), + 'test_url' => 'http://www.exocomics.com/379', + ), + ), + 'filter' => array( + '%.*%' => array( + '%title="(.+)" */>%' => '/>
    $1', + ), + ), +); diff --git a/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/explosm.net.php b/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/explosm.net.php new file mode 100644 index 0000000..3fdf02c --- /dev/null +++ b/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/explosm.net.php @@ -0,0 +1,13 @@ + array( + '%.*%' => array( + 'test_url' => 'http://explosm.net/comics/3803/', + 'body' => array( + '//div[@id="comic-container"]', + ), + 'strip' => array( + ), + ), + ), +); diff --git a/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/extrafabulouscomics.com.php b/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/extrafabulouscomics.com.php new file mode 100644 index 0000000..12697cc --- /dev/null +++ b/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/extrafabulouscomics.com.php @@ -0,0 +1,8 @@ + array( + '%.*%' => array( + '%-150x150%' => '', + ), + ), +); diff --git a/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/factroom.ru.php b/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/factroom.ru.php new file mode 100644 index 0000000..a572061 --- /dev/null +++ b/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/factroom.ru.php @@ -0,0 +1,27 @@ + array( + '%.*%' => array( + 'test_url' => 'http://www.factroom.ru/life/20-facts-about-oil', + 'body' => array( + '//div[@class="post"]', + ), + 'strip' => array( + '//script', + '//form', + '//style', + '//h1', + '//div[@id="yandex_ad2"]', + '//*[@class="jp-relatedposts"]', + '//div[contains(@class, "likely-desktop")]', + '//div[contains(@class, "likely-mobile")]', + '//p[last()]', + '//div[contains(@class, "facebook")]', + '//div[contains(@class, "desktop-underpost-direct")]', + '//div[contains(@class, "source-box")]', + '//div[contains(@class, "under-likely-desktop")]', + '//div[contains(@class, "mobile-down-post")]', + ), + ), + ), +); diff --git a/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/fastcodesign.com.php b/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/fastcodesign.com.php new file mode 100644 index 0000000..74e70a8 --- /dev/null +++ b/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/fastcodesign.com.php @@ -0,0 +1,13 @@ + array( + '%.*%' => array( + 'test_url' => 'http://www.fastcodesign.com/3026548/exposure/peek-inside-the-worlds-forbidden-subway-tunnels', + 'body' => array( + '//article[contains(@class, "body prose")]', + ), + 'strip' => array( + ), + ), + ), +); diff --git a/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/fastcoexist.com.php b/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/fastcoexist.com.php new file mode 100644 index 0000000..6916f28 --- /dev/null +++ b/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/fastcoexist.com.php @@ -0,0 +1,13 @@ + array( + '%.*%' => array( + 'test_url' => 'http://www.fastcoexist.com/3026114/take-a-seat-on-this-gates-funded-future-toilet-that-will-change-how-we-think-about-poop', + 'body' => array( + '//article[contains(@class, "body prose")]', + ), + 'strip' => array( + ), + ), + ), +); diff --git a/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/fastcompany.com.php b/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/fastcompany.com.php new file mode 100644 index 0000000..e0869a2 --- /dev/null +++ b/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/fastcompany.com.php @@ -0,0 +1,13 @@ + array( + '%.*%' => array( + 'test_url' => 'http://www.fastcompany.com/3026712/fast-feed/elon-musk-an-apple-tesla-merger-is-very-unlikely', + 'body' => array( + '//article[contains(@class, "body prose")]', + ), + 'strip' => array( + ), + ), + ), +); diff --git a/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/ffworld.com.php b/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/ffworld.com.php new file mode 100644 index 0000000..20a47b2 --- /dev/null +++ b/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/ffworld.com.php @@ -0,0 +1,13 @@ + array( + '%.*%' => array( + 'test_url' => 'http://www.ffworld.com/?rub=news&page=voir&id=2709', + 'body' => array( + '//div[@class="news_body"]', + ), + 'strip' => array( + ), + ), + ), +); diff --git a/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/foreignpolicy.com.php b/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/foreignpolicy.com.php new file mode 100644 index 0000000..3cbcddc --- /dev/null +++ b/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/foreignpolicy.com.php @@ -0,0 +1,21 @@ + array( + '%.*%' => array( + 'test_url' => 'http://foreignpolicy.com/2016/01/09/networking-giant-pulls-nsa-linked-code-exploited-by-hackers/', + 'body' => array( + '//article', + ), + 'strip' => array( + '//div[@id="post-category"]', + '//div[@id="desktop-right"]', + '//h1', + '//section[@class="article-meta"]', + '//div[@class="side-panel-wrapper"]', + '//*[contains(@class, "share-")]', + '//*[contains(@id, "taboola-")]', + '//div[@class="comments"]', + ), + ), + ), +); diff --git a/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/fossbytes.com.php b/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/fossbytes.com.php new file mode 100644 index 0000000..6ce4725 --- /dev/null +++ b/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/fossbytes.com.php @@ -0,0 +1,18 @@ + array( + '%.*%' => array( + 'test_url' => 'http://fossbytes.com/fbi-hacked-1000-computers-to-shut-down-largest-child-pornography-site-on-the-dark-web/', + 'body' => array( + '//div[@class="entry-inner"]', + ), + 'strip' => array( + '//*[@class="at-above-post addthis_default_style addthis_toolbox at-wordpress-hide"]', + '//*[@class="at-below-post addthis_default_style addthis_toolbox at-wordpress-hide"]', + '//*[@class="at-below-post-recommended addthis_default_style addthis_toolbox at-wordpress-hide"]', + '//*[@class="code-block code-block-12 ai-desktop"]', + '//*[@class="code-block code-block-13 ai-tablet-phone"]', + ), + ), + ), +); diff --git a/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/fototelegraf.ru.php b/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/fototelegraf.ru.php new file mode 100644 index 0000000..ca2f85a --- /dev/null +++ b/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/fototelegraf.ru.php @@ -0,0 +1,19 @@ + array( + '%.*%' => array( + 'test_url' => 'http://fototelegraf.ru/?p=348232', + 'body' => array( + '//div[@class="post-content"]', + ), + 'strip' => array( + '//script', + '//form', + '//style', + '//div[@class="imageButtonsBlock"]', + '//div[@class="adOnPostBtwImg"]', + '//div[contains(@class, "post-tags")]', + ), + ), + ), +); diff --git a/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/fowllanguagecomics.com.php b/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/fowllanguagecomics.com.php new file mode 100644 index 0000000..3f62f07 --- /dev/null +++ b/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/fowllanguagecomics.com.php @@ -0,0 +1,10 @@ + array( + '%.*%' => array( + 'body' => array('//*[@id="comic"] | //*[@class="post-image"]'), + 'strip' => array(), + 'test_url' => 'http://www.fowllanguagecomics.com/comic/working-out/', + ), + ), +); diff --git a/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/gamechannel.hu.php b/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/gamechannel.hu.php new file mode 100644 index 0000000..8ab9c5c --- /dev/null +++ b/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/gamechannel.hu.php @@ -0,0 +1,15 @@ + array( + '%.*%' => array( + 'test_url' => 'http://www.gamechannel.hu/cikk/hirblock/a-legacy-of-kain-feltamasztasara-keszul-a-crystal-dynamics', + 'body' => array( + '//div[@class="post"]/div[@class="entry"]' + ), + 'strip' => array( + '//div[@class="valaszto"]', + '//center/blockquote' // as we can't grab iframe here + ) + ), + ), +); diff --git a/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/gamestar.hu.php b/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/gamestar.hu.php new file mode 100644 index 0000000..56a4c72 --- /dev/null +++ b/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/gamestar.hu.php @@ -0,0 +1,17 @@ + array( + '%.*%' => array( + 'test_url' => 'https://www.gamestar.hu/hir/horizon-zero-dawn-the-frozen-wilds-vedjegy-239019.html', + 'body' => array( + '//article/header/h1', + '//div[@class="section section-2-3"]/div[@class="image"]/img', + '//article/p[@class="lead"]', + '//article/div[@class="content"]' + ), + 'strip' => array( + '//div[@class="ad ad-article-inside"]' + ) + ), + ), +); diff --git a/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/geek.com.php b/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/geek.com.php new file mode 100644 index 0000000..d9ccecc --- /dev/null +++ b/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/geek.com.php @@ -0,0 +1,17 @@ + array( + '%.*%' => array( + 'test_url' => 'http://www.geek.com/news/the-11-best-ways-to-eat-eggs-1634076/', + 'body' => array( + '//div[@class="articleinfo"]/figure', + '//div[@class="articleinfo"]/article', + '//span[@class="by"]', + ), + 'strip' => array( + '//span[@class="red"]', + '//div[@class="on-target"]' + ), + ), + ), +); diff --git a/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/geektimes.ru.php b/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/geektimes.ru.php new file mode 100644 index 0000000..1954138 --- /dev/null +++ b/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/geektimes.ru.php @@ -0,0 +1,12 @@ + array( + '%.*%' => array( + 'test_url' => 'https://geektimes.ru/post/289151/', + 'body' => array( + "//div[contains(concat(' ',normalize-space(@class),' '),' content ')]" + ), + 'strip' => array(), + ), + ), +); diff --git a/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/gerbilwithajetpack.com.php b/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/gerbilwithajetpack.com.php new file mode 100644 index 0000000..44013b3 --- /dev/null +++ b/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/gerbilwithajetpack.com.php @@ -0,0 +1,12 @@ + array( + '%.*%' => array( + 'body' => array( + '//div[@id="comic-1"]', + '//div[@class="entry"]', + ), + 'test_url' => 'http://gerbilwithajetpack.com/passing-the-digital-buck/', + ), + ), +); diff --git a/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/giantitp.com.php b/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/giantitp.com.php new file mode 100644 index 0000000..d9c3ae5 --- /dev/null +++ b/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/giantitp.com.php @@ -0,0 +1,12 @@ + array( + '%/comics/oots.*%' => array( + 'test_url' => 'http://www.giantitp.com/comics/oots0989.html', + 'body' => array( + '//td[@align="center"]/img', + ), + 'strip' => array(), + ), + ), +); diff --git a/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/github.com.php b/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/github.com.php new file mode 100644 index 0000000..726634f --- /dev/null +++ b/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/github.com.php @@ -0,0 +1,14 @@ + array( + '%.*%' => array( + 'test_url' => 'https://github.com/audreyr/favicon-cheat-sheet', + 'body' => array( + '//article[contains(@class, "entry-content")]', + ), + 'strip' => array( + '//h1', + ), + ), + ), +); diff --git a/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/gocomics.com.php b/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/gocomics.com.php new file mode 100644 index 0000000..32960f0 --- /dev/null +++ b/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/gocomics.com.php @@ -0,0 +1,12 @@ + array( + '%.*%' => array( + 'test_url' => 'http://www.gocomics.com/pearlsbeforeswine/2015/05/30', + 'body' => array( + '//div[1]/p[1]/a[1]/img', + ), + 'strip' => array(), + ), + ), +); diff --git a/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/golem.de.php b/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/golem.de.php new file mode 100644 index 0000000..8731285 --- /dev/null +++ b/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/golem.de.php @@ -0,0 +1,21 @@ + array( + '%.*%' => array( + 'test_url' => 'http://www.golem.de/news/breko-telekom-verzoegert-gezielt-den-vectoring-ausbau-1311-102974.html', + 'body' => array( + '//header[@class="cluster-header"]', + '//header[@class="paged-cluster-header"]', + '//div[@class="formatted"]', + ), + 'next_page' => array( + '//a[@id="atoc_next"]' + ), + 'strip' => array( + '//header[@class="cluster-header"]/a', + '//header[@class="cluster-header"]/h1', + '//div[@id="iqadtile4"]', + ), + ), + ), +); diff --git a/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/gondola.hu.php b/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/gondola.hu.php new file mode 100644 index 0000000..62b1e3c --- /dev/null +++ b/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/gondola.hu.php @@ -0,0 +1,22 @@ + array( + '%.*%' => array( + 'test_url' => 'https://gondola.hu/hirek/213754-A_budapesti_fejlesztesek_kerdese_mar_nem_zsakbamacska.html', + 'body' => array( + '//div[@id="cikk"]/div[@class="cim"]', + '//br[1]', + '//div[@class="alcim"]', + '//div[@class="lead"]', + '//div[@class="szoveg"]' + ), + 'strip' => array( + '//div[@class="ikonok"]', + '//div[@class="linkekblokk"]', + '//div[@id="billboardbanner"]', + '//div[@class="szerzo"]', + '//div[@class="kulcsszavak"]' + ) + ), + ), +); diff --git a/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/gorabbit.ru.php b/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/gorabbit.ru.php new file mode 100644 index 0000000..4e43248 --- /dev/null +++ b/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/gorabbit.ru.php @@ -0,0 +1,19 @@ + array( + '%.*%' => array( + 'test_url' => 'http://gorabbit.ru/article/10-oshchushcheniy-za-rulem-kogda-tolko-poluchil-voditelskie-prava', + 'body' => array( + '//div[@class="detail_text"]', + ), + 'strip' => array( + '//script', + '//form', + '//style', + '//div[@class="socials"]', + '//div[@id="cr_1"]', + '//div[@class="related_items"]', + ), + ), + ), +); diff --git a/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/habrahabr.ru.php b/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/habrahabr.ru.php new file mode 100644 index 0000000..3f1ec16 --- /dev/null +++ b/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/habrahabr.ru.php @@ -0,0 +1,12 @@ + array( + '%.*%' => array( + 'test_url' => 'https://habrahabr.ru/company/pentestit/blog/328606/', + 'body' => array( + "//div[contains(concat(' ',normalize-space(@class),' '),' content ')]" + ), + 'strip' => array(), + ), + ), +); diff --git a/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/happletea.com.php b/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/happletea.com.php new file mode 100644 index 0000000..75b0b83 --- /dev/null +++ b/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/happletea.com.php @@ -0,0 +1,18 @@ + array( + '%.*%' => array( + 'body' => array( + '//div[@id="comic"]', + '//div[@class="entry"]', + ), + 'strip' => array('//div[@class="ssba"]'), + 'test_url' => 'http://www.happletea.com/comic/mans-best-friend/', + ), + ), + 'filter' => array( + '%.*%' => array( + '%title="(.+)" */>%' => '/>
    $1', + ), + ), +); diff --git a/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/hardware.fr.php b/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/hardware.fr.php new file mode 100644 index 0000000..56aec4f --- /dev/null +++ b/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/hardware.fr.php @@ -0,0 +1,11 @@ + array( + '%^/news.*%' => array( + 'test_url' => 'http://www.hardware.fr/news/14760/intel-lance-nouveaux-ssd-nand-3d.html', + 'body' => array( + '//div[@class="content_actualite"]/div[@class="md"]', + ) + ), + ), +); diff --git a/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/heise.de.php b/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/heise.de.php new file mode 100644 index 0000000..0ee6915 --- /dev/null +++ b/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/heise.de.php @@ -0,0 +1,79 @@ + array( + '%^/tp.*%' => array( + 'test_url' => 'https://www.heise.de/tp/features/Macrons-Vermoegenssteuer-Der-Staat-verzichtet-auf-3-2-Milliarden-3863931.html', + 'body' => array( + '//main/article' + ), + 'strip' => array( + '//header', + '//aside', + '//nav[@class="pre-akwa-toc"]', + '//*[@class="seite_zurueck"]', + '//*[@class="pagination"]', + '//a[@class="kommentare_lesen_link"]', + '//div[contains(@class, "shariff")]', + '//a[@class="beitragsfooter_permalink"]', + '//a[@class="beitragsfooter_fehlermelden"]', + '//a[@class="beitragsfooter_printversion"]' + ), + 'next_page' => array( + '//a[@class="seite_weiter"]' + ), + ), + '%^/newsticker/meldung.*%' => array( + 'test_url' => 'https://www.heise.de/newsticker/meldung/DragonFly-BSD-5-0-mit-experimentellem-HAMMER2-veroeffentlicht-3864731.html', + 'body' => array( + '//div[@class="article-content"]', + ), + 'strip' => array( + '//*[contains(@class, "gallery")]', + '//*[contains(@class, "video")]', + ), + ), + '%^/autos/artikel.*%' => array( + 'test_url' => 'https://www.heise.de/autos/artikel/Bericht-Mazda-baut-Range-Extender-mit-Wankelmotor-3864760.html', + 'body' => array( + '//section[@id="artikel_text"]' + ), + 'strip' => array( + '//p[@id="content_foren"]', + '//div[contains(@class, "shariff")]', + '//p[@class="permalink"]', + '//p[@class="printversion"]' + ), + ), + '%^/foto/meldung.*%' => array( + 'test_url' => 'https://www.heise.de/foto/meldung/Wildlife-Fotograf-des-Jahres-Gewinnerbild-zeigt-getoetetes-Nashorn-3864311.html', + 'body' => array( + '//div[@class="article-content"]' + ), + ), + '%^/ct.*%' => array( + 'test_url' => 'https://www.heise.de/ct/artikel/Google-Pixel-2-und-Pixel-2-XL-im-Test-3863842.html', + 'body' => array( + '//main/div[1]/div[1]/section' + ), + 'strip' => array( + '//header' + ) + ), + '%^/developer.*%' => array( + 'test_url' => 'https://www.heise.de/developer/meldung/Container-Docker-unterstuetzt-Kubernetes-3863625.html', + 'body' => array( + '//div[@class="article-content"]' + ) + ), + '%.*%' => array( + 'test_url' => 'https://www.heise.de/mac-and-i/meldung/iOS-App-Nude-findet-mittels-ML-Nacktbilder-und-versteckt-sie-3864217.html', + 'body' => array( + '//article/div[@class="meldung_wrapper"]', + ), + 'strip' => array( + '//*[contains(@class, "gallery")]', + '//*[contains(@class, "video")]', + ), + ), + ), +); diff --git a/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/hirek.prim.hu.php b/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/hirek.prim.hu.php new file mode 100644 index 0000000..1a38809 --- /dev/null +++ b/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/hirek.prim.hu.php @@ -0,0 +1,14 @@ + array( + '%.*%' => array( + 'test_url' => 'http://hirek.prim.hu/cikk/2017/10/02/atadtak_a_6_fenntarthatosagi_sajtodijat', + 'body' => array( + '//div[@class="boxbody article_box"]/h2', + '//div[@class="text_body"]' + ), + 'strip' => array( + ) + ), + ), +); diff --git a/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/hotshowlife.com.php b/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/hotshowlife.com.php new file mode 100644 index 0000000..faf01f3 --- /dev/null +++ b/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/hotshowlife.com.php @@ -0,0 +1,23 @@ + array( + '%.*%' => array( + 'test_url' => 'https://hotshowlife.com/top-10-chempionov-produktov-po-szhiganiyu-kalorij/', + 'body' => array( + '//div[@class="entry-content"]', + ), + 'strip' => array( + '//script', + '//form', + '//style', + '//div[@class="ads2"]', + '//div[@class="mistape_caption"]', + '//div[contains(@class, "et_social_media_hidden")]', + '//div[contains(@class, "et_social_inline_bottom")]', + '//div[contains(@class, "avatar")]', + '//ul[contains(@class, "entry-tags")]', + '//div[contains(@class, "entry-meta")]', + ), + ), + ), +); diff --git a/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/huffingtonpost.com.php b/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/huffingtonpost.com.php new file mode 100644 index 0000000..b52b07b --- /dev/null +++ b/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/huffingtonpost.com.php @@ -0,0 +1,13 @@ + array( + '%.*%' => array( + 'test_url' => 'http://www.huffingtonpost.com/2014/02/20/centscere-social-media-syracuse_n_4823848.html', + 'body' => array( + '//article[@class="content")]', + ), + 'strip' => array( + ), + ), + ), +); diff --git a/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/hvg.hu.php b/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/hvg.hu.php new file mode 100644 index 0000000..efc9371 --- /dev/null +++ b/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/hvg.hu.php @@ -0,0 +1,17 @@ + array( + '%.*%' => array( + 'test_url' => 'http://hvg.hu/brandchannel/mastercardbch_20171006_Egyetlen_mobillal_erintettuk_Budapest_legjobb_gasztrohelyeit', + 'body' => array( + '//div[@class="article-title article-title"]', + '//div[@class="article-cover-img"]', + '//div[@class="article-main"]' + ), + 'strip' => array( + '//figcaption', + '//div[@class="article-info byline"]' + ) + ), + ), +); diff --git a/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/idokep.hu.php b/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/idokep.hu.php new file mode 100644 index 0000000..06cae09 --- /dev/null +++ b/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/idokep.hu.php @@ -0,0 +1,18 @@ + array( + '%.*%' => array( + 'test_url' => 'https://www.idokep.hu/hirek/4-es-erossegu-tajfun-tart-japan-fele', + 'body' => array( + '//div[@class="cikk-title"]/h3', + '//div[@class="lead"]', + '//div[@class="atvett_tartalom"]', + '//div[@class="cikk-tartalom"]' + ), + 'strip' => array( + '//div[@class="cimkes-doboz"]', + '//div[@class="komment-wrap"]' + ) + ), + ), +); diff --git a/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/imogenquest.net.php b/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/imogenquest.net.php new file mode 100644 index 0000000..3214c62 --- /dev/null +++ b/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/imogenquest.net.php @@ -0,0 +1,8 @@ + array( + '%.*%' => array( + '%title="(.+)" */>%' => '/>
    $1', + ), + ), +); diff --git a/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/index.hu.php b/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/index.hu.php new file mode 100644 index 0000000..727d7b7 --- /dev/null +++ b/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/index.hu.php @@ -0,0 +1,29 @@ + array( + '%.*%' => array( + 'test_url' => 'http://index.hu/mindekozben/poszt/2017/10/20/art_deco_budapest_varosnezo_zsebkonyv_bolla_zoltan/', + 'body' => array( + '//div[@class="mindenkozben_post_content content"]', + '//div[@id="content"]' + ), + 'strip' => array( + '//div[@class="topszponzor_wrapper"]', + '//ul[@class="cikk-cimkek"]', + '//div[@class="author-share-date-container"]', + '//div[@class="pp-list"]', + '//div[@class="social-stripe cikk-bottom-box"]', + '//div[@class="cikk-bottom-text-ad"]', + '//a[@name="hozzaszolasok"]', + '//div[@class="cikk-vegi-ajanlo-reklamok-container"]', + '//div[@id="comments"]', + '//div[@class="comments"]', + '//div[@class="linkpreview-box bekezdes_utan"]', + '//div[@class="lapozo"]', + '//div[@class="szelso-jobb"]', + '//div[@class="social cikk-bottom-box"]', + '//input' + ) + ), + ), +); diff --git a/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/indiehaven.com.php b/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/indiehaven.com.php new file mode 100644 index 0000000..a40ce69 --- /dev/null +++ b/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/indiehaven.com.php @@ -0,0 +1,11 @@ + array( + '%.*%' => array( + 'test_url' => 'http://indiehaven.com/no-mans-sky-is-a-solo-space-adventure-and-im-ok-with-that/', + 'body' => array( + '//section[contains(@class, "entry-content")]', + ) + ), + ), +); diff --git a/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/inforadio.hu.php b/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/inforadio.hu.php new file mode 100644 index 0000000..569013d --- /dev/null +++ b/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/inforadio.hu.php @@ -0,0 +1,25 @@ + array( + '%.*%' => array( + 'test_url' => 'http://inforadio.hu/belfold/2017/10/20/fontos_valtozas_vegleg_lezarnak_tobb_villamosatjarot_budapesten/', + 'body' => array( + '//div[@class="content-title"]', + '//div[@class="szelso-jobb-lead_container"]', + '//div[@class="cikk-torzs"]' + ), + 'strip' => array( + '//div[@id="microsite_microsite"]', + '//div[@class="cikk-bottom-text-ad"]', + '//div[@class="social-stripe_container"]', + '//div[@class="facebook-like-box"]', + '//div[@class="rovat sargabg rovatdobozcim"]', + '//div[@class="m-okosradio_magazin arenaMagazineItem"]', + '//header[@class="m-okosradio_header"]', + '//div[@class="m-okosradio_elo"]', + '//div[@class="m-okosradio_container"]', + '//form' + ) + ), + ), +); diff --git a/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/ing.dk.php b/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/ing.dk.php new file mode 100644 index 0000000..5a021a0 --- /dev/null +++ b/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/ing.dk.php @@ -0,0 +1,12 @@ + array( + '%.*%' => array( + 'test_url' => 'http://ing.dk/artikel/smart-husisolering-og-styring-skal-mindske-japans-energikrise-164517', + 'body' => array( + '//section[contains(@class, "teaser")]', + '//section[contains(@class, "body")]', + ), + ), + ), +); diff --git a/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/invisiblebread.com.php b/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/invisiblebread.com.php new file mode 100644 index 0000000..90f8759 --- /dev/null +++ b/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/invisiblebread.com.php @@ -0,0 +1,8 @@ + array( + '%.*%' => array( + '%()%' => '$1', + ), + ), +); diff --git a/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/ir.amd.com.php b/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/ir.amd.com.php new file mode 100644 index 0000000..af99fe9 --- /dev/null +++ b/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/ir.amd.com.php @@ -0,0 +1,10 @@ + array( + '%.*%' => array( + 'body' => array('//span[@class="ccbnTxt"]'), + 'strip' => array(), + 'test_url' => 'http://ir.amd.com/phoenix.zhtml?c=74093&p=RssLanding&cat=news&id=2055819', + ), + ), +); diff --git a/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/japantimes.co.jp.php b/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/japantimes.co.jp.php new file mode 100644 index 0000000..9959441 --- /dev/null +++ b/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/japantimes.co.jp.php @@ -0,0 +1,21 @@ + array( + '%.*%' => array( + 'test_url' => 'http://www.japantimes.co.jp/news/2015/09/27/world/social-issues-world/pope-meets-sex-abuse-victims-philadelphia-promises-accountability/', + 'body' => array( + '//article[@role="main"]', + ), + 'strip' => array( + '//script', + '//header', + '//div[contains(@class, "meta")]', + '//div[@class="clearfix"]', + '//div[@class="OUTBRAIN"]', + '//ul[@id="content_footer_menu"]', + '//div[@class="article_footer_ad"]', + '//div[@id="disqus_thread"]', + ), + ), + ), +); diff --git a/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/japantoday.com.php b/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/japantoday.com.php new file mode 100644 index 0000000..22485d6 --- /dev/null +++ b/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/japantoday.com.php @@ -0,0 +1,15 @@ + array( + '%.*%' => array( + 'test_url' => 'http://www.japantoday.com/category/politics/view/japan-u-s-to-sign-new-base-environment-pact', + 'body' => array( + '//div[@id="article_container"]', + ), + 'strip' => array( + '//h2', + '//div[@id="article_info"]', + ), + ), + ), +); diff --git a/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/journaldugeek.com.php b/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/journaldugeek.com.php new file mode 100644 index 0000000..876b269 --- /dev/null +++ b/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/journaldugeek.com.php @@ -0,0 +1,11 @@ + array( + '%.*%' => array( + 'test_url' => 'http://www./2014/05/20/le-playstation-now-arrive-en-beta-fermee-aux-etats-unis/', + 'body' => array( + '//div[@class="post-content"]', + ), + ), + ), +); diff --git a/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/jsonline.com.php b/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/jsonline.com.php new file mode 100644 index 0000000..5895256 --- /dev/null +++ b/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/jsonline.com.php @@ -0,0 +1,37 @@ + array( + '%.%/picture-gallery/%' => array( + 'test_url' => 'http://www.jsonline.com/picture-gallery/news/local/milwaukee/2017/02/22/photos-aclu-sues-milwaukee-police-over-profiling-stop-and-frisk/98250836/', + 'body' => array( + '//div[@class="priority-asset-gallery galleries standalone hasendslate"]', + ), + 'strip' => array( + '//div[@class="buy-photo-btn"]', + '//div[@class="gallery-thumbs thumbs pag-thumbs")]', + ), + ), + '%.*%' => array( + 'test_url' => 'http://www.jsonline.com/news/usandworld/as-many-as-a-million-expected-for-popes-last-mass-in-us-b99585180z1-329688131.html', + 'body' => array( + '//div[@itemprop="articleBody"]', + ), + 'strip' => array( + '//h1', + '//iframe', + '//span[@class="mycapture-small-btn mycapture-btn-with-text mycapture-expandable-photo-btn-small js-mycapture-btn-small"]', + '//div[@class="close-wrap"]', + '//div[contains(@class,"ui-video-wrapper")]', + '//div[contains(@class,"media-mob")]', + '//div[contains(@class,"left-mob")]', + '//div[contains(@class,"nerdbox")]', + '//p/span', + '//div[contains(@class,"oembed-asset")]', + '//*[contains(@class,"share")]', + '//div[contains(@class,"gallery-asset")]', + '//div[contains(@class,"oembed-asset")]', + '//div[@class="article-print-url"]', + ), + ), + ), +); diff --git a/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/justcoolidea.ru.php b/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/justcoolidea.ru.php new file mode 100644 index 0000000..089ff29 --- /dev/null +++ b/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/justcoolidea.ru.php @@ -0,0 +1,19 @@ + array( + '%.*%' => array( + 'test_url' => 'http://justcoolidea.ru/idealnyj-sad-samodelnye-proekty-dlya-berezhlivogo-domovladeltsa/', + 'body' => array( + '//section[@class="entry-content"]', + ), + 'strip' => array( + '//script', + '//form', + '//style', + '//*[contains(@class, "essb_links")]', + '//*[contains(@rel, "nofollow")]', + '//*[contains(@class, "ads")]', + ), + ), + ), +); diff --git a/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/kanpai.fr.php b/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/kanpai.fr.php new file mode 100644 index 0000000..c3a1abc --- /dev/null +++ b/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/kanpai.fr.php @@ -0,0 +1,13 @@ + array( + '%.*%' => array( + 'test_url' => 'http://www.kanpai.fr/japon/comment-donner-lheure-en-japonais.html', + 'body' => array( + '//div[@class="single-left"]', + ), + 'strip' => array( + ), + ), + ), +); diff --git a/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/karriere.jobfinder.dk.php b/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/karriere.jobfinder.dk.php new file mode 100644 index 0000000..25d6dfa --- /dev/null +++ b/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/karriere.jobfinder.dk.php @@ -0,0 +1,12 @@ + array( + '%.*%' => array( + 'test_url' => 'http://karriere.jobfinder.dk/artikel/dansk-professor-skal-lede-smart-grid-forskning-20-millioner-dollars-763', + 'body' => array( + '//section[contains(@class, "teaser")]', + '//section[contains(@class, "body")]', + ), + ), + ), +); diff --git a/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/kisalfold.hu.php b/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/kisalfold.hu.php new file mode 100644 index 0000000..7568901 --- /dev/null +++ b/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/kisalfold.hu.php @@ -0,0 +1,17 @@ + array( + '%.*%' => array( + 'test_url' => 'http://www.kisalfold.hu/szorakozas/egy_15_eves_srac_szuntetheti_meg_a_wc-parat_budapesten/2536699/', + 'body' => array( + '//header[@class="single-article__header"]/h1', + '//header[@class="single-article__header"]/h2', + '//figure[@class="single-article__image"]/img', + '//div[@class="single-article__content"]/div[@id="single-article__lead"]', + '//div[@id="article_text"]' + ), + 'strip' => array( + ) + ), + ), +); diff --git a/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/kiszamolo.hu.php b/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/kiszamolo.hu.php new file mode 100644 index 0000000..c44a08f --- /dev/null +++ b/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/kiszamolo.hu.php @@ -0,0 +1,14 @@ + array( + '%.*%' => array( + 'test_url' => 'https://kiszamolo.hu/30-eve-volt-a-fekete-hetfo/', + 'body' => array( + '//article/h2', + '//article/div[@class="entry clearfix"]/p' + ), + 'strip' => array( + ) + ), + ), +); diff --git a/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/kodi.tv.php b/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/kodi.tv.php new file mode 100644 index 0000000..439fc90 --- /dev/null +++ b/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/kodi.tv.php @@ -0,0 +1,11 @@ + array( + '%.*%' => array( + 'test_url' => 'https://kodi.tv/article/andwere-baaaaack', + 'body' => array( + '//div[@class="l-region--content"]', + ), + ), + ), +); diff --git a/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/koreaherald.com.php b/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/koreaherald.com.php new file mode 100644 index 0000000..9651056 --- /dev/null +++ b/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/koreaherald.com.php @@ -0,0 +1,11 @@ + array( + '%.*%' => array( + 'test_url' => 'http://www.koreaherald.com/view.php?ud=20150926000018', + 'body' => array( + '//div[@id="articleText"]', + ), + ), + ), +); diff --git a/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/koreatimes.php b/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/koreatimes.php new file mode 100644 index 0000000..f274b4a --- /dev/null +++ b/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/koreatimes.php @@ -0,0 +1,14 @@ + array( + '%.*%' => array( + 'test_url' => 'http://www.koreatimes.co.kr/www/news/nation/2015/12/116_192409.html', + 'body' => array( + '//div[@id="p"]', + ), + 'strip' => array( + '//div[@id="webtalks_btn_listenDiv"]', + ), + ), + ), +); diff --git a/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/lastplacecomics.com.php b/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/lastplacecomics.com.php new file mode 100644 index 0000000..12697cc --- /dev/null +++ b/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/lastplacecomics.com.php @@ -0,0 +1,8 @@ + array( + '%.*%' => array( + '%-150x150%' => '', + ), + ), +); diff --git a/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/legorafi.fr.php b/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/legorafi.fr.php new file mode 100644 index 0000000..e6aae46 --- /dev/null +++ b/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/legorafi.fr.php @@ -0,0 +1,22 @@ + array( + '%.*%' => array( + 'test_url' => array( + 'http://www.legorafi.fr/2016/12/16/gorafi-magazine-bravo-vous-avez-bientot-presque-survecu-a-2016/', + 'http://www.legorafi.fr/2016/12/15/manuel-valls-promet-quune-fois-elu-il-debarrassera-la-france-de-manuel-valls/', + ), + 'body' => array( + '//section[@id="banner_magazine"]', + '//figure[@class="main_picture"]', + '//div[@class="content"]', + ), + 'strip' => array( + '//figcaption', + '//div[@class="sharebox"]', + '//div[@class="tags"]', + '//section[@class="taboola_article"]', + ), + ), + ), +); diff --git a/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/lejapon.fr.php b/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/lejapon.fr.php new file mode 100644 index 0000000..8f2b293 --- /dev/null +++ b/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/lejapon.fr.php @@ -0,0 +1,17 @@ + array( + '%.*%' => array( + 'test_url' => 'http://lejapon.fr/guide-voyage-japon/5223/tokyo-sous-la-neige.htm', + 'body' => array( + '//div[@class="entry"]', + ), + 'strip' => array( + '//*[contains(@class, "addthis_toolbox")]', + '//*[contains(@class, "addthis_default_style")]', + '//*[@class="navigation small"]', + '//*[@id="related"]', + ), + ), + ), +); diff --git a/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/lesjoiesducode.fr.php b/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/lesjoiesducode.fr.php new file mode 100644 index 0000000..369206a --- /dev/null +++ b/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/lesjoiesducode.fr.php @@ -0,0 +1,13 @@ + array( + '%.*%' => array( + 'test_url' => 'http://lesjoiesducode.fr/post/75576211207/quand-lappli-ne-fonctionne-plus-sans-aucune-raison', + 'body' => array( + '//div[@class="blog-post-content"]', + ), + 'strip' => array( + ), + ), + ), +); diff --git a/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/lfg.co.php b/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/lfg.co.php new file mode 100644 index 0000000..d978a5f --- /dev/null +++ b/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/lfg.co.php @@ -0,0 +1,12 @@ + array( + '%.*%' => array( + 'test_url' => 'http://www.lfg.co/page/871/?utm_source=feedburner&utm_medium=feed&utm_campaign=Feed%3A+LookingForGroup+%28Looking+For+Group%29&utm_content=FeedBurner', + 'body' => array( + '//*[@id="comic"]/img | //*[@class="content"]', + ), + 'strip' => array(), + ), + ), +); diff --git a/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/lifehacker.com.php b/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/lifehacker.com.php new file mode 100644 index 0000000..b9a6933 --- /dev/null +++ b/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/lifehacker.com.php @@ -0,0 +1,18 @@ + array( + '%.*%' => array( + 'test_url' => 'http://lifehacker.com/bring-water-bottle-caps-into-concerts-to-protect-your-d-1269334973', + 'body' => array( + '//div[contains(@class, "row")/img', + '//div[contains(@class, "content-column")]', + ), + 'strip' => array( + '//*[contains(@class, "meta")]', + '//span[contains(@class, "icon")]', + '//h1', + '//aside', + ), + ), + ), +); diff --git a/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/lifehacker.ru.php b/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/lifehacker.ru.php new file mode 100644 index 0000000..bc140f6 --- /dev/null +++ b/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/lifehacker.ru.php @@ -0,0 +1,22 @@ + array( + '%.*%' => array( + 'test_url' => 'http://lifehacker.ru/2016/03/03/polymail/', + 'body' => array( + '//div[@class="post-content"]', + ), + 'strip' => array( + '//script', + '//form', + '//style', + '//*[@class="wp-thumbnail-caption"]', + '//*[contains(@class, "social-likes")]', + '//*[@class="jp-relatedposts"]', + '//*[contains(@class, "wpappbox")]', + '//*[contains(@class, "icon__image")]', + '//div[@id="hypercomments_widget"]', + ), + ), + ), +); diff --git a/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/linux-magazin.de.php b/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/linux-magazin.de.php new file mode 100644 index 0000000..f4bc07d --- /dev/null +++ b/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/linux-magazin.de.php @@ -0,0 +1,16 @@ + array( + '%.*%' => array( + 'test_url' => 'http://www.linux-magazin.de/Ausgaben/2017/09/AWS-Alternativen', + 'body' => array( + '//div[@class="attribute-content"]/div[@class="attribute-intro"]', + '(//div[@class="attribute-image"])[1]', + '//div[@itemprop="articleBody"]', + ), + 'strip' => array( + '//p[@class="attribute-advice"]', + ) + ) + ) +); diff --git a/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/linux.org.php b/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/linux.org.php new file mode 100644 index 0000000..2520d0d --- /dev/null +++ b/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/linux.org.php @@ -0,0 +1,14 @@ + array( + '%.*%' => array( + 'test_url' => 'http://www.linux.org/threads/lua-the-scripting-interpreter.8352/', + 'body' => array( + '//div[@class="messageContent"]', + ), + 'strip' => array( + '//aside', + ), + ), + ), +); diff --git a/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/linux.org.ru.php b/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/linux.org.ru.php new file mode 100644 index 0000000..7fa0249 --- /dev/null +++ b/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/linux.org.ru.php @@ -0,0 +1,13 @@ + array( + '%.*%' => array( + 'test_url' => 'http://www.linux.org/threads/lua-the-scripting-interpreter.8352/', + 'body' => array( + '//div[@itemprop="articleBody"]', + ), + 'strip' => array( + ), + ), + ), +); diff --git a/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/linuxinsider.com.php b/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/linuxinsider.com.php new file mode 100644 index 0000000..4e0a4cc --- /dev/null +++ b/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/linuxinsider.com.php @@ -0,0 +1,20 @@ + array( + '%.*%' => array( + 'test_url' => 'http://www.linuxinsider.com/story/82526.html?rss=1', + 'body' => array( + '//div[@id="story"]', + ), + 'strip' => array( + '//script', + '//h1', + '//div[@id="story-toolbox1"]', + '//div[@id="story-byline"]', + '//div[@id="story"]/p', + '//div[@class="story-advertisement"]', + '//iframe', + ), + ), + ), +); diff --git a/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/lists.php b/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/lists.php new file mode 100644 index 0000000..c7051a2 --- /dev/null +++ b/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/lists.php @@ -0,0 +1,13 @@ + array( + '%.*%' => array( + 'test_url' => 'http://lists.freebsd.org/pipermail/freebsd-announce/2013-September/001504.html', + 'body' => array( + '//pre', + ), + 'strip' => array( + ), + ), + ), +); diff --git a/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/loadingartist.com.php b/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/loadingartist.com.php new file mode 100644 index 0000000..d06ed12 --- /dev/null +++ b/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/loadingartist.com.php @@ -0,0 +1,8 @@ + array( + '%.*%' => array( + '%-150x150%' => '', + ), + ), +); diff --git a/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/loldwell.com.php b/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/loldwell.com.php new file mode 100644 index 0000000..d358e15 --- /dev/null +++ b/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/loldwell.com.php @@ -0,0 +1,10 @@ + array( + '%.*%' => array( + 'test_url' => 'http://loldwell.com/?comic=food-math-101', + 'body' => array('//*[@id="comic"]'), + 'strip' => array(), + ), + ), +); diff --git a/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/lukesurl.com.php b/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/lukesurl.com.php new file mode 100644 index 0000000..816233d --- /dev/null +++ b/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/lukesurl.com.php @@ -0,0 +1,15 @@ + array( + '%.*%' => array( + 'body' => array('//div[@id="comic"]//img'), + 'strip' => array(), + 'test_url' => 'http://www.lukesurl.com/archives/comic/665-3-of-clubs', + ), + ), + 'filter' => array( + '%.*%' => array( + '%title="(.+)" */>%' => '/>
    $1', + ), + ), +); diff --git a/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/macg.co.php b/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/macg.co.php new file mode 100644 index 0000000..bbe6dbc --- /dev/null +++ b/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/macg.co.php @@ -0,0 +1,13 @@ + array( + '%.*%' => array( + 'test_url' => 'http://www.macg.co//logiciels/2014/05/feedly-sameliore-un-petit-peu-sur-mac-82205', + 'body' => array( + '//div[contains(@class, "field-name-body")]', + ), + 'strip' => array( + ), + ), + ), +); diff --git a/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/maclife.de.php b/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/maclife.de.php new file mode 100644 index 0000000..bca347e --- /dev/null +++ b/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/maclife.de.php @@ -0,0 +1,11 @@ + array( + '%.*%' => array( + 'test_url' => 'http://www.maclife.de/news/neue-farbe-iphone-8-kommt-blush-gold-10094817.html', + 'body' => array( + '//div[contains(@class, "article_wrapper")]/p | //div[contains(@class, "article_wrapper")]/h2 | //div[@class="gallery"]//figure | //div[contains(@class, "gallery_single")]//figure', + ) + ) + ) +); diff --git a/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/magyarkurir.hu.php b/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/magyarkurir.hu.php new file mode 100644 index 0000000..32d78bc --- /dev/null +++ b/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/magyarkurir.hu.php @@ -0,0 +1,21 @@ + array( + '%.*%' => array( + 'test_url' => 'http://www.magyarkurir.hu/hirek/a-vilagszerte-ismert-dicsoito-csapat-hillsong-young-free-lep-fel-budapesten', + 'body' => array( + '//div[@class="behuzas"]' + ), + 'strip' => array( + '//div[@class="ikonsav"]', + '//p[@class="copyright"]', + '//div[@class="cimkek"]', + '//div[@id="footerbanner"]', + '//div[@class="rovat sargabg rovatdobozcim"]', + '//div[@class="rovatdoboz"]', + '//a[contains(., "Own")]', + '//a[@class="fblink"]' + ) + ), + ), +); diff --git a/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/marc.info.php b/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/marc.info.php new file mode 100644 index 0000000..5f582a6 --- /dev/null +++ b/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/marc.info.php @@ -0,0 +1,13 @@ + array( + '%.*%' => array( + 'test_url' => 'http://marc.info/?l=openbsd-misc&m=141987113202061&w=2', + 'body' => array( + '//pre', + ), + 'strip' => array( + ), + ), + ), +); diff --git a/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/marriedtothesea.com.php b/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/marriedtothesea.com.php new file mode 100644 index 0000000..469640d --- /dev/null +++ b/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/marriedtothesea.com.php @@ -0,0 +1,12 @@ + array( + '%.*%' => array( + 'test_url' => 'http://www.marriedtothesea.com/index.php?date=052915', + 'body' => array( + '//div[@align]/a/img', + ), + 'strip' => array(), + ), + ), +); diff --git a/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/marycagle.com.php b/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/marycagle.com.php new file mode 100644 index 0000000..b8665e3 --- /dev/null +++ b/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/marycagle.com.php @@ -0,0 +1,13 @@ + array( + '%.*%' => array( + 'body' => array( + '//img[@id="cc-comic"]', + '//div[@class="cc-newsbody"]', + ), + 'strip' => array(), + 'test_url' => 'http://www.marycagle.com/letsspeakenglish/74-grim-reality/', + ), + ), +); diff --git a/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/maximumble.thebookofbiff.com.php b/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/maximumble.thebookofbiff.com.php new file mode 100644 index 0000000..8880054 --- /dev/null +++ b/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/maximumble.thebookofbiff.com.php @@ -0,0 +1,10 @@ + array( + '%.*%' => array( + 'test_url' => 'http://maximumble.thebookofbiff.com/2015/04/20/1084-change/', + 'body' => array('//div[@id="comic"]/div/a/img'), + 'strip' => array(), + ), + ), +); diff --git a/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/medium.com.php b/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/medium.com.php new file mode 100644 index 0000000..e20860e --- /dev/null +++ b/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/medium.com.php @@ -0,0 +1,19 @@ + array( + '%.*%' => array( + 'test_url' => 'https://medium.com/lessons-learned/917b8b63ae3e', + 'body' => array( + '//div[@class="section-content"]', + ), + 'strip' => array( + '//div[contains(@class,"metabar")]', + '//img[contains(@class,"thumbnail")]', + '//h1', + '//blockquote', + '//div[@class="aspectRatioPlaceholder-fill"]', + '//footer' + ), + ), + ), +); diff --git a/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/mercworks.net.php b/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/mercworks.net.php new file mode 100644 index 0000000..c7a27de --- /dev/null +++ b/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/mercworks.net.php @@ -0,0 +1,17 @@ + array( + '%.*%' => array( + 'body' => array('//div[@id="comic"]', + '//div[contains(@class,"entry-content")]', + ), + 'strip' => array(), + 'test_url' => 'http://mercworks.net/comicland/healthy-choice/', + ), + ), + 'filter' => array( + '%.*%' => array( + '%title="(.+)" */>%' => '/>
    $1', + ), + ), +); diff --git a/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/metronieuws.nl.php b/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/metronieuws.nl.php new file mode 100644 index 0000000..5011169 --- /dev/null +++ b/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/metronieuws.nl.php @@ -0,0 +1,10 @@ + array( + '%.*%' => array( + 'test_url' => 'http://www.metronieuws.nl/sport/2015/04/broer-fellaini-zorgde-bijna-voor-paniek-bij-mourinho', + 'body' => array('//div[contains(@class,"article-top")]/div[contains(@class,"image-component")] | //div[@class="article-full-width"]/div[1]'), + 'strip' => array(), + ), + ), +); diff --git a/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/milwaukeenns.php b/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/milwaukeenns.php new file mode 100644 index 0000000..ddb29a5 --- /dev/null +++ b/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/milwaukeenns.php @@ -0,0 +1,14 @@ + array( + '%.*%' => array( + 'test_url' => 'http://milwaukeenns.org/2016/01/08/united-way-grant-enables-sdc-to-restore-free-tax-assistance-program/', + 'body' => array( + '//div[@class="pf-content"]', + ), + 'strip' => array( + '//div[@class="printfriendly"]', + ), + ), + ), +); diff --git a/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/mno.hu.php b/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/mno.hu.php new file mode 100644 index 0000000..a2799b8 --- /dev/null +++ b/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/mno.hu.php @@ -0,0 +1,14 @@ + array( + '%.*%' => array( + 'test_url' => 'https://mno.hu/kulfold/elnokot-valasztanak-szloveniaban-2422840', + 'body' => array( + '//div[@class="header"]/h1', + '//div[@class="content hircikk clearfix"]/p' + ), + 'strip' => array( + ) + ), + ), +); diff --git a/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/mokepon.smackjeeves.com.php b/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/mokepon.smackjeeves.com.php new file mode 100644 index 0000000..1ddcd40 --- /dev/null +++ b/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/mokepon.smackjeeves.com.php @@ -0,0 +1,10 @@ + array( + '%.*%' => array( + 'test_url' => 'http://mokepon.smackjeeves.com/comics/2120096/chapter-9-page-68/', + 'body' => array('//*[@id="comic_area_inner"]/img | //*[@id="comic_area_inner"]/a/img'), + 'strip' => array(), + ), + ), +); diff --git a/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/monandroid.com.php b/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/monandroid.com.php new file mode 100644 index 0000000..f87560e --- /dev/null +++ b/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/monandroid.com.php @@ -0,0 +1,13 @@ + array( + '%.*%' => array( + 'test_url' => 'http://www.monandroid.com/blog/tutoriel-avance-activer-le-stockage-fusionne-sur-android-6-marshamallow-t12.html', + 'body' => array( + '//div[@class="blog-post-body"]', + ), + 'strip' => array( + ), + ), + ), +); diff --git a/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/monwindows.com.php b/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/monwindows.com.php new file mode 100644 index 0000000..b2b24d7 --- /dev/null +++ b/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/monwindows.com.php @@ -0,0 +1,13 @@ + array( + '%.*%' => array( + 'test_url' => 'http://www.monwindows.com/tout-savoir-sur-le-centre-d-action-de-windows-phone-8-1-t40574.html', + 'body' => array( + '//div[@class="blog-post-body"]', + ), + 'strip' => array( + ), + ), + ), +); diff --git a/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/moya-planeta.ru.php b/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/moya-planeta.ru.php new file mode 100644 index 0000000..dd84284 --- /dev/null +++ b/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/moya-planeta.ru.php @@ -0,0 +1,21 @@ + array( + '%.*%' => array( + 'test_url' => 'http://www.moya-planeta.ru/travel/view/chto_yaponcu_horosho_russkomu_ne_ponyat_20432/', + 'body' => array( + '//div[@class="full_object"]', + ), + 'strip' => array( + '//div[@class="full_object_panel object_panel"]', + '//div[@class="full_object_panel_geo object_panel"]', + '//div[@class="full_object_title"]', + '//div[@class="full_object_social_likes"]', + '//div[@class="full_object_planeta_likes"]', + '//div[@class="full_object_go2comments"]', + '//div[@id="yandex_ad_R-163191-3"]', + '//div[@class="full_object_shop_article_recommend"]', + ), + ), + ), +); diff --git a/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/mrlovenstein.com.php b/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/mrlovenstein.com.php new file mode 100644 index 0000000..b971091 --- /dev/null +++ b/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/mrlovenstein.com.php @@ -0,0 +1,9 @@ + array( + '%.*%' => array( + '%alt="(.+)" */>%' => '/>
    $1', + '%\.png%' => '_rollover.png', + ), + ), +); diff --git a/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/muckrock.com.php b/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/muckrock.com.php new file mode 100644 index 0000000..9e354a3 --- /dev/null +++ b/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/muckrock.com.php @@ -0,0 +1,20 @@ + array( + '%.*%' => array( + 'test_url' => 'https://www.muckrock.com/news/archives/2016/jan/13/5-concerns-private-prisons/', + 'body' => array( + '//div[@class="content"]', + ), + 'strip' => array( + '//div[@class="newsletter-widget"]', + '//div[@class="contributors"]', + '//time', + '//h1', + '//div[@class="secondary"]', + '//aside', + '//div[@class="articles__related"]' + ), + ), + ), +); diff --git a/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/mynorthshorenow.com.php b/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/mynorthshorenow.com.php new file mode 100644 index 0000000..b630915 --- /dev/null +++ b/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/mynorthshorenow.com.php @@ -0,0 +1,27 @@ + array( + '%.*%' => array( + 'test_url' => 'http://www.mynorthshorenow.com/story/news/local/fox-point/2017/04/04/fox-point-building-board-approves-dunwood-commons-project/99875570/', + 'body' => array( + '//div[@itemprop="articleBody"]', + ), + 'strip' => array( + '//h1', + '//iframe', + '//span[@class="mycapture-small-btn mycapture-btn-with-text mycapture-expandable-photo-btn-small js-mycapture-btn-small"]', + '//div[@class="close-wrap"]', + '//div[contains(@class,"ui-video-wrapper")]', + '//div[contains(@class,"media-mob")]', + '//div[contains(@class,"left-mob")]', + '//div[contains(@class,"nerdbox")]', + '//p/span', + '//div[contains(@class,"oembed-asset")]', + '//*[contains(@class,"share")]', + '//div[contains(@class,"gallery-asset")]', + '//div[contains(@class,"oembed-asset")]', + '//div[@class="article-print-url"]', + ), + ), + ), +); diff --git a/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/nakedCapitalism.php b/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/nakedCapitalism.php new file mode 100644 index 0000000..ec2d5fd --- /dev/null +++ b/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/nakedCapitalism.php @@ -0,0 +1,11 @@ + array( + '%.*%' => array( + 'test_url' => 'http://feedproxy.google.com/~r/NakedCapitalism/~3/JOBxEHxN8ZI/mark-blyth-liberalism-undermined-democracy-failure-democratic-party.html', + 'body' => array( + '//div[@class="pf-content"]', + ), + ), + ), +); diff --git a/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/nasa.gov.php b/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/nasa.gov.php new file mode 100644 index 0000000..c6692d0 --- /dev/null +++ b/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/nasa.gov.php @@ -0,0 +1,14 @@ + array( + '%.*%' => array( + 'test_url' => 'https://www.nasa.gov/image-feature/jpl/pia20514/coy-dione', + 'body' => array( + '//div[@class="article-body"]', + ), + 'strip' => array( + '//div[@class="title-bar"]', + ), + ), + ), +); diff --git a/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/nat-geo.ru.php b/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/nat-geo.ru.php new file mode 100644 index 0000000..1a42d99 --- /dev/null +++ b/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/nat-geo.ru.php @@ -0,0 +1,11 @@ + array( + '%.*%' => array( + 'test_url' => 'http://www.nat-geo.ru/fact/868093-knidos-antichnyy-naukograd/', + 'body' => array( + '//div[@class="article-inner-text"]', + ), + ), + ), +); diff --git a/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/nationaljournal.com.php b/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/nationaljournal.com.php new file mode 100644 index 0000000..5e612be --- /dev/null +++ b/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/nationaljournal.com.php @@ -0,0 +1,15 @@ + array( + '%.*%' => array( + 'test_url' => 'http://www.nationaljournal.com/s/354962/south-carolina-evangelicals-outstrip-establishment?mref=home_top_main', + 'body' => array( + '//div[@class="section-body"]', + ), + 'strip' => array( + '//*[contains(@class, "-related")]', + '//*[contains(@class, "social")]', + ), + ), + ), +); diff --git a/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/nature.com.php b/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/nature.com.php new file mode 100644 index 0000000..6b9e87f --- /dev/null +++ b/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/nature.com.php @@ -0,0 +1,13 @@ + array( + '%.*%' => array( + 'test_url' => 'http://www.nature.com/doifinder/10.1038/nature.2015.18340', + 'body' => array( + '//div[contains(@class,"main-content")]', + ), + 'strip' => array(), + ), + ), +); + diff --git a/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/nba.com.php b/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/nba.com.php new file mode 100644 index 0000000..c8ea926 --- /dev/null +++ b/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/nba.com.php @@ -0,0 +1,15 @@ + array( + '%.*%' => array( + 'test_url' => 'http://www.nba.com/2015/news/09/25/knicks-jackson-to-spend-more-time-around-coaching-staff.ap/index.html?rss=true', + 'body' => array( + '//div[@class="paragraphs"]', + ), + 'strip' => array( + '//div[@id="nbaArticleSocialWrapper_bot"]', + '//h5', + ), + ), + ), +); diff --git a/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/nedroid.com.php b/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/nedroid.com.php new file mode 100644 index 0000000..3214c62 --- /dev/null +++ b/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/nedroid.com.php @@ -0,0 +1,8 @@ + array( + '%.*%' => array( + '%title="(.+)" */>%' => '/>
    $1', + ), + ), +); diff --git a/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/networkworld.com.php b/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/networkworld.com.php new file mode 100644 index 0000000..1852435 --- /dev/null +++ b/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/networkworld.com.php @@ -0,0 +1,20 @@ + array( + '%.*%' => array( + 'test_url' => 'http://www.networkworld.com/article/3020585/security/the-incident-response-fab-five.html', + 'body' => array( + '//figure/img[@class="hero-img"]', + '//section[@class="deck"]', + '//div[@itemprop="articleBody"] | //div[@itemprop="reviewBody"]', + '//div[@class="carousel-inside-crop"]', + ), + 'strip' => array( + '//script', + '//aside', + '//div[@class="credit"]', + '//div[@class="view-large"]', + ), + ), + ), +); diff --git a/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/neustadt-ticker.de.php b/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/neustadt-ticker.de.php new file mode 100644 index 0000000..e0c0d19 --- /dev/null +++ b/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/neustadt-ticker.de.php @@ -0,0 +1,15 @@ + array( + '%.*%' => array( + 'test_url' => 'http://www.neustadt-ticker.de/41302/alltag/kultur/demo-auf-der-boehmischen', + 'body' => array( + '//div[@class="entry-content"]', + ), + 'strip' => array( + '//*[contains(@class, "sharedaddy")]', + '//*[contains(@class, "yarpp-related")]', + ), + ), + ), +); diff --git a/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/nextinpact.com.php b/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/nextinpact.com.php new file mode 100644 index 0000000..29dd9d6 --- /dev/null +++ b/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/nextinpact.com.php @@ -0,0 +1,18 @@ + array( + '%.*%' => array( + 'test_url' => 'http://www.nextinpact.com/news/101122-3d-nand-intel-lance-six-nouvelles-gammes-ssd-pour-tous-usages.htm', + 'body' => array( + '//div[@class="container_article"]', + ), + 'strip' => array( + '//div[@class="infos_article"]', + '//div[@id="actu_auteur"]', + '//div[@id="soutenir_journaliste"]', + '//section[@id="bandeau_abonnez_vous"]', + '//br' + ), + ), + ), +); diff --git a/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/niceteethcomic.com.php b/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/niceteethcomic.com.php new file mode 100644 index 0000000..f41e443 --- /dev/null +++ b/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/niceteethcomic.com.php @@ -0,0 +1,10 @@ + array( + '%/archives.*%' => array( + 'test_url' => 'http://niceteethcomic.com/archives/page119/', + 'body' => array('//*[@class="comicpane"]/a/img'), + 'strip' => array(), + ), + ), +); diff --git a/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/nichtlustig.de.php b/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/nichtlustig.de.php new file mode 100644 index 0000000..4d083f9 --- /dev/null +++ b/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/nichtlustig.de.php @@ -0,0 +1,8 @@ + array( + '%.*%' => array( + '%.*static.nichtlustig.de/comics/full/(\\d+).*%s' => '', + ), + ), +); diff --git a/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/nlcafe.hu.php b/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/nlcafe.hu.php new file mode 100644 index 0000000..b85e6b2 --- /dev/null +++ b/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/nlcafe.hu.php @@ -0,0 +1,18 @@ + array( + '%.*%' => array( + 'test_url' => 'http://www.nlcafe.hu/ezvan/20171021/nyugdijas-drogdilert-fogtak-a-ferencvarosi-rendorok/', + 'body' => array( + '//div[@class="single-title"]', + '//div[@class="single-excerpt"]', + '//div[@class="single-post-container-content"]/p', + '//div[@class="single-post-container-content"]/div' + ), + 'strip' => array( + '//div[@class="widget-container related-articles bigdata-widget related-full"]', + '//div[@class="banner-container clear-banner-row clearfix"]' + ) + ), + ), +); diff --git a/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/novo-argumente.com.php b/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/novo-argumente.com.php new file mode 100644 index 0000000..cef3595 --- /dev/null +++ b/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/novo-argumente.com.php @@ -0,0 +1,16 @@ + array( + '%.*%' => array( + 'test_url' => 'https://www.novo-argumente.com/artikel/der_kampf_gegen_die_schlafkrankheit', + 'body' => array( + '//main/div/article', + ), + 'strip' => array( + '//*[@class="artikel-datum"]', + '//*[@class="artikel-titel"]', + '//*[@class="artikel-autor"]', + ), + ), + ), +); diff --git a/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/oglaf.com.php b/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/oglaf.com.php new file mode 100644 index 0000000..8b2b5b6 --- /dev/null +++ b/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/oglaf.com.php @@ -0,0 +1,19 @@ + array( + '%.*%' => array( + 'body' => array( + '//img[@id="strip"]', + '//a/div[@id="nx"]/..', + ), + 'strip' => array(), + 'test_url' => 'http://oglaf.com/slodging/', + ), + ), + 'filter' => array( + '%.*%' => array( + '%alt="(.+)" title="(.+)" */>%' => '/>
    $1
    $2
    ', + '%
    %' => 'Next page', + ), + ), +); diff --git a/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/onhax.net.php b/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/onhax.net.php new file mode 100644 index 0000000..213849d --- /dev/null +++ b/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/onhax.net.php @@ -0,0 +1,15 @@ + array( + '%.*%' => array( + 'test_url' => 'http://onhax.net/process-lasso-8-9-1-4-pro-key-portable-is-here-latest', + 'body' => array( + '//div[@class="postcontent"]', + ), + 'strip' => array( + '//*[@class="sharedaddy sd-sharing-enabled"]', + '//*[@class="yarpp-related"]', + ), + ), + ), +); diff --git a/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/onlinekosten.de.php b/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/onlinekosten.de.php new file mode 100644 index 0000000..7382612 --- /dev/null +++ b/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/onlinekosten.de.php @@ -0,0 +1,13 @@ + array( + '%.*%' => array( + 'test_url' => 'https://www.onlinekosten.de/news/android-8-0-die-neuen-features-im-ueberblick_209619.html?utm_source=rss&utm_medium=feed&utm_campaign=android-8-0-die-neuen-features-im-ueberblick', + 'body' => array( + '//p[@class="cms-widget_article_lead"]', + '//img[@class="bec_img"]', + '//div[@class="cms-widget_article_body"]', + ), + ) + ) +); diff --git a/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/onmilwaukee.php b/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/onmilwaukee.php new file mode 100644 index 0000000..f66ac4b --- /dev/null +++ b/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/onmilwaukee.php @@ -0,0 +1,24 @@ + array( + '%.*%' => array( + 'test_url' => 'http://onmilwaukee.com/movies/articles/downerspelunking.html', + 'body' => array( + '//article[contains(@class, "show")]', + ), + 'strip' => array( + '//h1', + '//div[contains(@class,"-ad")]', + '//div[contains(@class,"_ad")]', + '//div[@id="pub_wrapper"]', + '//div[contains(@class,"share_tools")]', + '//div[@class="clearfix"]', + '//div[contains(@class,"image_control")]', + '//section[@class="ribboned"]', + '//div[contains(@class,"sidebar")]', + '//aside[@class="article_tag_list"]', + '//section[contains(@id,"more_posts")]' + ), + ), + ), +); diff --git a/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/openculture.com.php b/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/openculture.com.php new file mode 100644 index 0000000..84f2bee --- /dev/null +++ b/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/openculture.com.php @@ -0,0 +1,11 @@ + array( + '%.*%' => array( + 'test_url' => 'http://www.openculture.com/2017/03/are-we-living-inside-a-computer-simulation-watch-the-simulation-argument.html', + 'body' => array( + '//div[@class="entry"]', + ), + ), + ), +); diff --git a/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/opennet.ru.php b/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/opennet.ru.php new file mode 100644 index 0000000..1fb7722 --- /dev/null +++ b/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/opennet.ru.php @@ -0,0 +1,13 @@ + array( + '%.*%' => array( + 'test_url' => 'https://www.opennet.ru/opennews/art.shtml?num=46549', + 'body' => array( + '//*[@id="r_memo"]', + ), + 'strip' => array( + ), + ) + ) +); diff --git a/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/openrightsgroup.org.php b/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/openrightsgroup.org.php new file mode 100644 index 0000000..94139a7 --- /dev/null +++ b/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/openrightsgroup.org.php @@ -0,0 +1,20 @@ + array( + '%.*%' => array( + 'test_url' => 'https://www.openrightsgroup.org/blog/2014/3-days-to-go-till-orgcon2014', + 'body' => array( + '//div[contains(@class, "content")]/div', + ), + 'strip' => array( + '//h2[1]', + '//div[@class="info"]', + '//div[@class="tags"]', + '//div[@class="comments"]', + '//div[@class="breadcrumbs"]', + '//h1[@class="pageTitle"]', + '//p[@class="bookmarkThis"]', + ), + ), + ), +); diff --git a/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/opensource.com.php b/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/opensource.com.php new file mode 100644 index 0000000..60f3577 --- /dev/null +++ b/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/opensource.com.php @@ -0,0 +1,22 @@ + array( + '%.*%' => array( + 'test_url' => 'http://opensource.com/life/15/10/how-internet-things-will-change-way-we-think', + 'body' => array( + '//div[@id="article-template"]', + ), + 'strip' => array( + '//div[contains(@class,"os-article__sidebar")]', + '//div[@class="panel-pane pane-node-title"]', + '//div[@class="panel-pane pane-os-article-byline"]', + '//ul', + '//div[contains(@class,"-license")]', + '//div[contains(@class,"-tags")]', + '//div[@class="panel-pane pane-os-article-byline"]', + '//div[@class="os-article__content-below"]', + '//div[@id="comments"]' + ), + ), + ), +); diff --git a/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/optipess.com.php b/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/optipess.com.php new file mode 100644 index 0000000..3214c62 --- /dev/null +++ b/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/optipess.com.php @@ -0,0 +1,8 @@ + array( + '%.*%' => array( + '%title="(.+)" */>%' => '/>
    $1', + ), + ), +); diff --git a/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/origo.hu.php b/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/origo.hu.php new file mode 100644 index 0000000..7bd9496 --- /dev/null +++ b/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/origo.hu.php @@ -0,0 +1,14 @@ + array( + '%.*%' => array( + 'test_url' => 'http://www.origo.hu/itthon/20171019-hamisan-tanuskodott-az-ugyved-ezert-nem-praktizalhat.html', + 'body' => array( + '//header[@id="article-head"]/h1', + '//article[@id="article-center"]' + ), + 'strip' => array( + ) + ), + ), +); diff --git a/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/osnews.com.php b/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/osnews.com.php new file mode 100644 index 0000000..1d1396c --- /dev/null +++ b/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/osnews.com.php @@ -0,0 +1,11 @@ + array( + '%.*%' => array( + 'test_url' => 'http://osnews.com/story/28863/Google_said_to_be_under_US_antitrust_scrutiny_over_Android', + 'body' => array( + '//div[@class="newscontent1"]', + ), + ), + ), +); diff --git a/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/pastebin.com.php b/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/pastebin.com.php new file mode 100644 index 0000000..b20bf41 --- /dev/null +++ b/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/pastebin.com.php @@ -0,0 +1,13 @@ + array( + '%.*%' => array( + 'test_url' => 'http://pastebin.com/ed1pP9Ak', + 'body' => array( + '//div[@class="text"]', + ), + 'strip' => array( + ), + ), + ), +); diff --git a/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/pcgameshardware.de.php b/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/pcgameshardware.de.php new file mode 100644 index 0000000..f180aee --- /dev/null +++ b/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/pcgameshardware.de.php @@ -0,0 +1,16 @@ + array( + '%.*%' => array( + 'test_url' => 'http://www.pcgameshardware.de/Dragon-Age-Thema-259929/News/Plaene-fuer-Teil-4-und-5-der-Serie-1235682/', + 'body' => array( + '//p[@class="introText"]', + '//figure[contains(@class, "articleBigTeaser")]', + '//div[@id="articleTextBody"]//p | //div[@id="articleTextBody"]//h2[@class="anchorHeadline"]', + ), + 'strip' => array( + '//p[@class="introText"]//time', + ) + ) + ) +); diff --git a/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/peebleslab.com.php b/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/peebleslab.com.php new file mode 100644 index 0000000..ce4891d --- /dev/null +++ b/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/peebleslab.com.php @@ -0,0 +1,9 @@ + array( + '%.*%' => array( + // the extra space is required to strip the title cleanly + '%title="(.+) " */>%' => '/>
    $1', + ), + ), +); diff --git a/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/penny-arcade.com.php b/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/penny-arcade.com.php new file mode 100644 index 0000000..dd39983 --- /dev/null +++ b/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/penny-arcade.com.php @@ -0,0 +1,21 @@ + array( + '%/news/.*%' => array( + 'test_url' => 'http://penny-arcade.com/news/post/2015/04/15/101-part-two', + 'body' => array( + '//*[@class="postBody"]/*', + ), + 'strip' => array( + ), + ), + '%/comic/.*%' => array( + 'test_url' => 'http://penny-arcade.com/comic/2015/04/15', + 'body' => array( + '//*[@id="comicFrame"]/a/img', + ), + 'strip' => array( + ), + ), + ), +); diff --git a/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/pixelbeat.org.php b/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/pixelbeat.org.php new file mode 100644 index 0000000..fa9052e --- /dev/null +++ b/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/pixelbeat.org.php @@ -0,0 +1,12 @@ + array( + '%.*%' => array( + 'test_url' => 'http://www.pixelbeat.org/programming/sigpipe_handling.html#1425573246', + 'body' => array( + '//div[@class="contentText"]', + ), + 'strip' => array(), + ), + ), +); diff --git a/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/plus.google.com.php b/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/plus.google.com.php new file mode 100644 index 0000000..5e48a6c --- /dev/null +++ b/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/plus.google.com.php @@ -0,0 +1,11 @@ + array( + '%.*%' => array( + 'test_url' => 'https://plus.google.com/+LarryPage/posts/Lh8SKC6sED1', + 'body' => array( + '//div[@role="article"]/div[contains(@class, "eE")]', + ), + ), + ), +); diff --git a/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/popstrip.com.php b/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/popstrip.com.php new file mode 100644 index 0000000..801a281 --- /dev/null +++ b/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/popstrip.com.php @@ -0,0 +1,8 @@ + array( + '%.*%' => array( + '%( '$1$2$1bonus.png"/>', + ), + ), +); diff --git a/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/portfolio.hu.php b/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/portfolio.hu.php new file mode 100644 index 0000000..ad01dad --- /dev/null +++ b/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/portfolio.hu.php @@ -0,0 +1,15 @@ + array( + '%.*%' => array( + 'test_url' => 'http://www.portfolio.hu/gazdasag/mennybe-vagy-pokolba-megy-ma-a-cseh-trump.265833.html', + 'body' => array( + '//div[@id="cikk"]/h1', + '//div[@class="smscontent"]' + ), + 'strip' => array( + '//div[@class="traderhirdetes ga_viewanalytics"]' + ) + ), + ), +); diff --git a/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/pro-linux.de.php b/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/pro-linux.de.php new file mode 100644 index 0000000..bc76630 --- /dev/null +++ b/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/pro-linux.de.php @@ -0,0 +1,16 @@ + array( + '%.*%' => array( + 'test_url' => 'https://www.pro-linux.de/news/1/25252/chrome-62-erschienen.html', + 'body' => array( + '//div[@id="news"]', + ), + 'strip' => array( + '//h3[@class="topic"]', + '//h2[@class="title"]', + '//div[@class="picto"]', + ), + ), + ), +); diff --git a/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/publicpolicyforum.org.php b/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/publicpolicyforum.org.php new file mode 100644 index 0000000..5dc8be8 --- /dev/null +++ b/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/publicpolicyforum.org.php @@ -0,0 +1,15 @@ + array( + '%.*%' => array( + 'test_url' => 'https://publicpolicyforum.org/blog/going-extra-mile', + 'body' => array( + '//div[contains(@class,"field-name-post-date")]', + '//div[contains(@class,"field-name-body")]', + ), + 'strip' => array( + '//img[@src="http://publicpolicyforum.org/sites/default/files/logo3.jpg"]', + ), + ), + ), +); diff --git a/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/publy.ru.php b/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/publy.ru.php new file mode 100644 index 0000000..bcfeeb9 --- /dev/null +++ b/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/publy.ru.php @@ -0,0 +1,24 @@ + array( + '%.*%' => array( + 'test_url' => 'http://www.publy.ru/post/19988', + 'body' => array( + '//div[@class="singlepost"]', + ), + 'strip' => array( + '//script', + '//form', + '//style', + '//*[@class="featured"]', + '//*[@class="toc_white no_bullets"]', + '//*[@class="toc_title"]', + '//*[@class="pba"]', + '//*[@class="comments"]', + '//*[contains(@class, "g-single")]', + '//*[@class="ts-fab-wrapper"]', + '//*[contains(@class, "wp_rp_wrap")]', + ), + ), + ), +); diff --git a/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/putaindecode.fr.php b/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/putaindecode.fr.php new file mode 100644 index 0000000..9fa5568 --- /dev/null +++ b/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/putaindecode.fr.php @@ -0,0 +1,16 @@ + array( + '%.*%' => array( + 'test_url' => 'http://putaindecode.fr/posts/js/etat-lieux-js-modulaire-front/', + 'body' => array( + '//*[@class="putainde-Post-md"]', + ), + 'strip' => array( + '//*[contains(@class, "inlineimg")]', + '//*[contains(@class, "comment-respond")]', + '//header', + ), + ), + ), +); diff --git a/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/recode.net.php b/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/recode.net.php new file mode 100644 index 0000000..343cd12 --- /dev/null +++ b/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/recode.net.php @@ -0,0 +1,20 @@ + array( + '%.*%' => array( + 'test_url' => 'http://recode.net/2015/09/26/big-tech-rolls-out-red-carpet-for-indian-prime-minister-lobbies-behind-closed-doors/', + 'body' => array( + '//img[contains(@class,"attachment-large")]', + '//div[contains(@class,"postarea")]', + '//li[@class,"author"]', + ), + 'strip' => array( + '//script', + '//div[contains(@class,"sharedaddy")]', + '//div[@class="post-send-off"]', + '//div[@class="large-12 columns"]', + '//div[contains(@class,"inner-related-article")]', + ), + ), + ), +); diff --git a/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/retractionwatch.com.php b/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/retractionwatch.com.php new file mode 100644 index 0000000..b97c73e --- /dev/null +++ b/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/retractionwatch.com.php @@ -0,0 +1,18 @@ + array( + '%.*%' => array( + 'test_url' => 'http://retractionwatch.com/2015/11/12/psychologist-jens-forster-settles-case-by-agreeing-to-2-retractions/', + 'body' => array( + '//*[@class="main"]', + '//*[@class="entry-content"]', + ), + 'strip' => array( + '//*[contains(@class, "sharedaddy")]', + '//*[contains(@class, "jp-relatedposts")]', + '//p[@class="p1"]', + ) + ) + ) +); + diff --git a/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/rockpapershotgun.com.php b/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/rockpapershotgun.com.php new file mode 100644 index 0000000..7111078 --- /dev/null +++ b/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/rockpapershotgun.com.php @@ -0,0 +1,11 @@ + array( + '%.*%' => array( + 'test_url' => 'https://www.rockpapershotgun.com/2016/08/26/the-divisions-expansions-delayed-to-improve-the-game/', + 'body' => array( + '//div[@class="entry"]', + ) + ), + ), +); diff --git a/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/rue89.nouvelobs.com.php b/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/rue89.nouvelobs.com.php new file mode 100644 index 0000000..cb9116a --- /dev/null +++ b/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/rue89.nouvelobs.com.php @@ -0,0 +1,13 @@ + array( + '%.*%' => array( + 'test_url' => 'http://rue89.feedsportal.com/c/33822/f/608948/s/30999fa0/sc/24/l/0L0Srue890N0C20A130C0A80C30A0Cfaisait0Eboris0Eboillon0Eex0Esarko0Eboy0E350A0E0A0A0A0Eeuros0Egare0Enord0E245315/story01.htm', + 'body' => array( + '//*[@id="article"]/div[contains(@class, "content")]', + ), + 'strip' => array( + ), + ), + ), +); diff --git a/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/rugbyrama.fr.php b/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/rugbyrama.fr.php new file mode 100644 index 0000000..9915c23 --- /dev/null +++ b/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/rugbyrama.fr.php @@ -0,0 +1,20 @@ + array( + '%.*%' => array( + 'test_url' => 'http://www.rugbyrama.fr/rugby/top-14/2015-2016/top-14-hayman-coupe-du-monde-finale-2012-lutte.-voici-levan-chilachava-toulon_sto5283863/story.shtml', + 'body' => array( + '//div[@class="storyfull__content"]', + ), + 'strip' => array( + '//script', + '//form', + '//style', + '//*[@class="share-buttons"]', + '//*[@class="ad"]', + '//*[@class="hide-desktop"]', + '//*[@id="tracking_img"]', + ) + ) + ) +); \ No newline at end of file diff --git a/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/salonkolumnisten.com b/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/salonkolumnisten.com new file mode 100644 index 0000000..37f43e9 --- /dev/null +++ b/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/salonkolumnisten.com @@ -0,0 +1,17 @@ + array( + '%.*%' => array( + 'test_url' => 'https://www.salonkolumnisten.com/schulpolitik-niedersachsen/', + 'body' => array( + '//div[@id="main"]/div[contains(@class, "featimg")]', + '//div[@id="main"]/article/div[contains(@class, "entry-content")]', + ), + 'strip' => array( + '//div[@id="main"]/article/div[contains(@class, "entry-content")]/a[1]', + '//div[@id="main"]/article/div[contains(@class, "entry-content")]/a[1]', + ), + ), + ), +); + diff --git a/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/satwcomic.com.php b/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/satwcomic.com.php new file mode 100644 index 0000000..d63fc11 --- /dev/null +++ b/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/satwcomic.com.php @@ -0,0 +1,13 @@ + array( + '%.*%' => array( + 'test_url' => 'http://satwcomic.com/day-at-the-beach', + 'body' => array( + '//div[@class="container"]/center/a/img', + '//span[@itemprop="articleBody"]', + ), + 'strip' => array(), + ), + ), +); diff --git a/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/science-skeptical.de.php b/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/science-skeptical.de.php new file mode 100644 index 0000000..fcf045f --- /dev/null +++ b/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/science-skeptical.de.php @@ -0,0 +1,14 @@ + array( + '%.*%' => array( + 'test_url' => 'http://www.science-skeptical.de/politik/diesel-die-lueckenmedien-im-glashaus-6/0016080/', + 'body' => array( + '//div[@class="pf-content"]', + ), + 'strip' => array( + '//div[contains(@class, "printfriendly")]', + ) + ), + ), +); diff --git a/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/scrumalliance.org.php b/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/scrumalliance.org.php new file mode 100644 index 0000000..7835fd9 --- /dev/null +++ b/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/scrumalliance.org.php @@ -0,0 +1,12 @@ + array( + '%.*%' => array( + 'test_url' => 'https://www.scrumalliance.org/community/articles/2015/march/an-introduction-to-agile-project-intake?feed=articles', + 'body' => array( + '//div[@class="article_content"]', + ), + 'strip' => array(), + ), + ), +); diff --git a/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/securityfocus.com.php b/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/securityfocus.com.php new file mode 100644 index 0000000..0104514 --- /dev/null +++ b/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/securityfocus.com.php @@ -0,0 +1,17 @@ + array( + '%.*%' => array( + 'test_url' => 'http://www.securityfocus.com/archive/1/540139', + 'body' => array( + '//div[@id="vulnerability"]', + '//div[@class="comments_reply"]', + ), + 'strip' => array( + '//span[@class="title"]', + '//div[@id="logo_new"]', + '//div[@id="bannerAd"]', + ), + ), + ), +); diff --git a/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/sentfromthemoon.com.php b/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/sentfromthemoon.com.php new file mode 100644 index 0000000..f435417 --- /dev/null +++ b/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/sentfromthemoon.com.php @@ -0,0 +1,18 @@ + array( + '%.*%' => array( + 'body' => array( + '//div[@class="comicpane"]/a/img', + '//div[@class="entry"]', + ), + 'strip' => array(), + 'test_url' => 'http://sentfromthemoon.com/archives/1417', + ), + ), + 'filter' => array( + '%.*%' => array( + '%title="(.+)" */>%' => '/>
    $1', + ), + ), +); diff --git a/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/sitepoint.com.php b/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/sitepoint.com.php new file mode 100644 index 0000000..ab0eb7d --- /dev/null +++ b/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/sitepoint.com.php @@ -0,0 +1,13 @@ + array( + '%.*%' => array( + 'test_url' => 'http://www.sitepoint.com/creating-hello-world-app-swift/', + 'body' => array( + '//section[@class="article_body"]', + ), + 'strip' => array( + ), + ), + ), +); diff --git a/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/slashdot.org.php b/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/slashdot.org.php new file mode 100644 index 0000000..89ced8b --- /dev/null +++ b/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/slashdot.org.php @@ -0,0 +1,11 @@ + array( + '%.*%' => array( + 'test_url' => 'http://science.slashdot.org/story/15/04/20/0528253/pull-top-can-tabs-at-50-reach-historic-archaeological-status', + 'body' => array( + '//article/div[@class="body"] | //article[@class="layout-article"]/div[@class="elips"]', ), + 'strip' => array(), + ), + ), +); diff --git a/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/smallhousebliss.com.php b/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/smallhousebliss.com.php new file mode 100644 index 0000000..8c13c44 --- /dev/null +++ b/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/smallhousebliss.com.php @@ -0,0 +1,19 @@ + array( + '%.*%' => array( + 'test_url' => 'http://smallhousebliss.com/2013/08/29/house-g-by-lode-architecture/', + 'body' => array( + '//div[@class="post-content"]', + ), + 'strip' => array( + '//*[contains(@class, "gallery")]', + '//*[contains(@class, "share")]', + '//*[contains(@class, "wpcnt")]', + '//*[contains(@class, "meta")]', + '//*[contains(@class, "postitle")]', + '//*[@id="nav-below"]', + ), + ), + ), +); diff --git a/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/smarthomewelt.de.php b/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/smarthomewelt.de.php new file mode 100644 index 0000000..7463abc --- /dev/null +++ b/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/smarthomewelt.de.php @@ -0,0 +1,10 @@ + array( + '%.*%' => array( + 'test_url' => 'http://smarthomewelt.de/apple-tv-amazon-echo-smart-home/', + 'body' => array('//div[@class="entry-inner"]/p | //div[@class="entry-inner"]/div[contains(@class,"wp-caption")]'), + 'strip' => array(), + ), + ), +); diff --git a/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/smashingmagazine.com.php b/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/smashingmagazine.com.php new file mode 100644 index 0000000..cbe1072 --- /dev/null +++ b/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/smashingmagazine.com.php @@ -0,0 +1,10 @@ + array( + '%.*%' => array( + 'test_url' => 'http://www.smashingmagazine.com/2015/04/17/using-sketch-for-responsive-web-design-case-study/', + 'body' => array('//article[contains(@class,"post")]/p'), + 'strip' => array(), + ), + ), +); diff --git a/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/smbc-comics.com.php b/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/smbc-comics.com.php new file mode 100644 index 0000000..42262dc --- /dev/null +++ b/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/smbc-comics.com.php @@ -0,0 +1,14 @@ + array( + '%.*%' => array( + 'test_url' => 'http://www.smbc-comics.com/comic/the-troll-toll', + 'body' => array( + '//div[@id="cc-comicbody"]', + '//div[@id="aftercomic"]', + ), + 'strip' => array( + ), + ), + ), +); diff --git a/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/snopes.com.php b/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/snopes.com.php new file mode 100644 index 0000000..b0fe655 --- /dev/null +++ b/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/snopes.com.php @@ -0,0 +1,22 @@ + array( + '%.*%' => array( + 'test_url' => 'http://www.snopes.com/bacca-brides-on-tour/', + 'body' => array( + '//article', + ), + 'strip' => array( + '//span[@itemprop="author"]', + '//div[contains(@class,"author-")]', + '//h1', + '//style', + '//div[contains(@class,"socialShares")]', + '//div[contains(@class,"ad-unit")]', + '//aside', + '//div[contains(@class,"boomtrain")]', + '//footer' + ), + ), + ), +); diff --git a/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/soundandvision.com.php b/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/soundandvision.com.php new file mode 100644 index 0000000..6448bb0 --- /dev/null +++ b/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/soundandvision.com.php @@ -0,0 +1,21 @@ + array( + '%.*%' => array( + 'test_url' => 'http://www.soundandvision.com/content/james-guthrie-mixing-roger-waters-and-pink-floyd-51', + 'body' => array( + '//div[@id="left"]', + ), + 'strip' => array( + '//div[@class="meta"]', + '//div[@class="ratingsbox"]', + '//h1', + '//h2', + '//addthis', + '//comment-links', + '//div[@class="book-navigation"]', + '//div[@class="comment-links"]', + ), + ), + ), +); diff --git a/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/spiegel.de.php b/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/spiegel.de.php new file mode 100644 index 0000000..b42c3aa --- /dev/null +++ b/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/spiegel.de.php @@ -0,0 +1,14 @@ + array( + '%.*%' => array( + 'test_url' => 'http://www.spiegel.de/politik/ausland/afrika-angola-geht-gegen-islam-vor-und-schliesst-moscheen-a-935788.html', + 'body' => array( + '//div[@class="spArticleContent"]/p | //div[@class="spArticleContent"]//img[@class="spResponsiveImage "]', + ), + 'strip' => array( + '//div[@class="author-details"]', + ), + ), + ), +); diff --git a/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/stereophile.com.php b/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/stereophile.com.php new file mode 100644 index 0000000..8e410be --- /dev/null +++ b/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/stereophile.com.php @@ -0,0 +1,11 @@ + array( + '%.*%' => array( + 'test_url' => 'http://www.stereophile.com/content/2015-rocky-mountain-audio-fest-starts-friday', + 'body' => array( + '//div[@class="content clear-block"]', + ), + ), + ), +); diff --git a/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/stupidfox.net.php b/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/stupidfox.net.php new file mode 100644 index 0000000..61182d7 --- /dev/null +++ b/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/stupidfox.net.php @@ -0,0 +1,13 @@ + array( + '%.*%' => array( + 'test_url' => 'http://stupidfox.net/134-sleepy-time', + 'body' => array( + '//div[@class="comicmid"]/center/a/img', + '//div[@class="stand_high"]', + ), + 'strip' => array(), + ), + ), +); diff --git a/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/subtraction.com.php b/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/subtraction.com.php new file mode 100644 index 0000000..6d74427 --- /dev/null +++ b/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/subtraction.com.php @@ -0,0 +1,15 @@ + array( + '%.*%' => array( + 'test_url' => 'http://www.subtraction.com/2015/06/06/time-lapse-video-of-one-world-trade-center/', + 'body' => array('//article/div[@class="entry-content"]'), + 'strip' => array(), + ), + ), + 'filter' => array( + '%.*%' => array( + '%\+%' => '', + ), + ), +); diff --git a/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/sz.de.php b/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/sz.de.php new file mode 100644 index 0000000..90bde5a --- /dev/null +++ b/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/sz.de.php @@ -0,0 +1,10 @@ + array( + '%.*%' => array( + 'test_url' => 'http://sz.de/1.2443161', + 'body' => array('//article[@id="sitecontent"]/section[@class="topenrichment"]//img | //article[@id="sitecontent"]/section[@class="body"]/section[@class="authors"]/preceding-sibling::*[not(contains(@class, "ad"))]'), + 'strip' => array(), + ), + ), +); diff --git a/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/takprosto.cc.php b/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/takprosto.cc.php new file mode 100644 index 0000000..624ef90 --- /dev/null +++ b/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/takprosto.cc.php @@ -0,0 +1,21 @@ + array( + '%.*%' => array( + 'test_url' => 'http://takprosto.cc/kokteyl-dlya-pohudeniya-v-domashnih-usloviyah/', + 'body' => array( + '//div[contains(@class, "entry-contentt")]', + ), + 'strip' => array( + '//script', + '//form', + '//style', + '//*[@class="views_post"]', + '//*[contains(@class, "mailchimp-box")]', + '//*[contains(@class, "essb_links")]', + '//*[contains(@rel, "nofollow")]', + '//*[contains(@class, "ads")]', + ), + ), + ), +); diff --git a/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/techcrunch.com.php b/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/techcrunch.com.php new file mode 100644 index 0000000..230b791 --- /dev/null +++ b/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/techcrunch.com.php @@ -0,0 +1,15 @@ + array( + '%.*%' => array( + 'test_url' => 'http://techcrunch.com/2013/08/31/indias-visa-maze/', + 'body' => array( + '//div[contains(@class, "media-container")]', + '//div[contains(@class, "article-entry")]', + ), + 'strip' => array( + '//*[contains(@class, "module-crunchbase")]', + ), + ), + ), +); diff --git a/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/the-ebook-reader.com.php b/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/the-ebook-reader.com.php new file mode 100644 index 0000000..3b01eb9 --- /dev/null +++ b/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/the-ebook-reader.com.php @@ -0,0 +1,15 @@ + array( + '%.*%' => array( + 'test_url' => 'http://blog.the-ebook-reader.com/2015/09/25/kobo-glo-hd-and-kobo-touch-2-0-covers-and-cases-roundup/', + 'body' => array( + '//div[@class="entry"]', + ), + 'strip' => array( + '//div[@id="share"]', + '//div[contains(@class,"ItemCenter")]', + ), + ), + ), +); diff --git a/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/theatlantic.com.php b/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/theatlantic.com.php new file mode 100644 index 0000000..bfad4ab --- /dev/null +++ b/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/theatlantic.com.php @@ -0,0 +1,23 @@ + array( + '%.*%' => array( + 'test_url' => 'http://www.theatlantic.com/politics/archive/2015/09/what-does-it-mean-to-lament-the-poor-inside-panem/407317/', + 'body' => array( + '//picture[@class="img"]', + '//figure/figcaption/span', + '//div/p[@itemprop="description"]', + '//div[@class="article-body"]', + '//ul[@class="photos"]', + ), + 'strip' => array( + '//aside[@class="callout"]', + '//span[@class="credit"]', + '//figcaption[@class="credit"]', + '//aside[contains(@class,"partner-box")]', + '//div[contains(@class,"ad")]', + '//a[contains(@class,"social-icon")]', + ), + ), + ), +); diff --git a/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/theawkwardyeti.com.php b/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/theawkwardyeti.com.php new file mode 100644 index 0000000..fd4f3d5 --- /dev/null +++ b/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/theawkwardyeti.com.php @@ -0,0 +1,12 @@ + array( + '%/comic/.*%' => array( + 'test_url' => 'http://theawkwardyeti.com/comic/things-to-do/', + 'body' => array( + '//div[@id="comic"]' + ), + 'strip' => array() + ) + ) +); diff --git a/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/thecodinglove.com.php b/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/thecodinglove.com.php new file mode 100644 index 0000000..c6ec5bf --- /dev/null +++ b/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/thecodinglove.com.php @@ -0,0 +1,10 @@ + array( + '%.*%' => array( + 'test_url' => 'http://thecodinglove.com/post/116897934767', + 'body' => array('//div[@class="bodytype"]'), + 'strip' => array(), + ), + ), +); diff --git a/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/thedoghousediaries.com.php b/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/thedoghousediaries.com.php new file mode 100644 index 0000000..d2f840d --- /dev/null +++ b/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/thedoghousediaries.com.php @@ -0,0 +1,18 @@ + array( + '%.*%' => array( + 'body' => array( + '//div[@class="comicpane"]/a/img', + '//div[@class="entry"]', + ), + 'strip' => array(), + 'test_url' => 'http://thedoghousediaries.com/6023', + ), + ), + 'filter' => array( + '%.*%' => array( + '%title="(.+)" */>%' => '/>
    $1', + ), + ), +); diff --git a/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/thegamercat.com.php b/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/thegamercat.com.php new file mode 100644 index 0000000..f9b4637 --- /dev/null +++ b/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/thegamercat.com.php @@ -0,0 +1,10 @@ + array( + '%.*%' => array( + 'test_url' => 'http://www.thegamercat.com/comic/just-no/', + 'body' => array('//div[@id="comic"] | //div[@class="post-content"]/div[@class="entry"]/p'), + 'strip' => array(), + ), + ), +); diff --git a/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/thehindu.com.php b/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/thehindu.com.php new file mode 100644 index 0000000..1e6735b --- /dev/null +++ b/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/thehindu.com.php @@ -0,0 +1,19 @@ + array( + '%.*%' => array( + 'test_url' => 'http://www.thehindu.com/sci-tech/science/why-is-the-shape-of-cells-in-a-honeycomb-always-hexagonal/article7692306.ece?utm_source=RSS_Feed&utm_medium=RSS&utm_campaign=RSS_Syndication', + 'body' => array( + '//div/img[@class="main-image"]', + '//div[@class="photo-caption"]', + '//div[@class="articleLead"]', + '//p', + '//span[@class="upper"]', + ), + 'strip' => array( + '//div[@id="articleKeywords"]', + '//div[@class="photo-source"]', + ), + ), + ), +); diff --git a/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/thelocal.se.php b/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/thelocal.se.php new file mode 100644 index 0000000..c3ec250 --- /dev/null +++ b/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/thelocal.se.php @@ -0,0 +1,17 @@ + array( + '%.*%' => array( + 'test_url' => 'www.thelocal.se/20161219/this-swede-can-memorize-hundreds-of-numbers-in-only-five-minutes', + 'body' => array( + '//div[@id="article-photo"]', + '//div[@id="article-description"]', + '//div[@id="article-body"]', + ), + 'strip' => array( + '//div[@id="article-info-middle"]', + ) + ) + ) +); + diff --git a/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/themerepublic.net.php b/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/themerepublic.net.php new file mode 100644 index 0000000..bc47b27 --- /dev/null +++ b/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/themerepublic.net.php @@ -0,0 +1,10 @@ + array( + '%.*%' => array( + 'test_url' => 'http://www.themerepublic.net/2015/04/david-lopez-pitoko.html?utm_source=feedburner&utm_medium=feed&utm_campaign=Feed%3A+blogspot%2FDngUJ+%28Theme+Republic%29&utm_content=FeedBurner', + 'body' => array('//*[@class="post-body"]'), + 'strip' => array(), + ), + ), +); diff --git a/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/themoscowtimes.com.php b/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/themoscowtimes.com.php new file mode 100644 index 0000000..0f5bf75 --- /dev/null +++ b/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/themoscowtimes.com.php @@ -0,0 +1,18 @@ + array( + '%.*%' => array( + 'test_url' => 'http://www.themoscowtimes.com/business/article/535500.html', + 'body' => array( + '//div[@class="article_main_img"]', + '//div[@class="article_text"]', + ), + 'strip' => array( + '//div[@class="articlebottom"]', + '//p/b', + '//p/a[contains(@href, "/article.php?id=")]', + '//div[@class="disqus_wrap"]', + ), + ), + ), +); diff --git a/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/thenewslens.com.php b/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/thenewslens.com.php new file mode 100644 index 0000000..7538170 --- /dev/null +++ b/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/thenewslens.com.php @@ -0,0 +1,21 @@ + array( + '%.*%' => array( + 'test_url' => 'http://international.thenewslens.com/post/255032/', + 'body' => array( + '//div[@class="article-section"]', + ), + 'strip' => array( + '//div[contains(@class,"ad-")]', + '//div[@class="article-title-box"]', + '//div[@class="function-box"]', + '//p/span', + '//aside', + '//footer', + '//div[@class="article-infoBot-box"]', + '//div[contains(@class,"standard-container")]' + ), + ), + ), +); diff --git a/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/theodd1sout.com.php b/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/theodd1sout.com.php new file mode 100644 index 0000000..d06ed12 --- /dev/null +++ b/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/theodd1sout.com.php @@ -0,0 +1,8 @@ + array( + '%.*%' => array( + '%-150x150%' => '', + ), + ), +); diff --git a/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/theonion.com.php b/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/theonion.com.php new file mode 100644 index 0000000..acbfd36 --- /dev/null +++ b/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/theonion.com.php @@ -0,0 +1,12 @@ + array( + '%.*%' => array( + 'test_url' => 'http://www.theonion.com/article/wild-eyed-jim-harbaugh-informs-players-they-must-k-51397?utm_medium=RSS&utm_campaign=feeds', + 'body' => array( + '//div[@class="content-masthead"]/figure/div/noscript/img', + '//div[@class="content-text"]', + ), + ), + ), +); diff --git a/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/theregister.co.uk.php b/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/theregister.co.uk.php new file mode 100644 index 0000000..896365a --- /dev/null +++ b/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/theregister.co.uk.php @@ -0,0 +1,18 @@ + array( + '%.*%' => array( + 'test_url' => 'https://www.theregister.co.uk/2017/10/21/purism_cleanses_laptops_of_intel_management_engine/', + 'body' => array( + '//div[@id="article"]', + ), + 'strip' => array( + '//div[@class="byline_and_share"]', + '//div[@class="social_btns alt_colour dcl"]', + '//div[@class="promo_article"]', + '//div[@id="article_body_btm"]', + '//p[@class="wptl btm"]' + ) + ), + ), +); diff --git a/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/thestandard.com.hk.php b/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/thestandard.com.hk.php new file mode 100644 index 0000000..1163b34 --- /dev/null +++ b/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/thestandard.com.hk.php @@ -0,0 +1,22 @@ + array( + '%.*%' => array( + 'test_url' => 'http://www.thestandard.com.hk/breaking_news_detail.asp?id=67156', + 'body' => array( + '//table/tr/td/span[@class="bodyCopy"]', + ), + 'strip' => array( + '//script', + '//br', + '//map[@name="gif_bar"]', + '//img[contains(@usemap,"gif_bar")]', + '//a', + '//span[@class="bodyHeadline"]', + '//i', + '//b', + '//table', + ), + ), + ), +); diff --git a/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/theverge.com.php b/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/theverge.com.php new file mode 100644 index 0000000..09e876d --- /dev/null +++ b/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/theverge.com.php @@ -0,0 +1,16 @@ + array( + '%.*%' => array( + 'test_url' => 'https://www.theverge.com/2017/11/11/16624298/mindhunter-netflix-show-david-fincher-review', + 'body' => array( + '//figure[@class="e-image e-image--hero"]/span[@class="e-image__inner"]', + '//div[@class="c-entry-content"]', + ), + 'strip' => array( + '//div[@class="c-related-list"]', + '//div[@class="c-page-title"]', + ) + ), + ), +); diff --git a/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/threepanelsoul.com.php b/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/threepanelsoul.com.php new file mode 100644 index 0000000..4af6196 --- /dev/null +++ b/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/threepanelsoul.com.php @@ -0,0 +1,11 @@ + array( + '%.*%' => array( + 'body' => array( + '//img[@id="cc-comic"]', + ), + 'test_url' => 'http://www.threepanelsoul.com/comic/uncloaking', + ), + ), +); diff --git a/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/tichyseinblick.de.php b/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/tichyseinblick.de.php new file mode 100644 index 0000000..6fba3df --- /dev/null +++ b/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/tichyseinblick.de.php @@ -0,0 +1,22 @@ + array( + '%.*%' => array( + 'test_url' => 'https://www.tichyseinblick.de/daili-es-sentials/jamaika-reaktionen-der-enttaeuschten/', + 'body' => array( + '//article' + ), + 'strip' => array( + '//header', + '//footer', + '//div[@class="mod-cad2"]', + '//ul[contains(@class, "social")]', + '//div[@class="rty-pop-up"]', + '//div[@class="pagelink"]', + '//div[@id="reward"]', + '//div[@class="rty-block-plista"]' + ) + ), + ), +); + diff --git a/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/timesofindia.indiatimes.com.php b/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/timesofindia.indiatimes.com.php new file mode 100644 index 0000000..1924680 --- /dev/null +++ b/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/timesofindia.indiatimes.com.php @@ -0,0 +1,14 @@ + array( + '%.*%' => array( + 'test_url' => 'http://timesofindia.indiatimes.com/city/mangaluru/Adani-UPCL-to-release-CSR-grant-of-Rs-3-74-crore-to-YellurGram-Panchayat/articleshow/50512116.cms', + 'body' => array( + '//div[@class="article_content clearfix"]', + '//section[@class="highlight clearfix"]', + ), + 'strip' => array( + ), + ), + ), +); diff --git a/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/totalcar.hu.php b/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/totalcar.hu.php new file mode 100644 index 0000000..f2e009d --- /dev/null +++ b/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/totalcar.hu.php @@ -0,0 +1,18 @@ + array( + '%.*%' => array( + 'test_url' => 'http://totalcar.hu/tesztek/2017/10/21/veteran_fiat-abarth_1000tc_1968/', + 'body' => array( + '//div[@class="content-title"]', + '//div[@class="lead-container"]/div[@class="lead"]', + '//div[@class="cikk-torzs"]' + ), + 'strip' => array( + '//span[@class="gallery_title newline"]', + '//div[@class="social-stripe cikk-bottom-box"]', + '//div[@class="cikk-bottom-text-ad"]' + ) + ), + ), +); diff --git a/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/tozsdeforum.hu.php b/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/tozsdeforum.hu.php new file mode 100644 index 0000000..97a0da0 --- /dev/null +++ b/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/tozsdeforum.hu.php @@ -0,0 +1,15 @@ + array( + '%.*%' => array( + 'test_url' => 'http://www.tozsdeforum.hu/szemelyes-penzugyek/napi-penzugyek/ezek-a-legnepszerubb-turistacelpontok-voltal-mar-mindenhol-87181.html', + 'body' => array( + '//header/h1', + '//div[@class="title_img"]', + '//article/div[@class="tf-post"]/div[@class="p"]/p|//article/div[@class="tf-post"]/div[@class="p"]/h3|//article/div[@class="tf-post"]/div[@class="p"]/blockquote' + ), + 'strip' => array( + ) + ), + ), +); diff --git a/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/travel-dealz.de.php b/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/travel-dealz.de.php new file mode 100644 index 0000000..4ee4fcd --- /dev/null +++ b/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/travel-dealz.de.php @@ -0,0 +1,15 @@ + array( + '%^/blog.*%' => array( + 'test_url' => 'http://travel-dealz.de/blog/venere-gutschein/', + 'body' => array('//div[@class="post-entry"]'), + 'strip' => array( + '//*[@id="jp-relatedposts"]', + '//*[@class="post-meta"]', + '//*[@class="post-data"]', + '//*[@id="author-meta"]', + ), + ), + ), +); diff --git a/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/travelo.hu.php b/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/travelo.hu.php new file mode 100644 index 0000000..3ab8ca4 --- /dev/null +++ b/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/travelo.hu.php @@ -0,0 +1,17 @@ + array( + '%.*%' => array( + 'test_url' => 'http://travelo.hu/csaladbarat/2017/10/20/mar_csak_egy_het_es_kezdodik_az_oszi_szunet/', + 'body' => array( + '//div[@id="content"]/h1', + '//div[@id="kopf"]', + '//div[@id="szoveg"]' + ), + 'strip' => array( + '//div[@class="goAdverticum"]', + '//h1[@class="border"]' + ) + ), + ), +); diff --git a/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/treehugger.com.php b/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/treehugger.com.php new file mode 100644 index 0000000..55eb7e0 --- /dev/null +++ b/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/treehugger.com.php @@ -0,0 +1,14 @@ + array( + '%.*%' => array( + 'test_url' => 'http://www.treehugger.com/uncategorized/top-ten-posts-week-bunnies-2.html', + 'body' => array( + '//div[contains(@class, "promo-image")]', + '//div[contains(@id, "entry-body")]', + ), + 'strip' => array( + ), + ), + ), +); diff --git a/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/treelobsters.com.php b/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/treelobsters.com.php new file mode 100644 index 0000000..3214c62 --- /dev/null +++ b/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/treelobsters.com.php @@ -0,0 +1,8 @@ + array( + '%.*%' => array( + '%title="(.+)" */>%' => '/>
    $1', + ), + ), +); diff --git a/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/tutorialzine.com.php b/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/tutorialzine.com.php new file mode 100644 index 0000000..7e39145 --- /dev/null +++ b/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/tutorialzine.com.php @@ -0,0 +1,20 @@ + array( + '%.*%' => array( + 'test_url' => 'https://tutorialzine.com/2017/10/15-interesting-javascript-and-css-libraries-for-october-2017', + 'body' => array( + '//article' + ), + 'strip' => array( + '//div[@class="article__header"]', + '//div[@class="article__share"]', + '//div[@class="article__footer"]', + '//div[@id="article__related-articles"]', + '//div[@class="webappstudio-animation"]', + '//div[@class="ad-container adsbygoogle hidden-xs hidden-sm"]', + '//script' + ) + ), + ), +); diff --git a/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/twogag.com.php b/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/twogag.com.php new file mode 100644 index 0000000..79f4f62 --- /dev/null +++ b/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/twogag.com.php @@ -0,0 +1,8 @@ + array( + '%.*%' => array( + '%http://www.twogag.com/comics-rss/([^.]+)\\.jpg%' => 'http://www.twogag.com/comics/$1.jpg', + ), + ), +); diff --git a/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/twokinds.keenspot.com.php b/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/twokinds.keenspot.com.php new file mode 100644 index 0000000..3428fcb --- /dev/null +++ b/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/twokinds.keenspot.com.php @@ -0,0 +1,10 @@ + array( + '%.*%' => array( + 'test_url' => 'http://twokinds.keenspot.com/archive.php?p=0', + 'body' => array('//*[@class="comic"]/div/a/img | //*[@class="comic"]/div/img | //*[@id="cg_img"]/img | //*[@id="cg_img"]/a/img'), + 'strip' => array(), + ), + ), +); diff --git a/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/undeadly.org.php b/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/undeadly.org.php new file mode 100644 index 0000000..8b15900 --- /dev/null +++ b/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/undeadly.org.php @@ -0,0 +1,14 @@ + array( + '%.*%' => array( + 'test_url' => 'http://undeadly.org/cgi?action=article&sid=20141101181155', + 'body' => array( + '/html/body/table[3]/tbody/tr/td[1]/table[2]/tr/td[1]', + ), + 'strip' => array( + '//font', + ), + ), + ), +); diff --git a/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/upi.com.php b/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/upi.com.php new file mode 100644 index 0000000..ec8d1a1 --- /dev/null +++ b/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/upi.com.php @@ -0,0 +1,15 @@ + array( + '%.*%' => array( + 'test_url' => 'http://www.upi.com/Top_News/US/2015/09/26/Tech-giants-Hollywood-stars-among-guests-at-state-dinner-for-Chinas-Xi-Jinping/4541443281006/', + 'body' => array( + '//div[@class="img"]', + '//div/article[@itemprop="articleBody"]', + ), + 'strip' => array( + '//div[@align="center"]', + ), + ), + ), +); diff --git a/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/usatoday.com.php b/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/usatoday.com.php new file mode 100644 index 0000000..edd6aa4 --- /dev/null +++ b/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/usatoday.com.php @@ -0,0 +1,27 @@ + array( + '%.*%' => array( + 'test_url' => 'http://www.usatoday.com/story/life/music/2017/02/13/things-you-should-know-happened-grammy-awards-2017/97833734/', + 'body' => array( + '//div[@itemprop="articleBody"]', + ), + 'strip' => array( + '//script', + '//h1', + '//iframe', + '//span[@class="mycapture-small-btn mycapture-btn-with-text mycapture-expandable-photo-btn-small js-mycapture-btn-small"]', + '//div[@class="close-wrap"]', + '//div[contains(@class,"ui-video-wrapper")]', + '//div[contains(@class,"media-mob")]', + '//div[contains(@class,"left-mob")]', + '//div[contains(@class,"nerdbox")]', + '//div[contains(@class,"oembed-asset")]', + '//*[contains(@class,"share")]', + '//div[contains(@class,"gallery-asset")]', + '//div[contains(@class,"oembed-asset")]', + '//div[@class="article-print-url"]' + ), + ), + ), +); diff --git a/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/version2.dk.php b/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/version2.dk.php new file mode 100644 index 0000000..a6d49f2 --- /dev/null +++ b/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/version2.dk.php @@ -0,0 +1,12 @@ + array( + '%.*%' => array( + 'test_url' => 'http://www.version2.dk/artikel/surface-pro-2-fungerer-bedre-til-arbejde-end-fornoejelse-55195', + 'body' => array( + '//section[contains(@class, "teaser")]', + '//section[contains(@class, "body")]', + ), + ), + ), +); diff --git a/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/vezess.hu.php b/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/vezess.hu.php new file mode 100644 index 0000000..acd68c0 --- /dev/null +++ b/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/vezess.hu.php @@ -0,0 +1,20 @@ + array( + '%.*%' => array( + 'test_url' => 'http://www.vezess.hu/hirek/2017/10/20/audi-a7-2018-bemutato/', + 'body' => array( + '//article[@id="news"]/h1', + '//article[@id="news"]/h2', + '//article[@id="news"]/p[@class="lead"]', + '//article[@id="news"]/p[@class="main-pic responsive-img-container"]', + '//div[@class="article-body"]' + ), + 'strip' => array( + '//div[@class="info-bar"]', + '//ul[@class="breadcrumb"]', + '//div[@class="embed-link ce_widget"]' + ) + ), + ), +); diff --git a/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/vgcats.com.php b/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/vgcats.com.php new file mode 100644 index 0000000..b2830a3 --- /dev/null +++ b/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/vgcats.com.php @@ -0,0 +1,15 @@ + array( + '%/comics.*%' => array( + 'test_url' => 'http://www.vgcats.com/comics/?strip_id=358', + 'body' => array('//*[@align="center"]/img'), + 'strip' => array(), + ), + '%/super.*%' => array( + 'test_url' => 'http://www.vgcats.com/super/?strip_id=84', + 'body' => array('//*[@align="center"]/p/img'), + 'strip' => array(), + ), + ), +); diff --git a/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/vuxml.org.php b/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/vuxml.org.php new file mode 100644 index 0000000..b9bef7a --- /dev/null +++ b/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/vuxml.org.php @@ -0,0 +1,17 @@ + array( + '%.*%' => array( + 'test_url' => 'http://www.vuxml.org/freebsd/a5f160fa-deee-11e4-99f8-080027ef73ec.html', + 'body' => array( + '//body', + ), + 'strip' => array( + '//h1', + '//div[@class="blurb"]', + '//hr', + '//p[@class="copyright"]', + ), + ), + ), +); diff --git a/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/wausaudailyherald.com.php b/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/wausaudailyherald.com.php new file mode 100644 index 0000000..58aceea --- /dev/null +++ b/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/wausaudailyherald.com.php @@ -0,0 +1,27 @@ + array( + '%.*%' => array( + 'test_url' => 'http://www.wausaudailyherald.com/story/news/2017/04/01/hundreds-gather-remember-attorney-killed-shooting-spree/99826062/?from=global&sessionKey=&autologin=', + 'body' => array( + '//div[@itemprop="articleBody"]', + ), + 'strip' => array( + '//h1', + '//iframe', + '//span[@class="mycapture-small-btn mycapture-btn-with-text mycapture-expandable-photo-btn-small js-mycapture-btn-small"]', + '//div[@class="close-wrap"]', + '//div[contains(@class,"ui-video-wrapper")]', + '//div[contains(@class,"media-mob")]', + '//div[contains(@class,"left-mob")]', + '//div[contains(@class,"nerdbox")]', + '//p/span', + '//div[contains(@class,"oembed-asset")]', + '//*[contains(@class,"share")]', + '//div[contains(@class,"gallery-asset")]', + '//div[contains(@class,"oembed-asset")]', + '//div[@class="article-print-url"]', + ), + ), + ), +); diff --git a/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/welt.de.php b/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/welt.de.php new file mode 100644 index 0000000..83a2ebe --- /dev/null +++ b/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/welt.de.php @@ -0,0 +1,20 @@ + array( + '%.*%' => array( + 'test_url' => 'https://www.welt.de/debatte/kommentare/article169740590/Bloss-keine-sozialdemokratische-Konsenssause.html', + 'body' => array( + '//main/article/header/div/div[contains(@class, "c-summary")]/div', + '//main/article/header/div[3]/div/figure/div/div/div/picture[1]', + '//main/article/header/div[3]/div/figure/figcaption/child::*', + '//main/article/div[contains(@class, "c-article-text")]' + ), + 'strip' => array( + '//*[contains(@class, "c-inline-element--has-commercials")]', + '//*[contains(@class, "c-inline-teaser")]', + '//figure[contains(@class, "c-video-element")]', + '//main/article/div[contains(@class, "c-article-text")]/div[@class="c-inline-element"]/div[contains(@class, "c-image-element")]' + ), + ), + ), +); diff --git a/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/westfalen-blatt.de.php b/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/westfalen-blatt.de.php new file mode 100644 index 0000000..adcf417 --- /dev/null +++ b/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/westfalen-blatt.de.php @@ -0,0 +1,16 @@ + array( + '%.*%' => array( + 'test_url' => 'http://www.westfalen-blatt.de/OWL/Lokales/Kreis-Hoexter/Warburg/3024113-Polizei-in-Warburg-Hier-waren-keine-kriminellen-Profis-am-Werk-Wurstautomat-Sprengung-mit-Polen-Boellern', + 'body' => array( + '//div[contains(@class, "articleimage")]', + '//div[@class="attribute-short"]', + '//div[@class="attribute-long"]', + ), + 'strip' => array( + '//div[@class="fb-post"]' + ), + ), + ), +); diff --git a/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/www.bbc.co.uk.php b/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/www.bbc.co.uk.php new file mode 100644 index 0000000..98fc368 --- /dev/null +++ b/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/www.bbc.co.uk.php @@ -0,0 +1,33 @@ + array( + '%.*%' => array( + 'test_url' => 'http://www.bbc.co.uk/news/world-middle-east-23911833', + 'body' => array( + '//div[@class="story-body__inner"] | //div[@class="article"]', + '//div[@class="indPost"]', + ), + 'strip' => array( + '//form', + '//div[@id="headline"]', + '//*[@class="warning"]', + '//span[@class="off-screen"]', + '//span[@class="story-image-copyright"]', + '//ul[@class="story-body__unordered-list"]', + '//div[@class="ad_wrapper"]', + '//div[@id="article-sidebar"]', + '//div[@class="data-table-outer"]', + '//*[@class="story-date"]', + '//*[@class="story-header"]', + '//figure[contains(@class,"has-caption")]', + '//*[@class="story-related"]', + '//*[contains(@class, "byline")]', + '//p[contains(@class, "media-message")]', + '//*[contains(@class, "story-feature")]', + '//*[@id="video-carousel-container"]', + '//*[@id="also-related-links"]', + '//*[contains(@class, "share") or contains(@class, "hidden") or contains(@class, "hyper")]', + ), + ), + ), +); diff --git a/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/www.bdgest.com.php b/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/www.bdgest.com.php new file mode 100644 index 0000000..41ef68d --- /dev/null +++ b/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/www.bdgest.com.php @@ -0,0 +1,15 @@ + array( + '%.*%' => array( + 'test_url' => 'http://www.bdgest.com/chronique-6027-BD-Adrastee-Tome-2.html', + 'body' => array( + '//*[contains(@class, "chronique")]', + ), + 'strip' => array( + '//*[contains(@class, "post-review")]', + '//*[contains(@class, "footer-review")]', + ), + ), + ), +); diff --git a/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/www.bgr.in.php b/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/www.bgr.in.php new file mode 100644 index 0000000..63ca069 --- /dev/null +++ b/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/www.bgr.in.php @@ -0,0 +1,23 @@ + array( + '%.*%' => array( + 'test_url' => 'http://www.bgr.in/news/xiaomi-redmi-3-with-13-megapixel-camera-snapdragon-616-launched-price-specifications-and-features/', + 'body' => array( + '//div[@class="article-content"]', + ), + 'strip' => array( + '//*[@class="article-meta"]', + '//*[@class="contentAdsense300"]', + '//*[@class="iwpl-social-hide"]', + '//iframe[@class="iframeads"]', + '//*[@class="disqus_thread"]', + '//*[@class="outb-mobile OUTBRAIN"]', + '//*[@class="wdt_smart_alerts"]', + '//*[@class="footnote"]', + '//*[@id="gadget-widget"]', + '//header[@class="article-title entry-header"]', + ), + ), + ), +); diff --git a/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/www.businessweek.com.php b/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/www.businessweek.com.php new file mode 100644 index 0000000..0acc44e --- /dev/null +++ b/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/www.businessweek.com.php @@ -0,0 +1,15 @@ + array( + '%.*%' => array( + 'test_url' => 'http://www.businessweek.com/articles/2013-09-18/elon-musks-hyperloop-will-work-says-some-very-smart-software', + 'body' => array( + '//div[@id="lead_graphic"]', + '//div[@id="article_body"]', + ), + 'strip' => array( + '//*[contains(@class, "related_item")]', + ), + ), + ), +); diff --git a/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/www.cnn.com.php b/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/www.cnn.com.php new file mode 100644 index 0000000..31d03ed --- /dev/null +++ b/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/www.cnn.com.php @@ -0,0 +1,24 @@ + array( + '%.*%' => array( + 'test_url' => 'http://www.cnn.com/2013/08/31/world/meast/syria-civil-war/index.html?hpt=hp_t1', + 'body' => array( + '//div[@class="cnn_strycntntlft"]', + ), + 'strip' => array( + '//div[@class="cnn_stryshrwdgtbtm"]', + '//div[@class="cnn_strybtmcntnt"]', + '//div[@class="cnn_strylftcntnt"]', + '//div[contains(@class, "cnnGalleryContainer")]', + '//div[contains(@class, "cnn_strylftcexpbx")]', + '//div[contains(@class, "articleGalleryNavContainer")]', + '//div[contains(@class, "cnnArticleGalleryCaptionControl")]', + '//div[contains(@class, "cnnArticleGalleryNavPrevNextDisabled")]', + '//div[contains(@class, "cnnArticleGalleryNavPrevNext")]', + '//div[contains(@class, "cnn_html_media_title_new")]', + '//div[contains(@id, "disqus")]', + ), + ), + ), +); diff --git a/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/www.developpez.com.php b/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/www.developpez.com.php new file mode 100644 index 0000000..1535e43 --- /dev/null +++ b/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/www.developpez.com.php @@ -0,0 +1,21 @@ + array( + '%.*%' => array( + 'test_url' => 'http://www.developpez.com/actu/81757/Mozilla-annonce-la-disponibilite-de-Firefox-36-qui-passe-au-HTTP-2-et-permet-la-synchronisation-de-son-ecran-d-accueil/', + 'body' => array( + '//*[@itemprop="articleBody"]', + ), + 'strip' => array( + '//form', + '//div[@class="content"]/img', + '//a[last()]/following-sibling::*', + '//*[contains(@class,"actuTitle")]', + '//*[contains(@class,"date")]', + '//*[contains(@class,"inlineimg")]', + '//*[@id="signaler"]', + '//*[@id="signalerFrame"]', + ), + ), + ), +); diff --git a/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/www.egscomics.com.php b/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/www.egscomics.com.php new file mode 100644 index 0000000..263f075 --- /dev/null +++ b/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/www.egscomics.com.php @@ -0,0 +1,12 @@ + array( + '%.*%' => array( + 'test_url' => 'http://www.egscomics.com/index.php?id=1690', + 'title' => '/html/head/title', + 'body' => array( + '//img[@id="comic"]', + ), + ), + ), +); diff --git a/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/www.fakingnews.firstpost.com.php b/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/www.fakingnews.firstpost.com.php new file mode 100644 index 0000000..c948c77 --- /dev/null +++ b/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/www.fakingnews.firstpost.com.php @@ -0,0 +1,17 @@ + array( + '%.*%' => array( + 'test_url' => 'http://www.fakingnews.firstpost.com/2016/01/engineering-student-creates-record-in-a-decade-becomes-the-first-to-completely-exhaust-ball-pen-refill/', + 'body' => array( + '//div[@class="entry"]', + ), + 'strip' => array( + '//*[@class="socialshare_bar"]', + '//*[@class="authorbox"]', + '//*[@class="cf5_rps"]', + '//*[@class="60563 fb-comments fb-social-plugin"]', + ), + ), + ), +); diff --git a/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/www.forbes.com.php b/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/www.forbes.com.php new file mode 100644 index 0000000..fd16ed5 --- /dev/null +++ b/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/www.forbes.com.php @@ -0,0 +1,20 @@ + array( + '%.*%' => array( + 'test_url' => 'http://www.forbes.com/sites/andygreenberg/2013/09/05/follow-the-bitcoins-how-we-got-busted-buying-drugs-on-silk-roads-black-market/', + 'body' => array( + '//div[@id="leftRail"]/div[contains(@class, body)]', + ), + 'strip' => array( + '//aside', + '//div[contains(@class, "entity_block")]', + '//div[contains(@class, "vestpocket") and not contains(@class, "body")]', + '//div[contains(@style, "display")]', + '//div[contains(@id, "comment")]', + '//div[contains(@class, "widget")]', + '//div[contains(@class, "pagination")]', + ), + ), + ), +); diff --git a/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/www.franceculture.fr.php b/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/www.franceculture.fr.php new file mode 100644 index 0000000..f7ec0d8 --- /dev/null +++ b/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/www.franceculture.fr.php @@ -0,0 +1,14 @@ + array( + '%.*%' => array( + 'test_url' => 'http://www.franceculture.fr/emission-culture-eco-la-finance-aime-toujours-la-france-2016-01-08', + 'body' => array( + '//div[@class="text-zone"]', + ), + 'strip' => array( + '//ul[@class="tags"]', + ), + ) + ) +); diff --git a/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/www.futura-sciences.com.php b/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/www.futura-sciences.com.php new file mode 100644 index 0000000..ea94a0f --- /dev/null +++ b/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/www.futura-sciences.com.php @@ -0,0 +1,19 @@ + array( + '%.*%' => array( + 'test_url' => 'http://www.futura-sciences.com/magazines/espace/infos/actu/d/astronautique-curiosity-franchi-succes-dune-dingo-gap-52289/#xtor=RSS-8', + 'body' => array( + '//div[contains(@class, "content fiche-")]', + ), + 'strip' => array( + '//h1', + '//*[contains(@class, "content-date")]', + '//*[contains(@class, "diaporama")]', + '//*[contains(@class, "slider")]', + '//*[contains(@class, "cartouche")]', + '//*[contains(@class, "noprint")]', + ), + ), + ), +); diff --git a/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/www.geekculture.com.php b/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/www.geekculture.com.php new file mode 100644 index 0000000..3d0b6c7 --- /dev/null +++ b/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/www.geekculture.com.php @@ -0,0 +1,13 @@ + array( + '%.*%' => array( + 'test_url' => 'http://www.geekculture.com/joyoftech/joyarchives/2180.html', + 'body' => array( + '//p[contains(@class,"Maintext")][2]/a/img[contains(@src,"joyimages")]', + ), + 'strip' => array(), + ), + ), +); + diff --git a/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/www.howtogeek.com.php b/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/www.howtogeek.com.php new file mode 100644 index 0000000..6879e76 --- /dev/null +++ b/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/www.howtogeek.com.php @@ -0,0 +1,14 @@ + array( + '%.*%' => array( + 'test_url' => 'http://www.howtogeek.com/235283/what-is-a-wireless-hard-drive-and-should-i-get-one/', + 'body' => array( + '//div[@class="thecontent"]', + ), + 'strip' => array( + '//*[@class="relatedside"]', + ), + ), + ), +); diff --git a/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/www.lepoint.fr.php b/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/www.lepoint.fr.php new file mode 100644 index 0000000..dcb7e48 --- /dev/null +++ b/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/www.lepoint.fr.php @@ -0,0 +1,18 @@ + array( + '%.*%' => array( + 'test_url' => 'http://www.lepoint.fr/c-est-arrive-aujourd-hui/19-septembre-1783-pour-la-premiere-fois-un-mouton-un-canard-et-un-coq-s-envoient-en-l-air-devant-louis-xvi-18-09-2012-1507704_494.php', + 'body' => array( + '//article', + ), + 'strip' => array( + '//*[contains(@class, "info_article")]', + '//*[contains(@class, "fildariane_titre")]', + '//*[contains(@class, "entete2_article")]', + '//*[contains(@class, "signature_article")]', + '//*[contains(@id, "share")]', + ), + ), + ), +); diff --git a/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/www.lesnumeriques.com.php b/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/www.lesnumeriques.com.php new file mode 100644 index 0000000..0137e20 --- /dev/null +++ b/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/www.lesnumeriques.com.php @@ -0,0 +1,25 @@ + array( + '%.*%' => array( + 'test_url' => 'http://www.lesnumeriques.com/blender/kitchenaid-diamond-5ksb1585-p27473/test.html', + 'body' => array( + '//*[@id="product-content"]', + '//*[@id="news-content"]', + '//*[@id="article-content"]', + ), + 'strip' => array( + '//form', + '//div[contains(@class, "price-v4"])', + '//div[contains(@class, "authors-and-date")]', + '//div[contains(@class, "mini-product")]', + '//div[@id="articles-related-authors"]', + '//div[@id="tags-socials"]', + '//div[@id="user-reviews"]', + '//div[@id="product-reviews"]', + '//div[@id="publication-breadcrumbs-and-date"]', + '//div[@id="publication-breadcrumbs-and-date"]', + ), + ), + ), +); diff --git a/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/www.mac4ever.com.php b/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/www.mac4ever.com.php new file mode 100644 index 0000000..60bc1bd --- /dev/null +++ b/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/www.mac4ever.com.php @@ -0,0 +1,13 @@ + array( + '%.*%' => array( + 'test_url' => 'http://www.mac4ever.com/actu/87392_video-quand-steve-jobs-et-bill-gates-jouaient-au-bachelor-avec-le-mac', + 'body' => array( + '//div[contains(@class, "news-news-content")]', + ), + 'strip' => array( + ), + ), + ), +); diff --git a/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/www.makeuseof.com.php b/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/www.makeuseof.com.php new file mode 100644 index 0000000..a274564 --- /dev/null +++ b/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/www.makeuseof.com.php @@ -0,0 +1,18 @@ + array( + '%.*%' => array( + 'test_url' => 'http://www.makeuseof.com/tag/having-problems-with-audio-in-windows-10-heres-a-likely-fix/', + 'body' => array( + '//div[@class="entry"]', + ), + 'strip' => array( + '//*[@class="new_sharebar"]', + '//*[@class="author"]', + '//*[@class="wdt_grouvi"]', + '//*[@class="wdt_smart_alerts"]', + '//*[@class="modal fade grouvi"]', + ), + ), + ), +); diff --git a/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/www.monsieur-le-chien.fr.php b/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/www.monsieur-le-chien.fr.php new file mode 100644 index 0000000..5f5e987 --- /dev/null +++ b/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/www.monsieur-le-chien.fr.php @@ -0,0 +1,11 @@ + array( + '%.*%' => array( + 'test_url' => 'http://www.monsieur-le-chien.fr/index.php?planche=672', + 'body' => array( + '//img[starts-with(@src, "i/planches/")]', + ), + ) + ) +); diff --git a/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/www.npr.org.php b/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/www.npr.org.php new file mode 100644 index 0000000..ecc0213 --- /dev/null +++ b/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/www.npr.org.php @@ -0,0 +1,28 @@ + array( + '%.*%' => array( + 'test_url' => 'http://www.npr.org/blogs/thesalt/2013/09/17/223345977/auto-brewery-syndrome-apparently-you-can-make-beer-in-your-gut', + 'body' => array( + '//article[contains(@class,"story")]', + ), + 'strip' => array( + '//div[@class="story-tools"]', + '//h3[@class="slug"]', + '//div[@class="storytitle"]', + '//div[@id="story-meta"]', + '//a[@id="mainContent"]', + '//div[@class="credit-caption"]', + '//div[@class="enlarge_html"]', + '//button', + '//div[contains(@id,"pullquote")]', + '//div[contains(@class,"internallink")]', + '//div[contains(@class,"video")]', + '//div[@class="simplenodate"]', + '//div[contains(@class,"share-")]', + '//div[@class="tags"]', + '//aside' + ), + ), + ), +); diff --git a/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/www.numerama.com.php b/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/www.numerama.com.php new file mode 100644 index 0000000..fe4971c --- /dev/null +++ b/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/www.numerama.com.php @@ -0,0 +1,15 @@ + array( + '%.*%' => array( + 'test_url' => 'http://www.numerama.com/sciences/125959-recherches-ladn-recompensees-nobel-de-chimie.html', + 'body' => array( + '//article', + ), + 'strip' => array( + '//footer', + '//section[@class="related-article"]', + ), + ), + ), +); diff --git a/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/www.oneindia.com.php b/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/www.oneindia.com.php new file mode 100644 index 0000000..320c214 --- /dev/null +++ b/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/www.oneindia.com.php @@ -0,0 +1,14 @@ + array( + '%.*%' => array( + 'test_url' => 'http://www.oneindia.com/india/b-luru-govt-likely-remove-word-eunuch-from-sec-36-a-karnataka-police-act-1981173.html', + 'body' => array( + '//div[@class="ecom-ad-content"]', + ), + 'strip' => array( + '//*[@id="view_cmtns"]', + ), + ), + ), +); diff --git a/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/www.pseudo-sciences.org.php b/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/www.pseudo-sciences.org.php new file mode 100644 index 0000000..9e467ed --- /dev/null +++ b/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/www.pseudo-sciences.org.php @@ -0,0 +1,16 @@ + array( + '%.*%' => array( + 'test_url' => 'http://www.pseudo-sciences.org/spip.php?article2275', + 'body' => array( + '//div[@id="art_main"]', + ), + 'strip' => array( + '//div[@id="art_print"]', + '//div[@id="art_chapo"]', + '//img[@class="puce"]', + ), + ), + ), +); diff --git a/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/www.sciencemag.org.php b/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/www.sciencemag.org.php new file mode 100644 index 0000000..ae7a93a --- /dev/null +++ b/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/www.sciencemag.org.php @@ -0,0 +1,16 @@ + array( + '%.*%' => array( + 'test_url' => 'http://www.sciencemag.org/news/2016/01/could-bright-foamy-wak$', + 'body' => array( + '//div[@class="row--hero"]', + '//article[contains(@class,"primary")]', + ), + 'strip' => array( + '//header[@class="article__header"]', + '//footer[@class="article__foot"]', + ), + ), + ) +); diff --git a/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/www.slate.fr.php b/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/www.slate.fr.php new file mode 100644 index 0000000..8c8dc89 --- /dev/null +++ b/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/www.slate.fr.php @@ -0,0 +1,19 @@ + array( + '%.*%' => array( + 'test_url' => 'http://www.slate.fr/monde/77034/allemagne-2013-couacs-campagne', + 'body' => array( + '//div[@class="article_content"]', + ), + 'strip' => array( + '//*[@id="slate_associated_bn"]', + '//*[@id="ligatus-article"]', + '//*[@id="article_sidebar"]', + '//div[contains(@id, "reseaux")]', + '//*[contains(@class, "smart") or contains(@class, "article_tags") or contains(@class, "article_reactions")]', + '//*[contains(@class, "OUTBRAIN") or contains(@class, "related_item") or contains(@class, "share")]', + ), + ), + ), +); diff --git a/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/www.universfreebox.com.php b/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/www.universfreebox.com.php new file mode 100644 index 0000000..0747d0f --- /dev/null +++ b/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/www.universfreebox.com.php @@ -0,0 +1,15 @@ + array( + '%.*%' => array( + 'test_url' => 'http://www.universfreebox.com/article/24305/4G-Bouygues-Telecom-lance-une-vente-flash-sur-son-forfait-Sensation-3Go', + 'body' => array( + '//div[@id="corps_corps"]', + ), + 'strip' => array( + '//*[@id="formulaire"]', + '//*[@id="commentaire"]', + ), + ), + ), +); diff --git a/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/www.zeit.de.php b/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/www.zeit.de.php new file mode 100644 index 0000000..316c265 --- /dev/null +++ b/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/www.zeit.de.php @@ -0,0 +1,41 @@ + array( + '%^/zeit-magazin.*%' => array( + 'test_url' => 'http://www.zeit.de/zeit-magazin/2015/15/pegida-kathrin-oertel-lutz-bachmann', + 'body' => array( + '//article[@class="article"]', + ), + 'strip' => array( + '//header/div/h1', + '//header/div/div[@class="article__head__subtitle"]', + '//header/div/div[@class="article__column__author"]', + '//header/div/div[@class="article__column__author"]', + '//header/div/span[@class="article__head__meta-wrap"]', + '//form', + '//style', + '//div[contains(@class, "ad-tile")]', + '//div[@class="iqd-mobile-adplace"]', + '//div[@id="iq-artikelanker"]', + '//div[@id="js-social-services"]', + '//section[@id="js-comments"]', + '//aside', + ), + ), + '%.*%' => array( + 'test_url' => 'http://www.zeit.de/politik/ausland/2015-04/thessaloniki-krise-griechenland-yannis-boutaris/', + 'body' => array( + '//div[@class="article-body"]', + ), + 'strip' => array( + '//*[@class="articleheader"]', + '//*[@class="excerpt"]', + '//div[contains(@class, "ad")]', + '//div[@itemprop="video"]', + '//*[@class="articlemeta"]', + '//*[@class="articlemeta-clear"]', + '//*[@class="zol_inarticletools"]', + ), + ), + ), +); diff --git a/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/xkcd.com.php b/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/xkcd.com.php new file mode 100644 index 0000000..8495726 --- /dev/null +++ b/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/xkcd.com.php @@ -0,0 +1,8 @@ + array( + '%.*%' => array( + '%alt="(.+)" */>%' => '/>
    $1', + ), + ), +); diff --git a/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/ymatuhin.ru.php b/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/ymatuhin.ru.php new file mode 100644 index 0000000..9fd83f1 --- /dev/null +++ b/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/ymatuhin.ru.php @@ -0,0 +1,21 @@ + array( + '%.*%' => array( + 'test_url' => 'https://ymatuhin.ru/tools/git-default-editor/', + 'body' => array( + '//section', + ), + 'strip' => array( + "//script", + "//style", + "//h1", + "//time", + "//aside", + "/html/body/section/ul", + "//amp-iframe", + "/html/body/section/h4" + ), + ) + ) +); diff --git a/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/zarojel.hu.php b/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/zarojel.hu.php new file mode 100644 index 0000000..36d3bdf --- /dev/null +++ b/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/zarojel.hu.php @@ -0,0 +1,19 @@ + array( + '%.*%' => array( + 'test_url' => 'https://zarojel.hu/meg-egyszer-a-foldi-ugyrol-is/', + 'body' => array( + '//div[@class="entry-category"]/h1', + '//div[@class="entry-content"]/div[@class="vc_row wpb_row vc_row-fluid"]' + ), + 'strip' => array( + '//ins[@class="adsbygoogle"]', + '//script', + '//figcaption', + '//p[contains(text(),"Kapcsolódó")]', + '//div[@class="wpb_wrapper"]/p[@class="entry-title"]' + ) + ), + ), +); diff --git a/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/zdnet.com.php b/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/zdnet.com.php new file mode 100644 index 0000000..79b35dd --- /dev/null +++ b/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/zdnet.com.php @@ -0,0 +1,23 @@ + array( + '%.*%' => array( + 'test_url' => 'http://zdnet.com.feedsportal.com/c/35462/f/675637/s/4a33c93e/sc/11/l/0L0Szdnet0N0Carticle0Cchina0Eus0Eagree0Eon0Ecybercrime0Ecooperation0Eamid0Econtinued0Etension0C0Tftag0FRSSbaffb68/story01.htm', + 'body' => array( + '//p[@class="summary"]', + '//div[contains(@class,"storyBody")]', + ), + 'strip' => array( + '//*[contains(@class,"ad-")]', + '//p/span', + '//script', + '//p[@class="summary"]', + '//div[contains(@class,"relatedContent")]', + '//div[contains(@class,"loader")]', + '//p[@class="photoDetails"]', + '//div[@class="thumbnailSlider"]', + '//div[@class="shortcodeGalleryWrapper"]', + ), + ), + ), +); diff --git a/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/zoom.hu.php b/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/zoom.hu.php new file mode 100644 index 0000000..3e38781 --- /dev/null +++ b/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Rules/zoom.hu.php @@ -0,0 +1,17 @@ + array( + '%.*%' => array( + 'test_url' => 'https://zoom.hu/2017/10/20/mar-nem-nyomoznak-a-vegrehajtok-botranyai-miatt', + 'body' => array( + '//div[@class="title-wrapper"]/h1', + '//div[@class="entry-excerpt"]', + '//div[@class="thumbnail-wrapper"]', + '//div[@id="entry-content-id"]' + ), + 'strip' => array( + '//div[@class="place first normal"]' + ) + ), + ), +); diff --git a/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Scraper/CandidateParser.php b/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Scraper/CandidateParser.php new file mode 100644 index 0000000..0f74b3d --- /dev/null +++ b/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Scraper/CandidateParser.php @@ -0,0 +1,281 @@ +dom = XmlParser::getHtmlDocument(''.$html); + $this->xpath = new DOMXPath($this->dom); + } + + /** + * Get the relevant content with the list of potential attributes. + * + * @return string + */ + public function execute() + { + $content = $this->findContentWithCandidates(); + + if (strlen($content) < 200) { + $content = $this->findContentWithArticle(); + } + + if (strlen($content) < 50) { + $content = $this->findContentWithBody(); + } + + return $this->stripGarbage($content); + } + + /** + * Find content based on the list of tag candidates. + * + * @return string + */ + public function findContentWithCandidates() + { + foreach ($this->candidatesAttributes as $candidate) { + Logger::setMessage(get_called_class().': Try this candidate: "'.$candidate.'"'); + + $nodes = $this->xpath->query('//*[(contains(@class, "'.$candidate.'") or @id="'.$candidate.'") and not (contains(@class, "nav") or contains(@class, "page"))]'); + + if ($nodes !== false && $nodes->length > 0) { + Logger::setMessage(get_called_class().': Find candidate "'.$candidate.'"'); + + return $this->dom->saveXML($nodes->item(0)); + } + } + + return ''; + } + + /** + * Find

    tag. + * + * @return string + */ + public function findContentWithArticle() + { + $nodes = $this->xpath->query('//article'); + + if ($nodes !== false && $nodes->length > 0) { + Logger::setMessage(get_called_class().': Find
    tag'); + + return $this->dom->saveXML($nodes->item(0)); + } + + return ''; + } + + /** + * Find tag. + * + * @return string + */ + public function findContentWithBody() + { + $nodes = $this->xpath->query('//body'); + + if ($nodes !== false && $nodes->length > 0) { + Logger::setMessage(get_called_class().' Find '); + + return $this->dom->saveXML($nodes->item(0)); + } + + return ''; + } + + /** + * Strip useless tags. + * + * @param string $content + * @return string + */ + public function stripGarbage($content) + { + $dom = XmlParser::getDomDocument($content); + + if ($dom !== false) { + $xpath = new DOMXPath($dom); + + $this->stripTags($xpath); + $this->stripAttributes($dom, $xpath); + + $content = $dom->saveXML($dom->documentElement); + } + + return $content; + } + + /** + * Remove blacklisted tags. + * + * @param DOMXPath $xpath + */ + public function stripTags(DOMXPath $xpath) + { + foreach ($this->stripTags as $tag) { + $nodes = $xpath->query('//'.$tag); + + if ($nodes !== false && $nodes->length > 0) { + Logger::setMessage(get_called_class().': Strip tag: "'.$tag.'"'); + + foreach ($nodes as $node) { + $node->parentNode->removeChild($node); + } + } + } + } + + /** + * Remove blacklisted attributes. + * + * @param DomDocument $dom + * @param DOMXPath $xpath + */ + public function stripAttributes(DomDocument $dom, DOMXPath $xpath) + { + foreach ($this->stripAttributes as $attribute) { + $nodes = $xpath->query('//*[contains(@class, "'.$attribute.'") or contains(@id, "'.$attribute.'")]'); + + if ($nodes !== false && $nodes->length > 0) { + Logger::setMessage(get_called_class().': Strip attribute: "'.$attribute.'"'); + + foreach ($nodes as $node) { + if ($this->shouldRemove($dom, $node)) { + $node->parentNode->removeChild($node); + } + } + } + } + } + + /** + * Find link for next page of the article. + * + * @return string + */ + public function findNextLink() + { + return null; + } + + /** + * Return false if the node should not be removed. + * + * @param DomDocument $dom + * @param \DomNode $node + * @return bool + */ + public function shouldRemove(DomDocument $dom, $node) + { + $document_length = strlen($dom->textContent); + $node_length = strlen($node->textContent); + + if ($document_length === 0) { + return true; + } + + $ratio = $node_length * 100 / $document_length; + + if ($ratio >= 90) { + Logger::setMessage(get_called_class().': Should not remove this node ('.$node->nodeName.') ratio: '.$ratio.'%'); + + return false; + } + + return true; + } +} diff --git a/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Scraper/ParserInterface.php b/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Scraper/ParserInterface.php new file mode 100644 index 0000000..3ded4b1 --- /dev/null +++ b/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Scraper/ParserInterface.php @@ -0,0 +1,20 @@ +getRulesFileList($hostname); + + foreach ($this->getRulesFolders() as $folder) { + $rule = $this->loadRuleFile($folder, $files); + + if (!empty($rule)) { + return $rule; + } + } + } + + return array(); + } + + /** + * Get the list of possible rules file names for a given hostname. + * + * @param string $hostname Hostname + * @return array + */ + public function getRulesFileList($hostname) + { + $files = array($hostname); // subdomain.domain.tld + $parts = explode('.', $hostname); + $len = count($parts); + + if ($len > 2) { + $subdomain = array_shift($parts); + $files[] = implode('.', $parts); // domain.tld + $files[] = '.'.implode('.', $parts); // .domain.tld + $files[] = $subdomain; // subdomain + } elseif ($len === 2) { + $files[] = '.'.implode('.', $parts); // .domain.tld + $files[] = $parts[0]; // domain + } + + return $files; + } + + /** + * Load a rule file from the defined folder. + * + * @param string $folder Rule directory + * @param array $files List of possible file names + * @return array + */ + public function loadRuleFile($folder, array $files) + { + foreach ($files as $file) { + $filename = $folder.'/'.$file.'.php'; + if (file_exists($filename)) { + Logger::setMessage(get_called_class().' Load rule: '.$file); + + return include $filename; + } + } + + return array(); + } + + /** + * Get the list of folders that contains rules. + * + * @return array + */ + public function getRulesFolders() + { + $folders = array(); + + if ($this->config !== null && $this->config->getGrabberRulesFolder() !== null) { + $folders[] = $this->config->getGrabberRulesFolder(); + } + + $folders[] = __DIR__ . '/../Rules'; + + return $folders; + } +} diff --git a/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Scraper/RuleParser.php b/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Scraper/RuleParser.php new file mode 100644 index 0000000..9beb59c --- /dev/null +++ b/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Scraper/RuleParser.php @@ -0,0 +1,102 @@ +rules = $rules; + $this->dom = XmlParser::getHtmlDocument(''.$html); + $this->xpath = new DOMXPath($this->dom); + } + + /** + * Get the relevant content with predefined rules. + * + * @return string + */ + public function execute() + { + $this->stripTags(); + + return $this->findContent(); + } + + /** + * Remove HTML tags. + */ + public function stripTags() + { + if (isset($this->rules['strip']) && is_array($this->rules['strip'])) { + foreach ($this->rules['strip'] as $pattern) { + $nodes = $this->xpath->query($pattern); + + if ($nodes !== false && $nodes->length > 0) { + foreach ($nodes as $node) { + $node->parentNode->removeChild($node); + } + } + } + } + } + + /** + * Fetch content based on Xpath rules. + */ + public function findContent() + { + $content = ''; + if (isset($this->rules['body']) && is_array($this->rules['body'])) { + foreach ($this->rules['body'] as $pattern) { + $nodes = $this->xpath->query($pattern); + + if ($nodes !== false && $nodes->length > 0) { + foreach ($nodes as $node) { + $content .= $this->dom->saveXML($node); + } + } + } + } + + return $content; + } + + /** + * Fetch next link based on Xpath rules. + * + * @return string + */ + public function findNextLink() + { + if (isset($this->rules['next_page']) && is_array($this->rules['next_page'])) { + foreach ($this->rules['next_page'] as $pattern) { + $nodes = $this->xpath->query($pattern); + if ($nodes !== false && $nodes->length > 0) { + foreach ($nodes as $node) { + return $node->getAttribute('href'); + } + } + } + } + return null; + } +} diff --git a/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Scraper/Scraper.php b/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Scraper/Scraper.php new file mode 100644 index 0000000..29383b2 --- /dev/null +++ b/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Scraper/Scraper.php @@ -0,0 +1,282 @@ +enableCandidateParser = false; + return $this; + } + + /** + * Get encoding. + * + * @return string + */ + public function getEncoding() + { + return $this->encoding; + } + + /** + * Set encoding. + * + * @param string $encoding + * + * @return Scraper + */ + public function setEncoding($encoding) + { + $this->encoding = $encoding; + + return $this; + } + + /** + * Get URL to download. + * + * @return string + */ + public function getUrl() + { + return $this->url; + } + + /** + * Set URL to download. + * + * @param string $url URL + * + * @return Scraper + */ + public function setUrl($url) + { + $this->url = $url; + + return $this; + } + + /** + * Return true if the scraper found relevant content. + * + * @return bool + */ + public function hasRelevantContent() + { + return !empty($this->content); + } + + /** + * Get relevant content. + * + * @return string + */ + public function getRelevantContent() + { + return $this->content; + } + + /** + * Get raw content (unfiltered). + * + * @return string + */ + public function getRawContent() + { + return $this->html; + } + + /** + * Set raw content (unfiltered). + * + * @param string $html + * + * @return Scraper + */ + public function setRawContent($html) + { + $this->html = $html; + + return $this; + } + + /** + * Get filtered relevant content. + * + * @return string + */ + public function getFilteredContent() + { + $filter = Filter::html($this->content, $this->url); + $filter->setConfig($this->config); + + return $filter->execute(); + } + + /** + * Download the HTML content. + * + * @return bool + */ + public function download() + { + if (!empty($this->url)) { + + // Clear everything + $this->html = ''; + $this->content = ''; + $this->encoding = ''; + + try { + $client = Client::getInstance(); + $client->setConfig($this->config); + $client->setTimeout($this->config->getGrabberTimeout()); + $client->setUserAgent($this->config->getGrabberUserAgent()); + $client->execute($this->url); + + $this->url = $client->getUrl(); + $this->html = $client->getContent(); + $this->encoding = $client->getEncoding(); + + return true; + } catch (ClientException $e) { + Logger::setMessage(get_called_class().': '.$e->getMessage()); + } + } + + return false; + } + + /** + * Execute the scraper. + * + * @param string $pageContent + * @param int $recursionDepth + */ + public function execute($pageContent = '', $recursionDepth = 0) + { + $this->html = ''; + $this->encoding = ''; + $this->content = ''; + $this->download(); + $this->prepareHtml(); + + $parser = $this->getParser(); + + if ($parser !== null) { + $maxRecursions = $this->config->getMaxRecursions(); + if(!isset($maxRecursions)){ + $maxRecursions = 25; + } + $pageContent .= $parser->execute(); + // check if there is a link to next page and recursively get content (max 25 pages) + if((($nextLink = $parser->findNextLink()) !== null) && $recursionDepth < $maxRecursions){ + $nextLink = Url::resolve($nextLink,$this->url); + $this->setUrl($nextLink); + $this->execute($pageContent,$recursionDepth+1); + } + else{ + $this->content = $pageContent; + } + Logger::setMessage(get_called_class().': Content length: '.strlen($this->content).' bytes'); + } + } + + /** + * Get the parser. + * + * @return ParserInterface + */ + public function getParser() + { + $ruleLoader = new RuleLoader($this->config); + $rules = $ruleLoader->getRules($this->url); + + if (!empty($rules['grabber'])) { + Logger::setMessage(get_called_class().': Parse content with rules'); + + foreach ($rules['grabber'] as $pattern => $rule) { + $url = new Url($this->url); + $sub_url = $url->getFullPath(); + + if (preg_match($pattern, $sub_url)) { + Logger::setMessage(get_called_class().': Matched url '.$sub_url); + return new RuleParser($this->html, $rule); + } + } + } elseif ($this->enableCandidateParser) { + Logger::setMessage(get_called_class().': Parse content with candidates'); + } + + return new CandidateParser($this->html); + } + + /** + * Normalize encoding and strip head tag. + */ + public function prepareHtml() + { + $html_encoding = XmlParser::getEncodingFromMetaTag($this->html); + + $this->html = Encoding::convert($this->html, $html_encoding ?: $this->encoding); + $this->html = Filter::stripHeadTags($this->html); + + Logger::setMessage(get_called_class().': HTTP Encoding "'.$this->encoding.'" ; HTML Encoding "'.$html_encoding.'"'); + } +} diff --git a/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Serialization/Subscription.php b/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Serialization/Subscription.php new file mode 100644 index 0000000..12eccfd --- /dev/null +++ b/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Serialization/Subscription.php @@ -0,0 +1,175 @@ +title = $title; + return $this; + } + + /** + * Get title + * + * @access public + * @return string + */ + public function getTitle() + { + return $this->title; + } + + /** + * Set feed URL + * + * @access public + * @param string $feedUrl + * @return Subscription + */ + public function setFeedUrl($feedUrl) + { + $this->feedUrl = $feedUrl; + return $this; + } + + /** + * Get feed URL + * + * @access public + * @return string + */ + public function getFeedUrl() + { + return $this->feedUrl; + } + + /** + * Set site URL + * + * @access public + * @param string $siteUrl + * @return Subscription + */ + public function setSiteUrl($siteUrl) + { + $this->siteUrl = $siteUrl; + return $this; + } + + /** + * Get site URL + * + * @access public + * @return string + */ + public function getSiteUrl() + { + return $this->siteUrl; + } + + /** + * Set category + * + * @access public + * @param string $category + * @return Subscription + */ + public function setCategory($category) + { + $this->category = $category; + return $this; + } + + /** + * Get category + * + * @access public + * @return string + */ + public function getCategory() + { + return $this->category; + } + + /** + * Set description + * + * @access public + * @param string $description + * @return Subscription + */ + public function setDescription($description) + { + $this->description = $description; + return $this; + } + + /** + * Get description + * + * @access public + * @return string + */ + public function getDescription() + { + return $this->description; + } + + /** + * Set type + * + * @access public + * @param string $type + * @return Subscription + */ + public function setType($type) + { + $this->type = $type; + return $this; + } + + /** + * Get type + * + * @access public + * @return string + */ + public function getType() + { + return $this->type; + } +} diff --git a/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Serialization/SubscriptionList.php b/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Serialization/SubscriptionList.php new file mode 100644 index 0000000..b173f89 --- /dev/null +++ b/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Serialization/SubscriptionList.php @@ -0,0 +1,75 @@ +title = $title; + return $this; + } + + /** + * Get title + * + * @access public + * @return string + */ + public function getTitle() + { + return $this->title; + } + + /** + * Add subscription + * + * @access public + * @param Subscription $subscription + * @return SubscriptionList + */ + public function addSubscription(Subscription $subscription) + { + $this->subscriptions[] = $subscription; + return $this; + } +} diff --git a/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Serialization/SubscriptionListBuilder.php b/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Serialization/SubscriptionListBuilder.php new file mode 100644 index 0000000..838e4cb --- /dev/null +++ b/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Serialization/SubscriptionListBuilder.php @@ -0,0 +1,204 @@ +subscriptionList = $subscriptionList; + } + + /** + * Get object instance + * + * @static + * @access public + * @param SubscriptionList $subscriptionList + * @return SubscriptionListBuilder + */ + public static function create(SubscriptionList $subscriptionList) + { + return new static($subscriptionList); + } + + /** + * Build OPML feed + * + * @access public + * @param string $filename + * @return string + */ + public function build($filename = '') + { + $this->document = new DomDocument('1.0', 'UTF-8'); + $this->document->formatOutput = true; + + $opmlElement = $this->document->createElement('opml'); + $opmlElement->setAttribute('version', '1.0'); + + $headElement = $this->document->createElement('head'); + + if ($this->subscriptionList->getTitle() !== '') { + $titleElement = $this->document->createElement('title'); + $titleElement->appendChild($this->document->createTextNode($this->subscriptionList->getTitle())); + $headElement->appendChild($titleElement); + } + + $opmlElement->appendChild($headElement); + $opmlElement->appendChild($this->buildBody()); + $this->document->appendChild($opmlElement); + + if ($filename !== '') { + $this->document->save($filename); + return ''; + } + + return $this->document->saveXML(); + } + + /** + * Return true if the list has categories + * + * @access public + * @return bool + */ + public function hasCategories() + { + foreach ($this->subscriptionList->subscriptions as $subscription) { + if ($subscription->getCategory() !== '') { + return true; + } + } + + return false; + } + + /** + * Build OPML body + * + * @access protected + * @return DOMElement + */ + protected function buildBody() + { + $bodyElement = $this->document->createElement('body'); + + if ($this->hasCategories()) { + $this->buildCategories($bodyElement); + return $bodyElement; + } + + foreach ($this->subscriptionList->subscriptions as $subscription) { + $bodyElement->appendChild($this->buildSubscription($subscription)); + } + + return $bodyElement; + } + + /** + * Build categories section + * + * @access protected + * @param DOMElement $bodyElement + */ + protected function buildCategories(DOMElement $bodyElement) + { + $categories = $this->groupByCategories(); + + foreach ($categories as $category => $subscriptions) { + $bodyElement->appendChild($this->buildCategory($category, $subscriptions)); + } + } + + /** + * Build category tag + * + * @access protected + * @param string $category + * @param array $subscriptions + * @return DOMElement + */ + protected function buildCategory($category, array $subscriptions) + { + $outlineElement = $this->document->createElement('outline'); + $outlineElement->setAttribute('text', $category); + + foreach ($subscriptions as $subscription) { + $outlineElement->appendChild($this->buildSubscription($subscription)); + } + + return $outlineElement; + } + + /** + * Build subscription entry + * + * @access public + * @param Subscription $subscription + * @return DOMElement + */ + protected function buildSubscription(Subscription $subscription) + { + $outlineElement = $this->document->createElement('outline'); + $outlineElement->setAttribute('type', $subscription->getType() ?: 'rss'); + $outlineElement->setAttribute('text', $subscription->getTitle() ?: $subscription->getFeedUrl()); + $outlineElement->setAttribute('xmlUrl', $subscription->getFeedUrl()); + + if ($subscription->getTitle() !== '') { + $outlineElement->setAttribute('title', $subscription->getTitle()); + } + + if ($subscription->getDescription() !== '') { + $outlineElement->setAttribute('description', $subscription->getDescription()); + } + + if ($subscription->getSiteUrl() !== '') { + $outlineElement->setAttribute('htmlUrl', $subscription->getSiteUrl()); + } + + return $outlineElement; + } + + /** + * Group subscriptions by category + * + * @access private + * @return array + */ + private function groupByCategories() + { + $categories = array(); + + foreach ($this->subscriptionList->subscriptions as $subscription) { + $categories[$subscription->getCategory()][] = $subscription; + } + + return $categories; + } +} diff --git a/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Serialization/SubscriptionListParser.php b/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Serialization/SubscriptionListParser.php new file mode 100644 index 0000000..9085588 --- /dev/null +++ b/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Serialization/SubscriptionListParser.php @@ -0,0 +1,100 @@ +subscriptionList = new SubscriptionList(); + $this->data = trim($data); + } + + /** + * Get object instance + * + * @static + * @access public + * @param string $data + * @return SubscriptionListParser + */ + public static function create($data) + { + return new static($data); + } + + /** + * Parse a subscription list entry + * + * @access public + * @throws MalformedXmlException + * @return SubscriptionList + */ + public function parse() + { + $xml = XmlParser::getSimpleXml($this->data); + + if (! $xml || !isset($xml->head) || !isset($xml->body)) { + throw new MalformedXmlException('Unable to parse OPML file: invalid XML'); + } + + $this->parseTitle($xml->head); + $this->parseEntries($xml->body); + + return $this->subscriptionList; + } + + /** + * Parse title + * + * @access protected + * @param SimpleXMLElement $xml + */ + protected function parseTitle(SimpleXMLElement $xml) + { + $this->subscriptionList->setTitle((string) $xml->title); + } + + /** + * Parse entries + * + * @access protected + * @param SimpleXMLElement $body + */ + private function parseEntries(SimpleXMLElement $body) + { + foreach ($body->outline as $outlineElement) { + if (isset($outlineElement->outline)) { + $this->parseEntries($outlineElement); + } else { + $this->subscriptionList->subscriptions[] = SubscriptionParser::create($body, $outlineElement)->parse(); + } + } + } +} diff --git a/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Serialization/SubscriptionParser.php b/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Serialization/SubscriptionParser.php new file mode 100644 index 0000000..caff07c --- /dev/null +++ b/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Serialization/SubscriptionParser.php @@ -0,0 +1,142 @@ +parentElement = $parentElement; + $this->outlineElement = $outlineElement; + $this->subscription = new Subscription(); + } + + /** + * Get object instance + * + * @static + * @access public + * @param SimpleXMLElement $parentElement + * @param SimpleXMLElement $outlineElement + * @return SubscriptionParser + */ + public static function create(SimpleXMLElement $parentElement, SimpleXMLElement $outlineElement) + { + return new static($parentElement, $outlineElement); + } + + /** + * Parse subscription entry + * + * @access public + * @return Subscription + */ + public function parse() + { + $this->subscription->setCategory($this->findCategory()); + $this->subscription->setTitle($this->findTitle()); + $this->subscription->setFeedUrl($this->findFeedUrl()); + $this->subscription->setSiteUrl($this->findSiteUrl()); + $this->subscription->setType($this->findType()); + $this->subscription->setDescription($this->findDescription()); + + return $this->subscription; + } + + /** + * Find category. + * + * @access protected + * @return string + */ + protected function findCategory() + { + return isset($this->parentElement['text']) ? (string) $this->parentElement['text'] : ''; + } + + /** + * Find title. + * + * @access protected + * @return string + */ + protected function findTitle() + { + return isset($this->outlineElement['title']) ? (string) $this->outlineElement['title'] : (string) $this->outlineElement['text']; + } + + /** + * Find feed url. + * + * @access protected + * @return string + */ + protected function findFeedUrl() + { + return (string) $this->outlineElement['xmlUrl']; + } + + /** + * Find site url. + * + * @access protected + * @return string + */ + protected function findSiteUrl() + { + return isset($this->outlineElement['htmlUrl']) ? (string) $this->outlineElement['htmlUrl'] : $this->findFeedUrl(); + } + + /** + * Find type. + * + * @access protected + * @return string + */ + protected function findType() + { + return isset($this->outlineElement['version']) ? (string) $this->outlineElement['version'] : + isset($this->outlineElement['type']) ? (string) $this->outlineElement['type'] : 'rss'; + } + + /** + * Find description. + * + * @access protected + * @return string + */ + protected function findDescription() + { + return isset($this->outlineElement['description']) ? (string) $this->outlineElement['description'] : $this->findTitle(); + } +} diff --git a/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Syndication/AtomFeedBuilder.php b/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Syndication/AtomFeedBuilder.php new file mode 100644 index 0000000..34f3780 --- /dev/null +++ b/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Syndication/AtomFeedBuilder.php @@ -0,0 +1,65 @@ +helper = new AtomHelper($this->getDocument()); + + $this->feedElement = $this->getDocument()->createElement('feed'); + $this->feedElement->setAttributeNodeNS(new DomAttr('xmlns', 'http://www.w3.org/2005/Atom')); + + $generator = $this->getDocument()->createElement('generator', 'PicoFeed'); + $generator->setAttribute('uri', 'https://github.com/miniflux/picoFeed'); + $this->feedElement->appendChild($generator); + + $this->helper + ->buildTitle($this->feedElement, $this->feedTitle) + ->buildId($this->feedElement, $this->feedUrl) + ->buildDate($this->feedElement, $this->feedDate) + ->buildLink($this->feedElement, $this->siteUrl) + ->buildLink($this->feedElement, $this->feedUrl, 'self', 'application/atom+xml') + ->buildAuthor($this->feedElement, $this->authorName, $this->authorEmail, $this->authorUrl) + ; + + foreach ($this->items as $item) { + $this->feedElement->appendChild($item->build()); + } + + $this->getDocument()->appendChild($this->feedElement); + + if ($filename !== '') { + $this->getDocument()->save($filename); + } + + return $this->getDocument()->saveXML(); + } +} diff --git a/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Syndication/AtomHelper.php b/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Syndication/AtomHelper.php new file mode 100644 index 0000000..def6b0b --- /dev/null +++ b/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Syndication/AtomHelper.php @@ -0,0 +1,139 @@ +document = $document; + } + + /** + * Build node + * + * @access public + * @param DOMElement $element + * @param string $tag + * @param string $value + * @return AtomHelper + */ + public function buildNode(DOMElement $element, $tag, $value) + { + $node = $this->document->createElement($tag); + $node->appendChild($this->document->createTextNode($value)); + $element->appendChild($node); + return $this; + } + + /** + * Build title + * + * @access public + * @param DOMElement $element + * @param string $title + * @return AtomHelper + */ + public function buildTitle(DOMElement $element, $title) + { + return $this->buildNode($element, 'title', $title); + } + + /** + * Build id + * + * @access public + * @param DOMElement $element + * @param string $id + * @return AtomHelper + */ + public function buildId(DOMElement $element, $id) + { + return $this->buildNode($element, 'id', $id); + } + + /** + * Build date element + * + * @access public + * @param DOMElement $element + * @param DateTime $date + * @param string $type + * @return AtomHelper + */ + public function buildDate(DOMElement $element, DateTime $date, $type = 'updated') + { + return $this->buildNode($element, $type, $date->format(DateTime::ATOM)); + } + + /** + * Build link element + * + * @access public + * @param DOMElement $element + * @param string $url + * @param string $rel + * @param string $type + * @return AtomHelper + */ + public function buildLink(DOMElement $element, $url, $rel = 'alternate', $type = 'text/html') + { + $node = $this->document->createElement('link'); + $node->setAttribute('rel', $rel); + $node->setAttribute('type', $type); + $node->setAttribute('href', $url); + $element->appendChild($node); + + return $this; + } + + /** + * Build author element + * + * @access public + * @param DOMElement $element + * @param string $authorName + * @param string $authorEmail + * @param string $authorUrl + * @return AtomHelper + */ + public function buildAuthor(DOMElement $element, $authorName, $authorEmail, $authorUrl) + { + if (!empty($authorName)) { + $author = $this->document->createElement('author'); + $this->buildNode($author, 'name', $authorName); + + if (!empty($authorEmail)) { + $this->buildNode($author, 'email', $authorEmail); + } + + if (!empty($authorUrl)) { + $this->buildNode($author, 'uri', $authorUrl); + } + + $element->appendChild($author); + } + + return $this; + } +} diff --git a/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Syndication/AtomItemBuilder.php b/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Syndication/AtomItemBuilder.php new file mode 100644 index 0000000..dfdfe68 --- /dev/null +++ b/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Syndication/AtomItemBuilder.php @@ -0,0 +1,63 @@ +itemElement = $this->feedBuilder->getDocument()->createElement('entry'); + $this->helper = new AtomHelper($this->feedBuilder->getDocument()); + + if (!empty($this->itemId)) { + $this->helper->buildId($this->itemElement, $this->itemId); + } else { + $this->helper->buildId($this->itemElement, $this->itemUrl); + } + + $this->helper + ->buildTitle($this->itemElement, $this->itemTitle) + ->buildLink($this->itemElement, $this->itemUrl) + ->buildDate($this->itemElement, $this->itemUpdatedDate, 'updated') + ->buildDate($this->itemElement, $this->itemPublishedDate, 'published') + ->buildAuthor($this->itemElement, $this->authorName, $this->authorEmail, $this->authorUrl) + ; + + if (!empty($this->itemSummary)) { + $this->helper->buildNode($this->itemElement, 'summary', $this->itemSummary); + } + + if (!empty($this->itemContent)) { + $node = $this->feedBuilder->getDocument()->createElement('content'); + $node->setAttribute('type', 'html'); + $node->appendChild($this->feedBuilder->getDocument()->createCDATASection($this->itemContent)); + $this->itemElement->appendChild($node); + } + + return $this->itemElement; + } +} diff --git a/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Syndication/FeedBuilder.php b/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Syndication/FeedBuilder.php new file mode 100644 index 0000000..cf9d024 --- /dev/null +++ b/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Syndication/FeedBuilder.php @@ -0,0 +1,185 @@ +document = new DomDocument('1.0', 'UTF-8'); + $this->document->formatOutput = true; + } + + /** + * Get new object instance + * + * @access public + * @return static + */ + public static function create() + { + return new static(); + } + + /** + * Add feed title + * + * @access public + * @param string $title + * @return $this + */ + public function withTitle($title) + { + $this->feedTitle = $title; + return $this; + } + + /** + * Add feed url + * + * @access public + * @param string $url + * @return $this + */ + public function withFeedUrl($url) + { + $this->feedUrl = $url; + return $this; + } + + /** + * Add website url + * + * @access public + * @param string $url + * @return $this + */ + public function withSiteUrl($url) + { + $this->siteUrl = $url; + return $this; + } + + /** + * Add feed date + * + * @access public + * @param DateTime $date + * @return $this + */ + public function withDate(DateTime $date) + { + $this->feedDate = $date; + return $this; + } + + /** + * Add feed author + * + * @access public + * @param string $name + * @param string $email + * @param string $url + * @return $this + */ + public function withAuthor($name, $email = '', $url ='') + { + $this->authorName = $name; + $this->authorEmail = $email; + $this->authorUrl = $url; + return $this; + } + + /** + * Add feed item + * + * @access public + * @param ItemBuilder $item + * @return $this + */ + public function withItem(ItemBuilder $item) + { + $this->items[] = $item; + return $this; + } + + /** + * Get DOM document + * + * @access public + * @return DOMDocument + */ + public function getDocument() + { + return $this->document; + } + + /** + * Build feed + * + * @abstract + * @access public + * @param string $filename + * @return string + */ + abstract public function build($filename = ''); +} diff --git a/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Syndication/ItemBuilder.php b/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Syndication/ItemBuilder.php new file mode 100644 index 0000000..86985bc --- /dev/null +++ b/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Syndication/ItemBuilder.php @@ -0,0 +1,209 @@ +feedBuilder = $feedBuilder; + } + + /** + * Get new object instance + * + * @access public + * @param FeedBuilder $feedBuilder + * @return static + */ + public static function create(FeedBuilder $feedBuilder) + { + return new static($feedBuilder); + } + + /** + * Add item title + * + * @access public + * @param string $title + * @return $this + */ + public function withTitle($title) + { + $this->itemTitle = $title; + return $this; + } + + /** + * Add item id + * + * @access public + * @param string $id + * @return $this + */ + public function withId($id) + { + $this->itemId = $id; + return $this; + } + + /** + * Add item url + * + * @access public + * @param string $url + * @return $this + */ + public function withUrl($url) + { + $this->itemUrl = $url; + return $this; + } + + /** + * Add item summary + * + * @access public + * @param string $summary + * @return $this + */ + public function withSummary($summary) + { + $this->itemSummary = $summary; + return $this; + } + + /** + * Add item content + * + * @access public + * @param string $content + * @return $this + */ + public function withContent($content) + { + $this->itemContent = $content; + return $this; + } + + /** + * Add item updated date + * + * @access public + * @param DateTime $date + * @return $this + */ + public function withUpdatedDate(DateTime $date) + { + $this->itemUpdatedDate = $date; + return $this; + } + + /** + * Add item published date + * + * @access public + * @param DateTime $date + * @return $this + */ + public function withPublishedDate(DateTime $date) + { + $this->itemPublishedDate = $date; + return $this; + } + + /** + * Add item author + * + * @access public + * @param string $name + * @param string $email + * @param string $url + * @return $this + */ + public function withAuthor($name, $email = '', $url ='') + { + $this->authorName = $name; + $this->authorEmail = $email; + $this->authorUrl = $url; + return $this; + } + + /** + * Build item + * + * @abstract + * @access public + * @return DOMElement + */ + abstract public function build(); +} diff --git a/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Syndication/Rss20FeedBuilder.php b/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Syndication/Rss20FeedBuilder.php new file mode 100644 index 0000000..bc3f513 --- /dev/null +++ b/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Syndication/Rss20FeedBuilder.php @@ -0,0 +1,76 @@ +helper = new Rss20Helper($this->getDocument()); + + $this->rssElement = $this->getDocument()->createElement('rss'); + $this->rssElement->setAttribute('version', '2.0'); + $this->rssElement->setAttributeNodeNS(new DomAttr('xmlns:content', 'http://purl.org/rss/1.0/modules/content/')); + $this->rssElement->setAttributeNodeNS(new DomAttr('xmlns:atom', 'http://www.w3.org/2005/Atom')); + + $this->channelElement = $this->getDocument()->createElement('channel'); + $this->helper + ->buildNode($this->channelElement, 'generator', 'PicoFeed (https://github.com/miniflux/picoFeed)') + ->buildTitle($this->channelElement, $this->feedTitle) + ->buildNode($this->channelElement, 'description', $this->feedTitle) + ->buildDate($this->channelElement, $this->feedDate) + ->buildAuthor($this->channelElement, 'webMaster', $this->authorName, $this->authorEmail) + ->buildLink($this->channelElement, $this->siteUrl) + ; + + $link = $this->getDocument()->createElement('atom:link'); + $link->setAttribute('href', $this->feedUrl); + $link->setAttribute('rel', 'self'); + $link->setAttribute('type', 'application/rss+xml'); + $this->channelElement->appendChild($link); + + foreach ($this->items as $item) { + $this->channelElement->appendChild($item->build()); + } + + $this->rssElement->appendChild($this->channelElement); + $this->getDocument()->appendChild($this->rssElement); + + if ($filename !== '') { + $this->getDocument()->save($filename); + } + + return $this->getDocument()->saveXML(); + } +} diff --git a/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Syndication/Rss20Helper.php b/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Syndication/Rss20Helper.php new file mode 100644 index 0000000..72a19e5 --- /dev/null +++ b/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Syndication/Rss20Helper.php @@ -0,0 +1,115 @@ +document = $document; + } + + /** + * Build node + * + * @access public + * @param DOMElement $element + * @param string $tag + * @param string $value + * @return $this + */ + public function buildNode(DOMElement $element, $tag, $value) + { + $node = $this->document->createElement($tag); + $node->appendChild($this->document->createTextNode($value)); + $element->appendChild($node); + return $this; + } + + /** + * Build title + * + * @access public + * @param DOMElement $element + * @param string $title + * @return $this + */ + public function buildTitle(DOMElement $element, $title) + { + return $this->buildNode($element, 'title', $title); + } + + /** + * Build date element + * + * @access public + * @param DOMElement $element + * @param DateTime $date + * @param string $type + * @return $this + */ + public function buildDate(DOMElement $element, DateTime $date, $type = 'pubDate') + { + return $this->buildNode($element, $type, $date->format(DateTime::RSS)); + } + + /** + * Build link element + * + * @access public + * @param DOMElement $element + * @param string $url + * @return $this + */ + public function buildLink(DOMElement $element, $url) + { + return $this->buildNode($element, 'link', $url); + } + + /** + * Build author element + * + * @access public + * @param DOMElement $element + * @param string $tag + * @param string $authorName + * @param string $authorEmail + * @return $this + */ + public function buildAuthor(DOMElement $element, $tag, $authorName, $authorEmail) + { + if (!empty($authorName)) { + $value = ''; + + if (!empty($authorEmail)) { + $value .= $authorEmail.' ('.$authorName.')'; + } else { + $value = $authorName; + } + + $this->buildNode($element, $tag, $value); + } + + return $this; + } +} diff --git a/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Syndication/Rss20ItemBuilder.php b/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Syndication/Rss20ItemBuilder.php new file mode 100644 index 0000000..125dc6a --- /dev/null +++ b/user/plugins/admin/vendor/p3k/picofeed/lib/PicoFeed/Syndication/Rss20ItemBuilder.php @@ -0,0 +1,67 @@ +itemElement = $this->feedBuilder->getDocument()->createElement('item'); + $this->helper = new Rss20Helper($this->feedBuilder->getDocument()); + + if (!empty($this->itemId)) { + $guid = $this->feedBuilder->getDocument()->createElement('guid'); + $guid->setAttribute('isPermaLink', 'false'); + $guid->appendChild($this->feedBuilder->getDocument()->createTextNode($this->itemId)); + $this->itemElement->appendChild($guid); + } else { + $guid = $this->feedBuilder->getDocument()->createElement('guid'); + $guid->setAttribute('isPermaLink', 'true'); + $guid->appendChild($this->feedBuilder->getDocument()->createTextNode($this->itemUrl)); + $this->itemElement->appendChild($guid); + } + + $this->helper + ->buildTitle($this->itemElement, $this->itemTitle) + ->buildLink($this->itemElement, $this->itemUrl) + ->buildDate($this->itemElement, $this->itemPublishedDate) + ->buildAuthor($this->itemElement, 'author', $this->authorName, $this->authorEmail) + ; + + if (!empty($this->itemSummary)) { + $this->helper->buildNode($this->itemElement, 'description', $this->itemSummary); + } + + if (!empty($this->itemContent)) { + $node = $this->feedBuilder->getDocument()->createElement('content:encoded'); + $node->appendChild($this->feedBuilder->getDocument()->createCDATASection($this->itemContent)); + $this->itemElement->appendChild($node); + } + + return $this->itemElement; + } +} diff --git a/user/plugins/admin/vendor/p3k/picofeed/picofeed b/user/plugins/admin/vendor/p3k/picofeed/picofeed new file mode 100644 index 0000000..8f35737 --- /dev/null +++ b/user/plugins/admin/vendor/p3k/picofeed/picofeed @@ -0,0 +1,135 @@ +#!/usr/bin/env php +discover($url); + + $parser = $reader->getParser( + $resource->getUrl(), + $resource->getContent(), + $resource->getEncoding() + ); + + if ($disable_filtering) { + $parser->disableContentFiltering(); + } + + return $parser->execute(); + } + catch (PicoFeedException $e) { + echo 'Exception thrown ===> "'.$e->getMessage().'"'.PHP_EOL; + return false; + } +} + +function get_item($feed, $item_id) +{ + foreach ($feed->items as $item) { + if ($item->getId() === $item_id) { + echo $item; + echo "============= CONTENT ================\n"; + echo $item->getContent(); + echo "\n============= CONTENT ================\n"; + break; + } + } +} + +function dump_feed($url) +{ + $feed = get_feed($url); + echo $feed; +} + +function debug_feed($url) +{ + get_feed($url); + print_r(Logger::getMessages()); +} + +function dump_item($url, $item_id) +{ + $feed = get_feed($url); + + if ($feed !== false) { + get_item($feed, $item_id); + } +} + +function nofilter_item($url, $item_id) +{ + $feed = get_feed($url, true); + + if ($feed !== false) { + get_item($feed, $item_id); + } +} + +function grabber($url) +{ + $grabber = new Scraper(new Config); + $grabber->setUrl($url); + $grabber->execute(); + + print_r(Logger::getMessages()); + echo "============= CONTENT ================\n"; + echo $grabber->getRelevantContent().PHP_EOL; + echo "============= FILTERED ================\n"; + echo $grabber->getFilteredContent().PHP_EOL; +} + +function fetch_favicon($url) +{ + $favicon = new Favicon(); + echo $favicon->find($url) . PHP_EOL; +} + +// Parse command line arguments +if ($argc === 4) { + switch ($argv[1]) { + case 'item': + dump_item($argv[2], $argv[3]); + die; + case 'nofilter': + nofilter_item($argv[2], $argv[3]); + die; + } +} else if ($argc === 3) { + switch ($argv[1]) { + case 'feed': + dump_feed($argv[2]); + die; + case 'debug': + debug_feed($argv[2]); + die; + case 'grabber': + grabber($argv[2]); + die; + case 'favicon': + fetch_favicon($argv[2]); + die; + } +} + +printf("Usage:\n"); +printf("%s feed \n", $argv[0]); +printf("%s debug \n", $argv[0]); +printf("%s item \n", $argv[0]); +printf("%s nofilter \n", $argv[0]); +printf("%s grabber \n", $argv[0]); +printf("%s favicon \n", $argv[0]); diff --git a/user/plugins/admin/vendor/scssphp/scssphp/LICENSE.md b/user/plugins/admin/vendor/scssphp/scssphp/LICENSE.md new file mode 100644 index 0000000..afcfdfb --- /dev/null +++ b/user/plugins/admin/vendor/scssphp/scssphp/LICENSE.md @@ -0,0 +1,20 @@ +Copyright (c) 2015 Leaf Corcoran, http://scssphp.github.io/scssphp + +Permission is hereby granted, free of charge, to any person obtaining +a copy of this software and associated documentation files (the +"Software"), to deal in the Software without restriction, including +without limitation the rights to use, copy, modify, merge, publish, +distribute, sublicense, and/or sell copies of the Software, and to +permit persons to whom the Software is furnished to do so, subject to +the following conditions: + +The above copyright notice and this permission notice shall be +included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND +NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE +LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION +WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/user/plugins/admin/vendor/scssphp/scssphp/README.md b/user/plugins/admin/vendor/scssphp/scssphp/README.md new file mode 100644 index 0000000..65bb93e --- /dev/null +++ b/user/plugins/admin/vendor/scssphp/scssphp/README.md @@ -0,0 +1,71 @@ +# scssphp +### + +![Build](https://github.com/scssphp/scssphp/workflows/CI/badge.svg) +[![License](https://poser.pugx.org/scssphp/scssphp/license)](https://packagist.org/packages/scssphp/scssphp) + +`scssphp` is a compiler for SCSS written in PHP. + +Checkout the homepage, , for directions on how to use. + +## Running Tests + +`scssphp` uses [PHPUnit](https://github.com/sebastianbergmann/phpunit) for testing. + +Run the following command from the root directory to run every test: + + vendor/bin/phpunit tests + +There are several tests in the `tests/` directory: + +* `ApiTest.php` contains various unit tests that test the PHP interface. +* `ExceptionTest.php` contains unit tests that test for exceptions thrown by the parser and compiler. +* `FailingTest.php` contains tests reported in Github issues that demonstrate compatibility bugs. +* `InputTest.php` compiles every `.scss` file in the `tests/inputs` directory + then compares to the respective `.css` file in the `tests/outputs` directory. +* `SassSpecTest.php` extracts tests from the `sass/sass-spec` repository. + +When changing any of the tests in `tests/inputs`, the tests will most likely +fail because the output has changed. Once you verify that the output is correct +you can run the following command to rebuild all the tests: + + BUILD=1 vendor/bin/phpunit tests + +This will compile all the tests, and save results into `tests/outputs`. It also +updates the list of excluded specs from sass-spec. + +To enable the full `sass-spec` compatibility tests: + + TEST_SASS_SPEC=1 vendor/bin/phpunit tests + +## Coding Standard + +`scssphp` source conforms to [PSR12](https://www.php-fig.org/psr/psr-12/). + +Run the following command from the root directory to check the code for "sniffs". + + vendor/bin/phpcs --standard=PSR12 --extensions=php bin src tests *.php + +## Static Analysis + +`scssphp` uses [phpstan](https://phpstan.org/) for static analysis. + +Run the following command from the root directory to analyse the codebase: + + make phpstan + +As most of the codebase is composed of legacy code which cannot be type-checked +fully, the setup contains a baseline file with all errors we want to ignore. In +particular, we ignore all errors related to not specifying the types inside arrays +when these arrays correspond to the representation of Sass values and Sass AST nodes +in the parser and compiler. +When contributing, the proper process to deal with static analysis is the following: + +1. Make your change in the codebase +2. Run `make phpstan` +3. Fix errors reported by phpstan when possible +4. Repeat step 2 and 3 until nothing gets fixed anymore at step 3 +5. Run `make phpstan-baseline` to regenerate the phpstan baseline + +Additions to the baseline will be reviewed to avoid ignoring errors that should have +been fixed. diff --git a/user/plugins/admin/vendor/scssphp/scssphp/bin/pscss b/user/plugins/admin/vendor/scssphp/scssphp/bin/pscss new file mode 100644 index 0000000..0f009d6 --- /dev/null +++ b/user/plugins/admin/vendor/scssphp/scssphp/bin/pscss @@ -0,0 +1,244 @@ +#!/usr/bin/env php +parse($data)), true)); + + fwrite(STDERR, 'Warning: the --dump-tree option is deprecated. Use proper debugging tools instead.'); + + exit(); +} + +$scss = new Compiler(); + +if ($loadPaths) { + $scss->setImportPaths($loadPaths); +} + +if ($style) { + if ($style === OutputStyle::COMPRESSED || $style === OutputStyle::EXPANDED) { + $scss->setOutputStyle($style); + } else { + fwrite(STDERR, "WARNING: the $style style is deprecated.\n"); + $scss->setFormatter('ScssPhp\\ScssPhp\\Formatter\\' . ucfirst($style)); + } +} + +$outputFile = isset($arguments[1]) ? $arguments[1] : null; +$sourceMapFile = null; + +if ($sourceMap) { + $sourceMapOptions = array( + 'outputSourceFiles' => $embedSources, + ); + if ($embedSourceMap || $outputFile === null) { + $scss->setSourceMap(Compiler::SOURCE_MAP_INLINE); + } else { + $sourceMapFile = $outputFile . '.map'; + $sourceMapOptions['sourceMapWriteTo'] = $sourceMapFile; + $sourceMapOptions['sourceMapURL'] = basename($sourceMapFile); + $sourceMapOptions['sourceMapBasepath'] = getcwd(); + $sourceMapOptions['sourceMapFilename'] = basename($outputFile); + + $scss->setSourceMap(Compiler::SOURCE_MAP_FILE); + } + + $scss->setSourceMapOptions($sourceMapOptions); +} + +if ($encoding) { + $scss->setEncoding($encoding); +} + +try { + $result = $scss->compileString($data, $inputFile); +} catch (SassException $e) { + fwrite(STDERR, 'Error: '.$e->getMessage()."\n"); + exit(1); +} + +if ($outputFile) { + file_put_contents($outputFile, $result->getCss()); + + if ($sourceMapFile !== null && $result->getSourceMap() !== null) { + file_put_contents($sourceMapFile, $result->getSourceMap()); + } +} else { + echo $result->getCss(); +} diff --git a/user/plugins/admin/vendor/scssphp/scssphp/composer.json b/user/plugins/admin/vendor/scssphp/scssphp/composer.json new file mode 100644 index 0000000..269a473 --- /dev/null +++ b/user/plugins/admin/vendor/scssphp/scssphp/composer.json @@ -0,0 +1,117 @@ +{ + "name": "scssphp/scssphp", + "type": "library", + "description": "scssphp is a compiler for SCSS written in PHP.", + "keywords": ["css", "stylesheet", "scss", "sass", "less"], + "homepage": "http://scssphp.github.io/scssphp/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Anthon Pang", + "email": "apang@softwaredevelopment.ca", + "homepage": "https://github.com/robocoder" + }, + { + "name": "Cédric Morin", + "email": "cedric@yterium.com", + "homepage": "https://github.com/Cerdic" + } + ], + "autoload": { + "psr-4": { "ScssPhp\\ScssPhp\\": "src/" } + }, + "autoload-dev": { + "psr-4": { "ScssPhp\\ScssPhp\\Tests\\": "tests/" } + }, + "require": { + "php": ">=5.6.0", + "ext-json": "*", + "ext-ctype": "*" + }, + "suggest": { + "ext-mbstring": "For best performance, mbstring should be installed as it is faster than ext-iconv", + "ext-iconv": "Can be used as fallback when ext-mbstring is not available" + }, + "require-dev": { + "bamarni/composer-bin-plugin": "^1.4", + "phpunit/phpunit": "^5.7 || ^6.5 || ^7.5 || ^8.3 || ^9.4", + "sass/sass-spec": "*", + "squizlabs/php_codesniffer": "~3.5", + "symfony/phpunit-bridge": "^5.1", + "thoughtbot/bourbon": "^7.0", + "twbs/bootstrap": "~5.0", + "twbs/bootstrap4": "4.6.1", + "zurb/foundation": "~6.5" + }, + "repositories": [ + { + "type": "package", + "package": { + "name": "sass/sass-spec", + "version": "2022.02.24", + "source": { + "type": "git", + "url": "https://github.com/sass/sass-spec.git", + "reference": "f41b9bfb9a3013392f2136c79f7f3356f15fb8ba" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sass/sass-spec/zipball/f41b9bfb9a3013392f2136c79f7f3356f15fb8ba", + "reference": "f41b9bfb9a3013392f2136c79f7f3356f15fb8ba", + "shasum": "" + } + } + }, + { + "type": "package", + "package": { + "name": "thoughtbot/bourbon", + "version": "v7.0.0", + "source": { + "type": "git", + "url": "https://github.com/thoughtbot/bourbon.git", + "reference": "fbe338ee6807e7f7aa996d82c8a16f248bb149b3" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/thoughtbot/bourbon/zipball/fbe338ee6807e7f7aa996d82c8a16f248bb149b3", + "reference": "fbe338ee6807e7f7aa996d82c8a16f248bb149b3", + "shasum": "" + } + } + }, + { + "type": "package", + "package": { + "name": "twbs/bootstrap4", + "version": "v4.6.1", + "source": { + "type": "git", + "url": "https://github.com/twbs/bootstrap.git", + "reference": "043a03c95a2ad6738f85b65e53b9dbdfb03b8d10" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/twbs/bootstrap/zipball/043a03c95a2ad6738f85b65e53b9dbdfb03b8d10", + "reference": "043a03c95a2ad6738f85b65e53b9dbdfb03b8d10", + "shasum": "" + } + } + } + ], + "bin": ["bin/pscss"], + "config": { + "sort-packages": true, + "allow-plugins": { + "bamarni/composer-bin-plugin": true + } + }, + "extra": { + "bamarni-bin": { + "forward-command": false, + "bin-links": false + } + } +} diff --git a/user/plugins/admin/vendor/scssphp/scssphp/phpcs.xml.dist b/user/plugins/admin/vendor/scssphp/scssphp/phpcs.xml.dist new file mode 100644 index 0000000..b162dbd --- /dev/null +++ b/user/plugins/admin/vendor/scssphp/scssphp/phpcs.xml.dist @@ -0,0 +1,12 @@ + + + + + + + + + + diff --git a/user/plugins/admin/vendor/scssphp/scssphp/scss.inc.php b/user/plugins/admin/vendor/scssphp/scssphp/scss.inc.php new file mode 100644 index 0000000..4598378 --- /dev/null +++ b/user/plugins/admin/vendor/scssphp/scssphp/scss.inc.php @@ -0,0 +1,21 @@ + + * + * @internal + */ +class Range +{ + /** + * @var float|int + */ + public $first; + + /** + * @var float|int + */ + public $last; + + /** + * Initialize range + * + * @param int|float $first + * @param int|float $last + */ + public function __construct($first, $last) + { + $this->first = $first; + $this->last = $last; + } + + /** + * Test for inclusion in range + * + * @param int|float $value + * + * @return bool + */ + public function includes($value) + { + return $value >= $this->first && $value <= $this->last; + } +} diff --git a/user/plugins/admin/vendor/scssphp/scssphp/src/Block.php b/user/plugins/admin/vendor/scssphp/scssphp/src/Block.php new file mode 100644 index 0000000..96668dc --- /dev/null +++ b/user/plugins/admin/vendor/scssphp/scssphp/src/Block.php @@ -0,0 +1,73 @@ + + * + * @internal + */ +class Block +{ + /** + * @var string|null + */ + public $type; + + /** + * @var Block|null + */ + public $parent; + + /** + * @var string + */ + public $sourceName; + + /** + * @var int + */ + public $sourceIndex; + + /** + * @var int + */ + public $sourceLine; + + /** + * @var int + */ + public $sourceColumn; + + /** + * @var array|null + */ + public $selectors; + + /** + * @var array + */ + public $comments; + + /** + * @var array + */ + public $children; + + /** + * @var Block|null + */ + public $selfParent; +} diff --git a/user/plugins/admin/vendor/scssphp/scssphp/src/Block/AtRootBlock.php b/user/plugins/admin/vendor/scssphp/scssphp/src/Block/AtRootBlock.php new file mode 100644 index 0000000..41842c2 --- /dev/null +++ b/user/plugins/admin/vendor/scssphp/scssphp/src/Block/AtRootBlock.php @@ -0,0 +1,37 @@ +type = Type::T_AT_ROOT; + } +} diff --git a/user/plugins/admin/vendor/scssphp/scssphp/src/Block/CallableBlock.php b/user/plugins/admin/vendor/scssphp/scssphp/src/Block/CallableBlock.php new file mode 100644 index 0000000..a18a87c --- /dev/null +++ b/user/plugins/admin/vendor/scssphp/scssphp/src/Block/CallableBlock.php @@ -0,0 +1,45 @@ +type = $type; + } +} diff --git a/user/plugins/admin/vendor/scssphp/scssphp/src/Block/ContentBlock.php b/user/plugins/admin/vendor/scssphp/scssphp/src/Block/ContentBlock.php new file mode 100644 index 0000000..8708498 --- /dev/null +++ b/user/plugins/admin/vendor/scssphp/scssphp/src/Block/ContentBlock.php @@ -0,0 +1,38 @@ +type = Type::T_INCLUDE; + } +} diff --git a/user/plugins/admin/vendor/scssphp/scssphp/src/Block/DirectiveBlock.php b/user/plugins/admin/vendor/scssphp/scssphp/src/Block/DirectiveBlock.php new file mode 100644 index 0000000..b1d3d1a --- /dev/null +++ b/user/plugins/admin/vendor/scssphp/scssphp/src/Block/DirectiveBlock.php @@ -0,0 +1,37 @@ +type = Type::T_DIRECTIVE; + } +} diff --git a/user/plugins/admin/vendor/scssphp/scssphp/src/Block/EachBlock.php b/user/plugins/admin/vendor/scssphp/scssphp/src/Block/EachBlock.php new file mode 100644 index 0000000..b328957 --- /dev/null +++ b/user/plugins/admin/vendor/scssphp/scssphp/src/Block/EachBlock.php @@ -0,0 +1,37 @@ +type = Type::T_EACH; + } +} diff --git a/user/plugins/admin/vendor/scssphp/scssphp/src/Block/ElseBlock.php b/user/plugins/admin/vendor/scssphp/scssphp/src/Block/ElseBlock.php new file mode 100644 index 0000000..6abb4d7 --- /dev/null +++ b/user/plugins/admin/vendor/scssphp/scssphp/src/Block/ElseBlock.php @@ -0,0 +1,27 @@ +type = Type::T_ELSE; + } +} diff --git a/user/plugins/admin/vendor/scssphp/scssphp/src/Block/ElseifBlock.php b/user/plugins/admin/vendor/scssphp/scssphp/src/Block/ElseifBlock.php new file mode 100644 index 0000000..4622bca --- /dev/null +++ b/user/plugins/admin/vendor/scssphp/scssphp/src/Block/ElseifBlock.php @@ -0,0 +1,32 @@ +type = Type::T_ELSEIF; + } +} diff --git a/user/plugins/admin/vendor/scssphp/scssphp/src/Block/ForBlock.php b/user/plugins/admin/vendor/scssphp/scssphp/src/Block/ForBlock.php new file mode 100644 index 0000000..a9cf673 --- /dev/null +++ b/user/plugins/admin/vendor/scssphp/scssphp/src/Block/ForBlock.php @@ -0,0 +1,47 @@ +type = Type::T_FOR; + } +} diff --git a/user/plugins/admin/vendor/scssphp/scssphp/src/Block/IfBlock.php b/user/plugins/admin/vendor/scssphp/scssphp/src/Block/IfBlock.php new file mode 100644 index 0000000..9f21bf8 --- /dev/null +++ b/user/plugins/admin/vendor/scssphp/scssphp/src/Block/IfBlock.php @@ -0,0 +1,37 @@ + + */ + public $cases = []; + + public function __construct() + { + $this->type = Type::T_IF; + } +} diff --git a/user/plugins/admin/vendor/scssphp/scssphp/src/Block/MediaBlock.php b/user/plugins/admin/vendor/scssphp/scssphp/src/Block/MediaBlock.php new file mode 100644 index 0000000..c49ee1b --- /dev/null +++ b/user/plugins/admin/vendor/scssphp/scssphp/src/Block/MediaBlock.php @@ -0,0 +1,37 @@ +type = Type::T_MEDIA; + } +} diff --git a/user/plugins/admin/vendor/scssphp/scssphp/src/Block/NestedPropertyBlock.php b/user/plugins/admin/vendor/scssphp/scssphp/src/Block/NestedPropertyBlock.php new file mode 100644 index 0000000..1ea4a6c --- /dev/null +++ b/user/plugins/admin/vendor/scssphp/scssphp/src/Block/NestedPropertyBlock.php @@ -0,0 +1,37 @@ +type = Type::T_NESTED_PROPERTY; + } +} diff --git a/user/plugins/admin/vendor/scssphp/scssphp/src/Block/WhileBlock.php b/user/plugins/admin/vendor/scssphp/scssphp/src/Block/WhileBlock.php new file mode 100644 index 0000000..ac18d4e --- /dev/null +++ b/user/plugins/admin/vendor/scssphp/scssphp/src/Block/WhileBlock.php @@ -0,0 +1,32 @@ +type = Type::T_WHILE; + } +} diff --git a/user/plugins/admin/vendor/scssphp/scssphp/src/Cache.php b/user/plugins/admin/vendor/scssphp/scssphp/src/Cache.php new file mode 100644 index 0000000..9731c60 --- /dev/null +++ b/user/plugins/admin/vendor/scssphp/scssphp/src/Cache.php @@ -0,0 +1,272 @@ + + * + * @internal + */ +class Cache +{ + const CACHE_VERSION = 1; + + /** + * directory used for storing data + * + * @var string|false + */ + public static $cacheDir = false; + + /** + * prefix for the storing data + * + * @var string + */ + public static $prefix = 'scssphp_'; + + /** + * force a refresh : 'once' for refreshing the first hit on a cache only, true to never use the cache in this hit + * + * @var bool|string + */ + public static $forceRefresh = false; + + /** + * specifies the number of seconds after which data cached will be seen as 'garbage' and potentially cleaned up + * + * @var int + */ + public static $gcLifetime = 604800; + + /** + * array of already refreshed cache if $forceRefresh==='once' + * + * @var array + */ + protected static $refreshed = []; + + /** + * Constructor + * + * @param array $options + * + * @phpstan-param array{cacheDir?: string, prefix?: string, forceRefresh?: string} $options + */ + public function __construct($options) + { + // check $cacheDir + if (isset($options['cacheDir'])) { + self::$cacheDir = $options['cacheDir']; + } + + if (empty(self::$cacheDir)) { + throw new Exception('cacheDir not set'); + } + + if (isset($options['prefix'])) { + self::$prefix = $options['prefix']; + } + + if (empty(self::$prefix)) { + throw new Exception('prefix not set'); + } + + if (isset($options['forceRefresh'])) { + self::$forceRefresh = $options['forceRefresh']; + } + + self::checkCacheDir(); + } + + /** + * Get the cached result of $operation on $what, + * which is known as dependant from the content of $options + * + * @param string $operation parse, compile... + * @param mixed $what content key (e.g., filename to be treated) + * @param array $options any option that affect the operation result on the content + * @param int|null $lastModified last modified timestamp + * + * @return mixed + * + * @throws \Exception + */ + public function getCache($operation, $what, $options = [], $lastModified = null) + { + $fileCache = self::$cacheDir . self::cacheName($operation, $what, $options); + + if ( + ((self::$forceRefresh === false) || (self::$forceRefresh === 'once' && + isset(self::$refreshed[$fileCache]))) && file_exists($fileCache) + ) { + $cacheTime = filemtime($fileCache); + + if ( + (\is_null($lastModified) || $cacheTime > $lastModified) && + $cacheTime + self::$gcLifetime > time() + ) { + $c = file_get_contents($fileCache); + $c = unserialize($c); + + if (\is_array($c) && isset($c['value'])) { + return $c['value']; + } + } + } + + return null; + } + + /** + * Put in cache the result of $operation on $what, + * which is known as dependant from the content of $options + * + * @param string $operation + * @param mixed $what + * @param mixed $value + * @param array $options + * + * @return void + */ + public function setCache($operation, $what, $value, $options = []) + { + $fileCache = self::$cacheDir . self::cacheName($operation, $what, $options); + + $c = ['value' => $value]; + $c = serialize($c); + + file_put_contents($fileCache, $c); + + if (self::$forceRefresh === 'once') { + self::$refreshed[$fileCache] = true; + } + } + + /** + * Get the cache name for the caching of $operation on $what, + * which is known as dependant from the content of $options + * + * @param string $operation + * @param mixed $what + * @param array $options + * + * @return string + */ + private static function cacheName($operation, $what, $options = []) + { + $t = [ + 'version' => self::CACHE_VERSION, + 'scssphpVersion' => Version::VERSION, + 'operation' => $operation, + 'what' => $what, + 'options' => $options + ]; + + $t = self::$prefix + . sha1(json_encode($t)) + . ".$operation" + . ".scsscache"; + + return $t; + } + + /** + * Check that the cache dir exists and is writeable + * + * @return void + * + * @throws \Exception + */ + public static function checkCacheDir() + { + self::$cacheDir = str_replace('\\', '/', self::$cacheDir); + self::$cacheDir = rtrim(self::$cacheDir, '/') . '/'; + + if (! is_dir(self::$cacheDir)) { + throw new Exception('Cache directory doesn\'t exist: ' . self::$cacheDir); + } + + if (! is_writable(self::$cacheDir)) { + throw new Exception('Cache directory isn\'t writable: ' . self::$cacheDir); + } + } + + /** + * Delete unused cached files + * + * @return void + */ + public static function cleanCache() + { + static $clean = false; + + if ($clean || empty(self::$cacheDir)) { + return; + } + + $clean = true; + + // only remove files with extensions created by SCSSPHP Cache + // css files removed based on the list files + $removeTypes = ['scsscache' => 1]; + + $files = scandir(self::$cacheDir); + + if (! $files) { + return; + } + + $checkTime = time() - self::$gcLifetime; + + foreach ($files as $file) { + // don't delete if the file wasn't created with SCSSPHP Cache + if (strpos($file, self::$prefix) !== 0) { + continue; + } + + $parts = explode('.', $file); + $type = array_pop($parts); + + if (! isset($removeTypes[$type])) { + continue; + } + + $fullPath = self::$cacheDir . $file; + $mtime = filemtime($fullPath); + + // don't delete if it's a relatively new file + if ($mtime > $checkTime) { + continue; + } + + unlink($fullPath); + } + } +} diff --git a/user/plugins/admin/vendor/scssphp/scssphp/src/Colors.php b/user/plugins/admin/vendor/scssphp/scssphp/src/Colors.php new file mode 100644 index 0000000..2df3999 --- /dev/null +++ b/user/plugins/admin/vendor/scssphp/scssphp/src/Colors.php @@ -0,0 +1,247 @@ + + * + * @internal + */ +class Colors +{ + /** + * CSS Colors + * + * @see http://www.w3.org/TR/css3-color + * + * @var array + */ + protected static $cssColors = [ + 'aliceblue' => '240,248,255', + 'antiquewhite' => '250,235,215', + 'aqua' => '0,255,255', + 'cyan' => '0,255,255', + 'aquamarine' => '127,255,212', + 'azure' => '240,255,255', + 'beige' => '245,245,220', + 'bisque' => '255,228,196', + 'black' => '0,0,0', + 'blanchedalmond' => '255,235,205', + 'blue' => '0,0,255', + 'blueviolet' => '138,43,226', + 'brown' => '165,42,42', + 'burlywood' => '222,184,135', + 'cadetblue' => '95,158,160', + 'chartreuse' => '127,255,0', + 'chocolate' => '210,105,30', + 'coral' => '255,127,80', + 'cornflowerblue' => '100,149,237', + 'cornsilk' => '255,248,220', + 'crimson' => '220,20,60', + 'darkblue' => '0,0,139', + 'darkcyan' => '0,139,139', + 'darkgoldenrod' => '184,134,11', + 'darkgray' => '169,169,169', + 'darkgrey' => '169,169,169', + 'darkgreen' => '0,100,0', + 'darkkhaki' => '189,183,107', + 'darkmagenta' => '139,0,139', + 'darkolivegreen' => '85,107,47', + 'darkorange' => '255,140,0', + 'darkorchid' => '153,50,204', + 'darkred' => '139,0,0', + 'darksalmon' => '233,150,122', + 'darkseagreen' => '143,188,143', + 'darkslateblue' => '72,61,139', + 'darkslategray' => '47,79,79', + 'darkslategrey' => '47,79,79', + 'darkturquoise' => '0,206,209', + 'darkviolet' => '148,0,211', + 'deeppink' => '255,20,147', + 'deepskyblue' => '0,191,255', + 'dimgray' => '105,105,105', + 'dimgrey' => '105,105,105', + 'dodgerblue' => '30,144,255', + 'firebrick' => '178,34,34', + 'floralwhite' => '255,250,240', + 'forestgreen' => '34,139,34', + 'fuchsia' => '255,0,255', + 'magenta' => '255,0,255', + 'gainsboro' => '220,220,220', + 'ghostwhite' => '248,248,255', + 'gold' => '255,215,0', + 'goldenrod' => '218,165,32', + 'gray' => '128,128,128', + 'grey' => '128,128,128', + 'green' => '0,128,0', + 'greenyellow' => '173,255,47', + 'honeydew' => '240,255,240', + 'hotpink' => '255,105,180', + 'indianred' => '205,92,92', + 'indigo' => '75,0,130', + 'ivory' => '255,255,240', + 'khaki' => '240,230,140', + 'lavender' => '230,230,250', + 'lavenderblush' => '255,240,245', + 'lawngreen' => '124,252,0', + 'lemonchiffon' => '255,250,205', + 'lightblue' => '173,216,230', + 'lightcoral' => '240,128,128', + 'lightcyan' => '224,255,255', + 'lightgoldenrodyellow' => '250,250,210', + 'lightgray' => '211,211,211', + 'lightgrey' => '211,211,211', + 'lightgreen' => '144,238,144', + 'lightpink' => '255,182,193', + 'lightsalmon' => '255,160,122', + 'lightseagreen' => '32,178,170', + 'lightskyblue' => '135,206,250', + 'lightslategray' => '119,136,153', + 'lightslategrey' => '119,136,153', + 'lightsteelblue' => '176,196,222', + 'lightyellow' => '255,255,224', + 'lime' => '0,255,0', + 'limegreen' => '50,205,50', + 'linen' => '250,240,230', + 'maroon' => '128,0,0', + 'mediumaquamarine' => '102,205,170', + 'mediumblue' => '0,0,205', + 'mediumorchid' => '186,85,211', + 'mediumpurple' => '147,112,219', + 'mediumseagreen' => '60,179,113', + 'mediumslateblue' => '123,104,238', + 'mediumspringgreen' => '0,250,154', + 'mediumturquoise' => '72,209,204', + 'mediumvioletred' => '199,21,133', + 'midnightblue' => '25,25,112', + 'mintcream' => '245,255,250', + 'mistyrose' => '255,228,225', + 'moccasin' => '255,228,181', + 'navajowhite' => '255,222,173', + 'navy' => '0,0,128', + 'oldlace' => '253,245,230', + 'olive' => '128,128,0', + 'olivedrab' => '107,142,35', + 'orange' => '255,165,0', + 'orangered' => '255,69,0', + 'orchid' => '218,112,214', + 'palegoldenrod' => '238,232,170', + 'palegreen' => '152,251,152', + 'paleturquoise' => '175,238,238', + 'palevioletred' => '219,112,147', + 'papayawhip' => '255,239,213', + 'peachpuff' => '255,218,185', + 'peru' => '205,133,63', + 'pink' => '255,192,203', + 'plum' => '221,160,221', + 'powderblue' => '176,224,230', + 'purple' => '128,0,128', + 'red' => '255,0,0', + 'rosybrown' => '188,143,143', + 'royalblue' => '65,105,225', + 'saddlebrown' => '139,69,19', + 'salmon' => '250,128,114', + 'sandybrown' => '244,164,96', + 'seagreen' => '46,139,87', + 'seashell' => '255,245,238', + 'sienna' => '160,82,45', + 'silver' => '192,192,192', + 'skyblue' => '135,206,235', + 'slateblue' => '106,90,205', + 'slategray' => '112,128,144', + 'slategrey' => '112,128,144', + 'snow' => '255,250,250', + 'springgreen' => '0,255,127', + 'steelblue' => '70,130,180', + 'tan' => '210,180,140', + 'teal' => '0,128,128', + 'thistle' => '216,191,216', + 'tomato' => '255,99,71', + 'turquoise' => '64,224,208', + 'violet' => '238,130,238', + 'wheat' => '245,222,179', + 'white' => '255,255,255', + 'whitesmoke' => '245,245,245', + 'yellow' => '255,255,0', + 'yellowgreen' => '154,205,50', + 'rebeccapurple' => '102,51,153', + 'transparent' => '0,0,0,0', + ]; + + /** + * Convert named color in a [r,g,b[,a]] array + * + * @param string $colorName + * + * @return int[]|null + */ + public static function colorNameToRGBa($colorName) + { + if (\is_string($colorName) && isset(static::$cssColors[$colorName])) { + $rgba = explode(',', static::$cssColors[$colorName]); + + // only case with opacity is transparent, with opacity=0, so we can intval on opacity also + $rgba = array_map('intval', $rgba); + + return $rgba; + } + + return null; + } + + /** + * Reverse conversion : from RGBA to a color name if possible + * + * @param int $r + * @param int $g + * @param int $b + * @param int|float $a + * + * @return string|null + */ + public static function RGBaToColorName($r, $g, $b, $a = 1) + { + static $reverseColorTable = null; + + if (! is_numeric($r) || ! is_numeric($g) || ! is_numeric($b) || ! is_numeric($a)) { + return null; + } + + if ($a < 1) { + return null; + } + + if (\is_null($reverseColorTable)) { + $reverseColorTable = []; + + foreach (static::$cssColors as $name => $rgb_str) { + $rgb_str = explode(',', $rgb_str); + + if ( + \count($rgb_str) == 3 && + ! isset($reverseColorTable[\intval($rgb_str[0])][\intval($rgb_str[1])][\intval($rgb_str[2])]) + ) { + $reverseColorTable[\intval($rgb_str[0])][\intval($rgb_str[1])][\intval($rgb_str[2])] = $name; + } + } + } + + if (isset($reverseColorTable[\intval($r)][\intval($g)][\intval($b)])) { + return $reverseColorTable[\intval($r)][\intval($g)][\intval($b)]; + } + + return null; + } +} diff --git a/user/plugins/admin/vendor/scssphp/scssphp/src/CompilationResult.php b/user/plugins/admin/vendor/scssphp/scssphp/src/CompilationResult.php new file mode 100644 index 0000000..36adb0d --- /dev/null +++ b/user/plugins/admin/vendor/scssphp/scssphp/src/CompilationResult.php @@ -0,0 +1,69 @@ +css = $css; + $this->sourceMap = $sourceMap; + $this->includedFiles = $includedFiles; + } + + /** + * @return string + */ + public function getCss() + { + return $this->css; + } + + /** + * @return string[] + */ + public function getIncludedFiles() + { + return $this->includedFiles; + } + + /** + * The sourceMap content, if it was generated + * + * @return null|string + */ + public function getSourceMap() + { + return $this->sourceMap; + } +} diff --git a/user/plugins/admin/vendor/scssphp/scssphp/src/Compiler.php b/user/plugins/admin/vendor/scssphp/scssphp/src/Compiler.php new file mode 100644 index 0000000..f4ab328 --- /dev/null +++ b/user/plugins/admin/vendor/scssphp/scssphp/src/Compiler.php @@ -0,0 +1,10408 @@ + + * + * @final Extending the Compiler is deprecated + */ +class Compiler +{ + /** + * @deprecated + */ + const LINE_COMMENTS = 1; + /** + * @deprecated + */ + const DEBUG_INFO = 2; + + /** + * @deprecated + */ + const WITH_RULE = 1; + /** + * @deprecated + */ + const WITH_MEDIA = 2; + /** + * @deprecated + */ + const WITH_SUPPORTS = 4; + /** + * @deprecated + */ + const WITH_ALL = 7; + + const SOURCE_MAP_NONE = 0; + const SOURCE_MAP_INLINE = 1; + const SOURCE_MAP_FILE = 2; + + /** + * @var array + */ + protected static $operatorNames = [ + '+' => 'add', + '-' => 'sub', + '*' => 'mul', + '/' => 'div', + '%' => 'mod', + + '==' => 'eq', + '!=' => 'neq', + '<' => 'lt', + '>' => 'gt', + + '<=' => 'lte', + '>=' => 'gte', + ]; + + /** + * @var array + */ + protected static $namespaces = [ + 'special' => '%', + 'mixin' => '@', + 'function' => '^', + ]; + + public static $true = [Type::T_KEYWORD, 'true']; + public static $false = [Type::T_KEYWORD, 'false']; + /** @deprecated */ + public static $NaN = [Type::T_KEYWORD, 'NaN']; + /** @deprecated */ + public static $Infinity = [Type::T_KEYWORD, 'Infinity']; + public static $null = [Type::T_NULL]; + public static $nullString = [Type::T_STRING, '', []]; + public static $defaultValue = [Type::T_KEYWORD, '']; + public static $selfSelector = [Type::T_SELF]; + public static $emptyList = [Type::T_LIST, '', []]; + public static $emptyMap = [Type::T_MAP, [], []]; + public static $emptyString = [Type::T_STRING, '"', []]; + public static $with = [Type::T_KEYWORD, 'with']; + public static $without = [Type::T_KEYWORD, 'without']; + private static $emptyArgumentList = [Type::T_LIST, '', [], []]; + + /** + * @var array + */ + protected $importPaths = []; + /** + * @var array + */ + protected $importCache = []; + + /** + * @var string[] + */ + protected $importedFiles = []; + + /** + * @var array + * @phpstan-var array + */ + protected $userFunctions = []; + /** + * @var array + */ + protected $registeredVars = []; + /** + * @var array + */ + protected $registeredFeatures = [ + 'extend-selector-pseudoclass' => false, + 'at-error' => true, + 'units-level-3' => true, + 'global-variable-shadowing' => false, + ]; + + /** + * @var string|null + */ + protected $encoding = null; + /** + * @var null + * @deprecated + */ + protected $lineNumberStyle = null; + + /** + * @var int|SourceMapGenerator + * @phpstan-var self::SOURCE_MAP_*|SourceMapGenerator + */ + protected $sourceMap = self::SOURCE_MAP_NONE; + + /** + * @var array + * @phpstan-var array{sourceRoot?: string, sourceMapFilename?: string|null, sourceMapURL?: string|null, sourceMapWriteTo?: string|null, outputSourceFiles?: bool, sourceMapRootpath?: string, sourceMapBasepath?: string} + */ + protected $sourceMapOptions = []; + + /** + * @var bool + */ + private $charset = true; + + /** + * @var Formatter + */ + protected $formatter; + + /** + * @var string + * @phpstan-var class-string + */ + private $configuredFormatter = Expanded::class; + + /** + * @var Environment + */ + protected $rootEnv; + /** + * @var OutputBlock|null + */ + protected $rootBlock; + + /** + * @var \ScssPhp\ScssPhp\Compiler\Environment + */ + protected $env; + /** + * @var OutputBlock|null + */ + protected $scope; + /** + * @var Environment|null + */ + protected $storeEnv; + /** + * @var bool|null + * + * @deprecated + */ + protected $charsetSeen; + /** + * @var array + */ + protected $sourceNames; + + /** + * @var Cache|null + */ + protected $cache; + + /** + * @var bool + */ + protected $cacheCheckImportResolutions = false; + + /** + * @var int + */ + protected $indentLevel; + /** + * @var array[] + */ + protected $extends; + /** + * @var array + */ + protected $extendsMap; + + /** + * @var array + */ + protected $parsedFiles = []; + + /** + * @var Parser|null + */ + protected $parser; + /** + * @var int|null + */ + protected $sourceIndex; + /** + * @var int|null + */ + protected $sourceLine; + /** + * @var int|null + */ + protected $sourceColumn; + /** + * @var bool|null + */ + protected $shouldEvaluate; + /** + * @var null + * @deprecated + */ + protected $ignoreErrors; + /** + * @var bool + */ + protected $ignoreCallStackMessage = false; + + /** + * @var array[] + */ + protected $callStack = []; + + /** + * @var array + * @phpstan-var list + */ + private $resolvedImports = []; + + /** + * The directory of the currently processed file + * + * @var string|null + */ + private $currentDirectory; + + /** + * The directory of the input file + * + * @var string + */ + private $rootDirectory; + + /** + * @var bool + */ + private $legacyCwdImportPath = true; + + /** + * @var LoggerInterface + */ + private $logger; + + /** + * @var array + */ + private $warnedChildFunctions = []; + + /** + * Constructor + * + * @param array|null $cacheOptions + * @phpstan-param array{cacheDir?: string, prefix?: string, forceRefresh?: string, checkImportResolutions?: bool}|null $cacheOptions + */ + public function __construct($cacheOptions = null) + { + $this->sourceNames = []; + + if ($cacheOptions) { + $this->cache = new Cache($cacheOptions); + if (!empty($cacheOptions['checkImportResolutions'])) { + $this->cacheCheckImportResolutions = true; + } + } + + $this->logger = new StreamLogger(fopen('php://stderr', 'w'), true); + } + + /** + * Get compiler options + * + * @return array + * + * @internal + */ + public function getCompileOptions() + { + $options = [ + 'importPaths' => $this->importPaths, + 'registeredVars' => $this->registeredVars, + 'registeredFeatures' => $this->registeredFeatures, + 'encoding' => $this->encoding, + 'sourceMap' => serialize($this->sourceMap), + 'sourceMapOptions' => $this->sourceMapOptions, + 'formatter' => $this->configuredFormatter, + 'legacyImportPath' => $this->legacyCwdImportPath, + ]; + + return $options; + } + + /** + * Sets an alternative logger. + * + * Changing the logger in the middle of the compilation is not + * supported and will result in an undefined behavior. + * + * @param LoggerInterface $logger + * + * @return void + */ + public function setLogger(LoggerInterface $logger) + { + $this->logger = $logger; + } + + /** + * Set an alternative error output stream, for testing purpose only + * + * @param resource $handle + * + * @return void + * + * @deprecated Use {@see setLogger} instead + */ + public function setErrorOuput($handle) + { + @trigger_error('The method "setErrorOuput" is deprecated. Use "setLogger" instead.', E_USER_DEPRECATED); + + $this->logger = new StreamLogger($handle); + } + + /** + * Compile scss + * + * @param string $code + * @param string|null $path + * + * @return string + * + * @throws SassException when the source fails to compile + * + * @deprecated Use {@see compileString} instead. + */ + public function compile($code, $path = null) + { + @trigger_error(sprintf('The "%s" method is deprecated. Use "compileString" instead.', __METHOD__), E_USER_DEPRECATED); + + $result = $this->compileString($code, $path); + + $sourceMap = $result->getSourceMap(); + + if ($sourceMap !== null) { + if ($this->sourceMap instanceof SourceMapGenerator) { + $this->sourceMap->saveMap($sourceMap); + } elseif ($this->sourceMap === self::SOURCE_MAP_FILE) { + $sourceMapGenerator = new SourceMapGenerator($this->sourceMapOptions); + $sourceMapGenerator->saveMap($sourceMap); + } + } + + return $result->getCss(); + } + + /** + * Compile scss + * + * @param string $source + * @param string|null $path + * + * @return CompilationResult + * + * @throws SassException when the source fails to compile + */ + public function compileString($source, $path = null) + { + if ($this->cache) { + $cacheKey = ($path ? $path : '(stdin)') . ':' . md5($source); + $compileOptions = $this->getCompileOptions(); + $cachedResult = $this->cache->getCache('compile', $cacheKey, $compileOptions); + + if ($cachedResult instanceof CachedResult && $this->isFreshCachedResult($cachedResult)) { + return $cachedResult->getResult(); + } + } + + $this->indentLevel = -1; + $this->extends = []; + $this->extendsMap = []; + $this->sourceIndex = null; + $this->sourceLine = null; + $this->sourceColumn = null; + $this->env = null; + $this->scope = null; + $this->storeEnv = null; + $this->shouldEvaluate = null; + $this->ignoreCallStackMessage = false; + $this->parsedFiles = []; + $this->importedFiles = []; + $this->resolvedImports = []; + + if (!\is_null($path) && is_file($path)) { + $path = realpath($path) ?: $path; + $this->currentDirectory = dirname($path); + $this->rootDirectory = $this->currentDirectory; + } else { + $this->currentDirectory = null; + $this->rootDirectory = getcwd(); + } + + try { + $this->parser = $this->parserFactory($path); + $tree = $this->parser->parse($source); + $this->parser = null; + + $this->formatter = new $this->configuredFormatter(); + $this->rootBlock = null; + $this->rootEnv = $this->pushEnv($tree); + + $warnCallback = function ($message, $deprecation) { + $this->logger->warn($message, $deprecation); + }; + $previousWarnCallback = Warn::setCallback($warnCallback); + + try { + $this->injectVariables($this->registeredVars); + $this->compileRoot($tree); + $this->popEnv(); + } finally { + Warn::setCallback($previousWarnCallback); + } + + $sourceMapGenerator = null; + + if ($this->sourceMap) { + if (\is_object($this->sourceMap) && $this->sourceMap instanceof SourceMapGenerator) { + $sourceMapGenerator = $this->sourceMap; + $this->sourceMap = self::SOURCE_MAP_FILE; + } elseif ($this->sourceMap !== self::SOURCE_MAP_NONE) { + $sourceMapGenerator = new SourceMapGenerator($this->sourceMapOptions); + } + } + assert($this->scope !== null); + + $out = $this->formatter->format($this->scope, $sourceMapGenerator); + + $prefix = ''; + + if ($this->charset && strlen($out) !== Util::mbStrlen($out)) { + $prefix = '@charset "UTF-8";' . "\n"; + $out = $prefix . $out; + } + + $sourceMap = null; + + if (! empty($out) && $this->sourceMap && $this->sourceMap !== self::SOURCE_MAP_NONE) { + assert($sourceMapGenerator !== null); + $sourceMap = $sourceMapGenerator->generateJson($prefix); + $sourceMapUrl = null; + + switch ($this->sourceMap) { + case self::SOURCE_MAP_INLINE: + $sourceMapUrl = sprintf('data:application/json,%s', Util::encodeURIComponent($sourceMap)); + break; + + case self::SOURCE_MAP_FILE: + if (isset($this->sourceMapOptions['sourceMapURL'])) { + $sourceMapUrl = $this->sourceMapOptions['sourceMapURL']; + } + break; + } + + if ($sourceMapUrl !== null) { + $out .= sprintf('/*# sourceMappingURL=%s */', $sourceMapUrl); + } + } + } catch (SassScriptException $e) { + throw new CompilerException($this->addLocationToMessage($e->getMessage()), 0, $e); + } + + $includedFiles = []; + + foreach ($this->resolvedImports as $resolvedImport) { + $includedFiles[$resolvedImport['filePath']] = $resolvedImport['filePath']; + } + + $result = new CompilationResult($out, $sourceMap, array_values($includedFiles)); + + if ($this->cache && isset($cacheKey) && isset($compileOptions)) { + $this->cache->setCache('compile', $cacheKey, new CachedResult($result, $this->parsedFiles, $this->resolvedImports), $compileOptions); + } + + // Reset state to free memory + // TODO in 2.0, reset parsedFiles as well when the getter is removed. + $this->resolvedImports = []; + $this->importedFiles = []; + + return $result; + } + + /** + * @param CachedResult $result + * + * @return bool + */ + private function isFreshCachedResult(CachedResult $result) + { + // check if any dependency file changed since the result was compiled + foreach ($result->getParsedFiles() as $file => $mtime) { + if (! is_file($file) || filemtime($file) !== $mtime) { + return false; + } + } + + if ($this->cacheCheckImportResolutions) { + $resolvedImports = []; + + foreach ($result->getResolvedImports() as $import) { + $currentDir = $import['currentDir']; + $path = $import['path']; + // store the check across all the results in memory to avoid multiple findImport() on the same path + // with same context. + // this is happening in a same hit with multiple compilations (especially with big frameworks) + if (empty($resolvedImports[$currentDir][$path])) { + $resolvedImports[$currentDir][$path] = $this->findImport($path, $currentDir); + } + + if ($resolvedImports[$currentDir][$path] !== $import['filePath']) { + return false; + } + } + } + + return true; + } + + /** + * Instantiate parser + * + * @param string|null $path + * + * @return \ScssPhp\ScssPhp\Parser + */ + protected function parserFactory($path) + { + // https://sass-lang.com/documentation/at-rules/import + // CSS files imported by Sass don’t allow any special Sass features. + // In order to make sure authors don’t accidentally write Sass in their CSS, + // all Sass features that aren’t also valid CSS will produce errors. + // Otherwise, the CSS will be rendered as-is. It can even be extended! + $cssOnly = false; + + if ($path !== null && substr($path, -4) === '.css') { + $cssOnly = true; + } + + $parser = new Parser($path, \count($this->sourceNames), $this->encoding, $this->cache, $cssOnly, $this->logger); + + $this->sourceNames[] = $path; + $this->addParsedFile($path); + + return $parser; + } + + /** + * Is self extend? + * + * @param array $target + * @param array $origin + * + * @return bool + */ + protected function isSelfExtend($target, $origin) + { + foreach ($origin as $sel) { + if (\in_array($target, $sel)) { + return true; + } + } + + return false; + } + + /** + * Push extends + * + * @param string[] $target + * @param array $origin + * @param array|null $block + * + * @return void + */ + protected function pushExtends($target, $origin, $block) + { + $i = \count($this->extends); + $this->extends[] = [$target, $origin, $block]; + + foreach ($target as $part) { + if (isset($this->extendsMap[$part])) { + $this->extendsMap[$part][] = $i; + } else { + $this->extendsMap[$part] = [$i]; + } + } + } + + /** + * Make output block + * + * @param string|null $type + * @param string[]|null $selectors + * + * @return \ScssPhp\ScssPhp\Formatter\OutputBlock + */ + protected function makeOutputBlock($type, $selectors = null) + { + $out = new OutputBlock(); + $out->type = $type; + $out->lines = []; + $out->children = []; + $out->parent = $this->scope; + $out->selectors = $selectors; + $out->depth = $this->env->depth; + + if ($this->env->block instanceof Block) { + $out->sourceName = $this->env->block->sourceName; + $out->sourceLine = $this->env->block->sourceLine; + $out->sourceColumn = $this->env->block->sourceColumn; + } else { + $out->sourceName = isset($this->sourceNames[$this->sourceIndex]) ? $this->sourceNames[$this->sourceIndex] : '(stdin)'; + $out->sourceLine = $this->sourceLine; + $out->sourceColumn = $this->sourceColumn; + } + + return $out; + } + + /** + * Compile root + * + * @param \ScssPhp\ScssPhp\Block $rootBlock + * + * @return void + */ + protected function compileRoot(Block $rootBlock) + { + $this->rootBlock = $this->scope = $this->makeOutputBlock(Type::T_ROOT); + + $this->compileChildrenNoReturn($rootBlock->children, $this->scope); + assert($this->scope !== null); + $this->flattenSelectors($this->scope); + $this->missingSelectors(); + } + + /** + * Report missing selectors + * + * @return void + */ + protected function missingSelectors() + { + foreach ($this->extends as $extend) { + if (isset($extend[3])) { + continue; + } + + list($target, $origin, $block) = $extend; + + // ignore if !optional + if ($block[2]) { + continue; + } + + $target = implode(' ', $target); + $origin = $this->collapseSelectors($origin); + + $this->sourceLine = $block[Parser::SOURCE_LINE]; + throw $this->error("\"$origin\" failed to @extend \"$target\". The selector \"$target\" was not found."); + } + } + + /** + * Flatten selectors + * + * @param \ScssPhp\ScssPhp\Formatter\OutputBlock $block + * @param string $parentKey + * + * @return void + */ + protected function flattenSelectors(OutputBlock $block, $parentKey = null) + { + if ($block->selectors) { + $selectors = []; + + foreach ($block->selectors as $s) { + $selectors[] = $s; + + if (! \is_array($s)) { + continue; + } + + // check extends + if (! empty($this->extendsMap)) { + $this->matchExtends($s, $selectors); + + // remove duplicates + array_walk($selectors, function (&$value) { + $value = serialize($value); + }); + + $selectors = array_unique($selectors); + + array_walk($selectors, function (&$value) { + $value = unserialize($value); + }); + } + } + + $block->selectors = []; + $placeholderSelector = false; + + foreach ($selectors as $selector) { + if ($this->hasSelectorPlaceholder($selector)) { + $placeholderSelector = true; + continue; + } + + $block->selectors[] = $this->compileSelector($selector); + } + + if ($placeholderSelector && 0 === \count($block->selectors) && null !== $parentKey) { + assert($block->parent !== null); + unset($block->parent->children[$parentKey]); + + return; + } + } + + foreach ($block->children as $key => $child) { + $this->flattenSelectors($child, $key); + } + } + + /** + * Glue parts of :not( or :nth-child( ... that are in general split in selectors parts + * + * @param array $parts + * + * @return array + */ + protected function glueFunctionSelectors($parts) + { + $new = []; + + foreach ($parts as $part) { + if (\is_array($part)) { + $part = $this->glueFunctionSelectors($part); + $new[] = $part; + } else { + // a selector part finishing with a ) is the last part of a :not( or :nth-child( + // and need to be joined to this + if ( + \count($new) && \is_string($new[\count($new) - 1]) && + \strlen($part) && substr($part, -1) === ')' && strpos($part, '(') === false + ) { + while (\count($new) > 1 && substr($new[\count($new) - 1], -1) !== '(') { + $part = array_pop($new) . $part; + } + $new[\count($new) - 1] .= $part; + } else { + $new[] = $part; + } + } + } + + return $new; + } + + /** + * Match extends + * + * @param array $selector + * @param array $out + * @param int $from + * @param bool $initial + * + * @return void + */ + protected function matchExtends($selector, &$out, $from = 0, $initial = true) + { + static $partsPile = []; + $selector = $this->glueFunctionSelectors($selector); + + if (\count($selector) == 1 && \in_array(reset($selector), $partsPile)) { + return; + } + + $outRecurs = []; + + foreach ($selector as $i => $part) { + if ($i < $from) { + continue; + } + + // check that we are not building an infinite loop of extensions + // if the new part is just including a previous part don't try to extend anymore + if (\count($part) > 1) { + foreach ($partsPile as $previousPart) { + if (! \count(array_diff($previousPart, $part))) { + continue 2; + } + } + } + + $partsPile[] = $part; + + if ($this->matchExtendsSingle($part, $origin, $initial)) { + $after = \array_slice($selector, $i + 1); + $before = \array_slice($selector, 0, $i); + list($before, $nonBreakableBefore) = $this->extractRelationshipFromFragment($before); + + foreach ($origin as $new) { + $k = 0; + + // remove shared parts + if (\count($new) > 1) { + while ($k < $i && isset($new[$k]) && $selector[$k] === $new[$k]) { + $k++; + } + } + + if (\count($nonBreakableBefore) && $k === \count($new)) { + $k--; + } + + $replacement = []; + $tempReplacement = $k > 0 ? \array_slice($new, $k) : $new; + + for ($l = \count($tempReplacement) - 1; $l >= 0; $l--) { + $slice = []; + + foreach ($tempReplacement[$l] as $chunk) { + if (! \in_array($chunk, $slice)) { + $slice[] = $chunk; + } + } + + array_unshift($replacement, $slice); + + if (! $this->isImmediateRelationshipCombinator(end($slice))) { + break; + } + } + + $afterBefore = $l != 0 ? \array_slice($tempReplacement, 0, $l) : []; + + // Merge shared direct relationships. + $mergedBefore = $this->mergeDirectRelationships($afterBefore, $nonBreakableBefore); + + $result = array_merge( + $before, + $mergedBefore, + $replacement, + $after + ); + + if ($result === $selector) { + continue; + } + + $this->pushOrMergeExtentedSelector($out, $result); + + // recursively check for more matches + $startRecurseFrom = \count($before) + min(\count($nonBreakableBefore), \count($mergedBefore)); + + if (\count($origin) > 1) { + $this->matchExtends($result, $out, $startRecurseFrom, false); + } else { + $this->matchExtends($result, $outRecurs, $startRecurseFrom, false); + } + + // selector sequence merging + if (! empty($before) && \count($new) > 1) { + $preSharedParts = $k > 0 ? \array_slice($before, 0, $k) : []; + $postSharedParts = $k > 0 ? \array_slice($before, $k) : $before; + + list($betweenSharedParts, $nonBreakabl2) = $this->extractRelationshipFromFragment($afterBefore); + + $result2 = array_merge( + $preSharedParts, + $betweenSharedParts, + $postSharedParts, + $nonBreakabl2, + $nonBreakableBefore, + $replacement, + $after + ); + + $this->pushOrMergeExtentedSelector($out, $result2); + } + } + } + array_pop($partsPile); + } + + while (\count($outRecurs)) { + $result = array_shift($outRecurs); + $this->pushOrMergeExtentedSelector($out, $result); + } + } + + /** + * Test a part for being a pseudo selector + * + * @param string $part + * @param array $matches + * + * @return bool + */ + protected function isPseudoSelector($part, &$matches) + { + if ( + strpos($part, ':') === 0 && + preg_match(",^::?([\w-]+)\((.+)\)$,", $part, $matches) + ) { + return true; + } + + return false; + } + + /** + * Push extended selector except if + * - this is a pseudo selector + * - same as previous + * - in a white list + * in this case we merge the pseudo selector content + * + * @param array $out + * @param array $extended + * + * @return void + */ + protected function pushOrMergeExtentedSelector(&$out, $extended) + { + if (\count($out) && \count($extended) === 1 && \count(reset($extended)) === 1) { + $single = reset($extended); + $part = reset($single); + + if ( + $this->isPseudoSelector($part, $matchesExtended) && + \in_array($matchesExtended[1], [ 'slotted' ]) + ) { + $prev = end($out); + $prev = $this->glueFunctionSelectors($prev); + + if (\count($prev) === 1 && \count(reset($prev)) === 1) { + $single = reset($prev); + $part = reset($single); + + if ( + $this->isPseudoSelector($part, $matchesPrev) && + $matchesPrev[1] === $matchesExtended[1] + ) { + $extended = explode($matchesExtended[1] . '(', $matchesExtended[0], 2); + $extended[1] = $matchesPrev[2] . ', ' . $extended[1]; + $extended = implode($matchesExtended[1] . '(', $extended); + $extended = [ [ $extended ]]; + array_pop($out); + } + } + } + } + $out[] = $extended; + } + + /** + * Match extends single + * + * @param array $rawSingle + * @param array $outOrigin + * @param bool $initial + * + * @return bool + */ + protected function matchExtendsSingle($rawSingle, &$outOrigin, $initial = true) + { + $counts = []; + $single = []; + + // simple usual cases, no need to do the whole trick + if (\in_array($rawSingle, [['>'],['+'],['~']])) { + return false; + } + + foreach ($rawSingle as $part) { + // matches Number + if (! \is_string($part)) { + return false; + } + + if (! preg_match('/^[\[.:#%]/', $part) && \count($single)) { + $single[\count($single) - 1] .= $part; + } else { + $single[] = $part; + } + } + + $extendingDecoratedTag = false; + + if (\count($single) > 1) { + $matches = null; + $extendingDecoratedTag = preg_match('/^[a-z0-9]+$/i', $single[0], $matches) ? $matches[0] : false; + } + + $outOrigin = []; + $found = false; + + foreach ($single as $k => $part) { + if (isset($this->extendsMap[$part])) { + foreach ($this->extendsMap[$part] as $idx) { + $counts[$idx] = isset($counts[$idx]) ? $counts[$idx] + 1 : 1; + } + } + + if ( + $initial && + $this->isPseudoSelector($part, $matches) && + ! \in_array($matches[1], [ 'not' ]) + ) { + $buffer = $matches[2]; + $parser = $this->parserFactory(__METHOD__); + + if ($parser->parseSelector($buffer, $subSelectors, false)) { + foreach ($subSelectors as $ksub => $subSelector) { + $subExtended = []; + $this->matchExtends($subSelector, $subExtended, 0, false); + + if ($subExtended) { + $subSelectorsExtended = $subSelectors; + $subSelectorsExtended[$ksub] = $subExtended; + + foreach ($subSelectorsExtended as $ksse => $sse) { + $subSelectorsExtended[$ksse] = $this->collapseSelectors($sse); + } + + $subSelectorsExtended = implode(', ', $subSelectorsExtended); + $singleExtended = $single; + $singleExtended[$k] = str_replace('(' . $buffer . ')', "($subSelectorsExtended)", $part); + $outOrigin[] = [ $singleExtended ]; + $found = true; + } + } + } + } + } + + foreach ($counts as $idx => $count) { + list($target, $origin, /* $block */) = $this->extends[$idx]; + + $origin = $this->glueFunctionSelectors($origin); + + // check count + if ($count !== \count($target)) { + continue; + } + + $this->extends[$idx][3] = true; + + $rem = array_diff($single, $target); + + foreach ($origin as $j => $new) { + // prevent infinite loop when target extends itself + if ($this->isSelfExtend($single, $origin) && ! $initial) { + return false; + } + + $replacement = end($new); + + // Extending a decorated tag with another tag is not possible. + if ( + $extendingDecoratedTag && $replacement[0] != $extendingDecoratedTag && + preg_match('/^[a-z0-9]+$/i', $replacement[0]) + ) { + unset($origin[$j]); + continue; + } + + $combined = $this->combineSelectorSingle($replacement, $rem); + + if (\count(array_diff($combined, $origin[$j][\count($origin[$j]) - 1]))) { + $origin[$j][\count($origin[$j]) - 1] = $combined; + } + } + + $outOrigin = array_merge($outOrigin, $origin); + + $found = true; + } + + return $found; + } + + /** + * Extract a relationship from the fragment. + * + * When extracting the last portion of a selector we will be left with a + * fragment which may end with a direction relationship combinator. This + * method will extract the relationship fragment and return it along side + * the rest. + * + * @param array $fragment The selector fragment maybe ending with a direction relationship combinator. + * + * @return array The selector without the relationship fragment if any, the relationship fragment. + */ + protected function extractRelationshipFromFragment(array $fragment) + { + $parents = []; + $children = []; + + $j = $i = \count($fragment); + + for (;;) { + $children = $j != $i ? \array_slice($fragment, $j, $i - $j) : []; + $parents = \array_slice($fragment, 0, $j); + $slice = end($parents); + + if (empty($slice) || ! $this->isImmediateRelationshipCombinator($slice[0])) { + break; + } + + $j -= 2; + } + + return [$parents, $children]; + } + + /** + * Combine selector single + * + * @param array $base + * @param array $other + * + * @return array + */ + protected function combineSelectorSingle($base, $other) + { + $tag = []; + $out = []; + $wasTag = false; + $pseudo = []; + + while (\count($other) && strpos(end($other), ':') === 0) { + array_unshift($pseudo, array_pop($other)); + } + + foreach ([array_reverse($base), array_reverse($other)] as $single) { + $rang = count($single); + + foreach ($single as $part) { + if (preg_match('/^[\[:]/', $part)) { + $out[] = $part; + $wasTag = false; + } elseif (preg_match('/^[\.#]/', $part)) { + array_unshift($out, $part); + $wasTag = false; + } elseif (preg_match('/^[^_-]/', $part) && $rang === 1) { + $tag[] = $part; + $wasTag = true; + } elseif ($wasTag) { + $tag[\count($tag) - 1] .= $part; + } else { + array_unshift($out, $part); + } + $rang--; + } + } + + if (\count($tag)) { + array_unshift($out, $tag[0]); + } + + while (\count($pseudo)) { + $out[] = array_shift($pseudo); + } + + return $out; + } + + /** + * Compile media + * + * @param \ScssPhp\ScssPhp\Block $media + * + * @return void + */ + protected function compileMedia(Block $media) + { + assert($media instanceof MediaBlock); + $this->pushEnv($media); + + $mediaQueries = $this->compileMediaQuery($this->multiplyMedia($this->env)); + + if (! empty($mediaQueries)) { + assert($this->scope !== null); + $previousScope = $this->scope; + $parentScope = $this->mediaParent($this->scope); + + foreach ($mediaQueries as $mediaQuery) { + $this->scope = $this->makeOutputBlock(Type::T_MEDIA, [$mediaQuery]); + + $parentScope->children[] = $this->scope; + $parentScope = $this->scope; + } + + // top level properties in a media cause it to be wrapped + $needsWrap = false; + + foreach ($media->children as $child) { + $type = $child[0]; + + if ( + $type !== Type::T_BLOCK && + $type !== Type::T_MEDIA && + $type !== Type::T_DIRECTIVE && + $type !== Type::T_IMPORT + ) { + $needsWrap = true; + break; + } + } + + if ($needsWrap) { + $wrapped = new Block(); + $wrapped->sourceName = $media->sourceName; + $wrapped->sourceIndex = $media->sourceIndex; + $wrapped->sourceLine = $media->sourceLine; + $wrapped->sourceColumn = $media->sourceColumn; + $wrapped->selectors = []; + $wrapped->comments = []; + $wrapped->parent = $media; + $wrapped->children = $media->children; + + $media->children = [[Type::T_BLOCK, $wrapped]]; + } + + $this->compileChildrenNoReturn($media->children, $this->scope); + + $this->scope = $previousScope; + } + + $this->popEnv(); + } + + /** + * Media parent + * + * @param \ScssPhp\ScssPhp\Formatter\OutputBlock $scope + * + * @return \ScssPhp\ScssPhp\Formatter\OutputBlock + */ + protected function mediaParent(OutputBlock $scope) + { + while (! empty($scope->parent)) { + if (! empty($scope->type) && $scope->type !== Type::T_MEDIA) { + break; + } + + $scope = $scope->parent; + } + + return $scope; + } + + /** + * Compile directive + * + * @param DirectiveBlock|array $directive + * @param \ScssPhp\ScssPhp\Formatter\OutputBlock $out + * + * @return void + */ + protected function compileDirective($directive, OutputBlock $out) + { + if (\is_array($directive)) { + $directiveName = $this->compileDirectiveName($directive[0]); + $s = '@' . $directiveName; + + if (! empty($directive[1])) { + $s .= ' ' . $this->compileValue($directive[1]); + } + // sass-spec compliance on newline after directives, a bit tricky :/ + $appendNewLine = (! empty($directive[2]) || strpos($s, "\n")) ? "\n" : ""; + if (\is_array($directive[0]) && empty($directive[1])) { + $appendNewLine = "\n"; + } + + if (empty($directive[3])) { + $this->appendRootDirective($s . ';' . $appendNewLine, $out, [Type::T_COMMENT, Type::T_DIRECTIVE]); + } else { + $this->appendOutputLine($out, Type::T_DIRECTIVE, $s . ';'); + } + } else { + $directive->name = $this->compileDirectiveName($directive->name); + $s = '@' . $directive->name; + + if (! empty($directive->value)) { + $s .= ' ' . $this->compileValue($directive->value); + } + + if ($directive->name === 'keyframes' || substr($directive->name, -10) === '-keyframes') { + $this->compileKeyframeBlock($directive, [$s]); + } else { + $this->compileNestedBlock($directive, [$s]); + } + } + } + + /** + * directive names can include some interpolation + * + * @param string|array $directiveName + * @return string + * @throws CompilerException + */ + protected function compileDirectiveName($directiveName) + { + if (is_string($directiveName)) { + return $directiveName; + } + + return $this->compileValue($directiveName); + } + + /** + * Compile at-root + * + * @param \ScssPhp\ScssPhp\Block $block + * + * @return void + */ + protected function compileAtRoot(Block $block) + { + assert($block instanceof AtRootBlock); + $env = $this->pushEnv($block); + $envs = $this->compactEnv($env); + list($with, $without) = $this->compileWith(isset($block->with) ? $block->with : null); + + // wrap inline selector + if ($block->selector) { + $wrapped = new Block(); + $wrapped->sourceName = $block->sourceName; + $wrapped->sourceIndex = $block->sourceIndex; + $wrapped->sourceLine = $block->sourceLine; + $wrapped->sourceColumn = $block->sourceColumn; + $wrapped->selectors = $block->selector; + $wrapped->comments = []; + $wrapped->parent = $block; + $wrapped->children = $block->children; + $wrapped->selfParent = $block->selfParent; + + $block->children = [[Type::T_BLOCK, $wrapped]]; + $block->selector = null; + } + + $selfParent = $block->selfParent; + assert($selfParent !== null, 'at-root blocks must have a selfParent set.'); + + if ( + ! $selfParent->selectors && + isset($block->parent) && + isset($block->parent->selectors) && $block->parent->selectors + ) { + $selfParent = $block->parent; + } + + $this->env = $this->filterWithWithout($envs, $with, $without); + + assert($this->scope !== null); + $saveScope = $this->scope; + $this->scope = $this->filterScopeWithWithout($saveScope, $with, $without); + + // propagate selfParent to the children where they still can be useful + $this->compileChildrenNoReturn($block->children, $this->scope, $selfParent); + + assert($this->scope !== null); + $this->completeScope($this->scope, $saveScope); + $this->scope = $saveScope; + $this->env = $this->extractEnv($envs); + + $this->popEnv(); + } + + /** + * Filter at-root scope depending on with/without option + * + * @param \ScssPhp\ScssPhp\Formatter\OutputBlock $scope + * @param array $with + * @param array $without + * + * @return OutputBlock + */ + protected function filterScopeWithWithout($scope, $with, $without) + { + $filteredScopes = []; + $childStash = []; + + if ($scope->type === Type::T_ROOT) { + return $scope; + } + assert($this->rootBlock !== null); + + // start from the root + while ($scope->parent && $scope->parent->type !== Type::T_ROOT) { + array_unshift($childStash, $scope); + $scope = $scope->parent; + } + + for (;;) { + if (! $scope) { + break; + } + + if ($this->isWith($scope, $with, $without)) { + $s = clone $scope; + $s->children = []; + $s->lines = []; + $s->parent = null; + + if ($s->type !== Type::T_MEDIA && $s->type !== Type::T_DIRECTIVE) { + $s->selectors = []; + } + + $filteredScopes[] = $s; + } + + if (\count($childStash)) { + $scope = array_shift($childStash); + } elseif ($scope->children) { + $scope = end($scope->children); + } else { + $scope = null; + } + } + + if (! \count($filteredScopes)) { + return $this->rootBlock; + } + + $newScope = array_shift($filteredScopes); + $newScope->parent = $this->rootBlock; + + $this->rootBlock->children[] = $newScope; + + $p = &$newScope; + + while (\count($filteredScopes)) { + $s = array_shift($filteredScopes); + $s->parent = $p; + $p->children[] = $s; + $newScope = &$p->children[0]; + $p = &$p->children[0]; + } + + return $newScope; + } + + /** + * found missing selector from a at-root compilation in the previous scope + * (if at-root is just enclosing a property, the selector is in the parent tree) + * + * @param \ScssPhp\ScssPhp\Formatter\OutputBlock $scope + * @param \ScssPhp\ScssPhp\Formatter\OutputBlock $previousScope + * + * @return OutputBlock + */ + protected function completeScope($scope, $previousScope) + { + if (! $scope->type && ! $scope->selectors && \count($scope->lines)) { + $scope->selectors = $this->findScopeSelectors($previousScope, $scope->depth); + } + + if ($scope->children) { + foreach ($scope->children as $k => $c) { + $scope->children[$k] = $this->completeScope($c, $previousScope); + } + } + + return $scope; + } + + /** + * Find a selector by the depth node in the scope + * + * @param \ScssPhp\ScssPhp\Formatter\OutputBlock $scope + * @param int $depth + * + * @return array + */ + protected function findScopeSelectors($scope, $depth) + { + if ($scope->depth === $depth && $scope->selectors) { + return $scope->selectors; + } + + if ($scope->children) { + foreach (array_reverse($scope->children) as $c) { + if ($s = $this->findScopeSelectors($c, $depth)) { + return $s; + } + } + } + + return []; + } + + /** + * Compile @at-root's with: inclusion / without: exclusion into 2 lists uses to filter scope/env later + * + * @param array|null $withCondition + * + * @return array + * + * @phpstan-return array{array, array} + */ + protected function compileWith($withCondition) + { + // just compile what we have in 2 lists + $with = []; + $without = ['rule' => true]; + + if ($withCondition) { + if ($withCondition[0] === Type::T_INTERPOLATE) { + $w = $this->compileValue($withCondition); + + $buffer = "($w)"; + $parser = $this->parserFactory(__METHOD__); + + if ($parser->parseValue($buffer, $reParsedWith)) { + $withCondition = $reParsedWith; + } + } + + $withConfig = $this->mapGet($withCondition, static::$with); + if ($withConfig !== null) { + $without = []; // cancel the default + $list = $this->coerceList($withConfig); + + foreach ($list[2] as $item) { + $keyword = $this->compileStringContent($this->coerceString($item)); + + $with[$keyword] = true; + } + } + + $withoutConfig = $this->mapGet($withCondition, static::$without); + if ($withoutConfig !== null) { + $without = []; // cancel the default + $list = $this->coerceList($withoutConfig); + + foreach ($list[2] as $item) { + $keyword = $this->compileStringContent($this->coerceString($item)); + + $without[$keyword] = true; + } + } + } + + return [$with, $without]; + } + + /** + * Filter env stack + * + * @param Environment[] $envs + * @param array $with + * @param array $without + * + * @return Environment + * + * @phpstan-param non-empty-array $envs + */ + protected function filterWithWithout($envs, $with, $without) + { + $filtered = []; + + foreach ($envs as $e) { + if ($e->block && ! $this->isWith($e->block, $with, $without)) { + $ec = clone $e; + $ec->block = null; + $ec->selectors = []; + + $filtered[] = $ec; + } else { + $filtered[] = $e; + } + } + + return $this->extractEnv($filtered); + } + + /** + * Filter WITH rules + * + * @param \ScssPhp\ScssPhp\Block|\ScssPhp\ScssPhp\Formatter\OutputBlock $block + * @param array $with + * @param array $without + * + * @return bool + */ + protected function isWith($block, $with, $without) + { + if (isset($block->type)) { + if ($block->type === Type::T_MEDIA) { + return $this->testWithWithout('media', $with, $without); + } + + if ($block->type === Type::T_DIRECTIVE) { + assert($block instanceof DirectiveBlock || $block instanceof OutputBlock); + if (isset($block->name)) { + return $this->testWithWithout($this->compileDirectiveName($block->name), $with, $without); + } elseif (isset($block->selectors) && preg_match(',@(\w+),ims', json_encode($block->selectors), $m)) { + return $this->testWithWithout($m[1], $with, $without); + } else { + return $this->testWithWithout('???', $with, $without); + } + } + } elseif (isset($block->selectors)) { + // a selector starting with number is a keyframe rule + if (\count($block->selectors)) { + $s = reset($block->selectors); + + while (\is_array($s)) { + $s = reset($s); + } + + if (\is_object($s) && $s instanceof Number) { + return $this->testWithWithout('keyframes', $with, $without); + } + } + + return $this->testWithWithout('rule', $with, $without); + } + + return true; + } + + /** + * Test a single type of block against with/without lists + * + * @param string $what + * @param array $with + * @param array $without + * + * @return bool + * true if the block should be kept, false to reject + */ + protected function testWithWithout($what, $with, $without) + { + // if without, reject only if in the list (or 'all' is in the list) + if (\count($without)) { + return (isset($without[$what]) || isset($without['all'])) ? false : true; + } + + // otherwise reject all what is not in the with list + return (isset($with[$what]) || isset($with['all'])) ? true : false; + } + + + /** + * Compile keyframe block + * + * @param \ScssPhp\ScssPhp\Block $block + * @param string[] $selectors + * + * @return void + */ + protected function compileKeyframeBlock(Block $block, $selectors) + { + $env = $this->pushEnv($block); + + $envs = $this->compactEnv($env); + + $this->env = $this->extractEnv(array_filter($envs, function (Environment $e) { + return ! isset($e->block->selectors); + })); + + $this->scope = $this->makeOutputBlock($block->type, $selectors); + $this->scope->depth = 1; + assert($this->scope->parent !== null); + $this->scope->parent->children[] = $this->scope; + + $this->compileChildrenNoReturn($block->children, $this->scope); + + assert($this->scope !== null); + $this->scope = $this->scope->parent; + $this->env = $this->extractEnv($envs); + + $this->popEnv(); + } + + /** + * Compile nested properties lines + * + * @param \ScssPhp\ScssPhp\Block $block + * @param \ScssPhp\ScssPhp\Formatter\OutputBlock $out + * + * @return void + */ + protected function compileNestedPropertiesBlock(Block $block, OutputBlock $out) + { + assert($block instanceof NestedPropertyBlock); + $prefix = $this->compileValue($block->prefix) . '-'; + + $nested = $this->makeOutputBlock($block->type); + $nested->parent = $out; + + if ($block->hasValue) { + $nested->depth = $out->depth + 1; + } + + $out->children[] = $nested; + + foreach ($block->children as $child) { + switch ($child[0]) { + case Type::T_ASSIGN: + array_unshift($child[1][2], $prefix); + break; + + case Type::T_NESTED_PROPERTY: + assert($child[1] instanceof NestedPropertyBlock); + array_unshift($child[1]->prefix[2], $prefix); + break; + } + + $this->compileChild($child, $nested); + } + } + + /** + * Compile nested block + * + * @param \ScssPhp\ScssPhp\Block $block + * @param string[] $selectors + * + * @return void + */ + protected function compileNestedBlock(Block $block, $selectors) + { + $this->pushEnv($block); + + $this->scope = $this->makeOutputBlock($block->type, $selectors); + assert($this->scope->parent !== null); + $this->scope->parent->children[] = $this->scope; + + // wrap assign children in a block + // except for @font-face + if (!$block instanceof DirectiveBlock || $this->compileDirectiveName($block->name) !== 'font-face') { + // need wrapping? + $needWrapping = false; + + foreach ($block->children as $child) { + if ($child[0] === Type::T_ASSIGN) { + $needWrapping = true; + break; + } + } + + if ($needWrapping) { + $wrapped = new Block(); + $wrapped->sourceName = $block->sourceName; + $wrapped->sourceIndex = $block->sourceIndex; + $wrapped->sourceLine = $block->sourceLine; + $wrapped->sourceColumn = $block->sourceColumn; + $wrapped->selectors = []; + $wrapped->comments = []; + $wrapped->parent = $block; + $wrapped->children = $block->children; + $wrapped->selfParent = $block->selfParent; + + $block->children = [[Type::T_BLOCK, $wrapped]]; + } + } + + $this->compileChildrenNoReturn($block->children, $this->scope); + + assert($this->scope !== null); + $this->scope = $this->scope->parent; + + $this->popEnv(); + } + + /** + * Recursively compiles a block. + * + * A block is analogous to a CSS block in most cases. A single SCSS document + * is encapsulated in a block when parsed, but it does not have parent tags + * so all of its children appear on the root level when compiled. + * + * Blocks are made up of selectors and children. + * + * The children of a block are just all the blocks that are defined within. + * + * Compiling the block involves pushing a fresh environment on the stack, + * and iterating through the props, compiling each one. + * + * @see Compiler::compileChild() + * + * @param \ScssPhp\ScssPhp\Block $block + * + * @return void + */ + protected function compileBlock(Block $block) + { + $env = $this->pushEnv($block); + assert($block->selectors !== null); + $env->selectors = $this->evalSelectors($block->selectors); + + $out = $this->makeOutputBlock(null); + + assert($this->scope !== null); + $this->scope->children[] = $out; + + if (\count($block->children)) { + $out->selectors = $this->multiplySelectors($env, $block->selfParent); + + // propagate selfParent to the children where they still can be useful + $selfParentSelectors = null; + + if (isset($block->selfParent->selectors)) { + $selfParentSelectors = $block->selfParent->selectors; + $block->selfParent->selectors = $out->selectors; + } + + $this->compileChildrenNoReturn($block->children, $out, $block->selfParent); + + // and revert for the following children of the same block + if ($selfParentSelectors) { + assert($block->selfParent !== null); + $block->selfParent->selectors = $selfParentSelectors; + } + } + + $this->popEnv(); + } + + + /** + * Compile the value of a comment that can have interpolation + * + * @param array $value + * @param bool $pushEnv + * + * @return string + */ + protected function compileCommentValue($value, $pushEnv = false) + { + $c = $value[1]; + + if (isset($value[2])) { + if ($pushEnv) { + $this->pushEnv(); + } + + try { + $c = $this->compileValue($value[2]); + } catch (SassScriptException $e) { + $this->logger->warn('Ignoring interpolation errors in multiline comments is deprecated and will be removed in ScssPhp 2.0. ' . $this->addLocationToMessage($e->getMessage()), true); + // ignore error in comment compilation which are only interpolation + } catch (SassException $e) { + $this->logger->warn('Ignoring interpolation errors in multiline comments is deprecated and will be removed in ScssPhp 2.0. ' . $e->getMessage(), true); + // ignore error in comment compilation which are only interpolation + } + + if ($pushEnv) { + $this->popEnv(); + } + } + + return $c; + } + + /** + * Compile root level comment + * + * @param array $block + * + * @return void + */ + protected function compileComment($block) + { + $out = $this->makeOutputBlock(Type::T_COMMENT); + $out->lines[] = $this->compileCommentValue($block, true); + + assert($this->scope !== null); + $this->scope->children[] = $out; + } + + /** + * Evaluate selectors + * + * @param array $selectors + * + * @return array + */ + protected function evalSelectors($selectors) + { + $this->shouldEvaluate = false; + + $evaluatedSelectors = []; + foreach ($selectors as $selector) { + $evaluatedSelectors[] = $this->evalSelector($selector); + } + $selectors = $evaluatedSelectors; + + // after evaluating interpolates, we might need a second pass + if ($this->shouldEvaluate) { + $selectors = $this->replaceSelfSelector($selectors, '&'); + $buffer = $this->collapseSelectors($selectors); + $parser = $this->parserFactory(__METHOD__); + + try { + $isValid = $parser->parseSelector($buffer, $newSelectors, true); + } catch (ParserException $e) { + throw $this->error($e->getMessage()); + } + + if ($isValid) { + $selectors = array_map([$this, 'evalSelector'], $newSelectors); + } + } + + return $selectors; + } + + /** + * Evaluate selector + * + * @param array $selector + * + * @return array + * + * @phpstan-impure + */ + protected function evalSelector($selector) + { + return array_map([$this, 'evalSelectorPart'], $selector); + } + + /** + * Evaluate selector part; replaces all the interpolates, stripping quotes + * + * @param array $part + * + * @return array + * + * @phpstan-impure + */ + protected function evalSelectorPart($part) + { + foreach ($part as &$p) { + if (\is_array($p) && ($p[0] === Type::T_INTERPOLATE || $p[0] === Type::T_STRING)) { + $p = $this->compileValue($p); + + // force re-evaluation if self char or non standard char + if (preg_match(',[^\w-],', $p)) { + $this->shouldEvaluate = true; + } + } elseif ( + \is_string($p) && \strlen($p) >= 2 && + ($p[0] === '"' || $p[0] === "'") && + substr($p, -1) === $p[0] + ) { + $p = substr($p, 1, -1); + } + } + + return $this->flattenSelectorSingle($part); + } + + /** + * Collapse selectors + * + * @param array $selectors + * + * @return string + */ + protected function collapseSelectors($selectors) + { + $parts = []; + + foreach ($selectors as $selector) { + $output = []; + + foreach ($selector as $node) { + $compound = ''; + + array_walk_recursive( + $node, + function ($value, $key) use (&$compound) { + $compound .= $value; + } + ); + + $output[] = $compound; + } + + $parts[] = implode(' ', $output); + } + + return implode(', ', $parts); + } + + /** + * Collapse selectors + * + * @param array $selectors + * + * @return array + */ + private function collapseSelectorsAsList($selectors) + { + $parts = []; + + foreach ($selectors as $selector) { + $output = []; + $glueNext = false; + + foreach ($selector as $node) { + $compound = ''; + + array_walk_recursive( + $node, + function ($value, $key) use (&$compound) { + $compound .= $value; + } + ); + + if ($this->isImmediateRelationshipCombinator($compound)) { + if (\count($output)) { + $output[\count($output) - 1] .= ' ' . $compound; + } else { + $output[] = $compound; + } + + $glueNext = true; + } elseif ($glueNext) { + $output[\count($output) - 1] .= ' ' . $compound; + $glueNext = false; + } else { + $output[] = $compound; + } + } + + foreach ($output as &$o) { + $o = [Type::T_STRING, '', [$o]]; + } + + $parts[] = [Type::T_LIST, ' ', $output]; + } + + return [Type::T_LIST, ',', $parts]; + } + + /** + * Parse down the selector and revert [self] to "&" before a reparsing + * + * @param array $selectors + * @param string|null $replace + * + * @return array + */ + protected function replaceSelfSelector($selectors, $replace = null) + { + foreach ($selectors as &$part) { + if (\is_array($part)) { + if ($part === [Type::T_SELF]) { + if (\is_null($replace)) { + $replace = $this->reduce([Type::T_SELF]); + $replace = $this->compileValue($replace); + } + $part = $replace; + } else { + $part = $this->replaceSelfSelector($part, $replace); + } + } + } + + return $selectors; + } + + /** + * Flatten selector single; joins together .classes and #ids + * + * @param array $single + * + * @return array + */ + protected function flattenSelectorSingle($single) + { + $joined = []; + + foreach ($single as $part) { + if ( + empty($joined) || + ! \is_string($part) || + preg_match('/[\[.:#%]/', $part) + ) { + $joined[] = $part; + continue; + } + + if (\is_array(end($joined))) { + $joined[] = $part; + } else { + $joined[\count($joined) - 1] .= $part; + } + } + + return $joined; + } + + /** + * Compile selector to string; self(&) should have been replaced by now + * + * @param string|array $selector + * + * @return string + */ + protected function compileSelector($selector) + { + if (! \is_array($selector)) { + return $selector; // media and the like + } + + return implode( + ' ', + array_map( + [$this, 'compileSelectorPart'], + $selector + ) + ); + } + + /** + * Compile selector part + * + * @param array $piece + * + * @return string + */ + protected function compileSelectorPart($piece) + { + foreach ($piece as &$p) { + if (! \is_array($p)) { + continue; + } + + switch ($p[0]) { + case Type::T_SELF: + $p = '&'; + break; + + default: + $p = $this->compileValue($p); + break; + } + } + + return implode($piece); + } + + /** + * Has selector placeholder? + * + * @param array $selector + * + * @return bool + */ + protected function hasSelectorPlaceholder($selector) + { + if (! \is_array($selector)) { + return false; + } + + foreach ($selector as $parts) { + foreach ($parts as $part) { + if (\strlen($part) && '%' === $part[0]) { + return true; + } + } + } + + return false; + } + + /** + * @param string $name + * + * @return void + */ + protected function pushCallStack($name = '') + { + $this->callStack[] = [ + 'n' => $name, + Parser::SOURCE_INDEX => $this->sourceIndex, + Parser::SOURCE_LINE => $this->sourceLine, + Parser::SOURCE_COLUMN => $this->sourceColumn + ]; + + // infinite calling loop + if (\count($this->callStack) > 25000) { + // not displayed but you can var_dump it to deep debug + $msg = $this->callStackMessage(true, 100); + $msg = 'Infinite calling loop'; + + throw $this->error($msg); + } + } + + /** + * @return void + */ + protected function popCallStack() + { + array_pop($this->callStack); + } + + /** + * Compile children and return result + * + * @param array $stms + * @param \ScssPhp\ScssPhp\Formatter\OutputBlock $out + * @param string $traceName + * + * @return array|Number|null + */ + protected function compileChildren($stms, OutputBlock $out, $traceName = '') + { + $this->pushCallStack($traceName); + + foreach ($stms as $stm) { + $ret = $this->compileChild($stm, $out); + + if (isset($ret)) { + $this->popCallStack(); + + return $ret; + } + } + + $this->popCallStack(); + + return null; + } + + /** + * Compile children and throw exception if unexpected at-return + * + * @param array[] $stms + * @param \ScssPhp\ScssPhp\Formatter\OutputBlock $out + * @param \ScssPhp\ScssPhp\Block $selfParent + * @param string $traceName + * + * @return void + * + * @throws \Exception + */ + protected function compileChildrenNoReturn($stms, OutputBlock $out, $selfParent = null, $traceName = '') + { + $this->pushCallStack($traceName); + + foreach ($stms as $stm) { + if ($selfParent && isset($stm[1]) && \is_object($stm[1]) && $stm[1] instanceof Block) { + $oldSelfParent = $stm[1]->selfParent; + $stm[1]->selfParent = $selfParent; + $ret = $this->compileChild($stm, $out); + $stm[1]->selfParent = $oldSelfParent; + } elseif ($selfParent && \in_array($stm[0], [Type::T_INCLUDE, Type::T_EXTEND])) { + $stm['selfParent'] = $selfParent; + $ret = $this->compileChild($stm, $out); + } else { + $ret = $this->compileChild($stm, $out); + } + + if (isset($ret)) { + throw $this->error('@return may only be used within a function'); + } + } + + $this->popCallStack(); + } + + + /** + * evaluate media query : compile internal value keeping the structure unchanged + * + * @param array $queryList + * + * @return array + */ + protected function evaluateMediaQuery($queryList) + { + static $parser = null; + + $outQueryList = []; + + foreach ($queryList as $kql => $query) { + $shouldReparse = false; + + foreach ($query as $kq => $q) { + for ($i = 1; $i < \count($q); $i++) { + $value = $this->compileValue($q[$i]); + + // the parser had no mean to know if media type or expression if it was an interpolation + // so you need to reparse if the T_MEDIA_TYPE looks like anything else a media type + if ( + $q[0] == Type::T_MEDIA_TYPE && + (strpos($value, '(') !== false || + strpos($value, ')') !== false || + strpos($value, ':') !== false || + strpos($value, ',') !== false) + ) { + $shouldReparse = true; + } + + $queryList[$kql][$kq][$i] = [Type::T_KEYWORD, $value]; + } + } + + if ($shouldReparse) { + if (\is_null($parser)) { + $parser = $this->parserFactory(__METHOD__); + } + + $queryString = $this->compileMediaQuery([$queryList[$kql]]); + $queryString = reset($queryString); + + if ($queryString !== false && strpos($queryString, '@media ') === 0) { + $queryString = substr($queryString, 7); + $queries = []; + + if ($parser->parseMediaQueryList($queryString, $queries)) { + $queries = $this->evaluateMediaQuery($queries[2]); + + while (\count($queries)) { + $outQueryList[] = array_shift($queries); + } + + continue; + } + } + } + + $outQueryList[] = $queryList[$kql]; + } + + return $outQueryList; + } + + /** + * Compile media query + * + * @param array $queryList + * + * @return string[] + */ + protected function compileMediaQuery($queryList) + { + $start = '@media '; + $default = trim($start); + $out = []; + $current = ''; + + foreach ($queryList as $query) { + $type = null; + $parts = []; + + $mediaTypeOnly = true; + + foreach ($query as $q) { + if ($q[0] !== Type::T_MEDIA_TYPE) { + $mediaTypeOnly = false; + break; + } + } + + foreach ($query as $q) { + switch ($q[0]) { + case Type::T_MEDIA_TYPE: + $newType = array_map([$this, 'compileValue'], \array_slice($q, 1)); + + // combining not and anything else than media type is too risky and should be avoided + if (! $mediaTypeOnly) { + if (\in_array(Type::T_NOT, $newType) || ($type && \in_array(Type::T_NOT, $type) )) { + if ($type) { + array_unshift($parts, implode(' ', array_filter($type))); + } + + if (! empty($parts)) { + if (\strlen($current)) { + $current .= $this->formatter->tagSeparator; + } + + $current .= implode(' and ', $parts); + } + + if ($current) { + $out[] = $start . $current; + } + + $current = ''; + $type = null; + $parts = []; + } + } + + if ($newType === ['all'] && $default) { + $default = $start . 'all'; + } + + // all can be safely ignored and mixed with whatever else + if ($newType !== ['all']) { + if ($type) { + $type = $this->mergeMediaTypes($type, $newType); + + if (empty($type)) { + // merge failed : ignore this query that is not valid, skip to the next one + $parts = []; + $default = ''; // if everything fail, no @media at all + continue 3; + } + } else { + $type = $newType; + } + } + break; + + case Type::T_MEDIA_EXPRESSION: + if (isset($q[2])) { + $parts[] = '(' + . $this->compileValue($q[1]) + . $this->formatter->assignSeparator + . $this->compileValue($q[2]) + . ')'; + } else { + $parts[] = '(' + . $this->compileValue($q[1]) + . ')'; + } + break; + + case Type::T_MEDIA_VALUE: + $parts[] = $this->compileValue($q[1]); + break; + } + } + + if ($type) { + array_unshift($parts, implode(' ', array_filter($type))); + } + + if (! empty($parts)) { + if (\strlen($current)) { + $current .= $this->formatter->tagSeparator; + } + + $current .= implode(' and ', $parts); + } + } + + if ($current) { + $out[] = $start . $current; + } + + // no @media type except all, and no conflict? + if (! $out && $default) { + $out[] = $default; + } + + return $out; + } + + /** + * Merge direct relationships between selectors + * + * @param array $selectors1 + * @param array $selectors2 + * + * @return array + */ + protected function mergeDirectRelationships($selectors1, $selectors2) + { + if (empty($selectors1) || empty($selectors2)) { + return array_merge($selectors1, $selectors2); + } + + $part1 = end($selectors1); + $part2 = end($selectors2); + + if (! $this->isImmediateRelationshipCombinator($part1[0]) && $part1 !== $part2) { + return array_merge($selectors1, $selectors2); + } + + $merged = []; + + do { + $part1 = array_pop($selectors1); + $part2 = array_pop($selectors2); + + if (! $this->isImmediateRelationshipCombinator($part1[0]) && $part1 !== $part2) { + if ($this->isImmediateRelationshipCombinator(reset($merged)[0])) { + array_unshift($merged, [$part1[0] . $part2[0]]); + $merged = array_merge($selectors1, $selectors2, $merged); + } else { + $merged = array_merge($selectors1, [$part1], $selectors2, [$part2], $merged); + } + + break; + } + + array_unshift($merged, $part1); + } while (! empty($selectors1) && ! empty($selectors2)); + + return $merged; + } + + /** + * Merge media types + * + * @param array $type1 + * @param array $type2 + * + * @return array|null + */ + protected function mergeMediaTypes($type1, $type2) + { + if (empty($type1)) { + return $type2; + } + + if (empty($type2)) { + return $type1; + } + + if (\count($type1) > 1) { + $m1 = strtolower($type1[0]); + $t1 = strtolower($type1[1]); + } else { + $m1 = ''; + $t1 = strtolower($type1[0]); + } + + if (\count($type2) > 1) { + $m2 = strtolower($type2[0]); + $t2 = strtolower($type2[1]); + } else { + $m2 = ''; + $t2 = strtolower($type2[0]); + } + + if (($m1 === Type::T_NOT) ^ ($m2 === Type::T_NOT)) { + if ($t1 === $t2) { + return null; + } + + return [ + $m1 === Type::T_NOT ? $m2 : $m1, + $m1 === Type::T_NOT ? $t2 : $t1, + ]; + } + + if ($m1 === Type::T_NOT && $m2 === Type::T_NOT) { + // CSS has no way of representing "neither screen nor print" + if ($t1 !== $t2) { + return null; + } + + return [Type::T_NOT, $t1]; + } + + if ($t1 !== $t2) { + return null; + } + + // t1 == t2, neither m1 nor m2 are "not" + return [empty($m1) ? $m2 : $m1, $t1]; + } + + /** + * Compile import; returns true if the value was something that could be imported + * + * @param array $rawPath + * @param \ScssPhp\ScssPhp\Formatter\OutputBlock $out + * @param bool $once + * + * @return bool + */ + protected function compileImport($rawPath, OutputBlock $out, $once = false) + { + if ($rawPath[0] === Type::T_STRING) { + $path = $this->compileStringContent($rawPath); + + if (strpos($path, 'url(') !== 0 && $filePath = $this->findImport($path, $this->currentDirectory)) { + $this->registerImport($this->currentDirectory, $path, $filePath); + + if (! $once || ! \in_array($filePath, $this->importedFiles)) { + $this->importFile($filePath, $out); + $this->importedFiles[] = $filePath; + } + + return true; + } + + $this->appendRootDirective('@import ' . $this->compileImportPath($rawPath) . ';', $out); + + return false; + } + + if ($rawPath[0] === Type::T_LIST) { + // handle a list of strings + if (\count($rawPath[2]) === 0) { + return false; + } + + foreach ($rawPath[2] as $path) { + if ($path[0] !== Type::T_STRING) { + $this->appendRootDirective('@import ' . $this->compileImportPath($rawPath) . ';', $out); + + return false; + } + } + + foreach ($rawPath[2] as $path) { + $this->compileImport($path, $out, $once); + } + + return true; + } + + $this->appendRootDirective('@import ' . $this->compileImportPath($rawPath) . ';', $out); + + return false; + } + + /** + * @param array $rawPath + * @return string + * @throws CompilerException + */ + protected function compileImportPath($rawPath) + { + $path = $this->compileValue($rawPath); + + // case url() without quotes : suppress \r \n remaining in the path + // if this is a real string there can not be CR or LF char + if (strpos($path, 'url(') === 0) { + $path = str_replace(array("\r", "\n"), array('', ' '), $path); + } else { + // if this is a file name in a string, spaces should be escaped + $path = $this->reduce($rawPath); + $path = $this->escapeImportPathString($path); + $path = $this->compileValue($path); + } + + return $path; + } + + /** + * @param array $path + * @return array + * @throws CompilerException + */ + protected function escapeImportPathString($path) + { + switch ($path[0]) { + case Type::T_LIST: + foreach ($path[2] as $k => $v) { + $path[2][$k] = $this->escapeImportPathString($v); + } + break; + case Type::T_STRING: + if ($path[1]) { + $path = $this->compileValue($path); + $path = str_replace(' ', '\\ ', $path); + $path = [Type::T_KEYWORD, $path]; + } + break; + } + + return $path; + } + + /** + * Append a root directive like @import or @charset as near as the possible from the source code + * (keeping before comments, @import and @charset coming before in the source code) + * + * @param string $line + * @param \ScssPhp\ScssPhp\Formatter\OutputBlock $out + * @param array $allowed + * + * @return void + */ + protected function appendRootDirective($line, $out, $allowed = [Type::T_COMMENT]) + { + $root = $out; + + while ($root->parent) { + $root = $root->parent; + } + + $i = 0; + + while ($i < \count($root->children)) { + if (! isset($root->children[$i]->type) || ! \in_array($root->children[$i]->type, $allowed)) { + break; + } + + $i++; + } + + // remove incompatible children from the bottom of the list + $saveChildren = []; + + while ($i < \count($root->children)) { + $saveChildren[] = array_pop($root->children); + } + + // insert the directive as a comment + $child = $this->makeOutputBlock(Type::T_COMMENT); + $child->lines[] = $line; + $child->sourceName = $this->sourceNames[$this->sourceIndex] ?: '(stdin)'; + $child->sourceLine = $this->sourceLine; + $child->sourceColumn = $this->sourceColumn; + + $root->children[] = $child; + + // repush children + while (\count($saveChildren)) { + $root->children[] = array_pop($saveChildren); + } + } + + /** + * Append lines to the current output block: + * directly to the block or through a child if necessary + * + * @param \ScssPhp\ScssPhp\Formatter\OutputBlock $out + * @param string $type + * @param string $line + * + * @return void + */ + protected function appendOutputLine(OutputBlock $out, $type, $line) + { + $outWrite = &$out; + + // check if it's a flat output or not + if (\count($out->children)) { + $lastChild = &$out->children[\count($out->children) - 1]; + + if ( + $lastChild->depth === $out->depth && + \is_null($lastChild->selectors) && + ! \count($lastChild->children) + ) { + $outWrite = $lastChild; + } else { + $nextLines = $this->makeOutputBlock($type); + $nextLines->parent = $out; + $nextLines->depth = $out->depth; + + $out->children[] = $nextLines; + $outWrite = &$nextLines; + } + } + + $outWrite->lines[] = $line; + } + + /** + * Compile child; returns a value to halt execution + * + * @param array $child + * @param \ScssPhp\ScssPhp\Formatter\OutputBlock $out + * + * @return array|Number|null + */ + protected function compileChild($child, OutputBlock $out) + { + if (isset($child[Parser::SOURCE_LINE])) { + $this->sourceIndex = isset($child[Parser::SOURCE_INDEX]) ? $child[Parser::SOURCE_INDEX] : null; + $this->sourceLine = isset($child[Parser::SOURCE_LINE]) ? $child[Parser::SOURCE_LINE] : -1; + $this->sourceColumn = isset($child[Parser::SOURCE_COLUMN]) ? $child[Parser::SOURCE_COLUMN] : -1; + } elseif (\is_array($child) && isset($child[1]->sourceLine) && $child[1] instanceof Block) { + $this->sourceIndex = $child[1]->sourceIndex; + $this->sourceLine = $child[1]->sourceLine; + $this->sourceColumn = $child[1]->sourceColumn; + } elseif (! empty($out->sourceLine) && ! empty($out->sourceName)) { + $this->sourceLine = $out->sourceLine; + $sourceIndex = array_search($out->sourceName, $this->sourceNames); + $this->sourceColumn = $out->sourceColumn; + + if ($sourceIndex === false) { + $sourceIndex = null; + } + $this->sourceIndex = $sourceIndex; + } + + switch ($child[0]) { + case Type::T_SCSSPHP_IMPORT_ONCE: + $rawPath = $this->reduce($child[1]); + + $this->compileImport($rawPath, $out, true); + break; + + case Type::T_IMPORT: + $rawPath = $this->reduce($child[1]); + + $this->compileImport($rawPath, $out); + break; + + case Type::T_DIRECTIVE: + $this->compileDirective($child[1], $out); + break; + + case Type::T_AT_ROOT: + $this->compileAtRoot($child[1]); + break; + + case Type::T_MEDIA: + $this->compileMedia($child[1]); + break; + + case Type::T_BLOCK: + $this->compileBlock($child[1]); + break; + + case Type::T_CHARSET: + break; + + case Type::T_CUSTOM_PROPERTY: + list(, $name, $value) = $child; + $compiledName = $this->compileValue($name); + + // if the value reduces to null from something else then + // the property should be discarded + if ($value[0] !== Type::T_NULL) { + $value = $this->reduce($value); + + if ($value[0] === Type::T_NULL || $value === static::$nullString) { + break; + } + } + + $compiledValue = $this->compileValue($value); + + $line = $this->formatter->customProperty( + $compiledName, + $compiledValue + ); + + $this->appendOutputLine($out, Type::T_ASSIGN, $line); + break; + + case Type::T_ASSIGN: + list(, $name, $value) = $child; + + if ($name[0] === Type::T_VARIABLE) { + $flags = isset($child[3]) ? $child[3] : []; + $isDefault = \in_array('!default', $flags); + $isGlobal = \in_array('!global', $flags); + + if ($isGlobal) { + $this->set($name[1], $this->reduce($value), false, $this->rootEnv, $value); + break; + } + + $shouldSet = $isDefault && + (\is_null($result = $this->get($name[1], false)) || + $result === static::$null); + + if (! $isDefault || $shouldSet) { + $this->set($name[1], $this->reduce($value), true, null, $value); + } + break; + } + + $compiledName = $this->compileValue($name); + + // handle shorthand syntaxes : size / line-height... + if (\in_array($compiledName, ['font', 'grid-row', 'grid-column', 'border-radius'])) { + if ($value[0] === Type::T_VARIABLE) { + // if the font value comes from variable, the content is already reduced + // (i.e., formulas were already calculated), so we need the original unreduced value + $value = $this->get($value[1], true, null, true); + } + + $shorthandValue=&$value; + + $shorthandDividerNeedsUnit = false; + $maxListElements = null; + $maxShorthandDividers = 1; + + switch ($compiledName) { + case 'border-radius': + $maxListElements = 4; + $shorthandDividerNeedsUnit = true; + break; + } + + if ($compiledName === 'font' && $value[0] === Type::T_LIST && $value[1] === ',') { + // this is the case if more than one font is given: example: "font: 400 1em/1.3 arial,helvetica" + // we need to handle the first list element + $shorthandValue=&$value[2][0]; + } + + if ($shorthandValue[0] === Type::T_EXPRESSION && $shorthandValue[1] === '/') { + $revert = true; + + if ($shorthandDividerNeedsUnit) { + $divider = $shorthandValue[3]; + + if (\is_array($divider)) { + $divider = $this->reduce($divider, true); + } + + if ($divider instanceof Number && \intval($divider->getDimension()) && $divider->unitless()) { + $revert = false; + } + } + + if ($revert) { + $shorthandValue = $this->expToString($shorthandValue); + } + } elseif ($shorthandValue[0] === Type::T_LIST) { + foreach ($shorthandValue[2] as &$item) { + if ($item[0] === Type::T_EXPRESSION && $item[1] === '/') { + if ($maxShorthandDividers > 0) { + $revert = true; + + // if the list of values is too long, this has to be a shorthand, + // otherwise it could be a real division + if (\is_null($maxListElements) || \count($shorthandValue[2]) <= $maxListElements) { + if ($shorthandDividerNeedsUnit) { + $divider = $item[3]; + + if (\is_array($divider)) { + $divider = $this->reduce($divider, true); + } + + if ($divider instanceof Number && \intval($divider->getDimension()) && $divider->unitless()) { + $revert = false; + } + } + } + + if ($revert) { + $item = $this->expToString($item); + $maxShorthandDividers--; + } + } + } + } + } + } + + // if the value reduces to null from something else then + // the property should be discarded + if ($value[0] !== Type::T_NULL) { + $value = $this->reduce($value); + + if ($value[0] === Type::T_NULL || $value === static::$nullString) { + break; + } + } + + $compiledValue = $this->compileValue($value); + + // ignore empty value + if (\strlen($compiledValue)) { + $line = $this->formatter->property( + $compiledName, + $compiledValue + ); + $this->appendOutputLine($out, Type::T_ASSIGN, $line); + } + break; + + case Type::T_COMMENT: + if ($out->type === Type::T_ROOT) { + $this->compileComment($child); + break; + } + + $line = $this->compileCommentValue($child, true); + $this->appendOutputLine($out, Type::T_COMMENT, $line); + break; + + case Type::T_MIXIN: + case Type::T_FUNCTION: + list(, $block) = $child; + assert($block instanceof CallableBlock); + // the block need to be able to go up to it's parent env to resolve vars + $block->parentEnv = $this->getStoreEnv(); + $this->set(static::$namespaces[$block->type] . $block->name, $block, true); + break; + + case Type::T_EXTEND: + foreach ($child[1] as $sel) { + $replacedSel = $this->replaceSelfSelector($sel); + + if ($replacedSel !== $sel) { + throw $this->error('Parent selectors aren\'t allowed here.'); + } + + $results = $this->evalSelectors([$sel]); + + foreach ($results as $result) { + if (\count($result) !== 1) { + throw $this->error('complex selectors may not be extended.'); + } + + // only use the first one + $result = $result[0]; + $selectors = $out->selectors; + + if (! $selectors && isset($child['selfParent'])) { + $selectors = $this->multiplySelectors($this->env, $child['selfParent']); + } + assert($selectors !== null); + + if (\count($result) > 1) { + $replacement = implode(', ', $result); + $fname = $this->getPrettyPath($this->sourceNames[$this->sourceIndex]); + $line = $this->sourceLine; + + $message = <<logger->warn($message); + } + + $this->pushExtends($result, $selectors, $child); + } + } + break; + + case Type::T_IF: + list(, $if) = $child; + assert($if instanceof IfBlock); + + if ($this->isTruthy($this->reduce($if->cond, true))) { + return $this->compileChildren($if->children, $out); + } + + foreach ($if->cases as $case) { + if ( + $case instanceof ElseBlock || + $case instanceof ElseifBlock && $this->isTruthy($this->reduce($case->cond)) + ) { + return $this->compileChildren($case->children, $out); + } + } + break; + + case Type::T_EACH: + list(, $each) = $child; + assert($each instanceof EachBlock); + + $list = $this->coerceList($this->reduce($each->list), ',', true); + + $this->pushEnv(); + + foreach ($list[2] as $item) { + if (\count($each->vars) === 1) { + $this->set($each->vars[0], $item, true); + } else { + list(,, $values) = $this->coerceList($item); + + foreach ($each->vars as $i => $var) { + $this->set($var, isset($values[$i]) ? $values[$i] : static::$null, true); + } + } + + $ret = $this->compileChildren($each->children, $out); + + if ($ret) { + $store = $this->env->store; + $this->popEnv(); + $this->backPropagateEnv($store, $each->vars); + + return $ret; + } + } + $store = $this->env->store; + $this->popEnv(); + $this->backPropagateEnv($store, $each->vars); + + break; + + case Type::T_WHILE: + list(, $while) = $child; + assert($while instanceof WhileBlock); + + while ($this->isTruthy($this->reduce($while->cond, true))) { + $ret = $this->compileChildren($while->children, $out); + + if ($ret) { + return $ret; + } + } + break; + + case Type::T_FOR: + list(, $for) = $child; + assert($for instanceof ForBlock); + + $startNumber = $this->assertNumber($this->reduce($for->start, true)); + $endNumber = $this->assertNumber($this->reduce($for->end, true)); + + $start = $this->assertInteger($startNumber); + + $numeratorUnits = $startNumber->getNumeratorUnits(); + $denominatorUnits = $startNumber->getDenominatorUnits(); + + $end = $this->assertInteger($endNumber->coerce($numeratorUnits, $denominatorUnits)); + + $d = $start < $end ? 1 : -1; + + $this->pushEnv(); + + for (;;) { + if ( + (! $for->until && $start - $d == $end) || + ($for->until && $start == $end) + ) { + break; + } + + $this->set($for->var, new Number($start, $numeratorUnits, $denominatorUnits)); + $start += $d; + + $ret = $this->compileChildren($for->children, $out); + + if ($ret) { + $store = $this->env->store; + $this->popEnv(); + $this->backPropagateEnv($store, [$for->var]); + + return $ret; + } + } + + $store = $this->env->store; + $this->popEnv(); + $this->backPropagateEnv($store, [$for->var]); + + break; + + case Type::T_RETURN: + return $this->reduce($child[1], true); + + case Type::T_NESTED_PROPERTY: + $this->compileNestedPropertiesBlock($child[1], $out); + break; + + case Type::T_INCLUDE: + // including a mixin + list(, $name, $argValues, $content, $argUsing) = $child; + + $mixin = $this->get(static::$namespaces['mixin'] . $name, false); + + if (! $mixin) { + throw $this->error("Undefined mixin $name"); + } + + assert($mixin instanceof CallableBlock); + + $callingScope = $this->getStoreEnv(); + + // push scope, apply args + $this->pushEnv(); + $this->env->depth--; + + // Find the parent selectors in the env to be able to know what '&' refers to in the mixin + // and assign this fake parent to childs + $selfParent = null; + + if (isset($child['selfParent']) && $child['selfParent'] instanceof Block && isset($child['selfParent']->selectors)) { + $selfParent = $child['selfParent']; + } else { + $parentSelectors = $this->multiplySelectors($this->env); + + if ($parentSelectors) { + $parent = new Block(); + $parent->selectors = $parentSelectors; + + foreach ($mixin->children as $k => $child) { + if (isset($child[1]) && $child[1] instanceof Block) { + $mixin->children[$k][1]->parent = $parent; + } + } + } + } + + // clone the stored content to not have its scope spoiled by a further call to the same mixin + // i.e., recursive @include of the same mixin + if (isset($content)) { + $copyContent = clone $content; + $copyContent->scope = clone $callingScope; + + $this->setRaw(static::$namespaces['special'] . 'content', $copyContent, $this->env); + } else { + $this->setRaw(static::$namespaces['special'] . 'content', null, $this->env); + } + + // save the "using" argument list for applying it to when "@content" is invoked + if (isset($argUsing)) { + $this->setRaw(static::$namespaces['special'] . 'using', $argUsing, $this->env); + } else { + $this->setRaw(static::$namespaces['special'] . 'using', null, $this->env); + } + + if (isset($mixin->args)) { + $this->applyArguments($mixin->args, $argValues); + } + + $this->env->marker = 'mixin'; + + if (! empty($mixin->parentEnv)) { + $this->env->declarationScopeParent = $mixin->parentEnv; + } else { + throw $this->error("@mixin $name() without parentEnv"); + } + + $this->compileChildrenNoReturn($mixin->children, $out, $selfParent, $this->env->marker . ' ' . $name); + + $this->popEnv(); + break; + + case Type::T_MIXIN_CONTENT: + $env = isset($this->storeEnv) ? $this->storeEnv : $this->env; + $content = $this->get(static::$namespaces['special'] . 'content', false, $env); + $argUsing = $this->get(static::$namespaces['special'] . 'using', false, $env); + $argContent = $child[1]; + + if (! $content) { + break; + } + + $storeEnv = $this->storeEnv; + $varsUsing = []; + + if (isset($argUsing) && isset($argContent)) { + // Get the arguments provided for the content with the names provided in the "using" argument list + $this->storeEnv = null; + $varsUsing = $this->applyArguments($argUsing, $argContent, false); + } + + // restore the scope from the @content + $this->storeEnv = $content->scope; + + // append the vars from using if any + foreach ($varsUsing as $name => $val) { + $this->set($name, $val, true, $this->storeEnv); + } + + $this->compileChildrenNoReturn($content->children, $out); + + $this->storeEnv = $storeEnv; + break; + + case Type::T_DEBUG: + list(, $value) = $child; + + $fname = $this->getPrettyPath($this->sourceNames[$this->sourceIndex]); + $line = $this->sourceLine; + $value = $this->compileDebugValue($value); + + $this->logger->debug("$fname:$line DEBUG: $value"); + break; + + case Type::T_WARN: + list(, $value) = $child; + + $fname = $this->getPrettyPath($this->sourceNames[$this->sourceIndex]); + $line = $this->sourceLine; + $value = $this->compileDebugValue($value); + + $this->logger->warn("$value\n on line $line of $fname"); + break; + + case Type::T_ERROR: + list(, $value) = $child; + + $fname = $this->getPrettyPath($this->sourceNames[$this->sourceIndex]); + $line = $this->sourceLine; + $value = $this->compileValue($this->reduce($value, true)); + + throw $this->error("File $fname on line $line ERROR: $value\n"); + + default: + throw $this->error("unknown child type: $child[0]"); + } + + return null; + } + + /** + * Reduce expression to string + * + * @param array $exp + * @param bool $keepParens + * + * @return array + */ + protected function expToString($exp, $keepParens = false) + { + list(, $op, $left, $right, $inParens, $whiteLeft, $whiteRight) = $exp; + + $content = []; + + if ($keepParens && $inParens) { + $content[] = '('; + } + + $content[] = $this->reduce($left); + + if ($whiteLeft) { + $content[] = ' '; + } + + $content[] = $op; + + if ($whiteRight) { + $content[] = ' '; + } + + $content[] = $this->reduce($right); + + if ($keepParens && $inParens) { + $content[] = ')'; + } + + return [Type::T_STRING, '', $content]; + } + + /** + * Is truthy? + * + * @param array|Number $value + * + * @return bool + */ + public function isTruthy($value) + { + return $value !== static::$false && $value !== static::$null; + } + + /** + * Is the value a direct relationship combinator? + * + * @param string $value + * + * @return bool + */ + protected function isImmediateRelationshipCombinator($value) + { + return $value === '>' || $value === '+' || $value === '~'; + } + + /** + * Should $value cause its operand to eval + * + * @param array $value + * + * @return bool + */ + protected function shouldEval($value) + { + switch ($value[0]) { + case Type::T_EXPRESSION: + if ($value[1] === '/') { + return $this->shouldEval($value[2]) || $this->shouldEval($value[3]); + } + + // fall-thru + case Type::T_VARIABLE: + case Type::T_FUNCTION_CALL: + return true; + } + + return false; + } + + /** + * Reduce value + * + * @param array|Number $value + * @param bool $inExp + * + * @return array|Number + */ + protected function reduce($value, $inExp = false) + { + if ($value instanceof Number) { + return $value; + } + + switch ($value[0]) { + case Type::T_EXPRESSION: + list(, $op, $left, $right, $inParens) = $value; + + $opName = isset(static::$operatorNames[$op]) ? static::$operatorNames[$op] : $op; + $inExp = $inExp || $this->shouldEval($left) || $this->shouldEval($right); + + $left = $this->reduce($left, true); + + if ($op !== 'and' && $op !== 'or') { + $right = $this->reduce($right, true); + } + + // special case: looks like css shorthand + if ( + $opName == 'div' && ! $inParens && ! $inExp && + (($right[0] !== Type::T_NUMBER && isset($right[2]) && $right[2] != '') || + ($right[0] === Type::T_NUMBER && ! $right->unitless())) + ) { + return $this->expToString($value); + } + + $left = $this->coerceForExpression($left); + $right = $this->coerceForExpression($right); + $ltype = $left[0]; + $rtype = $right[0]; + + $ucOpName = ucfirst($opName); + $ucLType = ucfirst($ltype); + $ucRType = ucfirst($rtype); + + $shouldEval = $inParens || $inExp; + + // this tries: + // 1. op[op name][left type][right type] + // 2. op[left type][right type] (passing the op as first arg) + // 3. op[op name] + if (\is_callable([$this, $fn = "op{$ucOpName}{$ucLType}{$ucRType}"])) { + $out = $this->$fn($left, $right, $shouldEval); + } elseif (\is_callable([$this, $fn = "op{$ucLType}{$ucRType}"])) { + $out = $this->$fn($op, $left, $right, $shouldEval); + } elseif (\is_callable([$this, $fn = "op{$ucOpName}"])) { + $out = $this->$fn($left, $right, $shouldEval); + } else { + $out = null; + } + + if (isset($out)) { + return $out; + } + + return $this->expToString($value); + + case Type::T_UNARY: + list(, $op, $exp, $inParens) = $value; + + $inExp = $inExp || $this->shouldEval($exp); + $exp = $this->reduce($exp); + + if ($exp instanceof Number) { + switch ($op) { + case '+': + return $exp; + + case '-': + return $exp->unaryMinus(); + } + } + + if ($op === 'not') { + if ($inExp || $inParens) { + if ($exp === static::$false || $exp === static::$null) { + return static::$true; + } + + return static::$false; + } + + $op = $op . ' '; + } + + return [Type::T_STRING, '', [$op, $exp]]; + + case Type::T_VARIABLE: + return $this->reduce($this->get($value[1])); + + case Type::T_LIST: + foreach ($value[2] as &$item) { + $item = $this->reduce($item); + } + unset($item); + + if (isset($value[3]) && \is_array($value[3])) { + foreach ($value[3] as &$item) { + $item = $this->reduce($item); + } + unset($item); + } + + return $value; + + case Type::T_MAP: + foreach ($value[1] as &$item) { + $item = $this->reduce($item); + } + + foreach ($value[2] as &$item) { + $item = $this->reduce($item); + } + + return $value; + + case Type::T_STRING: + foreach ($value[2] as &$item) { + if (\is_array($item) || $item instanceof Number) { + $item = $this->reduce($item); + } + } + + return $value; + + case Type::T_INTERPOLATE: + $value[1] = $this->reduce($value[1]); + + if ($inExp) { + return [Type::T_KEYWORD, $this->compileValue($value, false)]; + } + + return $value; + + case Type::T_FUNCTION_CALL: + return $this->fncall($value[1], $value[2]); + + case Type::T_SELF: + $selfParent = ! empty($this->env->block->selfParent) ? $this->env->block->selfParent : null; + $selfSelector = $this->multiplySelectors($this->env, $selfParent); + $selfSelector = $this->collapseSelectorsAsList($selfSelector); + + return $selfSelector; + + default: + return $value; + } + } + + /** + * Function caller + * + * @param string|array $functionReference + * @param array $argValues + * + * @return array|Number + */ + protected function fncall($functionReference, $argValues) + { + // a string means this is a static hard reference coming from the parsing + if (is_string($functionReference)) { + $name = $functionReference; + + $functionReference = $this->getFunctionReference($name); + if ($functionReference === static::$null || $functionReference[0] !== Type::T_FUNCTION_REFERENCE) { + $functionReference = [Type::T_FUNCTION, $name, [Type::T_LIST, ',', []]]; + } + } + + // a function type means we just want a plain css function call + if ($functionReference[0] === Type::T_FUNCTION) { + // for CSS functions, simply flatten the arguments into a list + $listArgs = []; + + foreach ((array) $argValues as $arg) { + if (empty($arg[0]) || count($argValues) === 1) { + $listArgs[] = $this->reduce($this->stringifyFncallArgs($arg[1])); + } + } + + return [Type::T_FUNCTION, $functionReference[1], [Type::T_LIST, ',', $listArgs]]; + } + + if ($functionReference === static::$null || $functionReference[0] !== Type::T_FUNCTION_REFERENCE) { + return static::$defaultValue; + } + + + switch ($functionReference[1]) { + // SCSS @function + case 'scss': + return $this->callScssFunction($functionReference[3], $argValues); + + // native PHP functions + case 'user': + case 'native': + list(,,$name, $fn, $prototype) = $functionReference; + + // special cases of css valid functions min/max + $name = strtolower($name); + if (\in_array($name, ['min', 'max']) && count($argValues) >= 1) { + $cssFunction = $this->cssValidArg( + [Type::T_FUNCTION_CALL, $name, $argValues], + ['min', 'max', 'calc', 'env', 'var'] + ); + if ($cssFunction !== false) { + return $cssFunction; + } + } + $returnValue = $this->callNativeFunction($name, $fn, $prototype, $argValues); + + if (! isset($returnValue)) { + return $this->fncall([Type::T_FUNCTION, $name, [Type::T_LIST, ',', []]], $argValues); + } + + return $returnValue; + + default: + return static::$defaultValue; + } + } + + /** + * @param array|Number $arg + * @param string[] $allowed_function + * @param bool $inFunction + * + * @return array|Number|false + */ + protected function cssValidArg($arg, $allowed_function = [], $inFunction = false) + { + if ($arg instanceof Number) { + return $this->stringifyFncallArgs($arg); + } + + switch ($arg[0]) { + case Type::T_INTERPOLATE: + return [Type::T_KEYWORD, $this->CompileValue($arg)]; + + case Type::T_FUNCTION: + if (! \in_array($arg[1], $allowed_function)) { + return false; + } + if ($arg[2][0] === Type::T_LIST) { + foreach ($arg[2][2] as $k => $subarg) { + $arg[2][2][$k] = $this->cssValidArg($subarg, $allowed_function, $arg[1]); + if ($arg[2][2][$k] === false) { + return false; + } + } + } + return $arg; + + case Type::T_FUNCTION_CALL: + if (! \in_array($arg[1], $allowed_function)) { + return false; + } + $cssArgs = []; + foreach ($arg[2] as $argValue) { + if ($argValue === static::$null) { + return false; + } + $cssArg = $this->cssValidArg($argValue[1], $allowed_function, $arg[1]); + if (empty($argValue[0]) && $cssArg !== false) { + $cssArgs[] = [$argValue[0], $cssArg]; + } else { + return false; + } + } + + return $this->fncall([Type::T_FUNCTION, $arg[1], [Type::T_LIST, ',', []]], $cssArgs); + + case Type::T_STRING: + case Type::T_KEYWORD: + if (!$inFunction or !\in_array($inFunction, ['calc', 'env', 'var'])) { + return false; + } + return $this->stringifyFncallArgs($arg); + + case Type::T_LIST: + if (!$inFunction) { + return false; + } + if (empty($arg['enclosing']) and $arg[1] === '') { + foreach ($arg[2] as $k => $subarg) { + $arg[2][$k] = $this->cssValidArg($subarg, $allowed_function, $inFunction); + if ($arg[2][$k] === false) { + return false; + } + } + $arg[0] = Type::T_STRING; + return $arg; + } + return false; + + case Type::T_EXPRESSION: + if (! \in_array($arg[1], ['+', '-', '/', '*'])) { + return false; + } + $arg[2] = $this->cssValidArg($arg[2], $allowed_function, $inFunction); + $arg[3] = $this->cssValidArg($arg[3], $allowed_function, $inFunction); + if ($arg[2] === false || $arg[3] === false) { + return false; + } + return $this->expToString($arg, true); + + case Type::T_VARIABLE: + case Type::T_SELF: + default: + return false; + } + } + + + /** + * Reformat fncall arguments to proper css function output + * + * @param array|Number $arg + * + * @return array|Number + */ + protected function stringifyFncallArgs($arg) + { + if ($arg instanceof Number) { + return $arg; + } + + switch ($arg[0]) { + case Type::T_LIST: + foreach ($arg[2] as $k => $v) { + $arg[2][$k] = $this->stringifyFncallArgs($v); + } + break; + + case Type::T_EXPRESSION: + if ($arg[1] === '/') { + $arg[2] = $this->stringifyFncallArgs($arg[2]); + $arg[3] = $this->stringifyFncallArgs($arg[3]); + $arg[5] = $arg[6] = false; // no space around / + $arg = $this->expToString($arg); + } + break; + + case Type::T_FUNCTION_CALL: + $name = strtolower($arg[1]); + + if (in_array($name, ['max', 'min', 'calc'])) { + $args = $arg[2]; + $arg = $this->fncall([Type::T_FUNCTION, $name, [Type::T_LIST, ',', []]], $args); + } + break; + } + + return $arg; + } + + /** + * Find a function reference + * @param string $name + * @param bool $safeCopy + * @return array + */ + protected function getFunctionReference($name, $safeCopy = false) + { + // SCSS @function + if ($func = $this->get(static::$namespaces['function'] . $name, false)) { + if ($safeCopy) { + $func = clone $func; + } + + return [Type::T_FUNCTION_REFERENCE, 'scss', $name, $func]; + } + + // native PHP functions + + // try to find a native lib function + $normalizedName = $this->normalizeName($name); + + if (isset($this->userFunctions[$normalizedName])) { + // see if we can find a user function + list($f, $prototype) = $this->userFunctions[$normalizedName]; + + return [Type::T_FUNCTION_REFERENCE, 'user', $name, $f, $prototype]; + } + + $lowercasedName = strtolower($normalizedName); + + // Special functions overriding a CSS function are case-insensitive. We normalize them as lowercase + // to avoid the deprecation warning about the wrong case being used. + if ($lowercasedName === 'min' || $lowercasedName === 'max' || $lowercasedName === 'rgb' || $lowercasedName === 'rgba' || $lowercasedName === 'hsl' || $lowercasedName === 'hsla') { + $normalizedName = $lowercasedName; + } + + if (($f = $this->getBuiltinFunction($normalizedName)) && \is_callable($f)) { + /** @var string $libName */ + $libName = $f[1]; + $prototype = isset(static::$$libName) ? static::$$libName : null; + + // All core functions have a prototype defined. Not finding the + // prototype can mean 2 things: + // - the function comes from a child class (deprecated just after) + // - the function was found with a different case, which relates to calling the + // wrong Sass function due to our camelCase usage (`fade-in()` vs `fadein()`), + // because PHP method names are case-insensitive while property names are + // case-sensitive. + if ($prototype === null || strtolower($normalizedName) !== $normalizedName) { + $r = new \ReflectionMethod($this, $libName); + $actualLibName = $r->name; + + if ($actualLibName !== $libName || strtolower($normalizedName) !== $normalizedName) { + $kebabCaseName = preg_replace('~(?<=\\w)([A-Z])~', '-$1', substr($actualLibName, 3)); + assert($kebabCaseName !== null); + $originalName = strtolower($kebabCaseName); + $warning = "Calling built-in functions with a non-standard name is deprecated since Scssphp 1.8.0 and will not work anymore in 2.0 (they will be treated as CSS function calls instead).\nUse \"$originalName\" instead of \"$name\"."; + @trigger_error($warning, E_USER_DEPRECATED); + $fname = $this->getPrettyPath($this->sourceNames[$this->sourceIndex]); + $line = $this->sourceLine; + Warn::deprecation("$warning\n on line $line of $fname"); + + // Use the actual function definition + $prototype = isset(static::$$actualLibName) ? static::$$actualLibName : null; + $f[1] = $libName = $actualLibName; + } + } + + if (\get_class($this) !== __CLASS__ && !isset($this->warnedChildFunctions[$libName])) { + $r = new \ReflectionMethod($this, $libName); + $declaringClass = $r->getDeclaringClass()->name; + + $needsWarning = $this->warnedChildFunctions[$libName] = $declaringClass !== __CLASS__; + + if ($needsWarning) { + if (method_exists(__CLASS__, $libName)) { + @trigger_error(sprintf('Overriding the "%s" core function by extending the Compiler is deprecated and will be unsupported in 2.0. Remove the "%s::%s" method.', $normalizedName, $declaringClass, $libName), E_USER_DEPRECATED); + } else { + @trigger_error(sprintf('Registering custom functions by extending the Compiler and using the lib* discovery mechanism is deprecated and will be removed in 2.0. Replace the "%s::%s" method with registering the "%s" function through "Compiler::registerFunction".', $declaringClass, $libName, $normalizedName), E_USER_DEPRECATED); + } + } + } + + return [Type::T_FUNCTION_REFERENCE, 'native', $name, $f, $prototype]; + } + + return static::$null; + } + + + /** + * Normalize name + * + * @param string $name + * + * @return string + */ + protected function normalizeName($name) + { + return str_replace('-', '_', $name); + } + + /** + * Normalize value + * + * @internal + * + * @param array|Number $value + * + * @return array|Number + */ + public function normalizeValue($value) + { + $value = $this->coerceForExpression($this->reduce($value)); + + if ($value instanceof Number) { + return $value; + } + + switch ($value[0]) { + case Type::T_LIST: + $value = $this->extractInterpolation($value); + + if ($value[0] !== Type::T_LIST) { + return [Type::T_KEYWORD, $this->compileValue($value)]; + } + + foreach ($value[2] as $key => $item) { + $value[2][$key] = $this->normalizeValue($item); + } + + if (! empty($value['enclosing'])) { + unset($value['enclosing']); + } + + if ($value[1] === '' && count($value[2]) > 1) { + $value[1] = ' '; + } + + return $value; + + case Type::T_STRING: + return [$value[0], '"', [$this->compileStringContent($value)]]; + + case Type::T_INTERPOLATE: + return [Type::T_KEYWORD, $this->compileValue($value)]; + + default: + return $value; + } + } + + /** + * Add numbers + * + * @param Number $left + * @param Number $right + * + * @return Number + */ + protected function opAddNumberNumber(Number $left, Number $right) + { + return $left->plus($right); + } + + /** + * Multiply numbers + * + * @param Number $left + * @param Number $right + * + * @return Number + */ + protected function opMulNumberNumber(Number $left, Number $right) + { + return $left->times($right); + } + + /** + * Subtract numbers + * + * @param Number $left + * @param Number $right + * + * @return Number + */ + protected function opSubNumberNumber(Number $left, Number $right) + { + return $left->minus($right); + } + + /** + * Divide numbers + * + * @param Number $left + * @param Number $right + * + * @return Number + */ + protected function opDivNumberNumber(Number $left, Number $right) + { + return $left->dividedBy($right); + } + + /** + * Mod numbers + * + * @param Number $left + * @param Number $right + * + * @return Number + */ + protected function opModNumberNumber(Number $left, Number $right) + { + return $left->modulo($right); + } + + /** + * Add strings + * + * @param array $left + * @param array $right + * + * @return array|null + */ + protected function opAdd($left, $right) + { + if ($strLeft = $this->coerceString($left)) { + if ($right[0] === Type::T_STRING) { + $right[1] = ''; + } + + $strLeft[2][] = $right; + + return $strLeft; + } + + if ($strRight = $this->coerceString($right)) { + if ($left[0] === Type::T_STRING) { + $left[1] = ''; + } + + array_unshift($strRight[2], $left); + + return $strRight; + } + + return null; + } + + /** + * Boolean and + * + * @param array|Number $left + * @param array|Number $right + * @param bool $shouldEval + * + * @return array|Number|null + */ + protected function opAnd($left, $right, $shouldEval) + { + $truthy = ($left === static::$null || $right === static::$null) || + ($left === static::$false || $left === static::$true) && + ($right === static::$false || $right === static::$true); + + if (! $shouldEval) { + if (! $truthy) { + return null; + } + } + + if ($left !== static::$false && $left !== static::$null) { + return $this->reduce($right, true); + } + + return $left; + } + + /** + * Boolean or + * + * @param array|Number $left + * @param array|Number $right + * @param bool $shouldEval + * + * @return array|Number|null + */ + protected function opOr($left, $right, $shouldEval) + { + $truthy = ($left === static::$null || $right === static::$null) || + ($left === static::$false || $left === static::$true) && + ($right === static::$false || $right === static::$true); + + if (! $shouldEval) { + if (! $truthy) { + return null; + } + } + + if ($left !== static::$false && $left !== static::$null) { + return $left; + } + + return $this->reduce($right, true); + } + + /** + * Compare colors + * + * @param string $op + * @param array $left + * @param array $right + * + * @return array + */ + protected function opColorColor($op, $left, $right) + { + if ($op !== '==' && $op !== '!=') { + $warning = "Color arithmetic is deprecated and will be an error in future versions.\n" + . "Consider using Sass's color functions instead."; + $fname = $this->getPrettyPath($this->sourceNames[$this->sourceIndex]); + $line = $this->sourceLine; + + Warn::deprecation("$warning\n on line $line of $fname"); + } + + $out = [Type::T_COLOR]; + + foreach ([1, 2, 3] as $i) { + $lval = isset($left[$i]) ? $left[$i] : 0; + $rval = isset($right[$i]) ? $right[$i] : 0; + + switch ($op) { + case '+': + $out[] = $lval + $rval; + break; + + case '-': + $out[] = $lval - $rval; + break; + + case '*': + $out[] = $lval * $rval; + break; + + case '%': + if ($rval == 0) { + throw $this->error("color: Can't take modulo by zero"); + } + + $out[] = $lval % $rval; + break; + + case '/': + if ($rval == 0) { + throw $this->error("color: Can't divide by zero"); + } + + $out[] = (int) ($lval / $rval); + break; + + case '==': + return $this->opEq($left, $right); + + case '!=': + return $this->opNeq($left, $right); + + default: + throw $this->error("color: unknown op $op"); + } + } + + if (isset($left[4])) { + $out[4] = $left[4]; + } elseif (isset($right[4])) { + $out[4] = $right[4]; + } + + return $this->fixColor($out); + } + + /** + * Compare color and number + * + * @param string $op + * @param array $left + * @param Number $right + * + * @return array + */ + protected function opColorNumber($op, $left, Number $right) + { + if ($op === '==') { + return static::$false; + } + + if ($op === '!=') { + return static::$true; + } + + $value = $right->getDimension(); + + return $this->opColorColor( + $op, + $left, + [Type::T_COLOR, $value, $value, $value] + ); + } + + /** + * Compare number and color + * + * @param string $op + * @param Number $left + * @param array $right + * + * @return array + */ + protected function opNumberColor($op, Number $left, $right) + { + if ($op === '==') { + return static::$false; + } + + if ($op === '!=') { + return static::$true; + } + + $value = $left->getDimension(); + + return $this->opColorColor( + $op, + [Type::T_COLOR, $value, $value, $value], + $right + ); + } + + /** + * Compare number1 == number2 + * + * @param array|Number $left + * @param array|Number $right + * + * @return array + */ + protected function opEq($left, $right) + { + if (($lStr = $this->coerceString($left)) && ($rStr = $this->coerceString($right))) { + $lStr[1] = ''; + $rStr[1] = ''; + + $left = $this->compileValue($lStr); + $right = $this->compileValue($rStr); + } + + return $this->toBool($left === $right); + } + + /** + * Compare number1 != number2 + * + * @param array|Number $left + * @param array|Number $right + * + * @return array + */ + protected function opNeq($left, $right) + { + if (($lStr = $this->coerceString($left)) && ($rStr = $this->coerceString($right))) { + $lStr[1] = ''; + $rStr[1] = ''; + + $left = $this->compileValue($lStr); + $right = $this->compileValue($rStr); + } + + return $this->toBool($left !== $right); + } + + /** + * Compare number1 == number2 + * + * @param Number $left + * @param Number $right + * + * @return array + */ + protected function opEqNumberNumber(Number $left, Number $right) + { + return $this->toBool($left->equals($right)); + } + + /** + * Compare number1 != number2 + * + * @param Number $left + * @param Number $right + * + * @return array + */ + protected function opNeqNumberNumber(Number $left, Number $right) + { + return $this->toBool(!$left->equals($right)); + } + + /** + * Compare number1 >= number2 + * + * @param Number $left + * @param Number $right + * + * @return array + */ + protected function opGteNumberNumber(Number $left, Number $right) + { + return $this->toBool($left->greaterThanOrEqual($right)); + } + + /** + * Compare number1 > number2 + * + * @param Number $left + * @param Number $right + * + * @return array + */ + protected function opGtNumberNumber(Number $left, Number $right) + { + return $this->toBool($left->greaterThan($right)); + } + + /** + * Compare number1 <= number2 + * + * @param Number $left + * @param Number $right + * + * @return array + */ + protected function opLteNumberNumber(Number $left, Number $right) + { + return $this->toBool($left->lessThanOrEqual($right)); + } + + /** + * Compare number1 < number2 + * + * @param Number $left + * @param Number $right + * + * @return array + */ + protected function opLtNumberNumber(Number $left, Number $right) + { + return $this->toBool($left->lessThan($right)); + } + + /** + * Cast to boolean + * + * @api + * + * @param bool $thing + * + * @return array + */ + public function toBool($thing) + { + return $thing ? static::$true : static::$false; + } + + /** + * Escape non printable chars in strings output as in dart-sass + * + * @internal + * + * @param string $string + * @param bool $inKeyword + * + * @return string + */ + public function escapeNonPrintableChars($string, $inKeyword = false) + { + static $replacement = []; + if (empty($replacement[$inKeyword])) { + for ($i = 0; $i < 32; $i++) { + if ($i !== 9 || $inKeyword) { + $replacement[$inKeyword][chr($i)] = '\\' . dechex($i) . ($inKeyword ? ' ' : chr(0)); + } + } + } + $string = str_replace(array_keys($replacement[$inKeyword]), array_values($replacement[$inKeyword]), $string); + // chr(0) is not a possible char from the input, so any chr(0) comes from our escaping replacement + if (strpos($string, chr(0)) !== false) { + if (substr($string, -1) === chr(0)) { + $string = substr($string, 0, -1); + } + $string = str_replace( + [chr(0) . '\\',chr(0) . ' '], + [ '\\', ' '], + $string + ); + if (strpos($string, chr(0)) !== false) { + $parts = explode(chr(0), $string); + $string = array_shift($parts); + while (count($parts)) { + $next = array_shift($parts); + if (strpos("0123456789abcdefABCDEF" . chr(9), $next[0]) !== false) { + $string .= " "; + } + $string .= $next; + } + } + } + + return $string; + } + + /** + * Compiles a primitive value into a CSS property value. + * + * Values in scssphp are typed by being wrapped in arrays, their format is + * typically: + * + * array(type, contents [, additional_contents]*) + * + * The input is expected to be reduced. This function will not work on + * things like expressions and variables. + * + * @api + * + * @param array|Number $value + * @param bool $quote + * + * @return string + */ + public function compileValue($value, $quote = true) + { + $value = $this->reduce($value); + + if ($value instanceof Number) { + return $value->output($this); + } + + switch ($value[0]) { + case Type::T_KEYWORD: + return $this->escapeNonPrintableChars($value[1], true); + + case Type::T_COLOR: + // [1] - red component (either number for a %) + // [2] - green component + // [3] - blue component + // [4] - optional alpha component + list(, $r, $g, $b) = $value; + + $r = $this->compileRGBAValue($r); + $g = $this->compileRGBAValue($g); + $b = $this->compileRGBAValue($b); + + if (\count($value) === 5) { + $alpha = $this->compileRGBAValue($value[4], true); + + if (! is_numeric($alpha) || $alpha < 1) { + $colorName = Colors::RGBaToColorName($r, $g, $b, $alpha); + + if (! \is_null($colorName)) { + return $colorName; + } + + if (is_numeric($alpha)) { + $a = new Number($alpha, ''); + } else { + $a = $alpha; + } + + return 'rgba(' . $r . ', ' . $g . ', ' . $b . ', ' . $a . ')'; + } + } + + if (! is_numeric($r) || ! is_numeric($g) || ! is_numeric($b)) { + return 'rgb(' . $r . ', ' . $g . ', ' . $b . ')'; + } + + $colorName = Colors::RGBaToColorName($r, $g, $b); + + if (! \is_null($colorName)) { + return $colorName; + } + + $h = sprintf('#%02x%02x%02x', $r, $g, $b); + + // Converting hex color to short notation (e.g. #003399 to #039) + if ($h[1] === $h[2] && $h[3] === $h[4] && $h[5] === $h[6]) { + $h = '#' . $h[1] . $h[3] . $h[5]; + } + + return $h; + + case Type::T_STRING: + $content = $this->compileStringContent($value, $quote); + + if ($value[1] && $quote) { + $content = str_replace('\\', '\\\\', $content); + + $content = $this->escapeNonPrintableChars($content); + + // force double quote as string quote for the output in certain cases + if ( + $value[1] === "'" && + (strpos($content, '"') === false or strpos($content, "'") !== false) + ) { + $value[1] = '"'; + } elseif ( + $value[1] === '"' && + (strpos($content, '"') !== false and strpos($content, "'") === false) + ) { + $value[1] = "'"; + } + + $content = str_replace($value[1], '\\' . $value[1], $content); + } + + return $value[1] . $content . $value[1]; + + case Type::T_FUNCTION: + $args = ! empty($value[2]) ? $this->compileValue($value[2], $quote) : ''; + + return "$value[1]($args)"; + + case Type::T_FUNCTION_REFERENCE: + $name = ! empty($value[2]) ? $value[2] : ''; + + return "get-function(\"$name\")"; + + case Type::T_LIST: + $value = $this->extractInterpolation($value); + + if ($value[0] !== Type::T_LIST) { + return $this->compileValue($value, $quote); + } + + list(, $delim, $items) = $value; + $pre = $post = ''; + + if (! empty($value['enclosing'])) { + switch ($value['enclosing']) { + case 'parent': + //$pre = '('; + //$post = ')'; + break; + case 'forced_parent': + $pre = '('; + $post = ')'; + break; + case 'bracket': + case 'forced_bracket': + $pre = '['; + $post = ']'; + break; + } + } + + $separator = $delim === '/' ? ' /' : $delim; + + $prefix_value = ''; + + if ($delim !== ' ') { + $prefix_value = ' '; + } + + $filtered = []; + + $same_string_quote = null; + foreach ($items as $item) { + if (\is_null($same_string_quote)) { + $same_string_quote = false; + if ($item[0] === Type::T_STRING) { + $same_string_quote = $item[1]; + foreach ($items as $ii) { + if ($ii[0] !== Type::T_STRING) { + $same_string_quote = false; + break; + } + } + } + } + if ($item[0] === Type::T_NULL) { + continue; + } + if ($same_string_quote === '"' && $item[0] === Type::T_STRING && $item[1]) { + $item[1] = $same_string_quote; + } + + $compiled = $this->compileValue($item, $quote); + + if ($prefix_value && \strlen($compiled)) { + $compiled = $prefix_value . $compiled; + } + + $filtered[] = $compiled; + } + + return $pre . substr(implode($separator, $filtered), \strlen($prefix_value)) . $post; + + case Type::T_MAP: + $keys = $value[1]; + $values = $value[2]; + $filtered = []; + + for ($i = 0, $s = \count($keys); $i < $s; $i++) { + $filtered[$this->compileValue($keys[$i], $quote)] = $this->compileValue($values[$i], $quote); + } + + array_walk($filtered, function (&$value, $key) { + $value = $key . ': ' . $value; + }); + + return '(' . implode(', ', $filtered) . ')'; + + case Type::T_INTERPOLATED: + // node created by extractInterpolation + list(, $interpolate, $left, $right) = $value; + list(,, $whiteLeft, $whiteRight) = $interpolate; + + $delim = $left[1]; + + if ($delim && $delim !== ' ' && ! $whiteLeft) { + $delim .= ' '; + } + + $left = \count($left[2]) > 0 + ? $this->compileValue($left, $quote) . $delim . $whiteLeft + : ''; + + $delim = $right[1]; + + if ($delim && $delim !== ' ') { + $delim .= ' '; + } + + $right = \count($right[2]) > 0 ? + $whiteRight . $delim . $this->compileValue($right, $quote) : ''; + + return $left . $this->compileValue($interpolate, $quote) . $right; + + case Type::T_INTERPOLATE: + // strip quotes if it's a string + $reduced = $this->reduce($value[1]); + + if ($reduced instanceof Number) { + return $this->compileValue($reduced, $quote); + } + + switch ($reduced[0]) { + case Type::T_LIST: + $reduced = $this->extractInterpolation($reduced); + + if ($reduced[0] !== Type::T_LIST) { + break; + } + + list(, $delim, $items) = $reduced; + + if ($delim !== ' ') { + $delim .= ' '; + } + + $filtered = []; + + foreach ($items as $item) { + if ($item[0] === Type::T_NULL) { + continue; + } + + if ($item[0] === Type::T_STRING) { + $filtered[] = $this->compileStringContent($item, $quote); + } elseif ($item[0] === Type::T_KEYWORD) { + $filtered[] = $item[1]; + } else { + $filtered[] = $this->compileValue($item, $quote); + } + } + + $reduced = [Type::T_KEYWORD, implode("$delim", $filtered)]; + break; + + case Type::T_STRING: + $reduced = [Type::T_STRING, '', [$this->compileStringContent($reduced)]]; + break; + + case Type::T_NULL: + $reduced = [Type::T_KEYWORD, '']; + } + + return $this->compileValue($reduced, $quote); + + case Type::T_NULL: + return 'null'; + + case Type::T_COMMENT: + return $this->compileCommentValue($value); + + default: + throw $this->error('unknown value type: ' . json_encode($value)); + } + } + + /** + * @param array|Number $value + * + * @return string + */ + protected function compileDebugValue($value) + { + $value = $this->reduce($value, true); + + if ($value instanceof Number) { + return $this->compileValue($value); + } + + switch ($value[0]) { + case Type::T_STRING: + return $this->compileStringContent($value); + + default: + return $this->compileValue($value); + } + } + + /** + * Flatten list + * + * @param array $list + * + * @return string + * + * @deprecated + */ + protected function flattenList($list) + { + @trigger_error(sprintf('The "%s" method is deprecated.', __METHOD__), E_USER_DEPRECATED); + + return $this->compileValue($list); + } + + /** + * Gets the text of a Sass string + * + * Calling this method on anything else than a SassString is unsupported. Use {@see assertString} first + * to ensure that the value is indeed a string. + * + * @param array $value + * + * @return string + */ + public function getStringText(array $value) + { + if ($value[0] !== Type::T_STRING) { + throw new \InvalidArgumentException('The argument is not a sass string. Did you forgot to use "assertString"?'); + } + + return $this->compileStringContent($value); + } + + /** + * Compile string content + * + * @param array $string + * @param bool $quote + * + * @return string + */ + protected function compileStringContent($string, $quote = true) + { + $parts = []; + + foreach ($string[2] as $part) { + if (\is_array($part) || $part instanceof Number) { + $parts[] = $this->compileValue($part, $quote); + } else { + $parts[] = $part; + } + } + + return implode($parts); + } + + /** + * Extract interpolation; it doesn't need to be recursive, compileValue will handle that + * + * @param array $list + * + * @return array + */ + protected function extractInterpolation($list) + { + $items = $list[2]; + + foreach ($items as $i => $item) { + if ($item[0] === Type::T_INTERPOLATE) { + $before = [Type::T_LIST, $list[1], \array_slice($items, 0, $i)]; + $after = [Type::T_LIST, $list[1], \array_slice($items, $i + 1)]; + + return [Type::T_INTERPOLATED, $item, $before, $after]; + } + } + + return $list; + } + + /** + * Find the final set of selectors + * + * @param \ScssPhp\ScssPhp\Compiler\Environment $env + * @param \ScssPhp\ScssPhp\Block $selfParent + * + * @return array + */ + protected function multiplySelectors(Environment $env, $selfParent = null) + { + $envs = $this->compactEnv($env); + $selectors = []; + $parentSelectors = [[]]; + + $selfParentSelectors = null; + + if (! \is_null($selfParent) && $selfParent->selectors) { + $selfParentSelectors = $this->evalSelectors($selfParent->selectors); + } + + while ($env = array_pop($envs)) { + if (empty($env->selectors)) { + continue; + } + + $selectors = $env->selectors; + + do { + $stillHasSelf = false; + $prevSelectors = $selectors; + $selectors = []; + + foreach ($parentSelectors as $parent) { + foreach ($prevSelectors as $selector) { + if ($selfParentSelectors) { + foreach ($selfParentSelectors as $selfParent) { + // if no '&' in the selector, each call will give same result, only add once + $s = $this->joinSelectors($parent, $selector, $stillHasSelf, $selfParent); + $selectors[serialize($s)] = $s; + } + } else { + $s = $this->joinSelectors($parent, $selector, $stillHasSelf); + $selectors[serialize($s)] = $s; + } + } + } + } while ($stillHasSelf); + + $parentSelectors = $selectors; + } + + $selectors = array_values($selectors); + + // case we are just starting a at-root : nothing to multiply but parentSelectors + if (! $selectors && $selfParentSelectors) { + $selectors = $selfParentSelectors; + } + + return $selectors; + } + + /** + * Join selectors; looks for & to replace, or append parent before child + * + * @param array $parent + * @param array $child + * @param bool $stillHasSelf + * @param array $selfParentSelectors + + * @return array + */ + protected function joinSelectors($parent, $child, &$stillHasSelf, $selfParentSelectors = null) + { + $setSelf = false; + $out = []; + + foreach ($child as $part) { + $newPart = []; + + foreach ($part as $p) { + // only replace & once and should be recalled to be able to make combinations + if ($p === static::$selfSelector && $setSelf) { + $stillHasSelf = true; + } + + if ($p === static::$selfSelector && ! $setSelf) { + $setSelf = true; + + if (\is_null($selfParentSelectors)) { + $selfParentSelectors = $parent; + } + + foreach ($selfParentSelectors as $i => $parentPart) { + if ($i > 0) { + $out[] = $newPart; + $newPart = []; + } + + foreach ($parentPart as $pp) { + if (\is_array($pp)) { + $flatten = []; + + array_walk_recursive($pp, function ($a) use (&$flatten) { + $flatten[] = $a; + }); + + $pp = implode($flatten); + } + + $newPart[] = $pp; + } + } + } else { + $newPart[] = $p; + } + } + + $out[] = $newPart; + } + + return $setSelf ? $out : array_merge($parent, $child); + } + + /** + * Multiply media + * + * @param \ScssPhp\ScssPhp\Compiler\Environment $env + * @param array $childQueries + * + * @return array + */ + protected function multiplyMedia(Environment $env = null, $childQueries = null) + { + if ( + ! isset($env) || + ! empty($env->block->type) && $env->block->type !== Type::T_MEDIA + ) { + return $childQueries; + } + + // plain old block, skip + if (empty($env->block->type)) { + return $this->multiplyMedia($env->parent, $childQueries); + } + + assert($env->block instanceof MediaBlock); + + $parentQueries = isset($env->block->queryList) + ? $env->block->queryList + : [[[Type::T_MEDIA_VALUE, $env->block->value]]]; + + $store = [$this->env, $this->storeEnv]; + + $this->env = $env; + $this->storeEnv = null; + $parentQueries = $this->evaluateMediaQuery($parentQueries); + + list($this->env, $this->storeEnv) = $store; + + if (\is_null($childQueries)) { + $childQueries = $parentQueries; + } else { + $originalQueries = $childQueries; + $childQueries = []; + + foreach ($parentQueries as $parentQuery) { + foreach ($originalQueries as $childQuery) { + $childQueries[] = array_merge( + $parentQuery, + [[Type::T_MEDIA_TYPE, [Type::T_KEYWORD, 'all']]], + $childQuery + ); + } + } + } + + return $this->multiplyMedia($env->parent, $childQueries); + } + + /** + * Convert env linked list to stack + * + * @param Environment $env + * + * @return Environment[] + * + * @phpstan-return non-empty-array + */ + protected function compactEnv(Environment $env) + { + for ($envs = []; $env; $env = $env->parent) { + $envs[] = $env; + } + + return $envs; + } + + /** + * Convert env stack to singly linked list + * + * @param Environment[] $envs + * + * @return Environment + * + * @phpstan-param non-empty-array $envs + */ + protected function extractEnv($envs) + { + for ($env = null; $e = array_pop($envs);) { + $e->parent = $env; + $env = $e; + } + + return $env; + } + + /** + * Push environment + * + * @param \ScssPhp\ScssPhp\Block $block + * + * @return \ScssPhp\ScssPhp\Compiler\Environment + */ + protected function pushEnv(Block $block = null) + { + $env = new Environment(); + $env->parent = $this->env; + $env->parentStore = $this->storeEnv; + $env->store = []; + $env->block = $block; + $env->depth = isset($this->env->depth) ? $this->env->depth + 1 : 0; + + $this->env = $env; + $this->storeEnv = null; + + return $env; + } + + /** + * Pop environment + * + * @return void + */ + protected function popEnv() + { + $this->storeEnv = $this->env->parentStore; + $this->env = $this->env->parent; + } + + /** + * Propagate vars from a just poped Env (used in @each and @for) + * + * @param array $store + * @param null|string[] $excludedVars + * + * @return void + */ + protected function backPropagateEnv($store, $excludedVars = null) + { + foreach ($store as $key => $value) { + if (empty($excludedVars) || ! \in_array($key, $excludedVars)) { + $this->set($key, $value, true); + } + } + } + + /** + * Get store environment + * + * @return \ScssPhp\ScssPhp\Compiler\Environment + */ + protected function getStoreEnv() + { + return isset($this->storeEnv) ? $this->storeEnv : $this->env; + } + + /** + * Set variable + * + * @param string $name + * @param mixed $value + * @param bool $shadow + * @param \ScssPhp\ScssPhp\Compiler\Environment $env + * @param mixed $valueUnreduced + * + * @return void + */ + protected function set($name, $value, $shadow = false, Environment $env = null, $valueUnreduced = null) + { + $name = $this->normalizeName($name); + + if (! isset($env)) { + $env = $this->getStoreEnv(); + } + + if ($shadow) { + $this->setRaw($name, $value, $env, $valueUnreduced); + } else { + $this->setExisting($name, $value, $env, $valueUnreduced); + } + } + + /** + * Set existing variable + * + * @param string $name + * @param mixed $value + * @param \ScssPhp\ScssPhp\Compiler\Environment $env + * @param mixed $valueUnreduced + * + * @return void + */ + protected function setExisting($name, $value, Environment $env, $valueUnreduced = null) + { + $storeEnv = $env; + $specialContentKey = static::$namespaces['special'] . 'content'; + + $hasNamespace = $name[0] === '^' || $name[0] === '@' || $name[0] === '%'; + + $maxDepth = 10000; + + for (;;) { + if ($maxDepth-- <= 0) { + break; + } + + if (\array_key_exists($name, $env->store)) { + break; + } + + if (! $hasNamespace && isset($env->marker)) { + if (! empty($env->store[$specialContentKey])) { + $env = $env->store[$specialContentKey]->scope; + continue; + } + + if (! empty($env->declarationScopeParent)) { + $env = $env->declarationScopeParent; + continue; + } else { + $env = $storeEnv; + break; + } + } + + if (isset($env->parentStore)) { + $env = $env->parentStore; + } elseif (isset($env->parent)) { + $env = $env->parent; + } else { + $env = $storeEnv; + break; + } + } + + $env->store[$name] = $value; + + if ($valueUnreduced) { + $env->storeUnreduced[$name] = $valueUnreduced; + } + } + + /** + * Set raw variable + * + * @param string $name + * @param mixed $value + * @param \ScssPhp\ScssPhp\Compiler\Environment $env + * @param mixed $valueUnreduced + * + * @return void + */ + protected function setRaw($name, $value, Environment $env, $valueUnreduced = null) + { + $env->store[$name] = $value; + + if ($valueUnreduced) { + $env->storeUnreduced[$name] = $valueUnreduced; + } + } + + /** + * Get variable + * + * @internal + * + * @param string $name + * @param bool $shouldThrow + * @param \ScssPhp\ScssPhp\Compiler\Environment $env + * @param bool $unreduced + * + * @return mixed|null + */ + public function get($name, $shouldThrow = true, Environment $env = null, $unreduced = false) + { + $normalizedName = $this->normalizeName($name); + $specialContentKey = static::$namespaces['special'] . 'content'; + + if (! isset($env)) { + $env = $this->getStoreEnv(); + } + + $hasNamespace = $normalizedName[0] === '^' || $normalizedName[0] === '@' || $normalizedName[0] === '%'; + + $maxDepth = 10000; + + for (;;) { + if ($maxDepth-- <= 0) { + break; + } + + if (\array_key_exists($normalizedName, $env->store)) { + if ($unreduced && isset($env->storeUnreduced[$normalizedName])) { + return $env->storeUnreduced[$normalizedName]; + } + + return $env->store[$normalizedName]; + } + + if (! $hasNamespace && isset($env->marker)) { + if (! empty($env->store[$specialContentKey])) { + $env = $env->store[$specialContentKey]->scope; + continue; + } + + if (! empty($env->declarationScopeParent)) { + $env = $env->declarationScopeParent; + } else { + $env = $this->rootEnv; + } + continue; + } + + if (isset($env->parentStore)) { + $env = $env->parentStore; + } elseif (isset($env->parent)) { + $env = $env->parent; + } else { + break; + } + } + + if ($shouldThrow) { + throw $this->error("Undefined variable \$$name" . ($maxDepth <= 0 ? ' (infinite recursion)' : '')); + } + + // found nothing + return null; + } + + /** + * Has variable? + * + * @param string $name + * @param \ScssPhp\ScssPhp\Compiler\Environment $env + * + * @return bool + */ + protected function has($name, Environment $env = null) + { + return ! \is_null($this->get($name, false, $env)); + } + + /** + * Inject variables + * + * @param array $args + * + * @return void + */ + protected function injectVariables(array $args) + { + if (empty($args)) { + return; + } + + $parser = $this->parserFactory(__METHOD__); + + foreach ($args as $name => $strValue) { + if ($name[0] === '$') { + $name = substr($name, 1); + } + + if (!\is_string($strValue) || ! $parser->parseValue($strValue, $value)) { + $value = $this->coerceValue($strValue); + } + + $this->set($name, $value); + } + } + + /** + * Replaces variables. + * + * @param array $variables + * + * @return void + */ + public function replaceVariables(array $variables) + { + $this->registeredVars = []; + $this->addVariables($variables); + } + + /** + * Replaces variables. + * + * @param array $variables + * + * @return void + */ + public function addVariables(array $variables) + { + $triggerWarning = false; + + foreach ($variables as $name => $value) { + if (!$value instanceof Number && !\is_array($value)) { + $triggerWarning = true; + } + + $this->registeredVars[$name] = $value; + } + + if ($triggerWarning) { + @trigger_error('Passing raw values to as custom variables to the Compiler is deprecated. Use "\ScssPhp\ScssPhp\ValueConverter::parseValue" or "\ScssPhp\ScssPhp\ValueConverter::fromPhp" to convert them instead.', E_USER_DEPRECATED); + } + } + + /** + * Set variables + * + * @api + * + * @param array $variables + * + * @return void + * + * @deprecated Use "addVariables" or "replaceVariables" instead. + */ + public function setVariables(array $variables) + { + @trigger_error('The method "setVariables" of the Compiler is deprecated. Use the "addVariables" method for the equivalent behavior or "replaceVariables" if merging with previous variables was not desired.'); + + $this->addVariables($variables); + } + + /** + * Unset variable + * + * @api + * + * @param string $name + * + * @return void + */ + public function unsetVariable($name) + { + unset($this->registeredVars[$name]); + } + + /** + * Returns list of variables + * + * @api + * + * @return array + */ + public function getVariables() + { + return $this->registeredVars; + } + + /** + * Adds to list of parsed files + * + * @internal + * + * @param string|null $path + * + * @return void + */ + public function addParsedFile($path) + { + if (! \is_null($path) && is_file($path)) { + $this->parsedFiles[realpath($path)] = filemtime($path); + } + } + + /** + * Returns list of parsed files + * + * @deprecated + * @return array + */ + public function getParsedFiles() + { + @trigger_error('The method "getParsedFiles" of the Compiler is deprecated. Use the "getIncludedFiles" method on the CompilationResult instance returned by compileString() instead. Be careful that the signature of the method is different.', E_USER_DEPRECATED); + return $this->parsedFiles; + } + + /** + * Add import path + * + * @api + * + * @param string|callable $path + * + * @return void + */ + public function addImportPath($path) + { + if (! \in_array($path, $this->importPaths)) { + $this->importPaths[] = $path; + } + } + + /** + * Set import paths + * + * @api + * + * @param string|array $path + * + * @return void + */ + public function setImportPaths($path) + { + $paths = (array) $path; + $actualImportPaths = array_filter($paths, function ($path) { + return $path !== ''; + }); + + $this->legacyCwdImportPath = \count($actualImportPaths) !== \count($paths); + + if ($this->legacyCwdImportPath) { + @trigger_error('Passing an empty string in the import paths to refer to the current working directory is deprecated. If that\'s the intended behavior, the value of "getcwd()" should be used directly instead. If this was used for resolving relative imports of the input alongside "chdir" with the source directory, the path of the input file should be passed to "compileString()" instead.', E_USER_DEPRECATED); + } + + $this->importPaths = $actualImportPaths; + } + + /** + * Set number precision + * + * @api + * + * @param int $numberPrecision + * + * @return void + * + * @deprecated The number precision is not configurable anymore. The default is enough for all browsers. + */ + public function setNumberPrecision($numberPrecision) + { + @trigger_error('The number precision is not configurable anymore. ' + . 'The default is enough for all browsers.', E_USER_DEPRECATED); + } + + /** + * Sets the output style. + * + * @api + * + * @param string $style One of the OutputStyle constants + * + * @return void + * + * @phpstan-param OutputStyle::* $style + */ + public function setOutputStyle($style) + { + switch ($style) { + case OutputStyle::EXPANDED: + $this->configuredFormatter = Expanded::class; + break; + + case OutputStyle::COMPRESSED: + $this->configuredFormatter = Compressed::class; + break; + + default: + throw new \InvalidArgumentException(sprintf('Invalid output style "%s".', $style)); + } + } + + /** + * Set formatter + * + * @api + * + * @param string $formatterName + * + * @return void + * + * @deprecated Use {@see setOutputStyle} instead. + * + * @phpstan-param class-string $formatterName + */ + public function setFormatter($formatterName) + { + if (!\in_array($formatterName, [Expanded::class, Compressed::class], true)) { + @trigger_error('Formatters other than Expanded and Compressed are deprecated.', E_USER_DEPRECATED); + } + @trigger_error('The method "setFormatter" is deprecated. Use "setOutputStyle" instead.', E_USER_DEPRECATED); + + $this->configuredFormatter = $formatterName; + } + + /** + * Set line number style + * + * @api + * + * @param string $lineNumberStyle + * + * @return void + * + * @deprecated The line number output is not supported anymore. Use source maps instead. + */ + public function setLineNumberStyle($lineNumberStyle) + { + @trigger_error('The line number output is not supported anymore. ' + . 'Use source maps instead.', E_USER_DEPRECATED); + } + + /** + * Configures the handling of non-ASCII outputs. + * + * If $charset is `true`, this will include a `@charset` declaration or a + * UTF-8 [byte-order mark][] if the stylesheet contains any non-ASCII + * characters. Otherwise, it will never include a `@charset` declaration or a + * byte-order mark. + * + * [byte-order mark]: https://en.wikipedia.org/wiki/Byte_order_mark#UTF-8 + * + * @param bool $charset + * + * @return void + */ + public function setCharset($charset) + { + $this->charset = $charset; + } + + /** + * Enable/disable source maps + * + * @api + * + * @param int $sourceMap + * + * @return void + * + * @phpstan-param self::SOURCE_MAP_* $sourceMap + */ + public function setSourceMap($sourceMap) + { + $this->sourceMap = $sourceMap; + } + + /** + * Set source map options + * + * @api + * + * @param array $sourceMapOptions + * + * @phpstan-param array{sourceRoot?: string, sourceMapFilename?: string|null, sourceMapURL?: string|null, sourceMapWriteTo?: string|null, outputSourceFiles?: bool, sourceMapRootpath?: string, sourceMapBasepath?: string} $sourceMapOptions + * + * @return void + */ + public function setSourceMapOptions($sourceMapOptions) + { + $this->sourceMapOptions = $sourceMapOptions; + } + + /** + * Register function + * + * @api + * + * @param string $name + * @param callable $callback + * @param string[]|null $argumentDeclaration + * + * @return void + */ + public function registerFunction($name, $callback, $argumentDeclaration = null) + { + if (self::isNativeFunction($name)) { + @trigger_error(sprintf('The "%s" function is a core sass function. Overriding it with a custom implementation through "%s" is deprecated and won\'t be supported in ScssPhp 2.0 anymore.', $name, __METHOD__), E_USER_DEPRECATED); + } + + if ($argumentDeclaration === null) { + @trigger_error('Omitting the argument declaration when registering custom function is deprecated and won\'t be supported in ScssPhp 2.0 anymore.', E_USER_DEPRECATED); + } + + $this->userFunctions[$this->normalizeName($name)] = [$callback, $argumentDeclaration]; + } + + /** + * Unregister function + * + * @api + * + * @param string $name + * + * @return void + */ + public function unregisterFunction($name) + { + unset($this->userFunctions[$this->normalizeName($name)]); + } + + /** + * Add feature + * + * @api + * + * @param string $name + * + * @return void + * + * @deprecated Registering additional features is deprecated. + */ + public function addFeature($name) + { + @trigger_error('Registering additional features is deprecated.', E_USER_DEPRECATED); + + $this->registeredFeatures[$name] = true; + } + + /** + * Import file + * + * @param string $path + * @param \ScssPhp\ScssPhp\Formatter\OutputBlock $out + * + * @return void + */ + protected function importFile($path, OutputBlock $out) + { + $this->pushCallStack('import ' . $this->getPrettyPath($path)); + // see if tree is cached + $realPath = realpath($path); + + if ($realPath === false) { + $realPath = $path; + } + + if (substr($path, -5) === '.sass') { + $this->sourceIndex = \count($this->sourceNames); + $this->sourceNames[] = $path; + $this->sourceLine = 1; + $this->sourceColumn = 1; + + throw $this->error('The Sass indented syntax is not implemented.'); + } + + if (isset($this->importCache[$realPath])) { + $this->handleImportLoop($realPath); + + $tree = $this->importCache[$realPath]; + } else { + $code = file_get_contents($path); + $parser = $this->parserFactory($path); + $tree = $parser->parse($code); + + $this->importCache[$realPath] = $tree; + } + + $currentDirectory = $this->currentDirectory; + $this->currentDirectory = dirname($path); + + $this->compileChildrenNoReturn($tree->children, $out); + $this->currentDirectory = $currentDirectory; + $this->popCallStack(); + } + + /** + * Save the imported files with their resolving path context + * + * @param string|null $currentDirectory + * @param string $path + * @param string $filePath + * + * @return void + */ + private function registerImport($currentDirectory, $path, $filePath) + { + $this->resolvedImports[] = ['currentDir' => $currentDirectory, 'path' => $path, 'filePath' => $filePath]; + } + + /** + * Detects whether the import is a CSS import. + * + * For legacy reasons, custom importers are called for those, allowing them + * to replace them with an actual Sass import. However this behavior is + * deprecated. Custom importers are expected to return null when they receive + * a CSS import. + * + * @param string $url + * + * @return bool + */ + public static function isCssImport($url) + { + return 1 === preg_match('~\.css$|^https?://|^//~', $url); + } + + /** + * Return the file path for an import url if it exists + * + * @internal + * + * @param string $url + * @param string|null $currentDir + * + * @return string|null + */ + public function findImport($url, $currentDir = null) + { + // Vanilla css and external requests. These are not meant to be Sass imports. + // Callback importers are still called for BC. + if (self::isCssImport($url)) { + foreach ($this->importPaths as $dir) { + if (\is_string($dir)) { + continue; + } + + if (\is_callable($dir)) { + // check custom callback for import path + $file = \call_user_func($dir, $url); + + if (! \is_null($file)) { + if (\is_array($dir)) { + $callableDescription = (\is_object($dir[0]) ? \get_class($dir[0]) : $dir[0]).'::'.$dir[1]; + } elseif ($dir instanceof \Closure) { + $r = new \ReflectionFunction($dir); + if (false !== strpos($r->name, '{closure}')) { + $callableDescription = sprintf('closure{%s:%s}', $r->getFileName(), $r->getStartLine()); + } elseif ($class = $r->getClosureScopeClass()) { + $callableDescription = $class->name.'::'.$r->name; + } else { + $callableDescription = $r->name; + } + } elseif (\is_object($dir)) { + $callableDescription = \get_class($dir) . '::__invoke'; + } else { + $callableDescription = 'callable'; // Fallback if we don't have a dedicated description + } + @trigger_error(sprintf('Returning a file to import for CSS or external references in custom importer callables is deprecated and will not be supported anymore in ScssPhp 2.0. This behavior is not compliant with the Sass specification. Update your "%s" importer.', $callableDescription), E_USER_DEPRECATED); + + return $file; + } + } + } + return null; + } + + if (!\is_null($currentDir)) { + $relativePath = $this->resolveImportPath($url, $currentDir); + + if (!\is_null($relativePath)) { + return $relativePath; + } + } + + foreach ($this->importPaths as $dir) { + if (\is_string($dir)) { + $path = $this->resolveImportPath($url, $dir); + + if (!\is_null($path)) { + return $path; + } + } elseif (\is_callable($dir)) { + // check custom callback for import path + $file = \call_user_func($dir, $url); + + if (! \is_null($file)) { + return $file; + } + } + } + + if ($this->legacyCwdImportPath) { + $path = $this->resolveImportPath($url, getcwd()); + + if (!\is_null($path)) { + @trigger_error('Resolving imports relatively to the current working directory is deprecated. If that\'s the intended behavior, the value of "getcwd()" should be added as an import path explicitly instead. If this was used for resolving relative imports of the input alongside "chdir" with the source directory, the path of the input file should be passed to "compileString()" instead.', E_USER_DEPRECATED); + + return $path; + } + } + + throw $this->error("`$url` file not found for @import"); + } + + /** + * @param string $url + * @param string $baseDir + * + * @return string|null + */ + private function resolveImportPath($url, $baseDir) + { + $path = Path::join($baseDir, $url); + + $hasExtension = preg_match('/.s[ac]ss$/', $url); + + if ($hasExtension) { + return $this->checkImportPathConflicts($this->tryImportPath($path)); + } + + $result = $this->checkImportPathConflicts($this->tryImportPathWithExtensions($path)); + + if (!\is_null($result)) { + return $result; + } + + return $this->tryImportPathAsDirectory($path); + } + + /** + * @param string[] $paths + * + * @return string|null + */ + private function checkImportPathConflicts(array $paths) + { + if (\count($paths) === 0) { + return null; + } + + if (\count($paths) === 1) { + return $paths[0]; + } + + $formattedPrettyPaths = []; + + foreach ($paths as $path) { + $formattedPrettyPaths[] = ' ' . $this->getPrettyPath($path); + } + + throw $this->error("It's not clear which file to import. Found:\n" . implode("\n", $formattedPrettyPaths)); + } + + /** + * @param string $path + * + * @return string[] + */ + private function tryImportPathWithExtensions($path) + { + $result = array_merge( + $this->tryImportPath($path.'.sass'), + $this->tryImportPath($path.'.scss') + ); + + if ($result) { + return $result; + } + + return $this->tryImportPath($path.'.css'); + } + + /** + * @param string $path + * + * @return string[] + */ + private function tryImportPath($path) + { + $partial = dirname($path).'/_'.basename($path); + + $candidates = []; + + if (is_file($partial)) { + $candidates[] = $partial; + } + + if (is_file($path)) { + $candidates[] = $path; + } + + return $candidates; + } + + /** + * @param string $path + * + * @return string|null + */ + private function tryImportPathAsDirectory($path) + { + if (!is_dir($path)) { + return null; + } + + return $this->checkImportPathConflicts($this->tryImportPathWithExtensions($path.'/index')); + } + + /** + * @param string|null $path + * + * @return string + */ + private function getPrettyPath($path) + { + if ($path === null) { + return '(unknown file)'; + } + + $normalizedPath = $path; + $normalizedRootDirectory = $this->rootDirectory.'/'; + + if (\DIRECTORY_SEPARATOR === '\\') { + $normalizedRootDirectory = str_replace('\\', '/', $normalizedRootDirectory); + $normalizedPath = str_replace('\\', '/', $path); + } + + if (0 === strpos($normalizedPath, $normalizedRootDirectory)) { + return substr($path, \strlen($normalizedRootDirectory)); + } + + return $path; + } + + /** + * Set encoding + * + * @api + * + * @param string|null $encoding + * + * @return void + * + * @deprecated Non-compliant support for other encodings than UTF-8 is deprecated. + */ + public function setEncoding($encoding) + { + if (!$encoding || strtolower($encoding) === 'utf-8') { + @trigger_error(sprintf('The "%s" method is deprecated.', __METHOD__), E_USER_DEPRECATED); + } else { + @trigger_error(sprintf('The "%s" method is deprecated. Parsing will only support UTF-8 in ScssPhp 2.0. The non-UTF-8 parsing of ScssPhp 1.x is not spec compliant.', __METHOD__), E_USER_DEPRECATED); + } + + $this->encoding = $encoding; + } + + /** + * Ignore errors? + * + * @api + * + * @param bool $ignoreErrors + * + * @return \ScssPhp\ScssPhp\Compiler + * + * @deprecated Ignoring Sass errors is not longer supported. + */ + public function setIgnoreErrors($ignoreErrors) + { + @trigger_error('Ignoring Sass errors is not longer supported.', E_USER_DEPRECATED); + + return $this; + } + + /** + * Get source position + * + * @api + * + * @return array + * + * @deprecated + */ + public function getSourcePosition() + { + @trigger_error(sprintf('The "%s" method is deprecated.', __METHOD__), E_USER_DEPRECATED); + + $sourceFile = isset($this->sourceNames[$this->sourceIndex]) ? $this->sourceNames[$this->sourceIndex] : ''; + + return [$sourceFile, $this->sourceLine, $this->sourceColumn]; + } + + /** + * Throw error (exception) + * + * @api + * + * @param string $msg Message with optional sprintf()-style vararg parameters + * + * @return never + * + * @throws \ScssPhp\ScssPhp\Exception\CompilerException + * + * @deprecated use "error" and throw the exception in the caller instead. + */ + public function throwError($msg) + { + @trigger_error( + 'The method "throwError" is deprecated. Use "error" and throw the exception in the caller instead', + E_USER_DEPRECATED + ); + + throw $this->error(...func_get_args()); + } + + /** + * Build an error (exception) + * + * @internal + * + * @param string $msg Message with optional sprintf()-style vararg parameters + * @param bool|float|int|string|null ...$args + * + * @return CompilerException + */ + public function error($msg, ...$args) + { + if ($args) { + $msg = sprintf($msg, ...$args); + } + + if (! $this->ignoreCallStackMessage) { + $msg = $this->addLocationToMessage($msg); + } + + return new CompilerException($msg); + } + + /** + * @param string $msg + * + * @return string + */ + private function addLocationToMessage($msg) + { + $line = $this->sourceLine; + $column = $this->sourceColumn; + + $loc = isset($this->sourceNames[$this->sourceIndex]) + ? $this->getPrettyPath($this->sourceNames[$this->sourceIndex]) . " on line $line, at column $column" + : "line: $line, column: $column"; + + $msg = "$msg: $loc"; + + $callStackMsg = $this->callStackMessage(); + + if ($callStackMsg) { + $msg .= "\nCall Stack:\n" . $callStackMsg; + } + + return $msg; + } + + /** + * @param string $functionName + * @param array $ExpectedArgs + * @param int $nbActual + * @return CompilerException + * + * @deprecated + */ + public function errorArgsNumber($functionName, $ExpectedArgs, $nbActual) + { + @trigger_error(sprintf('The "%s" method is deprecated.', __METHOD__), E_USER_DEPRECATED); + + $nbExpected = \count($ExpectedArgs); + + if ($nbActual > $nbExpected) { + return $this->error( + 'Error: Only %d arguments allowed in %s(), but %d were passed.', + $nbExpected, + $functionName, + $nbActual + ); + } else { + $missing = []; + + while (count($ExpectedArgs) && count($ExpectedArgs) > $nbActual) { + array_unshift($missing, array_pop($ExpectedArgs)); + } + + return $this->error( + 'Error: %s() argument%s %s missing.', + $functionName, + count($missing) > 1 ? 's' : '', + implode(', ', $missing) + ); + } + } + + /** + * Beautify call stack for output + * + * @param bool $all + * @param int|null $limit + * + * @return string + */ + protected function callStackMessage($all = false, $limit = null) + { + $callStackMsg = []; + $ncall = 0; + + if ($this->callStack) { + foreach (array_reverse($this->callStack) as $call) { + if ($all || (isset($call['n']) && $call['n'])) { + $msg = '#' . $ncall++ . ' ' . $call['n'] . ' '; + $msg .= (isset($this->sourceNames[$call[Parser::SOURCE_INDEX]]) + ? $this->getPrettyPath($this->sourceNames[$call[Parser::SOURCE_INDEX]]) + : '(unknown file)'); + $msg .= ' on line ' . $call[Parser::SOURCE_LINE]; + + $callStackMsg[] = $msg; + + if (! \is_null($limit) && $ncall > $limit) { + break; + } + } + } + } + + return implode("\n", $callStackMsg); + } + + /** + * Handle import loop + * + * @param string $name + * + * @return void + * + * @throws \Exception + */ + protected function handleImportLoop($name) + { + for ($env = $this->env; $env; $env = $env->parent) { + if (! $env->block) { + continue; + } + + $file = $this->sourceNames[$env->block->sourceIndex]; + + if ($file === null) { + continue; + } + + if (realpath($file) === $name) { + throw $this->error('An @import loop has been found: %s imports %s', $file, basename($file)); + } + } + } + + /** + * Call SCSS @function + * + * @param CallableBlock|null $func + * @param array $argValues + * + * @return array|Number + */ + protected function callScssFunction($func, $argValues) + { + if (! $func) { + return static::$defaultValue; + } + $name = $func->name; + + $this->pushEnv(); + + // set the args + if (isset($func->args)) { + $this->applyArguments($func->args, $argValues); + } + + // throw away lines and children + $tmp = new OutputBlock(); + $tmp->lines = []; + $tmp->children = []; + + $this->env->marker = 'function'; + + if (! empty($func->parentEnv)) { + $this->env->declarationScopeParent = $func->parentEnv; + } else { + throw $this->error("@function $name() without parentEnv"); + } + + $ret = $this->compileChildren($func->children, $tmp, $this->env->marker . ' ' . $name); + + $this->popEnv(); + + return ! isset($ret) ? static::$defaultValue : $ret; + } + + /** + * Call built-in and registered (PHP) functions + * + * @param string $name + * @param callable $function + * @param array $prototype + * @param array $args + * + * @return array|Number|null + */ + protected function callNativeFunction($name, $function, $prototype, $args) + { + $libName = (is_array($function) ? end($function) : null); + $sorted_kwargs = $this->sortNativeFunctionArgs($libName, $prototype, $args); + + if (\is_null($sorted_kwargs)) { + return null; + } + @list($sorted, $kwargs) = $sorted_kwargs; + + if ($name !== 'if') { + foreach ($sorted as &$val) { + if ($val !== null) { + $val = $this->reduce($val, true); + } + } + } + + $returnValue = \call_user_func($function, $sorted, $kwargs); + + if (! isset($returnValue)) { + return null; + } + + if (\is_array($returnValue) || $returnValue instanceof Number) { + return $returnValue; + } + + @trigger_error(sprintf('Returning a PHP value from the "%s" custom function is deprecated. A sass value must be returned instead.', $name), E_USER_DEPRECATED); + + return $this->coerceValue($returnValue); + } + + /** + * Get built-in function + * + * @param string $name Normalized name + * + * @return array + */ + protected function getBuiltinFunction($name) + { + $libName = self::normalizeNativeFunctionName($name); + return [$this, $libName]; + } + + /** + * Normalize native function name + * + * @internal + * + * @param string $name + * + * @return string + */ + public static function normalizeNativeFunctionName($name) + { + $name = str_replace("-", "_", $name); + $libName = 'lib' . preg_replace_callback( + '/_(.)/', + function ($m) { + return ucfirst($m[1]); + }, + ucfirst($name) + ); + return $libName; + } + + /** + * Check if a function is a native built-in scss function, for css parsing + * + * @internal + * + * @param string $name + * + * @return bool + */ + public static function isNativeFunction($name) + { + return method_exists(Compiler::class, self::normalizeNativeFunctionName($name)); + } + + /** + * Sorts keyword arguments + * + * @param string $functionName + * @param array|null $prototypes + * @param array $args + * + * @return array|null + */ + protected function sortNativeFunctionArgs($functionName, $prototypes, $args) + { + static $parser = null; + + if (! isset($prototypes)) { + $keyArgs = []; + $posArgs = []; + + if (\is_array($args) && \count($args) && \end($args) === static::$null) { + array_pop($args); + } + + // separate positional and keyword arguments + foreach ($args as $arg) { + list($key, $value) = $arg; + + if (empty($key) or empty($key[1])) { + $posArgs[] = empty($arg[2]) ? $value : $arg; + } else { + $keyArgs[$key[1]] = $value; + } + } + + return [$posArgs, $keyArgs]; + } + + // specific cases ? + if (\in_array($functionName, ['libRgb', 'libRgba', 'libHsl', 'libHsla'])) { + // notation 100 127 255 / 0 is in fact a simple list of 4 values + foreach ($args as $k => $arg) { + if (!isset($arg[1])) { + continue; // This happens when using a trailing comma + } + if ($arg[1][0] === Type::T_LIST && \count($arg[1][2]) === 3) { + $args[$k][1][2] = $this->extractSlashAlphaInColorFunction($arg[1][2]); + } + } + } + + list($positionalArgs, $namedArgs, $names, $separator, $hasSplat) = $this->evaluateArguments($args, false); + + if (! \is_array(reset($prototypes))) { + $prototypes = [$prototypes]; + } + + $parsedPrototypes = array_map([$this, 'parseFunctionPrototype'], $prototypes); + assert(!empty($parsedPrototypes)); + $matchedPrototype = $this->selectFunctionPrototype($parsedPrototypes, \count($positionalArgs), $names); + + $this->verifyPrototype($matchedPrototype, \count($positionalArgs), $names, $hasSplat); + + $vars = $this->applyArgumentsToDeclaration($matchedPrototype, $positionalArgs, $namedArgs, $separator); + + $finalArgs = []; + $keyArgs = []; + + foreach ($matchedPrototype['arguments'] as $argument) { + list($normalizedName, $originalName, $default) = $argument; + + if (isset($vars[$normalizedName])) { + $value = $vars[$normalizedName]; + } else { + $value = $default; + } + + // special null value as default: translate to real null here + if ($value === [Type::T_KEYWORD, 'null']) { + $value = null; + } + + $finalArgs[] = $value; + $keyArgs[$originalName] = $value; + } + + if ($matchedPrototype['rest_argument'] !== null) { + $value = $vars[$matchedPrototype['rest_argument']]; + + $finalArgs[] = $value; + $keyArgs[$matchedPrototype['rest_argument']] = $value; + } + + return [$finalArgs, $keyArgs]; + } + + /** + * Parses a function prototype to the internal representation of arguments. + * + * The input is an array of strings describing each argument, as supported + * in {@see registerFunction}. Argument names don't include the `$`. + * The output contains the list of positional argument, with their normalized + * name (underscores are replaced by dashes), their original name (to be used + * in case of error reporting) and their default value. The output also contains + * the normalized name of the rest argument, or null if the function prototype + * is not variadic. + * + * @param string[] $prototype + * + * @return array + * @phpstan-return array{arguments: list, rest_argument: string|null} + */ + private function parseFunctionPrototype(array $prototype) + { + static $parser = null; + + $arguments = []; + $restArgument = null; + + foreach ($prototype as $p) { + if (null !== $restArgument) { + throw new \InvalidArgumentException('The argument declaration is invalid. The rest argument must be the last one.'); + } + + $default = null; + $p = explode(':', $p, 2); + $name = str_replace('_', '-', $p[0]); + + if (isset($p[1])) { + $defaultSource = trim($p[1]); + + if ($defaultSource === 'null') { + // differentiate this null from the static::$null + $default = [Type::T_KEYWORD, 'null']; + } else { + if (\is_null($parser)) { + $parser = $this->parserFactory(__METHOD__); + } + + $parser->parseValue($defaultSource, $default); + } + } + + if (substr($name, -3) === '...') { + $restArgument = substr($name, 0, -3); + } else { + $arguments[] = [$name, $p[0], $default]; + } + } + + return [ + 'arguments' => $arguments, + 'rest_argument' => $restArgument, + ]; + } + + /** + * Returns the function prototype for the given positional and named arguments. + * + * If no exact match is found, finds the closest approximation. Note that this + * doesn't guarantee that $positional and $names are valid for the returned + * prototype. + * + * @param array[] $prototypes + * @param int $positional + * @param array $names A set of names, as both keys and values + * + * @return array + * + * @phpstan-param non-empty-list, rest_argument: string|null}> $prototypes + * @phpstan-return array{arguments: list, rest_argument: string|null} + */ + private function selectFunctionPrototype(array $prototypes, $positional, array $names) + { + $fuzzyMatch = null; + $minMismatchDistance = null; + + foreach ($prototypes as $prototype) { + // Ideally, find an exact match. + if ($this->checkPrototypeMatches($prototype, $positional, $names)) { + return $prototype; + } + + $mismatchDistance = \count($prototype['arguments']) - $positional; + + if ($minMismatchDistance !== null) { + if (abs($mismatchDistance) > abs($minMismatchDistance)) { + continue; + } + + // If two overloads have the same mismatch distance, favor the overload + // that has more arguments. + if (abs($mismatchDistance) === abs($minMismatchDistance) && $mismatchDistance < 0) { + continue; + } + } + + $minMismatchDistance = $mismatchDistance; + $fuzzyMatch = $prototype; + } + + return $fuzzyMatch; + } + + /** + * Checks whether the argument invocation matches the callable prototype. + * + * The rules are similar to {@see verifyPrototype}. The boolean return value + * avoids the overhead of building and catching exceptions when the reason of + * not matching the prototype does not need to be known. + * + * @param array $prototype + * @param int $positional + * @param array $names + * + * @return bool + * + * @phpstan-param array{arguments: list, rest_argument: string|null} $prototype + */ + private function checkPrototypeMatches(array $prototype, $positional, array $names) + { + $nameUsed = 0; + + foreach ($prototype['arguments'] as $i => $argument) { + list ($name, $originalName, $default) = $argument; + + if ($i < $positional) { + if (isset($names[$name])) { + return false; + } + } elseif (isset($names[$name])) { + $nameUsed++; + } elseif ($default === null) { + return false; + } + } + + if ($prototype['rest_argument'] !== null) { + return true; + } + + if ($positional > \count($prototype['arguments'])) { + return false; + } + + if ($nameUsed < \count($names)) { + return false; + } + + return true; + } + + /** + * Verifies that the argument invocation is valid for the callable prototype. + * + * @param array $prototype + * @param int $positional + * @param array $names + * @param bool $hasSplat + * + * @return void + * + * @throws SassScriptException + * + * @phpstan-param array{arguments: list, rest_argument: string|null} $prototype + */ + private function verifyPrototype(array $prototype, $positional, array $names, $hasSplat) + { + $nameUsed = 0; + + foreach ($prototype['arguments'] as $i => $argument) { + list ($name, $originalName, $default) = $argument; + + if ($i < $positional) { + if (isset($names[$name])) { + throw new SassScriptException(sprintf('Argument $%s was passed both by position and by name.', $originalName)); + } + } elseif (isset($names[$name])) { + $nameUsed++; + } elseif ($default === null) { + throw new SassScriptException(sprintf('Missing argument $%s', $originalName)); + } + } + + if ($prototype['rest_argument'] !== null) { + return; + } + + if ($positional > \count($prototype['arguments'])) { + $message = sprintf( + 'Only %d %sargument%s allowed, but %d %s passed.', + \count($prototype['arguments']), + empty($names) ? '' : 'positional ', + \count($prototype['arguments']) === 1 ? '' : 's', + $positional, + $positional === 1 ? 'was' : 'were' + ); + if (!$hasSplat) { + throw new SassScriptException($message); + } + + $message = $this->addLocationToMessage($message); + $message .= "\nThis will be an error in future versions of Sass."; + $this->logger->warn($message, true); + } + + if ($nameUsed < \count($names)) { + $unknownNames = array_values(array_diff($names, array_column($prototype['arguments'], 0))); + $lastName = array_pop($unknownNames); + $message = sprintf( + 'No argument%s named $%s%s.', + $unknownNames ? 's' : '', + $unknownNames ? implode(', $', $unknownNames) . ' or $' : '', + $lastName + ); + throw new SassScriptException($message); + } + } + + /** + * Evaluates the argument from the invocation. + * + * This returns several things about this invocation: + * - the list of positional arguments + * - the map of named arguments, indexed by normalized names + * - the set of names used in the arguments (that's an array using the normalized names as keys for O(1) access) + * - the separator used by the list using the splat operator, if any + * - a boolean indicator whether any splat argument (list or map) was used, to support the incomplete error reporting. + * + * @param array[] $args + * @param bool $reduce Whether arguments should be reduced to their value + * + * @return array + * + * @throws SassScriptException + * + * @phpstan-return array{0: list, 1: array, 2: array, 3: string|null, 4: bool} + */ + private function evaluateArguments(array $args, $reduce = true) + { + // this represents trailing commas + if (\count($args) && end($args) === static::$null) { + array_pop($args); + } + + $splatSeparator = null; + $keywordArgs = []; + $names = []; + $positionalArgs = []; + $hasKeywordArgument = false; + $hasSplat = false; + + foreach ($args as $arg) { + if (!empty($arg[0])) { + $hasKeywordArgument = true; + + assert(\is_string($arg[0][1])); + $name = str_replace('_', '-', $arg[0][1]); + + if (isset($keywordArgs[$name])) { + throw new SassScriptException(sprintf('Duplicate named argument $%s.', $arg[0][1])); + } + + $keywordArgs[$name] = $this->maybeReduce($reduce, $arg[1]); + $names[$name] = $name; + } elseif (! empty($arg[2])) { + // $arg[2] means a var followed by ... in the arg ($list... ) + $val = $this->reduce($arg[1], true); + $hasSplat = true; + + if ($val[0] === Type::T_LIST) { + foreach ($val[2] as $item) { + if (\is_null($splatSeparator)) { + $splatSeparator = $val[1]; + } + + $positionalArgs[] = $this->maybeReduce($reduce, $item); + } + + if (isset($val[3]) && \is_array($val[3])) { + foreach ($val[3] as $name => $item) { + assert(\is_string($name)); + + $normalizedName = str_replace('_', '-', $name); + + if (isset($keywordArgs[$normalizedName])) { + throw new SassScriptException(sprintf('Duplicate named argument $%s.', $name)); + } + + $keywordArgs[$normalizedName] = $this->maybeReduce($reduce, $item); + $names[$normalizedName] = $normalizedName; + $hasKeywordArgument = true; + } + } + } elseif ($val[0] === Type::T_MAP) { + foreach ($val[1] as $i => $name) { + $name = $this->compileStringContent($this->coerceString($name)); + $item = $val[2][$i]; + + if (! is_numeric($name)) { + $normalizedName = str_replace('_', '-', $name); + + if (isset($keywordArgs[$normalizedName])) { + throw new SassScriptException(sprintf('Duplicate named argument $%s.', $name)); + } + + $keywordArgs[$normalizedName] = $this->maybeReduce($reduce, $item); + $names[$normalizedName] = $normalizedName; + $hasKeywordArgument = true; + } else { + if (\is_null($splatSeparator)) { + $splatSeparator = $val[1]; + } + + $positionalArgs[] = $this->maybeReduce($reduce, $item); + } + } + } elseif ($val[0] !== Type::T_NULL) { // values other than null are treated a single-element lists, while null is the empty list + $positionalArgs[] = $this->maybeReduce($reduce, $val); + } + } elseif ($hasKeywordArgument) { + throw new SassScriptException('Positional arguments must come before keyword arguments.'); + } else { + $positionalArgs[] = $this->maybeReduce($reduce, $arg[1]); + } + } + + return [$positionalArgs, $keywordArgs, $names, $splatSeparator, $hasSplat]; + } + + /** + * @param bool $reduce + * @param array|Number $value + * + * @return array|Number + */ + private function maybeReduce($reduce, $value) + { + if ($reduce) { + return $this->reduce($value, true); + } + + return $value; + } + + /** + * Apply argument values per definition + * + * @param array[] $argDef + * @param array|null $argValues + * @param bool $storeInEnv + * @param bool $reduce only used if $storeInEnv = false + * + * @return array + * + * @phpstan-param list $argDef + * + * @throws \Exception + */ + protected function applyArguments($argDef, $argValues, $storeInEnv = true, $reduce = true) + { + $output = []; + + if (\is_null($argValues)) { + $argValues = []; + } + + if ($storeInEnv) { + $storeEnv = $this->getStoreEnv(); + + $env = new Environment(); + $env->store = $storeEnv->store; + } + + $prototype = ['arguments' => [], 'rest_argument' => null]; + $originalRestArgumentName = null; + + foreach ($argDef as $arg) { + list($name, $default, $isVariable) = $arg; + $normalizedName = str_replace('_', '-', $name); + + if ($isVariable) { + $originalRestArgumentName = $name; + $prototype['rest_argument'] = $normalizedName; + } else { + $prototype['arguments'][] = [$normalizedName, $name, !empty($default) ? $default : null]; + } + } + + list($positionalArgs, $namedArgs, $names, $splatSeparator, $hasSplat) = $this->evaluateArguments($argValues, $reduce); + + $this->verifyPrototype($prototype, \count($positionalArgs), $names, $hasSplat); + + $vars = $this->applyArgumentsToDeclaration($prototype, $positionalArgs, $namedArgs, $splatSeparator); + + foreach ($prototype['arguments'] as $argument) { + list($normalizedName, $name) = $argument; + + if (!isset($vars[$normalizedName])) { + continue; + } + + $val = $vars[$normalizedName]; + + if ($storeInEnv) { + $this->set($name, $this->reduce($val, true), true, $env); + } else { + $output[$name] = ($reduce ? $this->reduce($val, true) : $val); + } + } + + if ($prototype['rest_argument'] !== null) { + assert($originalRestArgumentName !== null); + $name = $originalRestArgumentName; + $val = $vars[$prototype['rest_argument']]; + + if ($storeInEnv) { + $this->set($name, $this->reduce($val, true), true, $env); + } else { + $output[$name] = ($reduce ? $this->reduce($val, true) : $val); + } + } + + if ($storeInEnv) { + $storeEnv->store = $env->store; + } + + foreach ($prototype['arguments'] as $argument) { + list($normalizedName, $name, $default) = $argument; + + if (isset($vars[$normalizedName])) { + continue; + } + assert($default !== null); + + if ($storeInEnv) { + $this->set($name, $this->reduce($default, true), true); + } else { + $output[$name] = ($reduce ? $this->reduce($default, true) : $default); + } + } + + return $output; + } + + /** + * Apply argument values per definition. + * + * This method assumes that the arguments are valid for the provided prototype. + * The validation with {@see verifyPrototype} must have been run before calling + * it. + * Arguments are returned as a map from the normalized argument names to the + * value. Additional arguments are collected in a sass argument list available + * under the name of the rest argument in the result. + * + * Defaults are not applied as they are resolved in a different environment. + * + * @param array $prototype + * @param array $positionalArgs + * @param array $namedArgs + * @param string|null $splatSeparator + * + * @return array + * + * @phpstan-param array{arguments: list, rest_argument: string|null} $prototype + */ + private function applyArgumentsToDeclaration(array $prototype, array $positionalArgs, array $namedArgs, $splatSeparator) + { + $output = []; + $minLength = min(\count($positionalArgs), \count($prototype['arguments'])); + + for ($i = 0; $i < $minLength; $i++) { + list($name) = $prototype['arguments'][$i]; + $val = $positionalArgs[$i]; + + $output[$name] = $val; + } + + $restNamed = $namedArgs; + + for ($i = \count($positionalArgs); $i < \count($prototype['arguments']); $i++) { + $argument = $prototype['arguments'][$i]; + list($name) = $argument; + + if (isset($namedArgs[$name])) { + $val = $namedArgs[$name]; + unset($restNamed[$name]); + } else { + continue; + } + + $output[$name] = $val; + } + + if ($prototype['rest_argument'] !== null) { + $name = $prototype['rest_argument']; + $rest = array_values(array_slice($positionalArgs, \count($prototype['arguments']))); + + $val = [Type::T_LIST, \is_null($splatSeparator) ? ',' : $splatSeparator , $rest, $restNamed]; + + $output[$name] = $val; + } + + return $output; + } + + /** + * Coerce a php value into a scss one + * + * @param mixed $value + * + * @return array|Number + */ + protected function coerceValue($value) + { + if (\is_array($value) || $value instanceof Number) { + return $value; + } + + if (\is_bool($value)) { + return $this->toBool($value); + } + + if (\is_null($value)) { + return static::$null; + } + + if (is_numeric($value)) { + return new Number($value, ''); + } + + if ($value === '') { + return static::$emptyString; + } + + $value = [Type::T_KEYWORD, $value]; + $color = $this->coerceColor($value); + + if ($color) { + return $color; + } + + return $value; + } + + /** + * Tries to convert an item to a Sass map + * + * @param Number|array $item + * + * @return array|null + */ + private function tryMap($item) + { + if ($item instanceof Number) { + return null; + } + + if ($item[0] === Type::T_MAP) { + return $item; + } + + if ( + $item[0] === Type::T_LIST && + $item[2] === [] + ) { + return static::$emptyMap; + } + + return null; + } + + /** + * Coerce something to map + * + * @param array|Number $item + * + * @return array|Number + */ + protected function coerceMap($item) + { + $map = $this->tryMap($item); + + if ($map !== null) { + return $map; + } + + return $item; + } + + /** + * Coerce something to list + * + * @param array|Number $item + * @param string $delim + * @param bool $removeTrailingNull + * + * @return array + */ + protected function coerceList($item, $delim = ',', $removeTrailingNull = false) + { + if ($item instanceof Number) { + return [Type::T_LIST, '', [$item]]; + } + + if ($item[0] === Type::T_LIST) { + // remove trailing null from the list + if ($removeTrailingNull && end($item[2]) === static::$null) { + array_pop($item[2]); + } + + return $item; + } + + if ($item[0] === Type::T_MAP) { + $keys = $item[1]; + $values = $item[2]; + $list = []; + + for ($i = 0, $s = \count($keys); $i < $s; $i++) { + $key = $keys[$i]; + $value = $values[$i]; + + $list[] = [ + Type::T_LIST, + ' ', + [$key, $value] + ]; + } + + return [Type::T_LIST, $list ? ',' : '', $list]; + } + + return [Type::T_LIST, '', [$item]]; + } + + /** + * Coerce color for expression + * + * @param array|Number $value + * + * @return array|Number + */ + protected function coerceForExpression($value) + { + if ($color = $this->coerceColor($value)) { + return $color; + } + + return $value; + } + + /** + * Coerce value to color + * + * @param array|Number $value + * @param bool $inRGBFunction + * + * @return array|null + */ + protected function coerceColor($value, $inRGBFunction = false) + { + if ($value instanceof Number) { + return null; + } + + switch ($value[0]) { + case Type::T_COLOR: + for ($i = 1; $i <= 3; $i++) { + if (! is_numeric($value[$i])) { + $cv = $this->compileRGBAValue($value[$i]); + + if (! is_numeric($cv)) { + return null; + } + + $value[$i] = $cv; + } + + if (isset($value[4])) { + if (! is_numeric($value[4])) { + $cv = $this->compileRGBAValue($value[4], true); + + if (! is_numeric($cv)) { + return null; + } + + $value[4] = $cv; + } + } + } + + return $value; + + case Type::T_LIST: + if ($inRGBFunction) { + if (\count($value[2]) == 3 || \count($value[2]) == 4) { + $color = $value[2]; + array_unshift($color, Type::T_COLOR); + + return $this->coerceColor($color); + } + } + + return null; + + case Type::T_KEYWORD: + if (! \is_string($value[1])) { + return null; + } + + $name = strtolower($value[1]); + + // hexa color? + if (preg_match('/^#([0-9a-f]+)$/i', $name, $m)) { + $nofValues = \strlen($m[1]); + + if (\in_array($nofValues, [3, 4, 6, 8])) { + $nbChannels = 3; + $color = []; + $num = hexdec($m[1]); + + switch ($nofValues) { + case 4: + $nbChannels = 4; + // then continuing with the case 3: + case 3: + for ($i = 0; $i < $nbChannels; $i++) { + $t = $num & 0xf; + array_unshift($color, $t << 4 | $t); + $num >>= 4; + } + + break; + + case 8: + $nbChannels = 4; + // then continuing with the case 6: + case 6: + for ($i = 0; $i < $nbChannels; $i++) { + array_unshift($color, $num & 0xff); + $num >>= 8; + } + + break; + } + + if ($nbChannels === 4) { + if ($color[3] === 255) { + $color[3] = 1; // fully opaque + } else { + $color[3] = round($color[3] / 255, Number::PRECISION); + } + } + + array_unshift($color, Type::T_COLOR); + + return $color; + } + } + + if ($rgba = Colors::colorNameToRGBa($name)) { + return isset($rgba[3]) + ? [Type::T_COLOR, $rgba[0], $rgba[1], $rgba[2], $rgba[3]] + : [Type::T_COLOR, $rgba[0], $rgba[1], $rgba[2]]; + } + + return null; + } + + return null; + } + + /** + * @param int|Number $value + * @param bool $isAlpha + * + * @return int|mixed + */ + protected function compileRGBAValue($value, $isAlpha = false) + { + if ($isAlpha) { + return $this->compileColorPartValue($value, 0, 1, false); + } + + return $this->compileColorPartValue($value, 0, 255, true); + } + + /** + * @param mixed $value + * @param int|float $min + * @param int|float $max + * @param bool $isInt + * + * @return int|mixed + */ + protected function compileColorPartValue($value, $min, $max, $isInt = true) + { + if (! is_numeric($value)) { + if (\is_array($value)) { + $reduced = $this->reduce($value); + + if ($reduced instanceof Number) { + $value = $reduced; + } + } + + if ($value instanceof Number) { + if ($value->unitless()) { + $num = $value->getDimension(); + } elseif ($value->hasUnit('%')) { + $num = $max * $value->getDimension() / 100; + } else { + throw $this->error('Expected %s to have no units or "%%".', $value); + } + + $value = $num; + } elseif (\is_array($value)) { + $value = $this->compileValue($value); + } + } + + if (is_numeric($value)) { + if ($isInt) { + $value = round($value); + } + + $value = min($max, max($min, $value)); + + return $value; + } + + return $value; + } + + /** + * Coerce value to string + * + * @param array|Number $value + * + * @return array + */ + protected function coerceString($value) + { + if ($value[0] === Type::T_STRING) { + assert(\is_array($value)); + + return $value; + } + + return [Type::T_STRING, '', [$this->compileValue($value)]]; + } + + /** + * Assert value is a string + * + * This method deals with internal implementation details of the value + * representation where unquoted strings can sometimes be stored under + * other types. + * The returned value is always using the T_STRING type. + * + * @api + * + * @param array|Number $value + * @param string|null $varName + * + * @return array + * + * @throws SassScriptException + */ + public function assertString($value, $varName = null) + { + // case of url(...) parsed a a function + if ($value[0] === Type::T_FUNCTION) { + $value = $this->coerceString($value); + } + + if (! \in_array($value[0], [Type::T_STRING, Type::T_KEYWORD])) { + $value = $this->compileValue($value); + throw SassScriptException::forArgument("$value is not a string.", $varName); + } + + return $this->coerceString($value); + } + + /** + * Coerce value to a percentage + * + * @param array|Number $value + * + * @return int|float + * + * @deprecated + */ + protected function coercePercent($value) + { + @trigger_error(sprintf('"%s" is deprecated since 1.7.0.', __METHOD__), E_USER_DEPRECATED); + + if ($value instanceof Number) { + if ($value->hasUnit('%')) { + return $value->getDimension() / 100; + } + + return $value->getDimension(); + } + + return 0; + } + + /** + * Assert value is a map + * + * @api + * + * @param array|Number $value + * @param string|null $varName + * + * @return array + * + * @throws SassScriptException + */ + public function assertMap($value, $varName = null) + { + $map = $this->tryMap($value); + + if ($map === null) { + $value = $this->compileValue($value); + + throw SassScriptException::forArgument("$value is not a map.", $varName); + } + + return $map; + } + + /** + * Assert value is a list + * + * @api + * + * @param array|Number $value + * + * @return array + * + * @throws \Exception + */ + public function assertList($value) + { + if ($value[0] !== Type::T_LIST) { + throw $this->error('expecting list, %s received', $value[0]); + } + assert(\is_array($value)); + + return $value; + } + + /** + * Gets the keywords of an argument list. + * + * Keys in the returned array are normalized names (underscores are replaced with dashes) + * without the leading `$`. + * Calling this helper with anything that an argument list received for a rest argument + * of the function argument declaration is not supported. + * + * @param array|Number $value + * + * @return array + */ + public function getArgumentListKeywords($value) + { + if ($value[0] !== Type::T_LIST || !isset($value[3]) || !\is_array($value[3])) { + throw new \InvalidArgumentException('The argument is not a sass argument list.'); + } + + return $value[3]; + } + + /** + * Assert value is a color + * + * @api + * + * @param array|Number $value + * @param string|null $varName + * + * @return array + * + * @throws SassScriptException + */ + public function assertColor($value, $varName = null) + { + if ($color = $this->coerceColor($value)) { + return $color; + } + + $value = $this->compileValue($value); + + throw SassScriptException::forArgument("$value is not a color.", $varName); + } + + /** + * Assert value is a number + * + * @api + * + * @param array|Number $value + * @param string|null $varName + * + * @return Number + * + * @throws SassScriptException + */ + public function assertNumber($value, $varName = null) + { + if (!$value instanceof Number) { + $value = $this->compileValue($value); + throw SassScriptException::forArgument("$value is not a number.", $varName); + } + + return $value; + } + + /** + * Assert value is a integer + * + * @api + * + * @param array|Number $value + * @param string|null $varName + * + * @return int + * + * @throws SassScriptException + */ + public function assertInteger($value, $varName = null) + { + $value = $this->assertNumber($value, $varName)->getDimension(); + if (round($value - \intval($value), Number::PRECISION) > 0) { + throw SassScriptException::forArgument("$value is not an integer.", $varName); + } + + return intval($value); + } + + /** + * Extract the ... / alpha on the last argument of channel arg + * in color functions + * + * @param array $args + * @return array + */ + private function extractSlashAlphaInColorFunction($args) + { + $last = end($args); + if (\count($args) === 3 && $last[0] === Type::T_EXPRESSION && $last[1] === '/') { + array_pop($args); + $args[] = $last[2]; + $args[] = $last[3]; + } + return $args; + } + + + /** + * Make sure a color's components don't go out of bounds + * + * @param array $c + * + * @return array + */ + protected function fixColor($c) + { + foreach ([1, 2, 3] as $i) { + if ($c[$i] < 0) { + $c[$i] = 0; + } + + if ($c[$i] > 255) { + $c[$i] = 255; + } + + if (!\is_int($c[$i])) { + $c[$i] = round($c[$i]); + } + } + + return $c; + } + + /** + * Convert RGB to HSL + * + * @internal + * + * @param int $red + * @param int $green + * @param int $blue + * + * @return array + */ + public function toHSL($red, $green, $blue) + { + $min = min($red, $green, $blue); + $max = max($red, $green, $blue); + + $l = $min + $max; + $d = $max - $min; + + if ((int) $d === 0) { + $h = $s = 0; + } else { + if ($l < 255) { + $s = $d / $l; + } else { + $s = $d / (510 - $l); + } + + if ($red == $max) { + $h = 60 * ($green - $blue) / $d; + } elseif ($green == $max) { + $h = 60 * ($blue - $red) / $d + 120; + } else { + $h = 60 * ($red - $green) / $d + 240; + } + } + + return [Type::T_HSL, fmod($h + 360, 360), $s * 100, $l / 5.1]; + } + + /** + * Hue to RGB helper + * + * @param float $m1 + * @param float $m2 + * @param float $h + * + * @return float + */ + protected function hueToRGB($m1, $m2, $h) + { + if ($h < 0) { + $h += 1; + } elseif ($h > 1) { + $h -= 1; + } + + if ($h * 6 < 1) { + return $m1 + ($m2 - $m1) * $h * 6; + } + + if ($h * 2 < 1) { + return $m2; + } + + if ($h * 3 < 2) { + return $m1 + ($m2 - $m1) * (2 / 3 - $h) * 6; + } + + return $m1; + } + + /** + * Convert HSL to RGB + * + * @internal + * + * @param int|float $hue H from 0 to 360 + * @param int|float $saturation S from 0 to 100 + * @param int|float $lightness L from 0 to 100 + * + * @return array + */ + public function toRGB($hue, $saturation, $lightness) + { + if ($hue < 0) { + $hue += 360; + } + + $h = $hue / 360; + $s = min(100, max(0, $saturation)) / 100; + $l = min(100, max(0, $lightness)) / 100; + + $m2 = $l <= 0.5 ? $l * ($s + 1) : $l + $s - $l * $s; + $m1 = $l * 2 - $m2; + + $r = $this->hueToRGB($m1, $m2, $h + 1 / 3) * 255; + $g = $this->hueToRGB($m1, $m2, $h) * 255; + $b = $this->hueToRGB($m1, $m2, $h - 1 / 3) * 255; + + $out = [Type::T_COLOR, $r, $g, $b]; + + return $out; + } + + /** + * Convert HWB to RGB + * https://www.w3.org/TR/css-color-4/#hwb-to-rgb + * + * @api + * + * @param int|float $hue H from 0 to 360 + * @param int|float $whiteness W from 0 to 100 + * @param int|float $blackness B from 0 to 100 + * + * @return array + */ + private function HWBtoRGB($hue, $whiteness, $blackness) + { + $w = min(100, max(0, $whiteness)) / 100; + $b = min(100, max(0, $blackness)) / 100; + + $sum = $w + $b; + if ($sum > 1.0) { + $w = $w / $sum; + $b = $b / $sum; + } + $b = min(1.0 - $w, $b); + + $rgb = $this->toRGB($hue, 100, 50); + for($i = 1; $i < 4; $i++) { + $rgb[$i] *= (1.0 - $w - $b); + $rgb[$i] = round($rgb[$i] + 255 * $w + 0.0001); + } + + return $rgb; + } + + /** + * Convert RGB to HWB + * + * @api + * + * @param int $red + * @param int $green + * @param int $blue + * + * @return array + */ + private function RGBtoHWB($red, $green, $blue) + { + $min = min($red, $green, $blue); + $max = max($red, $green, $blue); + + $d = $max - $min; + + if ((int) $d === 0) { + $h = 0; + } else { + + if ($red == $max) { + $h = 60 * ($green - $blue) / $d; + } elseif ($green == $max) { + $h = 60 * ($blue - $red) / $d + 120; + } else { + $h = 60 * ($red - $green) / $d + 240; + } + } + + return [Type::T_HWB, fmod($h, 360), $min / 255 * 100, 100 - $max / 255 *100]; + } + + + // Built in functions + + protected static $libCall = ['function', 'args...']; + protected function libCall($args) + { + $functionReference = $args[0]; + + if (in_array($functionReference[0], [Type::T_STRING, Type::T_KEYWORD])) { + $name = $this->compileStringContent($this->coerceString($functionReference)); + $warning = "Passing a string to call() is deprecated and will be illegal\n" + . "in Sass 4.0. Use call(function-reference($name)) instead."; + Warn::deprecation($warning); + $functionReference = $this->libGetFunction([$this->assertString($functionReference, 'function')]); + } + + if ($functionReference === static::$null) { + return static::$null; + } + + if (! in_array($functionReference[0], [Type::T_FUNCTION_REFERENCE, Type::T_FUNCTION])) { + throw $this->error('Function reference expected, got ' . $functionReference[0]); + } + + $callArgs = [ + [null, $args[1], true] + ]; + + return $this->reduce([Type::T_FUNCTION_CALL, $functionReference, $callArgs]); + } + + + protected static $libGetFunction = [ + ['name'], + ['name', 'css'] + ]; + protected function libGetFunction($args) + { + $name = $this->compileStringContent($this->assertString(array_shift($args), 'name')); + $isCss = false; + + if (count($args)) { + $isCss = array_shift($args); + $isCss = (($isCss === static::$true) ? true : false); + } + + if ($isCss) { + return [Type::T_FUNCTION, $name, [Type::T_LIST, ',', []]]; + } + + return $this->getFunctionReference($name, true); + } + + protected static $libIf = ['condition', 'if-true', 'if-false:']; + protected function libIf($args) + { + list($cond, $t, $f) = $args; + + if (! $this->isTruthy($this->reduce($cond, true))) { + return $this->reduce($f, true); + } + + return $this->reduce($t, true); + } + + protected static $libIndex = ['list', 'value']; + protected function libIndex($args) + { + list($list, $value) = $args; + + if ( + $list[0] === Type::T_MAP || + $list[0] === Type::T_STRING || + $list[0] === Type::T_KEYWORD || + $list[0] === Type::T_INTERPOLATE + ) { + $list = $this->coerceList($list, ' '); + } + + if ($list[0] !== Type::T_LIST) { + return static::$null; + } + + // Numbers are represented with value objects, for which the PHP equality operator does not + // match the Sass rules (and we cannot overload it). As they are the only type of values + // represented with a value object for now, they require a special case. + if ($value instanceof Number) { + $key = 0; + foreach ($list[2] as $item) { + $key++; + $itemValue = $this->normalizeValue($item); + + if ($itemValue instanceof Number && $value->equals($itemValue)) { + return new Number($key, ''); + } + } + return static::$null; + } + + $values = []; + + foreach ($list[2] as $item) { + $values[] = $this->normalizeValue($item); + } + + $key = array_search($this->normalizeValue($value), $values); + + return false === $key ? static::$null : new Number($key + 1, ''); + } + + protected static $libRgb = [ + ['color'], + ['color', 'alpha'], + ['channels'], + ['red', 'green', 'blue'], + ['red', 'green', 'blue', 'alpha'] ]; + + /** + * @param array $args + * @param array $kwargs + * @param string $funcName + * + * @return array + */ + protected function libRgb($args, $kwargs, $funcName = 'rgb') + { + switch (\count($args)) { + case 1: + if (! $color = $this->coerceColor($args[0], true)) { + $color = [Type::T_STRING, '', [$funcName . '(', $args[0], ')']]; + } + break; + + case 3: + $color = [Type::T_COLOR, $args[0], $args[1], $args[2]]; + + if (! $color = $this->coerceColor($color)) { + $color = [Type::T_STRING, '', [$funcName . '(', $args[0], ', ', $args[1], ', ', $args[2], ')']]; + } + + return $color; + + case 2: + if ($color = $this->coerceColor($args[0], true)) { + $alpha = $this->compileRGBAValue($args[1], true); + + if (is_numeric($alpha)) { + $color[4] = $alpha; + } else { + $color = [Type::T_STRING, '', + [$funcName . '(', $color[1], ', ', $color[2], ', ', $color[3], ', ', $alpha, ')']]; + } + } else { + $color = [Type::T_STRING, '', [$funcName . '(', $args[0], ', ', $args[1], ')']]; + } + break; + + case 4: + default: + $color = [Type::T_COLOR, $args[0], $args[1], $args[2], $args[3]]; + + if (! $color = $this->coerceColor($color)) { + $color = [Type::T_STRING, '', + [$funcName . '(', $args[0], ', ', $args[1], ', ', $args[2], ', ', $args[3], ')']]; + } + break; + } + + return $color; + } + + protected static $libRgba = [ + ['color'], + ['color', 'alpha'], + ['channels'], + ['red', 'green', 'blue'], + ['red', 'green', 'blue', 'alpha'] ]; + protected function libRgba($args, $kwargs) + { + return $this->libRgb($args, $kwargs, 'rgba'); + } + + /** + * Helper function for adjust_color, change_color, and scale_color + * + * @param array $args + * @param string $operation + * @param callable $fn + * + * @return array + * + * @phpstan-param callable(float|int, float|int|null, float|int): (float|int) $fn + */ + protected function alterColor(array $args, $operation, $fn) + { + $color = $this->assertColor($args[0], 'color'); + + if ($args[1][2]) { + throw new SassScriptException('Only one positional argument is allowed. All other arguments must be passed by name.'); + } + + $kwargs = $this->getArgumentListKeywords($args[1]); + + $scale = $operation === 'scale'; + $change = $operation === 'change'; + + /** @phpstan-var callable(string, float|int, bool=, bool=): (float|int|null) $getParam */ + $getParam = function ($name, $max, $checkPercent = false, $assertPercent = false) use (&$kwargs, $scale, $change) { + if (!isset($kwargs[$name])) { + return null; + } + + $number = $this->assertNumber($kwargs[$name], $name); + unset($kwargs[$name]); + + if (!$scale && $checkPercent) { + if (!$number->hasUnit('%')) { + $warning = $this->error("{$name} Passing a number `$number` without unit % is deprecated."); + $this->logger->warn($warning->getMessage(), true); + } + } + + if ($scale || $assertPercent) { + $number->assertUnit('%', $name); + } + + if ($scale) { + $max = 100; + } + + return $number->valueInRange($change ? 0 : -$max, $max, $name); + }; + + $alpha = $getParam('alpha', 1); + $red = $getParam('red', 255); + $green = $getParam('green', 255); + $blue = $getParam('blue', 255); + + if ($scale || !isset($kwargs['hue'])) { + $hue = null; + } else { + $hueNumber = $this->assertNumber($kwargs['hue'], 'hue'); + unset($kwargs['hue']); + $hue = $hueNumber->getDimension(); + } + $saturation = $getParam('saturation', 100, true); + $lightness = $getParam('lightness', 100, true); + $whiteness = $getParam('whiteness', 100, false, true); + $blackness = $getParam('blackness', 100, false, true); + + if (!empty($kwargs)) { + $unknownNames = array_keys($kwargs); + $lastName = array_pop($unknownNames); + $message = sprintf( + 'No argument%s named $%s%s.', + $unknownNames ? 's' : '', + $unknownNames ? implode(', $', $unknownNames) . ' or $' : '', + $lastName + ); + throw new SassScriptException($message); + } + + $hasRgb = $red !== null || $green !== null || $blue !== null; + $hasSL = $saturation !== null || $lightness !== null; + $hasWB = $whiteness !== null || $blackness !== null; + + if ($hasRgb && ($hasSL || $hasWB || $hue !== null)) { + throw new SassScriptException(sprintf('RGB parameters may not be passed along with %s parameters.', $hasWB ? 'HWB' : 'HSL')); + } + + if ($hasWB && $hasSL) { + throw new SassScriptException('HSL parameters may not be passed along with HWB parameters.'); + } + + if ($hasRgb) { + $color[1] = round($fn($color[1], $red, 255)); + $color[2] = round($fn($color[2], $green, 255)); + $color[3] = round($fn($color[3], $blue, 255)); + } elseif ($hasWB) { + $hwb = $this->RGBtoHWB($color[1], $color[2], $color[3]); + if ($hue !== null) { + $hwb[1] = $change ? $hue : $hwb[1] + $hue; + } + $hwb[2] = $fn($hwb[2], $whiteness, 100); + $hwb[3] = $fn($hwb[3], $blackness, 100); + + $rgb = $this->HWBtoRGB($hwb[1], $hwb[2], $hwb[3]); + + if (isset($color[4])) { + $rgb[4] = $color[4]; + } + + $color = $rgb; + } elseif ($hue !== null || $hasSL) { + $hsl = $this->toHSL($color[1], $color[2], $color[3]); + + if ($hue !== null) { + $hsl[1] = $change ? $hue : $hsl[1] + $hue; + } + $hsl[2] = $fn($hsl[2], $saturation, 100); + $hsl[3] = $fn($hsl[3], $lightness, 100); + + $rgb = $this->toRGB($hsl[1], $hsl[2], $hsl[3]); + + if (isset($color[4])) { + $rgb[4] = $color[4]; + } + + $color = $rgb; + } + + if ($alpha !== null) { + $existingAlpha = isset($color[4]) ? $color[4] : 1; + $color[4] = $fn($existingAlpha, $alpha, 1); + } + + return $color; + } + + protected static $libAdjustColor = ['color', 'kwargs...']; + protected function libAdjustColor($args) + { + return $this->alterColor($args, 'adjust', function ($base, $alter, $max) { + if ($alter === null) { + return $base; + } + + $new = $base + $alter; + + if ($new < 0) { + return 0; + } + + if ($new > $max) { + return $max; + } + + return $new; + }); + } + + protected static $libChangeColor = ['color', 'kwargs...']; + protected function libChangeColor($args) + { + return $this->alterColor($args,'change', function ($base, $alter, $max) { + if ($alter === null) { + return $base; + } + + return $alter; + }); + } + + protected static $libScaleColor = ['color', 'kwargs...']; + protected function libScaleColor($args) + { + return $this->alterColor($args, 'scale', function ($base, $scale, $max) { + if ($scale === null) { + return $base; + } + + $scale = $scale / 100; + + if ($scale < 0) { + return $base * $scale + $base; + } + + return ($max - $base) * $scale + $base; + }); + } + + protected static $libIeHexStr = ['color']; + protected function libIeHexStr($args) + { + $color = $this->coerceColor($args[0]); + + if (\is_null($color)) { + throw $this->error('Error: argument `$color` of `ie-hex-str($color)` must be a color'); + } + + $color[4] = isset($color[4]) ? round(255 * $color[4]) : 255; + + return [Type::T_STRING, '', [sprintf('#%02X%02X%02X%02X', $color[4], $color[1], $color[2], $color[3])]]; + } + + protected static $libRed = ['color']; + protected function libRed($args) + { + $color = $this->coerceColor($args[0]); + + if (\is_null($color)) { + throw $this->error('Error: argument `$color` of `red($color)` must be a color'); + } + + return new Number((int) $color[1], ''); + } + + protected static $libGreen = ['color']; + protected function libGreen($args) + { + $color = $this->coerceColor($args[0]); + + if (\is_null($color)) { + throw $this->error('Error: argument `$color` of `green($color)` must be a color'); + } + + return new Number((int) $color[2], ''); + } + + protected static $libBlue = ['color']; + protected function libBlue($args) + { + $color = $this->coerceColor($args[0]); + + if (\is_null($color)) { + throw $this->error('Error: argument `$color` of `blue($color)` must be a color'); + } + + return new Number((int) $color[3], ''); + } + + protected static $libAlpha = ['color']; + protected function libAlpha($args) + { + if ($color = $this->coerceColor($args[0])) { + return new Number(isset($color[4]) ? $color[4] : 1, ''); + } + + // this might be the IE function, so return value unchanged + return null; + } + + protected static $libOpacity = ['color']; + protected function libOpacity($args) + { + $value = $args[0]; + + if ($value instanceof Number) { + return null; + } + + return $this->libAlpha($args); + } + + // mix two colors + protected static $libMix = [ + ['color1', 'color2', 'weight:50%'], + ['color-1', 'color-2', 'weight:50%'] + ]; + protected function libMix($args) + { + list($first, $second, $weight) = $args; + + $first = $this->assertColor($first, 'color1'); + $second = $this->assertColor($second, 'color2'); + $weightScale = $this->assertNumber($weight, 'weight')->valueInRange(0, 100, 'weight') / 100; + + $firstAlpha = isset($first[4]) ? $first[4] : 1; + $secondAlpha = isset($second[4]) ? $second[4] : 1; + + $normalizedWeight = $weightScale * 2 - 1; + $alphaDistance = $firstAlpha - $secondAlpha; + + $combinedWeight = $normalizedWeight * $alphaDistance == -1 ? $normalizedWeight : ($normalizedWeight + $alphaDistance) / (1 + $normalizedWeight * $alphaDistance); + $weight1 = ($combinedWeight + 1) / 2.0; + $weight2 = 1.0 - $weight1; + + $new = [Type::T_COLOR, + $weight1 * $first[1] + $weight2 * $second[1], + $weight1 * $first[2] + $weight2 * $second[2], + $weight1 * $first[3] + $weight2 * $second[3], + ]; + + if ($firstAlpha != 1.0 || $secondAlpha != 1.0) { + $new[] = $firstAlpha * $weightScale + $secondAlpha * (1 - $weightScale); + } + + return $this->fixColor($new); + } + + protected static $libHsl = [ + ['channels'], + ['hue', 'saturation'], + ['hue', 'saturation', 'lightness'], + ['hue', 'saturation', 'lightness', 'alpha'] ]; + + /** + * @param array $args + * @param array $kwargs + * @param string $funcName + * + * @return array|null + */ + protected function libHsl($args, $kwargs, $funcName = 'hsl') + { + $args_to_check = $args; + + if (\count($args) == 1) { + if ($args[0][0] !== Type::T_LIST || \count($args[0][2]) < 3 || \count($args[0][2]) > 4) { + return [Type::T_STRING, '', [$funcName . '(', $args[0], ')']]; + } + + $args = $args[0][2]; + $args_to_check = $kwargs['channels'][2]; + } + + if (\count($args) === 2) { + // if var() is used as an argument, return as a css function + foreach ($args as $arg) { + if ($arg[0] === Type::T_FUNCTION && in_array($arg[1], ['var'])) { + return null; + } + } + + throw new SassScriptException('Missing argument $lightness.'); + } + + foreach ($kwargs as $arg) { + if (in_array($arg[0], [Type::T_FUNCTION_CALL, Type::T_FUNCTION]) && in_array($arg[1], ['min', 'max'])) { + return null; + } + } + + foreach ($args_to_check as $k => $arg) { + if (in_array($arg[0], [Type::T_FUNCTION_CALL, Type::T_FUNCTION]) && in_array($arg[1], ['min', 'max'])) { + if (count($kwargs) > 1 || ($k >= 2 && count($args) === 4)) { + return null; + } + + $args[$k] = $this->stringifyFncallArgs($arg); + } + + if ( + $k >= 2 && count($args) === 4 && + in_array($arg[0], [Type::T_FUNCTION_CALL, Type::T_FUNCTION]) && + in_array($arg[1], ['calc','env']) + ) { + return null; + } + } + + $hue = $this->reduce($args[0]); + $saturation = $this->reduce($args[1]); + $lightness = $this->reduce($args[2]); + $alpha = null; + + if (\count($args) === 4) { + $alpha = $this->compileColorPartValue($args[3], 0, 100, false); + + if (!$hue instanceof Number || !$saturation instanceof Number || ! $lightness instanceof Number || ! is_numeric($alpha)) { + return [Type::T_STRING, '', + [$funcName . '(', $args[0], ', ', $args[1], ', ', $args[2], ', ', $args[3], ')']]; + } + } else { + if (!$hue instanceof Number || !$saturation instanceof Number || ! $lightness instanceof Number) { + return [Type::T_STRING, '', [$funcName . '(', $args[0], ', ', $args[1], ', ', $args[2], ')']]; + } + } + + $hueValue = fmod($hue->getDimension(), 360); + + while ($hueValue < 0) { + $hueValue += 360; + } + + $color = $this->toRGB($hueValue, max(0, min($saturation->getDimension(), 100)), max(0, min($lightness->getDimension(), 100))); + + if (! \is_null($alpha)) { + $color[4] = $alpha; + } + + return $color; + } + + protected static $libHsla = [ + ['channels'], + ['hue', 'saturation'], + ['hue', 'saturation', 'lightness'], + ['hue', 'saturation', 'lightness', 'alpha']]; + protected function libHsla($args, $kwargs) + { + return $this->libHsl($args, $kwargs, 'hsla'); + } + + protected static $libHue = ['color']; + protected function libHue($args) + { + $color = $this->assertColor($args[0], 'color'); + $hsl = $this->toHSL($color[1], $color[2], $color[3]); + + return new Number($hsl[1], 'deg'); + } + + protected static $libSaturation = ['color']; + protected function libSaturation($args) + { + $color = $this->assertColor($args[0], 'color'); + $hsl = $this->toHSL($color[1], $color[2], $color[3]); + + return new Number($hsl[2], '%'); + } + + protected static $libLightness = ['color']; + protected function libLightness($args) + { + $color = $this->assertColor($args[0], 'color'); + $hsl = $this->toHSL($color[1], $color[2], $color[3]); + + return new Number($hsl[3], '%'); + } + + /* + * Todo : a integrer dans le futur module color + protected static $libHwb = [ + ['channels'], + ['hue', 'whiteness', 'blackness'], + ['hue', 'whiteness', 'blackness', 'alpha'] ]; + protected function libHwb($args, $kwargs, $funcName = 'hwb') + { + $args_to_check = $args; + + if (\count($args) == 1) { + if ($args[0][0] !== Type::T_LIST) { + throw $this->error("Missing elements \$whiteness and \$blackness"); + } + + if (\trim($args[0][1])) { + throw $this->error("\$channels must be a space-separated list."); + } + + if (! empty($args[0]['enclosing'])) { + throw $this->error("\$channels must be an unbracketed list."); + } + + $args = $args[0][2]; + if (\count($args) > 3) { + throw $this->error("hwb() : Only 3 elements are allowed but ". \count($args) . "were passed"); + } + + $args_to_check = $this->extractSlashAlphaInColorFunction($kwargs['channels'][2]); + if (\count($args_to_check) !== \count($kwargs['channels'][2])) { + $args = $args_to_check; + } + } + + if (\count($args_to_check) < 2) { + throw $this->error("Missing elements \$whiteness and \$blackness"); + } + if (\count($args_to_check) < 3) { + throw $this->error("Missing element \$blackness"); + } + if (\count($args_to_check) > 4) { + throw $this->error("hwb() : Only 4 elements are allowed but ". \count($args) . "were passed"); + } + + foreach ($kwargs as $k => $arg) { + if (in_array($arg[0], [Type::T_FUNCTION_CALL]) && in_array($arg[1], ['min', 'max'])) { + return null; + } + } + + foreach ($args_to_check as $k => $arg) { + if (in_array($arg[0], [Type::T_FUNCTION_CALL]) && in_array($arg[1], ['min', 'max'])) { + if (count($kwargs) > 1 || ($k >= 2 && count($args) === 4)) { + return null; + } + + $args[$k] = $this->stringifyFncallArgs($arg); + } + + if ( + $k >= 2 && count($args) === 4 && + in_array($arg[0], [Type::T_FUNCTION_CALL, Type::T_FUNCTION]) && + in_array($arg[1], ['calc','env']) + ) { + return null; + } + } + + $hue = $this->reduce($args[0]); + $whiteness = $this->reduce($args[1]); + $blackness = $this->reduce($args[2]); + $alpha = null; + + if (\count($args) === 4) { + $alpha = $this->compileColorPartValue($args[3], 0, 1, false); + + if (! \is_numeric($alpha)) { + $val = $this->compileValue($args[3]); + throw $this->error("\$alpha: $val is not a number"); + } + } + + $this->assertNumber($hue, 'hue'); + $this->assertUnit($whiteness, ['%'], 'whiteness'); + $this->assertUnit($blackness, ['%'], 'blackness'); + + $this->assertRange($whiteness, 0, 100, "0% and 100%", "whiteness"); + $this->assertRange($blackness, 0, 100, "0% and 100%", "blackness"); + + $w = $whiteness->getDimension(); + $b = $blackness->getDimension(); + + $hueValue = $hue->getDimension() % 360; + + while ($hueValue < 0) { + $hueValue += 360; + } + + $color = $this->HWBtoRGB($hueValue, $w, $b); + + if (! \is_null($alpha)) { + $color[4] = $alpha; + } + + return $color; + } + + protected static $libWhiteness = ['color']; + protected function libWhiteness($args, $kwargs, $funcName = 'whiteness') { + + $color = $this->assertColor($args[0]); + $hwb = $this->RGBtoHWB($color[1], $color[2], $color[3]); + + return new Number($hwb[2], '%'); + } + + protected static $libBlackness = ['color']; + protected function libBlackness($args, $kwargs, $funcName = 'blackness') { + + $color = $this->assertColor($args[0]); + $hwb = $this->RGBtoHWB($color[1], $color[2], $color[3]); + + return new Number($hwb[3], '%'); + } + */ + + /** + * @param array $color + * @param int $idx + * @param int|float $amount + * + * @return array + */ + protected function adjustHsl($color, $idx, $amount) + { + $hsl = $this->toHSL($color[1], $color[2], $color[3]); + $hsl[$idx] += $amount; + + if ($idx !== 1) { + // Clamp the saturation and lightness + $hsl[$idx] = min(max(0, $hsl[$idx]), 100); + } + + $out = $this->toRGB($hsl[1], $hsl[2], $hsl[3]); + + if (isset($color[4])) { + $out[4] = $color[4]; + } + + return $out; + } + + protected static $libAdjustHue = ['color', 'degrees']; + protected function libAdjustHue($args) + { + $color = $this->assertColor($args[0], 'color'); + $degrees = $this->assertNumber($args[1], 'degrees')->getDimension(); + + return $this->adjustHsl($color, 1, $degrees); + } + + protected static $libLighten = ['color', 'amount']; + protected function libLighten($args) + { + $color = $this->assertColor($args[0], 'color'); + $amount = Util::checkRange('amount', new Range(0, 100), $args[1], '%'); + + return $this->adjustHsl($color, 3, $amount); + } + + protected static $libDarken = ['color', 'amount']; + protected function libDarken($args) + { + $color = $this->assertColor($args[0], 'color'); + $amount = Util::checkRange('amount', new Range(0, 100), $args[1], '%'); + + return $this->adjustHsl($color, 3, -$amount); + } + + protected static $libSaturate = [['color', 'amount'], ['amount']]; + protected function libSaturate($args) + { + $value = $args[0]; + + if (count($args) === 1) { + $this->assertNumber($args[0], 'amount'); + + return null; + } + + $color = $this->assertColor($args[0], 'color'); + $amount = $this->assertNumber($args[1], 'amount'); + + return $this->adjustHsl($color, 2, $amount->valueInRange(0, 100, 'amount')); + } + + protected static $libDesaturate = ['color', 'amount']; + protected function libDesaturate($args) + { + $color = $this->assertColor($args[0], 'color'); + $amount = $this->assertNumber($args[1], 'amount'); + + return $this->adjustHsl($color, 2, -$amount->valueInRange(0, 100, 'amount')); + } + + protected static $libGrayscale = ['color']; + protected function libGrayscale($args) + { + $value = $args[0]; + + if ($value instanceof Number) { + return null; + } + + return $this->adjustHsl($this->assertColor($value, 'color'), 2, -100); + } + + protected static $libComplement = ['color']; + protected function libComplement($args) + { + return $this->adjustHsl($this->assertColor($args[0], 'color'), 1, 180); + } + + protected static $libInvert = ['color', 'weight:100%']; + protected function libInvert($args) + { + $value = $args[0]; + + $weight = $this->assertNumber($args[1], 'weight'); + + if ($value instanceof Number) { + if ($weight->getDimension() != 100 || !$weight->hasUnit('%')) { + throw new SassScriptException('Only one argument may be passed to the plain-CSS invert() function.'); + } + + return null; + } + + $color = $this->assertColor($value, 'color'); + $inverted = $color; + $inverted[1] = 255 - $inverted[1]; + $inverted[2] = 255 - $inverted[2]; + $inverted[3] = 255 - $inverted[3]; + + return $this->libMix([$inverted, $color, $weight]); + } + + // increases opacity by amount + protected static $libOpacify = ['color', 'amount']; + protected function libOpacify($args) + { + $color = $this->assertColor($args[0], 'color'); + $amount = $this->assertNumber($args[1], 'amount'); + + $color[4] = (isset($color[4]) ? $color[4] : 1) + $amount->valueInRange(0, 1, 'amount'); + $color[4] = min(1, max(0, $color[4])); + + return $color; + } + + protected static $libFadeIn = ['color', 'amount']; + protected function libFadeIn($args) + { + return $this->libOpacify($args); + } + + // decreases opacity by amount + protected static $libTransparentize = ['color', 'amount']; + protected function libTransparentize($args) + { + $color = $this->assertColor($args[0], 'color'); + $amount = $this->assertNumber($args[1], 'amount'); + + $color[4] = (isset($color[4]) ? $color[4] : 1) - $amount->valueInRange(0, 1, 'amount'); + $color[4] = min(1, max(0, $color[4])); + + return $color; + } + + protected static $libFadeOut = ['color', 'amount']; + protected function libFadeOut($args) + { + return $this->libTransparentize($args); + } + + protected static $libUnquote = ['string']; + protected function libUnquote($args) + { + try { + $str = $this->assertString($args[0], 'string'); + } catch (SassScriptException $e) { + $value = $this->compileValue($args[0]); + $fname = $this->getPrettyPath($this->sourceNames[$this->sourceIndex]); + $line = $this->sourceLine; + + $message = "Passing $value, a non-string value, to unquote() +will be an error in future versions of Sass.\n on line $line of $fname"; + + $this->logger->warn($message, true); + + return $args[0]; + } + + $str[1] = ''; + + return $str; + } + + protected static $libQuote = ['string']; + protected function libQuote($args) + { + $value = $this->assertString($args[0], 'string'); + + $value[1] = '"'; + + return $value; + } + + protected static $libPercentage = ['number']; + protected function libPercentage($args) + { + $num = $this->assertNumber($args[0], 'number'); + $num->assertNoUnits('number'); + + return new Number($num->getDimension() * 100, '%'); + } + + protected static $libRound = ['number']; + protected function libRound($args) + { + $num = $this->assertNumber($args[0], 'number'); + + return new Number(round($num->getDimension()), $num->getNumeratorUnits(), $num->getDenominatorUnits()); + } + + protected static $libFloor = ['number']; + protected function libFloor($args) + { + $num = $this->assertNumber($args[0], 'number'); + + return new Number(floor($num->getDimension()), $num->getNumeratorUnits(), $num->getDenominatorUnits()); + } + + protected static $libCeil = ['number']; + protected function libCeil($args) + { + $num = $this->assertNumber($args[0], 'number'); + + return new Number(ceil($num->getDimension()), $num->getNumeratorUnits(), $num->getDenominatorUnits()); + } + + protected static $libAbs = ['number']; + protected function libAbs($args) + { + $num = $this->assertNumber($args[0], 'number'); + + return new Number(abs($num->getDimension()), $num->getNumeratorUnits(), $num->getDenominatorUnits()); + } + + protected static $libMin = ['numbers...']; + protected function libMin($args) + { + /** + * @var Number|null + */ + $min = null; + + foreach ($args[0][2] as $arg) { + $number = $this->assertNumber($arg); + + if (\is_null($min) || $min->greaterThan($number)) { + $min = $number; + } + } + + if (!\is_null($min)) { + return $min; + } + + throw $this->error('At least one argument must be passed.'); + } + + protected static $libMax = ['numbers...']; + protected function libMax($args) + { + /** + * @var Number|null + */ + $max = null; + + foreach ($args[0][2] as $arg) { + $number = $this->assertNumber($arg); + + if (\is_null($max) || $max->lessThan($number)) { + $max = $number; + } + } + + if (!\is_null($max)) { + return $max; + } + + throw $this->error('At least one argument must be passed.'); + } + + protected static $libLength = ['list']; + protected function libLength($args) + { + $list = $this->coerceList($args[0], ',', true); + + return new Number(\count($list[2]), ''); + } + + protected static $libListSeparator = ['list']; + protected function libListSeparator($args) + { + if (! \in_array($args[0][0], [Type::T_LIST, Type::T_MAP])) { + return [Type::T_KEYWORD, 'space']; + } + + $list = $this->coerceList($args[0]); + + if ($list[1] === '' && \count($list[2]) <= 1 && empty($list['enclosing'])) { + return [Type::T_KEYWORD, 'space']; + } + + if ($list[1] === ',') { + return [Type::T_KEYWORD, 'comma']; + } + + if ($list[1] === '/') { + return [Type::T_KEYWORD, 'slash']; + } + + return [Type::T_KEYWORD, 'space']; + } + + protected static $libNth = ['list', 'n']; + protected function libNth($args) + { + $list = $this->coerceList($args[0], ',', false); + $n = $this->assertNumber($args[1])->getDimension(); + + if ($n > 0) { + $n--; + } elseif ($n < 0) { + $n += \count($list[2]); + } + + return isset($list[2][$n]) ? $list[2][$n] : static::$defaultValue; + } + + protected static $libSetNth = ['list', 'n', 'value']; + protected function libSetNth($args) + { + $list = $this->coerceList($args[0]); + $n = $this->assertNumber($args[1])->getDimension(); + + if ($n > 0) { + $n--; + } elseif ($n < 0) { + $n += \count($list[2]); + } + + if (! isset($list[2][$n])) { + throw $this->error('Invalid argument for "n"'); + } + + $list[2][$n] = $args[2]; + + return $list; + } + + protected static $libMapGet = ['map', 'key', 'keys...']; + protected function libMapGet($args) + { + $map = $this->assertMap($args[0], 'map'); + if (!isset($args[2])) { + // BC layer for usages of the function from PHP code rather than from the Sass function + $args[2] = self::$emptyArgumentList; + } + $keys = array_merge([$args[1]], $args[2][2]); + $value = static::$null; + + foreach ($keys as $key) { + if (!\is_array($map) || $map[0] !== Type::T_MAP) { + return static::$null; + } + + $map = $this->mapGet($map, $key); + + if ($map === null) { + return static::$null; + } + + $value = $map; + } + + return $value; + } + + /** + * Gets the value corresponding to that key in the map + * + * @param array $map + * @param Number|array $key + * + * @return Number|array|null + */ + private function mapGet(array $map, $key) + { + $index = $this->mapGetEntryIndex($map, $key); + + if ($index !== null) { + return $map[2][$index]; + } + + return null; + } + + /** + * Gets the index corresponding to that key in the map entries + * + * @param array $map + * @param Number|array $key + * + * @return int|null + */ + private function mapGetEntryIndex(array $map, $key) + { + $key = $this->compileStringContent($this->coerceString($key)); + + for ($i = \count($map[1]) - 1; $i >= 0; $i--) { + if ($key === $this->compileStringContent($this->coerceString($map[1][$i]))) { + return $i; + } + } + + return null; + } + + protected static $libMapKeys = ['map']; + protected function libMapKeys($args) + { + $map = $this->assertMap($args[0], 'map'); + $keys = $map[1]; + + return [Type::T_LIST, ',', $keys]; + } + + protected static $libMapValues = ['map']; + protected function libMapValues($args) + { + $map = $this->assertMap($args[0], 'map'); + $values = $map[2]; + + return [Type::T_LIST, ',', $values]; + } + + protected static $libMapRemove = [ + ['map'], + ['map', 'key', 'keys...'], + ]; + protected function libMapRemove($args) + { + $map = $this->assertMap($args[0], 'map'); + + if (\count($args) === 1) { + return $map; + } + + $keys = []; + $keys[] = $this->compileStringContent($this->coerceString($args[1])); + + foreach ($args[2][2] as $key) { + $keys[] = $this->compileStringContent($this->coerceString($key)); + } + + for ($i = \count($map[1]) - 1; $i >= 0; $i--) { + if (in_array($this->compileStringContent($this->coerceString($map[1][$i])), $keys)) { + array_splice($map[1], $i, 1); + array_splice($map[2], $i, 1); + } + } + + return $map; + } + + protected static $libMapHasKey = ['map', 'key', 'keys...']; + protected function libMapHasKey($args) + { + $map = $this->assertMap($args[0], 'map'); + if (!isset($args[2])) { + // BC layer for usages of the function from PHP code rather than from the Sass function + $args[2] = self::$emptyArgumentList; + } + $keys = array_merge([$args[1]], $args[2][2]); + $lastKey = array_pop($keys); + + foreach ($keys as $key) { + $value = $this->mapGet($map, $key); + + if ($value === null || $value instanceof Number || $value[0] !== Type::T_MAP) { + return self::$false; + } + + $map = $value; + } + + return $this->toBool($this->mapHasKey($map, $lastKey)); + } + + /** + * @param array|Number $keyValue + * + * @return bool + */ + private function mapHasKey(array $map, $keyValue) + { + $key = $this->compileStringContent($this->coerceString($keyValue)); + + for ($i = \count($map[1]) - 1; $i >= 0; $i--) { + if ($key === $this->compileStringContent($this->coerceString($map[1][$i]))) { + return true; + } + } + + return false; + } + + protected static $libMapMerge = [ + ['map1', 'map2'], + ['map-1', 'map-2'], + ['map1', 'args...'] + ]; + protected function libMapMerge($args) + { + $map1 = $this->assertMap($args[0], 'map1'); + $map2 = $args[1]; + $keys = []; + if ($map2[0] === Type::T_LIST && isset($map2[3]) && \is_array($map2[3])) { + // This is an argument list for the variadic signature + if (\count($map2[2]) === 0) { + throw new SassScriptException('Expected $args to contain a key.'); + } + if (\count($map2[2]) === 1) { + throw new SassScriptException('Expected $args to contain a value.'); + } + $keys = $map2[2]; + $map2 = array_pop($keys); + } + $map2 = $this->assertMap($map2, 'map2'); + + return $this->modifyMap($map1, $keys, function ($oldValue) use ($map2) { + $nestedMap = $this->tryMap($oldValue); + + if ($nestedMap === null) { + return $map2; + } + + return $this->mergeMaps($nestedMap, $map2); + }); + } + + /** + * @param array $map + * @param array $keys + * @param callable $modify + * @param bool $addNesting + * + * @return Number|array + * + * @phpstan-param array $keys + * @phpstan-param callable(Number|array): (Number|array) $modify + */ + private function modifyMap(array $map, array $keys, callable $modify, $addNesting = true) + { + if ($keys === []) { + return $modify($map); + } + + return $this->modifyNestedMap($map, $keys, $modify, $addNesting); + } + + /** + * @param array $map + * @param array $keys + * @param callable $modify + * @param bool $addNesting + * + * @return array + * + * @phpstan-param non-empty-array $keys + * @phpstan-param callable(Number|array): (Number|array) $modify + */ + private function modifyNestedMap(array $map, array $keys, callable $modify, $addNesting) + { + $key = array_shift($keys); + + $nestedValueIndex = $this->mapGetEntryIndex($map, $key); + + if ($keys === []) { + if ($nestedValueIndex !== null) { + $map[2][$nestedValueIndex] = $modify($map[2][$nestedValueIndex]); + } else { + $map[1][] = $key; + $map[2][] = $modify(self::$null); + } + + return $map; + } + + $nestedMap = $nestedValueIndex !== null ? $this->tryMap($map[2][$nestedValueIndex]) : null; + + if ($nestedMap === null && !$addNesting) { + return $map; + } + + if ($nestedMap === null) { + $nestedMap = self::$emptyMap; + } + + $newNestedMap = $this->modifyNestedMap($nestedMap, $keys, $modify, $addNesting); + + if ($nestedValueIndex !== null) { + $map[2][$nestedValueIndex] = $newNestedMap; + } else { + $map[1][] = $key; + $map[2][] = $newNestedMap; + } + + return $map; + } + + /** + * Merges 2 Sass maps together + * + * @param array $map1 + * @param array $map2 + * + * @return array + */ + private function mergeMaps(array $map1, array $map2) + { + foreach ($map2[1] as $i2 => $key2) { + $map1EntryIndex = $this->mapGetEntryIndex($map1, $key2); + + if ($map1EntryIndex !== null) { + $map1[2][$map1EntryIndex] = $map2[2][$i2]; + continue; + } + + $map1[1][] = $key2; + $map1[2][] = $map2[2][$i2]; + } + + return $map1; + } + + protected static $libKeywords = ['args']; + protected function libKeywords($args) + { + $value = $args[0]; + + if ($value[0] !== Type::T_LIST || !isset($value[3]) || !\is_array($value[3])) { + $compiledValue = $this->compileValue($value); + + throw SassScriptException::forArgument($compiledValue . ' is not an argument list.', 'args'); + } + + $keys = []; + $values = []; + + foreach ($this->getArgumentListKeywords($value) as $name => $arg) { + $keys[] = [Type::T_KEYWORD, $name]; + $values[] = $arg; + } + + return [Type::T_MAP, $keys, $values]; + } + + protected static $libIsBracketed = ['list']; + protected function libIsBracketed($args) + { + $list = $args[0]; + $this->coerceList($list, ' '); + + if (! empty($list['enclosing']) && $list['enclosing'] === 'bracket') { + return self::$true; + } + + return self::$false; + } + + /** + * @param array $list1 + * @param array|Number|null $sep + * + * @return string + * @throws CompilerException + * + * @deprecated + */ + protected function listSeparatorForJoin($list1, $sep) + { + @trigger_error(sprintf('The "%s" method is deprecated.', __METHOD__), E_USER_DEPRECATED); + + if (! isset($sep)) { + return $list1[1]; + } + + switch ($this->compileValue($sep)) { + case 'comma': + return ','; + + case 'space': + return ' '; + + default: + return $list1[1]; + } + } + + protected static $libJoin = ['list1', 'list2', 'separator:auto', 'bracketed:auto']; + protected function libJoin($args) + { + list($list1, $list2, $sep, $bracketed) = $args; + + $list1 = $this->coerceList($list1, ' ', true); + $list2 = $this->coerceList($list2, ' ', true); + + switch ($this->compileStringContent($this->assertString($sep, 'separator'))) { + case 'comma': + $separator = ','; + break; + + case 'space': + $separator = ' '; + break; + + case 'slash': + $separator = '/'; + break; + + case 'auto': + if ($list1[1] !== '' || count($list1[2]) > 1 || !empty($list1['enclosing']) && $list1['enclosing'] !== 'parent') { + $separator = $list1[1] ?: ' '; + } elseif ($list2[1] !== '' || count($list2[2]) > 1 || !empty($list2['enclosing']) && $list2['enclosing'] !== 'parent') { + $separator = $list2[1] ?: ' '; + } else { + $separator = ' '; + } + break; + + default: + throw SassScriptException::forArgument('Must be "space", "comma", "slash", or "auto".', 'separator'); + } + + if ($bracketed === static::$true) { + $bracketed = true; + } elseif ($bracketed === static::$false) { + $bracketed = false; + } elseif ($bracketed === [Type::T_KEYWORD, 'auto']) { + $bracketed = 'auto'; + } elseif ($bracketed === static::$null) { + $bracketed = false; + } else { + $bracketed = $this->compileValue($bracketed); + $bracketed = ! ! $bracketed; + + if ($bracketed === true) { + $bracketed = true; + } + } + + if ($bracketed === 'auto') { + $bracketed = false; + + if (! empty($list1['enclosing']) && $list1['enclosing'] === 'bracket') { + $bracketed = true; + } + } + + $res = [Type::T_LIST, $separator, array_merge($list1[2], $list2[2])]; + + if ($bracketed) { + $res['enclosing'] = 'bracket'; + } + + return $res; + } + + protected static $libAppend = ['list', 'val', 'separator:auto']; + protected function libAppend($args) + { + list($list1, $value, $sep) = $args; + + $list1 = $this->coerceList($list1, ' ', true); + + switch ($this->compileStringContent($this->assertString($sep, 'separator'))) { + case 'comma': + $separator = ','; + break; + + case 'space': + $separator = ' '; + break; + + case 'slash': + $separator = '/'; + break; + + case 'auto': + $separator = $list1[1] === '' && \count($list1[2]) <= 1 && (empty($list1['enclosing']) || $list1['enclosing'] === 'parent') ? ' ' : $list1[1]; + break; + + default: + throw SassScriptException::forArgument('Must be "space", "comma", "slash", or "auto".', 'separator'); + } + + $res = [Type::T_LIST, $separator, array_merge($list1[2], [$value])]; + + if (isset($list1['enclosing'])) { + $res['enclosing'] = $list1['enclosing']; + } + + return $res; + } + + protected static $libZip = ['lists...']; + protected function libZip($args) + { + $argLists = []; + foreach ($args[0][2] as $arg) { + $argLists[] = $this->coerceList($arg); + } + + $lists = []; + $firstList = array_shift($argLists); + + $result = [Type::T_LIST, ',', $lists]; + if (! \is_null($firstList)) { + foreach ($firstList[2] as $key => $item) { + $list = [Type::T_LIST, ' ', [$item]]; + + foreach ($argLists as $arg) { + if (isset($arg[2][$key])) { + $list[2][] = $arg[2][$key]; + } else { + break 2; + } + } + + $lists[] = $list; + } + + $result[2] = $lists; + } else { + $result['enclosing'] = 'parent'; + } + + return $result; + } + + protected static $libTypeOf = ['value']; + protected function libTypeOf($args) + { + $value = $args[0]; + + return [Type::T_KEYWORD, $this->getTypeOf($value)]; + } + + /** + * @param array|Number $value + * + * @return string + */ + private function getTypeOf($value) + { + switch ($value[0]) { + case Type::T_KEYWORD: + if ($value === static::$true || $value === static::$false) { + return 'bool'; + } + + if ($this->coerceColor($value)) { + return 'color'; + } + + // fall-thru + case Type::T_FUNCTION: + return 'string'; + + case Type::T_FUNCTION_REFERENCE: + return 'function'; + + case Type::T_LIST: + if (isset($value[3]) && \is_array($value[3])) { + return 'arglist'; + } + + // fall-thru + default: + return $value[0]; + } + } + + protected static $libUnit = ['number']; + protected function libUnit($args) + { + $num = $this->assertNumber($args[0], 'number'); + + return [Type::T_STRING, '"', [$num->unitStr()]]; + } + + protected static $libUnitless = ['number']; + protected function libUnitless($args) + { + $value = $this->assertNumber($args[0], 'number'); + + return $this->toBool($value->unitless()); + } + + protected static $libComparable = [ + ['number1', 'number2'], + ['number-1', 'number-2'] + ]; + protected function libComparable($args) + { + list($number1, $number2) = $args; + + if ( + ! $number1 instanceof Number || + ! $number2 instanceof Number + ) { + throw $this->error('Invalid argument(s) for "comparable"'); + } + + return $this->toBool($number1->isComparableTo($number2)); + } + + protected static $libStrIndex = ['string', 'substring']; + protected function libStrIndex($args) + { + $string = $this->assertString($args[0], 'string'); + $stringContent = $this->compileStringContent($string); + + $substring = $this->assertString($args[1], 'substring'); + $substringContent = $this->compileStringContent($substring); + + if (! \strlen($substringContent)) { + $result = 0; + } else { + $result = Util::mbStrpos($stringContent, $substringContent); + } + + return $result === false ? static::$null : new Number($result + 1, ''); + } + + protected static $libStrInsert = ['string', 'insert', 'index']; + protected function libStrInsert($args) + { + $string = $this->assertString($args[0], 'string'); + $stringContent = $this->compileStringContent($string); + + $insert = $this->assertString($args[1], 'insert'); + $insertContent = $this->compileStringContent($insert); + + $index = $this->assertInteger($args[2], 'index'); + if ($index > 0) { + $index = $index - 1; + } + if ($index < 0) { + $index = max(Util::mbStrlen($stringContent) + 1 + $index, 0); + } + + $string[2] = [ + Util::mbSubstr($stringContent, 0, $index), + $insertContent, + Util::mbSubstr($stringContent, $index) + ]; + + return $string; + } + + protected static $libStrLength = ['string']; + protected function libStrLength($args) + { + $string = $this->assertString($args[0], 'string'); + $stringContent = $this->compileStringContent($string); + + return new Number(Util::mbStrlen($stringContent), ''); + } + + protected static $libStrSlice = ['string', 'start-at', 'end-at:-1']; + protected function libStrSlice($args) + { + $string = $this->assertString($args[0], 'string'); + $stringContent = $this->compileStringContent($string); + + $start = $this->assertNumber($args[1], 'start-at'); + $start->assertNoUnits('start-at'); + $startInt = $this->assertInteger($start, 'start-at'); + $end = $this->assertNumber($args[2], 'end-at'); + $end->assertNoUnits('end-at'); + $endInt = $this->assertInteger($end, 'end-at'); + + if ($endInt === 0) { + return [Type::T_STRING, $string[1], []]; + } + + if ($startInt > 0) { + $startInt--; + } + + if ($endInt < 0) { + $endInt = Util::mbStrlen($stringContent) + $endInt; + } else { + $endInt--; + } + + if ($endInt < $startInt) { + return [Type::T_STRING, $string[1], []]; + } + + $length = $endInt - $startInt + 1; // The end of the slice is inclusive + + $string[2] = [Util::mbSubstr($stringContent, $startInt, $length)]; + + return $string; + } + + protected static $libToLowerCase = ['string']; + protected function libToLowerCase($args) + { + $string = $this->assertString($args[0], 'string'); + $stringContent = $this->compileStringContent($string); + + $string[2] = [$this->stringTransformAsciiOnly($stringContent, 'strtolower')]; + + return $string; + } + + protected static $libToUpperCase = ['string']; + protected function libToUpperCase($args) + { + $string = $this->assertString($args[0], 'string'); + $stringContent = $this->compileStringContent($string); + + $string[2] = [$this->stringTransformAsciiOnly($stringContent, 'strtoupper')]; + + return $string; + } + + /** + * Apply a filter on a string content, only on ascii chars + * let extended chars untouched + * + * @param string $stringContent + * @param callable $filter + * @return string + */ + protected function stringTransformAsciiOnly($stringContent, $filter) + { + $mblength = Util::mbStrlen($stringContent); + if ($mblength === strlen($stringContent)) { + return $filter($stringContent); + } + $filteredString = ""; + for ($i = 0; $i < $mblength; $i++) { + $char = Util::mbSubstr($stringContent, $i, 1); + if (strlen($char) > 1) { + $filteredString .= $char; + } else { + $filteredString .= $filter($char); + } + } + + return $filteredString; + } + + protected static $libFeatureExists = ['feature']; + protected function libFeatureExists($args) + { + $string = $this->assertString($args[0], 'feature'); + $name = $this->compileStringContent($string); + + return $this->toBool( + \array_key_exists($name, $this->registeredFeatures) ? $this->registeredFeatures[$name] : false + ); + } + + protected static $libFunctionExists = ['name']; + protected function libFunctionExists($args) + { + $string = $this->assertString($args[0], 'name'); + $name = $this->compileStringContent($string); + + // user defined functions + if ($this->has(static::$namespaces['function'] . $name)) { + return self::$true; + } + + $name = $this->normalizeName($name); + + if (isset($this->userFunctions[$name])) { + return self::$true; + } + + // built-in functions + $f = $this->getBuiltinFunction($name); + + return $this->toBool(\is_callable($f)); + } + + protected static $libGlobalVariableExists = ['name']; + protected function libGlobalVariableExists($args) + { + $string = $this->assertString($args[0], 'name'); + $name = $this->compileStringContent($string); + + return $this->toBool($this->has($name, $this->rootEnv)); + } + + protected static $libMixinExists = ['name']; + protected function libMixinExists($args) + { + $string = $this->assertString($args[0], 'name'); + $name = $this->compileStringContent($string); + + return $this->toBool($this->has(static::$namespaces['mixin'] . $name)); + } + + protected static $libVariableExists = ['name']; + protected function libVariableExists($args) + { + $string = $this->assertString($args[0], 'name'); + $name = $this->compileStringContent($string); + + return $this->toBool($this->has($name)); + } + + protected static $libCounter = ['args...']; + /** + * Workaround IE7's content counter bug. + * + * @param array $args + * + * @return array + */ + protected function libCounter($args) + { + $list = array_map([$this, 'compileValue'], $args[0][2]); + + return [Type::T_STRING, '', ['counter(' . implode(',', $list) . ')']]; + } + + protected static $libRandom = ['limit:null']; + protected function libRandom($args) + { + if (isset($args[0]) && $args[0] !== static::$null) { + $n = $this->assertInteger($args[0], 'limit'); + + if ($n < 1) { + throw new SassScriptException("\$limit: Must be greater than 0, was $n."); + } + + return new Number(mt_rand(1, $n), ''); + } + + $max = mt_getrandmax(); + return new Number(mt_rand(0, $max - 1) / $max, ''); + } + + protected static $libUniqueId = []; + protected function libUniqueId() + { + static $id; + + if (! isset($id)) { + $id = PHP_INT_SIZE === 4 + ? mt_rand(0, pow(36, 5)) . str_pad(mt_rand(0, pow(36, 5)) % 10000000, 7, '0', STR_PAD_LEFT) + : mt_rand(0, pow(36, 8)); + } + + $id += mt_rand(0, 10) + 1; + + return [Type::T_STRING, '', ['u' . str_pad(base_convert($id, 10, 36), 8, '0', STR_PAD_LEFT)]]; + } + + /** + * @param array|Number $value + * @param bool $force_enclosing_display + * + * @return array + */ + protected function inspectFormatValue($value, $force_enclosing_display = false) + { + if ($value === static::$null) { + $value = [Type::T_KEYWORD, 'null']; + } + + $stringValue = [$value]; + + if ($value instanceof Number) { + return [Type::T_STRING, '', $stringValue]; + } + + if ($value[0] === Type::T_LIST) { + if (end($value[2]) === static::$null) { + array_pop($value[2]); + $value[2][] = [Type::T_STRING, '', ['']]; + $force_enclosing_display = true; + } + + if ( + ! empty($value['enclosing']) && + ($force_enclosing_display || + ($value['enclosing'] === 'bracket') || + ! \count($value[2])) + ) { + $value['enclosing'] = 'forced_' . $value['enclosing']; + $force_enclosing_display = true; + } elseif (! \count($value[2])) { + $value['enclosing'] = 'forced_parent'; + } + + foreach ($value[2] as $k => $listelement) { + $value[2][$k] = $this->inspectFormatValue($listelement, $force_enclosing_display); + } + + $stringValue = [$value]; + } + + return [Type::T_STRING, '', $stringValue]; + } + + protected static $libInspect = ['value']; + protected function libInspect($args) + { + $value = $args[0]; + + return $this->inspectFormatValue($value); + } + + /** + * Preprocess selector args + * + * @param array $arg + * @param string|null $varname + * @param bool $allowParent + * + * @return array + */ + protected function getSelectorArg($arg, $varname = null, $allowParent = false) + { + static $parser = null; + + if (\is_null($parser)) { + $parser = $this->parserFactory(__METHOD__); + } + + if (! $this->checkSelectorArgType($arg)) { + $var_value = $this->compileValue($arg); + throw SassScriptException::forArgument("$var_value is not a valid selector: it must be a string, a list of strings, or a list of lists of strings", $varname); + } + + + if ($arg[0] === Type::T_STRING) { + $arg[1] = ''; + } + $arg = $this->compileValue($arg); + + $parsedSelector = []; + + if ($parser->parseSelector($arg, $parsedSelector, true)) { + $selector = $this->evalSelectors($parsedSelector); + $gluedSelector = $this->glueFunctionSelectors($selector); + + if (! $allowParent) { + foreach ($gluedSelector as $selector) { + foreach ($selector as $s) { + if (in_array(static::$selfSelector, $s)) { + throw SassScriptException::forArgument("Parent selectors aren't allowed here.", $varname); + } + } + } + } + + return $gluedSelector; + } + + throw SassScriptException::forArgument("expected more input, invalid selector.", $varname); + } + + /** + * Check variable type for getSelectorArg() function + * @param array $arg + * @param int $maxDepth + * @return bool + */ + protected function checkSelectorArgType($arg, $maxDepth = 2) + { + if ($arg[0] === Type::T_LIST && $maxDepth > 0) { + foreach ($arg[2] as $elt) { + if (! $this->checkSelectorArgType($elt, $maxDepth - 1)) { + return false; + } + } + return true; + } + if (!in_array($arg[0], [Type::T_STRING, Type::T_KEYWORD])) { + return false; + } + return true; + } + + /** + * Postprocess selector to output in right format + * + * @param array $selectors + * + * @return array + */ + protected function formatOutputSelector($selectors) + { + $selectors = $this->collapseSelectorsAsList($selectors); + + return $selectors; + } + + protected static $libIsSuperselector = ['super', 'sub']; + protected function libIsSuperselector($args) + { + list($super, $sub) = $args; + + $super = $this->getSelectorArg($super, 'super'); + $sub = $this->getSelectorArg($sub, 'sub'); + + return $this->toBool($this->isSuperSelector($super, $sub)); + } + + /** + * Test a $super selector again $sub + * + * @param array $super + * @param array $sub + * + * @return bool + */ + protected function isSuperSelector($super, $sub) + { + // one and only one selector for each arg + if (! $super) { + throw $this->error('Invalid super selector for isSuperSelector()'); + } + + if (! $sub) { + throw $this->error('Invalid sub selector for isSuperSelector()'); + } + + if (count($sub) > 1) { + foreach ($sub as $s) { + if (! $this->isSuperSelector($super, [$s])) { + return false; + } + } + return true; + } + + if (count($super) > 1) { + foreach ($super as $s) { + if ($this->isSuperSelector([$s], $sub)) { + return true; + } + } + return false; + } + + $super = reset($super); + $sub = reset($sub); + + $i = 0; + $nextMustMatch = false; + + foreach ($super as $node) { + $compound = ''; + + array_walk_recursive( + $node, + function ($value, $key) use (&$compound) { + $compound .= $value; + } + ); + + if ($this->isImmediateRelationshipCombinator($compound)) { + if ($node !== $sub[$i]) { + return false; + } + + $nextMustMatch = true; + $i++; + } else { + while ($i < \count($sub) && ! $this->isSuperPart($node, $sub[$i])) { + if ($nextMustMatch) { + return false; + } + + $i++; + } + + if ($i >= \count($sub)) { + return false; + } + + $nextMustMatch = false; + $i++; + } + } + + return true; + } + + /** + * Test a part of super selector again a part of sub selector + * + * @param array $superParts + * @param array $subParts + * + * @return bool + */ + protected function isSuperPart($superParts, $subParts) + { + $i = 0; + + foreach ($superParts as $superPart) { + while ($i < \count($subParts) && $subParts[$i] !== $superPart) { + $i++; + } + + if ($i >= \count($subParts)) { + return false; + } + + $i++; + } + + return true; + } + + protected static $libSelectorAppend = ['selector...']; + protected function libSelectorAppend($args) + { + // get the selector... list + $args = reset($args); + $args = $args[2]; + + if (\count($args) < 1) { + throw $this->error('selector-append() needs at least 1 argument'); + } + + $selectors = []; + foreach ($args as $arg) { + $selectors[] = $this->getSelectorArg($arg, 'selector'); + } + + return $this->formatOutputSelector($this->selectorAppend($selectors)); + } + + /** + * Append parts of the last selector in the list to the previous, recursively + * + * @param array $selectors + * + * @return array + * + * @throws \ScssPhp\ScssPhp\Exception\CompilerException + */ + protected function selectorAppend($selectors) + { + $lastSelectors = array_pop($selectors); + + if (! $lastSelectors) { + throw $this->error('Invalid selector list in selector-append()'); + } + + while (\count($selectors)) { + $previousSelectors = array_pop($selectors); + + if (! $previousSelectors) { + throw $this->error('Invalid selector list in selector-append()'); + } + + // do the trick, happening $lastSelector to $previousSelector + $appended = []; + + foreach ($previousSelectors as $previousSelector) { + foreach ($lastSelectors as $lastSelector) { + $previous = $previousSelector; + foreach ($previousSelector as $j => $previousSelectorParts) { + foreach ($lastSelector as $lastSelectorParts) { + foreach ($lastSelectorParts as $lastSelectorPart) { + $previous[$j][] = $lastSelectorPart; + } + } + } + + $appended[] = $previous; + } + } + + $lastSelectors = $appended; + } + + return $lastSelectors; + } + + protected static $libSelectorExtend = [ + ['selector', 'extendee', 'extender'], + ['selectors', 'extendee', 'extender'] + ]; + protected function libSelectorExtend($args) + { + list($selectors, $extendee, $extender) = $args; + + $selectors = $this->getSelectorArg($selectors, 'selector'); + $extendee = $this->getSelectorArg($extendee, 'extendee'); + $extender = $this->getSelectorArg($extender, 'extender'); + + if (! $selectors || ! $extendee || ! $extender) { + throw $this->error('selector-extend() invalid arguments'); + } + + $extended = $this->extendOrReplaceSelectors($selectors, $extendee, $extender); + + return $this->formatOutputSelector($extended); + } + + protected static $libSelectorReplace = [ + ['selector', 'original', 'replacement'], + ['selectors', 'original', 'replacement'] + ]; + protected function libSelectorReplace($args) + { + list($selectors, $original, $replacement) = $args; + + $selectors = $this->getSelectorArg($selectors, 'selector'); + $original = $this->getSelectorArg($original, 'original'); + $replacement = $this->getSelectorArg($replacement, 'replacement'); + + if (! $selectors || ! $original || ! $replacement) { + throw $this->error('selector-replace() invalid arguments'); + } + + $replaced = $this->extendOrReplaceSelectors($selectors, $original, $replacement, true); + + return $this->formatOutputSelector($replaced); + } + + /** + * Extend/replace in selectors + * used by selector-extend and selector-replace that use the same logic + * + * @param array $selectors + * @param array $extendee + * @param array $extender + * @param bool $replace + * + * @return array + */ + protected function extendOrReplaceSelectors($selectors, $extendee, $extender, $replace = false) + { + $saveExtends = $this->extends; + $saveExtendsMap = $this->extendsMap; + + $this->extends = []; + $this->extendsMap = []; + + foreach ($extendee as $es) { + if (\count($es) !== 1) { + throw $this->error('Can\'t extend complex selector.'); + } + + // only use the first one + $this->pushExtends(reset($es), $extender, null); + } + + $extended = []; + + foreach ($selectors as $selector) { + if (! $replace) { + $extended[] = $selector; + } + + $n = \count($extended); + + $this->matchExtends($selector, $extended); + + // if didnt match, keep the original selector if we are in a replace operation + if ($replace && \count($extended) === $n) { + $extended[] = $selector; + } + } + + $this->extends = $saveExtends; + $this->extendsMap = $saveExtendsMap; + + return $extended; + } + + protected static $libSelectorNest = ['selector...']; + protected function libSelectorNest($args) + { + // get the selector... list + $args = reset($args); + $args = $args[2]; + + if (\count($args) < 1) { + throw $this->error('selector-nest() needs at least 1 argument'); + } + + $selectorsMap = []; + foreach ($args as $arg) { + $selectorsMap[] = $this->getSelectorArg($arg, 'selector', true); + } + + assert(!empty($selectorsMap)); + + $envs = []; + + foreach ($selectorsMap as $selectors) { + $env = new Environment(); + $env->selectors = $selectors; + + $envs[] = $env; + } + + $envs = array_reverse($envs); + $env = $this->extractEnv($envs); + $outputSelectors = $this->multiplySelectors($env); + + return $this->formatOutputSelector($outputSelectors); + } + + protected static $libSelectorParse = [ + ['selector'], + ['selectors'] + ]; + protected function libSelectorParse($args) + { + $selectors = reset($args); + $selectors = $this->getSelectorArg($selectors, 'selector'); + + return $this->formatOutputSelector($selectors); + } + + protected static $libSelectorUnify = ['selectors1', 'selectors2']; + protected function libSelectorUnify($args) + { + list($selectors1, $selectors2) = $args; + + $selectors1 = $this->getSelectorArg($selectors1, 'selectors1'); + $selectors2 = $this->getSelectorArg($selectors2, 'selectors2'); + + if (! $selectors1 || ! $selectors2) { + throw $this->error('selector-unify() invalid arguments'); + } + + // only consider the first compound of each + $compound1 = reset($selectors1); + $compound2 = reset($selectors2); + + // unify them and that's it + $unified = $this->unifyCompoundSelectors($compound1, $compound2); + + return $this->formatOutputSelector($unified); + } + + /** + * The selector-unify magic as its best + * (at least works as expected on test cases) + * + * @param array $compound1 + * @param array $compound2 + * + * @return array + */ + protected function unifyCompoundSelectors($compound1, $compound2) + { + if (! \count($compound1)) { + return $compound2; + } + + if (! \count($compound2)) { + return $compound1; + } + + // check that last part are compatible + $lastPart1 = array_pop($compound1); + $lastPart2 = array_pop($compound2); + $last = $this->mergeParts($lastPart1, $lastPart2); + + if (! $last) { + return [[]]; + } + + $unifiedCompound = [$last]; + $unifiedSelectors = [$unifiedCompound]; + + // do the rest + while (\count($compound1) || \count($compound2)) { + $part1 = end($compound1); + $part2 = end($compound2); + + if ($part1 && ($match2 = $this->matchPartInCompound($part1, $compound2))) { + list($compound2, $part2, $after2) = $match2; + + if ($after2) { + $unifiedSelectors = $this->prependSelectors($unifiedSelectors, $after2); + } + + $c = $this->mergeParts($part1, $part2); + $unifiedSelectors = $this->prependSelectors($unifiedSelectors, [$c]); + + $part1 = $part2 = null; + + array_pop($compound1); + } + + if ($part2 && ($match1 = $this->matchPartInCompound($part2, $compound1))) { + list($compound1, $part1, $after1) = $match1; + + if ($after1) { + $unifiedSelectors = $this->prependSelectors($unifiedSelectors, $after1); + } + + $c = $this->mergeParts($part2, $part1); + $unifiedSelectors = $this->prependSelectors($unifiedSelectors, [$c]); + + $part1 = $part2 = null; + + array_pop($compound2); + } + + $new = []; + + if ($part1 && $part2) { + array_pop($compound1); + array_pop($compound2); + + $s = $this->prependSelectors($unifiedSelectors, [$part2]); + $new = array_merge($new, $this->prependSelectors($s, [$part1])); + $s = $this->prependSelectors($unifiedSelectors, [$part1]); + $new = array_merge($new, $this->prependSelectors($s, [$part2])); + } elseif ($part1) { + array_pop($compound1); + + $new = array_merge($new, $this->prependSelectors($unifiedSelectors, [$part1])); + } elseif ($part2) { + array_pop($compound2); + + $new = array_merge($new, $this->prependSelectors($unifiedSelectors, [$part2])); + } + + if ($new) { + $unifiedSelectors = $new; + } + } + + return $unifiedSelectors; + } + + /** + * Prepend each selector from $selectors with $parts + * + * @param array $selectors + * @param array $parts + * + * @return array + */ + protected function prependSelectors($selectors, $parts) + { + $new = []; + + foreach ($selectors as $compoundSelector) { + array_unshift($compoundSelector, $parts); + + $new[] = $compoundSelector; + } + + return $new; + } + + /** + * Try to find a matching part in a compound: + * - with same html tag name + * - with some class or id or something in common + * + * @param array $part + * @param array $compound + * + * @return array|false + */ + protected function matchPartInCompound($part, $compound) + { + $partTag = $this->findTagName($part); + $before = $compound; + $after = []; + + // try to find a match by tag name first + while (\count($before)) { + $p = array_pop($before); + + if ($partTag && $partTag !== '*' && $partTag == $this->findTagName($p)) { + return [$before, $p, $after]; + } + + $after[] = $p; + } + + // try again matching a non empty intersection and a compatible tagname + $before = $compound; + $after = []; + + while (\count($before)) { + $p = array_pop($before); + + if ($this->checkCompatibleTags($partTag, $this->findTagName($p))) { + if (\count(array_intersect($part, $p))) { + return [$before, $p, $after]; + } + } + + $after[] = $p; + } + + return false; + } + + /** + * Merge two part list taking care that + * - the html tag is coming first - if any + * - the :something are coming last + * + * @param array $parts1 + * @param array $parts2 + * + * @return array + */ + protected function mergeParts($parts1, $parts2) + { + $tag1 = $this->findTagName($parts1); + $tag2 = $this->findTagName($parts2); + $tag = $this->checkCompatibleTags($tag1, $tag2); + + // not compatible tags + if ($tag === false) { + return []; + } + + if ($tag) { + if ($tag1) { + $parts1 = array_diff($parts1, [$tag1]); + } + + if ($tag2) { + $parts2 = array_diff($parts2, [$tag2]); + } + } + + $mergedParts = array_merge($parts1, $parts2); + $mergedOrderedParts = []; + + foreach ($mergedParts as $part) { + if (strpos($part, ':') === 0) { + $mergedOrderedParts[] = $part; + } + } + + $mergedParts = array_diff($mergedParts, $mergedOrderedParts); + $mergedParts = array_merge($mergedParts, $mergedOrderedParts); + + if ($tag) { + array_unshift($mergedParts, $tag); + } + + return $mergedParts; + } + + /** + * Check the compatibility between two tag names: + * if both are defined they should be identical or one has to be '*' + * + * @param string $tag1 + * @param string $tag2 + * + * @return array|false + */ + protected function checkCompatibleTags($tag1, $tag2) + { + $tags = [$tag1, $tag2]; + $tags = array_unique($tags); + $tags = array_filter($tags); + + if (\count($tags) > 1) { + $tags = array_diff($tags, ['*']); + } + + // not compatible nodes + if (\count($tags) > 1) { + return false; + } + + return $tags; + } + + /** + * Find the html tag name in a selector parts list + * + * @param string[] $parts + * + * @return string + */ + protected function findTagName($parts) + { + foreach ($parts as $part) { + if (! preg_match('/^[\[.:#%_-]/', $part)) { + return $part; + } + } + + return ''; + } + + protected static $libSimpleSelectors = ['selector']; + protected function libSimpleSelectors($args) + { + $selector = reset($args); + $selector = $this->getSelectorArg($selector, 'selector'); + + // remove selectors list layer, keeping the first one + $selector = reset($selector); + + // remove parts list layer, keeping the first part + $part = reset($selector); + + $listParts = []; + + foreach ($part as $p) { + $listParts[] = [Type::T_STRING, '', [$p]]; + } + + return [Type::T_LIST, ',', $listParts]; + } + + protected static $libScssphpGlob = ['pattern']; + protected function libScssphpGlob($args) + { + @trigger_error(sprintf('The "scssphp-glob" function is deprecated an will be removed in ScssPhp 2.0. Register your own alternative through "%s::registerFunction', __CLASS__), E_USER_DEPRECATED); + + $this->logger->warn('The "scssphp-glob" function is deprecated an will be removed in ScssPhp 2.0.', true); + + $string = $this->assertString($args[0], 'pattern'); + $pattern = $this->compileStringContent($string); + $matches = glob($pattern); + $listParts = []; + + foreach ($matches as $match) { + if (! is_file($match)) { + continue; + } + + $listParts[] = [Type::T_STRING, '"', [$match]]; + } + + return [Type::T_LIST, ',', $listParts]; + } +} diff --git a/user/plugins/admin/vendor/scssphp/scssphp/src/Compiler/CachedResult.php b/user/plugins/admin/vendor/scssphp/scssphp/src/Compiler/CachedResult.php new file mode 100644 index 0000000..a662919 --- /dev/null +++ b/user/plugins/admin/vendor/scssphp/scssphp/src/Compiler/CachedResult.php @@ -0,0 +1,77 @@ + + */ + private $parsedFiles; + + /** + * @var array + * @phpstan-var list + */ + private $resolvedImports; + + /** + * @param CompilationResult $result + * @param array $parsedFiles + * @param array $resolvedImports + * + * @phpstan-param list $resolvedImports + */ + public function __construct(CompilationResult $result, array $parsedFiles, array $resolvedImports) + { + $this->result = $result; + $this->parsedFiles = $parsedFiles; + $this->resolvedImports = $resolvedImports; + } + + /** + * @return CompilationResult + */ + public function getResult() + { + return $this->result; + } + + /** + * @return array + */ + public function getParsedFiles() + { + return $this->parsedFiles; + } + + /** + * @return array + * + * @phpstan-return list + */ + public function getResolvedImports() + { + return $this->resolvedImports; + } +} diff --git a/user/plugins/admin/vendor/scssphp/scssphp/src/Compiler/Environment.php b/user/plugins/admin/vendor/scssphp/scssphp/src/Compiler/Environment.php new file mode 100644 index 0000000..b205a07 --- /dev/null +++ b/user/plugins/admin/vendor/scssphp/scssphp/src/Compiler/Environment.php @@ -0,0 +1,68 @@ + + * + * @internal + */ +class Environment +{ + /** + * @var \ScssPhp\ScssPhp\Block|null + */ + public $block; + + /** + * @var \ScssPhp\ScssPhp\Compiler\Environment|null + */ + public $parent; + + /** + * @var Environment|null + */ + public $declarationScopeParent; + + /** + * @var Environment|null + */ + public $parentStore; + + /** + * @var array|null + */ + public $selectors; + + /** + * @var string|null + */ + public $marker; + + /** + * @var array + */ + public $store; + + /** + * @var array + */ + public $storeUnreduced; + + /** + * @var int + */ + public $depth; +} diff --git a/user/plugins/admin/vendor/scssphp/scssphp/src/Exception/CompilerException.php b/user/plugins/admin/vendor/scssphp/scssphp/src/Exception/CompilerException.php new file mode 100644 index 0000000..0b00cf5 --- /dev/null +++ b/user/plugins/admin/vendor/scssphp/scssphp/src/Exception/CompilerException.php @@ -0,0 +1,24 @@ + + * + * @internal + */ +class CompilerException extends \Exception implements SassException +{ +} diff --git a/user/plugins/admin/vendor/scssphp/scssphp/src/Exception/ParserException.php b/user/plugins/admin/vendor/scssphp/scssphp/src/Exception/ParserException.php new file mode 100644 index 0000000..f072669 --- /dev/null +++ b/user/plugins/admin/vendor/scssphp/scssphp/src/Exception/ParserException.php @@ -0,0 +1,58 @@ + + * + * @internal + */ +class ParserException extends \Exception implements SassException +{ + /** + * @var array|null + * @phpstan-var array{string, int, int}|null + */ + private $sourcePosition; + + /** + * Get source position + * + * @api + * + * @return array|null + * @phpstan-return array{string, int, int}|null + */ + public function getSourcePosition() + { + return $this->sourcePosition; + } + + /** + * Set source position + * + * @api + * + * @param array $sourcePosition + * + * @return void + * + * @phpstan-param array{string, int, int} $sourcePosition + */ + public function setSourcePosition($sourcePosition) + { + $this->sourcePosition = $sourcePosition; + } +} diff --git a/user/plugins/admin/vendor/scssphp/scssphp/src/Exception/RangeException.php b/user/plugins/admin/vendor/scssphp/scssphp/src/Exception/RangeException.php new file mode 100644 index 0000000..4be4dee --- /dev/null +++ b/user/plugins/admin/vendor/scssphp/scssphp/src/Exception/RangeException.php @@ -0,0 +1,24 @@ + + * + * @internal + */ +class RangeException extends \Exception implements SassException +{ +} diff --git a/user/plugins/admin/vendor/scssphp/scssphp/src/Exception/SassException.php b/user/plugins/admin/vendor/scssphp/scssphp/src/Exception/SassException.php new file mode 100644 index 0000000..9f62b3c --- /dev/null +++ b/user/plugins/admin/vendor/scssphp/scssphp/src/Exception/SassException.php @@ -0,0 +1,7 @@ + + * + * @deprecated The Scssphp server should define its own exception instead. + */ +class ServerException extends \Exception implements SassException +{ +} diff --git a/user/plugins/admin/vendor/scssphp/scssphp/src/Formatter.php b/user/plugins/admin/vendor/scssphp/scssphp/src/Formatter.php new file mode 100644 index 0000000..6137dc6 --- /dev/null +++ b/user/plugins/admin/vendor/scssphp/scssphp/src/Formatter.php @@ -0,0 +1,377 @@ + + * + * @internal + */ +abstract class Formatter +{ + /** + * @var int + */ + public $indentLevel; + + /** + * @var string + */ + public $indentChar; + + /** + * @var string + */ + public $break; + + /** + * @var string + */ + public $open; + + /** + * @var string + */ + public $close; + + /** + * @var string + */ + public $tagSeparator; + + /** + * @var string + */ + public $assignSeparator; + + /** + * @var bool + */ + public $keepSemicolons; + + /** + * @var \ScssPhp\ScssPhp\Formatter\OutputBlock + */ + protected $currentBlock; + + /** + * @var int + */ + protected $currentLine; + + /** + * @var int + */ + protected $currentColumn; + + /** + * @var \ScssPhp\ScssPhp\SourceMap\SourceMapGenerator|null + */ + protected $sourceMapGenerator; + + /** + * @var string + */ + protected $strippedSemicolon; + + /** + * Initialize formatter + * + * @api + */ + abstract public function __construct(); + + /** + * Return indentation (whitespace) + * + * @return string + */ + protected function indentStr() + { + return ''; + } + + /** + * Return property assignment + * + * @api + * + * @param string $name + * @param mixed $value + * + * @return string + */ + public function property($name, $value) + { + return rtrim($name) . $this->assignSeparator . $value . ';'; + } + + /** + * Return custom property assignment + * differs in that you have to keep spaces in the value as is + * + * @api + * + * @param string $name + * @param mixed $value + * + * @return string + */ + public function customProperty($name, $value) + { + return rtrim($name) . trim($this->assignSeparator) . $value . ';'; + } + + /** + * Output lines inside a block + * + * @param \ScssPhp\ScssPhp\Formatter\OutputBlock $block + * + * @return void + */ + protected function blockLines(OutputBlock $block) + { + $inner = $this->indentStr(); + $glue = $this->break . $inner; + + $this->write($inner . implode($glue, $block->lines)); + + if (! empty($block->children)) { + $this->write($this->break); + } + } + + /** + * Output block selectors + * + * @param \ScssPhp\ScssPhp\Formatter\OutputBlock $block + * + * @return void + */ + protected function blockSelectors(OutputBlock $block) + { + assert(! empty($block->selectors)); + + $inner = $this->indentStr(); + + $this->write($inner + . implode($this->tagSeparator, $block->selectors) + . $this->open . $this->break); + } + + /** + * Output block children + * + * @param \ScssPhp\ScssPhp\Formatter\OutputBlock $block + * + * @return void + */ + protected function blockChildren(OutputBlock $block) + { + foreach ($block->children as $child) { + $this->block($child); + } + } + + /** + * Output non-empty block + * + * @param \ScssPhp\ScssPhp\Formatter\OutputBlock $block + * + * @return void + */ + protected function block(OutputBlock $block) + { + if (empty($block->lines) && empty($block->children)) { + return; + } + + $this->currentBlock = $block; + + $pre = $this->indentStr(); + + if (! empty($block->selectors)) { + $this->blockSelectors($block); + + $this->indentLevel++; + } + + if (! empty($block->lines)) { + $this->blockLines($block); + } + + if (! empty($block->children)) { + $this->blockChildren($block); + } + + if (! empty($block->selectors)) { + $this->indentLevel--; + + if (! $this->keepSemicolons) { + $this->strippedSemicolon = ''; + } + + if (empty($block->children)) { + $this->write($this->break); + } + + $this->write($pre . $this->close . $this->break); + } + } + + /** + * Test and clean safely empty children + * + * @param \ScssPhp\ScssPhp\Formatter\OutputBlock $block + * + * @return bool + */ + protected function testEmptyChildren($block) + { + $isEmpty = empty($block->lines); + + if ($block->children) { + foreach ($block->children as $k => &$child) { + if (! $this->testEmptyChildren($child)) { + $isEmpty = false; + continue; + } + + if ($child->type === Type::T_MEDIA || $child->type === Type::T_DIRECTIVE) { + $child->children = []; + $child->selectors = null; + } + } + } + + return $isEmpty; + } + + /** + * Entry point to formatting a block + * + * @api + * + * @param \ScssPhp\ScssPhp\Formatter\OutputBlock $block An abstract syntax tree + * @param \ScssPhp\ScssPhp\SourceMap\SourceMapGenerator|null $sourceMapGenerator Optional source map generator + * + * @return string + */ + public function format(OutputBlock $block, SourceMapGenerator $sourceMapGenerator = null) + { + $this->sourceMapGenerator = null; + + if ($sourceMapGenerator) { + $this->currentLine = 1; + $this->currentColumn = 0; + $this->sourceMapGenerator = $sourceMapGenerator; + } + + $this->testEmptyChildren($block); + + ob_start(); + + try { + $this->block($block); + } catch (\Exception $e) { + ob_end_clean(); + throw $e; + } catch (\Throwable $e) { + ob_end_clean(); + throw $e; + } + + $out = ob_get_clean(); + assert($out !== false); + + return $out; + } + + /** + * Output content + * + * @param string $str + * + * @return void + */ + protected function write($str) + { + if (! empty($this->strippedSemicolon)) { + echo $this->strippedSemicolon; + + $this->strippedSemicolon = ''; + } + + /* + * Maybe Strip semi-colon appended by property(); it's a separator, not a terminator + * will be striped for real before a closing, otherwise displayed unchanged starting the next write + */ + if ( + ! $this->keepSemicolons && + $str && + (strpos($str, ';') !== false) && + (substr($str, -1) === ';') + ) { + $str = substr($str, 0, -1); + + $this->strippedSemicolon = ';'; + } + + if ($this->sourceMapGenerator) { + $lines = explode("\n", $str); + $lastLine = array_pop($lines); + + foreach ($lines as $line) { + // If the written line starts is empty, adding a mapping would add it for + // a non-existent column as we are at the end of the line + if ($line !== '') { + assert($this->currentBlock->sourceLine !== null); + assert($this->currentBlock->sourceName !== null); + $this->sourceMapGenerator->addMapping( + $this->currentLine, + $this->currentColumn, + $this->currentBlock->sourceLine, + //columns from parser are off by one + $this->currentBlock->sourceColumn > 0 ? $this->currentBlock->sourceColumn - 1 : 0, + $this->currentBlock->sourceName + ); + } + + $this->currentLine++; + $this->currentColumn = 0; + } + + if ($lastLine !== '') { + assert($this->currentBlock->sourceLine !== null); + assert($this->currentBlock->sourceName !== null); + $this->sourceMapGenerator->addMapping( + $this->currentLine, + $this->currentColumn, + $this->currentBlock->sourceLine, + //columns from parser are off by one + $this->currentBlock->sourceColumn > 0 ? $this->currentBlock->sourceColumn - 1 : 0, + $this->currentBlock->sourceName + ); + } + + $this->currentColumn += \strlen($lastLine); + } + + echo $str; + } +} diff --git a/user/plugins/admin/vendor/scssphp/scssphp/src/Formatter/Compact.php b/user/plugins/admin/vendor/scssphp/scssphp/src/Formatter/Compact.php new file mode 100644 index 0000000..22f2268 --- /dev/null +++ b/user/plugins/admin/vendor/scssphp/scssphp/src/Formatter/Compact.php @@ -0,0 +1,52 @@ + + * + * @deprecated since 1.4.0. Use the Compressed formatter instead. + * + * @internal + */ +class Compact extends Formatter +{ + /** + * {@inheritdoc} + */ + public function __construct() + { + @trigger_error('The Compact formatter is deprecated since 1.4.0. Use the Compressed formatter instead.', E_USER_DEPRECATED); + + $this->indentLevel = 0; + $this->indentChar = ''; + $this->break = ''; + $this->open = ' {'; + $this->close = "}\n\n"; + $this->tagSeparator = ','; + $this->assignSeparator = ':'; + $this->keepSemicolons = true; + } + + /** + * {@inheritdoc} + */ + public function indentStr() + { + return ' '; + } +} diff --git a/user/plugins/admin/vendor/scssphp/scssphp/src/Formatter/Compressed.php b/user/plugins/admin/vendor/scssphp/scssphp/src/Formatter/Compressed.php new file mode 100644 index 0000000..58ebe3f --- /dev/null +++ b/user/plugins/admin/vendor/scssphp/scssphp/src/Formatter/Compressed.php @@ -0,0 +1,83 @@ + + * + * @internal + */ +class Compressed extends Formatter +{ + /** + * {@inheritdoc} + */ + public function __construct() + { + $this->indentLevel = 0; + $this->indentChar = ' '; + $this->break = ''; + $this->open = '{'; + $this->close = '}'; + $this->tagSeparator = ','; + $this->assignSeparator = ':'; + $this->keepSemicolons = false; + } + + /** + * {@inheritdoc} + */ + public function blockLines(OutputBlock $block) + { + $inner = $this->indentStr(); + + $glue = $this->break . $inner; + + foreach ($block->lines as $index => $line) { + if (substr($line, 0, 2) === '/*' && substr($line, 2, 1) !== '!') { + unset($block->lines[$index]); + } + } + + $this->write($inner . implode($glue, $block->lines)); + + if (! empty($block->children)) { + $this->write($this->break); + } + } + + /** + * Output block selectors + * + * @param \ScssPhp\ScssPhp\Formatter\OutputBlock $block + */ + protected function blockSelectors(OutputBlock $block) + { + assert(! empty($block->selectors)); + + $inner = $this->indentStr(); + + $this->write( + $inner + . implode( + $this->tagSeparator, + str_replace([' > ', ' + ', ' ~ '], ['>', '+', '~'], $block->selectors) + ) + . $this->open . $this->break + ); + } +} diff --git a/user/plugins/admin/vendor/scssphp/scssphp/src/Formatter/Crunched.php b/user/plugins/admin/vendor/scssphp/scssphp/src/Formatter/Crunched.php new file mode 100644 index 0000000..2bc1e92 --- /dev/null +++ b/user/plugins/admin/vendor/scssphp/scssphp/src/Formatter/Crunched.php @@ -0,0 +1,87 @@ + + * + * @deprecated since 1.4.0. Use the Compressed formatter instead. + * + * @internal + */ +class Crunched extends Formatter +{ + /** + * {@inheritdoc} + */ + public function __construct() + { + @trigger_error('The Crunched formatter is deprecated since 1.4.0. Use the Compressed formatter instead.', E_USER_DEPRECATED); + + $this->indentLevel = 0; + $this->indentChar = ' '; + $this->break = ''; + $this->open = '{'; + $this->close = '}'; + $this->tagSeparator = ','; + $this->assignSeparator = ':'; + $this->keepSemicolons = false; + } + + /** + * {@inheritdoc} + */ + public function blockLines(OutputBlock $block) + { + $inner = $this->indentStr(); + + $glue = $this->break . $inner; + + foreach ($block->lines as $index => $line) { + if (substr($line, 0, 2) === '/*') { + unset($block->lines[$index]); + } + } + + $this->write($inner . implode($glue, $block->lines)); + + if (! empty($block->children)) { + $this->write($this->break); + } + } + + /** + * Output block selectors + * + * @param \ScssPhp\ScssPhp\Formatter\OutputBlock $block + */ + protected function blockSelectors(OutputBlock $block) + { + assert(! empty($block->selectors)); + + $inner = $this->indentStr(); + + $this->write( + $inner + . implode( + $this->tagSeparator, + str_replace([' > ', ' + ', ' ~ '], ['>', '+', '~'], $block->selectors) + ) + . $this->open . $this->break + ); + } +} diff --git a/user/plugins/admin/vendor/scssphp/scssphp/src/Formatter/Debug.php b/user/plugins/admin/vendor/scssphp/scssphp/src/Formatter/Debug.php new file mode 100644 index 0000000..b3f4422 --- /dev/null +++ b/user/plugins/admin/vendor/scssphp/scssphp/src/Formatter/Debug.php @@ -0,0 +1,127 @@ + + * + * @deprecated since 1.4.0. + * + * @internal + */ +class Debug extends Formatter +{ + /** + * {@inheritdoc} + */ + public function __construct() + { + @trigger_error('The Debug formatter is deprecated since 1.4.0.', E_USER_DEPRECATED); + + $this->indentLevel = 0; + $this->indentChar = ''; + $this->break = "\n"; + $this->open = ' {'; + $this->close = ' }'; + $this->tagSeparator = ', '; + $this->assignSeparator = ': '; + $this->keepSemicolons = true; + } + + /** + * {@inheritdoc} + */ + protected function indentStr() + { + return str_repeat(' ', $this->indentLevel); + } + + /** + * {@inheritdoc} + */ + protected function blockLines(OutputBlock $block) + { + $indent = $this->indentStr(); + + if (empty($block->lines)) { + $this->write("{$indent}block->lines: []\n"); + + return; + } + + foreach ($block->lines as $index => $line) { + $this->write("{$indent}block->lines[{$index}]: $line\n"); + } + } + + /** + * {@inheritdoc} + */ + protected function blockSelectors(OutputBlock $block) + { + $indent = $this->indentStr(); + + if (empty($block->selectors)) { + $this->write("{$indent}block->selectors: []\n"); + + return; + } + + foreach ($block->selectors as $index => $selector) { + $this->write("{$indent}block->selectors[{$index}]: $selector\n"); + } + } + + /** + * {@inheritdoc} + */ + protected function blockChildren(OutputBlock $block) + { + $indent = $this->indentStr(); + + if (empty($block->children)) { + $this->write("{$indent}block->children: []\n"); + + return; + } + + $this->indentLevel++; + + foreach ($block->children as $i => $child) { + $this->block($child); + } + + $this->indentLevel--; + } + + /** + * {@inheritdoc} + */ + protected function block(OutputBlock $block) + { + $indent = $this->indentStr(); + + $this->write("{$indent}block->type: {$block->type}\n" . + "{$indent}block->depth: {$block->depth}\n"); + + $this->currentBlock = $block; + + $this->blockSelectors($block); + $this->blockLines($block); + $this->blockChildren($block); + } +} diff --git a/user/plugins/admin/vendor/scssphp/scssphp/src/Formatter/Expanded.php b/user/plugins/admin/vendor/scssphp/scssphp/src/Formatter/Expanded.php new file mode 100644 index 0000000..6eb4a0c --- /dev/null +++ b/user/plugins/admin/vendor/scssphp/scssphp/src/Formatter/Expanded.php @@ -0,0 +1,72 @@ + + * + * @internal + */ +class Expanded extends Formatter +{ + /** + * {@inheritdoc} + */ + public function __construct() + { + $this->indentLevel = 0; + $this->indentChar = ' '; + $this->break = "\n"; + $this->open = ' {'; + $this->close = '}'; + $this->tagSeparator = ', '; + $this->assignSeparator = ': '; + $this->keepSemicolons = true; + } + + /** + * {@inheritdoc} + */ + protected function indentStr() + { + return str_repeat($this->indentChar, $this->indentLevel); + } + + /** + * {@inheritdoc} + */ + protected function blockLines(OutputBlock $block) + { + $inner = $this->indentStr(); + + $glue = $this->break . $inner; + + foreach ($block->lines as $index => $line) { + if (substr($line, 0, 2) === '/*') { + $replacedLine = preg_replace('/\r\n?|\n|\f/', $this->break, $line); + assert($replacedLine !== null); + $block->lines[$index] = $replacedLine; + } + } + + $this->write($inner . implode($glue, $block->lines)); + + if (empty($block->selectors) || ! empty($block->children)) { + $this->write($this->break); + } + } +} diff --git a/user/plugins/admin/vendor/scssphp/scssphp/src/Formatter/Nested.php b/user/plugins/admin/vendor/scssphp/scssphp/src/Formatter/Nested.php new file mode 100644 index 0000000..d5ed85c --- /dev/null +++ b/user/plugins/admin/vendor/scssphp/scssphp/src/Formatter/Nested.php @@ -0,0 +1,238 @@ + + * + * @deprecated since 1.4.0. Use the Expanded formatter instead. + * + * @internal + */ +class Nested extends Formatter +{ + /** + * @var int + */ + private $depth; + + /** + * {@inheritdoc} + */ + public function __construct() + { + @trigger_error('The Nested formatter is deprecated since 1.4.0. Use the Expanded formatter instead.', E_USER_DEPRECATED); + + $this->indentLevel = 0; + $this->indentChar = ' '; + $this->break = "\n"; + $this->open = ' {'; + $this->close = ' }'; + $this->tagSeparator = ', '; + $this->assignSeparator = ': '; + $this->keepSemicolons = true; + } + + /** + * {@inheritdoc} + */ + protected function indentStr() + { + $n = $this->depth - 1; + + return str_repeat($this->indentChar, max($this->indentLevel + $n, 0)); + } + + /** + * {@inheritdoc} + */ + protected function blockLines(OutputBlock $block) + { + $inner = $this->indentStr(); + $glue = $this->break . $inner; + + foreach ($block->lines as $index => $line) { + if (substr($line, 0, 2) === '/*') { + $replacedLine = preg_replace('/\r\n?|\n|\f/', $this->break, $line); + assert($replacedLine !== null); + $block->lines[$index] = $replacedLine; + } + } + + $this->write($inner . implode($glue, $block->lines)); + } + + /** + * {@inheritdoc} + */ + protected function block(OutputBlock $block) + { + static $depths; + static $downLevel; + static $closeBlock; + static $previousEmpty; + static $previousHasSelector; + + if ($block->type === 'root') { + $depths = [ 0 ]; + $downLevel = ''; + $closeBlock = ''; + $this->depth = 0; + $previousEmpty = false; + $previousHasSelector = false; + } + + $isMediaOrDirective = \in_array($block->type, [Type::T_DIRECTIVE, Type::T_MEDIA]); + $isSupport = ($block->type === Type::T_DIRECTIVE + && $block->selectors && strpos(implode('', $block->selectors), '@supports') !== false); + + while ($block->depth < end($depths) || ($block->depth == 1 && end($depths) == 1)) { + array_pop($depths); + $this->depth--; + + if ( + ! $this->depth && ($block->depth <= 1 || (! $this->indentLevel && $block->type === Type::T_COMMENT)) && + (($block->selectors && ! $isMediaOrDirective) || $previousHasSelector) + ) { + $downLevel = $this->break; + } + + if (empty($block->lines) && empty($block->children)) { + $previousEmpty = true; + } + } + + if (empty($block->lines) && empty($block->children)) { + return; + } + + $this->currentBlock = $block; + + if (! empty($block->lines) || (! empty($block->children) && ($this->depth < 1 || $isSupport))) { + if ($block->depth > end($depths)) { + if (! $previousEmpty || $this->depth < 1) { + $this->depth++; + + $depths[] = $block->depth; + } else { + // keep the current depth unchanged but take the block depth as a new reference for following blocks + array_pop($depths); + + $depths[] = $block->depth; + } + } + } + + $previousEmpty = ($block->type === Type::T_COMMENT); + $previousHasSelector = false; + + if (! empty($block->selectors)) { + if ($closeBlock) { + $this->write($closeBlock); + $closeBlock = ''; + } + + if ($downLevel) { + $this->write($downLevel); + $downLevel = ''; + } + + $this->blockSelectors($block); + + $this->indentLevel++; + } + + if (! empty($block->lines)) { + if ($closeBlock) { + $this->write($closeBlock); + $closeBlock = ''; + } + + if ($downLevel) { + $this->write($downLevel); + $downLevel = ''; + } + + $this->blockLines($block); + + $closeBlock = $this->break; + } + + if (! empty($block->children)) { + if ($this->depth > 0 && ($isMediaOrDirective || ! $this->hasFlatChild($block))) { + array_pop($depths); + + $this->depth--; + $this->blockChildren($block); + $this->depth++; + + $depths[] = $block->depth; + } else { + $this->blockChildren($block); + } + } + + // reclear to not be spoiled by children if T_DIRECTIVE + if ($block->type === Type::T_DIRECTIVE) { + $previousHasSelector = false; + } + + if (! empty($block->selectors)) { + $this->indentLevel--; + + if (! $this->keepSemicolons) { + $this->strippedSemicolon = ''; + } + + $this->write($this->close); + + $closeBlock = $this->break; + + if ($this->depth > 1 && ! empty($block->children)) { + array_pop($depths); + $this->depth--; + } + + if (! $isMediaOrDirective) { + $previousHasSelector = true; + } + } + + if ($block->type === 'root') { + $this->write($this->break); + } + } + + /** + * Block has flat child + * + * @param \ScssPhp\ScssPhp\Formatter\OutputBlock $block + * + * @return bool + */ + private function hasFlatChild($block) + { + foreach ($block->children as $child) { + if (empty($child->selectors)) { + return true; + } + } + + return false; + } +} diff --git a/user/plugins/admin/vendor/scssphp/scssphp/src/Formatter/OutputBlock.php b/user/plugins/admin/vendor/scssphp/scssphp/src/Formatter/OutputBlock.php new file mode 100644 index 0000000..2799656 --- /dev/null +++ b/user/plugins/admin/vendor/scssphp/scssphp/src/Formatter/OutputBlock.php @@ -0,0 +1,68 @@ + + * + * @internal + */ +class OutputBlock +{ + /** + * @var string|null + */ + public $type; + + /** + * @var int + */ + public $depth; + + /** + * @var array|null + */ + public $selectors; + + /** + * @var string[] + */ + public $lines; + + /** + * @var OutputBlock[] + */ + public $children; + + /** + * @var OutputBlock|null + */ + public $parent; + + /** + * @var string|null + */ + public $sourceName; + + /** + * @var int|null + */ + public $sourceLine; + + /** + * @var int|null + */ + public $sourceColumn; +} diff --git a/user/plugins/admin/vendor/scssphp/scssphp/src/Logger/LoggerInterface.php b/user/plugins/admin/vendor/scssphp/scssphp/src/Logger/LoggerInterface.php new file mode 100644 index 0000000..7c0a2f7 --- /dev/null +++ b/user/plugins/admin/vendor/scssphp/scssphp/src/Logger/LoggerInterface.php @@ -0,0 +1,48 @@ +stream = $stream; + $this->closeOnDestruct = $closeOnDestruct; + } + + /** + * @internal + */ + public function __destruct() + { + if ($this->closeOnDestruct) { + fclose($this->stream); + } + } + + /** + * @inheritDoc + */ + public function warn($message, $deprecation = false) + { + $prefix = ($deprecation ? 'DEPRECATION ' : '') . 'WARNING: '; + + fwrite($this->stream, $prefix . $message . "\n\n"); + } + + /** + * @inheritDoc + */ + public function debug($message) + { + fwrite($this->stream, $message . "\n"); + } +} diff --git a/user/plugins/admin/vendor/scssphp/scssphp/src/Node.php b/user/plugins/admin/vendor/scssphp/scssphp/src/Node.php new file mode 100644 index 0000000..fcaf8a9 --- /dev/null +++ b/user/plugins/admin/vendor/scssphp/scssphp/src/Node.php @@ -0,0 +1,43 @@ + + * + * @internal + */ +abstract class Node +{ + /** + * @var string + */ + public $type; + + /** + * @var int + */ + public $sourceIndex; + + /** + * @var int|null + */ + public $sourceLine; + + /** + * @var int|null + */ + public $sourceColumn; +} diff --git a/user/plugins/admin/vendor/scssphp/scssphp/src/Node/Number.php b/user/plugins/admin/vendor/scssphp/scssphp/src/Node/Number.php new file mode 100644 index 0000000..ca9b5b6 --- /dev/null +++ b/user/plugins/admin/vendor/scssphp/scssphp/src/Node/Number.php @@ -0,0 +1,804 @@ + + * + * @template-implements \ArrayAccess + */ +class Number extends Node implements \ArrayAccess +{ + const PRECISION = 10; + + /** + * @var int + * @deprecated use {Number::PRECISION} instead to read the precision. Configuring it is not supported anymore. + */ + public static $precision = self::PRECISION; + + /** + * @see http://www.w3.org/TR/2012/WD-css3-values-20120308/ + * + * @var array + * @phpstan-var array> + */ + protected static $unitTable = [ + 'in' => [ + 'in' => 1, + 'pc' => 6, + 'pt' => 72, + 'px' => 96, + 'cm' => 2.54, + 'mm' => 25.4, + 'q' => 101.6, + ], + 'turn' => [ + 'deg' => 360, + 'grad' => 400, + 'rad' => 6.28318530717958647692528676, // 2 * M_PI + 'turn' => 1, + ], + 's' => [ + 's' => 1, + 'ms' => 1000, + ], + 'Hz' => [ + 'Hz' => 1, + 'kHz' => 0.001, + ], + 'dpi' => [ + 'dpi' => 1, + 'dpcm' => 1 / 2.54, + 'dppx' => 1 / 96, + ], + ]; + + /** + * @var int|float + */ + private $dimension; + + /** + * @var string[] + * @phpstan-var list + */ + private $numeratorUnits; + + /** + * @var string[] + * @phpstan-var list + */ + private $denominatorUnits; + + /** + * Initialize number + * + * @param int|float $dimension + * @param string[]|string $numeratorUnits + * @param string[] $denominatorUnits + * + * @phpstan-param list|string $numeratorUnits + * @phpstan-param list $denominatorUnits + */ + public function __construct($dimension, $numeratorUnits, array $denominatorUnits = []) + { + if (is_string($numeratorUnits)) { + $numeratorUnits = $numeratorUnits ? [$numeratorUnits] : []; + } elseif (isset($numeratorUnits['numerator_units'], $numeratorUnits['denominator_units'])) { + // TODO get rid of this once `$number[2]` is not used anymore + $denominatorUnits = $numeratorUnits['denominator_units']; + $numeratorUnits = $numeratorUnits['numerator_units']; + } + + $this->dimension = $dimension; + $this->numeratorUnits = $numeratorUnits; + $this->denominatorUnits = $denominatorUnits; + } + + /** + * @return float|int + */ + public function getDimension() + { + return $this->dimension; + } + + /** + * @return string[] + */ + public function getNumeratorUnits() + { + return $this->numeratorUnits; + } + + /** + * @return string[] + */ + public function getDenominatorUnits() + { + return $this->denominatorUnits; + } + + /** + * @return bool + */ + #[\ReturnTypeWillChange] + public function offsetExists($offset) + { + if ($offset === -3) { + return ! \is_null($this->sourceColumn); + } + + if ($offset === -2) { + return ! \is_null($this->sourceLine); + } + + if ( + $offset === -1 || + $offset === 0 || + $offset === 1 || + $offset === 2 + ) { + return true; + } + + return false; + } + + /** + * @return mixed + */ + #[\ReturnTypeWillChange] + public function offsetGet($offset) + { + switch ($offset) { + case -3: + return $this->sourceColumn; + + case -2: + return $this->sourceLine; + + case -1: + return $this->sourceIndex; + + case 0: + return Type::T_NUMBER; + + case 1: + return $this->dimension; + + case 2: + return array('numerator_units' => $this->numeratorUnits, 'denominator_units' => $this->denominatorUnits); + } + } + + /** + * @return void + */ + #[\ReturnTypeWillChange] + public function offsetSet($offset, $value) + { + throw new \BadMethodCallException('Number is immutable'); + } + + /** + * @return void + */ + #[\ReturnTypeWillChange] + public function offsetUnset($offset) + { + throw new \BadMethodCallException('Number is immutable'); + } + + /** + * Returns true if the number is unitless + * + * @return bool + */ + public function unitless() + { + return \count($this->numeratorUnits) === 0 && \count($this->denominatorUnits) === 0; + } + + /** + * Checks whether the number has exactly this unit + * + * @param string $unit + * + * @return bool + */ + public function hasUnit($unit) + { + return \count($this->numeratorUnits) === 1 && \count($this->denominatorUnits) === 0 && $this->numeratorUnits[0] === $unit; + } + + /** + * Returns unit(s) as the product of numerator units divided by the product of denominator units + * + * @return string + */ + public function unitStr() + { + if ($this->unitless()) { + return ''; + } + + return self::getUnitString($this->numeratorUnits, $this->denominatorUnits); + } + + /** + * @param float|int $min + * @param float|int $max + * @param string|null $name + * + * @return float|int + * @throws SassScriptException + */ + public function valueInRange($min, $max, $name = null) + { + try { + return Util::checkRange('', new Range($min, $max), $this); + } catch (RangeException $e) { + throw SassScriptException::forArgument(sprintf('Expected %s to be within %s%s and %s%3$s', $this, $min, $this->unitStr(), $max), $name); + } + } + + /** + * @param string|null $varName + * + * @return void + */ + public function assertNoUnits($varName = null) + { + if ($this->unitless()) { + return; + } + + throw SassScriptException::forArgument(sprintf('Expected %s to have no units.', $this), $varName); + } + + /** + * @param string $unit + * @param string|null $varName + * + * @return void + */ + public function assertUnit($unit, $varName = null) + { + if ($this->hasUnit($unit)) { + return; + } + + throw SassScriptException::forArgument(sprintf('Expected %s to have unit "%s".', $this, $unit), $varName); + } + + /** + * @param Number $other + * + * @return void + */ + public function assertSameUnitOrUnitless(Number $other) + { + if ($other->unitless()) { + return; + } + + if ($this->numeratorUnits === $other->numeratorUnits && $this->denominatorUnits === $other->denominatorUnits) { + return; + } + + throw new SassScriptException(sprintf( + 'Incompatible units %s and %s.', + self::getUnitString($this->numeratorUnits, $this->denominatorUnits), + self::getUnitString($other->numeratorUnits, $other->denominatorUnits) + )); + } + + /** + * Returns a copy of this number, converted to the units represented by $newNumeratorUnits and $newDenominatorUnits. + * + * This does not throw an error if this number is unitless and + * $newNumeratorUnits/$newDenominatorUnits are not empty, or vice versa. Instead, + * it treats all unitless numbers as convertible to and from all units without + * changing the value. + * + * @param string[] $newNumeratorUnits + * @param string[] $newDenominatorUnits + * + * @return Number + * + * @phpstan-param list $newNumeratorUnits + * @phpstan-param list $newDenominatorUnits + * + * @throws SassScriptException if this number's units are not compatible with $newNumeratorUnits and $newDenominatorUnits + */ + public function coerce(array $newNumeratorUnits, array $newDenominatorUnits) + { + return new Number($this->valueInUnits($newNumeratorUnits, $newDenominatorUnits), $newNumeratorUnits, $newDenominatorUnits); + } + + /** + * @param Number $other + * + * @return bool + */ + public function isComparableTo(Number $other) + { + if ($this->unitless() || $other->unitless()) { + return true; + } + + try { + $this->greaterThan($other); + return true; + } catch (SassScriptException $e) { + return false; + } + } + + /** + * @param Number $other + * + * @return bool + */ + public function lessThan(Number $other) + { + return $this->coerceUnits($other, function ($num1, $num2) { + return $num1 < $num2; + }); + } + + /** + * @param Number $other + * + * @return bool + */ + public function lessThanOrEqual(Number $other) + { + return $this->coerceUnits($other, function ($num1, $num2) { + return $num1 <= $num2; + }); + } + + /** + * @param Number $other + * + * @return bool + */ + public function greaterThan(Number $other) + { + return $this->coerceUnits($other, function ($num1, $num2) { + return $num1 > $num2; + }); + } + + /** + * @param Number $other + * + * @return bool + */ + public function greaterThanOrEqual(Number $other) + { + return $this->coerceUnits($other, function ($num1, $num2) { + return $num1 >= $num2; + }); + } + + /** + * @param Number $other + * + * @return Number + */ + public function plus(Number $other) + { + return $this->coerceNumber($other, function ($num1, $num2) { + return $num1 + $num2; + }); + } + + /** + * @param Number $other + * + * @return Number + */ + public function minus(Number $other) + { + return $this->coerceNumber($other, function ($num1, $num2) { + return $num1 - $num2; + }); + } + + /** + * @return Number + */ + public function unaryMinus() + { + return new Number(-$this->dimension, $this->numeratorUnits, $this->denominatorUnits); + } + + /** + * @param Number $other + * + * @return Number + */ + public function modulo(Number $other) + { + return $this->coerceNumber($other, function ($num1, $num2) { + if ($num2 == 0) { + return NAN; + } + + $result = fmod($num1, $num2); + + if ($result == 0) { + return 0; + } + + if ($num2 < 0 xor $num1 < 0) { + $result += $num2; + } + + return $result; + }); + } + + /** + * @param Number $other + * + * @return Number + */ + public function times(Number $other) + { + return $this->multiplyUnits($this->dimension * $other->dimension, $this->numeratorUnits, $this->denominatorUnits, $other->numeratorUnits, $other->denominatorUnits); + } + + /** + * @param Number $other + * + * @return Number + */ + public function dividedBy(Number $other) + { + if ($other->dimension == 0) { + if ($this->dimension == 0) { + $value = NAN; + } elseif ($this->dimension > 0) { + $value = INF; + } else { + $value = -INF; + } + } else { + $value = $this->dimension / $other->dimension; + } + + return $this->multiplyUnits($value, $this->numeratorUnits, $this->denominatorUnits, $other->denominatorUnits, $other->numeratorUnits); + } + + /** + * @param Number $other + * + * @return bool + */ + public function equals(Number $other) + { + // Unitless numbers are convertable to unit numbers, but not equal, so we special-case unitless here. + if ($this->unitless() !== $other->unitless()) { + return false; + } + + // In Sass, neither NaN nor Infinity are equal to themselves, while PHP defines INF==INF + if (is_nan($this->dimension) || is_nan($other->dimension) || !is_finite($this->dimension) || !is_finite($other->dimension)) { + return false; + } + + if ($this->unitless()) { + return round($this->dimension, self::PRECISION) == round($other->dimension, self::PRECISION); + } + + try { + return $this->coerceUnits($other, function ($num1, $num2) { + return round($num1,self::PRECISION) == round($num2, self::PRECISION); + }); + } catch (SassScriptException $e) { + return false; + } + } + + /** + * Output number + * + * @param \ScssPhp\ScssPhp\Compiler $compiler + * + * @return string + */ + public function output(Compiler $compiler = null) + { + $dimension = round($this->dimension, self::PRECISION); + + if (is_nan($dimension)) { + return 'NaN'; + } + + if ($dimension === INF) { + return 'Infinity'; + } + + if ($dimension === -INF) { + return '-Infinity'; + } + + if ($compiler) { + $unit = $this->unitStr(); + } elseif (isset($this->numeratorUnits[0])) { + $unit = $this->numeratorUnits[0]; + } else { + $unit = ''; + } + + $dimension = number_format($dimension, self::PRECISION, '.', ''); + + return rtrim(rtrim($dimension, '0'), '.') . $unit; + } + + /** + * {@inheritdoc} + */ + public function __toString() + { + return $this->output(); + } + + /** + * @param Number $other + * @param callable $operation + * + * @return Number + * + * @phpstan-param callable(int|float, int|float): (int|float) $operation + */ + private function coerceNumber(Number $other, $operation) + { + $result = $this->coerceUnits($other, $operation); + + if (!$this->unitless()) { + return new Number($result, $this->numeratorUnits, $this->denominatorUnits); + } + + return new Number($result, $other->numeratorUnits, $other->denominatorUnits); + } + + /** + * @param Number $other + * @param callable $operation + * + * @return mixed + * + * @phpstan-template T + * @phpstan-param callable(int|float, int|float): T $operation + * @phpstan-return T + */ + private function coerceUnits(Number $other, $operation) + { + if (!$this->unitless()) { + $num1 = $this->dimension; + $num2 = $other->valueInUnits($this->numeratorUnits, $this->denominatorUnits); + } else { + $num1 = $this->valueInUnits($other->numeratorUnits, $other->denominatorUnits); + $num2 = $other->dimension; + } + + return \call_user_func($operation, $num1, $num2); + } + + /** + * @param string[] $numeratorUnits + * @param string[] $denominatorUnits + * + * @return int|float + * + * @phpstan-param list $numeratorUnits + * @phpstan-param list $denominatorUnits + * + * @throws SassScriptException if this number's units are not compatible with $numeratorUnits and $denominatorUnits + */ + private function valueInUnits(array $numeratorUnits, array $denominatorUnits) + { + if ( + $this->unitless() + || (\count($numeratorUnits) === 0 && \count($denominatorUnits) === 0) + || ($this->numeratorUnits === $numeratorUnits && $this->denominatorUnits === $denominatorUnits) + ) { + return $this->dimension; + } + + $value = $this->dimension; + $oldNumerators = $this->numeratorUnits; + + foreach ($numeratorUnits as $newNumerator) { + foreach ($oldNumerators as $key => $oldNumerator) { + $conversionFactor = self::getConversionFactor($newNumerator, $oldNumerator); + + if (\is_null($conversionFactor)) { + continue; + } + + $value *= $conversionFactor; + unset($oldNumerators[$key]); + continue 2; + } + + throw new SassScriptException(sprintf( + 'Incompatible units %s and %s.', + self::getUnitString($this->numeratorUnits, $this->denominatorUnits), + self::getUnitString($numeratorUnits, $denominatorUnits) + )); + } + + $oldDenominators = $this->denominatorUnits; + + foreach ($denominatorUnits as $newDenominator) { + foreach ($oldDenominators as $key => $oldDenominator) { + $conversionFactor = self::getConversionFactor($newDenominator, $oldDenominator); + + if (\is_null($conversionFactor)) { + continue; + } + + $value /= $conversionFactor; + unset($oldDenominators[$key]); + continue 2; + } + + throw new SassScriptException(sprintf( + 'Incompatible units %s and %s.', + self::getUnitString($this->numeratorUnits, $this->denominatorUnits), + self::getUnitString($numeratorUnits, $denominatorUnits) + )); + } + + if (\count($oldNumerators) || \count($oldDenominators)) { + throw new SassScriptException(sprintf( + 'Incompatible units %s and %s.', + self::getUnitString($this->numeratorUnits, $this->denominatorUnits), + self::getUnitString($numeratorUnits, $denominatorUnits) + )); + } + + return $value; + } + + /** + * @param int|float $value + * @param string[] $numerators1 + * @param string[] $denominators1 + * @param string[] $numerators2 + * @param string[] $denominators2 + * + * @return Number + * + * @phpstan-param list $numerators1 + * @phpstan-param list $denominators1 + * @phpstan-param list $numerators2 + * @phpstan-param list $denominators2 + */ + private function multiplyUnits($value, array $numerators1, array $denominators1, array $numerators2, array $denominators2) + { + $newNumerators = array(); + + foreach ($numerators1 as $numerator) { + foreach ($denominators2 as $key => $denominator) { + $conversionFactor = self::getConversionFactor($numerator, $denominator); + + if (\is_null($conversionFactor)) { + continue; + } + + $value /= $conversionFactor; + unset($denominators2[$key]); + continue 2; + } + + $newNumerators[] = $numerator; + } + + foreach ($numerators2 as $numerator) { + foreach ($denominators1 as $key => $denominator) { + $conversionFactor = self::getConversionFactor($numerator, $denominator); + + if (\is_null($conversionFactor)) { + continue; + } + + $value /= $conversionFactor; + unset($denominators1[$key]); + continue 2; + } + + $newNumerators[] = $numerator; + } + + $newDenominators = array_values(array_merge($denominators1, $denominators2)); + + return new Number($value, $newNumerators, $newDenominators); + } + + /** + * Returns the number of [unit1]s per [unit2]. + * + * Equivalently, `1unit1 * conversionFactor(unit1, unit2) = 1unit2`. + * + * @param string $unit1 + * @param string $unit2 + * + * @return float|int|null + */ + private static function getConversionFactor($unit1, $unit2) + { + if ($unit1 === $unit2) { + return 1; + } + + foreach (static::$unitTable as $unitVariants) { + if (isset($unitVariants[$unit1]) && isset($unitVariants[$unit2])) { + return $unitVariants[$unit1] / $unitVariants[$unit2]; + } + } + + return null; + } + + /** + * Returns unit(s) as the product of numerator units divided by the product of denominator units + * + * @param string[] $numerators + * @param string[] $denominators + * + * @phpstan-param list $numerators + * @phpstan-param list $denominators + * + * @return string + */ + private static function getUnitString(array $numerators, array $denominators) + { + if (!\count($numerators)) { + if (\count($denominators) === 0) { + return 'no units'; + } + + if (\count($denominators) === 1) { + return $denominators[0] . '^-1'; + } + + return '(' . implode('*', $denominators) . ')^-1'; + } + + return implode('*', $numerators) . (\count($denominators) ? '/' . implode('*', $denominators) : ''); + } +} diff --git a/user/plugins/admin/vendor/scssphp/scssphp/src/OutputStyle.php b/user/plugins/admin/vendor/scssphp/scssphp/src/OutputStyle.php new file mode 100644 index 0000000..c284639 --- /dev/null +++ b/user/plugins/admin/vendor/scssphp/scssphp/src/OutputStyle.php @@ -0,0 +1,9 @@ + + * + * @internal + */ +class Parser +{ + const SOURCE_INDEX = -1; + const SOURCE_LINE = -2; + const SOURCE_COLUMN = -3; + + /** + * @var array + */ + protected static $precedence = [ + '=' => 0, + 'or' => 1, + 'and' => 2, + '==' => 3, + '!=' => 3, + '<=' => 4, + '>=' => 4, + '<' => 4, + '>' => 4, + '+' => 5, + '-' => 5, + '*' => 6, + '/' => 6, + '%' => 6, + ]; + + /** + * @var string + */ + protected static $commentPattern; + /** + * @var string + */ + protected static $operatorPattern; + /** + * @var string + */ + protected static $whitePattern; + + /** + * @var Cache|null + */ + protected $cache; + + private $sourceName; + private $sourceIndex; + /** + * @var array + */ + private $sourcePositions; + /** + * The current offset in the buffer + * + * @var int + */ + private $count; + /** + * @var Block|null + */ + private $env; + /** + * @var bool + */ + private $inParens; + /** + * @var bool + */ + private $eatWhiteDefault; + /** + * @var bool + */ + private $discardComments; + private $allowVars; + /** + * @var string + */ + private $buffer; + private $utf8; + /** + * @var string|null + */ + private $encoding; + private $patternModifiers; + private $commentsSeen; + + private $cssOnly; + + /** + * @var LoggerInterface + */ + private $logger; + + /** + * Constructor + * + * @api + * + * @param string|null $sourceName + * @param int $sourceIndex + * @param string|null $encoding + * @param Cache|null $cache + * @param bool $cssOnly + * @param LoggerInterface|null $logger + */ + public function __construct($sourceName, $sourceIndex = 0, $encoding = 'utf-8', Cache $cache = null, $cssOnly = false, LoggerInterface $logger = null) + { + $this->sourceName = $sourceName ?: '(stdin)'; + $this->sourceIndex = $sourceIndex; + $this->utf8 = ! $encoding || strtolower($encoding) === 'utf-8'; + $this->patternModifiers = $this->utf8 ? 'Aisu' : 'Ais'; + $this->commentsSeen = []; + $this->allowVars = true; + $this->cssOnly = $cssOnly; + $this->logger = $logger ?: new QuietLogger(); + + if (empty(static::$operatorPattern)) { + static::$operatorPattern = '([*\/%+-]|[!=]\=|\>\=?|\<\=?|and|or)'; + + $commentSingle = '\/\/'; + $commentMultiLeft = '\/\*'; + $commentMultiRight = '\*\/'; + + static::$commentPattern = $commentMultiLeft . '.*?' . $commentMultiRight; + static::$whitePattern = $this->utf8 + ? '/' . $commentSingle . '[^\n]*\s*|(' . static::$commentPattern . ')\s*|\s+/AisuS' + : '/' . $commentSingle . '[^\n]*\s*|(' . static::$commentPattern . ')\s*|\s+/AisS'; + } + + $this->cache = $cache; + } + + /** + * Get source file name + * + * @api + * + * @return string + */ + public function getSourceName() + { + return $this->sourceName; + } + + /** + * Throw parser error + * + * @api + * + * @param string $msg + * + * @phpstan-return never-return + * + * @throws ParserException + * + * @deprecated use "parseError" and throw the exception in the caller instead. + */ + public function throwParseError($msg = 'parse error') + { + @trigger_error( + 'The method "throwParseError" is deprecated. Use "parseError" and throw the exception in the caller instead', + E_USER_DEPRECATED + ); + + throw $this->parseError($msg); + } + + /** + * Creates a parser error + * + * @api + * + * @param string $msg + * + * @return ParserException + */ + public function parseError($msg = 'parse error') + { + list($line, $column) = $this->getSourcePosition($this->count); + + $loc = empty($this->sourceName) + ? "line: $line, column: $column" + : "$this->sourceName on line $line, at column $column"; + + if ($this->peek('(.*?)(\n|$)', $m, $this->count)) { + $this->restoreEncoding(); + + $e = new ParserException("$msg: failed at `$m[1]` $loc"); + $e->setSourcePosition([$this->sourceName, $line, $column]); + + return $e; + } + + $this->restoreEncoding(); + + $e = new ParserException("$msg: $loc"); + $e->setSourcePosition([$this->sourceName, $line, $column]); + + return $e; + } + + /** + * Parser buffer + * + * @api + * + * @param string $buffer + * + * @return Block + */ + public function parse($buffer) + { + if ($this->cache) { + $cacheKey = $this->sourceName . ':' . md5($buffer); + $parseOptions = [ + 'utf8' => $this->utf8, + ]; + $v = $this->cache->getCache('parse', $cacheKey, $parseOptions); + + if (! \is_null($v)) { + return $v; + } + } + + // strip BOM (byte order marker) + if (substr($buffer, 0, 3) === "\xef\xbb\xbf") { + $buffer = substr($buffer, 3); + } + + $this->buffer = rtrim($buffer, "\x00..\x1f"); + $this->count = 0; + $this->env = null; + $this->inParens = false; + $this->eatWhiteDefault = true; + + $this->saveEncoding(); + $this->extractLineNumbers($buffer); + + $this->pushBlock(null); // root block + $this->whitespace(); + $this->pushBlock(null); + $this->popBlock(); + + while ($this->parseChunk()) { + ; + } + + if ($this->count !== \strlen($this->buffer)) { + throw $this->parseError(); + } + + if (! empty($this->env->parent)) { + throw $this->parseError('unclosed block'); + } + + $this->restoreEncoding(); + assert($this->env !== null); + + if ($this->cache) { + $this->cache->setCache('parse', $cacheKey, $this->env, $parseOptions); + } + + return $this->env; + } + + /** + * Parse a value or value list + * + * @api + * + * @param string $buffer + * @param string|array $out + * + * @return bool + */ + public function parseValue($buffer, &$out) + { + $this->count = 0; + $this->env = null; + $this->inParens = false; + $this->eatWhiteDefault = true; + $this->buffer = (string) $buffer; + + $this->saveEncoding(); + $this->extractLineNumbers($this->buffer); + + $list = $this->valueList($out); + + $this->restoreEncoding(); + + return $list; + } + + /** + * Parse a selector or selector list + * + * @api + * + * @param string $buffer + * @param string|array $out + * @param bool $shouldValidate + * + * @return bool + */ + public function parseSelector($buffer, &$out, $shouldValidate = true) + { + $this->count = 0; + $this->env = null; + $this->inParens = false; + $this->eatWhiteDefault = true; + $this->buffer = (string) $buffer; + + $this->saveEncoding(); + $this->extractLineNumbers($this->buffer); + + // discard space/comments at the start + $this->discardComments = true; + $this->whitespace(); + $this->discardComments = false; + + $selector = $this->selectors($out); + + $this->restoreEncoding(); + + if ($shouldValidate && $this->count !== strlen($buffer)) { + throw $this->parseError("`" . substr($buffer, $this->count) . "` is not a valid Selector in `$buffer`"); + } + + return $selector; + } + + /** + * Parse a media Query + * + * @api + * + * @param string $buffer + * @param array $out + * + * @return bool + */ + public function parseMediaQueryList($buffer, &$out) + { + $this->count = 0; + $this->env = null; + $this->inParens = false; + $this->eatWhiteDefault = true; + $this->buffer = (string) $buffer; + + $this->saveEncoding(); + $this->extractLineNumbers($this->buffer); + + $isMediaQuery = $this->mediaQueryList($out); + + $this->restoreEncoding(); + + return $isMediaQuery; + } + + /** + * Parse a single chunk off the head of the buffer and append it to the + * current parse environment. + * + * Returns false when the buffer is empty, or when there is an error. + * + * This function is called repeatedly until the entire document is + * parsed. + * + * This parser is most similar to a recursive descent parser. Single + * functions represent discrete grammatical rules for the language, and + * they are able to capture the text that represents those rules. + * + * Consider the function Compiler::keyword(). (All parse functions are + * structured the same.) + * + * The function takes a single reference argument. When calling the + * function it will attempt to match a keyword on the head of the buffer. + * If it is successful, it will place the keyword in the referenced + * argument, advance the position in the buffer, and return true. If it + * fails then it won't advance the buffer and it will return false. + * + * All of these parse functions are powered by Compiler::match(), which behaves + * the same way, but takes a literal regular expression. Sometimes it is + * more convenient to use match instead of creating a new function. + * + * Because of the format of the functions, to parse an entire string of + * grammatical rules, you can chain them together using &&. + * + * But, if some of the rules in the chain succeed before one fails, then + * the buffer position will be left at an invalid state. In order to + * avoid this, Compiler::seek() is used to remember and set buffer positions. + * + * Before parsing a chain, use $s = $this->count to remember the current + * position into $s. Then if a chain fails, use $this->seek($s) to + * go back where we started. + * + * @return bool + */ + protected function parseChunk() + { + $s = $this->count; + + // the directives + if (isset($this->buffer[$this->count]) && $this->buffer[$this->count] === '@') { + if ( + $this->literal('@at-root', 8) && + ($this->selectors($selector) || true) && + ($this->map($with) || true) && + (($this->matchChar('(') && + $this->interpolation($with) && + $this->matchChar(')')) || true) && + $this->matchChar('{', false) + ) { + ! $this->cssOnly || $this->assertPlainCssValid(false, $s); + + $atRoot = new AtRootBlock(); + $this->registerPushedBlock($atRoot, $s); + $atRoot->selector = $selector; + $atRoot->with = $with; + + return true; + } + + $this->seek($s); + + if ( + $this->literal('@media', 6) && + $this->mediaQueryList($mediaQueryList) && + $this->matchChar('{', false) + ) { + $media = new MediaBlock(); + $this->registerPushedBlock($media, $s); + $media->queryList = $mediaQueryList[2]; + + return true; + } + + $this->seek($s); + + if ( + $this->literal('@mixin', 6) && + $this->keyword($mixinName) && + ($this->argumentDef($args) || true) && + $this->matchChar('{', false) + ) { + ! $this->cssOnly || $this->assertPlainCssValid(false, $s); + + $mixin = new CallableBlock(Type::T_MIXIN); + $this->registerPushedBlock($mixin, $s); + $mixin->name = $mixinName; + $mixin->args = $args; + + return true; + } + + $this->seek($s); + + if ( + ($this->literal('@include', 8) && + $this->keyword($mixinName) && + ($this->matchChar('(') && + ($this->argValues($argValues) || true) && + $this->matchChar(')') || true) && + ($this->end()) || + ($this->literal('using', 5) && + $this->argumentDef($argUsing) && + ($this->end() || $this->matchChar('{') && $hasBlock = true)) || + $this->matchChar('{') && $hasBlock = true) + ) { + ! $this->cssOnly || $this->assertPlainCssValid(false, $s); + + $child = [ + Type::T_INCLUDE, + $mixinName, + isset($argValues) ? $argValues : null, + null, + isset($argUsing) ? $argUsing : null + ]; + + if (! empty($hasBlock)) { + $include = new ContentBlock(); + $this->registerPushedBlock($include, $s); + $include->child = $child; + } else { + $this->append($child, $s); + } + + return true; + } + + $this->seek($s); + + if ( + $this->literal('@scssphp-import-once', 20) && + $this->valueList($importPath) && + $this->end() + ) { + ! $this->cssOnly || $this->assertPlainCssValid(false, $s); + + list($line, $column) = $this->getSourcePosition($s); + $file = $this->sourceName; + $this->logger->warn("The \"@scssphp-import-once\" directive is deprecated and will be removed in ScssPhp 2.0, in \"$file\", line $line, column $column.", true); + + $this->append([Type::T_SCSSPHP_IMPORT_ONCE, $importPath], $s); + + return true; + } + + $this->seek($s); + + if ( + $this->literal('@import', 7) && + $this->valueList($importPath) && + $importPath[0] !== Type::T_FUNCTION_CALL && + $this->end() + ) { + if ($this->cssOnly) { + $this->assertPlainCssValid([Type::T_IMPORT, $importPath], $s); + $this->append([Type::T_COMMENT, rtrim(substr($this->buffer, $s, $this->count - $s))]); + return true; + } + + $this->append([Type::T_IMPORT, $importPath], $s); + + return true; + } + + $this->seek($s); + + if ( + $this->literal('@import', 7) && + $this->url($importPath) && + $this->end() + ) { + if ($this->cssOnly) { + $this->assertPlainCssValid([Type::T_IMPORT, $importPath], $s); + $this->append([Type::T_COMMENT, rtrim(substr($this->buffer, $s, $this->count - $s))]); + return true; + } + + $this->append([Type::T_IMPORT, $importPath], $s); + + return true; + } + + $this->seek($s); + + if ( + $this->literal('@extend', 7) && + $this->selectors($selectors) && + $this->end() + ) { + ! $this->cssOnly || $this->assertPlainCssValid(false, $s); + + // check for '!flag' + $optional = $this->stripOptionalFlag($selectors); + $this->append([Type::T_EXTEND, $selectors, $optional], $s); + + return true; + } + + $this->seek($s); + + if ( + $this->literal('@function', 9) && + $this->keyword($fnName) && + $this->argumentDef($args) && + $this->matchChar('{', false) + ) { + ! $this->cssOnly || $this->assertPlainCssValid(false, $s); + + $func = new CallableBlock(Type::T_FUNCTION); + $this->registerPushedBlock($func, $s); + $func->name = $fnName; + $func->args = $args; + + return true; + } + + $this->seek($s); + + if ( + $this->literal('@return', 7) && + ($this->valueList($retVal) || true) && + $this->end() + ) { + ! $this->cssOnly || $this->assertPlainCssValid(false, $s); + + $this->append([Type::T_RETURN, isset($retVal) ? $retVal : [Type::T_NULL]], $s); + + return true; + } + + $this->seek($s); + + if ( + $this->literal('@each', 5) && + $this->genericList($varNames, 'variable', ',', false) && + $this->literal('in', 2) && + $this->valueList($list) && + $this->matchChar('{', false) + ) { + ! $this->cssOnly || $this->assertPlainCssValid(false, $s); + + $each = new EachBlock(); + $this->registerPushedBlock($each, $s); + + foreach ($varNames[2] as $varName) { + $each->vars[] = $varName[1]; + } + + $each->list = $list; + + return true; + } + + $this->seek($s); + + if ( + $this->literal('@while', 6) && + $this->expression($cond) && + $this->matchChar('{', false) + ) { + ! $this->cssOnly || $this->assertPlainCssValid(false, $s); + + while ( + $cond[0] === Type::T_LIST && + ! empty($cond['enclosing']) && + $cond['enclosing'] === 'parent' && + \count($cond[2]) == 1 + ) { + $cond = reset($cond[2]); + } + + $while = new WhileBlock(); + $this->registerPushedBlock($while, $s); + $while->cond = $cond; + + return true; + } + + $this->seek($s); + + if ( + $this->literal('@for', 4) && + $this->variable($varName) && + $this->literal('from', 4) && + $this->expression($start) && + ($this->literal('through', 7) || + ($forUntil = true && $this->literal('to', 2))) && + $this->expression($end) && + $this->matchChar('{', false) + ) { + ! $this->cssOnly || $this->assertPlainCssValid(false, $s); + + $for = new ForBlock(); + $this->registerPushedBlock($for, $s); + $for->var = $varName[1]; + $for->start = $start; + $for->end = $end; + $for->until = isset($forUntil); + + return true; + } + + $this->seek($s); + + if ( + $this->literal('@if', 3) && + $this->functionCallArgumentsList($cond, false, '{', false) + ) { + ! $this->cssOnly || $this->assertPlainCssValid(false, $s); + + $if = new IfBlock(); + $this->registerPushedBlock($if, $s); + + while ( + $cond[0] === Type::T_LIST && + ! empty($cond['enclosing']) && + $cond['enclosing'] === 'parent' && + \count($cond[2]) == 1 + ) { + $cond = reset($cond[2]); + } + + $if->cond = $cond; + $if->cases = []; + + return true; + } + + $this->seek($s); + + if ( + $this->literal('@debug', 6) && + $this->functionCallArgumentsList($value, false) + ) { + ! $this->cssOnly || $this->assertPlainCssValid(false, $s); + + $this->append([Type::T_DEBUG, $value], $s); + + return true; + } + + $this->seek($s); + + if ( + $this->literal('@warn', 5) && + $this->functionCallArgumentsList($value, false) + ) { + ! $this->cssOnly || $this->assertPlainCssValid(false, $s); + + $this->append([Type::T_WARN, $value], $s); + + return true; + } + + $this->seek($s); + + if ( + $this->literal('@error', 6) && + $this->functionCallArgumentsList($value, false) + ) { + ! $this->cssOnly || $this->assertPlainCssValid(false, $s); + + $this->append([Type::T_ERROR, $value], $s); + + return true; + } + + $this->seek($s); + + if ( + $this->literal('@content', 8) && + ($this->end() || + $this->matchChar('(') && + $this->argValues($argContent) && + $this->matchChar(')') && + $this->end()) + ) { + ! $this->cssOnly || $this->assertPlainCssValid(false, $s); + + $this->append([Type::T_MIXIN_CONTENT, isset($argContent) ? $argContent : null], $s); + + return true; + } + + $this->seek($s); + + $last = $this->last(); + + if (isset($last) && $last[0] === Type::T_IF) { + list(, $if) = $last; + assert($if instanceof IfBlock); + + if ($this->literal('@else', 5)) { + if ($this->matchChar('{', false)) { + $else = new ElseBlock(); + } elseif ( + $this->literal('if', 2) && + $this->functionCallArgumentsList($cond, false, '{', false) + ) { + $else = new ElseifBlock(); + $else->cond = $cond; + } + + if (isset($else)) { + $this->registerPushedBlock($else, $s); + $if->cases[] = $else; + + return true; + } + } + + $this->seek($s); + } + + // only retain the first @charset directive encountered + if ( + $this->literal('@charset', 8) && + $this->valueList($charset) && + $this->end() + ) { + return true; + } + + $this->seek($s); + + if ( + $this->literal('@supports', 9) && + ($t1 = $this->supportsQuery($supportQuery)) && + ($t2 = $this->matchChar('{', false)) + ) { + $directive = new DirectiveBlock(); + $this->registerPushedBlock($directive, $s); + $directive->name = 'supports'; + $directive->value = $supportQuery; + + return true; + } + + $this->seek($s); + + // doesn't match built in directive, do generic one + if ( + $this->matchChar('@', false) && + $this->mixedKeyword($dirName) && + $this->directiveValue($dirValue, '{') + ) { + if (count($dirName) === 1 && is_string(reset($dirName))) { + $dirName = reset($dirName); + } else { + $dirName = [Type::T_STRING, '', $dirName]; + } + if ($dirName === 'media') { + $directive = new MediaBlock(); + } else { + $directive = new DirectiveBlock(); + $directive->name = $dirName; + } + $this->registerPushedBlock($directive, $s); + + if (isset($dirValue)) { + ! $this->cssOnly || ($dirValue = $this->assertPlainCssValid($dirValue)); + $directive->value = $dirValue; + } + + return true; + } + + $this->seek($s); + + // maybe it's a generic blockless directive + if ( + $this->matchChar('@', false) && + $this->mixedKeyword($dirName) && + ! $this->isKnownGenericDirective($dirName) && + ($this->end(false) || ($this->directiveValue($dirValue, '') && $this->end(false))) + ) { + if (\count($dirName) === 1 && \is_string(\reset($dirName))) { + $dirName = \reset($dirName); + } else { + $dirName = [Type::T_STRING, '', $dirName]; + } + if ( + ! empty($this->env->parent) && + $this->env->type && + ! \in_array($this->env->type, [Type::T_DIRECTIVE, Type::T_MEDIA]) + ) { + $plain = \trim(\substr($this->buffer, $s, $this->count - $s)); + throw $this->parseError( + "Unknown directive `{$plain}` not allowed in `" . $this->env->type . "` block" + ); + } + // blockless directives with a blank line after keeps their blank lines after + // sass-spec compliance purpose + $s = $this->count; + $hasBlankLine = false; + if ($this->match('\s*?\n\s*\n', $out, false)) { + $hasBlankLine = true; + $this->seek($s); + } + $isNotRoot = ! empty($this->env->parent); + $this->append([Type::T_DIRECTIVE, [$dirName, $dirValue, $hasBlankLine, $isNotRoot]], $s); + $this->whitespace(); + + return true; + } + + $this->seek($s); + + return false; + } + + $inCssSelector = null; + if ($this->cssOnly) { + $inCssSelector = (! empty($this->env->parent) && + ! in_array($this->env->type, [Type::T_DIRECTIVE, Type::T_MEDIA])); + } + // custom properties : right part is static + if (($this->customProperty($name) ) && $this->matchChar(':', false)) { + $start = $this->count; + + // but can be complex and finish with ; or } + foreach ([';','}'] as $ending) { + if ( + $this->openString($ending, $stringValue, '(', ')', false) && + $this->end() + ) { + $end = $this->count; + $value = $stringValue; + + // check if we have only a partial value due to nested [] or { } to take in account + $nestingPairs = [['[', ']'], ['{', '}']]; + + foreach ($nestingPairs as $nestingPair) { + $p = strpos($this->buffer, $nestingPair[0], $start); + + if ($p && $p < $end) { + $this->seek($start); + + if ( + $this->openString($ending, $stringValue, $nestingPair[0], $nestingPair[1], false) && + $this->end() && + $this->count > $end + ) { + $end = $this->count; + $value = $stringValue; + } + } + } + + $this->seek($end); + $this->append([Type::T_CUSTOM_PROPERTY, $name, $value], $s); + + return true; + } + } + + // TODO: output an error here if nothing found according to sass spec + } + + $this->seek($s); + + // property shortcut + // captures most properties before having to parse a selector + if ( + $this->keyword($name, false) && + $this->literal(': ', 2) && + $this->valueList($value) && + $this->end() + ) { + $name = [Type::T_STRING, '', [$name]]; + $this->append([Type::T_ASSIGN, $name, $value], $s); + + return true; + } + + $this->seek($s); + + // variable assigns + if ( + $this->variable($name) && + $this->matchChar(':') && + $this->valueList($value) && + $this->end() + ) { + ! $this->cssOnly || $this->assertPlainCssValid(false, $s); + + // check for '!flag' + $assignmentFlags = $this->stripAssignmentFlags($value); + $this->append([Type::T_ASSIGN, $name, $value, $assignmentFlags], $s); + + return true; + } + + $this->seek($s); + + // opening css block + if ( + $this->selectors($selectors) && + $this->matchChar('{', false) + ) { + ! $this->cssOnly || ! $inCssSelector || $this->assertPlainCssValid(false); + + $this->pushBlock($selectors, $s); + + if ($this->eatWhiteDefault) { + $this->whitespace(); + $this->append(null); // collect comments at the beginning if needed + } + + return true; + } + + $this->seek($s); + + // property assign, or nested assign + if ( + $this->propertyName($name) && + $this->matchChar(':') + ) { + $foundSomething = false; + + if ($this->valueList($value)) { + if (empty($this->env->parent)) { + throw $this->parseError('expected "{"'); + } + + $this->append([Type::T_ASSIGN, $name, $value], $s); + $foundSomething = true; + } + + if ($this->matchChar('{', false)) { + ! $this->cssOnly || $this->assertPlainCssValid(false); + + $propBlock = new NestedPropertyBlock(); + $this->registerPushedBlock($propBlock, $s); + $propBlock->prefix = $name; + $propBlock->hasValue = $foundSomething; + + $foundSomething = true; + } elseif ($foundSomething) { + $foundSomething = $this->end(); + } + + if ($foundSomething) { + return true; + } + } + + $this->seek($s); + + // closing a block + if ($this->matchChar('}', false)) { + $block = $this->popBlock(); + + if (! isset($block->type) || $block->type !== Type::T_IF) { + assert($this->env !== null); + + if ($this->env->parent) { + $this->append(null); // collect comments before next statement if needed + } + } + + if ($block instanceof ContentBlock) { + $include = $block->child; + assert(\is_array($include)); + unset($block->child); + $include[3] = $block; + $this->append($include, $s); + } elseif (!$block instanceof ElseBlock && !$block instanceof ElseifBlock) { + $type = isset($block->type) ? $block->type : Type::T_BLOCK; + $this->append([$type, $block], $s); + } + + // collect comments just after the block closing if needed + if ($this->eatWhiteDefault) { + $this->whitespace(); + assert($this->env !== null); + + if ($this->env->comments) { + $this->append(null); + } + } + + return true; + } + + // extra stuff + if ($this->matchChar(';')) { + return true; + } + + return false; + } + + /** + * Push block onto parse tree + * + * @param array|null $selectors + * @param int $pos + * + * @return Block + */ + protected function pushBlock($selectors, $pos = 0) + { + $b = new Block(); + $b->selectors = $selectors; + + $this->registerPushedBlock($b, $pos); + + return $b; + } + + /** + * @param Block $b + * @param int $pos + * + * @return void + */ + private function registerPushedBlock(Block $b, $pos) + { + list($line, $column) = $this->getSourcePosition($pos); + + $b->sourceName = $this->sourceName; + $b->sourceLine = $line; + $b->sourceColumn = $column; + $b->sourceIndex = $this->sourceIndex; + $b->comments = []; + $b->parent = $this->env; + + if (! $this->env) { + $b->children = []; + } elseif (empty($this->env->children)) { + $this->env->children = $this->env->comments; + $b->children = []; + $this->env->comments = []; + } else { + $b->children = $this->env->comments; + $this->env->comments = []; + } + + $this->env = $b; + + // collect comments at the beginning of a block if needed + if ($this->eatWhiteDefault) { + $this->whitespace(); + assert($this->env !== null); + + if ($this->env->comments) { + $this->append(null); + } + } + } + + /** + * Push special (named) block onto parse tree + * + * @deprecated + * + * @param string $type + * @param int $pos + * + * @return Block + */ + protected function pushSpecialBlock($type, $pos) + { + $block = $this->pushBlock(null, $pos); + $block->type = $type; + + return $block; + } + + /** + * Pop scope and return last block + * + * @return Block + * + * @throws \Exception + */ + protected function popBlock() + { + assert($this->env !== null); + + // collect comments ending just before of a block closing + if ($this->env->comments) { + $this->append(null); + } + + // pop the block + $block = $this->env; + + if (empty($block->parent)) { + throw $this->parseError('unexpected }'); + } + + if ($block->type == Type::T_AT_ROOT) { + // keeps the parent in case of self selector & + $block->selfParent = $block->parent; + } + + $this->env = $block->parent; + + unset($block->parent); + + return $block; + } + + /** + * Peek input stream + * + * @param string $regex + * @param array $out + * @param int $from + * + * @return int + */ + protected function peek($regex, &$out, $from = null) + { + if (! isset($from)) { + $from = $this->count; + } + + $r = '/' . $regex . '/' . $this->patternModifiers; + $result = preg_match($r, $this->buffer, $out, 0, $from); + + return $result; + } + + /** + * Seek to position in input stream (or return current position in input stream) + * + * @param int $where + * + * @return void + */ + protected function seek($where) + { + $this->count = $where; + } + + /** + * Assert a parsed part is plain CSS Valid + * + * @param array|false $parsed + * @param int $startPos + * + * @return array + * + * @throws ParserException + */ + protected function assertPlainCssValid($parsed, $startPos = null) + { + $type = ''; + if ($parsed) { + $type = $parsed[0]; + $parsed = $this->isPlainCssValidElement($parsed); + } + if (! $parsed) { + if (! \is_null($startPos)) { + $plain = rtrim(substr($this->buffer, $startPos, $this->count - $startPos)); + $message = "Error : `{$plain}` isn't allowed in plain CSS"; + } else { + $message = 'Error: SCSS syntax not allowed in CSS file'; + } + if ($type) { + $message .= " ($type)"; + } + throw $this->parseError($message); + } + + return $parsed; + } + + /** + * Check a parsed element is plain CSS Valid + * + * @param array $parsed + * @param bool $allowExpression + * + * @return array|false + */ + protected function isPlainCssValidElement($parsed, $allowExpression = false) + { + // keep string as is + if (is_string($parsed)) { + return $parsed; + } + + if ( + \in_array($parsed[0], [Type::T_FUNCTION, Type::T_FUNCTION_CALL]) && + !\in_array($parsed[1], [ + 'alpha', + 'attr', + 'calc', + 'cubic-bezier', + 'env', + 'grayscale', + 'hsl', + 'hsla', + 'hwb', + 'invert', + 'linear-gradient', + 'min', + 'max', + 'radial-gradient', + 'repeating-linear-gradient', + 'repeating-radial-gradient', + 'rgb', + 'rgba', + 'rotate', + 'saturate', + 'var', + ]) && + Compiler::isNativeFunction($parsed[1]) + ) { + return false; + } + + switch ($parsed[0]) { + case Type::T_BLOCK: + case Type::T_KEYWORD: + case Type::T_NULL: + case Type::T_NUMBER: + case Type::T_MEDIA: + return $parsed; + + case Type::T_COMMENT: + if (isset($parsed[2])) { + return false; + } + return $parsed; + + case Type::T_DIRECTIVE: + if (\is_array($parsed[1])) { + $parsed[1][1] = $this->isPlainCssValidElement($parsed[1][1]); + if (! $parsed[1][1]) { + return false; + } + } + + return $parsed; + + case Type::T_IMPORT: + if ($parsed[1][0] === Type::T_LIST) { + return false; + } + $parsed[1] = $this->isPlainCssValidElement($parsed[1]); + if ($parsed[1] === false) { + return false; + } + return $parsed; + + case Type::T_STRING: + foreach ($parsed[2] as $k => $substr) { + if (\is_array($substr)) { + $parsed[2][$k] = $this->isPlainCssValidElement($substr); + if (! $parsed[2][$k]) { + return false; + } + } + } + return $parsed; + + case Type::T_LIST: + if (!empty($parsed['enclosing'])) { + return false; + } + foreach ($parsed[2] as $k => $listElement) { + $parsed[2][$k] = $this->isPlainCssValidElement($listElement); + if (! $parsed[2][$k]) { + return false; + } + } + return $parsed; + + case Type::T_ASSIGN: + foreach ([1, 2, 3] as $k) { + if (! empty($parsed[$k])) { + $parsed[$k] = $this->isPlainCssValidElement($parsed[$k]); + if (! $parsed[$k]) { + return false; + } + } + } + return $parsed; + + case Type::T_EXPRESSION: + list( ,$op, $lhs, $rhs, $inParens, $whiteBefore, $whiteAfter) = $parsed; + if (! $allowExpression && ! \in_array($op, ['and', 'or', '/'])) { + return false; + } + $lhs = $this->isPlainCssValidElement($lhs, true); + if (! $lhs) { + return false; + } + $rhs = $this->isPlainCssValidElement($rhs, true); + if (! $rhs) { + return false; + } + + return [ + Type::T_STRING, + '', [ + $this->inParens ? '(' : '', + $lhs, + ($whiteBefore ? ' ' : '') . $op . ($whiteAfter ? ' ' : ''), + $rhs, + $this->inParens ? ')' : '' + ] + ]; + + case Type::T_CUSTOM_PROPERTY: + case Type::T_UNARY: + $parsed[2] = $this->isPlainCssValidElement($parsed[2]); + if (! $parsed[2]) { + return false; + } + return $parsed; + + case Type::T_FUNCTION: + $argsList = $parsed[2]; + foreach ($argsList[2] as $argElement) { + if (! $this->isPlainCssValidElement($argElement)) { + return false; + } + } + return $parsed; + + case Type::T_FUNCTION_CALL: + $parsed[0] = Type::T_FUNCTION; + $argsList = [Type::T_LIST, ',', []]; + foreach ($parsed[2] as $arg) { + if ($arg[0] || ! empty($arg[2])) { + // no named arguments possible in a css function call + // nor ... argument + return false; + } + $arg = $this->isPlainCssValidElement($arg[1], $parsed[1] === 'calc'); + if (! $arg) { + return false; + } + $argsList[2][] = $arg; + } + $parsed[2] = $argsList; + return $parsed; + } + + return false; + } + + /** + * Match string looking for either ending delim, escape, or string interpolation + * + * {@internal This is a workaround for preg_match's 250K string match limit. }} + * + * @param array $m Matches (passed by reference) + * @param string $delim Delimiter + * + * @return bool True if match; false otherwise + * + * @phpstan-impure + */ + protected function matchString(&$m, $delim) + { + $token = null; + + $end = \strlen($this->buffer); + + // look for either ending delim, escape, or string interpolation + foreach (['#{', '\\', "\r", $delim] as $lookahead) { + $pos = strpos($this->buffer, $lookahead, $this->count); + + if ($pos !== false && $pos < $end) { + $end = $pos; + $token = $lookahead; + } + } + + if (! isset($token)) { + return false; + } + + $match = substr($this->buffer, $this->count, $end - $this->count); + $m = [ + $match . $token, + $match, + $token + ]; + $this->count = $end + \strlen($token); + + return true; + } + + /** + * Try to match something on head of buffer + * + * @param string $regex + * @param array $out + * @param bool $eatWhitespace + * + * @return bool + * + * @phpstan-impure + */ + protected function match($regex, &$out, $eatWhitespace = null) + { + $r = '/' . $regex . '/' . $this->patternModifiers; + + if (! preg_match($r, $this->buffer, $out, 0, $this->count)) { + return false; + } + + $this->count += \strlen($out[0]); + + if (! isset($eatWhitespace)) { + $eatWhitespace = $this->eatWhiteDefault; + } + + if ($eatWhitespace) { + $this->whitespace(); + } + + return true; + } + + /** + * Match a single string + * + * @param string $char + * @param bool $eatWhitespace + * + * @return bool + * + * @phpstan-impure + */ + protected function matchChar($char, $eatWhitespace = null) + { + if (! isset($this->buffer[$this->count]) || $this->buffer[$this->count] !== $char) { + return false; + } + + $this->count++; + + if (! isset($eatWhitespace)) { + $eatWhitespace = $this->eatWhiteDefault; + } + + if ($eatWhitespace) { + $this->whitespace(); + } + + return true; + } + + /** + * Match literal string + * + * @param string $what + * @param int $len + * @param bool $eatWhitespace + * + * @return bool + * + * @phpstan-impure + */ + protected function literal($what, $len, $eatWhitespace = null) + { + if (strcasecmp(substr($this->buffer, $this->count, $len), $what) !== 0) { + return false; + } + + $this->count += $len; + + if (! isset($eatWhitespace)) { + $eatWhitespace = $this->eatWhiteDefault; + } + + if ($eatWhitespace) { + $this->whitespace(); + } + + return true; + } + + /** + * Match some whitespace + * + * @return bool + * + * @phpstan-impure + */ + protected function whitespace() + { + $gotWhite = false; + + while (preg_match(static::$whitePattern, $this->buffer, $m, 0, $this->count)) { + if (isset($m[1]) && empty($this->commentsSeen[$this->count])) { + // comment that are kept in the output CSS + $comment = []; + $startCommentCount = $this->count; + $endCommentCount = $this->count + \strlen($m[1]); + + // find interpolations in comment + $p = strpos($this->buffer, '#{', $this->count); + + while ($p !== false && $p < $endCommentCount) { + $c = substr($this->buffer, $this->count, $p - $this->count); + $comment[] = $c; + $this->count = $p; + $out = null; + + if ($this->interpolation($out)) { + // keep right spaces in the following string part + if ($out[3]) { + while ($this->buffer[$this->count - 1] !== '}') { + $this->count--; + } + + $out[3] = ''; + } + + $comment[] = [Type::T_COMMENT, substr($this->buffer, $p, $this->count - $p), $out]; + } else { + list($line, $column) = $this->getSourcePosition($this->count); + $file = $this->sourceName; + if (!$this->discardComments) { + $this->logger->warn("Unterminated interpolations in multiline comments are deprecated and will be removed in ScssPhp 2.0, in \"$file\", line $line, column $column.", true); + } + $comment[] = substr($this->buffer, $this->count, 2); + + $this->count += 2; + } + + $p = strpos($this->buffer, '#{', $this->count); + } + + // remaining part + $c = substr($this->buffer, $this->count, $endCommentCount - $this->count); + + if (! $comment) { + // single part static comment + $commentStatement = [Type::T_COMMENT, $c]; + } else { + $comment[] = $c; + $staticComment = substr($this->buffer, $startCommentCount, $endCommentCount - $startCommentCount); + $commentStatement = [Type::T_COMMENT, $staticComment, [Type::T_STRING, '', $comment]]; + } + + list($line, $column) = $this->getSourcePosition($startCommentCount); + $commentStatement[self::SOURCE_LINE] = $line; + $commentStatement[self::SOURCE_COLUMN] = $column; + $commentStatement[self::SOURCE_INDEX] = $this->sourceIndex; + + $this->appendComment($commentStatement); + + $this->commentsSeen[$startCommentCount] = true; + $this->count = $endCommentCount; + } else { + // comment that are ignored and not kept in the output css + $this->count += \strlen($m[0]); + // silent comments are not allowed in plain CSS files + ! $this->cssOnly + || ! \strlen(trim($m[0])) + || $this->assertPlainCssValid(false, $this->count - \strlen($m[0])); + } + + $gotWhite = true; + } + + return $gotWhite; + } + + /** + * Append comment to current block + * + * @param array $comment + * + * @return void + */ + protected function appendComment($comment) + { + assert($this->env !== null); + + if (! $this->discardComments) { + $this->env->comments[] = $comment; + } + } + + /** + * Append statement to current block + * + * @param array|null $statement + * @param int $pos + * + * @return void + */ + protected function append($statement, $pos = null) + { + assert($this->env !== null); + + if (! \is_null($statement)) { + ! $this->cssOnly || ($statement = $this->assertPlainCssValid($statement, $pos)); + + if (! \is_null($pos)) { + list($line, $column) = $this->getSourcePosition($pos); + + $statement[static::SOURCE_LINE] = $line; + $statement[static::SOURCE_COLUMN] = $column; + $statement[static::SOURCE_INDEX] = $this->sourceIndex; + } + + $this->env->children[] = $statement; + } + + $comments = $this->env->comments; + + if ($comments) { + $this->env->children = array_merge($this->env->children, $comments); + $this->env->comments = []; + } + } + + /** + * Returns last child was appended + * + * @return array|null + */ + protected function last() + { + assert($this->env !== null); + + $i = \count($this->env->children) - 1; + + if (isset($this->env->children[$i])) { + return $this->env->children[$i]; + } + + return null; + } + + /** + * Parse media query list + * + * @param array $out + * + * @return bool + */ + protected function mediaQueryList(&$out) + { + return $this->genericList($out, 'mediaQuery', ',', false); + } + + /** + * Parse media query + * + * @param array $out + * + * @return bool + */ + protected function mediaQuery(&$out) + { + $expressions = null; + $parts = []; + + if ( + ($this->literal('only', 4) && ($only = true) || + $this->literal('not', 3) && ($not = true) || true) && + $this->mixedKeyword($mediaType) + ) { + $prop = [Type::T_MEDIA_TYPE]; + + if (isset($only)) { + $prop[] = [Type::T_KEYWORD, 'only']; + } + + if (isset($not)) { + $prop[] = [Type::T_KEYWORD, 'not']; + } + + $media = [Type::T_LIST, '', []]; + + foreach ((array) $mediaType as $type) { + if (\is_array($type)) { + $media[2][] = $type; + } else { + $media[2][] = [Type::T_KEYWORD, $type]; + } + } + + $prop[] = $media; + $parts[] = $prop; + } + + if (empty($parts) || $this->literal('and', 3)) { + $this->genericList($expressions, 'mediaExpression', 'and', false); + + if (\is_array($expressions)) { + $parts = array_merge($parts, $expressions[2]); + } + } + + $out = $parts; + + return true; + } + + /** + * Parse supports query + * + * @param array $out + * + * @return bool + */ + protected function supportsQuery(&$out) + { + $expressions = null; + $parts = []; + + $s = $this->count; + + $not = false; + + if ( + ($this->literal('not', 3) && ($not = true) || true) && + $this->matchChar('(') && + ($this->expression($property)) && + $this->literal(': ', 2) && + $this->valueList($value) && + $this->matchChar(')') + ) { + $support = [Type::T_STRING, '', [[Type::T_KEYWORD, ($not ? 'not ' : '') . '(']]]; + $support[2][] = $property; + $support[2][] = [Type::T_KEYWORD, ': ']; + $support[2][] = $value; + $support[2][] = [Type::T_KEYWORD, ')']; + + $parts[] = $support; + $s = $this->count; + } else { + $this->seek($s); + } + + if ( + $this->matchChar('(') && + $this->supportsQuery($subQuery) && + $this->matchChar(')') + ) { + $parts[] = [Type::T_STRING, '', [[Type::T_KEYWORD, '('], $subQuery, [Type::T_KEYWORD, ')']]]; + $s = $this->count; + } else { + $this->seek($s); + } + + if ( + $this->literal('not', 3) && + $this->supportsQuery($subQuery) + ) { + $parts[] = [Type::T_STRING, '', [[Type::T_KEYWORD, 'not '], $subQuery]]; + $s = $this->count; + } else { + $this->seek($s); + } + + if ( + $this->literal('selector(', 9) && + $this->selector($selector) && + $this->matchChar(')') + ) { + $support = [Type::T_STRING, '', [[Type::T_KEYWORD, 'selector(']]]; + + $selectorList = [Type::T_LIST, '', []]; + + foreach ($selector as $sc) { + $compound = [Type::T_STRING, '', []]; + + foreach ($sc as $scp) { + if (\is_array($scp)) { + $compound[2][] = $scp; + } else { + $compound[2][] = [Type::T_KEYWORD, $scp]; + } + } + + $selectorList[2][] = $compound; + } + + $support[2][] = $selectorList; + $support[2][] = [Type::T_KEYWORD, ')']; + $parts[] = $support; + $s = $this->count; + } else { + $this->seek($s); + } + + if ($this->variable($var) or $this->interpolation($var)) { + $parts[] = $var; + $s = $this->count; + } else { + $this->seek($s); + } + + if ( + $this->literal('and', 3) && + $this->genericList($expressions, 'supportsQuery', ' and', false) + ) { + array_unshift($expressions[2], [Type::T_STRING, '', $parts]); + + $parts = [$expressions]; + $s = $this->count; + } else { + $this->seek($s); + } + + if ( + $this->literal('or', 2) && + $this->genericList($expressions, 'supportsQuery', ' or', false) + ) { + array_unshift($expressions[2], [Type::T_STRING, '', $parts]); + + $parts = [$expressions]; + $s = $this->count; + } else { + $this->seek($s); + } + + if (\count($parts)) { + if ($this->eatWhiteDefault) { + $this->whitespace(); + } + + $out = [Type::T_STRING, '', $parts]; + + return true; + } + + return false; + } + + + /** + * Parse media expression + * + * @param array $out + * + * @return bool + */ + protected function mediaExpression(&$out) + { + $s = $this->count; + $value = null; + + if ( + $this->matchChar('(') && + $this->expression($feature) && + ($this->matchChar(':') && + $this->expression($value) || true) && + $this->matchChar(')') + ) { + $out = [Type::T_MEDIA_EXPRESSION, $feature]; + + if ($value) { + $out[] = $value; + } + + return true; + } + + $this->seek($s); + + return false; + } + + /** + * Parse argument values + * + * @param array $out + * + * @return bool + */ + protected function argValues(&$out) + { + $discardComments = $this->discardComments; + $this->discardComments = true; + + if ($this->genericList($list, 'argValue', ',', false)) { + $out = $list[2]; + + $this->discardComments = $discardComments; + + return true; + } + + $this->discardComments = $discardComments; + + return false; + } + + /** + * Parse argument value + * + * @param array $out + * + * @return bool + */ + protected function argValue(&$out) + { + $s = $this->count; + + $keyword = null; + + if (! $this->variable($keyword) || ! $this->matchChar(':')) { + $this->seek($s); + + $keyword = null; + } + + if ($this->genericList($value, 'expression', '', true)) { + $out = [$keyword, $value, false]; + $s = $this->count; + + if ($this->literal('...', 3)) { + $out[2] = true; + } else { + $this->seek($s); + } + + return true; + } + + return false; + } + + /** + * Check if a generic directive is known to be able to allow almost any syntax or not + * @param mixed $directiveName + * @return bool + */ + protected function isKnownGenericDirective($directiveName) + { + if (\is_array($directiveName) && \is_string(reset($directiveName))) { + $directiveName = reset($directiveName); + } + if (! \is_string($directiveName)) { + return false; + } + if ( + \in_array($directiveName, [ + 'at-root', + 'media', + 'mixin', + 'include', + 'scssphp-import-once', + 'import', + 'extend', + 'function', + 'break', + 'continue', + 'return', + 'each', + 'while', + 'for', + 'if', + 'debug', + 'warn', + 'error', + 'content', + 'else', + 'charset', + 'supports', + // Todo + 'use', + 'forward', + ]) + ) { + return true; + } + return false; + } + + /** + * Parse directive value list that considers $vars as keyword + * + * @param array $out + * @param string|false $endChar + * + * @return bool + * + * @phpstan-impure + */ + protected function directiveValue(&$out, $endChar = false) + { + $s = $this->count; + + if ($this->variable($out)) { + if ($endChar && $this->matchChar($endChar, false)) { + return true; + } + + if (! $endChar && $this->end()) { + return true; + } + } + + $this->seek($s); + + if (\is_string($endChar) && $this->openString($endChar ? $endChar : ';', $out, null, null, true, ";}{")) { + if ($endChar && $this->matchChar($endChar, false)) { + return true; + } + $ss = $this->count; + if (!$endChar && $this->end()) { + $this->seek($ss); + return true; + } + } + + $this->seek($s); + + $allowVars = $this->allowVars; + $this->allowVars = false; + + $res = $this->genericList($out, 'spaceList', ','); + $this->allowVars = $allowVars; + + if ($res) { + if ($endChar && $this->matchChar($endChar, false)) { + return true; + } + + if (! $endChar && $this->end()) { + return true; + } + } + + $this->seek($s); + + if ($endChar && $this->matchChar($endChar, false)) { + return true; + } + + return false; + } + + /** + * Parse comma separated value list + * + * @param array $out + * + * @return bool + */ + protected function valueList(&$out) + { + $discardComments = $this->discardComments; + $this->discardComments = true; + $res = $this->genericList($out, 'spaceList', ','); + $this->discardComments = $discardComments; + + return $res; + } + + /** + * Parse a function call, where externals () are part of the call + * and not of the value list + * + * @param array $out + * @param bool $mandatoryEnclos + * @param null|string $charAfter + * @param null|bool $eatWhiteSp + * + * @return bool + */ + protected function functionCallArgumentsList(&$out, $mandatoryEnclos = true, $charAfter = null, $eatWhiteSp = null) + { + $s = $this->count; + + if ( + $this->matchChar('(') && + $this->valueList($out) && + $this->matchChar(')') && + ($charAfter ? $this->matchChar($charAfter, $eatWhiteSp) : $this->end()) + ) { + return true; + } + + if (! $mandatoryEnclos) { + $this->seek($s); + + if ( + $this->valueList($out) && + ($charAfter ? $this->matchChar($charAfter, $eatWhiteSp) : $this->end()) + ) { + return true; + } + } + + $this->seek($s); + + return false; + } + + /** + * Parse space separated value list + * + * @param array $out + * + * @return bool + */ + protected function spaceList(&$out) + { + return $this->genericList($out, 'expression'); + } + + /** + * Parse generic list + * + * @param array $out + * @param string $parseItem The name of the method used to parse items + * @param string $delim + * @param bool $flatten + * + * @return bool + */ + protected function genericList(&$out, $parseItem, $delim = '', $flatten = true) + { + $s = $this->count; + $items = []; + /** @var array|Number|null $value */ + $value = null; + + while ($this->$parseItem($value)) { + $trailing_delim = false; + $items[] = $value; + + if ($delim) { + if (! $this->literal($delim, \strlen($delim))) { + break; + } + + $trailing_delim = true; + } else { + assert(\is_array($value) || $value instanceof Number); + // if no delim watch that a keyword didn't eat the single/double quote + // from the following starting string + if ($value[0] === Type::T_KEYWORD) { + assert(\is_array($value)); + /** @var string $word */ + $word = $value[1]; + + $last_char = substr($word, -1); + + if ( + strlen($word) > 1 && + in_array($last_char, [ "'", '"']) && + substr($word, -2, 1) !== '\\' + ) { + // if there is a non escaped opening quote in the keyword, this seems unlikely a mistake + $word = str_replace('\\' . $last_char, '\\\\', $word); + if (strpos($word, $last_char) < strlen($word) - 1) { + continue; + } + + $currentCount = $this->count; + + // let's try to rewind to previous char and try a parse + $this->count--; + // in case the keyword also eat spaces + while (substr($this->buffer, $this->count, 1) !== $last_char) { + $this->count--; + } + + /** @var array|Number|null $nextValue */ + $nextValue = null; + if ($this->$parseItem($nextValue)) { + assert(\is_array($nextValue) || $nextValue instanceof Number); + if ($nextValue[0] === Type::T_KEYWORD && $nextValue[1] === $last_char) { + // bad try, forget it + $this->seek($currentCount); + continue; + } + if ($nextValue[0] !== Type::T_STRING) { + // bad try, forget it + $this->seek($currentCount); + continue; + } + + // OK it was a good idea + $value[1] = substr($value[1], 0, -1); + array_pop($items); + $items[] = $value; + $items[] = $nextValue; + } else { + // bad try, forget it + $this->seek($currentCount); + continue; + } + } + } + } + } + + if (! $items) { + $this->seek($s); + + return false; + } + + if ($trailing_delim) { + $items[] = [Type::T_NULL]; + } + + if ($flatten && \count($items) === 1) { + $out = $items[0]; + } else { + $out = [Type::T_LIST, $delim, $items]; + } + + return true; + } + + /** + * Parse expression + * + * @param array $out + * @param bool $listOnly + * @param bool $lookForExp + * + * @return bool + * + * @phpstan-impure + */ + protected function expression(&$out, $listOnly = false, $lookForExp = true) + { + $s = $this->count; + $discard = $this->discardComments; + $this->discardComments = true; + $allowedTypes = ($listOnly ? [Type::T_LIST] : [Type::T_LIST, Type::T_MAP]); + + if ($this->matchChar('(')) { + if ($this->enclosedExpression($lhs, $s, ')', $allowedTypes)) { + if ($lookForExp) { + $out = $this->expHelper($lhs, 0); + } else { + $out = $lhs; + } + + $this->discardComments = $discard; + + return true; + } + + $this->seek($s); + } + + if (\in_array(Type::T_LIST, $allowedTypes) && $this->matchChar('[')) { + if ($this->enclosedExpression($lhs, $s, ']', [Type::T_LIST])) { + if ($lookForExp) { + $out = $this->expHelper($lhs, 0); + } else { + $out = $lhs; + } + + $this->discardComments = $discard; + + return true; + } + + $this->seek($s); + } + + if (! $listOnly && $this->value($lhs)) { + if ($lookForExp) { + $out = $this->expHelper($lhs, 0); + } else { + $out = $lhs; + } + + $this->discardComments = $discard; + + return true; + } + + $this->discardComments = $discard; + + return false; + } + + /** + * Parse expression specifically checking for lists in parenthesis or brackets + * + * @param array $out + * @param int $s + * @param string $closingParen + * @param string[] $allowedTypes + * + * @return bool + * + * @phpstan-param array $allowedTypes + */ + protected function enclosedExpression(&$out, $s, $closingParen = ')', $allowedTypes = [Type::T_LIST, Type::T_MAP]) + { + if ($this->matchChar($closingParen) && \in_array(Type::T_LIST, $allowedTypes)) { + $out = [Type::T_LIST, '', []]; + + switch ($closingParen) { + case ')': + $out['enclosing'] = 'parent'; // parenthesis list + break; + + case ']': + $out['enclosing'] = 'bracket'; // bracketed list + break; + } + + return true; + } + + if ( + $this->valueList($out) && + $this->matchChar($closingParen) && ! ($closingParen === ')' && + \in_array($out[0], [Type::T_EXPRESSION, Type::T_UNARY])) && + \in_array(Type::T_LIST, $allowedTypes) + ) { + if ($out[0] !== Type::T_LIST || ! empty($out['enclosing'])) { + $out = [Type::T_LIST, '', [$out]]; + } + + switch ($closingParen) { + case ')': + $out['enclosing'] = 'parent'; // parenthesis list + break; + + case ']': + $out['enclosing'] = 'bracket'; // bracketed list + break; + } + + return true; + } + + $this->seek($s); + + if (\in_array(Type::T_MAP, $allowedTypes) && $this->map($out)) { + return true; + } + + return false; + } + + /** + * Parse left-hand side of subexpression + * + * @param array $lhs + * @param int $minP + * + * @return array + */ + protected function expHelper($lhs, $minP) + { + $operators = static::$operatorPattern; + + $ss = $this->count; + $whiteBefore = isset($this->buffer[$this->count - 1]) && + ctype_space($this->buffer[$this->count - 1]); + + while ($this->match($operators, $m, false) && static::$precedence[$m[1]] >= $minP) { + $whiteAfter = isset($this->buffer[$this->count]) && + ctype_space($this->buffer[$this->count]); + $varAfter = isset($this->buffer[$this->count]) && + $this->buffer[$this->count] === '$'; + + $this->whitespace(); + + $op = $m[1]; + + // don't turn negative numbers into expressions + if ($op === '-' && $whiteBefore && ! $whiteAfter && ! $varAfter) { + break; + } + + if (! $this->value($rhs) && ! $this->expression($rhs, true, false)) { + break; + } + + if ($op === '-' && ! $whiteAfter && $rhs[0] === Type::T_KEYWORD) { + break; + } + + // consume higher-precedence operators on the right-hand side + $rhs = $this->expHelper($rhs, static::$precedence[$op] + 1); + + $lhs = [Type::T_EXPRESSION, $op, $lhs, $rhs, $this->inParens, $whiteBefore, $whiteAfter]; + + $ss = $this->count; + $whiteBefore = isset($this->buffer[$this->count - 1]) && + ctype_space($this->buffer[$this->count - 1]); + } + + $this->seek($ss); + + return $lhs; + } + + /** + * Parse value + * + * @param array $out + * + * @return bool + */ + protected function value(&$out) + { + if (! isset($this->buffer[$this->count])) { + return false; + } + + $s = $this->count; + $char = $this->buffer[$this->count]; + + if ( + $this->literal('url(', 4) && + $this->match('data:([a-z]+)\/([a-z0-9.+-]+);base64,', $m, false) + ) { + $len = strspn( + $this->buffer, + 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwyxz0123456789+/=', + $this->count + ); + + $this->count += $len; + + if ($this->matchChar(')')) { + $content = substr($this->buffer, $s, $this->count - $s); + $out = [Type::T_KEYWORD, $content]; + + return true; + } + } + + $this->seek($s); + + if ( + $this->literal('url(', 4, false) && + $this->match('\s*(\/\/[^\s\)]+)\s*', $m) + ) { + $content = 'url(' . $m[1]; + + if ($this->matchChar(')')) { + $content .= ')'; + $out = [Type::T_KEYWORD, $content]; + + return true; + } + } + + $this->seek($s); + + // not + if ($char === 'n' && $this->literal('not', 3, false)) { + if ( + $this->whitespace() && + $this->value($inner) + ) { + $out = [Type::T_UNARY, 'not', $inner, $this->inParens]; + + return true; + } + + $this->seek($s); + + if ($this->parenValue($inner)) { + $out = [Type::T_UNARY, 'not', $inner, $this->inParens]; + + return true; + } + + $this->seek($s); + } + + // addition + if ($char === '+') { + $this->count++; + + $follow_white = $this->whitespace(); + + if ($this->value($inner)) { + $out = [Type::T_UNARY, '+', $inner, $this->inParens]; + + return true; + } + + if ($follow_white) { + $out = [Type::T_KEYWORD, $char]; + return true; + } + + $this->seek($s); + + return false; + } + + // negation + if ($char === '-') { + if ($this->customProperty($out)) { + return true; + } + + $this->count++; + + $follow_white = $this->whitespace(); + + if ($this->variable($inner) || $this->unit($inner) || $this->parenValue($inner)) { + $out = [Type::T_UNARY, '-', $inner, $this->inParens]; + + return true; + } + + if ( + $this->keyword($inner) && + ! $this->func($inner, $out) + ) { + $out = [Type::T_UNARY, '-', $inner, $this->inParens]; + + return true; + } + + if ($follow_white) { + $out = [Type::T_KEYWORD, $char]; + + return true; + } + + $this->seek($s); + } + + // paren + if ($char === '(' && $this->parenValue($out)) { + return true; + } + + if ($char === '#') { + if ($this->interpolation($out) || $this->color($out)) { + return true; + } + + $this->count++; + + if ($this->keyword($keyword)) { + $out = [Type::T_KEYWORD, '#' . $keyword]; + + return true; + } + + $this->count--; + } + + if ($this->matchChar('&', true)) { + $out = [Type::T_SELF]; + + return true; + } + + if ($char === '$' && $this->variable($out)) { + return true; + } + + if ($char === 'p' && $this->progid($out)) { + return true; + } + + if (($char === '"' || $char === "'") && $this->string($out)) { + return true; + } + + if ($this->unit($out)) { + return true; + } + + // unicode range with wildcards + if ( + $this->literal('U+', 2) && + $this->match('\?+|([0-9A-F]+(\?+|(-[0-9A-F]+))?)', $m, false) + ) { + $unicode = explode('-', $m[0]); + if (strlen(reset($unicode)) <= 6 && strlen(end($unicode)) <= 6) { + $out = [Type::T_KEYWORD, 'U+' . $m[0]]; + + return true; + } + $this->count -= strlen($m[0]) + 2; + } + + if ($this->keyword($keyword, false)) { + if ($this->func($keyword, $out)) { + return true; + } + + $this->whitespace(); + + if ($keyword === 'null') { + $out = [Type::T_NULL]; + } else { + $out = [Type::T_KEYWORD, $keyword]; + } + + return true; + } + + return false; + } + + /** + * Parse parenthesized value + * + * @param array $out + * + * @return bool + */ + protected function parenValue(&$out) + { + $s = $this->count; + + $inParens = $this->inParens; + + if ($this->matchChar('(')) { + if ($this->matchChar(')')) { + $out = [Type::T_LIST, '', []]; + + return true; + } + + $this->inParens = true; + + if ( + $this->expression($exp) && + $this->matchChar(')') + ) { + $out = $exp; + $this->inParens = $inParens; + + return true; + } + } + + $this->inParens = $inParens; + $this->seek($s); + + return false; + } + + /** + * Parse "progid:" + * + * @param array $out + * + * @return bool + */ + protected function progid(&$out) + { + $s = $this->count; + + if ( + $this->literal('progid:', 7, false) && + $this->openString('(', $fn) && + $this->matchChar('(') + ) { + $this->openString(')', $args, '('); + + if ($this->matchChar(')')) { + $out = [Type::T_STRING, '', [ + 'progid:', $fn, '(', $args, ')' + ]]; + + return true; + } + } + + $this->seek($s); + + return false; + } + + /** + * Parse function call + * + * @param string $name + * @param array $func + * + * @return bool + */ + protected function func($name, &$func) + { + $s = $this->count; + + if ($this->matchChar('(')) { + if ($name === 'alpha' && $this->argumentList($args)) { + $func = [Type::T_FUNCTION, $name, [Type::T_STRING, '', $args]]; + + return true; + } + + if ($name !== 'expression' && ! preg_match('/^(-[a-z]+-)?calc$/', $name)) { + $ss = $this->count; + + if ( + $this->argValues($args) && + $this->matchChar(')') + ) { + $func = [Type::T_FUNCTION_CALL, $name, $args]; + + return true; + } + + $this->seek($ss); + } + + if ( + ($this->openString(')', $str, '(') || true) && + $this->matchChar(')') + ) { + $args = []; + + if (! empty($str)) { + $args[] = [null, [Type::T_STRING, '', [$str]]]; + } + + $func = [Type::T_FUNCTION_CALL, $name, $args]; + + return true; + } + } + + $this->seek($s); + + return false; + } + + /** + * Parse function call argument list + * + * @param array $out + * + * @return bool + */ + protected function argumentList(&$out) + { + $s = $this->count; + $this->matchChar('('); + + $args = []; + + while ($this->keyword($var)) { + if ( + $this->matchChar('=') && + $this->expression($exp) + ) { + $args[] = [Type::T_STRING, '', [$var . '=']]; + $arg = $exp; + } else { + break; + } + + $args[] = $arg; + + if (! $this->matchChar(',')) { + break; + } + + $args[] = [Type::T_STRING, '', [', ']]; + } + + if (! $this->matchChar(')') || ! $args) { + $this->seek($s); + + return false; + } + + $out = $args; + + return true; + } + + /** + * Parse mixin/function definition argument list + * + * @param array $out + * + * @return bool + */ + protected function argumentDef(&$out) + { + $s = $this->count; + $this->matchChar('('); + + $args = []; + + while ($this->variable($var)) { + $arg = [$var[1], null, false]; + + $ss = $this->count; + + if ( + $this->matchChar(':') && + $this->genericList($defaultVal, 'expression', '', true) + ) { + $arg[1] = $defaultVal; + } else { + $this->seek($ss); + } + + $ss = $this->count; + + if ($this->literal('...', 3)) { + $sss = $this->count; + + if (! $this->matchChar(')')) { + throw $this->parseError('... has to be after the final argument'); + } + + $arg[2] = true; + + $this->seek($sss); + } else { + $this->seek($ss); + } + + $args[] = $arg; + + if (! $this->matchChar(',')) { + break; + } + } + + if (! $this->matchChar(')')) { + $this->seek($s); + + return false; + } + + $out = $args; + + return true; + } + + /** + * Parse map + * + * @param array $out + * + * @return bool + */ + protected function map(&$out) + { + $s = $this->count; + + if (! $this->matchChar('(')) { + return false; + } + + $keys = []; + $values = []; + + while ( + $this->genericList($key, 'expression', '', true) && + $this->matchChar(':') && + $this->genericList($value, 'expression', '', true) + ) { + $keys[] = $key; + $values[] = $value; + + if (! $this->matchChar(',')) { + break; + } + } + + if (! $keys || ! $this->matchChar(')')) { + $this->seek($s); + + return false; + } + + $out = [Type::T_MAP, $keys, $values]; + + return true; + } + + /** + * Parse color + * + * @param array $out + * + * @return bool + */ + protected function color(&$out) + { + $s = $this->count; + + if ($this->match('(#([0-9a-f]+)\b)', $m)) { + if (\in_array(\strlen($m[2]), [3,4,6,8])) { + $out = [Type::T_KEYWORD, $m[0]]; + + return true; + } + + $this->seek($s); + + return false; + } + + return false; + } + + /** + * Parse number with unit + * + * @param array $unit + * + * @return bool + */ + protected function unit(&$unit) + { + $s = $this->count; + + if ($this->match('([0-9]*(\.)?[0-9]+)([%a-zA-Z]+)?', $m, false)) { + if (\strlen($this->buffer) === $this->count || ! ctype_digit($this->buffer[$this->count])) { + $this->whitespace(); + + $unit = new Node\Number($m[1], empty($m[3]) ? '' : $m[3]); + + return true; + } + + $this->seek($s); + } + + return false; + } + + /** + * Parse string + * + * @param array $out + * @param bool $keepDelimWithInterpolation + * + * @return bool + */ + protected function string(&$out, $keepDelimWithInterpolation = false) + { + $s = $this->count; + + if ($this->matchChar('"', false)) { + $delim = '"'; + } elseif ($this->matchChar("'", false)) { + $delim = "'"; + } else { + return false; + } + + $content = []; + $oldWhite = $this->eatWhiteDefault; + $this->eatWhiteDefault = false; + $hasInterpolation = false; + + while ($this->matchString($m, $delim)) { + if ($m[1] !== '') { + $content[] = $m[1]; + } + + if ($m[2] === '#{') { + $this->count -= \strlen($m[2]); + + if ($this->interpolation($inter, false)) { + $content[] = $inter; + $hasInterpolation = true; + } else { + $this->count += \strlen($m[2]); + $content[] = '#{'; // ignore it + } + } elseif ($m[2] === "\r") { + $content[] = chr(10); + // TODO : warning + # DEPRECATION WARNING on line x, column y of zzz: + # Unescaped multiline strings are deprecated and will be removed in a future version of Sass. + # To include a newline in a string, use "\a" or "\a " as in CSS. + if ($this->matchChar("\n", false)) { + $content[] = ' '; + } + } elseif ($m[2] === '\\') { + if ( + $this->literal("\r\n", 2, false) || + $this->matchChar("\r", false) || + $this->matchChar("\n", false) || + $this->matchChar("\f", false) + ) { + // this is a continuation escaping, to be ignored + } elseif ($this->matchEscapeCharacter($c)) { + $content[] = $c; + } else { + throw $this->parseError('Unterminated escape sequence'); + } + } else { + $this->count -= \strlen($delim); + break; // delim + } + } + + $this->eatWhiteDefault = $oldWhite; + + if ($this->literal($delim, \strlen($delim))) { + if ($hasInterpolation && ! $keepDelimWithInterpolation) { + $delim = '"'; + } + + $out = [Type::T_STRING, $delim, $content]; + + return true; + } + + $this->seek($s); + + return false; + } + + /** + * @param string $out + * @param bool $inKeywords + * + * @return bool + */ + protected function matchEscapeCharacter(&$out, $inKeywords = false) + { + $s = $this->count; + if ($this->match('[a-f0-9]', $m, false)) { + $hex = $m[0]; + + for ($i = 5; $i--;) { + if ($this->match('[a-f0-9]', $m, false)) { + $hex .= $m[0]; + } else { + break; + } + } + + // CSS allows Unicode escape sequences to be followed by a delimiter space + // (necessary in some cases for shorter sequences to disambiguate their end) + $this->matchChar(' ', false); + + $value = hexdec($hex); + + if (!$inKeywords && ($value == 0 || ($value >= 0xD800 && $value <= 0xDFFF) || $value >= 0x10FFFF)) { + $out = "\xEF\xBF\xBD"; // "\u{FFFD}" but with a syntax supported on PHP 5 + } elseif ($value < 0x20) { + $out = Util::mbChr($value); + } else { + $out = Util::mbChr($value); + } + + return true; + } + + if ($this->match('.', $m, false)) { + if ($inKeywords && in_array($m[0], ["'",'"','@','&',' ','\\',':','/','%'])) { + $this->seek($s); + return false; + } + $out = $m[0]; + + return true; + } + + return false; + } + + /** + * Parse keyword or interpolation + * + * @param array $out + * @param bool $restricted + * + * @return bool + */ + protected function mixedKeyword(&$out, $restricted = false) + { + $parts = []; + + $oldWhite = $this->eatWhiteDefault; + $this->eatWhiteDefault = false; + + for (;;) { + if ($restricted ? $this->restrictedKeyword($key) : $this->keyword($key)) { + $parts[] = $key; + continue; + } + + if ($this->interpolation($inter)) { + $parts[] = $inter; + continue; + } + + break; + } + + $this->eatWhiteDefault = $oldWhite; + + if (! $parts) { + return false; + } + + if ($this->eatWhiteDefault) { + $this->whitespace(); + } + + $out = $parts; + + return true; + } + + /** + * Parse an unbounded string stopped by $end + * + * @param string $end + * @param array $out + * @param string $nestOpen + * @param string $nestClose + * @param bool $rtrim + * @param string $disallow + * + * @return bool + */ + protected function openString($end, &$out, $nestOpen = null, $nestClose = null, $rtrim = true, $disallow = null) + { + $oldWhite = $this->eatWhiteDefault; + $this->eatWhiteDefault = false; + + if ($nestOpen && ! $nestClose) { + $nestClose = $end; + } + + $patt = ($disallow ? '[^' . $this->pregQuote($disallow) . ']' : '.'); + $patt = '(' . $patt . '*?)([\'"]|#\{|' + . $this->pregQuote($end) . '|' + . (($nestClose && $nestClose !== $end) ? $this->pregQuote($nestClose) . '|' : '') + . static::$commentPattern . ')'; + + $nestingLevel = 0; + + $content = []; + + while ($this->match($patt, $m, false)) { + if (isset($m[1]) && $m[1] !== '') { + $content[] = $m[1]; + + if ($nestOpen) { + $nestingLevel += substr_count($m[1], $nestOpen); + } + } + + $tok = $m[2]; + + $this->count -= \strlen($tok); + + if ($tok === $end && ! $nestingLevel) { + break; + } + + if ($tok === $nestClose) { + $nestingLevel--; + } + + if (($tok === "'" || $tok === '"') && $this->string($str, true)) { + $content[] = $str; + continue; + } + + if ($tok === '#{' && $this->interpolation($inter)) { + $content[] = $inter; + continue; + } + + $content[] = $tok; + $this->count += \strlen($tok); + } + + $this->eatWhiteDefault = $oldWhite; + + if (! $content || $tok !== $end) { + return false; + } + + // trim the end + if ($rtrim && \is_string(end($content))) { + $content[\count($content) - 1] = rtrim(end($content)); + } + + $out = [Type::T_STRING, '', $content]; + + return true; + } + + /** + * Parser interpolation + * + * @param string|array $out + * @param bool $lookWhite save information about whitespace before and after + * + * @return bool + */ + protected function interpolation(&$out, $lookWhite = true) + { + $oldWhite = $this->eatWhiteDefault; + $allowVars = $this->allowVars; + $this->allowVars = true; + $this->eatWhiteDefault = true; + + $s = $this->count; + + if ( + $this->literal('#{', 2) && + $this->valueList($value) && + $this->matchChar('}', false) + ) { + if ($value === [Type::T_SELF]) { + $out = $value; + } else { + if ($lookWhite) { + $left = ($s > 0 && preg_match('/\s/', $this->buffer[$s - 1])) ? ' ' : ''; + $right = ( + ! empty($this->buffer[$this->count]) && + preg_match('/\s/', $this->buffer[$this->count]) + ) ? ' ' : ''; + } else { + $left = $right = false; + } + + $out = [Type::T_INTERPOLATE, $value, $left, $right]; + } + + $this->eatWhiteDefault = $oldWhite; + $this->allowVars = $allowVars; + + if ($this->eatWhiteDefault) { + $this->whitespace(); + } + + return true; + } + + $this->seek($s); + + $this->eatWhiteDefault = $oldWhite; + $this->allowVars = $allowVars; + + return false; + } + + /** + * Parse property name (as an array of parts or a string) + * + * @param array $out + * + * @return bool + */ + protected function propertyName(&$out) + { + $parts = []; + + $oldWhite = $this->eatWhiteDefault; + $this->eatWhiteDefault = false; + + for (;;) { + if ($this->interpolation($inter)) { + $parts[] = $inter; + continue; + } + + if ($this->keyword($text)) { + $parts[] = $text; + continue; + } + + if (! $parts && $this->match('[:.#]', $m, false)) { + // css hacks + $parts[] = $m[0]; + continue; + } + + break; + } + + $this->eatWhiteDefault = $oldWhite; + + if (! $parts) { + return false; + } + + // match comment hack + if (preg_match(static::$whitePattern, $this->buffer, $m, 0, $this->count)) { + if (! empty($m[0])) { + $parts[] = $m[0]; + $this->count += \strlen($m[0]); + } + } + + $this->whitespace(); // get any extra whitespace + + $out = [Type::T_STRING, '', $parts]; + + return true; + } + + /** + * Parse custom property name (as an array of parts or a string) + * + * @param array $out + * + * @return bool + */ + protected function customProperty(&$out) + { + $s = $this->count; + + if (! $this->literal('--', 2, false)) { + return false; + } + + $parts = ['--']; + + $oldWhite = $this->eatWhiteDefault; + $this->eatWhiteDefault = false; + + for (;;) { + if ($this->interpolation($inter)) { + $parts[] = $inter; + continue; + } + + if ($this->matchChar('&', false)) { + $parts[] = [Type::T_SELF]; + continue; + } + + if ($this->variable($var)) { + $parts[] = $var; + continue; + } + + if ($this->keyword($text)) { + $parts[] = $text; + continue; + } + + break; + } + + $this->eatWhiteDefault = $oldWhite; + + if (\count($parts) == 1) { + $this->seek($s); + + return false; + } + + $this->whitespace(); // get any extra whitespace + + $out = [Type::T_STRING, '', $parts]; + + return true; + } + + /** + * Parse comma separated selector list + * + * @param array $out + * @param string|bool $subSelector + * + * @return bool + */ + protected function selectors(&$out, $subSelector = false) + { + $s = $this->count; + $selectors = []; + + while ($this->selector($sel, $subSelector)) { + $selectors[] = $sel; + + if (! $this->matchChar(',', true)) { + break; + } + + while ($this->matchChar(',', true)) { + ; // ignore extra + } + } + + if (! $selectors) { + $this->seek($s); + + return false; + } + + $out = $selectors; + + return true; + } + + /** + * Parse whitespace separated selector list + * + * @param array $out + * @param string|bool $subSelector + * + * @return bool + */ + protected function selector(&$out, $subSelector = false) + { + $selector = []; + + $discardComments = $this->discardComments; + $this->discardComments = true; + + for (;;) { + $s = $this->count; + + if ($this->match('[>+~]+', $m, true)) { + if ( + $subSelector && \is_string($subSelector) && strpos($subSelector, 'nth-') === 0 && + $m[0] === '+' && $this->match("(\d+|n\b)", $counter) + ) { + $this->seek($s); + } else { + $selector[] = [$m[0]]; + continue; + } + } + + if ($this->selectorSingle($part, $subSelector)) { + $selector[] = $part; + $this->whitespace(); + continue; + } + + break; + } + + $this->discardComments = $discardComments; + + if (! $selector) { + return false; + } + + $out = $selector; + + return true; + } + + /** + * parsing escaped chars in selectors: + * - escaped single chars are kept escaped in the selector but in a normalized form + * (if not in 0-9a-f range as this would be ambigous) + * - other escaped sequences (multibyte chars or 0-9a-f) are kept in their initial escaped form, + * normalized to lowercase + * + * TODO: this is a fallback solution. Ideally escaped chars in selectors should be encoded as the genuine chars, + * and escaping added when printing in the Compiler, where/if it's mandatory + * - but this require a better formal selector representation instead of the array we have now + * + * @param string $out + * @param bool $keepEscapedNumber + * + * @return bool + */ + protected function matchEscapeCharacterInSelector(&$out, $keepEscapedNumber = false) + { + $s_escape = $this->count; + if ($this->match('\\\\', $m)) { + $out = '\\' . $m[0]; + return true; + } + + if ($this->matchEscapeCharacter($escapedout, true)) { + if (strlen($escapedout) === 1) { + if (!preg_match(",\w,", $escapedout)) { + $out = '\\' . $escapedout; + return true; + } elseif (! $keepEscapedNumber || ! \is_numeric($escapedout)) { + $out = $escapedout; + return true; + } + } + $escape_sequence = rtrim(substr($this->buffer, $s_escape, $this->count - $s_escape)); + if (strlen($escape_sequence) < 6) { + $escape_sequence .= ' '; + } + $out = '\\' . strtolower($escape_sequence); + return true; + } + if ($this->match('\\S', $m)) { + $out = '\\' . $m[0]; + return true; + } + + + return false; + } + + /** + * Parse the parts that make up a selector + * + * {@internal + * div[yes=no]#something.hello.world:nth-child(-2n+1)%placeholder + * }} + * + * @param array $out + * @param string|bool $subSelector + * + * @return bool + */ + protected function selectorSingle(&$out, $subSelector = false) + { + $oldWhite = $this->eatWhiteDefault; + $this->eatWhiteDefault = false; + + $parts = []; + + if ($this->matchChar('*', false)) { + $parts[] = '*'; + } + + for (;;) { + if (! isset($this->buffer[$this->count])) { + break; + } + + $s = $this->count; + $char = $this->buffer[$this->count]; + + // see if we can stop early + if ($char === '{' || $char === ',' || $char === ';' || $char === '}' || $char === '@') { + break; + } + + // parsing a sub selector in () stop with the closing ) + if ($subSelector && $char === ')') { + break; + } + + //self + switch ($char) { + case '&': + $parts[] = Compiler::$selfSelector; + $this->count++; + ! $this->cssOnly || $this->assertPlainCssValid(false, $s); + continue 2; + + case '.': + $parts[] = '.'; + $this->count++; + continue 2; + + case '|': + $parts[] = '|'; + $this->count++; + continue 2; + } + + // handling of escaping in selectors : get the escaped char + if ($char === '\\') { + $this->count++; + if ($this->matchEscapeCharacterInSelector($escaped, true)) { + $parts[] = $escaped; + continue; + } + $this->count--; + } + + if ($char === '%') { + $this->count++; + + if ($this->placeholder($placeholder)) { + $parts[] = '%'; + $parts[] = $placeholder; + ! $this->cssOnly || $this->assertPlainCssValid(false, $s); + continue; + } + + break; + } + + if ($char === '#') { + if ($this->interpolation($inter)) { + $parts[] = $inter; + ! $this->cssOnly || $this->assertPlainCssValid(false, $s); + continue; + } + + $parts[] = '#'; + $this->count++; + continue; + } + + // a pseudo selector + if ($char === ':') { + if ($this->buffer[$this->count + 1] === ':') { + $this->count += 2; + $part = '::'; + } else { + $this->count++; + $part = ':'; + } + + if ($this->mixedKeyword($nameParts, true)) { + $parts[] = $part; + + foreach ($nameParts as $sub) { + $parts[] = $sub; + } + + $ss = $this->count; + + if ( + $nameParts === ['not'] || + $nameParts === ['is'] || + $nameParts === ['has'] || + $nameParts === ['where'] || + $nameParts === ['slotted'] || + $nameParts === ['nth-child'] || + $nameParts === ['nth-last-child'] || + $nameParts === ['nth-of-type'] || + $nameParts === ['nth-last-of-type'] + ) { + if ( + $this->matchChar('(', true) && + ($this->selectors($subs, reset($nameParts)) || true) && + $this->matchChar(')') + ) { + $parts[] = '('; + + while ($sub = array_shift($subs)) { + while ($ps = array_shift($sub)) { + foreach ($ps as &$p) { + $parts[] = $p; + } + + if (\count($sub) && reset($sub)) { + $parts[] = ' '; + } + } + + if (\count($subs) && reset($subs)) { + $parts[] = ', '; + } + } + + $parts[] = ')'; + } else { + $this->seek($ss); + } + } elseif ( + $this->matchChar('(', true) && + ($this->openString(')', $str, '(') || true) && + $this->matchChar(')') + ) { + $parts[] = '('; + + if (! empty($str)) { + $parts[] = $str; + } + + $parts[] = ')'; + } else { + $this->seek($ss); + } + + continue; + } + } + + $this->seek($s); + + // 2n+1 + if ($subSelector && \is_string($subSelector) && strpos($subSelector, 'nth-') === 0) { + if ($this->match("(\s*(\+\s*|\-\s*)?(\d+|n|\d+n))+", $counter)) { + $parts[] = $counter[0]; + //$parts[] = str_replace(' ', '', $counter[0]); + continue; + } + } + + $this->seek($s); + + // attribute selector + if ( + $char === '[' && + $this->matchChar('[') && + ($this->openString(']', $str, '[') || true) && + $this->matchChar(']') + ) { + $parts[] = '['; + + if (! empty($str)) { + $parts[] = $str; + } + + $parts[] = ']'; + continue; + } + + $this->seek($s); + + // for keyframes + if ($this->unit($unit)) { + $parts[] = $unit; + continue; + } + + if ($this->restrictedKeyword($name, false, true)) { + $parts[] = $name; + continue; + } + + break; + } + + $this->eatWhiteDefault = $oldWhite; + + if (! $parts) { + return false; + } + + $out = $parts; + + return true; + } + + /** + * Parse a variable + * + * @param array $out + * + * @return bool + */ + protected function variable(&$out) + { + $s = $this->count; + + if ( + $this->matchChar('$', false) && + $this->keyword($name) + ) { + if ($this->allowVars) { + $out = [Type::T_VARIABLE, $name]; + } else { + $out = [Type::T_KEYWORD, '$' . $name]; + } + + return true; + } + + $this->seek($s); + + return false; + } + + /** + * Parse a keyword + * + * @param string $word + * @param bool $eatWhitespace + * @param bool $inSelector + * + * @return bool + */ + protected function keyword(&$word, $eatWhitespace = null, $inSelector = false) + { + $s = $this->count; + $match = $this->match( + $this->utf8 + ? '(([\pL\w\x{00A0}-\x{10FFFF}_\-\*!"\']|\\\\[a-f0-9]{6} ?|\\\\[a-f0-9]{1,5}(?![a-f0-9]) ?|[\\\\].)([\pL\w\x{00A0}-\x{10FFFF}\-_"\']|\\\\[a-f0-9]{6} ?|\\\\[a-f0-9]{1,5}(?![a-f0-9]) ?|[\\\\].)*)' + : '(([\w_\-\*!"\']|\\\\[a-f0-9]{6} ?|\\\\[a-f0-9]{1,5}(?![a-f0-9]) ?|[\\\\].)([\w\-_"\']|\\\\[a-f0-9]{6} ?|\\\\[a-f0-9]{1,5}(?![a-f0-9]) ?|[\\\\].)*)', + $m, + false + ); + + if ($match) { + $word = $m[1]; + + // handling of escaping in keyword : get the escaped char + if (strpos($word, '\\') !== false) { + $send = $this->count; + $escapedWord = []; + $this->seek($s); + $previousEscape = false; + while ($this->count < $send) { + $char = $this->buffer[$this->count]; + $this->count++; + if ( + $this->count < $send + && $char === '\\' + && !$previousEscape + && ( + $inSelector ? + $this->matchEscapeCharacterInSelector($out) + : + $this->matchEscapeCharacter($out, true) + ) + ) { + $escapedWord[] = $out; + } else { + if ($previousEscape) { + $previousEscape = false; + } elseif ($char === '\\') { + $previousEscape = true; + } + $escapedWord[] = $char; + } + } + + $word = implode('', $escapedWord); + } + + if (is_null($eatWhitespace) ? $this->eatWhiteDefault : $eatWhitespace) { + $this->whitespace(); + } + + return true; + } + + return false; + } + + /** + * Parse a keyword that should not start with a number + * + * @param string $word + * @param bool $eatWhitespace + * @param bool $inSelector + * + * @return bool + */ + protected function restrictedKeyword(&$word, $eatWhitespace = null, $inSelector = false) + { + $s = $this->count; + + if ($this->keyword($word, $eatWhitespace, $inSelector) && (\ord($word[0]) > 57 || \ord($word[0]) < 48)) { + return true; + } + + $this->seek($s); + + return false; + } + + /** + * Parse a placeholder + * + * @param string|array $placeholder + * + * @return bool + */ + protected function placeholder(&$placeholder) + { + $match = $this->match( + $this->utf8 + ? '([\pL\w\-_]+)' + : '([\w\-_]+)', + $m + ); + + if ($match) { + $placeholder = $m[1]; + + return true; + } + + if ($this->interpolation($placeholder)) { + return true; + } + + return false; + } + + /** + * Parse a url + * + * @param array $out + * + * @return bool + */ + protected function url(&$out) + { + if ($this->literal('url(', 4)) { + $s = $this->count; + + if ( + ($this->string($out) || $this->spaceList($out)) && + $this->matchChar(')') + ) { + $out = [Type::T_STRING, '', ['url(', $out, ')']]; + + return true; + } + + $this->seek($s); + + if ( + $this->openString(')', $out) && + $this->matchChar(')') + ) { + $out = [Type::T_STRING, '', ['url(', $out, ')']]; + + return true; + } + } + + return false; + } + + /** + * Consume an end of statement delimiter + * @param bool $eatWhitespace + * + * @return bool + */ + protected function end($eatWhitespace = null) + { + if ($this->matchChar(';', $eatWhitespace)) { + return true; + } + + if ($this->count === \strlen($this->buffer) || $this->buffer[$this->count] === '}') { + // if there is end of file or a closing block next then we don't need a ; + return true; + } + + return false; + } + + /** + * Strip assignment flag from the list + * + * @param array $value + * + * @return string[] + */ + protected function stripAssignmentFlags(&$value) + { + $flags = []; + + for ($token = &$value; $token[0] === Type::T_LIST && ($s = \count($token[2])); $token = &$lastNode) { + $lastNode = &$token[2][$s - 1]; + + while ($lastNode[0] === Type::T_KEYWORD && \in_array($lastNode[1], ['!default', '!global'])) { + array_pop($token[2]); + + $node = end($token[2]); + $token = $this->flattenList($token); + $flags[] = $lastNode[1]; + $lastNode = $node; + } + } + + return $flags; + } + + /** + * Strip optional flag from selector list + * + * @param array $selectors + * + * @return bool + */ + protected function stripOptionalFlag(&$selectors) + { + $optional = false; + $selector = end($selectors); + $part = end($selector); + + if ($part === ['!optional']) { + array_pop($selectors[\count($selectors) - 1]); + + $optional = true; + } + + return $optional; + } + + /** + * Turn list of length 1 into value type + * + * @param array $value + * + * @return array + */ + protected function flattenList($value) + { + if ($value[0] === Type::T_LIST && \count($value[2]) === 1) { + return $this->flattenList($value[2][0]); + } + + return $value; + } + + /** + * Quote regular expression + * + * @param string $what + * + * @return string + */ + private function pregQuote($what) + { + return preg_quote($what, '/'); + } + + /** + * Extract line numbers from buffer + * + * @param string $buffer + * + * @return void + */ + private function extractLineNumbers($buffer) + { + $this->sourcePositions = [0 => 0]; + $prev = 0; + + while (($pos = strpos($buffer, "\n", $prev)) !== false) { + $this->sourcePositions[] = $pos; + $prev = $pos + 1; + } + + $this->sourcePositions[] = \strlen($buffer); + + if (substr($buffer, -1) !== "\n") { + $this->sourcePositions[] = \strlen($buffer) + 1; + } + } + + /** + * Get source line number and column (given character position in the buffer) + * + * @param int $pos + * + * @return array + * @phpstan-return array{int, int} + */ + private function getSourcePosition($pos) + { + $low = 0; + $high = \count($this->sourcePositions); + + while ($low < $high) { + $mid = (int) (($high + $low) / 2); + + if ($pos < $this->sourcePositions[$mid]) { + $high = $mid - 1; + continue; + } + + if ($pos >= $this->sourcePositions[$mid + 1]) { + $low = $mid + 1; + continue; + } + + return [$mid + 1, $pos - $this->sourcePositions[$mid]]; + } + + return [$low + 1, $pos - $this->sourcePositions[$low]]; + } + + /** + * Save internal encoding of mbstring + * + * When mbstring.func_overload is used to replace the standard PHP string functions, + * this method configures the internal encoding to a single-byte one so that the + * behavior matches the normal behavior of PHP string functions while using the parser. + * The existing internal encoding is saved and will be restored when calling {@see restoreEncoding}. + * + * If mbstring.func_overload is not used (or does not override string functions), this method is a no-op. + * + * @return void + */ + private function saveEncoding() + { + if (\PHP_VERSION_ID < 80000 && \extension_loaded('mbstring') && (2 & (int) ini_get('mbstring.func_overload')) > 0) { + $this->encoding = mb_internal_encoding(); + + mb_internal_encoding('iso-8859-1'); + } + } + + /** + * Restore internal encoding + * + * @return void + */ + private function restoreEncoding() + { + if (\extension_loaded('mbstring') && $this->encoding) { + mb_internal_encoding($this->encoding); + } + } +} diff --git a/user/plugins/admin/vendor/scssphp/scssphp/src/SourceMap/Base64.php b/user/plugins/admin/vendor/scssphp/scssphp/src/SourceMap/Base64.php new file mode 100644 index 0000000..00b6b45 --- /dev/null +++ b/user/plugins/admin/vendor/scssphp/scssphp/src/SourceMap/Base64.php @@ -0,0 +1,187 @@ + + * + * @internal + */ +class Base64 +{ + /** + * @var array + */ + private static $encodingMap = [ + 0 => 'A', + 1 => 'B', + 2 => 'C', + 3 => 'D', + 4 => 'E', + 5 => 'F', + 6 => 'G', + 7 => 'H', + 8 => 'I', + 9 => 'J', + 10 => 'K', + 11 => 'L', + 12 => 'M', + 13 => 'N', + 14 => 'O', + 15 => 'P', + 16 => 'Q', + 17 => 'R', + 18 => 'S', + 19 => 'T', + 20 => 'U', + 21 => 'V', + 22 => 'W', + 23 => 'X', + 24 => 'Y', + 25 => 'Z', + 26 => 'a', + 27 => 'b', + 28 => 'c', + 29 => 'd', + 30 => 'e', + 31 => 'f', + 32 => 'g', + 33 => 'h', + 34 => 'i', + 35 => 'j', + 36 => 'k', + 37 => 'l', + 38 => 'm', + 39 => 'n', + 40 => 'o', + 41 => 'p', + 42 => 'q', + 43 => 'r', + 44 => 's', + 45 => 't', + 46 => 'u', + 47 => 'v', + 48 => 'w', + 49 => 'x', + 50 => 'y', + 51 => 'z', + 52 => '0', + 53 => '1', + 54 => '2', + 55 => '3', + 56 => '4', + 57 => '5', + 58 => '6', + 59 => '7', + 60 => '8', + 61 => '9', + 62 => '+', + 63 => '/', + ]; + + /** + * @var array + */ + private static $decodingMap = [ + 'A' => 0, + 'B' => 1, + 'C' => 2, + 'D' => 3, + 'E' => 4, + 'F' => 5, + 'G' => 6, + 'H' => 7, + 'I' => 8, + 'J' => 9, + 'K' => 10, + 'L' => 11, + 'M' => 12, + 'N' => 13, + 'O' => 14, + 'P' => 15, + 'Q' => 16, + 'R' => 17, + 'S' => 18, + 'T' => 19, + 'U' => 20, + 'V' => 21, + 'W' => 22, + 'X' => 23, + 'Y' => 24, + 'Z' => 25, + 'a' => 26, + 'b' => 27, + 'c' => 28, + 'd' => 29, + 'e' => 30, + 'f' => 31, + 'g' => 32, + 'h' => 33, + 'i' => 34, + 'j' => 35, + 'k' => 36, + 'l' => 37, + 'm' => 38, + 'n' => 39, + 'o' => 40, + 'p' => 41, + 'q' => 42, + 'r' => 43, + 's' => 44, + 't' => 45, + 'u' => 46, + 'v' => 47, + 'w' => 48, + 'x' => 49, + 'y' => 50, + 'z' => 51, + 0 => 52, + 1 => 53, + 2 => 54, + 3 => 55, + 4 => 56, + 5 => 57, + 6 => 58, + 7 => 59, + 8 => 60, + 9 => 61, + '+' => 62, + '/' => 63, + ]; + + /** + * Convert to base64 + * + * @param int $value + * + * @return string + */ + public static function encode($value) + { + return self::$encodingMap[$value]; + } + + /** + * Convert from base64 + * + * @param string $value + * + * @return int + */ + public static function decode($value) + { + return self::$decodingMap[$value]; + } +} diff --git a/user/plugins/admin/vendor/scssphp/scssphp/src/SourceMap/Base64VLQ.php b/user/plugins/admin/vendor/scssphp/scssphp/src/SourceMap/Base64VLQ.php new file mode 100644 index 0000000..2a5210c --- /dev/null +++ b/user/plugins/admin/vendor/scssphp/scssphp/src/SourceMap/Base64VLQ.php @@ -0,0 +1,151 @@ + + * @author Anthon Pang + * + * @internal + */ +class Base64VLQ +{ + // A Base64 VLQ digit can represent 5 bits, so it is base-32. + const VLQ_BASE_SHIFT = 5; + + // A mask of bits for a VLQ digit (11111), 31 decimal. + const VLQ_BASE_MASK = 31; + + // The continuation bit is the 6th bit. + const VLQ_CONTINUATION_BIT = 32; + + /** + * Returns the VLQ encoded value. + * + * @param int $value + * + * @return string + */ + public static function encode($value) + { + $encoded = ''; + $vlq = self::toVLQSigned($value); + + do { + $digit = $vlq & self::VLQ_BASE_MASK; + + //$vlq >>>= self::VLQ_BASE_SHIFT; // unsigned right shift + $vlq = (($vlq >> 1) & PHP_INT_MAX) >> (self::VLQ_BASE_SHIFT - 1); + + if ($vlq > 0) { + $digit |= self::VLQ_CONTINUATION_BIT; + } + + $encoded .= Base64::encode($digit); + } while ($vlq > 0); + + return $encoded; + } + + /** + * Decodes VLQValue. + * + * @param string $str + * @param int $index + * + * @return int + */ + public static function decode($str, &$index) + { + $result = 0; + $shift = 0; + + do { + $c = $str[$index++]; + $digit = Base64::decode($c); + $continuation = ($digit & self::VLQ_CONTINUATION_BIT) != 0; + $digit &= self::VLQ_BASE_MASK; + $result = $result + ($digit << $shift); + $shift = $shift + self::VLQ_BASE_SHIFT; + } while ($continuation); + + return self::fromVLQSigned($result); + } + + /** + * Converts from a two-complement value to a value where the sign bit is + * is placed in the least significant bit. For example, as decimals: + * 1 becomes 2 (10 binary), -1 becomes 3 (11 binary) + * 2 becomes 4 (100 binary), -2 becomes 5 (101 binary) + * + * @param int $value + * + * @return int + */ + private static function toVLQSigned($value) + { + if ($value < 0) { + return ((-$value) << 1) + 1; + } + + return ($value << 1) + 0; + } + + /** + * Converts to a two-complement value from a value where the sign bit is + * is placed in the least significant bit. For example, as decimals: + * 2 (10 binary) becomes 1, 3 (11 binary) becomes -1 + * 4 (100 binary) becomes 2, 5 (101 binary) becomes -2 + * + * @param int $value + * + * @return int + */ + private static function fromVLQSigned($value) + { + $negate = ($value & 1) === 1; + + //$value >>>= 1; // unsigned right shift + $value = ($value >> 1) & PHP_INT_MAX; + + if (! $negate) { + return $value; + } + + // We need to OR 0x80000000 here to ensure the 32nd bit (the sign bit) is + // always set for negative numbers. If `value` were 1, (meaning `negate` is + // true and all other bits were zeros), `value` would now be 0. -0 is just + // 0, and doesn't flip the 32nd bit as intended. All positive numbers will + // successfully flip the 32nd bit without issue, so it's a noop for them. + return -$value | 0x80000000; + } +} diff --git a/user/plugins/admin/vendor/scssphp/scssphp/src/SourceMap/SourceMapGenerator.php b/user/plugins/admin/vendor/scssphp/scssphp/src/SourceMap/SourceMapGenerator.php new file mode 100644 index 0000000..ccd4f02 --- /dev/null +++ b/user/plugins/admin/vendor/scssphp/scssphp/src/SourceMap/SourceMapGenerator.php @@ -0,0 +1,390 @@ + + * @author Nicolas FRANÇOIS + * + * @internal + */ +class SourceMapGenerator +{ + /** + * What version of source map does the generator generate? + */ + const VERSION = 3; + + /** + * Array of default options + * + * @var array + * @phpstan-var array{sourceRoot: string, sourceMapFilename: string|null, sourceMapURL: string|null, sourceMapWriteTo: string|null, outputSourceFiles: bool, sourceMapRootpath: string, sourceMapBasepath: string} + */ + protected $defaultOptions = [ + // an optional source root, useful for relocating source files + // on a server or removing repeated values in the 'sources' entry. + // This value is prepended to the individual entries in the 'source' field. + 'sourceRoot' => '', + + // an optional name of the generated code that this source map is associated with. + 'sourceMapFilename' => null, + + // url of the map + 'sourceMapURL' => null, + + // absolute path to a file to write the map to + 'sourceMapWriteTo' => null, + + // output source contents? + 'outputSourceFiles' => false, + + // base path for filename normalization + 'sourceMapRootpath' => '', + + // base path for filename normalization + 'sourceMapBasepath' => '' + ]; + + /** + * The base64 VLQ encoder + * + * @var \ScssPhp\ScssPhp\SourceMap\Base64VLQ + */ + protected $encoder; + + /** + * Array of mappings + * + * @var array + * @phpstan-var list + */ + protected $mappings = []; + + /** + * Array of contents map + * + * @var array + */ + protected $contentsMap = []; + + /** + * File to content map + * + * @var array + */ + protected $sources = []; + + /** + * @var array + */ + protected $sourceKeys = []; + + /** + * @var array + * @phpstan-var array{sourceRoot: string, sourceMapFilename: string|null, sourceMapURL: string|null, sourceMapWriteTo: string|null, outputSourceFiles: bool, sourceMapRootpath: string, sourceMapBasepath: string} + */ + private $options; + + /** + * @phpstan-param array{sourceRoot?: string, sourceMapFilename?: string|null, sourceMapURL?: string|null, sourceMapWriteTo?: string|null, outputSourceFiles?: bool, sourceMapRootpath?: string, sourceMapBasepath?: string} $options + */ + public function __construct(array $options = []) + { + $this->options = array_replace($this->defaultOptions, $options); + $this->encoder = new Base64VLQ(); + } + + /** + * Adds a mapping + * + * @param int $generatedLine The line number in generated file + * @param int $generatedColumn The column number in generated file + * @param int $originalLine The line number in original file + * @param int $originalColumn The column number in original file + * @param string $sourceFile The original source file + * + * @return void + */ + public function addMapping($generatedLine, $generatedColumn, $originalLine, $originalColumn, $sourceFile) + { + $this->mappings[] = [ + 'generated_line' => $generatedLine, + 'generated_column' => $generatedColumn, + 'original_line' => $originalLine, + 'original_column' => $originalColumn, + 'source_file' => $sourceFile + ]; + + $this->sources[$sourceFile] = $sourceFile; + } + + /** + * Saves the source map to a file + * + * @param string $content The content to write + * + * @return string|null + * + * @throws \ScssPhp\ScssPhp\Exception\CompilerException If the file could not be saved + * @deprecated + */ + public function saveMap($content) + { + $file = $this->options['sourceMapWriteTo']; + assert($file !== null); + $dir = \dirname($file); + + // directory does not exist + if (! is_dir($dir)) { + // FIXME: create the dir automatically? + throw new CompilerException( + sprintf('The directory "%s" does not exist. Cannot save the source map.', $dir) + ); + } + + // FIXME: proper saving, with dir write check! + if (file_put_contents($file, $content) === false) { + throw new CompilerException(sprintf('Cannot save the source map to "%s"', $file)); + } + + return $this->options['sourceMapURL']; + } + + /** + * Generates the JSON source map + * + * @param string $prefix A prefix added in the output file, which needs to shift mappings + * + * @return string + * + * @see https://docs.google.com/document/d/1U1RGAehQwRypUTovF1KRlpiOFze0b-_2gc6fAH0KY0k/edit# + */ + public function generateJson($prefix = '') + { + $sourceMap = []; + $mappings = $this->generateMappings($prefix); + + // File version (always the first entry in the object) and must be a positive integer. + $sourceMap['version'] = self::VERSION; + + // An optional name of the generated code that this source map is associated with. + $file = $this->options['sourceMapFilename']; + + if ($file) { + $sourceMap['file'] = $file; + } + + // An optional source root, useful for relocating source files on a server or removing repeated values in the + // 'sources' entry. This value is prepended to the individual entries in the 'source' field. + $root = $this->options['sourceRoot']; + + if ($root) { + $sourceMap['sourceRoot'] = $root; + } + + // A list of original sources used by the 'mappings' entry. + $sourceMap['sources'] = []; + + foreach ($this->sources as $sourceFilename) { + $sourceMap['sources'][] = $this->normalizeFilename($sourceFilename); + } + + // A list of symbol names used by the 'mappings' entry. + $sourceMap['names'] = []; + + // A string with the encoded mapping data. + $sourceMap['mappings'] = $mappings; + + if ($this->options['outputSourceFiles']) { + // An optional list of source content, useful when the 'source' can't be hosted. + // The contents are listed in the same order as the sources above. + // 'null' may be used if some original sources should be retrieved by name. + $sourceMap['sourcesContent'] = $this->getSourcesContent(); + } + + // less.js compat fixes + if (\count($sourceMap['sources']) && empty($sourceMap['sourceRoot'])) { + unset($sourceMap['sourceRoot']); + } + + $jsonSourceMap = json_encode($sourceMap, JSON_UNESCAPED_SLASHES); + + if (json_last_error() !== JSON_ERROR_NONE) { + throw new \RuntimeException(json_last_error_msg()); + } + + assert($jsonSourceMap !== false); + + return $jsonSourceMap; + } + + /** + * Returns the sources contents + * + * @return string[]|null + */ + protected function getSourcesContent() + { + if (empty($this->sources)) { + return null; + } + + $content = []; + + foreach ($this->sources as $sourceFile) { + $content[] = file_get_contents($sourceFile); + } + + return $content; + } + + /** + * Generates the mappings string + * + * @param string $prefix A prefix added in the output file, which needs to shift mappings + * + * @return string + */ + public function generateMappings($prefix = '') + { + if (! \count($this->mappings)) { + return ''; + } + + $prefixLines = substr_count($prefix, "\n"); + $lastPrefixNewLine = strrpos($prefix, "\n"); + $lastPrefixLineStart = false === $lastPrefixNewLine ? 0 : $lastPrefixNewLine + 1; + $prefixColumn = strlen($prefix) - $lastPrefixLineStart; + + $this->sourceKeys = array_flip(array_keys($this->sources)); + + // group mappings by generated line number. + $groupedMap = $groupedMapEncoded = []; + + foreach ($this->mappings as $m) { + $groupedMap[$m['generated_line']][] = $m; + } + + ksort($groupedMap); + + $lastGeneratedLine = $lastOriginalIndex = $lastOriginalLine = $lastOriginalColumn = 0; + + foreach ($groupedMap as $lineNumber => $lineMap) { + if ($lineNumber > 1) { + // The prefix only impacts the column for the first line of the original output + $prefixColumn = 0; + } + $lineNumber += $prefixLines; + + while (++$lastGeneratedLine < $lineNumber) { + $groupedMapEncoded[] = ';'; + } + + $lineMapEncoded = []; + $lastGeneratedColumn = 0; + + foreach ($lineMap as $m) { + $generatedColumn = $m['generated_column'] + $prefixColumn; + + $mapEncoded = $this->encoder->encode($generatedColumn - $lastGeneratedColumn); + $lastGeneratedColumn = $generatedColumn; + + // find the index + if ($m['source_file']) { + $index = $this->findFileIndex($m['source_file']); + + if ($index !== false) { + $mapEncoded .= $this->encoder->encode($index - $lastOriginalIndex); + $lastOriginalIndex = $index; + // lines are stored 0-based in SourceMap spec version 3 + $mapEncoded .= $this->encoder->encode($m['original_line'] - 1 - $lastOriginalLine); + $lastOriginalLine = $m['original_line'] - 1; + $mapEncoded .= $this->encoder->encode($m['original_column'] - $lastOriginalColumn); + $lastOriginalColumn = $m['original_column']; + } + } + + $lineMapEncoded[] = $mapEncoded; + } + + $groupedMapEncoded[] = implode(',', $lineMapEncoded) . ';'; + } + + return rtrim(implode($groupedMapEncoded), ';'); + } + + /** + * Finds the index for the filename + * + * @param string $filename + * + * @return int|false + */ + protected function findFileIndex($filename) + { + return $this->sourceKeys[$filename]; + } + + /** + * Normalize filename + * + * @param string $filename + * + * @return string + */ + protected function normalizeFilename($filename) + { + $filename = $this->fixWindowsPath($filename); + $rootpath = $this->options['sourceMapRootpath']; + $basePath = $this->options['sourceMapBasepath']; + + // "Trim" the 'sourceMapBasepath' from the output filename. + if (\strlen($basePath) && strpos($filename, $basePath) === 0) { + $filename = substr($filename, \strlen($basePath)); + } + + // Remove extra leading path separators. + if (strpos($filename, '\\') === 0 || strpos($filename, '/') === 0) { + $filename = substr($filename, 1); + } + + return $rootpath . $filename; + } + + /** + * Fix windows paths + * + * @param string $path + * @param bool $addEndSlash + * + * @return string + */ + public function fixWindowsPath($path, $addEndSlash = false) + { + $slash = ($addEndSlash) ? '/' : ''; + + if (! empty($path)) { + $path = str_replace('\\', '/', $path); + $path = rtrim($path, '/') . $slash; + } + + return $path; + } +} diff --git a/user/plugins/admin/vendor/scssphp/scssphp/src/Type.php b/user/plugins/admin/vendor/scssphp/scssphp/src/Type.php new file mode 100644 index 0000000..d430887 --- /dev/null +++ b/user/plugins/admin/vendor/scssphp/scssphp/src/Type.php @@ -0,0 +1,208 @@ + + */ +class Type +{ + /** + * @internal + */ + const T_ASSIGN = 'assign'; + /** + * @internal + */ + const T_AT_ROOT = 'at-root'; + /** + * @internal + */ + const T_BLOCK = 'block'; + /** + * @deprecated + * @internal + */ + const T_BREAK = 'break'; + /** + * @internal + */ + const T_CHARSET = 'charset'; + const T_COLOR = 'color'; + /** + * @internal + */ + const T_COMMENT = 'comment'; + /** + * @deprecated + * @internal + */ + const T_CONTINUE = 'continue'; + /** + * @deprecated + * @internal + */ + const T_CONTROL = 'control'; + /** + * @internal + */ + const T_CUSTOM_PROPERTY = 'custom'; + /** + * @internal + */ + const T_DEBUG = 'debug'; + /** + * @internal + */ + const T_DIRECTIVE = 'directive'; + /** + * @internal + */ + const T_EACH = 'each'; + /** + * @internal + */ + const T_ELSE = 'else'; + /** + * @internal + */ + const T_ELSEIF = 'elseif'; + /** + * @internal + */ + const T_ERROR = 'error'; + /** + * @internal + */ + const T_EXPRESSION = 'exp'; + /** + * @internal + */ + const T_EXTEND = 'extend'; + /** + * @internal + */ + const T_FOR = 'for'; + const T_FUNCTION = 'function'; + /** + * @internal + */ + const T_FUNCTION_REFERENCE = 'function-reference'; + /** + * @internal + */ + const T_FUNCTION_CALL = 'fncall'; + /** + * @internal + */ + const T_HSL = 'hsl'; + /** + * @internal + */ + const T_HWB = 'hwb'; + /** + * @internal + */ + const T_IF = 'if'; + /** + * @internal + */ + const T_IMPORT = 'import'; + /** + * @internal + */ + const T_INCLUDE = 'include'; + /** + * @internal + */ + const T_INTERPOLATE = 'interpolate'; + /** + * @internal + */ + const T_INTERPOLATED = 'interpolated'; + /** + * @internal + */ + const T_KEYWORD = 'keyword'; + const T_LIST = 'list'; + const T_MAP = 'map'; + /** + * @internal + */ + const T_MEDIA = 'media'; + /** + * @internal + */ + const T_MEDIA_EXPRESSION = 'mediaExp'; + /** + * @internal + */ + const T_MEDIA_TYPE = 'mediaType'; + /** + * @internal + */ + const T_MEDIA_VALUE = 'mediaValue'; + /** + * @internal + */ + const T_MIXIN = 'mixin'; + /** + * @internal + */ + const T_MIXIN_CONTENT = 'mixin_content'; + /** + * @internal + */ + const T_NESTED_PROPERTY = 'nestedprop'; + /** + * @internal + */ + const T_NOT = 'not'; + const T_NULL = 'null'; + const T_NUMBER = 'number'; + /** + * @internal + */ + const T_RETURN = 'return'; + /** + * @internal + */ + const T_ROOT = 'root'; + /** + * @internal + */ + const T_SCSSPHP_IMPORT_ONCE = 'scssphp-import-once'; + /** + * @internal + */ + const T_SELF = 'self'; + const T_STRING = 'string'; + /** + * @internal + */ + const T_UNARY = 'unary'; + /** + * @internal + */ + const T_VARIABLE = 'var'; + /** + * @internal + */ + const T_WARN = 'warn'; + /** + * @internal + */ + const T_WHILE = 'while'; +} diff --git a/user/plugins/admin/vendor/scssphp/scssphp/src/Util.php b/user/plugins/admin/vendor/scssphp/scssphp/src/Util.php new file mode 100644 index 0000000..ad608ce --- /dev/null +++ b/user/plugins/admin/vendor/scssphp/scssphp/src/Util.php @@ -0,0 +1,184 @@ + + * + * @internal + */ +class Util +{ + /** + * Asserts that `value` falls within `range` (inclusive), leaving + * room for slight floating-point errors. + * + * @param string $name The name of the value. Used in the error message. + * @param Range $range Range of values. + * @param array|Number $value The value to check. + * @param string $unit The unit of the value. Used in error reporting. + * + * @return mixed `value` adjusted to fall within range, if it was outside by a floating-point margin. + * + * @throws \ScssPhp\ScssPhp\Exception\RangeException + */ + public static function checkRange($name, Range $range, $value, $unit = '') + { + $val = $value[1]; + $grace = new Range(-0.00001, 0.00001); + + if (! \is_numeric($val)) { + throw new RangeException("$name {$val} is not a number."); + } + + if ($range->includes($val)) { + return $val; + } + + if ($grace->includes($val - $range->first)) { + return $range->first; + } + + if ($grace->includes($val - $range->last)) { + return $range->last; + } + + throw new RangeException("$name {$val} must be between {$range->first} and {$range->last}$unit"); + } + + /** + * Encode URI component + * + * @param string $string + * + * @return string + */ + public static function encodeURIComponent($string) + { + $revert = ['%21' => '!', '%2A' => '*', '%27' => "'", '%28' => '(', '%29' => ')']; + + return strtr(rawurlencode($string), $revert); + } + + /** + * mb_chr() wrapper + * + * @param int $code + * + * @return string + */ + public static function mbChr($code) + { + // Use the native implementation if available, but not on PHP 7.2 as mb_chr(0) is buggy there + if (\PHP_VERSION_ID > 70300 && \function_exists('mb_chr')) { + return mb_chr($code, 'UTF-8'); + } + + if (0x80 > $code %= 0x200000) { + $s = \chr($code); + } elseif (0x800 > $code) { + $s = \chr(0xC0 | $code >> 6) . \chr(0x80 | $code & 0x3F); + } elseif (0x10000 > $code) { + $s = \chr(0xE0 | $code >> 12) . \chr(0x80 | $code >> 6 & 0x3F) . \chr(0x80 | $code & 0x3F); + } else { + $s = \chr(0xF0 | $code >> 18) . \chr(0x80 | $code >> 12 & 0x3F) + . \chr(0x80 | $code >> 6 & 0x3F) . \chr(0x80 | $code & 0x3F); + } + + return $s; + } + + /** + * mb_strlen() wrapper + * + * @param string $string + * @return int + */ + public static function mbStrlen($string) + { + // Use the native implementation if available. + if (\function_exists('mb_strlen')) { + return mb_strlen($string, 'UTF-8'); + } + + if (\function_exists('iconv_strlen')) { + return (int) @iconv_strlen($string, 'UTF-8'); + } + + throw new \LogicException('Either mbstring (recommended) or iconv is necessary to use Scssphp.'); + } + + /** + * mb_substr() wrapper + * @param string $string + * @param int $start + * @param null|int $length + * @return string + */ + public static function mbSubstr($string, $start, $length = null) + { + // Use the native implementation if available. + if (\function_exists('mb_substr')) { + return mb_substr($string, $start, $length, 'UTF-8'); + } + + if (\function_exists('iconv_substr')) { + if ($start < 0) { + $start = static::mbStrlen($string) + $start; + if ($start < 0) { + $start = 0; + } + } + + if (null === $length) { + $length = 2147483647; + } elseif ($length < 0) { + $length = static::mbStrlen($string) + $length - $start; + if ($length < 0) { + return ''; + } + } + + return (string)iconv_substr($string, $start, $length, 'UTF-8'); + } + + throw new \LogicException('Either mbstring (recommended) or iconv is necessary to use Scssphp.'); + } + + /** + * mb_strpos wrapper + * @param string $haystack + * @param string $needle + * @param int $offset + * + * @return int|false + */ + public static function mbStrpos($haystack, $needle, $offset = 0) + { + if (\function_exists('mb_strpos')) { + return mb_strpos($haystack, $needle, $offset, 'UTF-8'); + } + + if (\function_exists('iconv_strpos')) { + return iconv_strpos($haystack, $needle, $offset, 'UTF-8'); + } + + throw new \LogicException('Either mbstring (recommended) or iconv is necessary to use Scssphp.'); + } +} diff --git a/user/plugins/admin/vendor/scssphp/scssphp/src/Util/Path.php b/user/plugins/admin/vendor/scssphp/scssphp/src/Util/Path.php new file mode 100644 index 0000000..f399e41 --- /dev/null +++ b/user/plugins/admin/vendor/scssphp/scssphp/src/Util/Path.php @@ -0,0 +1,77 @@ +parseValue($source, $value)) { + throw new \InvalidArgumentException(sprintf('Invalid value source "%s".', $source)); + } + + return $value; + } + + /** + * Converts a PHP value to a Sass value + * + * The returned value is guaranteed to be supported by the + * Compiler methods for registering custom variables. No other + * guarantee about it is provided. It should be considered + * opaque values by the caller. + * + * @param mixed $value + * + * @return mixed + */ + public static function fromPhp($value) + { + if ($value instanceof Number) { + return $value; + } + + if (is_array($value) && isset($value[0]) && \in_array($value[0], [Type::T_NULL, Type::T_COLOR, Type::T_KEYWORD, Type::T_LIST, Type::T_MAP, Type::T_STRING])) { + return $value; + } + + if ($value === null) { + return Compiler::$null; + } + + if ($value === true) { + return Compiler::$true; + } + + if ($value === false) { + return Compiler::$false; + } + + if ($value === '') { + return Compiler::$emptyString; + } + + if (\is_int($value) || \is_float($value)) { + return new Number($value, ''); + } + + if (\is_string($value)) { + return [Type::T_STRING, '"', [$value]]; + } + + throw new \InvalidArgumentException(sprintf('Cannot convert the value of type "%s" to a Sass value.', gettype($value))); + } +} diff --git a/user/plugins/admin/vendor/scssphp/scssphp/src/Version.php b/user/plugins/admin/vendor/scssphp/scssphp/src/Version.php new file mode 100644 index 0000000..a9efaa3 --- /dev/null +++ b/user/plugins/admin/vendor/scssphp/scssphp/src/Version.php @@ -0,0 +1,23 @@ + + */ +class Version +{ + const VERSION = '1.10.4'; +} diff --git a/user/plugins/admin/vendor/scssphp/scssphp/src/Warn.php b/user/plugins/admin/vendor/scssphp/scssphp/src/Warn.php new file mode 100644 index 0000000..592b44c --- /dev/null +++ b/user/plugins/admin/vendor/scssphp/scssphp/src/Warn.php @@ -0,0 +1,84 @@ + +
    + {% include 'partials/blog_item.html.twig' with {'blog':page.parent, 'truncate':false} %} +
    + + + + {% include 'partials/comments.html.twig' with {'page': page} %} + {% endblock %} + +{% endembed %} +``` + +The comment form will appear on the blog post items matching the enabled routes. + +To set the enabled routes, create a `user/config/plugins/comments.yaml` file, copy in it the contents of `user/plugins/comments/comments.yaml` and edit the `enable_on_routes` and `disable_on_routes` options according to your needs. + +> Make sure you configured the "Email from" and "Email to" email addresses in the Email plugin with your email address! + +# Enabling Recaptcha + +The plugin comes with Recaptcha integration. To make it work, create a `user/config/plugins/comments.yaml` file, copy in it the contents of `user/plugins/comments/comments.yaml` and uncomment the captcha form field and the captcha validation process. +Make sure you add your own Recaptcha `site` and `secret` keys too. + +# Where are the comments stored? + +In the `user/data/comments` folder. They're organized by page route, so every page with a comment has a corresponding file. This enables a quick load of all the page comments. + +# Visualize comments + +When the plugin is installed and enabled, the `Comments` menu will appear in the Admin Plugin. From there you can see all the comments made in the last 7 days. + +Further improvements to the comments visualization will be added in the next releases. + +# Email notifications + +The plugin interacts with the Email plugin to send emails upon receiving a comment. Configure the Email plugin correctly, setting its "Email from" and "Email to" email addresses. + +# Things still missing + +- Allow to delete comments from the Admin Plugin +- Ability to see all comments of a page in the Admin Plugin +- Ability to reply to a comment from the Admin Plugin +- Auto-fill the comment form when a user is logged in diff --git a/user/plugins/comments/admin/pages/comments.md b/user/plugins/comments/admin/pages/comments.md new file mode 100644 index 0000000..2b290b0 --- /dev/null +++ b/user/plugins/comments/admin/pages/comments.md @@ -0,0 +1,7 @@ +--- +title: Comments + +access: + admin.comments: true + admin.super: true +--- diff --git a/user/plugins/comments/admin/templates/comments.html.twig b/user/plugins/comments/admin/templates/comments.html.twig new file mode 100644 index 0000000..6fea510 --- /dev/null +++ b/user/plugins/comments/admin/templates/comments.html.twig @@ -0,0 +1,133 @@ +{% extends 'partials/base.html.twig' %} + +{% if admin.route %} + {% set context = admin.page(true) %} +{% endif %} + +{% block titlebar %} +

    {{ "PLUGIN_COMMENTS.COMMENTS"|tu }}

    +{% endblock %} + +{% block content %} + + + + +

    Comments in the last 7 days

    + +
    + + + + + + + + {% for comment in grav.twig.comments.comments %} + + + + + + {% endfor %} + +
    AuthorCommentDetails
    {{comment.author}}{{comment.text}}Page: {{comment.pageTitle}}
    + Date: {{comment.date}}
    + + {% if grav.twig.comments.totalRetrieved < grav.twig.comments.totalAvailable %} + + {% endif %} + +

    Showing {{grav.twig.comments.totalRetrieved}} comments of {{grav.twig.comments.totalAvailable}}

    +
    + + {% if grav.twig.pages %} +

    Recently commented pages

    + +
    + + + + + + + + {% for page in grav.twig.pages %} + + + + + + {% endfor %} + +
    PageNumber of commentsLast commented on
    {{page.title}}{{page.commentsCount}}{{page.lastCommentDate}}
    +
    + {% endif %} + +{% endblock %} + + diff --git a/user/plugins/comments/blueprints.yaml b/user/plugins/comments/blueprints.yaml new file mode 100644 index 0000000..4b825e8 --- /dev/null +++ b/user/plugins/comments/blueprints.yaml @@ -0,0 +1,33 @@ +name: Comments +type: plugin +slug: comments +version: 1.2.8 +description: Adds a commenting functionality to your site +icon: comment +author: + name: Team Grav + email: devs@getgrav.org + url: http://getgrav.org +homepage: https://github.com/getgrav/grav-plugin-comments +keywords: guestbook, plugin +bugs: https://github.com/getgrav/grav-plugin-comments/issues +readme: https://github.com/getgrav/grav-plugin-comments/blob/develop/README.md +license: MIT + +dependencies: + - form + - email + +form: + validation: loose + fields: + enabled: + type: toggle + label: PLUGIN_ADMIN.PLUGIN_STATUS + highlight: 1 + default: 0 + options: + 1: PLUGIN_ADMIN.ENABLED + 0: PLUGIN_ADMIN.DISABLED + validate: + type: bool diff --git a/user/plugins/comments/comments.php b/user/plugins/comments/comments.php new file mode 100644 index 0000000..f7f44eb --- /dev/null +++ b/user/plugins/comments/comments.php @@ -0,0 +1,435 @@ + ['onPluginsInitialized', 0] + ]; + } + + /** + * Initialize form if the page has one. Also catches form processing if user posts the form. + * + * Used by Form plugin < 2.0, kept for backwards compatibility + * + * @deprecated + */ + public function onPageInitialized() + { + /** @var Page $page */ + $page = $this->grav['page']; + if (!$page) { + return; + } + + if ($this->enable) { + $header = $page->header(); + if (!isset($header->form)) { + $header->form = $this->grav['config']->get('plugins.comments.form'); + $page->header($header); + } + } + } + + /** + * Add the comment form information to the page header dynamically + * + * Used by Form plugin >= 2.0 + */ + public function onFormPageHeaderProcessed(Event $event) + { + $header = $event['header']; + + if ($this->enable) { + if (!isset($header->form)) { + $header->form = $this->grav['config']->get('plugins.comments.form'); + } + } + + $event->header = $header; + } + + public function onTwigSiteVariables() { + // Old way + $enabled = $this->enable; + $comments = $this->fetchComments(); + + $this->grav['twig']->enable_comments_plugin = $enabled; + $this->grav['twig']->comments = $comments; + + // New way + $this->grav['twig']->twig_vars['enable_comments_plugin'] = $enabled; + $this->grav['twig']->twig_vars['comments'] = $comments; + + } + + /** + * Determine if the plugin should be enabled based on the enable_on_routes and disable_on_routes config options + */ + private function calculateEnable() { + $uri = $this->grav['uri']; + + $disable_on_routes = (array) $this->config->get('plugins.comments.disable_on_routes'); + $enable_on_routes = (array) $this->config->get('plugins.comments.enable_on_routes'); + + $path = $uri->path(); + + if (!in_array($path, $disable_on_routes)) { + if (in_array($path, $enable_on_routes)) { + $this->enable = true; + } else { + foreach($enable_on_routes as $route) { + if (Utils::startsWith($path, $route)) { + $this->enable = true; + break; + } + } + } + } + } + + /** + * Frontend side initialization + */ + public function initializeFrontend() + { + $this->calculateEnable(); + + $this->enable([ + 'onTwigTemplatePaths' => ['onTwigTemplatePaths', 0], + ]); + + if ($this->enable) { + $this->enable([ + 'onFormProcessed' => ['onFormProcessed', 0], + 'onFormPageHeaderProcessed' => ['onFormPageHeaderProcessed', 0], + 'onPageInitialized' => ['onPageInitialized', 10], + 'onTwigSiteVariables' => ['onTwigSiteVariables', 0] + ]); + } + + $cache = $this->grav['cache']; + $uri = $this->grav['uri']; + + //init cache id + $this->comments_cache_id = md5('comments-data' . $cache->getKey() . '-' . $uri->url()); + } + + /** + * Admin side initialization + */ + public function initializeAdmin() + { + /** @var Uri $uri */ + $uri = $this->grav['uri']; + + $this->enable([ + 'onTwigTemplatePaths' => ['onTwigAdminTemplatePaths', 0], + 'onAdminMenu' => ['onAdminMenu', 0], + 'onDataTypeExcludeFromDataManagerPluginHook' => ['onDataTypeExcludeFromDataManagerPluginHook', 0], + ]); + + if (strpos($uri->path(), $this->config->get('plugins.admin.route') . '/' . $this->route) === false) { + return; + } + + $page = $this->grav['uri']->param('page'); + $comments = $this->getLastComments($page); + + if ($page > 0) { + echo json_encode($comments); + exit(); + } + + $this->grav['twig']->comments = $comments; + $this->grav['twig']->pages = $this->fetchPages(); + } + + /** + */ + public function onPluginsInitialized() + { + if ($this->isAdmin()) { + $this->initializeAdmin(); + } else { + $this->initializeFrontend(); + } + } + + /** + * Handle form processing instructions. + * + * @param Event $event + */ + public function onFormProcessed(Event $event) + { + $form = $event['form']; + $action = $event['action']; + $params = $event['params']; + + if (!$this->active) { + return; + } + + switch ($action) { + case 'addComment': + $post = isset($_POST['data']) ? $_POST['data'] : []; + + $path = $this->grav['uri']->path(); + + $lang = filter_var(urldecode($post['lang']), FILTER_SANITIZE_STRING); + $text = filter_var(urldecode($post['text']), FILTER_SANITIZE_STRING); + $name = filter_var(urldecode($post['name']), FILTER_SANITIZE_STRING); + $email = filter_var(urldecode($post['email']), FILTER_SANITIZE_STRING); + $title = filter_var(urldecode($post['title']), FILTER_SANITIZE_STRING); + + if (isset($this->grav['user'])) { + $user = $this->grav['user']; + if ($user->authenticated) { + $name = $user->fullname; + $email = $user->email; + } + } + + /** @var Language $language */ + $language = $this->grav['language']; + $lang = $language->getLanguage(); + + $filename = DATA_DIR . 'comments'; + $filename .= ($lang ? '/' . $lang : ''); + $filename .= $path . '.yaml'; + $file = File::instance($filename); + + if (file_exists($filename)) { + $data = Yaml::parse($file->content()); + + $data['comments'][] = [ + 'text' => $text, + 'date' => date('D, d M Y H:i:s', time()), + 'author' => $name, + 'email' => $email + ]; + } else { + $data = array( + 'title' => $title, + 'lang' => $lang, + 'comments' => array([ + 'text' => $text, + 'date' => date('D, d M Y H:i:s', time()), + 'author' => $name, + 'email' => $email + ]) + ); + } + + $file->save(Yaml::dump($data)); + + //clear cache + $this->grav['cache']->delete($this->comments_cache_id); + + break; + } + } + + private function getFilesOrderedByModifiedDate($path = '') { + $files = []; + + if (!$path) { + $path = DATA_DIR . 'comments'; + } + + if (!file_exists($path)) { + Folder::mkdir($path); + } + + $dirItr = new \RecursiveDirectoryIterator($path, \RecursiveDirectoryIterator::SKIP_DOTS); + $filterItr = new RecursiveFolderFilterIterator($dirItr); + $itr = new \RecursiveIteratorIterator($filterItr, \RecursiveIteratorIterator::SELF_FIRST); + + $itrItr = new \RecursiveIteratorIterator($dirItr, \RecursiveIteratorIterator::SELF_FIRST); + $filesItr = new \RegexIterator($itrItr, '/^.+\.yaml$/i'); + + // Collect files if modified in the last 7 days + foreach ($filesItr as $filepath => $file) { + $modifiedDate = $file->getMTime(); + $sevenDaysAgo = time() - (7 * 24 * 60 * 60); + + if ($modifiedDate < $sevenDaysAgo) { + continue; + } + + $files[] = (object)array( + "modifiedDate" => $modifiedDate, + "fileName" => $file->getFilename(), + "filePath" => $filepath, + "data" => Yaml::parse(file_get_contents($filepath)) + ); + } + + // Traverse folders and recurse + foreach ($itr as $file) { + if ($file->isDir()) { + $this->getFilesOrderedByModifiedDate($file->getPath() . '/' . $file->getFilename()); + } + } + + // Order files by last modified date + usort($files, function($a, $b) { + return !($a->modifiedDate > $b->modifiedDate); + }); + + return $files; + } + + private function getLastComments($page = 0) { + $number = 30; + + $files = []; + $files = $this->getFilesOrderedByModifiedDate(); + $comments = []; + + foreach($files as $file) { + $data = Yaml::parse(file_get_contents($file->filePath)); + + for ($i = 0; $i < count($data['comments']); $i++) { + $commentTimestamp = \DateTime::createFromFormat('D, d M Y H:i:s', $data['comments'][$i]['date'])->getTimestamp(); + + $data['comments'][$i]['pageTitle'] = $data['title']; + $data['comments'][$i]['filePath'] = $file->filePath; + $data['comments'][$i]['timestamp'] = $commentTimestamp; + } + if (count($data['comments'])) { + $comments = array_merge($comments, $data['comments']); + } + } + + // Order comments by date + usort($comments, function($a, $b) { + return !($a['timestamp'] > $b['timestamp']); + }); + + $totalAvailable = count($comments); + $comments = array_slice($comments, $page * $number, $number); + $totalRetrieved = count($comments); + + return (object)array( + "comments" => $comments, + "page" => $page, + "totalAvailable" => $totalAvailable, + "totalRetrieved" => $totalRetrieved + ); + } + + /** + * Return the comments associated to the current route + */ + private function fetchComments() { + $cache = $this->grav['cache']; + //search in cache + if ($comments = $cache->fetch($this->comments_cache_id)) { + return $comments; + } + + $lang = $this->grav['language']->getLanguage(); + $filename = $lang ? '/' . $lang : ''; + $filename .= $this->grav['uri']->path() . '.yaml'; + + $data = $this->getDataFromFilename($filename); + $comments = isset($data['comments']) ? $data['comments'] : null; + //save to cache if enabled + $cache->save($this->comments_cache_id, $comments); + return $comments; + } + + /** + * Return the latest commented pages + */ + private function fetchPages() { + $files = []; + $files = $this->getFilesOrderedByModifiedDate(); + + $pages = []; + + foreach($files as $file) { + $pages[] = [ + 'title' => $file->data['title'], + 'commentsCount' => count($file->data['comments']), + 'lastCommentDate' => date('D, d M Y H:i:s', $file->modifiedDate) + ]; + } + + return $pages; + } + + + /** + * Given a data file route, return the YAML content already parsed + */ + private function getDataFromFilename($fileRoute) { + + //Single item details + $fileInstance = File::instance(DATA_DIR . 'comments/' . $fileRoute); + + if (!$fileInstance->content()) { + //Item not found + return; + } + + return Yaml::parse($fileInstance->content()); + } + + /** + * Add templates directory to twig lookup paths. + */ + public function onTwigTemplatePaths() + { + $this->grav['twig']->twig_paths[] = __DIR__ . '/templates'; + } + + /** + * Add plugin templates path + */ + public function onTwigAdminTemplatePaths() + { + $this->grav['twig']->twig_paths[] = __DIR__ . '/admin/templates'; + } + + /** + * Add navigation item to the admin plugin + */ + public function onAdminMenu() + { + $this->grav['twig']->plugins_hooked_nav['PLUGIN_COMMENTS.COMMENTS'] = ['route' => $this->route, 'icon' => 'fa-file-text']; + } + + /** + * Exclude comments from the Data Manager plugin + */ + public function onDataTypeExcludeFromDataManagerPluginHook() + { + $this->grav['admin']->dataTypesExcludedFromDataManagerPlugin[] = 'comments'; + } +} \ No newline at end of file diff --git a/user/plugins/comments/comments.yaml b/user/plugins/comments/comments.yaml new file mode 100644 index 0000000..5c09966 --- /dev/null +++ b/user/plugins/comments/comments.yaml @@ -0,0 +1,77 @@ +enabled: true + +enable_on_routes: + - '/blog' + +disable_on_routes: + - /blog/blog-post-to-ignore + - /ignore-this-route + #- '/blog/daring-fireball-link' + +form: + name: comments + fields: + - name: name + label: PLUGIN_COMMENTS.NAME_LABEL + placeholder: PLUGIN_COMMENTS.NAME_PLACEHOLDER + autocomplete: on + type: text + validate: + required: true + + - name: email + label: PLUGIN_COMMENTS.EMAIL_LABEL + placeholder: PLUGIN_COMMENTS.EMAIL_PLACEHOLDER + type: email + validate: + required: true + + - name: text + label: PLUGIN_COMMENTS.MESSAGE_LABEL + placeholder: PLUGIN_COMMENTS.MESSAGE_PLACEHOLDER + type: textarea + validate: + required: true + + - name: date + type: hidden + process: + fillWithCurrentDateTime: true + + - name: title + type: hidden + evaluateDefault: grav.page.header.title + + - name: lang + type: hidden + evaluateDefault: grav.language.getLanguage + + - name: path + type: hidden + evaluateDefault: grav.uri.path + +# - name: g-recaptcha-response +# label: Captcha +# type: captcha +# recaptcha_site_key: e32iojeoi32jeoi32jeoij32oiej32oiej3 +# recaptcha_not_validated: 'Captcha not valid!' +# validate: +# required: true +# process: +# ignore: true + + buttons: + - type: submit + value: PLUGIN_COMMENTS.SUBMIT_COMMENT_BUTTON_TEXT + + process: +# - captcha: +# recaptcha_secret: ej32oiej23oiej32oijeoi32jeio32je + - email: + subject: PLUGIN_COMMENTS.EMAIL_NEW_COMMENT_SUBJECT + body: "{% include 'forms/data.html.twig' %}" + - addComment: + - message: PLUGIN_COMMENTS.THANK_YOU_MESSAGE + - reset: true + + diff --git a/user/plugins/comments/languages.yaml b/user/plugins/comments/languages.yaml new file mode 100644 index 0000000..eb9eae8 --- /dev/null +++ b/user/plugins/comments/languages.yaml @@ -0,0 +1,276 @@ +en: + PLUGIN_COMMENTS: + ADD_COMMENT: Add a comment + COMMENTS: Comments + EMAIL_NOT_CONFIGURED: Email not configured + NEW_COMMENT_EMAIL_SUBJECT: 'New comment on %1$s' + NEW_COMMENT_EMAIL_BODY: '

    A new comment was made on %1$s by %3$s (%4$s).

    Page: %2$s

    Text: %5$s

    ' + EMAIL_FOOTER: '' + NAME: Name: + EMAIL: Email: + WRITTEN_ON: Written on + BY: by + NAME_LABEL: "Name" + NAME_PLACEHOLDER: "Enter your name" + EMAIL_LABEL: "Email" + EMAIL_PLACEHOLDER: "Enter your email address" + MESSAGE_LABEL: "Comment" + MESSAGE_PLACEHOLDER: "Enter your comment" + SUBMIT_COMMENT_BUTTON_TEXT: "Submit" + EMAIL_NEW_COMMENT_SUBJECT: "[New Comment] from {{ form.value.name|e }}" + THANK_YOU_MESSAGE: "Thank you for writing your comment!" + +de: + PLUGIN_COMMENTS: + ADD_COMMENT: Kommentar hinzufügen + COMMENTS: Kommentare + EMAIL_NOT_CONFIGURED: Email nicht konfiguriert + NEW_COMMENT_EMAIL_SUBJECT: 'Neuer Kommentar für %1$s' + NEW_COMMENT_EMAIL_BODY: '

    Ein neuer Kommentar am %1$s von %3$s (%4$s).

    Seite: %2$s

    Text: %5$s

    ' + EMAIL_FOOTER: '' + NAME: Name: + EMAIL: Email: + WRITTEN_ON: geschrieben am + BY: von + NAME_LABEL: "Name" + NAME_PLACEHOLDER: "Namen eingeben" + EMAIL_LABEL: "Email" + EMAIL_PLACEHOLDER: "Email-Adresse eingeben" + MESSAGE_LABEL: "Kommentar" + MESSAGE_PLACEHOLDER: "Kommentar eingeben" + SUBMIT_COMMENT_BUTTON_TEXT: "Absenden" + EMAIL_NEW_COMMENT_SUBJECT: "[Neuer Kommentar] von {{ form.value.name|e }}" + THANK_YOU_MESSAGE: "Vielen Dank für den Kommentar!" + +es: + PLUGIN_COMMENTS: + ADD_COMMENT: Agregar un comentario + COMMENTS: Comentarios + EMAIL_NOT_CONFIGURED: El Email no está configurado + NEW_COMMENT_EMAIL_SUBJECT: 'Nuevo comentario en %1$s' + NEW_COMMENT_EMAIL_BODY: '

    Un nuevo comentario se hizo en %1$s por %3$s (%4$s).

    Page: %2$s

    Text: %5$s

    ' + EMAIL_FOOTER: '' + NAME: Nombre: + EMAIL: Email: + WRITTEN_ON: Escrito en + BY: por + NAME_LABEL: "Nombre" + NAME_PLACEHOLDER: "Escriba su nombre" + EMAIL_LABEL: "Email" + EMAIL_PLACEHOLDER: "Escriba su email" + MESSAGE_LABEL: "Comentario" + MESSAGE_PLACEHOLDER: "Escriba su comentario" + SUBMIT_COMMENT_BUTTON_TEXT: "Enviar" + EMAIL_NEW_COMMENT_SUBJECT: "[Nuevo comentario] de {{ form.value.name|e }}" + THANK_YOU_MESSAGE: "Gracias por escribir su comentario!" + +fr: + PLUGIN_COMMENTS: + ADD_COMMENT: Ajouter un commentaire (en travaux) + COMMENTS: Commentaires (en travaux) + EMAIL_NOT_CONFIGURED: E-mail non configuré + NEW_COMMENT_EMAIL_SUBJECT: 'Nouveau commentaire sur %1$s' + NEW_COMMENT_EMAIL_BODY: '

    Un nouveau commentaire a été publié sur %1$s par %3$s (%4$s).

    Page : %2$s

    Texte : %5$s

    ' + EMAIL_FOOTER: '' + NAME: Nom : + EMAIL: E-mail : + WRITTEN_ON: Écrit le + BY: par + NAME_LABEL: "Nom" + NAME_PLACEHOLDER: "Indiquez votre nom" + EMAIL_LABEL: "E-mail" + EMAIL_PLACEHOLDER: "Indiquez votre adresse e-mail" + MESSAGE_LABEL: "Commentaire" + MESSAGE_PLACEHOLDER: "Rédigez votre commentaire" + SUBMIT_COMMENT_BUTTON_TEXT: "Envoyer" + EMAIL_NEW_COMMENT_SUBJECT: "[Nouveau commentaire] de {{ form.value.name|e }}" + THANK_YOU_MESSAGE: "Merci d'avoir rédigé votre commentaire !" + +hr: + PLUGIN_COMMENTS: + ADD_COMMENT: Dodaj komentar + COMMENTS: Komentari + EMAIL_NOT_CONFIGURED: Email adresa nije podešena + NEW_COMMENT_EMAIL_SUBJECT: 'Novi komentar na %1$s' + NEW_COMMENT_EMAIL_BODY: '

    Novi komentar je napisan na %1$s od %3$s (%4$s).

    Stranica:: %2$s

    Tekst: %5$s

    ' + EMAIL_FOOTER: '' + NAME: Ime: + EMAIL: Email: + WRITTEN_ON: Napisano je na + BY: od + NAME_LABEL: "Ime" + NAME_PLACEHOLDER: "Unesite ime" + EMAIL_LABEL: "Email adresa" + EMAIL_PLACEHOLDER: "Unesite email adresu" + MESSAGE_LABEL: "Komentar" + MESSAGE_PLACEHOLDER: "Unesite komentar" + SUBMIT_COMMENT_BUTTON_TEXT: "Pošalji" + EMAIL_NEW_COMMENT_SUBJECT: "[Novi komentar] od {{ form.value.name|e }}" + THANK_YOU_MESSAGE: "Hvala Vam što ste napisali svoj komentar!" + +it: + PLUGIN_COMMENTS: + ADD_COMMENT: Aggiungi un commento + COMMENTS: Commenti + EMAIL_NOT_CONFIGURED: Email non configurata + NEW_COMMENT_EMAIL_SUBJECT: 'Nuovo commento su %1$s' + NEW_COMMENT_EMAIL_BODY: '

    Un nuovo commento è stato postato su %1$s da %3$s (%4$s).

    Pagina: %2$s

    Testo: %5$s

    ' + EMAIL_FOOTER: '' + NAME: Nome: + EMAIL: Email: + WRITTEN_ON: Scritto il + BY: da + NAME_LABEL: "Nome" + NAME_PLACEHOLDER: "Inserisci il tuo nome" + EMAIL_LABEL: "Email" + EMAIL_PLACEHOLDER: "Inserisci il tuo indirizzo email" + MESSAGE_LABEL: "Messaggio" + MESSAGE_PLACEHOLDER: "Inserisci il tuo commento" + SUBMIT_COMMENT_BUTTON_TEXT: "Invia" + EMAIL_NEW_COMMENT_SUBJECT: "[Nuovo commento] da {{ form.value.name|e }}" + THANK_YOU_MESSAGE: "Grazie per il tuo commento!" + +ja: + PLUGIN_COMMENTS: + ADD_COMMENT: コメントする + COMMENTS: コメント + EMAIL_NOT_CONFIGURED: メールアドレスが設定さていません + NEW_COMMENT_EMAIL_SUBJECT: '%1$sの新しいコメント' + NEW_COMMENT_EMAIL_BODY: '

    %1$sに新しいコメントが%3$sから(%4$s)に書かれました。

    ページ : %2$s

    内容 : %5$s

    ' + EMAIL_FOOTER: '' + NAME: 名前 : + EMAIL: メールアドレス : + WRITTEN_ON: 投稿日時 + BY: By + NAME_LABEL: "名前" + NAME_PLACEHOLDER: "名前を入力してください" + EMAIL_LABEL: "メールアドレス" + EMAIL_PLACEHOLDER: "メールアドレスを入力してください" + MESSAGE_LABEL: "コメント" + MESSAGE_PLACEHOLDER: "コメントを入力してください" + SUBMIT_COMMENT_BUTTON_TEXT: "送信" + EMAIL_NEW_COMMENT_SUBJECT: "[新しいコメント] {{ form.value.name|e }}から" + THANK_YOU_MESSAGE: "コメントありがとうございます!" + +nl: + PLUGIN_COMMENTS: + ADD_COMMENT: Reageer + COMMENTS: Reacties + EMAIL_NOT_CONFIGURED: Email niet geconfigureerd + NEW_COMMENT_EMAIL_SUBJECT: 'Nieuwe reactie op %1$s' + NEW_COMMENT_EMAIL_BODY: '

    Er is een nieuwe reactie gemaakt op %1$s door %3$s (%4$s).

    Pagina: %2$s

    Tekst: %5$s

    ' + EMAIL_FOOTER: '' + NAME: 'Naam:' + EMAIL: 'Email:' + WRITTEN_ON: 'Geschreven op' + BY: 'door' + NAME_LABEL: "Naam" + NAME_PLACEHOLDER: "Vul je naam in" + EMAIL_LABEL: "Email" + EMAIL_PLACEHOLDER: "Vul je emailadres in" + MESSAGE_LABEL: "Reactie" + MESSAGE_PLACEHOLDER: "Vul je reactie in" + SUBMIT_COMMENT_BUTTON_TEXT: "Verstuur" + EMAIL_NEW_COMMENT_SUBJECT: "[Nieuwe reactie] van {{ form.value.name|e }}" + THANK_YOU_MESSAGE: "Bedankt voor je reactie!" + +pl: + PLUGIN_COMMENTS: + ADD_COMMENT: Dodaj komentarz + COMMENTS: Komentarzy + EMAIL_NOT_CONFIGURED: Email jest nie skofigurowany + NEW_COMMENT_EMAIL_SUBJECT: 'Nowy komentarz %1$s' + NEW_COMMENT_EMAIL_BODY: '

    Pojawił się nowy komentarz, napisany %1$s przez %3$s (%4$s).

    Strona: %2$s

    Treść: %5$s

    ' + EMAIL_FOOTER: '' + NAME: Imię: + EMAIL: Email: + WRITTEN_ON: Napisany przez + BY: przez + +ru: + PLUGIN_COMMENTS: + ADD_COMMENT: Добавить комментарий + COMMENTS: Комментарии + EMAIL_NOT_CONFIGURED: Email не настроен + NEW_COMMENT_EMAIL_SUBJECT: 'Новый комментарий к %1$s' + NEW_COMMENT_EMAIL_BODY: '

    Новый комментарий на %1$s от %3$s (%4$s).

    Страница: %2$s

    Текст: %5$s

    ' + EMAIL_FOOTER: '' + NAME: Имя: + EMAIL: Email: + WRITTEN_ON: Написан в + BY: от + NAME_LABEL: "Имя" + NAME_PLACEHOLDER: "Введите свое имя" + EMAIL_LABEL: "Email" + EMAIL_PLACEHOLDER: "Введите свой email адрес" + MESSAGE_LABEL: "Комментарий" + MESSAGE_PLACEHOLDER: "Введите свой комментарий" + SUBMIT_COMMENT_BUTTON_TEXT: "Отправить" + EMAIL_NEW_COMMENT_SUBJECT: "[Новый комментарий] от {{ form.value.name|e }}" + THANK_YOU_MESSAGE: "Благодарим за ваш комментарий!" + +pt-br: + PLUGIN_COMMENTS: + ADD_COMMENT: Escreva um comentário + COMMENTS: Comentários + EMAIL_NOT_CONFIGURED: E-mail não configurado + NEW_COMMENT_EMAIL_SUBJECT: 'Novo comentário em %1$s' + NEW_COMMENT_EMAIL_BODY: '

    Um novo comentário foi feito em %1$s por %3$s (%4$s).

    Página: %2$s

    Texto: %5$s

    ' + EMAIL_FOOTER: '' + NAME: Name: + EMAIL: Email: + WRITTEN_ON: Publicado em + BY: por + NAME_LABEL: "Nome" + NAME_PLACEHOLDER: "Escreva seu nome" + EMAIL_LABEL: "E-mail" + EMAIL_PLACEHOLDER: "Escreva seu e-mail. Ex.: seunome@provedor.com.br" + MESSAGE_LABEL: "Comentário" + MESSAGE_PLACEHOLDER: "Escreva seu comentário" + SUBMIT_COMMENT_BUTTON_TEXT: "Enviar" + EMAIL_NEW_COMMENT_SUBJECT: "[Novo comentário] de {{ form.value.name|e }}" + THANK_YOU_MESSAGE: "Obrigada por enviar seu comentário!" + +ro: + PLUGIN_COMMENTS: + ADD_COMMENT: 'Adăugați un comentariu' + COMMENTS: 'Comentarii' + EMAIL_NOT_CONFIGURED: 'Adresa de email nu este configurată' + NEW_COMMENT_EMAIL_SUBJECT: 'Comentariu nou pentru %1$s' + NEW_COMMENT_EMAIL_BODY: '

    Un nou comentariu a fost adăugat la %1$s de către %3$s (%4$s).

    Pagină: %2$s

    Text: %5$s

    ' + EMAIL_FOOTER: '' + NAME: 'Nume:' + EMAIL: 'Adresă de email:' + WRITTEN_ON: 'Scris în data de' + BY: 'de către' + NAME_LABEL: "Numele" + NAME_PLACEHOLDER: "Introduceți numele Dvs." + EMAIL_LABEL: "Email" + EMAIL_PLACEHOLDER: "Introduceți adresa Dvs. de email" + MESSAGE_LABEL: "Comentariu" + MESSAGE_PLACEHOLDER: "Scrieți comentariul Dvs." + SUBMIT_COMMENT_BUTTON_TEXT: "Trimiteți" + EMAIL_NEW_COMMENT_SUBJECT: "[Comentariu nou] from {{ form.value.name|e }}" + THANK_YOU_MESSAGE: "Vă mulțumim pentru comentariu!" + +no: + PLUGIN_COMMENTS: + ADD_COMMENT: Skriv en kommentar + COMMENTS: Kommentarer + EMAIL_NOT_CONFIGURED: Epost er ikke konfigurert + NEW_COMMENT_EMAIL_SUBJECT: 'Ny kommentar på %1$s' + NEW_COMMENT_EMAIL_BODY: '

    En ny kommentar er skrevet på %1$s av %3$s (%4$s).

    Side: %2$s

    Tekst: %5$s

    ' + EMAIL_FOOTER: '' + NAME: Navn: + EMAIL: Epost: + WRITTEN_ON: Skrevet på + BY: av + NAME_LABEL: "Navn" + NAME_PLACEHOLDER: "Skriv ditt navn" + EMAIL_LABEL: "Epost" + EMAIL_PLACEHOLDER: "Skriv din epost adresse" + MESSAGE_LABEL: "Kommentar" + MESSAGE_PLACEHOLDER: "Skriv din kommentar" + SUBMIT_COMMENT_BUTTON_TEXT: "Send" + EMAIL_NEW_COMMENT_SUBJECT: "[Ny kommentar] fra {{ form.value.name|e }}" + THANK_YOU_MESSAGE: "Takk for din kommentar!" diff --git a/user/plugins/comments/templates/partials/comments.html.twig b/user/plugins/comments/templates/partials/comments.html.twig new file mode 100644 index 0000000..b1ff904 --- /dev/null +++ b/user/plugins/comments/templates/partials/comments.html.twig @@ -0,0 +1,60 @@ +{% if enable_comments_plugin %} + {% set scope = scope ?: 'data.' %} + +

    {{'PLUGIN_COMMENTS.ADD_COMMENT'|t}}

    + +
    + + {% for field in grav.config.plugins.comments.form.fields %} + {% set value = form.value(field.name) %} + {% if field.evaluateDefault %} + {% set value = evaluate(field.evaluateDefault) %} + {% endif %} + {% if config.plugins.login.enabled and grav.user.authenticated %} + {% if field.name == 'name' %} + + {% elseif field.name == 'email' %} + + {% else %} +
    + {% include "forms/fields/#{field.type}/#{field.type}.html.twig" %} +
    + {% endif %} + {% else %} +
    + {% include "forms/fields/#{field.type}/#{field.type}.html.twig" %} +
    + {% endif %} + {% endfor %} + {% include "forms/fields/formname/formname.html.twig" %} + +
    + {% for button in grav.config.plugins.comments.form.buttons %} + + {% endfor %} +
    + + {{ nonce_field('form', 'form-nonce')|raw }} +
    + +
    {{ form.message }}
    + + {% if grav.twig.comments|length %} + +

    {{'PLUGIN_COMMENTS.COMMENTS'|t}}

    + + + {% for comment in comments|array_reverse %} + + + + {% endfor %} +
    + {{comment.text}} +
    + {{'PLUGIN_COMMENTS.WRITTEN_ON'|t}} {{comment.date|e}} {{'PLUGIN_COMMENTS.BY'|t}} {{comment.author}} +
    + {% endif %} +{% endif %} diff --git a/user/plugins/devtools/CHANGELOG.md b/user/plugins/devtools/CHANGELOG.md new file mode 100644 index 0000000..607b2c2 --- /dev/null +++ b/user/plugins/devtools/CHANGELOG.md @@ -0,0 +1,197 @@ +# v1.5.4 +## 10/26/2021 + +1. [](#improved) + * Moved offline check to CLI flag [#70](https://github.com/getgrav/grav-plugin-devtools/issues/70) + * Updated footer copyrights for Pure Blank + +# v1.5.3 +## 06/16/2021 + +1. [](#bugfix) + * Fixes over-zealous regex that caused duplication in copy tasks [#69](https://github.com/getgrav/grav-plugin-devtools/issues/69) + +# v1.5.2 +## 05/19/2021 + +1. [](#new) + * Added basic TailwindCSS theme [#65](https://github.com/getgrav/grav-plugin-devtools/pull/65) +1. [](#improved) + * Fixed typo [#67](https://github.com/getgrav/grav-plugin-devtools/pull/67) + * Use canonical URLs [#58](https://github.com/getgrav/grav-plugin-devtools/pull/58) + * Replace `theme_config` with `config.theme` [#60](https://github.com/getgrav/grav-plugin-devtools/pull/60) +1. [](#bugfix) + * Fixed a bad path regarding composer install after plugin creation + +# v1.5.1 +## 03/17/2021 + +1. [](#improved) + * Clearer instructions for composer initialization [#62](https://github.com/getgrav/grav-plugin-devtools/pull/62) + * Comment out autoload subscription event by default now that Grav 1.7 is out [#62](https://github.com/getgrav/grav-plugin-devtools/pull/62) + +# v1.5.0 +## 02/18/2021 + +1. [](#new) + * Updated CLI commands for latest standards + * Pass phpstan level 8 tests +1. [](#improved) + * Add default configuration to an inherited theme's YAML file [getgrav/grav-premium-issues#50](https://github.com/getgrav/grav-premium-issues/issues/50) +1. [](#bugfix) + * Output cmd does not correctly show colors [#56](https://github.com/getgrav/grav-plugin-devtools/issues/56) + +# v1.4.2 +## 12/02/2020 + +1. [](#improved) + * User return typehints in plugin.php + * Add proper twig escapes into a new theme + +# v1.4.1 +## 05/20/2020 + +1. [](#improved) + * Make name key Composer 2.0 compatible [#48](https://github.com/getgrav/grav-plugin-devtools/pull/48) +1. [](#bugfix) + * Correct type for themes [#49](https://github.com/getgrav/grav-plugin-devtools/pull/49) + +# v1.4.0 +## 04/27/2020 + +1. [](#new) + * Added new required `slug:` and `type:` attributes to blueprints +1. [](#improved) + * Fixed plugin autoload + +# v1.3.1 +## 02/24/2020 + +1. [](#improved) + * Set `validation: loose` in plugin blueprints by default + * Add Grav 1.6 dependency to all new plugins and themes + +# v1.3.0 +## 02/13/2020 + +1. [](#improved) + * Added composer-based autoloader to the `new-plugin` command + +# v1.2.4 +## 11/06/2019 + +1. [](#improved) + * Added the ability to use devtools without an online connection to GPM +1. [](#bugfix) + * Regression fix for missing `theme_config` in pure-blank [#45](https://github.com/getgrav/grav-plugin-devtools/issues/45) + +# v1.2.3 +## 06/20/2019 + +1. [](#improved) + * pure-blank: Use new 'deferred' blocks for header + * pure-blank: Use `home_url` variable + * pure-blank: Improved `README.md.twig` + +# v1.2.2 +## 04/21/2019 + +1. [](#bugfix) + * Add Github username field to new-theme template [#39](https://github.com/getgrav/grav-plugin-devtools/pull/39) + +# v1.2.1 +## 08/04/2018 + +1. [](#bugfix) + * Fixed incorrect folder name as a result of renaming typo of `inheritence` to `inheritance` [#32](https://github.com/getgrav/grav-plugin-devtools/issues/32) + +# v1.2.0 +## 07/25/2018 + +1. [](#new) + * Internationalization for blank plugin component [#30](https://github.com/getgrav/grav-plugin-devtools/issues/30) +1. [](#improved) + * Added a new check for reserved PHP words [#7](https://github.com/getgrav/grav-plugin-devtools/issues/7) + * Improved regex for valid emails [#21](https://github.com/getgrav/grav-plugin-devtools/issues/21) +1. [](#bugfix) + * Fix broken renaming when doing a theme 'copy' + * Typos [#31](https://github.com/getgrav/grav-plugin-devtools/pull/31) + +# v1.1.1 +## 03/29/2018 + +1. [](#bugfix) + * Fixed theme inheritance bug [#25](https://github.com/getgrav/grav-plugin-devtools/pull/25) + +# v1.1.0 +## 03/29/2018 + +1. [](#new) + * Added new Theme `copy` option to create a new theme from another +1. [](#improved) + * Stop flushing GPM cache on each call to speed things up considerably! +1. [](#bugfix) + * Updated README.md [#23](https://github.com/getgrav/grav-plugin-devtools/pull/23) + * Properly extend Theme or Plugin [#24](https://github.com/getgrav/grav-plugin-devtools/pull/24) + +# v1.0.8 +## 10/02/2017 + +1. [](#bugfix) + inherited theme is after new theme [#9](https://github.com/getgrav/grav-plugin-devtools/issues/9) + +# v1.0.7 +## 10/02/2017 + +1. [](#bugfix) + * Various fixes for things that broke with the blueprint generation PR [#20](https://github.com/getgrav/grav-plugin-devtools/issues/20) + +# v1.0.6 +## 09/28/2017 + +1. [](#new) + * Added blueprint generation [#17](https://github.com/getgrav/grav-plugin-devtools/pull/17) +1. [](#improved) + * changed Pure CDN location [#19](https://github.com/getgrav/grav-plugin-devtools/pull/19) +1. [](#bugfix) + * Fixed readme referencing `githubid` [#13](https://github.com/getgrav/grav-plugin-devtools/pull/13) + +# v1.0.5 +## 02/26/2017 + +1. [](#improved) + * Added GitHub ID prompt [#5](https://github.com/getgrav/grav-plugin-devtools/pull/5) +1. [](#bugfix) + * Added missing closing html tag [#12](https://github.com/getgrav/grav-plugin-devtools/pull/12) + +# v1.0.4 +## 10/19/2016 + +1. [](#improved) + * More complete README.md + * Typo in Error template + +# v1.0.3 +## 09/16/2016 + +1. [](#bugfix) + * Removed `Theme` from theme's class causing events to not process - https://github.com/getgrav/grav/issues/1047 + * Typo in README.md + +# v1.0.2 +## 07/20/2016 + +1. [](#bugfix) + * Removed old `header.html.twig` + +# v1.0.1 +## 05/06/2016 + +1. [](#bugfix) + * Fix for Grav 1.0.x + +# v1.0.0 +## 04/19/2016 + +1. [](#new) + * ChangeLog started... diff --git a/user/plugins/devtools/LICENSE b/user/plugins/devtools/LICENSE new file mode 100644 index 0000000..4bb7092 --- /dev/null +++ b/user/plugins/devtools/LICENSE @@ -0,0 +1,21 @@ +The MIT License (MIT) + +Copyright (c) 2016 Grav + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/user/plugins/devtools/README.md b/user/plugins/devtools/README.md new file mode 100644 index 0000000..c785a2b --- /dev/null +++ b/user/plugins/devtools/README.md @@ -0,0 +1,79 @@ +# Grav Devtools Plugin + +The `devtools` is a [Grav](http://github.com/getgrav/grav) Plugin that lets you quickly create a scaffolding for your new plugins and themes. The plugin provides CLI commands that allow for the quick and easy deployment of a sample scaffolding for your new plugin. + +# Installation + +## GPM Installation (Preferred) + +The simplest way to install this plugin is via the [Grav Package Manager (GPM)](http://learn.getgrav.org/advanced/grav-gpm). From the root of your Grav install type: + + bin/gpm install devtools + +## Manual Installation + +If for some reason you can't use GPM you can manually install this plugin. Download the zip version of this repository and unzip it under `/your/site/grav/user/plugins`. Then, rename the folder to `devtools`. + +You should now have all the plugin files under + + /your/site/grav/user/plugins/devtools + +## Configuration + +By default, devtools will perform a check with the online gpm repository to ensure name-collision avoidance. If you wish to not perform this online check, change the devtools.yaml at `user/config/plugins` from `collision_check: true` to `collision_check: false`. + +# Usage + +## Plugin Scaffolding + +To create a new plugin you simply need to run: `bin/plugin devtools new-plugin` and fill in the few questions at the prompts: + +``` +> bin/plugin devtools new-plugin +Enter Plugin Name: MyPlugin +Enter Plugin Description: My New Custom Plugin +Enter Developer Name: Johnny Rotten +Enter GitHub ID (can be blank): pretty-vacant +Enter Developer Email: johnny@rotten.com + +SUCCESS plugin myplugin -> Created Successfully + +Path: /home/johnnyr/webroot/grav-installation/user/plugins/myplugin +``` + +## Theme Scaffolding + +To create a new theme you simply need to run: `bin/plugin devtools new-theme` and fill in the few questions at the prompts: + +``` +> bin/plugin devtools new-theme +Enter Theme Name: MyTheme +Enter Theme Description: My New Custom Theme +Enter Developer Name: Johnny Rotten +Enter GitHub ID (can be blank): pretty-vacant +Enter Developer Email: johnny@rotten.com +Please choose a template type + [pure-blank ] Basic Theme using Pure.css + [inheritance] Inherit from another theme + [copy ] Copy another theme + > pure-blank + +SUCCESS theme mytheme -> Created Successfully + +Path: /home/johnnyr/webroot/grav-installation/user/themes/mytheme +``` + +There are **three template creation options** + +1. `pure-blank` - This is a very basic blank theme that uses the [Pure CSS framework](http://purecss.io/) +2. `inheritance` - This creates a very basic template with minimal files that inherits a base theme. To find out more about theme inheritance, [check out the subject in more details on the Grav Learn site](https://learn.getgrav.org/themes/customization#theme-inheritance). +3. `copy` - This allows you to create a new theme based on an existing theme. This is the simplest way to get started with a new theme by using another theme as the basis. + +## Skipping Online Project Name Collision Checking + +By default, devtools will check your project's name with the existing gpm ecosystem to ensure no collisions. In order to skip this check, add an `--offline` or `-o` to your command: + + `bin/plugin devtools new-theme --offline` +or + + `bin/plugin devtools new-theme -o` diff --git a/user/plugins/devtools/blueprints.yaml b/user/plugins/devtools/blueprints.yaml new file mode 100644 index 0000000..33f8c40 --- /dev/null +++ b/user/plugins/devtools/blueprints.yaml @@ -0,0 +1,41 @@ +name: DevTools +slug: devtools +type: plugin +version: 1.5.4 +description: Plugin and Theme scaffolding utilities +icon: cogs +author: + name: Team Grav + email: devs@getgrav.org + url: http://getgrav.org +homepage: https://github.com/getgrav/grav-plugin-devtools +keywords: devtools, plugin, theme +bugs: https://github.com/getgrav/grav-plugin-devtools/issues +license: MIT + +dependencies: + - { name: grav, version: '>=1.7.0' } + +form: + validation: strict + fields: + enabled: + type: toggle + label: PLUGIN_ADMIN.PLUGIN_STATUS + highlight: 1 + default: 0 + options: + 1: PLUGIN_ADMIN.ENABLED + 0: PLUGIN_ADMIN.DISABLED + validate: + type: bool + collision_check: + type: toggle + label: PLUGIN_DEVTOOLS.COLLISION_CHECK + highlight: 1 + default: 1 + options: + 1: PLUGIN_ADMIN.ENABLED + 0: PLUGIN_ADMIN.DISABLED + validate: + type: bool diff --git a/user/plugins/devtools/classes/DevToolsCommand.php b/user/plugins/devtools/classes/DevToolsCommand.php new file mode 100644 index 0000000..1271f06 --- /dev/null +++ b/user/plugins/devtools/classes/DevToolsCommand.php @@ -0,0 +1,362 @@ +init(); + $grav['uri']->init(); + + $this->inflector = $grav['inflector']; + $this->locator = $grav['locator']; + $this->twig = $grav['twig']; + $this->gpm = new GPM(); + + //Add `theme://` to prevent fail + $this->locator->addPath('theme', '', []); + $this->locator->addPath('plugin', '', []); + $this->locator->addPath('blueprint', '', []); + // $this->config->set('theme', $config->get('themes.' . $name)); + } + + /** + * Backwards compatibility to Grav 1.6. + * + * @return InputInterface + */ + public function getInput(): InputInterface + { + return $this->input; + } + + /** + * Backwards compatibility to Grav 1.6. + * + * @return SymfonyStyle + */ + public function getIO(): SymfonyStyle + { + $output = $this->output; + if (!$output instanceof SymfonyStyle) { + $this->output = $output = new SymfonyStyle($this->input, $this->output); + } + + return $this->output; + } + + /** + * Copies the component type and renames accordingly + * + * @return bool + */ + protected function createComponent(): bool + { + $name = $this->component['name']; + $folder_name = strtolower($this->inflector::hyphenize($name)); + $new_theme = $folder_name; + $type = $this->component['type']; + $grav = Grav::instance(); + $config = $grav['config']; + $current_theme = $config->get('system.pages.theme'); + $template = $this->component['template']; + $source_theme = null; + + if (isset($this->component['copy'])) { + $current_theme = $this->component['copy']; + $source_theme = $this->locator->findResource('themes://' . $current_theme); + $template_folder = $source_theme; + } else { + $template_folder = __DIR__ . "/../components/{$type}/{$template}"; + } + + if ($type === 'blueprint') { + $component_folder = $this->locator->findResource('themes://' . $current_theme) . '/blueprints'; + } else { + $component_folder = $this->locator->findResource($type . 's://') . DS . $folder_name; + } + + if (false === $template_folder) { + $this->output->writeln("Theme {$current_theme} does not exist"); + return false; + } + + if ($template === 'inheritance') { + $parent_theme = $this->component['extends']; + $yaml_file = $this->locator->findResource('themes://' . $parent_theme) . '/' . $parent_theme . '.yaml'; + $this->component['config'] = file_get_contents($yaml_file);; + } + + if (isset($source_theme)) { + /** + * Copy existing theme and regex-replace old stuff with new + */ + + // Get source if a symlink + if (is_link($template_folder)) { + $template_folder = readlink($template_folder); + if (false === $template_folder) { + $this->output->writeln("Theme {$current_theme} is a bad symlink"); + return false; + } + } + + //Copy All files to component folder + try { + Folder::copy($template_folder, $component_folder, '/.git|node_modules/'); + } catch (\Exception $e) { + $this->output->writeln("" . $e->getMessage() . ""); + return false; + } + + // Do some filename renaming + $base_old_filename = $component_folder . '/' . $current_theme; + $base_new_filename = $component_folder . '/' . $new_theme; + @rename( $base_old_filename . '.php', $base_new_filename . '.php'); + @rename( $base_old_filename . '.yaml', $base_new_filename . '.yaml'); + + $camelized_current = $this->inflector::camelize($current_theme); + $camelized_new = $this->inflector::camelize($name); + + $hyphenized_current = $this->inflector::hyphenize($current_theme); + $hyphenized_new = $this->inflector::hyphenize($name); + + $titleized_current = $this->inflector::titleize($current_theme); + $titleized_new = $this->inflector::titleize($name); + + $underscoreized_current = $this->inflector::underscorize($current_theme); + $underscoreized_new = $this->inflector::underscorize($name); + + $variations_regex = [ + ["/$camelized_current/", "/$hyphenized_current/"], + [$camelized_new, $hyphenized_new] + ]; + + if (!in_array("/$titleized_current/", array_values($variations_regex[0]))) { + $current_regex = $variations_regex[0]; + $new_regex = $variations_regex[1]; + $current_regex[] = "/$titleized_current/"; + $new_regex[] = $titleized_new; + $variations_regex = [$current_regex, $new_regex]; + } + + if (!in_array("/$underscoreized_current/", array_values($variations_regex[0]))) { + $current_regex = $variations_regex[0]; + $new_regex = $variations_regex[1]; + $current_regex[] = "/$underscoreized_current/"; + $new_regex[] = $underscoreized_new; + $variations_regex = [$current_regex, $new_regex]; + } + + $regex_array = [ + $new_theme . '.php' => $variations_regex, + 'blueprints.yaml' => $variations_regex, + 'README.md' => $variations_regex, + ]; + + foreach ($regex_array as $filename => $data) { + $filename = $component_folder . '/' . $filename; + if (!file_exists($filename)) { + continue; + } + $file = file_get_contents($filename); + if ($file) { + $file = preg_replace($data[0], $data[1], $file); + } + file_put_contents($filename, $file); + } + + echo $source_theme; + + } else { + /** + * Use components folder and twig processing + */ + //Copy All files to component folder + try { + Folder::copy($template_folder, $component_folder); + } catch (\Exception $e) { + $this->output->writeln("" . $e->getMessage() . ""); + return false; + } + + //Add Twig vars and templates then initialize + $this->twig->twig_vars['component'] = $this->component; + $this->twig->twig_paths[] = $template_folder; + $this->twig->init(); + + //Get all templates of component then process each with twig and save + $templates = Folder::all($component_folder); + + try { + foreach($templates as $templateFile) { + if (Utils::endsWith($templateFile, '.twig') && !Utils::endsWith($templateFile, '.html.twig')) { + $content = $this->twig->processTemplate($templateFile); + $file = File::instance($component_folder . DS . str_replace('.twig', '', $templateFile)); + $file->content($content); + $file->save(); + + //Delete twig template + $file = File::instance($component_folder . DS . $templateFile); + $file->delete(); + } + } + } catch (\Exception $e) { + $this->output->writeln("" . $e->getMessage() . ""); + $this->output->writeln("Rolling back..."); + Folder::delete($component_folder); + $this->output->writeln($type . "creation failed!"); + return false; + } + if ($type !== 'blueprint') { + rename($component_folder . DS . $type . '.php', $component_folder . DS . $folder_name . '.php'); + rename($component_folder . DS . $type . '.yaml', $component_folder . DS . $folder_name . '.yaml'); + } else { + $bpname = $this->inflector::hyphenize($this->component['bpname']); + rename($component_folder . DS . $type . '.yaml', $component_folder . DS . $bpname . '.yaml'); + } + } + + $this->output->writeln(''); + $this->output->writeln('SUCCESS ' . $type . ' ' . $name . ' -> Created Successfully'); + $this->output->writeln(''); + $this->output->writeln('Path: ' . $component_folder . ''); + $this->output->writeln(''); + if ($type === 'plugin') { + $this->output->writeln('Please run `cd ' . $component_folder . '` and `composer update` to initialize the autoloader'); + $this->output->writeln(''); + } + + return true; + } + + /** + * Iterate through all options and validate + * + * @return void + */ + protected function validateOptions(): void + { + foreach (array_filter($this->options) as $type => $value) { + $this->validate($type, $value); + } + } + + /** + * @param string $type + * @param mixed $value + * @return mixed + */ + protected function validate(string $type, $value) + { + switch ($type) { + case 'name': + // Check If name + if ($value === null || trim($value) === '') { + throw new \RuntimeException('Name cannot be empty'); + } + + if (!$this->options['offline']) { + // Check for name collision with online gpm. + if (false !== $this->gpm->findPackage($value)) { + throw new \RuntimeException('Package name exists in GPM'); + } + } else { + $this->output->writeln(''); + $this->output->writeln(' Warning: Please note that by skipping the online check, your project\'s plugin or theme name may conflict with an existing plugin or theme.'); + } + + // Check if it's reserved + if ($this->isReservedWord(strtolower($value))) { + throw new \RuntimeException("\"" . $value . "\" is a reserved word and cannot be used as the name"); + } + + break; + + case 'description': + if($value === null || trim($value) === '') { + throw new \RuntimeException('Description cannot be empty'); + } + + break; + case 'themename': + if($value === null || trim($value) === '') { + throw new \RuntimeException('Theme Name cannot be empty'); + } + + break; + case 'developer': + if ($value === null || trim($value) === '') { + throw new \RuntimeException('Developer\'s Name cannot be empty'); + } + + break; + + case 'githubid': + // GitHubID can be blank, so nothing here + break; + + case 'email': + if (!preg_match('/^(?!(?:(?:\x22?\x5C[\x00-\x7E]\x22?)|(?:\x22?[^\x5C\x22]\x22?)){255,})(?!(?:(?:\x22?\x5C[\x00-\x7E]\x22?)|(?:\x22?[^\x5C\x22]\x22?)){65,}@)(?:(?:[\x21\x23-\x27\x2A\x2B\x2D\x2F-\x39\x3D\x3F\x5E-\x7E]+)|(?:\x22(?:[\x01-\x08\x0B\x0C\x0E-\x1F\x21\x23-\x5B\x5D-\x7F]|(?:\x5C[\x00-\x7F]))*\x22))(?:\.(?:(?:[\x21\x23-\x27\x2A\x2B\x2D\x2F-\x39\x3D\x3F\x5E-\x7E]+)|(?:\x22(?:[\x01-\x08\x0B\x0C\x0E-\x1F\x21\x23-\x5B\x5D-\x7F]|(?:\x5C[\x00-\x7F]))*\x22)))*@(?:(?:(?!.*[^.]{64,})(?:(?:(?:xn--)?[a-z0-9]+(?:-[a-z0-9]+)*\.){1,126}){1,}(?:(?:[a-z][a-z0-9]*)|(?:(?:xn--)[a-z0-9]+))(?:-[a-z0-9]+)*)|(?:\[(?:(?:IPv6:(?:(?:[a-f0-9]{1,4}(?::[a-f0-9]{1,4}){7})|(?:(?!(?:.*[a-f0-9][:\]]){7,})(?:[a-f0-9]{1,4}(?::[a-f0-9]{1,4}){0,5})?::(?:[a-f0-9]{1,4}(?::[a-f0-9]{1,4}){0,5})?)))|(?:(?:IPv6:(?:(?:[a-f0-9]{1,4}(?::[a-f0-9]{1,4}){5}:)|(?:(?!(?:.*[a-f0-9]:){5,})(?:[a-f0-9]{1,4}(?::[a-f0-9]{1,4}){0,3})?::(?:[a-f0-9]{1,4}(?::[a-f0-9]{1,4}){0,3}:)?)))?(?:(?:25[0-5])|(?:2[0-4][0-9])|(?:1[0-9]{2})|(?:[1-9]?[0-9]))(?:\.(?:(?:25[0-5])|(?:2[0-4][0-9])|(?:1[0-9]{2})|(?:[1-9]?[0-9]))){3}))\]))$/iD', $value)) { + throw new \RuntimeException('Not a valid email address'); + } + + break; + } + + return $value; + } + + /** + * @param string $word + * @return bool + */ + public function isReservedWord(string $word): bool + { + return in_array($word, $this->reserved_keywords, true); + } +} diff --git a/user/plugins/devtools/cli/NewBlueprintCommand.php b/user/plugins/devtools/cli/NewBlueprintCommand.php new file mode 100644 index 0000000..f1dee47 --- /dev/null +++ b/user/plugins/devtools/cli/NewBlueprintCommand.php @@ -0,0 +1,88 @@ +setName('new-blueprint') + ->setAliases(['newblueprint','blueprint']) + ->addOption( + 'bpname', + null, + InputOption::VALUE_OPTIONAL, + 'The name of your new Grav theme' + ) + ->addOption( + 'name', + null, + InputOption::VALUE_OPTIONAL, + 'The name of your new Grav theme' + ) + ->addOption( + 'template', + null, + InputOption::VALUE_OPTIONAL, + 'The name/username of the developer' + ) + ->setDescription('Create a blueprint that extend the default.yaml blueprint files') + ->setHelp('The new-blueprint command creates a new blueprint file.'); + } + + /** + * @return int + */ + protected function serve(): int + { + $this->init(); + + $input = $this->getInput(); + $io = $this->getIO(); + + $this->component['type'] = 'blueprint'; + $this->component['template'] = 'modular'; + $this->component['version'] = '0.1.0'; + $this->component['themename'] = 'bonjour'; + + $this->options = [ + 'name' => $input->getOption('name'), + 'bpname' => $input->getOption('bpname'), + 'template' => $input->getOption('template'), + + ]; + + $this->validateOptions(); + + $this->component = array_replace($this->component, $this->options); + + if (!$this->options['template']) { + $question = new ChoiceQuestion('Please choose a template type', ['newtab', 'append']); + + $this->component['template'] = $io->askQuestion($question); + } + if (!$this->options['bpname']) { + $question = new Question('Enter Blueprint Name'); + + $this->component['bpname'] = $io->askQuestion($question); + } + + $this->createComponent(); + + return 0; + } +} diff --git a/user/plugins/devtools/cli/NewPluginCommand.php b/user/plugins/devtools/cli/NewPluginCommand.php new file mode 100644 index 0000000..f57ee23 --- /dev/null +++ b/user/plugins/devtools/cli/NewPluginCommand.php @@ -0,0 +1,146 @@ +setName('new-plugin') + ->setAliases(['newplugin']) + ->addOption( + 'name', + null, + InputOption::VALUE_OPTIONAL, + 'The name of your new Grav plugin' + ) + ->addOption( + 'desc', + null, + InputOption::VALUE_OPTIONAL, + 'A description of your new Grav plugin' + ) + ->addOption( + 'dev', + null, + InputOption::VALUE_OPTIONAL, + 'The name/username of the developer' + ) + ->addOption( + 'github', + null, + InputOption::VALUE_OPTIONAL, + 'The developer\'s GitHub ID' + ) + ->addOption( + 'email', + 'e', + InputOption::VALUE_OPTIONAL, + 'The developer\'s email' + ) + ->addOption( + 'offline', + 'o', + InputOption::VALUE_NONE, + 'Skip online name collision check' + ) + ->setDescription('Creates a new Grav plugin with the basic required files') + ->setHelp('The new-plugin command creates a new Grav instance and performs the creation of a plugin.'); + } + + /** + * @return int + */ + protected function serve(): int + { + $this->init(); + + $input = $this->getInput(); + $io = $this->getIO(); + + $this->component['type'] = 'plugin'; + $this->component['template'] = 'blank'; + $this->component['version'] = '0.1.0'; + + $this->options = [ + 'name' => $input->getOption('name'), + 'description' => $input->getOption('desc'), + 'author' => [ + 'name' => $input->getOption('dev'), + 'email' => $input->getOption('email'), + 'githubid' => $input->getOption('github') + ], + 'offline' => $input->getOption('offline'), + ]; + + $this->validateOptions(); + + $this->component = array_replace($this->component, $this->options); + + if (!$this->options['name']) { + $question = new Question('Enter Plugin Name'); + $question->setValidator(function ($value) { + return $this->validate('name', $value); + }); + + $this->component['name'] = $io->askQuestion($question); + } + + if (!$this->options['description']) { + $question = new Question('Enter Plugin Description'); + $question->setValidator(function ($value) { + return $this->validate('description', $value); + }); + + $this->component['description'] = $io->askQuestion($question); + } + + if (!$this->options['author']['name']) { + $question = new Question('Enter Developer Name'); + $question->setValidator(function ($value) { + return $this->validate('developer', $value); + }); + + $this->component['author']['name'] = $io->askQuestion($question); + } + + + if (!$this->options['author']['githubid']) { + $question = new Question('Enter GitHub ID (can be blank)'); + $question->setValidator(function ($value) { + return $this->validate('githubid', $value); + }); + + $this->component['author']['githubid'] = $io->askQuestion($question); + } + + if (!$this->options['author']['email']) { + $question = new Question('Enter Developer Email'); + $question->setValidator(function ($value) { + return $this->validate('email', $value); + }); + + $this->component['author']['email'] = $io->askQuestion($question); + } + + $this->component['template'] = 'blank'; + + $this->createComponent(); + + return 0; + } + +} diff --git a/user/plugins/devtools/cli/NewThemeCommand.php b/user/plugins/devtools/cli/NewThemeCommand.php new file mode 100644 index 0000000..fb479ef --- /dev/null +++ b/user/plugins/devtools/cli/NewThemeCommand.php @@ -0,0 +1,171 @@ +setName('new-theme') + ->setAliases(['newtheme']) + ->addOption( + 'name', + null, + InputOption::VALUE_OPTIONAL, + 'The name of your new Grav theme' + ) + ->addOption( + 'desc', + null, + InputOption::VALUE_OPTIONAL, + 'A description of your new Grav theme' + ) + ->addOption( + 'dev', + null, + InputOption::VALUE_OPTIONAL, + 'The name/username of the developer' + ) + ->addOption( + 'github', + null, + InputOption::VALUE_OPTIONAL, + 'The developer\'s GitHub ID' + ) + ->addOption( + 'email', + null, + InputOption::VALUE_OPTIONAL, + 'The developer\'s email' + ) + ->addOption( + 'offline', + 'o', + InputOption::VALUE_NONE, + 'Skip online name collision check' + ) + ->setDescription('Creates a new Grav theme with the basic required files') + ->setHelp('The new-theme command creates a new Grav instance and performs the creation of a theme.'); + } + + /** + * @return int + */ + protected function serve(): int + { + $this->init(); + + $input = $this->getInput(); + $io = $this->getIO(); + + $this->component['type'] = 'theme'; + $this->component['template'] = 'blank'; + $this->component['version'] = '0.1.0'; + + $this->options = [ + 'name' => $input->getOption('name'), + 'description' => $input->getOption('desc'), + 'author' => [ + 'name' => $input->getOption('dev'), + 'email' => $input->getOption('email'), + 'githubid' => $input->getOption('github'), + ], + 'offline' => $input->getOption('offline'), + ]; + + $this->validateOptions(); + + $this->component = array_replace($this->component, $this->options); + + if (!$this->options['name']) { + $question = new Question('Enter Theme Name'); + $question->setValidator(function ($value) { + return $this->validate('name', $value); + }); + + $this->component['name'] = $io->askQuestion($question); + } + + if (!$this->options['description']) { + $question = new Question('Enter Theme Description'); + $question->setValidator(function ($value) { + return $this->validate('description', $value); + }); + + $this->component['description'] = $io->askQuestion($question); + } + + if (!$this->options['author']['name']) { + $question = new Question('Enter Developer Name'); + $question->setValidator(function ($value) { + return $this->validate('developer', $value); + }); + + $this->component['author']['name'] = $io->askQuestion($question); + } + + if (!$this->options['author']['githubid']) { + $question = new Question('Enter GitHub ID (can be blank)'); + $question->setValidator(function ($value) { + return $this->validate('githubid', $value); + }); + + $this->component['author']['githubid'] = $io->askQuestion($question); + } + + if (!$this->options['author']['email']) { + $question = new Question('Enter Developer Email'); + $question->setValidator(function ($value) { + return $this->validate('email', $value); + }); + + $this->component['author']['email'] = $io->askQuestion($question); + } + + $question = new ChoiceQuestion( + 'Please choose an option', + ['pure-blank' => 'Basic Theme using Pure.css', 'tailwind' => 'Basic Theme using tailwind.css', 'inheritance' => 'Inherit from another theme', 'copy' => 'Copy another theme'] + ); + $this->component['template'] = $io->askQuestion($question); + + if ($this->component['template'] === 'inheritance') { + $themes = $this->gpm->getInstalledThemes(); + $installedThemes = []; + foreach ($themes as $key => $theme) { + $installedThemes[] = $key; + } + + $question = new ChoiceQuestion('Please choose a theme to extend', $installedThemes); + $this->component['extends'] = $io->askQuestion($question); + } elseif ($this->component['template'] === 'copy') { + $themes = $this->gpm->getInstalledThemes(); + $installedThemes = []; + foreach ($themes as $key => $theme) { + $installedThemes[] = $key; + } + + $question = new ChoiceQuestion( + 'Please choose a theme to copy', + $installedThemes + ); + $this->component['copy'] = $io->askQuestion($question); + } + $this->createComponent(); + + return 0; + } +} diff --git a/user/plugins/devtools/components/blueprint/append/blueprint.yaml.twig b/user/plugins/devtools/components/blueprint/append/blueprint.yaml.twig new file mode 100644 index 0000000..8db427f --- /dev/null +++ b/user/plugins/devtools/components/blueprint/append/blueprint.yaml.twig @@ -0,0 +1,21 @@ +title: {{ component.bpname }} +extends@: + type: default + context: blueprints://pages + +form: + fields: + tabs: + type: tabs + active: 1 + + fields: + content: + fields: + header.an_example_text_field: + type: text + label: Add a number + default: 5 + validate: + required: true + type: int \ No newline at end of file diff --git a/user/plugins/devtools/components/blueprint/newtab/blueprint.yaml.twig b/user/plugins/devtools/components/blueprint/newtab/blueprint.yaml.twig new file mode 100644 index 0000000..d110556 --- /dev/null +++ b/user/plugins/devtools/components/blueprint/newtab/blueprint.yaml.twig @@ -0,0 +1,15 @@ +title: Item +extends@: + type: default + context: blueprints://pages + +form: + fields: + tabs: + fields: + blog: + type: tab + title: {{ component.bpname }} + + fields: + header.mytextfield: \ No newline at end of file diff --git a/user/plugins/devtools/components/plugin/blank/CHANGELOG.md.twig b/user/plugins/devtools/components/plugin/blank/CHANGELOG.md.twig new file mode 100644 index 0000000..973fb27 --- /dev/null +++ b/user/plugins/devtools/components/plugin/blank/CHANGELOG.md.twig @@ -0,0 +1,5 @@ +# v0.1.0 +## {{ "now"|date("m/d/Y") }} + +1. [](#new) + * ChangeLog started... diff --git a/user/plugins/devtools/components/plugin/blank/LICENSE.twig b/user/plugins/devtools/components/plugin/blank/LICENSE.twig new file mode 100644 index 0000000..6f88097 --- /dev/null +++ b/user/plugins/devtools/components/plugin/blank/LICENSE.twig @@ -0,0 +1,21 @@ +The MIT License (MIT) + +Copyright (c) {{ "now"|date("Y") }} {{ component.author.name }} + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/user/plugins/devtools/components/plugin/blank/README.md.twig b/user/plugins/devtools/components/plugin/blank/README.md.twig new file mode 100644 index 0000000..e9cae52 --- /dev/null +++ b/user/plugins/devtools/components/plugin/blank/README.md.twig @@ -0,0 +1,59 @@ +{% set component_title = (component.name|titleize) %} +{% set component_hyphenated = (component.name|hyphenize) %} +{% set developer_hyphenated = (component.author.githubid|hyphenize) %} +# {{ component_title }} Plugin + +**This README.md file should be modified to describe the features, installation, configuration, and general usage of the plugin.** + +The **{{ component_title }}** Plugin is an extension for [Grav CMS](http://github.com/getgrav/grav). {{ component.description }} + +## Installation + +Installing the {{ component_title }} plugin can be done in one of three ways: The GPM (Grav Package Manager) installation method lets you quickly install the plugin with a simple terminal command, the manual method lets you do so via a zip file, and the admin method lets you do so via the Admin Plugin. + +### GPM Installation (Preferred) + +To install the plugin via the [GPM](http://learn.getgrav.org/advanced/grav-gpm), through your system's terminal (also called the command line), navigate to the root of your Grav-installation, and enter: + + bin/gpm install {{ component_hyphenated }} + +This will install the {{ component_title }} plugin into your `/user/plugins`-directory within Grav. Its files can be found under `/your/site/grav/user/plugins/{{ component_hyphenated }}`. + +### Manual Installation + +To install the plugin manually, download the zip-version of this repository and unzip it under `/your/site/grav/user/plugins`. Then rename the folder to `{{ component_hyphenated }}`. You can find these files on [GitHub](https://github.com/{{ developer_hyphenated }}/grav-plugin-{{ component_hyphenated }}) or via [GetGrav.org](http://getgrav.org/downloads/plugins#extras). + +You should now have all the plugin files under + + /your/site/grav/user/plugins/{{ component_hyphenated }} + +> NOTE: This plugin is a modular component for Grav which may require other plugins to operate, please see its [blueprints.yaml-file on GitHub](https://github.com/{{ developer_hyphenated }}/grav-plugin-{{ component_hyphenated }}/blob/master/blueprints.yaml). + +### Admin Plugin + +If you use the Admin Plugin, you can install the plugin directly by browsing the `Plugins`-menu and clicking on the `Add` button. + +## Configuration + +Before configuring this plugin, you should copy the `user/plugins/{{ component_hyphenated }}/{{ component_hyphenated }}.yaml` to `user/config/plugins/{{ component_hyphenated }}.yaml` and only edit that copy. + +Here is the default configuration and an explanation of available options: + +```yaml +enabled: true +``` + +Note that if you use the Admin Plugin, a file with your configuration named {{component_hyphenated}}.yaml will be saved in the `user/config/plugins/`-folder once the configuration is saved in the Admin. + +## Usage + +**Describe how to use the plugin.** + +## Credits + +**Did you incorporate third-party code? Want to thank somebody?** + +## To Do + +- [ ] Future plans, if any + diff --git a/user/plugins/devtools/components/plugin/blank/blueprints.yaml.twig b/user/plugins/devtools/components/plugin/blank/blueprints.yaml.twig new file mode 100644 index 0000000..bd0defd --- /dev/null +++ b/user/plugins/devtools/components/plugin/blank/blueprints.yaml.twig @@ -0,0 +1,37 @@ +{% set githubid = component.author.githubid ?: component.author.name|hyphenize -%} +name: {{ component.name|titleize }} +slug: {{ component.name|hyphenize }} +type: plugin +version: 0.1.0 +description: {{ component.description }} +icon: plug +author: + name: {{ component.author.name }} + email: {{ component.author.email }} +homepage: https://github.com/{{ githubid }}/grav-plugin-{{ component.name|hyphenize }} +demo: http://demo.yoursite.com +keywords: grav, plugin, etc +bugs: https://github.com/{{ githubid }}/grav-plugin-{{ component.name|hyphenize }}/issues +docs: https://github.com/{{ githubid }}/grav-plugin-{{ component.name|hyphenize }}/blob/develop/README.md +license: MIT + +dependencies: + - { name: grav, version: '>=1.6.0' } + +form: + validation: loose + fields: + enabled: + type: toggle + label: PLUGIN_ADMIN.PLUGIN_STATUS + highlight: 1 + default: 0 + options: + 1: PLUGIN_ADMIN.ENABLED + 0: PLUGIN_ADMIN.DISABLED + validate: + type: bool + text_var: + type: text + label: PLUGIN_{{ component.name|underscorize|upper }}.TEXT_VARIABLE + help: PLUGIN_{{ component.name|underscorize|upper }}.TEXT_VARIABLE_HELP diff --git a/user/plugins/devtools/components/plugin/blank/classes/.gitkeep b/user/plugins/devtools/components/plugin/blank/classes/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/user/plugins/devtools/components/plugin/blank/composer.json.twig b/user/plugins/devtools/components/plugin/blank/composer.json.twig new file mode 100644 index 0000000..14cfe4f --- /dev/null +++ b/user/plugins/devtools/components/plugin/blank/composer.json.twig @@ -0,0 +1,30 @@ +{% set githubid = component.author.githubid ?: component.author.name|hyphenize -%} +{ + "name": "{{ githubid|lower }}/{{ component.name|hyphenize }}", + "type": "grav-plugin", + "description": "{{ component.description }}", + "keywords": ["plugin"], + "homepage": "https://github.com/{{ githubid }}/grav-plugin-{{ component.name|hyphenize }}", + "license": "MIT", + "authors": [ + { + "name": "{{ component.author.name }}", + "email": "{{ component.author.email }}", + "role": "Developer" + } + ], + "require": { + "php": ">=7.1.3" + }, + "autoload": { + "psr-4": { + "Grav\\Plugin\\{{ component.name|camelize }}\\": "classes/" + }, + "classmap": ["{{ component.name|hyphenize }}.php"] + }, + "config": { + "platform": { + "php": "7.1.3" + } + } +} diff --git a/user/plugins/devtools/components/plugin/blank/languages.yaml.twig b/user/plugins/devtools/components/plugin/blank/languages.yaml.twig new file mode 100644 index 0000000..855cd0e --- /dev/null +++ b/user/plugins/devtools/components/plugin/blank/languages.yaml.twig @@ -0,0 +1,4 @@ +en: + PLUGIN_{{ component.name|underscorize|upper }}: + TEXT_VARIABLE: Text Variable + TEXT_VARIABLE_HELP: Text to add to the top of a page diff --git a/user/plugins/devtools/components/plugin/blank/plugin.php.twig b/user/plugins/devtools/components/plugin/blank/plugin.php.twig new file mode 100644 index 0000000..0daecc4 --- /dev/null +++ b/user/plugins/devtools/components/plugin/blank/plugin.php.twig @@ -0,0 +1,59 @@ + [ + // Uncomment following line when plugin requires Grav < 1.7 + // ['autoload', 100000], + ['onPluginsInitialized', 0] + ] + ]; + } + + /** + * Composer autoload + * + * @return ClassLoader + */ + public function autoload(): ClassLoader + { + return require __DIR__ . '/vendor/autoload.php'; + } + + /** + * Initialize the plugin + */ + public function onPluginsInitialized(): void + { + // Don't proceed if we are in the admin plugin + if ($this->isAdmin()) { + return; + } + + // Enable the main events we are interested in + $this->enable([ + // Put your main events here + ]); + } +} diff --git a/user/plugins/devtools/components/plugin/blank/plugin.yaml.twig b/user/plugins/devtools/components/plugin/blank/plugin.yaml.twig new file mode 100644 index 0000000..55e2f2e --- /dev/null +++ b/user/plugins/devtools/components/plugin/blank/plugin.yaml.twig @@ -0,0 +1,2 @@ +enabled: true +text_var: Custom Text added by the **{{ component.name|titleize }}** plugin (disable plugin to remove) diff --git a/user/plugins/devtools/components/theme/inheritance/CHANGELOG.md.twig b/user/plugins/devtools/components/theme/inheritance/CHANGELOG.md.twig new file mode 100644 index 0000000..973fb27 --- /dev/null +++ b/user/plugins/devtools/components/theme/inheritance/CHANGELOG.md.twig @@ -0,0 +1,5 @@ +# v0.1.0 +## {{ "now"|date("m/d/Y") }} + +1. [](#new) + * ChangeLog started... diff --git a/user/plugins/devtools/components/theme/inheritance/LICENSE.twig b/user/plugins/devtools/components/theme/inheritance/LICENSE.twig new file mode 100644 index 0000000..6f88097 --- /dev/null +++ b/user/plugins/devtools/components/theme/inheritance/LICENSE.twig @@ -0,0 +1,21 @@ +The MIT License (MIT) + +Copyright (c) {{ "now"|date("Y") }} {{ component.author.name }} + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/user/plugins/devtools/components/theme/inheritance/README.md.twig b/user/plugins/devtools/components/theme/inheritance/README.md.twig new file mode 100644 index 0000000..ee5c0b7 --- /dev/null +++ b/user/plugins/devtools/components/theme/inheritance/README.md.twig @@ -0,0 +1,7 @@ +# {{ component.name|titleize }} Theme + +The **{{ component.name|titleize }}** Theme is for [Grav CMS](http://github.com/getgrav/grav). This README.md file should be modified to describe the features, installation, configuration, and general usage of this theme. + +## Description + +{{ component.description }} diff --git a/user/plugins/devtools/components/theme/inheritance/blueprints.yaml.twig b/user/plugins/devtools/components/theme/inheritance/blueprints.yaml.twig new file mode 100644 index 0000000..91700a3 --- /dev/null +++ b/user/plugins/devtools/components/theme/inheritance/blueprints.yaml.twig @@ -0,0 +1,19 @@ +{% set githubid = component.author.githubid ?: component.author.name|hyphenize -%} +name: {{ component.name|titleize }} +slug: {{ component.name|hyphenize }} +type: theme +version: 0.1.0 +description: {{ component.description }} +icon: rebel +author: + name: {{ component.author.name }} + email: {{ component.author.email }} +homepage: https://github.com/{{ githubid }}/grav-theme-{{ component.name|hyphenize }} +demo: http://demo.yoursite.com +keywords: grav, theme, etc +bugs: https://github.com/{{ githubid }}/grav-theme-{{ component.name|hyphenize }}/issues +readme: https://github.com/{{ githubid }}/grav-theme-{{ component.name|hyphenize }}/blob/develop/README.md +license: MIT + +dependencies: + - { name: grav, version: '>=1.6.0' } diff --git a/user/plugins/devtools/components/theme/inheritance/css/.gitkeep b/user/plugins/devtools/components/theme/inheritance/css/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/user/plugins/devtools/components/theme/inheritance/js/.gitkeep b/user/plugins/devtools/components/theme/inheritance/js/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/user/plugins/devtools/components/theme/inheritance/screenshot.jpg b/user/plugins/devtools/components/theme/inheritance/screenshot.jpg new file mode 100644 index 0000000000000000000000000000000000000000..5205ca51a97ac3299d523099ef55e29a5228f670 GIT binary patch literal 15428 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 literal 0 HcmV?d00001 diff --git a/user/plugins/devtools/components/theme/inheritance/templates/.gitkeep b/user/plugins/devtools/components/theme/inheritance/templates/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/user/plugins/devtools/components/theme/inheritance/theme.php.twig b/user/plugins/devtools/components/theme/inheritance/theme.php.twig new file mode 100644 index 0000000..c05016c --- /dev/null +++ b/user/plugins/devtools/components/theme/inheritance/theme.php.twig @@ -0,0 +1,9 @@ +1YDr_`md&!GCK1 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 literal 0 HcmV?d00001 diff --git a/user/plugins/devtools/components/theme/pure-blank/CHANGELOG.md.twig b/user/plugins/devtools/components/theme/pure-blank/CHANGELOG.md.twig new file mode 100644 index 0000000..973fb27 --- /dev/null +++ b/user/plugins/devtools/components/theme/pure-blank/CHANGELOG.md.twig @@ -0,0 +1,5 @@ +# v0.1.0 +## {{ "now"|date("m/d/Y") }} + +1. [](#new) + * ChangeLog started... diff --git a/user/plugins/devtools/components/theme/pure-blank/LICENSE.twig b/user/plugins/devtools/components/theme/pure-blank/LICENSE.twig new file mode 100644 index 0000000..6f88097 --- /dev/null +++ b/user/plugins/devtools/components/theme/pure-blank/LICENSE.twig @@ -0,0 +1,21 @@ +The MIT License (MIT) + +Copyright (c) {{ "now"|date("Y") }} {{ component.author.name }} + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/user/plugins/devtools/components/theme/pure-blank/README.md.twig b/user/plugins/devtools/components/theme/pure-blank/README.md.twig new file mode 100644 index 0000000..ee5c0b7 --- /dev/null +++ b/user/plugins/devtools/components/theme/pure-blank/README.md.twig @@ -0,0 +1,7 @@ +# {{ component.name|titleize }} Theme + +The **{{ component.name|titleize }}** Theme is for [Grav CMS](http://github.com/getgrav/grav). This README.md file should be modified to describe the features, installation, configuration, and general usage of this theme. + +## Description + +{{ component.description }} diff --git a/user/plugins/devtools/components/theme/pure-blank/blueprints.yaml.twig b/user/plugins/devtools/components/theme/pure-blank/blueprints.yaml.twig new file mode 100644 index 0000000..b127d15 --- /dev/null +++ b/user/plugins/devtools/components/theme/pure-blank/blueprints.yaml.twig @@ -0,0 +1,33 @@ +{% set githubid = component.author.githubid ?: component.author.name|hyphenize -%} +name: {{ component.name|titleize }} +slug: {{ component.name|hyphenize }} +type: theme +version: 0.1.0 +description: {{ component.description }} +icon: rebel +author: + name: {{ component.author.name }} + email: {{ component.author.email }} +homepage: https://github.com/{{ githubid }}/grav-theme-{{ component.name|hyphenize }} +demo: http://demo.yoursite.com +keywords: grav, theme, etc +bugs: https://github.com/{{ githubid }}/grav-theme-{{ component.name|hyphenize }}/issues +readme: https://github.com/{{ githubid }}/grav-theme-{{ component.name|hyphenize }}/blob/develop/README.md +license: MIT + +dependencies: + - { name: grav, version: '>=1.6.0' } + +form: + validation: loose + fields: + dropdown.enabled: + type: toggle + label: Dropdown in Menu + highlight: 1 + default: 1 + options: + 1: PLUGIN_ADMIN.ENABLED + 0: PLUGIN_ADMIN.DISABLED + validate: + type: bool diff --git a/user/plugins/devtools/components/theme/pure-blank/css/custom.css b/user/plugins/devtools/components/theme/pure-blank/css/custom.css new file mode 100644 index 0000000..e796328 --- /dev/null +++ b/user/plugins/devtools/components/theme/pure-blank/css/custom.css @@ -0,0 +1,175 @@ +/* Core Stuff */ +* { + -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; + box-sizing: border-box; +} + +body { + font-size: 1rem; + line-height: 1.7; + color: #606d6e; +} + +h1, +h2, +h3, +h4, +h5, +h6 { + color: #454B4D; +} + +a { + color: #1F8CD6; + text-decoration: none; +} + +a:hover { + color: #175E91; +} + +pre { + background: #F0F0F0; + margin: 1rem 0; + border-radius: 2px; +} + +blockquote { + border-left: 10px solid #eee; + margin: 0; + padding: 0 2rem; +} + +/* Utility Classes */ +.wrapper { + margin: 0 3rem; +} + +.padding { + padding: 3rem 1rem; +} + +.left { + float: left; +} + +.right { + float: right +} + +.text-center { + text-align: center; +} + +.text-right { + text-align: right; +} + +.text-left { + text-align: left; +} + +/* Content Styling */ +.header .padding { + padding: 1rem 0; +} + +.header { + background-color: #1F8DD6; + color: #eee; +} + +.header a { + color: #fff; +} + +.header .logo { + font-size: 1.7rem; + text-transform: uppercase; +} + +.footer { + background-color: #eee; +} + +/* Menu Settings */ +.main-nav ul { + text-align: center; + letter-spacing: -1em; + margin: 0; + padding: 0; +} + +.main-nav ul li { + display: inline-block; + letter-spacing: normal; +} + +.main-nav ul li a { + position: relative; + display: block; + line-height: 45px; + color: #fff; + padding: 0 20px; + white-space: nowrap; +} + +.main-nav > ul > li > a { + border-radius: 2px; +} + +/*Active dropdown nav item */ +.main-nav ul li:hover > a { + background-color: #175E91; +} + +/* Selected Dropdown nav item */ +.main-nav ul li.selected > a { + background-color: #fff; + color: #175E91; +} + +/* Dropdown CSS */ +.main-nav ul li {position: relative;} + +.main-nav ul li ul { + position: absolute; + background-color: #1F8DD6; + min-width: 100%; + text-align: left; + z-index: 999; + + display: none; +} +.main-nav ul li ul li { + display: block; +} + +/* Dropdown CSS */ +.main-nav ul li ul ul { + left: 100%; + top: 0; +} + +/* Active on Hover */ +.main-nav li:hover > ul { + display: block; +} + +/* Child Indicator */ +.main-nav .has-children > a { + padding-right: 30px; +} +.main-nav .has-children > a:after { + font-family: FontAwesome; + content: '\f107'; + position: absolute; + display: inline-block; + right: 8px; + top: 0; +} + +.main-nav .has-children .has-children > a:after { + content: '\f105'; +} diff --git a/user/plugins/devtools/components/theme/pure-blank/fonts/.gitkeep b/user/plugins/devtools/components/theme/pure-blank/fonts/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/user/plugins/devtools/components/theme/pure-blank/images/logo.png b/user/plugins/devtools/components/theme/pure-blank/images/logo.png new file mode 100644 index 0000000000000000000000000000000000000000..64be1a96336228bbcb5dc3604ce7dbbe1e8d99c6 GIT binary patch literal 8714 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 literal 0 HcmV?d00001 diff --git a/user/plugins/devtools/components/theme/pure-blank/js/.gitkeep b/user/plugins/devtools/components/theme/pure-blank/js/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/user/plugins/devtools/components/theme/pure-blank/screenshot.jpg b/user/plugins/devtools/components/theme/pure-blank/screenshot.jpg new file mode 100644 index 0000000000000000000000000000000000000000..5205ca51a97ac3299d523099ef55e29a5228f670 GIT binary patch literal 15428 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 literal 0 HcmV?d00001 diff --git a/user/plugins/devtools/components/theme/pure-blank/templates/default.html.twig b/user/plugins/devtools/components/theme/pure-blank/templates/default.html.twig new file mode 100644 index 0000000..1e97738 --- /dev/null +++ b/user/plugins/devtools/components/theme/pure-blank/templates/default.html.twig @@ -0,0 +1,5 @@ +{% extends 'partials/base.html.twig' %} + +{% block content %} + {{ page.content|raw }} +{% endblock %} diff --git a/user/plugins/devtools/components/theme/pure-blank/templates/error.html.twig b/user/plugins/devtools/components/theme/pure-blank/templates/error.html.twig new file mode 100644 index 0000000..c945464 --- /dev/null +++ b/user/plugins/devtools/components/theme/pure-blank/templates/error.html.twig @@ -0,0 +1,8 @@ +{% extends 'partials/base.html.twig' %} + +{% block content %} +
    +

    Error!

    + {{ page.content|raw }} +
    +{% endblock %} diff --git a/user/plugins/devtools/components/theme/pure-blank/templates/partials/base.html.twig b/user/plugins/devtools/components/theme/pure-blank/templates/partials/base.html.twig new file mode 100644 index 0000000..c4e7e60 --- /dev/null +++ b/user/plugins/devtools/components/theme/pure-blank/templates/partials/base.html.twig @@ -0,0 +1,70 @@ + + + +{% block head %} + + {% if header.title %}{{ header.title|e }} | {% endif %}{{ site.title|e }} + + + + {% include 'partials/metadata.html.twig' %} + + + +{% endblock head %} + +{% block stylesheets %} + {% do assets.addCss('https://unpkg.com/purecss@1.0.0/build/pure-min.css', 100) %} + {% do assets.addCss('https://maxcdn.bootstrapcdn.com/font-awesome/4.7.0/css/font-awesome.min.css', 99) %} + {% do assets.addCss('theme://css/custom.css', 98) %} +{% endblock %} + +{% block javascripts %} + {% do assets.addJs('jquery', 100) %} +{% endblock %} + +{% block assets deferred %} + {{ assets.css()|raw }} + {{ assets.js()|raw }} +{% endblock %} + + + +{% block header %} +
    +
    + + {% block header_navigation %} + + {% endblock %} +
    +
    +{% endblock %} + +{% block body %} +
    +
    + {% block content %}{% endblock %} +
    +
    +{% endblock %} + +{% block footer %} + +{% endblock %} + +{% block bottom %} + {{ assets.js('bottom')|raw }} +{% endblock %} + + + diff --git a/user/plugins/devtools/components/theme/pure-blank/templates/partials/navigation.html.twig b/user/plugins/devtools/components/theme/pure-blank/templates/partials/navigation.html.twig new file mode 100644 index 0000000..28df6aa --- /dev/null +++ b/user/plugins/devtools/components/theme/pure-blank/templates/partials/navigation.html.twig @@ -0,0 +1,47 @@ +{% macro loop(page) %} + {% for p in page.children.visible %} + {% set current_page = (p.active or p.activeChild) ? 'selected' : '' %} + {% if p.children.visible.count > 0 %} +
  1. + + {% if p.header.icon %}{% endif %} + {{ p.menu|e }} + +
      + {{ _self.loop(p) }} +
    +
  2. + {% else %} +
  3. + + {% if p.header.icon %}{% endif %} + {{ p.menu|e }} + +
  4. + {% endif %} + {% endfor %} +{% endmacro %} + + diff --git a/user/plugins/devtools/components/theme/pure-blank/theme.php.twig b/user/plugins/devtools/components/theme/pure-blank/theme.php.twig new file mode 100644 index 0000000..332b164 --- /dev/null +++ b/user/plugins/devtools/components/theme/pure-blank/theme.php.twig @@ -0,0 +1,9 @@ +1YDr_`md&!GCK1 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 literal 0 HcmV?d00001 diff --git a/user/plugins/devtools/components/theme/tailwind/CHANGELOG.md.twig b/user/plugins/devtools/components/theme/tailwind/CHANGELOG.md.twig new file mode 100644 index 0000000..37256e0 --- /dev/null +++ b/user/plugins/devtools/components/theme/tailwind/CHANGELOG.md.twig @@ -0,0 +1,5 @@ +# v0.1.0 +## {{ "now"|date("m/d/Y") }} + +1. [](#new) + * ChangeLog started... diff --git a/user/plugins/devtools/components/theme/tailwind/LICENSE.twig b/user/plugins/devtools/components/theme/tailwind/LICENSE.twig new file mode 100644 index 0000000..015a4ae --- /dev/null +++ b/user/plugins/devtools/components/theme/tailwind/LICENSE.twig @@ -0,0 +1,21 @@ +The MIT License (MIT) + +Copyright (c) {{ "now"|date("Y") }} {{ component.author.name }} + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/user/plugins/devtools/components/theme/tailwind/README.md.twig b/user/plugins/devtools/components/theme/tailwind/README.md.twig new file mode 100644 index 0000000..c6d05fd --- /dev/null +++ b/user/plugins/devtools/components/theme/tailwind/README.md.twig @@ -0,0 +1,41 @@ +# {{ component.name|titleize }} Theme + +The **{{ component.name|titleize }}** Theme is for [Grav CMS](http://github.com/getgrav/grav). This README.md file should be modified to describe the features, installation, configuration, and general usage of this theme. + +## Description + +{{ component.description }} + +# Instructions + +Run + +`npm install` to setup tailwind and required plugins + +How to build tailwind: + +Development: + +`npm run build` for single time compiling + +`npm run watch` for constant development + +Production: + +`npm run prod` for production compiling. **Don't forget to turn on production mode in the theme config**# Instructions + +Run + +`npm install` to setup tailwind and required plugins + +How to build tailwind: + +Development: + +`npm run build` for single time compiling + +`npm run watch` for constant development + +Production: + +`npm run prod` for production compiling. **Don't forget to turn on production mode in the theme config** diff --git a/user/plugins/devtools/components/theme/tailwind/blueprints.yaml.twig b/user/plugins/devtools/components/theme/tailwind/blueprints.yaml.twig new file mode 100644 index 0000000..a592fb7 --- /dev/null +++ b/user/plugins/devtools/components/theme/tailwind/blueprints.yaml.twig @@ -0,0 +1,43 @@ +{% set githubid = component.author.githubid ?: component.author.name|hyphenize -%} +name: {{ component.name|titleize }} +slug: {{ component.name|hyphenize }} +type: theme +version: 0.1.0 +description: {{ component.description }} +icon: rebel +author: + name: {{ component.author.name }} + email: {{ component.author.email }} +homepage: https://github.com/{{ githubid }}/grav-theme-{{ component.name|hyphenize }} +demo: http://demo.yoursite.com +keywords: grav, theme, etc +bugs: https://github.com/{{ githubid }}/grav-theme-{{ component.name|hyphenize }}/issues +readme: https://github.com/{{ githubid }}/grav-theme-{{ component.name|hyphenize }}/blob/develop/README.md +license: MIT + +dependencies: + - { name: grav, version: '>=1.6.0' } + +form: + validation: loose + fields: + dropdown.enabled: + type: toggle + label: Dropdown in Menu + highlight: 1 + default: 1 + options: + 1: PLUGIN_ADMIN.ENABLED + 0: PLUGIN_ADMIN.DISABLED + validate: + type: bool + production: + type: toggle + label: Production Mode + highlight: 1 + default: 1 + options: + 1: PLUGIN_ADMIN.ENABLED + 0: PLUGIN_ADMIN.DISABLED + validate: + type: bool diff --git a/user/plugins/devtools/components/theme/tailwind/css/site.css b/user/plugins/devtools/components/theme/tailwind/css/site.css new file mode 100644 index 0000000..f578962 --- /dev/null +++ b/user/plugins/devtools/components/theme/tailwind/css/site.css @@ -0,0 +1,5 @@ +/*@import 'yourcssfile.css';*/ + +@tailwind base; +@tailwind components; +@tailwind utilities; diff --git a/user/plugins/devtools/components/theme/tailwind/fonts/.gitkeep b/user/plugins/devtools/components/theme/tailwind/fonts/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/user/plugins/devtools/components/theme/tailwind/images/logo.png b/user/plugins/devtools/components/theme/tailwind/images/logo.png new file mode 100644 index 0000000000000000000000000000000000000000..64be1a96336228bbcb5dc3604ce7dbbe1e8d99c6 GIT binary patch literal 8714 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 literal 0 HcmV?d00001 diff --git a/user/plugins/devtools/components/theme/tailwind/js/.gitkeep b/user/plugins/devtools/components/theme/tailwind/js/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/user/plugins/devtools/components/theme/tailwind/languages/en.yaml.twig b/user/plugins/devtools/components/theme/tailwind/languages/en.yaml.twig new file mode 100644 index 0000000..2b48ba2 --- /dev/null +++ b/user/plugins/devtools/components/theme/tailwind/languages/en.yaml.twig @@ -0,0 +1,2 @@ +THEME_{{ component.name|hyphenize|replace({'-': '_'})|upper }}: + ERROR: 'Error!' diff --git a/user/plugins/devtools/components/theme/tailwind/package.json.twig b/user/plugins/devtools/components/theme/tailwind/package.json.twig new file mode 100644 index 0000000..902fac2 --- /dev/null +++ b/user/plugins/devtools/components/theme/tailwind/package.json.twig @@ -0,0 +1,30 @@ +{ + "name": "{{ component.name }}", + "repository": "", + "private": true, + "version": "0.1.0", + "description": "", + "main": "index.js", + "scripts": { + "build": "postcss css/site.css -o dist/css/site.css --verbose", + "watch": "postcss css/site.css -o dist/css/site.css --watch --verbose", + "prod" : "postcss css/site.css -o dist/css/site.min.css --env production --verbose" + }, + "dependencies": {}, + "devDependencies": { + "alpinejs": "^2.8.2", + "tailwindcss": "^2.1.2", + "@tailwindcss/forms": "^0.3.2", + "@tailwindcss/typography": "^0.4.0", + "tailwindcss-debug-screens": "^2.0.0", + "autoprefixer": "^10.2.5", + "precss": "^4.0.0", + "cssnano": "^4.1.11", + "postcss": "^8.2.9", + "postcss-cli": "^8.3.1", + "postcss-import": "^14.0.1", + "postcss-nested": "^5.0.5", + "postcss-hexrgba": "^2.0.1", + "postcss-color-function": "^4.1.0" + } +} diff --git a/user/plugins/devtools/components/theme/tailwind/postcss.config.js b/user/plugins/devtools/components/theme/tailwind/postcss.config.js new file mode 100644 index 0000000..655e577 --- /dev/null +++ b/user/plugins/devtools/components/theme/tailwind/postcss.config.js @@ -0,0 +1,11 @@ +module.exports = { + plugins: { + 'postcss-import': {}, + 'precss': {}, + 'tailwindcss': {}, + 'postcss-nested': {}, + 'autoprefixer': {}, + ...process.env.NODE_ENV === 'production' + ? {'cssnano': {}} : {} + }, +} diff --git a/user/plugins/devtools/components/theme/tailwind/screenshot.jpg b/user/plugins/devtools/components/theme/tailwind/screenshot.jpg new file mode 100644 index 0000000000000000000000000000000000000000..5205ca51a97ac3299d523099ef55e29a5228f670 GIT binary patch literal 15428 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 literal 0 HcmV?d00001 diff --git a/user/plugins/devtools/components/theme/tailwind/tailwind.config.js.twig b/user/plugins/devtools/components/theme/tailwind/tailwind.config.js.twig new file mode 100644 index 0000000..27a4484 --- /dev/null +++ b/user/plugins/devtools/components/theme/tailwind/tailwind.config.js.twig @@ -0,0 +1,70 @@ +const { colors } = require('tailwindcss/defaultTheme'); + +module.exports = { + purge: [ + '../../config/**/*.yaml', + '../../pages/**/*.md', + './blueprints/**/*.yaml', + './js/**/*.js', + './templates/**/*.twig', + './{{ component.name|hyphenize }}.yaml', + './{{ component.name|hyphenize }}.php' + ], + darkMode: 'class', //false or 'media' or 'class' + theme: { + extend: { + screens: { + sm: '640px', + md: '768px', + lg: '1024px', + xl: '1280px', + '2xl': '1536px' + } + }, + colors: { + 'primary': { + 'lighter': colors.yellow['300'], + DEFAULT: colors.yellow['400'], + 'darker' : colors.yellow['500'], + }, + black: colors.black, + white: colors.white, + red: colors.red, + green: colors.green, + blue: colors.blue, + orange: colors.orange, + indigo: colors.indigo, + transparent: 'transparent', + 'inherit': 'inherit', + }, + typography: (theme) => ({ + DEFAULT: { + css: { + color: 'inherit', + lineHeight: 'inherit', + maxWidth: 'inherit', + a: { + transition: 'all 500ms', + color: theme('colors.primary.DEFAULT'), + '&:hover': { + color: theme('colors.primary.darker') + }, + textDecoration: 'none' + }, + strong: { + color: 'inherit' + }, + } + } + }), + }, + variants: { + extend: {}, + }, + plugins: [ + require('@tailwindcss/typography'), + require('@tailwindcss/forms'), + require('tailwindcss-debug-screens'), + ], + important: false, +} diff --git a/user/plugins/devtools/components/theme/tailwind/templates/default.html.twig b/user/plugins/devtools/components/theme/tailwind/templates/default.html.twig new file mode 100644 index 0000000..1e97738 --- /dev/null +++ b/user/plugins/devtools/components/theme/tailwind/templates/default.html.twig @@ -0,0 +1,5 @@ +{% extends 'partials/base.html.twig' %} + +{% block content %} + {{ page.content|raw }} +{% endblock %} diff --git a/user/plugins/devtools/components/theme/tailwind/templates/error.html.twig b/user/plugins/devtools/components/theme/tailwind/templates/error.html.twig new file mode 100644 index 0000000..c25efaa --- /dev/null +++ b/user/plugins/devtools/components/theme/tailwind/templates/error.html.twig @@ -0,0 +1,8 @@ +{% extends 'partials/base.html.twig' %} + +{% block content %} +
    +

    {{ 'THEME_TAILWIND.ERROR'|t }}

    + {{ page.content|raw }} +
    +{% endblock %} diff --git a/user/plugins/devtools/components/theme/tailwind/templates/partials/base.html.twig b/user/plugins/devtools/components/theme/tailwind/templates/partials/base.html.twig new file mode 100644 index 0000000..04509fd --- /dev/null +++ b/user/plugins/devtools/components/theme/tailwind/templates/partials/base.html.twig @@ -0,0 +1,67 @@ +{% set extension = config.theme.production ? '.min' : '' %} + + + + {% block head %} + + {% if header.title %}{{ header.title|e }} | {% endif %}{{ site.title|e }} + + + + {% include 'partials/metadata.html.twig' %} + + + + {% endblock head %} + + {% block stylesheets %} + {% do assets.addCss('theme://dist/css/app' ~ extension ~ '.css', 98) %} + {% endblock %} + + {% block javascripts %} + {% endblock %} + + {% block assets deferred %} + {{ assets.css()|raw }} + {{ assets.js()|raw }} + {% endblock %} + + + +{% block header %} +
    +
    + + {% block header_navigation %} + + {% endblock %} +
    +
    +{% endblock %} + +{% block body %} +
    +
    + {% block content %}{% endblock %} +
    +
    +{% endblock %} + +{% block footer %} + +{% endblock %} + +{% block bottom %} + {{ assets.js('bottom')|raw }} +{% endblock %} + + + diff --git a/user/plugins/devtools/components/theme/tailwind/templates/partials/navigation.html.twig b/user/plugins/devtools/components/theme/tailwind/templates/partials/navigation.html.twig new file mode 100644 index 0000000..28df6aa --- /dev/null +++ b/user/plugins/devtools/components/theme/tailwind/templates/partials/navigation.html.twig @@ -0,0 +1,47 @@ +{% macro loop(page) %} + {% for p in page.children.visible %} + {% set current_page = (p.active or p.activeChild) ? 'selected' : '' %} + {% if p.children.visible.count > 0 %} +
  5. + + {% if p.header.icon %}{% endif %} + {{ p.menu|e }} + +
      + {{ _self.loop(p) }} +
    +
  6. + {% else %} +
  7. + + {% if p.header.icon %}{% endif %} + {{ p.menu|e }} + +
  8. + {% endif %} + {% endfor %} +{% endmacro %} + + diff --git a/user/plugins/devtools/components/theme/tailwind/theme.php.twig b/user/plugins/devtools/components/theme/tailwind/theme.php.twig new file mode 100644 index 0000000..332b164 --- /dev/null +++ b/user/plugins/devtools/components/theme/tailwind/theme.php.twig @@ -0,0 +1,9 @@ +1YDr_`md&!GCK1 z<>(8qHrW3=CJt)*JFf!(b4y>bb>*hD%@1C`#{d(uCYWoYG~{l5vtWJTHULES`a4&A zS{h7xvA>EP|8e_3#Et^+zPd88XteMt0iF*Xknb1l;ahnv@nY~0U~ZS28`q5sg>~(G zJDHMTzm3U@G_P^L2{Iy2s#(T&?S}g|usB~D@&wqShTlmJhBvyNG*Lp?G+Pu)LIKM{ zuRBg$aSC@*iMX9b>IKl2*v#F5n^r&CQ9b+28q`v|b&k52;oCqNZvH2Q`D~fY4iQr7 zdqat6d<*yTGV?~lX1zuq5wY!R;dIC(A*&z~BT)C*OH2~M-=8}fezh0V^L$%eQ^9v^ z|FLDE+bA|eBJ<4&j}hhX8Fm+Mt%A&R*&Aa239>|ne=9UOrMheB71ns>S~^?|?=1Pi zdoLjA@aZ>0Bw{gVy$ z%R3pZd&e9)bGteX+rI-3kNy7v^YJmDc>oYI6Nn8AW@Bb&{dWt9iJ66!mkoeRDH~ex zNuG1ThbNaevGeesl2$Ru?H4e*h;{Wl-8`eJ=KCZiZ(YOEI-=tL4+o?V903qhFiQ#` z($U51+CD{*QX4h*d`pddPSZI83SJ{wadF+}wgSux=_`Q)soO_Dh1+G*=CnbVv*QV{ z3$VIJh{bPzbtEVoaIM(YRi!A8XMyPdgAP+HMCOZ-KeYcOeO|;M+@m zX#%Rs#uo>dMI_tpDsP2EI(}HK+9+R;rWY~Ym9JDWMOL@2u8vO9qQyG=G7{+@6Dcy% z1<0#x9!VlGeYN4P0hCo8rz_|y4j?mySBek1skT{Pf?XK)j6hwcQk&&W`eqa%t8;HY zQpN*f3NaO85q+Y^$z$i%@Af6EF7o+5!#i79EoXYlhUtP8b8AJ743l*LXAw1Y!V87d z@FFcHi2TlOkd>i%Sz!q>QsZX^MC%`8w$fm5BkHrZjyuLxRh6V|u@83BkSy6tcbVSF zu5KYbgn10h>FAt}DS$EhUGY3ufilZq+}%Hc^ZPw$4@_NE^@Q;dSrn9-J}WnYz;Pp5 z>j@j918j_>s`pPzAP}?2CbsEBS$&eP#T!y*C>nE@=xN(BI@9+;nASVsWDbX9KFz0I z^T`ZVaao*KiGJl^JJC8oywAHXP)p^HL8fffzLWa6O;?R!fpDt87&>Tq^- z`WW{$&mYuxQ-vn*NB!mD-5O!J@hWI|Z(xoFl$IS;)tK>VhTu8TH~UL%b0oLGULE+9>#Jx_?0fsSs{59W(zpQT(81^F)TOLTWVxrmY+Y8lN8~L zR@m=p$N6Xxqv#Mq{#&kc*6S0khCY-e`i_I)e&Jpw(b#FJ*x2W*zl-G0@13d~31ZbE z!X?#7ghUq_ZP%(ZzV}MJl-a`-kHP$0x!WjgzCQ1csuWpm*`I9G-aRogF;Imddz@zx zve=xaiGWcuBy6A>C(Jq(rp$IDgr_hg_XZSG?Eza9c-4DUa|;3Z>>o zf-8}sF0+0Syyx=Ng*hDtChi%%@b;o@#$&*Ky2jw&hpAawO^i=Bw{FJ$N!;|PNMqPi zRVsh;hpic|EtK!Lr^Q)A=&$8BHL_gvbhCZrk|KuDWP}siyF7|h{y6B zZ$yi|IHG5}v*b#$dB*z+wq!C=gm6Al585K{U}cs4W#E3*K-BZ8hwP#}&D(owlwY-- zkmUWS1MXhDb1%|R>+2VRg)3yrb1^?t>VXh(~(Tcz4i1nOS5J;y18 zxs~g01sDJdYEWIjbFud6je=%kw(g7d?Oi=l$bVki;TDkH#p~XG2WzM|VmgP5=hRVvqo*`P6f_+ z34dGlR|4}qdkzdC!q53=+Tf3$IQEo#^f~TT#6kNOUcSHk!$$t|Ry<-=6MzFIZ$*HU z(FF6*+Ar_+w0tJY^iyMlQ^*&s=(EhROCqpGT`4rbP1nd)dq}30}o#-Y%3S zZxR-gLFHA&Ilm5r(!KM4U3b-q6jj5xtBr;U~g^Wm_U@JZkuu zw3}u%;E#CESakk98FhiO$1Qw0*Y<&3rRY}J2BUwpwV>>2gz#;L4AVbQbf>A_YtBHn z(!WY9C15MPzEI~c;fxNwP5lD@_kS(PQ63!6U?oyb`P&7ie-^!M% z*ft!r3gs@vSMB6Ll{kyy66CoR_JbNVa_cjh=X%mO z1uqto6-}^iX2UoMo9pb22M3$C%6an`(Uya5YYJnyIAxd2G+II0DP?*M^vU$pdFWqt zkvE63cTTGoxYGUQwNY1#ip{Egx9wCvsle(YdUbZ33^C+L_8iWjFt{4EEYR78fmSIE zQf0U?=aRA>yZA}aLZKh7OwatMPA;Y7(qxj$?|dyWm*J}EArj(=%3Z;cNsRmJ zOnqw)x$1HAvSIR+uI?<9cCu+q@iTUOJ1!ID_3(E}PWpUNf4#~pqfOr)JhCV+uU+> z0e)eYg>`DO1;hv458@9C>|EA%iD1doPFVmK#j>H7)D~yJX{7Wq%#C!=Cx_Jb%l{zO zA24NV7OmV_z&hdiJx_a0gL)%q>_IziI?ktH1iL&K;1*)+-8-gzf5-3r&u2Iq-i7^p@;)to=W(TnE-ZtrK#P=NoP1rrwgr7j_Qk8B{M^HD_5 z7r~*3cls7f>$~vC7A>To6=PD5CQ(<`GyJW;t2c_aTZ&40T%9Q>9eCk;=SP#U1og|> zD;oE!7pf4UVM1JVr((06(wKxC_xj^saBsdvu^q=%l@vv1!X{H-j|&I$ZB8N82)9o! zOFLlJ{YtG!{ba#x;U4P#c>{Xx&f>0)u0is(kEX^dZVQEIo21x;&0%qVFVTZOPE8%-}*H4&Bq zt%duY^i$13V38GB5qJ7y6>{O08r4+smYIhnS~72N#R>m3ZwIrG-3^Z|*+&6!TT?#_ zrE8F39EG1HI}}^dn!R>6_ZF@+4ZXic^@k9qC)Pgx&AMLGAt@sz4}d7JXLvAP=8Opz z^VYZxi{O8`)@(gDwQ8msQeg|tE1E~+CEm3L%@=cXJDseJB-`Xv?$?#c<#`?|dsmFl5yTlCoX#8IoF}gbd literal 0 HcmV?d00001 diff --git a/user/plugins/devtools/devtools.php b/user/plugins/devtools/devtools.php new file mode 100644 index 0000000..9b67474 --- /dev/null +++ b/user/plugins/devtools/devtools.php @@ -0,0 +1,13 @@ + NOTE: `engine: mail` has been deprecated from the SwiftMail library that this plugin uses as it does not funtion at all. Please use `smtp` if at all possibe, and `sendmail` if SMTP is not an option. + +### Mailtrap.io + +A good way to test emails is to use a SMTP server service that's built for testing emails, for example [https://mailtrap.io](https://mailtrap.io) + +Setup the Email plugin to use that SMTP server with the fake inbox data. For example enter this configuration in `user/config/plugins/email.yaml` or through the Admin panel: + +``` +mailer: + engine: smtp + smtp: + server: smtp.mailtrap.io + port: 2525 + encryption: none + user: YOUR_MAILTRAP_INBOX_USER + password: YOUR_MAILTRAP_INBOX_PASSWORD +``` + +That service will intercept emails and show them on their web-based interface instead of sending them for real. + +You can try and fine tune the emails there while testing. + +### Google Email + +A popular option for sending email is to simply use your Google Accounts SMTP server. To set this up you will need to do 2 things first: + +1. Enable IMAP in your Gmail `Settings` -> `Forwarding and POP/IMAP` -> `IMAP Access` +2. Enable `Less secure apps` in your [user account settings](https://myaccount.google.com/lesssecureapps) +3. If you have 2-factor authentication, you will need to create a unique application password to use rather than your personal password + +Then configure the Email plugin: + +``` +mailer: + engine: smtp + smtp: + server: smtp.gmail.com + port: 587 + encryption: tls + user: 'YOUR_GOOGLE_EMAIL_ADDRESS' + password: 'YOUR_GOOGLE_PASSWORD' +``` + +> NOTE: Check your email sending limits: https://support.google.com/a/answer/166852?hl=en + +#### Sparkpost + +Generous email sending limits even in the free tier, and simple setup, make [Sparkpost](https://www.sparkpost.com) a great option for email sending. You just need to create an account, then setup a verified sending domain. Sparkpost does a nice job of making this process very easy and undertandable. Then just click on the SMTP Relay option to get your details for the configuration: + +``` +mailer: + engine: smtp + smtp: + server: smtp.sparkpostmail.com + port: 587 + encryption: tls + user: 'SMTP_Injection' + password: 'SEND_EMAIL_API_KEY' +``` + +Then try sending a test email... + +#### Sendgrid + +[Sendgrid](https://sendgrid.com) offers a very easy-to-setup serivce with 100 emails/day for free. The next level allows you to send 40k/email a day for just $10/month. Configuration is pretty simple, just create an account, then click SMTP integration and click the button to create an API key. The configuration is as follows: + +``` +mailer: + engine: smtp + smtp: + server: smtp.sendgrid.net + port: 587 + encryption: tls + user: 'apikey' + password: 'YOUR_SENDGRID_API_KEY' +``` + +#### Mailgun + +[Mailgun is a great service](https://www.mailgun.com/) that offers 10k/emails per month for free. Setup does require SPIF domain verification so that means you need to add at least a TXT entry in your DNS. This is pretty standard for SMTP sending services and does provide verification for remote email servers and makes your email sending more reliable. The Mailgun site, walks you through this process however, and the verification process is simple and fast. + +``` +mailer: + engine: smtp + smtp: + server: smtp.mailgun.org + port: 587 + encryption: tls + user: 'MAILGUN_EMAIL_ADDRESS' + password: 'MAILGUN_EMAIL_PASSWORD' +``` + +Adjust these configurations for your account. + +#### MailJet + +Mailjet is another great service that is easy to quickly setup and get started sending email. The free account gives you 200 emails/day or 600 emails/month. Just signup and setup your SPF and DKIM entries for your domain. Then click on the SMTP settings and use those to configure the email plugin: + +``` +mailer: + engine: smtp + smtp: + server: in-v3.mailjet.com + port: 587 + encryption: tls + user: 'MAILJUST_USERNAME_API_KEY' + password: 'MAILJUST_PASSWORD_SECRET_KEY' +``` + +It's that easy! + +#### ZOHO + +ZOHO is a popular solution for hosted email due to it's great 'FREE' tier. It's paid options are also very reasonable and combined with the latest UI updates and outstanding security features, it's a solid email option. + +In order to get ZOHO working with Grav, you need to send email via a user account. You can either use your users' password or generate an **App Password** via your ZOHO account (clicking on your avatar once logged in), then navigating to `Two Factor Authentication -> App Passwords -> Generate`. Just enter a unique app name (i.e. `Grav Website`). + +NOTE: The SMTP host required can be found in `Settings -> Mail - > Mail Accounts -> POP/IMAP -> SMTP`. This will provide the SMTP server for this account (it may not be `imap.zoho.com` depending on what region you are in) + +``` +mailer: + engine: smtp + smtp: + server: smtp.zoho.com + port: 587 + encryption: tls + user: 'ZOHO_EMAIL_ADDRESS' + password: 'ZOHO_EMAIL_PASSWORD' +``` + +#### Sendmail + +Although not as reliable as SMTP not providing as much debug information, sendmail is a simple option as long as your hosting provider is not blocking the default SMTP port `25`: + +``` +mailer: + engine: sendmail + sendmail: + bin: '/usr/sbin/sendmail -bs' +``` + +Simply adjust your binary command line to suite your environment + +### SMTP Email Services + +Solid SMTP options that even provide a FREE tier for low email volumes include: + +* SendGrid (100/day free) - https://sendgrid.com +* Mailgun - (10k/month free) - https://www.mailgun.com +* Mailjet - (6k/month free) - https://www.mailjet.com/ +* Sparkpost - (15k/month free) - https://www.sparkpost.com +* Amazon SES (62k/month free) - https://aws.amazon.com/ses/ + +If you are still unsure why should be using one in the first place, check out this article: https://zapier.com/learn/email-marketing/best-transactional-email-sending-services/ + +## Email Queue + +For performance reasons, it's often desirable to queue emails and send them in batches, rather than forcing Grav to wait while an email is sent. This is because email servers are sometimes slow and you might not want to wait for the whole email-sending process before continuing with Grav processing. + +To address this, you can enable the **Email Queue** and this will ensure all email's in Grav are actually sent to the queue, and not sent directly. In order for the emails to be actually sent, you need to flush the queue. By default this is handled by the **Grav Scheduler**, so you need to ensure you have that enabled and setup correctly or **your emails will not be sent!!!**. + +You can also manually flush the queue by using the provided CLI command: + +``` +$ bin/plugin email flush-queue +``` + +## Testing with CLI Command + +You can test your email configuration with the following CLI Command: + +``` +$ bin/plugin email test-email -t steve@apple.com +``` + +You can also pass in a configuration environment: + +``` +$ bin/plugin email test-email -t steve@apple.com -e mysite.com +``` + +This will use the email configuration you have located in `user/mysite.com/config/plugins/email.yaml`. Read the docs to find out more about environment-based configuration: https://learn.getgrav.org/advanced/environment-config + +# Programmatically send emails + +Add this code in your plugins: + +```php + + $to = 'email@test.com'; + $from = 'email@test.com'; + + $subject = 'Test'; + $content = 'Test'; + + $message = $this->grav['Email']->message($subject, $content, 'text/html') + ->setFrom($from) + ->setTo($to); + + $sent = $this->grav['Email']->send($message); +``` + +# Emails sent with Forms + +When executing email actions during form processing, action parameters are inherited from the global configuration but may also be overridden on a per-action basis. + +``` +title: Custom form + +form: + name: custom_form + fields: + + # Any fields you'd like to add to the form: + # Their values may be referenced in email actions via '{{ form.value.FIELDNAME|e }}' + + process: + email: + subject: "[Custom form] {{ form.value.name|e }}" + body: "{% include 'forms/data.txt.twig' %}" + from: sender@example.com + from_name: 'Custom sender name' + to: recipient@example.com + to_name: 'Custom recipient name' + content_type: 'text/plain' + process_markdown: true +``` + +## Multiple Emails + +You can send multiple emails by creating an array of emails under the `process: email:` option in the form: + +``` +title: Custom form + +form: + name: custom_form + fields: + + # Any fields you'd like to add to the form: + # Their values may be referenced in email actions via '{{ form.value.FIELDNAME|e }}' + + process: + email: + - + subject: "[Custom Email 1] {{ form.value.name|e }}" + body: "{% include 'forms/data.txt.twig' %}" + from: {mail: "owner@mysite.com", name: "Site OWner"} + to: {mail: "recepient_1@example.com", name: "Recepient 1"} + template: "email/base.html.twig" + - + subject: "[Custom Email 2] {{ form.value.name|e }}" + body: "{% include 'forms/data.txt.twig' %}" + from: {mail: "owner@mysite.com", name: "Site OWner"} + to: {mail: "recepient_2@example.com", name: "Recepient 1"} + template: "email/base.html.twig" +``` + +## Templating Emails + +You can specify a Twig template for HTML rendering, else Grav will use the default one `email/base.html.twig` which is included in this plugin. You can also specify a custom template that extends the base, where you can customize the `{% block content %}` and `{% block footer %}`. For example: + +```twig +{% extends 'email/base.html.twig' %} + +{% block content %} +

    + Greetings {{ form.value.name|e }}, +

    + +

    + We have received your request for help. Our team will get in touch with you within 3 Business Days. +

    + +

    + Regards, +

    + +

    + My Company +

    + E - help@mycompany.com
    + M - +1 555-123-4567
    + W - mycompany.com +

    +{% endblock %} + +{% block footer %} +

    My Company - All Rights Reserved

    +{% endblock %} +``` + +## Sending Attachments + +You can add file inputs to your form, and send those files via Email. +Just add an `attachments` field and list the file input fields names. You can have multiple file fields, and this will send all the files as attachments. Example: + +``` +form: + name: custom_form + fields: + + my-file: + label: 'Add a file' + type: file + multiple: false + destination: user/data/files + accept: + - application/pdf + - application/x-pdf + - image/png + - text/plain + + process: + + email: + body: '{% include "forms/data.html.twig" %}' + attachments: + - 'my-file' +``` + +## Additional action parameters + +To have more control over your generated email, you may also use the following additional parameters: + +* `reply_to`: Set one or more addresses that should be used to reply to the message. +* `cc` _(Carbon copy)_: Add one or more addresses to the delivery list. Many email clients will mark email in one's inbox differently depending on whether they are in the `To:` or `Cc:` list. +* `bcc` _(Blind carbon copy)_: Add one or more addresses to the delivery list that should (usually) not be listed in the message data, remaining invisible to other recipients. +* `charset`: Explicitly set a charset for the generated email body (only takes effect if `body` parameter is a string, defaults to `utf-8`) + +### Specifying email addresses + +Email-related parameters (`from`, `to`, `reply_to`, `cc`and `bcc`) allow different notations for single / multiple values: + +#### Single email address string + +``` +to: mail@example.com +``` + +#### Multiple email address strings + +``` +to: + - mail@example.com + - mail+1@example.com + - mail+2@example.com +``` + +#### Single email address with name + +``` +to: + mail: mail@example.com + name: Human-readable name +``` + +or inline: + +``` +to: {mail: 'mail@example.com', name: 'Human-readable name'} +``` + +#### Multiple email addresses (with and without names) + +``` +to: + - + mail: mail@example.com + name: Human-readable name + - + mail: mail+2@example.com + name: Another human-readable name + - + mail+3@example.com + - + mail+4@example.com +``` + +or inline: + +``` +to: + - {mail: 'mail@example.com', name: 'Human-readable name'} + - {mail: 'mail+2@example.com', name: 'Another human-readable name'} + - mail+3@example.com + - mail+4@example.com +``` + +## Multi-part MIME messages + +Apart from a simple string, an email body may contain different MIME parts (e.g. HTML body with plain text fallback). You may even specify a different charset for each part (default to `utf-8`): + +``` +body: + - + content_type: 'text/html' + body: "{% include 'forms/default/data.html.twig' %}" + - + content_type: 'text/plain' + body: "{% include 'forms/default/data.txt.twig' %}" + charset: 'iso-8859-1' +``` + +# Troubleshooting + +## Emails are not sent + +#### Debugging + +The first step in determining why emails are not sent is to enable debugging. This can be done via the `user/config/email.yaml` file or via the plugin settings in the admin. Just enable this and then try sending an email again. Then inspect the `logs/email.log` file for potential problems. + +#### ISP Port 25 blocking + +By default, when sending via PHP or Sendmail the machine running the webserver will attempt to send mail using the SMTP protocol. This uses port `25` which is often blocked by ISPs to protected against spamming. You can determine if this port is blocked by running this command in your temrinal (mac/linux only): + +``` +(echo >/dev/tcp/localhost/25) &>/dev/null && echo "TCP port 25 opened" || echo "TCP port 25 closed" +``` + +If it's blocked there are ways to configure relays to different ports, but the simplest solution is to use SMTP for mail sending. + + +#### Exceptions + +If you get an exception when sending email but you cannot see what the error is, you need to enable more verbose exception messages. In the `user/config/system.yaml` file ensure your have the following configuration: + +``` +errors: + display: 1 + log: true +``` + +## Configuration Issues + +As explained above in the Configuration section, if you're using the default settings, set the Plugin configuration to use a SMTP server. It can be [Gmail](https://www.digitalocean.com/community/tutorials/how-to-use-google-s-smtp-server) or another SMTP server you have at your disposal. + +This is the first thing to check. The reason is that PHP Mail, the default system used by the Plugin, is not 100% reliable and emails might not arrive. diff --git a/user/plugins/email/blueprints.yaml b/user/plugins/email/blueprints.yaml new file mode 100644 index 0000000..2a5f50c --- /dev/null +++ b/user/plugins/email/blueprints.yaml @@ -0,0 +1,251 @@ +name: Email +slug: email +type: plugin +version: 3.2.0 +testing: false +description: Enables the emailing system for Grav +icon: envelope +author: + name: Team Grav + email: devs@getgrav.org + url: http://getgrav.org +keywords: plugin, email, sender +homepage: https://github.com/getgrav/grav-plugin-email +bugs: https://github.com/getgrav/grav-plugin-email/issues +license: MIT + +dependencies: + - { name: grav, version: '>=1.7.32' } + - { name: form, version: '>=6.0.0' } + +form: + validation: loose + + fields: + enabled: + type: hidden + label: PLUGIN_ADMIN.PLUGIN_STATUS + highlight: 1 + default: 1 + options: + 1: PLUGIN_ADMIN.ENABLED + 0: PLUGIN_ADMIN.DISABLED + validate: + type: bool + + mailer.engine: + type: select + label: PLUGIN_EMAIL.MAIL_ENGINE + size: medium + options: + none: PLUGIN_ADMIN.DISABLED + smtp: SMTP + sendmail: Sendmail + + content_type: + type: select + label: PLUGIN_EMAIL.CONTENT_TYPE + size: medium + default: 'text/html' + options: + 'text/plain': PLUGIN_EMAIL.CONTENT_TYPE_PLAIN_TEXT + 'text/html': HTML + + charset: + type: text + size: medium + label: PLUGIN_EMAIL.CHARSET + placeholder: PLUGIN_EMAIL.CHARSET_PLACEHOLDER + + email_Defaults: + type: section + title: PLUGIN_EMAIL.EMAIL_DEFAULTS + underline: true + + from: + type: email + size: medium + label: PLUGIN_EMAIL.EMAIL_FORM + placeholder: PLUGIN_EMAIL.EMAIL_FORM_PLACEHOLDER + validate: + required: true + type: email + + from_name: + type: text + size: medium + label: PLUGIN_EMAIL.EMAIL_FROM_NAME + placeholder: PLUGIN_EMAIL.EMAIL_FROM_NAME_PLACEHOLDER + + to: + type: email + size: medium + label: PLUGIN_EMAIL.EMAIL_TO + placeholder: PLUGIN_EMAIL.EMAIL_TO_PLACEHOLDER + multiple: true + validate: + required: true + type: email + + to_name: + type: text + size: medium + label: PLUGIN_EMAIL.EMAIL_TO_NAME + placeholder: PLUGIN_EMAIL.EMAIL_TO_NAME_PLACEHOLDER + + cc: + type: email + size: medium + label: PLUGIN_EMAIL.EMAIL_CC + placeholder: PLUGIN_EMAIL.EMAIL_CC_PLACEHOLDER + multiple: true + validate: + type: email + + cc_name: + type: text + size: medium + label: PLUGIN_EMAIL.EMAIL_CC_NAME + placeholder: PLUGIN_EMAIL.EMAIL_CC_NAME_PLACEHOLDER + + bcc: + type: email + size: medium + label: PLUGIN_EMAIL.EMAIL_BCC + placeholder: PLUGIN_EMAIL.EMAIL_BCC_PLACEHOLDER + multiple: true + validate: + type: email + + reply_to: + type: email + size: medium + label: PLUGIN_EMAIL.EMAIL_REPLY_TO + placeholder: PLUGIN_EMAIL.EMAIL_REPLY_TO_PLACEHOLDER + multiple: true + validate: + type: email + + reply_to_name: + type: text + size: medium + label: PLUGIN_EMAIL.EMAIL_REPLY_TO_NAME + placeholder: PLUGIN_EMAIL.EMAIL_REPLY_TO_NAME_PLACEHOLDER + + body: + type: textarea + size: medium + label: PLUGIN_EMAIL.EMAIL_BODY + placeholder: PLUGIN_EMAIL.EMAIL_BODY_PLACEHOLDER + + smtp_config: + type: section + title: PLUGIN_EMAIL.SMTP_CONFIGURATION + underline: true + + mailer.smtp.server: + type: text + size: medium + label: PLUGIN_EMAIL.SMTP_SERVER + placeholder: PLUGIN_EMAIL.SMTP_SERVER_PLACEHOLDER + + mailer.smtp.port: + type: text + size: small + label: PLUGIN_EMAIL.SMTP_PORT + placeholder: PLUGIN_EMAIL.SMTP_PORT_PLACEHOLDER + validate: + type: number + min: 1 + max: 65535 + + mailer.smtp.encryption: + type: select + size: medium + label: PLUGIN_EMAIL.SMTP_ENCRYPTION + options: + none: PLUGIN_EMAIL.SMTP_ENCRYPTION_NONE + ssl: SSL + tls: TLS + + mailer.smtp.user: + type: text + size: medium + autocomplete: 'off' + label: PLUGIN_EMAIL.SMTP_LOGIN_NAME + + mailer.smtp.password: + type: password + size: medium + autocomplete: 'new-password' + label: PLUGIN_EMAIL.SMTP_PASSWORD + + mailer.smtp.auth_mode: + type: text + size: medium + label: PLUGIN_EMAIL.SMTP_AUTH_MODE + + sendmail_config: + type: section + title: PLUGIN_EMAIL.SENDMAIL_CONFIGURATION + underline: true + + mailer.sendmail.bin: + type: text + size: medium + label: PLUGIN_EMAIL.PATH_TO_SENDMAIL + placeholder: "/usr/sbin/sendmail" + + queue_section: + type: section + title: PLUGIN_EMAIL.QUEUE_TITLE + text: PLUGIN_EMAIL.QUEUE_DESC + markdown: true + underline: true + + queue.enabled: + type: toggle + label: PLUGIN_EMAIL.QUEUE_ENABLED + highlight: 0 + default: 0 + options: + 1: PLUGIN_ADMIN.ENABLED + 0: PLUGIN_ADMIN.DISABLED + validate: + type: bool + + queue.flush_frequency: + type: cron + label: PLUGIN_EMAIL.QUEUE_FLUSH_FREQUENCY + size: medium + help: PLUGIN_EMAIL.QUEUE_FLUSH_FREQUENCY_HELP + default: '* * * * *' + placeholder: '* * * * *' + + queue.flush_msg_limit: + type: number + label: PLUGIN_EMAIL.QUEUE_FLUSH_MSG_LIMIT + size: x-small + append: PLUGIN_EMAIL.QUEUE_FLUSH_MSG_LIMIT_APPEND + + queue.flush_time_limit: + type: number + label: PLUGIN_EMAIL.QUEUE_FLUSH_TIME_LIMIT + size: x-small + append: PLUGIN_EMAIL.QUEUE_FLUSH_TIME_LIMIT_APPEND + + advanced_section: + type: section + title: PLUGIN_EMAIL.ADVANCED + underline: true + + debug: + type: toggle + label: PLUGIN_EMAIL.DEBUG + highlight: 1 + default: 0 + options: + 1: PLUGIN_ADMIN.ENABLED + 0: PLUGIN_ADMIN.DISABLED + validate: + type: bool diff --git a/user/plugins/email/classes/Email.php b/user/plugins/email/classes/Email.php new file mode 100644 index 0000000..7254e25 --- /dev/null +++ b/user/plugins/email/classes/Email.php @@ -0,0 +1,564 @@ +get('plugins.email.mailer.engine') !== 'none'; + } + + /** + * Returns true if debugging on emails has been enabled. + * + * @return bool + */ + public static function debug() + { + return Grav::instance()['config']->get('plugins.email.debug') == 'true'; + } + + /** + * Creates an email message. + * + * @param string $subject + * @param string $body + * @param string $contentType + * @param string $charset + * @return \Swift_Message + */ + public function message($subject = null, $body = null, $contentType = null, $charset = null) + { + return new \Swift_Message($subject, $body, $contentType, $charset); + } + + /** + * Creates an attachment. + * + * @param string $data + * @param string $filename + * @param string $contentType + * @return \Swift_Attachment + */ + public function attachment($data = null, $filename = null, $contentType = null) + { + return new \Swift_Attachment($data, $filename, $contentType); + } + + /** + * Creates an embedded attachment. + * + * @param string $data + * @param string $filename + * @param string $contentType + * @return \Swift_EmbeddedFile + */ + public function embedded($data = null, $filename = null, $contentType = null) + { + return new \Swift_EmbeddedFile($data, $filename, $contentType); + } + + /** + * Creates an image attachment. + * + * @param string $data + * @param string $filename + * @param string $contentType + * @return \Swift_Image + */ + public function image($data = null, $filename = null, $contentType = null) + { + return new \Swift_Image($data, $filename, $contentType); + } + + /** + * Send email. + * + * @param \Swift_Message $message + * @param array|null $failedRecipients + * @return int + */ + public function send($message, &$failedRecipients = null) + { + $mailer = $this->getMailer(); + + $result = $mailer ? $mailer->send($message, $failedRecipients) : 0; + + // Check if emails and debugging are both enabled. + if ($mailer && $this->debug()) { + + $log = new Logger('email'); + $locator = Grav::instance()['locator']; + $log_file = $locator->findResource('log://email.log', true, true); + $log->pushHandler(new StreamHandler($log_file, Logger::DEBUG)); + + // Append the SwiftMailer log to the log. + $log->addDebug($this->getLogs()); + } + + return $result; + } + + /** + * Build e-mail message. + * + * @param array $params + * @param array $vars + * @return \Swift_Message + */ + public function buildMessage(array $params, array $vars = []) + { + /** @var Twig $twig */ + $twig = Grav::instance()['twig']; + $twig->init(); + + /** @var Config $config */ + $config = Grav::instance()['config']; + + /** @var Language $language */ + $language = Grav::instance()['language']; + + // Create message object. + $message = $this->message(); + + // Extend parameters with defaults. + $params += [ + 'bcc' => $config->get('plugins.email.bcc', []), + 'body' => $config->get('plugins.email.body', '{% include "forms/data.html.twig" %}'), + 'cc' => $config->get('plugins.email.cc', []), + 'cc_name' => $config->get('plugins.email.cc_name'), + 'charset' => $config->get('plugins.email.charset', 'utf-8'), + 'from' => $config->get('plugins.email.from'), + 'from_name' => $config->get('plugins.email.from_name'), + 'content_type' => $config->get('plugins.email.content_type', 'text/html'), + 'reply_to' => $config->get('plugins.email.reply_to', []), + 'reply_to_name' => $config->get('plugins.email.reply_to_name'), + 'subject' => !empty($vars['form']) && $vars['form'] instanceof FormInterface ? $vars['form']->page()->title() : null, + 'to' => $config->get('plugins.email.to'), + 'to_name' => $config->get('plugins.email.to_name'), + 'process_markdown' => false, + 'template' => false, + 'message' => $message + ]; + + if (!$params['to']) { + throw new \RuntimeException($language->translate('PLUGIN_EMAIL.PLEASE_CONFIGURE_A_TO_ADDRESS')); + } + if (!$params['from']) { + throw new \RuntimeException($language->translate('PLUGIN_EMAIL.PLEASE_CONFIGURE_A_FROM_ADDRESS')); + } + + // make email configuration available to templates + $vars += [ + 'email' => $params, + ]; + + // Process parameters. + foreach ($params as $key => $value) { + switch ($key) { + case 'body': + if (is_string($value)) { + if (strpos($value, '{{') !== false || strpos($value, '{%') !== false) { + $body = $twig->processString($value, $vars); + } else { + $body = $value; + } + + if ($params['process_markdown'] && $params['content_type'] === 'text/html') { + $parsedown = new Parsedown(); + $body = $parsedown->text($body); + } + + if ($params['template']) { + $body = $twig->processTemplate($params['template'], ['content' => $body] + $vars); + } + + $content_type = !empty($params['content_type']) ? $twig->processString($params['content_type'], $vars) : null; + $charset = !empty($params['charset']) ? $twig->processString($params['charset'], $vars) : null; + + $message->setBody($body, $content_type, $charset); + } elseif (is_array($value)) { + foreach ($value as $body_part) { + $body_part += [ + 'charset' => $params['charset'], + 'content_type' => $params['content_type'], + ]; + + $body = !empty($body_part['body']) ? $twig->processString($body_part['body'], $vars) : null; + + if ($params['process_markdown'] && $body_part['content_type'] === 'text/html') { + $parsedown = new Parsedown(); + $body = $parsedown->text($body); + } + + if (isset($body_part['template'])) { + $body = $twig->processTemplate($body_part['template'], ['content' => $body] + $vars); + } + + $content_type = !empty($body_part['content_type']) ? $twig->processString($body_part['content_type'], $vars) : null; + $charset = !empty($body_part['charset']) ? $twig->processString($body_part['charset'], $vars) : null; + + if (!$message->getBody()) { + $message->setBody($body, $content_type, $charset); + } + else { + $message->addPart($body, $content_type, $charset); + } + } + } + break; + + case 'subject': + if ($value) { + $message->setSubject($twig->processString($language->translate($value), $vars)); + } + break; + + case 'to': + if (is_string($value) && !empty($params['to_name'])) { + $value = [ + 'mail' => $twig->processString($value, $vars), + 'name' => $twig->processString($params['to_name'], $vars), + ]; + } + + foreach ($this->parseAddressValue($value, $vars) as $address) { + $message->addTo($address->mail, $address->name); + } + break; + + case 'cc': + if (is_string($value) && !empty($params['cc_name'])) { + $value = [ + 'mail' => $twig->processString($value, $vars), + 'name' => $twig->processString($params['cc_name'], $vars), + ]; + } + + foreach ($this->parseAddressValue($value, $vars) as $address) { + $message->addCc($address->mail, $address->name); + } + break; + + case 'bcc': + foreach ($this->parseAddressValue($value, $vars) as $address) { + $message->addBcc($address->mail, $address->name); + } + break; + + case 'from': + if (is_string($value) && !empty($params['from_name'])) { + $value = [ + 'mail' => $twig->processString($value, $vars), + 'name' => $twig->processString($params['from_name'], $vars), + ]; + } + + foreach ($this->parseAddressValue($value, $vars) as $address) { + $message->addFrom($address->mail, $address->name); + } + break; + + case 'reply_to': + if (is_string($value) && !empty($params['reply_to_name'])) { + $value = [ + 'mail' => $twig->processString($value, $vars), + 'name' => $twig->processString($params['reply_to_name'], $vars), + ]; + } + + foreach ($this->parseAddressValue($value, $vars) as $address) { + $message->addReplyTo($address->mail, $address->name); + } + break; + + } + } + + return $message; + } + + /** + * Return parsed e-mail address value. + * + * @param string|string[] $value + * @param array $vars + * @return array + */ + public function parseAddressValue($value, array $vars = []) + { + $parsed = []; + + /** @var Twig $twig */ + $twig = Grav::instance()['twig']; + + // Single e-mail address string + if (is_string($value)) { + $parsed[] = (object) [ + 'mail' => $twig->processString($value, $vars), + 'name' => null, + ]; + } + + else { + // Cast value as array + $value = (array) $value; + + // Single e-mail address array + if (!empty($value['mail'])) { + $parsed[] = (object) [ + 'mail' => $twig->processString($value['mail'], $vars), + 'name' => !empty($value['name']) ? $twig->processString($value['name'], $vars) : NULL, + ]; + } + + // Multiple addresses (either as strings or arrays) + elseif (!(empty($value['mail']) && !empty($value['name']))) { + foreach ($value as $y => $itemx) { + $addresses = $this->parseAddressValue($itemx, $vars); + + if (($address = reset($addresses))) { + $parsed[] = $address; + } + } + } + } + + return $parsed; + } + + /** + * Return debugging logs if enabled + * + * @return string + */ + public function getLogs() + { + if ($this->debug()) { + return $this->logger->dump(); + } + return ''; + } + + /** + * @internal + * @return null|\Swift_Mailer + */ + protected function getMailer() + { + if (!$this->enabled()) { + return null; + } + + if (!$this->mailer) { + /** @var Config $config */ + $config = Grav::instance()['config']; + $queue_enabled = $config->get('plugins.email.queue.enabled'); + + $transport = $queue_enabled === true ? $this->getQueue() : $this->getTransport(); + + // Create the Mailer using your created Transport + $this->mailer = new \Swift_Mailer($transport); + + // Register the logger if we're debugging. + if ($this->debug()) { + $this->logger = new \Swift_Plugins_Loggers_ArrayLogger(); + $this->mailer->registerPlugin(new \Swift_Plugins_LoggerPlugin($this->logger)); + } + } + + return $this->mailer; + } + + protected static function getQueuePath() + { + $queue_path = Grav::instance()['locator']->findResource('user://data', true) . '/email-queue'; + + if (!file_exists($queue_path)) { + mkdir($queue_path); + } + + return $queue_path; + } + + protected static function getQueue() + { + $queue_path = static::getQueuePath(); + + $spool = new \Swift_FileSpool($queue_path); + $transport = new \Swift_SpoolTransport($spool); + + return $transport; + } + + public static function flushQueue() + { + $grav = Grav::instance(); + + $grav['debugger']->enabled(false); + + $config = $grav['config']->get('plugins.email.queue'); + + try { + $queue = static::getQueue(); + $spool = $queue->getSpool(); + $spool->setMessageLimit($config['flush_msg_limit']); + $spool->setTimeLimit($config['flush_time_limit']); + $failures = []; + $result = $spool->flushQueue(static::getTransport(), $failures); + return $result . ' messages flushed from queue...'; + } catch (\Exception $e) { + $grav['log']->error($e->getMessage()); + return $e->getMessage(); + } + + } + + public static function clearQueueFailures() + { + $grav = Grav::instance(); + $grav['debugger']->enabled(false); + + $preferences = \Swift_Preferences::getInstance(); + $preferences->setTempDir(sys_get_temp_dir()); + + /** @var \Swift_Transport $transport */ + $transport = static::getTransport(); + if (!$transport->isStarted()) { + $transport->start(); + } + + $queue_path = static::getQueuePath(); + + foreach (new \GlobIterator($queue_path . '/*.sending') as $file) { + $final_message = $file->getPathname(); + + /** @var \Swift_Message $message */ + $message = unserialize(file_get_contents($final_message)); + + echo(sprintf( + 'Retrying "%s" to "%s"', + $message->getSubject(), + implode(', ', array_keys($message->getTo())) + ) . "\n"); + + try { + $clean = static::cloneMessage($message); + $transport->send($clean); + echo("sent!\n"); + + // DOn't want to trip up any errors from sending too fast + sleep(1); + } catch (\Swift_TransportException $e) { + echo("ERROR: Send failed - deleting spooled message\n"); + } + + // Remove the file + unlink($final_message); + } + } + + /** + * Clean copy a message + * + * @param \Swift_Message $message + */ + public static function cloneMessage($message) + { + $clean = new \Swift_Message(); + + $clean->setBoundary($message->getBoundary()); + $clean->setBcc($message->getBcc()); + $clean->setBody($message->getBody()); + $clean->setCharset($message->getCharset()); + $clean->setChildren($message->getChildren()); + $clean->setContentType($message->getContentType()); + $clean->setCc($message->getCc()); + $clean->setDate($message->getDate()); + $clean->setDescription($message->getDescription()); + $clean->setEncoder($message->getEncoder()); + $clean->setFormat($message->getFormat()); + $clean->setFrom($message->getFrom()); + $clean->setId($message->getId()); + $clean->setMaxLineLength($message->getMaxLineLength()); + $clean->setPriority($message->getPriority()); + $clean->setReplyTo($message->getReplyTo()); + $clean->setReturnPath($message->getReturnPath()); + $clean->setSender($message->getSender()); + $clean->setSubject($message->getSubject()); + $clean->setTo($message->getTo()); + $clean->setAuthMode($message->getAuthMode()); + + return $clean; + + } + + protected static function getTransport() + { + /** @var Config $config */ + $config = Grav::instance()['config']; + + $engine = $config->get('plugins.email.mailer.engine'); + + // Create the Transport and initialize it. + switch ($engine) { + case 'smtp': + $transport = new \Swift_SmtpTransport(); + + $options = $config->get('plugins.email.mailer.smtp'); + if (!empty($options['server'])) { + $transport->setHost($options['server']); + } + if (!empty($options['port'])) { + $transport->setPort($options['port']); + } + if (!empty($options['encryption']) && $options['encryption'] !== 'none') { + $transport->setEncryption($options['encryption']); + } + if (!empty($options['user'])) { + $transport->setUsername($options['user']); + } + if (!empty($options['password'])) { + $transport->setPassword($options['password']); + } + if (!empty($options['auth_mode'])) { + $transport->setAuthMode($options['auth_mode']); + } + break; + case 'sendmail': + default: + $options = $config->get('plugins.email.mailer.sendmail'); + $bin = !empty($options['bin']) ? $options['bin'] : '/usr/sbin/sendmail'; + $transport = new \Swift_SendmailTransport($bin); + break; + } + + return $transport; + } +} diff --git a/user/plugins/email/classes/Utils.php b/user/plugins/email/classes/Utils.php new file mode 100644 index 0000000..69b85b4 --- /dev/null +++ b/user/plugins/email/classes/Utils.php @@ -0,0 +1,48 @@ + $params + * + * @return bool True if the action was performed. + */ + public static function sendEmail(...$params) + { + if (is_array($params[0])) { + $params = array_shift($params); + } else { + $keys = ['subject', 'body', 'to', 'from', 'content_type']; + $params = GravUtils::arrayCombine($keys, $params); + } + + //Initialize twig if not yet initialized + /** @var Twig $twig */ + $twig = Grav::instance()['twig']->init(); + + /** @var Email $email */ + $email = Grav::instance()['Email']; + + if (empty($params['to']) || empty($params['subject']) || empty($params['body'])) { + return false; + } + + $params['body'] = $twig->processTemplate('email/base.html.twig', ['content' => $params['body']]); + + $message = $email->buildMessage($params); + + return $email->send($message); + } +} diff --git a/user/plugins/email/cli/ClearQueueFailuresCommand.php b/user/plugins/email/cli/ClearQueueFailuresCommand.php new file mode 100644 index 0000000..705c825 --- /dev/null +++ b/user/plugins/email/cli/ClearQueueFailuresCommand.php @@ -0,0 +1,62 @@ +setName('clear-queue-failures') + ->setAliases(['clearqueue']) + ->addOption( + 'env', + 'e', + InputOption::VALUE_OPTIONAL, + 'The environment to trigger a specific configuration. For example: localhost, mysite.dev, www.mysite.com' + ) + ->setDescription('Clears any queue failures that have accumulated') + ->setHelp('The clear-queue-failures command clears any queue failures that have accumulated'); + } + + /** + * @return int + */ + protected function serve() + { + // TODO: remove when requiring Grav 1.7+ + if (method_exists($this, 'initializeGrav')) { + $this->initializeGrav(); + } + + + $this->output->writeln(''); + $this->output->writeln('Current Configuration:'); + $this->output->writeln(''); + + $grav = Grav::instance(); + dump($grav['config']->get('plugins.email')); + + $this->output->writeln(''); + + require_once __DIR__ . '/../vendor/autoload.php'; + + Email::clearQueueFailures(); + + return 0; + } +} diff --git a/user/plugins/email/cli/FlushQueueCommand.php b/user/plugins/email/cli/FlushQueueCommand.php new file mode 100644 index 0000000..3a735a8 --- /dev/null +++ b/user/plugins/email/cli/FlushQueueCommand.php @@ -0,0 +1,63 @@ +setName('flush-queue') + ->setAliases(['flushqueue']) + ->addOption( + 'env', + 'e', + InputOption::VALUE_OPTIONAL, + 'The environment to trigger a specific configuration. For example: localhost, mysite.dev, www.mysite.com' + ) + ->setDescription('Flushes the email queue of any pending emails') + ->setHelp('The flush-queue command flushes the email queue of any pending emails'); + } + + /** + * @return int + */ + protected function serve() + { + // TODO: remove when requiring Grav 1.7+ + if (method_exists($this, 'initializeGrav')) { + $this->initializeGrav(); + } + + $this->output->writeln(''); + $this->output->writeln('Current Configuration:'); + $this->output->writeln(''); + + $grav = Grav::instance(); + dump($grav['config']->get('plugins.email')); + + $this->output->writeln(''); + + require_once __DIR__ . '/../vendor/autoload.php'; + + $output = Email::flushQueue(); + + $this->output->writeln('' . $output . ''); + + return 0; + } +} diff --git a/user/plugins/email/cli/TestEmailCommand.php b/user/plugins/email/cli/TestEmailCommand.php new file mode 100644 index 0000000..0c07dd0 --- /dev/null +++ b/user/plugins/email/cli/TestEmailCommand.php @@ -0,0 +1,107 @@ +setName('test-email') + ->setAliases(['testemail']) + ->addOption( + 'to', + 't', + InputOption::VALUE_REQUIRED, + 'An email address to send the email to' + ) + ->addOption( + 'env', + 'e', + InputOption::VALUE_OPTIONAL, + 'The environment to trigger a specific configuration. For example: localhost, mysite.dev, www.mysite.com' + ) + ->addOption( + 'subject', + 's', + InputOption::VALUE_OPTIONAL, + 'A subject for the email' + ) + ->addOption( + 'body', + 'b', + InputOption::VALUE_OPTIONAL, + 'The body of the email' + ) + ->setDescription('Sends a test email using the plugin\'s configuration') + ->setHelp('The test-email command sends a test email using the plugin\'s configuration'); + } + + /** + * @return int + */ + protected function serve() + { + // TODO: remove when requiring Grav 1.7+ + if (method_exists($this, 'initializeGrav')) { + $this->initializeThemes(); + } + + $this->output->writeln(''); + $this->output->writeln('Current Configuration:'); + $this->output->writeln(''); + + $grav = Grav::instance(); + $email_config = new Data($grav['config']->get('plugins.email')); + if ($email_config->get('mailer.smtp.password')) { + $password = $email_config->get('mailer.smtp.password'); + $obfuscated_password = str_repeat('*', strlen($password) - 2) . substr($password, -2); + $email_config->set('mailer.smtp.password', $obfuscated_password); + } + + dump($email_config); + + $this->output->writeln(''); + + $grav['Email'] = new Email(); + + $to = $this->input->getOption('to') ?: $grav['config']->get('plugins.email.to'); + $subject = $this->input->getOption('subject'); + $body = $this->input->getOption('body'); + + if (!$subject) { + $subject = 'Testing Grav Email Plugin'; + } + + if (!$body) { + $configuration = print_r($email_config, true); + $body = $grav['language']->translate(['PLUGIN_EMAIL.TEST_EMAIL_BODY', $configuration]); + } + + $sent = EmailUtils::sendEmail(['subject'=>$subject, 'body'=>$body, 'to'=>$to]); + + if ($sent) { + $this->output->writeln("Message sent successfully!"); + } else { + $this->output->writeln("Problem sending email..."); + } + + return 0; + } +} diff --git a/user/plugins/email/composer.json b/user/plugins/email/composer.json new file mode 100644 index 0000000..89591ec --- /dev/null +++ b/user/plugins/email/composer.json @@ -0,0 +1,43 @@ +{ + "name": "getgrav/grav-plugin-email", + "type": "grav-plugin", + "description": "Email plugin for Grav CMS", + "keywords": ["email", "plugin", "sender"], + "homepage": "https://github.com/getgrav/grav-plugin-email", + "license": "MIT", + "authors": [ + { + "name": "Team Grav", + "email": "devs@getgrav.org", + "homepage": "https://getgrav.org", + "role": "Developer" + } + ], + "support": { + "issues": "https://github.com/getgrav/grav-plugin-email/issues", + "irc": "https://chat.getgrav.org", + "forum": "https://getgrav.org/forum", + "docs": "https://github.com/getgrav/grav-plugin-email/blob/master/README.md" + }, + "require": { + "php": ">=7.3.6", + "swiftmailer/swiftmailer": "~6.0" + }, + "replace": { + "symfony/polyfill-iconv": "*", + "symfony/polyfill-mbstring": "*", + "symfony/polyfill-php72": "*" + }, + "autoload": { + "psr-4": { + "Grav\\Plugin\\Email\\": "classes/", + "Grav\\Plugin\\Console\\": "cli/" + }, + "classmap": ["email.php"] + }, + "config": { + "platform": { + "php": "7.3.6" + } + } +} diff --git a/user/plugins/email/composer.lock b/user/plugins/email/composer.lock new file mode 100644 index 0000000..679d1c3 --- /dev/null +++ b/user/plugins/email/composer.lock @@ -0,0 +1,415 @@ +{ + "_readme": [ + "This file locks the dependencies of your project to a known state", + "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies", + "This file is @generated automatically" + ], + "content-hash": "87a959e0f18deeaf7c499a59c3c059bf", + "packages": [ + { + "name": "doctrine/lexer", + "version": "1.2.3", + "source": { + "type": "git", + "url": "https://github.com/doctrine/lexer.git", + "reference": "c268e882d4dbdd85e36e4ad69e02dc284f89d229" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/doctrine/lexer/zipball/c268e882d4dbdd85e36e4ad69e02dc284f89d229", + "reference": "c268e882d4dbdd85e36e4ad69e02dc284f89d229", + "shasum": "" + }, + "require": { + "php": "^7.1 || ^8.0" + }, + "require-dev": { + "doctrine/coding-standard": "^9.0", + "phpstan/phpstan": "^1.3", + "phpunit/phpunit": "^7.5 || ^8.5 || ^9.5", + "vimeo/psalm": "^4.11" + }, + "type": "library", + "autoload": { + "psr-4": { + "Doctrine\\Common\\Lexer\\": "lib/Doctrine/Common/Lexer" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Guilherme Blanco", + "email": "guilhermeblanco@gmail.com" + }, + { + "name": "Roman Borschel", + "email": "roman@code-factory.org" + }, + { + "name": "Johannes Schmitt", + "email": "schmittjoh@gmail.com" + } + ], + "description": "PHP Doctrine Lexer parser library that can be used in Top-Down, Recursive Descent Parsers.", + "homepage": "https://www.doctrine-project.org/projects/lexer.html", + "keywords": [ + "annotations", + "docblock", + "lexer", + "parser", + "php" + ], + "support": { + "issues": "https://github.com/doctrine/lexer/issues", + "source": "https://github.com/doctrine/lexer/tree/1.2.3" + }, + "funding": [ + { + "url": "https://www.doctrine-project.org/sponsorship.html", + "type": "custom" + }, + { + "url": "https://www.patreon.com/phpdoctrine", + "type": "patreon" + }, + { + "url": "https://tidelift.com/funding/github/packagist/doctrine%2Flexer", + "type": "tidelift" + } + ], + "time": "2022-02-28T11:07:21+00:00" + }, + { + "name": "egulias/email-validator", + "version": "3.1.2", + "source": { + "type": "git", + "url": "https://github.com/egulias/EmailValidator.git", + "reference": "ee0db30118f661fb166bcffbf5d82032df484697" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/egulias/EmailValidator/zipball/ee0db30118f661fb166bcffbf5d82032df484697", + "reference": "ee0db30118f661fb166bcffbf5d82032df484697", + "shasum": "" + }, + "require": { + "doctrine/lexer": "^1.2", + "php": ">=7.2", + "symfony/polyfill-intl-idn": "^1.15" + }, + "require-dev": { + "php-coveralls/php-coveralls": "^2.2", + "phpunit/phpunit": "^8.5.8|^9.3.3", + "vimeo/psalm": "^4" + }, + "suggest": { + "ext-intl": "PHP Internationalization Libraries are required to use the SpoofChecking validation" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "3.0.x-dev" + } + }, + "autoload": { + "psr-4": { + "Egulias\\EmailValidator\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Eduardo Gulias Davis" + } + ], + "description": "A library for validating emails against several RFCs", + "homepage": "https://github.com/egulias/EmailValidator", + "keywords": [ + "email", + "emailvalidation", + "emailvalidator", + "validation", + "validator" + ], + "support": { + "issues": "https://github.com/egulias/EmailValidator/issues", + "source": "https://github.com/egulias/EmailValidator/tree/3.1.2" + }, + "funding": [ + { + "url": "https://github.com/egulias", + "type": "github" + } + ], + "time": "2021-10-11T09:18:27+00:00" + }, + { + "name": "swiftmailer/swiftmailer", + "version": "v6.3.0", + "source": { + "type": "git", + "url": "https://github.com/swiftmailer/swiftmailer.git", + "reference": "8a5d5072dca8f48460fce2f4131fcc495eec654c" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/swiftmailer/swiftmailer/zipball/8a5d5072dca8f48460fce2f4131fcc495eec654c", + "reference": "8a5d5072dca8f48460fce2f4131fcc495eec654c", + "shasum": "" + }, + "require": { + "egulias/email-validator": "^2.0|^3.1", + "php": ">=7.0.0", + "symfony/polyfill-iconv": "^1.0", + "symfony/polyfill-intl-idn": "^1.10", + "symfony/polyfill-mbstring": "^1.0" + }, + "require-dev": { + "mockery/mockery": "^1.0", + "symfony/phpunit-bridge": "^4.4|^5.4" + }, + "suggest": { + "ext-intl": "Needed to support internationalized email addresses" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "6.2-dev" + } + }, + "autoload": { + "files": [ + "lib/swift_required.php" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Chris Corbyn" + }, + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + } + ], + "description": "Swiftmailer, free feature-rich PHP mailer", + "homepage": "https://swiftmailer.symfony.com", + "keywords": [ + "email", + "mail", + "mailer" + ], + "support": { + "issues": "https://github.com/swiftmailer/swiftmailer/issues", + "source": "https://github.com/swiftmailer/swiftmailer/tree/v6.3.0" + }, + "funding": [ + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/swiftmailer/swiftmailer", + "type": "tidelift" + } + ], + "abandoned": "symfony/mailer", + "time": "2021-10-18T15:26:12+00:00" + }, + { + "name": "symfony/polyfill-intl-idn", + "version": "v1.25.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/polyfill-intl-idn.git", + "reference": "749045c69efb97c70d25d7463abba812e91f3a44" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/polyfill-intl-idn/zipball/749045c69efb97c70d25d7463abba812e91f3a44", + "reference": "749045c69efb97c70d25d7463abba812e91f3a44", + "shasum": "" + }, + "require": { + "php": ">=7.1", + "symfony/polyfill-intl-normalizer": "^1.10", + "symfony/polyfill-php72": "^1.10" + }, + "suggest": { + "ext-intl": "For best performance" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "1.23-dev" + }, + "thanks": { + "name": "symfony/polyfill", + "url": "https://github.com/symfony/polyfill" + } + }, + "autoload": { + "files": [ + "bootstrap.php" + ], + "psr-4": { + "Symfony\\Polyfill\\Intl\\Idn\\": "" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Laurent Bassin", + "email": "laurent@bassin.info" + }, + { + "name": "Trevor Rowbotham", + "email": "trevor.rowbotham@pm.me" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony polyfill for intl's idn_to_ascii and idn_to_utf8 functions", + "homepage": "https://symfony.com", + "keywords": [ + "compatibility", + "idn", + "intl", + "polyfill", + "portable", + "shim" + ], + "support": { + "source": "https://github.com/symfony/polyfill-intl-idn/tree/v1.25.0" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2021-09-14T14:02:44+00:00" + }, + { + "name": "symfony/polyfill-intl-normalizer", + "version": "v1.25.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/polyfill-intl-normalizer.git", + "reference": "8590a5f561694770bdcd3f9b5c69dde6945028e8" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/polyfill-intl-normalizer/zipball/8590a5f561694770bdcd3f9b5c69dde6945028e8", + "reference": "8590a5f561694770bdcd3f9b5c69dde6945028e8", + "shasum": "" + }, + "require": { + "php": ">=7.1" + }, + "suggest": { + "ext-intl": "For best performance" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "1.23-dev" + }, + "thanks": { + "name": "symfony/polyfill", + "url": "https://github.com/symfony/polyfill" + } + }, + "autoload": { + "files": [ + "bootstrap.php" + ], + "psr-4": { + "Symfony\\Polyfill\\Intl\\Normalizer\\": "" + }, + "classmap": [ + "Resources/stubs" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony polyfill for intl's Normalizer class and related functions", + "homepage": "https://symfony.com", + "keywords": [ + "compatibility", + "intl", + "normalizer", + "polyfill", + "portable", + "shim" + ], + "support": { + "source": "https://github.com/symfony/polyfill-intl-normalizer/tree/v1.25.0" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2021-02-19T12:13:01+00:00" + } + ], + "packages-dev": [], + "aliases": [], + "minimum-stability": "stable", + "stability-flags": [], + "prefer-stable": false, + "prefer-lowest": false, + "platform": { + "php": ">=7.3.6" + }, + "platform-dev": [], + "platform-overrides": { + "php": "7.3.6" + }, + "plugin-api-version": "2.2.0" +} diff --git a/user/plugins/email/email.php b/user/plugins/email/email.php new file mode 100644 index 0000000..8d95c73 --- /dev/null +++ b/user/plugins/email/email.php @@ -0,0 +1,188 @@ + ['onPluginsInitialized', 0], + 'onFormProcessed' => ['onFormProcessed', 0], + 'onTwigTemplatePaths' => ['onTwigTemplatePaths', 0], + 'onSchedulerInitialized' => ['onSchedulerInitialized', 0], + 'onAdminSave' => ['onAdminSave', 0], + ]; + } + + /** + * @return ClassLoader + */ + public function autoload(): ClassLoader + { + return require __DIR__ . '/vendor/autoload.php'; + } + + /** + * Initialize emailing. + */ + public function onPluginsInitialized() + { + $this->email = new Email(); + + if ($this->email::enabled()) { + $this->grav['Email'] = $this->email; + } + } + + /** + * Add twig paths to plugin templates. + */ + public function onTwigTemplatePaths() + { + $twig = $this->grav['twig']; + $twig->twig_paths[] = __DIR__ . '/templates'; + } + + /** + * Force compile during save if admin plugin save + * + * @param Event $event + */ + public function onAdminSave(Event $event) + { + /** @var Data $obj */ + $obj = $event['object']; + + + + if ($obj instanceof Data && $obj->blueprints()->getFilename() === 'email/blueprints') { + $current_pw = $this->grav['config']->get('plugins.email.mailer.smtp.password'); + $new_pw = $obj->get('mailer.smtp.password'); + if (!empty($current_pw) && empty($new_pw)) { + $obj->set('mailer.smtp.password', $current_pw); + } + + } + } + + /** + * Send email when processing the form data. + * + * @param Event $event + */ + public function onFormProcessed(Event $event) + { + $form = $event['form']; + $action = $event['action']; + $params = $event['params']; + + if (!$this->email->enabled()) { + return; + } + + switch ($action) { + case 'email': + // Prepare Twig variables + $vars = array( + 'form' => $form, + 'page' => $this->grav['page'] + ); + + // Copy files now, we need those. + // TODO: needs an update + $form->legacyUploads(); + $form->copyFiles(); + + $this->grav->fireEvent('onEmailSend', new Event(['params' => &$params, 'vars' => &$vars])); + + if ($this->isAssocArray($params)) { + $this->sendFormEmail($form, $params, $vars); + } else { + foreach ($params as $email) { + $this->sendFormEmail($form, $email, $vars); + } + } + + break; + } + } + + /** + * Add index job to Grav Scheduler + * Requires Grav 1.6.0 - Scheduler + */ + public function onSchedulerInitialized(Event $e) + { + if ($this->config->get('plugins.email.queue.enabled')) { + + /** @var Scheduler $scheduler */ + $scheduler = $e['scheduler']; + $at = $this->config->get('plugins.email.queue.flush_frequency'); + $logs = 'logs/email-queue.out'; + $job = $scheduler->addFunction('Grav\Plugin\Email\Email::flushQueue', [], 'email-flushqueue'); + $job->at($at); + $job->output($logs); + $job->backlink('/plugins/email'); + } + } + + protected function sendFormEmail($form, $params, $vars) + { + // Build message + $message = $this->email->buildMessage($params, $vars); + + if (isset($params['attachments'])) { + $filesToAttach = (array)$params['attachments']; + if ($filesToAttach) foreach ($filesToAttach as $fileToAttach) { + $filesValues = $form->value($fileToAttach); + + if ($filesValues) foreach($filesValues as $fileValues) { + if (isset($fileValues['file'])) { + $filename = $fileValues['file']; + } else { + $filename = ROOT_DIR . $fileValues['path']; + } + + try { + $message->attach(\Swift_Attachment::fromPath($filename)); + } catch (\Exception $e) { + // Log any issues + $this->grav['log']->error($e->getMessage()); + } + } + } + } + + //fire event to apply optional signers + $this->grav->fireEvent('onEmailMessage', new Event(['message' => $message, 'params' => $params, 'form' => $form])); + + // Send e-mail + $this->email->send($message); + + //fire event after eMail was sent + $this->grav->fireEvent('onEmailSent', new Event(['message' => $message, 'params' => $params, 'form' => $form])); + } + + protected function isAssocArray(array $arr) + { + if (array() === $arr) return false; + $keys = array_keys($arr); + $index_keys = range(0, count($arr) - 1); + return $keys !== $index_keys; + } + +} diff --git a/user/plugins/email/email.yaml b/user/plugins/email/email.yaml new file mode 100644 index 0000000..6ddf722 --- /dev/null +++ b/user/plugins/email/email.yaml @@ -0,0 +1,23 @@ +enabled: true +from: +from_name: +to: +to_name: +queue: + enabled: false + flush_frequency: '* * * * *' + flush_msg_limit: 10 + flush_time_limit: 100 +mailer: + engine: sendmail + smtp: + server: localhost + port: 25 + encryption: none + user: '' + password: '' + auth_mode: '' + sendmail: + bin: '/usr/sbin/sendmail -bs' +content_type: text/html +debug: false \ No newline at end of file diff --git a/user/plugins/email/hebe.json b/user/plugins/email/hebe.json new file mode 100644 index 0000000..3831af4 --- /dev/null +++ b/user/plugins/email/hebe.json @@ -0,0 +1,15 @@ +{ + "project":"grav-plugin-email", + "platforms":{ + "grav":{ + "nodes":{ + "plugin":[ + { + "source":"/", + "destination":"/user/plugins/email" + } + ] + } + } + } +} diff --git a/user/plugins/email/languages.yaml b/user/plugins/email/languages.yaml new file mode 100644 index 0000000..fa89ac4 --- /dev/null +++ b/user/plugins/email/languages.yaml @@ -0,0 +1,165 @@ +en: + PLUGIN_EMAIL: + MAIL_ENGINE: "Mail Engine" + MAIL_ENGINE_DISABLED: "Disabled" + CONTENT_TYPE: "Content type" + CONTENT_TYPE_PLAIN_TEXT: "Plain text" + CHARSET: "Charset" + CHARSET_PLACEHOLDER: "Defaults to UTF-8" + EMAIL_FORM: "From address" + EMAIL_FORM_PLACEHOLDER: "Default email from address" + EMAIL_FROM_NAME: "From name" + EMAIL_FROM_NAME_PLACEHOLDER: "Default email from name" + EMAIL_TO: "To address" + EMAIL_TO_PLACEHOLDER: "Default email to address" + EMAIL_TO_NAME: "To name" + EMAIL_TO_NAME_PLACEHOLDER: "Default email to name" + EMAIL_CC: "CC address" + EMAIL_CC_PLACEHOLDER: "Default email CC address" + EMAIL_CC_NAME: "CC name" + EMAIL_CC_NAME_PLACEHOLDER: "Default email CC name" + EMAIL_BCC: "BCC address" + EMAIL_BCC_PLACEHOLDER: "Default email BCC address" + EMAIL_REPLY_TO: "Reply-to address" + EMAIL_REPLY_TO_PLACEHOLDER: "Default email reply-to address" + EMAIL_REPLY_TO_NAME: "Reply-to name" + EMAIL_REPLY_TO_NAME_PLACEHOLDER: "Default email reply-to name" + EMAIL_BODY: "Body" + EMAIL_BODY_PLACEHOLDER: "Defaults to a table of all form fields" + SMTP_SERVER: "SMTP server" + SMTP_SERVER_PLACEHOLDER: "e.g. smtp.google.com" + SMTP_PORT: "SMTP port" + SMTP_PORT_PLACEHOLDER: "Defaults to 25 (plaintext) / 587 (encrypted)" + SMTP_ENCRYPTION: "SMTP encryption" + SMTP_ENCRYPTION_NONE: "None" + SMTP_LOGIN_NAME: "SMTP login name" + SMTP_PASSWORD: "SMTP password" + SMTP_AUTH_MODE: "SMTP auth mode" + PATH_TO_SENDMAIL: "Path to sendmail" + DEBUG: "Debug" + EMAIL_NOT_CONFIGURED: "Email not configured" + PLEASE_CONFIGURE_A_TO_ADDRESS: "Please configure a 'to' address in the Email Plugin settings, or in the form" + PLEASE_CONFIGURE_A_FROM_ADDRESS: "Please configure a 'from' address in the Email Plugin settings, or in the form" + TEST_EMAIL_BODY: "

    Testing Email

    This test email has been sent based on the following configuration:

    %1$s

    " + EMAIL_DEFAULTS: "Email Defaults" + SMTP_CONFIGURATION: "SMTP Configuration" + SENDMAIL_CONFIGURATION: "Sendmail Configuration" + ADVANCED: "Advanced" + EMAIL_FOOTER: "GetGrav.org" + QUEUE_TITLE: "Email Queue" + QUEUE_DESC: "When you enable the email queue, email is not sent immediately, rather the email is sent to the queue, and then the Grav scheduler will flush the queue and actually send the email based on the configured frequency. This ensures Grav is not waiting around for email connections to complete." + QUEUE_ENABLED: "Enabled" + QUEUE_FLUSH_FREQUENCY: "Flush Frequency" + QUEUE_FLUSH_FREQUENCY_HELP: "Use 'cron' format" + QUEUE_FLUSH_MSG_LIMIT: "Messages per flush" + QUEUE_FLUSH_MSG_LIMIT_APPEND: "Messages" + QUEUE_FLUSH_TIME_LIMIT: "Flush time limit" + QUEUE_FLUSH_TIME_LIMIT_APPEND: "Seconds" + + + +da: + PLUGIN_EMAIL: + PLEASE_CONFIGURE_A_TO_ADDRESS: "Konfigurere venligst en 'til' email adresse i Email Plugin indstillingerne eller her i formularen" + PLEASE_CONFIGURE_A_FROM_ADDRESS: "Konfigurere venligst en 'fra' email adresse i Email Plugin indstillingerne eller her i formularen" + +de: + PLUGIN_EMAIL: + EMAIL_NOT_CONFIGURED: "E-Mail ist nicht konfiguriert" + PLEASE_CONFIGURE_A_TO_ADDRESS: "Bitte konfigurieren sie eine 'An' ('to') Adresse in den Email-Plugin-Einstellungen oder im Formular." + PLEASE_CONFIGURE_A_FROM_ADDRESS: "Bitte konfigurieren sie eine 'Von' ('from') Adresse in den Email-Plugin-Einstellungen oder im Formular." + +es: + PLUGIN_EMAIL: + PLEASE_CONFIGURE_A_TO_ADDRESS: "Por favor configura una dirección de 'remitente' en la configuración del Plugin de Email o en el formulario" + PLEASE_CONFIGURE_A_FROM_ADDRESS: "Por favor configura una dirección de 'destinatario' en la configuración del Plugin de Email o en el formulario" + +fr: + PLUGIN_EMAIL: + EMAIL_NOT_CONFIGURED: "L’e-mail n’est pas configuré" + PLEASE_CONFIGURE_A_TO_ADDRESS: "Veuillez configurer une adresse de 'destinataire' dans les paramètres du Plugin ou dans le formulaire." + PLEASE_CONFIGURE_A_FROM_ADDRESS: "Veuillez configurer une adresse 'd'expéditeur' dans les paramètres du Plugin ou dans le formulaire." + TEST_EMAIL_BODY: "

    E-mail de test

    Cet e-mail de test est basé sur la configuration suivante :

    %1$s

    " + EMAIL_FOOTER: "GetGrav.org" + +hr: + PLUGIN_EMAIL: + EMAIL_NOT_CONFIGURED: "Email nije konfiguriran" + PLEASE_CONFIGURE_A_TO_ADDRESS: "Konfigurirajte 'za' ('to') adresu u postavkama Email dodatka ili u obrascu" + PLEASE_CONFIGURE_A_FROM_ADDRESS: "Konfigurirajte 'od' ('from') adresu u postavkama Email dodatka ili u obrascu" + +it: + PLUGIN_EMAIL: + PLEASE_CONFIGURE_A_TO_ADDRESS: "Per favore, configura l'indirizzo di destinazione ('to') nella configurazione del Plugin Email, oppure direttamente nella form." + PLEASE_CONFIGURE_A_FROM_ADDRESS: "Per favore, configura l'indirizzo di provenienza ('from') nella configurazione del Plugin Email, oppure direttamente nella form" + +ro: + PLUGIN_EMAIL: + EMAIL_NOT_CONFIGURED: "Adresa de email nu este configurată" + PLEASE_CONFIGURE_A_TO_ADDRESS: "Vă rugam setați o adresă 'către' în setările modulului Email sau în formular" + PLEASE_CONFIGURE_A_FROM_ADDRESS: "Vă rugam setați o adresă 'de la' în setările modulului Email sau în formular" + +ru: + PLUGIN_EMAIL: + MAIL_ENGINE: "Почтовая система" + MAIL_ENGINE_DISABLED: "Отключена" + CONTENT_TYPE: "Тип контента" + CONTENT_TYPE_PLAIN_TEXT: "Простой текст" + CHARSET: "Кодировка" + CHARSET_PLACEHOLDER: "По умолчанию UTF-8" + EMAIL_DEFAULTS: "Email настройки по умолчанию" + EMAIL_FORM: "Почта отправителя" + EMAIL_FORM_PLACEHOLDER: "Email адрес отправителя по умолчанию" + EMAIL_FROM_NAME: "Имя почты отправителя" + EMAIL_FROM_NAME_PLACEHOLDER: "Email имя отправителя по умолчанию" + EMAIL_TO: "Почта получателя" + EMAIL_TO_PLACEHOLDER: "Email адрес получателя по умолчанию" + EMAIL_TO_NAME: "Имя почты получателя" + EMAIL_TO_NAME_PLACEHOLDER: "Email имя получателя по умолчанию" + EMAIL_CC: "Почта CC" + EMAIL_CC_PLACEHOLDER: "Email CC адрес по умолчанию" + EMAIL_CC_NAME: "Имя почты CC" + EMAIL_CC_NAME_PLACEHOLDER: "Email CC имя по умолчанию" + EMAIL_BCC: "Почта BCC" + EMAIL_BCC_PLACEHOLDER: "Email BCC адрес по умолчанию" + EMAIL_REPLY_TO: "Почта для ответов" + EMAIL_REPLY_TO_PLACEHOLDER: "Email для ответов адрес по умолчанию" + EMAIL_REPLY_TO_NAME: "Имя почты для ответов" + EMAIL_REPLY_TO_NAME_PLACEHOLDER: "Email для ответов имя по умолчанию" + EMAIL_BODY: "Тело сообщения" + EMAIL_BODY_PLACEHOLDER: "По умолчанию используется таблица всех полей формы" + SMTP_CONFIGURATION: "Конфигурация SMTP" + SMTP_SERVER: "SMTP сервер" + SMTP_SERVER_PLACEHOLDER: "e.g. smtp.google.com" + SMTP_PORT: "SMTP порт" + SMTP_PORT_PLACEHOLDER: "По умолчанию 25 (plaintext) / 587 (encrypted)" + SMTP_ENCRYPTION: "SMTP шифрование" + SMTP_ENCRYPTION_NONE: "Нет" + SMTP_LOGIN_NAME: "SMTP логин" + SMTP_PASSWORD: "SMTP пароль" + SENDMAIL_CONFIGURATION: "Конфигурация Sendmail" + PATH_TO_SENDMAIL: "Путь к sendmail" + QUEUE_TITLE: "Очередь Email" + QUEUE_DESC: "Когда вы включаете очередь email, электронная почта не отправляется немедленно, а отправляется в очередь, затем планировщик Grav обрабатывает очередь и на основе настроенной частоты фактически отправляет электронную почту. Это гарантирует, что Grav не ждет завершения подключения к электронной почте." + QUEUE_ENABLED: "Включено" + QUEUE_FLUSH_FREQUENCY: "Частота обраблтки" + QUEUE_FLUSH_FREQUENCY_HELP: "Использовать формат 'cron'" + QUEUE_FLUSH_MSG_LIMIT: "Количество сообщений на задачу" + QUEUE_FLUSH_MSG_LIMIT_APPEND: "Сообщений" + QUEUE_FLUSH_TIME_LIMIT: "Ограничение времени обработки" + QUEUE_FLUSH_TIME_LIMIT_APPEND: "Секунд" + ADVANCED: "Расширенные" + DEBUG: "Отладка" + EMAIL_NOT_CONFIGURED: "Электронная почта не настроена" + PLEASE_CONFIGURE_A_TO_ADDRESS: "Пожалуйста настройте адрес получателя ('to') в настройках плагина Email Plugin, или на форме" + PLEASE_CONFIGURE_A_FROM_ADDRESS: "Пожалуйста настройте адрес отправителя ('from') в настройках плагина Email Plugin, или на форме" + TEST_EMAIL_BODY: "

    Тестирование электронной почты

    Это тестовое письмо отправлено на основе следующей конфигурации:

    %1$s

    " + EMAIL_FOOTER: "GetGrav.org" + +uk: + PLUGIN_EMAIL: + EMAIL_NOT_CONFIGURED: "Електронна пошта не налаштована" + PLEASE_CONFIGURE_A_TO_ADDRESS: "Будь ласка налаштуйте адресу одержувача ('to') в налаштуваннях плагіна Email Plugin, або на формі" + PLEASE_CONFIGURE_A_FROM_ADDRESS: "Будь ласка налаштуйте адресу відправника ('from') в налаштуваннях плагіна Email Plugin, або на формі" + TEST_EMAIL_BODY: "

    Тестування електронної пошти

    Це тестовий лист відправлено на основі такої конфігурації:

    %1$s

    " + EMAIL_FOOTER: "GetGrav.org" diff --git a/user/plugins/email/templates/email/base.html.twig b/user/plugins/email/templates/email/base.html.twig new file mode 100644 index 0000000..0dd827f --- /dev/null +++ b/user/plugins/email/templates/email/base.html.twig @@ -0,0 +1,214 @@ + + + + + + + + + + + + + + + + + + +
    +
    + + + + +
    + {% block content %} + {{ content|raw }} + {% endblock content %} +
    +
    +
    + + + + + + + + + + + + + + diff --git a/user/plugins/email/vendor/autoload.php b/user/plugins/email/vendor/autoload.php new file mode 100644 index 0000000..26a2db7 --- /dev/null +++ b/user/plugins/email/vendor/autoload.php @@ -0,0 +1,7 @@ + + * Jordi Boggiano + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Composer\Autoload; + +/** + * ClassLoader implements a PSR-0, PSR-4 and classmap class loader. + * + * $loader = new \Composer\Autoload\ClassLoader(); + * + * // register classes with namespaces + * $loader->add('Symfony\Component', __DIR__.'/component'); + * $loader->add('Symfony', __DIR__.'/framework'); + * + * // activate the autoloader + * $loader->register(); + * + * // to enable searching the include path (eg. for PEAR packages) + * $loader->setUseIncludePath(true); + * + * In this example, if you try to use a class in the Symfony\Component + * namespace or one of its children (Symfony\Component\Console for instance), + * the autoloader will first look for the class under the component/ + * directory, and it will then fallback to the framework/ directory if not + * found before giving up. + * + * This class is loosely based on the Symfony UniversalClassLoader. + * + * @author Fabien Potencier + * @author Jordi Boggiano + * @see https://www.php-fig.org/psr/psr-0/ + * @see https://www.php-fig.org/psr/psr-4/ + */ +class ClassLoader +{ + /** @var ?string */ + private $vendorDir; + + // PSR-4 + /** + * @var array[] + * @psalm-var array> + */ + private $prefixLengthsPsr4 = array(); + /** + * @var array[] + * @psalm-var array> + */ + private $prefixDirsPsr4 = array(); + /** + * @var array[] + * @psalm-var array + */ + private $fallbackDirsPsr4 = array(); + + // PSR-0 + /** + * @var array[] + * @psalm-var array> + */ + private $prefixesPsr0 = array(); + /** + * @var array[] + * @psalm-var array + */ + private $fallbackDirsPsr0 = array(); + + /** @var bool */ + private $useIncludePath = false; + + /** + * @var string[] + * @psalm-var array + */ + private $classMap = array(); + + /** @var bool */ + private $classMapAuthoritative = false; + + /** + * @var bool[] + * @psalm-var array + */ + private $missingClasses = array(); + + /** @var ?string */ + private $apcuPrefix; + + /** + * @var self[] + */ + private static $registeredLoaders = array(); + + /** + * @param ?string $vendorDir + */ + public function __construct($vendorDir = null) + { + $this->vendorDir = $vendorDir; + } + + /** + * @return string[] + */ + public function getPrefixes() + { + if (!empty($this->prefixesPsr0)) { + return call_user_func_array('array_merge', array_values($this->prefixesPsr0)); + } + + return array(); + } + + /** + * @return array[] + * @psalm-return array> + */ + public function getPrefixesPsr4() + { + return $this->prefixDirsPsr4; + } + + /** + * @return array[] + * @psalm-return array + */ + public function getFallbackDirs() + { + return $this->fallbackDirsPsr0; + } + + /** + * @return array[] + * @psalm-return array + */ + public function getFallbackDirsPsr4() + { + return $this->fallbackDirsPsr4; + } + + /** + * @return string[] Array of classname => path + * @psalm-return array + */ + public function getClassMap() + { + return $this->classMap; + } + + /** + * @param string[] $classMap Class to filename map + * @psalm-param array $classMap + * + * @return void + */ + public function addClassMap(array $classMap) + { + if ($this->classMap) { + $this->classMap = array_merge($this->classMap, $classMap); + } else { + $this->classMap = $classMap; + } + } + + /** + * Registers a set of PSR-0 directories for a given prefix, either + * appending or prepending to the ones previously set for this prefix. + * + * @param string $prefix The prefix + * @param string[]|string $paths The PSR-0 root directories + * @param bool $prepend Whether to prepend the directories + * + * @return void + */ + public function add($prefix, $paths, $prepend = false) + { + if (!$prefix) { + if ($prepend) { + $this->fallbackDirsPsr0 = array_merge( + (array) $paths, + $this->fallbackDirsPsr0 + ); + } else { + $this->fallbackDirsPsr0 = array_merge( + $this->fallbackDirsPsr0, + (array) $paths + ); + } + + return; + } + + $first = $prefix[0]; + if (!isset($this->prefixesPsr0[$first][$prefix])) { + $this->prefixesPsr0[$first][$prefix] = (array) $paths; + + return; + } + if ($prepend) { + $this->prefixesPsr0[$first][$prefix] = array_merge( + (array) $paths, + $this->prefixesPsr0[$first][$prefix] + ); + } else { + $this->prefixesPsr0[$first][$prefix] = array_merge( + $this->prefixesPsr0[$first][$prefix], + (array) $paths + ); + } + } + + /** + * Registers a set of PSR-4 directories for a given namespace, either + * appending or prepending to the ones previously set for this namespace. + * + * @param string $prefix The prefix/namespace, with trailing '\\' + * @param string[]|string $paths The PSR-4 base directories + * @param bool $prepend Whether to prepend the directories + * + * @throws \InvalidArgumentException + * + * @return void + */ + public function addPsr4($prefix, $paths, $prepend = false) + { + if (!$prefix) { + // Register directories for the root namespace. + if ($prepend) { + $this->fallbackDirsPsr4 = array_merge( + (array) $paths, + $this->fallbackDirsPsr4 + ); + } else { + $this->fallbackDirsPsr4 = array_merge( + $this->fallbackDirsPsr4, + (array) $paths + ); + } + } elseif (!isset($this->prefixDirsPsr4[$prefix])) { + // Register directories for a new namespace. + $length = strlen($prefix); + if ('\\' !== $prefix[$length - 1]) { + throw new \InvalidArgumentException("A non-empty PSR-4 prefix must end with a namespace separator."); + } + $this->prefixLengthsPsr4[$prefix[0]][$prefix] = $length; + $this->prefixDirsPsr4[$prefix] = (array) $paths; + } elseif ($prepend) { + // Prepend directories for an already registered namespace. + $this->prefixDirsPsr4[$prefix] = array_merge( + (array) $paths, + $this->prefixDirsPsr4[$prefix] + ); + } else { + // Append directories for an already registered namespace. + $this->prefixDirsPsr4[$prefix] = array_merge( + $this->prefixDirsPsr4[$prefix], + (array) $paths + ); + } + } + + /** + * Registers a set of PSR-0 directories for a given prefix, + * replacing any others previously set for this prefix. + * + * @param string $prefix The prefix + * @param string[]|string $paths The PSR-0 base directories + * + * @return void + */ + public function set($prefix, $paths) + { + if (!$prefix) { + $this->fallbackDirsPsr0 = (array) $paths; + } else { + $this->prefixesPsr0[$prefix[0]][$prefix] = (array) $paths; + } + } + + /** + * Registers a set of PSR-4 directories for a given namespace, + * replacing any others previously set for this namespace. + * + * @param string $prefix The prefix/namespace, with trailing '\\' + * @param string[]|string $paths The PSR-4 base directories + * + * @throws \InvalidArgumentException + * + * @return void + */ + public function setPsr4($prefix, $paths) + { + if (!$prefix) { + $this->fallbackDirsPsr4 = (array) $paths; + } else { + $length = strlen($prefix); + if ('\\' !== $prefix[$length - 1]) { + throw new \InvalidArgumentException("A non-empty PSR-4 prefix must end with a namespace separator."); + } + $this->prefixLengthsPsr4[$prefix[0]][$prefix] = $length; + $this->prefixDirsPsr4[$prefix] = (array) $paths; + } + } + + /** + * Turns on searching the include path for class files. + * + * @param bool $useIncludePath + * + * @return void + */ + public function setUseIncludePath($useIncludePath) + { + $this->useIncludePath = $useIncludePath; + } + + /** + * Can be used to check if the autoloader uses the include path to check + * for classes. + * + * @return bool + */ + public function getUseIncludePath() + { + return $this->useIncludePath; + } + + /** + * Turns off searching the prefix and fallback directories for classes + * that have not been registered with the class map. + * + * @param bool $classMapAuthoritative + * + * @return void + */ + public function setClassMapAuthoritative($classMapAuthoritative) + { + $this->classMapAuthoritative = $classMapAuthoritative; + } + + /** + * Should class lookup fail if not found in the current class map? + * + * @return bool + */ + public function isClassMapAuthoritative() + { + return $this->classMapAuthoritative; + } + + /** + * APCu prefix to use to cache found/not-found classes, if the extension is enabled. + * + * @param string|null $apcuPrefix + * + * @return void + */ + public function setApcuPrefix($apcuPrefix) + { + $this->apcuPrefix = function_exists('apcu_fetch') && filter_var(ini_get('apc.enabled'), FILTER_VALIDATE_BOOLEAN) ? $apcuPrefix : null; + } + + /** + * The APCu prefix in use, or null if APCu caching is not enabled. + * + * @return string|null + */ + public function getApcuPrefix() + { + return $this->apcuPrefix; + } + + /** + * Registers this instance as an autoloader. + * + * @param bool $prepend Whether to prepend the autoloader or not + * + * @return void + */ + public function register($prepend = false) + { + spl_autoload_register(array($this, 'loadClass'), true, $prepend); + + if (null === $this->vendorDir) { + return; + } + + if ($prepend) { + self::$registeredLoaders = array($this->vendorDir => $this) + self::$registeredLoaders; + } else { + unset(self::$registeredLoaders[$this->vendorDir]); + self::$registeredLoaders[$this->vendorDir] = $this; + } + } + + /** + * Unregisters this instance as an autoloader. + * + * @return void + */ + public function unregister() + { + spl_autoload_unregister(array($this, 'loadClass')); + + if (null !== $this->vendorDir) { + unset(self::$registeredLoaders[$this->vendorDir]); + } + } + + /** + * Loads the given class or interface. + * + * @param string $class The name of the class + * @return true|null True if loaded, null otherwise + */ + public function loadClass($class) + { + if ($file = $this->findFile($class)) { + includeFile($file); + + return true; + } + + return null; + } + + /** + * Finds the path to the file where the class is defined. + * + * @param string $class The name of the class + * + * @return string|false The path if found, false otherwise + */ + public function findFile($class) + { + // class map lookup + if (isset($this->classMap[$class])) { + return $this->classMap[$class]; + } + if ($this->classMapAuthoritative || isset($this->missingClasses[$class])) { + return false; + } + if (null !== $this->apcuPrefix) { + $file = apcu_fetch($this->apcuPrefix.$class, $hit); + if ($hit) { + return $file; + } + } + + $file = $this->findFileWithExtension($class, '.php'); + + // Search for Hack files if we are running on HHVM + if (false === $file && defined('HHVM_VERSION')) { + $file = $this->findFileWithExtension($class, '.hh'); + } + + if (null !== $this->apcuPrefix) { + apcu_add($this->apcuPrefix.$class, $file); + } + + if (false === $file) { + // Remember that this class does not exist. + $this->missingClasses[$class] = true; + } + + return $file; + } + + /** + * Returns the currently registered loaders indexed by their corresponding vendor directories. + * + * @return self[] + */ + public static function getRegisteredLoaders() + { + return self::$registeredLoaders; + } + + /** + * @param string $class + * @param string $ext + * @return string|false + */ + private function findFileWithExtension($class, $ext) + { + // PSR-4 lookup + $logicalPathPsr4 = strtr($class, '\\', DIRECTORY_SEPARATOR) . $ext; + + $first = $class[0]; + if (isset($this->prefixLengthsPsr4[$first])) { + $subPath = $class; + while (false !== $lastPos = strrpos($subPath, '\\')) { + $subPath = substr($subPath, 0, $lastPos); + $search = $subPath . '\\'; + if (isset($this->prefixDirsPsr4[$search])) { + $pathEnd = DIRECTORY_SEPARATOR . substr($logicalPathPsr4, $lastPos + 1); + foreach ($this->prefixDirsPsr4[$search] as $dir) { + if (file_exists($file = $dir . $pathEnd)) { + return $file; + } + } + } + } + } + + // PSR-4 fallback dirs + foreach ($this->fallbackDirsPsr4 as $dir) { + if (file_exists($file = $dir . DIRECTORY_SEPARATOR . $logicalPathPsr4)) { + return $file; + } + } + + // PSR-0 lookup + if (false !== $pos = strrpos($class, '\\')) { + // namespaced class name + $logicalPathPsr0 = substr($logicalPathPsr4, 0, $pos + 1) + . strtr(substr($logicalPathPsr4, $pos + 1), '_', DIRECTORY_SEPARATOR); + } else { + // PEAR-like class name + $logicalPathPsr0 = strtr($class, '_', DIRECTORY_SEPARATOR) . $ext; + } + + if (isset($this->prefixesPsr0[$first])) { + foreach ($this->prefixesPsr0[$first] as $prefix => $dirs) { + if (0 === strpos($class, $prefix)) { + foreach ($dirs as $dir) { + if (file_exists($file = $dir . DIRECTORY_SEPARATOR . $logicalPathPsr0)) { + return $file; + } + } + } + } + } + + // PSR-0 fallback dirs + foreach ($this->fallbackDirsPsr0 as $dir) { + if (file_exists($file = $dir . DIRECTORY_SEPARATOR . $logicalPathPsr0)) { + return $file; + } + } + + // PSR-0 include paths. + if ($this->useIncludePath && $file = stream_resolve_include_path($logicalPathPsr0)) { + return $file; + } + + return false; + } +} + +/** + * Scope isolated include. + * + * Prevents access to $this/self from included files. + * + * @param string $file + * @return void + * @private + */ +function includeFile($file) +{ + include $file; +} diff --git a/user/plugins/email/vendor/composer/InstalledVersions.php b/user/plugins/email/vendor/composer/InstalledVersions.php new file mode 100644 index 0000000..d50e0c9 --- /dev/null +++ b/user/plugins/email/vendor/composer/InstalledVersions.php @@ -0,0 +1,350 @@ + + * Jordi Boggiano + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Composer; + +use Composer\Autoload\ClassLoader; +use Composer\Semver\VersionParser; + +/** + * This class is copied in every Composer installed project and available to all + * + * See also https://getcomposer.org/doc/07-runtime.md#installed-versions + * + * To require its presence, you can require `composer-runtime-api ^2.0` + */ +class InstalledVersions +{ + /** + * @var mixed[]|null + * @psalm-var array{root: array{name: string, version: string, reference: string, pretty_version: string, aliases: string[], dev: bool, install_path: string, type: string}, versions: array}|array{}|null + */ + private static $installed; + + /** + * @var bool|null + */ + private static $canGetVendors; + + /** + * @var array[] + * @psalm-var array}> + */ + private static $installedByVendor = array(); + + /** + * Returns a list of all package names which are present, either by being installed, replaced or provided + * + * @return string[] + * @psalm-return list + */ + public static function getInstalledPackages() + { + $packages = array(); + foreach (self::getInstalled() as $installed) { + $packages[] = array_keys($installed['versions']); + } + + if (1 === \count($packages)) { + return $packages[0]; + } + + return array_keys(array_flip(\call_user_func_array('array_merge', $packages))); + } + + /** + * Returns a list of all package names with a specific type e.g. 'library' + * + * @param string $type + * @return string[] + * @psalm-return list + */ + public static function getInstalledPackagesByType($type) + { + $packagesByType = array(); + + foreach (self::getInstalled() as $installed) { + foreach ($installed['versions'] as $name => $package) { + if (isset($package['type']) && $package['type'] === $type) { + $packagesByType[] = $name; + } + } + } + + return $packagesByType; + } + + /** + * Checks whether the given package is installed + * + * This also returns true if the package name is provided or replaced by another package + * + * @param string $packageName + * @param bool $includeDevRequirements + * @return bool + */ + public static function isInstalled($packageName, $includeDevRequirements = true) + { + foreach (self::getInstalled() as $installed) { + if (isset($installed['versions'][$packageName])) { + return $includeDevRequirements || empty($installed['versions'][$packageName]['dev_requirement']); + } + } + + return false; + } + + /** + * Checks whether the given package satisfies a version constraint + * + * e.g. If you want to know whether version 2.3+ of package foo/bar is installed, you would call: + * + * Composer\InstalledVersions::satisfies(new VersionParser, 'foo/bar', '^2.3') + * + * @param VersionParser $parser Install composer/semver to have access to this class and functionality + * @param string $packageName + * @param string|null $constraint A version constraint to check for, if you pass one you have to make sure composer/semver is required by your package + * @return bool + */ + public static function satisfies(VersionParser $parser, $packageName, $constraint) + { + $constraint = $parser->parseConstraints($constraint); + $provided = $parser->parseConstraints(self::getVersionRanges($packageName)); + + return $provided->matches($constraint); + } + + /** + * Returns a version constraint representing all the range(s) which are installed for a given package + * + * It is easier to use this via isInstalled() with the $constraint argument if you need to check + * whether a given version of a package is installed, and not just whether it exists + * + * @param string $packageName + * @return string Version constraint usable with composer/semver + */ + public static function getVersionRanges($packageName) + { + foreach (self::getInstalled() as $installed) { + if (!isset($installed['versions'][$packageName])) { + continue; + } + + $ranges = array(); + if (isset($installed['versions'][$packageName]['pretty_version'])) { + $ranges[] = $installed['versions'][$packageName]['pretty_version']; + } + if (array_key_exists('aliases', $installed['versions'][$packageName])) { + $ranges = array_merge($ranges, $installed['versions'][$packageName]['aliases']); + } + if (array_key_exists('replaced', $installed['versions'][$packageName])) { + $ranges = array_merge($ranges, $installed['versions'][$packageName]['replaced']); + } + if (array_key_exists('provided', $installed['versions'][$packageName])) { + $ranges = array_merge($ranges, $installed['versions'][$packageName]['provided']); + } + + return implode(' || ', $ranges); + } + + throw new \OutOfBoundsException('Package "' . $packageName . '" is not installed'); + } + + /** + * @param string $packageName + * @return string|null If the package is being replaced or provided but is not really installed, null will be returned as version, use satisfies or getVersionRanges if you need to know if a given version is present + */ + public static function getVersion($packageName) + { + foreach (self::getInstalled() as $installed) { + if (!isset($installed['versions'][$packageName])) { + continue; + } + + if (!isset($installed['versions'][$packageName]['version'])) { + return null; + } + + return $installed['versions'][$packageName]['version']; + } + + throw new \OutOfBoundsException('Package "' . $packageName . '" is not installed'); + } + + /** + * @param string $packageName + * @return string|null If the package is being replaced or provided but is not really installed, null will be returned as version, use satisfies or getVersionRanges if you need to know if a given version is present + */ + public static function getPrettyVersion($packageName) + { + foreach (self::getInstalled() as $installed) { + if (!isset($installed['versions'][$packageName])) { + continue; + } + + if (!isset($installed['versions'][$packageName]['pretty_version'])) { + return null; + } + + return $installed['versions'][$packageName]['pretty_version']; + } + + throw new \OutOfBoundsException('Package "' . $packageName . '" is not installed'); + } + + /** + * @param string $packageName + * @return string|null If the package is being replaced or provided but is not really installed, null will be returned as reference + */ + public static function getReference($packageName) + { + foreach (self::getInstalled() as $installed) { + if (!isset($installed['versions'][$packageName])) { + continue; + } + + if (!isset($installed['versions'][$packageName]['reference'])) { + return null; + } + + return $installed['versions'][$packageName]['reference']; + } + + throw new \OutOfBoundsException('Package "' . $packageName . '" is not installed'); + } + + /** + * @param string $packageName + * @return string|null If the package is being replaced or provided but is not really installed, null will be returned as install path. Packages of type metapackages also have a null install path. + */ + public static function getInstallPath($packageName) + { + foreach (self::getInstalled() as $installed) { + if (!isset($installed['versions'][$packageName])) { + continue; + } + + return isset($installed['versions'][$packageName]['install_path']) ? $installed['versions'][$packageName]['install_path'] : null; + } + + throw new \OutOfBoundsException('Package "' . $packageName . '" is not installed'); + } + + /** + * @return array + * @psalm-return array{name: string, version: string, reference: string, pretty_version: string, aliases: string[], dev: bool, install_path: string, type: string} + */ + public static function getRootPackage() + { + $installed = self::getInstalled(); + + return $installed[0]['root']; + } + + /** + * Returns the raw installed.php data for custom implementations + * + * @deprecated Use getAllRawData() instead which returns all datasets for all autoloaders present in the process. getRawData only returns the first dataset loaded, which may not be what you expect. + * @return array[] + * @psalm-return array{root: array{name: string, version: string, reference: string, pretty_version: string, aliases: string[], dev: bool, install_path: string, type: string}, versions: array} + */ + public static function getRawData() + { + @trigger_error('getRawData only returns the first dataset loaded, which may not be what you expect. Use getAllRawData() instead which returns all datasets for all autoloaders present in the process.', E_USER_DEPRECATED); + + if (null === self::$installed) { + // only require the installed.php file if this file is loaded from its dumped location, + // and not from its source location in the composer/composer package, see https://github.com/composer/composer/issues/9937 + if (substr(__DIR__, -8, 1) !== 'C') { + self::$installed = include __DIR__ . '/installed.php'; + } else { + self::$installed = array(); + } + } + + return self::$installed; + } + + /** + * Returns the raw data of all installed.php which are currently loaded for custom implementations + * + * @return array[] + * @psalm-return list}> + */ + public static function getAllRawData() + { + return self::getInstalled(); + } + + /** + * Lets you reload the static array from another file + * + * This is only useful for complex integrations in which a project needs to use + * this class but then also needs to execute another project's autoloader in process, + * and wants to ensure both projects have access to their version of installed.php. + * + * A typical case would be PHPUnit, where it would need to make sure it reads all + * the data it needs from this class, then call reload() with + * `require $CWD/vendor/composer/installed.php` (or similar) as input to make sure + * the project in which it runs can then also use this class safely, without + * interference between PHPUnit's dependencies and the project's dependencies. + * + * @param array[] $data A vendor/composer/installed.php data set + * @return void + * + * @psalm-param array{root: array{name: string, version: string, reference: string, pretty_version: string, aliases: string[], dev: bool, install_path: string, type: string}, versions: array} $data + */ + public static function reload($data) + { + self::$installed = $data; + self::$installedByVendor = array(); + } + + /** + * @return array[] + * @psalm-return list}> + */ + private static function getInstalled() + { + if (null === self::$canGetVendors) { + self::$canGetVendors = method_exists('Composer\Autoload\ClassLoader', 'getRegisteredLoaders'); + } + + $installed = array(); + + if (self::$canGetVendors) { + foreach (ClassLoader::getRegisteredLoaders() as $vendorDir => $loader) { + if (isset(self::$installedByVendor[$vendorDir])) { + $installed[] = self::$installedByVendor[$vendorDir]; + } elseif (is_file($vendorDir.'/composer/installed.php')) { + $installed[] = self::$installedByVendor[$vendorDir] = require $vendorDir.'/composer/installed.php'; + if (null === self::$installed && strtr($vendorDir.'/composer', '\\', '/') === strtr(__DIR__, '\\', '/')) { + self::$installed = $installed[count($installed) - 1]; + } + } + } + } + + if (null === self::$installed) { + // only require the installed.php file if this file is loaded from its dumped location, + // and not from its source location in the composer/composer package, see https://github.com/composer/composer/issues/9937 + if (substr(__DIR__, -8, 1) !== 'C') { + self::$installed = require __DIR__ . '/installed.php'; + } else { + self::$installed = array(); + } + } + $installed[] = self::$installed; + + return $installed; + } +} diff --git a/user/plugins/email/vendor/composer/LICENSE b/user/plugins/email/vendor/composer/LICENSE new file mode 100644 index 0000000..f27399a --- /dev/null +++ b/user/plugins/email/vendor/composer/LICENSE @@ -0,0 +1,21 @@ + +Copyright (c) Nils Adermann, Jordi Boggiano + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is furnished +to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. + diff --git a/user/plugins/email/vendor/composer/autoload_classmap.php b/user/plugins/email/vendor/composer/autoload_classmap.php new file mode 100644 index 0000000..17e18aa --- /dev/null +++ b/user/plugins/email/vendor/composer/autoload_classmap.php @@ -0,0 +1,12 @@ + $vendorDir . '/composer/InstalledVersions.php', + 'Grav\\Plugin\\EmailPlugin' => $baseDir . '/email.php', + 'Normalizer' => $vendorDir . '/symfony/polyfill-intl-normalizer/Resources/stubs/Normalizer.php', +); diff --git a/user/plugins/email/vendor/composer/autoload_files.php b/user/plugins/email/vendor/composer/autoload_files.php new file mode 100644 index 0000000..e652642 --- /dev/null +++ b/user/plugins/email/vendor/composer/autoload_files.php @@ -0,0 +1,12 @@ + $vendorDir . '/symfony/polyfill-intl-normalizer/bootstrap.php', + 'f598d06aa772fa33d905e87be6398fb1' => $vendorDir . '/symfony/polyfill-intl-idn/bootstrap.php', + '2c102faa651ef8ea5874edb585946bce' => $vendorDir . '/swiftmailer/swiftmailer/lib/swift_required.php', +); diff --git a/user/plugins/email/vendor/composer/autoload_namespaces.php b/user/plugins/email/vendor/composer/autoload_namespaces.php new file mode 100644 index 0000000..b7fc012 --- /dev/null +++ b/user/plugins/email/vendor/composer/autoload_namespaces.php @@ -0,0 +1,9 @@ + array($vendorDir . '/symfony/polyfill-intl-normalizer'), + 'Symfony\\Polyfill\\Intl\\Idn\\' => array($vendorDir . '/symfony/polyfill-intl-idn'), + 'Grav\\Plugin\\Email\\' => array($baseDir . '/classes'), + 'Grav\\Plugin\\Console\\' => array($baseDir . '/cli'), + 'Egulias\\EmailValidator\\' => array($vendorDir . '/egulias/email-validator/src'), + 'Doctrine\\Common\\Lexer\\' => array($vendorDir . '/doctrine/lexer/lib/Doctrine/Common/Lexer'), +); diff --git a/user/plugins/email/vendor/composer/autoload_real.php b/user/plugins/email/vendor/composer/autoload_real.php new file mode 100644 index 0000000..cdba7ec --- /dev/null +++ b/user/plugins/email/vendor/composer/autoload_real.php @@ -0,0 +1,80 @@ += 50600 && !defined('HHVM_VERSION') && (!function_exists('zend_loader_file_encoded') || !zend_loader_file_encoded()); + if ($useStaticLoader) { + require __DIR__ . '/autoload_static.php'; + + call_user_func(\Composer\Autoload\ComposerStaticInit73924571ea6ee98bb12d10ff20aff2ab::getInitializer($loader)); + } else { + $map = require __DIR__ . '/autoload_namespaces.php'; + foreach ($map as $namespace => $path) { + $loader->set($namespace, $path); + } + + $map = require __DIR__ . '/autoload_psr4.php'; + foreach ($map as $namespace => $path) { + $loader->setPsr4($namespace, $path); + } + + $classMap = require __DIR__ . '/autoload_classmap.php'; + if ($classMap) { + $loader->addClassMap($classMap); + } + } + + $loader->register(true); + + if ($useStaticLoader) { + $includeFiles = Composer\Autoload\ComposerStaticInit73924571ea6ee98bb12d10ff20aff2ab::$files; + } else { + $includeFiles = require __DIR__ . '/autoload_files.php'; + } + foreach ($includeFiles as $fileIdentifier => $file) { + composerRequire73924571ea6ee98bb12d10ff20aff2ab($fileIdentifier, $file); + } + + return $loader; + } +} + +/** + * @param string $fileIdentifier + * @param string $file + * @return void + */ +function composerRequire73924571ea6ee98bb12d10ff20aff2ab($fileIdentifier, $file) +{ + if (empty($GLOBALS['__composer_autoload_files'][$fileIdentifier])) { + $GLOBALS['__composer_autoload_files'][$fileIdentifier] = true; + + require $file; + } +} diff --git a/user/plugins/email/vendor/composer/autoload_static.php b/user/plugins/email/vendor/composer/autoload_static.php new file mode 100644 index 0000000..3d6d8ce --- /dev/null +++ b/user/plugins/email/vendor/composer/autoload_static.php @@ -0,0 +1,78 @@ + __DIR__ . '/..' . '/symfony/polyfill-intl-normalizer/bootstrap.php', + 'f598d06aa772fa33d905e87be6398fb1' => __DIR__ . '/..' . '/symfony/polyfill-intl-idn/bootstrap.php', + '2c102faa651ef8ea5874edb585946bce' => __DIR__ . '/..' . '/swiftmailer/swiftmailer/lib/swift_required.php', + ); + + public static $prefixLengthsPsr4 = array ( + 'S' => + array ( + 'Symfony\\Polyfill\\Intl\\Normalizer\\' => 33, + 'Symfony\\Polyfill\\Intl\\Idn\\' => 26, + ), + 'G' => + array ( + 'Grav\\Plugin\\Email\\' => 18, + 'Grav\\Plugin\\Console\\' => 20, + ), + 'E' => + array ( + 'Egulias\\EmailValidator\\' => 23, + ), + 'D' => + array ( + 'Doctrine\\Common\\Lexer\\' => 22, + ), + ); + + public static $prefixDirsPsr4 = array ( + 'Symfony\\Polyfill\\Intl\\Normalizer\\' => + array ( + 0 => __DIR__ . '/..' . '/symfony/polyfill-intl-normalizer', + ), + 'Symfony\\Polyfill\\Intl\\Idn\\' => + array ( + 0 => __DIR__ . '/..' . '/symfony/polyfill-intl-idn', + ), + 'Grav\\Plugin\\Email\\' => + array ( + 0 => __DIR__ . '/../..' . '/classes', + ), + 'Grav\\Plugin\\Console\\' => + array ( + 0 => __DIR__ . '/../..' . '/cli', + ), + 'Egulias\\EmailValidator\\' => + array ( + 0 => __DIR__ . '/..' . '/egulias/email-validator/src', + ), + 'Doctrine\\Common\\Lexer\\' => + array ( + 0 => __DIR__ . '/..' . '/doctrine/lexer/lib/Doctrine/Common/Lexer', + ), + ); + + public static $classMap = array ( + 'Composer\\InstalledVersions' => __DIR__ . '/..' . '/composer/InstalledVersions.php', + 'Grav\\Plugin\\EmailPlugin' => __DIR__ . '/../..' . '/email.php', + 'Normalizer' => __DIR__ . '/..' . '/symfony/polyfill-intl-normalizer/Resources/stubs/Normalizer.php', + ); + + public static function getInitializer(ClassLoader $loader) + { + return \Closure::bind(function () use ($loader) { + $loader->prefixLengthsPsr4 = ComposerStaticInit73924571ea6ee98bb12d10ff20aff2ab::$prefixLengthsPsr4; + $loader->prefixDirsPsr4 = ComposerStaticInit73924571ea6ee98bb12d10ff20aff2ab::$prefixDirsPsr4; + $loader->classMap = ComposerStaticInit73924571ea6ee98bb12d10ff20aff2ab::$classMap; + + }, null, ClassLoader::class); + } +} diff --git a/user/plugins/email/vendor/composer/installed.json b/user/plugins/email/vendor/composer/installed.json new file mode 100644 index 0000000..9bb23b4 --- /dev/null +++ b/user/plugins/email/vendor/composer/installed.json @@ -0,0 +1,412 @@ +{ + "packages": [ + { + "name": "doctrine/lexer", + "version": "1.2.3", + "version_normalized": "1.2.3.0", + "source": { + "type": "git", + "url": "https://github.com/doctrine/lexer.git", + "reference": "c268e882d4dbdd85e36e4ad69e02dc284f89d229" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/doctrine/lexer/zipball/c268e882d4dbdd85e36e4ad69e02dc284f89d229", + "reference": "c268e882d4dbdd85e36e4ad69e02dc284f89d229", + "shasum": "" + }, + "require": { + "php": "^7.1 || ^8.0" + }, + "require-dev": { + "doctrine/coding-standard": "^9.0", + "phpstan/phpstan": "^1.3", + "phpunit/phpunit": "^7.5 || ^8.5 || ^9.5", + "vimeo/psalm": "^4.11" + }, + "time": "2022-02-28T11:07:21+00:00", + "type": "library", + "installation-source": "dist", + "autoload": { + "psr-4": { + "Doctrine\\Common\\Lexer\\": "lib/Doctrine/Common/Lexer" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Guilherme Blanco", + "email": "guilhermeblanco@gmail.com" + }, + { + "name": "Roman Borschel", + "email": "roman@code-factory.org" + }, + { + "name": "Johannes Schmitt", + "email": "schmittjoh@gmail.com" + } + ], + "description": "PHP Doctrine Lexer parser library that can be used in Top-Down, Recursive Descent Parsers.", + "homepage": "https://www.doctrine-project.org/projects/lexer.html", + "keywords": [ + "annotations", + "docblock", + "lexer", + "parser", + "php" + ], + "support": { + "issues": "https://github.com/doctrine/lexer/issues", + "source": "https://github.com/doctrine/lexer/tree/1.2.3" + }, + "funding": [ + { + "url": "https://www.doctrine-project.org/sponsorship.html", + "type": "custom" + }, + { + "url": "https://www.patreon.com/phpdoctrine", + "type": "patreon" + }, + { + "url": "https://tidelift.com/funding/github/packagist/doctrine%2Flexer", + "type": "tidelift" + } + ], + "install-path": "../doctrine/lexer" + }, + { + "name": "egulias/email-validator", + "version": "3.1.2", + "version_normalized": "3.1.2.0", + "source": { + "type": "git", + "url": "https://github.com/egulias/EmailValidator.git", + "reference": "ee0db30118f661fb166bcffbf5d82032df484697" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/egulias/EmailValidator/zipball/ee0db30118f661fb166bcffbf5d82032df484697", + "reference": "ee0db30118f661fb166bcffbf5d82032df484697", + "shasum": "" + }, + "require": { + "doctrine/lexer": "^1.2", + "php": ">=7.2", + "symfony/polyfill-intl-idn": "^1.15" + }, + "require-dev": { + "php-coveralls/php-coveralls": "^2.2", + "phpunit/phpunit": "^8.5.8|^9.3.3", + "vimeo/psalm": "^4" + }, + "suggest": { + "ext-intl": "PHP Internationalization Libraries are required to use the SpoofChecking validation" + }, + "time": "2021-10-11T09:18:27+00:00", + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "3.0.x-dev" + } + }, + "installation-source": "dist", + "autoload": { + "psr-4": { + "Egulias\\EmailValidator\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Eduardo Gulias Davis" + } + ], + "description": "A library for validating emails against several RFCs", + "homepage": "https://github.com/egulias/EmailValidator", + "keywords": [ + "email", + "emailvalidation", + "emailvalidator", + "validation", + "validator" + ], + "support": { + "issues": "https://github.com/egulias/EmailValidator/issues", + "source": "https://github.com/egulias/EmailValidator/tree/3.1.2" + }, + "funding": [ + { + "url": "https://github.com/egulias", + "type": "github" + } + ], + "install-path": "../egulias/email-validator" + }, + { + "name": "swiftmailer/swiftmailer", + "version": "v6.3.0", + "version_normalized": "6.3.0.0", + "source": { + "type": "git", + "url": "https://github.com/swiftmailer/swiftmailer.git", + "reference": "8a5d5072dca8f48460fce2f4131fcc495eec654c" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/swiftmailer/swiftmailer/zipball/8a5d5072dca8f48460fce2f4131fcc495eec654c", + "reference": "8a5d5072dca8f48460fce2f4131fcc495eec654c", + "shasum": "" + }, + "require": { + "egulias/email-validator": "^2.0|^3.1", + "php": ">=7.0.0", + "symfony/polyfill-iconv": "^1.0", + "symfony/polyfill-intl-idn": "^1.10", + "symfony/polyfill-mbstring": "^1.0" + }, + "require-dev": { + "mockery/mockery": "^1.0", + "symfony/phpunit-bridge": "^4.4|^5.4" + }, + "suggest": { + "ext-intl": "Needed to support internationalized email addresses" + }, + "time": "2021-10-18T15:26:12+00:00", + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "6.2-dev" + } + }, + "installation-source": "dist", + "autoload": { + "files": [ + "lib/swift_required.php" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Chris Corbyn" + }, + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + } + ], + "description": "Swiftmailer, free feature-rich PHP mailer", + "homepage": "https://swiftmailer.symfony.com", + "keywords": [ + "email", + "mail", + "mailer" + ], + "support": { + "issues": "https://github.com/swiftmailer/swiftmailer/issues", + "source": "https://github.com/swiftmailer/swiftmailer/tree/v6.3.0" + }, + "funding": [ + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/swiftmailer/swiftmailer", + "type": "tidelift" + } + ], + "abandoned": "symfony/mailer", + "install-path": "../swiftmailer/swiftmailer" + }, + { + "name": "symfony/polyfill-intl-idn", + "version": "v1.25.0", + "version_normalized": "1.25.0.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/polyfill-intl-idn.git", + "reference": "749045c69efb97c70d25d7463abba812e91f3a44" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/polyfill-intl-idn/zipball/749045c69efb97c70d25d7463abba812e91f3a44", + "reference": "749045c69efb97c70d25d7463abba812e91f3a44", + "shasum": "" + }, + "require": { + "php": ">=7.1", + "symfony/polyfill-intl-normalizer": "^1.10", + "symfony/polyfill-php72": "^1.10" + }, + "suggest": { + "ext-intl": "For best performance" + }, + "time": "2021-09-14T14:02:44+00:00", + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "1.23-dev" + }, + "thanks": { + "name": "symfony/polyfill", + "url": "https://github.com/symfony/polyfill" + } + }, + "installation-source": "dist", + "autoload": { + "files": [ + "bootstrap.php" + ], + "psr-4": { + "Symfony\\Polyfill\\Intl\\Idn\\": "" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Laurent Bassin", + "email": "laurent@bassin.info" + }, + { + "name": "Trevor Rowbotham", + "email": "trevor.rowbotham@pm.me" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony polyfill for intl's idn_to_ascii and idn_to_utf8 functions", + "homepage": "https://symfony.com", + "keywords": [ + "compatibility", + "idn", + "intl", + "polyfill", + "portable", + "shim" + ], + "support": { + "source": "https://github.com/symfony/polyfill-intl-idn/tree/v1.25.0" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "install-path": "../symfony/polyfill-intl-idn" + }, + { + "name": "symfony/polyfill-intl-normalizer", + "version": "v1.25.0", + "version_normalized": "1.25.0.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/polyfill-intl-normalizer.git", + "reference": "8590a5f561694770bdcd3f9b5c69dde6945028e8" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/polyfill-intl-normalizer/zipball/8590a5f561694770bdcd3f9b5c69dde6945028e8", + "reference": "8590a5f561694770bdcd3f9b5c69dde6945028e8", + "shasum": "" + }, + "require": { + "php": ">=7.1" + }, + "suggest": { + "ext-intl": "For best performance" + }, + "time": "2021-02-19T12:13:01+00:00", + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "1.23-dev" + }, + "thanks": { + "name": "symfony/polyfill", + "url": "https://github.com/symfony/polyfill" + } + }, + "installation-source": "dist", + "autoload": { + "files": [ + "bootstrap.php" + ], + "psr-4": { + "Symfony\\Polyfill\\Intl\\Normalizer\\": "" + }, + "classmap": [ + "Resources/stubs" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony polyfill for intl's Normalizer class and related functions", + "homepage": "https://symfony.com", + "keywords": [ + "compatibility", + "intl", + "normalizer", + "polyfill", + "portable", + "shim" + ], + "support": { + "source": "https://github.com/symfony/polyfill-intl-normalizer/tree/v1.25.0" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "install-path": "../symfony/polyfill-intl-normalizer" + } + ], + "dev": false, + "dev-package-names": [] +} diff --git a/user/plugins/email/vendor/composer/installed.php b/user/plugins/email/vendor/composer/installed.php new file mode 100644 index 0000000..1b8f980 --- /dev/null +++ b/user/plugins/email/vendor/composer/installed.php @@ -0,0 +1,86 @@ + array( + 'pretty_version' => 'dev-develop', + 'version' => 'dev-develop', + 'type' => 'grav-plugin', + 'install_path' => __DIR__ . '/../../', + 'aliases' => array(), + 'reference' => '6ab4ab743d351b196fa32aa7885651e6b7e2e6d4', + 'name' => 'getgrav/grav-plugin-email', + 'dev' => false, + ), + 'versions' => array( + 'doctrine/lexer' => array( + 'pretty_version' => '1.2.3', + 'version' => '1.2.3.0', + 'type' => 'library', + 'install_path' => __DIR__ . '/../doctrine/lexer', + 'aliases' => array(), + 'reference' => 'c268e882d4dbdd85e36e4ad69e02dc284f89d229', + 'dev_requirement' => false, + ), + 'egulias/email-validator' => array( + 'pretty_version' => '3.1.2', + 'version' => '3.1.2.0', + 'type' => 'library', + 'install_path' => __DIR__ . '/../egulias/email-validator', + 'aliases' => array(), + 'reference' => 'ee0db30118f661fb166bcffbf5d82032df484697', + 'dev_requirement' => false, + ), + 'getgrav/grav-plugin-email' => array( + 'pretty_version' => 'dev-develop', + 'version' => 'dev-develop', + 'type' => 'grav-plugin', + 'install_path' => __DIR__ . '/../../', + 'aliases' => array(), + 'reference' => '6ab4ab743d351b196fa32aa7885651e6b7e2e6d4', + 'dev_requirement' => false, + ), + 'swiftmailer/swiftmailer' => array( + 'pretty_version' => 'v6.3.0', + 'version' => '6.3.0.0', + 'type' => 'library', + 'install_path' => __DIR__ . '/../swiftmailer/swiftmailer', + 'aliases' => array(), + 'reference' => '8a5d5072dca8f48460fce2f4131fcc495eec654c', + 'dev_requirement' => false, + ), + 'symfony/polyfill-iconv' => array( + 'dev_requirement' => false, + 'replaced' => array( + 0 => '*', + ), + ), + 'symfony/polyfill-intl-idn' => array( + 'pretty_version' => 'v1.25.0', + 'version' => '1.25.0.0', + 'type' => 'library', + 'install_path' => __DIR__ . '/../symfony/polyfill-intl-idn', + 'aliases' => array(), + 'reference' => '749045c69efb97c70d25d7463abba812e91f3a44', + 'dev_requirement' => false, + ), + 'symfony/polyfill-intl-normalizer' => array( + 'pretty_version' => 'v1.25.0', + 'version' => '1.25.0.0', + 'type' => 'library', + 'install_path' => __DIR__ . '/../symfony/polyfill-intl-normalizer', + 'aliases' => array(), + 'reference' => '8590a5f561694770bdcd3f9b5c69dde6945028e8', + 'dev_requirement' => false, + ), + 'symfony/polyfill-mbstring' => array( + 'dev_requirement' => false, + 'replaced' => array( + 0 => '*', + ), + ), + 'symfony/polyfill-php72' => array( + 'dev_requirement' => false, + 'replaced' => array( + 0 => '*', + ), + ), + ), +); diff --git a/user/plugins/email/vendor/composer/platform_check.php b/user/plugins/email/vendor/composer/platform_check.php new file mode 100644 index 0000000..0109125 --- /dev/null +++ b/user/plugins/email/vendor/composer/platform_check.php @@ -0,0 +1,26 @@ += 70306)) { + $issues[] = 'Your Composer dependencies require a PHP version ">= 7.3.6". You are running ' . PHP_VERSION . '.'; +} + +if ($issues) { + if (!headers_sent()) { + header('HTTP/1.1 500 Internal Server Error'); + } + if (!ini_get('display_errors')) { + if (PHP_SAPI === 'cli' || PHP_SAPI === 'phpdbg') { + fwrite(STDERR, 'Composer detected issues in your platform:' . PHP_EOL.PHP_EOL . implode(PHP_EOL, $issues) . PHP_EOL.PHP_EOL); + } elseif (!headers_sent()) { + echo 'Composer detected issues in your platform:' . PHP_EOL.PHP_EOL . str_replace('You are running '.PHP_VERSION.'.', '', implode(PHP_EOL, $issues)) . PHP_EOL.PHP_EOL; + } + } + trigger_error( + 'Composer detected issues in your platform: ' . implode(' ', $issues), + E_USER_ERROR + ); +} diff --git a/user/plugins/email/vendor/doctrine/lexer/LICENSE b/user/plugins/email/vendor/doctrine/lexer/LICENSE new file mode 100644 index 0000000..e8fdec4 --- /dev/null +++ b/user/plugins/email/vendor/doctrine/lexer/LICENSE @@ -0,0 +1,19 @@ +Copyright (c) 2006-2018 Doctrine Project + +Permission is hereby granted, free of charge, to any person obtaining a copy of +this software and associated documentation files (the "Software"), to deal in +the Software without restriction, including without limitation the rights to +use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies +of the Software, and to permit persons to whom the Software is furnished to do +so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/user/plugins/email/vendor/doctrine/lexer/README.md b/user/plugins/email/vendor/doctrine/lexer/README.md new file mode 100644 index 0000000..784f2a2 --- /dev/null +++ b/user/plugins/email/vendor/doctrine/lexer/README.md @@ -0,0 +1,9 @@ +# Doctrine Lexer + +[![Build Status](https://github.com/doctrine/lexer/workflows/Continuous%20Integration/badge.svg)](https://github.com/doctrine/lexer/actions) + +Base library for a lexer that can be used in Top-Down, Recursive Descent Parsers. + +This lexer is used in Doctrine Annotations and in Doctrine ORM (DQL). + +https://www.doctrine-project.org/projects/lexer.html diff --git a/user/plugins/email/vendor/doctrine/lexer/composer.json b/user/plugins/email/vendor/doctrine/lexer/composer.json new file mode 100644 index 0000000..c435647 --- /dev/null +++ b/user/plugins/email/vendor/doctrine/lexer/composer.json @@ -0,0 +1,41 @@ +{ + "name": "doctrine/lexer", + "type": "library", + "description": "PHP Doctrine Lexer parser library that can be used in Top-Down, Recursive Descent Parsers.", + "keywords": [ + "php", + "parser", + "lexer", + "annotations", + "docblock" + ], + "homepage": "https://www.doctrine-project.org/projects/lexer.html", + "license": "MIT", + "authors": [ + {"name": "Guilherme Blanco", "email": "guilhermeblanco@gmail.com"}, + {"name": "Roman Borschel", "email": "roman@code-factory.org"}, + {"name": "Johannes Schmitt", "email": "schmittjoh@gmail.com"} + ], + "require": { + "php": "^7.1 || ^8.0" + }, + "require-dev": { + "doctrine/coding-standard": "^9.0", + "phpstan/phpstan": "^1.3", + "phpunit/phpunit": "^7.5 || ^8.5 || ^9.5", + "vimeo/psalm": "^4.11" + }, + "autoload": { + "psr-4": { "Doctrine\\Common\\Lexer\\": "lib/Doctrine/Common/Lexer" } + }, + "autoload-dev": { + "psr-4": { "Doctrine\\Tests\\": "tests/Doctrine" } + }, + "config": { + "allow-plugins": { + "composer/package-versions-deprecated": true, + "dealerdirect/phpcodesniffer-composer-installer": true + }, + "sort-packages": true + } +} diff --git a/user/plugins/email/vendor/doctrine/lexer/lib/Doctrine/Common/Lexer/AbstractLexer.php b/user/plugins/email/vendor/doctrine/lexer/lib/Doctrine/Common/Lexer/AbstractLexer.php new file mode 100644 index 0000000..7e8a11d --- /dev/null +++ b/user/plugins/email/vendor/doctrine/lexer/lib/Doctrine/Common/Lexer/AbstractLexer.php @@ -0,0 +1,337 @@ + + */ + private $tokens = []; + + /** + * Current lexer position in input string. + * + * @var int + */ + private $position = 0; + + /** + * Current peek of current lexer position. + * + * @var int + */ + private $peek = 0; + + /** + * The next token in the input. + * + * @var mixed[]|null + * @psalm-var Token|null + */ + public $lookahead; + + /** + * The last matched/seen token. + * + * @var mixed[]|null + * @psalm-var Token|null + */ + public $token; + + /** + * Composed regex for input parsing. + * + * @var string|null + */ + private $regex; + + /** + * Sets the input data to be tokenized. + * + * The Lexer is immediately reset and the new input tokenized. + * Any unprocessed tokens from any previous input are lost. + * + * @param string $input The input to be tokenized. + * + * @return void + */ + public function setInput($input) + { + $this->input = $input; + $this->tokens = []; + + $this->reset(); + $this->scan($input); + } + + /** + * Resets the lexer. + * + * @return void + */ + public function reset() + { + $this->lookahead = null; + $this->token = null; + $this->peek = 0; + $this->position = 0; + } + + /** + * Resets the peek pointer to 0. + * + * @return void + */ + public function resetPeek() + { + $this->peek = 0; + } + + /** + * Resets the lexer position on the input to the given position. + * + * @param int $position Position to place the lexical scanner. + * + * @return void + */ + public function resetPosition($position = 0) + { + $this->position = $position; + } + + /** + * Retrieve the original lexer's input until a given position. + * + * @param int $position + * + * @return string + */ + public function getInputUntilPosition($position) + { + return substr($this->input, 0, $position); + } + + /** + * Checks whether a given token matches the current lookahead. + * + * @param int|string $type + * + * @return bool + */ + public function isNextToken($type) + { + return $this->lookahead !== null && $this->lookahead['type'] === $type; + } + + /** + * Checks whether any of the given tokens matches the current lookahead. + * + * @param list $types + * + * @return bool + */ + public function isNextTokenAny(array $types) + { + return $this->lookahead !== null && in_array($this->lookahead['type'], $types, true); + } + + /** + * Moves to the next token in the input string. + * + * @return bool + */ + public function moveNext() + { + $this->peek = 0; + $this->token = $this->lookahead; + $this->lookahead = isset($this->tokens[$this->position]) + ? $this->tokens[$this->position++] : null; + + return $this->lookahead !== null; + } + + /** + * Tells the lexer to skip input tokens until it sees a token with the given value. + * + * @param string $type The token type to skip until. + * + * @return void + */ + public function skipUntil($type) + { + while ($this->lookahead !== null && $this->lookahead['type'] !== $type) { + $this->moveNext(); + } + } + + /** + * Checks if given value is identical to the given token. + * + * @param mixed $value + * @param int|string $token + * + * @return bool + */ + public function isA($value, $token) + { + return $this->getType($value) === $token; + } + + /** + * Moves the lookahead token forward. + * + * @return mixed[]|null The next token or NULL if there are no more tokens ahead. + * @psalm-return Token|null + */ + public function peek() + { + if (isset($this->tokens[$this->position + $this->peek])) { + return $this->tokens[$this->position + $this->peek++]; + } + + return null; + } + + /** + * Peeks at the next token, returns it and immediately resets the peek. + * + * @return mixed[]|null The next token or NULL if there are no more tokens ahead. + * @psalm-return Token|null + */ + public function glimpse() + { + $peek = $this->peek(); + $this->peek = 0; + + return $peek; + } + + /** + * Scans the input string for tokens. + * + * @param string $input A query string. + * + * @return void + */ + protected function scan($input) + { + if (! isset($this->regex)) { + $this->regex = sprintf( + '/(%s)|%s/%s', + implode(')|(', $this->getCatchablePatterns()), + implode('|', $this->getNonCatchablePatterns()), + $this->getModifiers() + ); + } + + $flags = PREG_SPLIT_NO_EMPTY | PREG_SPLIT_DELIM_CAPTURE | PREG_SPLIT_OFFSET_CAPTURE; + $matches = preg_split($this->regex, $input, -1, $flags); + + if ($matches === false) { + // Work around https://bugs.php.net/78122 + $matches = [[$input, 0]]; + } + + foreach ($matches as $match) { + // Must remain before 'value' assignment since it can change content + $type = $this->getType($match[0]); + + $this->tokens[] = [ + 'value' => $match[0], + 'type' => $type, + 'position' => $match[1], + ]; + } + } + + /** + * Gets the literal for a given token. + * + * @param int|string $token + * + * @return int|string + */ + public function getLiteral($token) + { + $className = static::class; + $reflClass = new ReflectionClass($className); + $constants = $reflClass->getConstants(); + + foreach ($constants as $name => $value) { + if ($value === $token) { + return $className . '::' . $name; + } + } + + return $token; + } + + /** + * Regex modifiers + * + * @return string + */ + protected function getModifiers() + { + return 'iu'; + } + + /** + * Lexical catchable patterns. + * + * @return string[] + */ + abstract protected function getCatchablePatterns(); + + /** + * Lexical non-catchable patterns. + * + * @return string[] + */ + abstract protected function getNonCatchablePatterns(); + + /** + * Retrieve token type. Also processes the token value if necessary. + * + * @param string $value + * + * @return int|string|null + */ + abstract protected function getType(&$value); +} diff --git a/user/plugins/email/vendor/doctrine/lexer/psalm.xml b/user/plugins/email/vendor/doctrine/lexer/psalm.xml new file mode 100644 index 0000000..f331e50 --- /dev/null +++ b/user/plugins/email/vendor/doctrine/lexer/psalm.xml @@ -0,0 +1,15 @@ + + + + + + + + + diff --git a/user/plugins/email/vendor/egulias/email-validator/CHANGELOG.md b/user/plugins/email/vendor/egulias/email-validator/CHANGELOG.md new file mode 100644 index 0000000..83fd62e --- /dev/null +++ b/user/plugins/email/vendor/egulias/email-validator/CHANGELOG.md @@ -0,0 +1,33 @@ +# EmailValidator v3 Changelog + +## New Features + +* Access to local part and domain part from EmailParser +* Validations outside of the scope of the RFC will be considered "extra" validations, thus opening the door for adding new; will live in their own folder "extra" (as requested in #248, #195, #183). + +## Breacking changes + +* PHP version upgraded to match Symfony's (as of 12/2020). +* DNSCheckValidation now fails for missing MX records. While the RFC argues that the existence of only A records to be valid, starting in v3 they will be considered invalid. +* Emails domain part are now intenteded to be RFC 1035 compliant, rendering previous valid emails (e.g example@examp&) invalid. + +## PHP versions upgrade policy +PHP version upgrade requirement will happen via MINOR (3.x) version upgrades of the library, following the adoption level by major frameworks. + +## Changes +* #235 +* #215 +* #130 +* #258 +* #188 +* #181 +* #217 +* #214 +* #249 +* #236 +* #257 +* #210 + +## Thanks +To contributors, be it with PRs, reporting issues or supporting otherwise. + diff --git a/user/plugins/email/vendor/egulias/email-validator/CONTRIBUTING.md b/user/plugins/email/vendor/egulias/email-validator/CONTRIBUTING.md new file mode 100644 index 0000000..7b79e10 --- /dev/null +++ b/user/plugins/email/vendor/egulias/email-validator/CONTRIBUTING.md @@ -0,0 +1,153 @@ +# Contributing + +When contributing to this repository make sure to follow the Pull request process below. +Reduce to the minimum 3rd party dependencies. + +Please note we have a [code of conduct](#Code of Conduct), please follow it in all your interactions with the project. + +## Pull Request Process + +When doing a PR to v2 remember that you also have to do the PR port to v3, or tests confirming the bug is not reproducible. + +1. Supported version is v3. If you are fixing a bug in v2, please port to v3 +2. Use the title as a brief description of the changes +3. Describe the changes you are proposing + 1. If adding an extra validation state the benefits of adding it and the problem is solving + 2. Document in the readme, by adding it to the list +4. Provide appropiate tests for the code you are submitting: aim to keep the existing coverage percentage. +5. Add your Twitter handle (if you have) so we can thank you there. + +## License +By contributing, you agree that your contributions will be licensed under its MIT License. + +## Code of Conduct + +### Our Pledge + +We as members, contributors, and leaders pledge to make participation in our +community a harassment-free experience for everyone, regardless of age, body +size, visible or invisible disability, ethnicity, sex characteristics, gender +identity and expression, level of experience, education, socio-economic status, +nationality, personal appearance, race, religion, or sexual identity +and orientation. + +We pledge to act and interact in ways that contribute to an open, welcoming, +diverse, inclusive, and healthy community. + +### Our Standards + +Examples of behavior that contributes to a positive environment for our +community include: + +* Demonstrating empathy and kindness toward other people +* Being respectful of differing opinions, viewpoints, and experiences +* Giving and gracefully accepting constructive feedback +* Accepting responsibility and apologizing to those affected by our mistakes, + and learning from the experience +* Focusing on what is best not just for us as individuals, but for the + overall community + +Examples of unacceptable behavior include: + +* The use of sexualized language or imagery, and sexual attention or + advances of any kind +* Trolling, insulting or derogatory comments, and personal or political attacks +* Public or private harassment +* Publishing others' private information, such as a physical or email + address, without their explicit permission +* Other conduct which could reasonably be considered inappropriate in a + professional setting + +### Enforcement Responsibilities + +Community leaders are responsible for clarifying and enforcing our standards of +acceptable behavior and will take appropriate and fair corrective action in +response to any behavior that they deem inappropriate, threatening, offensive, +or harmful. + +Community leaders have the right and responsibility to remove, edit, or reject +comments, commits, code, wiki edits, issues, and other contributions that are +not aligned to this Code of Conduct, and will communicate reasons for moderation +decisions when appropriate. + +### Scope + +This Code of Conduct applies within all community spaces, and also applies when +an individual is officially representing the community in public spaces. +Examples of representing our community include using an official e-mail address, +posting via an official social media account, or acting as an appointed +representative at an online or offline event. + +### Enforcement + +Instances of abusive, harassing, or otherwise unacceptable behavior may be +reported to the community leaders responsible for enforcement at . +All complaints will be reviewed and investigated promptly and fairly. + +All community leaders are obligated to respect the privacy and security of the +reporter of any incident. + +#### Enforcement Guidelines + +Community leaders will follow these Community Impact Guidelines in determining +the consequences for any action they deem in violation of this Code of Conduct: + +#### 1. Correction + +**Community Impact**: Use of inappropriate language or other behavior deemed +unprofessional or unwelcome in the community. + +**Consequence**: A private, written warning from community leaders, providing +clarity around the nature of the violation and an explanation of why the +behavior was inappropriate. A public apology may be requested. + +#### 2. Warning + +**Community Impact**: A violation through a single incident or series +of actions. + +**Consequence**: A warning with consequences for continued behavior. No +interaction with the people involved, including unsolicited interaction with +those enforcing the Code of Conduct, for a specified period of time. This +includes avoiding interactions in community spaces as well as external channels +like social media. Violating these terms may lead to a temporary or +permanent ban. + +#### 3. Temporary Ban + +**Community Impact**: A serious violation of community standards, including +sustained inappropriate behavior. + +**Consequence**: A temporary ban from any sort of interaction or public +communication with the community for a specified period of time. No public or +private interaction with the people involved, including unsolicited interaction +with those enforcing the Code of Conduct, is allowed during this period. +Violating these terms may lead to a permanent ban. + +#### 4. Permanent Ban + +**Community Impact**: Demonstrating a pattern of violation of community +standards, including sustained inappropriate behavior, harassment of an +individual, or aggression toward or disparagement of classes of individuals. + +**Consequence**: A permanent ban from any sort of public interaction within +the community. + +### Attribution + +This Code of Conduct is adapted from the [Contributor Covenant][homepage], +version 2.0, available at +[https://www.contributor-covenant.org/version/2/0/code_of_conduct.html][v2.0]. + +Community Impact Guidelines were inspired by +[Mozilla's code of conduct enforcement ladder][Mozilla CoC]. + +For answers to common questions about this code of conduct, see the FAQ at +[https://www.contributor-covenant.org/faq][FAQ]. Translations are available +at [https://www.contributor-covenant.org/translations][translations]. + +[homepage]: https://www.contributor-covenant.org +[v2.0]: https://www.contributor-covenant.org/version/2/0/code_of_conduct.html +[Mozilla CoC]: https://github.com/mozilla/diversity +[FAQ]: https://www.contributor-covenant.org/faq +[translations]: https://www.contributor-covenant.org/translations diff --git a/user/plugins/email/vendor/egulias/email-validator/LICENSE b/user/plugins/email/vendor/egulias/email-validator/LICENSE new file mode 100644 index 0000000..1f0f267 --- /dev/null +++ b/user/plugins/email/vendor/egulias/email-validator/LICENSE @@ -0,0 +1,19 @@ +Copyright (c) 2013-2021 Eduardo Gulias Davis + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is furnished +to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. diff --git a/user/plugins/email/vendor/egulias/email-validator/composer.json b/user/plugins/email/vendor/egulias/email-validator/composer.json new file mode 100644 index 0000000..d598d1b --- /dev/null +++ b/user/plugins/email/vendor/egulias/email-validator/composer.json @@ -0,0 +1,38 @@ +{ + "name": "egulias/email-validator", + "description": "A library for validating emails against several RFCs", + "homepage": "https://github.com/egulias/EmailValidator", + "keywords": ["email", "validation", "validator", "emailvalidation", "emailvalidator"], + "license": "MIT", + "authors": [ + {"name": "Eduardo Gulias Davis"} + ], + "extra": { + "branch-alias": { + "dev-master": "3.0.x-dev" + } + }, + "require": { + "php": ">=7.2", + "doctrine/lexer": "^1.2", + "symfony/polyfill-intl-idn": "^1.15" + }, + "require-dev": { + "php-coveralls/php-coveralls": "^2.2", + "phpunit/phpunit": "^8.5.8|^9.3.3", + "vimeo/psalm": "^4" + }, + "suggest": { + "ext-intl": "PHP Internationalization Libraries are required to use the SpoofChecking validation" + }, + "autoload": { + "psr-4": { + "Egulias\\EmailValidator\\": "src" + } + }, + "autoload-dev": { + "psr-4": { + "Egulias\\EmailValidator\\Tests\\": "tests" + } + } +} diff --git a/user/plugins/email/vendor/egulias/email-validator/composer.lock b/user/plugins/email/vendor/egulias/email-validator/composer.lock new file mode 100644 index 0000000..c575e7f --- /dev/null +++ b/user/plugins/email/vendor/egulias/email-validator/composer.lock @@ -0,0 +1,4440 @@ +{ + "_readme": [ + "This file locks the dependencies of your project to a known state", + "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies", + "This file is @generated automatically" + ], + "content-hash": "a77d36b64bc1213fecf4d4f92d759c3b", + "packages": [ + { + "name": "doctrine/lexer", + "version": "1.2.1", + "source": { + "type": "git", + "url": "https://github.com/doctrine/lexer.git", + "reference": "e864bbf5904cb8f5bb334f99209b48018522f042" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/doctrine/lexer/zipball/e864bbf5904cb8f5bb334f99209b48018522f042", + "reference": "e864bbf5904cb8f5bb334f99209b48018522f042", + "shasum": "" + }, + "require": { + "php": "^7.2 || ^8.0" + }, + "require-dev": { + "doctrine/coding-standard": "^6.0", + "phpstan/phpstan": "^0.11.8", + "phpunit/phpunit": "^8.2" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.2.x-dev" + } + }, + "autoload": { + "psr-4": { + "Doctrine\\Common\\Lexer\\": "lib/Doctrine/Common/Lexer" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Guilherme Blanco", + "email": "guilhermeblanco@gmail.com" + }, + { + "name": "Roman Borschel", + "email": "roman@code-factory.org" + }, + { + "name": "Johannes Schmitt", + "email": "schmittjoh@gmail.com" + } + ], + "description": "PHP Doctrine Lexer parser library that can be used in Top-Down, Recursive Descent Parsers.", + "homepage": "https://www.doctrine-project.org/projects/lexer.html", + "keywords": [ + "annotations", + "docblock", + "lexer", + "parser", + "php" + ], + "support": { + "issues": "https://github.com/doctrine/lexer/issues", + "source": "https://github.com/doctrine/lexer/tree/1.2.1" + }, + "funding": [ + { + "url": "https://www.doctrine-project.org/sponsorship.html", + "type": "custom" + }, + { + "url": "https://www.patreon.com/phpdoctrine", + "type": "patreon" + }, + { + "url": "https://tidelift.com/funding/github/packagist/doctrine%2Flexer", + "type": "tidelift" + } + ], + "time": "2020-05-25T17:44:05+00:00" + }, + { + "name": "symfony/polyfill-intl-idn", + "version": "v1.22.1", + "source": { + "type": "git", + "url": "https://github.com/symfony/polyfill-intl-idn.git", + "reference": "2d63434d922daf7da8dd863e7907e67ee3031483" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/polyfill-intl-idn/zipball/2d63434d922daf7da8dd863e7907e67ee3031483", + "reference": "2d63434d922daf7da8dd863e7907e67ee3031483", + "shasum": "" + }, + "require": { + "php": ">=7.1", + "symfony/polyfill-intl-normalizer": "^1.10", + "symfony/polyfill-php72": "^1.10" + }, + "suggest": { + "ext-intl": "For best performance" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "1.22-dev" + }, + "thanks": { + "name": "symfony/polyfill", + "url": "https://github.com/symfony/polyfill" + } + }, + "autoload": { + "psr-4": { + "Symfony\\Polyfill\\Intl\\Idn\\": "" + }, + "files": [ + "bootstrap.php" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Laurent Bassin", + "email": "laurent@bassin.info" + }, + { + "name": "Trevor Rowbotham", + "email": "trevor.rowbotham@pm.me" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony polyfill for intl's idn_to_ascii and idn_to_utf8 functions", + "homepage": "https://symfony.com", + "keywords": [ + "compatibility", + "idn", + "intl", + "polyfill", + "portable", + "shim" + ], + "support": { + "source": "https://github.com/symfony/polyfill-intl-idn/tree/v1.22.1" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2021-01-22T09:19:47+00:00" + }, + { + "name": "symfony/polyfill-intl-normalizer", + "version": "v1.22.1", + "source": { + "type": "git", + "url": "https://github.com/symfony/polyfill-intl-normalizer.git", + "reference": "43a0283138253ed1d48d352ab6d0bdb3f809f248" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/polyfill-intl-normalizer/zipball/43a0283138253ed1d48d352ab6d0bdb3f809f248", + "reference": "43a0283138253ed1d48d352ab6d0bdb3f809f248", + "shasum": "" + }, + "require": { + "php": ">=7.1" + }, + "suggest": { + "ext-intl": "For best performance" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "1.22-dev" + }, + "thanks": { + "name": "symfony/polyfill", + "url": "https://github.com/symfony/polyfill" + } + }, + "autoload": { + "psr-4": { + "Symfony\\Polyfill\\Intl\\Normalizer\\": "" + }, + "files": [ + "bootstrap.php" + ], + "classmap": [ + "Resources/stubs" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony polyfill for intl's Normalizer class and related functions", + "homepage": "https://symfony.com", + "keywords": [ + "compatibility", + "intl", + "normalizer", + "polyfill", + "portable", + "shim" + ], + "support": { + "source": "https://github.com/symfony/polyfill-intl-normalizer/tree/v1.22.1" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2021-01-22T09:19:47+00:00" + }, + { + "name": "symfony/polyfill-php72", + "version": "v1.22.1", + "source": { + "type": "git", + "url": "https://github.com/symfony/polyfill-php72.git", + "reference": "cc6e6f9b39fe8075b3dabfbaf5b5f645ae1340c9" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/polyfill-php72/zipball/cc6e6f9b39fe8075b3dabfbaf5b5f645ae1340c9", + "reference": "cc6e6f9b39fe8075b3dabfbaf5b5f645ae1340c9", + "shasum": "" + }, + "require": { + "php": ">=7.1" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "1.22-dev" + }, + "thanks": { + "name": "symfony/polyfill", + "url": "https://github.com/symfony/polyfill" + } + }, + "autoload": { + "psr-4": { + "Symfony\\Polyfill\\Php72\\": "" + }, + "files": [ + "bootstrap.php" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony polyfill backporting some PHP 7.2+ features to lower PHP versions", + "homepage": "https://symfony.com", + "keywords": [ + "compatibility", + "polyfill", + "portable", + "shim" + ], + "support": { + "source": "https://github.com/symfony/polyfill-php72/tree/v1.22.1" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2021-01-07T16:49:33+00:00" + } + ], + "packages-dev": [ + { + "name": "amphp/amp", + "version": "v2.5.2", + "source": { + "type": "git", + "url": "https://github.com/amphp/amp.git", + "reference": "efca2b32a7580087adb8aabbff6be1dc1bb924a9" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/amphp/amp/zipball/efca2b32a7580087adb8aabbff6be1dc1bb924a9", + "reference": "efca2b32a7580087adb8aabbff6be1dc1bb924a9", + "shasum": "" + }, + "require": { + "php": ">=7" + }, + "require-dev": { + "amphp/php-cs-fixer-config": "dev-master", + "amphp/phpunit-util": "^1", + "ext-json": "*", + "jetbrains/phpstorm-stubs": "^2019.3", + "phpunit/phpunit": "^6.0.9 | ^7", + "psalm/phar": "^3.11@dev", + "react/promise": "^2" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "2.x-dev" + } + }, + "autoload": { + "psr-4": { + "Amp\\": "lib" + }, + "files": [ + "lib/functions.php", + "lib/Internal/functions.php" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Daniel Lowrey", + "email": "rdlowrey@php.net" + }, + { + "name": "Aaron Piotrowski", + "email": "aaron@trowski.com" + }, + { + "name": "Bob Weinand", + "email": "bobwei9@hotmail.com" + }, + { + "name": "Niklas Keller", + "email": "me@kelunik.com" + } + ], + "description": "A non-blocking concurrency framework for PHP applications.", + "homepage": "http://amphp.org/amp", + "keywords": [ + "async", + "asynchronous", + "awaitable", + "concurrency", + "event", + "event-loop", + "future", + "non-blocking", + "promise" + ], + "support": { + "irc": "irc://irc.freenode.org/amphp", + "issues": "https://github.com/amphp/amp/issues", + "source": "https://github.com/amphp/amp/tree/v2.5.2" + }, + "funding": [ + { + "url": "https://github.com/amphp", + "type": "github" + } + ], + "time": "2021-01-10T17:06:37+00:00" + }, + { + "name": "amphp/byte-stream", + "version": "v1.8.0", + "source": { + "type": "git", + "url": "https://github.com/amphp/byte-stream.git", + "reference": "f0c20cf598a958ba2aa8c6e5a71c697d652c7088" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/amphp/byte-stream/zipball/f0c20cf598a958ba2aa8c6e5a71c697d652c7088", + "reference": "f0c20cf598a958ba2aa8c6e5a71c697d652c7088", + "shasum": "" + }, + "require": { + "amphp/amp": "^2", + "php": ">=7.1" + }, + "require-dev": { + "amphp/php-cs-fixer-config": "dev-master", + "amphp/phpunit-util": "^1.4", + "friendsofphp/php-cs-fixer": "^2.3", + "jetbrains/phpstorm-stubs": "^2019.3", + "phpunit/phpunit": "^6 || ^7 || ^8", + "psalm/phar": "^3.11.4" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.x-dev" + } + }, + "autoload": { + "psr-4": { + "Amp\\ByteStream\\": "lib" + }, + "files": [ + "lib/functions.php" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Aaron Piotrowski", + "email": "aaron@trowski.com" + }, + { + "name": "Niklas Keller", + "email": "me@kelunik.com" + } + ], + "description": "A stream abstraction to make working with non-blocking I/O simple.", + "homepage": "http://amphp.org/byte-stream", + "keywords": [ + "amp", + "amphp", + "async", + "io", + "non-blocking", + "stream" + ], + "support": { + "irc": "irc://irc.freenode.org/amphp", + "issues": "https://github.com/amphp/byte-stream/issues", + "source": "https://github.com/amphp/byte-stream/tree/master" + }, + "time": "2020-06-29T18:35:05+00:00" + }, + { + "name": "composer/package-versions-deprecated", + "version": "1.11.99.1", + "source": { + "type": "git", + "url": "https://github.com/composer/package-versions-deprecated.git", + "reference": "7413f0b55a051e89485c5cb9f765fe24bb02a7b6" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/composer/package-versions-deprecated/zipball/7413f0b55a051e89485c5cb9f765fe24bb02a7b6", + "reference": "7413f0b55a051e89485c5cb9f765fe24bb02a7b6", + "shasum": "" + }, + "require": { + "composer-plugin-api": "^1.1.0 || ^2.0", + "php": "^7 || ^8" + }, + "replace": { + "ocramius/package-versions": "1.11.99" + }, + "require-dev": { + "composer/composer": "^1.9.3 || ^2.0@dev", + "ext-zip": "^1.13", + "phpunit/phpunit": "^6.5 || ^7" + }, + "type": "composer-plugin", + "extra": { + "class": "PackageVersions\\Installer", + "branch-alias": { + "dev-master": "1.x-dev" + } + }, + "autoload": { + "psr-4": { + "PackageVersions\\": "src/PackageVersions" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Marco Pivetta", + "email": "ocramius@gmail.com" + }, + { + "name": "Jordi Boggiano", + "email": "j.boggiano@seld.be" + } + ], + "description": "Composer plugin that provides efficient querying for installed package versions (no runtime IO)", + "support": { + "issues": "https://github.com/composer/package-versions-deprecated/issues", + "source": "https://github.com/composer/package-versions-deprecated/tree/1.11.99.1" + }, + "funding": [ + { + "url": "https://packagist.com", + "type": "custom" + }, + { + "url": "https://github.com/composer", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/composer/composer", + "type": "tidelift" + } + ], + "time": "2020-11-11T10:22:58+00:00" + }, + { + "name": "composer/semver", + "version": "3.2.4", + "source": { + "type": "git", + "url": "https://github.com/composer/semver.git", + "reference": "a02fdf930a3c1c3ed3a49b5f63859c0c20e10464" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/composer/semver/zipball/a02fdf930a3c1c3ed3a49b5f63859c0c20e10464", + "reference": "a02fdf930a3c1c3ed3a49b5f63859c0c20e10464", + "shasum": "" + }, + "require": { + "php": "^5.3.2 || ^7.0 || ^8.0" + }, + "require-dev": { + "phpstan/phpstan": "^0.12.54", + "symfony/phpunit-bridge": "^4.2 || ^5" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "3.x-dev" + } + }, + "autoload": { + "psr-4": { + "Composer\\Semver\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nils Adermann", + "email": "naderman@naderman.de", + "homepage": "http://www.naderman.de" + }, + { + "name": "Jordi Boggiano", + "email": "j.boggiano@seld.be", + "homepage": "http://seld.be" + }, + { + "name": "Rob Bast", + "email": "rob.bast@gmail.com", + "homepage": "http://robbast.nl" + } + ], + "description": "Semver library that offers utilities, version constraint parsing and validation.", + "keywords": [ + "semantic", + "semver", + "validation", + "versioning" + ], + "support": { + "irc": "irc://irc.freenode.org/composer", + "issues": "https://github.com/composer/semver/issues", + "source": "https://github.com/composer/semver/tree/3.2.4" + }, + "funding": [ + { + "url": "https://packagist.com", + "type": "custom" + }, + { + "url": "https://github.com/composer", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/composer/composer", + "type": "tidelift" + } + ], + "time": "2020-11-13T08:59:24+00:00" + }, + { + "name": "composer/xdebug-handler", + "version": "1.4.5", + "source": { + "type": "git", + "url": "https://github.com/composer/xdebug-handler.git", + "reference": "f28d44c286812c714741478d968104c5e604a1d4" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/composer/xdebug-handler/zipball/f28d44c286812c714741478d968104c5e604a1d4", + "reference": "f28d44c286812c714741478d968104c5e604a1d4", + "shasum": "" + }, + "require": { + "php": "^5.3.2 || ^7.0 || ^8.0", + "psr/log": "^1.0" + }, + "require-dev": { + "phpunit/phpunit": "^4.8.35 || ^5.7 || 6.5 - 8" + }, + "type": "library", + "autoload": { + "psr-4": { + "Composer\\XdebugHandler\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "John Stevenson", + "email": "john-stevenson@blueyonder.co.uk" + } + ], + "description": "Restarts a process without Xdebug.", + "keywords": [ + "Xdebug", + "performance" + ], + "support": { + "irc": "irc://irc.freenode.org/composer", + "issues": "https://github.com/composer/xdebug-handler/issues", + "source": "https://github.com/composer/xdebug-handler/tree/1.4.5" + }, + "funding": [ + { + "url": "https://packagist.com", + "type": "custom" + }, + { + "url": "https://github.com/composer", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/composer/composer", + "type": "tidelift" + } + ], + "time": "2020-11-13T08:04:11+00:00" + }, + { + "name": "dnoegel/php-xdg-base-dir", + "version": "v0.1.1", + "source": { + "type": "git", + "url": "https://github.com/dnoegel/php-xdg-base-dir.git", + "reference": "8f8a6e48c5ecb0f991c2fdcf5f154a47d85f9ffd" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/dnoegel/php-xdg-base-dir/zipball/8f8a6e48c5ecb0f991c2fdcf5f154a47d85f9ffd", + "reference": "8f8a6e48c5ecb0f991c2fdcf5f154a47d85f9ffd", + "shasum": "" + }, + "require": { + "php": ">=5.3.2" + }, + "require-dev": { + "phpunit/phpunit": "~7.0|~6.0|~5.0|~4.8.35" + }, + "type": "library", + "autoload": { + "psr-4": { + "XdgBaseDir\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "description": "implementation of xdg base directory specification for php", + "support": { + "issues": "https://github.com/dnoegel/php-xdg-base-dir/issues", + "source": "https://github.com/dnoegel/php-xdg-base-dir/tree/v0.1.1" + }, + "time": "2019-12-04T15:06:13+00:00" + }, + { + "name": "doctrine/instantiator", + "version": "1.4.0", + "source": { + "type": "git", + "url": "https://github.com/doctrine/instantiator.git", + "reference": "d56bf6102915de5702778fe20f2de3b2fe570b5b" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/doctrine/instantiator/zipball/d56bf6102915de5702778fe20f2de3b2fe570b5b", + "reference": "d56bf6102915de5702778fe20f2de3b2fe570b5b", + "shasum": "" + }, + "require": { + "php": "^7.1 || ^8.0" + }, + "require-dev": { + "doctrine/coding-standard": "^8.0", + "ext-pdo": "*", + "ext-phar": "*", + "phpbench/phpbench": "^0.13 || 1.0.0-alpha2", + "phpstan/phpstan": "^0.12", + "phpstan/phpstan-phpunit": "^0.12", + "phpunit/phpunit": "^7.0 || ^8.0 || ^9.0" + }, + "type": "library", + "autoload": { + "psr-4": { + "Doctrine\\Instantiator\\": "src/Doctrine/Instantiator/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Marco Pivetta", + "email": "ocramius@gmail.com", + "homepage": "https://ocramius.github.io/" + } + ], + "description": "A small, lightweight utility to instantiate objects in PHP without invoking their constructors", + "homepage": "https://www.doctrine-project.org/projects/instantiator.html", + "keywords": [ + "constructor", + "instantiate" + ], + "support": { + "issues": "https://github.com/doctrine/instantiator/issues", + "source": "https://github.com/doctrine/instantiator/tree/1.4.0" + }, + "funding": [ + { + "url": "https://www.doctrine-project.org/sponsorship.html", + "type": "custom" + }, + { + "url": "https://www.patreon.com/phpdoctrine", + "type": "patreon" + }, + { + "url": "https://tidelift.com/funding/github/packagist/doctrine%2Finstantiator", + "type": "tidelift" + } + ], + "time": "2020-11-10T18:47:58+00:00" + }, + { + "name": "felixfbecker/advanced-json-rpc", + "version": "v3.2.0", + "source": { + "type": "git", + "url": "https://github.com/felixfbecker/php-advanced-json-rpc.git", + "reference": "06f0b06043c7438959dbdeed8bb3f699a19be22e" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/felixfbecker/php-advanced-json-rpc/zipball/06f0b06043c7438959dbdeed8bb3f699a19be22e", + "reference": "06f0b06043c7438959dbdeed8bb3f699a19be22e", + "shasum": "" + }, + "require": { + "netresearch/jsonmapper": "^1.0 || ^2.0", + "php": "^7.1 || ^8.0", + "phpdocumentor/reflection-docblock": "^4.3.4 || ^5.0.0" + }, + "require-dev": { + "phpunit/phpunit": "^7.0 || ^8.0" + }, + "type": "library", + "autoload": { + "psr-4": { + "AdvancedJsonRpc\\": "lib/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "ISC" + ], + "authors": [ + { + "name": "Felix Becker", + "email": "felix.b@outlook.com" + } + ], + "description": "A more advanced JSONRPC implementation", + "support": { + "issues": "https://github.com/felixfbecker/php-advanced-json-rpc/issues", + "source": "https://github.com/felixfbecker/php-advanced-json-rpc/tree/v3.2.0" + }, + "time": "2021-01-10T17:48:47+00:00" + }, + { + "name": "felixfbecker/language-server-protocol", + "version": "1.5.1", + "source": { + "type": "git", + "url": "https://github.com/felixfbecker/php-language-server-protocol.git", + "reference": "9d846d1f5cf101deee7a61c8ba7caa0a975cd730" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/felixfbecker/php-language-server-protocol/zipball/9d846d1f5cf101deee7a61c8ba7caa0a975cd730", + "reference": "9d846d1f5cf101deee7a61c8ba7caa0a975cd730", + "shasum": "" + }, + "require": { + "php": ">=7.1" + }, + "require-dev": { + "phpstan/phpstan": "*", + "squizlabs/php_codesniffer": "^3.1", + "vimeo/psalm": "^4.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.x-dev" + } + }, + "autoload": { + "psr-4": { + "LanguageServerProtocol\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "ISC" + ], + "authors": [ + { + "name": "Felix Becker", + "email": "felix.b@outlook.com" + } + ], + "description": "PHP classes for the Language Server Protocol", + "keywords": [ + "language", + "microsoft", + "php", + "server" + ], + "support": { + "issues": "https://github.com/felixfbecker/php-language-server-protocol/issues", + "source": "https://github.com/felixfbecker/php-language-server-protocol/tree/1.5.1" + }, + "time": "2021-02-22T14:02:09+00:00" + }, + { + "name": "guzzlehttp/guzzle", + "version": "7.2.0", + "source": { + "type": "git", + "url": "https://github.com/guzzle/guzzle.git", + "reference": "0aa74dfb41ae110835923ef10a9d803a22d50e79" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/guzzle/guzzle/zipball/0aa74dfb41ae110835923ef10a9d803a22d50e79", + "reference": "0aa74dfb41ae110835923ef10a9d803a22d50e79", + "shasum": "" + }, + "require": { + "ext-json": "*", + "guzzlehttp/promises": "^1.4", + "guzzlehttp/psr7": "^1.7", + "php": "^7.2.5 || ^8.0", + "psr/http-client": "^1.0" + }, + "provide": { + "psr/http-client-implementation": "1.0" + }, + "require-dev": { + "ext-curl": "*", + "php-http/client-integration-tests": "^3.0", + "phpunit/phpunit": "^8.5.5 || ^9.3.5", + "psr/log": "^1.1" + }, + "suggest": { + "ext-curl": "Required for CURL handler support", + "ext-intl": "Required for Internationalized Domain Name (IDN) support", + "psr/log": "Required for using the Log middleware" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "7.1-dev" + } + }, + "autoload": { + "psr-4": { + "GuzzleHttp\\": "src/" + }, + "files": [ + "src/functions_include.php" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Michael Dowling", + "email": "mtdowling@gmail.com", + "homepage": "https://github.com/mtdowling" + }, + { + "name": "Márk Sági-Kazár", + "email": "mark.sagikazar@gmail.com", + "homepage": "https://sagikazarmark.hu" + } + ], + "description": "Guzzle is a PHP HTTP client library", + "homepage": "http://guzzlephp.org/", + "keywords": [ + "client", + "curl", + "framework", + "http", + "http client", + "psr-18", + "psr-7", + "rest", + "web service" + ], + "support": { + "issues": "https://github.com/guzzle/guzzle/issues", + "source": "https://github.com/guzzle/guzzle/tree/7.2.0" + }, + "funding": [ + { + "url": "https://github.com/GrahamCampbell", + "type": "github" + }, + { + "url": "https://github.com/Nyholm", + "type": "github" + }, + { + "url": "https://github.com/alexeyshockov", + "type": "github" + }, + { + "url": "https://github.com/gmponos", + "type": "github" + } + ], + "time": "2020-10-10T11:47:56+00:00" + }, + { + "name": "guzzlehttp/promises", + "version": "1.4.0", + "source": { + "type": "git", + "url": "https://github.com/guzzle/promises.git", + "reference": "60d379c243457e073cff02bc323a2a86cb355631" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/guzzle/promises/zipball/60d379c243457e073cff02bc323a2a86cb355631", + "reference": "60d379c243457e073cff02bc323a2a86cb355631", + "shasum": "" + }, + "require": { + "php": ">=5.5" + }, + "require-dev": { + "symfony/phpunit-bridge": "^4.4 || ^5.1" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.4-dev" + } + }, + "autoload": { + "psr-4": { + "GuzzleHttp\\Promise\\": "src/" + }, + "files": [ + "src/functions_include.php" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Michael Dowling", + "email": "mtdowling@gmail.com", + "homepage": "https://github.com/mtdowling" + } + ], + "description": "Guzzle promises library", + "keywords": [ + "promise" + ], + "support": { + "issues": "https://github.com/guzzle/promises/issues", + "source": "https://github.com/guzzle/promises/tree/1.4.0" + }, + "time": "2020-09-30T07:37:28+00:00" + }, + { + "name": "guzzlehttp/psr7", + "version": "1.7.0", + "source": { + "type": "git", + "url": "https://github.com/guzzle/psr7.git", + "reference": "53330f47520498c0ae1f61f7e2c90f55690c06a3" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/guzzle/psr7/zipball/53330f47520498c0ae1f61f7e2c90f55690c06a3", + "reference": "53330f47520498c0ae1f61f7e2c90f55690c06a3", + "shasum": "" + }, + "require": { + "php": ">=5.4.0", + "psr/http-message": "~1.0", + "ralouphie/getallheaders": "^2.0.5 || ^3.0.0" + }, + "provide": { + "psr/http-message-implementation": "1.0" + }, + "require-dev": { + "ext-zlib": "*", + "phpunit/phpunit": "~4.8.36 || ^5.7.27 || ^6.5.14 || ^7.5.20 || ^8.5.8 || ^9.3.10" + }, + "suggest": { + "laminas/laminas-httphandlerrunner": "Emit PSR-7 responses" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.7-dev" + } + }, + "autoload": { + "psr-4": { + "GuzzleHttp\\Psr7\\": "src/" + }, + "files": [ + "src/functions_include.php" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Michael Dowling", + "email": "mtdowling@gmail.com", + "homepage": "https://github.com/mtdowling" + }, + { + "name": "Tobias Schultze", + "homepage": "https://github.com/Tobion" + } + ], + "description": "PSR-7 message implementation that also provides common utility methods", + "keywords": [ + "http", + "message", + "psr-7", + "request", + "response", + "stream", + "uri", + "url" + ], + "support": { + "issues": "https://github.com/guzzle/psr7/issues", + "source": "https://github.com/guzzle/psr7/tree/1.7.0" + }, + "time": "2020-09-30T07:37:11+00:00" + }, + { + "name": "myclabs/deep-copy", + "version": "1.10.2", + "source": { + "type": "git", + "url": "https://github.com/myclabs/DeepCopy.git", + "reference": "776f831124e9c62e1a2c601ecc52e776d8bb7220" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/myclabs/DeepCopy/zipball/776f831124e9c62e1a2c601ecc52e776d8bb7220", + "reference": "776f831124e9c62e1a2c601ecc52e776d8bb7220", + "shasum": "" + }, + "require": { + "php": "^7.1 || ^8.0" + }, + "replace": { + "myclabs/deep-copy": "self.version" + }, + "require-dev": { + "doctrine/collections": "^1.0", + "doctrine/common": "^2.6", + "phpunit/phpunit": "^7.1" + }, + "type": "library", + "autoload": { + "psr-4": { + "DeepCopy\\": "src/DeepCopy/" + }, + "files": [ + "src/DeepCopy/deep_copy.php" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "description": "Create deep copies (clones) of your objects", + "keywords": [ + "clone", + "copy", + "duplicate", + "object", + "object graph" + ], + "support": { + "issues": "https://github.com/myclabs/DeepCopy/issues", + "source": "https://github.com/myclabs/DeepCopy/tree/1.10.2" + }, + "funding": [ + { + "url": "https://tidelift.com/funding/github/packagist/myclabs/deep-copy", + "type": "tidelift" + } + ], + "time": "2020-11-13T09:40:50+00:00" + }, + { + "name": "netresearch/jsonmapper", + "version": "v2.1.0", + "source": { + "type": "git", + "url": "https://github.com/cweiske/jsonmapper.git", + "reference": "e0f1e33a71587aca81be5cffbb9746510e1fe04e" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/cweiske/jsonmapper/zipball/e0f1e33a71587aca81be5cffbb9746510e1fe04e", + "reference": "e0f1e33a71587aca81be5cffbb9746510e1fe04e", + "shasum": "" + }, + "require": { + "ext-json": "*", + "ext-pcre": "*", + "ext-reflection": "*", + "ext-spl": "*", + "php": ">=5.6" + }, + "require-dev": { + "phpunit/phpunit": "~4.8.35 || ~5.7 || ~6.4 || ~7.0", + "squizlabs/php_codesniffer": "~3.5" + }, + "type": "library", + "autoload": { + "psr-0": { + "JsonMapper": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "OSL-3.0" + ], + "authors": [ + { + "name": "Christian Weiske", + "email": "cweiske@cweiske.de", + "homepage": "http://github.com/cweiske/jsonmapper/", + "role": "Developer" + } + ], + "description": "Map nested JSON structures onto PHP classes", + "support": { + "email": "cweiske@cweiske.de", + "issues": "https://github.com/cweiske/jsonmapper/issues", + "source": "https://github.com/cweiske/jsonmapper/tree/master" + }, + "time": "2020-04-16T18:48:43+00:00" + }, + { + "name": "nikic/php-parser", + "version": "v4.10.4", + "source": { + "type": "git", + "url": "https://github.com/nikic/PHP-Parser.git", + "reference": "c6d052fc58cb876152f89f532b95a8d7907e7f0e" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/nikic/PHP-Parser/zipball/c6d052fc58cb876152f89f532b95a8d7907e7f0e", + "reference": "c6d052fc58cb876152f89f532b95a8d7907e7f0e", + "shasum": "" + }, + "require": { + "ext-tokenizer": "*", + "php": ">=7.0" + }, + "require-dev": { + "ircmaxell/php-yacc": "^0.0.7", + "phpunit/phpunit": "^6.5 || ^7.0 || ^8.0 || ^9.0" + }, + "bin": [ + "bin/php-parse" + ], + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "4.9-dev" + } + }, + "autoload": { + "psr-4": { + "PhpParser\\": "lib/PhpParser" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Nikita Popov" + } + ], + "description": "A PHP parser written in PHP", + "keywords": [ + "parser", + "php" + ], + "support": { + "issues": "https://github.com/nikic/PHP-Parser/issues", + "source": "https://github.com/nikic/PHP-Parser/tree/v4.10.4" + }, + "time": "2020-12-20T10:01:03+00:00" + }, + { + "name": "openlss/lib-array2xml", + "version": "1.0.0", + "source": { + "type": "git", + "url": "https://github.com/nullivex/lib-array2xml.git", + "reference": "a91f18a8dfc69ffabe5f9b068bc39bb202c81d90" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/nullivex/lib-array2xml/zipball/a91f18a8dfc69ffabe5f9b068bc39bb202c81d90", + "reference": "a91f18a8dfc69ffabe5f9b068bc39bb202c81d90", + "shasum": "" + }, + "require": { + "php": ">=5.3.2" + }, + "type": "library", + "autoload": { + "psr-0": { + "LSS": "" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "Apache-2.0" + ], + "authors": [ + { + "name": "Bryan Tong", + "email": "bryan@nullivex.com", + "homepage": "https://www.nullivex.com" + }, + { + "name": "Tony Butler", + "email": "spudz76@gmail.com", + "homepage": "https://www.nullivex.com" + } + ], + "description": "Array2XML conversion library credit to lalit.org", + "homepage": "https://www.nullivex.com", + "keywords": [ + "array", + "array conversion", + "xml", + "xml conversion" + ], + "support": { + "issues": "https://github.com/nullivex/lib-array2xml/issues", + "source": "https://github.com/nullivex/lib-array2xml/tree/master" + }, + "time": "2019-03-29T20:06:56+00:00" + }, + { + "name": "phar-io/manifest", + "version": "2.0.1", + "source": { + "type": "git", + "url": "https://github.com/phar-io/manifest.git", + "reference": "85265efd3af7ba3ca4b2a2c34dbfc5788dd29133" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/phar-io/manifest/zipball/85265efd3af7ba3ca4b2a2c34dbfc5788dd29133", + "reference": "85265efd3af7ba3ca4b2a2c34dbfc5788dd29133", + "shasum": "" + }, + "require": { + "ext-dom": "*", + "ext-phar": "*", + "ext-xmlwriter": "*", + "phar-io/version": "^3.0.1", + "php": "^7.2 || ^8.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "2.0.x-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Arne Blankerts", + "email": "arne@blankerts.de", + "role": "Developer" + }, + { + "name": "Sebastian Heuer", + "email": "sebastian@phpeople.de", + "role": "Developer" + }, + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de", + "role": "Developer" + } + ], + "description": "Component for reading phar.io manifest information from a PHP Archive (PHAR)", + "support": { + "issues": "https://github.com/phar-io/manifest/issues", + "source": "https://github.com/phar-io/manifest/tree/master" + }, + "time": "2020-06-27T14:33:11+00:00" + }, + { + "name": "phar-io/version", + "version": "3.1.0", + "source": { + "type": "git", + "url": "https://github.com/phar-io/version.git", + "reference": "bae7c545bef187884426f042434e561ab1ddb182" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/phar-io/version/zipball/bae7c545bef187884426f042434e561ab1ddb182", + "reference": "bae7c545bef187884426f042434e561ab1ddb182", + "shasum": "" + }, + "require": { + "php": "^7.2 || ^8.0" + }, + "type": "library", + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Arne Blankerts", + "email": "arne@blankerts.de", + "role": "Developer" + }, + { + "name": "Sebastian Heuer", + "email": "sebastian@phpeople.de", + "role": "Developer" + }, + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de", + "role": "Developer" + } + ], + "description": "Library for handling version information and constraints", + "support": { + "issues": "https://github.com/phar-io/version/issues", + "source": "https://github.com/phar-io/version/tree/3.1.0" + }, + "time": "2021-02-23T14:00:09+00:00" + }, + { + "name": "php-coveralls/php-coveralls", + "version": "v2.4.3", + "source": { + "type": "git", + "url": "https://github.com/php-coveralls/php-coveralls.git", + "reference": "909381bd40a17ae6e9076051f0d73293c1c091af" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/php-coveralls/php-coveralls/zipball/909381bd40a17ae6e9076051f0d73293c1c091af", + "reference": "909381bd40a17ae6e9076051f0d73293c1c091af", + "shasum": "" + }, + "require": { + "ext-json": "*", + "ext-simplexml": "*", + "guzzlehttp/guzzle": "^6.0 || ^7.0", + "php": "^5.5 || ^7.0 || ^8.0", + "psr/log": "^1.0", + "symfony/config": "^2.1 || ^3.0 || ^4.0 || ^5.0", + "symfony/console": "^2.1 || ^3.0 || ^4.0 || ^5.0", + "symfony/stopwatch": "^2.0 || ^3.0 || ^4.0 || ^5.0", + "symfony/yaml": "^2.0.5 || ^3.0 || ^4.0 || ^5.0" + }, + "require-dev": { + "phpunit/phpunit": "^4.8.35 || ^5.4.3 || ^6.0 || ^7.0 || ^8.0 || ^9.0", + "sanmai/phpunit-legacy-adapter": "^6.1 || ^8.0" + }, + "suggest": { + "symfony/http-kernel": "Allows Symfony integration" + }, + "bin": [ + "bin/php-coveralls" + ], + "type": "library", + "autoload": { + "psr-4": { + "PhpCoveralls\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Kitamura Satoshi", + "email": "with.no.parachute@gmail.com", + "homepage": "https://www.facebook.com/satooshi.jp", + "role": "Original creator" + }, + { + "name": "Takashi Matsuo", + "email": "tmatsuo@google.com" + }, + { + "name": "Google Inc" + }, + { + "name": "Dariusz Ruminski", + "email": "dariusz.ruminski@gmail.com", + "homepage": "https://github.com/keradus" + }, + { + "name": "Contributors", + "homepage": "https://github.com/php-coveralls/php-coveralls/graphs/contributors" + } + ], + "description": "PHP client library for Coveralls API", + "homepage": "https://github.com/php-coveralls/php-coveralls", + "keywords": [ + "ci", + "coverage", + "github", + "test" + ], + "support": { + "issues": "https://github.com/php-coveralls/php-coveralls/issues", + "source": "https://github.com/php-coveralls/php-coveralls/tree/v2.4.3" + }, + "time": "2020-12-24T09:17:03+00:00" + }, + { + "name": "phpdocumentor/reflection-common", + "version": "2.2.0", + "source": { + "type": "git", + "url": "https://github.com/phpDocumentor/ReflectionCommon.git", + "reference": "1d01c49d4ed62f25aa84a747ad35d5a16924662b" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/phpDocumentor/ReflectionCommon/zipball/1d01c49d4ed62f25aa84a747ad35d5a16924662b", + "reference": "1d01c49d4ed62f25aa84a747ad35d5a16924662b", + "shasum": "" + }, + "require": { + "php": "^7.2 || ^8.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-2.x": "2.x-dev" + } + }, + "autoload": { + "psr-4": { + "phpDocumentor\\Reflection\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Jaap van Otterdijk", + "email": "opensource@ijaap.nl" + } + ], + "description": "Common reflection classes used by phpdocumentor to reflect the code structure", + "homepage": "http://www.phpdoc.org", + "keywords": [ + "FQSEN", + "phpDocumentor", + "phpdoc", + "reflection", + "static analysis" + ], + "support": { + "issues": "https://github.com/phpDocumentor/ReflectionCommon/issues", + "source": "https://github.com/phpDocumentor/ReflectionCommon/tree/2.x" + }, + "time": "2020-06-27T09:03:43+00:00" + }, + { + "name": "phpdocumentor/reflection-docblock", + "version": "5.2.2", + "source": { + "type": "git", + "url": "https://github.com/phpDocumentor/ReflectionDocBlock.git", + "reference": "069a785b2141f5bcf49f3e353548dc1cce6df556" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/phpDocumentor/ReflectionDocBlock/zipball/069a785b2141f5bcf49f3e353548dc1cce6df556", + "reference": "069a785b2141f5bcf49f3e353548dc1cce6df556", + "shasum": "" + }, + "require": { + "ext-filter": "*", + "php": "^7.2 || ^8.0", + "phpdocumentor/reflection-common": "^2.2", + "phpdocumentor/type-resolver": "^1.3", + "webmozart/assert": "^1.9.1" + }, + "require-dev": { + "mockery/mockery": "~1.3.2" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "5.x-dev" + } + }, + "autoload": { + "psr-4": { + "phpDocumentor\\Reflection\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Mike van Riel", + "email": "me@mikevanriel.com" + }, + { + "name": "Jaap van Otterdijk", + "email": "account@ijaap.nl" + } + ], + "description": "With this component, a library can provide support for annotations via DocBlocks or otherwise retrieve information that is embedded in a DocBlock.", + "support": { + "issues": "https://github.com/phpDocumentor/ReflectionDocBlock/issues", + "source": "https://github.com/phpDocumentor/ReflectionDocBlock/tree/master" + }, + "time": "2020-09-03T19:13:55+00:00" + }, + { + "name": "phpdocumentor/type-resolver", + "version": "1.4.0", + "source": { + "type": "git", + "url": "https://github.com/phpDocumentor/TypeResolver.git", + "reference": "6a467b8989322d92aa1c8bf2bebcc6e5c2ba55c0" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/phpDocumentor/TypeResolver/zipball/6a467b8989322d92aa1c8bf2bebcc6e5c2ba55c0", + "reference": "6a467b8989322d92aa1c8bf2bebcc6e5c2ba55c0", + "shasum": "" + }, + "require": { + "php": "^7.2 || ^8.0", + "phpdocumentor/reflection-common": "^2.0" + }, + "require-dev": { + "ext-tokenizer": "*" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-1.x": "1.x-dev" + } + }, + "autoload": { + "psr-4": { + "phpDocumentor\\Reflection\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Mike van Riel", + "email": "me@mikevanriel.com" + } + ], + "description": "A PSR-5 based resolver of Class names, Types and Structural Element Names", + "support": { + "issues": "https://github.com/phpDocumentor/TypeResolver/issues", + "source": "https://github.com/phpDocumentor/TypeResolver/tree/1.4.0" + }, + "time": "2020-09-17T18:55:26+00:00" + }, + { + "name": "phpspec/prophecy", + "version": "1.12.2", + "source": { + "type": "git", + "url": "https://github.com/phpspec/prophecy.git", + "reference": "245710e971a030f42e08f4912863805570f23d39" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/phpspec/prophecy/zipball/245710e971a030f42e08f4912863805570f23d39", + "reference": "245710e971a030f42e08f4912863805570f23d39", + "shasum": "" + }, + "require": { + "doctrine/instantiator": "^1.2", + "php": "^7.2 || ~8.0, <8.1", + "phpdocumentor/reflection-docblock": "^5.2", + "sebastian/comparator": "^3.0 || ^4.0", + "sebastian/recursion-context": "^3.0 || ^4.0" + }, + "require-dev": { + "phpspec/phpspec": "^6.0", + "phpunit/phpunit": "^8.0 || ^9.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.11.x-dev" + } + }, + "autoload": { + "psr-4": { + "Prophecy\\": "src/Prophecy" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Konstantin Kudryashov", + "email": "ever.zet@gmail.com", + "homepage": "http://everzet.com" + }, + { + "name": "Marcello Duarte", + "email": "marcello.duarte@gmail.com" + } + ], + "description": "Highly opinionated mocking framework for PHP 5.3+", + "homepage": "https://github.com/phpspec/prophecy", + "keywords": [ + "Double", + "Dummy", + "fake", + "mock", + "spy", + "stub" + ], + "support": { + "issues": "https://github.com/phpspec/prophecy/issues", + "source": "https://github.com/phpspec/prophecy/tree/1.12.2" + }, + "time": "2020-12-19T10:15:11+00:00" + }, + { + "name": "phpunit/php-code-coverage", + "version": "7.0.14", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/php-code-coverage.git", + "reference": "bb7c9a210c72e4709cdde67f8b7362f672f2225c" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/bb7c9a210c72e4709cdde67f8b7362f672f2225c", + "reference": "bb7c9a210c72e4709cdde67f8b7362f672f2225c", + "shasum": "" + }, + "require": { + "ext-dom": "*", + "ext-xmlwriter": "*", + "php": ">=7.2", + "phpunit/php-file-iterator": "^2.0.2", + "phpunit/php-text-template": "^1.2.1", + "phpunit/php-token-stream": "^3.1.1 || ^4.0", + "sebastian/code-unit-reverse-lookup": "^1.0.1", + "sebastian/environment": "^4.2.2", + "sebastian/version": "^2.0.1", + "theseer/tokenizer": "^1.1.3" + }, + "require-dev": { + "phpunit/phpunit": "^8.2.2" + }, + "suggest": { + "ext-xdebug": "^2.7.2" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "7.0-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de", + "role": "lead" + } + ], + "description": "Library that provides collection, processing, and rendering functionality for PHP code coverage information.", + "homepage": "https://github.com/sebastianbergmann/php-code-coverage", + "keywords": [ + "coverage", + "testing", + "xunit" + ], + "support": { + "issues": "https://github.com/sebastianbergmann/php-code-coverage/issues", + "source": "https://github.com/sebastianbergmann/php-code-coverage/tree/7.0.14" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2020-12-02T13:39:03+00:00" + }, + { + "name": "phpunit/php-file-iterator", + "version": "2.0.3", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/php-file-iterator.git", + "reference": "4b49fb70f067272b659ef0174ff9ca40fdaa6357" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/php-file-iterator/zipball/4b49fb70f067272b659ef0174ff9ca40fdaa6357", + "reference": "4b49fb70f067272b659ef0174ff9ca40fdaa6357", + "shasum": "" + }, + "require": { + "php": ">=7.1" + }, + "require-dev": { + "phpunit/phpunit": "^8.5" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "2.0.x-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de", + "role": "lead" + } + ], + "description": "FilterIterator implementation that filters files based on a list of suffixes.", + "homepage": "https://github.com/sebastianbergmann/php-file-iterator/", + "keywords": [ + "filesystem", + "iterator" + ], + "support": { + "issues": "https://github.com/sebastianbergmann/php-file-iterator/issues", + "source": "https://github.com/sebastianbergmann/php-file-iterator/tree/2.0.3" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2020-11-30T08:25:21+00:00" + }, + { + "name": "phpunit/php-text-template", + "version": "1.2.1", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/php-text-template.git", + "reference": "31f8b717e51d9a2afca6c9f046f5d69fc27c8686" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/php-text-template/zipball/31f8b717e51d9a2afca6c9f046f5d69fc27c8686", + "reference": "31f8b717e51d9a2afca6c9f046f5d69fc27c8686", + "shasum": "" + }, + "require": { + "php": ">=5.3.3" + }, + "type": "library", + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de", + "role": "lead" + } + ], + "description": "Simple template engine.", + "homepage": "https://github.com/sebastianbergmann/php-text-template/", + "keywords": [ + "template" + ], + "support": { + "issues": "https://github.com/sebastianbergmann/php-text-template/issues", + "source": "https://github.com/sebastianbergmann/php-text-template/tree/1.2.1" + }, + "time": "2015-06-21T13:50:34+00:00" + }, + { + "name": "phpunit/php-timer", + "version": "2.1.3", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/php-timer.git", + "reference": "2454ae1765516d20c4ffe103d85a58a9a3bd5662" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/php-timer/zipball/2454ae1765516d20c4ffe103d85a58a9a3bd5662", + "reference": "2454ae1765516d20c4ffe103d85a58a9a3bd5662", + "shasum": "" + }, + "require": { + "php": ">=7.1" + }, + "require-dev": { + "phpunit/phpunit": "^8.5" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "2.1-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de", + "role": "lead" + } + ], + "description": "Utility class for timing", + "homepage": "https://github.com/sebastianbergmann/php-timer/", + "keywords": [ + "timer" + ], + "support": { + "issues": "https://github.com/sebastianbergmann/php-timer/issues", + "source": "https://github.com/sebastianbergmann/php-timer/tree/2.1.3" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2020-11-30T08:20:02+00:00" + }, + { + "name": "phpunit/php-token-stream", + "version": "3.1.2", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/php-token-stream.git", + "reference": "472b687829041c24b25f475e14c2f38a09edf1c2" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/php-token-stream/zipball/472b687829041c24b25f475e14c2f38a09edf1c2", + "reference": "472b687829041c24b25f475e14c2f38a09edf1c2", + "shasum": "" + }, + "require": { + "ext-tokenizer": "*", + "php": ">=7.1" + }, + "require-dev": { + "phpunit/phpunit": "^7.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "3.1-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de" + } + ], + "description": "Wrapper around PHP's tokenizer extension.", + "homepage": "https://github.com/sebastianbergmann/php-token-stream/", + "keywords": [ + "tokenizer" + ], + "support": { + "issues": "https://github.com/sebastianbergmann/php-token-stream/issues", + "source": "https://github.com/sebastianbergmann/php-token-stream/tree/3.1.2" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "abandoned": true, + "time": "2020-11-30T08:38:46+00:00" + }, + { + "name": "phpunit/phpunit", + "version": "8.5.14", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/phpunit.git", + "reference": "c25f79895d27b6ecd5abfa63de1606b786a461a3" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/c25f79895d27b6ecd5abfa63de1606b786a461a3", + "reference": "c25f79895d27b6ecd5abfa63de1606b786a461a3", + "shasum": "" + }, + "require": { + "doctrine/instantiator": "^1.3.1", + "ext-dom": "*", + "ext-json": "*", + "ext-libxml": "*", + "ext-mbstring": "*", + "ext-xml": "*", + "ext-xmlwriter": "*", + "myclabs/deep-copy": "^1.10.0", + "phar-io/manifest": "^2.0.1", + "phar-io/version": "^3.0.2", + "php": ">=7.2", + "phpspec/prophecy": "^1.10.3", + "phpunit/php-code-coverage": "^7.0.12", + "phpunit/php-file-iterator": "^2.0.2", + "phpunit/php-text-template": "^1.2.1", + "phpunit/php-timer": "^2.1.2", + "sebastian/comparator": "^3.0.2", + "sebastian/diff": "^3.0.2", + "sebastian/environment": "^4.2.3", + "sebastian/exporter": "^3.1.2", + "sebastian/global-state": "^3.0.0", + "sebastian/object-enumerator": "^3.0.3", + "sebastian/resource-operations": "^2.0.1", + "sebastian/type": "^1.1.3", + "sebastian/version": "^2.0.1" + }, + "require-dev": { + "ext-pdo": "*" + }, + "suggest": { + "ext-soap": "*", + "ext-xdebug": "*", + "phpunit/php-invoker": "^2.0.0" + }, + "bin": [ + "phpunit" + ], + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "8.5-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de", + "role": "lead" + } + ], + "description": "The PHP Unit Testing framework.", + "homepage": "https://phpunit.de/", + "keywords": [ + "phpunit", + "testing", + "xunit" + ], + "support": { + "issues": "https://github.com/sebastianbergmann/phpunit/issues", + "source": "https://github.com/sebastianbergmann/phpunit/tree/8.5.14" + }, + "funding": [ + { + "url": "https://phpunit.de/donate.html", + "type": "custom" + }, + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2021-01-17T07:37:30+00:00" + }, + { + "name": "psr/container", + "version": "1.0.0", + "source": { + "type": "git", + "url": "https://github.com/php-fig/container.git", + "reference": "b7ce3b176482dbbc1245ebf52b181af44c2cf55f" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/php-fig/container/zipball/b7ce3b176482dbbc1245ebf52b181af44c2cf55f", + "reference": "b7ce3b176482dbbc1245ebf52b181af44c2cf55f", + "shasum": "" + }, + "require": { + "php": ">=5.3.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.0.x-dev" + } + }, + "autoload": { + "psr-4": { + "Psr\\Container\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "PHP-FIG", + "homepage": "http://www.php-fig.org/" + } + ], + "description": "Common Container Interface (PHP FIG PSR-11)", + "homepage": "https://github.com/php-fig/container", + "keywords": [ + "PSR-11", + "container", + "container-interface", + "container-interop", + "psr" + ], + "support": { + "issues": "https://github.com/php-fig/container/issues", + "source": "https://github.com/php-fig/container/tree/master" + }, + "time": "2017-02-14T16:28:37+00:00" + }, + { + "name": "psr/http-client", + "version": "1.0.1", + "source": { + "type": "git", + "url": "https://github.com/php-fig/http-client.git", + "reference": "2dfb5f6c5eff0e91e20e913f8c5452ed95b86621" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/php-fig/http-client/zipball/2dfb5f6c5eff0e91e20e913f8c5452ed95b86621", + "reference": "2dfb5f6c5eff0e91e20e913f8c5452ed95b86621", + "shasum": "" + }, + "require": { + "php": "^7.0 || ^8.0", + "psr/http-message": "^1.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.0.x-dev" + } + }, + "autoload": { + "psr-4": { + "Psr\\Http\\Client\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "PHP-FIG", + "homepage": "http://www.php-fig.org/" + } + ], + "description": "Common interface for HTTP clients", + "homepage": "https://github.com/php-fig/http-client", + "keywords": [ + "http", + "http-client", + "psr", + "psr-18" + ], + "support": { + "source": "https://github.com/php-fig/http-client/tree/master" + }, + "time": "2020-06-29T06:28:15+00:00" + }, + { + "name": "psr/http-message", + "version": "1.0.1", + "source": { + "type": "git", + "url": "https://github.com/php-fig/http-message.git", + "reference": "f6561bf28d520154e4b0ec72be95418abe6d9363" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/php-fig/http-message/zipball/f6561bf28d520154e4b0ec72be95418abe6d9363", + "reference": "f6561bf28d520154e4b0ec72be95418abe6d9363", + "shasum": "" + }, + "require": { + "php": ">=5.3.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.0.x-dev" + } + }, + "autoload": { + "psr-4": { + "Psr\\Http\\Message\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "PHP-FIG", + "homepage": "http://www.php-fig.org/" + } + ], + "description": "Common interface for HTTP messages", + "homepage": "https://github.com/php-fig/http-message", + "keywords": [ + "http", + "http-message", + "psr", + "psr-7", + "request", + "response" + ], + "support": { + "source": "https://github.com/php-fig/http-message/tree/master" + }, + "time": "2016-08-06T14:39:51+00:00" + }, + { + "name": "psr/log", + "version": "1.1.3", + "source": { + "type": "git", + "url": "https://github.com/php-fig/log.git", + "reference": "0f73288fd15629204f9d42b7055f72dacbe811fc" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/php-fig/log/zipball/0f73288fd15629204f9d42b7055f72dacbe811fc", + "reference": "0f73288fd15629204f9d42b7055f72dacbe811fc", + "shasum": "" + }, + "require": { + "php": ">=5.3.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.1.x-dev" + } + }, + "autoload": { + "psr-4": { + "Psr\\Log\\": "Psr/Log/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "PHP-FIG", + "homepage": "http://www.php-fig.org/" + } + ], + "description": "Common interface for logging libraries", + "homepage": "https://github.com/php-fig/log", + "keywords": [ + "log", + "psr", + "psr-3" + ], + "support": { + "source": "https://github.com/php-fig/log/tree/1.1.3" + }, + "time": "2020-03-23T09:12:05+00:00" + }, + { + "name": "ralouphie/getallheaders", + "version": "3.0.3", + "source": { + "type": "git", + "url": "https://github.com/ralouphie/getallheaders.git", + "reference": "120b605dfeb996808c31b6477290a714d356e822" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/ralouphie/getallheaders/zipball/120b605dfeb996808c31b6477290a714d356e822", + "reference": "120b605dfeb996808c31b6477290a714d356e822", + "shasum": "" + }, + "require": { + "php": ">=5.6" + }, + "require-dev": { + "php-coveralls/php-coveralls": "^2.1", + "phpunit/phpunit": "^5 || ^6.5" + }, + "type": "library", + "autoload": { + "files": [ + "src/getallheaders.php" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Ralph Khattar", + "email": "ralph.khattar@gmail.com" + } + ], + "description": "A polyfill for getallheaders.", + "support": { + "issues": "https://github.com/ralouphie/getallheaders/issues", + "source": "https://github.com/ralouphie/getallheaders/tree/develop" + }, + "time": "2019-03-08T08:55:37+00:00" + }, + { + "name": "sebastian/code-unit-reverse-lookup", + "version": "1.0.2", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/code-unit-reverse-lookup.git", + "reference": "1de8cd5c010cb153fcd68b8d0f64606f523f7619" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/code-unit-reverse-lookup/zipball/1de8cd5c010cb153fcd68b8d0f64606f523f7619", + "reference": "1de8cd5c010cb153fcd68b8d0f64606f523f7619", + "shasum": "" + }, + "require": { + "php": ">=5.6" + }, + "require-dev": { + "phpunit/phpunit": "^8.5" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.0.x-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de" + } + ], + "description": "Looks up which function or method a line of code belongs to", + "homepage": "https://github.com/sebastianbergmann/code-unit-reverse-lookup/", + "support": { + "issues": "https://github.com/sebastianbergmann/code-unit-reverse-lookup/issues", + "source": "https://github.com/sebastianbergmann/code-unit-reverse-lookup/tree/1.0.2" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2020-11-30T08:15:22+00:00" + }, + { + "name": "sebastian/comparator", + "version": "3.0.3", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/comparator.git", + "reference": "1071dfcef776a57013124ff35e1fc41ccd294758" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/comparator/zipball/1071dfcef776a57013124ff35e1fc41ccd294758", + "reference": "1071dfcef776a57013124ff35e1fc41ccd294758", + "shasum": "" + }, + "require": { + "php": ">=7.1", + "sebastian/diff": "^3.0", + "sebastian/exporter": "^3.1" + }, + "require-dev": { + "phpunit/phpunit": "^8.5" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "3.0-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de" + }, + { + "name": "Jeff Welch", + "email": "whatthejeff@gmail.com" + }, + { + "name": "Volker Dusch", + "email": "github@wallbash.com" + }, + { + "name": "Bernhard Schussek", + "email": "bschussek@2bepublished.at" + } + ], + "description": "Provides the functionality to compare PHP values for equality", + "homepage": "https://github.com/sebastianbergmann/comparator", + "keywords": [ + "comparator", + "compare", + "equality" + ], + "support": { + "issues": "https://github.com/sebastianbergmann/comparator/issues", + "source": "https://github.com/sebastianbergmann/comparator/tree/3.0.3" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2020-11-30T08:04:30+00:00" + }, + { + "name": "sebastian/diff", + "version": "3.0.3", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/diff.git", + "reference": "14f72dd46eaf2f2293cbe79c93cc0bc43161a211" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/diff/zipball/14f72dd46eaf2f2293cbe79c93cc0bc43161a211", + "reference": "14f72dd46eaf2f2293cbe79c93cc0bc43161a211", + "shasum": "" + }, + "require": { + "php": ">=7.1" + }, + "require-dev": { + "phpunit/phpunit": "^7.5 || ^8.0", + "symfony/process": "^2 || ^3.3 || ^4" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "3.0-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de" + }, + { + "name": "Kore Nordmann", + "email": "mail@kore-nordmann.de" + } + ], + "description": "Diff implementation", + "homepage": "https://github.com/sebastianbergmann/diff", + "keywords": [ + "diff", + "udiff", + "unidiff", + "unified diff" + ], + "support": { + "issues": "https://github.com/sebastianbergmann/diff/issues", + "source": "https://github.com/sebastianbergmann/diff/tree/3.0.3" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2020-11-30T07:59:04+00:00" + }, + { + "name": "sebastian/environment", + "version": "4.2.4", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/environment.git", + "reference": "d47bbbad83711771f167c72d4e3f25f7fcc1f8b0" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/environment/zipball/d47bbbad83711771f167c72d4e3f25f7fcc1f8b0", + "reference": "d47bbbad83711771f167c72d4e3f25f7fcc1f8b0", + "shasum": "" + }, + "require": { + "php": ">=7.1" + }, + "require-dev": { + "phpunit/phpunit": "^7.5" + }, + "suggest": { + "ext-posix": "*" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "4.2-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de" + } + ], + "description": "Provides functionality to handle HHVM/PHP environments", + "homepage": "http://www.github.com/sebastianbergmann/environment", + "keywords": [ + "Xdebug", + "environment", + "hhvm" + ], + "support": { + "issues": "https://github.com/sebastianbergmann/environment/issues", + "source": "https://github.com/sebastianbergmann/environment/tree/4.2.4" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2020-11-30T07:53:42+00:00" + }, + { + "name": "sebastian/exporter", + "version": "3.1.3", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/exporter.git", + "reference": "6b853149eab67d4da22291d36f5b0631c0fd856e" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/exporter/zipball/6b853149eab67d4da22291d36f5b0631c0fd856e", + "reference": "6b853149eab67d4da22291d36f5b0631c0fd856e", + "shasum": "" + }, + "require": { + "php": ">=7.0", + "sebastian/recursion-context": "^3.0" + }, + "require-dev": { + "ext-mbstring": "*", + "phpunit/phpunit": "^6.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "3.1.x-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de" + }, + { + "name": "Jeff Welch", + "email": "whatthejeff@gmail.com" + }, + { + "name": "Volker Dusch", + "email": "github@wallbash.com" + }, + { + "name": "Adam Harvey", + "email": "aharvey@php.net" + }, + { + "name": "Bernhard Schussek", + "email": "bschussek@gmail.com" + } + ], + "description": "Provides the functionality to export PHP variables for visualization", + "homepage": "http://www.github.com/sebastianbergmann/exporter", + "keywords": [ + "export", + "exporter" + ], + "support": { + "issues": "https://github.com/sebastianbergmann/exporter/issues", + "source": "https://github.com/sebastianbergmann/exporter/tree/3.1.3" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2020-11-30T07:47:53+00:00" + }, + { + "name": "sebastian/global-state", + "version": "3.0.1", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/global-state.git", + "reference": "474fb9edb7ab891665d3bfc6317f42a0a150454b" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/global-state/zipball/474fb9edb7ab891665d3bfc6317f42a0a150454b", + "reference": "474fb9edb7ab891665d3bfc6317f42a0a150454b", + "shasum": "" + }, + "require": { + "php": ">=7.2", + "sebastian/object-reflector": "^1.1.1", + "sebastian/recursion-context": "^3.0" + }, + "require-dev": { + "ext-dom": "*", + "phpunit/phpunit": "^8.0" + }, + "suggest": { + "ext-uopz": "*" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "3.0-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de" + } + ], + "description": "Snapshotting of global state", + "homepage": "http://www.github.com/sebastianbergmann/global-state", + "keywords": [ + "global state" + ], + "support": { + "issues": "https://github.com/sebastianbergmann/global-state/issues", + "source": "https://github.com/sebastianbergmann/global-state/tree/3.0.1" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2020-11-30T07:43:24+00:00" + }, + { + "name": "sebastian/object-enumerator", + "version": "3.0.4", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/object-enumerator.git", + "reference": "e67f6d32ebd0c749cf9d1dbd9f226c727043cdf2" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/object-enumerator/zipball/e67f6d32ebd0c749cf9d1dbd9f226c727043cdf2", + "reference": "e67f6d32ebd0c749cf9d1dbd9f226c727043cdf2", + "shasum": "" + }, + "require": { + "php": ">=7.0", + "sebastian/object-reflector": "^1.1.1", + "sebastian/recursion-context": "^3.0" + }, + "require-dev": { + "phpunit/phpunit": "^6.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "3.0.x-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de" + } + ], + "description": "Traverses array structures and object graphs to enumerate all referenced objects", + "homepage": "https://github.com/sebastianbergmann/object-enumerator/", + "support": { + "issues": "https://github.com/sebastianbergmann/object-enumerator/issues", + "source": "https://github.com/sebastianbergmann/object-enumerator/tree/3.0.4" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2020-11-30T07:40:27+00:00" + }, + { + "name": "sebastian/object-reflector", + "version": "1.1.2", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/object-reflector.git", + "reference": "9b8772b9cbd456ab45d4a598d2dd1a1bced6363d" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/object-reflector/zipball/9b8772b9cbd456ab45d4a598d2dd1a1bced6363d", + "reference": "9b8772b9cbd456ab45d4a598d2dd1a1bced6363d", + "shasum": "" + }, + "require": { + "php": ">=7.0" + }, + "require-dev": { + "phpunit/phpunit": "^6.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.1-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de" + } + ], + "description": "Allows reflection of object attributes, including inherited and non-public ones", + "homepage": "https://github.com/sebastianbergmann/object-reflector/", + "support": { + "issues": "https://github.com/sebastianbergmann/object-reflector/issues", + "source": "https://github.com/sebastianbergmann/object-reflector/tree/1.1.2" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2020-11-30T07:37:18+00:00" + }, + { + "name": "sebastian/recursion-context", + "version": "3.0.1", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/recursion-context.git", + "reference": "367dcba38d6e1977be014dc4b22f47a484dac7fb" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/recursion-context/zipball/367dcba38d6e1977be014dc4b22f47a484dac7fb", + "reference": "367dcba38d6e1977be014dc4b22f47a484dac7fb", + "shasum": "" + }, + "require": { + "php": ">=7.0" + }, + "require-dev": { + "phpunit/phpunit": "^6.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "3.0.x-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de" + }, + { + "name": "Jeff Welch", + "email": "whatthejeff@gmail.com" + }, + { + "name": "Adam Harvey", + "email": "aharvey@php.net" + } + ], + "description": "Provides functionality to recursively process PHP variables", + "homepage": "http://www.github.com/sebastianbergmann/recursion-context", + "support": { + "issues": "https://github.com/sebastianbergmann/recursion-context/issues", + "source": "https://github.com/sebastianbergmann/recursion-context/tree/3.0.1" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2020-11-30T07:34:24+00:00" + }, + { + "name": "sebastian/resource-operations", + "version": "2.0.2", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/resource-operations.git", + "reference": "31d35ca87926450c44eae7e2611d45a7a65ea8b3" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/resource-operations/zipball/31d35ca87926450c44eae7e2611d45a7a65ea8b3", + "reference": "31d35ca87926450c44eae7e2611d45a7a65ea8b3", + "shasum": "" + }, + "require": { + "php": ">=7.1" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "2.0-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de" + } + ], + "description": "Provides a list of PHP built-in functions that operate on resources", + "homepage": "https://www.github.com/sebastianbergmann/resource-operations", + "support": { + "issues": "https://github.com/sebastianbergmann/resource-operations/issues", + "source": "https://github.com/sebastianbergmann/resource-operations/tree/2.0.2" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2020-11-30T07:30:19+00:00" + }, + { + "name": "sebastian/type", + "version": "1.1.4", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/type.git", + "reference": "0150cfbc4495ed2df3872fb31b26781e4e077eb4" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/type/zipball/0150cfbc4495ed2df3872fb31b26781e4e077eb4", + "reference": "0150cfbc4495ed2df3872fb31b26781e4e077eb4", + "shasum": "" + }, + "require": { + "php": ">=7.2" + }, + "require-dev": { + "phpunit/phpunit": "^8.2" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.1-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de", + "role": "lead" + } + ], + "description": "Collection of value objects that represent the types of the PHP type system", + "homepage": "https://github.com/sebastianbergmann/type", + "support": { + "issues": "https://github.com/sebastianbergmann/type/issues", + "source": "https://github.com/sebastianbergmann/type/tree/1.1.4" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2020-11-30T07:25:11+00:00" + }, + { + "name": "sebastian/version", + "version": "2.0.1", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/version.git", + "reference": "99732be0ddb3361e16ad77b68ba41efc8e979019" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/version/zipball/99732be0ddb3361e16ad77b68ba41efc8e979019", + "reference": "99732be0ddb3361e16ad77b68ba41efc8e979019", + "shasum": "" + }, + "require": { + "php": ">=5.6" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "2.0.x-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de", + "role": "lead" + } + ], + "description": "Library that helps with managing the version number of Git-hosted PHP projects", + "homepage": "https://github.com/sebastianbergmann/version", + "support": { + "issues": "https://github.com/sebastianbergmann/version/issues", + "source": "https://github.com/sebastianbergmann/version/tree/master" + }, + "time": "2016-10-03T07:35:21+00:00" + }, + { + "name": "symfony/config", + "version": "v5.2.3", + "source": { + "type": "git", + "url": "https://github.com/symfony/config.git", + "reference": "50e0e1314a3b2609d32b6a5a0d0fb5342494c4ab" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/config/zipball/50e0e1314a3b2609d32b6a5a0d0fb5342494c4ab", + "reference": "50e0e1314a3b2609d32b6a5a0d0fb5342494c4ab", + "shasum": "" + }, + "require": { + "php": ">=7.2.5", + "symfony/deprecation-contracts": "^2.1", + "symfony/filesystem": "^4.4|^5.0", + "symfony/polyfill-ctype": "~1.8", + "symfony/polyfill-php80": "^1.15" + }, + "conflict": { + "symfony/finder": "<4.4" + }, + "require-dev": { + "symfony/event-dispatcher": "^4.4|^5.0", + "symfony/finder": "^4.4|^5.0", + "symfony/messenger": "^4.4|^5.0", + "symfony/service-contracts": "^1.1|^2", + "symfony/yaml": "^4.4|^5.0" + }, + "suggest": { + "symfony/yaml": "To use the yaml reference dumper" + }, + "type": "library", + "autoload": { + "psr-4": { + "Symfony\\Component\\Config\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Helps you find, load, combine, autofill and validate configuration values of any kind", + "homepage": "https://symfony.com", + "support": { + "source": "https://github.com/symfony/config/tree/v5.2.3" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2021-01-27T10:15:41+00:00" + }, + { + "name": "symfony/console", + "version": "v5.2.3", + "source": { + "type": "git", + "url": "https://github.com/symfony/console.git", + "reference": "89d4b176d12a2946a1ae4e34906a025b7b6b135a" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/console/zipball/89d4b176d12a2946a1ae4e34906a025b7b6b135a", + "reference": "89d4b176d12a2946a1ae4e34906a025b7b6b135a", + "shasum": "" + }, + "require": { + "php": ">=7.2.5", + "symfony/polyfill-mbstring": "~1.0", + "symfony/polyfill-php73": "^1.8", + "symfony/polyfill-php80": "^1.15", + "symfony/service-contracts": "^1.1|^2", + "symfony/string": "^5.1" + }, + "conflict": { + "symfony/dependency-injection": "<4.4", + "symfony/dotenv": "<5.1", + "symfony/event-dispatcher": "<4.4", + "symfony/lock": "<4.4", + "symfony/process": "<4.4" + }, + "provide": { + "psr/log-implementation": "1.0" + }, + "require-dev": { + "psr/log": "~1.0", + "symfony/config": "^4.4|^5.0", + "symfony/dependency-injection": "^4.4|^5.0", + "symfony/event-dispatcher": "^4.4|^5.0", + "symfony/lock": "^4.4|^5.0", + "symfony/process": "^4.4|^5.0", + "symfony/var-dumper": "^4.4|^5.0" + }, + "suggest": { + "psr/log": "For using the console logger", + "symfony/event-dispatcher": "", + "symfony/lock": "", + "symfony/process": "" + }, + "type": "library", + "autoload": { + "psr-4": { + "Symfony\\Component\\Console\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Eases the creation of beautiful and testable command line interfaces", + "homepage": "https://symfony.com", + "keywords": [ + "cli", + "command line", + "console", + "terminal" + ], + "support": { + "source": "https://github.com/symfony/console/tree/v5.2.3" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2021-01-28T22:06:19+00:00" + }, + { + "name": "symfony/deprecation-contracts", + "version": "v2.2.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/deprecation-contracts.git", + "reference": "5fa56b4074d1ae755beb55617ddafe6f5d78f665" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/deprecation-contracts/zipball/5fa56b4074d1ae755beb55617ddafe6f5d78f665", + "reference": "5fa56b4074d1ae755beb55617ddafe6f5d78f665", + "shasum": "" + }, + "require": { + "php": ">=7.1" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "2.2-dev" + }, + "thanks": { + "name": "symfony/contracts", + "url": "https://github.com/symfony/contracts" + } + }, + "autoload": { + "files": [ + "function.php" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "A generic function and convention to trigger deprecation notices", + "homepage": "https://symfony.com", + "support": { + "source": "https://github.com/symfony/deprecation-contracts/tree/master" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2020-09-07T11:33:47+00:00" + }, + { + "name": "symfony/filesystem", + "version": "v5.2.3", + "source": { + "type": "git", + "url": "https://github.com/symfony/filesystem.git", + "reference": "262d033b57c73e8b59cd6e68a45c528318b15038" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/filesystem/zipball/262d033b57c73e8b59cd6e68a45c528318b15038", + "reference": "262d033b57c73e8b59cd6e68a45c528318b15038", + "shasum": "" + }, + "require": { + "php": ">=7.2.5", + "symfony/polyfill-ctype": "~1.8" + }, + "type": "library", + "autoload": { + "psr-4": { + "Symfony\\Component\\Filesystem\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Provides basic utilities for the filesystem", + "homepage": "https://symfony.com", + "support": { + "source": "https://github.com/symfony/filesystem/tree/v5.2.3" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2021-01-27T10:01:46+00:00" + }, + { + "name": "symfony/polyfill-ctype", + "version": "v1.22.1", + "source": { + "type": "git", + "url": "https://github.com/symfony/polyfill-ctype.git", + "reference": "c6c942b1ac76c82448322025e084cadc56048b4e" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/polyfill-ctype/zipball/c6c942b1ac76c82448322025e084cadc56048b4e", + "reference": "c6c942b1ac76c82448322025e084cadc56048b4e", + "shasum": "" + }, + "require": { + "php": ">=7.1" + }, + "suggest": { + "ext-ctype": "For best performance" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "1.22-dev" + }, + "thanks": { + "name": "symfony/polyfill", + "url": "https://github.com/symfony/polyfill" + } + }, + "autoload": { + "psr-4": { + "Symfony\\Polyfill\\Ctype\\": "" + }, + "files": [ + "bootstrap.php" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Gert de Pagter", + "email": "BackEndTea@gmail.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony polyfill for ctype functions", + "homepage": "https://symfony.com", + "keywords": [ + "compatibility", + "ctype", + "polyfill", + "portable" + ], + "support": { + "source": "https://github.com/symfony/polyfill-ctype/tree/v1.22.1" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2021-01-07T16:49:33+00:00" + }, + { + "name": "symfony/polyfill-intl-grapheme", + "version": "v1.22.1", + "source": { + "type": "git", + "url": "https://github.com/symfony/polyfill-intl-grapheme.git", + "reference": "5601e09b69f26c1828b13b6bb87cb07cddba3170" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/polyfill-intl-grapheme/zipball/5601e09b69f26c1828b13b6bb87cb07cddba3170", + "reference": "5601e09b69f26c1828b13b6bb87cb07cddba3170", + "shasum": "" + }, + "require": { + "php": ">=7.1" + }, + "suggest": { + "ext-intl": "For best performance" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "1.22-dev" + }, + "thanks": { + "name": "symfony/polyfill", + "url": "https://github.com/symfony/polyfill" + } + }, + "autoload": { + "psr-4": { + "Symfony\\Polyfill\\Intl\\Grapheme\\": "" + }, + "files": [ + "bootstrap.php" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony polyfill for intl's grapheme_* functions", + "homepage": "https://symfony.com", + "keywords": [ + "compatibility", + "grapheme", + "intl", + "polyfill", + "portable", + "shim" + ], + "support": { + "source": "https://github.com/symfony/polyfill-intl-grapheme/tree/v1.22.1" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2021-01-22T09:19:47+00:00" + }, + { + "name": "symfony/polyfill-mbstring", + "version": "v1.22.1", + "source": { + "type": "git", + "url": "https://github.com/symfony/polyfill-mbstring.git", + "reference": "5232de97ee3b75b0360528dae24e73db49566ab1" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/5232de97ee3b75b0360528dae24e73db49566ab1", + "reference": "5232de97ee3b75b0360528dae24e73db49566ab1", + "shasum": "" + }, + "require": { + "php": ">=7.1" + }, + "suggest": { + "ext-mbstring": "For best performance" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "1.22-dev" + }, + "thanks": { + "name": "symfony/polyfill", + "url": "https://github.com/symfony/polyfill" + } + }, + "autoload": { + "psr-4": { + "Symfony\\Polyfill\\Mbstring\\": "" + }, + "files": [ + "bootstrap.php" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony polyfill for the Mbstring extension", + "homepage": "https://symfony.com", + "keywords": [ + "compatibility", + "mbstring", + "polyfill", + "portable", + "shim" + ], + "support": { + "source": "https://github.com/symfony/polyfill-mbstring/tree/v1.22.1" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2021-01-22T09:19:47+00:00" + }, + { + "name": "symfony/polyfill-php73", + "version": "v1.22.1", + "source": { + "type": "git", + "url": "https://github.com/symfony/polyfill-php73.git", + "reference": "a678b42e92f86eca04b7fa4c0f6f19d097fb69e2" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/polyfill-php73/zipball/a678b42e92f86eca04b7fa4c0f6f19d097fb69e2", + "reference": "a678b42e92f86eca04b7fa4c0f6f19d097fb69e2", + "shasum": "" + }, + "require": { + "php": ">=7.1" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "1.22-dev" + }, + "thanks": { + "name": "symfony/polyfill", + "url": "https://github.com/symfony/polyfill" + } + }, + "autoload": { + "psr-4": { + "Symfony\\Polyfill\\Php73\\": "" + }, + "files": [ + "bootstrap.php" + ], + "classmap": [ + "Resources/stubs" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony polyfill backporting some PHP 7.3+ features to lower PHP versions", + "homepage": "https://symfony.com", + "keywords": [ + "compatibility", + "polyfill", + "portable", + "shim" + ], + "support": { + "source": "https://github.com/symfony/polyfill-php73/tree/v1.22.1" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2021-01-07T16:49:33+00:00" + }, + { + "name": "symfony/polyfill-php80", + "version": "v1.22.1", + "source": { + "type": "git", + "url": "https://github.com/symfony/polyfill-php80.git", + "reference": "dc3063ba22c2a1fd2f45ed856374d79114998f91" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/polyfill-php80/zipball/dc3063ba22c2a1fd2f45ed856374d79114998f91", + "reference": "dc3063ba22c2a1fd2f45ed856374d79114998f91", + "shasum": "" + }, + "require": { + "php": ">=7.1" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "1.22-dev" + }, + "thanks": { + "name": "symfony/polyfill", + "url": "https://github.com/symfony/polyfill" + } + }, + "autoload": { + "psr-4": { + "Symfony\\Polyfill\\Php80\\": "" + }, + "files": [ + "bootstrap.php" + ], + "classmap": [ + "Resources/stubs" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Ion Bazan", + "email": "ion.bazan@gmail.com" + }, + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony polyfill backporting some PHP 8.0+ features to lower PHP versions", + "homepage": "https://symfony.com", + "keywords": [ + "compatibility", + "polyfill", + "portable", + "shim" + ], + "support": { + "source": "https://github.com/symfony/polyfill-php80/tree/v1.22.1" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2021-01-07T16:49:33+00:00" + }, + { + "name": "symfony/service-contracts", + "version": "v2.2.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/service-contracts.git", + "reference": "d15da7ba4957ffb8f1747218be9e1a121fd298a1" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/service-contracts/zipball/d15da7ba4957ffb8f1747218be9e1a121fd298a1", + "reference": "d15da7ba4957ffb8f1747218be9e1a121fd298a1", + "shasum": "" + }, + "require": { + "php": ">=7.2.5", + "psr/container": "^1.0" + }, + "suggest": { + "symfony/service-implementation": "" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "2.2-dev" + }, + "thanks": { + "name": "symfony/contracts", + "url": "https://github.com/symfony/contracts" + } + }, + "autoload": { + "psr-4": { + "Symfony\\Contracts\\Service\\": "" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Generic abstractions related to writing services", + "homepage": "https://symfony.com", + "keywords": [ + "abstractions", + "contracts", + "decoupling", + "interfaces", + "interoperability", + "standards" + ], + "support": { + "source": "https://github.com/symfony/service-contracts/tree/master" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2020-09-07T11:33:47+00:00" + }, + { + "name": "symfony/stopwatch", + "version": "v5.2.3", + "source": { + "type": "git", + "url": "https://github.com/symfony/stopwatch.git", + "reference": "b12274acfab9d9850c52583d136a24398cdf1a0c" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/stopwatch/zipball/b12274acfab9d9850c52583d136a24398cdf1a0c", + "reference": "b12274acfab9d9850c52583d136a24398cdf1a0c", + "shasum": "" + }, + "require": { + "php": ">=7.2.5", + "symfony/service-contracts": "^1.0|^2" + }, + "type": "library", + "autoload": { + "psr-4": { + "Symfony\\Component\\Stopwatch\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Provides a way to profile code", + "homepage": "https://symfony.com", + "support": { + "source": "https://github.com/symfony/stopwatch/tree/v5.2.3" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2021-01-27T10:15:41+00:00" + }, + { + "name": "symfony/string", + "version": "v5.2.3", + "source": { + "type": "git", + "url": "https://github.com/symfony/string.git", + "reference": "c95468897f408dd0aca2ff582074423dd0455122" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/string/zipball/c95468897f408dd0aca2ff582074423dd0455122", + "reference": "c95468897f408dd0aca2ff582074423dd0455122", + "shasum": "" + }, + "require": { + "php": ">=7.2.5", + "symfony/polyfill-ctype": "~1.8", + "symfony/polyfill-intl-grapheme": "~1.0", + "symfony/polyfill-intl-normalizer": "~1.0", + "symfony/polyfill-mbstring": "~1.0", + "symfony/polyfill-php80": "~1.15" + }, + "require-dev": { + "symfony/error-handler": "^4.4|^5.0", + "symfony/http-client": "^4.4|^5.0", + "symfony/translation-contracts": "^1.1|^2", + "symfony/var-exporter": "^4.4|^5.0" + }, + "type": "library", + "autoload": { + "psr-4": { + "Symfony\\Component\\String\\": "" + }, + "files": [ + "Resources/functions.php" + ], + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Provides an object-oriented API to strings and deals with bytes, UTF-8 code points and grapheme clusters in a unified way", + "homepage": "https://symfony.com", + "keywords": [ + "grapheme", + "i18n", + "string", + "unicode", + "utf-8", + "utf8" + ], + "support": { + "source": "https://github.com/symfony/string/tree/v5.2.3" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2021-01-25T15:14:59+00:00" + }, + { + "name": "symfony/yaml", + "version": "v5.2.3", + "source": { + "type": "git", + "url": "https://github.com/symfony/yaml.git", + "reference": "338cddc6d74929f6adf19ca5682ac4b8e109cdb0" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/yaml/zipball/338cddc6d74929f6adf19ca5682ac4b8e109cdb0", + "reference": "338cddc6d74929f6adf19ca5682ac4b8e109cdb0", + "shasum": "" + }, + "require": { + "php": ">=7.2.5", + "symfony/deprecation-contracts": "^2.1", + "symfony/polyfill-ctype": "~1.8" + }, + "conflict": { + "symfony/console": "<4.4" + }, + "require-dev": { + "symfony/console": "^4.4|^5.0" + }, + "suggest": { + "symfony/console": "For validating YAML files using the lint command" + }, + "bin": [ + "Resources/bin/yaml-lint" + ], + "type": "library", + "autoload": { + "psr-4": { + "Symfony\\Component\\Yaml\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Loads and dumps YAML files", + "homepage": "https://symfony.com", + "support": { + "source": "https://github.com/symfony/yaml/tree/v5.2.3" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2021-02-03T04:42:09+00:00" + }, + { + "name": "theseer/tokenizer", + "version": "1.2.0", + "source": { + "type": "git", + "url": "https://github.com/theseer/tokenizer.git", + "reference": "75a63c33a8577608444246075ea0af0d052e452a" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/theseer/tokenizer/zipball/75a63c33a8577608444246075ea0af0d052e452a", + "reference": "75a63c33a8577608444246075ea0af0d052e452a", + "shasum": "" + }, + "require": { + "ext-dom": "*", + "ext-tokenizer": "*", + "ext-xmlwriter": "*", + "php": "^7.2 || ^8.0" + }, + "type": "library", + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Arne Blankerts", + "email": "arne@blankerts.de", + "role": "Developer" + } + ], + "description": "A small library for converting tokenized PHP source code into XML and potentially other formats", + "support": { + "issues": "https://github.com/theseer/tokenizer/issues", + "source": "https://github.com/theseer/tokenizer/tree/master" + }, + "funding": [ + { + "url": "https://github.com/theseer", + "type": "github" + } + ], + "time": "2020-07-12T23:59:07+00:00" + }, + { + "name": "vimeo/psalm", + "version": "4.6.2", + "source": { + "type": "git", + "url": "https://github.com/vimeo/psalm.git", + "reference": "bca09d74adc704c4eaee36a3c3e9d379e290fc3b" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/vimeo/psalm/zipball/bca09d74adc704c4eaee36a3c3e9d379e290fc3b", + "reference": "bca09d74adc704c4eaee36a3c3e9d379e290fc3b", + "shasum": "" + }, + "require": { + "amphp/amp": "^2.1", + "amphp/byte-stream": "^1.5", + "composer/package-versions-deprecated": "^1.8.0", + "composer/semver": "^1.4 || ^2.0 || ^3.0", + "composer/xdebug-handler": "^1.1", + "dnoegel/php-xdg-base-dir": "^0.1.1", + "ext-dom": "*", + "ext-json": "*", + "ext-libxml": "*", + "ext-mbstring": "*", + "ext-simplexml": "*", + "ext-tokenizer": "*", + "felixfbecker/advanced-json-rpc": "^3.0.3", + "felixfbecker/language-server-protocol": "^1.5", + "netresearch/jsonmapper": "^1.0 || ^2.0 || ^3.0 || ^4.0", + "nikic/php-parser": "^4.10.1", + "openlss/lib-array2xml": "^1.0", + "php": "^7.1|^8", + "sebastian/diff": "^3.0 || ^4.0", + "symfony/console": "^3.4.17 || ^4.1.6 || ^5.0", + "webmozart/path-util": "^2.3" + }, + "provide": { + "psalm/psalm": "self.version" + }, + "require-dev": { + "amphp/amp": "^2.4.2", + "bamarni/composer-bin-plugin": "^1.2", + "brianium/paratest": "^4.0||^6.0", + "ext-curl": "*", + "php-parallel-lint/php-parallel-lint": "^1.2", + "phpdocumentor/reflection-docblock": "^5", + "phpmyadmin/sql-parser": "5.1.0||dev-master", + "phpspec/prophecy": ">=1.9.0", + "phpunit/phpunit": "^9.0", + "psalm/plugin-phpunit": "^0.13", + "slevomat/coding-standard": "^6.3.11", + "squizlabs/php_codesniffer": "^3.5", + "symfony/process": "^4.3", + "weirdan/prophecy-shim": "^1.0 || ^2.0" + }, + "suggest": { + "ext-igbinary": "^2.0.5" + }, + "bin": [ + "psalm", + "psalm-language-server", + "psalm-plugin", + "psalm-refactor", + "psalter" + ], + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "4.x-dev", + "dev-3.x": "3.x-dev", + "dev-2.x": "2.x-dev", + "dev-1.x": "1.x-dev" + } + }, + "autoload": { + "psr-4": { + "Psalm\\": "src/Psalm/" + }, + "files": [ + "src/functions.php", + "src/spl_object_id.php" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Matthew Brown" + } + ], + "description": "A static analysis tool for finding errors in PHP applications", + "keywords": [ + "code", + "inspection", + "php" + ], + "support": { + "issues": "https://github.com/vimeo/psalm/issues", + "source": "https://github.com/vimeo/psalm/tree/4.6.2" + }, + "time": "2021-02-26T02:24:18+00:00" + }, + { + "name": "webmozart/assert", + "version": "1.9.1", + "source": { + "type": "git", + "url": "https://github.com/webmozarts/assert.git", + "reference": "bafc69caeb4d49c39fd0779086c03a3738cbb389" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/webmozarts/assert/zipball/bafc69caeb4d49c39fd0779086c03a3738cbb389", + "reference": "bafc69caeb4d49c39fd0779086c03a3738cbb389", + "shasum": "" + }, + "require": { + "php": "^5.3.3 || ^7.0 || ^8.0", + "symfony/polyfill-ctype": "^1.8" + }, + "conflict": { + "phpstan/phpstan": "<0.12.20", + "vimeo/psalm": "<3.9.1" + }, + "require-dev": { + "phpunit/phpunit": "^4.8.36 || ^7.5.13" + }, + "type": "library", + "autoload": { + "psr-4": { + "Webmozart\\Assert\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Bernhard Schussek", + "email": "bschussek@gmail.com" + } + ], + "description": "Assertions to validate method input/output with nice error messages.", + "keywords": [ + "assert", + "check", + "validate" + ], + "support": { + "issues": "https://github.com/webmozarts/assert/issues", + "source": "https://github.com/webmozarts/assert/tree/1.9.1" + }, + "time": "2020-07-08T17:02:28+00:00" + }, + { + "name": "webmozart/path-util", + "version": "2.3.0", + "source": { + "type": "git", + "url": "https://github.com/webmozart/path-util.git", + "reference": "d939f7edc24c9a1bb9c0dee5cb05d8e859490725" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/webmozart/path-util/zipball/d939f7edc24c9a1bb9c0dee5cb05d8e859490725", + "reference": "d939f7edc24c9a1bb9c0dee5cb05d8e859490725", + "shasum": "" + }, + "require": { + "php": ">=5.3.3", + "webmozart/assert": "~1.0" + }, + "require-dev": { + "phpunit/phpunit": "^4.6", + "sebastian/version": "^1.0.1" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "2.3-dev" + } + }, + "autoload": { + "psr-4": { + "Webmozart\\PathUtil\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Bernhard Schussek", + "email": "bschussek@gmail.com" + } + ], + "description": "A robust cross-platform utility for normalizing, comparing and modifying file paths.", + "support": { + "issues": "https://github.com/webmozart/path-util/issues", + "source": "https://github.com/webmozart/path-util/tree/2.3.0" + }, + "time": "2015-12-17T08:42:14+00:00" + } + ], + "aliases": [], + "minimum-stability": "stable", + "stability-flags": [], + "prefer-stable": false, + "prefer-lowest": false, + "platform": { + "php": ">=7.2" + }, + "platform-dev": [], + "plugin-api-version": "2.0.0" +} diff --git a/user/plugins/email/vendor/egulias/email-validator/src/EmailLexer.php b/user/plugins/email/vendor/egulias/email-validator/src/EmailLexer.php new file mode 100644 index 0000000..41e9ea9 --- /dev/null +++ b/user/plugins/email/vendor/egulias/email-validator/src/EmailLexer.php @@ -0,0 +1,361 @@ + self::S_OPENCURLYBRACES, + '}' => self::S_CLOSECURLYBRACES, + '(' => self::S_OPENPARENTHESIS, + ')' => self::S_CLOSEPARENTHESIS, + '<' => self::S_LOWERTHAN, + '>' => self::S_GREATERTHAN, + '[' => self::S_OPENBRACKET, + ']' => self::S_CLOSEBRACKET, + ':' => self::S_COLON, + ';' => self::S_SEMICOLON, + '@' => self::S_AT, + '\\' => self::S_BACKSLASH, + '/' => self::S_SLASH, + ',' => self::S_COMMA, + '.' => self::S_DOT, + "'" => self::S_SQUOTE, + "`" => self::S_BACKTICK, + '"' => self::S_DQUOTE, + '-' => self::S_HYPHEN, + '::' => self::S_DOUBLECOLON, + ' ' => self::S_SP, + "\t" => self::S_HTAB, + "\r" => self::S_CR, + "\n" => self::S_LF, + "\r\n" => self::CRLF, + 'IPv6' => self::S_IPV6TAG, + '' => self::S_EMPTY, + '\0' => self::C_NUL, + '*' => self::ASTERISK, + '!' => self::EXCLAMATION, + '&' => self::AMPERSAND, + '^' => self::CARET, + '$' => self::DOLLAR, + '%' => self::PERCENTAGE, + '~' => self::S_TILDE, + '|' => self::S_PIPE, + '_' => self::S_UNDERSCORE, + '=' => self::S_EQUAL, + '+' => self::S_PLUS, + '¿' => self::INVERT_QUESTIONMARK, + '?' => self::QUESTIONMARK, + '#' => self::NUMBER_SIGN, + '¡' => self::INVERT_EXCLAMATION, + ); + + /** + * @var bool + */ + protected $hasInvalidTokens = false; + + /** + * @var array + * + * @psalm-var array{value:string, type:null|int, position:int}|array + */ + protected $previous = []; + + /** + * The last matched/seen token. + * + * @var array + * + * @psalm-suppress NonInvariantDocblockPropertyType + * @psalm-var array{value:string, type:null|int, position:int} + * @psalm-suppress NonInvariantDocblockPropertyType + */ + public $token; + + /** + * The next token in the input. + * + * @var array|null + */ + public $lookahead; + + /** + * @psalm-var array{value:'', type:null, position:0} + */ + private static $nullToken = [ + 'value' => '', + 'type' => null, + 'position' => 0, + ]; + + /** + * @var string + */ + private $accumulator = ''; + + /** + * @var bool + */ + private $hasToRecord = false; + + public function __construct() + { + $this->previous = $this->token = self::$nullToken; + $this->lookahead = null; + } + + /** + * @return void + */ + public function reset() + { + $this->hasInvalidTokens = false; + parent::reset(); + $this->previous = $this->token = self::$nullToken; + } + + /** + * @return bool + */ + public function hasInvalidTokens() + { + return $this->hasInvalidTokens; + } + + /** + * @param int $type + * @throws \UnexpectedValueException + * @return boolean + * + * @psalm-suppress InvalidScalarArgument + */ + public function find($type) + { + $search = clone $this; + $search->skipUntil($type); + + if (!$search->lookahead) { + throw new \UnexpectedValueException($type . ' not found'); + } + return true; + } + + /** + * getPrevious + * + * @return array + */ + public function getPrevious() + { + return $this->previous; + } + + /** + * moveNext + * + * @return boolean + */ + public function moveNext() + { + if ($this->hasToRecord && $this->previous === self::$nullToken) { + $this->accumulator .= $this->token['value']; + } + + $this->previous = $this->token; + $hasNext = parent::moveNext(); + $this->token = $this->token ?: self::$nullToken; + + if ($this->hasToRecord) { + $this->accumulator .= $this->token['value']; + } + + return $hasNext; + } + + /** + * Lexical catchable patterns. + * + * @return string[] + */ + protected function getCatchablePatterns() + { + return array( + '[a-zA-Z]+[46]?', //ASCII and domain literal + '[^\x00-\x7F]', //UTF-8 + '[0-9]+', + '\r\n', + '::', + '\s+?', + '.', + ); + } + + /** + * Lexical non-catchable patterns. + * + * @return string[] + */ + protected function getNonCatchablePatterns() + { + return [ + '[\xA0-\xff]+', + ]; + } + + /** + * Retrieve token type. Also processes the token value if necessary. + * + * @param string $value + * @throws \InvalidArgumentException + * @return integer + */ + protected function getType(&$value) + { + $encoded = $value; + + if (mb_detect_encoding($value, 'auto', true) !== 'UTF-8') { + $encoded = utf8_encode($value); + } + + if ($this->isValid($encoded)) { + return $this->charValue[$encoded]; + } + + if ($this->isNullType($encoded)) { + return self::C_NUL; + } + + if ($this->isInvalidChar($encoded)) { + $this->hasInvalidTokens = true; + return self::INVALID; + } + + + return self::GENERIC; + } + + protected function isInvalidChar(string $value) : bool + { + if(preg_match("/[^\p{S}\p{C}\p{Cc}]+/iu", $value) ) { + return false; + } + return true; + } + + protected function isValid(string $value) : bool + { + if (isset($this->charValue[$value])) { + return true; + } + + return false; + } + + /** + * @param string $value + * @return bool + */ + protected function isNullType($value) + { + if ($value === "\0") { + return true; + } + + return false; + } + + protected function isUTF8Invalid(string $value) : bool + { + if (preg_match('/\p{Cc}+/u', $value)) { + return true; + } + + return false; + } + + /** + * @return string + */ + protected function getModifiers() + { + return 'iu'; + } + + public function getAccumulatedValues() : string + { + return $this->accumulator; + } + + public function startRecording() : void + { + $this->hasToRecord = true; + } + + public function stopRecording() : void + { + $this->hasToRecord = false; + } + + public function clearRecorded() : void + { + $this->accumulator = ''; + } +} diff --git a/user/plugins/email/vendor/egulias/email-validator/src/EmailParser.php b/user/plugins/email/vendor/egulias/email-validator/src/EmailParser.php new file mode 100644 index 0000000..c78f74a --- /dev/null +++ b/user/plugins/email/vendor/egulias/email-validator/src/EmailParser.php @@ -0,0 +1,91 @@ +addLongEmailWarning($this->localPart, $this->domainPart); + + return $result; + } + + protected function preLeftParsing(): Result + { + if (!$this->hasAtToken()) { + return new InvalidEmail(new NoLocalPart(), $this->lexer->token["value"]); + } + return new ValidEmail(); + } + + protected function parseLeftFromAt(): Result + { + return $this->processLocalPart(); + } + + protected function parseRightFromAt(): Result + { + return $this->processDomainPart(); + } + + private function processLocalPart() : Result + { + $localPartParser = new LocalPart($this->lexer); + $localPartResult = $localPartParser->parse(); + $this->localPart = $localPartParser->localPart(); + $this->warnings = array_merge($localPartParser->getWarnings(), $this->warnings); + + return $localPartResult; + } + + private function processDomainPart() : Result + { + $domainPartParser = new DomainPart($this->lexer); + $domainPartResult = $domainPartParser->parse(); + $this->domainPart = $domainPartParser->domainPart(); + $this->warnings = array_merge($domainPartParser->getWarnings(), $this->warnings); + + return $domainPartResult; + } + + public function getDomainPart() : string + { + return $this->domainPart; + } + + public function getLocalPart() : string + { + return $this->localPart; + } + + private function addLongEmailWarning(string $localPart, string $parsedDomainPart) : void + { + if (strlen($localPart . '@' . $parsedDomainPart) > self::EMAIL_MAX_LENGTH) { + $this->warnings[EmailTooLong::CODE] = new EmailTooLong(); + } + } +} diff --git a/user/plugins/email/vendor/egulias/email-validator/src/EmailValidator.php b/user/plugins/email/vendor/egulias/email-validator/src/EmailValidator.php new file mode 100644 index 0000000..5a2e5c8 --- /dev/null +++ b/user/plugins/email/vendor/egulias/email-validator/src/EmailValidator.php @@ -0,0 +1,67 @@ +lexer = new EmailLexer(); + } + + /** + * @param string $email + * @param EmailValidation $emailValidation + * @return bool + */ + public function isValid(string $email, EmailValidation $emailValidation) + { + $isValid = $emailValidation->isValid($email, $this->lexer); + $this->warnings = $emailValidation->getWarnings(); + $this->error = $emailValidation->getError(); + + return $isValid; + } + + /** + * @return boolean + */ + public function hasWarnings() + { + return !empty($this->warnings); + } + + /** + * @return array + */ + public function getWarnings() + { + return $this->warnings; + } + + /** + * @return InvalidEmail|null + */ + public function getError() + { + return $this->error; + } +} diff --git a/user/plugins/email/vendor/egulias/email-validator/src/MessageIDParser.php b/user/plugins/email/vendor/egulias/email-validator/src/MessageIDParser.php new file mode 100644 index 0000000..9b029e1 --- /dev/null +++ b/user/plugins/email/vendor/egulias/email-validator/src/MessageIDParser.php @@ -0,0 +1,93 @@ +addLongEmailWarning($this->idLeft, $this->idRight); + + return $result; + } + + protected function preLeftParsing(): Result + { + if (!$this->hasAtToken()) { + return new InvalidEmail(new NoLocalPart(), $this->lexer->token["value"]); + } + return new ValidEmail(); + } + + protected function parseLeftFromAt(): Result + { + return $this->processIDLeft(); + } + + protected function parseRightFromAt(): Result + { + return $this->processIDRight(); + } + + private function processIDLeft() : Result + { + $localPartParser = new IDLeftPart($this->lexer); + $localPartResult = $localPartParser->parse(); + $this->idLeft = $localPartParser->localPart(); + $this->warnings = array_merge($localPartParser->getWarnings(), $this->warnings); + + return $localPartResult; + } + + private function processIDRight() : Result + { + $domainPartParser = new IDRightPart($this->lexer); + $domainPartResult = $domainPartParser->parse(); + $this->idRight = $domainPartParser->domainPart(); + $this->warnings = array_merge($domainPartParser->getWarnings(), $this->warnings); + + return $domainPartResult; + } + + public function getLeftPart() : string + { + return $this->idLeft; + } + + public function getRightPart() : string + { + return $this->idRight; + } + + private function addLongEmailWarning(string $localPart, string $parsedDomainPart) : void + { + if (strlen($localPart . '@' . $parsedDomainPart) > self::EMAILID_MAX_LENGTH) { + $this->warnings[EmailTooLong::CODE] = new EmailTooLong(); + } + } +} \ No newline at end of file diff --git a/user/plugins/email/vendor/egulias/email-validator/src/Parser.php b/user/plugins/email/vendor/egulias/email-validator/src/Parser.php new file mode 100644 index 0000000..b1905f9 --- /dev/null +++ b/user/plugins/email/vendor/egulias/email-validator/src/Parser.php @@ -0,0 +1,78 @@ +lexer = $lexer; + } + + public function parse(string $str) : Result + { + $this->lexer->setInput($str); + + if ($this->lexer->hasInvalidTokens()) { + return new InvalidEmail(new ExpectingATEXT("Invalid tokens found"), $this->lexer->token["value"]); + } + + $preParsingResult = $this->preLeftParsing(); + if ($preParsingResult->isInvalid()) { + return $preParsingResult; + } + + $localPartResult = $this->parseLeftFromAt(); + + if ($localPartResult->isInvalid()) { + return $localPartResult; + } + + $domainPartResult = $this->parseRightFromAt(); + + if ($domainPartResult->isInvalid()) { + return $domainPartResult; + } + + return new ValidEmail(); + } + + /** + * @return Warning\Warning[] + */ + public function getWarnings() : array + { + return $this->warnings; + } + + protected function hasAtToken() : bool + { + $this->lexer->moveNext(); + $this->lexer->moveNext(); + + return $this->lexer->token['type'] !== EmailLexer::S_AT; + } +} diff --git a/user/plugins/email/vendor/egulias/email-validator/src/Parser/Comment.php b/user/plugins/email/vendor/egulias/email-validator/src/Parser/Comment.php new file mode 100644 index 0000000..ffa6128 --- /dev/null +++ b/user/plugins/email/vendor/egulias/email-validator/src/Parser/Comment.php @@ -0,0 +1,103 @@ +lexer = $lexer; + $this->commentStrategy = $commentStrategy; + } + + public function parse() : Result + { + if ($this->lexer->token['type'] === EmailLexer::S_OPENPARENTHESIS) { + $this->openedParenthesis++; + if($this->noClosingParenthesis()) { + return new InvalidEmail(new UnclosedComment(), $this->lexer->token['value']); + } + } + + if ($this->lexer->token['type'] === EmailLexer::S_CLOSEPARENTHESIS) { + return new InvalidEmail(new UnOpenedComment(), $this->lexer->token['value']); + } + + $this->warnings[WarningComment::CODE] = new WarningComment(); + + $moreTokens = true; + while ($this->commentStrategy->exitCondition($this->lexer, $this->openedParenthesis) && $moreTokens){ + + if ($this->lexer->isNextToken(EmailLexer::S_OPENPARENTHESIS)) { + $this->openedParenthesis++; + } + $this->warnEscaping(); + if($this->lexer->isNextToken(EmailLexer::S_CLOSEPARENTHESIS)) { + $this->openedParenthesis--; + } + $moreTokens = $this->lexer->moveNext(); + } + + if($this->openedParenthesis >= 1) { + return new InvalidEmail(new UnclosedComment(), $this->lexer->token['value']); + } else if ($this->openedParenthesis < 0) { + return new InvalidEmail(new UnOpenedComment(), $this->lexer->token['value']); + } + + $finalValidations = $this->commentStrategy->endOfLoopValidations($this->lexer); + + $this->warnings = array_merge($this->warnings, $this->commentStrategy->getWarnings()); + + return $finalValidations; + } + + + /** + * @return bool + */ + private function warnEscaping() : bool + { + //Backslash found + if ($this->lexer->token['type'] !== EmailLexer::S_BACKSLASH) { + return false; + } + + if (!$this->lexer->isNextTokenAny(array(EmailLexer::S_SP, EmailLexer::S_HTAB, EmailLexer::C_DEL))) { + return false; + } + + $this->warnings[QuotedPart::CODE] = + new QuotedPart($this->lexer->getPrevious()['type'], $this->lexer->token['type']); + return true; + + } + + private function noClosingParenthesis() : bool + { + try { + $this->lexer->find(EmailLexer::S_CLOSEPARENTHESIS); + return false; + } catch (\RuntimeException $e) { + return true; + } + } +} \ No newline at end of file diff --git a/user/plugins/email/vendor/egulias/email-validator/src/Parser/CommentStrategy/CommentStrategy.php b/user/plugins/email/vendor/egulias/email-validator/src/Parser/CommentStrategy/CommentStrategy.php new file mode 100644 index 0000000..c388efd --- /dev/null +++ b/user/plugins/email/vendor/egulias/email-validator/src/Parser/CommentStrategy/CommentStrategy.php @@ -0,0 +1,18 @@ +isNextToken(EmailLexer::S_DOT))){ // || !$internalLexer->moveNext()) { + return false; + } + + return true; + } + + public function endOfLoopValidations(EmailLexer $lexer) : Result + { + //test for end of string + if (!$lexer->isNextToken(EmailLexer::S_DOT)) { + return new InvalidEmail(new ExpectingATEXT('DOT not found near CLOSEPARENTHESIS'), $lexer->token['value']); + } + //add warning + //Address is valid within the message but cannot be used unmodified for the envelope + return new ValidEmail(); + } + + public function getWarnings(): array + { + return []; + } +} \ No newline at end of file diff --git a/user/plugins/email/vendor/egulias/email-validator/src/Parser/CommentStrategy/LocalComment.php b/user/plugins/email/vendor/egulias/email-validator/src/Parser/CommentStrategy/LocalComment.php new file mode 100644 index 0000000..73bc7b2 --- /dev/null +++ b/user/plugins/email/vendor/egulias/email-validator/src/Parser/CommentStrategy/LocalComment.php @@ -0,0 +1,37 @@ +isNextToken(EmailLexer::S_AT); + } + + public function endOfLoopValidations(EmailLexer $lexer) : Result + { + if (!$lexer->isNextToken(EmailLexer::S_AT)) { + return new InvalidEmail(new ExpectingATEXT('ATEX is not expected after closing comments'), $lexer->token['value']); + } + $this->warnings[CFWSNearAt::CODE] = new CFWSNearAt(); + return new ValidEmail(); + } + + public function getWarnings(): array + { + return $this->warnings; + } +} \ No newline at end of file diff --git a/user/plugins/email/vendor/egulias/email-validator/src/Parser/DomainLiteral.php b/user/plugins/email/vendor/egulias/email-validator/src/Parser/DomainLiteral.php new file mode 100644 index 0000000..54a6fab --- /dev/null +++ b/user/plugins/email/vendor/egulias/email-validator/src/Parser/DomainLiteral.php @@ -0,0 +1,212 @@ +addTagWarnings(); + + $IPv6TAG = false; + $addressLiteral = ''; + + do { + if ($this->lexer->token['type'] === EmailLexer::C_NUL) { + return new InvalidEmail(new ExpectingDTEXT(), $this->lexer->token['value']); + } + + $this->addObsoleteWarnings(); + + if ($this->lexer->isNextTokenAny(array(EmailLexer::S_OPENBRACKET, EmailLexer::S_OPENBRACKET))) { + return new InvalidEmail(new ExpectingDTEXT(), $this->lexer->token['value']); + } + + if ($this->lexer->isNextTokenAny( + array(EmailLexer::S_HTAB, EmailLexer::S_SP, $this->lexer->token['type'] === EmailLexer::CRLF) + )) { + $this->warnings[CFWSWithFWS::CODE] = new CFWSWithFWS(); + $this->parseFWS(); + } + + if ($this->lexer->isNextToken(EmailLexer::S_CR)) { + return new InvalidEmail(new CRNoLF(), $this->lexer->token['value']); + } + + if ($this->lexer->token['type'] === EmailLexer::S_BACKSLASH) { + return new InvalidEmail(new UnusualElements($this->lexer->token['value']), $this->lexer->token['value']); + } + if ($this->lexer->token['type'] === EmailLexer::S_IPV6TAG) { + $IPv6TAG = true; + } + + if ($this->lexer->token['type'] === EmailLexer::S_CLOSEBRACKET) { + break; + } + + $addressLiteral .= $this->lexer->token['value']; + + } while ($this->lexer->moveNext()); + + + //Encapsulate + $addressLiteral = str_replace('[', '', $addressLiteral); + $isAddressLiteralIPv4 = $this->checkIPV4Tag($addressLiteral); + + if (!$isAddressLiteralIPv4) { + return new ValidEmail(); + } else { + $addressLiteral = $this->convertIPv4ToIPv6($addressLiteral); + } + + if (!$IPv6TAG) { + $this->warnings[WarningDomainLiteral::CODE] = new WarningDomainLiteral(); + return new ValidEmail(); + } + + $this->warnings[AddressLiteral::CODE] = new AddressLiteral(); + + $this->checkIPV6Tag($addressLiteral); + + return new ValidEmail(); + } + + /** + * @param string $addressLiteral + * @param int $maxGroups + */ + public function checkIPV6Tag($addressLiteral, $maxGroups = 8) : void + { + $prev = $this->lexer->getPrevious(); + if ($prev['type'] === EmailLexer::S_COLON) { + $this->warnings[IPV6ColonEnd::CODE] = new IPV6ColonEnd(); + } + + $IPv6 = substr($addressLiteral, 5); + //Daniel Marschall's new IPv6 testing strategy + $matchesIP = explode(':', $IPv6); + $groupCount = count($matchesIP); + $colons = strpos($IPv6, '::'); + + if (count(preg_grep('/^[0-9A-Fa-f]{0,4}$/', $matchesIP, PREG_GREP_INVERT)) !== 0) { + $this->warnings[IPV6BadChar::CODE] = new IPV6BadChar(); + } + + if ($colons === false) { + // We need exactly the right number of groups + if ($groupCount !== $maxGroups) { + $this->warnings[IPV6GroupCount::CODE] = new IPV6GroupCount(); + } + return; + } + + if ($colons !== strrpos($IPv6, '::')) { + $this->warnings[IPV6DoubleColon::CODE] = new IPV6DoubleColon(); + return; + } + + if ($colons === 0 || $colons === (strlen($IPv6) - 2)) { + // RFC 4291 allows :: at the start or end of an address + //with 7 other groups in addition + ++$maxGroups; + } + + if ($groupCount > $maxGroups) { + $this->warnings[IPV6MaxGroups::CODE] = new IPV6MaxGroups(); + } elseif ($groupCount === $maxGroups) { + $this->warnings[IPV6Deprecated::CODE] = new IPV6Deprecated(); + } + } + + public function convertIPv4ToIPv6(string $addressLiteralIPv4) : string + { + $matchesIP = array(); + $IPv4Match = preg_match( + '/\\b(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$/', + $addressLiteralIPv4, + $matchesIP); + + // Extract IPv4 part from the end of the address-literal (if there is one) + if ($IPv4Match > 0) { + $index = (int) strrpos($addressLiteralIPv4, $matchesIP[0]); + //There's a match but it is at the start + if ($index > 0) { + // Convert IPv4 part to IPv6 format for further testing + return substr($addressLiteralIPv4, 0, $index) . '0:0'; + } + } + + return $addressLiteralIPv4; + } + + /** + * @param string $addressLiteral + * + * @return bool + */ + protected function checkIPV4Tag($addressLiteral) : bool + { + $matchesIP = array(); + $IPv4Match = preg_match( + '/\\b(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$/', + $addressLiteral, + $matchesIP); + + // Extract IPv4 part from the end of the address-literal (if there is one) + + if ($IPv4Match > 0) { + $index = strrpos($addressLiteral, $matchesIP[0]); + //There's a match but it is at the start + if ($index === 0) { + $this->warnings[AddressLiteral::CODE] = new AddressLiteral(); + return false; + } + } + + return true; + } + + private function addObsoleteWarnings() : void + { + if ($this->lexer->token['type'] === EmailLexer::INVALID || + $this->lexer->token['type'] === EmailLexer::C_DEL || + $this->lexer->token['type'] === EmailLexer::S_LF || + $this->lexer->token['type'] === EmailLexer::S_BACKSLASH + ) { + $this->warnings[ObsoleteDTEXT::CODE] = new ObsoleteDTEXT(); + } + } + + private function addTagWarnings() : void + { + if ($this->lexer->isNextToken(EmailLexer::S_COLON)) { + $this->warnings[IPV6ColonStart::CODE] = new IPV6ColonStart(); + } + if ($this->lexer->isNextToken(EmailLexer::S_IPV6TAG)) { + $lexer = clone $this->lexer; + $lexer->moveNext(); + if ($lexer->isNextToken(EmailLexer::S_DOUBLECOLON)) { + $this->warnings[IPV6ColonStart::CODE] = new IPV6ColonStart(); + } + } + } + +} \ No newline at end of file diff --git a/user/plugins/email/vendor/egulias/email-validator/src/Parser/DomainPart.php b/user/plugins/email/vendor/egulias/email-validator/src/Parser/DomainPart.php new file mode 100644 index 0000000..4ca54f2 --- /dev/null +++ b/user/plugins/email/vendor/egulias/email-validator/src/Parser/DomainPart.php @@ -0,0 +1,312 @@ +lexer->clearRecorded(); + $this->lexer->startRecording(); + + $this->lexer->moveNext(); + + $domainChecks = $this->performDomainStartChecks(); + if ($domainChecks->isInvalid()) { + return $domainChecks; + } + + if ($this->lexer->token['type'] === EmailLexer::S_AT) { + return new InvalidEmail(new ConsecutiveAt(), $this->lexer->token['value']); + } + + $result = $this->doParseDomainPart(); + if ($result->isInvalid()) { + return $result; + } + + $end = $this->checkEndOfDomain(); + if ($end->isInvalid()) { + return $end; + } + + $this->lexer->stopRecording(); + $this->domainPart = $this->lexer->getAccumulatedValues(); + + $length = strlen($this->domainPart); + if ($length > self::DOMAIN_MAX_LENGTH) { + return new InvalidEmail(new DomainTooLong(), $this->lexer->token['value']); + } + + return new ValidEmail(); + } + + private function checkEndOfDomain() : Result + { + $prev = $this->lexer->getPrevious(); + if ($prev['type'] === EmailLexer::S_DOT) { + return new InvalidEmail(new DotAtEnd(), $this->lexer->token['value']); + } + if ($prev['type'] === EmailLexer::S_HYPHEN) { + return new InvalidEmail(new DomainHyphened('Hypen found at the end of the domain'), $prev['value']); + } + + if ($this->lexer->token['type'] === EmailLexer::S_SP) { + return new InvalidEmail(new CRLFAtTheEnd(), $prev['value']); + } + return new ValidEmail(); + + } + + private function performDomainStartChecks() : Result + { + $invalidTokens = $this->checkInvalidTokensAfterAT(); + if ($invalidTokens->isInvalid()) { + return $invalidTokens; + } + + $missingDomain = $this->checkEmptyDomain(); + if ($missingDomain->isInvalid()) { + return $missingDomain; + } + + if ($this->lexer->token['type'] === EmailLexer::S_OPENPARENTHESIS) { + $this->warnings[DeprecatedComment::CODE] = new DeprecatedComment(); + } + return new ValidEmail(); + } + + private function checkEmptyDomain() : Result + { + $thereIsNoDomain = $this->lexer->token['type'] === EmailLexer::S_EMPTY || + ($this->lexer->token['type'] === EmailLexer::S_SP && + !$this->lexer->isNextToken(EmailLexer::GENERIC)); + + if ($thereIsNoDomain) { + return new InvalidEmail(new NoDomainPart(), $this->lexer->token['value']); + } + + return new ValidEmail(); + } + + private function checkInvalidTokensAfterAT() : Result + { + if ($this->lexer->token['type'] === EmailLexer::S_DOT) { + return new InvalidEmail(new DotAtStart(), $this->lexer->token['value']); + } + if ($this->lexer->token['type'] === EmailLexer::S_HYPHEN) { + return new InvalidEmail(new DomainHyphened('After AT'), $this->lexer->token['value']); + } + return new ValidEmail(); + } + + protected function parseComments(): Result + { + $commentParser = new Comment($this->lexer, new DomainComment()); + $result = $commentParser->parse(); + $this->warnings = array_merge($this->warnings, $commentParser->getWarnings()); + + return $result; + } + + protected function doParseDomainPart() : Result + { + $tldMissing = true; + $hasComments = false; + $domain = ''; + do { + $prev = $this->lexer->getPrevious(); + + $notAllowedChars = $this->checkNotAllowedChars($this->lexer->token); + if ($notAllowedChars->isInvalid()) { + return $notAllowedChars; + } + + if ($this->lexer->token['type'] === EmailLexer::S_OPENPARENTHESIS || + $this->lexer->token['type'] === EmailLexer::S_CLOSEPARENTHESIS ) { + $hasComments = true; + $commentsResult = $this->parseComments(); + + //Invalid comment parsing + if($commentsResult->isInvalid()) { + return $commentsResult; + } + } + + $dotsResult = $this->checkConsecutiveDots(); + if ($dotsResult->isInvalid()) { + return $dotsResult; + } + + if ($this->lexer->token['type'] === EmailLexer::S_OPENBRACKET) { + $literalResult = $this->parseDomainLiteral(); + + $this->addTLDWarnings($tldMissing); + return $literalResult; + } + + $labelCheck = $this->checkLabelLength(); + if ($labelCheck->isInvalid()) { + return $labelCheck; + } + + $FwsResult = $this->parseFWS(); + if($FwsResult->isInvalid()) { + return $FwsResult; + } + + $domain .= $this->lexer->token['value']; + + if ($this->lexer->token['type'] === EmailLexer::S_DOT && $this->lexer->isNextToken(EmailLexer::GENERIC)) { + $tldMissing = false; + } + + $exceptionsResult = $this->checkDomainPartExceptions($prev, $hasComments); + if ($exceptionsResult->isInvalid()) { + return $exceptionsResult; + } + $this->lexer->moveNext(); + + } while (null !== $this->lexer->token['type']); + + $labelCheck = $this->checkLabelLength(true); + if ($labelCheck->isInvalid()) { + return $labelCheck; + } + $this->addTLDWarnings($tldMissing); + + $this->domainPart = $domain; + return new ValidEmail(); + } + + private function checkNotAllowedChars(array $token) : Result + { + $notAllowed = [EmailLexer::S_BACKSLASH => true, EmailLexer::S_SLASH=> true]; + if (isset($notAllowed[$token['type']])) { + return new InvalidEmail(new CharNotAllowed(), $token['value']); + } + return new ValidEmail(); + } + + /** + * @return Result + */ + protected function parseDomainLiteral() : Result + { + try { + $this->lexer->find(EmailLexer::S_CLOSEBRACKET); + } catch (\RuntimeException $e) { + return new InvalidEmail(new ExpectingDomainLiteralClose(), $this->lexer->token['value']); + } + + $domainLiteralParser = new DomainLiteralParser($this->lexer); + $result = $domainLiteralParser->parse(); + $this->warnings = array_merge($this->warnings, $domainLiteralParser->getWarnings()); + return $result; + } + + protected function checkDomainPartExceptions(array $prev, bool $hasComments) : Result + { + if ($this->lexer->token['type'] === EmailLexer::S_OPENBRACKET && $prev['type'] !== EmailLexer::S_AT) { + return new InvalidEmail(new ExpectingATEXT('OPENBRACKET not after AT'), $this->lexer->token['value']); + } + + if ($this->lexer->token['type'] === EmailLexer::S_HYPHEN && $this->lexer->isNextToken(EmailLexer::S_DOT)) { + return new InvalidEmail(new DomainHyphened('Hypen found near DOT'), $this->lexer->token['value']); + } + + if ($this->lexer->token['type'] === EmailLexer::S_BACKSLASH + && $this->lexer->isNextToken(EmailLexer::GENERIC)) { + return new InvalidEmail(new ExpectingATEXT('Escaping following "ATOM"'), $this->lexer->token['value']); + } + + return $this->validateTokens($hasComments); + } + + protected function validateTokens(bool $hasComments) : Result + { + $validDomainTokens = array( + EmailLexer::GENERIC => true, + EmailLexer::S_HYPHEN => true, + EmailLexer::S_DOT => true, + ); + + if ($hasComments) { + $validDomainTokens[EmailLexer::S_OPENPARENTHESIS] = true; + $validDomainTokens[EmailLexer::S_CLOSEPARENTHESIS] = true; + } + + if (!isset($validDomainTokens[$this->lexer->token['type']])) { + return new InvalidEmail(new ExpectingATEXT('Invalid token in domain: ' . $this->lexer->token['value']), $this->lexer->token['value']); + } + + return new ValidEmail(); + } + + private function checkLabelLength(bool $isEndOfDomain = false) : Result + { + if ($this->lexer->token['type'] === EmailLexer::S_DOT || $isEndOfDomain) { + if ($this->isLabelTooLong($this->label)) { + return new InvalidEmail(new LabelTooLong(), $this->lexer->token['value']); + } + $this->label = ''; + } + $this->label .= $this->lexer->token['value']; + return new ValidEmail(); + } + + + private function isLabelTooLong(string $label) : bool + { + if (preg_match('/[^\x00-\x7F]/', $label)) { + idn_to_ascii(utf8_decode($label), IDNA_DEFAULT, INTL_IDNA_VARIANT_UTS46, $idnaInfo); + return (bool) ($idnaInfo['errors'] & IDNA_ERROR_LABEL_TOO_LONG); + } + return strlen($label) > self::LABEL_MAX_LENGTH; + } + + private function addTLDWarnings(bool $isTLDMissing) : void + { + if ($isTLDMissing) { + $this->warnings[TLD::CODE] = new TLD(); + } + } + + public function domainPart() : string + { + return $this->domainPart; + } +} \ No newline at end of file diff --git a/user/plugins/email/vendor/egulias/email-validator/src/Parser/DoubleQuote.php b/user/plugins/email/vendor/egulias/email-validator/src/Parser/DoubleQuote.php new file mode 100644 index 0000000..19c098e --- /dev/null +++ b/user/plugins/email/vendor/egulias/email-validator/src/Parser/DoubleQuote.php @@ -0,0 +1,87 @@ +checkDQUOTE(); + if($validQuotedString->isInvalid()) return $validQuotedString; + + $special = array( + EmailLexer::S_CR => true, + EmailLexer::S_HTAB => true, + EmailLexer::S_LF => true + ); + + $invalid = array( + EmailLexer::C_NUL => true, + EmailLexer::S_HTAB => true, + EmailLexer::S_CR => true, + EmailLexer::S_LF => true + ); + $setSpecialsWarning = true; + + $this->lexer->moveNext(); + + while ($this->lexer->token['type'] !== EmailLexer::S_DQUOTE && null !== $this->lexer->token['type']) { + if (isset($special[$this->lexer->token['type']]) && $setSpecialsWarning) { + $this->warnings[CFWSWithFWS::CODE] = new CFWSWithFWS(); + $setSpecialsWarning = false; + } + if ($this->lexer->token['type'] === EmailLexer::S_BACKSLASH && $this->lexer->isNextToken(EmailLexer::S_DQUOTE)) { + $this->lexer->moveNext(); + } + + $this->lexer->moveNext(); + + if (!$this->escaped() && isset($invalid[$this->lexer->token['type']])) { + return new InvalidEmail(new ExpectingATEXT("Expecting ATEXT between DQUOTE"), $this->lexer->token['value']); + } + } + + $prev = $this->lexer->getPrevious(); + + if ($prev['type'] === EmailLexer::S_BACKSLASH) { + $validQuotedString = $this->checkDQUOTE(); + if($validQuotedString->isInvalid()) return $validQuotedString; + } + + if (!$this->lexer->isNextToken(EmailLexer::S_AT) && $prev['type'] !== EmailLexer::S_BACKSLASH) { + return new InvalidEmail(new ExpectingATEXT("Expecting ATEXT between DQUOTE"), $this->lexer->token['value']); + } + + return new ValidEmail(); + } + + protected function checkDQUOTE() : Result + { + $previous = $this->lexer->getPrevious(); + + if ($this->lexer->isNextToken(EmailLexer::GENERIC) && $previous['type'] === EmailLexer::GENERIC) { + $description = 'https://tools.ietf.org/html/rfc5322#section-3.2.4 - quoted string should be a unit'; + return new InvalidEmail(new ExpectingATEXT($description), $this->lexer->token['value']); + } + + try { + $this->lexer->find(EmailLexer::S_DQUOTE); + } catch (\Exception $e) { + return new InvalidEmail(new UnclosedQuotedString(), $this->lexer->token['value']); + } + $this->warnings[QuotedString::CODE] = new QuotedString($previous['value'], $this->lexer->token['value']); + + return new ValidEmail(); + } + +} \ No newline at end of file diff --git a/user/plugins/email/vendor/egulias/email-validator/src/Parser/FoldingWhiteSpace.php b/user/plugins/email/vendor/egulias/email-validator/src/Parser/FoldingWhiteSpace.php new file mode 100644 index 0000000..d32231e --- /dev/null +++ b/user/plugins/email/vendor/egulias/email-validator/src/Parser/FoldingWhiteSpace.php @@ -0,0 +1,82 @@ +isFWS()) { + return new ValidEmail(); + } + + $previous = $this->lexer->getPrevious(); + + $resultCRLF = $this->checkCRLFInFWS(); + if ($resultCRLF->isInvalid()) { + return $resultCRLF; + } + + if ($this->lexer->token['type'] === EmailLexer::S_CR) { + return new InvalidEmail(new CRNoLF(), $this->lexer->token['value']); + } + + if ($this->lexer->isNextToken(EmailLexer::GENERIC) && $previous['type'] !== EmailLexer::S_AT) { + return new InvalidEmail(new AtextAfterCFWS(), $this->lexer->token['value']); + } + + if ($this->lexer->token['type'] === EmailLexer::S_LF || $this->lexer->token['type'] === EmailLexer::C_NUL) { + return new InvalidEmail(new ExpectingCTEXT(), $this->lexer->token['value']); + } + + if ($this->lexer->isNextToken(EmailLexer::S_AT) || $previous['type'] === EmailLexer::S_AT) { + $this->warnings[CFWSNearAt::CODE] = new CFWSNearAt(); + } else { + $this->warnings[CFWSWithFWS::CODE] = new CFWSWithFWS(); + } + + return new ValidEmail(); + } + + protected function checkCRLFInFWS() : Result + { + if ($this->lexer->token['type'] !== EmailLexer::CRLF) { + return new ValidEmail(); + } + + if (!$this->lexer->isNextTokenAny(array(EmailLexer::S_SP, EmailLexer::S_HTAB))) { + return new InvalidEmail(new CRLFX2(), $this->lexer->token['value']); + } + + //this has no coverage. Condition is repeated from above one + if (!$this->lexer->isNextTokenAny(array(EmailLexer::S_SP, EmailLexer::S_HTAB))) { + return new InvalidEmail(new CRLFAtTheEnd(), $this->lexer->token['value']); + } + + return new ValidEmail(); + } + + protected function isFWS() : bool + { + if ($this->escaped()) { + return false; + } + + return $this->lexer->token['type'] === EmailLexer::S_SP || + $this->lexer->token['type'] === EmailLexer::S_HTAB || + $this->lexer->token['type'] === EmailLexer::S_CR || + $this->lexer->token['type'] === EmailLexer::S_LF || + $this->lexer->token['type'] === EmailLexer::CRLF; + } +} \ No newline at end of file diff --git a/user/plugins/email/vendor/egulias/email-validator/src/Parser/IDLeftPart.php b/user/plugins/email/vendor/egulias/email-validator/src/Parser/IDLeftPart.php new file mode 100644 index 0000000..abb4982 --- /dev/null +++ b/user/plugins/email/vendor/egulias/email-validator/src/Parser/IDLeftPart.php @@ -0,0 +1,16 @@ +lexer->token['value']); + } +} \ No newline at end of file diff --git a/user/plugins/email/vendor/egulias/email-validator/src/Parser/IDRightPart.php b/user/plugins/email/vendor/egulias/email-validator/src/Parser/IDRightPart.php new file mode 100644 index 0000000..bcf80dd --- /dev/null +++ b/user/plugins/email/vendor/egulias/email-validator/src/Parser/IDRightPart.php @@ -0,0 +1,29 @@ + true, + EmailLexer::S_SQUOTE => true, + EmailLexer::S_BACKTICK => true, + EmailLexer::S_SEMICOLON => true, + EmailLexer::S_GREATERTHAN => true, + EmailLexer::S_LOWERTHAN => true, + ); + + if (isset($invalidDomainTokens[$this->lexer->token['type']])) { + return new InvalidEmail(new ExpectingATEXT('Invalid token in domain: ' . $this->lexer->token['value']), $this->lexer->token['value']); + } + return new ValidEmail(); + } +} \ No newline at end of file diff --git a/user/plugins/email/vendor/egulias/email-validator/src/Parser/LocalPart.php b/user/plugins/email/vendor/egulias/email-validator/src/Parser/LocalPart.php new file mode 100644 index 0000000..d505c61 --- /dev/null +++ b/user/plugins/email/vendor/egulias/email-validator/src/Parser/LocalPart.php @@ -0,0 +1,164 @@ +lexer->startRecording(); + + while ($this->lexer->token['type'] !== EmailLexer::S_AT && null !== $this->lexer->token['type']) { + if ($this->hasDotAtStart()) { + return new InvalidEmail(new DotAtStart(), $this->lexer->token['value']); + } + + if ($this->lexer->token['type'] === EmailLexer::S_DQUOTE) { + $dquoteParsingResult = $this->parseDoubleQuote(); + + //Invalid double quote parsing + if($dquoteParsingResult->isInvalid()) { + return $dquoteParsingResult; + } + } + + if ($this->lexer->token['type'] === EmailLexer::S_OPENPARENTHESIS || + $this->lexer->token['type'] === EmailLexer::S_CLOSEPARENTHESIS ) { + $commentsResult = $this->parseComments(); + + //Invalid comment parsing + if($commentsResult->isInvalid()) { + return $commentsResult; + } + } + + if ($this->lexer->token['type'] === EmailLexer::S_DOT && $this->lexer->isNextToken(EmailLexer::S_DOT)) { + return new InvalidEmail(new ConsecutiveDot(), $this->lexer->token['value']); + } + + if ($this->lexer->token['type'] === EmailLexer::S_DOT && + $this->lexer->isNextToken(EmailLexer::S_AT) + ) { + return new InvalidEmail(new DotAtEnd(), $this->lexer->token['value']); + } + + $resultEscaping = $this->validateEscaping(); + if ($resultEscaping->isInvalid()) { + return $resultEscaping; + } + + $resultToken = $this->validateTokens(false); + if ($resultToken->isInvalid()) { + return $resultToken; + } + + $resultFWS = $this->parseLocalFWS(); + if($resultFWS->isInvalid()) { + return $resultFWS; + } + + $this->lexer->moveNext(); + } + + $this->lexer->stopRecording(); + $this->localPart = rtrim($this->lexer->getAccumulatedValues(), '@'); + if (strlen($this->localPart) > LocalTooLong::LOCAL_PART_LENGTH) { + $this->warnings[LocalTooLong::CODE] = new LocalTooLong(); + } + + return new ValidEmail(); + } + + protected function validateTokens(bool $hasComments) : Result + { + $invalidTokens = array( + EmailLexer::S_COMMA => EmailLexer::S_COMMA, + EmailLexer::S_CLOSEBRACKET => EmailLexer::S_CLOSEBRACKET, + EmailLexer::S_OPENBRACKET => EmailLexer::S_OPENBRACKET, + EmailLexer::S_GREATERTHAN => EmailLexer::S_GREATERTHAN, + EmailLexer::S_LOWERTHAN => EmailLexer::S_LOWERTHAN, + EmailLexer::S_COLON => EmailLexer::S_COLON, + EmailLexer::S_SEMICOLON => EmailLexer::S_SEMICOLON, + EmailLexer::INVALID => EmailLexer::INVALID + ); + if (isset($invalidTokens[$this->lexer->token['type']])) { + return new InvalidEmail(new ExpectingATEXT('Invalid token found'), $this->lexer->token['value']); + } + return new ValidEmail(); + } + + public function localPart() : string + { + return $this->localPart; + } + + private function parseLocalFWS() : Result + { + $foldingWS = new FoldingWhiteSpace($this->lexer); + $resultFWS = $foldingWS->parse(); + if ($resultFWS->isValid()) { + $this->warnings = array_merge($this->warnings, $foldingWS->getWarnings()); + } + return $resultFWS; + } + + private function hasDotAtStart() : bool + { + return $this->lexer->token['type'] === EmailLexer::S_DOT && null === $this->lexer->getPrevious()['type']; + } + + private function parseDoubleQuote() : Result + { + $dquoteParser = new DoubleQuote($this->lexer); + $parseAgain = $dquoteParser->parse(); + $this->warnings = array_merge($this->warnings, $dquoteParser->getWarnings()); + + return $parseAgain; + } + + protected function parseComments(): Result + { + $commentParser = new Comment($this->lexer, new LocalComment()); + $result = $commentParser->parse(); + $this->warnings = array_merge($this->warnings, $commentParser->getWarnings()); + if($result->isInvalid()) { + return $result; + } + return $result; + } + + private function validateEscaping() : Result + { + //Backslash found + if ($this->lexer->token['type'] !== EmailLexer::S_BACKSLASH) { + return new ValidEmail(); + } + + if ($this->lexer->isNextToken(EmailLexer::GENERIC)) { + return new InvalidEmail(new ExpectingATEXT('Found ATOM after escaping'), $this->lexer->token['value']); + } + + if (!$this->lexer->isNextTokenAny(array(EmailLexer::S_SP, EmailLexer::S_HTAB, EmailLexer::C_DEL))) { + return new ValidEmail(); + } + + return new ValidEmail(); + } +} \ No newline at end of file diff --git a/user/plugins/email/vendor/egulias/email-validator/src/Parser/PartParser.php b/user/plugins/email/vendor/egulias/email-validator/src/Parser/PartParser.php new file mode 100644 index 0000000..fd65fc5 --- /dev/null +++ b/user/plugins/email/vendor/egulias/email-validator/src/Parser/PartParser.php @@ -0,0 +1,63 @@ +lexer = $lexer; + } + + abstract public function parse() : Result; + + /** + * @return \Egulias\EmailValidator\Warning\Warning[] + */ + public function getWarnings() + { + return $this->warnings; + } + + protected function parseFWS() : Result + { + $foldingWS = new FoldingWhiteSpace($this->lexer); + $resultFWS = $foldingWS->parse(); + $this->warnings = array_merge($this->warnings, $foldingWS->getWarnings()); + return $resultFWS; + } + + protected function checkConsecutiveDots() : Result + { + if ($this->lexer->token['type'] === EmailLexer::S_DOT && $this->lexer->isNextToken(EmailLexer::S_DOT)) { + return new InvalidEmail(new ConsecutiveDot(), $this->lexer->token['value']); + } + + return new ValidEmail(); + } + + protected function escaped() : bool + { + $previous = $this->lexer->getPrevious(); + + return $previous && $previous['type'] === EmailLexer::S_BACKSLASH + && + $this->lexer->token['type'] !== EmailLexer::GENERIC; + } +} \ No newline at end of file diff --git a/user/plugins/email/vendor/egulias/email-validator/src/Result/InvalidEmail.php b/user/plugins/email/vendor/egulias/email-validator/src/Result/InvalidEmail.php new file mode 100644 index 0000000..3d85e15 --- /dev/null +++ b/user/plugins/email/vendor/egulias/email-validator/src/Result/InvalidEmail.php @@ -0,0 +1,46 @@ +token = $token; + $this->reason = $reason; + } + + public function isValid(): bool + { + return false; + } + + public function isInvalid(): bool + { + return true; + } + + public function description(): string + { + return $this->reason->description() . " in char " . $this->token; + } + + public function code(): int + { + return $this->reason->code(); + } + + public function reason() : Reason + { + return $this->reason; + } + +} \ No newline at end of file diff --git a/user/plugins/email/vendor/egulias/email-validator/src/Result/MultipleErrors.php b/user/plugins/email/vendor/egulias/email-validator/src/Result/MultipleErrors.php new file mode 100644 index 0000000..5fa85af --- /dev/null +++ b/user/plugins/email/vendor/egulias/email-validator/src/Result/MultipleErrors.php @@ -0,0 +1,56 @@ +reasons[$reason->code()] = $reason; + } + + /** + * @return Reason[] + */ + public function getReasons() : array + { + return $this->reasons; + } + + public function reason() : Reason + { + return 0 !== count($this->reasons) + ? current($this->reasons) + : new EmptyReason(); + } + + public function description() : string + { + $description = ''; + foreach($this->reasons as $reason) { + $description .= $reason->description() . PHP_EOL; + } + + return $description; + } + + public function code() : int + { + return 0; + } +} diff --git a/user/plugins/email/vendor/egulias/email-validator/src/Result/Reason/AtextAfterCFWS.php b/user/plugins/email/vendor/egulias/email-validator/src/Result/Reason/AtextAfterCFWS.php new file mode 100644 index 0000000..76015a2 --- /dev/null +++ b/user/plugins/email/vendor/egulias/email-validator/src/Result/Reason/AtextAfterCFWS.php @@ -0,0 +1,16 @@ +detailedDescription = $details; + } +} \ No newline at end of file diff --git a/user/plugins/email/vendor/egulias/email-validator/src/Result/Reason/DomainAcceptsNoMail.php b/user/plugins/email/vendor/egulias/email-validator/src/Result/Reason/DomainAcceptsNoMail.php new file mode 100644 index 0000000..55f44bb --- /dev/null +++ b/user/plugins/email/vendor/egulias/email-validator/src/Result/Reason/DomainAcceptsNoMail.php @@ -0,0 +1,16 @@ +exception = $exception; + + } + public function code() : int + { + return 999; + } + + public function description() : string + { + return $this->exception->getMessage(); + } +} \ No newline at end of file diff --git a/user/plugins/email/vendor/egulias/email-validator/src/Result/Reason/ExpectingATEXT.php b/user/plugins/email/vendor/egulias/email-validator/src/Result/Reason/ExpectingATEXT.php new file mode 100644 index 0000000..07ea8d2 --- /dev/null +++ b/user/plugins/email/vendor/egulias/email-validator/src/Result/Reason/ExpectingATEXT.php @@ -0,0 +1,16 @@ +detailedDescription; + } +} diff --git a/user/plugins/email/vendor/egulias/email-validator/src/Result/Reason/ExpectingCTEXT.php b/user/plugins/email/vendor/egulias/email-validator/src/Result/Reason/ExpectingCTEXT.php new file mode 100644 index 0000000..64f5f7c --- /dev/null +++ b/user/plugins/email/vendor/egulias/email-validator/src/Result/Reason/ExpectingCTEXT.php @@ -0,0 +1,16 @@ +element = $element; + } + + public function code() : int + { + return 201; + } + + public function description() : string + { + return 'Unusual element found, wourld render invalid in majority of cases. Element found: ' . $this->element; + } +} \ No newline at end of file diff --git a/user/plugins/email/vendor/egulias/email-validator/src/Result/Result.php b/user/plugins/email/vendor/egulias/email-validator/src/Result/Result.php new file mode 100644 index 0000000..1e16bcc --- /dev/null +++ b/user/plugins/email/vendor/egulias/email-validator/src/Result/Result.php @@ -0,0 +1,27 @@ +reason = new ReasonSpoofEmail(); + parent::__construct($this->reason, ''); + } +} \ No newline at end of file diff --git a/user/plugins/email/vendor/egulias/email-validator/src/Result/ValidEmail.php b/user/plugins/email/vendor/egulias/email-validator/src/Result/ValidEmail.php new file mode 100644 index 0000000..4f3693a --- /dev/null +++ b/user/plugins/email/vendor/egulias/email-validator/src/Result/ValidEmail.php @@ -0,0 +1,27 @@ +error = new InvalidEmail(new LocalOrReservedDomain(), $host); + return false; + } + + return $this->checkDns($host); + } + + public function getError() : ?InvalidEmail + { + return $this->error; + } + + public function getWarnings() : array + { + return $this->warnings; + } + + /** + * @param string $host + * + * @return bool + */ + protected function checkDns($host) + { + $variant = INTL_IDNA_VARIANT_UTS46; + + $host = rtrim(idn_to_ascii($host, IDNA_DEFAULT, $variant), '.') . '.'; + + return $this->validateDnsRecords($host); + } + + + /** + * Validate the DNS records for given host. + * + * @param string $host A set of DNS records in the format returned by dns_get_record. + * + * @return bool True on success. + */ + private function validateDnsRecords($host) : bool + { + // A workaround to fix https://bugs.php.net/bug.php?id=73149 + /** @psalm-suppress InvalidArgument */ + set_error_handler( + static function (int $errorLevel, string $errorMessage): ?bool { + throw new \RuntimeException("Unable to get DNS record for the host: $errorMessage"); + } + ); + + try { + // Get all MX, A and AAAA DNS records for host + $dnsRecords = dns_get_record($host, static::DNS_RECORD_TYPES_TO_CHECK); + } catch (\RuntimeException $exception) { + $this->error = new InvalidEmail(new UnableToGetDNSRecord(), ''); + + return false; + } finally { + restore_error_handler(); + } + + // No MX, A or AAAA DNS records + if ($dnsRecords === [] || $dnsRecords === false) { + $this->error = new InvalidEmail(new ReasonNoDNSRecord(), ''); + return false; + } + + // For each DNS record + foreach ($dnsRecords as $dnsRecord) { + if (!$this->validateMXRecord($dnsRecord)) { + // No MX records (fallback to A or AAAA records) + if (empty($this->mxRecords)) { + $this->warnings[NoDNSMXRecord::CODE] = new NoDNSMXRecord(); + } + return false; + } + } + return true; + } + + /** + * Validate an MX record + * + * @param array $dnsRecord Given DNS record. + * + * @return bool True if valid. + */ + private function validateMxRecord($dnsRecord) : bool + { + if ($dnsRecord['type'] !== 'MX') { + return true; + } + + // "Null MX" record indicates the domain accepts no mail (https://tools.ietf.org/html/rfc7505) + if (empty($dnsRecord['target']) || $dnsRecord['target'] === '.') { + $this->error = new InvalidEmail(new DomainAcceptsNoMail(), ""); + return false; + } + + $this->mxRecords[] = $dnsRecord; + + return true; + } +} \ No newline at end of file diff --git a/user/plugins/email/vendor/egulias/email-validator/src/Validation/EmailValidation.php b/user/plugins/email/vendor/egulias/email-validator/src/Validation/EmailValidation.php new file mode 100644 index 0000000..1bcc0a7 --- /dev/null +++ b/user/plugins/email/vendor/egulias/email-validator/src/Validation/EmailValidation.php @@ -0,0 +1,34 @@ +setChecks(Spoofchecker::SINGLE_SCRIPT); + + if ($checker->isSuspicious($email)) { + $this->error = new SpoofEmail(); + } + + return $this->error === null; + } + + /** + * @return InvalidEmail + */ + public function getError() : ?InvalidEmail + { + return $this->error; + } + + public function getWarnings() : array + { + return []; + } +} diff --git a/user/plugins/email/vendor/egulias/email-validator/src/Validation/MessageIDValidation.php b/user/plugins/email/vendor/egulias/email-validator/src/Validation/MessageIDValidation.php new file mode 100644 index 0000000..0e02043 --- /dev/null +++ b/user/plugins/email/vendor/egulias/email-validator/src/Validation/MessageIDValidation.php @@ -0,0 +1,51 @@ +parse($email); + $this->warnings = $parser->getWarnings(); + if ($result->isInvalid()) { + /** @psalm-suppress PropertyTypeCoercion */ + $this->error = $result; + return false; + } + } catch (\Exception $invalid) { + $this->error = new InvalidEmail(new ExceptionFound($invalid), ''); + return false; + } + + return true; + } + + public function getWarnings(): array + { + return $this->warnings; + } + + public function getError(): ?InvalidEmail + { + return $this->error; + } +} diff --git a/user/plugins/email/vendor/egulias/email-validator/src/Validation/MultipleValidationWithAnd.php b/user/plugins/email/vendor/egulias/email-validator/src/Validation/MultipleValidationWithAnd.php new file mode 100644 index 0000000..6debf22 --- /dev/null +++ b/user/plugins/email/vendor/egulias/email-validator/src/Validation/MultipleValidationWithAnd.php @@ -0,0 +1,117 @@ +validations = $validations; + $this->mode = $mode; + } + + /** + * {@inheritdoc} + */ + public function isValid(string $email, EmailLexer $emailLexer) : bool + { + $result = true; + foreach ($this->validations as $validation) { + $emailLexer->reset(); + $validationResult = $validation->isValid($email, $emailLexer); + $result = $result && $validationResult; + $this->warnings = array_merge($this->warnings, $validation->getWarnings()); + if (!$validationResult) { + $this->processError($validation); + } + + if ($this->shouldStop($result)) { + break; + } + } + + return $result; + } + + private function initErrorStorage() : void + { + if (null === $this->error) { + $this->error = new MultipleErrors(); + } + } + + private function processError(EmailValidation $validation) : void + { + if (null !== $validation->getError()) { + $this->initErrorStorage(); + /** @psalm-suppress PossiblyNullReference */ + $this->error->addReason($validation->getError()->reason()); + } + } + + private function shouldStop(bool $result) : bool + { + return !$result && $this->mode === self::STOP_ON_ERROR; + } + + /** + * Returns the validation errors. + */ + public function getError() : ?InvalidEmail + { + return $this->error; + } + + /** + * {@inheritdoc} + */ + public function getWarnings() : array + { + return $this->warnings; + } +} diff --git a/user/plugins/email/vendor/egulias/email-validator/src/Validation/NoRFCWarningsValidation.php b/user/plugins/email/vendor/egulias/email-validator/src/Validation/NoRFCWarningsValidation.php new file mode 100644 index 0000000..06885ed --- /dev/null +++ b/user/plugins/email/vendor/egulias/email-validator/src/Validation/NoRFCWarningsValidation.php @@ -0,0 +1,41 @@ +getWarnings())) { + return true; + } + + $this->error = new InvalidEmail(new RFCWarnings(), ''); + + return false; + } + + /** + * {@inheritdoc} + */ + public function getError() : ?InvalidEmail + { + return $this->error ?: parent::getError(); + } +} diff --git a/user/plugins/email/vendor/egulias/email-validator/src/Validation/RFCValidation.php b/user/plugins/email/vendor/egulias/email-validator/src/Validation/RFCValidation.php new file mode 100644 index 0000000..e2c27ba --- /dev/null +++ b/user/plugins/email/vendor/egulias/email-validator/src/Validation/RFCValidation.php @@ -0,0 +1,55 @@ +parser = new EmailParser($emailLexer); + try { + $result = $this->parser->parse($email); + $this->warnings = $this->parser->getWarnings(); + if ($result->isInvalid()) { + /** @psalm-suppress PropertyTypeCoercion */ + $this->error = $result; + return false; + } + } catch (\Exception $invalid) { + $this->error = new InvalidEmail(new ExceptionFound($invalid), ''); + return false; + } + + return true; + } + + public function getError() : ?InvalidEmail + { + return $this->error; + } + + public function getWarnings() : array + { + return $this->warnings; + } +} diff --git a/user/plugins/email/vendor/egulias/email-validator/src/Warning/AddressLiteral.php b/user/plugins/email/vendor/egulias/email-validator/src/Warning/AddressLiteral.php new file mode 100644 index 0000000..77e70f7 --- /dev/null +++ b/user/plugins/email/vendor/egulias/email-validator/src/Warning/AddressLiteral.php @@ -0,0 +1,14 @@ +message = 'Address literal in domain part'; + $this->rfcNumber = 5321; + } +} diff --git a/user/plugins/email/vendor/egulias/email-validator/src/Warning/CFWSNearAt.php b/user/plugins/email/vendor/egulias/email-validator/src/Warning/CFWSNearAt.php new file mode 100644 index 0000000..be43bbe --- /dev/null +++ b/user/plugins/email/vendor/egulias/email-validator/src/Warning/CFWSNearAt.php @@ -0,0 +1,13 @@ +message = "Deprecated folding white space near @"; + } +} diff --git a/user/plugins/email/vendor/egulias/email-validator/src/Warning/CFWSWithFWS.php b/user/plugins/email/vendor/egulias/email-validator/src/Warning/CFWSWithFWS.php new file mode 100644 index 0000000..dea3450 --- /dev/null +++ b/user/plugins/email/vendor/egulias/email-validator/src/Warning/CFWSWithFWS.php @@ -0,0 +1,13 @@ +message = 'Folding whites space followed by folding white space'; + } +} diff --git a/user/plugins/email/vendor/egulias/email-validator/src/Warning/Comment.php b/user/plugins/email/vendor/egulias/email-validator/src/Warning/Comment.php new file mode 100644 index 0000000..704c290 --- /dev/null +++ b/user/plugins/email/vendor/egulias/email-validator/src/Warning/Comment.php @@ -0,0 +1,13 @@ +message = "Comments found in this email"; + } +} diff --git a/user/plugins/email/vendor/egulias/email-validator/src/Warning/DeprecatedComment.php b/user/plugins/email/vendor/egulias/email-validator/src/Warning/DeprecatedComment.php new file mode 100644 index 0000000..ad43bd7 --- /dev/null +++ b/user/plugins/email/vendor/egulias/email-validator/src/Warning/DeprecatedComment.php @@ -0,0 +1,13 @@ +message = 'Deprecated comments'; + } +} diff --git a/user/plugins/email/vendor/egulias/email-validator/src/Warning/DomainLiteral.php b/user/plugins/email/vendor/egulias/email-validator/src/Warning/DomainLiteral.php new file mode 100644 index 0000000..6f36b5e --- /dev/null +++ b/user/plugins/email/vendor/egulias/email-validator/src/Warning/DomainLiteral.php @@ -0,0 +1,14 @@ +message = 'Domain Literal'; + $this->rfcNumber = 5322; + } +} diff --git a/user/plugins/email/vendor/egulias/email-validator/src/Warning/EmailTooLong.php b/user/plugins/email/vendor/egulias/email-validator/src/Warning/EmailTooLong.php new file mode 100644 index 0000000..497309d --- /dev/null +++ b/user/plugins/email/vendor/egulias/email-validator/src/Warning/EmailTooLong.php @@ -0,0 +1,15 @@ +message = 'Email is too long, exceeds ' . EmailParser::EMAIL_MAX_LENGTH; + } +} diff --git a/user/plugins/email/vendor/egulias/email-validator/src/Warning/IPV6BadChar.php b/user/plugins/email/vendor/egulias/email-validator/src/Warning/IPV6BadChar.php new file mode 100644 index 0000000..ba2fcc0 --- /dev/null +++ b/user/plugins/email/vendor/egulias/email-validator/src/Warning/IPV6BadChar.php @@ -0,0 +1,14 @@ +message = 'Bad char in IPV6 domain literal'; + $this->rfcNumber = 5322; + } +} diff --git a/user/plugins/email/vendor/egulias/email-validator/src/Warning/IPV6ColonEnd.php b/user/plugins/email/vendor/egulias/email-validator/src/Warning/IPV6ColonEnd.php new file mode 100644 index 0000000..41afa78 --- /dev/null +++ b/user/plugins/email/vendor/egulias/email-validator/src/Warning/IPV6ColonEnd.php @@ -0,0 +1,14 @@ +message = ':: found at the end of the domain literal'; + $this->rfcNumber = 5322; + } +} diff --git a/user/plugins/email/vendor/egulias/email-validator/src/Warning/IPV6ColonStart.php b/user/plugins/email/vendor/egulias/email-validator/src/Warning/IPV6ColonStart.php new file mode 100644 index 0000000..1bf754e --- /dev/null +++ b/user/plugins/email/vendor/egulias/email-validator/src/Warning/IPV6ColonStart.php @@ -0,0 +1,14 @@ +message = ':: found at the start of the domain literal'; + $this->rfcNumber = 5322; + } +} diff --git a/user/plugins/email/vendor/egulias/email-validator/src/Warning/IPV6Deprecated.php b/user/plugins/email/vendor/egulias/email-validator/src/Warning/IPV6Deprecated.php new file mode 100644 index 0000000..d752caa --- /dev/null +++ b/user/plugins/email/vendor/egulias/email-validator/src/Warning/IPV6Deprecated.php @@ -0,0 +1,14 @@ +message = 'Deprecated form of IPV6'; + $this->rfcNumber = 5321; + } +} diff --git a/user/plugins/email/vendor/egulias/email-validator/src/Warning/IPV6DoubleColon.php b/user/plugins/email/vendor/egulias/email-validator/src/Warning/IPV6DoubleColon.php new file mode 100644 index 0000000..4f82394 --- /dev/null +++ b/user/plugins/email/vendor/egulias/email-validator/src/Warning/IPV6DoubleColon.php @@ -0,0 +1,14 @@ +message = 'Double colon found after IPV6 tag'; + $this->rfcNumber = 5322; + } +} diff --git a/user/plugins/email/vendor/egulias/email-validator/src/Warning/IPV6GroupCount.php b/user/plugins/email/vendor/egulias/email-validator/src/Warning/IPV6GroupCount.php new file mode 100644 index 0000000..a59d317 --- /dev/null +++ b/user/plugins/email/vendor/egulias/email-validator/src/Warning/IPV6GroupCount.php @@ -0,0 +1,14 @@ +message = 'Group count is not IPV6 valid'; + $this->rfcNumber = 5322; + } +} diff --git a/user/plugins/email/vendor/egulias/email-validator/src/Warning/IPV6MaxGroups.php b/user/plugins/email/vendor/egulias/email-validator/src/Warning/IPV6MaxGroups.php new file mode 100644 index 0000000..936274c --- /dev/null +++ b/user/plugins/email/vendor/egulias/email-validator/src/Warning/IPV6MaxGroups.php @@ -0,0 +1,14 @@ +message = 'Reached the maximum number of IPV6 groups allowed'; + $this->rfcNumber = 5321; + } +} diff --git a/user/plugins/email/vendor/egulias/email-validator/src/Warning/LocalTooLong.php b/user/plugins/email/vendor/egulias/email-validator/src/Warning/LocalTooLong.php new file mode 100644 index 0000000..0d08d8b --- /dev/null +++ b/user/plugins/email/vendor/egulias/email-validator/src/Warning/LocalTooLong.php @@ -0,0 +1,15 @@ +message = 'Local part is too long, exceeds 64 chars (octets)'; + $this->rfcNumber = 5322; + } +} diff --git a/user/plugins/email/vendor/egulias/email-validator/src/Warning/NoDNSMXRecord.php b/user/plugins/email/vendor/egulias/email-validator/src/Warning/NoDNSMXRecord.php new file mode 100644 index 0000000..b3c21a1 --- /dev/null +++ b/user/plugins/email/vendor/egulias/email-validator/src/Warning/NoDNSMXRecord.php @@ -0,0 +1,14 @@ +message = 'No MX DSN record was found for this email'; + $this->rfcNumber = 5321; + } +} diff --git a/user/plugins/email/vendor/egulias/email-validator/src/Warning/ObsoleteDTEXT.php b/user/plugins/email/vendor/egulias/email-validator/src/Warning/ObsoleteDTEXT.php new file mode 100644 index 0000000..10f19e3 --- /dev/null +++ b/user/plugins/email/vendor/egulias/email-validator/src/Warning/ObsoleteDTEXT.php @@ -0,0 +1,14 @@ +rfcNumber = 5322; + $this->message = 'Obsolete DTEXT in domain literal'; + } +} diff --git a/user/plugins/email/vendor/egulias/email-validator/src/Warning/QuotedPart.php b/user/plugins/email/vendor/egulias/email-validator/src/Warning/QuotedPart.php new file mode 100644 index 0000000..36a4265 --- /dev/null +++ b/user/plugins/email/vendor/egulias/email-validator/src/Warning/QuotedPart.php @@ -0,0 +1,17 @@ +message = "Deprecated Quoted String found between $prevToken and $postToken"; + } +} diff --git a/user/plugins/email/vendor/egulias/email-validator/src/Warning/QuotedString.php b/user/plugins/email/vendor/egulias/email-validator/src/Warning/QuotedString.php new file mode 100644 index 0000000..817e4e8 --- /dev/null +++ b/user/plugins/email/vendor/egulias/email-validator/src/Warning/QuotedString.php @@ -0,0 +1,17 @@ +message = "Quoted String found between $prevToken and $postToken"; + } +} diff --git a/user/plugins/email/vendor/egulias/email-validator/src/Warning/TLD.php b/user/plugins/email/vendor/egulias/email-validator/src/Warning/TLD.php new file mode 100644 index 0000000..2338b9f --- /dev/null +++ b/user/plugins/email/vendor/egulias/email-validator/src/Warning/TLD.php @@ -0,0 +1,13 @@ +message = "RFC5321, TLD"; + } +} diff --git a/user/plugins/email/vendor/egulias/email-validator/src/Warning/Warning.php b/user/plugins/email/vendor/egulias/email-validator/src/Warning/Warning.php new file mode 100644 index 0000000..bce7e7a --- /dev/null +++ b/user/plugins/email/vendor/egulias/email-validator/src/Warning/Warning.php @@ -0,0 +1,47 @@ +message; + } + + /** + * @return int + */ + public function code() + { + return self::CODE; + } + + /** + * @return int + */ + public function RFCNumber() + { + return $this->rfcNumber; + } + + public function __toString() + { + return $this->message() . " rfc: " . $this->rfcNumber . "interal code: " . static::CODE; + } +} diff --git a/user/plugins/email/vendor/swiftmailer/swiftmailer/.gitattributes b/user/plugins/email/vendor/swiftmailer/swiftmailer/.gitattributes new file mode 100644 index 0000000..dc96281 --- /dev/null +++ b/user/plugins/email/vendor/swiftmailer/swiftmailer/.gitattributes @@ -0,0 +1,11 @@ +*.crt -crlf +*.key -crlf +*.srl -crlf +*.pub -crlf +*.priv -crlf +*.txt -crlf + +# ignore directories in the git-generated distributed .zip archive +/doc/notes export-ignore +/tests export-ignore +/phpunit.xml.dist export-ignore diff --git a/user/plugins/email/vendor/swiftmailer/swiftmailer/.github/ISSUE_TEMPLATE.md b/user/plugins/email/vendor/swiftmailer/swiftmailer/.github/ISSUE_TEMPLATE.md new file mode 100644 index 0000000..5db6524 --- /dev/null +++ b/user/plugins/email/vendor/swiftmailer/swiftmailer/.github/ISSUE_TEMPLATE.md @@ -0,0 +1,19 @@ + + +| Q | A +| ------------------- | ----- +| Bug report? | yes/no +| Feature request? | yes/no +| RFC? | yes/no +| How used? | Standalone/Symfony/3party +| Swiftmailer version | x.y.z +| PHP version | x.y.z + +### Observed behaviour + + +### Expected behaviour + + +### Example + diff --git a/user/plugins/email/vendor/swiftmailer/swiftmailer/.github/PULL_REQUEST_TEMPLATE.md b/user/plugins/email/vendor/swiftmailer/swiftmailer/.github/PULL_REQUEST_TEMPLATE.md new file mode 100644 index 0000000..4b39510 --- /dev/null +++ b/user/plugins/email/vendor/swiftmailer/swiftmailer/.github/PULL_REQUEST_TEMPLATE.md @@ -0,0 +1,14 @@ + + +| Q | A +| ------------- | --- +| Bug fix? | yes/no +| New feature? | yes/no +| Doc update? | yes/no +| BC breaks? | yes/no +| Deprecations? | yes/no +| Fixed tickets | #... +| License | MIT + + + diff --git a/user/plugins/email/vendor/swiftmailer/swiftmailer/.github/workflows/tests.yml b/user/plugins/email/vendor/swiftmailer/swiftmailer/.github/workflows/tests.yml new file mode 100644 index 0000000..dc83ec6 --- /dev/null +++ b/user/plugins/email/vendor/swiftmailer/swiftmailer/.github/workflows/tests.yml @@ -0,0 +1,55 @@ +name: tests + +on: + push: + pull_request: + +jobs: + linux_tests: + runs-on: ubuntu-20.04 + + services: + mailcatcher: + image: dockage/mailcatcher:0.7.1 + ports: + - 4456:1025 + + strategy: + fail-fast: true + matrix: + php: ['7.0', '7.1', '7.2', '7.3', '7.4', '8.0', '8.1'] + + name: PHP ${{ matrix.php }} + + steps: + - name: Checkout code + uses: actions/checkout@v2 + + - name: Setup PHP + uses: shivammathur/setup-php@v2 + with: + php-version: ${{ matrix.php }} + extensions: dom, curl, libxml, mbstring, zip, intl + tools: composer:v2 + coverage: none + + - name: Prepare test config files + run: | + cp tests/acceptance.conf.php.default tests/acceptance.conf.php + cp tests/smoke.conf.php.default tests/smoke.conf.php + + - name: Require Symfony PHPUnit Bridge 5.4 for PHP 8.1 + if: ${{ matrix.php >= 8.1 }} + run: composer require symfony/phpunit-bridge:^5.4 --dev --prefer-dist --no-interaction --no-progress + + - name: Install dependencies + uses: nick-invision/retry@v1 + with: + timeout_minutes: 5 + max_attempts: 5 + command: composer update --prefer-stable --prefer-dist --no-interaction --no-progress + + - name: Execute tests + run: vendor/bin/simple-phpunit --verbose + env: + SYMFONY_PHPUNIT_REMOVE_RETURN_TYPEHINT: 1 diff --git a/user/plugins/email/vendor/swiftmailer/swiftmailer/.gitignore b/user/plugins/email/vendor/swiftmailer/swiftmailer/.gitignore new file mode 100644 index 0000000..a911ddf --- /dev/null +++ b/user/plugins/email/vendor/swiftmailer/swiftmailer/.gitignore @@ -0,0 +1,9 @@ +/.php_cs.cache +/.phpunit +/.phpunit.result.cache +/build/* +/composer.lock +/phpunit.xml +/tests/acceptance.conf.php +/tests/smoke.conf.php +/vendor/ diff --git a/user/plugins/email/vendor/swiftmailer/swiftmailer/.php_cs.dist b/user/plugins/email/vendor/swiftmailer/swiftmailer/.php_cs.dist new file mode 100644 index 0000000..563b48b --- /dev/null +++ b/user/plugins/email/vendor/swiftmailer/swiftmailer/.php_cs.dist @@ -0,0 +1,21 @@ +setRules([ + '@Symfony' => true, + '@Symfony:risky' => true, + '@PHPUnit75Migration:risky' => true, + 'php_unit_dedicate_assert' => ['target' => '5.6'], + 'array_syntax' => ['syntax' => 'short'], + 'php_unit_fqcn_annotation' => true, + 'no_unreachable_default_argument_value' => false, + 'braces' => ['allow_single_line_closure' => true], + 'heredoc_to_nowdoc' => false, + 'ordered_imports' => true, + 'phpdoc_types_order' => ['null_adjustment' => 'always_last', 'sort_algorithm' => 'none'], + 'native_function_invocation' => ['include' => ['@compiler_optimized'], 'scope' => 'all'], + 'fopen_flags' => false, + ]) + ->setRiskyAllowed(true) + ->setFinder(PhpCsFixer\Finder::create()->in(__DIR__)) +; diff --git a/user/plugins/email/vendor/swiftmailer/swiftmailer/CHANGES b/user/plugins/email/vendor/swiftmailer/swiftmailer/CHANGES new file mode 100644 index 0000000..a7ffa00 --- /dev/null +++ b/user/plugins/email/vendor/swiftmailer/swiftmailer/CHANGES @@ -0,0 +1,391 @@ +Changelog +========= + +**Swiftmailer will stop being maintained at the end of November 2021.** + +Please, move to Symfony Mailer at your earliest convenience. +Symfony Mailer is the next evolution of Swiftmailer. +It provides the same features with support for modern PHP code and support for third-party providers. +See https://symfony.com/doc/current/mailer.html for more information. + +6.3.0 (2021-10-18) +------------------ + + * Fix support for PHP 8.1 + +6.2.7 (2021-03-09) +------------------ + + * Allow egulias/email-validator 3.1+ + +6.2.6 (2021-03-05) +------------------ + + * Fix Bcc support + +6.2.5 (2021-01-12) +------------------ + + * Don't trust properties at destruct time + * Remove invalid PHPDocs param in EventDispatcher interface + * Bump license year + * Removes PHP version from README + +6.2.4 (2020-12-08) +------------------ + + * Prevent flushing of the bubble queue when event handler raises another event + * Add support for PHP 8 + * Code cleanups + +6.2.3 (2019-11-12) +------------------ + + * no changes + +6.2.2 (2019-11-12) +------------------ + + * fixed compat with PHP 7.4 + * fixed error message when connecting to a stream raises an error before connect() + +6.2.1 (2019-04-21) +------------------ + + * reverted "deprecated Swift_CharacterStream_ArrayCharacterStream and Swift_CharacterStream_NgCharacterStream in favor of Swift_CharacterStream_CharacterStream" + +6.2.0 (2019-03-10) +------------------ + + * added support for symfony/polyfill-intl-dn + * deprecated Swift_CharacterStream_ArrayCharacterStream and Swift_CharacterStream_NgCharacterStream in favor of Swift_CharacterStream_CharacterStream + +6.1.3 (2018-09-11) +------------------ + + * added auto-start to the SMTP transport when sending a message + * tweaked error message when the response from an SMTP server is empty + * fixed missing property in Swift_Mime_IdGenerator + * exposed original body content type with Swift_Mime_SimpleMimeEntity::getBodyContentType() + * fixed typo in variable name in Swift_AddressEncoder_IdnAddressEncoder + * fixed return type in MessageLogger + * fixed missing property addressEncoder in SimpleHeaderFactory class + +6.1.2 (2018-07-13) +------------------ + + * handled recipient errors when pipelining + +6.1.1 (2018-07-04) +------------------ + + * removed hard dependency on an IDN encoder + +6.1.0 (2018-07-02) +------------------ + + * added address encoder exceptions during send + * added support for bubbling up authenticator error messages + * added support for non-ASCII email addresses + * introduced new dependencies: transport.smtphandlers and transport.authhandlers + * deprecated Swift_Signers_OpenDKIMSigner; use Swift_Signers_DKIMSigner instead + * added support for SMTP pipelining + * added Swift_Transport_Esmtp_EightBitMimeHandler + * fixed startTLS only allowed tls1.0, now allowed: tls1.0, tls1.1, tls1.2 + +6.0.2 (2017-09-30) +------------------ + + * fixed DecoratorPlugin + * removed usage of getmypid() + +6.0.1 (2017-05-20) +------------------ + + * fixed BC break that can be avoided easily + +6.0.0 (2017-05-19) +------------------ + + * added Swift_Transport::ping() + * removed Swift_Mime_HeaderFactory, Swift_Mime_HeaderSet, Swift_Mime_Message, Swift_Mime_MimeEntity, + and Swift_Mime_ParameterizedHeader interfaces + * removed Swift_MailTransport and Swift_Transport_MailTransport + * removed Swift_Encoding + * removed the Swift_Transport_MailInvoker interface and Swift_Transport_SimpleMailInvoker class + * removed the Swift_SignedMessage class + * removed newInstance() methods everywhere + * methods operating on Date header now use DateTimeImmutable object instead of Unix timestamp; + Swift_Mime_Headers_DateHeader::getTimestamp()/setTimestamp() renamed to getDateTime()/setDateTime() + * bumped minimum version to PHP 7.0 + * removed Swift_Validate and replaced by egulias/email-validator + +5.4.9 (2018-01-23) +------------------ + + * no changes, last version of the 5.x series + +5.4.8 (2017-05-01) +------------------ + + * fixed encoding inheritance in addPart() + * fixed sorting MIME children when their types are equal + +5.4.7 (2017-04-20) +------------------ + + * fixed NTLMAuthenticator clobbering bcmath scale + +5.4.6 (2017-02-13) +------------------ + + * removed exceptions thrown in destructors as they lead to fatal errors + * switched to use sha256 by default in DKIM as per the RFC + * fixed an 'Undefined variable: pipes' PHP notice + * fixed long To headers when using the mail transport + * fixed NTLMAuthenticator when no domain is passed with the username + * prevented fatal error during unserialization of a message + * fixed a PHP warning when sending a message that has a length of a multiple of 8192 + +5.4.5 (2016-12-29) +------------------ + + * SECURITY FIX: fixed CVE-2016-10074 by disallowing potentially unsafe shell characters + + Prior to 5.4.5, the mail transport (Swift_Transport_MailTransport) was vulnerable to passing + arbitrary shell arguments if the "From", "ReturnPath" or "Sender" header came + from a non-trusted source, potentially allowing Remote Code Execution + * deprecated the mail transport + +5.4.4 (2016-11-23) +------------------ + + * reverted escaping command-line args to mail (PHP mail() function already does it) + +5.4.3 (2016-07-08) +------------------ + + * fixed SimpleHeaderSet::has()/get() when the 0 index is removed + * removed the need to have mcrypt installed + * fixed broken MIME header encoding with quotes/colons and non-ascii chars + * allowed mail transport send for messages without To header + * fixed PHP 7 support + +5.4.2 (2016-05-01) +------------------ + + * fixed support for IPv6 sockets + * added auto-retry when sending messages from the memory spool + * fixed consecutive read calls in Swift_ByteStream_FileByteStream + * added support for iso-8859-15 encoding + * fixed PHP mail extra params on missing reversePath + * added methods to set custom stream context options + * fixed charset changes in QpContentEncoderProxy + * added return-path header to the ignoredHeaders list of DKIMSigner + * fixed crlf for subject using mail + * fixed add soft line break only when necessary + * fixed escaping command-line args to mail + +5.4.1 (2015-06-06) +------------------ + + * made Swiftmailer exceptions confirm to PHP base exception constructor signature + * fixed MAIL FROM & RCPT TO headers to be RFC compliant + +5.4.0 (2015-03-14) +------------------ + + * added the possibility to add extra certs to PKCS#7 signature + * fix base64 encoding with streams + * added a new RESULT_SPOOLED status for SpoolTransport + * fixed getBody() on attachments when called more than once + * removed dots from generated filenames in filespool + +5.3.1 (2014-12-05) +------------------ + + * fixed cloning of messages with attachments + +5.3.0 (2014-10-04) +------------------ + + * fixed cloning when using signers + * reverted removal of Swift_Encoding + * drop support for PHP 5.2.x + +5.2.2 (2014-09-20) +------------------ + + * fixed Japanese support + * fixed the memory spool when the message changes when in the pool + * added support for cloning messages + * fixed PHP warning in the redirect plugin + * changed the way to and cc-ed email are sent to only use one transaction + +5.2.1 (2014-06-13) +------------------ + + * SECURITY FIX: fixed CLI escaping when using sendmail as a transport + + Prior to 5.2.1, the sendmail transport (Swift_Transport_SendmailTransport) + was vulnerable to an arbitrary shell execution if the "From" header came + from a non-trusted source and no "Return-Path" is configured. + + * fixed parameter in DKIMSigner + * fixed compatibility with PHP < 5.4 + +5.2.0 (2014-05-08) +------------------ + + * fixed Swift_ByteStream_FileByteStream::read() to match to the specification + * fixed from-charset and to-charset arguments in mbstring_convert_encoding() usages + * fixed infinite loop in StreamBuffer + * fixed NullTransport to return the number of ignored emails instead of 0 + * Use phpunit and mockery for unit testing (realityking) + +5.1.0 (2014-03-18) +------------------ + + * fixed data writing to stream when sending large messages + * added support for libopendkim (https://github.com/xdecock/php-opendkim) + * merged SignedMessage and Message + * added Gmail XOAuth2 authentication + * updated the list of known mime types + * added NTLM authentication + +5.0.3 (2013-12-03) +------------------ + + * fixed double-dot bug + * fixed DKIM signer + +5.0.2 (2013-08-30) +------------------ + + * handled correct exception type while reading IoBuffer output + +5.0.1 (2013-06-17) +------------------ + + * changed the spool to only start the transport when a mail has to be sent + * fixed compatibility with PHP 5.2 + * fixed LICENSE file + +5.0.0 (2013-04-30) +------------------ + + * changed the license from LGPL to MIT + +4.3.1 (2013-04-11) +------------------ + + * removed usage of the native QP encoder when the charset is not UTF-8 + * fixed usage of uniqid to avoid collisions + * made a performance improvement when tokenizing large headers + * fixed usage of the PHP native QP encoder on PHP 5.4.7+ + +4.3.0 (2013-01-08) +------------------ + + * made the temporary directory configurable via the TMPDIR env variable + * added S/MIME signer and encryption support + +4.2.2 (2012-10-25) +------------------ + + * added the possibility to throttle messages per second in ThrottlerPlugin (mostly for Amazon SES) + * switched mime.qpcontentencoder to automatically use the PHP native encoder on PHP 5.4.7+ + * allowed specifying a whitelist with regular expressions in RedirectingPlugin + +4.2.1 (2012-07-13) +------------------ + + * changed the coding standards to PSR-1/2 + * fixed issue with autoloading + * added NativeQpContentEncoder to enhance performance (for PHP 5.3+) + +4.2.0 (2012-06-29) +------------------ + + * added documentation about how to use the Japanese support introduced in 4.1.8 + * added a way to override the default configuration in a lazy way + * changed the PEAR init script to lazy-load the initialization + * fixed a bug when calling Swift_Preferences before anything else (regression introduced in 4.1.8) + +4.1.8 (2012-06-17) +------------------ + + * added Japanese iso-2022-jp support + * changed the init script to lazy-load the initialization + * fixed docblocks (@id) which caused some problems with libraries parsing the dobclocks + * fixed Swift_Mime_Headers_IdentificationHeader::setId() when passed an array of ids + * fixed encoding of email addresses in headers + * added replacements setter to the Decorator plugin + +4.1.7 (2012-04-26) +------------------ + + * fixed QpEncoder safeMapShareId property + +4.1.6 (2012-03-23) +------------------ + + * reduced the size of serialized Messages + +4.1.5 (2012-01-04) +------------------ + + * enforced Swift_Spool::queueMessage() to return a Boolean + * made an optimization to the memory spool: start the transport only when required + * prevented stream_socket_client() from generating an error and throw a Swift_TransportException instead + * fixed a PHP warning when calling to mail() when safe_mode is off + * many doc tweaks + +4.1.4 (2011-12-16) +------------------ + + * added a memory spool (Swift_MemorySpool) + * fixed too many opened files when sending emails with attachments + +4.1.3 (2011-10-27) +------------------ + + * added STARTTLS support + * added missing @return tags on fluent methods + * added a MessageLogger plugin that logs all sent messages + * added composer.json + +4.1.2 (2011-09-13) +------------------ + + * fixed wrong detection of magic_quotes_runtime + * fixed fatal errors when no To or Subject header has been set + * fixed charset on parameter header continuations + * added documentation about how to install Swiftmailer from the PEAR channel + * fixed various typos and markup problem in the documentation + * fixed warning when cache directory does not exist + * fixed "slashes are escaped" bug + * changed require_once() to require() in autoload + +4.1.1 (2011-07-04) +------------------ + + * added missing file in PEAR package + +4.1.0 (2011-06-30) +------------------ + + * documentation has been converted to ReST + +4.1.0 RC1 (2011-06-17) +---------------------- + +New features: + + * changed the Decorator Plugin to allow replacements in all headers + * added Swift_Mime_Grammar and Swift_Validate to validate an email address + * modified the autoloader to lazy-initialize Swiftmailer + * removed Swift_Mailer::batchSend() + * added NullTransport + * added new plugins: RedirectingPlugin and ImpersonatePlugin + * added a way to send messages asynchronously (Spool) diff --git a/user/plugins/email/vendor/swiftmailer/swiftmailer/LICENSE b/user/plugins/email/vendor/swiftmailer/swiftmailer/LICENSE new file mode 100644 index 0000000..ab72077 --- /dev/null +++ b/user/plugins/email/vendor/swiftmailer/swiftmailer/LICENSE @@ -0,0 +1,19 @@ +Copyright (c) 2013-2021 Fabien Potencier + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is furnished +to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. diff --git a/user/plugins/email/vendor/swiftmailer/swiftmailer/README.md b/user/plugins/email/vendor/swiftmailer/swiftmailer/README.md new file mode 100644 index 0000000..788d722 --- /dev/null +++ b/user/plugins/email/vendor/swiftmailer/swiftmailer/README.md @@ -0,0 +1,25 @@ +Swift Mailer +------------ + +**Swiftmailer will stop being maintained at the end of November 2021.** + +Please, move to [Symfony Mailer](https://symfony.com/doc/current/mailer.html) at your earliest convenience. +[Symfony Mailer](https://symfony.com/doc/current/mailer.html) is the next evolution of Swiftmailer. +It provides the same features with support for modern PHP code and support for third-party providers. + +Swift Mailer is a component based mailing solution for PHP. +It is released under the MIT license. + +Swift Mailer is highly object-oriented by design and lends itself +to use in complex web application with a great deal of flexibility. + +For full details on usage, read the [documentation](https://swiftmailer.symfony.com/docs/introduction.html). + +Sponsors +-------- + + diff --git a/user/plugins/email/vendor/swiftmailer/swiftmailer/composer.json b/user/plugins/email/vendor/swiftmailer/swiftmailer/composer.json new file mode 100644 index 0000000..546b3a1 --- /dev/null +++ b/user/plugins/email/vendor/swiftmailer/swiftmailer/composer.json @@ -0,0 +1,44 @@ +{ + "name": "swiftmailer/swiftmailer", + "type": "library", + "description": "Swiftmailer, free feature-rich PHP mailer", + "keywords": ["mail","mailer","email"], + "homepage": "https://swiftmailer.symfony.com", + "license": "MIT", + "authors": [ + { + "name": "Chris Corbyn" + }, + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + } + ], + "require": { + "php": ">=7.0.0", + "egulias/email-validator": "^2.0|^3.1", + "symfony/polyfill-iconv": "^1.0", + "symfony/polyfill-mbstring": "^1.0", + "symfony/polyfill-intl-idn": "^1.10" + }, + "require-dev": { + "mockery/mockery": "^1.0", + "symfony/phpunit-bridge": "^4.4|^5.4" + }, + "suggest": { + "ext-intl": "Needed to support internationalized email addresses" + }, + "autoload": { + "files": ["lib/swift_required.php"] + }, + "autoload-dev": { + "psr-0": { "Swift_": "tests/unit" } + }, + "extra": { + "branch-alias": { + "dev-master": "6.2-dev" + } + }, + "minimum-stability": "dev", + "prefer-stable": true +} diff --git a/user/plugins/email/vendor/swiftmailer/swiftmailer/doc/headers.rst b/user/plugins/email/vendor/swiftmailer/swiftmailer/doc/headers.rst new file mode 100644 index 0000000..8b8bece --- /dev/null +++ b/user/plugins/email/vendor/swiftmailer/swiftmailer/doc/headers.rst @@ -0,0 +1,621 @@ +Message Headers +=============== + +Sometimes you'll want to add your own headers to a message or modify/remove +headers that are already present. You work with the message's HeaderSet to do +this. + +Header Basics +------------- + +All MIME entities in Swift Mailer -- including the message itself -- store +their headers in a single object called a HeaderSet. This HeaderSet is +retrieved with the ``getHeaders()`` method. + +As mentioned in the previous chapter, everything that forms a part of a message +in Swift Mailer is a MIME entity that is represented by an instance of +``Swift_Mime_SimpleMimeEntity``. This includes -- most notably -- the message +object itself, attachments, MIME parts and embedded images. Each of these MIME +entities consists of a body and a set of headers that describe the body. + +For all of the "standard" headers in these MIME entities, such as the +``Content-Type``, there are named methods for working with them, such as +``setContentType()`` and ``getContentType()``. This is because headers are a +moderately complex area of the library. Each header has a slightly different +required structure that it must meet in order to comply with the standards that +govern email (and that are checked by spam blockers etc). + +You fetch the HeaderSet from a MIME entity like so:: + + $message = new Swift_Message(); + + // Fetch the HeaderSet from a Message object + $headers = $message->getHeaders(); + + $attachment = Swift_Attachment::fromPath('document.pdf'); + + // Fetch the HeaderSet from an attachment object + $headers = $attachment->getHeaders(); + +The job of the HeaderSet is to contain and manage instances of Header objects. +Depending upon the MIME entity the HeaderSet came from, the contents of the +HeaderSet will be different, since an attachment for example has a different +set of headers to those in a message. + +You can find out what the HeaderSet contains with a quick loop, dumping out the +names of the headers:: + + foreach ($headers->getAll() as $header) { + printf("%s
    \n", $header->getFieldName()); + } + + /* + Content-Transfer-Encoding + Content-Type + MIME-Version + Date + Message-ID + From + Subject + To + */ + +You can also dump out the rendered HeaderSet by calling its ``toString()`` +method:: + + echo $headers->toString(); + + /* + Message-ID: <1234869991.499a9ee7f1d5e@swift.generated> + Date: Tue, 17 Feb 2009 22:26:31 +1100 + Subject: Awesome subject! + From: sender@example.org + To: recipient@example.org + MIME-Version: 1.0 + Content-Type: text/plain; charset=utf-8 + Content-Transfer-Encoding: quoted-printable + */ + +Where the complexity comes in is when you want to modify an existing header. +This complexity comes from the fact that each header can be of a slightly +different type (such as a Date header, or a header that contains email +addresses, or a header that has key-value parameters on it!). Each header in +the HeaderSet is an instance of ``Swift_Mime_Header``. They all have common +functionality, but knowing exactly what type of header you're working with will +allow you a little more control. + +You can determine the type of header by comparing the return value of its +``getFieldType()`` method with the constants ``TYPE_TEXT``, +``TYPE_PARAMETERIZED``, ``TYPE_DATE``, ``TYPE_MAILBOX``, ``TYPE_ID`` and +``TYPE_PATH`` which are defined in ``Swift_Mime_Header``:: + + foreach ($headers->getAll() as $header) { + switch ($header->getFieldType()) { + case Swift_Mime_Header::TYPE_TEXT: $type = 'text'; + break; + case Swift_Mime_Header::TYPE_PARAMETERIZED: $type = 'parameterized'; + break; + case Swift_Mime_Header::TYPE_MAILBOX: $type = 'mailbox'; + break; + case Swift_Mime_Header::TYPE_DATE: $type = 'date'; + break; + case Swift_Mime_Header::TYPE_ID: $type = 'ID'; + break; + case Swift_Mime_Header::TYPE_PATH: $type = 'path'; + break; + } + printf("%s: is a %s header
    \n", $header->getFieldName(), $type); + } + + /* + Content-Transfer-Encoding: is a text header + Content-Type: is a parameterized header + MIME-Version: is a text header + Date: is a date header + Message-ID: is a ID header + From: is a mailbox header + Subject: is a text header + To: is a mailbox header + */ + +Headers can be removed from the set, modified within the set, or added to the +set. + +The following sections show you how to work with the HeaderSet and explain the +details of each implementation of ``Swift_Mime_Header`` that may exist within +the HeaderSet. + +Header Types +------------ + +Because all headers are modeled on different data (dates, addresses, text!) +there are different types of Header in Swift Mailer. Swift Mailer attempts to +categorize all possible MIME headers into more general groups, defined by a +small number of classes. + +Text Headers +~~~~~~~~~~~~ + +Text headers are the simplest type of Header. They contain textual information +with no special information included within it -- for example the Subject +header in a message. + +There's nothing particularly interesting about a text header, though it is +probably the one you'd opt to use if you need to add a custom header to a +message. It represents text just like you'd think it does. If the text contains +characters that are not permitted in a message header (such as new lines, or +non-ascii characters) then the header takes care of encoding the text so that +it can be used. + +No header -- including text headers -- in Swift Mailer is vulnerable to +header-injection attacks. Swift Mailer breaks any attempt at header injection +by encoding the dangerous data into a non-dangerous form. + +It's easy to add a new text header to a HeaderSet. You do this by calling the +HeaderSet's ``addTextHeader()`` method:: + + $message = new Swift_Message(); + $headers = $message->getHeaders(); + $headers->addTextHeader('Your-Header-Name', 'the header value'); + +Changing the value of an existing text header is done by calling it's +``setValue()`` method:: + + $subject = $message->getHeaders()->get('Subject'); + $subject->setValue('new subject'); + +When output via ``toString()``, a text header produces something like the +following:: + + $subject = $message->getHeaders()->get('Subject'); + $subject->setValue('amazing subject line'); + echo $subject->toString(); + + /* + + Subject: amazing subject line + + */ + +If the header contains any characters that are outside of the US-ASCII range +however, they will be encoded. This is nothing to be concerned about since mail +clients will decode them back:: + + $subject = $message->getHeaders()->get('Subject'); + $subject->setValue('contains – dash'); + echo $subject->toString(); + + /* + + Subject: contains =?utf-8?Q?=E2=80=93?= dash + + */ + +Parameterized Headers +~~~~~~~~~~~~~~~~~~~~~ + +Parameterized headers are text headers that contain key-value parameters +following the textual content. The Content-Type header of a message is a +parameterized header since it contains charset information after the content +type. + +The parameterized header type is a special type of text header. It extends the +text header by allowing additional information to follow it. All of the methods +from text headers are available in addition to the methods described here. + +Adding a parameterized header to a HeaderSet is done by using the +``addParameterizedHeader()`` method which takes a text value like +``addTextHeader()`` but it also accepts an associative array of key-value +parameters:: + + $message = new Swift_Message(); + $headers = $message->getHeaders(); + $headers->addParameterizedHeader( + 'Header-Name', 'header value', + ['foo' => 'bar'] + ); + +To change the text value of the header, call it's ``setValue()`` method just as +you do with text headers. + +To change the parameters in the header, call the header's ``setParameters()`` +method or the ``setParameter()`` method (note the pluralization):: + + $type = $message->getHeaders()->get('Content-Type'); + + // setParameters() takes an associative array + $type->setParameters([ + 'name' => 'file.txt', + 'charset' => 'iso-8859-1' + ]); + + // setParameter() takes two args for $key and $value + $type->setParameter('charset', 'iso-8859-1'); + +When output via ``toString()``, a parameterized header produces something like +the following:: + + $type = $message->getHeaders()->get('Content-Type'); + $type->setValue('text/html'); + $type->setParameter('charset', 'utf-8'); + + echo $type->toString(); + + /* + + Content-Type: text/html; charset=utf-8 + + */ + +If the header contains any characters that are outside of the US-ASCII range +however, they will be encoded, just like they are for text headers. This is +nothing to be concerned about since mail clients will decode them back. +Likewise, if the parameters contain any non-ascii characters they will be +encoded so that they can be transmitted safely:: + + $attachment = new Swift_Attachment(); + $disp = $attachment->getHeaders()->get('Content-Disposition'); + $disp->setValue('attachment'); + $disp->setParameter('filename', 'report–may.pdf'); + echo $disp->toString(); + + /* + + Content-Disposition: attachment; filename*=utf-8''report%E2%80%93may.pdf + + */ + +Date Headers +~~~~~~~~~~~~ + +Date headers contains an RFC 2822 formatted date (i.e. what PHP's ``date('r')`` +returns). They are used anywhere a date or time is needed to be presented as a +message header. + +The data on which a date header is modeled as a DateTimeImmutable object. The +object is used to create a correctly structured RFC 2822 formatted date with +timezone such as ``Tue, 17 Feb 2009 22:26:31 +1100``. + +The obvious place this header type is used is in the ``Date:`` header of the +message itself. + +It's easy to add a new date header to a HeaderSet. You do this by calling the +HeaderSet's ``addDateHeader()`` method:: + + $message = new Swift_Message(); + $headers = $message->getHeaders(); + $headers->addDateHeader('Your-Header', new DateTimeImmutable('3 days ago')); + +Changing the value of an existing date header is done by calling it's +``setDateTime()`` method:: + + $date = $message->getHeaders()->get('Date'); + $date->setDateTime(new DateTimeImmutable()); + +When output via ``toString()``, a date header produces something like the +following:: + + $date = $message->getHeaders()->get('Date'); + echo $date->toString(); + + /* + + Date: Wed, 18 Feb 2009 13:35:02 +1100 + + */ + +Mailbox (e-mail address) Headers +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +Mailbox headers contain one or more email addresses, possibly with personalized +names attached to them. The data on which they are modeled is represented by an +associative array of email addresses and names. + +Mailbox headers are probably the most complex header type to understand in +Swift Mailer because they accept their input as an array which can take various +forms, as described in the previous chapter. + +All of the headers that contain e-mail addresses in a message -- with the +exception of ``Return-Path:`` which has a stricter syntax -- use this header +type. That is, ``To:``, ``From:`` etc. + +You add a new mailbox header to a HeaderSet by calling the HeaderSet's +``addMailboxHeader()`` method:: + + $message = new Swift_Message(); + $headers = $message->getHeaders(); + $headers->addMailboxHeader('Your-Header-Name', [ + 'person1@example.org' => 'Person Name One', + 'person2@example.org', + 'person3@example.org', + 'person4@example.org' => 'Another named person' + ]); + +Changing the value of an existing mailbox header is done by calling it's +``setNameAddresses()`` method:: + + $to = $message->getHeaders()->get('To'); + $to->setNameAddresses([ + 'joe@example.org' => 'Joe Bloggs', + 'john@example.org' => 'John Doe', + 'no-name@example.org' + ]); + +If you don't wish to concern yourself with the complicated accepted input +formats accepted by ``setNameAddresses()`` as described in the previous chapter +and you only want to set one or more addresses (not names) then you can just +use the ``setAddresses()`` method instead:: + + $to = $message->getHeaders()->get('To'); + $to->setAddresses([ + 'joe@example.org', + 'john@example.org', + 'no-name@example.org' + ]); + +.. note:: + + Both methods will accept the above input format in practice. + +If all you want to do is set a single address in the header, you can use a +string as the input parameter to ``setAddresses()`` and/or +``setNameAddresses()``:: + + $to = $message->getHeaders()->get('To'); + $to->setAddresses('joe-bloggs@example.org'); + +When output via ``toString()``, a mailbox header produces something like the +following:: + + $to = $message->getHeaders()->get('To'); + $to->setNameAddresses([ + 'person1@example.org' => 'Name of Person', + 'person2@example.org', + 'person3@example.org' => 'Another Person' + ]); + + echo $to->toString(); + + /* + + To: Name of Person , person2@example.org, Another Person + + + */ + +Internationalized domains are automatically converted to IDN encoding:: + + $to = $message->getHeaders()->get('To'); + $to->setAddresses('joe@ëxämple.org'); + + echo $to->toString(); + + /* + + To: joe@xn--xmple-gra1c.org + + */ + +ID Headers +~~~~~~~~~~ + +ID headers contain identifiers for the entity (or the message). The most +notable ID header is the Message-ID header on the message itself. + +An ID that exists inside an ID header looks more-or-less less like an email +address. For example, ``<1234955437.499becad62ec2@example.org>``. The part to +the left of the @ sign is usually unique, based on the current time and some +random factor. The part on the right is usually a domain name. + +Any ID passed to the header's ``setId()`` method absolutely MUST conform to +this structure, otherwise you'll get an Exception thrown at you by Swift Mailer +(a ``Swift_RfcComplianceException``). This is to ensure that the generated +email complies with relevant RFC documents and therefore is less likely to be +blocked as spam. + +It's easy to add a new ID header to a HeaderSet. You do this by calling the +HeaderSet's ``addIdHeader()`` method:: + + $message = new Swift_Message(); + $headers = $message->getHeaders(); + $headers->addIdHeader('Your-Header-Name', '123456.unqiue@example.org'); + +Changing the value of an existing ID header is done by calling its ``setId()`` +method:: + + $msgId = $message->getHeaders()->get('Message-ID'); + $msgId->setId(time() . '.' . uniqid('thing') . '@example.org'); + +When output via ``toString()``, an ID header produces something like the +following:: + + $msgId = $message->getHeaders()->get('Message-ID'); + echo $msgId->toString(); + + /* + + Message-ID: <1234955437.499becad62ec2@example.org> + + */ + +Path Headers +~~~~~~~~~~~~ + +Path headers are like very-restricted mailbox headers. They contain a single +email address with no associated name. The Return-Path header of a message is a +path header. + +You add a new path header to a HeaderSet by calling the HeaderSet's +``addPathHeader()`` method:: + + $message = new Swift_Message(); + $headers = $message->getHeaders(); + $headers->addPathHeader('Your-Header-Name', 'person@example.org'); + +Changing the value of an existing path header is done by calling its +``setAddress()`` method:: + + $return = $message->getHeaders()->get('Return-Path'); + $return->setAddress('my-address@example.org'); + +When output via ``toString()``, a path header produces something like the +following:: + + $return = $message->getHeaders()->get('Return-Path'); + $return->setAddress('person@example.org'); + echo $return->toString(); + + /* + + Return-Path: + + */ + +Header Operations +----------------- + +Working with the headers in a message involves knowing how to use the methods +on the HeaderSet and on the individual Headers within the HeaderSet. + +Adding new Headers +~~~~~~~~~~~~~~~~~~ + +New headers can be added to the HeaderSet by using one of the provided +``add..Header()`` methods. + +The added header will appear in the message when it is sent:: + + // Adding a custom header to a message + $message = new Swift_Message(); + $headers = $message->getHeaders(); + $headers->addTextHeader('X-Mine', 'something here'); + + // Adding a custom header to an attachment + $attachment = Swift_Attachment::fromPath('/path/to/doc.pdf'); + $attachment->getHeaders()->addDateHeader('X-Created-Time', time()); + +Retrieving Headers +~~~~~~~~~~~~~~~~~~ + +Headers are retrieved through the HeaderSet's ``get()`` and ``getAll()`` +methods:: + + $headers = $message->getHeaders(); + + // Get the To: header + $toHeader = $headers->get('To'); + + // Get all headers named "X-Foo" + $fooHeaders = $headers->getAll('X-Foo'); + + // Get the second header named "X-Foo" + $foo = $headers->get('X-Foo', 1); + + // Get all headers that are present + $all = $headers->getAll(); + +When using ``get()`` a single header is returned that matches the name (case +insensitive) that is passed to it. When using ``getAll()`` with a header name, +an array of headers with that name are returned. Calling ``getAll()`` with no +arguments returns an array of all headers present in the entity. + +.. note:: + + It's valid for some headers to appear more than once in a message (e.g. + the Received header). For this reason ``getAll()`` exists to fetch all + headers with a specified name. In addition, ``get()`` accepts an optional + numerical index, starting from zero to specify which header you want more + specifically. + +.. note:: + + If you want to modify the contents of the header and you don't know for + sure what type of header it is then you may need to check the type by + calling its ``getFieldType()`` method. + +Check if a Header Exists +~~~~~~~~~~~~~~~~~~~~~~~~ + +You can check if a named header is present in a HeaderSet by calling its +``has()`` method:: + + $headers = $message->getHeaders(); + + // Check if the To: header exists + if ($headers->has('To')) { + echo 'To: exists'; + } + + // Check if an X-Foo header exists twice (i.e. check for the 2nd one) + if ($headers->has('X-Foo', 1)) { + echo 'Second X-Foo header exists'; + } + +If the header exists, ``true`` will be returned or ``false`` if not. + +.. note:: + + It's valid for some headers to appear more than once in a message (e.g. + the Received header). For this reason ``has()`` accepts an optional + numerical index, starting from zero to specify which header you want to + check more specifically. + +Removing Headers +~~~~~~~~~~~~~~~~ + +Removing a Header from the HeaderSet is done by calling the HeaderSet's +``remove()`` or ``removeAll()`` methods:: + + $headers = $message->getHeaders(); + + // Remove the Subject: header + $headers->remove('Subject'); + + // Remove all X-Foo headers + $headers->removeAll('X-Foo'); + + // Remove only the second X-Foo header + $headers->remove('X-Foo', 1); + +When calling ``remove()`` a single header will be removed. When calling +``removeAll()`` all headers with the given name will be removed. If no headers +exist with the given name, no errors will occur. + +.. note:: + + It's valid for some headers to appear more than once in a message (e.g. + the Received header). For this reason ``remove()`` accepts an optional + numerical index, starting from zero to specify which header you want to + check more specifically. For the same reason, ``removeAll()`` exists to + remove all headers that have the given name. + +Modifying a Header's Content +~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +To change a Header's content you should know what type of header it is and then +call it's appropriate setter method. All headers also have a +``setFieldBodyModel()`` method that accepts a mixed parameter and delegates to +the correct setter:: + +The header will be updated inside the HeaderSet and the changes will be seen +when the message is sent:: + + $headers = $message->getHeaders(); + + // Change the Subject: header + $subj = $headers->get('Subject'); + $subj->setValue('new subject here'); + + // Change the To: header + $to = $headers->get('To'); + $to->setNameAddresses([ + 'person@example.org' => 'Person', + 'thing@example.org' + ]); + + // Using the setFieldBodyModel() just delegates to the correct method + // So here to calls setNameAddresses() + $to->setFieldBodyModel([ + 'person@example.org' => 'Person', + 'thing@example.org' + ]); diff --git a/user/plugins/email/vendor/swiftmailer/swiftmailer/doc/index.rst b/user/plugins/email/vendor/swiftmailer/swiftmailer/doc/index.rst new file mode 100644 index 0000000..5d92889 --- /dev/null +++ b/user/plugins/email/vendor/swiftmailer/swiftmailer/doc/index.rst @@ -0,0 +1,12 @@ +Swiftmailer +=========== + +.. toctree:: + :maxdepth: 2 + + introduction + messages + headers + sending + plugins + japanese diff --git a/user/plugins/email/vendor/swiftmailer/swiftmailer/doc/introduction.rst b/user/plugins/email/vendor/swiftmailer/swiftmailer/doc/introduction.rst new file mode 100644 index 0000000..8a47ef1 --- /dev/null +++ b/user/plugins/email/vendor/swiftmailer/swiftmailer/doc/introduction.rst @@ -0,0 +1,67 @@ +Swiftmailer: A feature-rich PHP Mailer +====================================== + +Swift Mailer is a component based library for sending e-mails from PHP applications. + +**Swiftmailer will stop being maintained at the end of November 2021.** + +Please, move to `Symfony Mailer `_ at your earliest convenience. +`Symfony Mailer `_ is the next evolution of Swiftmailer. +It provides the same features with support for modern PHP code and support for third-party providers. + +System Requirements +------------------- + +Swift Mailer requires PHP 7.0 or higher (``proc_*`` functions must be +available). + +Swift Mailer does not work when used with function overloading as implemented +by ``mbstring`` when ``mbstring.func_overload`` is set to ``2``. + +Installation +------------ + +The recommended way to install Swiftmailer is via Composer: + +.. code-block:: bash + + $ composer require "swiftmailer/swiftmailer:^6.0" + +Basic Usage +----------- + +Here is the simplest way to send emails with Swift Mailer:: + + require_once '/path/to/vendor/autoload.php'; + + // Create the Transport + $transport = (new Swift_SmtpTransport('smtp.example.org', 25)) + ->setUsername('your username') + ->setPassword('your password') + ; + + // Create the Mailer using your created Transport + $mailer = new Swift_Mailer($transport); + + // Create a message + $message = (new Swift_Message('Wonderful Subject')) + ->setFrom(['john@doe.com' => 'John Doe']) + ->setTo(['receiver@domain.org', 'other@domain.org' => 'A name']) + ->setBody('Here is the message itself') + ; + + // Send the message + $result = $mailer->send($message); + +You can also use Sendmail as a transport:: + + // Sendmail + $transport = new Swift_SendmailTransport('/usr/sbin/sendmail -bs'); + +Getting Help +------------ + +For general support, use `Stack Overflow `_. + +For bug reports and feature requests, create a new ticket in `GitHub +`_. diff --git a/user/plugins/email/vendor/swiftmailer/swiftmailer/doc/japanese.rst b/user/plugins/email/vendor/swiftmailer/swiftmailer/doc/japanese.rst new file mode 100644 index 0000000..5454821 --- /dev/null +++ b/user/plugins/email/vendor/swiftmailer/swiftmailer/doc/japanese.rst @@ -0,0 +1,19 @@ +Using Swift Mailer for Japanese Emails +====================================== + +To send emails in Japanese, you need to tweak the default configuration. + +Call the ``Swift::init()`` method with the following code as early as possible +in your code:: + + Swift::init(function () { + Swift_DependencyContainer::getInstance() + ->register('mime.qpheaderencoder') + ->asAliasOf('mime.base64headerencoder'); + + Swift_Preferences::getInstance()->setCharset('iso-2022-jp'); + }); + + /* rest of code goes here */ + +That's all! diff --git a/user/plugins/email/vendor/swiftmailer/swiftmailer/doc/messages.rst b/user/plugins/email/vendor/swiftmailer/swiftmailer/doc/messages.rst new file mode 100644 index 0000000..e03859d --- /dev/null +++ b/user/plugins/email/vendor/swiftmailer/swiftmailer/doc/messages.rst @@ -0,0 +1,949 @@ +Creating Messages +================= + +Creating messages in Swift Mailer is done by making use of the various MIME +entities provided with the library. Complex messages can be quickly created +with very little effort. + +Quick Reference +--------------- + +You can think of creating a Message as being similar to the steps you perform +when you click the Compose button in your mail client. You give it a subject, +specify some recipients, add any attachments and write your message:: + + // Create the message + $message = (new Swift_Message()) + + // Give the message a subject + ->setSubject('Your subject') + + // Set the From address with an associative array + ->setFrom(['john@doe.com' => 'John Doe']) + + // Set the To addresses with an associative array (setTo/setCc/setBcc) + ->setTo(['receiver@domain.org', 'other@domain.org' => 'A name']) + + // Give it a body + ->setBody('Here is the message itself') + + // And optionally an alternative body + ->addPart('Here is the message itself', 'text/html') + + // Optionally add any attachments + ->attach(Swift_Attachment::fromPath('my-document.pdf')) + ; + +Message Basics +-------------- + +A message is a container for anything you want to send to somebody else. There +are several basic aspects of a message that you should know. + +An e-mail message is made up of several relatively simple entities that are +combined in different ways to achieve different results. All of these entities +have the same fundamental outline but serve a different purpose. The Message +itself can be defined as a MIME entity, an Attachment is a MIME entity, all +MIME parts are MIME entities -- and so on! + +The basic units of each MIME entity -- be it the Message itself, or an +Attachment -- are its Headers and its body: + +.. code-block:: text + + Header-Name: A header value + Other-Header: Another value + + The body content itself + +The Headers of a MIME entity, and its body must conform to some strict +standards defined by various RFC documents. Swift Mailer ensures that these +specifications are followed by using various types of object, including +Encoders and different Header types to generate the entity. + +The Structure of a Message +~~~~~~~~~~~~~~~~~~~~~~~~~~ + +Of all of the MIME entities, a message -- ``Swift_Message`` is the largest and +most complex. It has many properties that can be updated and it can contain +other MIME entities -- attachments for example -- nested inside it. + +A Message has a lot of different Headers which are there to present information +about the message to the recipients' mail client. Most of these headers will be +familiar to the majority of users, but we'll list the basic ones. Although it's +possible to work directly with the Headers of a Message (or other MIME entity), +the standard Headers have accessor methods provided to abstract away the +complex details for you. For example, although the Date on a message is written +with a strict format, you only need to pass a DateTimeInterface instance to +``setDate()``. + ++-------------------------------+------------------------------------------------------------------------------------------------------------------------------------+---------------------------------------------+ +| Header | Description | Accessors | ++===============================+====================================================================================================================================+=============================================+ +| ``Message-ID`` | Identifies this message with a unique ID, usually containing the domain name and time generated | ``getId()`` / ``setId()`` | ++-------------------------------+------------------------------------------------------------------------------------------------------------------------------------+---------------------------------------------+ +| ``Return-Path`` | Specifies where bounces should go (Swift Mailer reads this for other uses) | ``getReturnPath()`` / ``setReturnPath()`` | ++-------------------------------+------------------------------------------------------------------------------------------------------------------------------------+---------------------------------------------+ +| ``From`` | Specifies the address of the person who the message is from. This can be multiple addresses if multiple people wrote the message. | ``getFrom()`` / ``setFrom()`` | ++-------------------------------+------------------------------------------------------------------------------------------------------------------------------------+---------------------------------------------+ +| ``Sender`` | Specifies the address of the person who physically sent the message (higher precedence than ``From:``) | ``getSender()`` / ``setSender()`` | ++-------------------------------+------------------------------------------------------------------------------------------------------------------------------------+---------------------------------------------+ +| ``To`` | Specifies the addresses of the intended recipients | ``getTo()`` / ``setTo()`` | ++-------------------------------+------------------------------------------------------------------------------------------------------------------------------------+---------------------------------------------+ +| ``Cc`` | Specifies the addresses of recipients who will be copied in on the message | ``getCc()`` / ``setCc()`` | ++-------------------------------+------------------------------------------------------------------------------------------------------------------------------------+---------------------------------------------+ +| ``Bcc`` | Specifies the addresses of recipients who the message will be blind-copied to. Other recipients will not be aware of these copies. | ``getBcc()`` / ``setBcc()`` | ++-------------------------------+------------------------------------------------------------------------------------------------------------------------------------+---------------------------------------------+ +| ``Reply-To`` | Specifies the address where replies are sent to | ``getReplyTo()`` / ``setReplyTo()`` | ++-------------------------------+------------------------------------------------------------------------------------------------------------------------------------+---------------------------------------------+ +| ``Subject`` | Specifies the subject line that is displayed in the recipients' mail client | ``getSubject()`` / ``setSubject()`` | ++-------------------------------+------------------------------------------------------------------------------------------------------------------------------------+---------------------------------------------+ +| ``Date`` | Specifies the date at which the message was sent | ``getDate()`` / ``setDate()`` | ++-------------------------------+------------------------------------------------------------------------------------------------------------------------------------+---------------------------------------------+ +| ``Content-Type`` | Specifies the format of the message (usually ``text/plain`` or ``text/html``) | ``getContentType()`` / ``setContentType()`` | ++-------------------------------+------------------------------------------------------------------------------------------------------------------------------------+---------------------------------------------+ +| ``Content-Transfer-Encoding`` | Specifies the encoding scheme in the message | ``getEncoder()`` / ``setEncoder()`` | ++-------------------------------+------------------------------------------------------------------------------------------------------------------------------------+---------------------------------------------+ + +Working with a Message Object +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +Although there are a lot of available methods on a message object, you only +need to make use of a small subset of them. Usually you'll use +``setSubject()``, ``setTo()`` and ``setFrom()`` before setting the body of your +message with ``setBody()``:: + + $message = new Swift_Message(); + $message->setSubject('My subject'); + +All MIME entities (including a message) have a ``toString()`` method that you +can call if you want to take a look at what is going to be sent. For example, +if you ``echo $message->toString();`` you would see something like this: + +.. code-block:: text + + Message-ID: <1230173678.4952f5eeb1432@swift.generated> + Date: Thu, 25 Dec 2008 13:54:38 +1100 + Subject: Example subject + From: Chris Corbyn + To: Receiver Name + MIME-Version: 1.0 + Content-Type: text/plain; charset=utf-8 + Content-Transfer-Encoding: quoted-printable + + Here is the message + +We'll take a closer look at the methods you use to create your message in the +following sections. + +Adding Content to Your Message +------------------------------ + +Rich content can be added to messages in Swift Mailer with relative ease by +calling methods such as ``setSubject()``, ``setBody()``, ``addPart()`` and +``attach()``. + +Setting the Subject Line +~~~~~~~~~~~~~~~~~~~~~~~~ + +The subject line, displayed in the recipients' mail client can be set with the +``setSubject()`` method, or as a parameter to ``new Swift_Message()``:: + + // Pass it as a parameter when you create the message + $message = new Swift_Message('My amazing subject'); + + // Or set it after like this + $message->setSubject('My amazing subject'); + +Setting the Body Content +~~~~~~~~~~~~~~~~~~~~~~~~ + +The body of the message -- seen when the user opens the message -- is specified +by calling the ``setBody()`` method. If an alternative body is to be included, +``addPart()`` can be used. + +The body of a message is the main part that is read by the user. Often people +want to send a message in HTML format (``text/html``), other times people want +to send in plain text (``text/plain``), or sometimes people want to send both +versions and allow the recipient to choose how they view the message. + +As a rule of thumb, if you're going to send a HTML email, always include a +plain-text equivalent of the same content so that users who prefer to read +plain text can do so. + +If the recipient's mail client offers preferences for displaying text vs. HTML +then the mail client will present that part to the user where available. In +other cases the mail client will display the "best" part it can - usually HTML +if you've included HTML:: + + // Pass it as a parameter when you create the message + $message = new Swift_Message('Subject here', 'My amazing body'); + + // Or set it after like this + $message->setBody('My amazing body', 'text/html'); + + // Add alternative parts with addPart() + $message->addPart('My amazing body in plain text', 'text/plain'); + +Attaching Files +--------------- + +Attachments are downloadable parts of a message and can be added by calling the +``attach()`` method on the message. You can add attachments that exist on disk, +or you can create attachments on-the-fly. + +Although we refer to files sent over e-mails as "attachments" -- because +they're attached to the message -- lots of other parts of the message are +actually "attached" even if we don't refer to these parts as attachments. + +File attachments are created by the ``Swift_Attachment`` class and then +attached to the message via the ``attach()`` method on it. For all of the +"every day" MIME types such as all image formats, word documents, PDFs and +spreadsheets you don't need to explicitly set the content-type of the +attachment, though it would do no harm to do so. For less common formats you +should set the content-type -- which we'll cover in a moment. + +Attaching Existing Files +~~~~~~~~~~~~~~~~~~~~~~~~ + +Files that already exist, either on disk or at a URL can be attached to a +message with just one line of code, using ``Swift_Attachment::fromPath()``. + +You can attach files that exist locally, or if your PHP installation has +``allow_url_fopen`` turned on you can attach files from other +websites. + +The attachment will be presented to the recipient as a downloadable file with +the same filename as the one you attached:: + + // Create the attachment + // * Note that you can technically leave the content-type parameter out + $attachment = Swift_Attachment::fromPath('/path/to/image.jpg', 'image/jpeg'); + + // Attach it to the message + $message->attach($attachment); + + // The two statements above could be written in one line instead + $message->attach(Swift_Attachment::fromPath('/path/to/image.jpg')); + + // You can attach files from a URL if allow_url_fopen is on in php.ini + $message->attach(Swift_Attachment::fromPath('http://site.tld/logo.png')); + +Setting the Filename +~~~~~~~~~~~~~~~~~~~~ + +Usually you don't need to explicitly set the filename of an attachment because +the name of the attached file will be used by default, but if you want to set +the filename you use the ``setFilename()`` method of the Attachment. + +The attachment will be attached in the normal way, but meta-data sent inside +the email will rename the file to something else:: + + // Create the attachment and call its setFilename() method + $attachment = Swift_Attachment::fromPath('/path/to/image.jpg') + ->setFilename('cool.jpg'); + + // Because there's a fluid interface, you can do this in one statement + $message->attach( + Swift_Attachment::fromPath('/path/to/image.jpg')->setFilename('cool.jpg') + ); + +Attaching Dynamic Content +~~~~~~~~~~~~~~~~~~~~~~~~~ + +Files that are generated at runtime, such as PDF documents or images created +via GD can be attached directly to a message without writing them out to disk. +Use ``Swift_Attachment`` directly. + +The attachment will be presented to the recipient as a downloadable file +with the filename and content-type you specify:: + + // Create your file contents in the normal way, but don't write them to disk + $data = create_my_pdf_data(); + + // Create the attachment with your data + $attachment = new Swift_Attachment($data, 'my-file.pdf', 'application/pdf'); + + // Attach it to the message + $message->attach($attachment); + + + // You can alternatively use method chaining to build the attachment + $attachment = (new Swift_Attachment()) + ->setFilename('my-file.pdf') + ->setContentType('application/pdf') + ->setBody($data) + ; + +.. note:: + + If you would usually write the file to disk anyway you should just attach + it with ``Swift_Attachment::fromPath()`` since this will use less memory. + +Changing the Disposition +~~~~~~~~~~~~~~~~~~~~~~~~ + +Attachments just appear as files that can be saved to the Desktop if desired. +You can make attachment appear inline where possible by using the +``setDisposition()`` method of an attachment. + +The attachment will be displayed within the email viewing window if the mail +client knows how to display it:: + + // Create the attachment and call its setDisposition() method + $attachment = Swift_Attachment::fromPath('/path/to/image.jpg') + ->setDisposition('inline'); + + + // Because there's a fluid interface, you can do this in one statement + $message->attach( + Swift_Attachment::fromPath('/path/to/image.jpg')->setDisposition('inline') + ); + +.. note:: + + If you try to create an inline attachment for a non-displayable file type + such as a ZIP file, the mail client should just present the attachment as + normal. + +Embedding Inline Media Files +~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +Often, people want to include an image or other content inline with a HTML +message. It's easy to do this with HTML linking to remote resources, but this +approach is usually blocked by mail clients. Swift Mailer allows you to embed +your media directly into the message. + +Mail clients usually block downloads from remote resources because this +technique was often abused as a mean of tracking who opened an email. If +you're sending a HTML email and you want to include an image in the message +another approach you can take is to embed the image directly. + +Swift Mailer makes embedding files into messages extremely streamlined. You +embed a file by calling the ``embed()`` method of the message, +which returns a value you can use in a ``src`` or +``href`` attribute in your HTML. + +Just like with attachments, it's possible to embed dynamically generated +content without having an existing file available. + +The embedded files are sent in the email as a special type of attachment that +has a unique ID used to reference them within your HTML attributes. On mail +clients that do not support embedded files they may appear as attachments. + +Although this is commonly done for images, in theory it will work for any +displayable (or playable) media type. Support for other media types (such as +video) is dependent on the mail client however. + +Embedding Existing Files +........................ + +Files that already exist, either on disk or at a URL can be embedded in a +message with just one line of code, using ``Swift_EmbeddedFile::fromPath()``. + +You can embed files that exist locally, or if your PHP installation has +``allow_url_fopen`` turned on you can embed files from other websites. + +The file will be displayed with the message inline with the HTML wherever its ID +is used as a ``src`` attribute:: + + // Create the message + $message = new Swift_Message('My subject'); + + // Set the body + $message->setBody( + '' . + ' ' . + ' Here is an image Image' . + ' Rest of message' . + ' ' . + '', + 'text/html' // Mark the content-type as HTML + ); + + // You can embed files from a URL if allow_url_fopen is on in php.ini + $message->setBody( + '' . + ' ' . + ' Here is an image Image' . + ' Rest of message' . + ' ' . + '', + 'text/html' + ); + +.. note:: + + ``Swift_Image`` and ``Swift_EmbeddedFile`` are just aliases of one another. + ``Swift_Image`` exists for semantic purposes. + +.. note:: + + You can embed files in two stages if you prefer. Just capture the return + value of ``embed()`` in a variable and use that as the ``src`` attribute:: + + // If placing the embed() code inline becomes cumbersome + // it's easy to do this in two steps + $cid = $message->embed(Swift_Image::fromPath('image.png')); + + $message->setBody( + '' . + ' ' . + ' Here is an image Image' . + ' Rest of message' . + ' ' . + '', + 'text/html' // Mark the content-type as HTML + ); + +Embedding Dynamic Content +......................... + +Images that are generated at runtime, such as images created via GD can be +embedded directly to a message without writing them out to disk. Use the +standard ``new Swift_Image()`` method. + +The file will be displayed with the message inline with the HTML wherever its ID +is used as a ``src`` attribute:: + + // Create your file contents in the normal way, but don't write them to disk + $img_data = create_my_image_data(); + + // Create the message + $message = new Swift_Message('My subject'); + + // Set the body + $message->setBody( + '' . + ' ' . + ' Here is an image Image' . + ' Rest of message' . + ' ' . + '', + 'text/html' // Mark the content-type as HTML + ); + +.. note:: + + ``Swift_Image`` and ``Swift_EmbeddedFile`` are just aliases of one another. + ``Swift_Image`` exists for semantic purposes. + +.. note:: + + You can embed files in two stages if you prefer. Just capture the return + value of ``embed()`` in a variable and use that as the ``src`` attribute:: + + // If placing the embed() code inline becomes cumbersome + // it's easy to do this in two steps + $cid = $message->embed(new Swift_Image($img_data, 'image.jpg', 'image/jpeg')); + + $message->setBody( + '' . + ' ' . + ' Here is an image Image' . + ' Rest of message' . + ' ' . + '', + 'text/html' // Mark the content-type as HTML + ); + +Adding Recipients to Your Message +--------------------------------- + +Recipients are specified within the message itself via ``setTo()``, ``setCc()`` +and ``setBcc()``. Swift Mailer reads these recipients from the message when it +gets sent so that it knows where to send the message to. + +Message recipients are one of three types: + +* ``To:`` recipients -- the primary recipients (required) + +* ``Cc:`` recipients -- receive a copy of the message (optional) + +* ``Bcc:`` recipients -- hidden from other recipients (optional) + +Each type can contain one, or several addresses. It's possible to list only the +addresses of the recipients, or you can personalize the address by providing +the real name of the recipient. + +Make sure to add only valid email addresses as recipients. If you try to add an +invalid email address with ``setTo()``, ``setCc()`` or ``setBcc()``, Swift +Mailer will throw a ``Swift_RfcComplianceException``. + +If you add recipients automatically based on a data source that may contain +invalid email addresses, you can prevent possible exceptions by validating the +addresses using:: + + use Egulias\EmailValidator\EmailValidator; + use Egulias\EmailValidator\Validation\RFCValidation; + + $validator = new EmailValidator(); + $validator->isValid("example@example.com", new RFCValidation()); //true + +and only adding addresses that validate. Another way would be to wrap your ``setTo()``, ``setCc()`` and +``setBcc()`` calls in a try-catch block and handle the +``Swift_RfcComplianceException`` in the catch block. + +.. sidebar:: Syntax for Addresses + + If you only wish to refer to a single email address (for example your + ``From:`` address) then you can just use a string:: + + $message->setFrom('some@address.tld'); + + If you want to include a name then you must use an associative array:: + + $message->setFrom(['some@address.tld' => 'The Name']); + + If you want to include multiple addresses then you must use an array:: + + $message->setTo(['some@address.tld', 'other@address.tld']); + + You can mix personalized (addresses with a name) and non-personalized + addresses in the same list by mixing the use of associative and + non-associative array syntax:: + + $message->setTo([ + 'recipient-with-name@example.org' => 'Recipient Name One', + 'no-name@example.org', // Note that this is not a key-value pair + 'named-recipient@example.org' => 'Recipient Name Two' + ]); + +Setting ``To:`` Recipients +~~~~~~~~~~~~~~~~~~~~~~~~~~ + +``To:`` recipients are required in a message and are set with the ``setTo()`` +or ``addTo()`` methods of the message. + +To set ``To:`` recipients, create the message object using either ``new +Swift_Message( ... )``, then call the ``setTo()`` method with a complete array +of addresses, or use the ``addTo()`` method to iteratively add recipients. + +The ``setTo()`` method accepts input in various formats as described earlier in +this chapter. The ``addTo()`` method takes either one or two parameters. The +first being the email address and the second optional parameter being the name +of the recipient. + +``To:`` recipients are visible in the message headers and will be seen by the +other recipients:: + + // Using setTo() to set all recipients in one go + $message->setTo([ + 'person1@example.org', + 'person2@otherdomain.org' => 'Person 2 Name', + 'person3@example.org', + 'person4@example.org', + 'person5@example.org' => 'Person 5 Name' + ]); + +.. note:: + + Multiple calls to ``setTo()`` will not add new recipients -- each + call overrides the previous calls. If you want to iteratively add + recipients, use the ``addTo()`` method:: + + // Using addTo() to add recipients iteratively + $message->addTo('person1@example.org'); + $message->addTo('person2@example.org', 'Person 2 Name'); + +Setting ``Cc:`` Recipients +~~~~~~~~~~~~~~~~~~~~~~~~~~ + +``Cc:`` recipients are set with the ``setCc()`` or ``addCc()`` methods of the +message. + +To set ``Cc:`` recipients, create the message object using either ``new +Swift_Message( ... )``, then call the ``setCc()`` method with a complete array +of addresses, or use the ``addCc()`` method to iteratively add recipients. + +The ``setCc()`` method accepts input in various formats as described earlier in +this chapter. The ``addCc()`` method takes either one or two parameters. The +first being the email address and the second optional parameter being the name +of the recipient. + +``Cc:`` recipients are visible in the message headers and will be seen by the +other recipients:: + + // Using setTo() to set all recipients in one go + $message->setTo([ + 'person1@example.org', + 'person2@otherdomain.org' => 'Person 2 Name', + 'person3@example.org', + 'person4@example.org', + 'person5@example.org' => 'Person 5 Name' + ]); + +.. note:: + + Multiple calls to ``setCc()`` will not add new recipients -- each call + overrides the previous calls. If you want to iteratively add Cc: + recipients, use the ``addCc()`` method:: + + // Using addCc() to add recipients iteratively + $message->addCc('person1@example.org'); + $message->addCc('person2@example.org', 'Person 2 Name'); + +Setting ``Bcc:`` Recipients +~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +``Bcc:`` recipients receive a copy of the message without anybody else knowing +it, and are set with the ``setBcc()`` or ``addBcc()`` methods of the message. + +To set ``Bcc:`` recipients, create the message object using either ``new +Swift_Message( ... )``, then call the ``setBcc()`` method with a complete array +of addresses, or use the ``addBcc()`` method to iteratively add recipients. + +The ``setBcc()`` method accepts input in various formats as described earlier +in this chapter. The ``addBcc()`` method takes either one or two parameters. +The first being the email address and the second optional parameter being the +name of the recipient. + +Only the individual ``Bcc:`` recipient will see their address in the message +headers. Other recipients (including other ``Bcc:`` recipients) will not see +the address:: + + // Using setBcc() to set all recipients in one go + $message->setBcc([ + 'person1@example.org', + 'person2@otherdomain.org' => 'Person 2 Name', + 'person3@example.org', + 'person4@example.org', + 'person5@example.org' => 'Person 5 Name' + ]); + +.. note:: + + Multiple calls to ``setBcc()`` will not add new recipients -- each call + overrides the previous calls. If you want to iteratively add Bcc: + recipients, use the ``addBcc()`` method:: + + // Using addBcc() to add recipients iteratively + $message->addBcc('person1@example.org'); + $message->addBcc('person2@example.org', 'Person 2 Name'); + +.. sidebar:: Internationalized Email Addresses + + Traditionally only ASCII characters have been allowed in email addresses. + With the introduction of internationalized domain names (IDNs), non-ASCII + characters may appear in the domain name. By default, Swiftmailer encodes + such domain names in Punycode (e.g. xn--xample-ova.invalid). This is + compatible with all mail servers. + + RFC 6531 introduced an SMTP extension, SMTPUTF8, that allows non-ASCII + characters in email addresses on both sides of the @ sign. To send to such + addresses, your outbound SMTP server must support the SMTPUTF8 extension. + You should use the ``Swift_AddressEncoder_Utf8AddressEncoder`` address + encoder and enable the ``Swift_Transport_Esmtp_SmtpUtf8Handler`` SMTP + extension handler:: + + $smtpUtf8 = new Swift_Transport_Esmtp_SmtpUtf8Handler(); + $transport->setExtensionHandlers([$smtpUtf8]); + $utf8Encoder = new Swift_AddressEncoder_Utf8AddressEncoder(); + $transport->setAddressEncoder($utf8Encoder); + +Specifying Sender Details +------------------------- + +An email must include information about who sent it. Usually this is managed by +the ``From:`` address, however there are other options. + +The sender information is contained in three possible places: + +* ``From:`` -- the address(es) of who wrote the message (required) + +* ``Sender:`` -- the address of the single person who sent the message + (optional) + +* ``Return-Path:`` -- the address where bounces should go to (optional) + +You must always include a ``From:`` address by using ``setFrom()`` on the +message. Swift Mailer will use this as the default ``Return-Path:`` unless +otherwise specified. + +The ``Sender:`` address exists because the person who actually sent the email +may not be the person who wrote the email. It has a higher precedence than the +``From:`` address and will be used as the ``Return-Path:`` unless otherwise +specified. + +Setting the ``From:`` Address +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +A ``From:`` address is required and is set with the ``setFrom()`` method of the +message. ``From:`` addresses specify who actually wrote the email, and usually +who sent it. + +What most people probably don't realize is that you can have more than one +``From:`` address if more than one person wrote the email -- for example if an +email was put together by a committee. + +The ``From:`` address(es) are visible in the message headers and will be seen +by the recipients. + +.. note:: + + If you set multiple ``From:`` addresses then you absolutely must set a + ``Sender:`` address to indicate who physically sent the message. + +:: + + // Set a single From: address + $message->setFrom('your@address.tld'); + + // Set a From: address including a name + $message->setFrom(['your@address.tld' => 'Your Name']); + + // Set multiple From: addresses if multiple people wrote the email + $message->setFrom([ + 'person1@example.org' => 'Sender One', + 'person2@example.org' => 'Sender Two' + ]); + +Setting the ``Sender:`` Address +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +A ``Sender:`` address specifies who sent the message and is set with the +``setSender()`` method of the message. + +The ``Sender:`` address is visible in the message headers and will be seen by +the recipients. + +This address will be used as the ``Return-Path:`` unless otherwise specified. + +.. note:: + + If you set multiple ``From:`` addresses then you absolutely must set a + ``Sender:`` address to indicate who physically sent the message. + +You must not set more than one sender address on a message because it's not +possible for more than one person to send a single message:: + + $message->setSender('your@address.tld'); + +Setting the ``Return-Path:`` (Bounce) Address +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +The ``Return-Path:`` address specifies where bounce notifications should be +sent and is set with the ``setReturnPath()`` method of the message. + +You can only have one ``Return-Path:`` and it must not include a personal name. + +Bounce notifications will be sent to this address:: + + $message->setReturnPath('bounces@address.tld'); + +Signed/Encrypted Message +------------------------ + +To increase the integrity/security of a message it is possible to sign and/or +encrypt an message using one or multiple signers. + +S/MIME +~~~~~~ + +S/MIME can sign and/or encrypt a message using the OpenSSL extension. + +When signing a message, the signer creates a signature of the entire content of +the message (including attachments). + +The certificate and private key must be PEM encoded, and can be either created +using for example OpenSSL or obtained at an official Certificate Authority (CA). + +**The recipient must have the CA certificate in the list of trusted issuers in +order to verify the signature.** + +**Make sure the certificate supports emailProtection.** + +When using OpenSSL this can done by the including the *-addtrust +emailProtection* parameter when creating the certificate:: + + $message = new Swift_Message(); + + $smimeSigner = new Swift_Signers_SMimeSigner(); + $smimeSigner->setSignCertificate('/path/to/certificate.pem', '/path/to/private-key.pem'); + $message->attachSigner($smimeSigner); + +When the private key is secured using a passphrase use the following instead:: + + $message = new Swift_Message(); + + $smimeSigner = new Swift_Signers_SMimeSigner(); + $smimeSigner->setSignCertificate('/path/to/certificate.pem', ['/path/to/private-key.pem', 'passphrase']); + $message->attachSigner($smimeSigner); + +By default the signature is added as attachment, making the message still +readable for mailing agents not supporting signed messages. + +Storing the message as binary is also possible but not recommended:: + + $smimeSigner->setSignCertificate('/path/to/certificate.pem', '/path/to/private-key.pem', PKCS7_BINARY); + +When encrypting the message (also known as enveloping), the entire message +(including attachments) is encrypted using a certificate, and the recipient can +then decrypt the message using corresponding private key. + +Encrypting ensures nobody can read the contents of the message without the +private key. + +Normally the recipient provides a certificate for encrypting and keeping the +decryption key private. + +Using both signing and encrypting is also possible:: + + $message = new Swift_Message(); + + $smimeSigner = new Swift_Signers_SMimeSigner(); + $smimeSigner->setSignCertificate('/path/to/sign-certificate.pem', '/path/to/private-key.pem'); + $smimeSigner->setEncryptCertificate('/path/to/encrypt-certificate.pem'); + $message->attachSigner($smimeSigner); + +The used encryption cipher can be set as the second parameter of +setEncryptCertificate() + +See https://secure.php.net/manual/openssl.ciphers for a list of supported ciphers. + +By default the message is first signed and then encrypted, this can be changed +by adding:: + + $smimeSigner->setSignThenEncrypt(false); + +**Changing this is not recommended as most mail agents don't support this +none-standard way.** + +Only when having trouble with sign then encrypt method, this should be changed. + +Requesting a Read Receipt +------------------------- + +It is possible to request a read-receipt to be sent to an address when the +email is opened. To request a read receipt set the address with +``setReadReceiptTo()``:: + + $message->setReadReceiptTo('your@address.tld'); + +When the email is opened, if the mail client supports it a notification will be +sent to this address. + +.. note:: + + Read receipts won't work for the majority of recipients since many mail + clients auto-disable them. Those clients that will send a read receipt + will make the user aware that one has been requested. + +Setting the Character Set +------------------------- + +The character set of the message (and its MIME parts) is set with the +``setCharset()`` method. You can also change the global default of UTF-8 by +working with the ``Swift_Preferences`` class. + +Swift Mailer will default to the UTF-8 character set unless otherwise +overridden. UTF-8 will work in most instances since it includes all of the +standard US keyboard characters in addition to most international characters. + +It is absolutely vital however that you know what character set your message +(or it's MIME parts) are written in otherwise your message may be received +completely garbled. + +There are two places in Swift Mailer where you can change the character set: + +* In the ``Swift_Preferences`` class + +* On each individual message and/or MIME part + +To set the character set of your Message: + +* Change the global UTF-8 setting by calling + ``Swift_Preferences::setCharset()``; or + +* Call the ``setCharset()`` method on the message or the MIME part:: + + // Approach 1: Change the global setting (suggested) + Swift_Preferences::getInstance()->setCharset('iso-8859-2'); + + // Approach 2: Call the setCharset() method of the message + $message = (new Swift_Message()) + ->setCharset('iso-8859-2'); + + // Approach 3: Specify the charset when setting the body + $message->setBody('My body', 'text/html', 'iso-8859-2'); + + // Approach 4: Specify the charset for each part added + $message->addPart('My part', 'text/plain', 'iso-8859-2'); + +Setting the Encoding +-------------------- + +The body of each MIME part needs to be encoded. Binary attachments are encoded +in base64 using the ``Swift_Mime_ContentEncoder_Base64ContentEncoder``. Text +parts are traditionally encoded in quoted-printable using +``Swift_Mime_ContentEncoder_QpContentEncoder`` or +``Swift_Mime_ContentEncoder_NativeQpContentEncoder``. + +The encoder of the message or MIME part is set with the ``setEncoder()`` method. + +Quoted-printable is the safe choice, because it converts 8-bit text as 7-bit. +Most modern SMTP servers support 8-bit text. This is advertised via the 8BITMIME +SMTP extension. If your outbound SMTP server supports this SMTP extension, and +it supports downgrading the message (e.g converting to quoted-printable on the +fly) when delivering to a downstream server that does not support the extension, +you may wish to use ``Swift_Mime_ContentEncoder_PlainContentEncoder`` in +``8bit`` mode instead. This has the advantage that the source data is slightly +more readable and compact, especially for non-Western languages. + + $eightBitMime = new Swift_Transport_Esmtp_EightBitMimeHandler(); + $transport->setExtensionHandlers([$eightBitMime]); + $plainEncoder = new Swift_Mime_ContentEncoder_PlainContentEncoder('8bit'); + $message->setEncoder($plainEncoder); + +Setting the Line Length +----------------------- + +The length of lines in a message can be changed by using the +``setMaxLineLength()`` method on the message:: + + $message->setMaxLineLength(1000); + +Swift Mailer defaults to using 78 characters per line in a message. This is +done for historical reasons and so that the message can be easily viewed in +plain-text terminals + +Lines that are longer than the line length specified will be wrapped between +words. + +.. note:: + + You should never set a maximum length longer than 1000 characters + according to RFC 2822. Doing so could have unspecified side-effects such + as truncating parts of your message when it is transported between SMTP + servers. + +Setting the Message Priority +---------------------------- + +You can change the priority of the message with ``setPriority()``. Setting the +priority will not change the way your email is sent -- it is purely an +indicative setting for the recipient:: + + // Indicate "High" priority + $message->setPriority(2); + +The priority of a message is an indication to the recipient what significance +it has. Swift Mailer allows you to set the priority by calling the +``setPriority`` method. This method takes an integer value between 1 and 5: + +* ``Swift_Mime_SimpleMessage::PRIORITY_HIGHEST``: 1 +* ``Swift_Mime_SimpleMessage::PRIORITY_HIGH``: 2 +* ``Swift_Mime_SimpleMessage::PRIORITY_NORMAL``: 3 +* ``Swift_Mime_SimpleMessage::PRIORITY_LOW``: 4 +* ``Swift_Mime_SimpleMessage::PRIORITY_LOWEST``: 5 + +:: + + // Or use the constant to be more explicit + $message->setPriority(Swift_Mime_SimpleMessage::PRIORITY_HIGH); diff --git a/user/plugins/email/vendor/swiftmailer/swiftmailer/doc/plugins.rst b/user/plugins/email/vendor/swiftmailer/swiftmailer/doc/plugins.rst new file mode 100644 index 0000000..548b07f --- /dev/null +++ b/user/plugins/email/vendor/swiftmailer/swiftmailer/doc/plugins.rst @@ -0,0 +1,337 @@ +Plugins +======= + +Plugins exist to extend, or modify the behaviour of Swift Mailer. They respond +to Events that are fired within the Transports during sending. + +There are a number of Plugins provided as part of the base Swift Mailer package +and they all follow a common interface to respond to Events fired within the +library. Interfaces are provided to "listen" to each type of Event fired and to +act as desired when a listened-to Event occurs. + +Although several plugins are provided with Swift Mailer out-of-the-box, the +Events system has been specifically designed to make it easy for experienced +object-oriented developers to write their own plugins in order to achieve +goals that may not be possible with the base library. + +AntiFlood Plugin +---------------- + +Many SMTP servers have limits on the number of messages that may be sent during +any single SMTP connection. The AntiFlood plugin provides a way to stay within +this limit while still managing a large number of emails. + +A typical limit for a single connection is 100 emails. If the server you +connect to imposes such a limit, it expects you to disconnect after that number +of emails has been sent. You could manage this manually within a loop, but the +AntiFlood plugin provides the necessary wrapper code so that you don't need to +worry about this logic. + +Regardless of limits imposed by the server, it's usually a good idea to be +conservative with the resources of the SMTP server. Sending will become +sluggish if the server is being over-used so using the AntiFlood plugin will +not be a bad idea even if no limits exist. + +The AntiFlood plugin's logic is basically to disconnect and the immediately +re-connect with the SMTP server every X number of emails sent, where X is a +number you specify to the plugin. + +You can also specify a time period in seconds that Swift Mailer should pause +for between the disconnect/re-connect process. It's a good idea to pause for a +short time (say 30 seconds every 100 emails) simply to give the SMTP server a +chance to process its queue and recover some resources. + +Using the AntiFlood Plugin +~~~~~~~~~~~~~~~~~~~~~~~~~~ + +The AntiFlood Plugin -- like all plugins -- is added with the Mailer class's +``registerPlugin()`` method. It takes two constructor parameters: the number of +emails to pause after, and optionally the number of seconds to pause for. + +When Swift Mailer sends messages it will count the number of messages that have +been sent since the last re-connect. Once the number hits your specified +threshold it will disconnect and re-connect, optionally pausing for a specified +amount of time:: + + // Create the Mailer using any Transport + $mailer = new Swift_Mailer( + new Swift_SmtpTransport('smtp.example.org', 25) + ); + + // Use AntiFlood to re-connect after 100 emails + $mailer->registerPlugin(new Swift_Plugins_AntiFloodPlugin(100)); + + // And specify a time in seconds to pause for (30 secs) + $mailer->registerPlugin(new Swift_Plugins_AntiFloodPlugin(100, 30)); + + // Continue sending as normal + for ($lotsOfRecipients as $recipient) { + ... + + $mailer->send( ... ); + } + +Throttler Plugin +---------------- + +If your SMTP server has restrictions in place to limit the rate at which you +send emails, then your code will need to be aware of this rate-limiting. The +Throttler plugin makes Swift Mailer run at a rate-limited speed. + +Many shared hosts don't open their SMTP servers as a free-for-all. Usually they +have policies in place (probably to discourage spammers) that only allow you to +send a fixed number of emails per-hour/day. + +The Throttler plugin supports two modes of rate-limiting and with each, you +will need to do that math to figure out the values you want. The plugin can +limit based on the number of emails per minute, or the number of +bytes-transferred per-minute. + +Using the Throttler Plugin +~~~~~~~~~~~~~~~~~~~~~~~~~~ + +The Throttler Plugin -- like all plugins -- is added with the Mailer class' +``registerPlugin()`` method. It has two required constructor parameters that +tell it how to do its rate-limiting. + +When Swift Mailer sends messages it will keep track of the rate at which +sending messages is occurring. If it realises that sending is happening too +fast, it will cause your program to ``sleep()`` for enough time to average out +the rate:: + + // Create the Mailer using any Transport + $mailer = new Swift_Mailer( + new Swift_SmtpTransport('smtp.example.org', 25) + ); + + // Rate limit to 100 emails per-minute + $mailer->registerPlugin(new Swift_Plugins_ThrottlerPlugin( + 100, Swift_Plugins_ThrottlerPlugin::MESSAGES_PER_MINUTE + )); + + // Rate limit to 10MB per-minute + $mailer->registerPlugin(new Swift_Plugins_ThrottlerPlugin( + 1024 * 1024 * 10, Swift_Plugins_ThrottlerPlugin::BYTES_PER_MINUTE + )); + + // Continue sending as normal + for ($lotsOfRecipients as $recipient) { + ... + + $mailer->send( ... ); + } + +Logger Plugin +------------- + +The Logger plugins helps with debugging during the process of sending. It can +help to identify why an SMTP server is rejecting addresses, or any other +hard-to-find problems that may arise. + +The Logger plugin comes in two parts. There's the plugin itself, along with one +of a number of possible Loggers that you may choose to use. For example, the +logger may output messages directly in realtime, or it may capture messages in +an array. + +One other notable feature is the way in which the Logger plugin changes +Exception messages. If Exceptions are being thrown but the error message does +not provide conclusive information as to the source of the problem (such as an +ambiguous SMTP error) the Logger plugin includes the entire SMTP transcript in +the error message so that debugging becomes a simpler task. + +There are a few available Loggers included with Swift Mailer, but writing your +own implementation is incredibly simple and is achieved by creating a short +class that implements the ``Swift_Plugins_Logger`` interface. + +* ``Swift_Plugins_Loggers_ArrayLogger``: Keeps a collection of log messages + inside an array. The array content can be cleared or dumped out to the screen. + +* ``Swift_Plugins_Loggers_EchoLogger``: Prints output to the screen in + realtime. Handy for very rudimentary debug output. + +Using the Logger Plugin +~~~~~~~~~~~~~~~~~~~~~~~ + +The Logger Plugin -- like all plugins -- is added with the Mailer class' +``registerPlugin()`` method. It accepts an instance of ``Swift_Plugins_Logger`` +in its constructor. + +When Swift Mailer sends messages it will keep a log of all the interactions +with the underlying Transport being used. Depending upon the Logger that has +been used the behaviour will differ, but all implementations offer a way to get +the contents of the log:: + + // Create the Mailer using any Transport + $mailer = new Swift_Mailer( + new Swift_SmtpTransport('smtp.example.org', 25) + ); + + // To use the ArrayLogger + $logger = new Swift_Plugins_Loggers_ArrayLogger(); + $mailer->registerPlugin(new Swift_Plugins_LoggerPlugin($logger)); + + // Or to use the Echo Logger + $logger = new Swift_Plugins_Loggers_EchoLogger(); + $mailer->registerPlugin(new Swift_Plugins_LoggerPlugin($logger)); + + // Continue sending as normal + for ($lotsOfRecipients as $recipient) { + ... + + $mailer->send( ... ); + } + + // Dump the log contents + // NOTE: The EchoLogger dumps in realtime so dump() does nothing for it + echo $logger->dump(); + +Decorator Plugin +---------------- + +Often there's a need to send the same message to multiple recipients, but with +tiny variations such as the recipient's name being used inside the message +body. The Decorator plugin aims to provide a solution for allowing these small +differences. + +The decorator plugin works by intercepting the sending process of Swift Mailer, +reading the email address in the To: field and then looking up a set of +replacements for a template. + +While the use of this plugin is simple, it is probably the most commonly +misunderstood plugin due to the way in which it works. The typical mistake +users make is to try registering the plugin multiple times (once for each +recipient) -- inside a loop for example. This is incorrect. + +The Decorator plugin should be registered just once, but containing the list of +all recipients prior to sending. It will use this list of recipients to find +the required replacements during sending. + +Using the Decorator Plugin +~~~~~~~~~~~~~~~~~~~~~~~~~~ + +To use the Decorator plugin, simply create an associative array of replacements +based on email addresses and then use the mailer's ``registerPlugin()`` method +to add the plugin. + +First create an associative array of replacements based on the email addresses +you'll be sending the message to. + +.. note:: + + The replacements array becomes a 2-dimensional array whose keys are the + email addresses and whose values are an associative array of replacements + for that email address. The curly braces used in this example can be any + type of syntax you choose, provided they match the placeholders in your + email template:: + + $replacements = []; + foreach ($users as $user) { + $replacements[$user['email']] = [ + '{username}'=>$user['username'], + '{resetcode}'=>$user['resetcode'] + ]; + } + +Now create an instance of the Decorator plugin using this array of replacements +and then register it with the Mailer. Do this only once! + +:: + + $decorator = new Swift_Plugins_DecoratorPlugin($replacements); + + $mailer->registerPlugin($decorator); + +When you create your message, replace elements in the body (and/or the subject +line) with your placeholders:: + + $message = (new Swift_Message()) + ->setSubject('Important notice for {username}') + ->setBody( + "Hello {username}, you requested to reset your password.\n" . + "Please visit https://example.com/pwreset and use the reset code {resetcode} to set a new password." + ) + ; + + foreach ($users as $user) { + $message->addTo($user['email']); + } + +When you send this message to each of your recipients listed in your +``$replacements`` array they will receive a message customized for just +themselves. For example, the message used above when received may appear like +this to one user: + +.. code-block:: text + + Subject: Important notice for smilingsunshine2009 + + Hello smilingsunshine2009, you requested to reset your password. + Please visit https://example.com/pwreset and use the reset code 183457 to set a new password. + +While another use may receive the message as: + +.. code-block:: text + + Subject: Important notice for billy-bo-bob + + Hello billy-bo-bob, you requested to reset your password. + Please visit https://example.com/pwreset and use the reset code 539127 to set a new password. + +While the decorator plugin provides a means to solve this problem, there are +various ways you could tackle this problem without the need for a plugin. We're +trying to come up with a better way ourselves and while we have several +(obvious) ideas we don't quite have the perfect solution to go ahead and +implement it. Watch this space. + +Providing Your Own Replacements Lookup for the Decorator +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +Filling an array with replacements may not be the best solution for providing +replacement information to the decorator. If you have a more elegant algorithm +that performs replacement lookups on-the-fly you may provide your own +implementation. + +Providing your own replacements lookup implementation for the Decorator is +simply a matter of passing an instance of +``Swift_Plugins_Decorator_Replacements`` to the decorator plugin's constructor, +rather than passing in an array. + +The Replacements interface is very simple to implement since it has just one +method: ``getReplacementsFor($address)``. + +Imagine you want to look up replacements from a database on-the-fly, you might +provide an implementation that does this. You need to create a small class:: + + class DbReplacements implements Swift_Plugins_Decorator_Replacements { + public function getReplacementsFor($address) { + global $db; // Your PDO instance with a connection to your database + $query = $db->prepare( + "SELECT * FROM `users` WHERE `email` = ?" + ); + + $query->execute([$address]); + + if ($row = $query->fetch(PDO::FETCH_ASSOC)) { + return [ + '{username}'=>$row['username'], + '{resetcode}'=>$row['resetcode'] + ]; + } + } + } + +Now all you need to do is pass an instance of your class into the Decorator +plugin's constructor instead of passing an array:: + + $decorator = new Swift_Plugins_DecoratorPlugin(new DbReplacements()); + + $mailer->registerPlugin($decorator); + +For each message sent, the plugin will call your class' +``getReplacementsFor()`` method to find the array of replacements it needs. + +.. note:: + + If your lookup algorithm is case sensitive, you should transform the + ``$address`` argument as appropriate -- for example by passing it through + ``strtolower()``. diff --git a/user/plugins/email/vendor/swiftmailer/swiftmailer/doc/sending.rst b/user/plugins/email/vendor/swiftmailer/swiftmailer/doc/sending.rst new file mode 100644 index 0000000..d3a10ad --- /dev/null +++ b/user/plugins/email/vendor/swiftmailer/swiftmailer/doc/sending.rst @@ -0,0 +1,464 @@ +Sending Messages +================ + +Quick Reference for Sending a Message +------------------------------------- + +Sending a message is very straightforward. You create a Transport, use it to +create the Mailer, then you use the Mailer to send the message. + +When using ``send()`` the message will be sent just like it would be sent if +you used your mail client. An integer is returned which includes the number of +successful recipients. If none of the recipients could be sent to then zero +will be returned, which equates to a boolean ``false``. If you set two ``To:`` +recipients and three ``Bcc:`` recipients in the message and all of the +recipients are delivered to successfully then the value 5 will be returned:: + + // Create the Transport + $transport = (new Swift_SmtpTransport('smtp.example.org', 25)) + ->setUsername('your username') + ->setPassword('your password') + ; + + /* + You could alternatively use a different transport such as Sendmail: + + // Sendmail + $transport = new Swift_SendmailTransport('/usr/sbin/sendmail -bs'); + */ + + // Create the Mailer using your created Transport + $mailer = new Swift_Mailer($transport); + + // Create a message + $message = (new Swift_Message('Wonderful Subject')) + ->setFrom(['john@doe.com' => 'John Doe']) + ->setTo(['receiver@domain.org', 'other@domain.org' => 'A name']) + ->setBody('Here is the message itself') + ; + + // Send the message + $result = $mailer->send($message); + +Transport Types +~~~~~~~~~~~~~~~ + +Transports are the classes in Swift Mailer that are responsible for +communicating with a service in order to deliver a Message. There are several +types of Transport in Swift Mailer, all of which implement the +``Swift_Transport`` interface:: + +* ``Swift_SmtpTransport``: Sends messages over SMTP; Supports Authentication; + Supports Encryption. Very portable; Pleasingly predictable results; Provides + good feedback; + +* ``Swift_SendmailTransport``: Communicates with a locally installed + ``sendmail`` executable (Linux/UNIX). Quick time-to-run; Provides + less-accurate feedback than SMTP; Requires ``sendmail`` installation; + +* ``Swift_LoadBalancedTransport``: Cycles through a collection of the other + Transports to manage load-reduction. Provides graceful fallback if one + Transport fails (e.g. an SMTP server is down); Keeps the load on remote + services down by spreading the work; + +* ``Swift_FailoverTransport``: Works in conjunction with a collection of the + other Transports to provide high-availability. Provides graceful fallback if + one Transport fails (e.g. an SMTP server is down). + +The SMTP Transport +.................. + +The SMTP Transport sends messages over the (standardized) Simple Message +Transfer Protocol. It can deal with encryption and authentication. + +The SMTP Transport, ``Swift_SmtpTransport`` is without doubt the most commonly +used Transport because it will work on 99% of web servers (I just made that +number up, but you get the idea). All the server needs is the ability to +connect to a remote (or even local) SMTP server on the correct port number +(usually 25). + +SMTP servers often require users to authenticate with a username and password +before any mail can be sent to other domains. This is easily achieved using +Swift Mailer with the SMTP Transport. + +SMTP is a protocol -- in other words it's a "way" of communicating a job to be +done (i.e. sending a message). The SMTP protocol is the fundamental basis on +which messages are delivered all over the internet 7 days a week, 365 days a +year. For this reason it's the most "direct" method of sending messages you can +use and it's the one that will give you the most power and feedback (such as +delivery failures) when using Swift Mailer. + +Because SMTP is generally run as a remote service (i.e. you connect to it over +the network/internet) it's extremely portable from server-to-server. You can +easily store the SMTP server address and port number in a configuration file +within your application and adjust the settings accordingly if the code is +moved or if the SMTP server is changed. + +Some SMTP servers -- Google for example -- use encryption for security reasons. +Swift Mailer supports using both ``ssl`` (SMTPS = SMTP over TLS) and ``tls`` +(SMTP with STARTTLS) encryption settings. + +Using the SMTP Transport +^^^^^^^^^^^^^^^^^^^^^^^^ + +The SMTP Transport is easy to use. Most configuration options can be set with +the constructor. + +To use the SMTP Transport you need to know which SMTP server your code needs to +connect to. Ask your web host if you're not sure. Lots of people ask me who to +connect to -- I really can't answer that since it's a setting that's extremely +specific to your hosting environment. + +A connection to the SMTP server will be established upon the first call to +``send()``:: + + // Create the Transport + $transport = new Swift_SmtpTransport('smtp.example.org', 25); + + // Create the Mailer using your created Transport + $mailer = new Swift_Mailer($transport); + + /* + It's also possible to use multiple method calls + + $transport = (new Swift_SmtpTransport()) + ->setHost('smtp.example.org') + ->setPort(25) + ; + */ + +Encrypted SMTP +^^^^^^^^^^^^^^ + +You can use ``ssl`` (SMTPS) or ``tls`` (STARTTLS) encryption with the SMTP Transport +by specifying it as a parameter or with a method call:: + + // Create the Transport + // Option #1: SMTPS = SMTP over TLS (always encrypted): + $transport = new Swift_SmtpTransport('smtp.example.org', 587, 'ssl'); + // Option #2: SMTP with STARTTLS (best effort encryption): + $transport = new Swift_SmtpTransport('smtp.example.org', 587, 'tls'); + + // Create the Mailer using your created Transport + $mailer = new Swift_Mailer($transport); + +A connection to the SMTP server will be established upon the first call to +``send()``. The connection will be initiated with the correct encryption +settings. + +.. note:: + For SMTPS or STARTTLS encryption to work your PHP installation must have + appropriate OpenSSL transports wrappers. You can check if "tls" and/or + "ssl" are present in your PHP installation by using the PHP function + ``stream_get_transports()``. + +.. note:: + If you are using Mailcatcher_, make sure you do not set the encryption + for the ``Swift_SmtpTransport``, since Mailcatcher does not support encryption. + +.. note:: + When in doubt, try ``ssl`` first for higher security, since the communication + is always encrypted. + +.. note:: + Usually, port 587 or 465 is used for encrypted SMTP. Check the documentation + of your mail provider. + +SMTP with a Username and Password +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +Some servers require authentication. You can provide a username and password +with ``setUsername()`` and ``setPassword()`` methods:: + + // Create the Transport the call setUsername() and setPassword() + $transport = (new Swift_SmtpTransport('smtp.example.org', 25)) + ->setUsername('username') + ->setPassword('password') + ; + + // Create the Mailer using your created Transport + $mailer = new Swift_Mailer($transport); + +Your username and password will be used to authenticate upon first connect when +``send()`` are first used on the Mailer. + +If authentication fails, an Exception of type ``Swift_TransportException`` will +be thrown. + +.. note:: + + If you need to know early whether or not authentication has failed and an + Exception is going to be thrown, call the ``start()`` method on the + created Transport. + +The Sendmail Transport +...................... + +The Sendmail Transport sends messages by communicating with a locally installed +MTA -- such as ``sendmail``. + +The Sendmail Transport, ``Swift_SendmailTransport`` does not directly connect +to any remote services. It is designed for Linux servers that have ``sendmail`` +installed. The Transport starts a local ``sendmail`` process and sends messages +to it. Usually the ``sendmail`` process will respond quickly as it spools your +messages to disk before sending them. + +The Transport is named the Sendmail Transport for historical reasons +(``sendmail`` was the "standard" UNIX tool for sending e-mail for years). It +will send messages using other transfer agents such as Exim or Postfix despite +its name, provided they have the relevant sendmail wrappers so that they can be +started with the correct command-line flags. + +It's a common misconception that because the Sendmail Transport returns a +result very quickly it must therefore deliver messages to recipients quickly -- +this is not true. It's not slow by any means, but it's certainly not faster +than SMTP when it comes to getting messages to the intended recipients. This is +because sendmail itself sends the messages over SMTP once they have been +quickly spooled to disk. + +The Sendmail Transport has the potential to be just as smart of the SMTP +Transport when it comes to notifying Swift Mailer about which recipients were +rejected, but in reality the majority of locally installed ``sendmail`` +instances are not configured well enough to provide any useful feedback. As +such Swift Mailer may report successful deliveries where they did in fact fail +before they even left your server. + +You can run the Sendmail Transport in two different modes specified by command +line flags: + +* "``-bs``" runs in SMTP mode so theoretically it will act like the SMTP + Transport + +* "``-t``" runs in piped mode with no feedback, but theoretically faster, + though not advised + +You can think of the Sendmail Transport as a sort of asynchronous SMTP +Transport -- though if you have problems with delivery failures you should try +using the SMTP Transport instead. Swift Mailer isn't doing the work here, it's +simply passing the work to somebody else (i.e. ``sendmail``). + +Using the Sendmail Transport +^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +To use the Sendmail Transport you simply need to call ``new +Swift_SendmailTransport()`` with the command as a parameter. + +To use the Sendmail Transport you need to know where ``sendmail`` or another +MTA exists on the server. Swift Mailer uses a default value of +``/usr/sbin/sendmail``, which should work on most systems. + +You specify the entire command as a parameter (i.e. including the command line +flags). Swift Mailer supports operational modes of "``-bs``" (default) and +"``-t``". + +.. note:: + + If you run sendmail in "``-t``" mode you will get no feedback as to whether + or not sending has succeeded. Use "``-bs``" unless you have a reason not to. + +A sendmail process will be started upon the first call to ``send()``. If the +process cannot be started successfully an Exception of type +``Swift_TransportException`` will be thrown:: + + // Create the Transport + $transport = new Swift_SendmailTransport('/usr/sbin/exim -bs'); + + // Create the Mailer using your created Transport + $mailer = new Swift_Mailer($transport); + +Available Methods for Sending Messages +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +The Mailer class offers one method for sending Messages -- ``send()``. + +When a message is sent in Swift Mailer, the Mailer class communicates with +whichever Transport class you have chosen to use. + +Each recipient in the message should either be accepted or rejected by the +Transport. For example, if the domain name on the email address is not +reachable the SMTP Transport may reject the address because it cannot process +it. ``send()`` will return an integer indicating the number of accepted +recipients. + +.. note:: + + It's possible to find out which recipients were rejected -- we'll cover that + later in this chapter. + +Using the ``send()`` Method +........................... + +The ``send()`` method of the ``Swift_Mailer`` class sends a message using +exactly the same logic as your Desktop mail client would use. Just pass it a +Message and get a result. + +The message will be sent just like it would be sent if you used your mail +client. An integer is returned which includes the number of successful +recipients. If none of the recipients could be sent to then zero will be +returned, which equates to a boolean ``false``. If you set two +``To:`` recipients and three ``Bcc:`` recipients in the message and all of the +recipients are delivered to successfully then the value 5 will be returned:: + + // Create the Transport + $transport = new Swift_SmtpTransport('localhost', 25); + + // Create the Mailer using your created Transport + $mailer = new Swift_Mailer($transport); + + // Create a message + $message = (new Swift_Message('Wonderful Subject')) + ->setFrom(['john@doe.com' => 'John Doe']) + ->setTo(['receiver@domain.org', 'other@domain.org' => 'A name']) + ->setBody('Here is the message itself') + ; + + // Send the message + $numSent = $mailer->send($message); + + printf("Sent %d messages\n", $numSent); + + /* Note that often that only the boolean equivalent of the + return value is of concern (zero indicates FALSE) + + if ($mailer->send($message)) + { + echo "Sent\n"; + } + else + { + echo "Failed\n"; + } + + */ + +Sending Emails in Batch +....................... + +If you want to send a separate message to each recipient so that only their own +address shows up in the ``To:`` field, follow the following recipe: + +* Create a Transport from one of the provided Transports -- + ``Swift_SmtpTransport``, ``Swift_SendmailTransport``, + or one of the aggregate Transports. + +* Create an instance of the ``Swift_Mailer`` class, using the Transport as + it's constructor parameter. + +* Create a Message. + +* Iterate over the recipients and send message via the ``send()`` method on + the Mailer object. + +Each recipient of the messages receives a different copy with only their own +email address on the ``To:`` field. + +Make sure to add only valid email addresses as recipients. If you try to add an +invalid email address with ``setTo()``, ``setCc()`` or ``setBcc()``, Swift +Mailer will throw a ``Swift_RfcComplianceException``. + +If you add recipients automatically based on a data source that may contain +invalid email addresses, you can prevent possible exceptions by validating the +addresses using ``Egulias\EmailValidator\EmailValidator`` (a dependency that is +installed with Swift Mailer) and only adding addresses that validate. Another +way would be to wrap your ``setTo()``, ``setCc()`` and ``setBcc()`` calls in a +try-catch block and handle the ``Swift_RfcComplianceException`` in the catch +block. + +Handling invalid addresses properly is especially important when sending emails +in large batches since a single invalid address might cause an unhandled +exception and stop the execution or your script early. + +.. note:: + + In the following example, two emails are sent. One to each of + ``receiver@domain.org`` and ``other@domain.org``. These recipients will + not be aware of each other:: + + // Create the Transport + $transport = new Swift_SmtpTransport('localhost', 25); + + // Create the Mailer using your created Transport + $mailer = new Swift_Mailer($transport); + + // Create a message + $message = (new Swift_Message('Wonderful Subject')) + ->setFrom(['john@doe.com' => 'John Doe']) + ->setBody('Here is the message itself') + ; + + // Send the message + $failedRecipients = []; + $numSent = 0; + $to = ['receiver@domain.org', 'other@domain.org' => 'A name']; + + foreach ($to as $address => $name) + { + if (is_int($address)) { + $message->setTo($name); + } else { + $message->setTo([$address => $name]); + } + + $numSent += $mailer->send($message, $failedRecipients); + } + + printf("Sent %d messages\n", $numSent); + +Finding out Rejected Addresses +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +It's possible to get a list of addresses that were rejected by the Transport by +using a by-reference parameter to ``send()``. + +As Swift Mailer attempts to send the message to each address given to it, if a +recipient is rejected it will be added to the array. You can pass an existing +array, otherwise one will be created by-reference. + +Collecting the list of recipients that were rejected can be useful in +circumstances where you need to "prune" a mailing list for example when some +addresses cannot be delivered to. + +Getting Failures By-reference +............................. + +Collecting delivery failures by-reference with the ``send()`` method is as +simple as passing a variable name to the method call:: + + $mailer = new Swift_Mailer( ... ); + + $message = (new Swift_Message( ... )) + ->setFrom( ... ) + ->setTo([ + 'receiver@bad-domain.org' => 'Receiver Name', + 'other@domain.org' => 'A name', + 'other-receiver@bad-domain.org' => 'Other Name' + )) + ->setBody( ... ) + ; + + // Pass a variable name to the send() method + if (!$mailer->send($message, $failures)) + { + echo "Failures:"; + print_r($failures); + } + + /* + Failures: + Array ( + 0 => receiver@bad-domain.org, + 1 => other-receiver@bad-domain.org + ) + */ + +If the Transport rejects any of the recipients, the culprit addresses will be +added to the array provided by-reference. + +.. note:: + + If the variable name does not yet exist, it will be initialized as an + empty array and then failures will be added to that array. If the variable + already exists it will be type-cast to an array and failures will be added + to it. + +.. _Mailcatcher: https://mailcatcher.me/ diff --git a/user/plugins/email/vendor/swiftmailer/swiftmailer/lib/classes/Swift.php b/user/plugins/email/vendor/swiftmailer/swiftmailer/lib/classes/Swift.php new file mode 100644 index 0000000..51b19c9 --- /dev/null +++ b/user/plugins/email/vendor/swiftmailer/swiftmailer/lib/classes/Swift.php @@ -0,0 +1,78 @@ +address = $address; + } + + public function getAddress(): string + { + return $this->address; + } +} diff --git a/user/plugins/email/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Attachment.php b/user/plugins/email/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Attachment.php new file mode 100644 index 0000000..7a1420f --- /dev/null +++ b/user/plugins/email/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Attachment.php @@ -0,0 +1,54 @@ +createDependenciesFor('mime.attachment') + ); + + $this->setBody($data, $contentType); + $this->setFilename($filename); + } + + /** + * Create a new Attachment from a filesystem path. + * + * @param string $path + * @param string $contentType optional + * + * @return self + */ + public static function fromPath($path, $contentType = null) + { + return (new self())->setFile( + new Swift_ByteStream_FileByteStream($path), + $contentType + ); + } +} diff --git a/user/plugins/email/vendor/swiftmailer/swiftmailer/lib/classes/Swift/ByteStream/AbstractFilterableInputStream.php b/user/plugins/email/vendor/swiftmailer/swiftmailer/lib/classes/Swift/ByteStream/AbstractFilterableInputStream.php new file mode 100644 index 0000000..3a69c15 --- /dev/null +++ b/user/plugins/email/vendor/swiftmailer/swiftmailer/lib/classes/Swift/ByteStream/AbstractFilterableInputStream.php @@ -0,0 +1,176 @@ +filters[$key] = $filter; + } + + /** + * Remove an already present StreamFilter based on its $key. + * + * @param string $key + */ + public function removeFilter($key) + { + unset($this->filters[$key]); + } + + /** + * Writes $bytes to the end of the stream. + * + * @param string $bytes + * + * @throws Swift_IoException + * + * @return int + */ + public function write($bytes) + { + $this->writeBuffer .= $bytes; + foreach ($this->filters as $filter) { + if ($filter->shouldBuffer($this->writeBuffer)) { + return; + } + } + $this->doWrite($this->writeBuffer); + + return ++$this->sequence; + } + + /** + * For any bytes that are currently buffered inside the stream, force them + * off the buffer. + * + * @throws Swift_IoException + */ + public function commit() + { + $this->doWrite($this->writeBuffer); + } + + /** + * Attach $is to this stream. + * + * The stream acts as an observer, receiving all data that is written. + * All {@link write()} and {@link flushBuffers()} operations will be mirrored. + */ + public function bind(Swift_InputByteStream $is) + { + $this->mirrors[] = $is; + } + + /** + * Remove an already bound stream. + * + * If $is is not bound, no errors will be raised. + * If the stream currently has any buffered data it will be written to $is + * before unbinding occurs. + */ + public function unbind(Swift_InputByteStream $is) + { + foreach ($this->mirrors as $k => $stream) { + if ($is === $stream) { + if ('' !== $this->writeBuffer) { + $stream->write($this->writeBuffer); + } + unset($this->mirrors[$k]); + } + } + } + + /** + * Flush the contents of the stream (empty it) and set the internal pointer + * to the beginning. + * + * @throws Swift_IoException + */ + public function flushBuffers() + { + if ('' !== $this->writeBuffer) { + $this->doWrite($this->writeBuffer); + } + $this->flush(); + + foreach ($this->mirrors as $stream) { + $stream->flushBuffers(); + } + } + + /** Run $bytes through all filters */ + private function filter($bytes) + { + foreach ($this->filters as $filter) { + $bytes = $filter->filter($bytes); + } + + return $bytes; + } + + /** Just write the bytes to the stream */ + private function doWrite($bytes) + { + $this->doCommit($this->filter($bytes)); + + foreach ($this->mirrors as $stream) { + $stream->write($bytes); + } + + $this->writeBuffer = ''; + } +} diff --git a/user/plugins/email/vendor/swiftmailer/swiftmailer/lib/classes/Swift/ByteStream/ArrayByteStream.php b/user/plugins/email/vendor/swiftmailer/swiftmailer/lib/classes/Swift/ByteStream/ArrayByteStream.php new file mode 100644 index 0000000..4f3dcc3 --- /dev/null +++ b/user/plugins/email/vendor/swiftmailer/swiftmailer/lib/classes/Swift/ByteStream/ArrayByteStream.php @@ -0,0 +1,178 @@ +array = $stack; + $this->arraySize = \count($stack); + } elseif (\is_string($stack)) { + $this->write($stack); + } else { + $this->array = []; + } + } + + /** + * Reads $length bytes from the stream into a string and moves the pointer + * through the stream by $length. + * + * If less bytes exist than are requested the + * remaining bytes are given instead. If no bytes are remaining at all, boolean + * false is returned. + * + * @param int $length + * + * @return string + */ + public function read($length) + { + if ($this->offset == $this->arraySize) { + return false; + } + + // Don't use array slice + $end = $length + $this->offset; + $end = $this->arraySize < $end ? $this->arraySize : $end; + $ret = ''; + for (; $this->offset < $end; ++$this->offset) { + $ret .= $this->array[$this->offset]; + } + + return $ret; + } + + /** + * Writes $bytes to the end of the stream. + * + * @param string $bytes + */ + public function write($bytes) + { + $to_add = str_split($bytes); + foreach ($to_add as $value) { + $this->array[] = $value; + } + $this->arraySize = \count($this->array); + + foreach ($this->mirrors as $stream) { + $stream->write($bytes); + } + } + + /** + * Not used. + */ + public function commit() + { + } + + /** + * Attach $is to this stream. + * + * The stream acts as an observer, receiving all data that is written. + * All {@link write()} and {@link flushBuffers()} operations will be mirrored. + */ + public function bind(Swift_InputByteStream $is) + { + $this->mirrors[] = $is; + } + + /** + * Remove an already bound stream. + * + * If $is is not bound, no errors will be raised. + * If the stream currently has any buffered data it will be written to $is + * before unbinding occurs. + */ + public function unbind(Swift_InputByteStream $is) + { + foreach ($this->mirrors as $k => $stream) { + if ($is === $stream) { + unset($this->mirrors[$k]); + } + } + } + + /** + * Move the internal read pointer to $byteOffset in the stream. + * + * @param int $byteOffset + * + * @return bool + */ + public function setReadPointer($byteOffset) + { + if ($byteOffset > $this->arraySize) { + $byteOffset = $this->arraySize; + } elseif ($byteOffset < 0) { + $byteOffset = 0; + } + + $this->offset = $byteOffset; + } + + /** + * Flush the contents of the stream (empty it) and set the internal pointer + * to the beginning. + */ + public function flushBuffers() + { + $this->offset = 0; + $this->array = []; + $this->arraySize = 0; + + foreach ($this->mirrors as $stream) { + $stream->flushBuffers(); + } + } +} diff --git a/user/plugins/email/vendor/swiftmailer/swiftmailer/lib/classes/Swift/ByteStream/FileByteStream.php b/user/plugins/email/vendor/swiftmailer/swiftmailer/lib/classes/Swift/ByteStream/FileByteStream.php new file mode 100644 index 0000000..f639121 --- /dev/null +++ b/user/plugins/email/vendor/swiftmailer/swiftmailer/lib/classes/Swift/ByteStream/FileByteStream.php @@ -0,0 +1,214 @@ +path = $path; + $this->mode = $writable ? 'w+b' : 'rb'; + } + + /** + * Get the complete path to the file. + * + * @return string + */ + public function getPath() + { + return $this->path; + } + + /** + * Reads $length bytes from the stream into a string and moves the pointer + * through the stream by $length. + * + * If less bytes exist than are requested the + * remaining bytes are given instead. If no bytes are remaining at all, boolean + * false is returned. + * + * @param int $length + * + * @return string|bool + * + * @throws Swift_IoException + */ + public function read($length) + { + $fp = $this->getReadHandle(); + if (!feof($fp)) { + $bytes = fread($fp, $length); + $this->offset = ftell($fp); + + // If we read one byte after reaching the end of the file + // feof() will return false and an empty string is returned + if ((false === $bytes || '' === $bytes) && feof($fp)) { + $this->resetReadHandle(); + + return false; + } + + return $bytes; + } + + $this->resetReadHandle(); + + return false; + } + + /** + * Move the internal read pointer to $byteOffset in the stream. + * + * @param int $byteOffset + * + * @return bool + */ + public function setReadPointer($byteOffset) + { + if (isset($this->reader)) { + $this->seekReadStreamToPosition($byteOffset); + } + $this->offset = $byteOffset; + } + + /** Just write the bytes to the file */ + protected function doCommit($bytes) + { + fwrite($this->getWriteHandle(), $bytes); + $this->resetReadHandle(); + } + + /** Not used */ + protected function flush() + { + } + + /** Get the resource for reading */ + private function getReadHandle() + { + if (!isset($this->reader)) { + $pointer = @fopen($this->path, 'rb'); + if (!$pointer) { + throw new Swift_IoException('Unable to open file for reading ['.$this->path.']'); + } + $this->reader = $pointer; + if (0 != $this->offset) { + $this->getReadStreamSeekableStatus(); + $this->seekReadStreamToPosition($this->offset); + } + } + + return $this->reader; + } + + /** Get the resource for writing */ + private function getWriteHandle() + { + if (!isset($this->writer)) { + if (!$this->writer = fopen($this->path, $this->mode)) { + throw new Swift_IoException('Unable to open file for writing ['.$this->path.']'); + } + } + + return $this->writer; + } + + /** Force a reload of the resource for reading */ + private function resetReadHandle() + { + if (isset($this->reader)) { + fclose($this->reader); + $this->reader = null; + } + } + + /** Check if ReadOnly Stream is seekable */ + private function getReadStreamSeekableStatus() + { + $metas = stream_get_meta_data($this->reader); + $this->seekable = $metas['seekable']; + } + + /** Streams in a readOnly stream ensuring copy if needed */ + private function seekReadStreamToPosition($offset) + { + if (null === $this->seekable) { + $this->getReadStreamSeekableStatus(); + } + if (false === $this->seekable) { + $currentPos = ftell($this->reader); + if ($currentPos < $offset) { + $toDiscard = $offset - $currentPos; + fread($this->reader, $toDiscard); + + return; + } + $this->copyReadStream(); + } + fseek($this->reader, $offset, SEEK_SET); + } + + /** Copy a readOnly Stream to ensure seekability */ + private function copyReadStream() + { + if ($tmpFile = fopen('php://temp/maxmemory:4096', 'w+b')) { + /* We have opened a php:// Stream Should work without problem */ + } elseif (\function_exists('sys_get_temp_dir') && is_writable(sys_get_temp_dir()) && ($tmpFile = tmpfile())) { + /* We have opened a tmpfile */ + } else { + throw new Swift_IoException('Unable to copy the file to make it seekable, sys_temp_dir is not writable, php://memory not available'); + } + $currentPos = ftell($this->reader); + fclose($this->reader); + $source = fopen($this->path, 'rb'); + if (!$source) { + throw new Swift_IoException('Unable to open file for copying ['.$this->path.']'); + } + fseek($tmpFile, 0, SEEK_SET); + while (!feof($source)) { + fwrite($tmpFile, fread($source, 4096)); + } + fseek($tmpFile, $currentPos, SEEK_SET); + fclose($source); + $this->reader = $tmpFile; + } +} diff --git a/user/plugins/email/vendor/swiftmailer/swiftmailer/lib/classes/Swift/ByteStream/TemporaryFileByteStream.php b/user/plugins/email/vendor/swiftmailer/swiftmailer/lib/classes/Swift/ByteStream/TemporaryFileByteStream.php new file mode 100644 index 0000000..0dc6190 --- /dev/null +++ b/user/plugins/email/vendor/swiftmailer/swiftmailer/lib/classes/Swift/ByteStream/TemporaryFileByteStream.php @@ -0,0 +1,52 @@ +getPath()))) { + throw new Swift_IoException('Failed to get temporary file content.'); + } + + return $content; + } + + public function __destruct() + { + if (file_exists($this->getPath())) { + @unlink($this->getPath()); + } + } + + public function __sleep() + { + throw new \BadMethodCallException('Cannot serialize '.__CLASS__); + } + + public function __wakeup() + { + throw new \BadMethodCallException('Cannot unserialize '.__CLASS__); + } +} diff --git a/user/plugins/email/vendor/swiftmailer/swiftmailer/lib/classes/Swift/CharacterReader.php b/user/plugins/email/vendor/swiftmailer/swiftmailer/lib/classes/Swift/CharacterReader.php new file mode 100644 index 0000000..4267adb --- /dev/null +++ b/user/plugins/email/vendor/swiftmailer/swiftmailer/lib/classes/Swift/CharacterReader.php @@ -0,0 +1,67 @@ + + */ +interface Swift_CharacterReader +{ + const MAP_TYPE_INVALID = 0x01; + const MAP_TYPE_FIXED_LEN = 0x02; + const MAP_TYPE_POSITIONS = 0x03; + + /** + * Returns the complete character map. + * + * @param string $string + * @param int $startOffset + * @param array $currentMap + * @param mixed $ignoredChars + * + * @return int + */ + public function getCharPositions($string, $startOffset, &$currentMap, &$ignoredChars); + + /** + * Returns the mapType, see constants. + * + * @return int + */ + public function getMapType(); + + /** + * Returns an integer which specifies how many more bytes to read. + * + * A positive integer indicates the number of more bytes to fetch before invoking + * this method again. + * + * A value of zero means this is already a valid character. + * A value of -1 means this cannot possibly be a valid character. + * + * @param int[] $bytes + * @param int $size + * + * @return int + */ + public function validateByteSequence($bytes, $size); + + /** + * Returns the number of bytes which should be read to start each character. + * + * For fixed width character sets this should be the number of octets-per-character. + * For multibyte character sets this will probably be 1. + * + * @return int + */ + public function getInitialByteSize(); +} diff --git a/user/plugins/email/vendor/swiftmailer/swiftmailer/lib/classes/Swift/CharacterReader/GenericFixedWidthReader.php b/user/plugins/email/vendor/swiftmailer/swiftmailer/lib/classes/Swift/CharacterReader/GenericFixedWidthReader.php new file mode 100644 index 0000000..3e055af --- /dev/null +++ b/user/plugins/email/vendor/swiftmailer/swiftmailer/lib/classes/Swift/CharacterReader/GenericFixedWidthReader.php @@ -0,0 +1,97 @@ + + */ +class Swift_CharacterReader_GenericFixedWidthReader implements Swift_CharacterReader +{ + /** + * The number of bytes in a single character. + * + * @var int + */ + private $width; + + /** + * Creates a new GenericFixedWidthReader using $width bytes per character. + * + * @param int $width + */ + public function __construct($width) + { + $this->width = $width; + } + + /** + * Returns the complete character map. + * + * @param string $string + * @param int $startOffset + * @param array $currentMap + * @param mixed $ignoredChars + * + * @return int + */ + public function getCharPositions($string, $startOffset, &$currentMap, &$ignoredChars) + { + $strlen = \strlen($string); + // % and / are CPU intensive, so, maybe find a better way + $ignored = $strlen % $this->width; + $ignoredChars = $ignored ? substr($string, -$ignored) : ''; + $currentMap = $this->width; + + return ($strlen - $ignored) / $this->width; + } + + /** + * Returns the mapType. + * + * @return int + */ + public function getMapType() + { + return self::MAP_TYPE_FIXED_LEN; + } + + /** + * Returns an integer which specifies how many more bytes to read. + * + * A positive integer indicates the number of more bytes to fetch before invoking + * this method again. + * + * A value of zero means this is already a valid character. + * A value of -1 means this cannot possibly be a valid character. + * + * @param string $bytes + * @param int $size + * + * @return int + */ + public function validateByteSequence($bytes, $size) + { + $needed = $this->width - $size; + + return $needed > -1 ? $needed : -1; + } + + /** + * Returns the number of bytes which should be read to start each character. + * + * @return int + */ + public function getInitialByteSize() + { + return $this->width; + } +} diff --git a/user/plugins/email/vendor/swiftmailer/swiftmailer/lib/classes/Swift/CharacterReader/UsAsciiReader.php b/user/plugins/email/vendor/swiftmailer/swiftmailer/lib/classes/Swift/CharacterReader/UsAsciiReader.php new file mode 100644 index 0000000..ffc05f7 --- /dev/null +++ b/user/plugins/email/vendor/swiftmailer/swiftmailer/lib/classes/Swift/CharacterReader/UsAsciiReader.php @@ -0,0 +1,84 @@ + "\x07F") { + // Invalid char + $currentMap[$i + $startOffset] = $string[$i]; + } + } + + return $strlen; + } + + /** + * Returns mapType. + * + * @return int mapType + */ + public function getMapType() + { + return self::MAP_TYPE_INVALID; + } + + /** + * Returns an integer which specifies how many more bytes to read. + * + * A positive integer indicates the number of more bytes to fetch before invoking + * this method again. + * A value of zero means this is already a valid character. + * A value of -1 means this cannot possibly be a valid character. + * + * @param string $bytes + * @param int $size + * + * @return int + */ + public function validateByteSequence($bytes, $size) + { + $byte = reset($bytes); + if (1 == \count($bytes) && $byte >= 0x00 && $byte <= 0x7F) { + return 0; + } + + return -1; + } + + /** + * Returns the number of bytes which should be read to start each character. + * + * @return int + */ + public function getInitialByteSize() + { + return 1; + } +} diff --git a/user/plugins/email/vendor/swiftmailer/swiftmailer/lib/classes/Swift/CharacterReader/Utf8Reader.php b/user/plugins/email/vendor/swiftmailer/swiftmailer/lib/classes/Swift/CharacterReader/Utf8Reader.php new file mode 100644 index 0000000..da37e0d --- /dev/null +++ b/user/plugins/email/vendor/swiftmailer/swiftmailer/lib/classes/Swift/CharacterReader/Utf8Reader.php @@ -0,0 +1,176 @@ + + */ +class Swift_CharacterReader_Utf8Reader implements Swift_CharacterReader +{ + /** Pre-computed for optimization */ + private static $length_map = [ + // N=0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, // 0x0N + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, // 0x1N + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, // 0x2N + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, // 0x3N + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, // 0x4N + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, // 0x5N + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, // 0x6N + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, // 0x7N + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // 0x8N + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // 0x9N + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // 0xAN + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // 0xBN + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, // 0xCN + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, // 0xDN + 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, // 0xEN + 4, 4, 4, 4, 4, 4, 4, 4, 5, 5, 5, 5, 6, 6, 0, 0, // 0xFN + ]; + + private static $s_length_map = [ + "\x00" => 1, "\x01" => 1, "\x02" => 1, "\x03" => 1, "\x04" => 1, "\x05" => 1, "\x06" => 1, "\x07" => 1, + "\x08" => 1, "\x09" => 1, "\x0a" => 1, "\x0b" => 1, "\x0c" => 1, "\x0d" => 1, "\x0e" => 1, "\x0f" => 1, + "\x10" => 1, "\x11" => 1, "\x12" => 1, "\x13" => 1, "\x14" => 1, "\x15" => 1, "\x16" => 1, "\x17" => 1, + "\x18" => 1, "\x19" => 1, "\x1a" => 1, "\x1b" => 1, "\x1c" => 1, "\x1d" => 1, "\x1e" => 1, "\x1f" => 1, + "\x20" => 1, "\x21" => 1, "\x22" => 1, "\x23" => 1, "\x24" => 1, "\x25" => 1, "\x26" => 1, "\x27" => 1, + "\x28" => 1, "\x29" => 1, "\x2a" => 1, "\x2b" => 1, "\x2c" => 1, "\x2d" => 1, "\x2e" => 1, "\x2f" => 1, + "\x30" => 1, "\x31" => 1, "\x32" => 1, "\x33" => 1, "\x34" => 1, "\x35" => 1, "\x36" => 1, "\x37" => 1, + "\x38" => 1, "\x39" => 1, "\x3a" => 1, "\x3b" => 1, "\x3c" => 1, "\x3d" => 1, "\x3e" => 1, "\x3f" => 1, + "\x40" => 1, "\x41" => 1, "\x42" => 1, "\x43" => 1, "\x44" => 1, "\x45" => 1, "\x46" => 1, "\x47" => 1, + "\x48" => 1, "\x49" => 1, "\x4a" => 1, "\x4b" => 1, "\x4c" => 1, "\x4d" => 1, "\x4e" => 1, "\x4f" => 1, + "\x50" => 1, "\x51" => 1, "\x52" => 1, "\x53" => 1, "\x54" => 1, "\x55" => 1, "\x56" => 1, "\x57" => 1, + "\x58" => 1, "\x59" => 1, "\x5a" => 1, "\x5b" => 1, "\x5c" => 1, "\x5d" => 1, "\x5e" => 1, "\x5f" => 1, + "\x60" => 1, "\x61" => 1, "\x62" => 1, "\x63" => 1, "\x64" => 1, "\x65" => 1, "\x66" => 1, "\x67" => 1, + "\x68" => 1, "\x69" => 1, "\x6a" => 1, "\x6b" => 1, "\x6c" => 1, "\x6d" => 1, "\x6e" => 1, "\x6f" => 1, + "\x70" => 1, "\x71" => 1, "\x72" => 1, "\x73" => 1, "\x74" => 1, "\x75" => 1, "\x76" => 1, "\x77" => 1, + "\x78" => 1, "\x79" => 1, "\x7a" => 1, "\x7b" => 1, "\x7c" => 1, "\x7d" => 1, "\x7e" => 1, "\x7f" => 1, + "\x80" => 0, "\x81" => 0, "\x82" => 0, "\x83" => 0, "\x84" => 0, "\x85" => 0, "\x86" => 0, "\x87" => 0, + "\x88" => 0, "\x89" => 0, "\x8a" => 0, "\x8b" => 0, "\x8c" => 0, "\x8d" => 0, "\x8e" => 0, "\x8f" => 0, + "\x90" => 0, "\x91" => 0, "\x92" => 0, "\x93" => 0, "\x94" => 0, "\x95" => 0, "\x96" => 0, "\x97" => 0, + "\x98" => 0, "\x99" => 0, "\x9a" => 0, "\x9b" => 0, "\x9c" => 0, "\x9d" => 0, "\x9e" => 0, "\x9f" => 0, + "\xa0" => 0, "\xa1" => 0, "\xa2" => 0, "\xa3" => 0, "\xa4" => 0, "\xa5" => 0, "\xa6" => 0, "\xa7" => 0, + "\xa8" => 0, "\xa9" => 0, "\xaa" => 0, "\xab" => 0, "\xac" => 0, "\xad" => 0, "\xae" => 0, "\xaf" => 0, + "\xb0" => 0, "\xb1" => 0, "\xb2" => 0, "\xb3" => 0, "\xb4" => 0, "\xb5" => 0, "\xb6" => 0, "\xb7" => 0, + "\xb8" => 0, "\xb9" => 0, "\xba" => 0, "\xbb" => 0, "\xbc" => 0, "\xbd" => 0, "\xbe" => 0, "\xbf" => 0, + "\xc0" => 2, "\xc1" => 2, "\xc2" => 2, "\xc3" => 2, "\xc4" => 2, "\xc5" => 2, "\xc6" => 2, "\xc7" => 2, + "\xc8" => 2, "\xc9" => 2, "\xca" => 2, "\xcb" => 2, "\xcc" => 2, "\xcd" => 2, "\xce" => 2, "\xcf" => 2, + "\xd0" => 2, "\xd1" => 2, "\xd2" => 2, "\xd3" => 2, "\xd4" => 2, "\xd5" => 2, "\xd6" => 2, "\xd7" => 2, + "\xd8" => 2, "\xd9" => 2, "\xda" => 2, "\xdb" => 2, "\xdc" => 2, "\xdd" => 2, "\xde" => 2, "\xdf" => 2, + "\xe0" => 3, "\xe1" => 3, "\xe2" => 3, "\xe3" => 3, "\xe4" => 3, "\xe5" => 3, "\xe6" => 3, "\xe7" => 3, + "\xe8" => 3, "\xe9" => 3, "\xea" => 3, "\xeb" => 3, "\xec" => 3, "\xed" => 3, "\xee" => 3, "\xef" => 3, + "\xf0" => 4, "\xf1" => 4, "\xf2" => 4, "\xf3" => 4, "\xf4" => 4, "\xf5" => 4, "\xf6" => 4, "\xf7" => 4, + "\xf8" => 5, "\xf9" => 5, "\xfa" => 5, "\xfb" => 5, "\xfc" => 6, "\xfd" => 6, "\xfe" => 0, "\xff" => 0, + ]; + + /** + * Returns the complete character map. + * + * @param string $string + * @param int $startOffset + * @param array $currentMap + * @param mixed $ignoredChars + * + * @return int + */ + public function getCharPositions($string, $startOffset, &$currentMap, &$ignoredChars) + { + if (!isset($currentMap['i']) || !isset($currentMap['p'])) { + $currentMap['p'] = $currentMap['i'] = []; + } + + $strlen = \strlen($string); + $charPos = \count($currentMap['p']); + $foundChars = 0; + $invalid = false; + for ($i = 0; $i < $strlen; ++$i) { + $char = $string[$i]; + $size = self::$s_length_map[$char]; + if (0 == $size) { + /* char is invalid, we must wait for a resync */ + $invalid = true; + continue; + } else { + if (true === $invalid) { + /* We mark the chars as invalid and start a new char */ + $currentMap['p'][$charPos + $foundChars] = $startOffset + $i; + $currentMap['i'][$charPos + $foundChars] = true; + ++$foundChars; + $invalid = false; + } + if (($i + $size) > $strlen) { + $ignoredChars = substr($string, $i); + break; + } + for ($j = 1; $j < $size; ++$j) { + $char = $string[$i + $j]; + if ($char > "\x7F" && $char < "\xC0") { + // Valid - continue parsing + } else { + /* char is invalid, we must wait for a resync */ + $invalid = true; + continue 2; + } + } + /* Ok we got a complete char here */ + $currentMap['p'][$charPos + $foundChars] = $startOffset + $i + $size; + $i += $j - 1; + ++$foundChars; + } + } + + return $foundChars; + } + + /** + * Returns mapType. + * + * @return int mapType + */ + public function getMapType() + { + return self::MAP_TYPE_POSITIONS; + } + + /** + * Returns an integer which specifies how many more bytes to read. + * + * A positive integer indicates the number of more bytes to fetch before invoking + * this method again. + * A value of zero means this is already a valid character. + * A value of -1 means this cannot possibly be a valid character. + * + * @param string $bytes + * @param int $size + * + * @return int + */ + public function validateByteSequence($bytes, $size) + { + if ($size < 1) { + return -1; + } + $needed = self::$length_map[$bytes[0]] - $size; + + return $needed > -1 ? $needed : -1; + } + + /** + * Returns the number of bytes which should be read to start each character. + * + * @return int + */ + public function getInitialByteSize() + { + return 1; + } +} diff --git a/user/plugins/email/vendor/swiftmailer/swiftmailer/lib/classes/Swift/CharacterReaderFactory.php b/user/plugins/email/vendor/swiftmailer/swiftmailer/lib/classes/Swift/CharacterReaderFactory.php new file mode 100644 index 0000000..15b6c69 --- /dev/null +++ b/user/plugins/email/vendor/swiftmailer/swiftmailer/lib/classes/Swift/CharacterReaderFactory.php @@ -0,0 +1,26 @@ +init(); + } + + public function __wakeup() + { + $this->init(); + } + + public function init() + { + if (\count(self::$map) > 0) { + return; + } + + $prefix = 'Swift_CharacterReader_'; + + $singleByte = [ + 'class' => $prefix.'GenericFixedWidthReader', + 'constructor' => [1], + ]; + + $doubleByte = [ + 'class' => $prefix.'GenericFixedWidthReader', + 'constructor' => [2], + ]; + + $fourBytes = [ + 'class' => $prefix.'GenericFixedWidthReader', + 'constructor' => [4], + ]; + + // Utf-8 + self::$map['utf-?8'] = [ + 'class' => $prefix.'Utf8Reader', + 'constructor' => [], + ]; + + //7-8 bit charsets + self::$map['(us-)?ascii'] = $singleByte; + self::$map['(iso|iec)-?8859-?[0-9]+'] = $singleByte; + self::$map['windows-?125[0-9]'] = $singleByte; + self::$map['cp-?[0-9]+'] = $singleByte; + self::$map['ansi'] = $singleByte; + self::$map['macintosh'] = $singleByte; + self::$map['koi-?7'] = $singleByte; + self::$map['koi-?8-?.+'] = $singleByte; + self::$map['mik'] = $singleByte; + self::$map['(cork|t1)'] = $singleByte; + self::$map['v?iscii'] = $singleByte; + + //16 bits + self::$map['(ucs-?2|utf-?16)'] = $doubleByte; + + //32 bits + self::$map['(ucs-?4|utf-?32)'] = $fourBytes; + + // Fallback + self::$map['.*'] = $singleByte; + } + + /** + * Returns a CharacterReader suitable for the charset applied. + * + * @param string $charset + * + * @return Swift_CharacterReader + */ + public function getReaderFor($charset) + { + $charset = strtolower(trim($charset ?? '')); + foreach (self::$map as $pattern => $spec) { + $re = '/^'.$pattern.'$/D'; + if (preg_match($re, $charset)) { + if (!\array_key_exists($pattern, self::$loaded)) { + $reflector = new ReflectionClass($spec['class']); + if ($reflector->getConstructor()) { + $reader = $reflector->newInstanceArgs($spec['constructor']); + } else { + $reader = $reflector->newInstance(); + } + self::$loaded[$pattern] = $reader; + } + + return self::$loaded[$pattern]; + } + } + } +} diff --git a/user/plugins/email/vendor/swiftmailer/swiftmailer/lib/classes/Swift/CharacterStream.php b/user/plugins/email/vendor/swiftmailer/swiftmailer/lib/classes/Swift/CharacterStream.php new file mode 100644 index 0000000..c9d8a07 --- /dev/null +++ b/user/plugins/email/vendor/swiftmailer/swiftmailer/lib/classes/Swift/CharacterStream.php @@ -0,0 +1,87 @@ +setCharacterReaderFactory($factory); + $this->setCharacterSet($charset); + } + + /** + * Set the character set used in this CharacterStream. + * + * @param string $charset + */ + public function setCharacterSet($charset) + { + $this->charset = $charset; + $this->charReader = null; + } + + /** + * Set the CharacterReaderFactory for multi charset support. + */ + public function setCharacterReaderFactory(Swift_CharacterReaderFactory $factory) + { + $this->charReaderFactory = $factory; + } + + /** + * Overwrite this character stream using the byte sequence in the byte stream. + * + * @param Swift_OutputByteStream $os output stream to read from + */ + public function importByteStream(Swift_OutputByteStream $os) + { + if (!isset($this->charReader)) { + $this->charReader = $this->charReaderFactory + ->getReaderFor($this->charset); + } + + $startLength = $this->charReader->getInitialByteSize(); + while (false !== $bytes = $os->read($startLength)) { + $c = []; + for ($i = 0, $len = \strlen($bytes); $i < $len; ++$i) { + $c[] = self::$byteMap[$bytes[$i]]; + } + $size = \count($c); + $need = $this->charReader + ->validateByteSequence($c, $size); + if ($need > 0 && + false !== $bytes = $os->read($need)) { + for ($i = 0, $len = \strlen($bytes); $i < $len; ++$i) { + $c[] = self::$byteMap[$bytes[$i]]; + } + } + $this->array[] = $c; + ++$this->array_size; + } + } + + /** + * Import a string a bytes into this CharacterStream, overwriting any existing + * data in the stream. + * + * @param string $string + */ + public function importString($string) + { + $this->flushContents(); + $this->write($string); + } + + /** + * Read $length characters from the stream and move the internal pointer + * $length further into the stream. + * + * @param int $length + * + * @return string + */ + public function read($length) + { + if ($this->offset == $this->array_size) { + return false; + } + + // Don't use array slice + $arrays = []; + $end = $length + $this->offset; + for ($i = $this->offset; $i < $end; ++$i) { + if (!isset($this->array[$i])) { + break; + } + $arrays[] = $this->array[$i]; + } + $this->offset += $i - $this->offset; // Limit function calls + $chars = false; + foreach ($arrays as $array) { + $chars .= implode('', array_map('chr', $array)); + } + + return $chars; + } + + /** + * Read $length characters from the stream and return a 1-dimensional array + * containing there octet values. + * + * @param int $length + * + * @return int[] + */ + public function readBytes($length) + { + if ($this->offset == $this->array_size) { + return false; + } + $arrays = []; + $end = $length + $this->offset; + for ($i = $this->offset; $i < $end; ++$i) { + if (!isset($this->array[$i])) { + break; + } + $arrays[] = $this->array[$i]; + } + $this->offset += ($i - $this->offset); // Limit function calls + + return array_merge(...$arrays); + } + + /** + * Write $chars to the end of the stream. + * + * @param string $chars + */ + public function write($chars) + { + if (!isset($this->charReader)) { + $this->charReader = $this->charReaderFactory->getReaderFor( + $this->charset); + } + + $startLength = $this->charReader->getInitialByteSize(); + + $fp = fopen('php://memory', 'w+b'); + fwrite($fp, $chars); + unset($chars); + fseek($fp, 0, SEEK_SET); + + $buffer = [0]; + $buf_pos = 1; + $buf_len = 1; + $has_datas = true; + do { + $bytes = []; + // Buffer Filing + if ($buf_len - $buf_pos < $startLength) { + $buf = array_splice($buffer, $buf_pos); + $new = $this->reloadBuffer($fp, 100); + if ($new) { + $buffer = array_merge($buf, $new); + $buf_len = \count($buffer); + $buf_pos = 0; + } else { + $has_datas = false; + } + } + if ($buf_len - $buf_pos > 0) { + $size = 0; + for ($i = 0; $i < $startLength && isset($buffer[$buf_pos]); ++$i) { + ++$size; + $bytes[] = $buffer[$buf_pos++]; + } + $need = $this->charReader->validateByteSequence( + $bytes, $size); + if ($need > 0) { + if ($buf_len - $buf_pos < $need) { + $new = $this->reloadBuffer($fp, $need); + + if ($new) { + $buffer = array_merge($buffer, $new); + $buf_len = \count($buffer); + } + } + for ($i = 0; $i < $need && isset($buffer[$buf_pos]); ++$i) { + $bytes[] = $buffer[$buf_pos++]; + } + } + $this->array[] = $bytes; + ++$this->array_size; + } + } while ($has_datas); + + fclose($fp); + } + + /** + * Move the internal pointer to $charOffset in the stream. + * + * @param int $charOffset + */ + public function setPointer($charOffset) + { + if ($charOffset > $this->array_size) { + $charOffset = $this->array_size; + } elseif ($charOffset < 0) { + $charOffset = 0; + } + $this->offset = $charOffset; + } + + /** + * Empty the stream and reset the internal pointer. + */ + public function flushContents() + { + $this->offset = 0; + $this->array = []; + $this->array_size = 0; + } + + private function reloadBuffer($fp, $len) + { + if (!feof($fp) && false !== ($bytes = fread($fp, $len))) { + $buf = []; + for ($i = 0, $len = \strlen($bytes); $i < $len; ++$i) { + $buf[] = self::$byteMap[$bytes[$i]]; + } + + return $buf; + } + + return false; + } + + private static function initializeMaps() + { + if (!isset(self::$charMap)) { + self::$charMap = []; + for ($byte = 0; $byte < 256; ++$byte) { + self::$charMap[$byte] = \chr($byte); + } + self::$byteMap = array_flip(self::$charMap); + } + } +} diff --git a/user/plugins/email/vendor/swiftmailer/swiftmailer/lib/classes/Swift/CharacterStream/NgCharacterStream.php b/user/plugins/email/vendor/swiftmailer/swiftmailer/lib/classes/Swift/CharacterStream/NgCharacterStream.php new file mode 100644 index 0000000..7578dda --- /dev/null +++ b/user/plugins/email/vendor/swiftmailer/swiftmailer/lib/classes/Swift/CharacterStream/NgCharacterStream.php @@ -0,0 +1,262 @@ + + */ +class Swift_CharacterStream_NgCharacterStream implements Swift_CharacterStream +{ + /** + * The char reader (lazy-loaded) for the current charset. + * + * @var Swift_CharacterReader + */ + private $charReader; + + /** + * A factory for creating CharacterReader instances. + * + * @var Swift_CharacterReaderFactory + */ + private $charReaderFactory; + + /** + * The character set this stream is using. + * + * @var string + */ + private $charset; + + /** + * The data's stored as-is. + * + * @var string + */ + private $datas = ''; + + /** + * Number of bytes in the stream. + * + * @var int + */ + private $datasSize = 0; + + /** + * Map. + * + * @var mixed + */ + private $map; + + /** + * Map Type. + * + * @var int + */ + private $mapType = 0; + + /** + * Number of characters in the stream. + * + * @var int + */ + private $charCount = 0; + + /** + * Position in the stream. + * + * @var int + */ + private $currentPos = 0; + + /** + * Constructor. + * + * @param string $charset + */ + public function __construct(Swift_CharacterReaderFactory $factory, $charset) + { + $this->setCharacterReaderFactory($factory); + $this->setCharacterSet($charset); + } + + /* -- Changing parameters of the stream -- */ + + /** + * Set the character set used in this CharacterStream. + * + * @param string $charset + */ + public function setCharacterSet($charset) + { + $this->charset = $charset; + $this->charReader = null; + $this->mapType = 0; + } + + /** + * Set the CharacterReaderFactory for multi charset support. + */ + public function setCharacterReaderFactory(Swift_CharacterReaderFactory $factory) + { + $this->charReaderFactory = $factory; + } + + /** + * @see Swift_CharacterStream::flushContents() + */ + public function flushContents() + { + $this->datas = null; + $this->map = null; + $this->charCount = 0; + $this->currentPos = 0; + $this->datasSize = 0; + } + + /** + * @see Swift_CharacterStream::importByteStream() + */ + public function importByteStream(Swift_OutputByteStream $os) + { + $this->flushContents(); + $blocks = 512; + $os->setReadPointer(0); + while (false !== ($read = $os->read($blocks))) { + $this->write($read); + } + } + + /** + * @see Swift_CharacterStream::importString() + * + * @param string $string + */ + public function importString($string) + { + $this->flushContents(); + $this->write($string); + } + + /** + * @see Swift_CharacterStream::read() + * + * @param int $length + * + * @return string + */ + public function read($length) + { + if ($this->currentPos >= $this->charCount) { + return false; + } + $ret = false; + $length = ($this->currentPos + $length > $this->charCount) ? $this->charCount - $this->currentPos : $length; + switch ($this->mapType) { + case Swift_CharacterReader::MAP_TYPE_FIXED_LEN: + $len = $length * $this->map; + $ret = substr($this->datas, + $this->currentPos * $this->map, + $len); + $this->currentPos += $length; + break; + + case Swift_CharacterReader::MAP_TYPE_INVALID: + $ret = ''; + for (; $this->currentPos < $length; ++$this->currentPos) { + if (isset($this->map[$this->currentPos])) { + $ret .= '?'; + } else { + $ret .= $this->datas[$this->currentPos]; + } + } + break; + + case Swift_CharacterReader::MAP_TYPE_POSITIONS: + $end = $this->currentPos + $length; + $end = $end > $this->charCount ? $this->charCount : $end; + $ret = ''; + $start = 0; + if ($this->currentPos > 0) { + $start = $this->map['p'][$this->currentPos - 1]; + } + $to = $start; + for (; $this->currentPos < $end; ++$this->currentPos) { + if (isset($this->map['i'][$this->currentPos])) { + $ret .= substr($this->datas, $start, $to - $start).'?'; + $start = $this->map['p'][$this->currentPos]; + } else { + $to = $this->map['p'][$this->currentPos]; + } + } + $ret .= substr($this->datas, $start, $to - $start); + break; + } + + return $ret; + } + + /** + * @see Swift_CharacterStream::readBytes() + * + * @param int $length + * + * @return int[] + */ + public function readBytes($length) + { + $read = $this->read($length); + if (false !== $read) { + $ret = array_map('ord', str_split($read, 1)); + + return $ret; + } + + return false; + } + + /** + * @see Swift_CharacterStream::setPointer() + * + * @param int $charOffset + */ + public function setPointer($charOffset) + { + if ($this->charCount < $charOffset) { + $charOffset = $this->charCount; + } + $this->currentPos = $charOffset; + } + + /** + * @see Swift_CharacterStream::write() + * + * @param string $chars + */ + public function write($chars) + { + if (!isset($this->charReader)) { + $this->charReader = $this->charReaderFactory->getReaderFor( + $this->charset); + $this->map = []; + $this->mapType = $this->charReader->getMapType(); + } + $ignored = ''; + $this->datas .= $chars; + $this->charCount += $this->charReader->getCharPositions(substr($this->datas, $this->datasSize), $this->datasSize, $this->map, $ignored); + if (false !== $ignored) { + $this->datasSize = \strlen($this->datas) - \strlen($ignored); + } else { + $this->datasSize = \strlen($this->datas); + } + } +} diff --git a/user/plugins/email/vendor/swiftmailer/swiftmailer/lib/classes/Swift/ConfigurableSpool.php b/user/plugins/email/vendor/swiftmailer/swiftmailer/lib/classes/Swift/ConfigurableSpool.php new file mode 100644 index 0000000..a711bac --- /dev/null +++ b/user/plugins/email/vendor/swiftmailer/swiftmailer/lib/classes/Swift/ConfigurableSpool.php @@ -0,0 +1,63 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +/** + * Base class for Spools (implements time and message limits). + * + * @author Fabien Potencier + */ +abstract class Swift_ConfigurableSpool implements Swift_Spool +{ + /** The maximum number of messages to send per flush */ + private $message_limit; + + /** The time limit per flush */ + private $time_limit; + + /** + * Sets the maximum number of messages to send per flush. + * + * @param int $limit + */ + public function setMessageLimit($limit) + { + $this->message_limit = (int) $limit; + } + + /** + * Gets the maximum number of messages to send per flush. + * + * @return int The limit + */ + public function getMessageLimit() + { + return $this->message_limit; + } + + /** + * Sets the time limit (in seconds) per flush. + * + * @param int $limit The limit + */ + public function setTimeLimit($limit) + { + $this->time_limit = (int) $limit; + } + + /** + * Gets the time limit (in seconds) per flush. + * + * @return int The limit + */ + public function getTimeLimit() + { + return $this->time_limit; + } +} diff --git a/user/plugins/email/vendor/swiftmailer/swiftmailer/lib/classes/Swift/DependencyContainer.php b/user/plugins/email/vendor/swiftmailer/swiftmailer/lib/classes/Swift/DependencyContainer.php new file mode 100644 index 0000000..3cc885e --- /dev/null +++ b/user/plugins/email/vendor/swiftmailer/swiftmailer/lib/classes/Swift/DependencyContainer.php @@ -0,0 +1,387 @@ +store); + } + + /** + * Test if an item is registered in this container with the given name. + * + * @see register() + * + * @param string $itemName + * + * @return bool + */ + public function has($itemName) + { + return \array_key_exists($itemName, $this->store) + && isset($this->store[$itemName]['lookupType']); + } + + /** + * Lookup the item with the given $itemName. + * + * @see register() + * + * @param string $itemName + * + * @return mixed + * + * @throws Swift_DependencyException If the dependency is not found + */ + public function lookup($itemName) + { + if (!$this->has($itemName)) { + throw new Swift_DependencyException('Cannot lookup dependency "'.$itemName.'" since it is not registered.'); + } + + switch ($this->store[$itemName]['lookupType']) { + case self::TYPE_ALIAS: + return $this->createAlias($itemName); + case self::TYPE_VALUE: + return $this->getValue($itemName); + case self::TYPE_INSTANCE: + return $this->createNewInstance($itemName); + case self::TYPE_SHARED: + return $this->createSharedInstance($itemName); + case self::TYPE_ARRAY: + return $this->createDependenciesFor($itemName); + } + } + + /** + * Create an array of arguments passed to the constructor of $itemName. + * + * @param string $itemName + * + * @return array + */ + public function createDependenciesFor($itemName) + { + $args = []; + if (isset($this->store[$itemName]['args'])) { + $args = $this->resolveArgs($this->store[$itemName]['args']); + } + + return $args; + } + + /** + * Register a new dependency with $itemName. + * + * This method returns the current DependencyContainer instance because it + * requires the use of the fluid interface to set the specific details for the + * dependency. + * + * @see asNewInstanceOf(), asSharedInstanceOf(), asValue() + * + * @param string $itemName + * + * @return $this + */ + public function register($itemName) + { + $this->store[$itemName] = []; + $this->endPoint = &$this->store[$itemName]; + + return $this; + } + + /** + * Specify the previously registered item as a literal value. + * + * {@link register()} must be called before this will work. + * + * @param mixed $value + * + * @return $this + */ + public function asValue($value) + { + $endPoint = &$this->getEndPoint(); + $endPoint['lookupType'] = self::TYPE_VALUE; + $endPoint['value'] = $value; + + return $this; + } + + /** + * Specify the previously registered item as an alias of another item. + * + * @param string $lookup + * + * @return $this + */ + public function asAliasOf($lookup) + { + $endPoint = &$this->getEndPoint(); + $endPoint['lookupType'] = self::TYPE_ALIAS; + $endPoint['ref'] = $lookup; + + return $this; + } + + /** + * Specify the previously registered item as a new instance of $className. + * + * {@link register()} must be called before this will work. + * Any arguments can be set with {@link withDependencies()}, + * {@link addConstructorValue()} or {@link addConstructorLookup()}. + * + * @see withDependencies(), addConstructorValue(), addConstructorLookup() + * + * @param string $className + * + * @return $this + */ + public function asNewInstanceOf($className) + { + $endPoint = &$this->getEndPoint(); + $endPoint['lookupType'] = self::TYPE_INSTANCE; + $endPoint['className'] = $className; + + return $this; + } + + /** + * Specify the previously registered item as a shared instance of $className. + * + * {@link register()} must be called before this will work. + * + * @param string $className + * + * @return $this + */ + public function asSharedInstanceOf($className) + { + $endPoint = &$this->getEndPoint(); + $endPoint['lookupType'] = self::TYPE_SHARED; + $endPoint['className'] = $className; + + return $this; + } + + /** + * Specify the previously registered item as array of dependencies. + * + * {@link register()} must be called before this will work. + * + * @return $this + */ + public function asArray() + { + $endPoint = &$this->getEndPoint(); + $endPoint['lookupType'] = self::TYPE_ARRAY; + + return $this; + } + + /** + * Specify a list of injected dependencies for the previously registered item. + * + * This method takes an array of lookup names. + * + * @see addConstructorValue(), addConstructorLookup() + * + * @return $this + */ + public function withDependencies(array $lookups) + { + $endPoint = &$this->getEndPoint(); + $endPoint['args'] = []; + foreach ($lookups as $lookup) { + $this->addConstructorLookup($lookup); + } + + return $this; + } + + /** + * Specify a literal (non looked up) value for the constructor of the + * previously registered item. + * + * @see withDependencies(), addConstructorLookup() + * + * @param mixed $value + * + * @return $this + */ + public function addConstructorValue($value) + { + $endPoint = &$this->getEndPoint(); + if (!isset($endPoint['args'])) { + $endPoint['args'] = []; + } + $endPoint['args'][] = ['type' => 'value', 'item' => $value]; + + return $this; + } + + /** + * Specify a dependency lookup for the constructor of the previously + * registered item. + * + * @see withDependencies(), addConstructorValue() + * + * @param string $lookup + * + * @return $this + */ + public function addConstructorLookup($lookup) + { + $endPoint = &$this->getEndPoint(); + if (!isset($this->endPoint['args'])) { + $endPoint['args'] = []; + } + $endPoint['args'][] = ['type' => 'lookup', 'item' => $lookup]; + + return $this; + } + + /** Get the literal value with $itemName */ + private function getValue($itemName) + { + return $this->store[$itemName]['value']; + } + + /** Resolve an alias to another item */ + private function createAlias($itemName) + { + return $this->lookup($this->store[$itemName]['ref']); + } + + /** Create a fresh instance of $itemName */ + private function createNewInstance($itemName) + { + $reflector = new ReflectionClass($this->store[$itemName]['className']); + if ($reflector->getConstructor()) { + return $reflector->newInstanceArgs( + $this->createDependenciesFor($itemName) + ); + } + + return $reflector->newInstance(); + } + + /** Create and register a shared instance of $itemName */ + private function createSharedInstance($itemName) + { + if (!isset($this->store[$itemName]['instance'])) { + $this->store[$itemName]['instance'] = $this->createNewInstance($itemName); + } + + return $this->store[$itemName]['instance']; + } + + /** Get the current endpoint in the store */ + private function &getEndPoint() + { + if (!isset($this->endPoint)) { + throw new BadMethodCallException('Component must first be registered by calling register()'); + } + + return $this->endPoint; + } + + /** Get an argument list with dependencies resolved */ + private function resolveArgs(array $args) + { + $resolved = []; + foreach ($args as $argDefinition) { + switch ($argDefinition['type']) { + case 'lookup': + $resolved[] = $this->lookupRecursive($argDefinition['item']); + break; + case 'value': + $resolved[] = $argDefinition['item']; + break; + } + } + + return $resolved; + } + + /** Resolve a single dependency with an collections */ + private function lookupRecursive($item) + { + if (\is_array($item)) { + $collection = []; + foreach ($item as $k => $v) { + $collection[$k] = $this->lookupRecursive($v); + } + + return $collection; + } + + return $this->lookup($item); + } +} diff --git a/user/plugins/email/vendor/swiftmailer/swiftmailer/lib/classes/Swift/DependencyException.php b/user/plugins/email/vendor/swiftmailer/swiftmailer/lib/classes/Swift/DependencyException.php new file mode 100644 index 0000000..799d38d --- /dev/null +++ b/user/plugins/email/vendor/swiftmailer/swiftmailer/lib/classes/Swift/DependencyException.php @@ -0,0 +1,27 @@ +createDependenciesFor('mime.embeddedfile') + ); + + $this->setBody($data); + $this->setFilename($filename); + if ($contentType) { + $this->setContentType($contentType); + } + } + + /** + * Create a new EmbeddedFile from a filesystem path. + * + * @param string $path + * + * @return Swift_Mime_EmbeddedFile + */ + public static function fromPath($path) + { + return (new self())->setFile(new Swift_ByteStream_FileByteStream($path)); + } +} diff --git a/user/plugins/email/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Encoder.php b/user/plugins/email/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Encoder.php new file mode 100644 index 0000000..2073abc --- /dev/null +++ b/user/plugins/email/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Encoder.php @@ -0,0 +1,28 @@ += $maxLineLength || 76 < $maxLineLength) { + $maxLineLength = 76; + } + + $encodedString = base64_encode($string ?? ''); + $firstLine = ''; + + if (0 != $firstLineOffset) { + $firstLine = substr( + $encodedString, 0, $maxLineLength - $firstLineOffset + )."\r\n"; + $encodedString = substr( + $encodedString, $maxLineLength - $firstLineOffset + ); + } + + return $firstLine.trim(chunk_split($encodedString, $maxLineLength, "\r\n")); + } + + /** + * Does nothing. + */ + public function charsetChanged($charset) + { + } +} diff --git a/user/plugins/email/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Encoder/QpEncoder.php b/user/plugins/email/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Encoder/QpEncoder.php new file mode 100644 index 0000000..f078d6d --- /dev/null +++ b/user/plugins/email/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Encoder/QpEncoder.php @@ -0,0 +1,300 @@ + '=00', 1 => '=01', 2 => '=02', 3 => '=03', 4 => '=04', + 5 => '=05', 6 => '=06', 7 => '=07', 8 => '=08', 9 => '=09', + 10 => '=0A', 11 => '=0B', 12 => '=0C', 13 => '=0D', 14 => '=0E', + 15 => '=0F', 16 => '=10', 17 => '=11', 18 => '=12', 19 => '=13', + 20 => '=14', 21 => '=15', 22 => '=16', 23 => '=17', 24 => '=18', + 25 => '=19', 26 => '=1A', 27 => '=1B', 28 => '=1C', 29 => '=1D', + 30 => '=1E', 31 => '=1F', 32 => '=20', 33 => '=21', 34 => '=22', + 35 => '=23', 36 => '=24', 37 => '=25', 38 => '=26', 39 => '=27', + 40 => '=28', 41 => '=29', 42 => '=2A', 43 => '=2B', 44 => '=2C', + 45 => '=2D', 46 => '=2E', 47 => '=2F', 48 => '=30', 49 => '=31', + 50 => '=32', 51 => '=33', 52 => '=34', 53 => '=35', 54 => '=36', + 55 => '=37', 56 => '=38', 57 => '=39', 58 => '=3A', 59 => '=3B', + 60 => '=3C', 61 => '=3D', 62 => '=3E', 63 => '=3F', 64 => '=40', + 65 => '=41', 66 => '=42', 67 => '=43', 68 => '=44', 69 => '=45', + 70 => '=46', 71 => '=47', 72 => '=48', 73 => '=49', 74 => '=4A', + 75 => '=4B', 76 => '=4C', 77 => '=4D', 78 => '=4E', 79 => '=4F', + 80 => '=50', 81 => '=51', 82 => '=52', 83 => '=53', 84 => '=54', + 85 => '=55', 86 => '=56', 87 => '=57', 88 => '=58', 89 => '=59', + 90 => '=5A', 91 => '=5B', 92 => '=5C', 93 => '=5D', 94 => '=5E', + 95 => '=5F', 96 => '=60', 97 => '=61', 98 => '=62', 99 => '=63', + 100 => '=64', 101 => '=65', 102 => '=66', 103 => '=67', 104 => '=68', + 105 => '=69', 106 => '=6A', 107 => '=6B', 108 => '=6C', 109 => '=6D', + 110 => '=6E', 111 => '=6F', 112 => '=70', 113 => '=71', 114 => '=72', + 115 => '=73', 116 => '=74', 117 => '=75', 118 => '=76', 119 => '=77', + 120 => '=78', 121 => '=79', 122 => '=7A', 123 => '=7B', 124 => '=7C', + 125 => '=7D', 126 => '=7E', 127 => '=7F', 128 => '=80', 129 => '=81', + 130 => '=82', 131 => '=83', 132 => '=84', 133 => '=85', 134 => '=86', + 135 => '=87', 136 => '=88', 137 => '=89', 138 => '=8A', 139 => '=8B', + 140 => '=8C', 141 => '=8D', 142 => '=8E', 143 => '=8F', 144 => '=90', + 145 => '=91', 146 => '=92', 147 => '=93', 148 => '=94', 149 => '=95', + 150 => '=96', 151 => '=97', 152 => '=98', 153 => '=99', 154 => '=9A', + 155 => '=9B', 156 => '=9C', 157 => '=9D', 158 => '=9E', 159 => '=9F', + 160 => '=A0', 161 => '=A1', 162 => '=A2', 163 => '=A3', 164 => '=A4', + 165 => '=A5', 166 => '=A6', 167 => '=A7', 168 => '=A8', 169 => '=A9', + 170 => '=AA', 171 => '=AB', 172 => '=AC', 173 => '=AD', 174 => '=AE', + 175 => '=AF', 176 => '=B0', 177 => '=B1', 178 => '=B2', 179 => '=B3', + 180 => '=B4', 181 => '=B5', 182 => '=B6', 183 => '=B7', 184 => '=B8', + 185 => '=B9', 186 => '=BA', 187 => '=BB', 188 => '=BC', 189 => '=BD', + 190 => '=BE', 191 => '=BF', 192 => '=C0', 193 => '=C1', 194 => '=C2', + 195 => '=C3', 196 => '=C4', 197 => '=C5', 198 => '=C6', 199 => '=C7', + 200 => '=C8', 201 => '=C9', 202 => '=CA', 203 => '=CB', 204 => '=CC', + 205 => '=CD', 206 => '=CE', 207 => '=CF', 208 => '=D0', 209 => '=D1', + 210 => '=D2', 211 => '=D3', 212 => '=D4', 213 => '=D5', 214 => '=D6', + 215 => '=D7', 216 => '=D8', 217 => '=D9', 218 => '=DA', 219 => '=DB', + 220 => '=DC', 221 => '=DD', 222 => '=DE', 223 => '=DF', 224 => '=E0', + 225 => '=E1', 226 => '=E2', 227 => '=E3', 228 => '=E4', 229 => '=E5', + 230 => '=E6', 231 => '=E7', 232 => '=E8', 233 => '=E9', 234 => '=EA', + 235 => '=EB', 236 => '=EC', 237 => '=ED', 238 => '=EE', 239 => '=EF', + 240 => '=F0', 241 => '=F1', 242 => '=F2', 243 => '=F3', 244 => '=F4', + 245 => '=F5', 246 => '=F6', 247 => '=F7', 248 => '=F8', 249 => '=F9', + 250 => '=FA', 251 => '=FB', 252 => '=FC', 253 => '=FD', 254 => '=FE', + 255 => '=FF', + ]; + + protected static $safeMapShare = []; + + /** + * A map of non-encoded ascii characters. + * + * @var string[] + */ + protected $safeMap = []; + + /** + * Creates a new QpEncoder for the given CharacterStream. + * + * @param Swift_CharacterStream $charStream to use for reading characters + * @param Swift_StreamFilter $filter if input should be canonicalized + */ + public function __construct(Swift_CharacterStream $charStream, Swift_StreamFilter $filter = null) + { + $this->charStream = $charStream; + if (!isset(self::$safeMapShare[$this->getSafeMapShareId()])) { + $this->initSafeMap(); + self::$safeMapShare[$this->getSafeMapShareId()] = $this->safeMap; + } else { + $this->safeMap = self::$safeMapShare[$this->getSafeMapShareId()]; + } + $this->filter = $filter; + } + + public function __sleep() + { + return ['charStream', 'filter']; + } + + public function __wakeup() + { + if (!isset(self::$safeMapShare[$this->getSafeMapShareId()])) { + $this->initSafeMap(); + self::$safeMapShare[$this->getSafeMapShareId()] = $this->safeMap; + } else { + $this->safeMap = self::$safeMapShare[$this->getSafeMapShareId()]; + } + } + + protected function getSafeMapShareId() + { + return static::class; + } + + protected function initSafeMap() + { + foreach (array_merge( + [0x09, 0x20], range(0x21, 0x3C), range(0x3E, 0x7E)) as $byte) { + $this->safeMap[$byte] = \chr($byte); + } + } + + /** + * Takes an unencoded string and produces a QP encoded string from it. + * + * QP encoded strings have a maximum line length of 76 characters. + * If the first line needs to be shorter, indicate the difference with + * $firstLineOffset. + * + * @param string $string to encode + * @param int $firstLineOffset optional + * @param int $maxLineLength optional 0 indicates the default of 76 chars + * + * @return string + */ + public function encodeString($string, $firstLineOffset = 0, $maxLineLength = 0) + { + if ($maxLineLength > 76 || $maxLineLength <= 0) { + $maxLineLength = 76; + } + + $thisLineLength = $maxLineLength - $firstLineOffset; + + $lines = []; + $lNo = 0; + $lines[$lNo] = ''; + $currentLine = &$lines[$lNo++]; + $size = $lineLen = 0; + + $this->charStream->flushContents(); + $this->charStream->importString($string); + + // Fetching more than 4 chars at one is slower, as is fetching fewer bytes + // Conveniently 4 chars is the UTF-8 safe number since UTF-8 has up to 6 + // bytes per char and (6 * 4 * 3 = 72 chars per line) * =NN is 3 bytes + while (false !== $bytes = $this->nextSequence()) { + // If we're filtering the input + if (isset($this->filter)) { + // If we can't filter because we need more bytes + while ($this->filter->shouldBuffer($bytes)) { + // Then collect bytes into the buffer + if (false === $moreBytes = $this->nextSequence(1)) { + break; + } + + foreach ($moreBytes as $b) { + $bytes[] = $b; + } + } + // And filter them + $bytes = $this->filter->filter($bytes); + } + + $enc = $this->encodeByteSequence($bytes, $size); + + $i = strpos($enc, '=0D=0A'); + $newLineLength = $lineLen + (false === $i ? $size : $i); + + if ($currentLine && $newLineLength >= $thisLineLength) { + $lines[$lNo] = ''; + $currentLine = &$lines[$lNo++]; + $thisLineLength = $maxLineLength; + $lineLen = 0; + } + + $currentLine .= $enc; + + if (false === $i) { + $lineLen += $size; + } else { + // 6 is the length of '=0D=0A'. + $lineLen = $size - strrpos($enc, '=0D=0A') - 6; + } + } + + return $this->standardize(implode("=\r\n", $lines)); + } + + /** + * Updates the charset used. + * + * @param string $charset + */ + public function charsetChanged($charset) + { + $this->charStream->setCharacterSet($charset); + } + + /** + * Encode the given byte array into a verbatim QP form. + * + * @param int[] $bytes + * @param int $size + * + * @return string + */ + protected function encodeByteSequence(array $bytes, &$size) + { + $ret = ''; + $size = 0; + foreach ($bytes as $b) { + if (isset($this->safeMap[$b])) { + $ret .= $this->safeMap[$b]; + ++$size; + } else { + $ret .= self::$qpMap[$b]; + $size += 3; + } + } + + return $ret; + } + + /** + * Get the next sequence of bytes to read from the char stream. + * + * @param int $size number of bytes to read + * + * @return int[] + */ + protected function nextSequence($size = 4) + { + return $this->charStream->readBytes($size); + } + + /** + * Make sure CRLF is correct and HT/SPACE are in valid places. + * + * @param string $string + * + * @return string + */ + protected function standardize($string) + { + $string = str_replace(["\t=0D=0A", ' =0D=0A', '=0D=0A'], + ["=09\r\n", "=20\r\n", "\r\n"], $string + ); + switch ($end = \ord(substr($string, -1))) { + case 0x09: + case 0x20: + $string = substr_replace($string, self::$qpMap[$end], -1); + } + + return $string; + } + + /** + * Make a deep copy of object. + */ + public function __clone() + { + $this->charStream = clone $this->charStream; + } +} diff --git a/user/plugins/email/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Encoder/Rfc2231Encoder.php b/user/plugins/email/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Encoder/Rfc2231Encoder.php new file mode 100644 index 0000000..7eac368 --- /dev/null +++ b/user/plugins/email/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Encoder/Rfc2231Encoder.php @@ -0,0 +1,90 @@ +charStream = $charStream; + } + + /** + * Takes an unencoded string and produces a string encoded according to + * RFC 2231 from it. + * + * @param string $string + * @param int $firstLineOffset + * @param int $maxLineLength optional, 0 indicates the default of 75 bytes + * + * @return string + */ + public function encodeString($string, $firstLineOffset = 0, $maxLineLength = 0) + { + $lines = []; + $lineCount = 0; + $lines[] = ''; + $currentLine = &$lines[$lineCount++]; + + if (0 >= $maxLineLength) { + $maxLineLength = 75; + } + + $this->charStream->flushContents(); + $this->charStream->importString($string); + + $thisLineLength = $maxLineLength - $firstLineOffset; + + while (false !== $char = $this->charStream->read(4)) { + $encodedChar = rawurlencode($char); + if (0 != \strlen($currentLine) + && \strlen($currentLine.$encodedChar) > $thisLineLength) { + $lines[] = ''; + $currentLine = &$lines[$lineCount++]; + $thisLineLength = $maxLineLength; + } + $currentLine .= $encodedChar; + } + + return implode("\r\n", $lines); + } + + /** + * Updates the charset used. + * + * @param string $charset + */ + public function charsetChanged($charset) + { + $this->charStream->setCharacterSet($charset); + } + + /** + * Make a deep copy of object. + */ + public function __clone() + { + $this->charStream = clone $this->charStream; + } +} diff --git a/user/plugins/email/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Events/CommandEvent.php b/user/plugins/email/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Events/CommandEvent.php new file mode 100644 index 0000000..18994c1 --- /dev/null +++ b/user/plugins/email/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Events/CommandEvent.php @@ -0,0 +1,64 @@ +command = $command; + $this->successCodes = $successCodes; + } + + /** + * Get the command which was sent to the server. + * + * @return string + */ + public function getCommand() + { + return $this->command; + } + + /** + * Get the numeric response codes which indicate success for this command. + * + * @return int[] + */ + public function getSuccessCodes() + { + return $this->successCodes; + } +} diff --git a/user/plugins/email/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Events/CommandListener.php b/user/plugins/email/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Events/CommandListener.php new file mode 100644 index 0000000..b158eab --- /dev/null +++ b/user/plugins/email/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Events/CommandListener.php @@ -0,0 +1,22 @@ +source = $source; + } + + /** + * Get the source object of this event. + * + * @return object + */ + public function getSource() + { + return $this->source; + } + + /** + * Prevent this Event from bubbling any further up the stack. + */ + public function cancelBubble($cancel = true) + { + $this->bubbleCancelled = $cancel; + } + + /** + * Returns true if this Event will not bubble any further up the stack. + * + * @return bool + */ + public function bubbleCancelled() + { + return $this->bubbleCancelled; + } +} diff --git a/user/plugins/email/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Events/ResponseEvent.php b/user/plugins/email/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Events/ResponseEvent.php new file mode 100644 index 0000000..ff7c371 --- /dev/null +++ b/user/plugins/email/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Events/ResponseEvent.php @@ -0,0 +1,64 @@ +response = $response; + $this->valid = $valid; + } + + /** + * Get the response which was received from the server. + * + * @return string + */ + public function getResponse() + { + return $this->response; + } + + /** + * Get the success status of this Event. + * + * @return bool + */ + public function isValid() + { + return $this->valid; + } +} diff --git a/user/plugins/email/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Events/ResponseListener.php b/user/plugins/email/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Events/ResponseListener.php new file mode 100644 index 0000000..85115a3 --- /dev/null +++ b/user/plugins/email/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Events/ResponseListener.php @@ -0,0 +1,22 @@ +message = $message; + $this->result = self::RESULT_PENDING; + } + + /** + * Get the Transport used to send the Message. + * + * @return Swift_Transport + */ + public function getTransport() + { + return $this->getSource(); + } + + /** + * Get the Message being sent. + * + * @return Swift_Mime_SimpleMessage + */ + public function getMessage() + { + return $this->message; + } + + /** + * Set the array of addresses that failed in sending. + * + * @param array $recipients + */ + public function setFailedRecipients($recipients) + { + $this->failedRecipients = $recipients; + } + + /** + * Get an recipient addresses which were not accepted for delivery. + * + * @return string[] + */ + public function getFailedRecipients() + { + return $this->failedRecipients; + } + + /** + * Set the result of sending. + * + * @param int $result + */ + public function setResult($result) + { + $this->result = $result; + } + + /** + * Get the result of this Event. + * + * The return value is a bitmask from + * {@see RESULT_PENDING, RESULT_SUCCESS, RESULT_TENTATIVE, RESULT_FAILED} + * + * @return int + */ + public function getResult() + { + return $this->result; + } +} diff --git a/user/plugins/email/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Events/SendListener.php b/user/plugins/email/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Events/SendListener.php new file mode 100644 index 0000000..f7bf55e --- /dev/null +++ b/user/plugins/email/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Events/SendListener.php @@ -0,0 +1,27 @@ +eventMap = [ + 'Swift_Events_CommandEvent' => 'Swift_Events_CommandListener', + 'Swift_Events_ResponseEvent' => 'Swift_Events_ResponseListener', + 'Swift_Events_SendEvent' => 'Swift_Events_SendListener', + 'Swift_Events_TransportChangeEvent' => 'Swift_Events_TransportChangeListener', + 'Swift_Events_TransportExceptionEvent' => 'Swift_Events_TransportExceptionListener', + ]; + } + + /** + * Create a new SendEvent for $source and $message. + * + * @return Swift_Events_SendEvent + */ + public function createSendEvent(Swift_Transport $source, Swift_Mime_SimpleMessage $message) + { + return new Swift_Events_SendEvent($source, $message); + } + + /** + * Create a new CommandEvent for $source and $command. + * + * @param string $command That will be executed + * @param array $successCodes That are needed + * + * @return Swift_Events_CommandEvent + */ + public function createCommandEvent(Swift_Transport $source, $command, $successCodes = []) + { + return new Swift_Events_CommandEvent($source, $command, $successCodes); + } + + /** + * Create a new ResponseEvent for $source and $response. + * + * @param string $response + * @param bool $valid If the response is valid + * + * @return Swift_Events_ResponseEvent + */ + public function createResponseEvent(Swift_Transport $source, $response, $valid) + { + return new Swift_Events_ResponseEvent($source, $response, $valid); + } + + /** + * Create a new TransportChangeEvent for $source. + * + * @return Swift_Events_TransportChangeEvent + */ + public function createTransportChangeEvent(Swift_Transport $source) + { + return new Swift_Events_TransportChangeEvent($source); + } + + /** + * Create a new TransportExceptionEvent for $source. + * + * @return Swift_Events_TransportExceptionEvent + */ + public function createTransportExceptionEvent(Swift_Transport $source, Swift_TransportException $ex) + { + return new Swift_Events_TransportExceptionEvent($source, $ex); + } + + /** + * Bind an event listener to this dispatcher. + */ + public function bindEventListener(Swift_Events_EventListener $listener) + { + foreach ($this->listeners as $l) { + // Already loaded + if ($l === $listener) { + return; + } + } + $this->listeners[] = $listener; + } + + /** + * Dispatch the given Event to all suitable listeners. + * + * @param string $target method + */ + public function dispatchEvent(Swift_Events_EventObject $evt, $target) + { + $bubbleQueue = $this->prepareBubbleQueue($evt); + $this->bubble($bubbleQueue, $evt, $target); + } + + /** Queue listeners on a stack ready for $evt to be bubbled up it */ + private function prepareBubbleQueue(Swift_Events_EventObject $evt) + { + $bubbleQueue = []; + $evtClass = \get_class($evt); + foreach ($this->listeners as $listener) { + if (\array_key_exists($evtClass, $this->eventMap) + && ($listener instanceof $this->eventMap[$evtClass])) { + $bubbleQueue[] = $listener; + } + } + + return $bubbleQueue; + } + + /** Bubble $evt up the stack calling $target() on each listener */ + private function bubble(array &$bubbleQueue, Swift_Events_EventObject $evt, $target) + { + if (!$evt->bubbleCancelled() && $listener = array_shift($bubbleQueue)) { + $listener->$target($evt); + $this->bubble($bubbleQueue, $evt, $target); + } + } +} diff --git a/user/plugins/email/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Events/TransportChangeEvent.php b/user/plugins/email/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Events/TransportChangeEvent.php new file mode 100644 index 0000000..a8972fd --- /dev/null +++ b/user/plugins/email/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Events/TransportChangeEvent.php @@ -0,0 +1,27 @@ +getSource(); + } +} diff --git a/user/plugins/email/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Events/TransportChangeListener.php b/user/plugins/email/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Events/TransportChangeListener.php new file mode 100644 index 0000000..4a7492b --- /dev/null +++ b/user/plugins/email/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Events/TransportChangeListener.php @@ -0,0 +1,37 @@ +exception = $ex; + } + + /** + * Get the TransportException thrown. + * + * @return Swift_TransportException + */ + public function getException() + { + return $this->exception; + } +} diff --git a/user/plugins/email/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Events/TransportExceptionListener.php b/user/plugins/email/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Events/TransportExceptionListener.php new file mode 100644 index 0000000..ad80eb0 --- /dev/null +++ b/user/plugins/email/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Events/TransportExceptionListener.php @@ -0,0 +1,22 @@ +createDependenciesFor('transport.failover') + ); + + $this->setTransports($transports); + } +} diff --git a/user/plugins/email/vendor/swiftmailer/swiftmailer/lib/classes/Swift/FileSpool.php b/user/plugins/email/vendor/swiftmailer/swiftmailer/lib/classes/Swift/FileSpool.php new file mode 100644 index 0000000..7af8471 --- /dev/null +++ b/user/plugins/email/vendor/swiftmailer/swiftmailer/lib/classes/Swift/FileSpool.php @@ -0,0 +1,208 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +/** + * Stores Messages on the filesystem. + * + * @author Fabien Potencier + * @author Xavier De Cock + */ +class Swift_FileSpool extends Swift_ConfigurableSpool +{ + /** The spool directory */ + private $path; + + /** + * File WriteRetry Limit. + * + * @var int + */ + private $retryLimit = 10; + + /** + * Create a new FileSpool. + * + * @param string $path + * + * @throws Swift_IoException + */ + public function __construct($path) + { + $this->path = $path; + + if (!file_exists($this->path)) { + if (!mkdir($this->path, 0777, true)) { + throw new Swift_IoException(sprintf('Unable to create path "%s".', $this->path)); + } + } + } + + /** + * Tests if this Spool mechanism has started. + * + * @return bool + */ + public function isStarted() + { + return true; + } + + /** + * Starts this Spool mechanism. + */ + public function start() + { + } + + /** + * Stops this Spool mechanism. + */ + public function stop() + { + } + + /** + * Allow to manage the enqueuing retry limit. + * + * Default, is ten and allows over 64^20 different fileNames + * + * @param int $limit + */ + public function setRetryLimit($limit) + { + $this->retryLimit = $limit; + } + + /** + * Queues a message. + * + * @param Swift_Mime_SimpleMessage $message The message to store + * + * @throws Swift_IoException + * + * @return bool + */ + public function queueMessage(Swift_Mime_SimpleMessage $message) + { + $ser = serialize($message); + $fileName = $this->path.'/'.$this->getRandomString(10); + for ($i = 0; $i < $this->retryLimit; ++$i) { + /* We try an exclusive creation of the file. This is an atomic operation, it avoid locking mechanism */ + $fp = @fopen($fileName.'.message', 'xb'); + if (false !== $fp) { + if (false === fwrite($fp, $ser)) { + return false; + } + + return fclose($fp); + } else { + /* The file already exists, we try a longer fileName */ + $fileName .= $this->getRandomString(1); + } + } + + throw new Swift_IoException(sprintf('Unable to create a file for enqueuing Message in "%s".', $this->path)); + } + + /** + * Execute a recovery if for any reason a process is sending for too long. + * + * @param int $timeout in second Defaults is for very slow smtp responses + */ + public function recover($timeout = 900) + { + foreach (new DirectoryIterator($this->path) as $file) { + $file = $file->getRealPath(); + + if ('.message.sending' == substr($file, -16)) { + $lockedtime = filectime($file); + if ((time() - $lockedtime) > $timeout) { + rename($file, substr($file, 0, -8)); + } + } + } + } + + /** + * Sends messages using the given transport instance. + * + * @param Swift_Transport $transport A transport instance + * @param string[] $failedRecipients An array of failures by-reference + * + * @return int The number of sent e-mail's + */ + public function flushQueue(Swift_Transport $transport, &$failedRecipients = null) + { + $directoryIterator = new DirectoryIterator($this->path); + + /* Start the transport only if there are queued files to send */ + if (!$transport->isStarted()) { + foreach ($directoryIterator as $file) { + if ('.message' == substr($file->getRealPath(), -8)) { + $transport->start(); + break; + } + } + } + + $failedRecipients = (array) $failedRecipients; + $count = 0; + $time = time(); + foreach ($directoryIterator as $file) { + $file = $file->getRealPath(); + + if ('.message' != substr($file, -8)) { + continue; + } + + /* We try a rename, it's an atomic operation, and avoid locking the file */ + if (rename($file, $file.'.sending')) { + $message = unserialize(file_get_contents($file.'.sending')); + + $count += $transport->send($message, $failedRecipients); + + unlink($file.'.sending'); + } else { + /* This message has just been catched by another process */ + continue; + } + + if ($this->getMessageLimit() && $count >= $this->getMessageLimit()) { + break; + } + + if ($this->getTimeLimit() && (time() - $time) >= $this->getTimeLimit()) { + break; + } + } + + return $count; + } + + /** + * Returns a random string needed to generate a fileName for the queue. + * + * @param int $count + * + * @return string + */ + protected function getRandomString($count) + { + // This string MUST stay FS safe, avoid special chars + $base = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789_-'; + $ret = ''; + $strlen = \strlen($base); + for ($i = 0; $i < $count; ++$i) { + $ret .= $base[random_int(0, $strlen - 1)]; + } + + return $ret; + } +} diff --git a/user/plugins/email/vendor/swiftmailer/swiftmailer/lib/classes/Swift/FileStream.php b/user/plugins/email/vendor/swiftmailer/swiftmailer/lib/classes/Swift/FileStream.php new file mode 100644 index 0000000..0b24db1 --- /dev/null +++ b/user/plugins/email/vendor/swiftmailer/swiftmailer/lib/classes/Swift/FileStream.php @@ -0,0 +1,24 @@ +setFile(new Swift_ByteStream_FileByteStream($path)); + } +} diff --git a/user/plugins/email/vendor/swiftmailer/swiftmailer/lib/classes/Swift/InputByteStream.php b/user/plugins/email/vendor/swiftmailer/swiftmailer/lib/classes/Swift/InputByteStream.php new file mode 100644 index 0000000..379a5a1 --- /dev/null +++ b/user/plugins/email/vendor/swiftmailer/swiftmailer/lib/classes/Swift/InputByteStream.php @@ -0,0 +1,75 @@ +stream = $stream; + } + + /** + * Set a string into the cache under $itemKey for the namespace $nsKey. + * + * @see MODE_WRITE, MODE_APPEND + * + * @param string $nsKey + * @param string $itemKey + * @param string $string + * @param int $mode + */ + public function setString($nsKey, $itemKey, $string, $mode) + { + $this->prepareCache($nsKey); + switch ($mode) { + case self::MODE_WRITE: + $this->contents[$nsKey][$itemKey] = $string; + break; + case self::MODE_APPEND: + if (!$this->hasKey($nsKey, $itemKey)) { + $this->contents[$nsKey][$itemKey] = ''; + } + $this->contents[$nsKey][$itemKey] .= $string; + break; + default: + throw new Swift_SwiftException('Invalid mode ['.$mode.'] used to set nsKey='.$nsKey.', itemKey='.$itemKey); + } + } + + /** + * Set a ByteStream into the cache under $itemKey for the namespace $nsKey. + * + * @see MODE_WRITE, MODE_APPEND + * + * @param string $nsKey + * @param string $itemKey + * @param int $mode + */ + public function importFromByteStream($nsKey, $itemKey, Swift_OutputByteStream $os, $mode) + { + $this->prepareCache($nsKey); + switch ($mode) { + case self::MODE_WRITE: + $this->clearKey($nsKey, $itemKey); + // no break + case self::MODE_APPEND: + if (!$this->hasKey($nsKey, $itemKey)) { + $this->contents[$nsKey][$itemKey] = ''; + } + while (false !== $bytes = $os->read(8192)) { + $this->contents[$nsKey][$itemKey] .= $bytes; + } + break; + default: + throw new Swift_SwiftException('Invalid mode ['.$mode.'] used to set nsKey='.$nsKey.', itemKey='.$itemKey); + } + } + + /** + * Provides a ByteStream which when written to, writes data to $itemKey. + * + * NOTE: The stream will always write in append mode. + * + * @param string $nsKey + * @param string $itemKey + * + * @return Swift_InputByteStream + */ + public function getInputByteStream($nsKey, $itemKey, Swift_InputByteStream $writeThrough = null) + { + $is = clone $this->stream; + $is->setKeyCache($this); + $is->setNsKey($nsKey); + $is->setItemKey($itemKey); + if (isset($writeThrough)) { + $is->setWriteThroughStream($writeThrough); + } + + return $is; + } + + /** + * Get data back out of the cache as a string. + * + * @param string $nsKey + * @param string $itemKey + * + * @return string + */ + public function getString($nsKey, $itemKey) + { + $this->prepareCache($nsKey); + if ($this->hasKey($nsKey, $itemKey)) { + return $this->contents[$nsKey][$itemKey]; + } + } + + /** + * Get data back out of the cache as a ByteStream. + * + * @param string $nsKey + * @param string $itemKey + * @param Swift_InputByteStream $is to write the data to + */ + public function exportToByteStream($nsKey, $itemKey, Swift_InputByteStream $is) + { + $this->prepareCache($nsKey); + $is->write($this->getString($nsKey, $itemKey)); + } + + /** + * Check if the given $itemKey exists in the namespace $nsKey. + * + * @param string $nsKey + * @param string $itemKey + * + * @return bool + */ + public function hasKey($nsKey, $itemKey) + { + $this->prepareCache($nsKey); + + return \array_key_exists($itemKey, $this->contents[$nsKey]); + } + + /** + * Clear data for $itemKey in the namespace $nsKey if it exists. + * + * @param string $nsKey + * @param string $itemKey + */ + public function clearKey($nsKey, $itemKey) + { + unset($this->contents[$nsKey][$itemKey]); + } + + /** + * Clear all data in the namespace $nsKey if it exists. + * + * @param string $nsKey + */ + public function clearAll($nsKey) + { + unset($this->contents[$nsKey]); + } + + /** + * Initialize the namespace of $nsKey if needed. + * + * @param string $nsKey + */ + private function prepareCache($nsKey) + { + if (!\array_key_exists($nsKey, $this->contents)) { + $this->contents[$nsKey] = []; + } + } +} diff --git a/user/plugins/email/vendor/swiftmailer/swiftmailer/lib/classes/Swift/KeyCache/DiskKeyCache.php b/user/plugins/email/vendor/swiftmailer/swiftmailer/lib/classes/Swift/KeyCache/DiskKeyCache.php new file mode 100644 index 0000000..33b6367 --- /dev/null +++ b/user/plugins/email/vendor/swiftmailer/swiftmailer/lib/classes/Swift/KeyCache/DiskKeyCache.php @@ -0,0 +1,294 @@ +stream = $stream; + $this->path = $path; + } + + /** + * Set a string into the cache under $itemKey for the namespace $nsKey. + * + * @see MODE_WRITE, MODE_APPEND + * + * @param string $nsKey + * @param string $itemKey + * @param string $string + * @param int $mode + * + * @throws Swift_IoException + */ + public function setString($nsKey, $itemKey, $string, $mode) + { + $this->prepareCache($nsKey); + switch ($mode) { + case self::MODE_WRITE: + $fp = $this->getHandle($nsKey, $itemKey, self::POSITION_START); + break; + case self::MODE_APPEND: + $fp = $this->getHandle($nsKey, $itemKey, self::POSITION_END); + break; + default: + throw new Swift_SwiftException('Invalid mode ['.$mode.'] used to set nsKey='.$nsKey.', itemKey='.$itemKey); + break; + } + fwrite($fp, $string); + $this->freeHandle($nsKey, $itemKey); + } + + /** + * Set a ByteStream into the cache under $itemKey for the namespace $nsKey. + * + * @see MODE_WRITE, MODE_APPEND + * + * @param string $nsKey + * @param string $itemKey + * @param int $mode + * + * @throws Swift_IoException + */ + public function importFromByteStream($nsKey, $itemKey, Swift_OutputByteStream $os, $mode) + { + $this->prepareCache($nsKey); + switch ($mode) { + case self::MODE_WRITE: + $fp = $this->getHandle($nsKey, $itemKey, self::POSITION_START); + break; + case self::MODE_APPEND: + $fp = $this->getHandle($nsKey, $itemKey, self::POSITION_END); + break; + default: + throw new Swift_SwiftException('Invalid mode ['.$mode.'] used to set nsKey='.$nsKey.', itemKey='.$itemKey); + break; + } + while (false !== $bytes = $os->read(8192)) { + fwrite($fp, $bytes); + } + $this->freeHandle($nsKey, $itemKey); + } + + /** + * Provides a ByteStream which when written to, writes data to $itemKey. + * + * NOTE: The stream will always write in append mode. + * + * @param string $nsKey + * @param string $itemKey + * + * @return Swift_InputByteStream + */ + public function getInputByteStream($nsKey, $itemKey, Swift_InputByteStream $writeThrough = null) + { + $is = clone $this->stream; + $is->setKeyCache($this); + $is->setNsKey($nsKey); + $is->setItemKey($itemKey); + if (isset($writeThrough)) { + $is->setWriteThroughStream($writeThrough); + } + + return $is; + } + + /** + * Get data back out of the cache as a string. + * + * @param string $nsKey + * @param string $itemKey + * + * @throws Swift_IoException + * + * @return string + */ + public function getString($nsKey, $itemKey) + { + $this->prepareCache($nsKey); + if ($this->hasKey($nsKey, $itemKey)) { + $fp = $this->getHandle($nsKey, $itemKey, self::POSITION_START); + $str = ''; + while (!feof($fp) && false !== $bytes = fread($fp, 8192)) { + $str .= $bytes; + } + $this->freeHandle($nsKey, $itemKey); + + return $str; + } + } + + /** + * Get data back out of the cache as a ByteStream. + * + * @param string $nsKey + * @param string $itemKey + * @param Swift_InputByteStream $is to write the data to + */ + public function exportToByteStream($nsKey, $itemKey, Swift_InputByteStream $is) + { + if ($this->hasKey($nsKey, $itemKey)) { + $fp = $this->getHandle($nsKey, $itemKey, self::POSITION_START); + while (!feof($fp) && false !== $bytes = fread($fp, 8192)) { + $is->write($bytes); + } + $this->freeHandle($nsKey, $itemKey); + } + } + + /** + * Check if the given $itemKey exists in the namespace $nsKey. + * + * @param string $nsKey + * @param string $itemKey + * + * @return bool + */ + public function hasKey($nsKey, $itemKey) + { + return is_file($this->path.'/'.$nsKey.'/'.$itemKey); + } + + /** + * Clear data for $itemKey in the namespace $nsKey if it exists. + * + * @param string $nsKey + * @param string $itemKey + */ + public function clearKey($nsKey, $itemKey) + { + if ($this->hasKey($nsKey, $itemKey)) { + $this->freeHandle($nsKey, $itemKey); + unlink($this->path.'/'.$nsKey.'/'.$itemKey); + } + } + + /** + * Clear all data in the namespace $nsKey if it exists. + * + * @param string $nsKey + */ + public function clearAll($nsKey) + { + if (\array_key_exists($nsKey, $this->keys)) { + foreach ($this->keys[$nsKey] as $itemKey => $null) { + $this->clearKey($nsKey, $itemKey); + } + if (is_dir($this->path.'/'.$nsKey)) { + rmdir($this->path.'/'.$nsKey); + } + unset($this->keys[$nsKey]); + } + } + + /** + * Initialize the namespace of $nsKey if needed. + * + * @param string $nsKey + */ + private function prepareCache($nsKey) + { + $cacheDir = $this->path.'/'.$nsKey; + if (!is_dir($cacheDir)) { + if (!mkdir($cacheDir)) { + throw new Swift_IoException('Failed to create cache directory '.$cacheDir); + } + $this->keys[$nsKey] = []; + } + } + + /** + * Get a file handle on the cache item. + * + * @param string $nsKey + * @param string $itemKey + * @param int $position + * + * @return resource + */ + private function getHandle($nsKey, $itemKey, $position) + { + if (!isset($this->keys[$nsKey][$itemKey])) { + $openMode = $this->hasKey($nsKey, $itemKey) ? 'r+b' : 'w+b'; + $fp = fopen($this->path.'/'.$nsKey.'/'.$itemKey, $openMode); + $this->keys[$nsKey][$itemKey] = $fp; + } + if (self::POSITION_START == $position) { + fseek($this->keys[$nsKey][$itemKey], 0, SEEK_SET); + } elseif (self::POSITION_END == $position) { + fseek($this->keys[$nsKey][$itemKey], 0, SEEK_END); + } + + return $this->keys[$nsKey][$itemKey]; + } + + private function freeHandle($nsKey, $itemKey) + { + $fp = $this->getHandle($nsKey, $itemKey, self::POSITION_CURRENT); + fclose($fp); + $this->keys[$nsKey][$itemKey] = null; + } + + /** + * Destructor. + */ + public function __destruct() + { + foreach ($this->keys as $nsKey => $null) { + $this->clearAll($nsKey); + } + } + + public function __wakeup() + { + $this->keys = []; + } +} diff --git a/user/plugins/email/vendor/swiftmailer/swiftmailer/lib/classes/Swift/KeyCache/KeyCacheInputStream.php b/user/plugins/email/vendor/swiftmailer/swiftmailer/lib/classes/Swift/KeyCache/KeyCacheInputStream.php new file mode 100644 index 0000000..be2dbba --- /dev/null +++ b/user/plugins/email/vendor/swiftmailer/swiftmailer/lib/classes/Swift/KeyCache/KeyCacheInputStream.php @@ -0,0 +1,47 @@ +keyCache = $keyCache; + } + + /** + * Specify a stream to write through for each write(). + */ + public function setWriteThroughStream(Swift_InputByteStream $is) + { + $this->writeThrough = $is; + } + + /** + * Writes $bytes to the end of the stream. + * + * @param string $bytes + * @param Swift_InputByteStream $is optional + */ + public function write($bytes, Swift_InputByteStream $is = null) + { + $this->keyCache->setString( + $this->nsKey, $this->itemKey, $bytes, Swift_KeyCache::MODE_APPEND + ); + if (isset($is)) { + $is->write($bytes); + } + if (isset($this->writeThrough)) { + $this->writeThrough->write($bytes); + } + } + + /** + * Not used. + */ + public function commit() + { + } + + /** + * Not used. + */ + public function bind(Swift_InputByteStream $is) + { + } + + /** + * Not used. + */ + public function unbind(Swift_InputByteStream $is) + { + } + + /** + * Flush the contents of the stream (empty it) and set the internal pointer + * to the beginning. + */ + public function flushBuffers() + { + $this->keyCache->clearKey($this->nsKey, $this->itemKey); + } + + /** + * Set the nsKey which will be written to. + * + * @param string $nsKey + */ + public function setNsKey($nsKey) + { + $this->nsKey = $nsKey; + } + + /** + * Set the itemKey which will be written to. + * + * @param string $itemKey + */ + public function setItemKey($itemKey) + { + $this->itemKey = $itemKey; + } + + /** + * Any implementation should be cloneable, allowing the clone to access a + * separate $nsKey and $itemKey. + */ + public function __clone() + { + $this->writeThrough = null; + } +} diff --git a/user/plugins/email/vendor/swiftmailer/swiftmailer/lib/classes/Swift/LoadBalancedTransport.php b/user/plugins/email/vendor/swiftmailer/swiftmailer/lib/classes/Swift/LoadBalancedTransport.php new file mode 100644 index 0000000..244b5f6 --- /dev/null +++ b/user/plugins/email/vendor/swiftmailer/swiftmailer/lib/classes/Swift/LoadBalancedTransport.php @@ -0,0 +1,33 @@ +createDependenciesFor('transport.loadbalanced') + ); + + $this->setTransports($transports); + } +} diff --git a/user/plugins/email/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Mailer.php b/user/plugins/email/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Mailer.php new file mode 100644 index 0000000..5763007 --- /dev/null +++ b/user/plugins/email/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Mailer.php @@ -0,0 +1,98 @@ +transport = $transport; + } + + /** + * Create a new class instance of one of the message services. + * + * For example 'mimepart' would create a 'message.mimepart' instance + * + * @param string $service + * + * @return object + */ + public function createMessage($service = 'message') + { + return Swift_DependencyContainer::getInstance() + ->lookup('message.'.$service); + } + + /** + * Send the given Message like it would be sent in a mail client. + * + * All recipients (with the exception of Bcc) will be able to see the other + * recipients this message was sent to. + * + * Recipient/sender data will be retrieved from the Message object. + * + * The return value is the number of recipients who were accepted for + * delivery. + * + * @param array $failedRecipients An array of failures by-reference + * + * @return int The number of successful recipients. Can be 0 which indicates failure + */ + public function send(Swift_Mime_SimpleMessage $message, &$failedRecipients = null) + { + $failedRecipients = (array) $failedRecipients; + + // FIXME: to be removed in 7.0 (as transport must now start itself on send) + if (!$this->transport->isStarted()) { + $this->transport->start(); + } + + $sent = 0; + + try { + $sent = $this->transport->send($message, $failedRecipients); + } catch (Swift_RfcComplianceException $e) { + foreach ($message->getTo() as $address => $name) { + $failedRecipients[] = $address; + } + } + + return $sent; + } + + /** + * Register a plugin using a known unique key (e.g. myPlugin). + */ + public function registerPlugin(Swift_Events_EventListener $plugin) + { + $this->transport->registerPlugin($plugin); + } + + /** + * The Transport used to send messages. + * + * @return Swift_Transport + */ + public function getTransport() + { + return $this->transport; + } +} diff --git a/user/plugins/email/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Mailer/ArrayRecipientIterator.php b/user/plugins/email/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Mailer/ArrayRecipientIterator.php new file mode 100644 index 0000000..19aa82a --- /dev/null +++ b/user/plugins/email/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Mailer/ArrayRecipientIterator.php @@ -0,0 +1,53 @@ +recipients = $recipients; + } + + /** + * Returns true only if there are more recipients to send to. + * + * @return bool + */ + public function hasNext() + { + return !empty($this->recipients); + } + + /** + * Returns an array where the keys are the addresses of recipients and the + * values are the names. e.g. ('foo@bar' => 'Foo') or ('foo@bar' => NULL). + * + * @return array + */ + public function nextRecipient() + { + return array_splice($this->recipients, 0, 1); + } +} diff --git a/user/plugins/email/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Mailer/RecipientIterator.php b/user/plugins/email/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Mailer/RecipientIterator.php new file mode 100644 index 0000000..650f3ec --- /dev/null +++ b/user/plugins/email/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Mailer/RecipientIterator.php @@ -0,0 +1,32 @@ + 'Foo') or ('foo@bar' => NULL). + * + * @return array + */ + public function nextRecipient(); +} diff --git a/user/plugins/email/vendor/swiftmailer/swiftmailer/lib/classes/Swift/MemorySpool.php b/user/plugins/email/vendor/swiftmailer/swiftmailer/lib/classes/Swift/MemorySpool.php new file mode 100644 index 0000000..e3b0894 --- /dev/null +++ b/user/plugins/email/vendor/swiftmailer/swiftmailer/lib/classes/Swift/MemorySpool.php @@ -0,0 +1,110 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +/** + * Stores Messages in memory. + * + * @author Fabien Potencier + */ +class Swift_MemorySpool implements Swift_Spool +{ + protected $messages = []; + private $flushRetries = 3; + + /** + * Tests if this Transport mechanism has started. + * + * @return bool + */ + public function isStarted() + { + return true; + } + + /** + * Starts this Transport mechanism. + */ + public function start() + { + } + + /** + * Stops this Transport mechanism. + */ + public function stop() + { + } + + /** + * @param int $retries + */ + public function setFlushRetries($retries) + { + $this->flushRetries = $retries; + } + + /** + * Stores a message in the queue. + * + * @param Swift_Mime_SimpleMessage $message The message to store + * + * @return bool Whether the operation has succeeded + */ + public function queueMessage(Swift_Mime_SimpleMessage $message) + { + //clone the message to make sure it is not changed while in the queue + $this->messages[] = clone $message; + + return true; + } + + /** + * Sends messages using the given transport instance. + * + * @param Swift_Transport $transport A transport instance + * @param string[] $failedRecipients An array of failures by-reference + * + * @return int The number of sent emails + */ + public function flushQueue(Swift_Transport $transport, &$failedRecipients = null) + { + if (!$this->messages) { + return 0; + } + + if (!$transport->isStarted()) { + $transport->start(); + } + + $count = 0; + $retries = $this->flushRetries; + while ($retries--) { + try { + while ($message = array_pop($this->messages)) { + $count += $transport->send($message, $failedRecipients); + } + } catch (Swift_TransportException $exception) { + if ($retries) { + // re-queue the message at the end of the queue to give a chance + // to the other messages to be sent, in case the failure was due to + // this message and not just the transport failing + array_unshift($this->messages, $message); + + // wait half a second before we try again + usleep(500000); + } else { + throw $exception; + } + } + } + + return $count; + } +} diff --git a/user/plugins/email/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Message.php b/user/plugins/email/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Message.php new file mode 100644 index 0000000..5c5834e --- /dev/null +++ b/user/plugins/email/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Message.php @@ -0,0 +1,279 @@ +createDependenciesFor('mime.message') + ); + + if (!isset($charset)) { + $charset = Swift_DependencyContainer::getInstance() + ->lookup('properties.charset'); + } + $this->setSubject($subject); + $this->setBody($body); + $this->setCharset($charset); + if ($contentType) { + $this->setContentType($contentType); + } + } + + /** + * Add a MimePart to this Message. + * + * @param string|Swift_OutputByteStream $body + * @param string $contentType + * @param string $charset + * + * @return $this + */ + public function addPart($body, $contentType = null, $charset = null) + { + return $this->attach((new Swift_MimePart($body, $contentType, $charset))->setEncoder($this->getEncoder())); + } + + /** + * Attach a new signature handler to the message. + * + * @return $this + */ + public function attachSigner(Swift_Signer $signer) + { + if ($signer instanceof Swift_Signers_HeaderSigner) { + $this->headerSigners[] = $signer; + } elseif ($signer instanceof Swift_Signers_BodySigner) { + $this->bodySigners[] = $signer; + } + + return $this; + } + + /** + * Detach a signature handler from a message. + * + * @return $this + */ + public function detachSigner(Swift_Signer $signer) + { + if ($signer instanceof Swift_Signers_HeaderSigner) { + foreach ($this->headerSigners as $k => $headerSigner) { + if ($headerSigner === $signer) { + unset($this->headerSigners[$k]); + + return $this; + } + } + } elseif ($signer instanceof Swift_Signers_BodySigner) { + foreach ($this->bodySigners as $k => $bodySigner) { + if ($bodySigner === $signer) { + unset($this->bodySigners[$k]); + + return $this; + } + } + } + + return $this; + } + + /** + * Clear all signature handlers attached to the message. + * + * @return $this + */ + public function clearSigners() + { + $this->headerSigners = []; + $this->bodySigners = []; + + return $this; + } + + /** + * Get this message as a complete string. + * + * @return string + */ + public function toString() + { + if (empty($this->headerSigners) && empty($this->bodySigners)) { + return parent::toString(); + } + + $this->saveMessage(); + + $this->doSign(); + + $string = parent::toString(); + + $this->restoreMessage(); + + return $string; + } + + /** + * Write this message to a {@link Swift_InputByteStream}. + */ + public function toByteStream(Swift_InputByteStream $is) + { + if (empty($this->headerSigners) && empty($this->bodySigners)) { + parent::toByteStream($is); + + return; + } + + $this->saveMessage(); + + $this->doSign(); + + parent::toByteStream($is); + + $this->restoreMessage(); + } + + public function __wakeup() + { + Swift_DependencyContainer::getInstance()->createDependenciesFor('mime.message'); + } + + /** + * loops through signers and apply the signatures. + */ + protected function doSign() + { + foreach ($this->bodySigners as $signer) { + $altered = $signer->getAlteredHeaders(); + $this->saveHeaders($altered); + $signer->signMessage($this); + } + + foreach ($this->headerSigners as $signer) { + $altered = $signer->getAlteredHeaders(); + $this->saveHeaders($altered); + $signer->reset(); + + $signer->setHeaders($this->getHeaders()); + + $signer->startBody(); + $this->bodyToByteStream($signer); + $signer->endBody(); + + $signer->addSignature($this->getHeaders()); + } + } + + /** + * save the message before any signature is applied. + */ + protected function saveMessage() + { + $this->savedMessage = ['headers' => []]; + $this->savedMessage['body'] = $this->getBody(); + $this->savedMessage['children'] = $this->getChildren(); + if (\count($this->savedMessage['children']) > 0 && '' != $this->getBody()) { + $this->setChildren(array_merge([$this->becomeMimePart()], $this->savedMessage['children'])); + $this->setBody(''); + } + } + + /** + * save the original headers. + */ + protected function saveHeaders(array $altered) + { + foreach ($altered as $head) { + $lc = strtolower($head ?? ''); + + if (!isset($this->savedMessage['headers'][$lc])) { + $this->savedMessage['headers'][$lc] = $this->getHeaders()->getAll($head); + } + } + } + + /** + * Remove or restore altered headers. + */ + protected function restoreHeaders() + { + foreach ($this->savedMessage['headers'] as $name => $savedValue) { + $headers = $this->getHeaders()->getAll($name); + + foreach ($headers as $key => $value) { + if (!isset($savedValue[$key])) { + $this->getHeaders()->remove($name, $key); + } + } + } + } + + /** + * Restore message body. + */ + protected function restoreMessage() + { + $this->setBody($this->savedMessage['body']); + $this->setChildren($this->savedMessage['children']); + + $this->restoreHeaders(); + $this->savedMessage = []; + } + + /** + * Clone Message Signers. + * + * @see Swift_Mime_SimpleMimeEntity::__clone() + */ + public function __clone() + { + parent::__clone(); + foreach ($this->bodySigners as $key => $bodySigner) { + $this->bodySigners[$key] = clone $bodySigner; + } + + foreach ($this->headerSigners as $key => $headerSigner) { + $this->headerSigners[$key] = clone $headerSigner; + } + } +} diff --git a/user/plugins/email/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Mime/Attachment.php b/user/plugins/email/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Mime/Attachment.php new file mode 100644 index 0000000..d994373 --- /dev/null +++ b/user/plugins/email/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Mime/Attachment.php @@ -0,0 +1,144 @@ +setDisposition('attachment'); + $this->setContentType('application/octet-stream'); + $this->mimeTypes = $mimeTypes; + } + + /** + * Get the nesting level used for this attachment. + * + * Always returns {@link LEVEL_MIXED}. + * + * @return int + */ + public function getNestingLevel() + { + return self::LEVEL_MIXED; + } + + /** + * Get the Content-Disposition of this attachment. + * + * By default attachments have a disposition of "attachment". + * + * @return string + */ + public function getDisposition() + { + return $this->getHeaderFieldModel('Content-Disposition'); + } + + /** + * Set the Content-Disposition of this attachment. + * + * @param string $disposition + * + * @return $this + */ + public function setDisposition($disposition) + { + if (!$this->setHeaderFieldModel('Content-Disposition', $disposition)) { + $this->getHeaders()->addParameterizedHeader('Content-Disposition', $disposition); + } + + return $this; + } + + /** + * Get the filename of this attachment when downloaded. + * + * @return string + */ + public function getFilename() + { + return $this->getHeaderParameter('Content-Disposition', 'filename'); + } + + /** + * Set the filename of this attachment. + * + * @param string $filename + * + * @return $this + */ + public function setFilename($filename) + { + $this->setHeaderParameter('Content-Disposition', 'filename', $filename); + $this->setHeaderParameter('Content-Type', 'name', $filename); + + return $this; + } + + /** + * Get the file size of this attachment. + * + * @return int + */ + public function getSize() + { + return $this->getHeaderParameter('Content-Disposition', 'size'); + } + + /** + * Set the file size of this attachment. + * + * @param int $size + * + * @return $this + */ + public function setSize($size) + { + $this->setHeaderParameter('Content-Disposition', 'size', $size); + + return $this; + } + + /** + * Set the file that this attachment is for. + * + * @param string $contentType optional + * + * @return $this + */ + public function setFile(Swift_FileStream $file, $contentType = null) + { + $this->setFilename(basename($file->getPath())); + $this->setBody($file, $contentType); + if (!isset($contentType)) { + $extension = strtolower(substr($file->getPath(), strrpos($file->getPath(), '.') + 1)); + + if (\array_key_exists($extension, $this->mimeTypes)) { + $this->setContentType($this->mimeTypes[$extension]); + } + } + + return $this; + } +} diff --git a/user/plugins/email/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Mime/CharsetObserver.php b/user/plugins/email/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Mime/CharsetObserver.php new file mode 100644 index 0000000..b49c3a8 --- /dev/null +++ b/user/plugins/email/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Mime/CharsetObserver.php @@ -0,0 +1,24 @@ += $maxLineLength || 76 < $maxLineLength) { + $maxLineLength = 76; + } + + $remainder = 0; + $base64ReadBufferRemainderBytes = ''; + + // To reduce memory usage, the output buffer is streamed to the input buffer like so: + // Output Stream => base64encode => wrap line length => Input Stream + // HOWEVER it's important to note that base64_encode() should only be passed whole triplets of data (except for the final chunk of data) + // otherwise it will assume the input data has *ended* and it will incorrectly pad/terminate the base64 data mid-stream. + // We use $base64ReadBufferRemainderBytes to carry over 1-2 "remainder" bytes from the each chunk from OutputStream and pre-pend those onto the + // chunk of bytes read in the next iteration. + // When the OutputStream is empty, we must flush any remainder bytes. + while (true) { + $readBytes = $os->read(8192); + $atEOF = (false === $readBytes); + + if ($atEOF) { + $streamTheseBytes = $base64ReadBufferRemainderBytes; + } else { + $streamTheseBytes = $base64ReadBufferRemainderBytes.$readBytes; + } + $base64ReadBufferRemainderBytes = ''; + $bytesLength = \strlen($streamTheseBytes); + + if (0 === $bytesLength) { // no data left to encode + break; + } + + // if we're not on the last block of the ouput stream, make sure $streamTheseBytes ends with a complete triplet of data + // and carry over remainder 1-2 bytes to the next loop iteration + if (!$atEOF) { + $excessBytes = $bytesLength % 3; + if (0 !== $excessBytes) { + $base64ReadBufferRemainderBytes = substr($streamTheseBytes, -$excessBytes); + $streamTheseBytes = substr($streamTheseBytes, 0, $bytesLength - $excessBytes); + } + } + + $encoded = base64_encode($streamTheseBytes); + $encodedTransformed = ''; + $thisMaxLineLength = $maxLineLength - $remainder - $firstLineOffset; + + while ($thisMaxLineLength < \strlen($encoded)) { + $encodedTransformed .= substr($encoded, 0, $thisMaxLineLength)."\r\n"; + $firstLineOffset = 0; + $encoded = substr($encoded, $thisMaxLineLength); + $thisMaxLineLength = $maxLineLength; + $remainder = 0; + } + + if (0 < $remainingLength = \strlen($encoded)) { + $remainder += $remainingLength; + $encodedTransformed .= $encoded; + $encoded = null; + } + + $is->write($encodedTransformed); + + if ($atEOF) { + break; + } + } + } + + /** + * Get the name of this encoding scheme. + * Returns the string 'base64'. + * + * @return string + */ + public function getName() + { + return 'base64'; + } +} diff --git a/user/plugins/email/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Mime/ContentEncoder/NativeQpContentEncoder.php b/user/plugins/email/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Mime/ContentEncoder/NativeQpContentEncoder.php new file mode 100644 index 0000000..8dfea60 --- /dev/null +++ b/user/plugins/email/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Mime/ContentEncoder/NativeQpContentEncoder.php @@ -0,0 +1,121 @@ +charset = $charset ?: 'utf-8'; + } + + /** + * Notify this observer that the entity's charset has changed. + * + * @param string $charset + */ + public function charsetChanged($charset) + { + $this->charset = $charset; + } + + /** + * Encode $in to $out. + * + * @param Swift_OutputByteStream $os to read from + * @param Swift_InputByteStream $is to write to + * @param int $firstLineOffset + * @param int $maxLineLength 0 indicates the default length for this encoding + * + * @throws RuntimeException + */ + public function encodeByteStream(Swift_OutputByteStream $os, Swift_InputByteStream $is, $firstLineOffset = 0, $maxLineLength = 0) + { + if ('utf-8' !== $this->charset) { + throw new RuntimeException(sprintf('Charset "%s" not supported. NativeQpContentEncoder only supports "utf-8"', $this->charset)); + } + + $string = ''; + + while (false !== $bytes = $os->read(8192)) { + $string .= $bytes; + } + + $is->write($this->encodeString($string)); + } + + /** + * Get the MIME name of this content encoding scheme. + * + * @return string + */ + public function getName() + { + return 'quoted-printable'; + } + + /** + * Encode a given string to produce an encoded string. + * + * @param string $string + * @param int $firstLineOffset if first line needs to be shorter + * @param int $maxLineLength 0 indicates the default length for this encoding + * + * @throws RuntimeException + * + * @return string + */ + public function encodeString($string, $firstLineOffset = 0, $maxLineLength = 0) + { + if ('utf-8' !== $this->charset) { + throw new RuntimeException(sprintf('Charset "%s" not supported. NativeQpContentEncoder only supports "utf-8"', $this->charset)); + } + + return $this->standardize(quoted_printable_encode($string)); + } + + /** + * Make sure CRLF is correct and HT/SPACE are in valid places. + * + * @param string $string + * + * @return string + */ + protected function standardize($string) + { + // transform CR or LF to CRLF + $string = preg_replace('~=0D(?!=0A)|(? + */ +class Swift_Mime_ContentEncoder_NullContentEncoder implements Swift_Mime_ContentEncoder +{ + /** + * The name of this encoding scheme (probably 7bit or 8bit). + * + * @var string + */ + private $name; + + /** + * Creates a new NullContentEncoder with $name (probably 7bit or 8bit). + * + * @param string $name + */ + public function __construct($name) + { + $this->name = $name; + } + + /** + * Encode a given string to produce an encoded string. + * + * @param string $string + * @param int $firstLineOffset ignored + * @param int $maxLineLength ignored + * + * @return string + */ + public function encodeString($string, $firstLineOffset = 0, $maxLineLength = 0) + { + return $string; + } + + /** + * Encode stream $in to stream $out. + * + * @param int $firstLineOffset ignored + * @param int $maxLineLength ignored + */ + public function encodeByteStream(Swift_OutputByteStream $os, Swift_InputByteStream $is, $firstLineOffset = 0, $maxLineLength = 0) + { + while (false !== ($bytes = $os->read(8192))) { + $is->write($bytes); + } + } + + /** + * Get the name of this encoding scheme. + * + * @return string + */ + public function getName() + { + return $this->name; + } + + /** + * Not used. + */ + public function charsetChanged($charset) + { + } +} diff --git a/user/plugins/email/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Mime/ContentEncoder/PlainContentEncoder.php b/user/plugins/email/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Mime/ContentEncoder/PlainContentEncoder.php new file mode 100644 index 0000000..72592fc --- /dev/null +++ b/user/plugins/email/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Mime/ContentEncoder/PlainContentEncoder.php @@ -0,0 +1,164 @@ +name = $name; + $this->canonical = $canonical; + } + + /** + * Encode a given string to produce an encoded string. + * + * @param string $string + * @param int $firstLineOffset ignored + * @param int $maxLineLength - 0 means no wrapping will occur + * + * @return string + */ + public function encodeString($string, $firstLineOffset = 0, $maxLineLength = 0) + { + if ($this->canonical) { + $string = $this->canonicalize($string); + } + + return $this->safeWordwrap($string, $maxLineLength, "\r\n"); + } + + /** + * Encode stream $in to stream $out. + * + * @param int $firstLineOffset ignored + * @param int $maxLineLength optional, 0 means no wrapping will occur + */ + public function encodeByteStream(Swift_OutputByteStream $os, Swift_InputByteStream $is, $firstLineOffset = 0, $maxLineLength = 0) + { + $leftOver = ''; + while (false !== $bytes = $os->read(8192)) { + $toencode = $leftOver.$bytes; + if ($this->canonical) { + $toencode = $this->canonicalize($toencode); + } + $wrapped = $this->safeWordwrap($toencode, $maxLineLength, "\r\n"); + $lastLinePos = strrpos($wrapped, "\r\n"); + $leftOver = substr($wrapped, $lastLinePos); + $wrapped = substr($wrapped, 0, $lastLinePos); + + $is->write($wrapped); + } + if (\strlen($leftOver)) { + $is->write($leftOver); + } + } + + /** + * Get the name of this encoding scheme. + * + * @return string + */ + public function getName() + { + return $this->name; + } + + /** + * Not used. + */ + public function charsetChanged($charset) + { + } + + /** + * A safer (but weaker) wordwrap for unicode. + * + * @param string $string + * @param int $length + * @param string $le + * + * @return string + */ + private function safeWordwrap($string, $length = 75, $le = "\r\n") + { + if (0 >= $length) { + return $string; + } + + $originalLines = explode($le, $string); + + $lines = []; + $lineCount = 0; + + foreach ($originalLines as $originalLine) { + $lines[] = ''; + $currentLine = &$lines[$lineCount++]; + + //$chunks = preg_split('/(?<=[\ \t,\.!\?\-&\+\/])/', $originalLine); + $chunks = preg_split('/(?<=\s)/', $originalLine); + + foreach ($chunks as $chunk) { + if (0 != \strlen($currentLine) + && \strlen($currentLine.$chunk) > $length) { + $lines[] = ''; + $currentLine = &$lines[$lineCount++]; + } + $currentLine .= $chunk; + } + } + + return implode("\r\n", $lines); + } + + /** + * Canonicalize string input (fix CRLF). + * + * @param string $string + * + * @return string + */ + private function canonicalize($string) + { + return str_replace( + ["\r\n", "\r", "\n"], + ["\n", "\n", "\r\n"], + $string + ); + } +} diff --git a/user/plugins/email/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Mime/ContentEncoder/QpContentEncoder.php b/user/plugins/email/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Mime/ContentEncoder/QpContentEncoder.php new file mode 100644 index 0000000..465ffd8 --- /dev/null +++ b/user/plugins/email/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Mime/ContentEncoder/QpContentEncoder.php @@ -0,0 +1,134 @@ +dotEscape = $dotEscape; + parent::__construct($charStream, $filter); + } + + public function __sleep() + { + return ['charStream', 'filter', 'dotEscape']; + } + + protected function getSafeMapShareId() + { + return static::class.($this->dotEscape ? '.dotEscape' : ''); + } + + protected function initSafeMap() + { + parent::initSafeMap(); + if ($this->dotEscape) { + /* Encode . as =2e for buggy remote servers */ + unset($this->safeMap[0x2e]); + } + } + + /** + * Encode stream $in to stream $out. + * + * QP encoded strings have a maximum line length of 76 characters. + * If the first line needs to be shorter, indicate the difference with + * $firstLineOffset. + * + * @param Swift_OutputByteStream $os output stream + * @param Swift_InputByteStream $is input stream + * @param int $firstLineOffset + * @param int $maxLineLength + */ + public function encodeByteStream(Swift_OutputByteStream $os, Swift_InputByteStream $is, $firstLineOffset = 0, $maxLineLength = 0) + { + if ($maxLineLength > 76 || $maxLineLength <= 0) { + $maxLineLength = 76; + } + + $thisLineLength = $maxLineLength - $firstLineOffset; + + $this->charStream->flushContents(); + $this->charStream->importByteStream($os); + + $currentLine = ''; + $prepend = ''; + $size = $lineLen = 0; + + while (false !== $bytes = $this->nextSequence()) { + // If we're filtering the input + if (isset($this->filter)) { + // If we can't filter because we need more bytes + while ($this->filter->shouldBuffer($bytes)) { + // Then collect bytes into the buffer + if (false === $moreBytes = $this->nextSequence(1)) { + break; + } + + foreach ($moreBytes as $b) { + $bytes[] = $b; + } + } + // And filter them + $bytes = $this->filter->filter($bytes); + } + + $enc = $this->encodeByteSequence($bytes, $size); + + $i = strpos($enc, '=0D=0A'); + $newLineLength = $lineLen + (false === $i ? $size : $i); + + if ($currentLine && $newLineLength >= $thisLineLength) { + $is->write($prepend.$this->standardize($currentLine)); + $currentLine = ''; + $prepend = "=\r\n"; + $thisLineLength = $maxLineLength; + $lineLen = 0; + } + + $currentLine .= $enc; + + if (false === $i) { + $lineLen += $size; + } else { + // 6 is the length of '=0D=0A'. + $lineLen = $size - strrpos($enc, '=0D=0A') - 6; + } + } + if (\strlen($currentLine)) { + $is->write($prepend.$this->standardize($currentLine)); + } + } + + /** + * Get the name of this encoding scheme. + * Returns the string 'quoted-printable'. + * + * @return string + */ + public function getName() + { + return 'quoted-printable'; + } +} diff --git a/user/plugins/email/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Mime/ContentEncoder/QpContentEncoderProxy.php b/user/plugins/email/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Mime/ContentEncoder/QpContentEncoderProxy.php new file mode 100644 index 0000000..f3ece43 --- /dev/null +++ b/user/plugins/email/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Mime/ContentEncoder/QpContentEncoderProxy.php @@ -0,0 +1,96 @@ + + */ +class Swift_Mime_ContentEncoder_QpContentEncoderProxy implements Swift_Mime_ContentEncoder +{ + /** + * @var Swift_Mime_ContentEncoder_QpContentEncoder + */ + private $safeEncoder; + + /** + * @var Swift_Mime_ContentEncoder_NativeQpContentEncoder + */ + private $nativeEncoder; + + /** + * @var string|null + */ + private $charset; + + /** + * Constructor. + * + * @param string|null $charset + */ + public function __construct(Swift_Mime_ContentEncoder_QpContentEncoder $safeEncoder, Swift_Mime_ContentEncoder_NativeQpContentEncoder $nativeEncoder, $charset) + { + $this->safeEncoder = $safeEncoder; + $this->nativeEncoder = $nativeEncoder; + $this->charset = $charset; + } + + /** + * Make a deep copy of object. + */ + public function __clone() + { + $this->safeEncoder = clone $this->safeEncoder; + $this->nativeEncoder = clone $this->nativeEncoder; + } + + /** + * {@inheritdoc} + */ + public function charsetChanged($charset) + { + $this->charset = $charset; + $this->safeEncoder->charsetChanged($charset); + } + + /** + * {@inheritdoc} + */ + public function encodeByteStream(Swift_OutputByteStream $os, Swift_InputByteStream $is, $firstLineOffset = 0, $maxLineLength = 0) + { + $this->getEncoder()->encodeByteStream($os, $is, $firstLineOffset, $maxLineLength); + } + + /** + * {@inheritdoc} + */ + public function getName() + { + return 'quoted-printable'; + } + + /** + * {@inheritdoc} + */ + public function encodeString($string, $firstLineOffset = 0, $maxLineLength = 0) + { + return $this->getEncoder()->encodeString($string, $firstLineOffset, $maxLineLength); + } + + /** + * @return Swift_Mime_ContentEncoder + */ + private function getEncoder() + { + return 'utf-8' === $this->charset ? $this->nativeEncoder : $this->safeEncoder; + } +} diff --git a/user/plugins/email/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Mime/ContentEncoder/RawContentEncoder.php b/user/plugins/email/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Mime/ContentEncoder/RawContentEncoder.php new file mode 100644 index 0000000..870e7f4 --- /dev/null +++ b/user/plugins/email/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Mime/ContentEncoder/RawContentEncoder.php @@ -0,0 +1,65 @@ + + */ +class Swift_Mime_ContentEncoder_RawContentEncoder implements Swift_Mime_ContentEncoder +{ + /** + * Encode a given string to produce an encoded string. + * + * @param string $string + * @param int $firstLineOffset ignored + * @param int $maxLineLength ignored + * + * @return string + */ + public function encodeString($string, $firstLineOffset = 0, $maxLineLength = 0) + { + return $string; + } + + /** + * Encode stream $in to stream $out. + * + * @param int $firstLineOffset ignored + * @param int $maxLineLength ignored + */ + public function encodeByteStream(Swift_OutputByteStream $os, Swift_InputByteStream $is, $firstLineOffset = 0, $maxLineLength = 0) + { + while (false !== ($bytes = $os->read(8192))) { + $is->write($bytes); + } + } + + /** + * Get the name of this encoding scheme. + * + * @return string + */ + public function getName() + { + return 'raw'; + } + + /** + * Not used. + */ + public function charsetChanged($charset) + { + } +} diff --git a/user/plugins/email/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Mime/EmbeddedFile.php b/user/plugins/email/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Mime/EmbeddedFile.php new file mode 100644 index 0000000..42a5177 --- /dev/null +++ b/user/plugins/email/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Mime/EmbeddedFile.php @@ -0,0 +1,41 @@ +setDisposition('inline'); + $this->setId($this->getId()); + } + + /** + * Get the nesting level of this EmbeddedFile. + * + * Returns {@see LEVEL_RELATED}. + * + * @return int + */ + public function getNestingLevel() + { + return self::LEVEL_RELATED; + } +} diff --git a/user/plugins/email/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Mime/EncodingObserver.php b/user/plugins/email/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Mime/EncodingObserver.php new file mode 100644 index 0000000..1a952ec --- /dev/null +++ b/user/plugins/email/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Mime/EncodingObserver.php @@ -0,0 +1,22 @@ +getName(), "\r\n"); + mb_internal_encoding($old); + + return $newstring; + } + + return parent::encodeString($string, $firstLineOffset, $maxLineLength); + } +} diff --git a/user/plugins/email/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Mime/HeaderEncoder/QpHeaderEncoder.php b/user/plugins/email/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Mime/HeaderEncoder/QpHeaderEncoder.php new file mode 100644 index 0000000..378c480 --- /dev/null +++ b/user/plugins/email/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Mime/HeaderEncoder/QpHeaderEncoder.php @@ -0,0 +1,65 @@ +safeMap[$byte] = \chr($byte); + } + } + + /** + * Get the name of this encoding scheme. + * + * Returns the string 'Q'. + * + * @return string + */ + public function getName() + { + return 'Q'; + } + + /** + * Takes an unencoded string and produces a QP encoded string from it. + * + * @param string $string string to encode + * @param int $firstLineOffset optional + * @param int $maxLineLength optional, 0 indicates the default of 76 chars + * + * @return string + */ + public function encodeString($string, $firstLineOffset = 0, $maxLineLength = 0) + { + return str_replace([' ', '=20', "=\r\n"], ['_', '_', "\r\n"], + parent::encodeString($string, $firstLineOffset, $maxLineLength) + ); + } +} diff --git a/user/plugins/email/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Mime/Headers/AbstractHeader.php b/user/plugins/email/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Mime/Headers/AbstractHeader.php new file mode 100644 index 0000000..25740d1 --- /dev/null +++ b/user/plugins/email/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Mime/Headers/AbstractHeader.php @@ -0,0 +1,486 @@ +clearCachedValueIf($charset != $this->charset); + $this->charset = $charset; + if (isset($this->encoder)) { + $this->encoder->charsetChanged($charset); + } + } + + /** + * Get the character set used in this Header. + * + * @return string + */ + public function getCharset() + { + return $this->charset; + } + + /** + * Set the language used in this Header. + * + * For example, for US English, 'en-us'. + * This can be unspecified. + * + * @param string $lang + */ + public function setLanguage($lang) + { + $this->clearCachedValueIf($this->lang != $lang); + $this->lang = $lang; + } + + /** + * Get the language used in this Header. + * + * @return string + */ + public function getLanguage() + { + return $this->lang; + } + + /** + * Set the encoder used for encoding the header. + */ + public function setEncoder(Swift_Mime_HeaderEncoder $encoder) + { + $this->encoder = $encoder; + $this->setCachedValue(null); + } + + /** + * Get the encoder used for encoding this Header. + * + * @return Swift_Mime_HeaderEncoder + */ + public function getEncoder() + { + return $this->encoder; + } + + /** + * Get the name of this header (e.g. charset). + * + * @return string + */ + public function getFieldName() + { + return $this->name; + } + + /** + * Set the maximum length of lines in the header (excluding EOL). + * + * @param int $lineLength + */ + public function setMaxLineLength($lineLength) + { + $this->clearCachedValueIf($this->lineLength != $lineLength); + $this->lineLength = $lineLength; + } + + /** + * Get the maximum permitted length of lines in this Header. + * + * @return int + */ + public function getMaxLineLength() + { + return $this->lineLength; + } + + /** + * Get this Header rendered as a RFC 2822 compliant string. + * + * @return string + * + * @throws Swift_RfcComplianceException + */ + public function toString() + { + return $this->tokensToString($this->toTokens()); + } + + /** + * Returns a string representation of this object. + * + * @return string + * + * @see toString() + */ + public function __toString() + { + return $this->toString(); + } + + /** + * Set the name of this Header field. + * + * @param string $name + */ + protected function setFieldName($name) + { + $this->name = $name; + } + + /** + * Produces a compliant, formatted RFC 2822 'phrase' based on the string given. + * + * @param string $string as displayed + * @param string $charset of the text + * @param bool $shorten the first line to make remove for header name + * + * @return string + */ + protected function createPhrase(Swift_Mime_Header $header, $string, $charset, Swift_Mime_HeaderEncoder $encoder = null, $shorten = false) + { + // Treat token as exactly what was given + $phraseStr = $string; + // If it's not valid + + if (!preg_match('/^'.self::PHRASE_PATTERN.'$/D', $phraseStr)) { + // .. but it is just ascii text, try escaping some characters + // and make it a quoted-string + if (preg_match('/^[\x00-\x08\x0B\x0C\x0E-\x7F]*$/D', $phraseStr)) { + $phraseStr = $this->escapeSpecials($phraseStr, ['"']); + $phraseStr = '"'.$phraseStr.'"'; + } else { + // ... otherwise it needs encoding + // Determine space remaining on line if first line + if ($shorten) { + $usedLength = \strlen($header->getFieldName().': '); + } else { + $usedLength = 0; + } + $phraseStr = $this->encodeWords($header, $string, $usedLength); + } + } + + return $phraseStr; + } + + /** + * Escape special characters in a string (convert to quoted-pairs). + * + * @param string $token + * @param string[] $include additional chars to escape + * + * @return string + */ + private function escapeSpecials($token, $include = []) + { + foreach (array_merge(['\\'], $include) as $char) { + $token = str_replace($char, '\\'.$char, $token); + } + + return $token; + } + + /** + * Encode needed word tokens within a string of input. + * + * @param string $input + * @param string $usedLength optional + * + * @return string + */ + protected function encodeWords(Swift_Mime_Header $header, $input, $usedLength = -1) + { + $value = ''; + + $tokens = $this->getEncodableWordTokens($input); + + foreach ($tokens as $token) { + // See RFC 2822, Sect 2.2 (really 2.2 ??) + if ($this->tokenNeedsEncoding($token)) { + // Don't encode starting WSP + $firstChar = substr($token, 0, 1); + switch ($firstChar) { + case ' ': + case "\t": + $value .= $firstChar; + $token = substr($token, 1); + } + + if (-1 == $usedLength) { + $usedLength = \strlen($header->getFieldName().': ') + \strlen($value); + } + $value .= $this->getTokenAsEncodedWord($token, $usedLength); + + $header->setMaxLineLength(76); // Forcefully override + } else { + $value .= $token; + } + } + + return $value; + } + + /** + * Test if a token needs to be encoded or not. + * + * @param string $token + * + * @return bool + */ + protected function tokenNeedsEncoding($token) + { + return preg_match('~[\x00-\x08\x10-\x19\x7F-\xFF\r\n]~', $token); + } + + /** + * Splits a string into tokens in blocks of words which can be encoded quickly. + * + * @param string $string + * + * @return string[] + */ + protected function getEncodableWordTokens($string) + { + $tokens = []; + + $encodedToken = ''; + // Split at all whitespace boundaries + foreach (preg_split('~(?=[\t ])~', $string ?? '') as $token) { + if ($this->tokenNeedsEncoding($token)) { + $encodedToken .= $token; + } else { + if (\strlen($encodedToken) > 0) { + $tokens[] = $encodedToken; + $encodedToken = ''; + } + $tokens[] = $token; + } + } + if (\strlen($encodedToken)) { + $tokens[] = $encodedToken; + } + + return $tokens; + } + + /** + * Get a token as an encoded word for safe insertion into headers. + * + * @param string $token token to encode + * @param int $firstLineOffset optional + * + * @return string + */ + protected function getTokenAsEncodedWord($token, $firstLineOffset = 0) + { + // Adjust $firstLineOffset to account for space needed for syntax + $charsetDecl = $this->charset; + if (isset($this->lang)) { + $charsetDecl .= '*'.$this->lang; + } + $encodingWrapperLength = \strlen( + '=?'.$charsetDecl.'?'.$this->encoder->getName().'??=' + ); + + if ($firstLineOffset >= 75) { + //Does this logic need to be here? + $firstLineOffset = 0; + } + + $encodedTextLines = explode("\r\n", + $this->encoder->encodeString( + $token, $firstLineOffset, 75 - $encodingWrapperLength, $this->charset + ) ?? '' + ); + + if ('iso-2022-jp' !== strtolower($this->charset ?? '')) { + // special encoding for iso-2022-jp using mb_encode_mimeheader + foreach ($encodedTextLines as $lineNum => $line) { + $encodedTextLines[$lineNum] = '=?'.$charsetDecl. + '?'.$this->encoder->getName(). + '?'.$line.'?='; + } + } + + return implode("\r\n ", $encodedTextLines); + } + + /** + * Generates tokens from the given string which include CRLF as individual tokens. + * + * @param string $token + * + * @return string[] + */ + protected function generateTokenLines($token) + { + return preg_split('~(\r\n)~', $token ?? '', -1, PREG_SPLIT_DELIM_CAPTURE); + } + + /** + * Set a value into the cache. + * + * @param string $value + */ + protected function setCachedValue($value) + { + $this->cachedValue = $value; + } + + /** + * Get the value in the cache. + * + * @return string + */ + protected function getCachedValue() + { + return $this->cachedValue; + } + + /** + * Clear the cached value if $condition is met. + * + * @param bool $condition + */ + protected function clearCachedValueIf($condition) + { + if ($condition) { + $this->setCachedValue(null); + } + } + + /** + * Generate a list of all tokens in the final header. + * + * @param string $string The string to tokenize + * + * @return array An array of tokens as strings + */ + protected function toTokens($string = null) + { + if (null === $string) { + $string = $this->getFieldBody(); + } + + $tokens = []; + + // Generate atoms; split at all invisible boundaries followed by WSP + foreach (preg_split('~(?=[ \t])~', $string ?? '') as $token) { + $newTokens = $this->generateTokenLines($token); + foreach ($newTokens as $newToken) { + $tokens[] = $newToken; + } + } + + return $tokens; + } + + /** + * Takes an array of tokens which appear in the header and turns them into + * an RFC 2822 compliant string, adding FWSP where needed. + * + * @param string[] $tokens + * + * @return string + */ + private function tokensToString(array $tokens) + { + $lineCount = 0; + $headerLines = []; + $headerLines[] = $this->name.': '; + $currentLine = &$headerLines[$lineCount++]; + + // Build all tokens back into compliant header + foreach ($tokens as $i => $token) { + // Line longer than specified maximum or token was just a new line + if (("\r\n" == $token) || + ($i > 0 && \strlen($currentLine.$token) > $this->lineLength) + && 0 < \strlen($currentLine)) { + $headerLines[] = ''; + $currentLine = &$headerLines[$lineCount++]; + } + + // Append token to the line + if ("\r\n" != $token) { + $currentLine .= $token; + } + } + + // Implode with FWS (RFC 2822, 2.2.3) + return implode("\r\n", $headerLines)."\r\n"; + } + + /** + * Make a deep copy of object. + */ + public function __clone() + { + if ($this->encoder) { + $this->encoder = clone $this->encoder; + } + } +} diff --git a/user/plugins/email/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Mime/Headers/DateHeader.php b/user/plugins/email/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Mime/Headers/DateHeader.php new file mode 100644 index 0000000..efe1dad --- /dev/null +++ b/user/plugins/email/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Mime/Headers/DateHeader.php @@ -0,0 +1,113 @@ +setFieldName($name); + } + + /** + * Get the type of Header that this instance represents. + * + * @see TYPE_TEXT, TYPE_PARAMETERIZED, TYPE_MAILBOX + * @see TYPE_DATE, TYPE_ID, TYPE_PATH + * + * @return int + */ + public function getFieldType() + { + return self::TYPE_DATE; + } + + /** + * Set the model for the field body. + * + * @param DateTimeInterface $model + */ + public function setFieldBodyModel($model) + { + $this->setDateTime($model); + } + + /** + * Get the model for the field body. + * + * @return DateTimeImmutable + */ + public function getFieldBodyModel() + { + return $this->getDateTime(); + } + + /** + * Get the date-time representing the Date in this Header. + * + * @return DateTimeImmutable + */ + public function getDateTime() + { + return $this->dateTime; + } + + /** + * Set the date-time of the Date in this Header. + * + * If a DateTime instance is provided, it is converted to DateTimeImmutable. + */ + public function setDateTime(DateTimeInterface $dateTime) + { + $this->clearCachedValueIf($this->getCachedValue() != $dateTime->format(DateTime::RFC2822)); + if ($dateTime instanceof DateTime) { + $immutable = new DateTimeImmutable('@'.$dateTime->getTimestamp()); + $dateTime = $immutable->setTimezone($dateTime->getTimezone()); + } + $this->dateTime = $dateTime; + } + + /** + * Get the string value of the body in this Header. + * + * This is not necessarily RFC 2822 compliant since folding white space will + * not be added at this stage (see {@link toString()} for that). + * + * @see toString() + * + * @return string + */ + public function getFieldBody() + { + if (!$this->getCachedValue()) { + if (isset($this->dateTime)) { + $this->setCachedValue($this->dateTime->format(DateTime::RFC2822)); + } + } + + return $this->getCachedValue(); + } +} diff --git a/user/plugins/email/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Mime/Headers/IdentificationHeader.php b/user/plugins/email/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Mime/Headers/IdentificationHeader.php new file mode 100644 index 0000000..4fcdff4 --- /dev/null +++ b/user/plugins/email/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Mime/Headers/IdentificationHeader.php @@ -0,0 +1,189 @@ +setFieldName($name); + $this->emailValidator = $emailValidator; + $this->addressEncoder = $addressEncoder ?? new Swift_AddressEncoder_IdnAddressEncoder(); + } + + /** + * Get the type of Header that this instance represents. + * + * @see TYPE_TEXT, TYPE_PARAMETERIZED, TYPE_MAILBOX + * @see TYPE_DATE, TYPE_ID, TYPE_PATH + * + * @return int + */ + public function getFieldType() + { + return self::TYPE_ID; + } + + /** + * Set the model for the field body. + * + * This method takes a string ID, or an array of IDs. + * + * @param mixed $model + * + * @throws Swift_RfcComplianceException + */ + public function setFieldBodyModel($model) + { + $this->setId($model); + } + + /** + * Get the model for the field body. + * + * This method returns an array of IDs + * + * @return array + */ + public function getFieldBodyModel() + { + return $this->getIds(); + } + + /** + * Set the ID used in the value of this header. + * + * @param string|array $id + * + * @throws Swift_RfcComplianceException + */ + public function setId($id) + { + $this->setIds(\is_array($id) ? $id : [$id]); + } + + /** + * Get the ID used in the value of this Header. + * + * If multiple IDs are set only the first is returned. + * + * @return string + */ + public function getId() + { + if (\count($this->ids) > 0) { + return $this->ids[0]; + } + } + + /** + * Set a collection of IDs to use in the value of this Header. + * + * @param string[] $ids + * + * @throws Swift_RfcComplianceException + */ + public function setIds(array $ids) + { + $actualIds = []; + + foreach ($ids as $id) { + $this->assertValidId($id); + $actualIds[] = $id; + } + + $this->clearCachedValueIf($this->ids != $actualIds); + $this->ids = $actualIds; + } + + /** + * Get the list of IDs used in this Header. + * + * @return string[] + */ + public function getIds() + { + return $this->ids; + } + + /** + * Get the string value of the body in this Header. + * + * This is not necessarily RFC 2822 compliant since folding white space will + * not be added at this stage (see {@see toString()} for that). + * + * @see toString() + * + * @throws Swift_RfcComplianceException + * + * @return string + */ + public function getFieldBody() + { + if (!$this->getCachedValue()) { + $angleAddrs = []; + + foreach ($this->ids as $id) { + $angleAddrs[] = '<'.$this->addressEncoder->encodeString($id).'>'; + } + + $this->setCachedValue(implode(' ', $angleAddrs)); + } + + return $this->getCachedValue(); + } + + /** + * Throws an Exception if the id passed does not comply with RFC 2822. + * + * @param string $id + * + * @throws Swift_RfcComplianceException + */ + private function assertValidId($id) + { + $emailValidation = class_exists(MessageIDValidation::class) ? new MessageIDValidation() : new RFCValidation(); + + if (!$this->emailValidator->isValid($id, $emailValidation)) { + throw new Swift_RfcComplianceException('Invalid ID given <'.$id.'>'); + } + } +} diff --git a/user/plugins/email/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Mime/Headers/MailboxHeader.php b/user/plugins/email/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Mime/Headers/MailboxHeader.php new file mode 100644 index 0000000..ddd5e8c --- /dev/null +++ b/user/plugins/email/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Mime/Headers/MailboxHeader.php @@ -0,0 +1,358 @@ +setFieldName($name); + $this->setEncoder($encoder); + $this->emailValidator = $emailValidator; + $this->addressEncoder = $addressEncoder ?? new Swift_AddressEncoder_IdnAddressEncoder(); + } + + /** + * Get the type of Header that this instance represents. + * + * @see TYPE_TEXT, TYPE_PARAMETERIZED, TYPE_MAILBOX + * @see TYPE_DATE, TYPE_ID, TYPE_PATH + * + * @return int + */ + public function getFieldType() + { + return self::TYPE_MAILBOX; + } + + /** + * Set the model for the field body. + * + * This method takes a string, or an array of addresses. + * + * @param mixed $model + * + * @throws Swift_RfcComplianceException + */ + public function setFieldBodyModel($model) + { + $this->setNameAddresses($model); + } + + /** + * Get the model for the field body. + * + * This method returns an associative array like {@link getNameAddresses()} + * + * @throws Swift_RfcComplianceException + * + * @return array + */ + public function getFieldBodyModel() + { + return $this->getNameAddresses(); + } + + /** + * Set a list of mailboxes to be shown in this Header. + * + * The mailboxes can be a simple array of addresses, or an array of + * key=>value pairs where (email => personalName). + * Example: + * + * setNameAddresses(array( + * 'chris@swiftmailer.org' => 'Chris Corbyn', + * 'mark@swiftmailer.org' //No associated personal name + * )); + * ?> + * + * + * @see __construct() + * @see setAddresses() + * @see setValue() + * + * @param string|string[] $mailboxes + * + * @throws Swift_RfcComplianceException + */ + public function setNameAddresses($mailboxes) + { + $this->mailboxes = $this->normalizeMailboxes((array) $mailboxes); + $this->setCachedValue(null); //Clear any cached value + } + + /** + * Get the full mailbox list of this Header as an array of valid RFC 2822 strings. + * + * Example: + * + * 'Chris Corbyn', + * 'mark@swiftmailer.org' => 'Mark Corbyn') + * ); + * print_r($header->getNameAddressStrings()); + * // array ( + * // 0 => Chris Corbyn , + * // 1 => Mark Corbyn + * // ) + * ?> + * + * + * @see getNameAddresses() + * @see toString() + * + * @throws Swift_RfcComplianceException + * + * @return string[] + */ + public function getNameAddressStrings() + { + return $this->createNameAddressStrings($this->getNameAddresses()); + } + + /** + * Get all mailboxes in this Header as key=>value pairs. + * + * The key is the address and the value is the name (or null if none set). + * Example: + * + * 'Chris Corbyn', + * 'mark@swiftmailer.org' => 'Mark Corbyn') + * ); + * print_r($header->getNameAddresses()); + * // array ( + * // chris@swiftmailer.org => Chris Corbyn, + * // mark@swiftmailer.org => Mark Corbyn + * // ) + * ?> + * + * + * @see getAddresses() + * @see getNameAddressStrings() + * + * @return string[] + */ + public function getNameAddresses() + { + return $this->mailboxes; + } + + /** + * Makes this Header represent a list of plain email addresses with no names. + * + * Example: + * + * setAddresses( + * array('one@domain.tld', 'two@domain.tld', 'three@domain.tld') + * ); + * ?> + * + * + * @see setNameAddresses() + * @see setValue() + * + * @param string[] $addresses + * + * @throws Swift_RfcComplianceException + */ + public function setAddresses($addresses) + { + $this->setNameAddresses(array_values((array) $addresses)); + } + + /** + * Get all email addresses in this Header. + * + * @see getNameAddresses() + * + * @return string[] + */ + public function getAddresses() + { + return array_keys($this->mailboxes); + } + + /** + * Remove one or more addresses from this Header. + * + * @param string|string[] $addresses + */ + public function removeAddresses($addresses) + { + $this->setCachedValue(null); + foreach ((array) $addresses as $address) { + unset($this->mailboxes[$address]); + } + } + + /** + * Get the string value of the body in this Header. + * + * This is not necessarily RFC 2822 compliant since folding white space will + * not be added at this stage (see {@link toString()} for that). + * + * @see toString() + * + * @throws Swift_RfcComplianceException + * + * @return string + */ + public function getFieldBody() + { + // Compute the string value of the header only if needed + if (null === $this->getCachedValue()) { + $this->setCachedValue($this->createMailboxListString($this->mailboxes)); + } + + return $this->getCachedValue(); + } + + /** + * Normalizes a user-input list of mailboxes into consistent key=>value pairs. + * + * @param string[] $mailboxes + * + * @return string[] + */ + protected function normalizeMailboxes(array $mailboxes) + { + $actualMailboxes = []; + + foreach ($mailboxes as $key => $value) { + if (\is_string($key)) { + //key is email addr + $address = $key; + $name = $value; + } else { + $address = $value; + $name = null; + } + $this->assertValidAddress($address); + $actualMailboxes[$address] = $name; + } + + return $actualMailboxes; + } + + /** + * Produces a compliant, formatted display-name based on the string given. + * + * @param string $displayName as displayed + * @param bool $shorten the first line to make remove for header name + * + * @return string + */ + protected function createDisplayNameString($displayName, $shorten = false) + { + return $this->createPhrase($this, $displayName, $this->getCharset(), $this->getEncoder(), $shorten); + } + + /** + * Creates a string form of all the mailboxes in the passed array. + * + * @param string[] $mailboxes + * + * @throws Swift_RfcComplianceException + * + * @return string + */ + protected function createMailboxListString(array $mailboxes) + { + return implode(', ', $this->createNameAddressStrings($mailboxes)); + } + + /** + * Redefine the encoding requirements for mailboxes. + * + * All "specials" must be encoded as the full header value will not be quoted + * + * @see RFC 2822 3.2.1 + * + * @param string $token + * + * @return bool + */ + protected function tokenNeedsEncoding($token) + { + return preg_match('/[()<>\[\]:;@\,."]/', $token) || parent::tokenNeedsEncoding($token); + } + + /** + * Return an array of strings conforming the the name-addr spec of RFC 2822. + * + * @param string[] $mailboxes + * + * @return string[] + */ + private function createNameAddressStrings(array $mailboxes) + { + $strings = []; + + foreach ($mailboxes as $email => $name) { + $mailboxStr = $this->addressEncoder->encodeString($email); + if (null !== $name) { + $nameStr = $this->createDisplayNameString($name, empty($strings)); + $mailboxStr = $nameStr.' <'.$mailboxStr.'>'; + } + $strings[] = $mailboxStr; + } + + return $strings; + } + + /** + * Throws an Exception if the address passed does not comply with RFC 2822. + * + * @param string $address + * + * @throws Swift_RfcComplianceException if invalid + */ + private function assertValidAddress($address) + { + if (!$this->emailValidator->isValid($address, new RFCValidation())) { + throw new Swift_RfcComplianceException('Address in mailbox given ['.$address.'] does not comply with RFC 2822, 3.6.2.'); + } + } +} diff --git a/user/plugins/email/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Mime/Headers/OpenDKIMHeader.php b/user/plugins/email/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Mime/Headers/OpenDKIMHeader.php new file mode 100644 index 0000000..fafb5ba --- /dev/null +++ b/user/plugins/email/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Mime/Headers/OpenDKIMHeader.php @@ -0,0 +1,135 @@ + + * + * @deprecated since SwiftMailer 6.1.0; use Swift_Signers_DKIMSigner instead. + */ +class Swift_Mime_Headers_OpenDKIMHeader implements Swift_Mime_Header +{ + /** + * The value of this Header. + * + * @var string + */ + private $value; + + /** + * The name of this Header. + * + * @var string + */ + private $fieldName; + + /** + * @param string $name + */ + public function __construct($name) + { + $this->fieldName = $name; + } + + /** + * Get the type of Header that this instance represents. + * + * @see TYPE_TEXT, TYPE_PARAMETERIZED, TYPE_MAILBOX + * @see TYPE_DATE, TYPE_ID, TYPE_PATH + * + * @return int + */ + public function getFieldType() + { + return self::TYPE_TEXT; + } + + /** + * Set the model for the field body. + * + * This method takes a string for the field value. + * + * @param string $model + */ + public function setFieldBodyModel($model) + { + $this->setValue($model); + } + + /** + * Get the model for the field body. + * + * This method returns a string. + * + * @return string + */ + public function getFieldBodyModel() + { + return $this->getValue(); + } + + /** + * Get the (unencoded) value of this header. + * + * @return string + */ + public function getValue() + { + return $this->value; + } + + /** + * Set the (unencoded) value of this header. + * + * @param string $value + */ + public function setValue($value) + { + $this->value = $value; + } + + /** + * Get the value of this header prepared for rendering. + * + * @return string + */ + public function getFieldBody() + { + return $this->value; + } + + /** + * Get this Header rendered as a RFC 2822 compliant string. + * + * @return string + */ + public function toString() + { + return $this->fieldName.': '.$this->value."\r\n"; + } + + /** + * Set the Header FieldName. + * + * @see Swift_Mime_Header::getFieldName() + */ + public function getFieldName() + { + return $this->fieldName; + } + + /** + * Ignored. + */ + public function setCharset($charset) + { + } +} diff --git a/user/plugins/email/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Mime/Headers/ParameterizedHeader.php b/user/plugins/email/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Mime/Headers/ParameterizedHeader.php new file mode 100644 index 0000000..47c15e6 --- /dev/null +++ b/user/plugins/email/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Mime/Headers/ParameterizedHeader.php @@ -0,0 +1,255 @@ +paramEncoder = $paramEncoder; + } + + /** + * Get the type of Header that this instance represents. + * + * @see TYPE_TEXT, TYPE_PARAMETERIZED, TYPE_MAILBOX + * @see TYPE_DATE, TYPE_ID, TYPE_PATH + * + * @return int + */ + public function getFieldType() + { + return self::TYPE_PARAMETERIZED; + } + + /** + * Set the character set used in this Header. + * + * @param string $charset + */ + public function setCharset($charset) + { + parent::setCharset($charset); + if (isset($this->paramEncoder)) { + $this->paramEncoder->charsetChanged($charset); + } + } + + /** + * Set the value of $parameter. + * + * @param string $parameter + * @param string $value + */ + public function setParameter($parameter, $value) + { + $this->setParameters(array_merge($this->getParameters(), [$parameter => $value])); + } + + /** + * Get the value of $parameter. + * + * @param string $parameter + * + * @return string + */ + public function getParameter($parameter) + { + $params = $this->getParameters(); + + return $params[$parameter] ?? null; + } + + /** + * Set an associative array of parameter names mapped to values. + * + * @param string[] $parameters + */ + public function setParameters(array $parameters) + { + $this->clearCachedValueIf($this->params != $parameters); + $this->params = $parameters; + } + + /** + * Returns an associative array of parameter names mapped to values. + * + * @return string[] + */ + public function getParameters() + { + return $this->params; + } + + /** + * Get the value of this header prepared for rendering. + * + * @return string + */ + public function getFieldBody() //TODO: Check caching here + { + $body = parent::getFieldBody(); + foreach ($this->params as $name => $value) { + if (null !== $value) { + // Add the parameter + $body .= '; '.$this->createParameter($name, $value); + } + } + + return $body; + } + + /** + * Generate a list of all tokens in the final header. + * + * This doesn't need to be overridden in theory, but it is for implementation + * reasons to prevent potential breakage of attributes. + * + * @param string $string The string to tokenize + * + * @return array An array of tokens as strings + */ + protected function toTokens($string = null) + { + $tokens = parent::toTokens(parent::getFieldBody()); + + // Try creating any parameters + foreach ($this->params as $name => $value) { + if (null !== $value) { + // Add the semi-colon separator + $tokens[\count($tokens) - 1] .= ';'; + $tokens = array_merge($tokens, $this->generateTokenLines( + ' '.$this->createParameter($name, $value) + )); + } + } + + return $tokens; + } + + /** + * Render a RFC 2047 compliant header parameter from the $name and $value. + * + * @param string $name + * @param string $value + * + * @return string + */ + private function createParameter($name, $value) + { + $origValue = $value; + + $encoded = false; + // Allow room for parameter name, indices, "=" and DQUOTEs + $maxValueLength = $this->getMaxLineLength() - \strlen($name.'=*N"";') - 1; + $firstLineOffset = 0; + + // If it's not already a valid parameter value... + if (!preg_match('/^'.self::TOKEN_REGEX.'$/D', $value)) { + // TODO: text, or something else?? + // ... and it's not ascii + if (!preg_match('/^[\x00-\x08\x0B\x0C\x0E-\x7F]*$/D', $value)) { + $encoded = true; + // Allow space for the indices, charset and language + $maxValueLength = $this->getMaxLineLength() - \strlen($name.'*N*="";') - 1; + $firstLineOffset = \strlen( + $this->getCharset()."'".$this->getLanguage()."'" + ); + } + } + + // Encode if we need to + if ($encoded || \strlen($value) > $maxValueLength) { + if (isset($this->paramEncoder)) { + $value = $this->paramEncoder->encodeString( + $origValue, $firstLineOffset, $maxValueLength, $this->getCharset() + ); + } else { + // We have to go against RFC 2183/2231 in some areas for interoperability + $value = $this->getTokenAsEncodedWord($origValue); + $encoded = false; + } + } + + $valueLines = isset($this->paramEncoder) ? explode("\r\n", $value) : [$value]; + + // Need to add indices + if (\count($valueLines) > 1) { + $paramLines = []; + foreach ($valueLines as $i => $line) { + $paramLines[] = $name.'*'.$i. + $this->getEndOfParameterValue($line, true, 0 == $i); + } + + return implode(";\r\n ", $paramLines); + } else { + return $name.$this->getEndOfParameterValue( + $valueLines[0], $encoded, true + ); + } + } + + /** + * Returns the parameter value from the "=" and beyond. + * + * @param string $value to append + * @param bool $encoded + * @param bool $firstLine + * + * @return string + */ + private function getEndOfParameterValue($value, $encoded = false, $firstLine = false) + { + if (!preg_match('/^'.self::TOKEN_REGEX.'$/D', $value)) { + $value = '"'.$value.'"'; + } + $prepend = '='; + if ($encoded) { + $prepend = '*='; + if ($firstLine) { + $prepend = '*='.$this->getCharset()."'".$this->getLanguage(). + "'"; + } + } + + return $prepend.$value; + } +} diff --git a/user/plugins/email/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Mime/Headers/PathHeader.php b/user/plugins/email/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Mime/Headers/PathHeader.php new file mode 100644 index 0000000..81b421e --- /dev/null +++ b/user/plugins/email/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Mime/Headers/PathHeader.php @@ -0,0 +1,153 @@ +setFieldName($name); + $this->emailValidator = $emailValidator; + $this->addressEncoder = $addressEncoder ?? new Swift_AddressEncoder_IdnAddressEncoder(); + } + + /** + * Get the type of Header that this instance represents. + * + * @see TYPE_TEXT, TYPE_PARAMETERIZED, TYPE_MAILBOX + * @see TYPE_DATE, TYPE_ID, TYPE_PATH + * + * @return int + */ + public function getFieldType() + { + return self::TYPE_PATH; + } + + /** + * Set the model for the field body. + * This method takes a string for an address. + * + * @param string $model + * + * @throws Swift_RfcComplianceException + */ + public function setFieldBodyModel($model) + { + $this->setAddress($model); + } + + /** + * Get the model for the field body. + * This method returns a string email address. + * + * @return mixed + */ + public function getFieldBodyModel() + { + return $this->getAddress(); + } + + /** + * Set the Address which should appear in this Header. + * + * @param string $address + * + * @throws Swift_RfcComplianceException + */ + public function setAddress($address) + { + if (null === $address) { + $this->address = null; + } elseif ('' == $address) { + $this->address = ''; + } else { + $this->assertValidAddress($address); + $this->address = $address; + } + $this->setCachedValue(null); + } + + /** + * Get the address which is used in this Header (if any). + * + * Null is returned if no address is set. + * + * @return string + */ + public function getAddress() + { + return $this->address; + } + + /** + * Get the string value of the body in this Header. + * + * This is not necessarily RFC 2822 compliant since folding white space will + * not be added at this stage (see {@link toString()} for that). + * + * @see toString() + * + * @return string + */ + public function getFieldBody() + { + if (!$this->getCachedValue()) { + if (isset($this->address)) { + $address = $this->addressEncoder->encodeString($this->address); + $this->setCachedValue('<'.$address.'>'); + } + } + + return $this->getCachedValue(); + } + + /** + * Throws an Exception if the address passed does not comply with RFC 2822. + * + * @param string $address + * + * @throws Swift_RfcComplianceException If address is invalid + */ + private function assertValidAddress($address) + { + if (!$this->emailValidator->isValid($address, new RFCValidation())) { + throw new Swift_RfcComplianceException('Address set in PathHeader does not comply with addr-spec of RFC 2822.'); + } + } +} diff --git a/user/plugins/email/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Mime/Headers/UnstructuredHeader.php b/user/plugins/email/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Mime/Headers/UnstructuredHeader.php new file mode 100644 index 0000000..64f160d --- /dev/null +++ b/user/plugins/email/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Mime/Headers/UnstructuredHeader.php @@ -0,0 +1,109 @@ +setFieldName($name); + $this->setEncoder($encoder); + } + + /** + * Get the type of Header that this instance represents. + * + * @see TYPE_TEXT, TYPE_PARAMETERIZED, TYPE_MAILBOX + * @see TYPE_DATE, TYPE_ID, TYPE_PATH + * + * @return int + */ + public function getFieldType() + { + return self::TYPE_TEXT; + } + + /** + * Set the model for the field body. + * + * This method takes a string for the field value. + * + * @param string $model + */ + public function setFieldBodyModel($model) + { + $this->setValue($model); + } + + /** + * Get the model for the field body. + * + * This method returns a string. + * + * @return string + */ + public function getFieldBodyModel() + { + return $this->getValue(); + } + + /** + * Get the (unencoded) value of this header. + * + * @return string + */ + public function getValue() + { + return $this->value; + } + + /** + * Set the (unencoded) value of this header. + * + * @param string $value + */ + public function setValue($value) + { + $this->clearCachedValueIf($this->value != $value); + $this->value = $value; + } + + /** + * Get the value of this header prepared for rendering. + * + * @return string + */ + public function getFieldBody() + { + if (!$this->getCachedValue()) { + $this->setCachedValue( + $this->encodeWords($this, $this->value) + ); + } + + return $this->getCachedValue(); + } +} diff --git a/user/plugins/email/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Mime/IdGenerator.php b/user/plugins/email/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Mime/IdGenerator.php new file mode 100644 index 0000000..3ce35f2 --- /dev/null +++ b/user/plugins/email/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Mime/IdGenerator.php @@ -0,0 +1,54 @@ +idRight = $idRight; + } + + /** + * Returns the right-hand side of the "@" used in all generated IDs. + * + * @return string + */ + public function getIdRight() + { + return $this->idRight; + } + + /** + * Sets the right-hand side of the "@" to use in all generated IDs. + * + * @param string $idRight + */ + public function setIdRight($idRight) + { + $this->idRight = $idRight; + } + + /** + * @return string + */ + public function generateId() + { + // 32 hex values for the left part + return bin2hex(random_bytes(16)).'@'.$this->idRight; + } +} diff --git a/user/plugins/email/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Mime/MimePart.php b/user/plugins/email/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Mime/MimePart.php new file mode 100644 index 0000000..d0b2e65 --- /dev/null +++ b/user/plugins/email/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Mime/MimePart.php @@ -0,0 +1,199 @@ +setContentType('text/plain'); + if (null !== $charset) { + $this->setCharset($charset); + } + } + + /** + * Set the body of this entity, either as a string, or as an instance of + * {@link Swift_OutputByteStream}. + * + * @param mixed $body + * @param string $contentType optional + * @param string $charset optional + * + * @return $this + */ + public function setBody($body, $contentType = null, $charset = null) + { + if (isset($charset)) { + $this->setCharset($charset); + } + $body = $this->convertString($body); + + parent::setBody($body, $contentType); + + return $this; + } + + /** + * Get the character set of this entity. + * + * @return string + */ + public function getCharset() + { + return $this->getHeaderParameter('Content-Type', 'charset'); + } + + /** + * Set the character set of this entity. + * + * @param string $charset + * + * @return $this + */ + public function setCharset($charset) + { + $this->setHeaderParameter('Content-Type', 'charset', $charset); + if ($charset !== $this->userCharset) { + $this->clearCache(); + } + $this->userCharset = $charset; + parent::charsetChanged($charset); + + return $this; + } + + /** + * Get the format of this entity (i.e. flowed or fixed). + * + * @return string + */ + public function getFormat() + { + return $this->getHeaderParameter('Content-Type', 'format'); + } + + /** + * Set the format of this entity (flowed or fixed). + * + * @param string $format + * + * @return $this + */ + public function setFormat($format) + { + $this->setHeaderParameter('Content-Type', 'format', $format); + $this->userFormat = $format; + + return $this; + } + + /** + * Test if delsp is being used for this entity. + * + * @return bool + */ + public function getDelSp() + { + return 'yes' === $this->getHeaderParameter('Content-Type', 'delsp'); + } + + /** + * Turn delsp on or off for this entity. + * + * @param bool $delsp + * + * @return $this + */ + public function setDelSp($delsp = true) + { + $this->setHeaderParameter('Content-Type', 'delsp', $delsp ? 'yes' : null); + $this->userDelSp = $delsp; + + return $this; + } + + /** + * Get the nesting level of this entity. + * + * @see LEVEL_TOP, LEVEL_ALTERNATIVE, LEVEL_MIXED, LEVEL_RELATED + * + * @return int + */ + public function getNestingLevel() + { + return $this->nestingLevel; + } + + /** + * Receive notification that the charset has changed on this document, or a + * parent document. + * + * @param string $charset + */ + public function charsetChanged($charset) + { + $this->setCharset($charset); + } + + /** Fix the content-type and encoding of this entity */ + protected function fixHeaders() + { + parent::fixHeaders(); + if (\count($this->getChildren())) { + $this->setHeaderParameter('Content-Type', 'charset', null); + $this->setHeaderParameter('Content-Type', 'format', null); + $this->setHeaderParameter('Content-Type', 'delsp', null); + } else { + $this->setCharset($this->userCharset); + $this->setFormat($this->userFormat); + $this->setDelSp($this->userDelSp); + } + } + + /** Set the nesting level of this entity */ + protected function setNestingLevel($level) + { + $this->nestingLevel = $level; + } + + /** Encode charset when charset is not utf-8 */ + protected function convertString($string) + { + $charset = strtolower($this->getCharset() ?? ''); + if (!\in_array($charset, ['utf-8', 'iso-8859-1', 'iso-8859-15', ''])) { + return mb_convert_encoding($string, $charset, 'utf-8'); + } + + return $string; + } +} diff --git a/user/plugins/email/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Mime/SimpleHeaderFactory.php b/user/plugins/email/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Mime/SimpleHeaderFactory.php new file mode 100644 index 0000000..ab3ce6b --- /dev/null +++ b/user/plugins/email/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Mime/SimpleHeaderFactory.php @@ -0,0 +1,195 @@ +encoder = $encoder; + $this->paramEncoder = $paramEncoder; + $this->emailValidator = $emailValidator; + $this->charset = $charset; + $this->addressEncoder = $addressEncoder ?? new Swift_AddressEncoder_IdnAddressEncoder(); + } + + /** + * Create a new Mailbox Header with a list of $addresses. + * + * @param string $name + * @param array|string|null $addresses + * + * @return Swift_Mime_Header + */ + public function createMailboxHeader($name, $addresses = null) + { + $header = new Swift_Mime_Headers_MailboxHeader($name, $this->encoder, $this->emailValidator, $this->addressEncoder); + if (isset($addresses)) { + $header->setFieldBodyModel($addresses); + } + $this->setHeaderCharset($header); + + return $header; + } + + /** + * Create a new Date header using $dateTime. + * + * @param string $name + * + * @return Swift_Mime_Header + */ + public function createDateHeader($name, DateTimeInterface $dateTime = null) + { + $header = new Swift_Mime_Headers_DateHeader($name); + if (isset($dateTime)) { + $header->setFieldBodyModel($dateTime); + } + $this->setHeaderCharset($header); + + return $header; + } + + /** + * Create a new basic text header with $name and $value. + * + * @param string $name + * @param string $value + * + * @return Swift_Mime_Header + */ + public function createTextHeader($name, $value = null) + { + $header = new Swift_Mime_Headers_UnstructuredHeader($name, $this->encoder); + if (isset($value)) { + $header->setFieldBodyModel($value); + } + $this->setHeaderCharset($header); + + return $header; + } + + /** + * Create a new ParameterizedHeader with $name, $value and $params. + * + * @param string $name + * @param string $value + * @param array $params + * + * @return Swift_Mime_Headers_ParameterizedHeader + */ + public function createParameterizedHeader($name, $value = null, $params = []) + { + $header = new Swift_Mime_Headers_ParameterizedHeader($name, $this->encoder, ('content-disposition' == strtolower($name ?? '')) ? $this->paramEncoder : null); + if (isset($value)) { + $header->setFieldBodyModel($value); + } + foreach ($params as $k => $v) { + $header->setParameter($k, $v); + } + $this->setHeaderCharset($header); + + return $header; + } + + /** + * Create a new ID header for Message-ID or Content-ID. + * + * @param string $name + * @param string|array $ids + * + * @return Swift_Mime_Header + */ + public function createIdHeader($name, $ids = null) + { + $header = new Swift_Mime_Headers_IdentificationHeader($name, $this->emailValidator); + if (isset($ids)) { + $header->setFieldBodyModel($ids); + } + $this->setHeaderCharset($header); + + return $header; + } + + /** + * Create a new Path header with an address (path) in it. + * + * @param string $name + * @param string $path + * + * @return Swift_Mime_Header + */ + public function createPathHeader($name, $path = null) + { + $header = new Swift_Mime_Headers_PathHeader($name, $this->emailValidator); + if (isset($path)) { + $header->setFieldBodyModel($path); + } + $this->setHeaderCharset($header); + + return $header; + } + + /** + * Notify this observer that the entity's charset has changed. + * + * @param string $charset + */ + public function charsetChanged($charset) + { + $this->charset = $charset; + $this->encoder->charsetChanged($charset); + $this->paramEncoder->charsetChanged($charset); + } + + /** + * Make a deep copy of object. + */ + public function __clone() + { + $this->encoder = clone $this->encoder; + $this->paramEncoder = clone $this->paramEncoder; + $this->addressEncoder = clone $this->addressEncoder; + } + + /** Apply the charset to the Header */ + private function setHeaderCharset(Swift_Mime_Header $header) + { + if (isset($this->charset)) { + $header->setCharset($this->charset); + } + } +} diff --git a/user/plugins/email/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Mime/SimpleHeaderSet.php b/user/plugins/email/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Mime/SimpleHeaderSet.php new file mode 100644 index 0000000..5195bcf --- /dev/null +++ b/user/plugins/email/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Mime/SimpleHeaderSet.php @@ -0,0 +1,399 @@ +factory = $factory; + if (isset($charset)) { + $this->setCharset($charset); + } + } + + public function newInstance() + { + return new self($this->factory); + } + + /** + * Set the charset used by these headers. + * + * @param string $charset + */ + public function setCharset($charset) + { + $this->charset = $charset; + $this->factory->charsetChanged($charset); + $this->notifyHeadersOfCharset($charset); + } + + /** + * Add a new Mailbox Header with a list of $addresses. + * + * @param string $name + * @param array|string $addresses + */ + public function addMailboxHeader($name, $addresses = null) + { + $this->storeHeader($name, $this->factory->createMailboxHeader($name, $addresses)); + } + + /** + * Add a new Date header using $dateTime. + * + * @param string $name + */ + public function addDateHeader($name, DateTimeInterface $dateTime = null) + { + $this->storeHeader($name, $this->factory->createDateHeader($name, $dateTime)); + } + + /** + * Add a new basic text header with $name and $value. + * + * @param string $name + * @param string $value + */ + public function addTextHeader($name, $value = null) + { + $this->storeHeader($name, $this->factory->createTextHeader($name, $value)); + } + + /** + * Add a new ParameterizedHeader with $name, $value and $params. + * + * @param string $name + * @param string $value + * @param array $params + */ + public function addParameterizedHeader($name, $value = null, $params = []) + { + $this->storeHeader($name, $this->factory->createParameterizedHeader($name, $value, $params)); + } + + /** + * Add a new ID header for Message-ID or Content-ID. + * + * @param string $name + * @param string|array $ids + */ + public function addIdHeader($name, $ids = null) + { + $this->storeHeader($name, $this->factory->createIdHeader($name, $ids)); + } + + /** + * Add a new Path header with an address (path) in it. + * + * @param string $name + * @param string $path + */ + public function addPathHeader($name, $path = null) + { + $this->storeHeader($name, $this->factory->createPathHeader($name, $path)); + } + + /** + * Returns true if at least one header with the given $name exists. + * + * If multiple headers match, the actual one may be specified by $index. + * + * @param string $name + * @param int $index + * + * @return bool + */ + public function has($name, $index = 0) + { + $lowerName = strtolower($name ?? ''); + + if (!\array_key_exists($lowerName, $this->headers)) { + return false; + } + + if (\func_num_args() < 2) { + // index was not specified, so we only need to check that there is at least one header value set + return (bool) \count($this->headers[$lowerName]); + } + + return \array_key_exists($index, $this->headers[$lowerName]); + } + + /** + * Set a header in the HeaderSet. + * + * The header may be a previously fetched header via {@link get()} or it may + * be one that has been created separately. + * + * If $index is specified, the header will be inserted into the set at this + * offset. + * + * @param int $index + */ + public function set(Swift_Mime_Header $header, $index = 0) + { + $this->storeHeader($header->getFieldName(), $header, $index); + } + + /** + * Get the header with the given $name. + * + * If multiple headers match, the actual one may be specified by $index. + * Returns NULL if none present. + * + * @param string $name + * @param int $index + * + * @return Swift_Mime_Header|null + */ + public function get($name, $index = 0) + { + $name = strtolower($name ?? ''); + + if (\func_num_args() < 2) { + if ($this->has($name)) { + $values = array_values($this->headers[$name]); + + return array_shift($values); + } + } else { + if ($this->has($name, $index)) { + return $this->headers[$name][$index]; + } + } + } + + /** + * Get all headers with the given $name. + * + * @param string $name + * + * @return array + */ + public function getAll($name = null) + { + if (!isset($name)) { + $headers = []; + foreach ($this->headers as $collection) { + $headers = array_merge($headers, $collection); + } + + return $headers; + } + + $lowerName = strtolower($name ?? ''); + if (!\array_key_exists($lowerName, $this->headers)) { + return []; + } + + return $this->headers[$lowerName]; + } + + /** + * Return the name of all Headers. + * + * @return array + */ + public function listAll() + { + $headers = $this->headers; + if ($this->canSort()) { + uksort($headers, [$this, 'sortHeaders']); + } + + return array_keys($headers); + } + + /** + * Remove the header with the given $name if it's set. + * + * If multiple headers match, the actual one may be specified by $index. + * + * @param string $name + * @param int $index + */ + public function remove($name, $index = 0) + { + $lowerName = strtolower($name ?? ''); + unset($this->headers[$lowerName][$index]); + } + + /** + * Remove all headers with the given $name. + * + * @param string $name + */ + public function removeAll($name) + { + $lowerName = strtolower($name ?? ''); + unset($this->headers[$lowerName]); + } + + /** + * Define a list of Header names as an array in the correct order. + * + * These Headers will be output in the given order where present. + */ + public function defineOrdering(array $sequence) + { + $this->order = array_flip(array_map('strtolower', $sequence)); + } + + /** + * Set a list of header names which must always be displayed when set. + * + * Usually headers without a field value won't be output unless set here. + */ + public function setAlwaysDisplayed(array $names) + { + $this->required = array_flip(array_map('strtolower', $names)); + } + + /** + * Notify this observer that the entity's charset has changed. + * + * @param string $charset + */ + public function charsetChanged($charset) + { + $this->setCharset($charset); + } + + /** + * Returns a string with a representation of all headers. + * + * @return string + */ + public function toString() + { + $string = ''; + $headers = $this->headers; + if ($this->canSort()) { + uksort($headers, [$this, 'sortHeaders']); + } + foreach ($headers as $collection) { + foreach ($collection as $header) { + if ($this->isDisplayed($header) || '' != $header->getFieldBody()) { + $string .= $header->toString(); + } + } + } + + return $string; + } + + /** + * Returns a string representation of this object. + * + * @return string + * + * @see toString() + */ + public function __toString() + { + return $this->toString(); + } + + /** Save a Header to the internal collection */ + private function storeHeader($name, Swift_Mime_Header $header, $offset = null) + { + if (!isset($this->headers[strtolower($name ?? '')])) { + $this->headers[strtolower($name ?? '')] = []; + } + if (!isset($offset)) { + $this->headers[strtolower($name ?? '')][] = $header; + } else { + $this->headers[strtolower($name ?? '')][$offset] = $header; + } + } + + /** Test if the headers can be sorted */ + private function canSort() + { + return \count($this->order) > 0; + } + + /** uksort() algorithm for Header ordering */ + private function sortHeaders($a, $b) + { + $lowerA = strtolower($a ?? ''); + $lowerB = strtolower($b ?? ''); + $aPos = \array_key_exists($lowerA, $this->order) ? $this->order[$lowerA] : -1; + $bPos = \array_key_exists($lowerB, $this->order) ? $this->order[$lowerB] : -1; + + if (-1 === $aPos && -1 === $bPos) { + // just be sure to be determinist here + return $a > $b ? -1 : 1; + } + + if (-1 == $aPos) { + return 1; + } elseif (-1 == $bPos) { + return -1; + } + + return $aPos < $bPos ? -1 : 1; + } + + /** Test if the given Header is always displayed */ + private function isDisplayed(Swift_Mime_Header $header) + { + return \array_key_exists(strtolower($header->getFieldName() ?? ''), $this->required); + } + + /** Notify all Headers of the new charset */ + private function notifyHeadersOfCharset($charset) + { + foreach ($this->headers as $headerGroup) { + foreach ($headerGroup as $header) { + $header->setCharset($charset); + } + } + } + + /** + * Make a deep copy of object. + */ + public function __clone() + { + $this->factory = clone $this->factory; + foreach ($this->headers as $groupKey => $headerGroup) { + foreach ($headerGroup as $key => $header) { + $this->headers[$groupKey][$key] = clone $header; + } + } + } +} diff --git a/user/plugins/email/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Mime/SimpleMessage.php b/user/plugins/email/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Mime/SimpleMessage.php new file mode 100644 index 0000000..62da165 --- /dev/null +++ b/user/plugins/email/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Mime/SimpleMessage.php @@ -0,0 +1,642 @@ +getHeaders()->defineOrdering([ + 'Return-Path', + 'Received', + 'DKIM-Signature', + 'DomainKey-Signature', + 'Sender', + 'Message-ID', + 'Date', + 'Subject', + 'From', + 'Reply-To', + 'To', + 'Cc', + 'Bcc', + 'MIME-Version', + 'Content-Type', + 'Content-Transfer-Encoding', + ]); + $this->getHeaders()->setAlwaysDisplayed(['Date', 'Message-ID', 'From']); + $this->getHeaders()->addTextHeader('MIME-Version', '1.0'); + $this->setDate(new DateTimeImmutable()); + $this->setId($this->getId()); + $this->getHeaders()->addMailboxHeader('From'); + } + + /** + * Always returns {@link LEVEL_TOP} for a message instance. + * + * @return int + */ + public function getNestingLevel() + { + return self::LEVEL_TOP; + } + + /** + * Set the subject of this message. + * + * @param string $subject + * + * @return $this + */ + public function setSubject($subject) + { + if (!$this->setHeaderFieldModel('Subject', $subject)) { + $this->getHeaders()->addTextHeader('Subject', $subject); + } + + return $this; + } + + /** + * Get the subject of this message. + * + * @return string + */ + public function getSubject() + { + return $this->getHeaderFieldModel('Subject'); + } + + /** + * Set the date at which this message was created. + * + * @return $this + */ + public function setDate(DateTimeInterface $dateTime) + { + if (!$this->setHeaderFieldModel('Date', $dateTime)) { + $this->getHeaders()->addDateHeader('Date', $dateTime); + } + + return $this; + } + + /** + * Get the date at which this message was created. + * + * @return DateTimeInterface + */ + public function getDate() + { + return $this->getHeaderFieldModel('Date'); + } + + /** + * Set the return-path (the bounce address) of this message. + * + * @param string $address + * + * @return $this + */ + public function setReturnPath($address) + { + if (!$this->setHeaderFieldModel('Return-Path', $address)) { + $this->getHeaders()->addPathHeader('Return-Path', $address); + } + + return $this; + } + + /** + * Get the return-path (bounce address) of this message. + * + * @return string + */ + public function getReturnPath() + { + return $this->getHeaderFieldModel('Return-Path'); + } + + /** + * Set the sender of this message. + * + * This does not override the From field, but it has a higher significance. + * + * @param string $address + * @param string $name optional + * + * @return $this + */ + public function setSender($address, $name = null) + { + if (!\is_array($address) && isset($name)) { + $address = [$address => $name]; + } + + if (!$this->setHeaderFieldModel('Sender', (array) $address)) { + $this->getHeaders()->addMailboxHeader('Sender', (array) $address); + } + + return $this; + } + + /** + * Get the sender of this message. + * + * @return string + */ + public function getSender() + { + return $this->getHeaderFieldModel('Sender'); + } + + /** + * Add a From: address to this message. + * + * If $name is passed this name will be associated with the address. + * + * @param string $address + * @param string $name optional + * + * @return $this + */ + public function addFrom($address, $name = null) + { + $current = $this->getFrom(); + $current[$address] = $name; + + return $this->setFrom($current); + } + + /** + * Set the from address of this message. + * + * You may pass an array of addresses if this message is from multiple people. + * + * If $name is passed and the first parameter is a string, this name will be + * associated with the address. + * + * @param string|array $addresses + * @param string $name optional + * + * @return $this + */ + public function setFrom($addresses, $name = null) + { + if (!\is_array($addresses) && isset($name)) { + $addresses = [$addresses => $name]; + } + + if (!$this->setHeaderFieldModel('From', (array) $addresses)) { + $this->getHeaders()->addMailboxHeader('From', (array) $addresses); + } + + return $this; + } + + /** + * Get the from address of this message. + * + * @return mixed + */ + public function getFrom() + { + return $this->getHeaderFieldModel('From'); + } + + /** + * Add a Reply-To: address to this message. + * + * If $name is passed this name will be associated with the address. + * + * @param string $address + * @param string $name optional + * + * @return $this + */ + public function addReplyTo($address, $name = null) + { + $current = $this->getReplyTo(); + $current[$address] = $name; + + return $this->setReplyTo($current); + } + + /** + * Set the reply-to address of this message. + * + * You may pass an array of addresses if replies will go to multiple people. + * + * If $name is passed and the first parameter is a string, this name will be + * associated with the address. + * + * @param mixed $addresses + * @param string $name optional + * + * @return $this + */ + public function setReplyTo($addresses, $name = null) + { + if (!\is_array($addresses) && isset($name)) { + $addresses = [$addresses => $name]; + } + + if (!$this->setHeaderFieldModel('Reply-To', (array) $addresses)) { + $this->getHeaders()->addMailboxHeader('Reply-To', (array) $addresses); + } + + return $this; + } + + /** + * Get the reply-to address of this message. + * + * @return string + */ + public function getReplyTo() + { + return $this->getHeaderFieldModel('Reply-To'); + } + + /** + * Add a To: address to this message. + * + * If $name is passed this name will be associated with the address. + * + * @param string $address + * @param string $name optional + * + * @return $this + */ + public function addTo($address, $name = null) + { + $current = $this->getTo(); + $current[$address] = $name; + + return $this->setTo($current); + } + + /** + * Set the to addresses of this message. + * + * If multiple recipients will receive the message an array should be used. + * Example: array('receiver@domain.org', 'other@domain.org' => 'A name') + * + * If $name is passed and the first parameter is a string, this name will be + * associated with the address. + * + * @param mixed $addresses + * @param string $name optional + * + * @return $this + */ + public function setTo($addresses, $name = null) + { + if (!\is_array($addresses) && isset($name)) { + $addresses = [$addresses => $name]; + } + + if (!$this->setHeaderFieldModel('To', (array) $addresses)) { + $this->getHeaders()->addMailboxHeader('To', (array) $addresses); + } + + return $this; + } + + /** + * Get the To addresses of this message. + * + * @return array + */ + public function getTo() + { + return $this->getHeaderFieldModel('To'); + } + + /** + * Add a Cc: address to this message. + * + * If $name is passed this name will be associated with the address. + * + * @param string $address + * @param string $name optional + * + * @return $this + */ + public function addCc($address, $name = null) + { + $current = $this->getCc(); + $current[$address] = $name; + + return $this->setCc($current); + } + + /** + * Set the Cc addresses of this message. + * + * If $name is passed and the first parameter is a string, this name will be + * associated with the address. + * + * @param mixed $addresses + * @param string $name optional + * + * @return $this + */ + public function setCc($addresses, $name = null) + { + if (!\is_array($addresses) && isset($name)) { + $addresses = [$addresses => $name]; + } + + if (!$this->setHeaderFieldModel('Cc', (array) $addresses)) { + $this->getHeaders()->addMailboxHeader('Cc', (array) $addresses); + } + + return $this; + } + + /** + * Get the Cc address of this message. + * + * @return array + */ + public function getCc() + { + return $this->getHeaderFieldModel('Cc'); + } + + /** + * Add a Bcc: address to this message. + * + * If $name is passed this name will be associated with the address. + * + * @param string $address + * @param string $name optional + * + * @return $this + */ + public function addBcc($address, $name = null) + { + $current = $this->getBcc(); + $current[$address] = $name; + + return $this->setBcc($current); + } + + /** + * Set the Bcc addresses of this message. + * + * If $name is passed and the first parameter is a string, this name will be + * associated with the address. + * + * @param mixed $addresses + * @param string $name optional + * + * @return $this + */ + public function setBcc($addresses, $name = null) + { + if (!\is_array($addresses) && isset($name)) { + $addresses = [$addresses => $name]; + } + + if (!$this->setHeaderFieldModel('Bcc', (array) $addresses)) { + $this->getHeaders()->addMailboxHeader('Bcc', (array) $addresses); + } + + return $this; + } + + /** + * Get the Bcc addresses of this message. + * + * @return array + */ + public function getBcc() + { + return $this->getHeaderFieldModel('Bcc'); + } + + /** + * Set the priority of this message. + * + * The value is an integer where 1 is the highest priority and 5 is the lowest. + * + * @param int $priority + * + * @return $this + */ + public function setPriority($priority) + { + $priorityMap = [ + self::PRIORITY_HIGHEST => 'Highest', + self::PRIORITY_HIGH => 'High', + self::PRIORITY_NORMAL => 'Normal', + self::PRIORITY_LOW => 'Low', + self::PRIORITY_LOWEST => 'Lowest', + ]; + $pMapKeys = array_keys($priorityMap); + if ($priority > max($pMapKeys)) { + $priority = max($pMapKeys); + } elseif ($priority < min($pMapKeys)) { + $priority = min($pMapKeys); + } + if (!$this->setHeaderFieldModel('X-Priority', + sprintf('%d (%s)', $priority, $priorityMap[$priority]))) { + $this->getHeaders()->addTextHeader('X-Priority', + sprintf('%d (%s)', $priority, $priorityMap[$priority])); + } + + return $this; + } + + /** + * Get the priority of this message. + * + * The returned value is an integer where 1 is the highest priority and 5 + * is the lowest. + * + * @return int + */ + public function getPriority() + { + list($priority) = sscanf($this->getHeaderFieldModel('X-Priority'), + '%[1-5]' + ); + + return $priority ?? 3; + } + + /** + * Ask for a delivery receipt from the recipient to be sent to $addresses. + * + * @param array $addresses + * + * @return $this + */ + public function setReadReceiptTo($addresses) + { + if (!$this->setHeaderFieldModel('Disposition-Notification-To', $addresses)) { + $this->getHeaders() + ->addMailboxHeader('Disposition-Notification-To', $addresses); + } + + return $this; + } + + /** + * Get the addresses to which a read-receipt will be sent. + * + * @return string + */ + public function getReadReceiptTo() + { + return $this->getHeaderFieldModel('Disposition-Notification-To'); + } + + /** + * Attach a {@link Swift_Mime_SimpleMimeEntity} such as an Attachment or MimePart. + * + * @return $this + */ + public function attach(Swift_Mime_SimpleMimeEntity $entity) + { + $this->setChildren(array_merge($this->getChildren(), [$entity])); + + return $this; + } + + /** + * Remove an already attached entity. + * + * @return $this + */ + public function detach(Swift_Mime_SimpleMimeEntity $entity) + { + $newChildren = []; + foreach ($this->getChildren() as $child) { + if ($entity !== $child) { + $newChildren[] = $child; + } + } + $this->setChildren($newChildren); + + return $this; + } + + /** + * Attach a {@link Swift_Mime_SimpleMimeEntity} and return it's CID source. + * + * This method should be used when embedding images or other data in a message. + * + * @return string + */ + public function embed(Swift_Mime_SimpleMimeEntity $entity) + { + $this->attach($entity); + + return 'cid:'.$entity->getId(); + } + + /** + * Get this message as a complete string. + * + * @return string + */ + public function toString() + { + if (\count($children = $this->getChildren()) > 0 && '' != $this->getBody()) { + $this->setChildren(array_merge([$this->becomeMimePart()], $children)); + $string = parent::toString(); + $this->setChildren($children); + } else { + $string = parent::toString(); + } + + return $string; + } + + /** + * Returns a string representation of this object. + * + * @see toString() + * + * @return string + */ + public function __toString() + { + return $this->toString(); + } + + /** + * Write this message to a {@link Swift_InputByteStream}. + */ + public function toByteStream(Swift_InputByteStream $is) + { + if (\count($children = $this->getChildren()) > 0 && '' != $this->getBody()) { + $this->setChildren(array_merge([$this->becomeMimePart()], $children)); + parent::toByteStream($is); + $this->setChildren($children); + } else { + parent::toByteStream($is); + } + } + + /** @see Swift_Mime_SimpleMimeEntity::getIdField() */ + protected function getIdField() + { + return 'Message-ID'; + } + + /** Turn the body of this message into a child of itself if needed */ + protected function becomeMimePart() + { + $part = new parent($this->getHeaders()->newInstance(), $this->getEncoder(), + $this->getCache(), $this->getIdGenerator(), $this->userCharset + ); + $part->setContentType($this->userContentType); + $part->setBody($this->getBody()); + $part->setFormat($this->userFormat); + $part->setDelSp($this->userDelSp); + $part->setNestingLevel($this->getTopNestingLevel()); + + return $part; + } + + /** Get the highest nesting level nested inside this message */ + private function getTopNestingLevel() + { + $highestLevel = $this->getNestingLevel(); + foreach ($this->getChildren() as $child) { + $childLevel = $child->getNestingLevel(); + if ($highestLevel < $childLevel) { + $highestLevel = $childLevel; + } + } + + return $highestLevel; + } +} diff --git a/user/plugins/email/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Mime/SimpleMimeEntity.php b/user/plugins/email/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Mime/SimpleMimeEntity.php new file mode 100644 index 0000000..03eaf47 --- /dev/null +++ b/user/plugins/email/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Mime/SimpleMimeEntity.php @@ -0,0 +1,826 @@ + [self::LEVEL_TOP, self::LEVEL_MIXED], + 'multipart/alternative' => [self::LEVEL_MIXED, self::LEVEL_ALTERNATIVE], + 'multipart/related' => [self::LEVEL_ALTERNATIVE, self::LEVEL_RELATED], + ]; + + /** A set of filter rules to define what level an entity should be nested at */ + private $compoundLevelFilters = []; + + /** The nesting level of this entity */ + private $nestingLevel = self::LEVEL_ALTERNATIVE; + + /** A KeyCache instance used during encoding and streaming */ + private $cache; + + /** Direct descendants of this entity */ + private $immediateChildren = []; + + /** All descendants of this entity */ + private $children = []; + + /** The maximum line length of the body of this entity */ + private $maxLineLength = 78; + + /** The order in which alternative mime types should appear */ + private $alternativePartOrder = [ + 'text/plain' => 1, + 'text/html' => 2, + 'multipart/related' => 3, + ]; + + /** The CID of this entity */ + private $id; + + /** The key used for accessing the cache */ + private $cacheKey; + + protected $userContentType; + + /** + * Create a new SimpleMimeEntity with $headers, $encoder and $cache. + */ + public function __construct(Swift_Mime_SimpleHeaderSet $headers, Swift_Mime_ContentEncoder $encoder, Swift_KeyCache $cache, Swift_IdGenerator $idGenerator) + { + $this->cacheKey = bin2hex(random_bytes(16)); // set 32 hex values + $this->cache = $cache; + $this->headers = $headers; + $this->idGenerator = $idGenerator; + $this->setEncoder($encoder); + $this->headers->defineOrdering(['Content-Type', 'Content-Transfer-Encoding']); + + // This array specifies that, when the entire MIME document contains + // $compoundLevel, then for each child within $level, if its Content-Type + // is $contentType then it should be treated as if it's level is + // $neededLevel instead. I tried to write that unambiguously! :-\ + // Data Structure: + // array ( + // $compoundLevel => array( + // $level => array( + // $contentType => $neededLevel + // ) + // ) + // ) + + $this->compoundLevelFilters = [ + (self::LEVEL_ALTERNATIVE + self::LEVEL_RELATED) => [ + self::LEVEL_ALTERNATIVE => [ + 'text/plain' => self::LEVEL_ALTERNATIVE, + 'text/html' => self::LEVEL_RELATED, + ], + ], + ]; + + $this->id = $this->idGenerator->generateId(); + } + + /** + * Generate a new Content-ID or Message-ID for this MIME entity. + * + * @return string + */ + public function generateId() + { + $this->setId($this->idGenerator->generateId()); + + return $this->id; + } + + /** + * Get the {@link Swift_Mime_SimpleHeaderSet} for this entity. + * + * @return Swift_Mime_SimpleHeaderSet + */ + public function getHeaders() + { + return $this->headers; + } + + /** + * Get the nesting level of this entity. + * + * @see LEVEL_TOP, LEVEL_MIXED, LEVEL_RELATED, LEVEL_ALTERNATIVE + * + * @return int + */ + public function getNestingLevel() + { + return $this->nestingLevel; + } + + /** + * Get the Content-type of this entity. + * + * @return string + */ + public function getContentType() + { + return $this->getHeaderFieldModel('Content-Type'); + } + + /** + * Get the Body Content-type of this entity. + * + * @return string + */ + public function getBodyContentType() + { + return $this->userContentType; + } + + /** + * Set the Content-type of this entity. + * + * @param string $type + * + * @return $this + */ + public function setContentType($type) + { + $this->setContentTypeInHeaders($type); + // Keep track of the value so that if the content-type changes automatically + // due to added child entities, it can be restored if they are later removed + $this->userContentType = $type; + + return $this; + } + + /** + * Get the CID of this entity. + * + * The CID will only be present in headers if a Content-ID header is present. + * + * @return string + */ + public function getId() + { + $tmp = (array) $this->getHeaderFieldModel($this->getIdField()); + + return $this->headers->has($this->getIdField()) ? current($tmp) : $this->id; + } + + /** + * Set the CID of this entity. + * + * @param string $id + * + * @return $this + */ + public function setId($id) + { + if (!$this->setHeaderFieldModel($this->getIdField(), $id)) { + $this->headers->addIdHeader($this->getIdField(), $id); + } + $this->id = $id; + + return $this; + } + + /** + * Get the description of this entity. + * + * This value comes from the Content-Description header if set. + * + * @return string + */ + public function getDescription() + { + return $this->getHeaderFieldModel('Content-Description'); + } + + /** + * Set the description of this entity. + * + * This method sets a value in the Content-ID header. + * + * @param string $description + * + * @return $this + */ + public function setDescription($description) + { + if (!$this->setHeaderFieldModel('Content-Description', $description)) { + $this->headers->addTextHeader('Content-Description', $description); + } + + return $this; + } + + /** + * Get the maximum line length of the body of this entity. + * + * @return int + */ + public function getMaxLineLength() + { + return $this->maxLineLength; + } + + /** + * Set the maximum line length of lines in this body. + * + * Though not enforced by the library, lines should not exceed 1000 chars. + * + * @param int $length + * + * @return $this + */ + public function setMaxLineLength($length) + { + $this->maxLineLength = $length; + + return $this; + } + + /** + * Get all children added to this entity. + * + * @return Swift_Mime_SimpleMimeEntity[] + */ + public function getChildren() + { + return $this->children; + } + + /** + * Set all children of this entity. + * + * @param Swift_Mime_SimpleMimeEntity[] $children + * @param int $compoundLevel For internal use only + * + * @return $this + */ + public function setChildren(array $children, $compoundLevel = null) + { + // TODO: Try to refactor this logic + $compoundLevel = $compoundLevel ?? $this->getCompoundLevel($children); + $immediateChildren = []; + $grandchildren = []; + $newContentType = $this->userContentType; + + foreach ($children as $child) { + $level = $this->getNeededChildLevel($child, $compoundLevel); + if (empty($immediateChildren)) { + //first iteration + $immediateChildren = [$child]; + } else { + $nextLevel = $this->getNeededChildLevel($immediateChildren[0], $compoundLevel); + if ($nextLevel == $level) { + $immediateChildren[] = $child; + } elseif ($level < $nextLevel) { + // Re-assign immediateChildren to grandchildren + $grandchildren = array_merge($grandchildren, $immediateChildren); + // Set new children + $immediateChildren = [$child]; + } else { + $grandchildren[] = $child; + } + } + } + + if ($immediateChildren) { + $lowestLevel = $this->getNeededChildLevel($immediateChildren[0], $compoundLevel); + + // Determine which composite media type is needed to accommodate the + // immediate children + foreach ($this->compositeRanges as $mediaType => $range) { + if ($lowestLevel > $range[0] && $lowestLevel <= $range[1]) { + $newContentType = $mediaType; + + break; + } + } + + // Put any grandchildren in a subpart + if (!empty($grandchildren)) { + $subentity = $this->createChild(); + $subentity->setNestingLevel($lowestLevel); + $subentity->setChildren($grandchildren, $compoundLevel); + array_unshift($immediateChildren, $subentity); + } + } + + $this->immediateChildren = $immediateChildren; + $this->children = $children; + $this->setContentTypeInHeaders($newContentType); + $this->fixHeaders(); + $this->sortChildren(); + + return $this; + } + + /** + * Get the body of this entity as a string. + * + * @return string + */ + public function getBody() + { + return $this->body instanceof Swift_OutputByteStream ? $this->readStream($this->body) : $this->body; + } + + /** + * Set the body of this entity, either as a string, or as an instance of + * {@link Swift_OutputByteStream}. + * + * @param mixed $body + * @param string $contentType optional + * + * @return $this + */ + public function setBody($body, $contentType = null) + { + if ($body !== $this->body) { + $this->clearCache(); + } + + $this->body = $body; + if (null !== $contentType) { + $this->setContentType($contentType); + } + + return $this; + } + + /** + * Get the encoder used for the body of this entity. + * + * @return Swift_Mime_ContentEncoder + */ + public function getEncoder() + { + return $this->encoder; + } + + /** + * Set the encoder used for the body of this entity. + * + * @return $this + */ + public function setEncoder(Swift_Mime_ContentEncoder $encoder) + { + if ($encoder !== $this->encoder) { + $this->clearCache(); + } + + $this->encoder = $encoder; + $this->setEncoding($encoder->getName()); + $this->notifyEncoderChanged($encoder); + + return $this; + } + + /** + * Get the boundary used to separate children in this entity. + * + * @return string + */ + public function getBoundary() + { + if (!isset($this->boundary)) { + $this->boundary = '_=_swift_'.time().'_'.bin2hex(random_bytes(16)).'_=_'; + } + + return $this->boundary; + } + + /** + * Set the boundary used to separate children in this entity. + * + * @param string $boundary + * + * @throws Swift_RfcComplianceException + * + * @return $this + */ + public function setBoundary($boundary) + { + $this->assertValidBoundary($boundary); + $this->boundary = $boundary; + + return $this; + } + + /** + * Receive notification that the charset of this entity, or a parent entity + * has changed. + * + * @param string $charset + */ + public function charsetChanged($charset) + { + $this->notifyCharsetChanged($charset); + } + + /** + * Receive notification that the encoder of this entity or a parent entity + * has changed. + */ + public function encoderChanged(Swift_Mime_ContentEncoder $encoder) + { + $this->notifyEncoderChanged($encoder); + } + + /** + * Get this entire entity as a string. + * + * @return string + */ + public function toString() + { + $string = $this->headers->toString(); + $string .= $this->bodyToString(); + + return $string; + } + + /** + * Get this entire entity as a string. + * + * @return string + */ + protected function bodyToString() + { + $string = ''; + + if (isset($this->body) && empty($this->immediateChildren)) { + if ($this->cache->hasKey($this->cacheKey, 'body')) { + $body = $this->cache->getString($this->cacheKey, 'body'); + } else { + $body = "\r\n".$this->encoder->encodeString($this->getBody(), 0, $this->getMaxLineLength()); + $this->cache->setString($this->cacheKey, 'body', $body, Swift_KeyCache::MODE_WRITE); + } + $string .= $body; + } + + if (!empty($this->immediateChildren)) { + foreach ($this->immediateChildren as $child) { + $string .= "\r\n\r\n--".$this->getBoundary()."\r\n"; + $string .= $child->toString(); + } + $string .= "\r\n\r\n--".$this->getBoundary()."--\r\n"; + } + + return $string; + } + + /** + * Returns a string representation of this object. + * + * @see toString() + * + * @return string + */ + public function __toString() + { + return $this->toString(); + } + + /** + * Write this entire entity to a {@see Swift_InputByteStream}. + */ + public function toByteStream(Swift_InputByteStream $is) + { + $is->write($this->headers->toString()); + $is->commit(); + + $this->bodyToByteStream($is); + } + + /** + * Write this entire entity to a {@link Swift_InputByteStream}. + */ + protected function bodyToByteStream(Swift_InputByteStream $is) + { + if (empty($this->immediateChildren)) { + if (isset($this->body)) { + if ($this->cache->hasKey($this->cacheKey, 'body')) { + $this->cache->exportToByteStream($this->cacheKey, 'body', $is); + } else { + $cacheIs = $this->cache->getInputByteStream($this->cacheKey, 'body'); + if ($cacheIs) { + $is->bind($cacheIs); + } + + $is->write("\r\n"); + + if ($this->body instanceof Swift_OutputByteStream) { + $this->body->setReadPointer(0); + + $this->encoder->encodeByteStream($this->body, $is, 0, $this->getMaxLineLength()); + } else { + $is->write($this->encoder->encodeString($this->getBody(), 0, $this->getMaxLineLength())); + } + + if ($cacheIs) { + $is->unbind($cacheIs); + } + } + } + } + + if (!empty($this->immediateChildren)) { + foreach ($this->immediateChildren as $child) { + $is->write("\r\n\r\n--".$this->getBoundary()."\r\n"); + $child->toByteStream($is); + } + $is->write("\r\n\r\n--".$this->getBoundary()."--\r\n"); + } + } + + /** + * Get the name of the header that provides the ID of this entity. + */ + protected function getIdField() + { + return 'Content-ID'; + } + + /** + * Get the model data (usually an array or a string) for $field. + */ + protected function getHeaderFieldModel($field) + { + if ($this->headers->has($field)) { + return $this->headers->get($field)->getFieldBodyModel(); + } + } + + /** + * Set the model data for $field. + */ + protected function setHeaderFieldModel($field, $model) + { + if ($this->headers->has($field)) { + $this->headers->get($field)->setFieldBodyModel($model); + + return true; + } + + return false; + } + + /** + * Get the parameter value of $parameter on $field header. + */ + protected function getHeaderParameter($field, $parameter) + { + if ($this->headers->has($field)) { + return $this->headers->get($field)->getParameter($parameter); + } + } + + /** + * Set the parameter value of $parameter on $field header. + */ + protected function setHeaderParameter($field, $parameter, $value) + { + if ($this->headers->has($field)) { + $this->headers->get($field)->setParameter($parameter, $value); + + return true; + } + + return false; + } + + /** + * Re-evaluate what content type and encoding should be used on this entity. + */ + protected function fixHeaders() + { + if (\count($this->immediateChildren)) { + $this->setHeaderParameter('Content-Type', 'boundary', + $this->getBoundary() + ); + $this->headers->remove('Content-Transfer-Encoding'); + } else { + $this->setHeaderParameter('Content-Type', 'boundary', null); + $this->setEncoding($this->encoder->getName()); + } + } + + /** + * Get the KeyCache used in this entity. + * + * @return Swift_KeyCache + */ + protected function getCache() + { + return $this->cache; + } + + /** + * Get the ID generator. + * + * @return Swift_IdGenerator + */ + protected function getIdGenerator() + { + return $this->idGenerator; + } + + /** + * Empty the KeyCache for this entity. + */ + protected function clearCache() + { + $this->cache->clearKey($this->cacheKey, 'body'); + } + + private function readStream(Swift_OutputByteStream $os) + { + $string = ''; + while (false !== $bytes = $os->read(8192)) { + $string .= $bytes; + } + + $os->setReadPointer(0); + + return $string; + } + + private function setEncoding($encoding) + { + if (!$this->setHeaderFieldModel('Content-Transfer-Encoding', $encoding)) { + $this->headers->addTextHeader('Content-Transfer-Encoding', $encoding); + } + } + + private function assertValidBoundary($boundary) + { + if (!preg_match('/^[a-z0-9\'\(\)\+_\-,\.\/:=\?\ ]{0,69}[a-z0-9\'\(\)\+_\-,\.\/:=\?]$/Di', $boundary)) { + throw new Swift_RfcComplianceException('Mime boundary set is not RFC 2046 compliant.'); + } + } + + private function setContentTypeInHeaders($type) + { + if (!$this->setHeaderFieldModel('Content-Type', $type)) { + $this->headers->addParameterizedHeader('Content-Type', $type); + } + } + + private function setNestingLevel($level) + { + $this->nestingLevel = $level; + } + + private function getCompoundLevel($children) + { + $level = 0; + foreach ($children as $child) { + $level |= $child->getNestingLevel(); + } + + return $level; + } + + private function getNeededChildLevel($child, $compoundLevel) + { + $filter = []; + foreach ($this->compoundLevelFilters as $bitmask => $rules) { + if (($compoundLevel & $bitmask) === $bitmask) { + $filter = $rules + $filter; + } + } + + $realLevel = $child->getNestingLevel(); + $lowercaseType = strtolower($child->getContentType() ?? ''); + + if (isset($filter[$realLevel]) && isset($filter[$realLevel][$lowercaseType])) { + return $filter[$realLevel][$lowercaseType]; + } + + return $realLevel; + } + + private function createChild() + { + return new self($this->headers->newInstance(), $this->encoder, $this->cache, $this->idGenerator); + } + + private function notifyEncoderChanged(Swift_Mime_ContentEncoder $encoder) + { + foreach ($this->immediateChildren as $child) { + $child->encoderChanged($encoder); + } + } + + private function notifyCharsetChanged($charset) + { + $this->encoder->charsetChanged($charset); + $this->headers->charsetChanged($charset); + foreach ($this->immediateChildren as $child) { + $child->charsetChanged($charset); + } + } + + private function sortChildren() + { + $shouldSort = false; + foreach ($this->immediateChildren as $child) { + // NOTE: This include alternative parts moved into a related part + if (self::LEVEL_ALTERNATIVE == $child->getNestingLevel()) { + $shouldSort = true; + break; + } + } + + // Sort in order of preference, if there is one + if ($shouldSort) { + // Group the messages by order of preference + $sorted = []; + foreach ($this->immediateChildren as $child) { + $type = $child->getContentType(); + $level = \array_key_exists($type, $this->alternativePartOrder) ? $this->alternativePartOrder[$type] : max($this->alternativePartOrder) + 1; + + if (empty($sorted[$level])) { + $sorted[$level] = []; + } + + $sorted[$level][] = $child; + } + + ksort($sorted); + + $this->immediateChildren = array_reduce($sorted, 'array_merge', []); + } + } + + /** + * Empties it's own contents from the cache. + */ + public function __destruct() + { + if ($this->cache instanceof Swift_KeyCache) { + $this->cache->clearAll($this->cacheKey); + } + } + + /** + * Make a deep copy of object. + */ + public function __clone() + { + $this->headers = clone $this->headers; + $this->encoder = clone $this->encoder; + $this->cacheKey = bin2hex(random_bytes(16)); // set 32 hex values + $children = []; + foreach ($this->children as $pos => $child) { + $children[$pos] = clone $child; + } + $this->setChildren($children); + } + + public function __wakeup() + { + $this->cacheKey = bin2hex(random_bytes(16)); // set 32 hex values + $this->cache = new Swift_KeyCache_ArrayKeyCache(new Swift_KeyCache_SimpleKeyCacheInputStream()); + } +} diff --git a/user/plugins/email/vendor/swiftmailer/swiftmailer/lib/classes/Swift/MimePart.php b/user/plugins/email/vendor/swiftmailer/swiftmailer/lib/classes/Swift/MimePart.php new file mode 100644 index 0000000..ea97619 --- /dev/null +++ b/user/plugins/email/vendor/swiftmailer/swiftmailer/lib/classes/Swift/MimePart.php @@ -0,0 +1,45 @@ +createDependenciesFor('mime.part') + ); + + if (!isset($charset)) { + $charset = Swift_DependencyContainer::getInstance() + ->lookup('properties.charset'); + } + $this->setBody($body); + $this->setCharset($charset); + if ($contentType) { + $this->setContentType($contentType); + } + } +} diff --git a/user/plugins/email/vendor/swiftmailer/swiftmailer/lib/classes/Swift/NullTransport.php b/user/plugins/email/vendor/swiftmailer/swiftmailer/lib/classes/Swift/NullTransport.php new file mode 100644 index 0000000..e44b7af --- /dev/null +++ b/user/plugins/email/vendor/swiftmailer/swiftmailer/lib/classes/Swift/NullTransport.php @@ -0,0 +1,26 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +/** + * Pretends messages have been sent, but just ignores them. + * + * @author Fabien Potencier + */ +class Swift_NullTransport extends Swift_Transport_NullTransport +{ + public function __construct() + { + \call_user_func_array( + [$this, 'Swift_Transport_NullTransport::__construct'], + Swift_DependencyContainer::getInstance() + ->createDependenciesFor('transport.null') + ); + } +} diff --git a/user/plugins/email/vendor/swiftmailer/swiftmailer/lib/classes/Swift/OutputByteStream.php b/user/plugins/email/vendor/swiftmailer/swiftmailer/lib/classes/Swift/OutputByteStream.php new file mode 100644 index 0000000..1f26f9b --- /dev/null +++ b/user/plugins/email/vendor/swiftmailer/swiftmailer/lib/classes/Swift/OutputByteStream.php @@ -0,0 +1,46 @@ +setThreshold($threshold); + $this->setSleepTime($sleep); + $this->sleeper = $sleeper; + } + + /** + * Set the number of emails to send before restarting. + * + * @param int $threshold + */ + public function setThreshold($threshold) + { + $this->threshold = $threshold; + } + + /** + * Get the number of emails to send before restarting. + * + * @return int + */ + public function getThreshold() + { + return $this->threshold; + } + + /** + * Set the number of seconds to sleep for during a restart. + * + * @param int $sleep time + */ + public function setSleepTime($sleep) + { + $this->sleep = $sleep; + } + + /** + * Get the number of seconds to sleep for during a restart. + * + * @return int + */ + public function getSleepTime() + { + return $this->sleep; + } + + /** + * Invoked immediately before the Message is sent. + */ + public function beforeSendPerformed(Swift_Events_SendEvent $evt) + { + } + + /** + * Invoked immediately after the Message is sent. + */ + public function sendPerformed(Swift_Events_SendEvent $evt) + { + ++$this->counter; + if ($this->counter >= $this->threshold) { + $transport = $evt->getTransport(); + $transport->stop(); + if ($this->sleep) { + $this->sleep($this->sleep); + } + $transport->start(); + $this->counter = 0; + } + } + + /** + * Sleep for $seconds. + * + * @param int $seconds + */ + public function sleep($seconds) + { + if (isset($this->sleeper)) { + $this->sleeper->sleep($seconds); + } else { + sleep($seconds); + } + } +} diff --git a/user/plugins/email/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Plugins/BandwidthMonitorPlugin.php b/user/plugins/email/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Plugins/BandwidthMonitorPlugin.php new file mode 100644 index 0000000..36451f4 --- /dev/null +++ b/user/plugins/email/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Plugins/BandwidthMonitorPlugin.php @@ -0,0 +1,154 @@ +getMessage(); + $message->toByteStream($this); + } + + /** + * Invoked immediately following a command being sent. + */ + public function commandSent(Swift_Events_CommandEvent $evt) + { + $command = $evt->getCommand(); + $this->out += \strlen($command); + } + + /** + * Invoked immediately following a response coming back. + */ + public function responseReceived(Swift_Events_ResponseEvent $evt) + { + $response = $evt->getResponse(); + $this->in += \strlen($response); + } + + /** + * Called when a message is sent so that the outgoing counter can be increased. + * + * @param string $bytes + */ + public function write($bytes) + { + $this->out += \strlen($bytes); + foreach ($this->mirrors as $stream) { + $stream->write($bytes); + } + } + + /** + * Not used. + */ + public function commit() + { + } + + /** + * Attach $is to this stream. + * + * The stream acts as an observer, receiving all data that is written. + * All {@link write()} and {@link flushBuffers()} operations will be mirrored. + */ + public function bind(Swift_InputByteStream $is) + { + $this->mirrors[] = $is; + } + + /** + * Remove an already bound stream. + * + * If $is is not bound, no errors will be raised. + * If the stream currently has any buffered data it will be written to $is + * before unbinding occurs. + */ + public function unbind(Swift_InputByteStream $is) + { + foreach ($this->mirrors as $k => $stream) { + if ($is === $stream) { + unset($this->mirrors[$k]); + } + } + } + + /** + * Not used. + */ + public function flushBuffers() + { + foreach ($this->mirrors as $stream) { + $stream->flushBuffers(); + } + } + + /** + * Get the total number of bytes sent to the server. + * + * @return int + */ + public function getBytesOut() + { + return $this->out; + } + + /** + * Get the total number of bytes received from the server. + * + * @return int + */ + public function getBytesIn() + { + return $this->in; + } + + /** + * Reset the internal counters to zero. + */ + public function reset() + { + $this->out = 0; + $this->in = 0; + } +} diff --git a/user/plugins/email/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Plugins/Decorator/Replacements.php b/user/plugins/email/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Plugins/Decorator/Replacements.php new file mode 100644 index 0000000..9f9f08b --- /dev/null +++ b/user/plugins/email/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Plugins/Decorator/Replacements.php @@ -0,0 +1,31 @@ + + * $replacements = array( + * "address1@domain.tld" => array("{a}" => "b", "{c}" => "d"), + * "address2@domain.tld" => array("{a}" => "x", "{c}" => "y") + * ) + * + * + * When using an instance of {@link Swift_Plugins_Decorator_Replacements}, + * the object should return just the array of replacements for the address + * given to {@link Swift_Plugins_Decorator_Replacements::getReplacementsFor()}. + * + * @param mixed $replacements Array or Swift_Plugins_Decorator_Replacements + */ + public function __construct($replacements) + { + $this->setReplacements($replacements); + } + + /** + * Sets replacements. + * + * @param mixed $replacements Array or Swift_Plugins_Decorator_Replacements + * + * @see __construct() + */ + public function setReplacements($replacements) + { + if (!($replacements instanceof Swift_Plugins_Decorator_Replacements)) { + $this->replacements = (array) $replacements; + } else { + $this->replacements = $replacements; + } + } + + /** + * Invoked immediately before the Message is sent. + */ + public function beforeSendPerformed(Swift_Events_SendEvent $evt) + { + $message = $evt->getMessage(); + $this->restoreMessage($message); + $to = array_keys($message->getTo()); + $address = array_shift($to); + if ($replacements = $this->getReplacementsFor($address)) { + $body = $message->getBody(); + $search = array_keys($replacements); + $replace = array_values($replacements); + $bodyReplaced = str_replace( + $search, $replace, $body + ); + if ($body != $bodyReplaced) { + $this->originalBody = $body; + $message->setBody($bodyReplaced); + } + + foreach ($message->getHeaders()->getAll() as $header) { + $body = $header->getFieldBodyModel(); + $count = 0; + if (\is_array($body)) { + $bodyReplaced = []; + foreach ($body as $key => $value) { + $count1 = 0; + $count2 = 0; + $key = \is_string($key) ? str_replace($search, $replace, $key, $count1) : $key; + $value = \is_string($value) ? str_replace($search, $replace, $value, $count2) : $value; + $bodyReplaced[$key] = $value; + + if (!$count && ($count1 || $count2)) { + $count = 1; + } + } + } elseif (\is_string($body)) { + $bodyReplaced = str_replace($search, $replace, $body, $count); + } + + if ($count) { + $this->originalHeaders[$header->getFieldName()] = $body; + $header->setFieldBodyModel($bodyReplaced); + } + } + + $children = (array) $message->getChildren(); + foreach ($children as $child) { + list($type) = sscanf($child->getContentType(), '%[^/]/%s'); + if ('text' == $type) { + $body = $child->getBody(); + $bodyReplaced = str_replace( + $search, $replace, $body + ); + if ($body != $bodyReplaced) { + $child->setBody($bodyReplaced); + $this->originalChildBodies[$child->getId()] = $body; + } + } + } + $this->lastMessage = $message; + } + } + + /** + * Find a map of replacements for the address. + * + * If this plugin was provided with a delegate instance of + * {@link Swift_Plugins_Decorator_Replacements} then the call will be + * delegated to it. Otherwise, it will attempt to find the replacements + * from the array provided in the constructor. + * + * If no replacements can be found, an empty value (NULL) is returned. + * + * @param string $address + * + * @return array + */ + public function getReplacementsFor($address) + { + if ($this->replacements instanceof Swift_Plugins_Decorator_Replacements) { + return $this->replacements->getReplacementsFor($address); + } + + return $this->replacements[$address] ?? null; + } + + /** + * Invoked immediately after the Message is sent. + */ + public function sendPerformed(Swift_Events_SendEvent $evt) + { + $this->restoreMessage($evt->getMessage()); + } + + /** Restore a changed message back to its original state */ + private function restoreMessage(Swift_Mime_SimpleMessage $message) + { + if ($this->lastMessage === $message) { + if (isset($this->originalBody)) { + $message->setBody($this->originalBody); + $this->originalBody = null; + } + if (!empty($this->originalHeaders)) { + foreach ($message->getHeaders()->getAll() as $header) { + if (\array_key_exists($header->getFieldName(), $this->originalHeaders)) { + $header->setFieldBodyModel($this->originalHeaders[$header->getFieldName()]); + } + } + $this->originalHeaders = []; + } + if (!empty($this->originalChildBodies)) { + $children = (array) $message->getChildren(); + foreach ($children as $child) { + $id = $child->getId(); + if (\array_key_exists($id, $this->originalChildBodies)) { + $child->setBody($this->originalChildBodies[$id]); + } + } + $this->originalChildBodies = []; + } + $this->lastMessage = null; + } + } +} diff --git a/user/plugins/email/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Plugins/ImpersonatePlugin.php b/user/plugins/email/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Plugins/ImpersonatePlugin.php new file mode 100644 index 0000000..3f4dbbf --- /dev/null +++ b/user/plugins/email/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Plugins/ImpersonatePlugin.php @@ -0,0 +1,65 @@ +sender = $sender; + } + + /** + * Invoked immediately before the Message is sent. + */ + public function beforeSendPerformed(Swift_Events_SendEvent $evt) + { + $message = $evt->getMessage(); + $headers = $message->getHeaders(); + + // save current recipients + $headers->addPathHeader('X-Swift-Return-Path', $message->getReturnPath()); + + // replace them with the one to send to + $message->setReturnPath($this->sender); + } + + /** + * Invoked immediately after the Message is sent. + */ + public function sendPerformed(Swift_Events_SendEvent $evt) + { + $message = $evt->getMessage(); + + // restore original headers + $headers = $message->getHeaders(); + + if ($headers->has('X-Swift-Return-Path')) { + $message->setReturnPath($headers->get('X-Swift-Return-Path')->getAddress()); + $headers->removeAll('X-Swift-Return-Path'); + } + } +} diff --git a/user/plugins/email/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Plugins/Logger.php b/user/plugins/email/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Plugins/Logger.php new file mode 100644 index 0000000..d9bce89 --- /dev/null +++ b/user/plugins/email/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Plugins/Logger.php @@ -0,0 +1,36 @@ +logger = $logger; + } + + /** + * Add a log entry. + * + * @param string $entry + */ + public function add($entry) + { + $this->logger->add($entry); + } + + /** + * Clear the log contents. + */ + public function clear() + { + $this->logger->clear(); + } + + /** + * Get this log as a string. + * + * @return string + */ + public function dump() + { + return $this->logger->dump(); + } + + /** + * Invoked immediately following a command being sent. + */ + public function commandSent(Swift_Events_CommandEvent $evt) + { + $command = $evt->getCommand(); + $this->logger->add(sprintf('>> %s', $command)); + } + + /** + * Invoked immediately following a response coming back. + */ + public function responseReceived(Swift_Events_ResponseEvent $evt) + { + $response = $evt->getResponse(); + $this->logger->add(sprintf('<< %s', $response)); + } + + /** + * Invoked just before a Transport is started. + */ + public function beforeTransportStarted(Swift_Events_TransportChangeEvent $evt) + { + $transportName = \get_class($evt->getSource()); + $this->logger->add(sprintf('++ Starting %s', $transportName)); + } + + /** + * Invoked immediately after the Transport is started. + */ + public function transportStarted(Swift_Events_TransportChangeEvent $evt) + { + $transportName = \get_class($evt->getSource()); + $this->logger->add(sprintf('++ %s started', $transportName)); + } + + /** + * Invoked just before a Transport is stopped. + */ + public function beforeTransportStopped(Swift_Events_TransportChangeEvent $evt) + { + $transportName = \get_class($evt->getSource()); + $this->logger->add(sprintf('++ Stopping %s', $transportName)); + } + + /** + * Invoked immediately after the Transport is stopped. + */ + public function transportStopped(Swift_Events_TransportChangeEvent $evt) + { + $transportName = \get_class($evt->getSource()); + $this->logger->add(sprintf('++ %s stopped', $transportName)); + } + + /** + * Invoked as a TransportException is thrown in the Transport system. + */ + public function exceptionThrown(Swift_Events_TransportExceptionEvent $evt) + { + $e = $evt->getException(); + $message = $e->getMessage(); + $code = $e->getCode(); + $this->logger->add(sprintf('!! %s (code: %s)', $message, $code)); + $message .= PHP_EOL; + $message .= 'Log data:'.PHP_EOL; + $message .= $this->logger->dump(); + $evt->cancelBubble(); + throw new Swift_TransportException($message, $code, $e->getPrevious()); + } +} diff --git a/user/plugins/email/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Plugins/Loggers/ArrayLogger.php b/user/plugins/email/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Plugins/Loggers/ArrayLogger.php new file mode 100644 index 0000000..6f595ad --- /dev/null +++ b/user/plugins/email/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Plugins/Loggers/ArrayLogger.php @@ -0,0 +1,72 @@ +size = $size; + } + + /** + * Add a log entry. + * + * @param string $entry + */ + public function add($entry) + { + $this->log[] = $entry; + while (\count($this->log) > $this->size) { + array_shift($this->log); + } + } + + /** + * Clear the log contents. + */ + public function clear() + { + $this->log = []; + } + + /** + * Get this log as a string. + * + * @return string + */ + public function dump() + { + return implode(PHP_EOL, $this->log); + } +} diff --git a/user/plugins/email/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Plugins/Loggers/EchoLogger.php b/user/plugins/email/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Plugins/Loggers/EchoLogger.php new file mode 100644 index 0000000..40a53d2 --- /dev/null +++ b/user/plugins/email/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Plugins/Loggers/EchoLogger.php @@ -0,0 +1,58 @@ +isHtml = $isHtml; + } + + /** + * Add a log entry. + * + * @param string $entry + */ + public function add($entry) + { + if ($this->isHtml) { + printf('%s%s%s', htmlspecialchars($entry, ENT_QUOTES), '
    ', PHP_EOL); + } else { + printf('%s%s', $entry, PHP_EOL); + } + } + + /** + * Not implemented. + */ + public function clear() + { + } + + /** + * Not implemented. + */ + public function dump() + { + } +} diff --git a/user/plugins/email/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Plugins/MessageLogger.php b/user/plugins/email/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Plugins/MessageLogger.php new file mode 100644 index 0000000..39c48ed --- /dev/null +++ b/user/plugins/email/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Plugins/MessageLogger.php @@ -0,0 +1,70 @@ +messages = []; + } + + /** + * Get the message list. + * + * @return Swift_Mime_SimpleMessage[] + */ + public function getMessages() + { + return $this->messages; + } + + /** + * Get the message count. + * + * @return int count + */ + public function countMessages() + { + return \count($this->messages); + } + + /** + * Empty the message list. + */ + public function clear() + { + $this->messages = []; + } + + /** + * Invoked immediately before the Message is sent. + */ + public function beforeSendPerformed(Swift_Events_SendEvent $evt) + { + $this->messages[] = clone $evt->getMessage(); + } + + /** + * Invoked immediately after the Message is sent. + */ + public function sendPerformed(Swift_Events_SendEvent $evt) + { + } +} diff --git a/user/plugins/email/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Plugins/Pop/Pop3Connection.php b/user/plugins/email/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Plugins/Pop/Pop3Connection.php new file mode 100644 index 0000000..fb99e4c --- /dev/null +++ b/user/plugins/email/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Plugins/Pop/Pop3Connection.php @@ -0,0 +1,31 @@ +host = $host; + $this->port = $port; + $this->crypto = $crypto; + } + + /** + * Set a Pop3Connection to delegate to instead of connecting directly. + * + * @return $this + */ + public function setConnection(Swift_Plugins_Pop_Pop3Connection $connection) + { + $this->connection = $connection; + + return $this; + } + + /** + * Bind this plugin to a specific SMTP transport instance. + */ + public function bindSmtp(Swift_Transport $smtp) + { + $this->transport = $smtp; + } + + /** + * Set the connection timeout in seconds (default 10). + * + * @param int $timeout + * + * @return $this + */ + public function setTimeout($timeout) + { + $this->timeout = (int) $timeout; + + return $this; + } + + /** + * Set the username to use when connecting (if needed). + * + * @param string $username + * + * @return $this + */ + public function setUsername($username) + { + $this->username = $username; + + return $this; + } + + /** + * Set the password to use when connecting (if needed). + * + * @param string $password + * + * @return $this + */ + public function setPassword($password) + { + $this->password = $password; + + return $this; + } + + /** + * Connect to the POP3 host and authenticate. + * + * @throws Swift_Plugins_Pop_Pop3Exception if connection fails + */ + public function connect() + { + if (isset($this->connection)) { + $this->connection->connect(); + } else { + if (!isset($this->socket)) { + if (!$socket = fsockopen( + $this->getHostString(), $this->port, $errno, $errstr, $this->timeout)) { + throw new Swift_Plugins_Pop_Pop3Exception(sprintf('Failed to connect to POP3 host [%s]: %s', $this->host, $errstr)); + } + $this->socket = $socket; + + if (false === $greeting = fgets($this->socket)) { + throw new Swift_Plugins_Pop_Pop3Exception(sprintf('Failed to connect to POP3 host [%s]', trim($greeting ?? ''))); + } + + $this->assertOk($greeting); + + if ($this->username) { + $this->command(sprintf("USER %s\r\n", $this->username)); + $this->command(sprintf("PASS %s\r\n", $this->password)); + } + } + } + } + + /** + * Disconnect from the POP3 host. + */ + public function disconnect() + { + if (isset($this->connection)) { + $this->connection->disconnect(); + } else { + $this->command("QUIT\r\n"); + if (!fclose($this->socket)) { + throw new Swift_Plugins_Pop_Pop3Exception(sprintf('POP3 host [%s] connection could not be stopped', $this->host)); + } + $this->socket = null; + } + } + + /** + * Invoked just before a Transport is started. + */ + public function beforeTransportStarted(Swift_Events_TransportChangeEvent $evt) + { + if (isset($this->transport)) { + if ($this->transport !== $evt->getTransport()) { + return; + } + } + + $this->connect(); + $this->disconnect(); + } + + /** + * Not used. + */ + public function transportStarted(Swift_Events_TransportChangeEvent $evt) + { + } + + /** + * Not used. + */ + public function beforeTransportStopped(Swift_Events_TransportChangeEvent $evt) + { + } + + /** + * Not used. + */ + public function transportStopped(Swift_Events_TransportChangeEvent $evt) + { + } + + private function command($command) + { + if (!fwrite($this->socket, $command)) { + throw new Swift_Plugins_Pop_Pop3Exception(sprintf('Failed to write command [%s] to POP3 host', trim($command ?? ''))); + } + + if (false === $response = fgets($this->socket)) { + throw new Swift_Plugins_Pop_Pop3Exception(sprintf('Failed to read from POP3 host after command [%s]', trim($command ?? ''))); + } + + $this->assertOk($response); + + return $response; + } + + private function assertOk($response) + { + if ('+OK' != substr($response, 0, 3)) { + throw new Swift_Plugins_Pop_Pop3Exception(sprintf('POP3 command failed [%s]', trim($response ?? ''))); + } + } + + private function getHostString() + { + $host = $this->host; + switch (strtolower($this->crypto ?? '')) { + case 'ssl': + $host = 'ssl://'.$host; + break; + + case 'tls': + $host = 'tls://'.$host; + break; + } + + return $host; + } +} diff --git a/user/plugins/email/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Plugins/RedirectingPlugin.php b/user/plugins/email/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Plugins/RedirectingPlugin.php new file mode 100644 index 0000000..f7373b2 --- /dev/null +++ b/user/plugins/email/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Plugins/RedirectingPlugin.php @@ -0,0 +1,201 @@ +recipient = $recipient; + $this->whitelist = $whitelist; + } + + /** + * Set the recipient of all messages. + * + * @param mixed $recipient + */ + public function setRecipient($recipient) + { + $this->recipient = $recipient; + } + + /** + * Get the recipient of all messages. + * + * @return mixed + */ + public function getRecipient() + { + return $this->recipient; + } + + /** + * Set a list of regular expressions to whitelist certain recipients. + */ + public function setWhitelist(array $whitelist) + { + $this->whitelist = $whitelist; + } + + /** + * Get the whitelist. + * + * @return array + */ + public function getWhitelist() + { + return $this->whitelist; + } + + /** + * Invoked immediately before the Message is sent. + */ + public function beforeSendPerformed(Swift_Events_SendEvent $evt) + { + $message = $evt->getMessage(); + $headers = $message->getHeaders(); + + // conditionally save current recipients + + if ($headers->has('to')) { + $headers->addMailboxHeader('X-Swift-To', $message->getTo()); + } + + if ($headers->has('cc')) { + $headers->addMailboxHeader('X-Swift-Cc', $message->getCc()); + } + + if ($headers->has('bcc')) { + $headers->addMailboxHeader('X-Swift-Bcc', $message->getBcc()); + } + + // Filter remaining headers against whitelist + $this->filterHeaderSet($headers, 'To'); + $this->filterHeaderSet($headers, 'Cc'); + $this->filterHeaderSet($headers, 'Bcc'); + + // Add each hard coded recipient + $to = $message->getTo(); + if (null === $to) { + $to = []; + } + + foreach ((array) $this->recipient as $recipient) { + if (!\array_key_exists($recipient, $to)) { + $message->addTo($recipient); + } + } + } + + /** + * Filter header set against a whitelist of regular expressions. + * + * @param string $type + */ + private function filterHeaderSet(Swift_Mime_SimpleHeaderSet $headerSet, $type) + { + foreach ($headerSet->getAll($type) as $headers) { + $headers->setNameAddresses($this->filterNameAddresses($headers->getNameAddresses())); + } + } + + /** + * Filtered list of addresses => name pairs. + * + * @return array + */ + private function filterNameAddresses(array $recipients) + { + $filtered = []; + + foreach ($recipients as $address => $name) { + if ($this->isWhitelisted($address)) { + $filtered[$address] = $name; + } + } + + return $filtered; + } + + /** + * Matches address against whitelist of regular expressions. + * + * @return bool + */ + protected function isWhitelisted($recipient) + { + if (\in_array($recipient, (array) $this->recipient)) { + return true; + } + + foreach ($this->whitelist as $pattern) { + if (preg_match($pattern, $recipient)) { + return true; + } + } + + return false; + } + + /** + * Invoked immediately after the Message is sent. + */ + public function sendPerformed(Swift_Events_SendEvent $evt) + { + $this->restoreMessage($evt->getMessage()); + } + + private function restoreMessage(Swift_Mime_SimpleMessage $message) + { + // restore original headers + $headers = $message->getHeaders(); + + if ($headers->has('X-Swift-To')) { + $message->setTo($headers->get('X-Swift-To')->getNameAddresses()); + $headers->removeAll('X-Swift-To'); + } else { + $message->setTo(null); + } + + if ($headers->has('X-Swift-Cc')) { + $message->setCc($headers->get('X-Swift-Cc')->getNameAddresses()); + $headers->removeAll('X-Swift-Cc'); + } + + if ($headers->has('X-Swift-Bcc')) { + $message->setBcc($headers->get('X-Swift-Bcc')->getNameAddresses()); + $headers->removeAll('X-Swift-Bcc'); + } + } +} diff --git a/user/plugins/email/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Plugins/Reporter.php b/user/plugins/email/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Plugins/Reporter.php new file mode 100644 index 0000000..b881833 --- /dev/null +++ b/user/plugins/email/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Plugins/Reporter.php @@ -0,0 +1,31 @@ +reporter = $reporter; + } + + /** + * Not used. + */ + public function beforeSendPerformed(Swift_Events_SendEvent $evt) + { + } + + /** + * Invoked immediately after the Message is sent. + */ + public function sendPerformed(Swift_Events_SendEvent $evt) + { + $message = $evt->getMessage(); + $failures = array_flip($evt->getFailedRecipients()); + foreach ((array) $message->getTo() as $address => $null) { + $this->reporter->notify($message, $address, (\array_key_exists($address, $failures) ? Swift_Plugins_Reporter::RESULT_FAIL : Swift_Plugins_Reporter::RESULT_PASS)); + } + foreach ((array) $message->getCc() as $address => $null) { + $this->reporter->notify($message, $address, (\array_key_exists($address, $failures) ? Swift_Plugins_Reporter::RESULT_FAIL : Swift_Plugins_Reporter::RESULT_PASS)); + } + foreach ((array) $message->getBcc() as $address => $null) { + $this->reporter->notify($message, $address, (\array_key_exists($address, $failures) ? Swift_Plugins_Reporter::RESULT_FAIL : Swift_Plugins_Reporter::RESULT_PASS)); + } + } +} diff --git a/user/plugins/email/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Plugins/Reporters/HitReporter.php b/user/plugins/email/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Plugins/Reporters/HitReporter.php new file mode 100644 index 0000000..249cffb --- /dev/null +++ b/user/plugins/email/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Plugins/Reporters/HitReporter.php @@ -0,0 +1,58 @@ +failures_cache[$address])) { + $this->failures[] = $address; + $this->failures_cache[$address] = true; + } + } + + /** + * Get an array of addresses for which delivery failed. + * + * @return array + */ + public function getFailedRecipients() + { + return $this->failures; + } + + /** + * Clear the buffer (empty the list). + */ + public function clear() + { + $this->failures = $this->failures_cache = []; + } +} diff --git a/user/plugins/email/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Plugins/Reporters/HtmlReporter.php b/user/plugins/email/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Plugins/Reporters/HtmlReporter.php new file mode 100644 index 0000000..1cfc3f9 --- /dev/null +++ b/user/plugins/email/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Plugins/Reporters/HtmlReporter.php @@ -0,0 +1,38 @@ +'.PHP_EOL; + echo 'PASS '.$address.PHP_EOL; + echo ''.PHP_EOL; + flush(); + } else { + echo '
    '.PHP_EOL; + echo 'FAIL '.$address.PHP_EOL; + echo '
    '.PHP_EOL; + flush(); + } + } +} diff --git a/user/plugins/email/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Plugins/Sleeper.php b/user/plugins/email/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Plugins/Sleeper.php new file mode 100644 index 0000000..595c0f6 --- /dev/null +++ b/user/plugins/email/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Plugins/Sleeper.php @@ -0,0 +1,24 @@ +rate = $rate; + $this->mode = $mode; + $this->sleeper = $sleeper; + $this->timer = $timer; + } + + /** + * Invoked immediately before the Message is sent. + */ + public function beforeSendPerformed(Swift_Events_SendEvent $evt) + { + $time = $this->getTimestamp(); + if (!isset($this->start)) { + $this->start = $time; + } + $duration = $time - $this->start; + + switch ($this->mode) { + case self::BYTES_PER_MINUTE: + $sleep = $this->throttleBytesPerMinute($duration); + break; + case self::MESSAGES_PER_SECOND: + $sleep = $this->throttleMessagesPerSecond($duration); + break; + case self::MESSAGES_PER_MINUTE: + $sleep = $this->throttleMessagesPerMinute($duration); + break; + default: + $sleep = 0; + break; + } + + if ($sleep > 0) { + $this->sleep($sleep); + } + } + + /** + * Invoked when a Message is sent. + */ + public function sendPerformed(Swift_Events_SendEvent $evt) + { + parent::sendPerformed($evt); + ++$this->messages; + } + + /** + * Sleep for $seconds. + * + * @param int $seconds + */ + public function sleep($seconds) + { + if (isset($this->sleeper)) { + $this->sleeper->sleep($seconds); + } else { + sleep($seconds); + } + } + + /** + * Get the current UNIX timestamp. + * + * @return int + */ + public function getTimestamp() + { + if (isset($this->timer)) { + return $this->timer->getTimestamp(); + } + + return time(); + } + + /** + * Get a number of seconds to sleep for. + * + * @param int $timePassed + * + * @return int + */ + private function throttleBytesPerMinute($timePassed) + { + $expectedDuration = $this->getBytesOut() / ($this->rate / 60); + + return (int) ceil($expectedDuration - $timePassed); + } + + /** + * Get a number of seconds to sleep for. + * + * @param int $timePassed + * + * @return int + */ + private function throttleMessagesPerSecond($timePassed) + { + $expectedDuration = $this->messages / $this->rate; + + return (int) ceil($expectedDuration - $timePassed); + } + + /** + * Get a number of seconds to sleep for. + * + * @param int $timePassed + * + * @return int + */ + private function throttleMessagesPerMinute($timePassed) + { + $expectedDuration = $this->messages / ($this->rate / 60); + + return (int) ceil($expectedDuration - $timePassed); + } +} diff --git a/user/plugins/email/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Plugins/Timer.php b/user/plugins/email/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Plugins/Timer.php new file mode 100644 index 0000000..9c8deb3 --- /dev/null +++ b/user/plugins/email/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Plugins/Timer.php @@ -0,0 +1,24 @@ +register('properties.charset')->asValue($charset); + + return $this; + } + + /** + * Set the directory where temporary files can be saved. + * + * @param string $dir + * + * @return $this + */ + public function setTempDir($dir) + { + Swift_DependencyContainer::getInstance()->register('tempdir')->asValue($dir); + + return $this; + } + + /** + * Set the type of cache to use (i.e. "disk" or "array"). + * + * @param string $type + * + * @return $this + */ + public function setCacheType($type) + { + Swift_DependencyContainer::getInstance()->register('cache')->asAliasOf(sprintf('cache.%s', $type)); + + return $this; + } + + /** + * Set the QuotedPrintable dot escaper preference. + * + * @param bool $dotEscape + * + * @return $this + */ + public function setQPDotEscape($dotEscape) + { + $dotEscape = !empty($dotEscape); + Swift_DependencyContainer::getInstance() + ->register('mime.qpcontentencoder') + ->asNewInstanceOf('Swift_Mime_ContentEncoder_QpContentEncoder') + ->withDependencies(['mime.charstream', 'mime.bytecanonicalizer']) + ->addConstructorValue($dotEscape); + + return $this; + } +} diff --git a/user/plugins/email/vendor/swiftmailer/swiftmailer/lib/classes/Swift/ReplacementFilterFactory.php b/user/plugins/email/vendor/swiftmailer/swiftmailer/lib/classes/Swift/ReplacementFilterFactory.php new file mode 100644 index 0000000..2897474 --- /dev/null +++ b/user/plugins/email/vendor/swiftmailer/swiftmailer/lib/classes/Swift/ReplacementFilterFactory.php @@ -0,0 +1,27 @@ +createDependenciesFor('transport.sendmail') + ); + + $this->setCommand($command); + } +} diff --git a/user/plugins/email/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Signer.php b/user/plugins/email/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Signer.php new file mode 100644 index 0000000..26c5e28 --- /dev/null +++ b/user/plugins/email/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Signer.php @@ -0,0 +1,19 @@ + + */ +interface Swift_Signer +{ + public function reset(); +} diff --git a/user/plugins/email/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Signers/BodySigner.php b/user/plugins/email/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Signers/BodySigner.php new file mode 100644 index 0000000..b25c427 --- /dev/null +++ b/user/plugins/email/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Signers/BodySigner.php @@ -0,0 +1,31 @@ + + */ +interface Swift_Signers_BodySigner extends Swift_Signer +{ + /** + * Change the Swift_Signed_Message to apply the singing. + * + * @return self + */ + public function signMessage(Swift_Message $message); + + /** + * Return the list of header a signer might tamper. + * + * @return array + */ + public function getAlteredHeaders(); +} diff --git a/user/plugins/email/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Signers/DKIMSigner.php b/user/plugins/email/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Signers/DKIMSigner.php new file mode 100644 index 0000000..ec82dc0 --- /dev/null +++ b/user/plugins/email/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Signers/DKIMSigner.php @@ -0,0 +1,682 @@ + + */ +class Swift_Signers_DKIMSigner implements Swift_Signers_HeaderSigner +{ + /** + * PrivateKey. + * + * @var string + */ + protected $privateKey; + + /** + * DomainName. + * + * @var string + */ + protected $domainName; + + /** + * Selector. + * + * @var string + */ + protected $selector; + + private $passphrase = ''; + + /** + * Hash algorithm used. + * + * @see RFC6376 3.3: Signers MUST implement and SHOULD sign using rsa-sha256. + * + * @var string + */ + protected $hashAlgorithm = 'rsa-sha256'; + + /** + * Body canon method. + * + * @var string + */ + protected $bodyCanon = 'simple'; + + /** + * Header canon method. + * + * @var string + */ + protected $headerCanon = 'simple'; + + /** + * Headers not being signed. + * + * @var array + */ + protected $ignoredHeaders = ['return-path' => true]; + + /** + * Signer identity. + * + * @var string + */ + protected $signerIdentity; + + /** + * BodyLength. + * + * @var int + */ + protected $bodyLen = 0; + + /** + * Maximum signedLen. + * + * @var int + */ + protected $maxLen = PHP_INT_MAX; + + /** + * Embbed bodyLen in signature. + * + * @var bool + */ + protected $showLen = false; + + /** + * When the signature has been applied (true means time()), false means not embedded. + * + * @var mixed + */ + protected $signatureTimestamp = true; + + /** + * When will the signature expires false means not embedded, if sigTimestamp is auto + * Expiration is relative, otherwise it's absolute. + * + * @var int + */ + protected $signatureExpiration = false; + + /** + * Must we embed signed headers? + * + * @var bool + */ + protected $debugHeaders = false; + + // work variables + /** + * Headers used to generate hash. + * + * @var array + */ + protected $signedHeaders = []; + + /** + * If debugHeaders is set store debugData here. + * + * @var string[] + */ + private $debugHeadersData = []; + + /** + * Stores the bodyHash. + * + * @var string + */ + private $bodyHash = ''; + + /** + * Stores the signature header. + * + * @var Swift_Mime_Headers_ParameterizedHeader + */ + protected $dkimHeader; + + private $bodyHashHandler; + + private $headerHash; + + private $headerCanonData = ''; + + private $bodyCanonEmptyCounter = 0; + + private $bodyCanonIgnoreStart = 2; + + private $bodyCanonSpace = false; + + private $bodyCanonLastChar = null; + + private $bodyCanonLine = ''; + + private $bound = []; + + /** + * Constructor. + * + * @param string $privateKey + * @param string $domainName + * @param string $selector + * @param string $passphrase + */ + public function __construct($privateKey, $domainName, $selector, $passphrase = '') + { + $this->privateKey = $privateKey; + $this->domainName = $domainName; + $this->signerIdentity = '@'.$domainName; + $this->selector = $selector; + $this->passphrase = $passphrase; + } + + /** + * Reset the Signer. + * + * @see Swift_Signer::reset() + */ + public function reset() + { + $this->headerHash = null; + $this->signedHeaders = []; + $this->bodyHash = null; + $this->bodyHashHandler = null; + $this->bodyCanonIgnoreStart = 2; + $this->bodyCanonEmptyCounter = 0; + $this->bodyCanonLastChar = null; + $this->bodyCanonSpace = false; + } + + /** + * Writes $bytes to the end of the stream. + * + * Writing may not happen immediately if the stream chooses to buffer. If + * you want to write these bytes with immediate effect, call {@link commit()} + * after calling write(). + * + * This method returns the sequence ID of the write (i.e. 1 for first, 2 for + * second, etc etc). + * + * @param string $bytes + * + * @return int + * + * @throws Swift_IoException + */ + // TODO fix return + public function write($bytes) + { + $this->canonicalizeBody($bytes); + foreach ($this->bound as $is) { + $is->write($bytes); + } + } + + /** + * For any bytes that are currently buffered inside the stream, force them + * off the buffer. + */ + public function commit() + { + // Nothing to do + return; + } + + /** + * Attach $is to this stream. + * + * The stream acts as an observer, receiving all data that is written. + * All {@link write()} and {@link flushBuffers()} operations will be mirrored. + */ + public function bind(Swift_InputByteStream $is) + { + // Don't have to mirror anything + $this->bound[] = $is; + + return; + } + + /** + * Remove an already bound stream. + * + * If $is is not bound, no errors will be raised. + * If the stream currently has any buffered data it will be written to $is + * before unbinding occurs. + */ + public function unbind(Swift_InputByteStream $is) + { + // Don't have to mirror anything + foreach ($this->bound as $k => $stream) { + if ($stream === $is) { + unset($this->bound[$k]); + + return; + } + } + } + + /** + * Flush the contents of the stream (empty it) and set the internal pointer + * to the beginning. + * + * @throws Swift_IoException + */ + public function flushBuffers() + { + $this->reset(); + } + + /** + * Set hash_algorithm, must be one of rsa-sha256 | rsa-sha1. + * + * @param string $hash 'rsa-sha1' or 'rsa-sha256' + * + * @throws Swift_SwiftException + * + * @return $this + */ + public function setHashAlgorithm($hash) + { + switch ($hash) { + case 'rsa-sha1': + $this->hashAlgorithm = 'rsa-sha1'; + break; + case 'rsa-sha256': + $this->hashAlgorithm = 'rsa-sha256'; + if (!\defined('OPENSSL_ALGO_SHA256')) { + throw new Swift_SwiftException('Unable to set sha256 as it is not supported by OpenSSL.'); + } + break; + default: + throw new Swift_SwiftException('Unable to set the hash algorithm, must be one of rsa-sha1 or rsa-sha256 (%s given).', $hash); + } + + return $this; + } + + /** + * Set the body canonicalization algorithm. + * + * @param string $canon + * + * @return $this + */ + public function setBodyCanon($canon) + { + if ('relaxed' == $canon) { + $this->bodyCanon = 'relaxed'; + } else { + $this->bodyCanon = 'simple'; + } + + return $this; + } + + /** + * Set the header canonicalization algorithm. + * + * @param string $canon + * + * @return $this + */ + public function setHeaderCanon($canon) + { + if ('relaxed' == $canon) { + $this->headerCanon = 'relaxed'; + } else { + $this->headerCanon = 'simple'; + } + + return $this; + } + + /** + * Set the signer identity. + * + * @param string $identity + * + * @return $this + */ + public function setSignerIdentity($identity) + { + $this->signerIdentity = $identity; + + return $this; + } + + /** + * Set the length of the body to sign. + * + * @param mixed $len (bool or int) + * + * @return $this + */ + public function setBodySignedLen($len) + { + if (true === $len) { + $this->showLen = true; + $this->maxLen = PHP_INT_MAX; + } elseif (false === $len) { + $this->showLen = false; + $this->maxLen = PHP_INT_MAX; + } else { + $this->showLen = true; + $this->maxLen = (int) $len; + } + + return $this; + } + + /** + * Set the signature timestamp. + * + * @param int $time A timestamp + * + * @return $this + */ + public function setSignatureTimestamp($time) + { + $this->signatureTimestamp = $time; + + return $this; + } + + /** + * Set the signature expiration timestamp. + * + * @param int $time A timestamp + * + * @return $this + */ + public function setSignatureExpiration($time) + { + $this->signatureExpiration = $time; + + return $this; + } + + /** + * Enable / disable the DebugHeaders. + * + * @param bool $debug + * + * @return Swift_Signers_DKIMSigner + */ + public function setDebugHeaders($debug) + { + $this->debugHeaders = (bool) $debug; + + return $this; + } + + /** + * Start Body. + */ + public function startBody() + { + // Init + switch ($this->hashAlgorithm) { + case 'rsa-sha256': + $this->bodyHashHandler = hash_init('sha256'); + break; + case 'rsa-sha1': + $this->bodyHashHandler = hash_init('sha1'); + break; + } + $this->bodyCanonLine = ''; + } + + /** + * End Body. + */ + public function endBody() + { + $this->endOfBody(); + } + + /** + * Returns the list of Headers Tampered by this plugin. + * + * @return array + */ + public function getAlteredHeaders() + { + if ($this->debugHeaders) { + return ['DKIM-Signature', 'X-DebugHash']; + } else { + return ['DKIM-Signature']; + } + } + + /** + * Adds an ignored Header. + * + * @param string $header_name + * + * @return Swift_Signers_DKIMSigner + */ + public function ignoreHeader($header_name) + { + $this->ignoredHeaders[strtolower($header_name ?? '')] = true; + + return $this; + } + + /** + * Set the headers to sign. + * + * @return Swift_Signers_DKIMSigner + */ + public function setHeaders(Swift_Mime_SimpleHeaderSet $headers) + { + $this->headerCanonData = ''; + // Loop through Headers + $listHeaders = $headers->listAll(); + foreach ($listHeaders as $hName) { + // Check if we need to ignore Header + if (!isset($this->ignoredHeaders[strtolower($hName ?? '')])) { + if ($headers->has($hName)) { + $tmp = $headers->getAll($hName); + foreach ($tmp as $header) { + if ('' != $header->getFieldBody()) { + $this->addHeader($header->toString()); + $this->signedHeaders[] = $header->getFieldName(); + } + } + } + } + } + + return $this; + } + + /** + * Add the signature to the given Headers. + * + * @return Swift_Signers_DKIMSigner + */ + public function addSignature(Swift_Mime_SimpleHeaderSet $headers) + { + // Prepare the DKIM-Signature + $params = ['v' => '1', 'a' => $this->hashAlgorithm, 'bh' => base64_encode($this->bodyHash ?? ''), 'd' => $this->domainName, 'h' => implode(': ', $this->signedHeaders), 'i' => $this->signerIdentity, 's' => $this->selector]; + if ('simple' != $this->bodyCanon) { + $params['c'] = $this->headerCanon.'/'.$this->bodyCanon; + } elseif ('simple' != $this->headerCanon) { + $params['c'] = $this->headerCanon; + } + if ($this->showLen) { + $params['l'] = $this->bodyLen; + } + if (true === $this->signatureTimestamp) { + $params['t'] = time(); + if (false !== $this->signatureExpiration) { + $params['x'] = $params['t'] + $this->signatureExpiration; + } + } else { + if (false !== $this->signatureTimestamp) { + $params['t'] = $this->signatureTimestamp; + } + if (false !== $this->signatureExpiration) { + $params['x'] = $this->signatureExpiration; + } + } + if ($this->debugHeaders) { + $params['z'] = implode('|', $this->debugHeadersData); + } + $string = ''; + foreach ($params as $k => $v) { + $string .= $k.'='.$v.'; '; + } + $string = trim($string); + $headers->addTextHeader('DKIM-Signature', $string); + // Add the last DKIM-Signature + $tmp = $headers->getAll('DKIM-Signature'); + $this->dkimHeader = end($tmp); + $this->addHeader(trim($this->dkimHeader->toString() ?? '')."\r\n b=", true); + if ($this->debugHeaders) { + $headers->addTextHeader('X-DebugHash', base64_encode($this->headerHash ?? '')); + } + $this->dkimHeader->setValue($string.' b='.trim(chunk_split(base64_encode($this->getEncryptedHash() ?? ''), 73, ' '))); + + return $this; + } + + /* Private helpers */ + + protected function addHeader($header, $is_sig = false) + { + switch ($this->headerCanon) { + case 'relaxed': + // Prepare Header and cascade + $exploded = explode(':', $header, 2); + $name = strtolower(trim($exploded[0])); + $value = str_replace("\r\n", '', $exploded[1]); + $value = preg_replace("/[ \t][ \t]+/", ' ', $value); + $header = $name.':'.trim($value).($is_sig ? '' : "\r\n"); + // no break + case 'simple': + // Nothing to do + } + $this->addToHeaderHash($header); + } + + protected function canonicalizeBody($string) + { + $len = \strlen($string); + $canon = ''; + $method = ('relaxed' == $this->bodyCanon); + for ($i = 0; $i < $len; ++$i) { + if ($this->bodyCanonIgnoreStart > 0) { + --$this->bodyCanonIgnoreStart; + continue; + } + switch ($string[$i]) { + case "\r": + $this->bodyCanonLastChar = "\r"; + break; + case "\n": + if ("\r" == $this->bodyCanonLastChar) { + if ($method) { + $this->bodyCanonSpace = false; + } + if ('' == $this->bodyCanonLine) { + ++$this->bodyCanonEmptyCounter; + } else { + $this->bodyCanonLine = ''; + $canon .= "\r\n"; + } + } else { + // Wooops Error + // todo handle it but should never happen + } + break; + case ' ': + case "\t": + if ($method) { + $this->bodyCanonSpace = true; + break; + } + // no break + default: + if ($this->bodyCanonEmptyCounter > 0) { + $canon .= str_repeat("\r\n", $this->bodyCanonEmptyCounter); + $this->bodyCanonEmptyCounter = 0; + } + if ($this->bodyCanonSpace) { + $this->bodyCanonLine .= ' '; + $canon .= ' '; + $this->bodyCanonSpace = false; + } + $this->bodyCanonLine .= $string[$i]; + $canon .= $string[$i]; + } + } + $this->addToBodyHash($canon); + } + + protected function endOfBody() + { + // Add trailing Line return if last line is non empty + if (\strlen($this->bodyCanonLine) > 0) { + $this->addToBodyHash("\r\n"); + } + $this->bodyHash = hash_final($this->bodyHashHandler, true); + } + + private function addToBodyHash($string) + { + $len = \strlen($string); + if ($len > ($new_len = ($this->maxLen - $this->bodyLen))) { + $string = substr($string, 0, $new_len); + $len = $new_len; + } + hash_update($this->bodyHashHandler, $string); + $this->bodyLen += $len; + } + + private function addToHeaderHash($header) + { + if ($this->debugHeaders) { + $this->debugHeadersData[] = trim($header ?? ''); + } + $this->headerCanonData .= $header; + } + + /** + * @throws Swift_SwiftException + * + * @return string + */ + private function getEncryptedHash() + { + $signature = ''; + switch ($this->hashAlgorithm) { + case 'rsa-sha1': + $algorithm = OPENSSL_ALGO_SHA1; + break; + case 'rsa-sha256': + $algorithm = OPENSSL_ALGO_SHA256; + break; + } + $pkeyId = openssl_get_privatekey($this->privateKey, $this->passphrase); + if (!$pkeyId) { + throw new Swift_SwiftException('Unable to load DKIM Private Key ['.openssl_error_string().']'); + } + if (openssl_sign($this->headerCanonData, $signature, $pkeyId, $algorithm)) { + return $signature; + } + throw new Swift_SwiftException('Unable to sign DKIM Hash ['.openssl_error_string().']'); + } +} diff --git a/user/plugins/email/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Signers/DomainKeySigner.php b/user/plugins/email/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Signers/DomainKeySigner.php new file mode 100644 index 0000000..5e2b67b --- /dev/null +++ b/user/plugins/email/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Signers/DomainKeySigner.php @@ -0,0 +1,504 @@ + + */ +class Swift_Signers_DomainKeySigner implements Swift_Signers_HeaderSigner +{ + /** + * PrivateKey. + * + * @var string + */ + protected $privateKey; + + /** + * DomainName. + * + * @var string + */ + protected $domainName; + + /** + * Selector. + * + * @var string + */ + protected $selector; + + /** + * Hash algorithm used. + * + * @var string + */ + protected $hashAlgorithm = 'rsa-sha1'; + + /** + * Canonisation method. + * + * @var string + */ + protected $canon = 'simple'; + + /** + * Headers not being signed. + * + * @var array + */ + protected $ignoredHeaders = []; + + /** + * Signer identity. + * + * @var string + */ + protected $signerIdentity; + + /** + * Must we embed signed headers? + * + * @var bool + */ + protected $debugHeaders = false; + + // work variables + /** + * Headers used to generate hash. + * + * @var array + */ + private $signedHeaders = []; + + /** + * Stores the signature header. + * + * @var Swift_Mime_Headers_ParameterizedHeader + */ + protected $domainKeyHeader; + + /** + * Hash Handler. + * + * @var resource|null + */ + private $hashHandler; + + private $canonData = ''; + + private $bodyCanonEmptyCounter = 0; + + private $bodyCanonIgnoreStart = 2; + + private $bodyCanonSpace = false; + + private $bodyCanonLastChar = null; + + private $bodyCanonLine = ''; + + private $bound = []; + + /** + * Constructor. + * + * @param string $privateKey + * @param string $domainName + * @param string $selector + */ + public function __construct($privateKey, $domainName, $selector) + { + $this->privateKey = $privateKey; + $this->domainName = $domainName; + $this->signerIdentity = '@'.$domainName; + $this->selector = $selector; + } + + /** + * Resets internal states. + * + * @return $this + */ + public function reset() + { + $this->hashHandler = null; + $this->bodyCanonIgnoreStart = 2; + $this->bodyCanonEmptyCounter = 0; + $this->bodyCanonLastChar = null; + $this->bodyCanonSpace = false; + + return $this; + } + + /** + * Writes $bytes to the end of the stream. + * + * Writing may not happen immediately if the stream chooses to buffer. If + * you want to write these bytes with immediate effect, call {@link commit()} + * after calling write(). + * + * This method returns the sequence ID of the write (i.e. 1 for first, 2 for + * second, etc etc). + * + * @param string $bytes + * + * @return int + * + * @throws Swift_IoException + * + * @return $this + */ + public function write($bytes) + { + $this->canonicalizeBody($bytes); + foreach ($this->bound as $is) { + $is->write($bytes); + } + + return $this; + } + + /** + * For any bytes that are currently buffered inside the stream, force them + * off the buffer. + * + * @throws Swift_IoException + * + * @return $this + */ + public function commit() + { + // Nothing to do + return $this; + } + + /** + * Attach $is to this stream. + * + * The stream acts as an observer, receiving all data that is written. + * All {@link write()} and {@link flushBuffers()} operations will be mirrored. + * + * @return $this + */ + public function bind(Swift_InputByteStream $is) + { + // Don't have to mirror anything + $this->bound[] = $is; + + return $this; + } + + /** + * Remove an already bound stream. + * + * If $is is not bound, no errors will be raised. + * If the stream currently has any buffered data it will be written to $is + * before unbinding occurs. + * + * @return $this + */ + public function unbind(Swift_InputByteStream $is) + { + // Don't have to mirror anything + foreach ($this->bound as $k => $stream) { + if ($stream === $is) { + unset($this->bound[$k]); + + break; + } + } + + return $this; + } + + /** + * Flush the contents of the stream (empty it) and set the internal pointer + * to the beginning. + * + * @throws Swift_IoException + * + * @return $this + */ + public function flushBuffers() + { + $this->reset(); + + return $this; + } + + /** + * Set hash_algorithm, must be one of rsa-sha256 | rsa-sha1 defaults to rsa-sha256. + * + * @param string $hash + * + * @return $this + */ + public function setHashAlgorithm($hash) + { + $this->hashAlgorithm = 'rsa-sha1'; + + return $this; + } + + /** + * Set the canonicalization algorithm. + * + * @param string $canon simple | nofws defaults to simple + * + * @return $this + */ + public function setCanon($canon) + { + if ('nofws' == $canon) { + $this->canon = 'nofws'; + } else { + $this->canon = 'simple'; + } + + return $this; + } + + /** + * Set the signer identity. + * + * @param string $identity + * + * @return $this + */ + public function setSignerIdentity($identity) + { + $this->signerIdentity = $identity; + + return $this; + } + + /** + * Enable / disable the DebugHeaders. + * + * @param bool $debug + * + * @return $this + */ + public function setDebugHeaders($debug) + { + $this->debugHeaders = (bool) $debug; + + return $this; + } + + /** + * Start Body. + */ + public function startBody() + { + } + + /** + * End Body. + */ + public function endBody() + { + $this->endOfBody(); + } + + /** + * Returns the list of Headers Tampered by this plugin. + * + * @return array + */ + public function getAlteredHeaders() + { + if ($this->debugHeaders) { + return ['DomainKey-Signature', 'X-DebugHash']; + } + + return ['DomainKey-Signature']; + } + + /** + * Adds an ignored Header. + * + * @param string $header_name + * + * @return $this + */ + public function ignoreHeader($header_name) + { + $this->ignoredHeaders[strtolower($header_name ?? '')] = true; + + return $this; + } + + /** + * Set the headers to sign. + * + * @return $this + */ + public function setHeaders(Swift_Mime_SimpleHeaderSet $headers) + { + $this->startHash(); + $this->canonData = ''; + // Loop through Headers + $listHeaders = $headers->listAll(); + foreach ($listHeaders as $hName) { + // Check if we need to ignore Header + if (!isset($this->ignoredHeaders[strtolower($hName ?? '')])) { + if ($headers->has($hName)) { + $tmp = $headers->getAll($hName); + foreach ($tmp as $header) { + if ('' != $header->getFieldBody()) { + $this->addHeader($header->toString()); + $this->signedHeaders[] = $header->getFieldName(); + } + } + } + } + } + $this->endOfHeaders(); + + return $this; + } + + /** + * Add the signature to the given Headers. + * + * @return $this + */ + public function addSignature(Swift_Mime_SimpleHeaderSet $headers) + { + // Prepare the DomainKey-Signature Header + $params = ['a' => $this->hashAlgorithm, 'b' => chunk_split(base64_encode($this->getEncryptedHash() ?? ''), 73, ' '), 'c' => $this->canon, 'd' => $this->domainName, 'h' => implode(': ', $this->signedHeaders), 'q' => 'dns', 's' => $this->selector]; + $string = ''; + foreach ($params as $k => $v) { + $string .= $k.'='.$v.'; '; + } + $string = trim($string); + $headers->addTextHeader('DomainKey-Signature', $string); + + return $this; + } + + /* Private helpers */ + + protected function addHeader($header) + { + switch ($this->canon) { + case 'nofws': + // Prepare Header and cascade + $exploded = explode(':', $header, 2); + $name = strtolower(trim($exploded[0])); + $value = str_replace("\r\n", '', $exploded[1]); + $value = preg_replace("/[ \t][ \t]+/", ' ', $value); + $header = $name.':'.trim($value)."\r\n"; + // no break + case 'simple': + // Nothing to do + } + $this->addToHash($header); + } + + protected function endOfHeaders() + { + $this->bodyCanonEmptyCounter = 1; + } + + protected function canonicalizeBody($string) + { + $len = \strlen($string); + $canon = ''; + $nofws = ('nofws' == $this->canon); + for ($i = 0; $i < $len; ++$i) { + if ($this->bodyCanonIgnoreStart > 0) { + --$this->bodyCanonIgnoreStart; + continue; + } + switch ($string[$i]) { + case "\r": + $this->bodyCanonLastChar = "\r"; + break; + case "\n": + if ("\r" == $this->bodyCanonLastChar) { + if ($nofws) { + $this->bodyCanonSpace = false; + } + if ('' == $this->bodyCanonLine) { + ++$this->bodyCanonEmptyCounter; + } else { + $this->bodyCanonLine = ''; + $canon .= "\r\n"; + } + } else { + // Wooops Error + throw new Swift_SwiftException('Invalid new line sequence in mail found \n without preceding \r'); + } + break; + case ' ': + case "\t": + case "\x09": //HTAB + if ($nofws) { + $this->bodyCanonSpace = true; + break; + } + // no break + default: + if ($this->bodyCanonEmptyCounter > 0) { + $canon .= str_repeat("\r\n", $this->bodyCanonEmptyCounter); + $this->bodyCanonEmptyCounter = 0; + } + $this->bodyCanonLine .= $string[$i]; + $canon .= $string[$i]; + } + } + $this->addToHash($canon); + } + + protected function endOfBody() + { + if (\strlen($this->bodyCanonLine) > 0) { + $this->addToHash("\r\n"); + } + } + + private function addToHash($string) + { + $this->canonData .= $string; + hash_update($this->hashHandler, $string); + } + + private function startHash() + { + // Init + switch ($this->hashAlgorithm) { + case 'rsa-sha1': + $this->hashHandler = hash_init('sha1'); + break; + } + $this->bodyCanonLine = ''; + } + + /** + * @throws Swift_SwiftException + * + * @return string + */ + private function getEncryptedHash() + { + $signature = ''; + $pkeyId = openssl_get_privatekey($this->privateKey); + if (!$pkeyId) { + throw new Swift_SwiftException('Unable to load DomainKey Private Key ['.openssl_error_string().']'); + } + if (openssl_sign($this->canonData, $signature, $pkeyId, OPENSSL_ALGO_SHA1)) { + return $signature; + } + throw new Swift_SwiftException('Unable to sign DomainKey Hash ['.openssl_error_string().']'); + } +} diff --git a/user/plugins/email/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Signers/HeaderSigner.php b/user/plugins/email/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Signers/HeaderSigner.php new file mode 100644 index 0000000..6f5c209 --- /dev/null +++ b/user/plugins/email/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Signers/HeaderSigner.php @@ -0,0 +1,61 @@ + + */ +interface Swift_Signers_HeaderSigner extends Swift_Signer, Swift_InputByteStream +{ + /** + * Exclude an header from the signed headers. + * + * @param string $header_name + * + * @return self + */ + public function ignoreHeader($header_name); + + /** + * Prepare the Signer to get a new Body. + * + * @return self + */ + public function startBody(); + + /** + * Give the signal that the body has finished streaming. + * + * @return self + */ + public function endBody(); + + /** + * Give the headers already given. + * + * @return self + */ + public function setHeaders(Swift_Mime_SimpleHeaderSet $headers); + + /** + * Add the header(s) to the headerSet. + * + * @return self + */ + public function addSignature(Swift_Mime_SimpleHeaderSet $headers); + + /** + * Return the list of header a signer might tamper. + * + * @return array + */ + public function getAlteredHeaders(); +} diff --git a/user/plugins/email/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Signers/OpenDKIMSigner.php b/user/plugins/email/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Signers/OpenDKIMSigner.php new file mode 100644 index 0000000..520bcc1 --- /dev/null +++ b/user/plugins/email/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Signers/OpenDKIMSigner.php @@ -0,0 +1,183 @@ + + * + * @deprecated since SwiftMailer 6.1.0; use Swift_Signers_DKIMSigner instead. + */ +class Swift_Signers_OpenDKIMSigner extends Swift_Signers_DKIMSigner +{ + private $peclLoaded = false; + + private $dkimHandler = null; + + private $dropFirstLF = true; + + const CANON_RELAXED = 1; + const CANON_SIMPLE = 2; + const SIG_RSA_SHA1 = 3; + const SIG_RSA_SHA256 = 4; + + public function __construct($privateKey, $domainName, $selector) + { + if (!\extension_loaded('opendkim')) { + throw new Swift_SwiftException('php-opendkim extension not found'); + } + + $this->peclLoaded = true; + + parent::__construct($privateKey, $domainName, $selector); + } + + public function addSignature(Swift_Mime_SimpleHeaderSet $headers) + { + $header = new Swift_Mime_Headers_OpenDKIMHeader('DKIM-Signature'); + $headerVal = $this->dkimHandler->getSignatureHeader(); + if (false === $headerVal || \is_int($headerVal)) { + throw new Swift_SwiftException('OpenDKIM Error: '.$this->dkimHandler->getError()); + } + $header->setValue($headerVal); + $headers->set($header); + + return $this; + } + + public function setHeaders(Swift_Mime_SimpleHeaderSet $headers) + { + $hash = 'rsa-sha1' == $this->hashAlgorithm ? OpenDKIMSign::ALG_RSASHA1 : OpenDKIMSign::ALG_RSASHA256; + $bodyCanon = 'simple' == $this->bodyCanon ? OpenDKIMSign::CANON_SIMPLE : OpenDKIMSign::CANON_RELAXED; + $headerCanon = 'simple' == $this->headerCanon ? OpenDKIMSign::CANON_SIMPLE : OpenDKIMSign::CANON_RELAXED; + $this->dkimHandler = new OpenDKIMSign($this->privateKey, $this->selector, $this->domainName, $headerCanon, $bodyCanon, $hash, -1); + // Hardcode signature Margin for now + $this->dkimHandler->setMargin(78); + + if (!is_numeric($this->signatureTimestamp)) { + OpenDKIM::setOption(OpenDKIM::OPTS_FIXEDTIME, time()); + } else { + if (!OpenDKIM::setOption(OpenDKIM::OPTS_FIXEDTIME, $this->signatureTimestamp)) { + throw new Swift_SwiftException('Unable to force signature timestamp ['.openssl_error_string().']'); + } + } + if (isset($this->signerIdentity)) { + $this->dkimHandler->setSigner($this->signerIdentity); + } + $listHeaders = $headers->listAll(); + foreach ($listHeaders as $hName) { + // Check if we need to ignore Header + if (!isset($this->ignoredHeaders[strtolower($hName ?? '')])) { + $tmp = $headers->getAll($hName); + if ($headers->has($hName)) { + foreach ($tmp as $header) { + if ('' != $header->getFieldBody()) { + $htosign = $header->toString(); + $this->dkimHandler->header($htosign); + $this->signedHeaders[] = $header->getFieldName(); + } + } + } + } + } + + return $this; + } + + public function startBody() + { + if (!$this->peclLoaded) { + return parent::startBody(); + } + $this->dropFirstLF = true; + $this->dkimHandler->eoh(); + + return $this; + } + + public function endBody() + { + if (!$this->peclLoaded) { + return parent::endBody(); + } + $this->dkimHandler->eom(); + + return $this; + } + + public function reset() + { + $this->dkimHandler = null; + parent::reset(); + + return $this; + } + + /** + * Set the signature timestamp. + * + * @param int $time + * + * @return $this + */ + public function setSignatureTimestamp($time) + { + $this->signatureTimestamp = $time; + + return $this; + } + + /** + * Set the signature expiration timestamp. + * + * @param int $time + * + * @return $this + */ + public function setSignatureExpiration($time) + { + $this->signatureExpiration = $time; + + return $this; + } + + /** + * Enable / disable the DebugHeaders. + * + * @param bool $debug + * + * @return $this + */ + public function setDebugHeaders($debug) + { + $this->debugHeaders = (bool) $debug; + + return $this; + } + + // Protected + + protected function canonicalizeBody($string) + { + if (!$this->peclLoaded) { + return parent::canonicalizeBody($string); + } + if (true === $this->dropFirstLF) { + if ("\r" == $string[0] && "\n" == $string[1]) { + $string = substr($string, 2); + } + } + $this->dropFirstLF = false; + if (\strlen($string)) { + $this->dkimHandler->body($string); + } + } +} diff --git a/user/plugins/email/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Signers/SMimeSigner.php b/user/plugins/email/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Signers/SMimeSigner.php new file mode 100644 index 0000000..3dd3cd0 --- /dev/null +++ b/user/plugins/email/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Signers/SMimeSigner.php @@ -0,0 +1,542 @@ + + * @author Jan Flora + */ +class Swift_Signers_SMimeSigner implements Swift_Signers_BodySigner +{ + protected $signCertificate; + protected $signPrivateKey; + protected $encryptCert; + protected $signThenEncrypt = true; + protected $signLevel; + protected $encryptLevel; + protected $signOptions; + protected $encryptOptions; + protected $encryptCipher; + protected $extraCerts = null; + protected $wrapFullMessage = false; + + /** + * @var Swift_StreamFilters_StringReplacementFilterFactory + */ + protected $replacementFactory; + + /** + * @var Swift_Mime_SimpleHeaderFactory + */ + protected $headerFactory; + + /** + * Constructor. + * + * @param string|null $signCertificate + * @param string|null $signPrivateKey + * @param string|null $encryptCertificate + */ + public function __construct($signCertificate = null, $signPrivateKey = null, $encryptCertificate = null) + { + if (null !== $signPrivateKey) { + $this->setSignCertificate($signCertificate, $signPrivateKey); + } + + if (null !== $encryptCertificate) { + $this->setEncryptCertificate($encryptCertificate); + } + + $this->replacementFactory = Swift_DependencyContainer::getInstance() + ->lookup('transport.replacementfactory'); + + $this->signOptions = PKCS7_DETACHED; + $this->encryptCipher = OPENSSL_CIPHER_AES_128_CBC; + } + + /** + * Set the certificate location to use for signing. + * + * @see https://secure.php.net/manual/en/openssl.pkcs7.flags.php + * + * @param string $certificate + * @param string|array $privateKey If the key needs an passphrase use array('file-location', 'passphrase') instead + * @param int $signOptions Bitwise operator options for openssl_pkcs7_sign() + * @param string $extraCerts A file containing intermediate certificates needed by the signing certificate + * + * @return $this + */ + public function setSignCertificate($certificate, $privateKey = null, $signOptions = PKCS7_DETACHED, $extraCerts = null) + { + $this->signCertificate = 'file://'.str_replace('\\', '/', realpath($certificate)); + + if (null !== $privateKey) { + if (\is_array($privateKey)) { + $this->signPrivateKey = $privateKey; + $this->signPrivateKey[0] = 'file://'.str_replace('\\', '/', realpath($privateKey[0])); + } else { + $this->signPrivateKey = 'file://'.str_replace('\\', '/', realpath($privateKey)); + } + } + + $this->signOptions = $signOptions; + $this->extraCerts = $extraCerts ? realpath($extraCerts) : null; + + return $this; + } + + /** + * Set the certificate location to use for encryption. + * + * @see https://secure.php.net/manual/en/openssl.pkcs7.flags.php + * @see https://secure.php.net/manual/en/openssl.ciphers.php + * + * @param string|array $recipientCerts Either an single X.509 certificate, or an assoc array of X.509 certificates. + * @param int $cipher + * + * @return $this + */ + public function setEncryptCertificate($recipientCerts, $cipher = null) + { + if (\is_array($recipientCerts)) { + $this->encryptCert = []; + + foreach ($recipientCerts as $cert) { + $this->encryptCert[] = 'file://'.str_replace('\\', '/', realpath($cert)); + } + } else { + $this->encryptCert = 'file://'.str_replace('\\', '/', realpath($recipientCerts)); + } + + if (null !== $cipher) { + $this->encryptCipher = $cipher; + } + + return $this; + } + + /** + * @return string + */ + public function getSignCertificate() + { + return $this->signCertificate; + } + + /** + * @return string + */ + public function getSignPrivateKey() + { + return $this->signPrivateKey; + } + + /** + * Set perform signing before encryption. + * + * The default is to first sign the message and then encrypt. + * But some older mail clients, namely Microsoft Outlook 2000 will work when the message first encrypted. + * As this goes against the official specs, its recommended to only use 'encryption -> signing' when specifically targeting these 'broken' clients. + * + * @param bool $signThenEncrypt + * + * @return $this + */ + public function setSignThenEncrypt($signThenEncrypt = true) + { + $this->signThenEncrypt = $signThenEncrypt; + + return $this; + } + + /** + * @return bool + */ + public function isSignThenEncrypt() + { + return $this->signThenEncrypt; + } + + /** + * Resets internal states. + * + * @return $this + */ + public function reset() + { + return $this; + } + + /** + * Specify whether to wrap the entire MIME message in the S/MIME message. + * + * According to RFC5751 section 3.1: + * In order to protect outer, non-content-related message header fields + * (for instance, the "Subject", "To", "From", and "Cc" fields), the + * sending client MAY wrap a full MIME message in a message/rfc822 + * wrapper in order to apply S/MIME security services to these header + * fields. It is up to the receiving client to decide how to present + * this "inner" header along with the unprotected "outer" header. + * + * @param bool $wrap + * + * @return $this + */ + public function setWrapFullMessage($wrap) + { + $this->wrapFullMessage = $wrap; + } + + /** + * Change the Swift_Message to apply the signing. + * + * @return $this + */ + public function signMessage(Swift_Message $message) + { + if (null === $this->signCertificate && null === $this->encryptCert) { + return $this; + } + + if ($this->signThenEncrypt) { + $this->smimeSignMessage($message); + $this->smimeEncryptMessage($message); + } else { + $this->smimeEncryptMessage($message); + $this->smimeSignMessage($message); + } + } + + /** + * Return the list of header a signer might tamper. + * + * @return array + */ + public function getAlteredHeaders() + { + return ['Content-Type', 'Content-Transfer-Encoding', 'Content-Disposition']; + } + + /** + * Sign a Swift message. + */ + protected function smimeSignMessage(Swift_Message $message) + { + // If we don't have a certificate we can't sign the message + if (null === $this->signCertificate) { + return; + } + + // Work on a clone of the original message + $signMessage = clone $message; + $signMessage->clearSigners(); + + if ($this->wrapFullMessage) { + // The original message essentially becomes the body of the new + // wrapped message + $signMessage = $this->wrapMimeMessage($signMessage); + } else { + // Only keep header needed to parse the body correctly + $this->clearAllHeaders($signMessage); + $this->copyHeaders( + $message, + $signMessage, + [ + 'Content-Type', + 'Content-Transfer-Encoding', + 'Content-Disposition', + ] + ); + } + + // Copy the cloned message into a temporary file stream + $messageStream = new Swift_ByteStream_TemporaryFileByteStream(); + $signMessage->toByteStream($messageStream); + $messageStream->commit(); + $signedMessageStream = new Swift_ByteStream_TemporaryFileByteStream(); + + // Sign the message using openssl + if (!openssl_pkcs7_sign( + $messageStream->getPath(), + $signedMessageStream->getPath(), + $this->signCertificate, + $this->signPrivateKey, + [], + $this->signOptions, + $this->extraCerts + ) + ) { + throw new Swift_IoException(sprintf('Failed to sign S/Mime message. Error: "%s".', openssl_error_string())); + } + + // Parse the resulting signed message content back into the Swift message + // preserving the original headers + $this->parseSSLOutput($signedMessageStream, $message); + } + + /** + * Encrypt a Swift message. + */ + protected function smimeEncryptMessage(Swift_Message $message) + { + // If we don't have a certificate we can't encrypt the message + if (null === $this->encryptCert) { + return; + } + + // Work on a clone of the original message + $encryptMessage = clone $message; + $encryptMessage->clearSigners(); + + if ($this->wrapFullMessage) { + // The original message essentially becomes the body of the new + // wrapped message + $encryptMessage = $this->wrapMimeMessage($encryptMessage); + } else { + // Only keep header needed to parse the body correctly + $this->clearAllHeaders($encryptMessage); + $this->copyHeaders( + $message, + $encryptMessage, + [ + 'Content-Type', + 'Content-Transfer-Encoding', + 'Content-Disposition', + ] + ); + } + + // Convert the message content (including headers) to a string + // and place it in a temporary file + $messageStream = new Swift_ByteStream_TemporaryFileByteStream(); + $encryptMessage->toByteStream($messageStream); + $messageStream->commit(); + $encryptedMessageStream = new Swift_ByteStream_TemporaryFileByteStream(); + + // Encrypt the message + if (!openssl_pkcs7_encrypt( + $messageStream->getPath(), + $encryptedMessageStream->getPath(), + $this->encryptCert, + [], + 0, + $this->encryptCipher + ) + ) { + throw new Swift_IoException(sprintf('Failed to encrypt S/Mime message. Error: "%s".', openssl_error_string())); + } + + // Parse the resulting signed message content back into the Swift message + // preserving the original headers + $this->parseSSLOutput($encryptedMessageStream, $message); + } + + /** + * Copy named headers from one Swift message to another. + */ + protected function copyHeaders( + Swift_Message $fromMessage, + Swift_Message $toMessage, + array $headers = [] + ) { + foreach ($headers as $header) { + $this->copyHeader($fromMessage, $toMessage, $header); + } + } + + /** + * Copy a single header from one Swift message to another. + * + * @param string $headerName + */ + protected function copyHeader(Swift_Message $fromMessage, Swift_Message $toMessage, $headerName) + { + $header = $fromMessage->getHeaders()->get($headerName); + if (!$header) { + return; + } + $headers = $toMessage->getHeaders(); + switch ($header->getFieldType()) { + case Swift_Mime_Header::TYPE_TEXT: + $headers->addTextHeader($header->getFieldName(), $header->getValue()); + break; + case Swift_Mime_Header::TYPE_PARAMETERIZED: + $headers->addParameterizedHeader( + $header->getFieldName(), + $header->getValue(), + $header->getParameters() + ); + break; + } + } + + /** + * Remove all headers from a Swift message. + */ + protected function clearAllHeaders(Swift_Message $message) + { + $headers = $message->getHeaders(); + foreach ($headers->listAll() as $header) { + $headers->removeAll($header); + } + } + + /** + * Wraps a Swift_Message in a message/rfc822 MIME part. + * + * @return Swift_MimePart + */ + protected function wrapMimeMessage(Swift_Message $message) + { + // Start by copying the original message into a message stream + $messageStream = new Swift_ByteStream_TemporaryFileByteStream(); + $message->toByteStream($messageStream); + $messageStream->commit(); + + // Create a new MIME part that wraps the original stream + $wrappedMessage = new Swift_MimePart($messageStream, 'message/rfc822'); + $wrappedMessage->setEncoder(new Swift_Mime_ContentEncoder_PlainContentEncoder('7bit')); + + return $wrappedMessage; + } + + protected function parseSSLOutput(Swift_InputByteStream $inputStream, Swift_Message $message) + { + $messageStream = new Swift_ByteStream_TemporaryFileByteStream(); + $this->copyFromOpenSSLOutput($inputStream, $messageStream); + + $this->streamToMime($messageStream, $message); + } + + /** + * Merges an OutputByteStream from OpenSSL to a Swift_Message. + */ + protected function streamToMime(Swift_OutputByteStream $fromStream, Swift_Message $message) + { + // Parse the stream into headers and body + list($headers, $messageStream) = $this->parseStream($fromStream); + + // Get the original message headers + $messageHeaders = $message->getHeaders(); + + // Let the stream determine the headers describing the body content, + // since the body of the original message is overwritten by the body + // coming from the stream. + // These are all content-* headers. + + // Default transfer encoding is 7bit if not set + $encoding = ''; + // Remove all existing transfer encoding headers + $messageHeaders->removeAll('Content-Transfer-Encoding'); + // See whether the stream sets the transfer encoding + if (isset($headers['content-transfer-encoding'])) { + $encoding = $headers['content-transfer-encoding']; + } + + // We use the null content encoder, since the body is already encoded + // according to the transfer encoding specified in the stream + $message->setEncoder(new Swift_Mime_ContentEncoder_NullContentEncoder($encoding)); + + // Set the disposition, if present + if (isset($headers['content-disposition'])) { + $messageHeaders->addTextHeader('Content-Disposition', $headers['content-disposition']); + } + + // Copy over the body from the stream using the content type dictated + // by the stream content + $message->setChildren([]); + $message->setBody($messageStream, $headers['content-type']); + } + + /** + * This message will parse the headers of a MIME email byte stream + * and return an array that contains the headers as an associative + * array and the email body as a string. + * + * @return array + */ + protected function parseStream(Swift_OutputByteStream $emailStream) + { + $bufferLength = 78; + $headerData = ''; + $headerBodySeparator = "\r\n\r\n"; + + $emailStream->setReadPointer(0); + + // Read out the headers section from the stream to a string + while (false !== ($buffer = $emailStream->read($bufferLength))) { + $headerData .= $buffer; + + $headersPosEnd = strpos($headerData, $headerBodySeparator); + + // Stop reading if we found the end of the headers + if (false !== $headersPosEnd) { + break; + } + } + + // Split the header data into lines + $headerData = trim(substr($headerData, 0, $headersPosEnd)); + $headerLines = explode("\r\n", $headerData); + unset($headerData); + + $headers = []; + $currentHeaderName = ''; + + // Transform header lines into an associative array + foreach ($headerLines as $headerLine) { + // Handle headers that span multiple lines + if (false === strpos($headerLine, ':')) { + $headers[$currentHeaderName] .= ' '.trim($headerLine ?? ''); + continue; + } + + $header = explode(':', $headerLine, 2); + $currentHeaderName = strtolower($header[0] ?? ''); + $headers[$currentHeaderName] = trim($header[1] ?? ''); + } + + // Read the entire email body into a byte stream + $bodyStream = new Swift_ByteStream_TemporaryFileByteStream(); + + // Skip the header and separator and point to the body + $emailStream->setReadPointer($headersPosEnd + \strlen($headerBodySeparator)); + + while (false !== ($buffer = $emailStream->read($bufferLength))) { + $bodyStream->write($buffer); + } + + $bodyStream->commit(); + + return [$headers, $bodyStream]; + } + + protected function copyFromOpenSSLOutput(Swift_OutputByteStream $fromStream, Swift_InputByteStream $toStream) + { + $bufferLength = 4096; + $filteredStream = new Swift_ByteStream_TemporaryFileByteStream(); + $filteredStream->addFilter($this->replacementFactory->createFilter("\r\n", "\n"), 'CRLF to LF'); + $filteredStream->addFilter($this->replacementFactory->createFilter("\n", "\r\n"), 'LF to CRLF'); + + while (false !== ($buffer = $fromStream->read($bufferLength))) { + $filteredStream->write($buffer); + } + + $filteredStream->flushBuffers(); + + while (false !== ($buffer = $filteredStream->read($bufferLength))) { + $toStream->write($buffer); + } + + $toStream->commit(); + } +} diff --git a/user/plugins/email/vendor/swiftmailer/swiftmailer/lib/classes/Swift/SmtpTransport.php b/user/plugins/email/vendor/swiftmailer/swiftmailer/lib/classes/Swift/SmtpTransport.php new file mode 100644 index 0000000..56b6232 --- /dev/null +++ b/user/plugins/email/vendor/swiftmailer/swiftmailer/lib/classes/Swift/SmtpTransport.php @@ -0,0 +1,45 @@ +createDependenciesFor('transport.smtp') + ); + + $this->setHost($host); + $this->setPort($port); + $this->setEncryption($encryption); + } +} diff --git a/user/plugins/email/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Spool.php b/user/plugins/email/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Spool.php new file mode 100644 index 0000000..9d0e8fe --- /dev/null +++ b/user/plugins/email/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Spool.php @@ -0,0 +1,53 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +/** + * Interface for spools. + * + * @author Fabien Potencier + */ +interface Swift_Spool +{ + /** + * Starts this Spool mechanism. + */ + public function start(); + + /** + * Stops this Spool mechanism. + */ + public function stop(); + + /** + * Tests if this Spool mechanism has started. + * + * @return bool + */ + public function isStarted(); + + /** + * Queues a message. + * + * @param Swift_Mime_SimpleMessage $message The message to store + * + * @return bool Whether the operation has succeeded + */ + public function queueMessage(Swift_Mime_SimpleMessage $message); + + /** + * Sends messages using the given transport instance. + * + * @param Swift_Transport $transport A transport instance + * @param string[] $failedRecipients An array of failures by-reference + * + * @return int The number of sent emails + */ + public function flushQueue(Swift_Transport $transport, &$failedRecipients = null); +} diff --git a/user/plugins/email/vendor/swiftmailer/swiftmailer/lib/classes/Swift/SpoolTransport.php b/user/plugins/email/vendor/swiftmailer/swiftmailer/lib/classes/Swift/SpoolTransport.php new file mode 100644 index 0000000..c08e0fb --- /dev/null +++ b/user/plugins/email/vendor/swiftmailer/swiftmailer/lib/classes/Swift/SpoolTransport.php @@ -0,0 +1,33 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +/** + * Stores Messages in a queue. + * + * @author Fabien Potencier + */ +class Swift_SpoolTransport extends Swift_Transport_SpoolTransport +{ + /** + * Create a new SpoolTransport. + */ + public function __construct(Swift_Spool $spool) + { + $arguments = Swift_DependencyContainer::getInstance() + ->createDependenciesFor('transport.spool'); + + $arguments[] = $spool; + + \call_user_func_array( + [$this, 'Swift_Transport_SpoolTransport::__construct'], + $arguments + ); + } +} diff --git a/user/plugins/email/vendor/swiftmailer/swiftmailer/lib/classes/Swift/StreamFilter.php b/user/plugins/email/vendor/swiftmailer/swiftmailer/lib/classes/Swift/StreamFilter.php new file mode 100644 index 0000000..362be2e --- /dev/null +++ b/user/plugins/email/vendor/swiftmailer/swiftmailer/lib/classes/Swift/StreamFilter.php @@ -0,0 +1,35 @@ +index = []; + $this->tree = []; + $this->replace = []; + $this->repSize = []; + + $tree = null; + $i = null; + $last_size = $size = 0; + foreach ($search as $i => $search_element) { + if (null !== $tree) { + $tree[-1] = min(\count($replace) - 1, $i - 1); + $tree[-2] = $last_size; + } + $tree = &$this->tree; + if (\is_array($search_element)) { + foreach ($search_element as $k => $char) { + $this->index[$char] = true; + if (!isset($tree[$char])) { + $tree[$char] = []; + } + $tree = &$tree[$char]; + } + $last_size = $k + 1; + $size = max($size, $last_size); + } else { + $last_size = 1; + if (!isset($tree[$search_element])) { + $tree[$search_element] = []; + } + $tree = &$tree[$search_element]; + $size = max($last_size, $size); + $this->index[$search_element] = true; + } + } + if (null !== $i) { + $tree[-1] = min(\count($replace) - 1, $i); + $tree[-2] = $last_size; + $this->treeMaxLen = $size; + } + foreach ($replace as $rep) { + if (!\is_array($rep)) { + $rep = [$rep]; + } + $this->replace[] = $rep; + } + for ($i = \count($this->replace) - 1; $i >= 0; --$i) { + $this->replace[$i] = $rep = $this->filter($this->replace[$i], $i); + $this->repSize[$i] = \count($rep); + } + } + + /** + * Returns true if based on the buffer passed more bytes should be buffered. + * + * @param array $buffer + * + * @return bool + */ + public function shouldBuffer($buffer) + { + $endOfBuffer = end($buffer); + + return isset($this->index[$endOfBuffer]); + } + + /** + * Perform the actual replacements on $buffer and return the result. + * + * @param array $buffer + * @param int $minReplaces + * + * @return array + */ + public function filter($buffer, $minReplaces = -1) + { + if (0 == $this->treeMaxLen) { + return $buffer; + } + + $newBuffer = []; + $buf_size = \count($buffer); + $last_size = 0; + for ($i = 0; $i < $buf_size; ++$i) { + $search_pos = $this->tree; + $last_found = PHP_INT_MAX; + // We try to find if the next byte is part of a search pattern + for ($j = 0; $j <= $this->treeMaxLen; ++$j) { + // We have a new byte for a search pattern + if (isset($buffer[$p = $i + $j]) && isset($search_pos[$buffer[$p]])) { + $search_pos = $search_pos[$buffer[$p]]; + // We have a complete pattern, save, in case we don't find a better match later + if (isset($search_pos[-1]) && $search_pos[-1] < $last_found + && $search_pos[-1] > $minReplaces) { + $last_found = $search_pos[-1]; + $last_size = $search_pos[-2]; + } + } + // We got a complete pattern + elseif (PHP_INT_MAX !== $last_found) { + // Adding replacement datas to output buffer + $rep_size = $this->repSize[$last_found]; + for ($j = 0; $j < $rep_size; ++$j) { + $newBuffer[] = $this->replace[$last_found][$j]; + } + // We Move cursor forward + $i += $last_size - 1; + // Edge Case, last position in buffer + if ($i >= $buf_size) { + $newBuffer[] = $buffer[$i]; + } + + // We start the next loop + continue 2; + } else { + // this byte is not in a pattern and we haven't found another pattern + break; + } + } + // Normal byte, move it to output buffer + $newBuffer[] = $buffer[$i]; + } + + return $newBuffer; + } +} diff --git a/user/plugins/email/vendor/swiftmailer/swiftmailer/lib/classes/Swift/StreamFilters/StringReplacementFilter.php b/user/plugins/email/vendor/swiftmailer/swiftmailer/lib/classes/Swift/StreamFilters/StringReplacementFilter.php new file mode 100644 index 0000000..50a63f1 --- /dev/null +++ b/user/plugins/email/vendor/swiftmailer/swiftmailer/lib/classes/Swift/StreamFilters/StringReplacementFilter.php @@ -0,0 +1,70 @@ +search = $search; + $this->replace = $replace; + } + + /** + * Returns true if based on the buffer passed more bytes should be buffered. + * + * @param string $buffer + * + * @return bool + */ + public function shouldBuffer($buffer) + { + if ('' === $buffer) { + return false; + } + + $endOfBuffer = substr($buffer, -1); + foreach ((array) $this->search as $needle) { + if (false !== strpos($needle, $endOfBuffer)) { + return true; + } + } + + return false; + } + + /** + * Perform the actual replacements on $buffer and return the result. + * + * @param string $buffer + * + * @return string + */ + public function filter($buffer) + { + return str_replace($this->search, $this->replace, $buffer); + } +} diff --git a/user/plugins/email/vendor/swiftmailer/swiftmailer/lib/classes/Swift/StreamFilters/StringReplacementFilterFactory.php b/user/plugins/email/vendor/swiftmailer/swiftmailer/lib/classes/Swift/StreamFilters/StringReplacementFilterFactory.php new file mode 100644 index 0000000..783b889 --- /dev/null +++ b/user/plugins/email/vendor/swiftmailer/swiftmailer/lib/classes/Swift/StreamFilters/StringReplacementFilterFactory.php @@ -0,0 +1,45 @@ +filters[$search][$replace])) { + if (!isset($this->filters[$search])) { + $this->filters[$search] = []; + } + + if (!isset($this->filters[$search][$replace])) { + $this->filters[$search][$replace] = []; + } + + $this->filters[$search][$replace] = new Swift_StreamFilters_StringReplacementFilter($search, $replace); + } + + return $this->filters[$search][$replace]; + } +} diff --git a/user/plugins/email/vendor/swiftmailer/swiftmailer/lib/classes/Swift/SwiftException.php b/user/plugins/email/vendor/swiftmailer/swiftmailer/lib/classes/Swift/SwiftException.php new file mode 100644 index 0000000..15e68b1 --- /dev/null +++ b/user/plugins/email/vendor/swiftmailer/swiftmailer/lib/classes/Swift/SwiftException.php @@ -0,0 +1,28 @@ +ping()) { + * $transport->stop(); + * $transport->start(); + * } + * + * The Transport mechanism will be started, if it is not already. + * + * It is undefined if the Transport mechanism attempts to restart as long as + * the return value reflects whether the mechanism is now functional. + * + * @return bool TRUE if the transport is alive + */ + public function ping(); + + /** + * Send the given Message. + * + * Recipient/sender data will be retrieved from the Message API. + * The return value is the number of recipients who were accepted for delivery. + * + * This is the responsibility of the send method to start the transport if needed. + * + * @param string[] $failedRecipients An array of failures by-reference + * + * @return int + */ + public function send(Swift_Mime_SimpleMessage $message, &$failedRecipients = null); + + /** + * Register a plugin in the Transport. + */ + public function registerPlugin(Swift_Events_EventListener $plugin); +} diff --git a/user/plugins/email/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Transport/AbstractSmtpTransport.php b/user/plugins/email/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Transport/AbstractSmtpTransport.php new file mode 100644 index 0000000..d2dbd7a --- /dev/null +++ b/user/plugins/email/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Transport/AbstractSmtpTransport.php @@ -0,0 +1,541 @@ +buffer = $buf; + $this->eventDispatcher = $dispatcher; + $this->addressEncoder = $addressEncoder ?? new Swift_AddressEncoder_IdnAddressEncoder(); + $this->setLocalDomain($localDomain); + } + + /** + * Set the name of the local domain which Swift will identify itself as. + * + * This should be a fully-qualified domain name and should be truly the domain + * you're using. + * + * If your server does not have a domain name, use the IP address. This will + * automatically be wrapped in square brackets as described in RFC 5321, + * section 4.1.3. + * + * @param string $domain + * + * @return $this + */ + public function setLocalDomain($domain) + { + if ('[' !== substr($domain, 0, 1)) { + if (filter_var($domain, FILTER_VALIDATE_IP, FILTER_FLAG_IPV4)) { + $domain = '['.$domain.']'; + } elseif (filter_var($domain, FILTER_VALIDATE_IP, FILTER_FLAG_IPV6)) { + $domain = '[IPv6:'.$domain.']'; + } + } + + $this->domain = $domain; + + return $this; + } + + /** + * Get the name of the domain Swift will identify as. + * + * If an IP address was specified, this will be returned wrapped in square + * brackets as described in RFC 5321, section 4.1.3. + * + * @return string + */ + public function getLocalDomain() + { + return $this->domain; + } + + /** + * Sets the source IP. + * + * @param string $source + */ + public function setSourceIp($source) + { + $this->sourceIp = $source; + } + + /** + * Returns the IP used to connect to the destination. + * + * @return string + */ + public function getSourceIp() + { + return $this->sourceIp; + } + + public function setAddressEncoder(Swift_AddressEncoder $addressEncoder) + { + $this->addressEncoder = $addressEncoder; + } + + public function getAddressEncoder() + { + return $this->addressEncoder; + } + + /** + * Start the SMTP connection. + */ + public function start() + { + if (!$this->started) { + if ($evt = $this->eventDispatcher->createTransportChangeEvent($this)) { + $this->eventDispatcher->dispatchEvent($evt, 'beforeTransportStarted'); + if ($evt->bubbleCancelled()) { + return; + } + } + + try { + $this->buffer->initialize($this->getBufferParams()); + } catch (Swift_TransportException $e) { + $this->throwException($e); + } + $this->readGreeting(); + $this->doHeloCommand(); + + if ($evt) { + $this->eventDispatcher->dispatchEvent($evt, 'transportStarted'); + } + + $this->started = true; + } + } + + /** + * Test if an SMTP connection has been established. + * + * @return bool + */ + public function isStarted() + { + return $this->started; + } + + /** + * Send the given Message. + * + * Recipient/sender data will be retrieved from the Message API. + * The return value is the number of recipients who were accepted for delivery. + * + * @param string[] $failedRecipients An array of failures by-reference + * + * @return int + */ + public function send(Swift_Mime_SimpleMessage $message, &$failedRecipients = null) + { + if (!$this->isStarted()) { + $this->start(); + } + + $sent = 0; + $failedRecipients = (array) $failedRecipients; + + if ($evt = $this->eventDispatcher->createSendEvent($this, $message)) { + $this->eventDispatcher->dispatchEvent($evt, 'beforeSendPerformed'); + if ($evt->bubbleCancelled()) { + return 0; + } + } + + if (!$reversePath = $this->getReversePath($message)) { + $this->throwException(new Swift_TransportException('Cannot send message without a sender address')); + } + + $to = (array) $message->getTo(); + $cc = (array) $message->getCc(); + $bcc = (array) $message->getBcc(); + $tos = array_merge($to, $cc, $bcc); + + $message->setBcc([]); + + try { + $sent += $this->sendTo($message, $reversePath, $tos, $failedRecipients); + } finally { + $message->setBcc($bcc); + } + + if ($evt) { + if ($sent == \count($to) + \count($cc) + \count($bcc)) { + $evt->setResult(Swift_Events_SendEvent::RESULT_SUCCESS); + } elseif ($sent > 0) { + $evt->setResult(Swift_Events_SendEvent::RESULT_TENTATIVE); + } else { + $evt->setResult(Swift_Events_SendEvent::RESULT_FAILED); + } + $evt->setFailedRecipients($failedRecipients); + $this->eventDispatcher->dispatchEvent($evt, 'sendPerformed'); + } + + $message->generateId(); //Make sure a new Message ID is used + + return $sent; + } + + /** + * Stop the SMTP connection. + */ + public function stop() + { + if ($this->started) { + if ($evt = $this->eventDispatcher->createTransportChangeEvent($this)) { + $this->eventDispatcher->dispatchEvent($evt, 'beforeTransportStopped'); + if ($evt->bubbleCancelled()) { + return; + } + } + + try { + $this->executeCommand("QUIT\r\n", [221]); + } catch (Swift_TransportException $e) { + } + + try { + $this->buffer->terminate(); + + if ($evt) { + $this->eventDispatcher->dispatchEvent($evt, 'transportStopped'); + } + } catch (Swift_TransportException $e) { + $this->throwException($e); + } + } + $this->started = false; + } + + /** + * {@inheritdoc} + */ + public function ping() + { + try { + if (!$this->isStarted()) { + $this->start(); + } + + $this->executeCommand("NOOP\r\n", [250]); + } catch (Swift_TransportException $e) { + try { + $this->stop(); + } catch (Swift_TransportException $e) { + } + + return false; + } + + return true; + } + + /** + * Register a plugin. + */ + public function registerPlugin(Swift_Events_EventListener $plugin) + { + $this->eventDispatcher->bindEventListener($plugin); + } + + /** + * Reset the current mail transaction. + */ + public function reset() + { + $this->executeCommand("RSET\r\n", [250], $failures, true); + } + + /** + * Get the IoBuffer where read/writes are occurring. + * + * @return Swift_Transport_IoBuffer + */ + public function getBuffer() + { + return $this->buffer; + } + + /** + * Run a command against the buffer, expecting the given response codes. + * + * If no response codes are given, the response will not be validated. + * If codes are given, an exception will be thrown on an invalid response. + * If the command is RCPT TO, and the pipeline is non-empty, no exception + * will be thrown; instead the failing address is added to $failures. + * + * @param string $command + * @param int[] $codes + * @param string[] $failures An array of failures by-reference + * @param bool $pipeline Do not wait for response + * @param string $address the address, if command is RCPT TO + * + * @return string|null The server response, or null if pipelining is enabled + */ + public function executeCommand($command, $codes = [], &$failures = null, $pipeline = false, $address = null) + { + $failures = (array) $failures; + $seq = $this->buffer->write($command); + if ($evt = $this->eventDispatcher->createCommandEvent($this, $command, $codes)) { + $this->eventDispatcher->dispatchEvent($evt, 'commandSent'); + } + + $this->pipeline[] = [$command, $seq, $codes, $address]; + + if ($pipeline && $this->pipelining) { + return null; + } + + $response = null; + + while ($this->pipeline) { + list($command, $seq, $codes, $address) = array_shift($this->pipeline); + $response = $this->getFullResponse($seq); + try { + $this->assertResponseCode($response, $codes); + } catch (Swift_TransportException $e) { + if ($this->pipeline && $address) { + $failures[] = $address; + } else { + $this->throwException($e); + } + } + } + + return $response; + } + + /** Read the opening SMTP greeting */ + protected function readGreeting() + { + $this->assertResponseCode($this->getFullResponse(0), [220]); + } + + /** Send the HELO welcome */ + protected function doHeloCommand() + { + $this->executeCommand( + sprintf("HELO %s\r\n", $this->domain), [250] + ); + } + + /** Send the MAIL FROM command */ + protected function doMailFromCommand($address) + { + $address = $this->addressEncoder->encodeString($address); + $this->executeCommand( + sprintf("MAIL FROM:<%s>\r\n", $address), [250], $failures, true + ); + } + + /** Send the RCPT TO command */ + protected function doRcptToCommand($address) + { + $address = $this->addressEncoder->encodeString($address); + $this->executeCommand( + sprintf("RCPT TO:<%s>\r\n", $address), [250, 251, 252], $failures, true, $address + ); + } + + /** Send the DATA command */ + protected function doDataCommand(&$failedRecipients) + { + $this->executeCommand("DATA\r\n", [354], $failedRecipients); + } + + /** Stream the contents of the message over the buffer */ + protected function streamMessage(Swift_Mime_SimpleMessage $message) + { + $this->buffer->setWriteTranslations(["\r\n." => "\r\n.."]); + try { + $message->toByteStream($this->buffer); + $this->buffer->flushBuffers(); + } catch (Swift_TransportException $e) { + $this->throwException($e); + } + $this->buffer->setWriteTranslations([]); + $this->executeCommand("\r\n.\r\n", [250]); + } + + /** Determine the best-use reverse path for this message */ + protected function getReversePath(Swift_Mime_SimpleMessage $message) + { + $return = $message->getReturnPath(); + $sender = $message->getSender(); + $from = $message->getFrom(); + $path = null; + if (!empty($return)) { + $path = $return; + } elseif (!empty($sender)) { + // Don't use array_keys + reset($sender); // Reset Pointer to first pos + $path = key($sender); // Get key + } elseif (!empty($from)) { + reset($from); // Reset Pointer to first pos + $path = key($from); // Get key + } + + return $path; + } + + /** Throw a TransportException, first sending it to any listeners */ + protected function throwException(Swift_TransportException $e) + { + if ($evt = $this->eventDispatcher->createTransportExceptionEvent($this, $e)) { + $this->eventDispatcher->dispatchEvent($evt, 'exceptionThrown'); + if (!$evt->bubbleCancelled()) { + throw $e; + } + } else { + throw $e; + } + } + + /** Throws an Exception if a response code is incorrect */ + protected function assertResponseCode($response, $wanted) + { + if (!$response) { + $this->throwException(new Swift_TransportException('Expected response code '.implode('/', $wanted).' but got an empty response')); + } + + list($code) = sscanf($response, '%3d'); + $valid = (empty($wanted) || \in_array($code, $wanted)); + + if ($evt = $this->eventDispatcher->createResponseEvent($this, $response, + $valid)) { + $this->eventDispatcher->dispatchEvent($evt, 'responseReceived'); + } + + if (!$valid) { + $this->throwException(new Swift_TransportException('Expected response code '.implode('/', $wanted).' but got code "'.$code.'", with message "'.$response.'"', $code)); + } + } + + /** Get an entire multi-line response using its sequence number */ + protected function getFullResponse($seq) + { + $response = ''; + try { + do { + $line = $this->buffer->readLine($seq); + $response .= $line; + } while (null !== $line && false !== $line && ' ' != $line[3]); + } catch (Swift_TransportException $e) { + $this->throwException($e); + } catch (Swift_IoException $e) { + $this->throwException(new Swift_TransportException($e->getMessage(), 0, $e)); + } + + return $response; + } + + /** Send an email to the given recipients from the given reverse path */ + private function doMailTransaction($message, $reversePath, array $recipients, array &$failedRecipients) + { + $sent = 0; + $this->doMailFromCommand($reversePath); + foreach ($recipients as $forwardPath) { + try { + $this->doRcptToCommand($forwardPath); + ++$sent; + } catch (Swift_TransportException $e) { + $failedRecipients[] = $forwardPath; + } catch (Swift_AddressEncoderException $e) { + $failedRecipients[] = $forwardPath; + } + } + + if (0 != $sent) { + $sent += \count($failedRecipients); + $this->doDataCommand($failedRecipients); + $sent -= \count($failedRecipients); + + $this->streamMessage($message); + } else { + $this->reset(); + } + + return $sent; + } + + /** Send a message to the given To: recipients */ + private function sendTo(Swift_Mime_SimpleMessage $message, $reversePath, array $to, array &$failedRecipients) + { + if (empty($to)) { + return 0; + } + + return $this->doMailTransaction($message, $reversePath, array_keys($to), + $failedRecipients); + } + + /** + * Destructor. + */ + public function __destruct() + { + try { + $this->stop(); + } catch (Exception $e) { + } + } + + public function __sleep() + { + throw new \BadMethodCallException('Cannot serialize '.__CLASS__); + } + + public function __wakeup() + { + throw new \BadMethodCallException('Cannot unserialize '.__CLASS__); + } +} diff --git a/user/plugins/email/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Transport/Esmtp/Auth/CramMd5Authenticator.php b/user/plugins/email/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Transport/Esmtp/Auth/CramMd5Authenticator.php new file mode 100644 index 0000000..bb3a161 --- /dev/null +++ b/user/plugins/email/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Transport/Esmtp/Auth/CramMd5Authenticator.php @@ -0,0 +1,75 @@ +executeCommand("AUTH CRAM-MD5\r\n", [334]); + $challenge = base64_decode(substr($challenge, 4)); + $message = base64_encode( + $username.' '.$this->getResponse($password, $challenge) + ); + $agent->executeCommand(sprintf("%s\r\n", $message), [235]); + + return true; + } catch (Swift_TransportException $e) { + $agent->executeCommand("RSET\r\n", [250]); + + throw $e; + } + } + + /** + * Generate a CRAM-MD5 response from a server challenge. + * + * @param string $secret + * @param string $challenge + * + * @return string + */ + private function getResponse($secret, $challenge) + { + if (\strlen($secret) > 64) { + $secret = pack('H32', md5($secret)); + } + + if (\strlen($secret) < 64) { + $secret = str_pad($secret, 64, \chr(0)); + } + + $k_ipad = substr($secret, 0, 64) ^ str_repeat(\chr(0x36), 64); + $k_opad = substr($secret, 0, 64) ^ str_repeat(\chr(0x5C), 64); + + $inner = pack('H32', md5($k_ipad.$challenge)); + $digest = md5($k_opad.$inner); + + return $digest; + } +} diff --git a/user/plugins/email/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Transport/Esmtp/Auth/LoginAuthenticator.php b/user/plugins/email/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Transport/Esmtp/Auth/LoginAuthenticator.php new file mode 100644 index 0000000..0b9d81b --- /dev/null +++ b/user/plugins/email/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Transport/Esmtp/Auth/LoginAuthenticator.php @@ -0,0 +1,45 @@ +executeCommand("AUTH LOGIN\r\n", [334]); + $agent->executeCommand(sprintf("%s\r\n", base64_encode($username ?? '')), [334]); + $agent->executeCommand(sprintf("%s\r\n", base64_encode($password ?? '')), [235]); + + return true; + } catch (Swift_TransportException $e) { + $agent->executeCommand("RSET\r\n", [250]); + + throw $e; + } + } +} diff --git a/user/plugins/email/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Transport/Esmtp/Auth/NTLMAuthenticator.php b/user/plugins/email/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Transport/Esmtp/Auth/NTLMAuthenticator.php new file mode 100644 index 0000000..41931fd --- /dev/null +++ b/user/plugins/email/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Transport/Esmtp/Auth/NTLMAuthenticator.php @@ -0,0 +1,681 @@ + + */ +class Swift_Transport_Esmtp_Auth_NTLMAuthenticator implements Swift_Transport_Esmtp_Authenticator +{ + const NTLMSIG = "NTLMSSP\x00"; + const DESCONST = 'KGS!@#$%'; + + /** + * Get the name of the AUTH mechanism this Authenticator handles. + * + * @return string + */ + public function getAuthKeyword() + { + return 'NTLM'; + } + + /** + * {@inheritdoc} + * + * @throws \LogicException + */ + public function authenticate(Swift_Transport_SmtpAgent $agent, $username, $password) + { + if (!\function_exists('openssl_encrypt')) { + throw new LogicException('The OpenSSL extension must be enabled to use the NTLM authenticator.'); + } + + if (!\function_exists('bcmul')) { + throw new LogicException('The BCMath functions must be enabled to use the NTLM authenticator.'); + } + + try { + // execute AUTH command and filter out the code at the beginning + // AUTH NTLM xxxx + $response = base64_decode(substr(trim($this->sendMessage1($agent) ?? ''), 4)); + + // extra parameters for our unit cases + $timestamp = \func_num_args() > 3 ? func_get_arg(3) : $this->getCorrectTimestamp(bcmul(microtime(true), '1000')); + $client = \func_num_args() > 4 ? func_get_arg(4) : random_bytes(8); + + // Message 3 response + $this->sendMessage3($response, $username, $password, $timestamp, $client, $agent); + + return true; + } catch (Swift_TransportException $e) { + $agent->executeCommand("RSET\r\n", [250]); + + throw $e; + } + } + + protected function si2bin($si, $bits = 32) + { + $bin = null; + if ($si >= -2 ** ($bits - 1) && ($si <= 2 ** ($bits - 1))) { + // positive or zero + if ($si >= 0) { + $bin = base_convert($si, 10, 2); + // pad to $bits bit + $bin_length = \strlen($bin); + if ($bin_length < $bits) { + $bin = str_repeat('0', $bits - $bin_length).$bin; + } + } else { + // negative + $si = -$si - 2 ** $bits; + $bin = base_convert($si, 10, 2); + $bin_length = \strlen($bin); + if ($bin_length > $bits) { + $bin = str_repeat('1', $bits - $bin_length).$bin; + } + } + } + + return $bin; + } + + /** + * Send our auth message and returns the response. + * + * @return string SMTP Response + */ + protected function sendMessage1(Swift_Transport_SmtpAgent $agent) + { + $message = $this->createMessage1(); + + return $agent->executeCommand(sprintf("AUTH %s %s\r\n", $this->getAuthKeyword(), base64_encode($message)), [334]); + } + + /** + * Fetch all details of our response (message 2). + * + * @param string $response + * + * @return array our response parsed + */ + protected function parseMessage2($response) + { + $responseHex = bin2hex($response); + $length = floor(hexdec(substr($responseHex, 28, 4)) / 256) * 2; + $offset = floor(hexdec(substr($responseHex, 32, 4)) / 256) * 2; + $challenge = hex2bin(substr($responseHex, 48, 16)); + $context = hex2bin(substr($responseHex, 64, 16)); + $targetInfoH = hex2bin(substr($responseHex, 80, 16)); + $targetName = hex2bin(substr($responseHex, $offset, $length)); + $offset = floor(hexdec(substr($responseHex, 88, 4)) / 256) * 2; + $targetInfoBlock = substr($responseHex, $offset); + list($domainName, $serverName, $DNSDomainName, $DNSServerName, $terminatorByte) = $this->readSubBlock($targetInfoBlock); + + return [ + $challenge, + $context, + $targetInfoH, + $targetName, + $domainName, + $serverName, + $DNSDomainName, + $DNSServerName, + hex2bin($targetInfoBlock), + $terminatorByte, + ]; + } + + /** + * Read the blob information in from message2. + * + * @return array + */ + protected function readSubBlock($block) + { + // remove terminatorByte cause it's always the same + $block = substr($block, 0, -8); + + $length = \strlen($block); + $offset = 0; + $data = []; + while ($offset < $length) { + $blockLength = hexdec(substr(substr($block, $offset, 8), -4)) / 256; + $offset += 8; + $data[] = hex2bin(substr($block, $offset, $blockLength * 2)); + $offset += $blockLength * 2; + } + + if (3 == \count($data)) { + $data[] = $data[2]; + $data[2] = ''; + } + + $data[] = $this->createByte('00'); + + return $data; + } + + /** + * Send our final message with all our data. + * + * @param string $response Message 1 response (message 2) + * @param string $username + * @param string $password + * @param string $timestamp + * @param string $client + * @param bool $v2 Use version2 of the protocol + * + * @return string + */ + protected function sendMessage3($response, $username, $password, $timestamp, $client, Swift_Transport_SmtpAgent $agent, $v2 = true) + { + list($domain, $username) = $this->getDomainAndUsername($username); + //$challenge, $context, $targetInfoH, $targetName, $domainName, $workstation, $DNSDomainName, $DNSServerName, $blob, $ter + list($challenge, , , , , $workstation, , , $blob) = $this->parseMessage2($response); + + if (!$v2) { + // LMv1 + $lmResponse = $this->createLMPassword($password, $challenge); + // NTLMv1 + $ntlmResponse = $this->createNTLMPassword($password, $challenge); + } else { + // LMv2 + $lmResponse = $this->createLMv2Password($password, $username, $domain, $challenge, $client); + // NTLMv2 + $ntlmResponse = $this->createNTLMv2Hash($password, $username, $domain, $challenge, $blob, $timestamp, $client); + } + + $message = $this->createMessage3($domain, $username, $workstation, $lmResponse, $ntlmResponse); + + return $agent->executeCommand(sprintf("%s\r\n", base64_encode($message)), [235]); + } + + /** + * Create our message 1. + * + * @return string + */ + protected function createMessage1() + { + return self::NTLMSIG + .$this->createByte('01') // Message 1 +.$this->createByte('0702'); // Flags + } + + /** + * Create our message 3. + * + * @param string $domain + * @param string $username + * @param string $workstation + * @param string $lmResponse + * @param string $ntlmResponse + * + * @return string + */ + protected function createMessage3($domain, $username, $workstation, $lmResponse, $ntlmResponse) + { + // Create security buffers + $domainSec = $this->createSecurityBuffer($domain, 64); + $domainInfo = $this->readSecurityBuffer(bin2hex($domainSec)); + $userSec = $this->createSecurityBuffer($username, ($domainInfo[0] + $domainInfo[1]) / 2); + $userInfo = $this->readSecurityBuffer(bin2hex($userSec)); + $workSec = $this->createSecurityBuffer($workstation, ($userInfo[0] + $userInfo[1]) / 2); + $workInfo = $this->readSecurityBuffer(bin2hex($workSec)); + $lmSec = $this->createSecurityBuffer($lmResponse, ($workInfo[0] + $workInfo[1]) / 2, true); + $lmInfo = $this->readSecurityBuffer(bin2hex($lmSec)); + $ntlmSec = $this->createSecurityBuffer($ntlmResponse, ($lmInfo[0] + $lmInfo[1]) / 2, true); + + return self::NTLMSIG + .$this->createByte('03') // TYPE 3 message +.$lmSec // LM response header +.$ntlmSec // NTLM response header +.$domainSec // Domain header +.$userSec // User header +.$workSec // Workstation header +.$this->createByte('000000009a', 8) // session key header (empty) +.$this->createByte('01020000') // FLAGS +.$this->convertTo16bit($domain) // domain name +.$this->convertTo16bit($username) // username +.$this->convertTo16bit($workstation) // workstation +.$lmResponse + .$ntlmResponse; + } + + /** + * @param string $timestamp Epoch timestamp in microseconds + * @param string $client Random bytes + * @param string $targetInfo + * + * @return string + */ + protected function createBlob($timestamp, $client, $targetInfo) + { + return $this->createByte('0101') + .$this->createByte('00') + .$timestamp + .$client + .$this->createByte('00') + .$targetInfo + .$this->createByte('00'); + } + + /** + * Get domain and username from our username. + * + * @example DOMAIN\username + * + * @param string $name + * + * @return array + */ + protected function getDomainAndUsername($name) + { + if (false !== strpos($name, '\\')) { + return explode('\\', $name); + } + + if (false !== strpos($name, '@')) { + list($user, $domain) = explode('@', $name); + + return [$domain, $user]; + } + + // no domain passed + return ['', $name]; + } + + /** + * Create LMv1 response. + * + * @param string $password + * @param string $challenge + * + * @return string + */ + protected function createLMPassword($password, $challenge) + { + // FIRST PART + $password = $this->createByte(strtoupper($password), 14, false); + list($key1, $key2) = str_split($password, 7); + + $desKey1 = $this->createDesKey($key1); + $desKey2 = $this->createDesKey($key2); + + $constantDecrypt = $this->createByte($this->desEncrypt(self::DESCONST, $desKey1).$this->desEncrypt(self::DESCONST, $desKey2), 21, false); + + // SECOND PART + list($key1, $key2, $key3) = str_split($constantDecrypt, 7); + + $desKey1 = $this->createDesKey($key1); + $desKey2 = $this->createDesKey($key2); + $desKey3 = $this->createDesKey($key3); + + return $this->desEncrypt($challenge, $desKey1).$this->desEncrypt($challenge, $desKey2).$this->desEncrypt($challenge, $desKey3); + } + + /** + * Create NTLMv1 response. + * + * @param string $password + * @param string $challenge + * + * @return string + */ + protected function createNTLMPassword($password, $challenge) + { + // FIRST PART + $ntlmHash = $this->createByte($this->md4Encrypt($password), 21, false); + list($key1, $key2, $key3) = str_split($ntlmHash, 7); + + $desKey1 = $this->createDesKey($key1); + $desKey2 = $this->createDesKey($key2); + $desKey3 = $this->createDesKey($key3); + + return $this->desEncrypt($challenge, $desKey1).$this->desEncrypt($challenge, $desKey2).$this->desEncrypt($challenge, $desKey3); + } + + /** + * Convert a normal timestamp to a tenth of a microtime epoch time. + * + * @param string $time + * + * @return string + */ + protected function getCorrectTimestamp($time) + { + // Get our timestamp (tricky!) + $time = number_format($time, 0, '.', ''); // save microtime to string + $time = bcadd($time, '11644473600000', 0); // add epoch time + $time = bcmul($time, 10000, 0); // tenths of a microsecond. + + $binary = $this->si2bin($time, 64); // create 64 bit binary string + $timestamp = ''; + for ($i = 0; $i < 8; ++$i) { + $timestamp .= \chr(bindec(substr($binary, -(($i + 1) * 8), 8))); + } + + return $timestamp; + } + + /** + * Create LMv2 response. + * + * @param string $password + * @param string $username + * @param string $domain + * @param string $challenge NTLM Challenge + * @param string $client Random string + * + * @return string + */ + protected function createLMv2Password($password, $username, $domain, $challenge, $client) + { + $lmPass = '00'; // by default 00 + // if $password > 15 than we can't use this method + if (\strlen($password) <= 15) { + $ntlmHash = $this->md4Encrypt($password); + $ntml2Hash = $this->md5Encrypt($ntlmHash, $this->convertTo16bit(strtoupper($username).$domain)); + + $lmPass = bin2hex($this->md5Encrypt($ntml2Hash, $challenge.$client).$client); + } + + return $this->createByte($lmPass, 24); + } + + /** + * Create NTLMv2 response. + * + * @param string $password + * @param string $username + * @param string $domain + * @param string $challenge Hex values + * @param string $targetInfo Hex values + * @param string $timestamp + * @param string $client Random bytes + * + * @return string + * + * @see http://davenport.sourceforge.net/ntlm.html#theNtlmResponse + */ + protected function createNTLMv2Hash($password, $username, $domain, $challenge, $targetInfo, $timestamp, $client) + { + $ntlmHash = $this->md4Encrypt($password); + $ntml2Hash = $this->md5Encrypt($ntlmHash, $this->convertTo16bit(strtoupper($username).$domain)); + + // create blob + $blob = $this->createBlob($timestamp, $client, $targetInfo); + + $ntlmv2Response = $this->md5Encrypt($ntml2Hash, $challenge.$blob); + + return $ntlmv2Response.$blob; + } + + protected function createDesKey($key) + { + $material = [bin2hex($key[0])]; + $len = \strlen($key); + for ($i = 1; $i < $len; ++$i) { + list($high, $low) = str_split(bin2hex($key[$i])); + $v = $this->castToByte(\ord($key[$i - 1]) << (7 + 1 - $i) | $this->uRShift(hexdec(dechex(hexdec($high) & 0xf).dechex(hexdec($low) & 0xf)), $i)); + $material[] = str_pad(substr(dechex($v), -2), 2, '0', STR_PAD_LEFT); // cast to byte + } + $material[] = str_pad(substr(dechex($this->castToByte(\ord($key[6]) << 1)), -2), 2, '0'); + + // odd parity + foreach ($material as $k => $v) { + $b = $this->castToByte(hexdec($v)); + $needsParity = 0 == (($this->uRShift($b, 7) ^ $this->uRShift($b, 6) ^ $this->uRShift($b, 5) + ^ $this->uRShift($b, 4) ^ $this->uRShift($b, 3) ^ $this->uRShift($b, 2) + ^ $this->uRShift($b, 1)) & 0x01); + + list($high, $low) = str_split($v); + if ($needsParity) { + $material[$k] = dechex(hexdec($high) | 0x0).dechex(hexdec($low) | 0x1); + } else { + $material[$k] = dechex(hexdec($high) & 0xf).dechex(hexdec($low) & 0xe); + } + } + + return hex2bin(implode('', $material)); + } + + /** HELPER FUNCTIONS */ + + /** + * Create our security buffer depending on length and offset. + * + * @param string $value Value we want to put in + * @param int $offset start of value + * @param bool $is16 Do we 16bit string or not? + * + * @return string + */ + protected function createSecurityBuffer($value, $offset, $is16 = false) + { + $length = \strlen(bin2hex($value)); + $length = $is16 ? $length / 2 : $length; + $length = $this->createByte(str_pad(dechex($length), 2, '0', STR_PAD_LEFT), 2); + + return $length.$length.$this->createByte(dechex($offset), 4); + } + + /** + * Read our security buffer to fetch length and offset of our value. + * + * @param string $value Securitybuffer in hex + * + * @return array array with length and offset + */ + protected function readSecurityBuffer($value) + { + $length = floor(hexdec(substr($value, 0, 4)) / 256) * 2; + $offset = floor(hexdec(substr($value, 8, 4)) / 256) * 2; + + return [$length, $offset]; + } + + /** + * Cast to byte java equivalent to (byte). + * + * @param int $v + * + * @return int + */ + protected function castToByte($v) + { + return (($v + 128) % 256) - 128; + } + + /** + * Java unsigned right bitwise + * $a >>> $b. + * + * @param int $a + * @param int $b + * + * @return int + */ + protected function uRShift($a, $b) + { + if (0 == $b) { + return $a; + } + + return ($a >> $b) & ~(1 << (8 * PHP_INT_SIZE - 1) >> ($b - 1)); + } + + /** + * Right padding with 0 to certain length. + * + * @param string $input + * @param int $bytes Length of bytes + * @param bool $isHex Did we provided hex value + * + * @return string + */ + protected function createByte($input, $bytes = 4, $isHex = true) + { + if ($isHex) { + $byte = hex2bin(str_pad($input, $bytes * 2, '00')); + } else { + $byte = str_pad($input, $bytes, "\x00"); + } + + return $byte; + } + + /** ENCRYPTION ALGORITHMS */ + + /** + * DES Encryption. + * + * @param string $value An 8-byte string + * @param string $key + * + * @return string + */ + protected function desEncrypt($value, $key) + { + return substr(openssl_encrypt($value, 'DES-ECB', $key, \OPENSSL_RAW_DATA), 0, 8); + } + + /** + * MD5 Encryption. + * + * @param string $key Encryption key + * @param string $msg Message to encrypt + * + * @return string + */ + protected function md5Encrypt($key, $msg) + { + $blocksize = 64; + if (\strlen($key) > $blocksize) { + $key = pack('H*', md5($key)); + } + + $key = str_pad($key, $blocksize, "\0"); + $ipadk = $key ^ str_repeat("\x36", $blocksize); + $opadk = $key ^ str_repeat("\x5c", $blocksize); + + return pack('H*', md5($opadk.pack('H*', md5($ipadk.$msg)))); + } + + /** + * MD4 Encryption. + * + * @param string $input + * + * @return string + * + * @see https://secure.php.net/manual/en/ref.hash.php + */ + protected function md4Encrypt($input) + { + $input = $this->convertTo16bit($input); + + return \function_exists('hash') ? hex2bin(hash('md4', $input)) : mhash(MHASH_MD4, $input); + } + + /** + * Convert UTF-8 to UTF-16. + * + * @param string $input + * + * @return string + */ + protected function convertTo16bit($input) + { + return iconv('UTF-8', 'UTF-16LE', $input); + } + + /** + * @param string $message + */ + protected function debug($message) + { + $message = bin2hex($message); + $messageId = substr($message, 16, 8); + echo substr($message, 0, 16)." NTLMSSP Signature
    \n"; + echo $messageId." Type Indicator
    \n"; + + if ('02000000' == $messageId) { + $map = [ + 'Challenge', + 'Context', + 'Target Information Security Buffer', + 'Target Name Data', + 'NetBIOS Domain Name', + 'NetBIOS Server Name', + 'DNS Domain Name', + 'DNS Server Name', + 'BLOB', + 'Target Information Terminator', + ]; + + $data = $this->parseMessage2(hex2bin($message)); + + foreach ($map as $key => $value) { + echo bin2hex($data[$key]).' - '.$data[$key].' ||| '.$value."
    \n"; + } + } elseif ('03000000' == $messageId) { + $i = 0; + $data[$i++] = substr($message, 24, 16); + list($lmLength, $lmOffset) = $this->readSecurityBuffer($data[$i - 1]); + + $data[$i++] = substr($message, 40, 16); + list($ntmlLength, $ntmlOffset) = $this->readSecurityBuffer($data[$i - 1]); + + $data[$i++] = substr($message, 56, 16); + list($targetLength, $targetOffset) = $this->readSecurityBuffer($data[$i - 1]); + + $data[$i++] = substr($message, 72, 16); + list($userLength, $userOffset) = $this->readSecurityBuffer($data[$i - 1]); + + $data[$i++] = substr($message, 88, 16); + list($workLength, $workOffset) = $this->readSecurityBuffer($data[$i - 1]); + + $data[$i++] = substr($message, 104, 16); + $data[$i++] = substr($message, 120, 8); + $data[$i++] = substr($message, $targetOffset, $targetLength); + $data[$i++] = substr($message, $userOffset, $userLength); + $data[$i++] = substr($message, $workOffset, $workLength); + $data[$i++] = substr($message, $lmOffset, $lmLength); + $data[$i] = substr($message, $ntmlOffset, $ntmlLength); + + $map = [ + 'LM Response Security Buffer', + 'NTLM Response Security Buffer', + 'Target Name Security Buffer', + 'User Name Security Buffer', + 'Workstation Name Security Buffer', + 'Session Key Security Buffer', + 'Flags', + 'Target Name Data', + 'User Name Data', + 'Workstation Name Data', + 'LM Response Data', + 'NTLM Response Data', + ]; + + foreach ($map as $key => $value) { + echo $data[$key].' - '.hex2bin($data[$key]).' ||| '.$value."
    \n"; + } + } + + echo '

    '; + } +} diff --git a/user/plugins/email/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Transport/Esmtp/Auth/PlainAuthenticator.php b/user/plugins/email/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Transport/Esmtp/Auth/PlainAuthenticator.php new file mode 100644 index 0000000..41d0a50 --- /dev/null +++ b/user/plugins/email/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Transport/Esmtp/Auth/PlainAuthenticator.php @@ -0,0 +1,44 @@ +executeCommand(sprintf("AUTH PLAIN %s\r\n", $message), [235]); + + return true; + } catch (Swift_TransportException $e) { + $agent->executeCommand("RSET\r\n", [250]); + + throw $e; + } + } +} diff --git a/user/plugins/email/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Transport/Esmtp/Auth/XOAuth2Authenticator.php b/user/plugins/email/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Transport/Esmtp/Auth/XOAuth2Authenticator.php new file mode 100644 index 0000000..859f22f --- /dev/null +++ b/user/plugins/email/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Transport/Esmtp/Auth/XOAuth2Authenticator.php @@ -0,0 +1,64 @@ + + * $transport = (new Swift_SmtpTransport('smtp.gmail.com', 587, 'tls')) + * ->setAuthMode('XOAUTH2') + * ->setUsername('YOUR_EMAIL_ADDRESS') + * ->setPassword('YOUR_ACCESS_TOKEN'); + * + * + * @author xu.li + * + * @see https://developers.google.com/google-apps/gmail/xoauth2_protocol + */ +class Swift_Transport_Esmtp_Auth_XOAuth2Authenticator implements Swift_Transport_Esmtp_Authenticator +{ + /** + * Get the name of the AUTH mechanism this Authenticator handles. + * + * @return string + */ + public function getAuthKeyword() + { + return 'XOAUTH2'; + } + + /** + * {@inheritdoc} + */ + public function authenticate(Swift_Transport_SmtpAgent $agent, $email, $token) + { + try { + $param = $this->constructXOAuth2Params($email, $token); + $agent->executeCommand('AUTH XOAUTH2 '.$param."\r\n", [235]); + + return true; + } catch (Swift_TransportException $e) { + $agent->executeCommand("RSET\r\n", [250]); + + throw $e; + } + } + + /** + * Construct the auth parameter. + * + * @see https://developers.google.com/google-apps/gmail/xoauth2_protocol#the_sasl_xoauth2_mechanism + */ + protected function constructXOAuth2Params($email, $token) + { + return base64_encode("user=$email\1auth=Bearer $token\1\1"); + } +} diff --git a/user/plugins/email/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Transport/Esmtp/AuthHandler.php b/user/plugins/email/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Transport/Esmtp/AuthHandler.php new file mode 100644 index 0000000..53a90a8 --- /dev/null +++ b/user/plugins/email/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Transport/Esmtp/AuthHandler.php @@ -0,0 +1,268 @@ +setAuthenticators($authenticators); + } + + /** + * Set the Authenticators which can process a login request. + * + * @param Swift_Transport_Esmtp_Authenticator[] $authenticators + */ + public function setAuthenticators(array $authenticators) + { + $this->authenticators = $authenticators; + } + + /** + * Get the Authenticators which can process a login request. + * + * @return Swift_Transport_Esmtp_Authenticator[] + */ + public function getAuthenticators() + { + return $this->authenticators; + } + + /** + * Set the username to authenticate with. + * + * @param string $username + */ + public function setUsername($username) + { + $this->username = $username; + } + + /** + * Get the username to authenticate with. + * + * @return string + */ + public function getUsername() + { + return $this->username; + } + + /** + * Set the password to authenticate with. + * + * @param string $password + */ + public function setPassword($password) + { + $this->password = $password; + } + + /** + * Get the password to authenticate with. + * + * @return string + */ + public function getPassword() + { + return $this->password; + } + + /** + * Set the auth mode to use to authenticate. + * + * @param string $mode + */ + public function setAuthMode($mode) + { + $this->auth_mode = $mode; + } + + /** + * Get the auth mode to use to authenticate. + * + * @return string + */ + public function getAuthMode() + { + return $this->auth_mode; + } + + /** + * Get the name of the ESMTP extension this handles. + * + * @return string + */ + public function getHandledKeyword() + { + return 'AUTH'; + } + + /** + * Set the parameters which the EHLO greeting indicated. + * + * @param string[] $parameters + */ + public function setKeywordParams(array $parameters) + { + $this->esmtpParams = $parameters; + } + + /** + * Runs immediately after a EHLO has been issued. + * + * @param Swift_Transport_SmtpAgent $agent to read/write + */ + public function afterEhlo(Swift_Transport_SmtpAgent $agent) + { + if ($this->username) { + $count = 0; + $errors = []; + foreach ($this->getAuthenticatorsForAgent() as $authenticator) { + if (\in_array(strtolower($authenticator->getAuthKeyword() ?? ''), array_map('strtolower', $this->esmtpParams))) { + ++$count; + try { + if ($authenticator->authenticate($agent, $this->username, $this->password)) { + return; + } + } catch (Swift_TransportException $e) { + // keep the error message, but tries the other authenticators + $errors[] = [$authenticator->getAuthKeyword(), $e->getMessage()]; + } + } + } + + $message = 'Failed to authenticate on SMTP server with username "'.$this->username.'" using '.$count.' possible authenticators.'; + foreach ($errors as $error) { + $message .= ' Authenticator '.$error[0].' returned '.$error[1].'.'; + } + throw new Swift_TransportException($message); + } + } + + /** + * Not used. + */ + public function getMailParams() + { + return []; + } + + /** + * Not used. + */ + public function getRcptParams() + { + return []; + } + + /** + * Not used. + */ + public function onCommand(Swift_Transport_SmtpAgent $agent, $command, $codes = [], &$failedRecipients = null, &$stop = false) + { + } + + /** + * Returns +1, -1 or 0 according to the rules for usort(). + * + * This method is called to ensure extensions can be execute in an appropriate order. + * + * @param string $esmtpKeyword to compare with + * + * @return int + */ + public function getPriorityOver($esmtpKeyword) + { + return 0; + } + + /** + * Returns an array of method names which are exposed to the Esmtp class. + * + * @return string[] + */ + public function exposeMixinMethods() + { + return ['setUsername', 'getUsername', 'setPassword', 'getPassword', 'setAuthMode', 'getAuthMode']; + } + + /** + * Not used. + */ + public function resetState() + { + } + + /** + * Returns the authenticator list for the given agent. + * + * @return array + */ + protected function getAuthenticatorsForAgent() + { + if (!$mode = strtolower($this->auth_mode ?? '')) { + return $this->authenticators; + } + + foreach ($this->authenticators as $authenticator) { + if (strtolower($authenticator->getAuthKeyword() ?? '') == $mode) { + return [$authenticator]; + } + } + + throw new Swift_TransportException('Auth mode '.$mode.' is invalid'); + } +} diff --git a/user/plugins/email/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Transport/Esmtp/Authenticator.php b/user/plugins/email/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Transport/Esmtp/Authenticator.php new file mode 100644 index 0000000..f692a6f --- /dev/null +++ b/user/plugins/email/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Transport/Esmtp/Authenticator.php @@ -0,0 +1,36 @@ +encoding = $encoding; + } + + /** + * Get the name of the ESMTP extension this handles. + * + * @return string + */ + public function getHandledKeyword() + { + return '8BITMIME'; + } + + /** + * Not used. + */ + public function setKeywordParams(array $parameters) + { + } + + /** + * Not used. + */ + public function afterEhlo(Swift_Transport_SmtpAgent $agent) + { + } + + /** + * Get params which are appended to MAIL FROM:<>. + * + * @return string[] + */ + public function getMailParams() + { + return ['BODY='.$this->encoding]; + } + + /** + * Not used. + */ + public function getRcptParams() + { + return []; + } + + /** + * Not used. + */ + public function onCommand(Swift_Transport_SmtpAgent $agent, $command, $codes = [], &$failedRecipients = null, &$stop = false) + { + } + + /** + * Returns +1, -1 or 0 according to the rules for usort(). + * + * This method is called to ensure extensions can be execute in an appropriate order. + * + * @param string $esmtpKeyword to compare with + * + * @return int + */ + public function getPriorityOver($esmtpKeyword) + { + return 0; + } + + /** + * Not used. + */ + public function exposeMixinMethods() + { + return []; + } + + /** + * Not used. + */ + public function resetState() + { + } +} diff --git a/user/plugins/email/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Transport/Esmtp/SmtpUtf8Handler.php b/user/plugins/email/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Transport/Esmtp/SmtpUtf8Handler.php new file mode 100644 index 0000000..7d0252a --- /dev/null +++ b/user/plugins/email/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Transport/Esmtp/SmtpUtf8Handler.php @@ -0,0 +1,107 @@ +. + * + * @return string[] + */ + public function getMailParams() + { + return ['SMTPUTF8']; + } + + /** + * Not used. + */ + public function getRcptParams() + { + return []; + } + + /** + * Not used. + */ + public function onCommand(Swift_Transport_SmtpAgent $agent, $command, $codes = [], &$failedRecipients = null, &$stop = false) + { + } + + /** + * Returns +1, -1 or 0 according to the rules for usort(). + * + * This method is called to ensure extensions can be execute in an appropriate order. + * + * @param string $esmtpKeyword to compare with + * + * @return int + */ + public function getPriorityOver($esmtpKeyword) + { + return 0; + } + + /** + * Not used. + */ + public function exposeMixinMethods() + { + return []; + } + + /** + * Not used. + */ + public function resetState() + { + } +} diff --git a/user/plugins/email/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Transport/EsmtpHandler.php b/user/plugins/email/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Transport/EsmtpHandler.php new file mode 100644 index 0000000..b8ea36e --- /dev/null +++ b/user/plugins/email/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Transport/EsmtpHandler.php @@ -0,0 +1,86 @@ +. + * + * @return string[] + */ + public function getMailParams(); + + /** + * Get params which are appended to RCPT TO:<>. + * + * @return string[] + */ + public function getRcptParams(); + + /** + * Runs when a command is due to be sent. + * + * @param Swift_Transport_SmtpAgent $agent to read/write + * @param string $command to send + * @param int[] $codes expected in response + * @param string[] $failedRecipients to collect failures + * @param bool $stop to be set true by-reference if the command is now sent + */ + public function onCommand(Swift_Transport_SmtpAgent $agent, $command, $codes = [], &$failedRecipients = null, &$stop = false); + + /** + * Returns +1, -1 or 0 according to the rules for usort(). + * + * This method is called to ensure extensions can be execute in an appropriate order. + * + * @param string $esmtpKeyword to compare with + * + * @return int + */ + public function getPriorityOver($esmtpKeyword); + + /** + * Returns an array of method names which are exposed to the Esmtp class. + * + * @return string[] + */ + public function exposeMixinMethods(); + + /** + * Tells this handler to clear any buffers and reset its state. + */ + public function resetState(); +} diff --git a/user/plugins/email/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Transport/EsmtpTransport.php b/user/plugins/email/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Transport/EsmtpTransport.php new file mode 100644 index 0000000..36545f5 --- /dev/null +++ b/user/plugins/email/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Transport/EsmtpTransport.php @@ -0,0 +1,446 @@ + 'tcp', + 'host' => 'localhost', + 'port' => 25, + 'timeout' => 30, + 'blocking' => 1, + 'tls' => false, + 'type' => Swift_Transport_IoBuffer::TYPE_SOCKET, + 'stream_context_options' => [], + ]; + + /** + * Creates a new EsmtpTransport using the given I/O buffer. + * + * @param Swift_Transport_EsmtpHandler[] $extensionHandlers + * @param string $localDomain + */ + public function __construct(Swift_Transport_IoBuffer $buf, array $extensionHandlers, Swift_Events_EventDispatcher $dispatcher, $localDomain = '127.0.0.1', Swift_AddressEncoder $addressEncoder = null) + { + parent::__construct($buf, $dispatcher, $localDomain, $addressEncoder); + $this->setExtensionHandlers($extensionHandlers); + } + + /** + * Set the host to connect to. + * + * Literal IPv6 addresses should be wrapped in square brackets. + * + * @param string $host + * + * @return $this + */ + public function setHost($host) + { + $this->params['host'] = $host; + + return $this; + } + + /** + * Get the host to connect to. + * + * @return string + */ + public function getHost() + { + return $this->params['host']; + } + + /** + * Set the port to connect to. + * + * @param int $port + * + * @return $this + */ + public function setPort($port) + { + $this->params['port'] = (int) $port; + + return $this; + } + + /** + * Get the port to connect to. + * + * @return int + */ + public function getPort() + { + return $this->params['port']; + } + + /** + * Set the connection timeout. + * + * @param int $timeout seconds + * + * @return $this + */ + public function setTimeout($timeout) + { + $this->params['timeout'] = (int) $timeout; + $this->buffer->setParam('timeout', (int) $timeout); + + return $this; + } + + /** + * Get the connection timeout. + * + * @return int + */ + public function getTimeout() + { + return $this->params['timeout']; + } + + /** + * Set the encryption type (tls or ssl). + * + * @param string $encryption + * + * @return $this + */ + public function setEncryption($encryption) + { + $encryption = strtolower($encryption ?? ''); + if ('tls' == $encryption) { + $this->params['protocol'] = 'tcp'; + $this->params['tls'] = true; + } else { + $this->params['protocol'] = $encryption; + $this->params['tls'] = false; + } + + return $this; + } + + /** + * Get the encryption type. + * + * @return string + */ + public function getEncryption() + { + return $this->params['tls'] ? 'tls' : $this->params['protocol']; + } + + /** + * Sets the stream context options. + * + * @param array $options + * + * @return $this + */ + public function setStreamOptions($options) + { + $this->params['stream_context_options'] = $options; + + return $this; + } + + /** + * Returns the stream context options. + * + * @return array + */ + public function getStreamOptions() + { + return $this->params['stream_context_options']; + } + + /** + * Sets the source IP. + * + * IPv6 addresses should be wrapped in square brackets. + * + * @param string $source + * + * @return $this + */ + public function setSourceIp($source) + { + $this->params['sourceIp'] = $source; + + return $this; + } + + /** + * Returns the IP used to connect to the destination. + * + * @return string + */ + public function getSourceIp() + { + return $this->params['sourceIp'] ?? null; + } + + /** + * Sets whether SMTP pipelining is enabled. + * + * By default, support is auto-detected using the PIPELINING SMTP extension. + * Use this function to override that in the unlikely event of compatibility + * issues. + * + * @param bool $enabled + * + * @return $this + */ + public function setPipelining($enabled) + { + $this->pipelining = $enabled; + + return $this; + } + + /** + * Returns whether SMTP pipelining is enabled. + * + * @return bool|null a boolean if pipelining is explicitly enabled or disabled, + * or null if support is auto-detected + */ + public function getPipelining() + { + return $this->pipelining; + } + + /** + * Set ESMTP extension handlers. + * + * @param Swift_Transport_EsmtpHandler[] $handlers + * + * @return $this + */ + public function setExtensionHandlers(array $handlers) + { + $assoc = []; + foreach ($handlers as $handler) { + $assoc[$handler->getHandledKeyword()] = $handler; + } + uasort($assoc, function ($a, $b) { + return $a->getPriorityOver($b->getHandledKeyword()); + }); + $this->handlers = $assoc; + $this->setHandlerParams(); + + return $this; + } + + /** + * Get ESMTP extension handlers. + * + * @return Swift_Transport_EsmtpHandler[] + */ + public function getExtensionHandlers() + { + return array_values($this->handlers); + } + + /** + * Run a command against the buffer, expecting the given response codes. + * + * If no response codes are given, the response will not be validated. + * If codes are given, an exception will be thrown on an invalid response. + * + * @param string $command + * @param int[] $codes + * @param string[] $failures An array of failures by-reference + * @param bool $pipeline Do not wait for response + * @param string $address the address, if command is RCPT TO + * + * @return string|null The server response, or null if pipelining is enabled + */ + public function executeCommand($command, $codes = [], &$failures = null, $pipeline = false, $address = null) + { + $failures = (array) $failures; + $stopSignal = false; + $response = null; + foreach ($this->getActiveHandlers() as $handler) { + $response = $handler->onCommand( + $this, $command, $codes, $failures, $stopSignal + ); + if ($stopSignal) { + return $response; + } + } + + return parent::executeCommand($command, $codes, $failures, $pipeline, $address); + } + + /** Mixin handling method for ESMTP handlers */ + public function __call($method, $args) + { + foreach ($this->handlers as $handler) { + if (\in_array(strtolower($method), + array_map('strtolower', (array) $handler->exposeMixinMethods()) + )) { + $return = \call_user_func_array([$handler, $method], $args); + // Allow fluid method calls + if (null === $return && 'set' == substr($method, 0, 3)) { + return $this; + } else { + return $return; + } + } + } + trigger_error('Call to undefined method '.$method, E_USER_ERROR); + } + + /** Get the params to initialize the buffer */ + protected function getBufferParams() + { + return $this->params; + } + + /** Overridden to perform EHLO instead */ + protected function doHeloCommand() + { + try { + $response = $this->executeCommand( + sprintf("EHLO %s\r\n", $this->domain), [250] + ); + } catch (Swift_TransportException $e) { + return parent::doHeloCommand(); + } + + if ($this->params['tls']) { + try { + $this->executeCommand("STARTTLS\r\n", [220]); + + if (!$this->buffer->startTLS()) { + throw new Swift_TransportException('Unable to connect with TLS encryption'); + } + + try { + $response = $this->executeCommand( + sprintf("EHLO %s\r\n", $this->domain), [250] + ); + } catch (Swift_TransportException $e) { + return parent::doHeloCommand(); + } + } catch (Swift_TransportException $e) { + $this->throwException($e); + } + } + + $this->capabilities = $this->getCapabilities($response); + if (!isset($this->pipelining)) { + $this->pipelining = isset($this->capabilities['PIPELINING']); + } + + $this->setHandlerParams(); + foreach ($this->getActiveHandlers() as $handler) { + $handler->afterEhlo($this); + } + } + + /** Overridden to add Extension support */ + protected function doMailFromCommand($address) + { + $address = $this->addressEncoder->encodeString($address); + $handlers = $this->getActiveHandlers(); + $params = []; + foreach ($handlers as $handler) { + $params = array_merge($params, (array) $handler->getMailParams()); + } + $paramStr = !empty($params) ? ' '.implode(' ', $params) : ''; + $this->executeCommand( + sprintf("MAIL FROM:<%s>%s\r\n", $address, $paramStr), [250], $failures, true + ); + } + + /** Overridden to add Extension support */ + protected function doRcptToCommand($address) + { + $address = $this->addressEncoder->encodeString($address); + $handlers = $this->getActiveHandlers(); + $params = []; + foreach ($handlers as $handler) { + $params = array_merge($params, (array) $handler->getRcptParams()); + } + $paramStr = !empty($params) ? ' '.implode(' ', $params) : ''; + $this->executeCommand( + sprintf("RCPT TO:<%s>%s\r\n", $address, $paramStr), [250, 251, 252], $failures, true, $address + ); + } + + /** Determine ESMTP capabilities by function group */ + private function getCapabilities($ehloResponse) + { + $capabilities = []; + $ehloResponse = trim($ehloResponse ?? ''); + $lines = explode("\r\n", $ehloResponse); + array_shift($lines); + foreach ($lines as $line) { + if (preg_match('/^[0-9]{3}[ -]([A-Z0-9-]+)((?:[ =].*)?)$/Di', $line, $matches)) { + $keyword = strtoupper($matches[1]); + $paramStr = strtoupper(ltrim($matches[2], ' =')); + $params = !empty($paramStr) ? explode(' ', $paramStr) : []; + $capabilities[$keyword] = $params; + } + } + + return $capabilities; + } + + /** Set parameters which are used by each extension handler */ + private function setHandlerParams() + { + foreach ($this->handlers as $keyword => $handler) { + if (\array_key_exists($keyword, $this->capabilities)) { + $handler->setKeywordParams($this->capabilities[$keyword]); + } + } + } + + /** Get ESMTP handlers which are currently ok to use */ + private function getActiveHandlers() + { + $handlers = []; + foreach ($this->handlers as $keyword => $handler) { + if (\array_key_exists($keyword, $this->capabilities)) { + $handlers[] = $handler; + } + } + + return $handlers; + } +} diff --git a/user/plugins/email/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Transport/FailoverTransport.php b/user/plugins/email/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Transport/FailoverTransport.php new file mode 100644 index 0000000..1a4b475 --- /dev/null +++ b/user/plugins/email/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Transport/FailoverTransport.php @@ -0,0 +1,103 @@ +transports); + for ($i = 0; $i < $maxTransports + && $transport = $this->getNextTransport(); ++$i) { + if ($transport->ping()) { + return true; + } else { + $this->killCurrentTransport(); + } + } + + return \count($this->transports) > 0; + } + + /** + * Send the given Message. + * + * Recipient/sender data will be retrieved from the Message API. + * The return value is the number of recipients who were accepted for delivery. + * + * @param string[] $failedRecipients An array of failures by-reference + * + * @return int + */ + public function send(Swift_Mime_SimpleMessage $message, &$failedRecipients = null) + { + $maxTransports = \count($this->transports); + $sent = 0; + $this->lastUsedTransport = null; + + for ($i = 0; $i < $maxTransports + && $transport = $this->getNextTransport(); ++$i) { + try { + if (!$transport->isStarted()) { + $transport->start(); + } + + if ($sent = $transport->send($message, $failedRecipients)) { + $this->lastUsedTransport = $transport; + + return $sent; + } + } catch (Swift_TransportException $e) { + $this->killCurrentTransport(); + } + } + + if (0 == \count($this->transports)) { + throw new Swift_TransportException('All Transports in FailoverTransport failed, or no Transports available'); + } + + return $sent; + } + + protected function getNextTransport() + { + if (!isset($this->currentTransport)) { + $this->currentTransport = parent::getNextTransport(); + } + + return $this->currentTransport; + } + + protected function killCurrentTransport() + { + $this->currentTransport = null; + parent::killCurrentTransport(); + } +} diff --git a/user/plugins/email/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Transport/IoBuffer.php b/user/plugins/email/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Transport/IoBuffer.php new file mode 100644 index 0000000..50f1e5e --- /dev/null +++ b/user/plugins/email/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Transport/IoBuffer.php @@ -0,0 +1,65 @@ +transports = $transports; + $this->deadTransports = []; + } + + /** + * Get $transports to delegate to. + * + * @return Swift_Transport[] + */ + public function getTransports() + { + return array_merge($this->transports, $this->deadTransports); + } + + /** + * Get the Transport used in the last successful send operation. + * + * @return Swift_Transport + */ + public function getLastUsedTransport() + { + return $this->lastUsedTransport; + } + + /** + * Test if this Transport mechanism has started. + * + * @return bool + */ + public function isStarted() + { + return \count($this->transports) > 0; + } + + /** + * Start this Transport mechanism. + */ + public function start() + { + $this->transports = array_merge($this->transports, $this->deadTransports); + } + + /** + * Stop this Transport mechanism. + */ + public function stop() + { + foreach ($this->transports as $transport) { + $transport->stop(); + } + } + + /** + * {@inheritdoc} + */ + public function ping() + { + foreach ($this->transports as $transport) { + if (!$transport->ping()) { + $this->killCurrentTransport(); + } + } + + return \count($this->transports) > 0; + } + + /** + * Send the given Message. + * + * Recipient/sender data will be retrieved from the Message API. + * The return value is the number of recipients who were accepted for delivery. + * + * @param string[] $failedRecipients An array of failures by-reference + * + * @return int + */ + public function send(Swift_Mime_SimpleMessage $message, &$failedRecipients = null) + { + $maxTransports = \count($this->transports); + $sent = 0; + $this->lastUsedTransport = null; + + for ($i = 0; $i < $maxTransports + && $transport = $this->getNextTransport(); ++$i) { + try { + if (!$transport->isStarted()) { + $transport->start(); + } + if ($sent = $transport->send($message, $failedRecipients)) { + $this->lastUsedTransport = $transport; + break; + } + } catch (Swift_TransportException $e) { + $this->killCurrentTransport(); + } + } + + if (0 == \count($this->transports)) { + throw new Swift_TransportException('All Transports in LoadBalancedTransport failed, or no Transports available'); + } + + return $sent; + } + + /** + * Register a plugin. + */ + public function registerPlugin(Swift_Events_EventListener $plugin) + { + foreach ($this->transports as $transport) { + $transport->registerPlugin($plugin); + } + } + + /** + * Rotates the transport list around and returns the first instance. + * + * @return Swift_Transport + */ + protected function getNextTransport() + { + if ($next = array_shift($this->transports)) { + $this->transports[] = $next; + } + + return $next; + } + + /** + * Tag the currently used (top of stack) transport as dead/useless. + */ + protected function killCurrentTransport() + { + if ($transport = array_pop($this->transports)) { + try { + $transport->stop(); + } catch (Exception $e) { + } + $this->deadTransports[] = $transport; + } + } +} diff --git a/user/plugins/email/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Transport/NullTransport.php b/user/plugins/email/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Transport/NullTransport.php new file mode 100644 index 0000000..7d910db --- /dev/null +++ b/user/plugins/email/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Transport/NullTransport.php @@ -0,0 +1,98 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +/** + * Pretends messages have been sent, but just ignores them. + * + * @author Fabien Potencier + */ +class Swift_Transport_NullTransport implements Swift_Transport +{ + /** The event dispatcher from the plugin API */ + private $eventDispatcher; + + /** + * Constructor. + */ + public function __construct(Swift_Events_EventDispatcher $eventDispatcher) + { + $this->eventDispatcher = $eventDispatcher; + } + + /** + * Tests if this Transport mechanism has started. + * + * @return bool + */ + public function isStarted() + { + return true; + } + + /** + * Starts this Transport mechanism. + */ + public function start() + { + } + + /** + * Stops this Transport mechanism. + */ + public function stop() + { + } + + /** + * {@inheritdoc} + */ + public function ping() + { + return true; + } + + /** + * Sends the given message. + * + * @param string[] $failedRecipients An array of failures by-reference + * + * @return int The number of sent emails + */ + public function send(Swift_Mime_SimpleMessage $message, &$failedRecipients = null) + { + if ($evt = $this->eventDispatcher->createSendEvent($this, $message)) { + $this->eventDispatcher->dispatchEvent($evt, 'beforeSendPerformed'); + if ($evt->bubbleCancelled()) { + return 0; + } + } + + if ($evt) { + $evt->setResult(Swift_Events_SendEvent::RESULT_SUCCESS); + $this->eventDispatcher->dispatchEvent($evt, 'sendPerformed'); + } + + $count = ( + \count((array) $message->getTo()) + + \count((array) $message->getCc()) + + \count((array) $message->getBcc()) + ); + + return $count; + } + + /** + * Register a plugin. + */ + public function registerPlugin(Swift_Events_EventListener $plugin) + { + $this->eventDispatcher->bindEventListener($plugin); + } +} diff --git a/user/plugins/email/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Transport/SendmailTransport.php b/user/plugins/email/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Transport/SendmailTransport.php new file mode 100644 index 0000000..65a434d --- /dev/null +++ b/user/plugins/email/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Transport/SendmailTransport.php @@ -0,0 +1,158 @@ + 30, + 'blocking' => 1, + 'command' => '/usr/sbin/sendmail -bs', + 'type' => Swift_Transport_IoBuffer::TYPE_PROCESS, + ]; + + /** + * Create a new SendmailTransport with $buf for I/O. + * + * @param string $localDomain + */ + public function __construct(Swift_Transport_IoBuffer $buf, Swift_Events_EventDispatcher $dispatcher, $localDomain = '127.0.0.1', Swift_AddressEncoder $addressEncoder = null) + { + parent::__construct($buf, $dispatcher, $localDomain, $addressEncoder); + } + + /** + * Start the standalone SMTP session if running in -bs mode. + */ + public function start() + { + if (false !== strpos($this->getCommand(), ' -bs')) { + parent::start(); + } + } + + /** + * Set the command to invoke. + * + * If using -t mode you are strongly advised to include -oi or -i in the flags. + * For example: /usr/sbin/sendmail -oi -t + * Swift will append a -f flag if one is not present. + * + * The recommended mode is "-bs" since it is interactive and failure notifications + * are hence possible. + * + * @param string $command + * + * @return $this + */ + public function setCommand($command) + { + $this->params['command'] = $command; + + return $this; + } + + /** + * Get the sendmail command which will be invoked. + * + * @return string + */ + public function getCommand() + { + return $this->params['command']; + } + + /** + * Send the given Message. + * + * Recipient/sender data will be retrieved from the Message API. + * + * The return value is the number of recipients who were accepted for delivery. + * NOTE: If using 'sendmail -t' you will not be aware of any failures until + * they bounce (i.e. send() will always return 100% success). + * + * @param string[] $failedRecipients An array of failures by-reference + * + * @return int + */ + public function send(Swift_Mime_SimpleMessage $message, &$failedRecipients = null) + { + $failedRecipients = (array) $failedRecipients; + $command = $this->getCommand(); + $buffer = $this->getBuffer(); + $count = 0; + + if (false !== strpos($command, ' -t')) { + if ($evt = $this->eventDispatcher->createSendEvent($this, $message)) { + $this->eventDispatcher->dispatchEvent($evt, 'beforeSendPerformed'); + if ($evt->bubbleCancelled()) { + return 0; + } + } + + if (false === strpos($command, ' -f')) { + $command .= ' -f'.escapeshellarg($this->getReversePath($message) ?? ''); + } + + $buffer->initialize(array_merge($this->params, ['command' => $command])); + + if (false === strpos($command, ' -i') && false === strpos($command, ' -oi')) { + $buffer->setWriteTranslations(["\r\n" => "\n", "\n." => "\n.."]); + } else { + $buffer->setWriteTranslations(["\r\n" => "\n"]); + } + + $count = \count((array) $message->getTo()) + + \count((array) $message->getCc()) + + \count((array) $message->getBcc()) + ; + $message->toByteStream($buffer); + $buffer->flushBuffers(); + $buffer->setWriteTranslations([]); + $buffer->terminate(); + + if ($evt) { + $evt->setResult(Swift_Events_SendEvent::RESULT_SUCCESS); + $evt->setFailedRecipients($failedRecipients); + $this->eventDispatcher->dispatchEvent($evt, 'sendPerformed'); + } + + $message->generateId(); + } elseif (false !== strpos($command, ' -bs')) { + $count = parent::send($message, $failedRecipients); + } else { + $this->throwException(new Swift_TransportException( + 'Unsupported sendmail command flags ['.$command.']. '. + 'Must be one of "-bs" or "-t" but can include additional flags.' + )); + } + + return $count; + } + + /** Get the params to initialize the buffer */ + protected function getBufferParams() + { + return $this->params; + } +} diff --git a/user/plugins/email/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Transport/SmtpAgent.php b/user/plugins/email/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Transport/SmtpAgent.php new file mode 100644 index 0000000..e8ce65c --- /dev/null +++ b/user/plugins/email/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Transport/SmtpAgent.php @@ -0,0 +1,36 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +/** + * Stores Messages in a queue. + * + * @author Fabien Potencier + */ +class Swift_Transport_SpoolTransport implements Swift_Transport +{ + /** The spool instance */ + private $spool; + + /** The event dispatcher from the plugin API */ + private $eventDispatcher; + + /** + * Constructor. + */ + public function __construct(Swift_Events_EventDispatcher $eventDispatcher, Swift_Spool $spool = null) + { + $this->eventDispatcher = $eventDispatcher; + $this->spool = $spool; + } + + /** + * Sets the spool object. + * + * @return $this + */ + public function setSpool(Swift_Spool $spool) + { + $this->spool = $spool; + + return $this; + } + + /** + * Get the spool object. + * + * @return Swift_Spool + */ + public function getSpool() + { + return $this->spool; + } + + /** + * Tests if this Transport mechanism has started. + * + * @return bool + */ + public function isStarted() + { + return true; + } + + /** + * Starts this Transport mechanism. + */ + public function start() + { + } + + /** + * Stops this Transport mechanism. + */ + public function stop() + { + } + + /** + * {@inheritdoc} + */ + public function ping() + { + return true; + } + + /** + * Sends the given message. + * + * @param string[] $failedRecipients An array of failures by-reference + * + * @return int The number of sent e-mail's + */ + public function send(Swift_Mime_SimpleMessage $message, &$failedRecipients = null) + { + if ($evt = $this->eventDispatcher->createSendEvent($this, $message)) { + $this->eventDispatcher->dispatchEvent($evt, 'beforeSendPerformed'); + if ($evt->bubbleCancelled()) { + return 0; + } + } + + $success = $this->spool->queueMessage($message); + + if ($evt) { + $evt->setResult($success ? Swift_Events_SendEvent::RESULT_SPOOLED : Swift_Events_SendEvent::RESULT_FAILED); + $this->eventDispatcher->dispatchEvent($evt, 'sendPerformed'); + } + + return 1; + } + + /** + * Register a plugin. + */ + public function registerPlugin(Swift_Events_EventListener $plugin) + { + $this->eventDispatcher->bindEventListener($plugin); + } +} diff --git a/user/plugins/email/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Transport/StreamBuffer.php b/user/plugins/email/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Transport/StreamBuffer.php new file mode 100644 index 0000000..70782ad --- /dev/null +++ b/user/plugins/email/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Transport/StreamBuffer.php @@ -0,0 +1,319 @@ +replacementFactory = $replacementFactory; + } + + /** + * Perform any initialization needed, using the given $params. + * + * Parameters will vary depending upon the type of IoBuffer used. + */ + public function initialize(array $params) + { + $this->params = $params; + switch ($params['type']) { + case self::TYPE_PROCESS: + $this->establishProcessConnection(); + break; + case self::TYPE_SOCKET: + default: + $this->establishSocketConnection(); + break; + } + } + + /** + * Set an individual param on the buffer (e.g. switching to SSL). + * + * @param string $param + * @param mixed $value + */ + public function setParam($param, $value) + { + if (isset($this->stream)) { + switch ($param) { + case 'timeout': + if ($this->stream) { + stream_set_timeout($this->stream, $value); + } + break; + + case 'blocking': + if ($this->stream) { + stream_set_blocking($this->stream, 1); + } + } + } + $this->params[$param] = $value; + } + + public function startTLS() + { + // STREAM_CRYPTO_METHOD_TLS_CLIENT only allow tls1.0 connections (some php versions) + // To support modern tls we allow explicit tls1.0, tls1.1, tls1.2 + // Ssl3 and older are not allowed because they are vulnerable + // @TODO make tls arguments configurable + return stream_socket_enable_crypto($this->stream, true, STREAM_CRYPTO_METHOD_TLSv1_0_CLIENT | STREAM_CRYPTO_METHOD_TLSv1_1_CLIENT | STREAM_CRYPTO_METHOD_TLSv1_2_CLIENT); + } + + /** + * Perform any shutdown logic needed. + */ + public function terminate() + { + if (isset($this->stream)) { + switch ($this->params['type']) { + case self::TYPE_PROCESS: + fclose($this->in); + fclose($this->out); + proc_close($this->stream); + break; + case self::TYPE_SOCKET: + default: + fclose($this->stream); + break; + } + } + $this->stream = null; + $this->out = null; + $this->in = null; + } + + /** + * Set an array of string replacements which should be made on data written + * to the buffer. + * + * This could replace LF with CRLF for example. + * + * @param string[] $replacements + */ + public function setWriteTranslations(array $replacements) + { + foreach ($this->translations as $search => $replace) { + if (!isset($replacements[$search])) { + $this->removeFilter($search); + unset($this->translations[$search]); + } + } + + foreach ($replacements as $search => $replace) { + if (!isset($this->translations[$search])) { + $this->addFilter( + $this->replacementFactory->createFilter($search, $replace), $search + ); + $this->translations[$search] = true; + } + } + } + + /** + * Get a line of output (including any CRLF). + * + * The $sequence number comes from any writes and may or may not be used + * depending upon the implementation. + * + * @param int $sequence of last write to scan from + * + * @return string + * + * @throws Swift_IoException + */ + public function readLine($sequence) + { + if (isset($this->out) && !feof($this->out)) { + $line = fgets($this->out); + if (0 == \strlen($line)) { + $metas = stream_get_meta_data($this->out); + if ($metas['timed_out']) { + throw new Swift_IoException('Connection to '.$this->getReadConnectionDescription().' Timed Out'); + } + } + + return $line; + } + } + + /** + * Reads $length bytes from the stream into a string and moves the pointer + * through the stream by $length. + * + * If less bytes exist than are requested the remaining bytes are given instead. + * If no bytes are remaining at all, boolean false is returned. + * + * @param int $length + * + * @return string|bool + * + * @throws Swift_IoException + */ + public function read($length) + { + if (isset($this->out) && !feof($this->out)) { + $ret = fread($this->out, $length); + if (0 == \strlen($ret)) { + $metas = stream_get_meta_data($this->out); + if ($metas['timed_out']) { + throw new Swift_IoException('Connection to '.$this->getReadConnectionDescription().' Timed Out'); + } + } + + return $ret; + } + } + + /** Not implemented */ + public function setReadPointer($byteOffset) + { + } + + /** Flush the stream contents */ + protected function flush() + { + if (isset($this->in)) { + fflush($this->in); + } + } + + /** Write this bytes to the stream */ + protected function doCommit($bytes) + { + if (isset($this->in)) { + $bytesToWrite = \strlen($bytes); + $totalBytesWritten = 0; + + while ($totalBytesWritten < $bytesToWrite) { + $bytesWritten = fwrite($this->in, substr($bytes, $totalBytesWritten)); + if (false === $bytesWritten || 0 === $bytesWritten) { + break; + } + + $totalBytesWritten += $bytesWritten; + } + + if ($totalBytesWritten > 0) { + return ++$this->sequence; + } + } + } + + /** + * Establishes a connection to a remote server. + */ + private function establishSocketConnection() + { + $host = $this->params['host']; + if (!empty($this->params['protocol'])) { + $host = $this->params['protocol'].'://'.$host; + } + $timeout = 15; + if (!empty($this->params['timeout'])) { + $timeout = $this->params['timeout']; + } + $options = []; + if (!empty($this->params['sourceIp'])) { + $options['socket']['bindto'] = $this->params['sourceIp'].':0'; + } + + if (isset($this->params['stream_context_options'])) { + $options = array_merge($options, $this->params['stream_context_options']); + } + $streamContext = stream_context_create($options); + + set_error_handler(function ($type, $msg) { + throw new Swift_TransportException('Connection could not be established with host '.$this->params['host'].' :'.$msg); + }); + try { + $this->stream = stream_socket_client($host.':'.$this->params['port'], $errno, $errstr, $timeout, STREAM_CLIENT_CONNECT, $streamContext); + } finally { + restore_error_handler(); + } + + if (!empty($this->params['blocking'])) { + stream_set_blocking($this->stream, 1); + } else { + stream_set_blocking($this->stream, 0); + } + stream_set_timeout($this->stream, $timeout); + $this->in = &$this->stream; + $this->out = &$this->stream; + } + + /** + * Opens a process for input/output. + */ + private function establishProcessConnection() + { + $command = $this->params['command']; + $descriptorSpec = [ + 0 => ['pipe', 'r'], + 1 => ['pipe', 'w'], + 2 => ['pipe', 'w'], + ]; + $pipes = []; + $this->stream = proc_open($command, $descriptorSpec, $pipes); + stream_set_blocking($pipes[2], 0); + if ($err = stream_get_contents($pipes[2])) { + throw new Swift_TransportException('Process could not be started ['.$err.']'); + } + $this->in = &$pipes[0]; + $this->out = &$pipes[1]; + } + + private function getReadConnectionDescription() + { + switch ($this->params['type']) { + case self::TYPE_PROCESS: + return 'Process '.$this->params['command']; + break; + + case self::TYPE_SOCKET: + default: + $host = $this->params['host']; + if (!empty($this->params['protocol'])) { + $host = $this->params['protocol'].'://'.$host; + } + $host .= ':'.$this->params['port']; + + return $host; + break; + } + } +} diff --git a/user/plugins/email/vendor/swiftmailer/swiftmailer/lib/classes/Swift/TransportException.php b/user/plugins/email/vendor/swiftmailer/swiftmailer/lib/classes/Swift/TransportException.php new file mode 100644 index 0000000..c741745 --- /dev/null +++ b/user/plugins/email/vendor/swiftmailer/swiftmailer/lib/classes/Swift/TransportException.php @@ -0,0 +1,28 @@ +register('cache') + ->asAliasOf('cache.array') + + ->register('tempdir') + ->asValue('/tmp') + + ->register('cache.null') + ->asSharedInstanceOf('Swift_KeyCache_NullKeyCache') + + ->register('cache.array') + ->asSharedInstanceOf('Swift_KeyCache_ArrayKeyCache') + ->withDependencies(['cache.inputstream']) + + ->register('cache.disk') + ->asSharedInstanceOf('Swift_KeyCache_DiskKeyCache') + ->withDependencies(['cache.inputstream', 'tempdir']) + + ->register('cache.inputstream') + ->asNewInstanceOf('Swift_KeyCache_SimpleKeyCacheInputStream') +; diff --git a/user/plugins/email/vendor/swiftmailer/swiftmailer/lib/dependency_maps/message_deps.php b/user/plugins/email/vendor/swiftmailer/swiftmailer/lib/dependency_maps/message_deps.php new file mode 100644 index 0000000..64d69d2 --- /dev/null +++ b/user/plugins/email/vendor/swiftmailer/swiftmailer/lib/dependency_maps/message_deps.php @@ -0,0 +1,9 @@ +register('message.message') + ->asNewInstanceOf('Swift_Message') + + ->register('message.mimepart') + ->asNewInstanceOf('Swift_MimePart') +; diff --git a/user/plugins/email/vendor/swiftmailer/swiftmailer/lib/dependency_maps/mime_deps.php b/user/plugins/email/vendor/swiftmailer/swiftmailer/lib/dependency_maps/mime_deps.php new file mode 100644 index 0000000..307756c --- /dev/null +++ b/user/plugins/email/vendor/swiftmailer/swiftmailer/lib/dependency_maps/mime_deps.php @@ -0,0 +1,134 @@ +register('properties.charset') + ->asValue('utf-8') + + ->register('email.validator') + ->asSharedInstanceOf('Egulias\EmailValidator\EmailValidator') + + ->register('mime.idgenerator.idright') + // As SERVER_NAME can come from the user in certain configurations, check that + // it does not contain forbidden characters (see RFC 952 and RFC 2181). Use + // preg_replace() instead of preg_match() to prevent DoS attacks with long host names. + ->asValue(!empty($_SERVER['SERVER_NAME']) && '' === preg_replace('/(?:^\[)?[a-zA-Z0-9-:\]_]+\.?/', '', $_SERVER['SERVER_NAME']) ? $_SERVER['SERVER_NAME'] : 'swift.generated') + + ->register('mime.idgenerator') + ->asSharedInstanceOf('Swift_Mime_IdGenerator') + ->withDependencies([ + 'mime.idgenerator.idright', + ]) + + ->register('mime.message') + ->asNewInstanceOf('Swift_Mime_SimpleMessage') + ->withDependencies([ + 'mime.headerset', + 'mime.textcontentencoder', + 'cache', + 'mime.idgenerator', + 'properties.charset', + ]) + + ->register('mime.part') + ->asNewInstanceOf('Swift_Mime_MimePart') + ->withDependencies([ + 'mime.headerset', + 'mime.textcontentencoder', + 'cache', + 'mime.idgenerator', + 'properties.charset', + ]) + + ->register('mime.attachment') + ->asNewInstanceOf('Swift_Mime_Attachment') + ->withDependencies([ + 'mime.headerset', + 'mime.base64contentencoder', + 'cache', + 'mime.idgenerator', + ]) + ->addConstructorValue($swift_mime_types) + + ->register('mime.embeddedfile') + ->asNewInstanceOf('Swift_Mime_EmbeddedFile') + ->withDependencies([ + 'mime.headerset', + 'mime.base64contentencoder', + 'cache', + 'mime.idgenerator', + ]) + ->addConstructorValue($swift_mime_types) + + ->register('mime.headerfactory') + ->asNewInstanceOf('Swift_Mime_SimpleHeaderFactory') + ->withDependencies([ + 'mime.qpheaderencoder', + 'mime.rfc2231encoder', + 'email.validator', + 'properties.charset', + 'address.idnaddressencoder', + ]) + + ->register('mime.headerset') + ->asNewInstanceOf('Swift_Mime_SimpleHeaderSet') + ->withDependencies(['mime.headerfactory', 'properties.charset']) + + ->register('mime.qpheaderencoder') + ->asNewInstanceOf('Swift_Mime_HeaderEncoder_QpHeaderEncoder') + ->withDependencies(['mime.charstream']) + + ->register('mime.base64headerencoder') + ->asNewInstanceOf('Swift_Mime_HeaderEncoder_Base64HeaderEncoder') + ->withDependencies(['mime.charstream']) + + ->register('mime.charstream') + ->asNewInstanceOf('Swift_CharacterStream_NgCharacterStream') + ->withDependencies(['mime.characterreaderfactory', 'properties.charset']) + + ->register('mime.bytecanonicalizer') + ->asSharedInstanceOf('Swift_StreamFilters_ByteArrayReplacementFilter') + ->addConstructorValue([[0x0D, 0x0A], [0x0D], [0x0A]]) + ->addConstructorValue([[0x0A], [0x0A], [0x0D, 0x0A]]) + + ->register('mime.characterreaderfactory') + ->asSharedInstanceOf('Swift_CharacterReaderFactory_SimpleCharacterReaderFactory') + + ->register('mime.textcontentencoder') + ->asAliasOf('mime.qpcontentencoder') + + ->register('mime.safeqpcontentencoder') + ->asNewInstanceOf('Swift_Mime_ContentEncoder_QpContentEncoder') + ->withDependencies(['mime.charstream', 'mime.bytecanonicalizer']) + + ->register('mime.rawcontentencoder') + ->asNewInstanceOf('Swift_Mime_ContentEncoder_RawContentEncoder') + + ->register('mime.nativeqpcontentencoder') + ->withDependencies(['properties.charset']) + ->asNewInstanceOf('Swift_Mime_ContentEncoder_NativeQpContentEncoder') + + ->register('mime.qpcontentencoder') + ->asNewInstanceOf('Swift_Mime_ContentEncoder_QpContentEncoderProxy') + ->withDependencies(['mime.safeqpcontentencoder', 'mime.nativeqpcontentencoder', 'properties.charset']) + + ->register('mime.7bitcontentencoder') + ->asNewInstanceOf('Swift_Mime_ContentEncoder_PlainContentEncoder') + ->addConstructorValue('7bit') + ->addConstructorValue(true) + + ->register('mime.8bitcontentencoder') + ->asNewInstanceOf('Swift_Mime_ContentEncoder_PlainContentEncoder') + ->addConstructorValue('8bit') + ->addConstructorValue(true) + + ->register('mime.base64contentencoder') + ->asSharedInstanceOf('Swift_Mime_ContentEncoder_Base64ContentEncoder') + + ->register('mime.rfc2231encoder') + ->asNewInstanceOf('Swift_Encoder_Rfc2231Encoder') + ->withDependencies(['mime.charstream']) +; + +unset($swift_mime_types); diff --git a/user/plugins/email/vendor/swiftmailer/swiftmailer/lib/dependency_maps/transport_deps.php b/user/plugins/email/vendor/swiftmailer/swiftmailer/lib/dependency_maps/transport_deps.php new file mode 100644 index 0000000..34a63c7 --- /dev/null +++ b/user/plugins/email/vendor/swiftmailer/swiftmailer/lib/dependency_maps/transport_deps.php @@ -0,0 +1,97 @@ +register('transport.localdomain') + // As SERVER_NAME can come from the user in certain configurations, check that + // it does not contain forbidden characters (see RFC 952 and RFC 2181). Use + // preg_replace() instead of preg_match() to prevent DoS attacks with long host names. + ->asValue(!empty($_SERVER['SERVER_NAME']) && '' === preg_replace('/(?:^\[)?[a-zA-Z0-9-:\]_]+\.?/', '', $_SERVER['SERVER_NAME']) ? trim($_SERVER['SERVER_NAME'], '[]') : '127.0.0.1') + + ->register('transport.smtp') + ->asNewInstanceOf('Swift_Transport_EsmtpTransport') + ->withDependencies([ + 'transport.buffer', + 'transport.smtphandlers', + 'transport.eventdispatcher', + 'transport.localdomain', + 'address.idnaddressencoder', + ]) + + ->register('transport.sendmail') + ->asNewInstanceOf('Swift_Transport_SendmailTransport') + ->withDependencies([ + 'transport.buffer', + 'transport.eventdispatcher', + 'transport.localdomain', + ]) + + ->register('transport.loadbalanced') + ->asNewInstanceOf('Swift_Transport_LoadBalancedTransport') + + ->register('transport.failover') + ->asNewInstanceOf('Swift_Transport_FailoverTransport') + + ->register('transport.spool') + ->asNewInstanceOf('Swift_Transport_SpoolTransport') + ->withDependencies(['transport.eventdispatcher']) + + ->register('transport.null') + ->asNewInstanceOf('Swift_Transport_NullTransport') + ->withDependencies(['transport.eventdispatcher']) + + ->register('transport.buffer') + ->asNewInstanceOf('Swift_Transport_StreamBuffer') + ->withDependencies(['transport.replacementfactory']) + + ->register('transport.smtphandlers') + ->asArray() + ->withDependencies(['transport.authhandler']) + + ->register('transport.authhandler') + ->asNewInstanceOf('Swift_Transport_Esmtp_AuthHandler') + ->withDependencies(['transport.authhandlers']) + + ->register('transport.authhandlers') + ->asArray() + ->withDependencies([ + 'transport.crammd5auth', + 'transport.loginauth', + 'transport.plainauth', + 'transport.ntlmauth', + 'transport.xoauth2auth', + ]) + + ->register('transport.smtputf8handler') + ->asNewInstanceOf('Swift_Transport_Esmtp_SmtpUtf8Handler') + + ->register('transport.8bitmimehandler') + ->asNewInstanceOf('Swift_Transport_Esmtp_EightBitMimeHandler') + ->addConstructorValue('8BITMIME') + + ->register('transport.crammd5auth') + ->asNewInstanceOf('Swift_Transport_Esmtp_Auth_CramMd5Authenticator') + + ->register('transport.loginauth') + ->asNewInstanceOf('Swift_Transport_Esmtp_Auth_LoginAuthenticator') + + ->register('transport.plainauth') + ->asNewInstanceOf('Swift_Transport_Esmtp_Auth_PlainAuthenticator') + + ->register('transport.xoauth2auth') + ->asNewInstanceOf('Swift_Transport_Esmtp_Auth_XOAuth2Authenticator') + + ->register('transport.ntlmauth') + ->asNewInstanceOf('Swift_Transport_Esmtp_Auth_NTLMAuthenticator') + + ->register('transport.eventdispatcher') + ->asNewInstanceOf('Swift_Events_SimpleEventDispatcher') + + ->register('transport.replacementfactory') + ->asSharedInstanceOf('Swift_StreamFilters_StringReplacementFilterFactory') + + ->register('address.idnaddressencoder') + ->asNewInstanceOf('Swift_AddressEncoder_IdnAddressEncoder') + + ->register('address.utf8addressencoder') + ->asNewInstanceOf('Swift_AddressEncoder_Utf8AddressEncoder') +; diff --git a/user/plugins/email/vendor/swiftmailer/swiftmailer/lib/mime_types.php b/user/plugins/email/vendor/swiftmailer/swiftmailer/lib/mime_types.php new file mode 100644 index 0000000..72c6fd2 --- /dev/null +++ b/user/plugins/email/vendor/swiftmailer/swiftmailer/lib/mime_types.php @@ -0,0 +1,1007 @@ + 'text/vnd.in3d.3dml', + '3ds' => 'image/x-3ds', + '3g2' => 'video/3gpp2', + '3gp' => 'video/3gpp', + '7z' => 'application/x-7z-compressed', + 'aab' => 'application/x-authorware-bin', + 'aac' => 'audio/x-aac', + 'aam' => 'application/x-authorware-map', + 'aas' => 'application/x-authorware-seg', + 'abw' => 'application/x-abiword', + 'ac' => 'application/pkix-attr-cert', + 'acc' => 'application/vnd.americandynamics.acc', + 'ace' => 'application/x-ace-compressed', + 'acu' => 'application/vnd.acucobol', + 'acutc' => 'application/vnd.acucorp', + 'adp' => 'audio/adpcm', + 'aep' => 'application/vnd.audiograph', + 'afm' => 'application/x-font-type1', + 'afp' => 'application/vnd.ibm.modcap', + 'ahead' => 'application/vnd.ahead.space', + 'ai' => 'application/postscript', + 'aif' => 'audio/x-aiff', + 'aifc' => 'audio/x-aiff', + 'aiff' => 'audio/x-aiff', + 'air' => 'application/vnd.adobe.air-application-installer-package+zip', + 'ait' => 'application/vnd.dvb.ait', + 'ami' => 'application/vnd.amiga.ami', + 'apk' => 'application/vnd.android.package-archive', + 'appcache' => 'text/cache-manifest', + 'apr' => 'application/vnd.lotus-approach', + 'aps' => 'application/postscript', + 'arc' => 'application/x-freearc', + 'asc' => 'application/pgp-signature', + 'asf' => 'video/x-ms-asf', + 'asm' => 'text/x-asm', + 'aso' => 'application/vnd.accpac.simply.aso', + 'asx' => 'video/x-ms-asf', + 'atc' => 'application/vnd.acucorp', + 'atom' => 'application/atom+xml', + 'atomcat' => 'application/atomcat+xml', + 'atomsvc' => 'application/atomsvc+xml', + 'atx' => 'application/vnd.antix.game-component', + 'au' => 'audio/basic', + 'avi' => 'video/x-msvideo', + 'aw' => 'application/applixware', + 'azf' => 'application/vnd.airzip.filesecure.azf', + 'azs' => 'application/vnd.airzip.filesecure.azs', + 'azw' => 'application/vnd.amazon.ebook', + 'bat' => 'application/x-msdownload', + 'bcpio' => 'application/x-bcpio', + 'bdf' => 'application/x-font-bdf', + 'bdm' => 'application/vnd.syncml.dm+wbxml', + 'bed' => 'application/vnd.realvnc.bed', + 'bh2' => 'application/vnd.fujitsu.oasysprs', + 'bin' => 'application/octet-stream', + 'blb' => 'application/x-blorb', + 'blorb' => 'application/x-blorb', + 'bmi' => 'application/vnd.bmi', + 'bmp' => 'image/bmp', + 'book' => 'application/vnd.framemaker', + 'box' => 'application/vnd.previewsystems.box', + 'boz' => 'application/x-bzip2', + 'bpk' => 'application/octet-stream', + 'btif' => 'image/prs.btif', + 'bz' => 'application/x-bzip', + 'bz2' => 'application/x-bzip2', + 'c' => 'text/x-c', + 'c11amc' => 'application/vnd.cluetrust.cartomobile-config', + 'c11amz' => 'application/vnd.cluetrust.cartomobile-config-pkg', + 'c4d' => 'application/vnd.clonk.c4group', + 'c4f' => 'application/vnd.clonk.c4group', + 'c4g' => 'application/vnd.clonk.c4group', + 'c4p' => 'application/vnd.clonk.c4group', + 'c4u' => 'application/vnd.clonk.c4group', + 'cab' => 'application/vnd.ms-cab-compressed', + 'caf' => 'audio/x-caf', + 'cap' => 'application/vnd.tcpdump.pcap', + 'car' => 'application/vnd.curl.car', + 'cat' => 'application/vnd.ms-pki.seccat', + 'cb7' => 'application/x-cbr', + 'cba' => 'application/x-cbr', + 'cbr' => 'application/x-cbr', + 'cbt' => 'application/x-cbr', + 'cbz' => 'application/x-cbr', + 'cc' => 'text/x-c', + 'cct' => 'application/x-director', + 'ccxml' => 'application/ccxml+xml', + 'cdbcmsg' => 'application/vnd.contact.cmsg', + 'cdf' => 'application/x-netcdf', + 'cdkey' => 'application/vnd.mediastation.cdkey', + 'cdmia' => 'application/cdmi-capability', + 'cdmic' => 'application/cdmi-container', + 'cdmid' => 'application/cdmi-domain', + 'cdmio' => 'application/cdmi-object', + 'cdmiq' => 'application/cdmi-queue', + 'cdx' => 'chemical/x-cdx', + 'cdxml' => 'application/vnd.chemdraw+xml', + 'cdy' => 'application/vnd.cinderella', + 'cer' => 'application/pkix-cert', + 'cfs' => 'application/x-cfs-compressed', + 'cgm' => 'image/cgm', + 'chat' => 'application/x-chat', + 'chm' => 'application/vnd.ms-htmlhelp', + 'chrt' => 'application/vnd.kde.kchart', + 'cif' => 'chemical/x-cif', + 'cii' => 'application/vnd.anser-web-certificate-issue-initiation', + 'cil' => 'application/vnd.ms-artgalry', + 'cla' => 'application/vnd.claymore', + 'class' => 'application/java-vm', + 'clkk' => 'application/vnd.crick.clicker.keyboard', + 'clkp' => 'application/vnd.crick.clicker.palette', + 'clkt' => 'application/vnd.crick.clicker.template', + 'clkw' => 'application/vnd.crick.clicker.wordbank', + 'clkx' => 'application/vnd.crick.clicker', + 'clp' => 'application/x-msclip', + 'cmc' => 'application/vnd.cosmocaller', + 'cmdf' => 'chemical/x-cmdf', + 'cml' => 'chemical/x-cml', + 'cmp' => 'application/vnd.yellowriver-custom-menu', + 'cmx' => 'image/x-cmx', + 'cod' => 'application/vnd.rim.cod', + 'com' => 'application/x-msdownload', + 'conf' => 'text/plain', + 'cpio' => 'application/x-cpio', + 'cpp' => 'text/x-c', + 'cpt' => 'application/mac-compactpro', + 'crd' => 'application/x-mscardfile', + 'crl' => 'application/pkix-crl', + 'crt' => 'application/x-x509-ca-cert', + 'csh' => 'application/x-csh', + 'csml' => 'chemical/x-csml', + 'csp' => 'application/vnd.commonspace', + 'css' => 'text/css', + 'cst' => 'application/x-director', + 'csv' => 'text/csv', + 'cu' => 'application/cu-seeme', + 'curl' => 'text/vnd.curl', + 'cww' => 'application/prs.cww', + 'cxt' => 'application/x-director', + 'cxx' => 'text/x-c', + 'dae' => 'model/vnd.collada+xml', + 'daf' => 'application/vnd.mobius.daf', + 'dart' => 'application/vnd.dart', + 'dataless' => 'application/vnd.fdsn.seed', + 'davmount' => 'application/davmount+xml', + 'dbk' => 'application/docbook+xml', + 'dcr' => 'application/x-director', + 'dcurl' => 'text/vnd.curl.dcurl', + 'dd2' => 'application/vnd.oma.dd2+xml', + 'ddd' => 'application/vnd.fujixerox.ddd', + 'deb' => 'application/x-debian-package', + 'def' => 'text/plain', + 'deploy' => 'application/octet-stream', + 'der' => 'application/x-x509-ca-cert', + 'dfac' => 'application/vnd.dreamfactory', + 'dgc' => 'application/x-dgc-compressed', + 'dic' => 'text/x-c', + 'dir' => 'application/x-director', + 'dis' => 'application/vnd.mobius.dis', + 'dist' => 'application/octet-stream', + 'distz' => 'application/octet-stream', + 'djv' => 'image/vnd.djvu', + 'djvu' => 'image/vnd.djvu', + 'dll' => 'application/x-msdownload', + 'dmg' => 'application/x-apple-diskimage', + 'dmp' => 'application/vnd.tcpdump.pcap', + 'dms' => 'application/octet-stream', + 'dna' => 'application/vnd.dna', + 'doc' => 'application/msword', + 'docm' => 'application/vnd.ms-word.document.macroenabled.12', + 'docx' => 'application/vnd.openxmlformats-officedocument.wordprocessingml.document', + 'dot' => 'application/msword', + 'dotm' => 'application/vnd.ms-word.template.macroenabled.12', + 'dotx' => 'application/vnd.openxmlformats-officedocument.wordprocessingml.template', + 'dp' => 'application/vnd.osgi.dp', + 'dpg' => 'application/vnd.dpgraph', + 'dra' => 'audio/vnd.dra', + 'dsc' => 'text/prs.lines.tag', + 'dssc' => 'application/dssc+der', + 'dtb' => 'application/x-dtbook+xml', + 'dtd' => 'application/xml-dtd', + 'dts' => 'audio/vnd.dts', + 'dtshd' => 'audio/vnd.dts.hd', + 'dump' => 'application/octet-stream', + 'dvb' => 'video/vnd.dvb.file', + 'dvi' => 'application/x-dvi', + 'dwf' => 'model/vnd.dwf', + 'dwg' => 'image/vnd.dwg', + 'dxf' => 'image/vnd.dxf', + 'dxp' => 'application/vnd.spotfire.dxp', + 'dxr' => 'application/x-director', + 'ecelp4800' => 'audio/vnd.nuera.ecelp4800', + 'ecelp7470' => 'audio/vnd.nuera.ecelp7470', + 'ecelp9600' => 'audio/vnd.nuera.ecelp9600', + 'ecma' => 'application/ecmascript', + 'edm' => 'application/vnd.novadigm.edm', + 'edx' => 'application/vnd.novadigm.edx', + 'efif' => 'application/vnd.picsel', + 'ei6' => 'application/vnd.pg.osasli', + 'elc' => 'application/octet-stream', + 'emf' => 'application/x-msmetafile', + 'eml' => 'message/rfc822', + 'emma' => 'application/emma+xml', + 'emz' => 'application/x-msmetafile', + 'eol' => 'audio/vnd.digital-winds', + 'eot' => 'application/vnd.ms-fontobject', + 'eps' => 'application/postscript', + 'epub' => 'application/epub+zip', + 'es3' => 'application/vnd.eszigno3+xml', + 'esa' => 'application/vnd.osgi.subsystem', + 'esf' => 'application/vnd.epson.esf', + 'et3' => 'application/vnd.eszigno3+xml', + 'etx' => 'text/x-setext', + 'eva' => 'application/x-eva', + 'evy' => 'application/x-envoy', + 'exe' => 'application/x-msdownload', + 'exi' => 'application/exi', + 'ext' => 'application/vnd.novadigm.ext', + 'ez' => 'application/andrew-inset', + 'ez2' => 'application/vnd.ezpix-album', + 'ez3' => 'application/vnd.ezpix-package', + 'f' => 'text/x-fortran', + 'f4v' => 'video/x-f4v', + 'f77' => 'text/x-fortran', + 'f90' => 'text/x-fortran', + 'fbs' => 'image/vnd.fastbidsheet', + 'fcdt' => 'application/vnd.adobe.formscentral.fcdt', + 'fcs' => 'application/vnd.isac.fcs', + 'fdf' => 'application/vnd.fdf', + 'fe_launch' => 'application/vnd.denovo.fcselayout-link', + 'fg5' => 'application/vnd.fujitsu.oasysgp', + 'fgd' => 'application/x-director', + 'fh' => 'image/x-freehand', + 'fh4' => 'image/x-freehand', + 'fh5' => 'image/x-freehand', + 'fh7' => 'image/x-freehand', + 'fhc' => 'image/x-freehand', + 'fig' => 'application/x-xfig', + 'flac' => 'audio/x-flac', + 'fli' => 'video/x-fli', + 'flo' => 'application/vnd.micrografx.flo', + 'flv' => 'video/x-flv', + 'flw' => 'application/vnd.kde.kivio', + 'flx' => 'text/vnd.fmi.flexstor', + 'fly' => 'text/vnd.fly', + 'fm' => 'application/vnd.framemaker', + 'fnc' => 'application/vnd.frogans.fnc', + 'for' => 'text/x-fortran', + 'fpx' => 'image/vnd.fpx', + 'frame' => 'application/vnd.framemaker', + 'fsc' => 'application/vnd.fsc.weblaunch', + 'fst' => 'image/vnd.fst', + 'ftc' => 'application/vnd.fluxtime.clip', + 'fti' => 'application/vnd.anser-web-funds-transfer-initiation', + 'fvt' => 'video/vnd.fvt', + 'fxp' => 'application/vnd.adobe.fxp', + 'fxpl' => 'application/vnd.adobe.fxp', + 'fzs' => 'application/vnd.fuzzysheet', + 'g2w' => 'application/vnd.geoplan', + 'g3' => 'image/g3fax', + 'g3w' => 'application/vnd.geospace', + 'gac' => 'application/vnd.groove-account', + 'gam' => 'application/x-tads', + 'gbr' => 'application/rpki-ghostbusters', + 'gca' => 'application/x-gca-compressed', + 'gdl' => 'model/vnd.gdl', + 'geo' => 'application/vnd.dynageo', + 'gex' => 'application/vnd.geometry-explorer', + 'ggb' => 'application/vnd.geogebra.file', + 'ggt' => 'application/vnd.geogebra.tool', + 'ghf' => 'application/vnd.groove-help', + 'gif' => 'image/gif', + 'gim' => 'application/vnd.groove-identity-message', + 'gml' => 'application/gml+xml', + 'gmx' => 'application/vnd.gmx', + 'gnumeric' => 'application/x-gnumeric', + 'gph' => 'application/vnd.flographit', + 'gpx' => 'application/gpx+xml', + 'gqf' => 'application/vnd.grafeq', + 'gqs' => 'application/vnd.grafeq', + 'gram' => 'application/srgs', + 'gramps' => 'application/x-gramps-xml', + 'gre' => 'application/vnd.geometry-explorer', + 'grv' => 'application/vnd.groove-injector', + 'grxml' => 'application/srgs+xml', + 'gsf' => 'application/x-font-ghostscript', + 'gtar' => 'application/x-gtar', + 'gtm' => 'application/vnd.groove-tool-message', + 'gtw' => 'model/vnd.gtw', + 'gv' => 'text/vnd.graphviz', + 'gxf' => 'application/gxf', + 'gxt' => 'application/vnd.geonext', + 'gz' => 'application/x-gzip', + 'h' => 'text/x-c', + 'h261' => 'video/h261', + 'h263' => 'video/h263', + 'h264' => 'video/h264', + 'hal' => 'application/vnd.hal+xml', + 'hbci' => 'application/vnd.hbci', + 'hdf' => 'application/x-hdf', + 'hh' => 'text/x-c', + 'hlp' => 'application/winhlp', + 'hpgl' => 'application/vnd.hp-hpgl', + 'hpid' => 'application/vnd.hp-hpid', + 'hps' => 'application/vnd.hp-hps', + 'hqx' => 'application/mac-binhex40', + 'htke' => 'application/vnd.kenameaapp', + 'htm' => 'text/html', + 'html' => 'text/html', + 'hvd' => 'application/vnd.yamaha.hv-dic', + 'hvp' => 'application/vnd.yamaha.hv-voice', + 'hvs' => 'application/vnd.yamaha.hv-script', + 'i2g' => 'application/vnd.intergeo', + 'icc' => 'application/vnd.iccprofile', + 'ice' => 'x-conference/x-cooltalk', + 'icm' => 'application/vnd.iccprofile', + 'ico' => 'image/x-icon', + 'ics' => 'text/calendar', + 'ief' => 'image/ief', + 'ifb' => 'text/calendar', + 'ifm' => 'application/vnd.shana.informed.formdata', + 'iges' => 'model/iges', + 'igl' => 'application/vnd.igloader', + 'igm' => 'application/vnd.insors.igm', + 'igs' => 'model/iges', + 'igx' => 'application/vnd.micrografx.igx', + 'iif' => 'application/vnd.shana.informed.interchange', + 'imp' => 'application/vnd.accpac.simply.imp', + 'ims' => 'application/vnd.ms-ims', + 'in' => 'text/plain', + 'ink' => 'application/inkml+xml', + 'inkml' => 'application/inkml+xml', + 'install' => 'application/x-install-instructions', + 'iota' => 'application/vnd.astraea-software.iota', + 'ipfix' => 'application/ipfix', + 'ipk' => 'application/vnd.shana.informed.package', + 'irm' => 'application/vnd.ibm.rights-management', + 'irp' => 'application/vnd.irepository.package+xml', + 'iso' => 'application/x-iso9660-image', + 'itp' => 'application/vnd.shana.informed.formtemplate', + 'ivp' => 'application/vnd.immervision-ivp', + 'ivu' => 'application/vnd.immervision-ivu', + 'jad' => 'text/vnd.sun.j2me.app-descriptor', + 'jam' => 'application/vnd.jam', + 'jar' => 'application/java-archive', + 'java' => 'text/x-java-source', + 'jisp' => 'application/vnd.jisp', + 'jlt' => 'application/vnd.hp-jlyt', + 'jnlp' => 'application/x-java-jnlp-file', + 'joda' => 'application/vnd.joost.joda-archive', + 'jpe' => 'image/jpeg', + 'jpeg' => 'image/jpeg', + 'jpg' => 'image/jpeg', + 'jpgm' => 'video/jpm', + 'jpgv' => 'video/jpeg', + 'jpm' => 'video/jpm', + 'js' => 'application/javascript', + 'json' => 'application/json', + 'jsonml' => 'application/jsonml+json', + 'kar' => 'audio/midi', + 'karbon' => 'application/vnd.kde.karbon', + 'kfo' => 'application/vnd.kde.kformula', + 'kia' => 'application/vnd.kidspiration', + 'kml' => 'application/vnd.google-earth.kml+xml', + 'kmz' => 'application/vnd.google-earth.kmz', + 'kne' => 'application/vnd.kinar', + 'knp' => 'application/vnd.kinar', + 'kon' => 'application/vnd.kde.kontour', + 'kpr' => 'application/vnd.kde.kpresenter', + 'kpt' => 'application/vnd.kde.kpresenter', + 'kpxx' => 'application/vnd.ds-keypoint', + 'ksp' => 'application/vnd.kde.kspread', + 'ktr' => 'application/vnd.kahootz', + 'ktx' => 'image/ktx', + 'ktz' => 'application/vnd.kahootz', + 'kwd' => 'application/vnd.kde.kword', + 'kwt' => 'application/vnd.kde.kword', + 'lasxml' => 'application/vnd.las.las+xml', + 'latex' => 'application/x-latex', + 'lbd' => 'application/vnd.llamagraphics.life-balance.desktop', + 'lbe' => 'application/vnd.llamagraphics.life-balance.exchange+xml', + 'les' => 'application/vnd.hhe.lesson-player', + 'lha' => 'application/x-lzh-compressed', + 'link66' => 'application/vnd.route66.link66+xml', + 'list' => 'text/plain', + 'list3820' => 'application/vnd.ibm.modcap', + 'listafp' => 'application/vnd.ibm.modcap', + 'lnk' => 'application/x-ms-shortcut', + 'log' => 'text/plain', + 'lostxml' => 'application/lost+xml', + 'lrf' => 'application/octet-stream', + 'lrm' => 'application/vnd.ms-lrm', + 'ltf' => 'application/vnd.frogans.ltf', + 'lvp' => 'audio/vnd.lucent.voice', + 'lwp' => 'application/vnd.lotus-wordpro', + 'lzh' => 'application/x-lzh-compressed', + 'm13' => 'application/x-msmediaview', + 'm14' => 'application/x-msmediaview', + 'm1v' => 'video/mpeg', + 'm21' => 'application/mp21', + 'm2a' => 'audio/mpeg', + 'm2v' => 'video/mpeg', + 'm3a' => 'audio/mpeg', + 'm3u' => 'audio/x-mpegurl', + 'm3u8' => 'application/vnd.apple.mpegurl', + 'm4a' => 'audio/mp4', + 'm4u' => 'video/vnd.mpegurl', + 'm4v' => 'video/x-m4v', + 'ma' => 'application/mathematica', + 'mads' => 'application/mads+xml', + 'mag' => 'application/vnd.ecowin.chart', + 'maker' => 'application/vnd.framemaker', + 'man' => 'text/troff', + 'mar' => 'application/octet-stream', + 'mathml' => 'application/mathml+xml', + 'mb' => 'application/mathematica', + 'mbk' => 'application/vnd.mobius.mbk', + 'mbox' => 'application/mbox', + 'mc1' => 'application/vnd.medcalcdata', + 'mcd' => 'application/vnd.mcd', + 'mcurl' => 'text/vnd.curl.mcurl', + 'mdb' => 'application/x-msaccess', + 'mdi' => 'image/vnd.ms-modi', + 'me' => 'text/troff', + 'mesh' => 'model/mesh', + 'meta4' => 'application/metalink4+xml', + 'metalink' => 'application/metalink+xml', + 'mets' => 'application/mets+xml', + 'mfm' => 'application/vnd.mfmp', + 'mft' => 'application/rpki-manifest', + 'mgp' => 'application/vnd.osgeo.mapguide.package', + 'mgz' => 'application/vnd.proteus.magazine', + 'mid' => 'audio/midi', + 'midi' => 'audio/midi', + 'mie' => 'application/x-mie', + 'mif' => 'application/vnd.mif', + 'mime' => 'message/rfc822', + 'mj2' => 'video/mj2', + 'mjp2' => 'video/mj2', + 'mk3d' => 'video/x-matroska', + 'mka' => 'audio/x-matroska', + 'mks' => 'video/x-matroska', + 'mkv' => 'video/x-matroska', + 'mlp' => 'application/vnd.dolby.mlp', + 'mmd' => 'application/vnd.chipnuts.karaoke-mmd', + 'mmf' => 'application/vnd.smaf', + 'mmr' => 'image/vnd.fujixerox.edmics-mmr', + 'mng' => 'video/x-mng', + 'mny' => 'application/x-msmoney', + 'mobi' => 'application/x-mobipocket-ebook', + 'mods' => 'application/mods+xml', + 'mov' => 'video/quicktime', + 'movie' => 'video/x-sgi-movie', + 'mp2' => 'audio/mpeg', + 'mp21' => 'application/mp21', + 'mp2a' => 'audio/mpeg', + 'mp3' => 'audio/mpeg', + 'mp4' => 'video/mp4', + 'mp4a' => 'audio/mp4', + 'mp4s' => 'application/mp4', + 'mp4v' => 'video/mp4', + 'mpc' => 'application/vnd.mophun.certificate', + 'mpe' => 'video/mpeg', + 'mpeg' => 'video/mpeg', + 'mpg' => 'video/mpeg', + 'mpg4' => 'video/mp4', + 'mpga' => 'audio/mpeg', + 'mpkg' => 'application/vnd.apple.installer+xml', + 'mpm' => 'application/vnd.blueice.multipass', + 'mpn' => 'application/vnd.mophun.application', + 'mpp' => 'application/vnd.ms-project', + 'mpt' => 'application/vnd.ms-project', + 'mpy' => 'application/vnd.ibm.minipay', + 'mqy' => 'application/vnd.mobius.mqy', + 'mrc' => 'application/marc', + 'mrcx' => 'application/marcxml+xml', + 'ms' => 'text/troff', + 'mscml' => 'application/mediaservercontrol+xml', + 'mseed' => 'application/vnd.fdsn.mseed', + 'mseq' => 'application/vnd.mseq', + 'msf' => 'application/vnd.epson.msf', + 'msh' => 'model/mesh', + 'msi' => 'application/x-msdownload', + 'msl' => 'application/vnd.mobius.msl', + 'msty' => 'application/vnd.muvee.style', + 'mts' => 'model/vnd.mts', + 'mus' => 'application/vnd.musician', + 'musicxml' => 'application/vnd.recordare.musicxml+xml', + 'mvb' => 'application/x-msmediaview', + 'mwf' => 'application/vnd.mfer', + 'mxf' => 'application/mxf', + 'mxl' => 'application/vnd.recordare.musicxml', + 'mxml' => 'application/xv+xml', + 'mxs' => 'application/vnd.triscape.mxs', + 'mxu' => 'video/vnd.mpegurl', + 'n-gage' => 'application/vnd.nokia.n-gage.symbian.install', + 'n3' => 'text/n3', + 'nb' => 'application/mathematica', + 'nbp' => 'application/vnd.wolfram.player', + 'nc' => 'application/x-netcdf', + 'ncx' => 'application/x-dtbncx+xml', + 'nfo' => 'text/x-nfo', + 'ngdat' => 'application/vnd.nokia.n-gage.data', + 'nitf' => 'application/vnd.nitf', + 'nlu' => 'application/vnd.neurolanguage.nlu', + 'nml' => 'application/vnd.enliven', + 'nnd' => 'application/vnd.noblenet-directory', + 'nns' => 'application/vnd.noblenet-sealer', + 'nnw' => 'application/vnd.noblenet-web', + 'npx' => 'image/vnd.net-fpx', + 'nsc' => 'application/x-conference', + 'nsf' => 'application/vnd.lotus-notes', + 'ntf' => 'application/vnd.nitf', + 'nzb' => 'application/x-nzb', + 'oa2' => 'application/vnd.fujitsu.oasys2', + 'oa3' => 'application/vnd.fujitsu.oasys3', + 'oas' => 'application/vnd.fujitsu.oasys', + 'obd' => 'application/x-msbinder', + 'obj' => 'application/x-tgif', + 'oda' => 'application/oda', + 'odb' => 'application/vnd.oasis.opendocument.database', + 'odc' => 'application/vnd.oasis.opendocument.chart', + 'odf' => 'application/vnd.oasis.opendocument.formula', + 'odft' => 'application/vnd.oasis.opendocument.formula-template', + 'odg' => 'application/vnd.oasis.opendocument.graphics', + 'odi' => 'application/vnd.oasis.opendocument.image', + 'odm' => 'application/vnd.oasis.opendocument.text-master', + 'odp' => 'application/vnd.oasis.opendocument.presentation', + 'ods' => 'application/vnd.oasis.opendocument.spreadsheet', + 'odt' => 'application/vnd.oasis.opendocument.text', + 'oga' => 'audio/ogg', + 'ogg' => 'audio/ogg', + 'ogv' => 'video/ogg', + 'ogx' => 'application/ogg', + 'omdoc' => 'application/omdoc+xml', + 'onepkg' => 'application/onenote', + 'onetmp' => 'application/onenote', + 'onetoc' => 'application/onenote', + 'onetoc2' => 'application/onenote', + 'opf' => 'application/oebps-package+xml', + 'opml' => 'text/x-opml', + 'oprc' => 'application/vnd.palm', + 'org' => 'application/vnd.lotus-organizer', + 'osf' => 'application/vnd.yamaha.openscoreformat', + 'osfpvg' => 'application/vnd.yamaha.openscoreformat.osfpvg+xml', + 'otc' => 'application/vnd.oasis.opendocument.chart-template', + 'otf' => 'application/x-font-otf', + 'otg' => 'application/vnd.oasis.opendocument.graphics-template', + 'oth' => 'application/vnd.oasis.opendocument.text-web', + 'oti' => 'application/vnd.oasis.opendocument.image-template', + 'otp' => 'application/vnd.oasis.opendocument.presentation-template', + 'ots' => 'application/vnd.oasis.opendocument.spreadsheet-template', + 'ott' => 'application/vnd.oasis.opendocument.text-template', + 'oxps' => 'application/oxps', + 'oxt' => 'application/vnd.openofficeorg.extension', + 'p' => 'text/x-pascal', + 'p10' => 'application/pkcs10', + 'p12' => 'application/x-pkcs12', + 'p7b' => 'application/x-pkcs7-certificates', + 'p7c' => 'application/pkcs7-mime', + 'p7m' => 'application/pkcs7-mime', + 'p7r' => 'application/x-pkcs7-certreqresp', + 'p7s' => 'application/pkcs7-signature', + 'p8' => 'application/pkcs8', + 'pas' => 'text/x-pascal', + 'paw' => 'application/vnd.pawaafile', + 'pbd' => 'application/vnd.powerbuilder6', + 'pbm' => 'image/x-portable-bitmap', + 'pcap' => 'application/vnd.tcpdump.pcap', + 'pcf' => 'application/x-font-pcf', + 'pcl' => 'application/vnd.hp-pcl', + 'pclxl' => 'application/vnd.hp-pclxl', + 'pct' => 'image/x-pict', + 'pcurl' => 'application/vnd.curl.pcurl', + 'pcx' => 'image/x-pcx', + 'pdb' => 'application/vnd.palm', + 'pdf' => 'application/pdf', + 'pfa' => 'application/x-font-type1', + 'pfb' => 'application/x-font-type1', + 'pfm' => 'application/x-font-type1', + 'pfr' => 'application/font-tdpfr', + 'pfx' => 'application/x-pkcs12', + 'pgm' => 'image/x-portable-graymap', + 'pgn' => 'application/x-chess-pgn', + 'pgp' => 'application/pgp-encrypted', + 'php' => 'application/x-php', + 'php3' => 'application/x-php', + 'php4' => 'application/x-php', + 'php5' => 'application/x-php', + 'pic' => 'image/x-pict', + 'pkg' => 'application/octet-stream', + 'pki' => 'application/pkixcmp', + 'pkipath' => 'application/pkix-pkipath', + 'plb' => 'application/vnd.3gpp.pic-bw-large', + 'plc' => 'application/vnd.mobius.plc', + 'plf' => 'application/vnd.pocketlearn', + 'pls' => 'application/pls+xml', + 'pml' => 'application/vnd.ctc-posml', + 'png' => 'image/png', + 'pnm' => 'image/x-portable-anymap', + 'portpkg' => 'application/vnd.macports.portpkg', + 'pot' => 'application/vnd.ms-powerpoint', + 'potm' => 'application/vnd.ms-powerpoint.template.macroenabled.12', + 'potx' => 'application/vnd.openxmlformats-officedocument.presentationml.template', + 'ppam' => 'application/vnd.ms-powerpoint.addin.macroenabled.12', + 'ppd' => 'application/vnd.cups-ppd', + 'ppm' => 'image/x-portable-pixmap', + 'pps' => 'application/vnd.ms-powerpoint', + 'ppsm' => 'application/vnd.ms-powerpoint.slideshow.macroenabled.12', + 'ppsx' => 'application/vnd.openxmlformats-officedocument.presentationml.slideshow', + 'ppt' => 'application/vnd.ms-powerpoint', + 'pptm' => 'application/vnd.ms-powerpoint.presentation.macroenabled.12', + 'pptx' => 'application/vnd.openxmlformats-officedocument.presentationml.presentation', + 'pqa' => 'application/vnd.palm', + 'prc' => 'application/x-mobipocket-ebook', + 'pre' => 'application/vnd.lotus-freelance', + 'prf' => 'application/pics-rules', + 'ps' => 'application/postscript', + 'psb' => 'application/vnd.3gpp.pic-bw-small', + 'psd' => 'image/vnd.adobe.photoshop', + 'psf' => 'application/x-font-linux-psf', + 'pskcxml' => 'application/pskc+xml', + 'ptid' => 'application/vnd.pvi.ptid1', + 'pub' => 'application/x-mspublisher', + 'pvb' => 'application/vnd.3gpp.pic-bw-var', + 'pwn' => 'application/vnd.3m.post-it-notes', + 'pya' => 'audio/vnd.ms-playready.media.pya', + 'pyv' => 'video/vnd.ms-playready.media.pyv', + 'qam' => 'application/vnd.epson.quickanime', + 'qbo' => 'application/vnd.intu.qbo', + 'qfx' => 'application/vnd.intu.qfx', + 'qps' => 'application/vnd.publishare-delta-tree', + 'qt' => 'video/quicktime', + 'qwd' => 'application/vnd.quark.quarkxpress', + 'qwt' => 'application/vnd.quark.quarkxpress', + 'qxb' => 'application/vnd.quark.quarkxpress', + 'qxd' => 'application/vnd.quark.quarkxpress', + 'qxl' => 'application/vnd.quark.quarkxpress', + 'qxt' => 'application/vnd.quark.quarkxpress', + 'ra' => 'audio/x-pn-realaudio', + 'ram' => 'audio/x-pn-realaudio', + 'rar' => 'application/x-rar-compressed', + 'ras' => 'image/x-cmu-raster', + 'rcprofile' => 'application/vnd.ipunplugged.rcprofile', + 'rdf' => 'application/rdf+xml', + 'rdz' => 'application/vnd.data-vision.rdz', + 'rep' => 'application/vnd.businessobjects', + 'res' => 'application/x-dtbresource+xml', + 'rgb' => 'image/x-rgb', + 'rif' => 'application/reginfo+xml', + 'rip' => 'audio/vnd.rip', + 'ris' => 'application/x-research-info-systems', + 'rl' => 'application/resource-lists+xml', + 'rlc' => 'image/vnd.fujixerox.edmics-rlc', + 'rld' => 'application/resource-lists-diff+xml', + 'rm' => 'application/vnd.rn-realmedia', + 'rmi' => 'audio/midi', + 'rmp' => 'audio/x-pn-realaudio-plugin', + 'rms' => 'application/vnd.jcp.javame.midlet-rms', + 'rmvb' => 'application/vnd.rn-realmedia-vbr', + 'rnc' => 'application/relax-ng-compact-syntax', + 'roa' => 'application/rpki-roa', + 'roff' => 'text/troff', + 'rp9' => 'application/vnd.cloanto.rp9', + 'rpss' => 'application/vnd.nokia.radio-presets', + 'rpst' => 'application/vnd.nokia.radio-preset', + 'rq' => 'application/sparql-query', + 'rs' => 'application/rls-services+xml', + 'rsd' => 'application/rsd+xml', + 'rss' => 'application/rss+xml', + 'rtf' => 'application/rtf', + 'rtx' => 'text/richtext', + 's' => 'text/x-asm', + 's3m' => 'audio/s3m', + 'saf' => 'application/vnd.yamaha.smaf-audio', + 'sbml' => 'application/sbml+xml', + 'sc' => 'application/vnd.ibm.secure-container', + 'scd' => 'application/x-msschedule', + 'scm' => 'application/vnd.lotus-screencam', + 'scq' => 'application/scvp-cv-request', + 'scs' => 'application/scvp-cv-response', + 'scurl' => 'text/vnd.curl.scurl', + 'sda' => 'application/vnd.stardivision.draw', + 'sdc' => 'application/vnd.stardivision.calc', + 'sdd' => 'application/vnd.stardivision.impress', + 'sdkd' => 'application/vnd.solent.sdkm+xml', + 'sdkm' => 'application/vnd.solent.sdkm+xml', + 'sdp' => 'application/sdp', + 'sdw' => 'application/vnd.stardivision.writer', + 'see' => 'application/vnd.seemail', + 'seed' => 'application/vnd.fdsn.seed', + 'sema' => 'application/vnd.sema', + 'semd' => 'application/vnd.semd', + 'semf' => 'application/vnd.semf', + 'ser' => 'application/java-serialized-object', + 'setpay' => 'application/set-payment-initiation', + 'setreg' => 'application/set-registration-initiation', + 'sfd-hdstx' => 'application/vnd.hydrostatix.sof-data', + 'sfs' => 'application/vnd.spotfire.sfs', + 'sfv' => 'text/x-sfv', + 'sgi' => 'image/sgi', + 'sgl' => 'application/vnd.stardivision.writer-global', + 'sgm' => 'text/sgml', + 'sgml' => 'text/sgml', + 'sh' => 'application/x-sh', + 'shar' => 'application/x-shar', + 'shf' => 'application/shf+xml', + 'sid' => 'image/x-mrsid-image', + 'sig' => 'application/pgp-signature', + 'sil' => 'audio/silk', + 'silo' => 'model/mesh', + 'sis' => 'application/vnd.symbian.install', + 'sisx' => 'application/vnd.symbian.install', + 'sit' => 'application/x-stuffit', + 'sitx' => 'application/x-stuffitx', + 'skd' => 'application/vnd.koan', + 'skm' => 'application/vnd.koan', + 'skp' => 'application/vnd.koan', + 'skt' => 'application/vnd.koan', + 'sldm' => 'application/vnd.ms-powerpoint.slide.macroenabled.12', + 'sldx' => 'application/vnd.openxmlformats-officedocument.presentationml.slide', + 'slt' => 'application/vnd.epson.salt', + 'sm' => 'application/vnd.stepmania.stepchart', + 'smf' => 'application/vnd.stardivision.math', + 'smi' => 'application/smil+xml', + 'smil' => 'application/smil+xml', + 'smv' => 'video/x-smv', + 'smzip' => 'application/vnd.stepmania.package', + 'snd' => 'audio/basic', + 'snf' => 'application/x-font-snf', + 'so' => 'application/octet-stream', + 'spc' => 'application/x-pkcs7-certificates', + 'spf' => 'application/vnd.yamaha.smaf-phrase', + 'spl' => 'application/x-futuresplash', + 'spot' => 'text/vnd.in3d.spot', + 'spp' => 'application/scvp-vp-response', + 'spq' => 'application/scvp-vp-request', + 'spx' => 'audio/ogg', + 'sql' => 'application/x-sql', + 'src' => 'application/x-wais-source', + 'srt' => 'application/x-subrip', + 'sru' => 'application/sru+xml', + 'srx' => 'application/sparql-results+xml', + 'ssdl' => 'application/ssdl+xml', + 'sse' => 'application/vnd.kodak-descriptor', + 'ssf' => 'application/vnd.epson.ssf', + 'ssml' => 'application/ssml+xml', + 'st' => 'application/vnd.sailingtracker.track', + 'stc' => 'application/vnd.sun.xml.calc.template', + 'std' => 'application/vnd.sun.xml.draw.template', + 'stf' => 'application/vnd.wt.stf', + 'sti' => 'application/vnd.sun.xml.impress.template', + 'stk' => 'application/hyperstudio', + 'stl' => 'application/vnd.ms-pki.stl', + 'str' => 'application/vnd.pg.format', + 'stw' => 'application/vnd.sun.xml.writer.template', + 'sub' => 'text/vnd.dvb.subtitle', + 'sus' => 'application/vnd.sus-calendar', + 'susp' => 'application/vnd.sus-calendar', + 'sv4cpio' => 'application/x-sv4cpio', + 'sv4crc' => 'application/x-sv4crc', + 'svc' => 'application/vnd.dvb.service', + 'svd' => 'application/vnd.svd', + 'svg' => 'image/svg+xml', + 'svgz' => 'image/svg+xml', + 'swa' => 'application/x-director', + 'swf' => 'application/x-shockwave-flash', + 'swi' => 'application/vnd.aristanetworks.swi', + 'sxc' => 'application/vnd.sun.xml.calc', + 'sxd' => 'application/vnd.sun.xml.draw', + 'sxg' => 'application/vnd.sun.xml.writer.global', + 'sxi' => 'application/vnd.sun.xml.impress', + 'sxm' => 'application/vnd.sun.xml.math', + 'sxw' => 'application/vnd.sun.xml.writer', + 't' => 'text/troff', + 't3' => 'application/x-t3vm-image', + 'taglet' => 'application/vnd.mynfc', + 'tao' => 'application/vnd.tao.intent-module-archive', + 'tar' => 'application/x-tar', + 'tcap' => 'application/vnd.3gpp2.tcap', + 'tcl' => 'application/x-tcl', + 'teacher' => 'application/vnd.smart.teacher', + 'tei' => 'application/tei+xml', + 'teicorpus' => 'application/tei+xml', + 'tex' => 'application/x-tex', + 'texi' => 'application/x-texinfo', + 'texinfo' => 'application/x-texinfo', + 'text' => 'text/plain', + 'tfi' => 'application/thraud+xml', + 'tfm' => 'application/x-tex-tfm', + 'tga' => 'image/x-tga', + 'thmx' => 'application/vnd.ms-officetheme', + 'tif' => 'image/tiff', + 'tiff' => 'image/tiff', + 'tmo' => 'application/vnd.tmobile-livetv', + 'torrent' => 'application/x-bittorrent', + 'tpl' => 'application/vnd.groove-tool-template', + 'tpt' => 'application/vnd.trid.tpt', + 'tr' => 'text/troff', + 'tra' => 'application/vnd.trueapp', + 'trm' => 'application/x-msterminal', + 'tsd' => 'application/timestamped-data', + 'tsv' => 'text/tab-separated-values', + 'ttc' => 'application/x-font-ttf', + 'ttf' => 'application/x-font-ttf', + 'ttl' => 'text/turtle', + 'twd' => 'application/vnd.simtech-mindmapper', + 'twds' => 'application/vnd.simtech-mindmapper', + 'txd' => 'application/vnd.genomatix.tuxedo', + 'txf' => 'application/vnd.mobius.txf', + 'txt' => 'text/plain', + 'u32' => 'application/x-authorware-bin', + 'udeb' => 'application/x-debian-package', + 'ufd' => 'application/vnd.ufdl', + 'ufdl' => 'application/vnd.ufdl', + 'ulx' => 'application/x-glulx', + 'umj' => 'application/vnd.umajin', + 'unityweb' => 'application/vnd.unity', + 'uoml' => 'application/vnd.uoml+xml', + 'uri' => 'text/uri-list', + 'uris' => 'text/uri-list', + 'urls' => 'text/uri-list', + 'ustar' => 'application/x-ustar', + 'utz' => 'application/vnd.uiq.theme', + 'uu' => 'text/x-uuencode', + 'uva' => 'audio/vnd.dece.audio', + 'uvd' => 'application/vnd.dece.data', + 'uvf' => 'application/vnd.dece.data', + 'uvg' => 'image/vnd.dece.graphic', + 'uvh' => 'video/vnd.dece.hd', + 'uvi' => 'image/vnd.dece.graphic', + 'uvm' => 'video/vnd.dece.mobile', + 'uvp' => 'video/vnd.dece.pd', + 'uvs' => 'video/vnd.dece.sd', + 'uvt' => 'application/vnd.dece.ttml+xml', + 'uvu' => 'video/vnd.uvvu.mp4', + 'uvv' => 'video/vnd.dece.video', + 'uvva' => 'audio/vnd.dece.audio', + 'uvvd' => 'application/vnd.dece.data', + 'uvvf' => 'application/vnd.dece.data', + 'uvvg' => 'image/vnd.dece.graphic', + 'uvvh' => 'video/vnd.dece.hd', + 'uvvi' => 'image/vnd.dece.graphic', + 'uvvm' => 'video/vnd.dece.mobile', + 'uvvp' => 'video/vnd.dece.pd', + 'uvvs' => 'video/vnd.dece.sd', + 'uvvt' => 'application/vnd.dece.ttml+xml', + 'uvvu' => 'video/vnd.uvvu.mp4', + 'uvvv' => 'video/vnd.dece.video', + 'uvvx' => 'application/vnd.dece.unspecified', + 'uvvz' => 'application/vnd.dece.zip', + 'uvx' => 'application/vnd.dece.unspecified', + 'uvz' => 'application/vnd.dece.zip', + 'vcard' => 'text/vcard', + 'vcd' => 'application/x-cdlink', + 'vcf' => 'text/x-vcard', + 'vcg' => 'application/vnd.groove-vcard', + 'vcs' => 'text/x-vcalendar', + 'vcx' => 'application/vnd.vcx', + 'vis' => 'application/vnd.visionary', + 'viv' => 'video/vnd.vivo', + 'vob' => 'video/x-ms-vob', + 'vor' => 'application/vnd.stardivision.writer', + 'vox' => 'application/x-authorware-bin', + 'vrml' => 'model/vrml', + 'vsd' => 'application/vnd.visio', + 'vsf' => 'application/vnd.vsf', + 'vss' => 'application/vnd.visio', + 'vst' => 'application/vnd.visio', + 'vsw' => 'application/vnd.visio', + 'vtu' => 'model/vnd.vtu', + 'vxml' => 'application/voicexml+xml', + 'w3d' => 'application/x-director', + 'wad' => 'application/x-doom', + 'wav' => 'audio/x-wav', + 'wax' => 'audio/x-ms-wax', + 'wbmp' => 'image/vnd.wap.wbmp', + 'wbs' => 'application/vnd.criticaltools.wbs+xml', + 'wbxml' => 'application/vnd.wap.wbxml', + 'wcm' => 'application/vnd.ms-works', + 'wdb' => 'application/vnd.ms-works', + 'wdp' => 'image/vnd.ms-photo', + 'weba' => 'audio/webm', + 'webm' => 'video/webm', + 'webp' => 'image/webp', + 'wg' => 'application/vnd.pmi.widget', + 'wgt' => 'application/widget', + 'wks' => 'application/vnd.ms-works', + 'wm' => 'video/x-ms-wm', + 'wma' => 'audio/x-ms-wma', + 'wmd' => 'application/x-ms-wmd', + 'wmf' => 'application/x-msmetafile', + 'wml' => 'text/vnd.wap.wml', + 'wmlc' => 'application/vnd.wap.wmlc', + 'wmls' => 'text/vnd.wap.wmlscript', + 'wmlsc' => 'application/vnd.wap.wmlscriptc', + 'wmv' => 'video/x-ms-wmv', + 'wmx' => 'video/x-ms-wmx', + 'wmz' => 'application/x-msmetafile', + 'woff' => 'application/font-woff', + 'wpd' => 'application/vnd.wordperfect', + 'wpl' => 'application/vnd.ms-wpl', + 'wps' => 'application/vnd.ms-works', + 'wqd' => 'application/vnd.wqd', + 'wri' => 'application/x-mswrite', + 'wrl' => 'model/vrml', + 'wsdl' => 'application/wsdl+xml', + 'wspolicy' => 'application/wspolicy+xml', + 'wtb' => 'application/vnd.webturbo', + 'wvx' => 'video/x-ms-wvx', + 'x32' => 'application/x-authorware-bin', + 'x3d' => 'model/x3d+xml', + 'x3db' => 'model/x3d+binary', + 'x3dbz' => 'model/x3d+binary', + 'x3dv' => 'model/x3d+vrml', + 'x3dvz' => 'model/x3d+vrml', + 'x3dz' => 'model/x3d+xml', + 'xaml' => 'application/xaml+xml', + 'xap' => 'application/x-silverlight-app', + 'xar' => 'application/vnd.xara', + 'xbap' => 'application/x-ms-xbap', + 'xbd' => 'application/vnd.fujixerox.docuworks.binder', + 'xbm' => 'image/x-xbitmap', + 'xdf' => 'application/xcap-diff+xml', + 'xdm' => 'application/vnd.syncml.dm+xml', + 'xdp' => 'application/vnd.adobe.xdp+xml', + 'xdssc' => 'application/dssc+xml', + 'xdw' => 'application/vnd.fujixerox.docuworks', + 'xenc' => 'application/xenc+xml', + 'xer' => 'application/patch-ops-error+xml', + 'xfdf' => 'application/vnd.adobe.xfdf', + 'xfdl' => 'application/vnd.xfdl', + 'xht' => 'application/xhtml+xml', + 'xhtml' => 'application/xhtml+xml', + 'xhvml' => 'application/xv+xml', + 'xif' => 'image/vnd.xiff', + 'xla' => 'application/vnd.ms-excel', + 'xlam' => 'application/vnd.ms-excel.addin.macroenabled.12', + 'xlc' => 'application/vnd.ms-excel', + 'xlf' => 'application/x-xliff+xml', + 'xlm' => 'application/vnd.ms-excel', + 'xls' => 'application/vnd.ms-excel', + 'xlsb' => 'application/vnd.ms-excel.sheet.binary.macroenabled.12', + 'xlsm' => 'application/vnd.ms-excel.sheet.macroenabled.12', + 'xlsx' => 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet', + 'xlt' => 'application/vnd.ms-excel', + 'xltm' => 'application/vnd.ms-excel.template.macroenabled.12', + 'xltx' => 'application/vnd.openxmlformats-officedocument.spreadsheetml.template', + 'xlw' => 'application/vnd.ms-excel', + 'xm' => 'audio/xm', + 'xml' => 'application/xml', + 'xo' => 'application/vnd.olpc-sugar', + 'xop' => 'application/xop+xml', + 'xpi' => 'application/x-xpinstall', + 'xpl' => 'application/xproc+xml', + 'xpm' => 'image/x-xpixmap', + 'xpr' => 'application/vnd.is-xpr', + 'xps' => 'application/vnd.ms-xpsdocument', + 'xpw' => 'application/vnd.intercon.formnet', + 'xpx' => 'application/vnd.intercon.formnet', + 'xsl' => 'application/xml', + 'xslt' => 'application/xslt+xml', + 'xsm' => 'application/vnd.syncml+xml', + 'xspf' => 'application/xspf+xml', + 'xul' => 'application/vnd.mozilla.xul+xml', + 'xvm' => 'application/xv+xml', + 'xvml' => 'application/xv+xml', + 'xwd' => 'image/x-xwindowdump', + 'xyz' => 'chemical/x-xyz', + 'xz' => 'application/x-xz', + 'yang' => 'application/yang', + 'yin' => 'application/yin+xml', + 'z1' => 'application/x-zmachine', + 'z2' => 'application/x-zmachine', + 'z3' => 'application/x-zmachine', + 'z4' => 'application/x-zmachine', + 'z5' => 'application/x-zmachine', + 'z6' => 'application/x-zmachine', + 'z7' => 'application/x-zmachine', + 'z8' => 'application/x-zmachine', + 'zaz' => 'application/vnd.zzazz.deck+xml', + 'zip' => 'application/zip', + 'zir' => 'application/vnd.zul', + 'zirz' => 'application/vnd.zul', + 'zmm' => 'application/vnd.handheld-entertainment+xml', + '123' => 'application/vnd.lotus-1-2-3', +]; diff --git a/user/plugins/email/vendor/swiftmailer/swiftmailer/lib/preferences.php b/user/plugins/email/vendor/swiftmailer/swiftmailer/lib/preferences.php new file mode 100644 index 0000000..27b7065 --- /dev/null +++ b/user/plugins/email/vendor/swiftmailer/swiftmailer/lib/preferences.php @@ -0,0 +1,19 @@ +setCharset('utf-8'); + +// Without these lines the default caching mechanism is "array" but this uses a lot of memory. +// If possible, use a disk cache to enable attaching large attachments etc. +// You can override the default temporary directory by setting the TMPDIR environment variable. +if (@is_writable($tmpDir = sys_get_temp_dir())) { + $preferences->setTempDir($tmpDir)->setCacheType('disk'); +} diff --git a/user/plugins/email/vendor/swiftmailer/swiftmailer/lib/swift_required.php b/user/plugins/email/vendor/swiftmailer/swiftmailer/lib/swift_required.php new file mode 100644 index 0000000..d696056 --- /dev/null +++ b/user/plugins/email/vendor/swiftmailer/swiftmailer/lib/swift_required.php @@ -0,0 +1,22 @@ + 'application/x-php', + 'php3' => 'application/x-php', + 'php4' => 'application/x-php', + 'php5' => 'application/x-php', + 'zip' => 'application/zip', + 'gif' => 'image/gif', + 'png' => 'image/png', + 'css' => 'text/css', + 'js' => 'text/javascript', + 'txt' => 'text/plain', + 'aif' => 'audio/x-aiff', + 'aiff' => 'audio/x-aiff', + 'avi' => 'video/avi', + 'bmp' => 'image/bmp', + 'bz2' => 'application/x-bz2', + 'csv' => 'text/csv', + 'dmg' => 'application/x-apple-diskimage', + 'doc' => 'application/msword', + 'docx' => 'application/vnd.openxmlformats-officedocument.wordprocessingml.document', + 'eml' => 'message/rfc822', + 'aps' => 'application/postscript', + 'exe' => 'application/x-ms-dos-executable', + 'flv' => 'video/x-flv', + 'gz' => 'application/x-gzip', + 'hqx' => 'application/stuffit', + 'htm' => 'text/html', + 'html' => 'text/html', + 'jar' => 'application/x-java-archive', + 'jpeg' => 'image/jpeg', + 'jpg' => 'image/jpeg', + 'm3u' => 'audio/x-mpegurl', + 'm4a' => 'audio/mp4', + 'mdb' => 'application/x-msaccess', + 'mid' => 'audio/midi', + 'midi' => 'audio/midi', + 'mov' => 'video/quicktime', + 'mp3' => 'audio/mpeg', + 'mp4' => 'video/mp4', + 'mpeg' => 'video/mpeg', + 'mpg' => 'video/mpeg', + 'odg' => 'vnd.oasis.opendocument.graphics', + 'odp' => 'vnd.oasis.opendocument.presentation', + 'odt' => 'vnd.oasis.opendocument.text', + 'ods' => 'vnd.oasis.opendocument.spreadsheet', + 'ogg' => 'audio/ogg', + 'pdf' => 'application/pdf', + 'ppt' => 'application/vnd.ms-powerpoint', + 'pptx' => 'application/vnd.openxmlformats-officedocument.presentationml.presentation', + 'ps' => 'application/postscript', + 'rar' => 'application/x-rar-compressed', + 'rtf' => 'application/rtf', + 'tar' => 'application/x-tar', + 'sit' => 'application/x-stuffit', + 'svg' => 'image/svg+xml', + 'tif' => 'image/tiff', + 'tiff' => 'image/tiff', + 'ttf' => 'application/x-font-truetype', + 'vcf' => 'text/x-vcard', + 'wav' => 'audio/wav', + 'wma' => 'audio/x-ms-wma', + 'wmv' => 'audio/x-ms-wmv', + 'xls' => 'application/vnd.ms-excel', + 'xlsx' => 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet', + 'xml' => 'application/xml', + ]; + + // wrap array for generating file + foreach ($valid_mime_types_preset as $extension => $mime_type) { + // generate array for mimetype to extension resolver (only first match) + $valid_mime_types[$extension] = "'{$extension}' => '{$mime_type}'"; + } + + // all extensions from second match + foreach ($matches[2] as $i => $extensions) { + // explode multiple extensions from string + $extensions = explode(' ', strtolower($extensions ?? '')); + + // force array for foreach + if (!\is_array($extensions)) { + $extensions = [$extensions]; + } + + foreach ($extensions as $extension) { + // get mime type + $mime_type = $matches[1][$i]; + + // check if string length lower than 10 + if (\strlen($extension) < 10) { + if (!isset($valid_mime_types[$mime_type])) { + // generate array for mimetype to extension resolver (only first match) + $valid_mime_types[$extension] = "'{$extension}' => '{$mime_type}'"; + } + } + } + } + } + + $xml = simplexml_load_string($mime_xml); + + foreach ($xml as $node) { + // check if there is no pattern + if (!isset($node->glob['pattern'])) { + continue; + } + + // get all matching extensions from match + foreach ((array) $node->glob['pattern'] as $extension) { + // skip none glob extensions + if (false === strpos($extension ?? '', '.')) { + continue; + } + + // remove get only last part + $extension = explode('.', strtolower($extension ?? '')); + $extension = end($extension); + } + + if (isset($node->glob['pattern'][0])) { + // mime type + $mime_type = strtolower((string) $node['type'] ?? ''); + + // get first extension + $extension = strtolower(trim($node->glob['ddpattern'][0] ?? '', '*.')); + + // skip none glob extensions and check if string length between 1 and 10 + if (false !== strpos($extension, '.') || \strlen($extension) < 1 || \strlen($extension) > 9) { + continue; + } + + // check if string length lower than 10 + if (!isset($valid_mime_types[$mime_type])) { + // generate array for mimetype to extension resolver (only first match) + $valid_mime_types[$extension] = "'{$extension}' => '{$mime_type}'"; + } + } + } + + // full list of valid extensions only + $valid_mime_types = array_unique($valid_mime_types); + ksort($valid_mime_types); + + // combine mime types and extensions array + $output = "$preamble\$swift_mime_types = array(\n ".implode(",\n ", $valid_mime_types)."\n);"; + + // write mime_types.php config file + @file_put_contents('./mime_types.php', $output); +} + +generateUpToDateMimeArray(); diff --git a/user/plugins/email/vendor/symfony/polyfill-intl-idn/Idn.php b/user/plugins/email/vendor/symfony/polyfill-intl-idn/Idn.php new file mode 100644 index 0000000..fee3026 --- /dev/null +++ b/user/plugins/email/vendor/symfony/polyfill-intl-idn/Idn.php @@ -0,0 +1,925 @@ + and Trevor Rowbotham + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Symfony\Polyfill\Intl\Idn; + +use Exception; +use Normalizer; +use Symfony\Polyfill\Intl\Idn\Resources\unidata\DisallowedRanges; +use Symfony\Polyfill\Intl\Idn\Resources\unidata\Regex; + +/** + * @see https://www.unicode.org/reports/tr46/ + * + * @internal + */ +final class Idn +{ + public const ERROR_EMPTY_LABEL = 1; + public const ERROR_LABEL_TOO_LONG = 2; + public const ERROR_DOMAIN_NAME_TOO_LONG = 4; + public const ERROR_LEADING_HYPHEN = 8; + public const ERROR_TRAILING_HYPHEN = 0x10; + public const ERROR_HYPHEN_3_4 = 0x20; + public const ERROR_LEADING_COMBINING_MARK = 0x40; + public const ERROR_DISALLOWED = 0x80; + public const ERROR_PUNYCODE = 0x100; + public const ERROR_LABEL_HAS_DOT = 0x200; + public const ERROR_INVALID_ACE_LABEL = 0x400; + public const ERROR_BIDI = 0x800; + public const ERROR_CONTEXTJ = 0x1000; + public const ERROR_CONTEXTO_PUNCTUATION = 0x2000; + public const ERROR_CONTEXTO_DIGITS = 0x4000; + + public const INTL_IDNA_VARIANT_2003 = 0; + public const INTL_IDNA_VARIANT_UTS46 = 1; + + public const IDNA_DEFAULT = 0; + public const IDNA_ALLOW_UNASSIGNED = 1; + public const IDNA_USE_STD3_RULES = 2; + public const IDNA_CHECK_BIDI = 4; + public const IDNA_CHECK_CONTEXTJ = 8; + public const IDNA_NONTRANSITIONAL_TO_ASCII = 16; + public const IDNA_NONTRANSITIONAL_TO_UNICODE = 32; + + public const MAX_DOMAIN_SIZE = 253; + public const MAX_LABEL_SIZE = 63; + + public const BASE = 36; + public const TMIN = 1; + public const TMAX = 26; + public const SKEW = 38; + public const DAMP = 700; + public const INITIAL_BIAS = 72; + public const INITIAL_N = 128; + public const DELIMITER = '-'; + public const MAX_INT = 2147483647; + + /** + * Contains the numeric value of a basic code point (for use in representing integers) in the + * range 0 to BASE-1, or -1 if b is does not represent a value. + * + * @var array + */ + private static $basicToDigit = [ + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, -1, -1, -1, -1, -1, -1, + + -1, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, + 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, -1, -1, -1, -1, -1, + + -1, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, + 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, -1, -1, -1, -1, -1, + + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + ]; + + /** + * @var array + */ + private static $virama; + + /** + * @var array + */ + private static $mapped; + + /** + * @var array + */ + private static $ignored; + + /** + * @var array + */ + private static $deviation; + + /** + * @var array + */ + private static $disallowed; + + /** + * @var array + */ + private static $disallowed_STD3_mapped; + + /** + * @var array + */ + private static $disallowed_STD3_valid; + + /** + * @var bool + */ + private static $mappingTableLoaded = false; + + /** + * @see https://www.unicode.org/reports/tr46/#ToASCII + * + * @param string $domainName + * @param int $options + * @param int $variant + * @param array $idna_info + * + * @return string|false + */ + public static function idn_to_ascii($domainName, $options = self::IDNA_DEFAULT, $variant = self::INTL_IDNA_VARIANT_UTS46, &$idna_info = []) + { + if (\PHP_VERSION_ID >= 70200 && self::INTL_IDNA_VARIANT_2003 === $variant) { + @trigger_error('idn_to_ascii(): INTL_IDNA_VARIANT_2003 is deprecated', \E_USER_DEPRECATED); + } + + $options = [ + 'CheckHyphens' => true, + 'CheckBidi' => self::INTL_IDNA_VARIANT_2003 === $variant || 0 !== ($options & self::IDNA_CHECK_BIDI), + 'CheckJoiners' => self::INTL_IDNA_VARIANT_UTS46 === $variant && 0 !== ($options & self::IDNA_CHECK_CONTEXTJ), + 'UseSTD3ASCIIRules' => 0 !== ($options & self::IDNA_USE_STD3_RULES), + 'Transitional_Processing' => self::INTL_IDNA_VARIANT_2003 === $variant || 0 === ($options & self::IDNA_NONTRANSITIONAL_TO_ASCII), + 'VerifyDnsLength' => true, + ]; + $info = new Info(); + $labels = self::process((string) $domainName, $options, $info); + + foreach ($labels as $i => $label) { + // Only convert labels to punycode that contain non-ASCII code points + if (1 === preg_match('/[^\x00-\x7F]/', $label)) { + try { + $label = 'xn--'.self::punycodeEncode($label); + } catch (Exception $e) { + $info->errors |= self::ERROR_PUNYCODE; + } + + $labels[$i] = $label; + } + } + + if ($options['VerifyDnsLength']) { + self::validateDomainAndLabelLength($labels, $info); + } + + $idna_info = [ + 'result' => implode('.', $labels), + 'isTransitionalDifferent' => $info->transitionalDifferent, + 'errors' => $info->errors, + ]; + + return 0 === $info->errors ? $idna_info['result'] : false; + } + + /** + * @see https://www.unicode.org/reports/tr46/#ToUnicode + * + * @param string $domainName + * @param int $options + * @param int $variant + * @param array $idna_info + * + * @return string|false + */ + public static function idn_to_utf8($domainName, $options = self::IDNA_DEFAULT, $variant = self::INTL_IDNA_VARIANT_UTS46, &$idna_info = []) + { + if (\PHP_VERSION_ID >= 70200 && self::INTL_IDNA_VARIANT_2003 === $variant) { + @trigger_error('idn_to_utf8(): INTL_IDNA_VARIANT_2003 is deprecated', \E_USER_DEPRECATED); + } + + $info = new Info(); + $labels = self::process((string) $domainName, [ + 'CheckHyphens' => true, + 'CheckBidi' => self::INTL_IDNA_VARIANT_2003 === $variant || 0 !== ($options & self::IDNA_CHECK_BIDI), + 'CheckJoiners' => self::INTL_IDNA_VARIANT_UTS46 === $variant && 0 !== ($options & self::IDNA_CHECK_CONTEXTJ), + 'UseSTD3ASCIIRules' => 0 !== ($options & self::IDNA_USE_STD3_RULES), + 'Transitional_Processing' => self::INTL_IDNA_VARIANT_2003 === $variant || 0 === ($options & self::IDNA_NONTRANSITIONAL_TO_UNICODE), + ], $info); + $idna_info = [ + 'result' => implode('.', $labels), + 'isTransitionalDifferent' => $info->transitionalDifferent, + 'errors' => $info->errors, + ]; + + return 0 === $info->errors ? $idna_info['result'] : false; + } + + /** + * @param string $label + * + * @return bool + */ + private static function isValidContextJ(array $codePoints, $label) + { + if (!isset(self::$virama)) { + self::$virama = require __DIR__.\DIRECTORY_SEPARATOR.'Resources'.\DIRECTORY_SEPARATOR.'unidata'.\DIRECTORY_SEPARATOR.'virama.php'; + } + + $offset = 0; + + foreach ($codePoints as $i => $codePoint) { + if (0x200C !== $codePoint && 0x200D !== $codePoint) { + continue; + } + + if (!isset($codePoints[$i - 1])) { + return false; + } + + // If Canonical_Combining_Class(Before(cp)) .eq. Virama Then True; + if (isset(self::$virama[$codePoints[$i - 1]])) { + continue; + } + + // If RegExpMatch((Joining_Type:{L,D})(Joining_Type:T)*\u200C(Joining_Type:T)*(Joining_Type:{R,D})) Then + // True; + // Generated RegExp = ([Joining_Type:{L,D}][Joining_Type:T]*\u200C[Joining_Type:T]*)[Joining_Type:{R,D}] + if (0x200C === $codePoint && 1 === preg_match(Regex::ZWNJ, $label, $matches, \PREG_OFFSET_CAPTURE, $offset)) { + $offset += \strlen($matches[1][0]); + + continue; + } + + return false; + } + + return true; + } + + /** + * @see https://www.unicode.org/reports/tr46/#ProcessingStepMap + * + * @param string $input + * @param array $options + * + * @return string + */ + private static function mapCodePoints($input, array $options, Info $info) + { + $str = ''; + $useSTD3ASCIIRules = $options['UseSTD3ASCIIRules']; + $transitional = $options['Transitional_Processing']; + + foreach (self::utf8Decode($input) as $codePoint) { + $data = self::lookupCodePointStatus($codePoint, $useSTD3ASCIIRules); + + switch ($data['status']) { + case 'disallowed': + $info->errors |= self::ERROR_DISALLOWED; + + // no break. + + case 'valid': + $str .= mb_chr($codePoint, 'utf-8'); + + break; + + case 'ignored': + // Do nothing. + break; + + case 'mapped': + $str .= $data['mapping']; + + break; + + case 'deviation': + $info->transitionalDifferent = true; + $str .= ($transitional ? $data['mapping'] : mb_chr($codePoint, 'utf-8')); + + break; + } + } + + return $str; + } + + /** + * @see https://www.unicode.org/reports/tr46/#Processing + * + * @param string $domain + * @param array $options + * + * @return array + */ + private static function process($domain, array $options, Info $info) + { + // If VerifyDnsLength is not set, we are doing ToUnicode otherwise we are doing ToASCII and + // we need to respect the VerifyDnsLength option. + $checkForEmptyLabels = !isset($options['VerifyDnsLength']) || $options['VerifyDnsLength']; + + if ($checkForEmptyLabels && '' === $domain) { + $info->errors |= self::ERROR_EMPTY_LABEL; + + return [$domain]; + } + + // Step 1. Map each code point in the domain name string + $domain = self::mapCodePoints($domain, $options, $info); + + // Step 2. Normalize the domain name string to Unicode Normalization Form C. + if (!Normalizer::isNormalized($domain, Normalizer::FORM_C)) { + $domain = Normalizer::normalize($domain, Normalizer::FORM_C); + } + + // Step 3. Break the string into labels at U+002E (.) FULL STOP. + $labels = explode('.', $domain); + $lastLabelIndex = \count($labels) - 1; + + // Step 4. Convert and validate each label in the domain name string. + foreach ($labels as $i => $label) { + $validationOptions = $options; + + if ('xn--' === substr($label, 0, 4)) { + try { + $label = self::punycodeDecode(substr($label, 4)); + } catch (Exception $e) { + $info->errors |= self::ERROR_PUNYCODE; + + continue; + } + + $validationOptions['Transitional_Processing'] = false; + $labels[$i] = $label; + } + + self::validateLabel($label, $info, $validationOptions, $i > 0 && $i === $lastLabelIndex); + } + + if ($info->bidiDomain && !$info->validBidiDomain) { + $info->errors |= self::ERROR_BIDI; + } + + // Any input domain name string that does not record an error has been successfully + // processed according to this specification. Conversely, if an input domain_name string + // causes an error, then the processing of the input domain_name string fails. Determining + // what to do with error input is up to the caller, and not in the scope of this document. + return $labels; + } + + /** + * @see https://tools.ietf.org/html/rfc5893#section-2 + * + * @param string $label + */ + private static function validateBidiLabel($label, Info $info) + { + if (1 === preg_match(Regex::RTL_LABEL, $label)) { + $info->bidiDomain = true; + + // Step 1. The first character must be a character with Bidi property L, R, or AL. + // If it has the R or AL property, it is an RTL label + if (1 !== preg_match(Regex::BIDI_STEP_1_RTL, $label)) { + $info->validBidiDomain = false; + + return; + } + + // Step 2. In an RTL label, only characters with the Bidi properties R, AL, AN, EN, ES, + // CS, ET, ON, BN, or NSM are allowed. + if (1 === preg_match(Regex::BIDI_STEP_2, $label)) { + $info->validBidiDomain = false; + + return; + } + + // Step 3. In an RTL label, the end of the label must be a character with Bidi property + // R, AL, EN, or AN, followed by zero or more characters with Bidi property NSM. + if (1 !== preg_match(Regex::BIDI_STEP_3, $label)) { + $info->validBidiDomain = false; + + return; + } + + // Step 4. In an RTL label, if an EN is present, no AN may be present, and vice versa. + if (1 === preg_match(Regex::BIDI_STEP_4_AN, $label) && 1 === preg_match(Regex::BIDI_STEP_4_EN, $label)) { + $info->validBidiDomain = false; + + return; + } + + return; + } + + // We are a LTR label + // Step 1. The first character must be a character with Bidi property L, R, or AL. + // If it has the L property, it is an LTR label. + if (1 !== preg_match(Regex::BIDI_STEP_1_LTR, $label)) { + $info->validBidiDomain = false; + + return; + } + + // Step 5. In an LTR label, only characters with the Bidi properties L, EN, + // ES, CS, ET, ON, BN, or NSM are allowed. + if (1 === preg_match(Regex::BIDI_STEP_5, $label)) { + $info->validBidiDomain = false; + + return; + } + + // Step 6.In an LTR label, the end of the label must be a character with Bidi property L or + // EN, followed by zero or more characters with Bidi property NSM. + if (1 !== preg_match(Regex::BIDI_STEP_6, $label)) { + $info->validBidiDomain = false; + + return; + } + } + + /** + * @param array $labels + */ + private static function validateDomainAndLabelLength(array $labels, Info $info) + { + $maxDomainSize = self::MAX_DOMAIN_SIZE; + $length = \count($labels); + + // Number of "." delimiters. + $domainLength = $length - 1; + + // If the last label is empty and it is not the first label, then it is the root label. + // Increase the max size by 1, making it 254, to account for the root label's "." + // delimiter. This also means we don't need to check the last label's length for being too + // long. + if ($length > 1 && '' === $labels[$length - 1]) { + ++$maxDomainSize; + --$length; + } + + for ($i = 0; $i < $length; ++$i) { + $bytes = \strlen($labels[$i]); + $domainLength += $bytes; + + if ($bytes > self::MAX_LABEL_SIZE) { + $info->errors |= self::ERROR_LABEL_TOO_LONG; + } + } + + if ($domainLength > $maxDomainSize) { + $info->errors |= self::ERROR_DOMAIN_NAME_TOO_LONG; + } + } + + /** + * @see https://www.unicode.org/reports/tr46/#Validity_Criteria + * + * @param string $label + * @param array $options + * @param bool $canBeEmpty + */ + private static function validateLabel($label, Info $info, array $options, $canBeEmpty) + { + if ('' === $label) { + if (!$canBeEmpty && (!isset($options['VerifyDnsLength']) || $options['VerifyDnsLength'])) { + $info->errors |= self::ERROR_EMPTY_LABEL; + } + + return; + } + + // Step 1. The label must be in Unicode Normalization Form C. + if (!Normalizer::isNormalized($label, Normalizer::FORM_C)) { + $info->errors |= self::ERROR_INVALID_ACE_LABEL; + } + + $codePoints = self::utf8Decode($label); + + if ($options['CheckHyphens']) { + // Step 2. If CheckHyphens, the label must not contain a U+002D HYPHEN-MINUS character + // in both the thrid and fourth positions. + if (isset($codePoints[2], $codePoints[3]) && 0x002D === $codePoints[2] && 0x002D === $codePoints[3]) { + $info->errors |= self::ERROR_HYPHEN_3_4; + } + + // Step 3. If CheckHyphens, the label must neither begin nor end with a U+002D + // HYPHEN-MINUS character. + if ('-' === substr($label, 0, 1)) { + $info->errors |= self::ERROR_LEADING_HYPHEN; + } + + if ('-' === substr($label, -1, 1)) { + $info->errors |= self::ERROR_TRAILING_HYPHEN; + } + } + + // Step 4. The label must not contain a U+002E (.) FULL STOP. + if (false !== strpos($label, '.')) { + $info->errors |= self::ERROR_LABEL_HAS_DOT; + } + + // Step 5. The label must not begin with a combining mark, that is: General_Category=Mark. + if (1 === preg_match(Regex::COMBINING_MARK, $label)) { + $info->errors |= self::ERROR_LEADING_COMBINING_MARK; + } + + // Step 6. Each code point in the label must only have certain status values according to + // Section 5, IDNA Mapping Table: + $transitional = $options['Transitional_Processing']; + $useSTD3ASCIIRules = $options['UseSTD3ASCIIRules']; + + foreach ($codePoints as $codePoint) { + $data = self::lookupCodePointStatus($codePoint, $useSTD3ASCIIRules); + $status = $data['status']; + + if ('valid' === $status || (!$transitional && 'deviation' === $status)) { + continue; + } + + $info->errors |= self::ERROR_DISALLOWED; + + break; + } + + // Step 7. If CheckJoiners, the label must satisify the ContextJ rules from Appendix A, in + // The Unicode Code Points and Internationalized Domain Names for Applications (IDNA) + // [IDNA2008]. + if ($options['CheckJoiners'] && !self::isValidContextJ($codePoints, $label)) { + $info->errors |= self::ERROR_CONTEXTJ; + } + + // Step 8. If CheckBidi, and if the domain name is a Bidi domain name, then the label must + // satisfy all six of the numbered conditions in [IDNA2008] RFC 5893, Section 2. + if ($options['CheckBidi'] && (!$info->bidiDomain || $info->validBidiDomain)) { + self::validateBidiLabel($label, $info); + } + } + + /** + * @see https://tools.ietf.org/html/rfc3492#section-6.2 + * + * @param string $input + * + * @return string + */ + private static function punycodeDecode($input) + { + $n = self::INITIAL_N; + $out = 0; + $i = 0; + $bias = self::INITIAL_BIAS; + $lastDelimIndex = strrpos($input, self::DELIMITER); + $b = false === $lastDelimIndex ? 0 : $lastDelimIndex; + $inputLength = \strlen($input); + $output = []; + $bytes = array_map('ord', str_split($input)); + + for ($j = 0; $j < $b; ++$j) { + if ($bytes[$j] > 0x7F) { + throw new Exception('Invalid input'); + } + + $output[$out++] = $input[$j]; + } + + if ($b > 0) { + ++$b; + } + + for ($in = $b; $in < $inputLength; ++$out) { + $oldi = $i; + $w = 1; + + for ($k = self::BASE; /* no condition */; $k += self::BASE) { + if ($in >= $inputLength) { + throw new Exception('Invalid input'); + } + + $digit = self::$basicToDigit[$bytes[$in++] & 0xFF]; + + if ($digit < 0) { + throw new Exception('Invalid input'); + } + + if ($digit > intdiv(self::MAX_INT - $i, $w)) { + throw new Exception('Integer overflow'); + } + + $i += $digit * $w; + + if ($k <= $bias) { + $t = self::TMIN; + } elseif ($k >= $bias + self::TMAX) { + $t = self::TMAX; + } else { + $t = $k - $bias; + } + + if ($digit < $t) { + break; + } + + $baseMinusT = self::BASE - $t; + + if ($w > intdiv(self::MAX_INT, $baseMinusT)) { + throw new Exception('Integer overflow'); + } + + $w *= $baseMinusT; + } + + $outPlusOne = $out + 1; + $bias = self::adaptBias($i - $oldi, $outPlusOne, 0 === $oldi); + + if (intdiv($i, $outPlusOne) > self::MAX_INT - $n) { + throw new Exception('Integer overflow'); + } + + $n += intdiv($i, $outPlusOne); + $i %= $outPlusOne; + array_splice($output, $i++, 0, [mb_chr($n, 'utf-8')]); + } + + return implode('', $output); + } + + /** + * @see https://tools.ietf.org/html/rfc3492#section-6.3 + * + * @param string $input + * + * @return string + */ + private static function punycodeEncode($input) + { + $n = self::INITIAL_N; + $delta = 0; + $out = 0; + $bias = self::INITIAL_BIAS; + $inputLength = 0; + $output = ''; + $iter = self::utf8Decode($input); + + foreach ($iter as $codePoint) { + ++$inputLength; + + if ($codePoint < 0x80) { + $output .= \chr($codePoint); + ++$out; + } + } + + $h = $out; + $b = $out; + + if ($b > 0) { + $output .= self::DELIMITER; + ++$out; + } + + while ($h < $inputLength) { + $m = self::MAX_INT; + + foreach ($iter as $codePoint) { + if ($codePoint >= $n && $codePoint < $m) { + $m = $codePoint; + } + } + + if ($m - $n > intdiv(self::MAX_INT - $delta, $h + 1)) { + throw new Exception('Integer overflow'); + } + + $delta += ($m - $n) * ($h + 1); + $n = $m; + + foreach ($iter as $codePoint) { + if ($codePoint < $n && 0 === ++$delta) { + throw new Exception('Integer overflow'); + } + + if ($codePoint === $n) { + $q = $delta; + + for ($k = self::BASE; /* no condition */; $k += self::BASE) { + if ($k <= $bias) { + $t = self::TMIN; + } elseif ($k >= $bias + self::TMAX) { + $t = self::TMAX; + } else { + $t = $k - $bias; + } + + if ($q < $t) { + break; + } + + $qMinusT = $q - $t; + $baseMinusT = self::BASE - $t; + $output .= self::encodeDigit($t + ($qMinusT) % ($baseMinusT), false); + ++$out; + $q = intdiv($qMinusT, $baseMinusT); + } + + $output .= self::encodeDigit($q, false); + ++$out; + $bias = self::adaptBias($delta, $h + 1, $h === $b); + $delta = 0; + ++$h; + } + } + + ++$delta; + ++$n; + } + + return $output; + } + + /** + * @see https://tools.ietf.org/html/rfc3492#section-6.1 + * + * @param int $delta + * @param int $numPoints + * @param bool $firstTime + * + * @return int + */ + private static function adaptBias($delta, $numPoints, $firstTime) + { + // xxx >> 1 is a faster way of doing intdiv(xxx, 2) + $delta = $firstTime ? intdiv($delta, self::DAMP) : $delta >> 1; + $delta += intdiv($delta, $numPoints); + $k = 0; + + while ($delta > ((self::BASE - self::TMIN) * self::TMAX) >> 1) { + $delta = intdiv($delta, self::BASE - self::TMIN); + $k += self::BASE; + } + + return $k + intdiv((self::BASE - self::TMIN + 1) * $delta, $delta + self::SKEW); + } + + /** + * @param int $d + * @param bool $flag + * + * @return string + */ + private static function encodeDigit($d, $flag) + { + return \chr($d + 22 + 75 * ($d < 26 ? 1 : 0) - (($flag ? 1 : 0) << 5)); + } + + /** + * Takes a UTF-8 encoded string and converts it into a series of integer code points. Any + * invalid byte sequences will be replaced by a U+FFFD replacement code point. + * + * @see https://encoding.spec.whatwg.org/#utf-8-decoder + * + * @param string $input + * + * @return array + */ + private static function utf8Decode($input) + { + $bytesSeen = 0; + $bytesNeeded = 0; + $lowerBoundary = 0x80; + $upperBoundary = 0xBF; + $codePoint = 0; + $codePoints = []; + $length = \strlen($input); + + for ($i = 0; $i < $length; ++$i) { + $byte = \ord($input[$i]); + + if (0 === $bytesNeeded) { + if ($byte >= 0x00 && $byte <= 0x7F) { + $codePoints[] = $byte; + + continue; + } + + if ($byte >= 0xC2 && $byte <= 0xDF) { + $bytesNeeded = 1; + $codePoint = $byte & 0x1F; + } elseif ($byte >= 0xE0 && $byte <= 0xEF) { + if (0xE0 === $byte) { + $lowerBoundary = 0xA0; + } elseif (0xED === $byte) { + $upperBoundary = 0x9F; + } + + $bytesNeeded = 2; + $codePoint = $byte & 0xF; + } elseif ($byte >= 0xF0 && $byte <= 0xF4) { + if (0xF0 === $byte) { + $lowerBoundary = 0x90; + } elseif (0xF4 === $byte) { + $upperBoundary = 0x8F; + } + + $bytesNeeded = 3; + $codePoint = $byte & 0x7; + } else { + $codePoints[] = 0xFFFD; + } + + continue; + } + + if ($byte < $lowerBoundary || $byte > $upperBoundary) { + $codePoint = 0; + $bytesNeeded = 0; + $bytesSeen = 0; + $lowerBoundary = 0x80; + $upperBoundary = 0xBF; + --$i; + $codePoints[] = 0xFFFD; + + continue; + } + + $lowerBoundary = 0x80; + $upperBoundary = 0xBF; + $codePoint = ($codePoint << 6) | ($byte & 0x3F); + + if (++$bytesSeen !== $bytesNeeded) { + continue; + } + + $codePoints[] = $codePoint; + $codePoint = 0; + $bytesNeeded = 0; + $bytesSeen = 0; + } + + // String unexpectedly ended, so append a U+FFFD code point. + if (0 !== $bytesNeeded) { + $codePoints[] = 0xFFFD; + } + + return $codePoints; + } + + /** + * @param int $codePoint + * @param bool $useSTD3ASCIIRules + * + * @return array{status: string, mapping?: string} + */ + private static function lookupCodePointStatus($codePoint, $useSTD3ASCIIRules) + { + if (!self::$mappingTableLoaded) { + self::$mappingTableLoaded = true; + self::$mapped = require __DIR__.'/Resources/unidata/mapped.php'; + self::$ignored = require __DIR__.'/Resources/unidata/ignored.php'; + self::$deviation = require __DIR__.'/Resources/unidata/deviation.php'; + self::$disallowed = require __DIR__.'/Resources/unidata/disallowed.php'; + self::$disallowed_STD3_mapped = require __DIR__.'/Resources/unidata/disallowed_STD3_mapped.php'; + self::$disallowed_STD3_valid = require __DIR__.'/Resources/unidata/disallowed_STD3_valid.php'; + } + + if (isset(self::$mapped[$codePoint])) { + return ['status' => 'mapped', 'mapping' => self::$mapped[$codePoint]]; + } + + if (isset(self::$ignored[$codePoint])) { + return ['status' => 'ignored']; + } + + if (isset(self::$deviation[$codePoint])) { + return ['status' => 'deviation', 'mapping' => self::$deviation[$codePoint]]; + } + + if (isset(self::$disallowed[$codePoint]) || DisallowedRanges::inRange($codePoint)) { + return ['status' => 'disallowed']; + } + + $isDisallowedMapped = isset(self::$disallowed_STD3_mapped[$codePoint]); + + if ($isDisallowedMapped || isset(self::$disallowed_STD3_valid[$codePoint])) { + $status = 'disallowed'; + + if (!$useSTD3ASCIIRules) { + $status = $isDisallowedMapped ? 'mapped' : 'valid'; + } + + if ($isDisallowedMapped) { + return ['status' => $status, 'mapping' => self::$disallowed_STD3_mapped[$codePoint]]; + } + + return ['status' => $status]; + } + + return ['status' => 'valid']; + } +} diff --git a/user/plugins/email/vendor/symfony/polyfill-intl-idn/Info.php b/user/plugins/email/vendor/symfony/polyfill-intl-idn/Info.php new file mode 100644 index 0000000..25c3582 --- /dev/null +++ b/user/plugins/email/vendor/symfony/polyfill-intl-idn/Info.php @@ -0,0 +1,23 @@ + and Trevor Rowbotham + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Symfony\Polyfill\Intl\Idn; + +/** + * @internal + */ +class Info +{ + public $bidiDomain = false; + public $errors = 0; + public $validBidiDomain = true; + public $transitionalDifferent = false; +} diff --git a/user/plugins/email/vendor/symfony/polyfill-intl-idn/LICENSE b/user/plugins/email/vendor/symfony/polyfill-intl-idn/LICENSE new file mode 100644 index 0000000..03c5e25 --- /dev/null +++ b/user/plugins/email/vendor/symfony/polyfill-intl-idn/LICENSE @@ -0,0 +1,19 @@ +Copyright (c) 2018-2019 Fabien Potencier and Trevor Rowbotham + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is furnished +to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. diff --git a/user/plugins/email/vendor/symfony/polyfill-intl-idn/README.md b/user/plugins/email/vendor/symfony/polyfill-intl-idn/README.md new file mode 100644 index 0000000..2e75f2e --- /dev/null +++ b/user/plugins/email/vendor/symfony/polyfill-intl-idn/README.md @@ -0,0 +1,12 @@ +Symfony Polyfill / Intl: Idn +============================ + +This component provides [`idn_to_ascii`](https://php.net/idn-to-ascii) and [`idn_to_utf8`](https://php.net/idn-to-utf8) functions to users who run php versions without the [Intl](https://php.net/intl) extension. + +More information can be found in the +[main Polyfill README](https://github.com/symfony/polyfill/blob/master/README.md). + +License +======= + +This library is released under the [MIT license](LICENSE). diff --git a/user/plugins/email/vendor/symfony/polyfill-intl-idn/Resources/unidata/DisallowedRanges.php b/user/plugins/email/vendor/symfony/polyfill-intl-idn/Resources/unidata/DisallowedRanges.php new file mode 100644 index 0000000..5bb70e4 --- /dev/null +++ b/user/plugins/email/vendor/symfony/polyfill-intl-idn/Resources/unidata/DisallowedRanges.php @@ -0,0 +1,375 @@ += 128 && $codePoint <= 159) { + return true; + } + + if ($codePoint >= 2155 && $codePoint <= 2207) { + return true; + } + + if ($codePoint >= 3676 && $codePoint <= 3712) { + return true; + } + + if ($codePoint >= 3808 && $codePoint <= 3839) { + return true; + } + + if ($codePoint >= 4059 && $codePoint <= 4095) { + return true; + } + + if ($codePoint >= 4256 && $codePoint <= 4293) { + return true; + } + + if ($codePoint >= 6849 && $codePoint <= 6911) { + return true; + } + + if ($codePoint >= 11859 && $codePoint <= 11903) { + return true; + } + + if ($codePoint >= 42955 && $codePoint <= 42996) { + return true; + } + + if ($codePoint >= 55296 && $codePoint <= 57343) { + return true; + } + + if ($codePoint >= 57344 && $codePoint <= 63743) { + return true; + } + + if ($codePoint >= 64218 && $codePoint <= 64255) { + return true; + } + + if ($codePoint >= 64976 && $codePoint <= 65007) { + return true; + } + + if ($codePoint >= 65630 && $codePoint <= 65663) { + return true; + } + + if ($codePoint >= 65953 && $codePoint <= 65999) { + return true; + } + + if ($codePoint >= 66046 && $codePoint <= 66175) { + return true; + } + + if ($codePoint >= 66518 && $codePoint <= 66559) { + return true; + } + + if ($codePoint >= 66928 && $codePoint <= 67071) { + return true; + } + + if ($codePoint >= 67432 && $codePoint <= 67583) { + return true; + } + + if ($codePoint >= 67760 && $codePoint <= 67807) { + return true; + } + + if ($codePoint >= 67904 && $codePoint <= 67967) { + return true; + } + + if ($codePoint >= 68256 && $codePoint <= 68287) { + return true; + } + + if ($codePoint >= 68528 && $codePoint <= 68607) { + return true; + } + + if ($codePoint >= 68681 && $codePoint <= 68735) { + return true; + } + + if ($codePoint >= 68922 && $codePoint <= 69215) { + return true; + } + + if ($codePoint >= 69298 && $codePoint <= 69375) { + return true; + } + + if ($codePoint >= 69466 && $codePoint <= 69551) { + return true; + } + + if ($codePoint >= 70207 && $codePoint <= 70271) { + return true; + } + + if ($codePoint >= 70517 && $codePoint <= 70655) { + return true; + } + + if ($codePoint >= 70874 && $codePoint <= 71039) { + return true; + } + + if ($codePoint >= 71134 && $codePoint <= 71167) { + return true; + } + + if ($codePoint >= 71370 && $codePoint <= 71423) { + return true; + } + + if ($codePoint >= 71488 && $codePoint <= 71679) { + return true; + } + + if ($codePoint >= 71740 && $codePoint <= 71839) { + return true; + } + + if ($codePoint >= 72026 && $codePoint <= 72095) { + return true; + } + + if ($codePoint >= 72441 && $codePoint <= 72703) { + return true; + } + + if ($codePoint >= 72887 && $codePoint <= 72959) { + return true; + } + + if ($codePoint >= 73130 && $codePoint <= 73439) { + return true; + } + + if ($codePoint >= 73465 && $codePoint <= 73647) { + return true; + } + + if ($codePoint >= 74650 && $codePoint <= 74751) { + return true; + } + + if ($codePoint >= 75076 && $codePoint <= 77823) { + return true; + } + + if ($codePoint >= 78905 && $codePoint <= 82943) { + return true; + } + + if ($codePoint >= 83527 && $codePoint <= 92159) { + return true; + } + + if ($codePoint >= 92784 && $codePoint <= 92879) { + return true; + } + + if ($codePoint >= 93072 && $codePoint <= 93759) { + return true; + } + + if ($codePoint >= 93851 && $codePoint <= 93951) { + return true; + } + + if ($codePoint >= 94112 && $codePoint <= 94175) { + return true; + } + + if ($codePoint >= 101590 && $codePoint <= 101631) { + return true; + } + + if ($codePoint >= 101641 && $codePoint <= 110591) { + return true; + } + + if ($codePoint >= 110879 && $codePoint <= 110927) { + return true; + } + + if ($codePoint >= 111356 && $codePoint <= 113663) { + return true; + } + + if ($codePoint >= 113828 && $codePoint <= 118783) { + return true; + } + + if ($codePoint >= 119366 && $codePoint <= 119519) { + return true; + } + + if ($codePoint >= 119673 && $codePoint <= 119807) { + return true; + } + + if ($codePoint >= 121520 && $codePoint <= 122879) { + return true; + } + + if ($codePoint >= 122923 && $codePoint <= 123135) { + return true; + } + + if ($codePoint >= 123216 && $codePoint <= 123583) { + return true; + } + + if ($codePoint >= 123648 && $codePoint <= 124927) { + return true; + } + + if ($codePoint >= 125143 && $codePoint <= 125183) { + return true; + } + + if ($codePoint >= 125280 && $codePoint <= 126064) { + return true; + } + + if ($codePoint >= 126133 && $codePoint <= 126208) { + return true; + } + + if ($codePoint >= 126270 && $codePoint <= 126463) { + return true; + } + + if ($codePoint >= 126652 && $codePoint <= 126703) { + return true; + } + + if ($codePoint >= 126706 && $codePoint <= 126975) { + return true; + } + + if ($codePoint >= 127406 && $codePoint <= 127461) { + return true; + } + + if ($codePoint >= 127590 && $codePoint <= 127743) { + return true; + } + + if ($codePoint >= 129202 && $codePoint <= 129279) { + return true; + } + + if ($codePoint >= 129751 && $codePoint <= 129791) { + return true; + } + + if ($codePoint >= 129995 && $codePoint <= 130031) { + return true; + } + + if ($codePoint >= 130042 && $codePoint <= 131069) { + return true; + } + + if ($codePoint >= 173790 && $codePoint <= 173823) { + return true; + } + + if ($codePoint >= 191457 && $codePoint <= 194559) { + return true; + } + + if ($codePoint >= 195102 && $codePoint <= 196605) { + return true; + } + + if ($codePoint >= 201547 && $codePoint <= 262141) { + return true; + } + + if ($codePoint >= 262144 && $codePoint <= 327677) { + return true; + } + + if ($codePoint >= 327680 && $codePoint <= 393213) { + return true; + } + + if ($codePoint >= 393216 && $codePoint <= 458749) { + return true; + } + + if ($codePoint >= 458752 && $codePoint <= 524285) { + return true; + } + + if ($codePoint >= 524288 && $codePoint <= 589821) { + return true; + } + + if ($codePoint >= 589824 && $codePoint <= 655357) { + return true; + } + + if ($codePoint >= 655360 && $codePoint <= 720893) { + return true; + } + + if ($codePoint >= 720896 && $codePoint <= 786429) { + return true; + } + + if ($codePoint >= 786432 && $codePoint <= 851965) { + return true; + } + + if ($codePoint >= 851968 && $codePoint <= 917501) { + return true; + } + + if ($codePoint >= 917536 && $codePoint <= 917631) { + return true; + } + + if ($codePoint >= 917632 && $codePoint <= 917759) { + return true; + } + + if ($codePoint >= 918000 && $codePoint <= 983037) { + return true; + } + + if ($codePoint >= 983040 && $codePoint <= 1048573) { + return true; + } + + if ($codePoint >= 1048576 && $codePoint <= 1114109) { + return true; + } + + return false; + } +} diff --git a/user/plugins/email/vendor/symfony/polyfill-intl-idn/Resources/unidata/Regex.php b/user/plugins/email/vendor/symfony/polyfill-intl-idn/Resources/unidata/Regex.php new file mode 100644 index 0000000..5c1c51d --- /dev/null +++ b/user/plugins/email/vendor/symfony/polyfill-intl-idn/Resources/unidata/Regex.php @@ -0,0 +1,24 @@ + 'ss', + 962 => 'σ', + 8204 => '', + 8205 => '', +); diff --git a/user/plugins/email/vendor/symfony/polyfill-intl-idn/Resources/unidata/disallowed.php b/user/plugins/email/vendor/symfony/polyfill-intl-idn/Resources/unidata/disallowed.php new file mode 100644 index 0000000..25a5f56 --- /dev/null +++ b/user/plugins/email/vendor/symfony/polyfill-intl-idn/Resources/unidata/disallowed.php @@ -0,0 +1,2638 @@ + true, + 889 => true, + 896 => true, + 897 => true, + 898 => true, + 899 => true, + 907 => true, + 909 => true, + 930 => true, + 1216 => true, + 1328 => true, + 1367 => true, + 1368 => true, + 1419 => true, + 1420 => true, + 1424 => true, + 1480 => true, + 1481 => true, + 1482 => true, + 1483 => true, + 1484 => true, + 1485 => true, + 1486 => true, + 1487 => true, + 1515 => true, + 1516 => true, + 1517 => true, + 1518 => true, + 1525 => true, + 1526 => true, + 1527 => true, + 1528 => true, + 1529 => true, + 1530 => true, + 1531 => true, + 1532 => true, + 1533 => true, + 1534 => true, + 1535 => true, + 1536 => true, + 1537 => true, + 1538 => true, + 1539 => true, + 1540 => true, + 1541 => true, + 1564 => true, + 1565 => true, + 1757 => true, + 1806 => true, + 1807 => true, + 1867 => true, + 1868 => true, + 1970 => true, + 1971 => true, + 1972 => true, + 1973 => true, + 1974 => true, + 1975 => true, + 1976 => true, + 1977 => true, + 1978 => true, + 1979 => true, + 1980 => true, + 1981 => true, + 1982 => true, + 1983 => true, + 2043 => true, + 2044 => true, + 2094 => true, + 2095 => true, + 2111 => true, + 2140 => true, + 2141 => true, + 2143 => true, + 2229 => true, + 2248 => true, + 2249 => true, + 2250 => true, + 2251 => true, + 2252 => true, + 2253 => true, + 2254 => true, + 2255 => true, + 2256 => true, + 2257 => true, + 2258 => true, + 2274 => true, + 2436 => true, + 2445 => true, + 2446 => true, + 2449 => true, + 2450 => true, + 2473 => true, + 2481 => true, + 2483 => true, + 2484 => true, + 2485 => true, + 2490 => true, + 2491 => true, + 2501 => true, + 2502 => true, + 2505 => true, + 2506 => true, + 2511 => true, + 2512 => true, + 2513 => true, + 2514 => true, + 2515 => true, + 2516 => true, + 2517 => true, + 2518 => true, + 2520 => true, + 2521 => true, + 2522 => true, + 2523 => true, + 2526 => true, + 2532 => true, + 2533 => true, + 2559 => true, + 2560 => true, + 2564 => true, + 2571 => true, + 2572 => true, + 2573 => true, + 2574 => true, + 2577 => true, + 2578 => true, + 2601 => true, + 2609 => true, + 2612 => true, + 2615 => true, + 2618 => true, + 2619 => true, + 2621 => true, + 2627 => true, + 2628 => true, + 2629 => true, + 2630 => true, + 2633 => true, + 2634 => true, + 2638 => true, + 2639 => true, + 2640 => true, + 2642 => true, + 2643 => true, + 2644 => true, + 2645 => true, + 2646 => true, + 2647 => true, + 2648 => true, + 2653 => true, + 2655 => true, + 2656 => true, + 2657 => true, + 2658 => true, + 2659 => true, + 2660 => true, + 2661 => true, + 2679 => true, + 2680 => true, + 2681 => true, + 2682 => true, + 2683 => true, + 2684 => true, + 2685 => true, + 2686 => true, + 2687 => true, + 2688 => true, + 2692 => true, + 2702 => true, + 2706 => true, + 2729 => true, + 2737 => true, + 2740 => true, + 2746 => true, + 2747 => true, + 2758 => true, + 2762 => true, + 2766 => true, + 2767 => true, + 2769 => true, + 2770 => true, + 2771 => true, + 2772 => true, + 2773 => true, + 2774 => true, + 2775 => true, + 2776 => true, + 2777 => true, + 2778 => true, + 2779 => true, + 2780 => true, + 2781 => true, + 2782 => true, + 2783 => true, + 2788 => true, + 2789 => true, + 2802 => true, + 2803 => true, + 2804 => true, + 2805 => true, + 2806 => true, + 2807 => true, + 2808 => true, + 2816 => true, + 2820 => true, + 2829 => true, + 2830 => true, + 2833 => true, + 2834 => true, + 2857 => true, + 2865 => true, + 2868 => true, + 2874 => true, + 2875 => true, + 2885 => true, + 2886 => true, + 2889 => true, + 2890 => true, + 2894 => true, + 2895 => true, + 2896 => true, + 2897 => true, + 2898 => true, + 2899 => true, + 2900 => true, + 2904 => true, + 2905 => true, + 2906 => true, + 2907 => true, + 2910 => true, + 2916 => true, + 2917 => true, + 2936 => true, + 2937 => true, + 2938 => true, + 2939 => true, + 2940 => true, + 2941 => true, + 2942 => true, + 2943 => true, + 2944 => true, + 2945 => true, + 2948 => true, + 2955 => true, + 2956 => true, + 2957 => true, + 2961 => true, + 2966 => true, + 2967 => true, + 2968 => true, + 2971 => true, + 2973 => true, + 2976 => true, + 2977 => true, + 2978 => true, + 2981 => true, + 2982 => true, + 2983 => true, + 2987 => true, + 2988 => true, + 2989 => true, + 3002 => true, + 3003 => true, + 3004 => true, + 3005 => true, + 3011 => true, + 3012 => true, + 3013 => true, + 3017 => true, + 3022 => true, + 3023 => true, + 3025 => true, + 3026 => true, + 3027 => true, + 3028 => true, + 3029 => true, + 3030 => true, + 3032 => true, + 3033 => true, + 3034 => true, + 3035 => true, + 3036 => true, + 3037 => true, + 3038 => true, + 3039 => true, + 3040 => true, + 3041 => true, + 3042 => true, + 3043 => true, + 3044 => true, + 3045 => true, + 3067 => true, + 3068 => true, + 3069 => true, + 3070 => true, + 3071 => true, + 3085 => true, + 3089 => true, + 3113 => true, + 3130 => true, + 3131 => true, + 3132 => true, + 3141 => true, + 3145 => true, + 3150 => true, + 3151 => true, + 3152 => true, + 3153 => true, + 3154 => true, + 3155 => true, + 3156 => true, + 3159 => true, + 3163 => true, + 3164 => true, + 3165 => true, + 3166 => true, + 3167 => true, + 3172 => true, + 3173 => true, + 3184 => true, + 3185 => true, + 3186 => true, + 3187 => true, + 3188 => true, + 3189 => true, + 3190 => true, + 3213 => true, + 3217 => true, + 3241 => true, + 3252 => true, + 3258 => true, + 3259 => true, + 3269 => true, + 3273 => true, + 3278 => true, + 3279 => true, + 3280 => true, + 3281 => true, + 3282 => true, + 3283 => true, + 3284 => true, + 3287 => true, + 3288 => true, + 3289 => true, + 3290 => true, + 3291 => true, + 3292 => true, + 3293 => true, + 3295 => true, + 3300 => true, + 3301 => true, + 3312 => true, + 3315 => true, + 3316 => true, + 3317 => true, + 3318 => true, + 3319 => true, + 3320 => true, + 3321 => true, + 3322 => true, + 3323 => true, + 3324 => true, + 3325 => true, + 3326 => true, + 3327 => true, + 3341 => true, + 3345 => true, + 3397 => true, + 3401 => true, + 3408 => true, + 3409 => true, + 3410 => true, + 3411 => true, + 3428 => true, + 3429 => true, + 3456 => true, + 3460 => true, + 3479 => true, + 3480 => true, + 3481 => true, + 3506 => true, + 3516 => true, + 3518 => true, + 3519 => true, + 3527 => true, + 3528 => true, + 3529 => true, + 3531 => true, + 3532 => true, + 3533 => true, + 3534 => true, + 3541 => true, + 3543 => true, + 3552 => true, + 3553 => true, + 3554 => true, + 3555 => true, + 3556 => true, + 3557 => true, + 3568 => true, + 3569 => true, + 3573 => true, + 3574 => true, + 3575 => true, + 3576 => true, + 3577 => true, + 3578 => true, + 3579 => true, + 3580 => true, + 3581 => true, + 3582 => true, + 3583 => true, + 3584 => true, + 3643 => true, + 3644 => true, + 3645 => true, + 3646 => true, + 3715 => true, + 3717 => true, + 3723 => true, + 3748 => true, + 3750 => true, + 3774 => true, + 3775 => true, + 3781 => true, + 3783 => true, + 3790 => true, + 3791 => true, + 3802 => true, + 3803 => true, + 3912 => true, + 3949 => true, + 3950 => true, + 3951 => true, + 3952 => true, + 3992 => true, + 4029 => true, + 4045 => true, + 4294 => true, + 4296 => true, + 4297 => true, + 4298 => true, + 4299 => true, + 4300 => true, + 4302 => true, + 4303 => true, + 4447 => true, + 4448 => true, + 4681 => true, + 4686 => true, + 4687 => true, + 4695 => true, + 4697 => true, + 4702 => true, + 4703 => true, + 4745 => true, + 4750 => true, + 4751 => true, + 4785 => true, + 4790 => true, + 4791 => true, + 4799 => true, + 4801 => true, + 4806 => true, + 4807 => true, + 4823 => true, + 4881 => true, + 4886 => true, + 4887 => true, + 4955 => true, + 4956 => true, + 4989 => true, + 4990 => true, + 4991 => true, + 5018 => true, + 5019 => true, + 5020 => true, + 5021 => true, + 5022 => true, + 5023 => true, + 5110 => true, + 5111 => true, + 5118 => true, + 5119 => true, + 5760 => true, + 5789 => true, + 5790 => true, + 5791 => true, + 5881 => true, + 5882 => true, + 5883 => true, + 5884 => true, + 5885 => true, + 5886 => true, + 5887 => true, + 5901 => true, + 5909 => true, + 5910 => true, + 5911 => true, + 5912 => true, + 5913 => true, + 5914 => true, + 5915 => true, + 5916 => true, + 5917 => true, + 5918 => true, + 5919 => true, + 5943 => true, + 5944 => true, + 5945 => true, + 5946 => true, + 5947 => true, + 5948 => true, + 5949 => true, + 5950 => true, + 5951 => true, + 5972 => true, + 5973 => true, + 5974 => true, + 5975 => true, + 5976 => true, + 5977 => true, + 5978 => true, + 5979 => true, + 5980 => true, + 5981 => true, + 5982 => true, + 5983 => true, + 5997 => true, + 6001 => true, + 6004 => true, + 6005 => true, + 6006 => true, + 6007 => true, + 6008 => true, + 6009 => true, + 6010 => true, + 6011 => true, + 6012 => true, + 6013 => true, + 6014 => true, + 6015 => true, + 6068 => true, + 6069 => true, + 6110 => true, + 6111 => true, + 6122 => true, + 6123 => true, + 6124 => true, + 6125 => true, + 6126 => true, + 6127 => true, + 6138 => true, + 6139 => true, + 6140 => true, + 6141 => true, + 6142 => true, + 6143 => true, + 6150 => true, + 6158 => true, + 6159 => true, + 6170 => true, + 6171 => true, + 6172 => true, + 6173 => true, + 6174 => true, + 6175 => true, + 6265 => true, + 6266 => true, + 6267 => true, + 6268 => true, + 6269 => true, + 6270 => true, + 6271 => true, + 6315 => true, + 6316 => true, + 6317 => true, + 6318 => true, + 6319 => true, + 6390 => true, + 6391 => true, + 6392 => true, + 6393 => true, + 6394 => true, + 6395 => true, + 6396 => true, + 6397 => true, + 6398 => true, + 6399 => true, + 6431 => true, + 6444 => true, + 6445 => true, + 6446 => true, + 6447 => true, + 6460 => true, + 6461 => true, + 6462 => true, + 6463 => true, + 6465 => true, + 6466 => true, + 6467 => true, + 6510 => true, + 6511 => true, + 6517 => true, + 6518 => true, + 6519 => true, + 6520 => true, + 6521 => true, + 6522 => true, + 6523 => true, + 6524 => true, + 6525 => true, + 6526 => true, + 6527 => true, + 6572 => true, + 6573 => true, + 6574 => true, + 6575 => true, + 6602 => true, + 6603 => true, + 6604 => true, + 6605 => true, + 6606 => true, + 6607 => true, + 6619 => true, + 6620 => true, + 6621 => true, + 6684 => true, + 6685 => true, + 6751 => true, + 6781 => true, + 6782 => true, + 6794 => true, + 6795 => true, + 6796 => true, + 6797 => true, + 6798 => true, + 6799 => true, + 6810 => true, + 6811 => true, + 6812 => true, + 6813 => true, + 6814 => true, + 6815 => true, + 6830 => true, + 6831 => true, + 6988 => true, + 6989 => true, + 6990 => true, + 6991 => true, + 7037 => true, + 7038 => true, + 7039 => true, + 7156 => true, + 7157 => true, + 7158 => true, + 7159 => true, + 7160 => true, + 7161 => true, + 7162 => true, + 7163 => true, + 7224 => true, + 7225 => true, + 7226 => true, + 7242 => true, + 7243 => true, + 7244 => true, + 7305 => true, + 7306 => true, + 7307 => true, + 7308 => true, + 7309 => true, + 7310 => true, + 7311 => true, + 7355 => true, + 7356 => true, + 7368 => true, + 7369 => true, + 7370 => true, + 7371 => true, + 7372 => true, + 7373 => true, + 7374 => true, + 7375 => true, + 7419 => true, + 7420 => true, + 7421 => true, + 7422 => true, + 7423 => true, + 7674 => true, + 7958 => true, + 7959 => true, + 7966 => true, + 7967 => true, + 8006 => true, + 8007 => true, + 8014 => true, + 8015 => true, + 8024 => true, + 8026 => true, + 8028 => true, + 8030 => true, + 8062 => true, + 8063 => true, + 8117 => true, + 8133 => true, + 8148 => true, + 8149 => true, + 8156 => true, + 8176 => true, + 8177 => true, + 8181 => true, + 8191 => true, + 8206 => true, + 8207 => true, + 8228 => true, + 8229 => true, + 8230 => true, + 8232 => true, + 8233 => true, + 8234 => true, + 8235 => true, + 8236 => true, + 8237 => true, + 8238 => true, + 8289 => true, + 8290 => true, + 8291 => true, + 8293 => true, + 8294 => true, + 8295 => true, + 8296 => true, + 8297 => true, + 8298 => true, + 8299 => true, + 8300 => true, + 8301 => true, + 8302 => true, + 8303 => true, + 8306 => true, + 8307 => true, + 8335 => true, + 8349 => true, + 8350 => true, + 8351 => true, + 8384 => true, + 8385 => true, + 8386 => true, + 8387 => true, + 8388 => true, + 8389 => true, + 8390 => true, + 8391 => true, + 8392 => true, + 8393 => true, + 8394 => true, + 8395 => true, + 8396 => true, + 8397 => true, + 8398 => true, + 8399 => true, + 8433 => true, + 8434 => true, + 8435 => true, + 8436 => true, + 8437 => true, + 8438 => true, + 8439 => true, + 8440 => true, + 8441 => true, + 8442 => true, + 8443 => true, + 8444 => true, + 8445 => true, + 8446 => true, + 8447 => true, + 8498 => true, + 8579 => true, + 8588 => true, + 8589 => true, + 8590 => true, + 8591 => true, + 9255 => true, + 9256 => true, + 9257 => true, + 9258 => true, + 9259 => true, + 9260 => true, + 9261 => true, + 9262 => true, + 9263 => true, + 9264 => true, + 9265 => true, + 9266 => true, + 9267 => true, + 9268 => true, + 9269 => true, + 9270 => true, + 9271 => true, + 9272 => true, + 9273 => true, + 9274 => true, + 9275 => true, + 9276 => true, + 9277 => true, + 9278 => true, + 9279 => true, + 9291 => true, + 9292 => true, + 9293 => true, + 9294 => true, + 9295 => true, + 9296 => true, + 9297 => true, + 9298 => true, + 9299 => true, + 9300 => true, + 9301 => true, + 9302 => true, + 9303 => true, + 9304 => true, + 9305 => true, + 9306 => true, + 9307 => true, + 9308 => true, + 9309 => true, + 9310 => true, + 9311 => true, + 9352 => true, + 9353 => true, + 9354 => true, + 9355 => true, + 9356 => true, + 9357 => true, + 9358 => true, + 9359 => true, + 9360 => true, + 9361 => true, + 9362 => true, + 9363 => true, + 9364 => true, + 9365 => true, + 9366 => true, + 9367 => true, + 9368 => true, + 9369 => true, + 9370 => true, + 9371 => true, + 11124 => true, + 11125 => true, + 11158 => true, + 11311 => true, + 11359 => true, + 11508 => true, + 11509 => true, + 11510 => true, + 11511 => true, + 11512 => true, + 11558 => true, + 11560 => true, + 11561 => true, + 11562 => true, + 11563 => true, + 11564 => true, + 11566 => true, + 11567 => true, + 11624 => true, + 11625 => true, + 11626 => true, + 11627 => true, + 11628 => true, + 11629 => true, + 11630 => true, + 11633 => true, + 11634 => true, + 11635 => true, + 11636 => true, + 11637 => true, + 11638 => true, + 11639 => true, + 11640 => true, + 11641 => true, + 11642 => true, + 11643 => true, + 11644 => true, + 11645 => true, + 11646 => true, + 11671 => true, + 11672 => true, + 11673 => true, + 11674 => true, + 11675 => true, + 11676 => true, + 11677 => true, + 11678 => true, + 11679 => true, + 11687 => true, + 11695 => true, + 11703 => true, + 11711 => true, + 11719 => true, + 11727 => true, + 11735 => true, + 11743 => true, + 11930 => true, + 12020 => true, + 12021 => true, + 12022 => true, + 12023 => true, + 12024 => true, + 12025 => true, + 12026 => true, + 12027 => true, + 12028 => true, + 12029 => true, + 12030 => true, + 12031 => true, + 12246 => true, + 12247 => true, + 12248 => true, + 12249 => true, + 12250 => true, + 12251 => true, + 12252 => true, + 12253 => true, + 12254 => true, + 12255 => true, + 12256 => true, + 12257 => true, + 12258 => true, + 12259 => true, + 12260 => true, + 12261 => true, + 12262 => true, + 12263 => true, + 12264 => true, + 12265 => true, + 12266 => true, + 12267 => true, + 12268 => true, + 12269 => true, + 12270 => true, + 12271 => true, + 12272 => true, + 12273 => true, + 12274 => true, + 12275 => true, + 12276 => true, + 12277 => true, + 12278 => true, + 12279 => true, + 12280 => true, + 12281 => true, + 12282 => true, + 12283 => true, + 12284 => true, + 12285 => true, + 12286 => true, + 12287 => true, + 12352 => true, + 12439 => true, + 12440 => true, + 12544 => true, + 12545 => true, + 12546 => true, + 12547 => true, + 12548 => true, + 12592 => true, + 12644 => true, + 12687 => true, + 12772 => true, + 12773 => true, + 12774 => true, + 12775 => true, + 12776 => true, + 12777 => true, + 12778 => true, + 12779 => true, + 12780 => true, + 12781 => true, + 12782 => true, + 12783 => true, + 12831 => true, + 13250 => true, + 13255 => true, + 13272 => true, + 40957 => true, + 40958 => true, + 40959 => true, + 42125 => true, + 42126 => true, + 42127 => true, + 42183 => true, + 42184 => true, + 42185 => true, + 42186 => true, + 42187 => true, + 42188 => true, + 42189 => true, + 42190 => true, + 42191 => true, + 42540 => true, + 42541 => true, + 42542 => true, + 42543 => true, + 42544 => true, + 42545 => true, + 42546 => true, + 42547 => true, + 42548 => true, + 42549 => true, + 42550 => true, + 42551 => true, + 42552 => true, + 42553 => true, + 42554 => true, + 42555 => true, + 42556 => true, + 42557 => true, + 42558 => true, + 42559 => true, + 42744 => true, + 42745 => true, + 42746 => true, + 42747 => true, + 42748 => true, + 42749 => true, + 42750 => true, + 42751 => true, + 42944 => true, + 42945 => true, + 43053 => true, + 43054 => true, + 43055 => true, + 43066 => true, + 43067 => true, + 43068 => true, + 43069 => true, + 43070 => true, + 43071 => true, + 43128 => true, + 43129 => true, + 43130 => true, + 43131 => true, + 43132 => true, + 43133 => true, + 43134 => true, + 43135 => true, + 43206 => true, + 43207 => true, + 43208 => true, + 43209 => true, + 43210 => true, + 43211 => true, + 43212 => true, + 43213 => true, + 43226 => true, + 43227 => true, + 43228 => true, + 43229 => true, + 43230 => true, + 43231 => true, + 43348 => true, + 43349 => true, + 43350 => true, + 43351 => true, + 43352 => true, + 43353 => true, + 43354 => true, + 43355 => true, + 43356 => true, + 43357 => true, + 43358 => true, + 43389 => true, + 43390 => true, + 43391 => true, + 43470 => true, + 43482 => true, + 43483 => true, + 43484 => true, + 43485 => true, + 43519 => true, + 43575 => true, + 43576 => true, + 43577 => true, + 43578 => true, + 43579 => true, + 43580 => true, + 43581 => true, + 43582 => true, + 43583 => true, + 43598 => true, + 43599 => true, + 43610 => true, + 43611 => true, + 43715 => true, + 43716 => true, + 43717 => true, + 43718 => true, + 43719 => true, + 43720 => true, + 43721 => true, + 43722 => true, + 43723 => true, + 43724 => true, + 43725 => true, + 43726 => true, + 43727 => true, + 43728 => true, + 43729 => true, + 43730 => true, + 43731 => true, + 43732 => true, + 43733 => true, + 43734 => true, + 43735 => true, + 43736 => true, + 43737 => true, + 43738 => true, + 43767 => true, + 43768 => true, + 43769 => true, + 43770 => true, + 43771 => true, + 43772 => true, + 43773 => true, + 43774 => true, + 43775 => true, + 43776 => true, + 43783 => true, + 43784 => true, + 43791 => true, + 43792 => true, + 43799 => true, + 43800 => true, + 43801 => true, + 43802 => true, + 43803 => true, + 43804 => true, + 43805 => true, + 43806 => true, + 43807 => true, + 43815 => true, + 43823 => true, + 43884 => true, + 43885 => true, + 43886 => true, + 43887 => true, + 44014 => true, + 44015 => true, + 44026 => true, + 44027 => true, + 44028 => true, + 44029 => true, + 44030 => true, + 44031 => true, + 55204 => true, + 55205 => true, + 55206 => true, + 55207 => true, + 55208 => true, + 55209 => true, + 55210 => true, + 55211 => true, + 55212 => true, + 55213 => true, + 55214 => true, + 55215 => true, + 55239 => true, + 55240 => true, + 55241 => true, + 55242 => true, + 55292 => true, + 55293 => true, + 55294 => true, + 55295 => true, + 64110 => true, + 64111 => true, + 64263 => true, + 64264 => true, + 64265 => true, + 64266 => true, + 64267 => true, + 64268 => true, + 64269 => true, + 64270 => true, + 64271 => true, + 64272 => true, + 64273 => true, + 64274 => true, + 64280 => true, + 64281 => true, + 64282 => true, + 64283 => true, + 64284 => true, + 64311 => true, + 64317 => true, + 64319 => true, + 64322 => true, + 64325 => true, + 64450 => true, + 64451 => true, + 64452 => true, + 64453 => true, + 64454 => true, + 64455 => true, + 64456 => true, + 64457 => true, + 64458 => true, + 64459 => true, + 64460 => true, + 64461 => true, + 64462 => true, + 64463 => true, + 64464 => true, + 64465 => true, + 64466 => true, + 64832 => true, + 64833 => true, + 64834 => true, + 64835 => true, + 64836 => true, + 64837 => true, + 64838 => true, + 64839 => true, + 64840 => true, + 64841 => true, + 64842 => true, + 64843 => true, + 64844 => true, + 64845 => true, + 64846 => true, + 64847 => true, + 64912 => true, + 64913 => true, + 64968 => true, + 64969 => true, + 64970 => true, + 64971 => true, + 64972 => true, + 64973 => true, + 64974 => true, + 64975 => true, + 65022 => true, + 65023 => true, + 65042 => true, + 65049 => true, + 65050 => true, + 65051 => true, + 65052 => true, + 65053 => true, + 65054 => true, + 65055 => true, + 65072 => true, + 65106 => true, + 65107 => true, + 65127 => true, + 65132 => true, + 65133 => true, + 65134 => true, + 65135 => true, + 65141 => true, + 65277 => true, + 65278 => true, + 65280 => true, + 65440 => true, + 65471 => true, + 65472 => true, + 65473 => true, + 65480 => true, + 65481 => true, + 65488 => true, + 65489 => true, + 65496 => true, + 65497 => true, + 65501 => true, + 65502 => true, + 65503 => true, + 65511 => true, + 65519 => true, + 65520 => true, + 65521 => true, + 65522 => true, + 65523 => true, + 65524 => true, + 65525 => true, + 65526 => true, + 65527 => true, + 65528 => true, + 65529 => true, + 65530 => true, + 65531 => true, + 65532 => true, + 65533 => true, + 65534 => true, + 65535 => true, + 65548 => true, + 65575 => true, + 65595 => true, + 65598 => true, + 65614 => true, + 65615 => true, + 65787 => true, + 65788 => true, + 65789 => true, + 65790 => true, + 65791 => true, + 65795 => true, + 65796 => true, + 65797 => true, + 65798 => true, + 65844 => true, + 65845 => true, + 65846 => true, + 65935 => true, + 65949 => true, + 65950 => true, + 65951 => true, + 66205 => true, + 66206 => true, + 66207 => true, + 66257 => true, + 66258 => true, + 66259 => true, + 66260 => true, + 66261 => true, + 66262 => true, + 66263 => true, + 66264 => true, + 66265 => true, + 66266 => true, + 66267 => true, + 66268 => true, + 66269 => true, + 66270 => true, + 66271 => true, + 66300 => true, + 66301 => true, + 66302 => true, + 66303 => true, + 66340 => true, + 66341 => true, + 66342 => true, + 66343 => true, + 66344 => true, + 66345 => true, + 66346 => true, + 66347 => true, + 66348 => true, + 66379 => true, + 66380 => true, + 66381 => true, + 66382 => true, + 66383 => true, + 66427 => true, + 66428 => true, + 66429 => true, + 66430 => true, + 66431 => true, + 66462 => true, + 66500 => true, + 66501 => true, + 66502 => true, + 66503 => true, + 66718 => true, + 66719 => true, + 66730 => true, + 66731 => true, + 66732 => true, + 66733 => true, + 66734 => true, + 66735 => true, + 66772 => true, + 66773 => true, + 66774 => true, + 66775 => true, + 66812 => true, + 66813 => true, + 66814 => true, + 66815 => true, + 66856 => true, + 66857 => true, + 66858 => true, + 66859 => true, + 66860 => true, + 66861 => true, + 66862 => true, + 66863 => true, + 66916 => true, + 66917 => true, + 66918 => true, + 66919 => true, + 66920 => true, + 66921 => true, + 66922 => true, + 66923 => true, + 66924 => true, + 66925 => true, + 66926 => true, + 67383 => true, + 67384 => true, + 67385 => true, + 67386 => true, + 67387 => true, + 67388 => true, + 67389 => true, + 67390 => true, + 67391 => true, + 67414 => true, + 67415 => true, + 67416 => true, + 67417 => true, + 67418 => true, + 67419 => true, + 67420 => true, + 67421 => true, + 67422 => true, + 67423 => true, + 67590 => true, + 67591 => true, + 67593 => true, + 67638 => true, + 67641 => true, + 67642 => true, + 67643 => true, + 67645 => true, + 67646 => true, + 67670 => true, + 67743 => true, + 67744 => true, + 67745 => true, + 67746 => true, + 67747 => true, + 67748 => true, + 67749 => true, + 67750 => true, + 67827 => true, + 67830 => true, + 67831 => true, + 67832 => true, + 67833 => true, + 67834 => true, + 67868 => true, + 67869 => true, + 67870 => true, + 67898 => true, + 67899 => true, + 67900 => true, + 67901 => true, + 67902 => true, + 68024 => true, + 68025 => true, + 68026 => true, + 68027 => true, + 68048 => true, + 68049 => true, + 68100 => true, + 68103 => true, + 68104 => true, + 68105 => true, + 68106 => true, + 68107 => true, + 68116 => true, + 68120 => true, + 68150 => true, + 68151 => true, + 68155 => true, + 68156 => true, + 68157 => true, + 68158 => true, + 68169 => true, + 68170 => true, + 68171 => true, + 68172 => true, + 68173 => true, + 68174 => true, + 68175 => true, + 68185 => true, + 68186 => true, + 68187 => true, + 68188 => true, + 68189 => true, + 68190 => true, + 68191 => true, + 68327 => true, + 68328 => true, + 68329 => true, + 68330 => true, + 68343 => true, + 68344 => true, + 68345 => true, + 68346 => true, + 68347 => true, + 68348 => true, + 68349 => true, + 68350 => true, + 68351 => true, + 68406 => true, + 68407 => true, + 68408 => true, + 68438 => true, + 68439 => true, + 68467 => true, + 68468 => true, + 68469 => true, + 68470 => true, + 68471 => true, + 68498 => true, + 68499 => true, + 68500 => true, + 68501 => true, + 68502 => true, + 68503 => true, + 68504 => true, + 68509 => true, + 68510 => true, + 68511 => true, + 68512 => true, + 68513 => true, + 68514 => true, + 68515 => true, + 68516 => true, + 68517 => true, + 68518 => true, + 68519 => true, + 68520 => true, + 68787 => true, + 68788 => true, + 68789 => true, + 68790 => true, + 68791 => true, + 68792 => true, + 68793 => true, + 68794 => true, + 68795 => true, + 68796 => true, + 68797 => true, + 68798 => true, + 68799 => true, + 68851 => true, + 68852 => true, + 68853 => true, + 68854 => true, + 68855 => true, + 68856 => true, + 68857 => true, + 68904 => true, + 68905 => true, + 68906 => true, + 68907 => true, + 68908 => true, + 68909 => true, + 68910 => true, + 68911 => true, + 69247 => true, + 69290 => true, + 69294 => true, + 69295 => true, + 69416 => true, + 69417 => true, + 69418 => true, + 69419 => true, + 69420 => true, + 69421 => true, + 69422 => true, + 69423 => true, + 69580 => true, + 69581 => true, + 69582 => true, + 69583 => true, + 69584 => true, + 69585 => true, + 69586 => true, + 69587 => true, + 69588 => true, + 69589 => true, + 69590 => true, + 69591 => true, + 69592 => true, + 69593 => true, + 69594 => true, + 69595 => true, + 69596 => true, + 69597 => true, + 69598 => true, + 69599 => true, + 69623 => true, + 69624 => true, + 69625 => true, + 69626 => true, + 69627 => true, + 69628 => true, + 69629 => true, + 69630 => true, + 69631 => true, + 69710 => true, + 69711 => true, + 69712 => true, + 69713 => true, + 69744 => true, + 69745 => true, + 69746 => true, + 69747 => true, + 69748 => true, + 69749 => true, + 69750 => true, + 69751 => true, + 69752 => true, + 69753 => true, + 69754 => true, + 69755 => true, + 69756 => true, + 69757 => true, + 69758 => true, + 69821 => true, + 69826 => true, + 69827 => true, + 69828 => true, + 69829 => true, + 69830 => true, + 69831 => true, + 69832 => true, + 69833 => true, + 69834 => true, + 69835 => true, + 69836 => true, + 69837 => true, + 69838 => true, + 69839 => true, + 69865 => true, + 69866 => true, + 69867 => true, + 69868 => true, + 69869 => true, + 69870 => true, + 69871 => true, + 69882 => true, + 69883 => true, + 69884 => true, + 69885 => true, + 69886 => true, + 69887 => true, + 69941 => true, + 69960 => true, + 69961 => true, + 69962 => true, + 69963 => true, + 69964 => true, + 69965 => true, + 69966 => true, + 69967 => true, + 70007 => true, + 70008 => true, + 70009 => true, + 70010 => true, + 70011 => true, + 70012 => true, + 70013 => true, + 70014 => true, + 70015 => true, + 70112 => true, + 70133 => true, + 70134 => true, + 70135 => true, + 70136 => true, + 70137 => true, + 70138 => true, + 70139 => true, + 70140 => true, + 70141 => true, + 70142 => true, + 70143 => true, + 70162 => true, + 70279 => true, + 70281 => true, + 70286 => true, + 70302 => true, + 70314 => true, + 70315 => true, + 70316 => true, + 70317 => true, + 70318 => true, + 70319 => true, + 70379 => true, + 70380 => true, + 70381 => true, + 70382 => true, + 70383 => true, + 70394 => true, + 70395 => true, + 70396 => true, + 70397 => true, + 70398 => true, + 70399 => true, + 70404 => true, + 70413 => true, + 70414 => true, + 70417 => true, + 70418 => true, + 70441 => true, + 70449 => true, + 70452 => true, + 70458 => true, + 70469 => true, + 70470 => true, + 70473 => true, + 70474 => true, + 70478 => true, + 70479 => true, + 70481 => true, + 70482 => true, + 70483 => true, + 70484 => true, + 70485 => true, + 70486 => true, + 70488 => true, + 70489 => true, + 70490 => true, + 70491 => true, + 70492 => true, + 70500 => true, + 70501 => true, + 70509 => true, + 70510 => true, + 70511 => true, + 70748 => true, + 70754 => true, + 70755 => true, + 70756 => true, + 70757 => true, + 70758 => true, + 70759 => true, + 70760 => true, + 70761 => true, + 70762 => true, + 70763 => true, + 70764 => true, + 70765 => true, + 70766 => true, + 70767 => true, + 70768 => true, + 70769 => true, + 70770 => true, + 70771 => true, + 70772 => true, + 70773 => true, + 70774 => true, + 70775 => true, + 70776 => true, + 70777 => true, + 70778 => true, + 70779 => true, + 70780 => true, + 70781 => true, + 70782 => true, + 70783 => true, + 70856 => true, + 70857 => true, + 70858 => true, + 70859 => true, + 70860 => true, + 70861 => true, + 70862 => true, + 70863 => true, + 71094 => true, + 71095 => true, + 71237 => true, + 71238 => true, + 71239 => true, + 71240 => true, + 71241 => true, + 71242 => true, + 71243 => true, + 71244 => true, + 71245 => true, + 71246 => true, + 71247 => true, + 71258 => true, + 71259 => true, + 71260 => true, + 71261 => true, + 71262 => true, + 71263 => true, + 71277 => true, + 71278 => true, + 71279 => true, + 71280 => true, + 71281 => true, + 71282 => true, + 71283 => true, + 71284 => true, + 71285 => true, + 71286 => true, + 71287 => true, + 71288 => true, + 71289 => true, + 71290 => true, + 71291 => true, + 71292 => true, + 71293 => true, + 71294 => true, + 71295 => true, + 71353 => true, + 71354 => true, + 71355 => true, + 71356 => true, + 71357 => true, + 71358 => true, + 71359 => true, + 71451 => true, + 71452 => true, + 71468 => true, + 71469 => true, + 71470 => true, + 71471 => true, + 71923 => true, + 71924 => true, + 71925 => true, + 71926 => true, + 71927 => true, + 71928 => true, + 71929 => true, + 71930 => true, + 71931 => true, + 71932 => true, + 71933 => true, + 71934 => true, + 71943 => true, + 71944 => true, + 71946 => true, + 71947 => true, + 71956 => true, + 71959 => true, + 71990 => true, + 71993 => true, + 71994 => true, + 72007 => true, + 72008 => true, + 72009 => true, + 72010 => true, + 72011 => true, + 72012 => true, + 72013 => true, + 72014 => true, + 72015 => true, + 72104 => true, + 72105 => true, + 72152 => true, + 72153 => true, + 72165 => true, + 72166 => true, + 72167 => true, + 72168 => true, + 72169 => true, + 72170 => true, + 72171 => true, + 72172 => true, + 72173 => true, + 72174 => true, + 72175 => true, + 72176 => true, + 72177 => true, + 72178 => true, + 72179 => true, + 72180 => true, + 72181 => true, + 72182 => true, + 72183 => true, + 72184 => true, + 72185 => true, + 72186 => true, + 72187 => true, + 72188 => true, + 72189 => true, + 72190 => true, + 72191 => true, + 72264 => true, + 72265 => true, + 72266 => true, + 72267 => true, + 72268 => true, + 72269 => true, + 72270 => true, + 72271 => true, + 72355 => true, + 72356 => true, + 72357 => true, + 72358 => true, + 72359 => true, + 72360 => true, + 72361 => true, + 72362 => true, + 72363 => true, + 72364 => true, + 72365 => true, + 72366 => true, + 72367 => true, + 72368 => true, + 72369 => true, + 72370 => true, + 72371 => true, + 72372 => true, + 72373 => true, + 72374 => true, + 72375 => true, + 72376 => true, + 72377 => true, + 72378 => true, + 72379 => true, + 72380 => true, + 72381 => true, + 72382 => true, + 72383 => true, + 72713 => true, + 72759 => true, + 72774 => true, + 72775 => true, + 72776 => true, + 72777 => true, + 72778 => true, + 72779 => true, + 72780 => true, + 72781 => true, + 72782 => true, + 72783 => true, + 72813 => true, + 72814 => true, + 72815 => true, + 72848 => true, + 72849 => true, + 72872 => true, + 72967 => true, + 72970 => true, + 73015 => true, + 73016 => true, + 73017 => true, + 73019 => true, + 73022 => true, + 73032 => true, + 73033 => true, + 73034 => true, + 73035 => true, + 73036 => true, + 73037 => true, + 73038 => true, + 73039 => true, + 73050 => true, + 73051 => true, + 73052 => true, + 73053 => true, + 73054 => true, + 73055 => true, + 73062 => true, + 73065 => true, + 73103 => true, + 73106 => true, + 73113 => true, + 73114 => true, + 73115 => true, + 73116 => true, + 73117 => true, + 73118 => true, + 73119 => true, + 73649 => true, + 73650 => true, + 73651 => true, + 73652 => true, + 73653 => true, + 73654 => true, + 73655 => true, + 73656 => true, + 73657 => true, + 73658 => true, + 73659 => true, + 73660 => true, + 73661 => true, + 73662 => true, + 73663 => true, + 73714 => true, + 73715 => true, + 73716 => true, + 73717 => true, + 73718 => true, + 73719 => true, + 73720 => true, + 73721 => true, + 73722 => true, + 73723 => true, + 73724 => true, + 73725 => true, + 73726 => true, + 74863 => true, + 74869 => true, + 74870 => true, + 74871 => true, + 74872 => true, + 74873 => true, + 74874 => true, + 74875 => true, + 74876 => true, + 74877 => true, + 74878 => true, + 74879 => true, + 78895 => true, + 78896 => true, + 78897 => true, + 78898 => true, + 78899 => true, + 78900 => true, + 78901 => true, + 78902 => true, + 78903 => true, + 78904 => true, + 92729 => true, + 92730 => true, + 92731 => true, + 92732 => true, + 92733 => true, + 92734 => true, + 92735 => true, + 92767 => true, + 92778 => true, + 92779 => true, + 92780 => true, + 92781 => true, + 92910 => true, + 92911 => true, + 92918 => true, + 92919 => true, + 92920 => true, + 92921 => true, + 92922 => true, + 92923 => true, + 92924 => true, + 92925 => true, + 92926 => true, + 92927 => true, + 92998 => true, + 92999 => true, + 93000 => true, + 93001 => true, + 93002 => true, + 93003 => true, + 93004 => true, + 93005 => true, + 93006 => true, + 93007 => true, + 93018 => true, + 93026 => true, + 93048 => true, + 93049 => true, + 93050 => true, + 93051 => true, + 93052 => true, + 94027 => true, + 94028 => true, + 94029 => true, + 94030 => true, + 94088 => true, + 94089 => true, + 94090 => true, + 94091 => true, + 94092 => true, + 94093 => true, + 94094 => true, + 94181 => true, + 94182 => true, + 94183 => true, + 94184 => true, + 94185 => true, + 94186 => true, + 94187 => true, + 94188 => true, + 94189 => true, + 94190 => true, + 94191 => true, + 94194 => true, + 94195 => true, + 94196 => true, + 94197 => true, + 94198 => true, + 94199 => true, + 94200 => true, + 94201 => true, + 94202 => true, + 94203 => true, + 94204 => true, + 94205 => true, + 94206 => true, + 94207 => true, + 100344 => true, + 100345 => true, + 100346 => true, + 100347 => true, + 100348 => true, + 100349 => true, + 100350 => true, + 100351 => true, + 110931 => true, + 110932 => true, + 110933 => true, + 110934 => true, + 110935 => true, + 110936 => true, + 110937 => true, + 110938 => true, + 110939 => true, + 110940 => true, + 110941 => true, + 110942 => true, + 110943 => true, + 110944 => true, + 110945 => true, + 110946 => true, + 110947 => true, + 110952 => true, + 110953 => true, + 110954 => true, + 110955 => true, + 110956 => true, + 110957 => true, + 110958 => true, + 110959 => true, + 113771 => true, + 113772 => true, + 113773 => true, + 113774 => true, + 113775 => true, + 113789 => true, + 113790 => true, + 113791 => true, + 113801 => true, + 113802 => true, + 113803 => true, + 113804 => true, + 113805 => true, + 113806 => true, + 113807 => true, + 113818 => true, + 113819 => true, + 119030 => true, + 119031 => true, + 119032 => true, + 119033 => true, + 119034 => true, + 119035 => true, + 119036 => true, + 119037 => true, + 119038 => true, + 119039 => true, + 119079 => true, + 119080 => true, + 119155 => true, + 119156 => true, + 119157 => true, + 119158 => true, + 119159 => true, + 119160 => true, + 119161 => true, + 119162 => true, + 119273 => true, + 119274 => true, + 119275 => true, + 119276 => true, + 119277 => true, + 119278 => true, + 119279 => true, + 119280 => true, + 119281 => true, + 119282 => true, + 119283 => true, + 119284 => true, + 119285 => true, + 119286 => true, + 119287 => true, + 119288 => true, + 119289 => true, + 119290 => true, + 119291 => true, + 119292 => true, + 119293 => true, + 119294 => true, + 119295 => true, + 119540 => true, + 119541 => true, + 119542 => true, + 119543 => true, + 119544 => true, + 119545 => true, + 119546 => true, + 119547 => true, + 119548 => true, + 119549 => true, + 119550 => true, + 119551 => true, + 119639 => true, + 119640 => true, + 119641 => true, + 119642 => true, + 119643 => true, + 119644 => true, + 119645 => true, + 119646 => true, + 119647 => true, + 119893 => true, + 119965 => true, + 119968 => true, + 119969 => true, + 119971 => true, + 119972 => true, + 119975 => true, + 119976 => true, + 119981 => true, + 119994 => true, + 119996 => true, + 120004 => true, + 120070 => true, + 120075 => true, + 120076 => true, + 120085 => true, + 120093 => true, + 120122 => true, + 120127 => true, + 120133 => true, + 120135 => true, + 120136 => true, + 120137 => true, + 120145 => true, + 120486 => true, + 120487 => true, + 120780 => true, + 120781 => true, + 121484 => true, + 121485 => true, + 121486 => true, + 121487 => true, + 121488 => true, + 121489 => true, + 121490 => true, + 121491 => true, + 121492 => true, + 121493 => true, + 121494 => true, + 121495 => true, + 121496 => true, + 121497 => true, + 121498 => true, + 121504 => true, + 122887 => true, + 122905 => true, + 122906 => true, + 122914 => true, + 122917 => true, + 123181 => true, + 123182 => true, + 123183 => true, + 123198 => true, + 123199 => true, + 123210 => true, + 123211 => true, + 123212 => true, + 123213 => true, + 123642 => true, + 123643 => true, + 123644 => true, + 123645 => true, + 123646 => true, + 125125 => true, + 125126 => true, + 125260 => true, + 125261 => true, + 125262 => true, + 125263 => true, + 125274 => true, + 125275 => true, + 125276 => true, + 125277 => true, + 126468 => true, + 126496 => true, + 126499 => true, + 126501 => true, + 126502 => true, + 126504 => true, + 126515 => true, + 126520 => true, + 126522 => true, + 126524 => true, + 126525 => true, + 126526 => true, + 126527 => true, + 126528 => true, + 126529 => true, + 126531 => true, + 126532 => true, + 126533 => true, + 126534 => true, + 126536 => true, + 126538 => true, + 126540 => true, + 126544 => true, + 126547 => true, + 126549 => true, + 126550 => true, + 126552 => true, + 126554 => true, + 126556 => true, + 126558 => true, + 126560 => true, + 126563 => true, + 126565 => true, + 126566 => true, + 126571 => true, + 126579 => true, + 126584 => true, + 126589 => true, + 126591 => true, + 126602 => true, + 126620 => true, + 126621 => true, + 126622 => true, + 126623 => true, + 126624 => true, + 126628 => true, + 126634 => true, + 127020 => true, + 127021 => true, + 127022 => true, + 127023 => true, + 127124 => true, + 127125 => true, + 127126 => true, + 127127 => true, + 127128 => true, + 127129 => true, + 127130 => true, + 127131 => true, + 127132 => true, + 127133 => true, + 127134 => true, + 127135 => true, + 127151 => true, + 127152 => true, + 127168 => true, + 127184 => true, + 127222 => true, + 127223 => true, + 127224 => true, + 127225 => true, + 127226 => true, + 127227 => true, + 127228 => true, + 127229 => true, + 127230 => true, + 127231 => true, + 127232 => true, + 127491 => true, + 127492 => true, + 127493 => true, + 127494 => true, + 127495 => true, + 127496 => true, + 127497 => true, + 127498 => true, + 127499 => true, + 127500 => true, + 127501 => true, + 127502 => true, + 127503 => true, + 127548 => true, + 127549 => true, + 127550 => true, + 127551 => true, + 127561 => true, + 127562 => true, + 127563 => true, + 127564 => true, + 127565 => true, + 127566 => true, + 127567 => true, + 127570 => true, + 127571 => true, + 127572 => true, + 127573 => true, + 127574 => true, + 127575 => true, + 127576 => true, + 127577 => true, + 127578 => true, + 127579 => true, + 127580 => true, + 127581 => true, + 127582 => true, + 127583 => true, + 128728 => true, + 128729 => true, + 128730 => true, + 128731 => true, + 128732 => true, + 128733 => true, + 128734 => true, + 128735 => true, + 128749 => true, + 128750 => true, + 128751 => true, + 128765 => true, + 128766 => true, + 128767 => true, + 128884 => true, + 128885 => true, + 128886 => true, + 128887 => true, + 128888 => true, + 128889 => true, + 128890 => true, + 128891 => true, + 128892 => true, + 128893 => true, + 128894 => true, + 128895 => true, + 128985 => true, + 128986 => true, + 128987 => true, + 128988 => true, + 128989 => true, + 128990 => true, + 128991 => true, + 129004 => true, + 129005 => true, + 129006 => true, + 129007 => true, + 129008 => true, + 129009 => true, + 129010 => true, + 129011 => true, + 129012 => true, + 129013 => true, + 129014 => true, + 129015 => true, + 129016 => true, + 129017 => true, + 129018 => true, + 129019 => true, + 129020 => true, + 129021 => true, + 129022 => true, + 129023 => true, + 129036 => true, + 129037 => true, + 129038 => true, + 129039 => true, + 129096 => true, + 129097 => true, + 129098 => true, + 129099 => true, + 129100 => true, + 129101 => true, + 129102 => true, + 129103 => true, + 129114 => true, + 129115 => true, + 129116 => true, + 129117 => true, + 129118 => true, + 129119 => true, + 129160 => true, + 129161 => true, + 129162 => true, + 129163 => true, + 129164 => true, + 129165 => true, + 129166 => true, + 129167 => true, + 129198 => true, + 129199 => true, + 129401 => true, + 129484 => true, + 129620 => true, + 129621 => true, + 129622 => true, + 129623 => true, + 129624 => true, + 129625 => true, + 129626 => true, + 129627 => true, + 129628 => true, + 129629 => true, + 129630 => true, + 129631 => true, + 129646 => true, + 129647 => true, + 129653 => true, + 129654 => true, + 129655 => true, + 129659 => true, + 129660 => true, + 129661 => true, + 129662 => true, + 129663 => true, + 129671 => true, + 129672 => true, + 129673 => true, + 129674 => true, + 129675 => true, + 129676 => true, + 129677 => true, + 129678 => true, + 129679 => true, + 129705 => true, + 129706 => true, + 129707 => true, + 129708 => true, + 129709 => true, + 129710 => true, + 129711 => true, + 129719 => true, + 129720 => true, + 129721 => true, + 129722 => true, + 129723 => true, + 129724 => true, + 129725 => true, + 129726 => true, + 129727 => true, + 129731 => true, + 129732 => true, + 129733 => true, + 129734 => true, + 129735 => true, + 129736 => true, + 129737 => true, + 129738 => true, + 129739 => true, + 129740 => true, + 129741 => true, + 129742 => true, + 129743 => true, + 129939 => true, + 131070 => true, + 131071 => true, + 177973 => true, + 177974 => true, + 177975 => true, + 177976 => true, + 177977 => true, + 177978 => true, + 177979 => true, + 177980 => true, + 177981 => true, + 177982 => true, + 177983 => true, + 178206 => true, + 178207 => true, + 183970 => true, + 183971 => true, + 183972 => true, + 183973 => true, + 183974 => true, + 183975 => true, + 183976 => true, + 183977 => true, + 183978 => true, + 183979 => true, + 183980 => true, + 183981 => true, + 183982 => true, + 183983 => true, + 194664 => true, + 194676 => true, + 194847 => true, + 194911 => true, + 195007 => true, + 196606 => true, + 196607 => true, + 262142 => true, + 262143 => true, + 327678 => true, + 327679 => true, + 393214 => true, + 393215 => true, + 458750 => true, + 458751 => true, + 524286 => true, + 524287 => true, + 589822 => true, + 589823 => true, + 655358 => true, + 655359 => true, + 720894 => true, + 720895 => true, + 786430 => true, + 786431 => true, + 851966 => true, + 851967 => true, + 917502 => true, + 917503 => true, + 917504 => true, + 917505 => true, + 917506 => true, + 917507 => true, + 917508 => true, + 917509 => true, + 917510 => true, + 917511 => true, + 917512 => true, + 917513 => true, + 917514 => true, + 917515 => true, + 917516 => true, + 917517 => true, + 917518 => true, + 917519 => true, + 917520 => true, + 917521 => true, + 917522 => true, + 917523 => true, + 917524 => true, + 917525 => true, + 917526 => true, + 917527 => true, + 917528 => true, + 917529 => true, + 917530 => true, + 917531 => true, + 917532 => true, + 917533 => true, + 917534 => true, + 917535 => true, + 983038 => true, + 983039 => true, + 1048574 => true, + 1048575 => true, + 1114110 => true, + 1114111 => true, +); diff --git a/user/plugins/email/vendor/symfony/polyfill-intl-idn/Resources/unidata/disallowed_STD3_mapped.php b/user/plugins/email/vendor/symfony/polyfill-intl-idn/Resources/unidata/disallowed_STD3_mapped.php new file mode 100644 index 0000000..54f21cc --- /dev/null +++ b/user/plugins/email/vendor/symfony/polyfill-intl-idn/Resources/unidata/disallowed_STD3_mapped.php @@ -0,0 +1,308 @@ + ' ', + 168 => ' ̈', + 175 => ' ̄', + 180 => ' ́', + 184 => ' ̧', + 728 => ' ̆', + 729 => ' ̇', + 730 => ' ̊', + 731 => ' ̨', + 732 => ' ̃', + 733 => ' ̋', + 890 => ' ι', + 894 => ';', + 900 => ' ́', + 901 => ' ̈́', + 8125 => ' ̓', + 8127 => ' ̓', + 8128 => ' ͂', + 8129 => ' ̈͂', + 8141 => ' ̓̀', + 8142 => ' ̓́', + 8143 => ' ̓͂', + 8157 => ' ̔̀', + 8158 => ' ̔́', + 8159 => ' ̔͂', + 8173 => ' ̈̀', + 8174 => ' ̈́', + 8175 => '`', + 8189 => ' ́', + 8190 => ' ̔', + 8192 => ' ', + 8193 => ' ', + 8194 => ' ', + 8195 => ' ', + 8196 => ' ', + 8197 => ' ', + 8198 => ' ', + 8199 => ' ', + 8200 => ' ', + 8201 => ' ', + 8202 => ' ', + 8215 => ' ̳', + 8239 => ' ', + 8252 => '!!', + 8254 => ' ̅', + 8263 => '??', + 8264 => '?!', + 8265 => '!?', + 8287 => ' ', + 8314 => '+', + 8316 => '=', + 8317 => '(', + 8318 => ')', + 8330 => '+', + 8332 => '=', + 8333 => '(', + 8334 => ')', + 8448 => 'a/c', + 8449 => 'a/s', + 8453 => 'c/o', + 8454 => 'c/u', + 9332 => '(1)', + 9333 => '(2)', + 9334 => '(3)', + 9335 => '(4)', + 9336 => '(5)', + 9337 => '(6)', + 9338 => '(7)', + 9339 => '(8)', + 9340 => '(9)', + 9341 => '(10)', + 9342 => '(11)', + 9343 => '(12)', + 9344 => '(13)', + 9345 => '(14)', + 9346 => '(15)', + 9347 => '(16)', + 9348 => '(17)', + 9349 => '(18)', + 9350 => '(19)', + 9351 => '(20)', + 9372 => '(a)', + 9373 => '(b)', + 9374 => '(c)', + 9375 => '(d)', + 9376 => '(e)', + 9377 => '(f)', + 9378 => '(g)', + 9379 => '(h)', + 9380 => '(i)', + 9381 => '(j)', + 9382 => '(k)', + 9383 => '(l)', + 9384 => '(m)', + 9385 => '(n)', + 9386 => '(o)', + 9387 => '(p)', + 9388 => '(q)', + 9389 => '(r)', + 9390 => '(s)', + 9391 => '(t)', + 9392 => '(u)', + 9393 => '(v)', + 9394 => '(w)', + 9395 => '(x)', + 9396 => '(y)', + 9397 => '(z)', + 10868 => '::=', + 10869 => '==', + 10870 => '===', + 12288 => ' ', + 12443 => ' ゙', + 12444 => ' ゚', + 12800 => '(ᄀ)', + 12801 => '(ᄂ)', + 12802 => '(ᄃ)', + 12803 => '(ᄅ)', + 12804 => '(ᄆ)', + 12805 => '(ᄇ)', + 12806 => '(ᄉ)', + 12807 => '(ᄋ)', + 12808 => '(ᄌ)', + 12809 => '(ᄎ)', + 12810 => '(ᄏ)', + 12811 => '(ᄐ)', + 12812 => '(ᄑ)', + 12813 => '(ᄒ)', + 12814 => '(가)', + 12815 => '(나)', + 12816 => '(다)', + 12817 => '(라)', + 12818 => '(마)', + 12819 => '(바)', + 12820 => '(사)', + 12821 => '(아)', + 12822 => '(자)', + 12823 => '(차)', + 12824 => '(카)', + 12825 => '(타)', + 12826 => '(파)', + 12827 => '(하)', + 12828 => '(주)', + 12829 => '(오전)', + 12830 => '(오후)', + 12832 => '(一)', + 12833 => '(二)', + 12834 => '(三)', + 12835 => '(四)', + 12836 => '(五)', + 12837 => '(六)', + 12838 => '(七)', + 12839 => '(八)', + 12840 => '(九)', + 12841 => '(十)', + 12842 => '(月)', + 12843 => '(火)', + 12844 => '(水)', + 12845 => '(木)', + 12846 => '(金)', + 12847 => '(土)', + 12848 => '(日)', + 12849 => '(株)', + 12850 => '(有)', + 12851 => '(社)', + 12852 => '(名)', + 12853 => '(特)', + 12854 => '(財)', + 12855 => '(祝)', + 12856 => '(労)', + 12857 => '(代)', + 12858 => '(呼)', + 12859 => '(学)', + 12860 => '(監)', + 12861 => '(企)', + 12862 => '(資)', + 12863 => '(協)', + 12864 => '(祭)', + 12865 => '(休)', + 12866 => '(自)', + 12867 => '(至)', + 64297 => '+', + 64606 => ' ٌّ', + 64607 => ' ٍّ', + 64608 => ' َّ', + 64609 => ' ُّ', + 64610 => ' ِّ', + 64611 => ' ّٰ', + 65018 => 'صلى الله عليه وسلم', + 65019 => 'جل جلاله', + 65040 => ',', + 65043 => ':', + 65044 => ';', + 65045 => '!', + 65046 => '?', + 65075 => '_', + 65076 => '_', + 65077 => '(', + 65078 => ')', + 65079 => '{', + 65080 => '}', + 65095 => '[', + 65096 => ']', + 65097 => ' ̅', + 65098 => ' ̅', + 65099 => ' ̅', + 65100 => ' ̅', + 65101 => '_', + 65102 => '_', + 65103 => '_', + 65104 => ',', + 65108 => ';', + 65109 => ':', + 65110 => '?', + 65111 => '!', + 65113 => '(', + 65114 => ')', + 65115 => '{', + 65116 => '}', + 65119 => '#', + 65120 => '&', + 65121 => '*', + 65122 => '+', + 65124 => '<', + 65125 => '>', + 65126 => '=', + 65128 => '\\', + 65129 => '$', + 65130 => '%', + 65131 => '@', + 65136 => ' ً', + 65138 => ' ٌ', + 65140 => ' ٍ', + 65142 => ' َ', + 65144 => ' ُ', + 65146 => ' ِ', + 65148 => ' ّ', + 65150 => ' ْ', + 65281 => '!', + 65282 => '"', + 65283 => '#', + 65284 => '$', + 65285 => '%', + 65286 => '&', + 65287 => '\'', + 65288 => '(', + 65289 => ')', + 65290 => '*', + 65291 => '+', + 65292 => ',', + 65295 => '/', + 65306 => ':', + 65307 => ';', + 65308 => '<', + 65309 => '=', + 65310 => '>', + 65311 => '?', + 65312 => '@', + 65339 => '[', + 65340 => '\\', + 65341 => ']', + 65342 => '^', + 65343 => '_', + 65344 => '`', + 65371 => '{', + 65372 => '|', + 65373 => '}', + 65374 => '~', + 65507 => ' ̄', + 127233 => '0,', + 127234 => '1,', + 127235 => '2,', + 127236 => '3,', + 127237 => '4,', + 127238 => '5,', + 127239 => '6,', + 127240 => '7,', + 127241 => '8,', + 127242 => '9,', + 127248 => '(a)', + 127249 => '(b)', + 127250 => '(c)', + 127251 => '(d)', + 127252 => '(e)', + 127253 => '(f)', + 127254 => '(g)', + 127255 => '(h)', + 127256 => '(i)', + 127257 => '(j)', + 127258 => '(k)', + 127259 => '(l)', + 127260 => '(m)', + 127261 => '(n)', + 127262 => '(o)', + 127263 => '(p)', + 127264 => '(q)', + 127265 => '(r)', + 127266 => '(s)', + 127267 => '(t)', + 127268 => '(u)', + 127269 => '(v)', + 127270 => '(w)', + 127271 => '(x)', + 127272 => '(y)', + 127273 => '(z)', +); diff --git a/user/plugins/email/vendor/symfony/polyfill-intl-idn/Resources/unidata/disallowed_STD3_valid.php b/user/plugins/email/vendor/symfony/polyfill-intl-idn/Resources/unidata/disallowed_STD3_valid.php new file mode 100644 index 0000000..223396e --- /dev/null +++ b/user/plugins/email/vendor/symfony/polyfill-intl-idn/Resources/unidata/disallowed_STD3_valid.php @@ -0,0 +1,71 @@ + true, + 1 => true, + 2 => true, + 3 => true, + 4 => true, + 5 => true, + 6 => true, + 7 => true, + 8 => true, + 9 => true, + 10 => true, + 11 => true, + 12 => true, + 13 => true, + 14 => true, + 15 => true, + 16 => true, + 17 => true, + 18 => true, + 19 => true, + 20 => true, + 21 => true, + 22 => true, + 23 => true, + 24 => true, + 25 => true, + 26 => true, + 27 => true, + 28 => true, + 29 => true, + 30 => true, + 31 => true, + 32 => true, + 33 => true, + 34 => true, + 35 => true, + 36 => true, + 37 => true, + 38 => true, + 39 => true, + 40 => true, + 41 => true, + 42 => true, + 43 => true, + 44 => true, + 47 => true, + 58 => true, + 59 => true, + 60 => true, + 61 => true, + 62 => true, + 63 => true, + 64 => true, + 91 => true, + 92 => true, + 93 => true, + 94 => true, + 95 => true, + 96 => true, + 123 => true, + 124 => true, + 125 => true, + 126 => true, + 127 => true, + 8800 => true, + 8814 => true, + 8815 => true, +); diff --git a/user/plugins/email/vendor/symfony/polyfill-intl-idn/Resources/unidata/ignored.php b/user/plugins/email/vendor/symfony/polyfill-intl-idn/Resources/unidata/ignored.php new file mode 100644 index 0000000..b377844 --- /dev/null +++ b/user/plugins/email/vendor/symfony/polyfill-intl-idn/Resources/unidata/ignored.php @@ -0,0 +1,273 @@ + true, + 847 => true, + 6155 => true, + 6156 => true, + 6157 => true, + 8203 => true, + 8288 => true, + 8292 => true, + 65024 => true, + 65025 => true, + 65026 => true, + 65027 => true, + 65028 => true, + 65029 => true, + 65030 => true, + 65031 => true, + 65032 => true, + 65033 => true, + 65034 => true, + 65035 => true, + 65036 => true, + 65037 => true, + 65038 => true, + 65039 => true, + 65279 => true, + 113824 => true, + 113825 => true, + 113826 => true, + 113827 => true, + 917760 => true, + 917761 => true, + 917762 => true, + 917763 => true, + 917764 => true, + 917765 => true, + 917766 => true, + 917767 => true, + 917768 => true, + 917769 => true, + 917770 => true, + 917771 => true, + 917772 => true, + 917773 => true, + 917774 => true, + 917775 => true, + 917776 => true, + 917777 => true, + 917778 => true, + 917779 => true, + 917780 => true, + 917781 => true, + 917782 => true, + 917783 => true, + 917784 => true, + 917785 => true, + 917786 => true, + 917787 => true, + 917788 => true, + 917789 => true, + 917790 => true, + 917791 => true, + 917792 => true, + 917793 => true, + 917794 => true, + 917795 => true, + 917796 => true, + 917797 => true, + 917798 => true, + 917799 => true, + 917800 => true, + 917801 => true, + 917802 => true, + 917803 => true, + 917804 => true, + 917805 => true, + 917806 => true, + 917807 => true, + 917808 => true, + 917809 => true, + 917810 => true, + 917811 => true, + 917812 => true, + 917813 => true, + 917814 => true, + 917815 => true, + 917816 => true, + 917817 => true, + 917818 => true, + 917819 => true, + 917820 => true, + 917821 => true, + 917822 => true, + 917823 => true, + 917824 => true, + 917825 => true, + 917826 => true, + 917827 => true, + 917828 => true, + 917829 => true, + 917830 => true, + 917831 => true, + 917832 => true, + 917833 => true, + 917834 => true, + 917835 => true, + 917836 => true, + 917837 => true, + 917838 => true, + 917839 => true, + 917840 => true, + 917841 => true, + 917842 => true, + 917843 => true, + 917844 => true, + 917845 => true, + 917846 => true, + 917847 => true, + 917848 => true, + 917849 => true, + 917850 => true, + 917851 => true, + 917852 => true, + 917853 => true, + 917854 => true, + 917855 => true, + 917856 => true, + 917857 => true, + 917858 => true, + 917859 => true, + 917860 => true, + 917861 => true, + 917862 => true, + 917863 => true, + 917864 => true, + 917865 => true, + 917866 => true, + 917867 => true, + 917868 => true, + 917869 => true, + 917870 => true, + 917871 => true, + 917872 => true, + 917873 => true, + 917874 => true, + 917875 => true, + 917876 => true, + 917877 => true, + 917878 => true, + 917879 => true, + 917880 => true, + 917881 => true, + 917882 => true, + 917883 => true, + 917884 => true, + 917885 => true, + 917886 => true, + 917887 => true, + 917888 => true, + 917889 => true, + 917890 => true, + 917891 => true, + 917892 => true, + 917893 => true, + 917894 => true, + 917895 => true, + 917896 => true, + 917897 => true, + 917898 => true, + 917899 => true, + 917900 => true, + 917901 => true, + 917902 => true, + 917903 => true, + 917904 => true, + 917905 => true, + 917906 => true, + 917907 => true, + 917908 => true, + 917909 => true, + 917910 => true, + 917911 => true, + 917912 => true, + 917913 => true, + 917914 => true, + 917915 => true, + 917916 => true, + 917917 => true, + 917918 => true, + 917919 => true, + 917920 => true, + 917921 => true, + 917922 => true, + 917923 => true, + 917924 => true, + 917925 => true, + 917926 => true, + 917927 => true, + 917928 => true, + 917929 => true, + 917930 => true, + 917931 => true, + 917932 => true, + 917933 => true, + 917934 => true, + 917935 => true, + 917936 => true, + 917937 => true, + 917938 => true, + 917939 => true, + 917940 => true, + 917941 => true, + 917942 => true, + 917943 => true, + 917944 => true, + 917945 => true, + 917946 => true, + 917947 => true, + 917948 => true, + 917949 => true, + 917950 => true, + 917951 => true, + 917952 => true, + 917953 => true, + 917954 => true, + 917955 => true, + 917956 => true, + 917957 => true, + 917958 => true, + 917959 => true, + 917960 => true, + 917961 => true, + 917962 => true, + 917963 => true, + 917964 => true, + 917965 => true, + 917966 => true, + 917967 => true, + 917968 => true, + 917969 => true, + 917970 => true, + 917971 => true, + 917972 => true, + 917973 => true, + 917974 => true, + 917975 => true, + 917976 => true, + 917977 => true, + 917978 => true, + 917979 => true, + 917980 => true, + 917981 => true, + 917982 => true, + 917983 => true, + 917984 => true, + 917985 => true, + 917986 => true, + 917987 => true, + 917988 => true, + 917989 => true, + 917990 => true, + 917991 => true, + 917992 => true, + 917993 => true, + 917994 => true, + 917995 => true, + 917996 => true, + 917997 => true, + 917998 => true, + 917999 => true, +); diff --git a/user/plugins/email/vendor/symfony/polyfill-intl-idn/Resources/unidata/mapped.php b/user/plugins/email/vendor/symfony/polyfill-intl-idn/Resources/unidata/mapped.php new file mode 100644 index 0000000..9b85fe9 --- /dev/null +++ b/user/plugins/email/vendor/symfony/polyfill-intl-idn/Resources/unidata/mapped.php @@ -0,0 +1,5778 @@ + 'a', + 66 => 'b', + 67 => 'c', + 68 => 'd', + 69 => 'e', + 70 => 'f', + 71 => 'g', + 72 => 'h', + 73 => 'i', + 74 => 'j', + 75 => 'k', + 76 => 'l', + 77 => 'm', + 78 => 'n', + 79 => 'o', + 80 => 'p', + 81 => 'q', + 82 => 'r', + 83 => 's', + 84 => 't', + 85 => 'u', + 86 => 'v', + 87 => 'w', + 88 => 'x', + 89 => 'y', + 90 => 'z', + 170 => 'a', + 178 => '2', + 179 => '3', + 181 => 'μ', + 185 => '1', + 186 => 'o', + 188 => '1⁄4', + 189 => '1⁄2', + 190 => '3⁄4', + 192 => 'à', + 193 => 'á', + 194 => 'â', + 195 => 'ã', + 196 => 'ä', + 197 => 'å', + 198 => 'æ', + 199 => 'ç', + 200 => 'è', + 201 => 'é', + 202 => 'ê', + 203 => 'ë', + 204 => 'ì', + 205 => 'í', + 206 => 'î', + 207 => 'ï', + 208 => 'ð', + 209 => 'ñ', + 210 => 'ò', + 211 => 'ó', + 212 => 'ô', + 213 => 'õ', + 214 => 'ö', + 216 => 'ø', + 217 => 'ù', + 218 => 'ú', + 219 => 'û', + 220 => 'ü', + 221 => 'ý', + 222 => 'þ', + 256 => 'ā', + 258 => 'ă', + 260 => 'ą', + 262 => 'ć', + 264 => 'ĉ', + 266 => 'ċ', + 268 => 'č', + 270 => 'ď', + 272 => 'đ', + 274 => 'ē', + 276 => 'ĕ', + 278 => 'ė', + 280 => 'ę', + 282 => 'ě', + 284 => 'ĝ', + 286 => 'ğ', + 288 => 'ġ', + 290 => 'ģ', + 292 => 'ĥ', + 294 => 'ħ', + 296 => 'ĩ', + 298 => 'ī', + 300 => 'ĭ', + 302 => 'į', + 304 => 'i̇', + 306 => 'ij', + 307 => 'ij', + 308 => 'ĵ', + 310 => 'ķ', + 313 => 'ĺ', + 315 => 'ļ', + 317 => 'ľ', + 319 => 'l·', + 320 => 'l·', + 321 => 'ł', + 323 => 'ń', + 325 => 'ņ', + 327 => 'ň', + 329 => 'ʼn', + 330 => 'ŋ', + 332 => 'ō', + 334 => 'ŏ', + 336 => 'ő', + 338 => 'œ', + 340 => 'ŕ', + 342 => 'ŗ', + 344 => 'ř', + 346 => 'ś', + 348 => 'ŝ', + 350 => 'ş', + 352 => 'š', + 354 => 'ţ', + 356 => 'ť', + 358 => 'ŧ', + 360 => 'ũ', + 362 => 'ū', + 364 => 'ŭ', + 366 => 'ů', + 368 => 'ű', + 370 => 'ų', + 372 => 'ŵ', + 374 => 'ŷ', + 376 => 'ÿ', + 377 => 'ź', + 379 => 'ż', + 381 => 'ž', + 383 => 's', + 385 => 'ɓ', + 386 => 'ƃ', + 388 => 'ƅ', + 390 => 'ɔ', + 391 => 'ƈ', + 393 => 'ɖ', + 394 => 'ɗ', + 395 => 'ƌ', + 398 => 'ǝ', + 399 => 'ə', + 400 => 'ɛ', + 401 => 'ƒ', + 403 => 'ɠ', + 404 => 'ɣ', + 406 => 'ɩ', + 407 => 'ɨ', + 408 => 'ƙ', + 412 => 'ɯ', + 413 => 'ɲ', + 415 => 'ɵ', + 416 => 'ơ', + 418 => 'ƣ', + 420 => 'ƥ', + 422 => 'ʀ', + 423 => 'ƨ', + 425 => 'ʃ', + 428 => 'ƭ', + 430 => 'ʈ', + 431 => 'ư', + 433 => 'ʊ', + 434 => 'ʋ', + 435 => 'ƴ', + 437 => 'ƶ', + 439 => 'ʒ', + 440 => 'ƹ', + 444 => 'ƽ', + 452 => 'dž', + 453 => 'dž', + 454 => 'dž', + 455 => 'lj', + 456 => 'lj', + 457 => 'lj', + 458 => 'nj', + 459 => 'nj', + 460 => 'nj', + 461 => 'ǎ', + 463 => 'ǐ', + 465 => 'ǒ', + 467 => 'ǔ', + 469 => 'ǖ', + 471 => 'ǘ', + 473 => 'ǚ', + 475 => 'ǜ', + 478 => 'ǟ', + 480 => 'ǡ', + 482 => 'ǣ', + 484 => 'ǥ', + 486 => 'ǧ', + 488 => 'ǩ', + 490 => 'ǫ', + 492 => 'ǭ', + 494 => 'ǯ', + 497 => 'dz', + 498 => 'dz', + 499 => 'dz', + 500 => 'ǵ', + 502 => 'ƕ', + 503 => 'ƿ', + 504 => 'ǹ', + 506 => 'ǻ', + 508 => 'ǽ', + 510 => 'ǿ', + 512 => 'ȁ', + 514 => 'ȃ', + 516 => 'ȅ', + 518 => 'ȇ', + 520 => 'ȉ', + 522 => 'ȋ', + 524 => 'ȍ', + 526 => 'ȏ', + 528 => 'ȑ', + 530 => 'ȓ', + 532 => 'ȕ', + 534 => 'ȗ', + 536 => 'ș', + 538 => 'ț', + 540 => 'ȝ', + 542 => 'ȟ', + 544 => 'ƞ', + 546 => 'ȣ', + 548 => 'ȥ', + 550 => 'ȧ', + 552 => 'ȩ', + 554 => 'ȫ', + 556 => 'ȭ', + 558 => 'ȯ', + 560 => 'ȱ', + 562 => 'ȳ', + 570 => 'ⱥ', + 571 => 'ȼ', + 573 => 'ƚ', + 574 => 'ⱦ', + 577 => 'ɂ', + 579 => 'ƀ', + 580 => 'ʉ', + 581 => 'ʌ', + 582 => 'ɇ', + 584 => 'ɉ', + 586 => 'ɋ', + 588 => 'ɍ', + 590 => 'ɏ', + 688 => 'h', + 689 => 'ɦ', + 690 => 'j', + 691 => 'r', + 692 => 'ɹ', + 693 => 'ɻ', + 694 => 'ʁ', + 695 => 'w', + 696 => 'y', + 736 => 'ɣ', + 737 => 'l', + 738 => 's', + 739 => 'x', + 740 => 'ʕ', + 832 => '̀', + 833 => '́', + 835 => '̓', + 836 => '̈́', + 837 => 'ι', + 880 => 'ͱ', + 882 => 'ͳ', + 884 => 'ʹ', + 886 => 'ͷ', + 895 => 'ϳ', + 902 => 'ά', + 903 => '·', + 904 => 'έ', + 905 => 'ή', + 906 => 'ί', + 908 => 'ό', + 910 => 'ύ', + 911 => 'ώ', + 913 => 'α', + 914 => 'β', + 915 => 'γ', + 916 => 'δ', + 917 => 'ε', + 918 => 'ζ', + 919 => 'η', + 920 => 'θ', + 921 => 'ι', + 922 => 'κ', + 923 => 'λ', + 924 => 'μ', + 925 => 'ν', + 926 => 'ξ', + 927 => 'ο', + 928 => 'π', + 929 => 'ρ', + 931 => 'σ', + 932 => 'τ', + 933 => 'υ', + 934 => 'φ', + 935 => 'χ', + 936 => 'ψ', + 937 => 'ω', + 938 => 'ϊ', + 939 => 'ϋ', + 975 => 'ϗ', + 976 => 'β', + 977 => 'θ', + 978 => 'υ', + 979 => 'ύ', + 980 => 'ϋ', + 981 => 'φ', + 982 => 'π', + 984 => 'ϙ', + 986 => 'ϛ', + 988 => 'ϝ', + 990 => 'ϟ', + 992 => 'ϡ', + 994 => 'ϣ', + 996 => 'ϥ', + 998 => 'ϧ', + 1000 => 'ϩ', + 1002 => 'ϫ', + 1004 => 'ϭ', + 1006 => 'ϯ', + 1008 => 'κ', + 1009 => 'ρ', + 1010 => 'σ', + 1012 => 'θ', + 1013 => 'ε', + 1015 => 'ϸ', + 1017 => 'σ', + 1018 => 'ϻ', + 1021 => 'ͻ', + 1022 => 'ͼ', + 1023 => 'ͽ', + 1024 => 'ѐ', + 1025 => 'ё', + 1026 => 'ђ', + 1027 => 'ѓ', + 1028 => 'є', + 1029 => 'ѕ', + 1030 => 'і', + 1031 => 'ї', + 1032 => 'ј', + 1033 => 'љ', + 1034 => 'њ', + 1035 => 'ћ', + 1036 => 'ќ', + 1037 => 'ѝ', + 1038 => 'ў', + 1039 => 'џ', + 1040 => 'а', + 1041 => 'б', + 1042 => 'в', + 1043 => 'г', + 1044 => 'д', + 1045 => 'е', + 1046 => 'ж', + 1047 => 'з', + 1048 => 'и', + 1049 => 'й', + 1050 => 'к', + 1051 => 'л', + 1052 => 'м', + 1053 => 'н', + 1054 => 'о', + 1055 => 'п', + 1056 => 'р', + 1057 => 'с', + 1058 => 'т', + 1059 => 'у', + 1060 => 'ф', + 1061 => 'х', + 1062 => 'ц', + 1063 => 'ч', + 1064 => 'ш', + 1065 => 'щ', + 1066 => 'ъ', + 1067 => 'ы', + 1068 => 'ь', + 1069 => 'э', + 1070 => 'ю', + 1071 => 'я', + 1120 => 'ѡ', + 1122 => 'ѣ', + 1124 => 'ѥ', + 1126 => 'ѧ', + 1128 => 'ѩ', + 1130 => 'ѫ', + 1132 => 'ѭ', + 1134 => 'ѯ', + 1136 => 'ѱ', + 1138 => 'ѳ', + 1140 => 'ѵ', + 1142 => 'ѷ', + 1144 => 'ѹ', + 1146 => 'ѻ', + 1148 => 'ѽ', + 1150 => 'ѿ', + 1152 => 'ҁ', + 1162 => 'ҋ', + 1164 => 'ҍ', + 1166 => 'ҏ', + 1168 => 'ґ', + 1170 => 'ғ', + 1172 => 'ҕ', + 1174 => 'җ', + 1176 => 'ҙ', + 1178 => 'қ', + 1180 => 'ҝ', + 1182 => 'ҟ', + 1184 => 'ҡ', + 1186 => 'ң', + 1188 => 'ҥ', + 1190 => 'ҧ', + 1192 => 'ҩ', + 1194 => 'ҫ', + 1196 => 'ҭ', + 1198 => 'ү', + 1200 => 'ұ', + 1202 => 'ҳ', + 1204 => 'ҵ', + 1206 => 'ҷ', + 1208 => 'ҹ', + 1210 => 'һ', + 1212 => 'ҽ', + 1214 => 'ҿ', + 1217 => 'ӂ', + 1219 => 'ӄ', + 1221 => 'ӆ', + 1223 => 'ӈ', + 1225 => 'ӊ', + 1227 => 'ӌ', + 1229 => 'ӎ', + 1232 => 'ӑ', + 1234 => 'ӓ', + 1236 => 'ӕ', + 1238 => 'ӗ', + 1240 => 'ә', + 1242 => 'ӛ', + 1244 => 'ӝ', + 1246 => 'ӟ', + 1248 => 'ӡ', + 1250 => 'ӣ', + 1252 => 'ӥ', + 1254 => 'ӧ', + 1256 => 'ө', + 1258 => 'ӫ', + 1260 => 'ӭ', + 1262 => 'ӯ', + 1264 => 'ӱ', + 1266 => 'ӳ', + 1268 => 'ӵ', + 1270 => 'ӷ', + 1272 => 'ӹ', + 1274 => 'ӻ', + 1276 => 'ӽ', + 1278 => 'ӿ', + 1280 => 'ԁ', + 1282 => 'ԃ', + 1284 => 'ԅ', + 1286 => 'ԇ', + 1288 => 'ԉ', + 1290 => 'ԋ', + 1292 => 'ԍ', + 1294 => 'ԏ', + 1296 => 'ԑ', + 1298 => 'ԓ', + 1300 => 'ԕ', + 1302 => 'ԗ', + 1304 => 'ԙ', + 1306 => 'ԛ', + 1308 => 'ԝ', + 1310 => 'ԟ', + 1312 => 'ԡ', + 1314 => 'ԣ', + 1316 => 'ԥ', + 1318 => 'ԧ', + 1320 => 'ԩ', + 1322 => 'ԫ', + 1324 => 'ԭ', + 1326 => 'ԯ', + 1329 => 'ա', + 1330 => 'բ', + 1331 => 'գ', + 1332 => 'դ', + 1333 => 'ե', + 1334 => 'զ', + 1335 => 'է', + 1336 => 'ը', + 1337 => 'թ', + 1338 => 'ժ', + 1339 => 'ի', + 1340 => 'լ', + 1341 => 'խ', + 1342 => 'ծ', + 1343 => 'կ', + 1344 => 'հ', + 1345 => 'ձ', + 1346 => 'ղ', + 1347 => 'ճ', + 1348 => 'մ', + 1349 => 'յ', + 1350 => 'ն', + 1351 => 'շ', + 1352 => 'ո', + 1353 => 'չ', + 1354 => 'պ', + 1355 => 'ջ', + 1356 => 'ռ', + 1357 => 'ս', + 1358 => 'վ', + 1359 => 'տ', + 1360 => 'ր', + 1361 => 'ց', + 1362 => 'ւ', + 1363 => 'փ', + 1364 => 'ք', + 1365 => 'օ', + 1366 => 'ֆ', + 1415 => 'եւ', + 1653 => 'اٴ', + 1654 => 'وٴ', + 1655 => 'ۇٴ', + 1656 => 'يٴ', + 2392 => 'क़', + 2393 => 'ख़', + 2394 => 'ग़', + 2395 => 'ज़', + 2396 => 'ड़', + 2397 => 'ढ़', + 2398 => 'फ़', + 2399 => 'य़', + 2524 => 'ড়', + 2525 => 'ঢ়', + 2527 => 'য়', + 2611 => 'ਲ਼', + 2614 => 'ਸ਼', + 2649 => 'ਖ਼', + 2650 => 'ਗ਼', + 2651 => 'ਜ਼', + 2654 => 'ਫ਼', + 2908 => 'ଡ଼', + 2909 => 'ଢ଼', + 3635 => 'ํา', + 3763 => 'ໍາ', + 3804 => 'ຫນ', + 3805 => 'ຫມ', + 3852 => '་', + 3907 => 'གྷ', + 3917 => 'ཌྷ', + 3922 => 'དྷ', + 3927 => 'བྷ', + 3932 => 'ཛྷ', + 3945 => 'ཀྵ', + 3955 => 'ཱི', + 3957 => 'ཱུ', + 3958 => 'ྲྀ', + 3959 => 'ྲཱྀ', + 3960 => 'ླྀ', + 3961 => 'ླཱྀ', + 3969 => 'ཱྀ', + 3987 => 'ྒྷ', + 3997 => 'ྜྷ', + 4002 => 'ྡྷ', + 4007 => 'ྦྷ', + 4012 => 'ྫྷ', + 4025 => 'ྐྵ', + 4295 => 'ⴧ', + 4301 => 'ⴭ', + 4348 => 'ნ', + 5112 => 'Ᏸ', + 5113 => 'Ᏹ', + 5114 => 'Ᏺ', + 5115 => 'Ᏻ', + 5116 => 'Ᏼ', + 5117 => 'Ᏽ', + 7296 => 'в', + 7297 => 'д', + 7298 => 'о', + 7299 => 'с', + 7300 => 'т', + 7301 => 'т', + 7302 => 'ъ', + 7303 => 'ѣ', + 7304 => 'ꙋ', + 7312 => 'ა', + 7313 => 'ბ', + 7314 => 'გ', + 7315 => 'დ', + 7316 => 'ე', + 7317 => 'ვ', + 7318 => 'ზ', + 7319 => 'თ', + 7320 => 'ი', + 7321 => 'კ', + 7322 => 'ლ', + 7323 => 'მ', + 7324 => 'ნ', + 7325 => 'ო', + 7326 => 'პ', + 7327 => 'ჟ', + 7328 => 'რ', + 7329 => 'ს', + 7330 => 'ტ', + 7331 => 'უ', + 7332 => 'ფ', + 7333 => 'ქ', + 7334 => 'ღ', + 7335 => 'ყ', + 7336 => 'შ', + 7337 => 'ჩ', + 7338 => 'ც', + 7339 => 'ძ', + 7340 => 'წ', + 7341 => 'ჭ', + 7342 => 'ხ', + 7343 => 'ჯ', + 7344 => 'ჰ', + 7345 => 'ჱ', + 7346 => 'ჲ', + 7347 => 'ჳ', + 7348 => 'ჴ', + 7349 => 'ჵ', + 7350 => 'ჶ', + 7351 => 'ჷ', + 7352 => 'ჸ', + 7353 => 'ჹ', + 7354 => 'ჺ', + 7357 => 'ჽ', + 7358 => 'ჾ', + 7359 => 'ჿ', + 7468 => 'a', + 7469 => 'æ', + 7470 => 'b', + 7472 => 'd', + 7473 => 'e', + 7474 => 'ǝ', + 7475 => 'g', + 7476 => 'h', + 7477 => 'i', + 7478 => 'j', + 7479 => 'k', + 7480 => 'l', + 7481 => 'm', + 7482 => 'n', + 7484 => 'o', + 7485 => 'ȣ', + 7486 => 'p', + 7487 => 'r', + 7488 => 't', + 7489 => 'u', + 7490 => 'w', + 7491 => 'a', + 7492 => 'ɐ', + 7493 => 'ɑ', + 7494 => 'ᴂ', + 7495 => 'b', + 7496 => 'd', + 7497 => 'e', + 7498 => 'ə', + 7499 => 'ɛ', + 7500 => 'ɜ', + 7501 => 'g', + 7503 => 'k', + 7504 => 'm', + 7505 => 'ŋ', + 7506 => 'o', + 7507 => 'ɔ', + 7508 => 'ᴖ', + 7509 => 'ᴗ', + 7510 => 'p', + 7511 => 't', + 7512 => 'u', + 7513 => 'ᴝ', + 7514 => 'ɯ', + 7515 => 'v', + 7516 => 'ᴥ', + 7517 => 'β', + 7518 => 'γ', + 7519 => 'δ', + 7520 => 'φ', + 7521 => 'χ', + 7522 => 'i', + 7523 => 'r', + 7524 => 'u', + 7525 => 'v', + 7526 => 'β', + 7527 => 'γ', + 7528 => 'ρ', + 7529 => 'φ', + 7530 => 'χ', + 7544 => 'н', + 7579 => 'ɒ', + 7580 => 'c', + 7581 => 'ɕ', + 7582 => 'ð', + 7583 => 'ɜ', + 7584 => 'f', + 7585 => 'ɟ', + 7586 => 'ɡ', + 7587 => 'ɥ', + 7588 => 'ɨ', + 7589 => 'ɩ', + 7590 => 'ɪ', + 7591 => 'ᵻ', + 7592 => 'ʝ', + 7593 => 'ɭ', + 7594 => 'ᶅ', + 7595 => 'ʟ', + 7596 => 'ɱ', + 7597 => 'ɰ', + 7598 => 'ɲ', + 7599 => 'ɳ', + 7600 => 'ɴ', + 7601 => 'ɵ', + 7602 => 'ɸ', + 7603 => 'ʂ', + 7604 => 'ʃ', + 7605 => 'ƫ', + 7606 => 'ʉ', + 7607 => 'ʊ', + 7608 => 'ᴜ', + 7609 => 'ʋ', + 7610 => 'ʌ', + 7611 => 'z', + 7612 => 'ʐ', + 7613 => 'ʑ', + 7614 => 'ʒ', + 7615 => 'θ', + 7680 => 'ḁ', + 7682 => 'ḃ', + 7684 => 'ḅ', + 7686 => 'ḇ', + 7688 => 'ḉ', + 7690 => 'ḋ', + 7692 => 'ḍ', + 7694 => 'ḏ', + 7696 => 'ḑ', + 7698 => 'ḓ', + 7700 => 'ḕ', + 7702 => 'ḗ', + 7704 => 'ḙ', + 7706 => 'ḛ', + 7708 => 'ḝ', + 7710 => 'ḟ', + 7712 => 'ḡ', + 7714 => 'ḣ', + 7716 => 'ḥ', + 7718 => 'ḧ', + 7720 => 'ḩ', + 7722 => 'ḫ', + 7724 => 'ḭ', + 7726 => 'ḯ', + 7728 => 'ḱ', + 7730 => 'ḳ', + 7732 => 'ḵ', + 7734 => 'ḷ', + 7736 => 'ḹ', + 7738 => 'ḻ', + 7740 => 'ḽ', + 7742 => 'ḿ', + 7744 => 'ṁ', + 7746 => 'ṃ', + 7748 => 'ṅ', + 7750 => 'ṇ', + 7752 => 'ṉ', + 7754 => 'ṋ', + 7756 => 'ṍ', + 7758 => 'ṏ', + 7760 => 'ṑ', + 7762 => 'ṓ', + 7764 => 'ṕ', + 7766 => 'ṗ', + 7768 => 'ṙ', + 7770 => 'ṛ', + 7772 => 'ṝ', + 7774 => 'ṟ', + 7776 => 'ṡ', + 7778 => 'ṣ', + 7780 => 'ṥ', + 7782 => 'ṧ', + 7784 => 'ṩ', + 7786 => 'ṫ', + 7788 => 'ṭ', + 7790 => 'ṯ', + 7792 => 'ṱ', + 7794 => 'ṳ', + 7796 => 'ṵ', + 7798 => 'ṷ', + 7800 => 'ṹ', + 7802 => 'ṻ', + 7804 => 'ṽ', + 7806 => 'ṿ', + 7808 => 'ẁ', + 7810 => 'ẃ', + 7812 => 'ẅ', + 7814 => 'ẇ', + 7816 => 'ẉ', + 7818 => 'ẋ', + 7820 => 'ẍ', + 7822 => 'ẏ', + 7824 => 'ẑ', + 7826 => 'ẓ', + 7828 => 'ẕ', + 7834 => 'aʾ', + 7835 => 'ṡ', + 7838 => 'ss', + 7840 => 'ạ', + 7842 => 'ả', + 7844 => 'ấ', + 7846 => 'ầ', + 7848 => 'ẩ', + 7850 => 'ẫ', + 7852 => 'ậ', + 7854 => 'ắ', + 7856 => 'ằ', + 7858 => 'ẳ', + 7860 => 'ẵ', + 7862 => 'ặ', + 7864 => 'ẹ', + 7866 => 'ẻ', + 7868 => 'ẽ', + 7870 => 'ế', + 7872 => 'ề', + 7874 => 'ể', + 7876 => 'ễ', + 7878 => 'ệ', + 7880 => 'ỉ', + 7882 => 'ị', + 7884 => 'ọ', + 7886 => 'ỏ', + 7888 => 'ố', + 7890 => 'ồ', + 7892 => 'ổ', + 7894 => 'ỗ', + 7896 => 'ộ', + 7898 => 'ớ', + 7900 => 'ờ', + 7902 => 'ở', + 7904 => 'ỡ', + 7906 => 'ợ', + 7908 => 'ụ', + 7910 => 'ủ', + 7912 => 'ứ', + 7914 => 'ừ', + 7916 => 'ử', + 7918 => 'ữ', + 7920 => 'ự', + 7922 => 'ỳ', + 7924 => 'ỵ', + 7926 => 'ỷ', + 7928 => 'ỹ', + 7930 => 'ỻ', + 7932 => 'ỽ', + 7934 => 'ỿ', + 7944 => 'ἀ', + 7945 => 'ἁ', + 7946 => 'ἂ', + 7947 => 'ἃ', + 7948 => 'ἄ', + 7949 => 'ἅ', + 7950 => 'ἆ', + 7951 => 'ἇ', + 7960 => 'ἐ', + 7961 => 'ἑ', + 7962 => 'ἒ', + 7963 => 'ἓ', + 7964 => 'ἔ', + 7965 => 'ἕ', + 7976 => 'ἠ', + 7977 => 'ἡ', + 7978 => 'ἢ', + 7979 => 'ἣ', + 7980 => 'ἤ', + 7981 => 'ἥ', + 7982 => 'ἦ', + 7983 => 'ἧ', + 7992 => 'ἰ', + 7993 => 'ἱ', + 7994 => 'ἲ', + 7995 => 'ἳ', + 7996 => 'ἴ', + 7997 => 'ἵ', + 7998 => 'ἶ', + 7999 => 'ἷ', + 8008 => 'ὀ', + 8009 => 'ὁ', + 8010 => 'ὂ', + 8011 => 'ὃ', + 8012 => 'ὄ', + 8013 => 'ὅ', + 8025 => 'ὑ', + 8027 => 'ὓ', + 8029 => 'ὕ', + 8031 => 'ὗ', + 8040 => 'ὠ', + 8041 => 'ὡ', + 8042 => 'ὢ', + 8043 => 'ὣ', + 8044 => 'ὤ', + 8045 => 'ὥ', + 8046 => 'ὦ', + 8047 => 'ὧ', + 8049 => 'ά', + 8051 => 'έ', + 8053 => 'ή', + 8055 => 'ί', + 8057 => 'ό', + 8059 => 'ύ', + 8061 => 'ώ', + 8064 => 'ἀι', + 8065 => 'ἁι', + 8066 => 'ἂι', + 8067 => 'ἃι', + 8068 => 'ἄι', + 8069 => 'ἅι', + 8070 => 'ἆι', + 8071 => 'ἇι', + 8072 => 'ἀι', + 8073 => 'ἁι', + 8074 => 'ἂι', + 8075 => 'ἃι', + 8076 => 'ἄι', + 8077 => 'ἅι', + 8078 => 'ἆι', + 8079 => 'ἇι', + 8080 => 'ἠι', + 8081 => 'ἡι', + 8082 => 'ἢι', + 8083 => 'ἣι', + 8084 => 'ἤι', + 8085 => 'ἥι', + 8086 => 'ἦι', + 8087 => 'ἧι', + 8088 => 'ἠι', + 8089 => 'ἡι', + 8090 => 'ἢι', + 8091 => 'ἣι', + 8092 => 'ἤι', + 8093 => 'ἥι', + 8094 => 'ἦι', + 8095 => 'ἧι', + 8096 => 'ὠι', + 8097 => 'ὡι', + 8098 => 'ὢι', + 8099 => 'ὣι', + 8100 => 'ὤι', + 8101 => 'ὥι', + 8102 => 'ὦι', + 8103 => 'ὧι', + 8104 => 'ὠι', + 8105 => 'ὡι', + 8106 => 'ὢι', + 8107 => 'ὣι', + 8108 => 'ὤι', + 8109 => 'ὥι', + 8110 => 'ὦι', + 8111 => 'ὧι', + 8114 => 'ὰι', + 8115 => 'αι', + 8116 => 'άι', + 8119 => 'ᾶι', + 8120 => 'ᾰ', + 8121 => 'ᾱ', + 8122 => 'ὰ', + 8123 => 'ά', + 8124 => 'αι', + 8126 => 'ι', + 8130 => 'ὴι', + 8131 => 'ηι', + 8132 => 'ήι', + 8135 => 'ῆι', + 8136 => 'ὲ', + 8137 => 'έ', + 8138 => 'ὴ', + 8139 => 'ή', + 8140 => 'ηι', + 8147 => 'ΐ', + 8152 => 'ῐ', + 8153 => 'ῑ', + 8154 => 'ὶ', + 8155 => 'ί', + 8163 => 'ΰ', + 8168 => 'ῠ', + 8169 => 'ῡ', + 8170 => 'ὺ', + 8171 => 'ύ', + 8172 => 'ῥ', + 8178 => 'ὼι', + 8179 => 'ωι', + 8180 => 'ώι', + 8183 => 'ῶι', + 8184 => 'ὸ', + 8185 => 'ό', + 8186 => 'ὼ', + 8187 => 'ώ', + 8188 => 'ωι', + 8209 => '‐', + 8243 => '′′', + 8244 => '′′′', + 8246 => '‵‵', + 8247 => '‵‵‵', + 8279 => '′′′′', + 8304 => '0', + 8305 => 'i', + 8308 => '4', + 8309 => '5', + 8310 => '6', + 8311 => '7', + 8312 => '8', + 8313 => '9', + 8315 => '−', + 8319 => 'n', + 8320 => '0', + 8321 => '1', + 8322 => '2', + 8323 => '3', + 8324 => '4', + 8325 => '5', + 8326 => '6', + 8327 => '7', + 8328 => '8', + 8329 => '9', + 8331 => '−', + 8336 => 'a', + 8337 => 'e', + 8338 => 'o', + 8339 => 'x', + 8340 => 'ə', + 8341 => 'h', + 8342 => 'k', + 8343 => 'l', + 8344 => 'm', + 8345 => 'n', + 8346 => 'p', + 8347 => 's', + 8348 => 't', + 8360 => 'rs', + 8450 => 'c', + 8451 => '°c', + 8455 => 'ɛ', + 8457 => '°f', + 8458 => 'g', + 8459 => 'h', + 8460 => 'h', + 8461 => 'h', + 8462 => 'h', + 8463 => 'ħ', + 8464 => 'i', + 8465 => 'i', + 8466 => 'l', + 8467 => 'l', + 8469 => 'n', + 8470 => 'no', + 8473 => 'p', + 8474 => 'q', + 8475 => 'r', + 8476 => 'r', + 8477 => 'r', + 8480 => 'sm', + 8481 => 'tel', + 8482 => 'tm', + 8484 => 'z', + 8486 => 'ω', + 8488 => 'z', + 8490 => 'k', + 8491 => 'å', + 8492 => 'b', + 8493 => 'c', + 8495 => 'e', + 8496 => 'e', + 8497 => 'f', + 8499 => 'm', + 8500 => 'o', + 8501 => 'א', + 8502 => 'ב', + 8503 => 'ג', + 8504 => 'ד', + 8505 => 'i', + 8507 => 'fax', + 8508 => 'π', + 8509 => 'γ', + 8510 => 'γ', + 8511 => 'π', + 8512 => '∑', + 8517 => 'd', + 8518 => 'd', + 8519 => 'e', + 8520 => 'i', + 8521 => 'j', + 8528 => '1⁄7', + 8529 => '1⁄9', + 8530 => '1⁄10', + 8531 => '1⁄3', + 8532 => '2⁄3', + 8533 => '1⁄5', + 8534 => '2⁄5', + 8535 => '3⁄5', + 8536 => '4⁄5', + 8537 => '1⁄6', + 8538 => '5⁄6', + 8539 => '1⁄8', + 8540 => '3⁄8', + 8541 => '5⁄8', + 8542 => '7⁄8', + 8543 => '1⁄', + 8544 => 'i', + 8545 => 'ii', + 8546 => 'iii', + 8547 => 'iv', + 8548 => 'v', + 8549 => 'vi', + 8550 => 'vii', + 8551 => 'viii', + 8552 => 'ix', + 8553 => 'x', + 8554 => 'xi', + 8555 => 'xii', + 8556 => 'l', + 8557 => 'c', + 8558 => 'd', + 8559 => 'm', + 8560 => 'i', + 8561 => 'ii', + 8562 => 'iii', + 8563 => 'iv', + 8564 => 'v', + 8565 => 'vi', + 8566 => 'vii', + 8567 => 'viii', + 8568 => 'ix', + 8569 => 'x', + 8570 => 'xi', + 8571 => 'xii', + 8572 => 'l', + 8573 => 'c', + 8574 => 'd', + 8575 => 'm', + 8585 => '0⁄3', + 8748 => '∫∫', + 8749 => '∫∫∫', + 8751 => '∮∮', + 8752 => '∮∮∮', + 9001 => '〈', + 9002 => '〉', + 9312 => '1', + 9313 => '2', + 9314 => '3', + 9315 => '4', + 9316 => '5', + 9317 => '6', + 9318 => '7', + 9319 => '8', + 9320 => '9', + 9321 => '10', + 9322 => '11', + 9323 => '12', + 9324 => '13', + 9325 => '14', + 9326 => '15', + 9327 => '16', + 9328 => '17', + 9329 => '18', + 9330 => '19', + 9331 => '20', + 9398 => 'a', + 9399 => 'b', + 9400 => 'c', + 9401 => 'd', + 9402 => 'e', + 9403 => 'f', + 9404 => 'g', + 9405 => 'h', + 9406 => 'i', + 9407 => 'j', + 9408 => 'k', + 9409 => 'l', + 9410 => 'm', + 9411 => 'n', + 9412 => 'o', + 9413 => 'p', + 9414 => 'q', + 9415 => 'r', + 9416 => 's', + 9417 => 't', + 9418 => 'u', + 9419 => 'v', + 9420 => 'w', + 9421 => 'x', + 9422 => 'y', + 9423 => 'z', + 9424 => 'a', + 9425 => 'b', + 9426 => 'c', + 9427 => 'd', + 9428 => 'e', + 9429 => 'f', + 9430 => 'g', + 9431 => 'h', + 9432 => 'i', + 9433 => 'j', + 9434 => 'k', + 9435 => 'l', + 9436 => 'm', + 9437 => 'n', + 9438 => 'o', + 9439 => 'p', + 9440 => 'q', + 9441 => 'r', + 9442 => 's', + 9443 => 't', + 9444 => 'u', + 9445 => 'v', + 9446 => 'w', + 9447 => 'x', + 9448 => 'y', + 9449 => 'z', + 9450 => '0', + 10764 => '∫∫∫∫', + 10972 => '⫝̸', + 11264 => 'ⰰ', + 11265 => 'ⰱ', + 11266 => 'ⰲ', + 11267 => 'ⰳ', + 11268 => 'ⰴ', + 11269 => 'ⰵ', + 11270 => 'ⰶ', + 11271 => 'ⰷ', + 11272 => 'ⰸ', + 11273 => 'ⰹ', + 11274 => 'ⰺ', + 11275 => 'ⰻ', + 11276 => 'ⰼ', + 11277 => 'ⰽ', + 11278 => 'ⰾ', + 11279 => 'ⰿ', + 11280 => 'ⱀ', + 11281 => 'ⱁ', + 11282 => 'ⱂ', + 11283 => 'ⱃ', + 11284 => 'ⱄ', + 11285 => 'ⱅ', + 11286 => 'ⱆ', + 11287 => 'ⱇ', + 11288 => 'ⱈ', + 11289 => 'ⱉ', + 11290 => 'ⱊ', + 11291 => 'ⱋ', + 11292 => 'ⱌ', + 11293 => 'ⱍ', + 11294 => 'ⱎ', + 11295 => 'ⱏ', + 11296 => 'ⱐ', + 11297 => 'ⱑ', + 11298 => 'ⱒ', + 11299 => 'ⱓ', + 11300 => 'ⱔ', + 11301 => 'ⱕ', + 11302 => 'ⱖ', + 11303 => 'ⱗ', + 11304 => 'ⱘ', + 11305 => 'ⱙ', + 11306 => 'ⱚ', + 11307 => 'ⱛ', + 11308 => 'ⱜ', + 11309 => 'ⱝ', + 11310 => 'ⱞ', + 11360 => 'ⱡ', + 11362 => 'ɫ', + 11363 => 'ᵽ', + 11364 => 'ɽ', + 11367 => 'ⱨ', + 11369 => 'ⱪ', + 11371 => 'ⱬ', + 11373 => 'ɑ', + 11374 => 'ɱ', + 11375 => 'ɐ', + 11376 => 'ɒ', + 11378 => 'ⱳ', + 11381 => 'ⱶ', + 11388 => 'j', + 11389 => 'v', + 11390 => 'ȿ', + 11391 => 'ɀ', + 11392 => 'ⲁ', + 11394 => 'ⲃ', + 11396 => 'ⲅ', + 11398 => 'ⲇ', + 11400 => 'ⲉ', + 11402 => 'ⲋ', + 11404 => 'ⲍ', + 11406 => 'ⲏ', + 11408 => 'ⲑ', + 11410 => 'ⲓ', + 11412 => 'ⲕ', + 11414 => 'ⲗ', + 11416 => 'ⲙ', + 11418 => 'ⲛ', + 11420 => 'ⲝ', + 11422 => 'ⲟ', + 11424 => 'ⲡ', + 11426 => 'ⲣ', + 11428 => 'ⲥ', + 11430 => 'ⲧ', + 11432 => 'ⲩ', + 11434 => 'ⲫ', + 11436 => 'ⲭ', + 11438 => 'ⲯ', + 11440 => 'ⲱ', + 11442 => 'ⲳ', + 11444 => 'ⲵ', + 11446 => 'ⲷ', + 11448 => 'ⲹ', + 11450 => 'ⲻ', + 11452 => 'ⲽ', + 11454 => 'ⲿ', + 11456 => 'ⳁ', + 11458 => 'ⳃ', + 11460 => 'ⳅ', + 11462 => 'ⳇ', + 11464 => 'ⳉ', + 11466 => 'ⳋ', + 11468 => 'ⳍ', + 11470 => 'ⳏ', + 11472 => 'ⳑ', + 11474 => 'ⳓ', + 11476 => 'ⳕ', + 11478 => 'ⳗ', + 11480 => 'ⳙ', + 11482 => 'ⳛ', + 11484 => 'ⳝ', + 11486 => 'ⳟ', + 11488 => 'ⳡ', + 11490 => 'ⳣ', + 11499 => 'ⳬ', + 11501 => 'ⳮ', + 11506 => 'ⳳ', + 11631 => 'ⵡ', + 11935 => '母', + 12019 => '龟', + 12032 => '一', + 12033 => '丨', + 12034 => '丶', + 12035 => '丿', + 12036 => '乙', + 12037 => '亅', + 12038 => '二', + 12039 => '亠', + 12040 => '人', + 12041 => '儿', + 12042 => '入', + 12043 => '八', + 12044 => '冂', + 12045 => '冖', + 12046 => '冫', + 12047 => '几', + 12048 => '凵', + 12049 => '刀', + 12050 => '力', + 12051 => '勹', + 12052 => '匕', + 12053 => '匚', + 12054 => '匸', + 12055 => '十', + 12056 => '卜', + 12057 => '卩', + 12058 => '厂', + 12059 => '厶', + 12060 => '又', + 12061 => '口', + 12062 => '囗', + 12063 => '土', + 12064 => '士', + 12065 => '夂', + 12066 => '夊', + 12067 => '夕', + 12068 => '大', + 12069 => '女', + 12070 => '子', + 12071 => '宀', + 12072 => '寸', + 12073 => '小', + 12074 => '尢', + 12075 => '尸', + 12076 => '屮', + 12077 => '山', + 12078 => '巛', + 12079 => '工', + 12080 => '己', + 12081 => '巾', + 12082 => '干', + 12083 => '幺', + 12084 => '广', + 12085 => '廴', + 12086 => '廾', + 12087 => '弋', + 12088 => '弓', + 12089 => '彐', + 12090 => '彡', + 12091 => '彳', + 12092 => '心', + 12093 => '戈', + 12094 => '戶', + 12095 => '手', + 12096 => '支', + 12097 => '攴', + 12098 => '文', + 12099 => '斗', + 12100 => '斤', + 12101 => '方', + 12102 => '无', + 12103 => '日', + 12104 => '曰', + 12105 => '月', + 12106 => '木', + 12107 => '欠', + 12108 => '止', + 12109 => '歹', + 12110 => '殳', + 12111 => '毋', + 12112 => '比', + 12113 => '毛', + 12114 => '氏', + 12115 => '气', + 12116 => '水', + 12117 => '火', + 12118 => '爪', + 12119 => '父', + 12120 => '爻', + 12121 => '爿', + 12122 => '片', + 12123 => '牙', + 12124 => '牛', + 12125 => '犬', + 12126 => '玄', + 12127 => '玉', + 12128 => '瓜', + 12129 => '瓦', + 12130 => '甘', + 12131 => '生', + 12132 => '用', + 12133 => '田', + 12134 => '疋', + 12135 => '疒', + 12136 => '癶', + 12137 => '白', + 12138 => '皮', + 12139 => '皿', + 12140 => '目', + 12141 => '矛', + 12142 => '矢', + 12143 => '石', + 12144 => '示', + 12145 => '禸', + 12146 => '禾', + 12147 => '穴', + 12148 => '立', + 12149 => '竹', + 12150 => '米', + 12151 => '糸', + 12152 => '缶', + 12153 => '网', + 12154 => '羊', + 12155 => '羽', + 12156 => '老', + 12157 => '而', + 12158 => '耒', + 12159 => '耳', + 12160 => '聿', + 12161 => '肉', + 12162 => '臣', + 12163 => '自', + 12164 => '至', + 12165 => '臼', + 12166 => '舌', + 12167 => '舛', + 12168 => '舟', + 12169 => '艮', + 12170 => '色', + 12171 => '艸', + 12172 => '虍', + 12173 => '虫', + 12174 => '血', + 12175 => '行', + 12176 => '衣', + 12177 => '襾', + 12178 => '見', + 12179 => '角', + 12180 => '言', + 12181 => '谷', + 12182 => '豆', + 12183 => '豕', + 12184 => '豸', + 12185 => '貝', + 12186 => '赤', + 12187 => '走', + 12188 => '足', + 12189 => '身', + 12190 => '車', + 12191 => '辛', + 12192 => '辰', + 12193 => '辵', + 12194 => '邑', + 12195 => '酉', + 12196 => '釆', + 12197 => '里', + 12198 => '金', + 12199 => '長', + 12200 => '門', + 12201 => '阜', + 12202 => '隶', + 12203 => '隹', + 12204 => '雨', + 12205 => '靑', + 12206 => '非', + 12207 => '面', + 12208 => '革', + 12209 => '韋', + 12210 => '韭', + 12211 => '音', + 12212 => '頁', + 12213 => '風', + 12214 => '飛', + 12215 => '食', + 12216 => '首', + 12217 => '香', + 12218 => '馬', + 12219 => '骨', + 12220 => '高', + 12221 => '髟', + 12222 => '鬥', + 12223 => '鬯', + 12224 => '鬲', + 12225 => '鬼', + 12226 => '魚', + 12227 => '鳥', + 12228 => '鹵', + 12229 => '鹿', + 12230 => '麥', + 12231 => '麻', + 12232 => '黃', + 12233 => '黍', + 12234 => '黑', + 12235 => '黹', + 12236 => '黽', + 12237 => '鼎', + 12238 => '鼓', + 12239 => '鼠', + 12240 => '鼻', + 12241 => '齊', + 12242 => '齒', + 12243 => '龍', + 12244 => '龜', + 12245 => '龠', + 12290 => '.', + 12342 => '〒', + 12344 => '十', + 12345 => '卄', + 12346 => '卅', + 12447 => 'より', + 12543 => 'コト', + 12593 => 'ᄀ', + 12594 => 'ᄁ', + 12595 => 'ᆪ', + 12596 => 'ᄂ', + 12597 => 'ᆬ', + 12598 => 'ᆭ', + 12599 => 'ᄃ', + 12600 => 'ᄄ', + 12601 => 'ᄅ', + 12602 => 'ᆰ', + 12603 => 'ᆱ', + 12604 => 'ᆲ', + 12605 => 'ᆳ', + 12606 => 'ᆴ', + 12607 => 'ᆵ', + 12608 => 'ᄚ', + 12609 => 'ᄆ', + 12610 => 'ᄇ', + 12611 => 'ᄈ', + 12612 => 'ᄡ', + 12613 => 'ᄉ', + 12614 => 'ᄊ', + 12615 => 'ᄋ', + 12616 => 'ᄌ', + 12617 => 'ᄍ', + 12618 => 'ᄎ', + 12619 => 'ᄏ', + 12620 => 'ᄐ', + 12621 => 'ᄑ', + 12622 => 'ᄒ', + 12623 => 'ᅡ', + 12624 => 'ᅢ', + 12625 => 'ᅣ', + 12626 => 'ᅤ', + 12627 => 'ᅥ', + 12628 => 'ᅦ', + 12629 => 'ᅧ', + 12630 => 'ᅨ', + 12631 => 'ᅩ', + 12632 => 'ᅪ', + 12633 => 'ᅫ', + 12634 => 'ᅬ', + 12635 => 'ᅭ', + 12636 => 'ᅮ', + 12637 => 'ᅯ', + 12638 => 'ᅰ', + 12639 => 'ᅱ', + 12640 => 'ᅲ', + 12641 => 'ᅳ', + 12642 => 'ᅴ', + 12643 => 'ᅵ', + 12645 => 'ᄔ', + 12646 => 'ᄕ', + 12647 => 'ᇇ', + 12648 => 'ᇈ', + 12649 => 'ᇌ', + 12650 => 'ᇎ', + 12651 => 'ᇓ', + 12652 => 'ᇗ', + 12653 => 'ᇙ', + 12654 => 'ᄜ', + 12655 => 'ᇝ', + 12656 => 'ᇟ', + 12657 => 'ᄝ', + 12658 => 'ᄞ', + 12659 => 'ᄠ', + 12660 => 'ᄢ', + 12661 => 'ᄣ', + 12662 => 'ᄧ', + 12663 => 'ᄩ', + 12664 => 'ᄫ', + 12665 => 'ᄬ', + 12666 => 'ᄭ', + 12667 => 'ᄮ', + 12668 => 'ᄯ', + 12669 => 'ᄲ', + 12670 => 'ᄶ', + 12671 => 'ᅀ', + 12672 => 'ᅇ', + 12673 => 'ᅌ', + 12674 => 'ᇱ', + 12675 => 'ᇲ', + 12676 => 'ᅗ', + 12677 => 'ᅘ', + 12678 => 'ᅙ', + 12679 => 'ᆄ', + 12680 => 'ᆅ', + 12681 => 'ᆈ', + 12682 => 'ᆑ', + 12683 => 'ᆒ', + 12684 => 'ᆔ', + 12685 => 'ᆞ', + 12686 => 'ᆡ', + 12690 => '一', + 12691 => '二', + 12692 => '三', + 12693 => '四', + 12694 => '上', + 12695 => '中', + 12696 => '下', + 12697 => '甲', + 12698 => '乙', + 12699 => '丙', + 12700 => '丁', + 12701 => '天', + 12702 => '地', + 12703 => '人', + 12868 => '問', + 12869 => '幼', + 12870 => '文', + 12871 => '箏', + 12880 => 'pte', + 12881 => '21', + 12882 => '22', + 12883 => '23', + 12884 => '24', + 12885 => '25', + 12886 => '26', + 12887 => '27', + 12888 => '28', + 12889 => '29', + 12890 => '30', + 12891 => '31', + 12892 => '32', + 12893 => '33', + 12894 => '34', + 12895 => '35', + 12896 => 'ᄀ', + 12897 => 'ᄂ', + 12898 => 'ᄃ', + 12899 => 'ᄅ', + 12900 => 'ᄆ', + 12901 => 'ᄇ', + 12902 => 'ᄉ', + 12903 => 'ᄋ', + 12904 => 'ᄌ', + 12905 => 'ᄎ', + 12906 => 'ᄏ', + 12907 => 'ᄐ', + 12908 => 'ᄑ', + 12909 => 'ᄒ', + 12910 => '가', + 12911 => '나', + 12912 => '다', + 12913 => '라', + 12914 => '마', + 12915 => '바', + 12916 => '사', + 12917 => '아', + 12918 => '자', + 12919 => '차', + 12920 => '카', + 12921 => '타', + 12922 => '파', + 12923 => '하', + 12924 => '참고', + 12925 => '주의', + 12926 => '우', + 12928 => '一', + 12929 => '二', + 12930 => '三', + 12931 => '四', + 12932 => '五', + 12933 => '六', + 12934 => '七', + 12935 => '八', + 12936 => '九', + 12937 => '十', + 12938 => '月', + 12939 => '火', + 12940 => '水', + 12941 => '木', + 12942 => '金', + 12943 => '土', + 12944 => '日', + 12945 => '株', + 12946 => '有', + 12947 => '社', + 12948 => '名', + 12949 => '特', + 12950 => '財', + 12951 => '祝', + 12952 => '労', + 12953 => '秘', + 12954 => '男', + 12955 => '女', + 12956 => '適', + 12957 => '優', + 12958 => '印', + 12959 => '注', + 12960 => '項', + 12961 => '休', + 12962 => '写', + 12963 => '正', + 12964 => '上', + 12965 => '中', + 12966 => '下', + 12967 => '左', + 12968 => '右', + 12969 => '医', + 12970 => '宗', + 12971 => '学', + 12972 => '監', + 12973 => '企', + 12974 => '資', + 12975 => '協', + 12976 => '夜', + 12977 => '36', + 12978 => '37', + 12979 => '38', + 12980 => '39', + 12981 => '40', + 12982 => '41', + 12983 => '42', + 12984 => '43', + 12985 => '44', + 12986 => '45', + 12987 => '46', + 12988 => '47', + 12989 => '48', + 12990 => '49', + 12991 => '50', + 12992 => '1月', + 12993 => '2月', + 12994 => '3月', + 12995 => '4月', + 12996 => '5月', + 12997 => '6月', + 12998 => '7月', + 12999 => '8月', + 13000 => '9月', + 13001 => '10月', + 13002 => '11月', + 13003 => '12月', + 13004 => 'hg', + 13005 => 'erg', + 13006 => 'ev', + 13007 => 'ltd', + 13008 => 'ア', + 13009 => 'イ', + 13010 => 'ウ', + 13011 => 'エ', + 13012 => 'オ', + 13013 => 'カ', + 13014 => 'キ', + 13015 => 'ク', + 13016 => 'ケ', + 13017 => 'コ', + 13018 => 'サ', + 13019 => 'シ', + 13020 => 'ス', + 13021 => 'セ', + 13022 => 'ソ', + 13023 => 'タ', + 13024 => 'チ', + 13025 => 'ツ', + 13026 => 'テ', + 13027 => 'ト', + 13028 => 'ナ', + 13029 => 'ニ', + 13030 => 'ヌ', + 13031 => 'ネ', + 13032 => 'ノ', + 13033 => 'ハ', + 13034 => 'ヒ', + 13035 => 'フ', + 13036 => 'ヘ', + 13037 => 'ホ', + 13038 => 'マ', + 13039 => 'ミ', + 13040 => 'ム', + 13041 => 'メ', + 13042 => 'モ', + 13043 => 'ヤ', + 13044 => 'ユ', + 13045 => 'ヨ', + 13046 => 'ラ', + 13047 => 'リ', + 13048 => 'ル', + 13049 => 'レ', + 13050 => 'ロ', + 13051 => 'ワ', + 13052 => 'ヰ', + 13053 => 'ヱ', + 13054 => 'ヲ', + 13055 => '令和', + 13056 => 'アパート', + 13057 => 'アルファ', + 13058 => 'アンペア', + 13059 => 'アール', + 13060 => 'イニング', + 13061 => 'インチ', + 13062 => 'ウォン', + 13063 => 'エスクード', + 13064 => 'エーカー', + 13065 => 'オンス', + 13066 => 'オーム', + 13067 => 'カイリ', + 13068 => 'カラット', + 13069 => 'カロリー', + 13070 => 'ガロン', + 13071 => 'ガンマ', + 13072 => 'ギガ', + 13073 => 'ギニー', + 13074 => 'キュリー', + 13075 => 'ギルダー', + 13076 => 'キロ', + 13077 => 'キログラム', + 13078 => 'キロメートル', + 13079 => 'キロワット', + 13080 => 'グラム', + 13081 => 'グラムトン', + 13082 => 'クルゼイロ', + 13083 => 'クローネ', + 13084 => 'ケース', + 13085 => 'コルナ', + 13086 => 'コーポ', + 13087 => 'サイクル', + 13088 => 'サンチーム', + 13089 => 'シリング', + 13090 => 'センチ', + 13091 => 'セント', + 13092 => 'ダース', + 13093 => 'デシ', + 13094 => 'ドル', + 13095 => 'トン', + 13096 => 'ナノ', + 13097 => 'ノット', + 13098 => 'ハイツ', + 13099 => 'パーセント', + 13100 => 'パーツ', + 13101 => 'バーレル', + 13102 => 'ピアストル', + 13103 => 'ピクル', + 13104 => 'ピコ', + 13105 => 'ビル', + 13106 => 'ファラッド', + 13107 => 'フィート', + 13108 => 'ブッシェル', + 13109 => 'フラン', + 13110 => 'ヘクタール', + 13111 => 'ペソ', + 13112 => 'ペニヒ', + 13113 => 'ヘルツ', + 13114 => 'ペンス', + 13115 => 'ページ', + 13116 => 'ベータ', + 13117 => 'ポイント', + 13118 => 'ボルト', + 13119 => 'ホン', + 13120 => 'ポンド', + 13121 => 'ホール', + 13122 => 'ホーン', + 13123 => 'マイクロ', + 13124 => 'マイル', + 13125 => 'マッハ', + 13126 => 'マルク', + 13127 => 'マンション', + 13128 => 'ミクロン', + 13129 => 'ミリ', + 13130 => 'ミリバール', + 13131 => 'メガ', + 13132 => 'メガトン', + 13133 => 'メートル', + 13134 => 'ヤード', + 13135 => 'ヤール', + 13136 => 'ユアン', + 13137 => 'リットル', + 13138 => 'リラ', + 13139 => 'ルピー', + 13140 => 'ルーブル', + 13141 => 'レム', + 13142 => 'レントゲン', + 13143 => 'ワット', + 13144 => '0点', + 13145 => '1点', + 13146 => '2点', + 13147 => '3点', + 13148 => '4点', + 13149 => '5点', + 13150 => '6点', + 13151 => '7点', + 13152 => '8点', + 13153 => '9点', + 13154 => '10点', + 13155 => '11点', + 13156 => '12点', + 13157 => '13点', + 13158 => '14点', + 13159 => '15点', + 13160 => '16点', + 13161 => '17点', + 13162 => '18点', + 13163 => '19点', + 13164 => '20点', + 13165 => '21点', + 13166 => '22点', + 13167 => '23点', + 13168 => '24点', + 13169 => 'hpa', + 13170 => 'da', + 13171 => 'au', + 13172 => 'bar', + 13173 => 'ov', + 13174 => 'pc', + 13175 => 'dm', + 13176 => 'dm2', + 13177 => 'dm3', + 13178 => 'iu', + 13179 => '平成', + 13180 => '昭和', + 13181 => '大正', + 13182 => '明治', + 13183 => '株式会社', + 13184 => 'pa', + 13185 => 'na', + 13186 => 'μa', + 13187 => 'ma', + 13188 => 'ka', + 13189 => 'kb', + 13190 => 'mb', + 13191 => 'gb', + 13192 => 'cal', + 13193 => 'kcal', + 13194 => 'pf', + 13195 => 'nf', + 13196 => 'μf', + 13197 => 'μg', + 13198 => 'mg', + 13199 => 'kg', + 13200 => 'hz', + 13201 => 'khz', + 13202 => 'mhz', + 13203 => 'ghz', + 13204 => 'thz', + 13205 => 'μl', + 13206 => 'ml', + 13207 => 'dl', + 13208 => 'kl', + 13209 => 'fm', + 13210 => 'nm', + 13211 => 'μm', + 13212 => 'mm', + 13213 => 'cm', + 13214 => 'km', + 13215 => 'mm2', + 13216 => 'cm2', + 13217 => 'm2', + 13218 => 'km2', + 13219 => 'mm3', + 13220 => 'cm3', + 13221 => 'm3', + 13222 => 'km3', + 13223 => 'm∕s', + 13224 => 'm∕s2', + 13225 => 'pa', + 13226 => 'kpa', + 13227 => 'mpa', + 13228 => 'gpa', + 13229 => 'rad', + 13230 => 'rad∕s', + 13231 => 'rad∕s2', + 13232 => 'ps', + 13233 => 'ns', + 13234 => 'μs', + 13235 => 'ms', + 13236 => 'pv', + 13237 => 'nv', + 13238 => 'μv', + 13239 => 'mv', + 13240 => 'kv', + 13241 => 'mv', + 13242 => 'pw', + 13243 => 'nw', + 13244 => 'μw', + 13245 => 'mw', + 13246 => 'kw', + 13247 => 'mw', + 13248 => 'kω', + 13249 => 'mω', + 13251 => 'bq', + 13252 => 'cc', + 13253 => 'cd', + 13254 => 'c∕kg', + 13256 => 'db', + 13257 => 'gy', + 13258 => 'ha', + 13259 => 'hp', + 13260 => 'in', + 13261 => 'kk', + 13262 => 'km', + 13263 => 'kt', + 13264 => 'lm', + 13265 => 'ln', + 13266 => 'log', + 13267 => 'lx', + 13268 => 'mb', + 13269 => 'mil', + 13270 => 'mol', + 13271 => 'ph', + 13273 => 'ppm', + 13274 => 'pr', + 13275 => 'sr', + 13276 => 'sv', + 13277 => 'wb', + 13278 => 'v∕m', + 13279 => 'a∕m', + 13280 => '1日', + 13281 => '2日', + 13282 => '3日', + 13283 => '4日', + 13284 => '5日', + 13285 => '6日', + 13286 => '7日', + 13287 => '8日', + 13288 => '9日', + 13289 => '10日', + 13290 => '11日', + 13291 => '12日', + 13292 => '13日', + 13293 => '14日', + 13294 => '15日', + 13295 => '16日', + 13296 => '17日', + 13297 => '18日', + 13298 => '19日', + 13299 => '20日', + 13300 => '21日', + 13301 => '22日', + 13302 => '23日', + 13303 => '24日', + 13304 => '25日', + 13305 => '26日', + 13306 => '27日', + 13307 => '28日', + 13308 => '29日', + 13309 => '30日', + 13310 => '31日', + 13311 => 'gal', + 42560 => 'ꙁ', + 42562 => 'ꙃ', + 42564 => 'ꙅ', + 42566 => 'ꙇ', + 42568 => 'ꙉ', + 42570 => 'ꙋ', + 42572 => 'ꙍ', + 42574 => 'ꙏ', + 42576 => 'ꙑ', + 42578 => 'ꙓ', + 42580 => 'ꙕ', + 42582 => 'ꙗ', + 42584 => 'ꙙ', + 42586 => 'ꙛ', + 42588 => 'ꙝ', + 42590 => 'ꙟ', + 42592 => 'ꙡ', + 42594 => 'ꙣ', + 42596 => 'ꙥ', + 42598 => 'ꙧ', + 42600 => 'ꙩ', + 42602 => 'ꙫ', + 42604 => 'ꙭ', + 42624 => 'ꚁ', + 42626 => 'ꚃ', + 42628 => 'ꚅ', + 42630 => 'ꚇ', + 42632 => 'ꚉ', + 42634 => 'ꚋ', + 42636 => 'ꚍ', + 42638 => 'ꚏ', + 42640 => 'ꚑ', + 42642 => 'ꚓ', + 42644 => 'ꚕ', + 42646 => 'ꚗ', + 42648 => 'ꚙ', + 42650 => 'ꚛ', + 42652 => 'ъ', + 42653 => 'ь', + 42786 => 'ꜣ', + 42788 => 'ꜥ', + 42790 => 'ꜧ', + 42792 => 'ꜩ', + 42794 => 'ꜫ', + 42796 => 'ꜭ', + 42798 => 'ꜯ', + 42802 => 'ꜳ', + 42804 => 'ꜵ', + 42806 => 'ꜷ', + 42808 => 'ꜹ', + 42810 => 'ꜻ', + 42812 => 'ꜽ', + 42814 => 'ꜿ', + 42816 => 'ꝁ', + 42818 => 'ꝃ', + 42820 => 'ꝅ', + 42822 => 'ꝇ', + 42824 => 'ꝉ', + 42826 => 'ꝋ', + 42828 => 'ꝍ', + 42830 => 'ꝏ', + 42832 => 'ꝑ', + 42834 => 'ꝓ', + 42836 => 'ꝕ', + 42838 => 'ꝗ', + 42840 => 'ꝙ', + 42842 => 'ꝛ', + 42844 => 'ꝝ', + 42846 => 'ꝟ', + 42848 => 'ꝡ', + 42850 => 'ꝣ', + 42852 => 'ꝥ', + 42854 => 'ꝧ', + 42856 => 'ꝩ', + 42858 => 'ꝫ', + 42860 => 'ꝭ', + 42862 => 'ꝯ', + 42864 => 'ꝯ', + 42873 => 'ꝺ', + 42875 => 'ꝼ', + 42877 => 'ᵹ', + 42878 => 'ꝿ', + 42880 => 'ꞁ', + 42882 => 'ꞃ', + 42884 => 'ꞅ', + 42886 => 'ꞇ', + 42891 => 'ꞌ', + 42893 => 'ɥ', + 42896 => 'ꞑ', + 42898 => 'ꞓ', + 42902 => 'ꞗ', + 42904 => 'ꞙ', + 42906 => 'ꞛ', + 42908 => 'ꞝ', + 42910 => 'ꞟ', + 42912 => 'ꞡ', + 42914 => 'ꞣ', + 42916 => 'ꞥ', + 42918 => 'ꞧ', + 42920 => 'ꞩ', + 42922 => 'ɦ', + 42923 => 'ɜ', + 42924 => 'ɡ', + 42925 => 'ɬ', + 42926 => 'ɪ', + 42928 => 'ʞ', + 42929 => 'ʇ', + 42930 => 'ʝ', + 42931 => 'ꭓ', + 42932 => 'ꞵ', + 42934 => 'ꞷ', + 42936 => 'ꞹ', + 42938 => 'ꞻ', + 42940 => 'ꞽ', + 42942 => 'ꞿ', + 42946 => 'ꟃ', + 42948 => 'ꞔ', + 42949 => 'ʂ', + 42950 => 'ᶎ', + 42951 => 'ꟈ', + 42953 => 'ꟊ', + 42997 => 'ꟶ', + 43000 => 'ħ', + 43001 => 'œ', + 43868 => 'ꜧ', + 43869 => 'ꬷ', + 43870 => 'ɫ', + 43871 => 'ꭒ', + 43881 => 'ʍ', + 43888 => 'Ꭰ', + 43889 => 'Ꭱ', + 43890 => 'Ꭲ', + 43891 => 'Ꭳ', + 43892 => 'Ꭴ', + 43893 => 'Ꭵ', + 43894 => 'Ꭶ', + 43895 => 'Ꭷ', + 43896 => 'Ꭸ', + 43897 => 'Ꭹ', + 43898 => 'Ꭺ', + 43899 => 'Ꭻ', + 43900 => 'Ꭼ', + 43901 => 'Ꭽ', + 43902 => 'Ꭾ', + 43903 => 'Ꭿ', + 43904 => 'Ꮀ', + 43905 => 'Ꮁ', + 43906 => 'Ꮂ', + 43907 => 'Ꮃ', + 43908 => 'Ꮄ', + 43909 => 'Ꮅ', + 43910 => 'Ꮆ', + 43911 => 'Ꮇ', + 43912 => 'Ꮈ', + 43913 => 'Ꮉ', + 43914 => 'Ꮊ', + 43915 => 'Ꮋ', + 43916 => 'Ꮌ', + 43917 => 'Ꮍ', + 43918 => 'Ꮎ', + 43919 => 'Ꮏ', + 43920 => 'Ꮐ', + 43921 => 'Ꮑ', + 43922 => 'Ꮒ', + 43923 => 'Ꮓ', + 43924 => 'Ꮔ', + 43925 => 'Ꮕ', + 43926 => 'Ꮖ', + 43927 => 'Ꮗ', + 43928 => 'Ꮘ', + 43929 => 'Ꮙ', + 43930 => 'Ꮚ', + 43931 => 'Ꮛ', + 43932 => 'Ꮜ', + 43933 => 'Ꮝ', + 43934 => 'Ꮞ', + 43935 => 'Ꮟ', + 43936 => 'Ꮠ', + 43937 => 'Ꮡ', + 43938 => 'Ꮢ', + 43939 => 'Ꮣ', + 43940 => 'Ꮤ', + 43941 => 'Ꮥ', + 43942 => 'Ꮦ', + 43943 => 'Ꮧ', + 43944 => 'Ꮨ', + 43945 => 'Ꮩ', + 43946 => 'Ꮪ', + 43947 => 'Ꮫ', + 43948 => 'Ꮬ', + 43949 => 'Ꮭ', + 43950 => 'Ꮮ', + 43951 => 'Ꮯ', + 43952 => 'Ꮰ', + 43953 => 'Ꮱ', + 43954 => 'Ꮲ', + 43955 => 'Ꮳ', + 43956 => 'Ꮴ', + 43957 => 'Ꮵ', + 43958 => 'Ꮶ', + 43959 => 'Ꮷ', + 43960 => 'Ꮸ', + 43961 => 'Ꮹ', + 43962 => 'Ꮺ', + 43963 => 'Ꮻ', + 43964 => 'Ꮼ', + 43965 => 'Ꮽ', + 43966 => 'Ꮾ', + 43967 => 'Ꮿ', + 63744 => '豈', + 63745 => '更', + 63746 => '車', + 63747 => '賈', + 63748 => '滑', + 63749 => '串', + 63750 => '句', + 63751 => '龜', + 63752 => '龜', + 63753 => '契', + 63754 => '金', + 63755 => '喇', + 63756 => '奈', + 63757 => '懶', + 63758 => '癩', + 63759 => '羅', + 63760 => '蘿', + 63761 => '螺', + 63762 => '裸', + 63763 => '邏', + 63764 => '樂', + 63765 => '洛', + 63766 => '烙', + 63767 => '珞', + 63768 => '落', + 63769 => '酪', + 63770 => '駱', + 63771 => '亂', + 63772 => '卵', + 63773 => '欄', + 63774 => '爛', + 63775 => '蘭', + 63776 => '鸞', + 63777 => '嵐', + 63778 => '濫', + 63779 => '藍', + 63780 => '襤', + 63781 => '拉', + 63782 => '臘', + 63783 => '蠟', + 63784 => '廊', + 63785 => '朗', + 63786 => '浪', + 63787 => '狼', + 63788 => '郎', + 63789 => '來', + 63790 => '冷', + 63791 => '勞', + 63792 => '擄', + 63793 => '櫓', + 63794 => '爐', + 63795 => '盧', + 63796 => '老', + 63797 => '蘆', + 63798 => '虜', + 63799 => '路', + 63800 => '露', + 63801 => '魯', + 63802 => '鷺', + 63803 => '碌', + 63804 => '祿', + 63805 => '綠', + 63806 => '菉', + 63807 => '錄', + 63808 => '鹿', + 63809 => '論', + 63810 => '壟', + 63811 => '弄', + 63812 => '籠', + 63813 => '聾', + 63814 => '牢', + 63815 => '磊', + 63816 => '賂', + 63817 => '雷', + 63818 => '壘', + 63819 => '屢', + 63820 => '樓', + 63821 => '淚', + 63822 => '漏', + 63823 => '累', + 63824 => '縷', + 63825 => '陋', + 63826 => '勒', + 63827 => '肋', + 63828 => '凜', + 63829 => '凌', + 63830 => '稜', + 63831 => '綾', + 63832 => '菱', + 63833 => '陵', + 63834 => '讀', + 63835 => '拏', + 63836 => '樂', + 63837 => '諾', + 63838 => '丹', + 63839 => '寧', + 63840 => '怒', + 63841 => '率', + 63842 => '異', + 63843 => '北', + 63844 => '磻', + 63845 => '便', + 63846 => '復', + 63847 => '不', + 63848 => '泌', + 63849 => '數', + 63850 => '索', + 63851 => '參', + 63852 => '塞', + 63853 => '省', + 63854 => '葉', + 63855 => '說', + 63856 => '殺', + 63857 => '辰', + 63858 => '沈', + 63859 => '拾', + 63860 => '若', + 63861 => '掠', + 63862 => '略', + 63863 => '亮', + 63864 => '兩', + 63865 => '凉', + 63866 => '梁', + 63867 => '糧', + 63868 => '良', + 63869 => '諒', + 63870 => '量', + 63871 => '勵', + 63872 => '呂', + 63873 => '女', + 63874 => '廬', + 63875 => '旅', + 63876 => '濾', + 63877 => '礪', + 63878 => '閭', + 63879 => '驪', + 63880 => '麗', + 63881 => '黎', + 63882 => '力', + 63883 => '曆', + 63884 => '歷', + 63885 => '轢', + 63886 => '年', + 63887 => '憐', + 63888 => '戀', + 63889 => '撚', + 63890 => '漣', + 63891 => '煉', + 63892 => '璉', + 63893 => '秊', + 63894 => '練', + 63895 => '聯', + 63896 => '輦', + 63897 => '蓮', + 63898 => '連', + 63899 => '鍊', + 63900 => '列', + 63901 => '劣', + 63902 => '咽', + 63903 => '烈', + 63904 => '裂', + 63905 => '說', + 63906 => '廉', + 63907 => '念', + 63908 => '捻', + 63909 => '殮', + 63910 => '簾', + 63911 => '獵', + 63912 => '令', + 63913 => '囹', + 63914 => '寧', + 63915 => '嶺', + 63916 => '怜', + 63917 => '玲', + 63918 => '瑩', + 63919 => '羚', + 63920 => '聆', + 63921 => '鈴', + 63922 => '零', + 63923 => '靈', + 63924 => '領', + 63925 => '例', + 63926 => '禮', + 63927 => '醴', + 63928 => '隸', + 63929 => '惡', + 63930 => '了', + 63931 => '僚', + 63932 => '寮', + 63933 => '尿', + 63934 => '料', + 63935 => '樂', + 63936 => '燎', + 63937 => '療', + 63938 => '蓼', + 63939 => '遼', + 63940 => '龍', + 63941 => '暈', + 63942 => '阮', + 63943 => '劉', + 63944 => '杻', + 63945 => '柳', + 63946 => '流', + 63947 => '溜', + 63948 => '琉', + 63949 => '留', + 63950 => '硫', + 63951 => '紐', + 63952 => '類', + 63953 => '六', + 63954 => '戮', + 63955 => '陸', + 63956 => '倫', + 63957 => '崙', + 63958 => '淪', + 63959 => '輪', + 63960 => '律', + 63961 => '慄', + 63962 => '栗', + 63963 => '率', + 63964 => '隆', + 63965 => '利', + 63966 => '吏', + 63967 => '履', + 63968 => '易', + 63969 => '李', + 63970 => '梨', + 63971 => '泥', + 63972 => '理', + 63973 => '痢', + 63974 => '罹', + 63975 => '裏', + 63976 => '裡', + 63977 => '里', + 63978 => '離', + 63979 => '匿', + 63980 => '溺', + 63981 => '吝', + 63982 => '燐', + 63983 => '璘', + 63984 => '藺', + 63985 => '隣', + 63986 => '鱗', + 63987 => '麟', + 63988 => '林', + 63989 => '淋', + 63990 => '臨', + 63991 => '立', + 63992 => '笠', + 63993 => '粒', + 63994 => '狀', + 63995 => '炙', + 63996 => '識', + 63997 => '什', + 63998 => '茶', + 63999 => '刺', + 64000 => '切', + 64001 => '度', + 64002 => '拓', + 64003 => '糖', + 64004 => '宅', + 64005 => '洞', + 64006 => '暴', + 64007 => '輻', + 64008 => '行', + 64009 => '降', + 64010 => '見', + 64011 => '廓', + 64012 => '兀', + 64013 => '嗀', + 64016 => '塚', + 64018 => '晴', + 64021 => '凞', + 64022 => '猪', + 64023 => '益', + 64024 => '礼', + 64025 => '神', + 64026 => '祥', + 64027 => '福', + 64028 => '靖', + 64029 => '精', + 64030 => '羽', + 64032 => '蘒', + 64034 => '諸', + 64037 => '逸', + 64038 => '都', + 64042 => '飯', + 64043 => '飼', + 64044 => '館', + 64045 => '鶴', + 64046 => '郞', + 64047 => '隷', + 64048 => '侮', + 64049 => '僧', + 64050 => '免', + 64051 => '勉', + 64052 => '勤', + 64053 => '卑', + 64054 => '喝', + 64055 => '嘆', + 64056 => '器', + 64057 => '塀', + 64058 => '墨', + 64059 => '層', + 64060 => '屮', + 64061 => '悔', + 64062 => '慨', + 64063 => '憎', + 64064 => '懲', + 64065 => '敏', + 64066 => '既', + 64067 => '暑', + 64068 => '梅', + 64069 => '海', + 64070 => '渚', + 64071 => '漢', + 64072 => '煮', + 64073 => '爫', + 64074 => '琢', + 64075 => '碑', + 64076 => '社', + 64077 => '祉', + 64078 => '祈', + 64079 => '祐', + 64080 => '祖', + 64081 => '祝', + 64082 => '禍', + 64083 => '禎', + 64084 => '穀', + 64085 => '突', + 64086 => '節', + 64087 => '練', + 64088 => '縉', + 64089 => '繁', + 64090 => '署', + 64091 => '者', + 64092 => '臭', + 64093 => '艹', + 64094 => '艹', + 64095 => '著', + 64096 => '褐', + 64097 => '視', + 64098 => '謁', + 64099 => '謹', + 64100 => '賓', + 64101 => '贈', + 64102 => '辶', + 64103 => '逸', + 64104 => '難', + 64105 => '響', + 64106 => '頻', + 64107 => '恵', + 64108 => '𤋮', + 64109 => '舘', + 64112 => '並', + 64113 => '况', + 64114 => '全', + 64115 => '侀', + 64116 => '充', + 64117 => '冀', + 64118 => '勇', + 64119 => '勺', + 64120 => '喝', + 64121 => '啕', + 64122 => '喙', + 64123 => '嗢', + 64124 => '塚', + 64125 => '墳', + 64126 => '奄', + 64127 => '奔', + 64128 => '婢', + 64129 => '嬨', + 64130 => '廒', + 64131 => '廙', + 64132 => '彩', + 64133 => '徭', + 64134 => '惘', + 64135 => '慎', + 64136 => '愈', + 64137 => '憎', + 64138 => '慠', + 64139 => '懲', + 64140 => '戴', + 64141 => '揄', + 64142 => '搜', + 64143 => '摒', + 64144 => '敖', + 64145 => '晴', + 64146 => '朗', + 64147 => '望', + 64148 => '杖', + 64149 => '歹', + 64150 => '殺', + 64151 => '流', + 64152 => '滛', + 64153 => '滋', + 64154 => '漢', + 64155 => '瀞', + 64156 => '煮', + 64157 => '瞧', + 64158 => '爵', + 64159 => '犯', + 64160 => '猪', + 64161 => '瑱', + 64162 => '甆', + 64163 => '画', + 64164 => '瘝', + 64165 => '瘟', + 64166 => '益', + 64167 => '盛', + 64168 => '直', + 64169 => '睊', + 64170 => '着', + 64171 => '磌', + 64172 => '窱', + 64173 => '節', + 64174 => '类', + 64175 => '絛', + 64176 => '練', + 64177 => '缾', + 64178 => '者', + 64179 => '荒', + 64180 => '華', + 64181 => '蝹', + 64182 => '襁', + 64183 => '覆', + 64184 => '視', + 64185 => '調', + 64186 => '諸', + 64187 => '請', + 64188 => '謁', + 64189 => '諾', + 64190 => '諭', + 64191 => '謹', + 64192 => '變', + 64193 => '贈', + 64194 => '輸', + 64195 => '遲', + 64196 => '醙', + 64197 => '鉶', + 64198 => '陼', + 64199 => '難', + 64200 => '靖', + 64201 => '韛', + 64202 => '響', + 64203 => '頋', + 64204 => '頻', + 64205 => '鬒', + 64206 => '龜', + 64207 => '𢡊', + 64208 => '𢡄', + 64209 => '𣏕', + 64210 => '㮝', + 64211 => '䀘', + 64212 => '䀹', + 64213 => '𥉉', + 64214 => '𥳐', + 64215 => '𧻓', + 64216 => '齃', + 64217 => '龎', + 64256 => 'ff', + 64257 => 'fi', + 64258 => 'fl', + 64259 => 'ffi', + 64260 => 'ffl', + 64261 => 'st', + 64262 => 'st', + 64275 => 'մն', + 64276 => 'մե', + 64277 => 'մի', + 64278 => 'վն', + 64279 => 'մխ', + 64285 => 'יִ', + 64287 => 'ײַ', + 64288 => 'ע', + 64289 => 'א', + 64290 => 'ד', + 64291 => 'ה', + 64292 => 'כ', + 64293 => 'ל', + 64294 => 'ם', + 64295 => 'ר', + 64296 => 'ת', + 64298 => 'שׁ', + 64299 => 'שׂ', + 64300 => 'שּׁ', + 64301 => 'שּׂ', + 64302 => 'אַ', + 64303 => 'אָ', + 64304 => 'אּ', + 64305 => 'בּ', + 64306 => 'גּ', + 64307 => 'דּ', + 64308 => 'הּ', + 64309 => 'וּ', + 64310 => 'זּ', + 64312 => 'טּ', + 64313 => 'יּ', + 64314 => 'ךּ', + 64315 => 'כּ', + 64316 => 'לּ', + 64318 => 'מּ', + 64320 => 'נּ', + 64321 => 'סּ', + 64323 => 'ףּ', + 64324 => 'פּ', + 64326 => 'צּ', + 64327 => 'קּ', + 64328 => 'רּ', + 64329 => 'שּ', + 64330 => 'תּ', + 64331 => 'וֹ', + 64332 => 'בֿ', + 64333 => 'כֿ', + 64334 => 'פֿ', + 64335 => 'אל', + 64336 => 'ٱ', + 64337 => 'ٱ', + 64338 => 'ٻ', + 64339 => 'ٻ', + 64340 => 'ٻ', + 64341 => 'ٻ', + 64342 => 'پ', + 64343 => 'پ', + 64344 => 'پ', + 64345 => 'پ', + 64346 => 'ڀ', + 64347 => 'ڀ', + 64348 => 'ڀ', + 64349 => 'ڀ', + 64350 => 'ٺ', + 64351 => 'ٺ', + 64352 => 'ٺ', + 64353 => 'ٺ', + 64354 => 'ٿ', + 64355 => 'ٿ', + 64356 => 'ٿ', + 64357 => 'ٿ', + 64358 => 'ٹ', + 64359 => 'ٹ', + 64360 => 'ٹ', + 64361 => 'ٹ', + 64362 => 'ڤ', + 64363 => 'ڤ', + 64364 => 'ڤ', + 64365 => 'ڤ', + 64366 => 'ڦ', + 64367 => 'ڦ', + 64368 => 'ڦ', + 64369 => 'ڦ', + 64370 => 'ڄ', + 64371 => 'ڄ', + 64372 => 'ڄ', + 64373 => 'ڄ', + 64374 => 'ڃ', + 64375 => 'ڃ', + 64376 => 'ڃ', + 64377 => 'ڃ', + 64378 => 'چ', + 64379 => 'چ', + 64380 => 'چ', + 64381 => 'چ', + 64382 => 'ڇ', + 64383 => 'ڇ', + 64384 => 'ڇ', + 64385 => 'ڇ', + 64386 => 'ڍ', + 64387 => 'ڍ', + 64388 => 'ڌ', + 64389 => 'ڌ', + 64390 => 'ڎ', + 64391 => 'ڎ', + 64392 => 'ڈ', + 64393 => 'ڈ', + 64394 => 'ژ', + 64395 => 'ژ', + 64396 => 'ڑ', + 64397 => 'ڑ', + 64398 => 'ک', + 64399 => 'ک', + 64400 => 'ک', + 64401 => 'ک', + 64402 => 'گ', + 64403 => 'گ', + 64404 => 'گ', + 64405 => 'گ', + 64406 => 'ڳ', + 64407 => 'ڳ', + 64408 => 'ڳ', + 64409 => 'ڳ', + 64410 => 'ڱ', + 64411 => 'ڱ', + 64412 => 'ڱ', + 64413 => 'ڱ', + 64414 => 'ں', + 64415 => 'ں', + 64416 => 'ڻ', + 64417 => 'ڻ', + 64418 => 'ڻ', + 64419 => 'ڻ', + 64420 => 'ۀ', + 64421 => 'ۀ', + 64422 => 'ہ', + 64423 => 'ہ', + 64424 => 'ہ', + 64425 => 'ہ', + 64426 => 'ھ', + 64427 => 'ھ', + 64428 => 'ھ', + 64429 => 'ھ', + 64430 => 'ے', + 64431 => 'ے', + 64432 => 'ۓ', + 64433 => 'ۓ', + 64467 => 'ڭ', + 64468 => 'ڭ', + 64469 => 'ڭ', + 64470 => 'ڭ', + 64471 => 'ۇ', + 64472 => 'ۇ', + 64473 => 'ۆ', + 64474 => 'ۆ', + 64475 => 'ۈ', + 64476 => 'ۈ', + 64477 => 'ۇٴ', + 64478 => 'ۋ', + 64479 => 'ۋ', + 64480 => 'ۅ', + 64481 => 'ۅ', + 64482 => 'ۉ', + 64483 => 'ۉ', + 64484 => 'ې', + 64485 => 'ې', + 64486 => 'ې', + 64487 => 'ې', + 64488 => 'ى', + 64489 => 'ى', + 64490 => 'ئا', + 64491 => 'ئا', + 64492 => 'ئە', + 64493 => 'ئە', + 64494 => 'ئو', + 64495 => 'ئو', + 64496 => 'ئۇ', + 64497 => 'ئۇ', + 64498 => 'ئۆ', + 64499 => 'ئۆ', + 64500 => 'ئۈ', + 64501 => 'ئۈ', + 64502 => 'ئې', + 64503 => 'ئې', + 64504 => 'ئې', + 64505 => 'ئى', + 64506 => 'ئى', + 64507 => 'ئى', + 64508 => 'ی', + 64509 => 'ی', + 64510 => 'ی', + 64511 => 'ی', + 64512 => 'ئج', + 64513 => 'ئح', + 64514 => 'ئم', + 64515 => 'ئى', + 64516 => 'ئي', + 64517 => 'بج', + 64518 => 'بح', + 64519 => 'بخ', + 64520 => 'بم', + 64521 => 'بى', + 64522 => 'بي', + 64523 => 'تج', + 64524 => 'تح', + 64525 => 'تخ', + 64526 => 'تم', + 64527 => 'تى', + 64528 => 'تي', + 64529 => 'ثج', + 64530 => 'ثم', + 64531 => 'ثى', + 64532 => 'ثي', + 64533 => 'جح', + 64534 => 'جم', + 64535 => 'حج', + 64536 => 'حم', + 64537 => 'خج', + 64538 => 'خح', + 64539 => 'خم', + 64540 => 'سج', + 64541 => 'سح', + 64542 => 'سخ', + 64543 => 'سم', + 64544 => 'صح', + 64545 => 'صم', + 64546 => 'ضج', + 64547 => 'ضح', + 64548 => 'ضخ', + 64549 => 'ضم', + 64550 => 'طح', + 64551 => 'طم', + 64552 => 'ظم', + 64553 => 'عج', + 64554 => 'عم', + 64555 => 'غج', + 64556 => 'غم', + 64557 => 'فج', + 64558 => 'فح', + 64559 => 'فخ', + 64560 => 'فم', + 64561 => 'فى', + 64562 => 'في', + 64563 => 'قح', + 64564 => 'قم', + 64565 => 'قى', + 64566 => 'قي', + 64567 => 'كا', + 64568 => 'كج', + 64569 => 'كح', + 64570 => 'كخ', + 64571 => 'كل', + 64572 => 'كم', + 64573 => 'كى', + 64574 => 'كي', + 64575 => 'لج', + 64576 => 'لح', + 64577 => 'لخ', + 64578 => 'لم', + 64579 => 'لى', + 64580 => 'لي', + 64581 => 'مج', + 64582 => 'مح', + 64583 => 'مخ', + 64584 => 'مم', + 64585 => 'مى', + 64586 => 'مي', + 64587 => 'نج', + 64588 => 'نح', + 64589 => 'نخ', + 64590 => 'نم', + 64591 => 'نى', + 64592 => 'ني', + 64593 => 'هج', + 64594 => 'هم', + 64595 => 'هى', + 64596 => 'هي', + 64597 => 'يج', + 64598 => 'يح', + 64599 => 'يخ', + 64600 => 'يم', + 64601 => 'يى', + 64602 => 'يي', + 64603 => 'ذٰ', + 64604 => 'رٰ', + 64605 => 'ىٰ', + 64612 => 'ئر', + 64613 => 'ئز', + 64614 => 'ئم', + 64615 => 'ئن', + 64616 => 'ئى', + 64617 => 'ئي', + 64618 => 'بر', + 64619 => 'بز', + 64620 => 'بم', + 64621 => 'بن', + 64622 => 'بى', + 64623 => 'بي', + 64624 => 'تر', + 64625 => 'تز', + 64626 => 'تم', + 64627 => 'تن', + 64628 => 'تى', + 64629 => 'تي', + 64630 => 'ثر', + 64631 => 'ثز', + 64632 => 'ثم', + 64633 => 'ثن', + 64634 => 'ثى', + 64635 => 'ثي', + 64636 => 'فى', + 64637 => 'في', + 64638 => 'قى', + 64639 => 'قي', + 64640 => 'كا', + 64641 => 'كل', + 64642 => 'كم', + 64643 => 'كى', + 64644 => 'كي', + 64645 => 'لم', + 64646 => 'لى', + 64647 => 'لي', + 64648 => 'ما', + 64649 => 'مم', + 64650 => 'نر', + 64651 => 'نز', + 64652 => 'نم', + 64653 => 'نن', + 64654 => 'نى', + 64655 => 'ني', + 64656 => 'ىٰ', + 64657 => 'ير', + 64658 => 'يز', + 64659 => 'يم', + 64660 => 'ين', + 64661 => 'يى', + 64662 => 'يي', + 64663 => 'ئج', + 64664 => 'ئح', + 64665 => 'ئخ', + 64666 => 'ئم', + 64667 => 'ئه', + 64668 => 'بج', + 64669 => 'بح', + 64670 => 'بخ', + 64671 => 'بم', + 64672 => 'به', + 64673 => 'تج', + 64674 => 'تح', + 64675 => 'تخ', + 64676 => 'تم', + 64677 => 'ته', + 64678 => 'ثم', + 64679 => 'جح', + 64680 => 'جم', + 64681 => 'حج', + 64682 => 'حم', + 64683 => 'خج', + 64684 => 'خم', + 64685 => 'سج', + 64686 => 'سح', + 64687 => 'سخ', + 64688 => 'سم', + 64689 => 'صح', + 64690 => 'صخ', + 64691 => 'صم', + 64692 => 'ضج', + 64693 => 'ضح', + 64694 => 'ضخ', + 64695 => 'ضم', + 64696 => 'طح', + 64697 => 'ظم', + 64698 => 'عج', + 64699 => 'عم', + 64700 => 'غج', + 64701 => 'غم', + 64702 => 'فج', + 64703 => 'فح', + 64704 => 'فخ', + 64705 => 'فم', + 64706 => 'قح', + 64707 => 'قم', + 64708 => 'كج', + 64709 => 'كح', + 64710 => 'كخ', + 64711 => 'كل', + 64712 => 'كم', + 64713 => 'لج', + 64714 => 'لح', + 64715 => 'لخ', + 64716 => 'لم', + 64717 => 'له', + 64718 => 'مج', + 64719 => 'مح', + 64720 => 'مخ', + 64721 => 'مم', + 64722 => 'نج', + 64723 => 'نح', + 64724 => 'نخ', + 64725 => 'نم', + 64726 => 'نه', + 64727 => 'هج', + 64728 => 'هم', + 64729 => 'هٰ', + 64730 => 'يج', + 64731 => 'يح', + 64732 => 'يخ', + 64733 => 'يم', + 64734 => 'يه', + 64735 => 'ئم', + 64736 => 'ئه', + 64737 => 'بم', + 64738 => 'به', + 64739 => 'تم', + 64740 => 'ته', + 64741 => 'ثم', + 64742 => 'ثه', + 64743 => 'سم', + 64744 => 'سه', + 64745 => 'شم', + 64746 => 'شه', + 64747 => 'كل', + 64748 => 'كم', + 64749 => 'لم', + 64750 => 'نم', + 64751 => 'نه', + 64752 => 'يم', + 64753 => 'يه', + 64754 => 'ـَّ', + 64755 => 'ـُّ', + 64756 => 'ـِّ', + 64757 => 'طى', + 64758 => 'طي', + 64759 => 'عى', + 64760 => 'عي', + 64761 => 'غى', + 64762 => 'غي', + 64763 => 'سى', + 64764 => 'سي', + 64765 => 'شى', + 64766 => 'شي', + 64767 => 'حى', + 64768 => 'حي', + 64769 => 'جى', + 64770 => 'جي', + 64771 => 'خى', + 64772 => 'خي', + 64773 => 'صى', + 64774 => 'صي', + 64775 => 'ضى', + 64776 => 'ضي', + 64777 => 'شج', + 64778 => 'شح', + 64779 => 'شخ', + 64780 => 'شم', + 64781 => 'شر', + 64782 => 'سر', + 64783 => 'صر', + 64784 => 'ضر', + 64785 => 'طى', + 64786 => 'طي', + 64787 => 'عى', + 64788 => 'عي', + 64789 => 'غى', + 64790 => 'غي', + 64791 => 'سى', + 64792 => 'سي', + 64793 => 'شى', + 64794 => 'شي', + 64795 => 'حى', + 64796 => 'حي', + 64797 => 'جى', + 64798 => 'جي', + 64799 => 'خى', + 64800 => 'خي', + 64801 => 'صى', + 64802 => 'صي', + 64803 => 'ضى', + 64804 => 'ضي', + 64805 => 'شج', + 64806 => 'شح', + 64807 => 'شخ', + 64808 => 'شم', + 64809 => 'شر', + 64810 => 'سر', + 64811 => 'صر', + 64812 => 'ضر', + 64813 => 'شج', + 64814 => 'شح', + 64815 => 'شخ', + 64816 => 'شم', + 64817 => 'سه', + 64818 => 'شه', + 64819 => 'طم', + 64820 => 'سج', + 64821 => 'سح', + 64822 => 'سخ', + 64823 => 'شج', + 64824 => 'شح', + 64825 => 'شخ', + 64826 => 'طم', + 64827 => 'ظم', + 64828 => 'اً', + 64829 => 'اً', + 64848 => 'تجم', + 64849 => 'تحج', + 64850 => 'تحج', + 64851 => 'تحم', + 64852 => 'تخم', + 64853 => 'تمج', + 64854 => 'تمح', + 64855 => 'تمخ', + 64856 => 'جمح', + 64857 => 'جمح', + 64858 => 'حمي', + 64859 => 'حمى', + 64860 => 'سحج', + 64861 => 'سجح', + 64862 => 'سجى', + 64863 => 'سمح', + 64864 => 'سمح', + 64865 => 'سمج', + 64866 => 'سمم', + 64867 => 'سمم', + 64868 => 'صحح', + 64869 => 'صحح', + 64870 => 'صمم', + 64871 => 'شحم', + 64872 => 'شحم', + 64873 => 'شجي', + 64874 => 'شمخ', + 64875 => 'شمخ', + 64876 => 'شمم', + 64877 => 'شمم', + 64878 => 'ضحى', + 64879 => 'ضخم', + 64880 => 'ضخم', + 64881 => 'طمح', + 64882 => 'طمح', + 64883 => 'طمم', + 64884 => 'طمي', + 64885 => 'عجم', + 64886 => 'عمم', + 64887 => 'عمم', + 64888 => 'عمى', + 64889 => 'غمم', + 64890 => 'غمي', + 64891 => 'غمى', + 64892 => 'فخم', + 64893 => 'فخم', + 64894 => 'قمح', + 64895 => 'قمم', + 64896 => 'لحم', + 64897 => 'لحي', + 64898 => 'لحى', + 64899 => 'لجج', + 64900 => 'لجج', + 64901 => 'لخم', + 64902 => 'لخم', + 64903 => 'لمح', + 64904 => 'لمح', + 64905 => 'محج', + 64906 => 'محم', + 64907 => 'محي', + 64908 => 'مجح', + 64909 => 'مجم', + 64910 => 'مخج', + 64911 => 'مخم', + 64914 => 'مجخ', + 64915 => 'همج', + 64916 => 'همم', + 64917 => 'نحم', + 64918 => 'نحى', + 64919 => 'نجم', + 64920 => 'نجم', + 64921 => 'نجى', + 64922 => 'نمي', + 64923 => 'نمى', + 64924 => 'يمم', + 64925 => 'يمم', + 64926 => 'بخي', + 64927 => 'تجي', + 64928 => 'تجى', + 64929 => 'تخي', + 64930 => 'تخى', + 64931 => 'تمي', + 64932 => 'تمى', + 64933 => 'جمي', + 64934 => 'جحى', + 64935 => 'جمى', + 64936 => 'سخى', + 64937 => 'صحي', + 64938 => 'شحي', + 64939 => 'ضحي', + 64940 => 'لجي', + 64941 => 'لمي', + 64942 => 'يحي', + 64943 => 'يجي', + 64944 => 'يمي', + 64945 => 'ممي', + 64946 => 'قمي', + 64947 => 'نحي', + 64948 => 'قمح', + 64949 => 'لحم', + 64950 => 'عمي', + 64951 => 'كمي', + 64952 => 'نجح', + 64953 => 'مخي', + 64954 => 'لجم', + 64955 => 'كمم', + 64956 => 'لجم', + 64957 => 'نجح', + 64958 => 'جحي', + 64959 => 'حجي', + 64960 => 'مجي', + 64961 => 'فمي', + 64962 => 'بحي', + 64963 => 'كمم', + 64964 => 'عجم', + 64965 => 'صمم', + 64966 => 'سخي', + 64967 => 'نجي', + 65008 => 'صلے', + 65009 => 'قلے', + 65010 => 'الله', + 65011 => 'اكبر', + 65012 => 'محمد', + 65013 => 'صلعم', + 65014 => 'رسول', + 65015 => 'عليه', + 65016 => 'وسلم', + 65017 => 'صلى', + 65020 => 'ریال', + 65041 => '、', + 65047 => '〖', + 65048 => '〗', + 65073 => '—', + 65074 => '–', + 65081 => '〔', + 65082 => '〕', + 65083 => '【', + 65084 => '】', + 65085 => '《', + 65086 => '》', + 65087 => '〈', + 65088 => '〉', + 65089 => '「', + 65090 => '」', + 65091 => '『', + 65092 => '』', + 65105 => '、', + 65112 => '—', + 65117 => '〔', + 65118 => '〕', + 65123 => '-', + 65137 => 'ـً', + 65143 => 'ـَ', + 65145 => 'ـُ', + 65147 => 'ـِ', + 65149 => 'ـّ', + 65151 => 'ـْ', + 65152 => 'ء', + 65153 => 'آ', + 65154 => 'آ', + 65155 => 'أ', + 65156 => 'أ', + 65157 => 'ؤ', + 65158 => 'ؤ', + 65159 => 'إ', + 65160 => 'إ', + 65161 => 'ئ', + 65162 => 'ئ', + 65163 => 'ئ', + 65164 => 'ئ', + 65165 => 'ا', + 65166 => 'ا', + 65167 => 'ب', + 65168 => 'ب', + 65169 => 'ب', + 65170 => 'ب', + 65171 => 'ة', + 65172 => 'ة', + 65173 => 'ت', + 65174 => 'ت', + 65175 => 'ت', + 65176 => 'ت', + 65177 => 'ث', + 65178 => 'ث', + 65179 => 'ث', + 65180 => 'ث', + 65181 => 'ج', + 65182 => 'ج', + 65183 => 'ج', + 65184 => 'ج', + 65185 => 'ح', + 65186 => 'ح', + 65187 => 'ح', + 65188 => 'ح', + 65189 => 'خ', + 65190 => 'خ', + 65191 => 'خ', + 65192 => 'خ', + 65193 => 'د', + 65194 => 'د', + 65195 => 'ذ', + 65196 => 'ذ', + 65197 => 'ر', + 65198 => 'ر', + 65199 => 'ز', + 65200 => 'ز', + 65201 => 'س', + 65202 => 'س', + 65203 => 'س', + 65204 => 'س', + 65205 => 'ش', + 65206 => 'ش', + 65207 => 'ش', + 65208 => 'ش', + 65209 => 'ص', + 65210 => 'ص', + 65211 => 'ص', + 65212 => 'ص', + 65213 => 'ض', + 65214 => 'ض', + 65215 => 'ض', + 65216 => 'ض', + 65217 => 'ط', + 65218 => 'ط', + 65219 => 'ط', + 65220 => 'ط', + 65221 => 'ظ', + 65222 => 'ظ', + 65223 => 'ظ', + 65224 => 'ظ', + 65225 => 'ع', + 65226 => 'ع', + 65227 => 'ع', + 65228 => 'ع', + 65229 => 'غ', + 65230 => 'غ', + 65231 => 'غ', + 65232 => 'غ', + 65233 => 'ف', + 65234 => 'ف', + 65235 => 'ف', + 65236 => 'ف', + 65237 => 'ق', + 65238 => 'ق', + 65239 => 'ق', + 65240 => 'ق', + 65241 => 'ك', + 65242 => 'ك', + 65243 => 'ك', + 65244 => 'ك', + 65245 => 'ل', + 65246 => 'ل', + 65247 => 'ل', + 65248 => 'ل', + 65249 => 'م', + 65250 => 'م', + 65251 => 'م', + 65252 => 'م', + 65253 => 'ن', + 65254 => 'ن', + 65255 => 'ن', + 65256 => 'ن', + 65257 => 'ه', + 65258 => 'ه', + 65259 => 'ه', + 65260 => 'ه', + 65261 => 'و', + 65262 => 'و', + 65263 => 'ى', + 65264 => 'ى', + 65265 => 'ي', + 65266 => 'ي', + 65267 => 'ي', + 65268 => 'ي', + 65269 => 'لآ', + 65270 => 'لآ', + 65271 => 'لأ', + 65272 => 'لأ', + 65273 => 'لإ', + 65274 => 'لإ', + 65275 => 'لا', + 65276 => 'لا', + 65293 => '-', + 65294 => '.', + 65296 => '0', + 65297 => '1', + 65298 => '2', + 65299 => '3', + 65300 => '4', + 65301 => '5', + 65302 => '6', + 65303 => '7', + 65304 => '8', + 65305 => '9', + 65313 => 'a', + 65314 => 'b', + 65315 => 'c', + 65316 => 'd', + 65317 => 'e', + 65318 => 'f', + 65319 => 'g', + 65320 => 'h', + 65321 => 'i', + 65322 => 'j', + 65323 => 'k', + 65324 => 'l', + 65325 => 'm', + 65326 => 'n', + 65327 => 'o', + 65328 => 'p', + 65329 => 'q', + 65330 => 'r', + 65331 => 's', + 65332 => 't', + 65333 => 'u', + 65334 => 'v', + 65335 => 'w', + 65336 => 'x', + 65337 => 'y', + 65338 => 'z', + 65345 => 'a', + 65346 => 'b', + 65347 => 'c', + 65348 => 'd', + 65349 => 'e', + 65350 => 'f', + 65351 => 'g', + 65352 => 'h', + 65353 => 'i', + 65354 => 'j', + 65355 => 'k', + 65356 => 'l', + 65357 => 'm', + 65358 => 'n', + 65359 => 'o', + 65360 => 'p', + 65361 => 'q', + 65362 => 'r', + 65363 => 's', + 65364 => 't', + 65365 => 'u', + 65366 => 'v', + 65367 => 'w', + 65368 => 'x', + 65369 => 'y', + 65370 => 'z', + 65375 => '⦅', + 65376 => '⦆', + 65377 => '.', + 65378 => '「', + 65379 => '」', + 65380 => '、', + 65381 => '・', + 65382 => 'ヲ', + 65383 => 'ァ', + 65384 => 'ィ', + 65385 => 'ゥ', + 65386 => 'ェ', + 65387 => 'ォ', + 65388 => 'ャ', + 65389 => 'ュ', + 65390 => 'ョ', + 65391 => 'ッ', + 65392 => 'ー', + 65393 => 'ア', + 65394 => 'イ', + 65395 => 'ウ', + 65396 => 'エ', + 65397 => 'オ', + 65398 => 'カ', + 65399 => 'キ', + 65400 => 'ク', + 65401 => 'ケ', + 65402 => 'コ', + 65403 => 'サ', + 65404 => 'シ', + 65405 => 'ス', + 65406 => 'セ', + 65407 => 'ソ', + 65408 => 'タ', + 65409 => 'チ', + 65410 => 'ツ', + 65411 => 'テ', + 65412 => 'ト', + 65413 => 'ナ', + 65414 => 'ニ', + 65415 => 'ヌ', + 65416 => 'ネ', + 65417 => 'ノ', + 65418 => 'ハ', + 65419 => 'ヒ', + 65420 => 'フ', + 65421 => 'ヘ', + 65422 => 'ホ', + 65423 => 'マ', + 65424 => 'ミ', + 65425 => 'ム', + 65426 => 'メ', + 65427 => 'モ', + 65428 => 'ヤ', + 65429 => 'ユ', + 65430 => 'ヨ', + 65431 => 'ラ', + 65432 => 'リ', + 65433 => 'ル', + 65434 => 'レ', + 65435 => 'ロ', + 65436 => 'ワ', + 65437 => 'ン', + 65438 => '゙', + 65439 => '゚', + 65441 => 'ᄀ', + 65442 => 'ᄁ', + 65443 => 'ᆪ', + 65444 => 'ᄂ', + 65445 => 'ᆬ', + 65446 => 'ᆭ', + 65447 => 'ᄃ', + 65448 => 'ᄄ', + 65449 => 'ᄅ', + 65450 => 'ᆰ', + 65451 => 'ᆱ', + 65452 => 'ᆲ', + 65453 => 'ᆳ', + 65454 => 'ᆴ', + 65455 => 'ᆵ', + 65456 => 'ᄚ', + 65457 => 'ᄆ', + 65458 => 'ᄇ', + 65459 => 'ᄈ', + 65460 => 'ᄡ', + 65461 => 'ᄉ', + 65462 => 'ᄊ', + 65463 => 'ᄋ', + 65464 => 'ᄌ', + 65465 => 'ᄍ', + 65466 => 'ᄎ', + 65467 => 'ᄏ', + 65468 => 'ᄐ', + 65469 => 'ᄑ', + 65470 => 'ᄒ', + 65474 => 'ᅡ', + 65475 => 'ᅢ', + 65476 => 'ᅣ', + 65477 => 'ᅤ', + 65478 => 'ᅥ', + 65479 => 'ᅦ', + 65482 => 'ᅧ', + 65483 => 'ᅨ', + 65484 => 'ᅩ', + 65485 => 'ᅪ', + 65486 => 'ᅫ', + 65487 => 'ᅬ', + 65490 => 'ᅭ', + 65491 => 'ᅮ', + 65492 => 'ᅯ', + 65493 => 'ᅰ', + 65494 => 'ᅱ', + 65495 => 'ᅲ', + 65498 => 'ᅳ', + 65499 => 'ᅴ', + 65500 => 'ᅵ', + 65504 => '¢', + 65505 => '£', + 65506 => '¬', + 65508 => '¦', + 65509 => '¥', + 65510 => '₩', + 65512 => '│', + 65513 => '←', + 65514 => '↑', + 65515 => '→', + 65516 => '↓', + 65517 => '■', + 65518 => '○', + 66560 => '𐐨', + 66561 => '𐐩', + 66562 => '𐐪', + 66563 => '𐐫', + 66564 => '𐐬', + 66565 => '𐐭', + 66566 => '𐐮', + 66567 => '𐐯', + 66568 => '𐐰', + 66569 => '𐐱', + 66570 => '𐐲', + 66571 => '𐐳', + 66572 => '𐐴', + 66573 => '𐐵', + 66574 => '𐐶', + 66575 => '𐐷', + 66576 => '𐐸', + 66577 => '𐐹', + 66578 => '𐐺', + 66579 => '𐐻', + 66580 => '𐐼', + 66581 => '𐐽', + 66582 => '𐐾', + 66583 => '𐐿', + 66584 => '𐑀', + 66585 => '𐑁', + 66586 => '𐑂', + 66587 => '𐑃', + 66588 => '𐑄', + 66589 => '𐑅', + 66590 => '𐑆', + 66591 => '𐑇', + 66592 => '𐑈', + 66593 => '𐑉', + 66594 => '𐑊', + 66595 => '𐑋', + 66596 => '𐑌', + 66597 => '𐑍', + 66598 => '𐑎', + 66599 => '𐑏', + 66736 => '𐓘', + 66737 => '𐓙', + 66738 => '𐓚', + 66739 => '𐓛', + 66740 => '𐓜', + 66741 => '𐓝', + 66742 => '𐓞', + 66743 => '𐓟', + 66744 => '𐓠', + 66745 => '𐓡', + 66746 => '𐓢', + 66747 => '𐓣', + 66748 => '𐓤', + 66749 => '𐓥', + 66750 => '𐓦', + 66751 => '𐓧', + 66752 => '𐓨', + 66753 => '𐓩', + 66754 => '𐓪', + 66755 => '𐓫', + 66756 => '𐓬', + 66757 => '𐓭', + 66758 => '𐓮', + 66759 => '𐓯', + 66760 => '𐓰', + 66761 => '𐓱', + 66762 => '𐓲', + 66763 => '𐓳', + 66764 => '𐓴', + 66765 => '𐓵', + 66766 => '𐓶', + 66767 => '𐓷', + 66768 => '𐓸', + 66769 => '𐓹', + 66770 => '𐓺', + 66771 => '𐓻', + 68736 => '𐳀', + 68737 => '𐳁', + 68738 => '𐳂', + 68739 => '𐳃', + 68740 => '𐳄', + 68741 => '𐳅', + 68742 => '𐳆', + 68743 => '𐳇', + 68744 => '𐳈', + 68745 => '𐳉', + 68746 => '𐳊', + 68747 => '𐳋', + 68748 => '𐳌', + 68749 => '𐳍', + 68750 => '𐳎', + 68751 => '𐳏', + 68752 => '𐳐', + 68753 => '𐳑', + 68754 => '𐳒', + 68755 => '𐳓', + 68756 => '𐳔', + 68757 => '𐳕', + 68758 => '𐳖', + 68759 => '𐳗', + 68760 => '𐳘', + 68761 => '𐳙', + 68762 => '𐳚', + 68763 => '𐳛', + 68764 => '𐳜', + 68765 => '𐳝', + 68766 => '𐳞', + 68767 => '𐳟', + 68768 => '𐳠', + 68769 => '𐳡', + 68770 => '𐳢', + 68771 => '𐳣', + 68772 => '𐳤', + 68773 => '𐳥', + 68774 => '𐳦', + 68775 => '𐳧', + 68776 => '𐳨', + 68777 => '𐳩', + 68778 => '𐳪', + 68779 => '𐳫', + 68780 => '𐳬', + 68781 => '𐳭', + 68782 => '𐳮', + 68783 => '𐳯', + 68784 => '𐳰', + 68785 => '𐳱', + 68786 => '𐳲', + 71840 => '𑣀', + 71841 => '𑣁', + 71842 => '𑣂', + 71843 => '𑣃', + 71844 => '𑣄', + 71845 => '𑣅', + 71846 => '𑣆', + 71847 => '𑣇', + 71848 => '𑣈', + 71849 => '𑣉', + 71850 => '𑣊', + 71851 => '𑣋', + 71852 => '𑣌', + 71853 => '𑣍', + 71854 => '𑣎', + 71855 => '𑣏', + 71856 => '𑣐', + 71857 => '𑣑', + 71858 => '𑣒', + 71859 => '𑣓', + 71860 => '𑣔', + 71861 => '𑣕', + 71862 => '𑣖', + 71863 => '𑣗', + 71864 => '𑣘', + 71865 => '𑣙', + 71866 => '𑣚', + 71867 => '𑣛', + 71868 => '𑣜', + 71869 => '𑣝', + 71870 => '𑣞', + 71871 => '𑣟', + 93760 => '𖹠', + 93761 => '𖹡', + 93762 => '𖹢', + 93763 => '𖹣', + 93764 => '𖹤', + 93765 => '𖹥', + 93766 => '𖹦', + 93767 => '𖹧', + 93768 => '𖹨', + 93769 => '𖹩', + 93770 => '𖹪', + 93771 => '𖹫', + 93772 => '𖹬', + 93773 => '𖹭', + 93774 => '𖹮', + 93775 => '𖹯', + 93776 => '𖹰', + 93777 => '𖹱', + 93778 => '𖹲', + 93779 => '𖹳', + 93780 => '𖹴', + 93781 => '𖹵', + 93782 => '𖹶', + 93783 => '𖹷', + 93784 => '𖹸', + 93785 => '𖹹', + 93786 => '𖹺', + 93787 => '𖹻', + 93788 => '𖹼', + 93789 => '𖹽', + 93790 => '𖹾', + 93791 => '𖹿', + 119134 => '𝅗𝅥', + 119135 => '𝅘𝅥', + 119136 => '𝅘𝅥𝅮', + 119137 => '𝅘𝅥𝅯', + 119138 => '𝅘𝅥𝅰', + 119139 => '𝅘𝅥𝅱', + 119140 => '𝅘𝅥𝅲', + 119227 => '𝆹𝅥', + 119228 => '𝆺𝅥', + 119229 => '𝆹𝅥𝅮', + 119230 => '𝆺𝅥𝅮', + 119231 => '𝆹𝅥𝅯', + 119232 => '𝆺𝅥𝅯', + 119808 => 'a', + 119809 => 'b', + 119810 => 'c', + 119811 => 'd', + 119812 => 'e', + 119813 => 'f', + 119814 => 'g', + 119815 => 'h', + 119816 => 'i', + 119817 => 'j', + 119818 => 'k', + 119819 => 'l', + 119820 => 'm', + 119821 => 'n', + 119822 => 'o', + 119823 => 'p', + 119824 => 'q', + 119825 => 'r', + 119826 => 's', + 119827 => 't', + 119828 => 'u', + 119829 => 'v', + 119830 => 'w', + 119831 => 'x', + 119832 => 'y', + 119833 => 'z', + 119834 => 'a', + 119835 => 'b', + 119836 => 'c', + 119837 => 'd', + 119838 => 'e', + 119839 => 'f', + 119840 => 'g', + 119841 => 'h', + 119842 => 'i', + 119843 => 'j', + 119844 => 'k', + 119845 => 'l', + 119846 => 'm', + 119847 => 'n', + 119848 => 'o', + 119849 => 'p', + 119850 => 'q', + 119851 => 'r', + 119852 => 's', + 119853 => 't', + 119854 => 'u', + 119855 => 'v', + 119856 => 'w', + 119857 => 'x', + 119858 => 'y', + 119859 => 'z', + 119860 => 'a', + 119861 => 'b', + 119862 => 'c', + 119863 => 'd', + 119864 => 'e', + 119865 => 'f', + 119866 => 'g', + 119867 => 'h', + 119868 => 'i', + 119869 => 'j', + 119870 => 'k', + 119871 => 'l', + 119872 => 'm', + 119873 => 'n', + 119874 => 'o', + 119875 => 'p', + 119876 => 'q', + 119877 => 'r', + 119878 => 's', + 119879 => 't', + 119880 => 'u', + 119881 => 'v', + 119882 => 'w', + 119883 => 'x', + 119884 => 'y', + 119885 => 'z', + 119886 => 'a', + 119887 => 'b', + 119888 => 'c', + 119889 => 'd', + 119890 => 'e', + 119891 => 'f', + 119892 => 'g', + 119894 => 'i', + 119895 => 'j', + 119896 => 'k', + 119897 => 'l', + 119898 => 'm', + 119899 => 'n', + 119900 => 'o', + 119901 => 'p', + 119902 => 'q', + 119903 => 'r', + 119904 => 's', + 119905 => 't', + 119906 => 'u', + 119907 => 'v', + 119908 => 'w', + 119909 => 'x', + 119910 => 'y', + 119911 => 'z', + 119912 => 'a', + 119913 => 'b', + 119914 => 'c', + 119915 => 'd', + 119916 => 'e', + 119917 => 'f', + 119918 => 'g', + 119919 => 'h', + 119920 => 'i', + 119921 => 'j', + 119922 => 'k', + 119923 => 'l', + 119924 => 'm', + 119925 => 'n', + 119926 => 'o', + 119927 => 'p', + 119928 => 'q', + 119929 => 'r', + 119930 => 's', + 119931 => 't', + 119932 => 'u', + 119933 => 'v', + 119934 => 'w', + 119935 => 'x', + 119936 => 'y', + 119937 => 'z', + 119938 => 'a', + 119939 => 'b', + 119940 => 'c', + 119941 => 'd', + 119942 => 'e', + 119943 => 'f', + 119944 => 'g', + 119945 => 'h', + 119946 => 'i', + 119947 => 'j', + 119948 => 'k', + 119949 => 'l', + 119950 => 'm', + 119951 => 'n', + 119952 => 'o', + 119953 => 'p', + 119954 => 'q', + 119955 => 'r', + 119956 => 's', + 119957 => 't', + 119958 => 'u', + 119959 => 'v', + 119960 => 'w', + 119961 => 'x', + 119962 => 'y', + 119963 => 'z', + 119964 => 'a', + 119966 => 'c', + 119967 => 'd', + 119970 => 'g', + 119973 => 'j', + 119974 => 'k', + 119977 => 'n', + 119978 => 'o', + 119979 => 'p', + 119980 => 'q', + 119982 => 's', + 119983 => 't', + 119984 => 'u', + 119985 => 'v', + 119986 => 'w', + 119987 => 'x', + 119988 => 'y', + 119989 => 'z', + 119990 => 'a', + 119991 => 'b', + 119992 => 'c', + 119993 => 'd', + 119995 => 'f', + 119997 => 'h', + 119998 => 'i', + 119999 => 'j', + 120000 => 'k', + 120001 => 'l', + 120002 => 'm', + 120003 => 'n', + 120005 => 'p', + 120006 => 'q', + 120007 => 'r', + 120008 => 's', + 120009 => 't', + 120010 => 'u', + 120011 => 'v', + 120012 => 'w', + 120013 => 'x', + 120014 => 'y', + 120015 => 'z', + 120016 => 'a', + 120017 => 'b', + 120018 => 'c', + 120019 => 'd', + 120020 => 'e', + 120021 => 'f', + 120022 => 'g', + 120023 => 'h', + 120024 => 'i', + 120025 => 'j', + 120026 => 'k', + 120027 => 'l', + 120028 => 'm', + 120029 => 'n', + 120030 => 'o', + 120031 => 'p', + 120032 => 'q', + 120033 => 'r', + 120034 => 's', + 120035 => 't', + 120036 => 'u', + 120037 => 'v', + 120038 => 'w', + 120039 => 'x', + 120040 => 'y', + 120041 => 'z', + 120042 => 'a', + 120043 => 'b', + 120044 => 'c', + 120045 => 'd', + 120046 => 'e', + 120047 => 'f', + 120048 => 'g', + 120049 => 'h', + 120050 => 'i', + 120051 => 'j', + 120052 => 'k', + 120053 => 'l', + 120054 => 'm', + 120055 => 'n', + 120056 => 'o', + 120057 => 'p', + 120058 => 'q', + 120059 => 'r', + 120060 => 's', + 120061 => 't', + 120062 => 'u', + 120063 => 'v', + 120064 => 'w', + 120065 => 'x', + 120066 => 'y', + 120067 => 'z', + 120068 => 'a', + 120069 => 'b', + 120071 => 'd', + 120072 => 'e', + 120073 => 'f', + 120074 => 'g', + 120077 => 'j', + 120078 => 'k', + 120079 => 'l', + 120080 => 'm', + 120081 => 'n', + 120082 => 'o', + 120083 => 'p', + 120084 => 'q', + 120086 => 's', + 120087 => 't', + 120088 => 'u', + 120089 => 'v', + 120090 => 'w', + 120091 => 'x', + 120092 => 'y', + 120094 => 'a', + 120095 => 'b', + 120096 => 'c', + 120097 => 'd', + 120098 => 'e', + 120099 => 'f', + 120100 => 'g', + 120101 => 'h', + 120102 => 'i', + 120103 => 'j', + 120104 => 'k', + 120105 => 'l', + 120106 => 'm', + 120107 => 'n', + 120108 => 'o', + 120109 => 'p', + 120110 => 'q', + 120111 => 'r', + 120112 => 's', + 120113 => 't', + 120114 => 'u', + 120115 => 'v', + 120116 => 'w', + 120117 => 'x', + 120118 => 'y', + 120119 => 'z', + 120120 => 'a', + 120121 => 'b', + 120123 => 'd', + 120124 => 'e', + 120125 => 'f', + 120126 => 'g', + 120128 => 'i', + 120129 => 'j', + 120130 => 'k', + 120131 => 'l', + 120132 => 'm', + 120134 => 'o', + 120138 => 's', + 120139 => 't', + 120140 => 'u', + 120141 => 'v', + 120142 => 'w', + 120143 => 'x', + 120144 => 'y', + 120146 => 'a', + 120147 => 'b', + 120148 => 'c', + 120149 => 'd', + 120150 => 'e', + 120151 => 'f', + 120152 => 'g', + 120153 => 'h', + 120154 => 'i', + 120155 => 'j', + 120156 => 'k', + 120157 => 'l', + 120158 => 'm', + 120159 => 'n', + 120160 => 'o', + 120161 => 'p', + 120162 => 'q', + 120163 => 'r', + 120164 => 's', + 120165 => 't', + 120166 => 'u', + 120167 => 'v', + 120168 => 'w', + 120169 => 'x', + 120170 => 'y', + 120171 => 'z', + 120172 => 'a', + 120173 => 'b', + 120174 => 'c', + 120175 => 'd', + 120176 => 'e', + 120177 => 'f', + 120178 => 'g', + 120179 => 'h', + 120180 => 'i', + 120181 => 'j', + 120182 => 'k', + 120183 => 'l', + 120184 => 'm', + 120185 => 'n', + 120186 => 'o', + 120187 => 'p', + 120188 => 'q', + 120189 => 'r', + 120190 => 's', + 120191 => 't', + 120192 => 'u', + 120193 => 'v', + 120194 => 'w', + 120195 => 'x', + 120196 => 'y', + 120197 => 'z', + 120198 => 'a', + 120199 => 'b', + 120200 => 'c', + 120201 => 'd', + 120202 => 'e', + 120203 => 'f', + 120204 => 'g', + 120205 => 'h', + 120206 => 'i', + 120207 => 'j', + 120208 => 'k', + 120209 => 'l', + 120210 => 'm', + 120211 => 'n', + 120212 => 'o', + 120213 => 'p', + 120214 => 'q', + 120215 => 'r', + 120216 => 's', + 120217 => 't', + 120218 => 'u', + 120219 => 'v', + 120220 => 'w', + 120221 => 'x', + 120222 => 'y', + 120223 => 'z', + 120224 => 'a', + 120225 => 'b', + 120226 => 'c', + 120227 => 'd', + 120228 => 'e', + 120229 => 'f', + 120230 => 'g', + 120231 => 'h', + 120232 => 'i', + 120233 => 'j', + 120234 => 'k', + 120235 => 'l', + 120236 => 'm', + 120237 => 'n', + 120238 => 'o', + 120239 => 'p', + 120240 => 'q', + 120241 => 'r', + 120242 => 's', + 120243 => 't', + 120244 => 'u', + 120245 => 'v', + 120246 => 'w', + 120247 => 'x', + 120248 => 'y', + 120249 => 'z', + 120250 => 'a', + 120251 => 'b', + 120252 => 'c', + 120253 => 'd', + 120254 => 'e', + 120255 => 'f', + 120256 => 'g', + 120257 => 'h', + 120258 => 'i', + 120259 => 'j', + 120260 => 'k', + 120261 => 'l', + 120262 => 'm', + 120263 => 'n', + 120264 => 'o', + 120265 => 'p', + 120266 => 'q', + 120267 => 'r', + 120268 => 's', + 120269 => 't', + 120270 => 'u', + 120271 => 'v', + 120272 => 'w', + 120273 => 'x', + 120274 => 'y', + 120275 => 'z', + 120276 => 'a', + 120277 => 'b', + 120278 => 'c', + 120279 => 'd', + 120280 => 'e', + 120281 => 'f', + 120282 => 'g', + 120283 => 'h', + 120284 => 'i', + 120285 => 'j', + 120286 => 'k', + 120287 => 'l', + 120288 => 'm', + 120289 => 'n', + 120290 => 'o', + 120291 => 'p', + 120292 => 'q', + 120293 => 'r', + 120294 => 's', + 120295 => 't', + 120296 => 'u', + 120297 => 'v', + 120298 => 'w', + 120299 => 'x', + 120300 => 'y', + 120301 => 'z', + 120302 => 'a', + 120303 => 'b', + 120304 => 'c', + 120305 => 'd', + 120306 => 'e', + 120307 => 'f', + 120308 => 'g', + 120309 => 'h', + 120310 => 'i', + 120311 => 'j', + 120312 => 'k', + 120313 => 'l', + 120314 => 'm', + 120315 => 'n', + 120316 => 'o', + 120317 => 'p', + 120318 => 'q', + 120319 => 'r', + 120320 => 's', + 120321 => 't', + 120322 => 'u', + 120323 => 'v', + 120324 => 'w', + 120325 => 'x', + 120326 => 'y', + 120327 => 'z', + 120328 => 'a', + 120329 => 'b', + 120330 => 'c', + 120331 => 'd', + 120332 => 'e', + 120333 => 'f', + 120334 => 'g', + 120335 => 'h', + 120336 => 'i', + 120337 => 'j', + 120338 => 'k', + 120339 => 'l', + 120340 => 'm', + 120341 => 'n', + 120342 => 'o', + 120343 => 'p', + 120344 => 'q', + 120345 => 'r', + 120346 => 's', + 120347 => 't', + 120348 => 'u', + 120349 => 'v', + 120350 => 'w', + 120351 => 'x', + 120352 => 'y', + 120353 => 'z', + 120354 => 'a', + 120355 => 'b', + 120356 => 'c', + 120357 => 'd', + 120358 => 'e', + 120359 => 'f', + 120360 => 'g', + 120361 => 'h', + 120362 => 'i', + 120363 => 'j', + 120364 => 'k', + 120365 => 'l', + 120366 => 'm', + 120367 => 'n', + 120368 => 'o', + 120369 => 'p', + 120370 => 'q', + 120371 => 'r', + 120372 => 's', + 120373 => 't', + 120374 => 'u', + 120375 => 'v', + 120376 => 'w', + 120377 => 'x', + 120378 => 'y', + 120379 => 'z', + 120380 => 'a', + 120381 => 'b', + 120382 => 'c', + 120383 => 'd', + 120384 => 'e', + 120385 => 'f', + 120386 => 'g', + 120387 => 'h', + 120388 => 'i', + 120389 => 'j', + 120390 => 'k', + 120391 => 'l', + 120392 => 'm', + 120393 => 'n', + 120394 => 'o', + 120395 => 'p', + 120396 => 'q', + 120397 => 'r', + 120398 => 's', + 120399 => 't', + 120400 => 'u', + 120401 => 'v', + 120402 => 'w', + 120403 => 'x', + 120404 => 'y', + 120405 => 'z', + 120406 => 'a', + 120407 => 'b', + 120408 => 'c', + 120409 => 'd', + 120410 => 'e', + 120411 => 'f', + 120412 => 'g', + 120413 => 'h', + 120414 => 'i', + 120415 => 'j', + 120416 => 'k', + 120417 => 'l', + 120418 => 'm', + 120419 => 'n', + 120420 => 'o', + 120421 => 'p', + 120422 => 'q', + 120423 => 'r', + 120424 => 's', + 120425 => 't', + 120426 => 'u', + 120427 => 'v', + 120428 => 'w', + 120429 => 'x', + 120430 => 'y', + 120431 => 'z', + 120432 => 'a', + 120433 => 'b', + 120434 => 'c', + 120435 => 'd', + 120436 => 'e', + 120437 => 'f', + 120438 => 'g', + 120439 => 'h', + 120440 => 'i', + 120441 => 'j', + 120442 => 'k', + 120443 => 'l', + 120444 => 'm', + 120445 => 'n', + 120446 => 'o', + 120447 => 'p', + 120448 => 'q', + 120449 => 'r', + 120450 => 's', + 120451 => 't', + 120452 => 'u', + 120453 => 'v', + 120454 => 'w', + 120455 => 'x', + 120456 => 'y', + 120457 => 'z', + 120458 => 'a', + 120459 => 'b', + 120460 => 'c', + 120461 => 'd', + 120462 => 'e', + 120463 => 'f', + 120464 => 'g', + 120465 => 'h', + 120466 => 'i', + 120467 => 'j', + 120468 => 'k', + 120469 => 'l', + 120470 => 'm', + 120471 => 'n', + 120472 => 'o', + 120473 => 'p', + 120474 => 'q', + 120475 => 'r', + 120476 => 's', + 120477 => 't', + 120478 => 'u', + 120479 => 'v', + 120480 => 'w', + 120481 => 'x', + 120482 => 'y', + 120483 => 'z', + 120484 => 'ı', + 120485 => 'ȷ', + 120488 => 'α', + 120489 => 'β', + 120490 => 'γ', + 120491 => 'δ', + 120492 => 'ε', + 120493 => 'ζ', + 120494 => 'η', + 120495 => 'θ', + 120496 => 'ι', + 120497 => 'κ', + 120498 => 'λ', + 120499 => 'μ', + 120500 => 'ν', + 120501 => 'ξ', + 120502 => 'ο', + 120503 => 'π', + 120504 => 'ρ', + 120505 => 'θ', + 120506 => 'σ', + 120507 => 'τ', + 120508 => 'υ', + 120509 => 'φ', + 120510 => 'χ', + 120511 => 'ψ', + 120512 => 'ω', + 120513 => '∇', + 120514 => 'α', + 120515 => 'β', + 120516 => 'γ', + 120517 => 'δ', + 120518 => 'ε', + 120519 => 'ζ', + 120520 => 'η', + 120521 => 'θ', + 120522 => 'ι', + 120523 => 'κ', + 120524 => 'λ', + 120525 => 'μ', + 120526 => 'ν', + 120527 => 'ξ', + 120528 => 'ο', + 120529 => 'π', + 120530 => 'ρ', + 120531 => 'σ', + 120532 => 'σ', + 120533 => 'τ', + 120534 => 'υ', + 120535 => 'φ', + 120536 => 'χ', + 120537 => 'ψ', + 120538 => 'ω', + 120539 => '∂', + 120540 => 'ε', + 120541 => 'θ', + 120542 => 'κ', + 120543 => 'φ', + 120544 => 'ρ', + 120545 => 'π', + 120546 => 'α', + 120547 => 'β', + 120548 => 'γ', + 120549 => 'δ', + 120550 => 'ε', + 120551 => 'ζ', + 120552 => 'η', + 120553 => 'θ', + 120554 => 'ι', + 120555 => 'κ', + 120556 => 'λ', + 120557 => 'μ', + 120558 => 'ν', + 120559 => 'ξ', + 120560 => 'ο', + 120561 => 'π', + 120562 => 'ρ', + 120563 => 'θ', + 120564 => 'σ', + 120565 => 'τ', + 120566 => 'υ', + 120567 => 'φ', + 120568 => 'χ', + 120569 => 'ψ', + 120570 => 'ω', + 120571 => '∇', + 120572 => 'α', + 120573 => 'β', + 120574 => 'γ', + 120575 => 'δ', + 120576 => 'ε', + 120577 => 'ζ', + 120578 => 'η', + 120579 => 'θ', + 120580 => 'ι', + 120581 => 'κ', + 120582 => 'λ', + 120583 => 'μ', + 120584 => 'ν', + 120585 => 'ξ', + 120586 => 'ο', + 120587 => 'π', + 120588 => 'ρ', + 120589 => 'σ', + 120590 => 'σ', + 120591 => 'τ', + 120592 => 'υ', + 120593 => 'φ', + 120594 => 'χ', + 120595 => 'ψ', + 120596 => 'ω', + 120597 => '∂', + 120598 => 'ε', + 120599 => 'θ', + 120600 => 'κ', + 120601 => 'φ', + 120602 => 'ρ', + 120603 => 'π', + 120604 => 'α', + 120605 => 'β', + 120606 => 'γ', + 120607 => 'δ', + 120608 => 'ε', + 120609 => 'ζ', + 120610 => 'η', + 120611 => 'θ', + 120612 => 'ι', + 120613 => 'κ', + 120614 => 'λ', + 120615 => 'μ', + 120616 => 'ν', + 120617 => 'ξ', + 120618 => 'ο', + 120619 => 'π', + 120620 => 'ρ', + 120621 => 'θ', + 120622 => 'σ', + 120623 => 'τ', + 120624 => 'υ', + 120625 => 'φ', + 120626 => 'χ', + 120627 => 'ψ', + 120628 => 'ω', + 120629 => '∇', + 120630 => 'α', + 120631 => 'β', + 120632 => 'γ', + 120633 => 'δ', + 120634 => 'ε', + 120635 => 'ζ', + 120636 => 'η', + 120637 => 'θ', + 120638 => 'ι', + 120639 => 'κ', + 120640 => 'λ', + 120641 => 'μ', + 120642 => 'ν', + 120643 => 'ξ', + 120644 => 'ο', + 120645 => 'π', + 120646 => 'ρ', + 120647 => 'σ', + 120648 => 'σ', + 120649 => 'τ', + 120650 => 'υ', + 120651 => 'φ', + 120652 => 'χ', + 120653 => 'ψ', + 120654 => 'ω', + 120655 => '∂', + 120656 => 'ε', + 120657 => 'θ', + 120658 => 'κ', + 120659 => 'φ', + 120660 => 'ρ', + 120661 => 'π', + 120662 => 'α', + 120663 => 'β', + 120664 => 'γ', + 120665 => 'δ', + 120666 => 'ε', + 120667 => 'ζ', + 120668 => 'η', + 120669 => 'θ', + 120670 => 'ι', + 120671 => 'κ', + 120672 => 'λ', + 120673 => 'μ', + 120674 => 'ν', + 120675 => 'ξ', + 120676 => 'ο', + 120677 => 'π', + 120678 => 'ρ', + 120679 => 'θ', + 120680 => 'σ', + 120681 => 'τ', + 120682 => 'υ', + 120683 => 'φ', + 120684 => 'χ', + 120685 => 'ψ', + 120686 => 'ω', + 120687 => '∇', + 120688 => 'α', + 120689 => 'β', + 120690 => 'γ', + 120691 => 'δ', + 120692 => 'ε', + 120693 => 'ζ', + 120694 => 'η', + 120695 => 'θ', + 120696 => 'ι', + 120697 => 'κ', + 120698 => 'λ', + 120699 => 'μ', + 120700 => 'ν', + 120701 => 'ξ', + 120702 => 'ο', + 120703 => 'π', + 120704 => 'ρ', + 120705 => 'σ', + 120706 => 'σ', + 120707 => 'τ', + 120708 => 'υ', + 120709 => 'φ', + 120710 => 'χ', + 120711 => 'ψ', + 120712 => 'ω', + 120713 => '∂', + 120714 => 'ε', + 120715 => 'θ', + 120716 => 'κ', + 120717 => 'φ', + 120718 => 'ρ', + 120719 => 'π', + 120720 => 'α', + 120721 => 'β', + 120722 => 'γ', + 120723 => 'δ', + 120724 => 'ε', + 120725 => 'ζ', + 120726 => 'η', + 120727 => 'θ', + 120728 => 'ι', + 120729 => 'κ', + 120730 => 'λ', + 120731 => 'μ', + 120732 => 'ν', + 120733 => 'ξ', + 120734 => 'ο', + 120735 => 'π', + 120736 => 'ρ', + 120737 => 'θ', + 120738 => 'σ', + 120739 => 'τ', + 120740 => 'υ', + 120741 => 'φ', + 120742 => 'χ', + 120743 => 'ψ', + 120744 => 'ω', + 120745 => '∇', + 120746 => 'α', + 120747 => 'β', + 120748 => 'γ', + 120749 => 'δ', + 120750 => 'ε', + 120751 => 'ζ', + 120752 => 'η', + 120753 => 'θ', + 120754 => 'ι', + 120755 => 'κ', + 120756 => 'λ', + 120757 => 'μ', + 120758 => 'ν', + 120759 => 'ξ', + 120760 => 'ο', + 120761 => 'π', + 120762 => 'ρ', + 120763 => 'σ', + 120764 => 'σ', + 120765 => 'τ', + 120766 => 'υ', + 120767 => 'φ', + 120768 => 'χ', + 120769 => 'ψ', + 120770 => 'ω', + 120771 => '∂', + 120772 => 'ε', + 120773 => 'θ', + 120774 => 'κ', + 120775 => 'φ', + 120776 => 'ρ', + 120777 => 'π', + 120778 => 'ϝ', + 120779 => 'ϝ', + 120782 => '0', + 120783 => '1', + 120784 => '2', + 120785 => '3', + 120786 => '4', + 120787 => '5', + 120788 => '6', + 120789 => '7', + 120790 => '8', + 120791 => '9', + 120792 => '0', + 120793 => '1', + 120794 => '2', + 120795 => '3', + 120796 => '4', + 120797 => '5', + 120798 => '6', + 120799 => '7', + 120800 => '8', + 120801 => '9', + 120802 => '0', + 120803 => '1', + 120804 => '2', + 120805 => '3', + 120806 => '4', + 120807 => '5', + 120808 => '6', + 120809 => '7', + 120810 => '8', + 120811 => '9', + 120812 => '0', + 120813 => '1', + 120814 => '2', + 120815 => '3', + 120816 => '4', + 120817 => '5', + 120818 => '6', + 120819 => '7', + 120820 => '8', + 120821 => '9', + 120822 => '0', + 120823 => '1', + 120824 => '2', + 120825 => '3', + 120826 => '4', + 120827 => '5', + 120828 => '6', + 120829 => '7', + 120830 => '8', + 120831 => '9', + 125184 => '𞤢', + 125185 => '𞤣', + 125186 => '𞤤', + 125187 => '𞤥', + 125188 => '𞤦', + 125189 => '𞤧', + 125190 => '𞤨', + 125191 => '𞤩', + 125192 => '𞤪', + 125193 => '𞤫', + 125194 => '𞤬', + 125195 => '𞤭', + 125196 => '𞤮', + 125197 => '𞤯', + 125198 => '𞤰', + 125199 => '𞤱', + 125200 => '𞤲', + 125201 => '𞤳', + 125202 => '𞤴', + 125203 => '𞤵', + 125204 => '𞤶', + 125205 => '𞤷', + 125206 => '𞤸', + 125207 => '𞤹', + 125208 => '𞤺', + 125209 => '𞤻', + 125210 => '𞤼', + 125211 => '𞤽', + 125212 => '𞤾', + 125213 => '𞤿', + 125214 => '𞥀', + 125215 => '𞥁', + 125216 => '𞥂', + 125217 => '𞥃', + 126464 => 'ا', + 126465 => 'ب', + 126466 => 'ج', + 126467 => 'د', + 126469 => 'و', + 126470 => 'ز', + 126471 => 'ح', + 126472 => 'ط', + 126473 => 'ي', + 126474 => 'ك', + 126475 => 'ل', + 126476 => 'م', + 126477 => 'ن', + 126478 => 'س', + 126479 => 'ع', + 126480 => 'ف', + 126481 => 'ص', + 126482 => 'ق', + 126483 => 'ر', + 126484 => 'ش', + 126485 => 'ت', + 126486 => 'ث', + 126487 => 'خ', + 126488 => 'ذ', + 126489 => 'ض', + 126490 => 'ظ', + 126491 => 'غ', + 126492 => 'ٮ', + 126493 => 'ں', + 126494 => 'ڡ', + 126495 => 'ٯ', + 126497 => 'ب', + 126498 => 'ج', + 126500 => 'ه', + 126503 => 'ح', + 126505 => 'ي', + 126506 => 'ك', + 126507 => 'ل', + 126508 => 'م', + 126509 => 'ن', + 126510 => 'س', + 126511 => 'ع', + 126512 => 'ف', + 126513 => 'ص', + 126514 => 'ق', + 126516 => 'ش', + 126517 => 'ت', + 126518 => 'ث', + 126519 => 'خ', + 126521 => 'ض', + 126523 => 'غ', + 126530 => 'ج', + 126535 => 'ح', + 126537 => 'ي', + 126539 => 'ل', + 126541 => 'ن', + 126542 => 'س', + 126543 => 'ع', + 126545 => 'ص', + 126546 => 'ق', + 126548 => 'ش', + 126551 => 'خ', + 126553 => 'ض', + 126555 => 'غ', + 126557 => 'ں', + 126559 => 'ٯ', + 126561 => 'ب', + 126562 => 'ج', + 126564 => 'ه', + 126567 => 'ح', + 126568 => 'ط', + 126569 => 'ي', + 126570 => 'ك', + 126572 => 'م', + 126573 => 'ن', + 126574 => 'س', + 126575 => 'ع', + 126576 => 'ف', + 126577 => 'ص', + 126578 => 'ق', + 126580 => 'ش', + 126581 => 'ت', + 126582 => 'ث', + 126583 => 'خ', + 126585 => 'ض', + 126586 => 'ظ', + 126587 => 'غ', + 126588 => 'ٮ', + 126590 => 'ڡ', + 126592 => 'ا', + 126593 => 'ب', + 126594 => 'ج', + 126595 => 'د', + 126596 => 'ه', + 126597 => 'و', + 126598 => 'ز', + 126599 => 'ح', + 126600 => 'ط', + 126601 => 'ي', + 126603 => 'ل', + 126604 => 'م', + 126605 => 'ن', + 126606 => 'س', + 126607 => 'ع', + 126608 => 'ف', + 126609 => 'ص', + 126610 => 'ق', + 126611 => 'ر', + 126612 => 'ش', + 126613 => 'ت', + 126614 => 'ث', + 126615 => 'خ', + 126616 => 'ذ', + 126617 => 'ض', + 126618 => 'ظ', + 126619 => 'غ', + 126625 => 'ب', + 126626 => 'ج', + 126627 => 'د', + 126629 => 'و', + 126630 => 'ز', + 126631 => 'ح', + 126632 => 'ط', + 126633 => 'ي', + 126635 => 'ل', + 126636 => 'م', + 126637 => 'ن', + 126638 => 'س', + 126639 => 'ع', + 126640 => 'ف', + 126641 => 'ص', + 126642 => 'ق', + 126643 => 'ر', + 126644 => 'ش', + 126645 => 'ت', + 126646 => 'ث', + 126647 => 'خ', + 126648 => 'ذ', + 126649 => 'ض', + 126650 => 'ظ', + 126651 => 'غ', + 127274 => '〔s〕', + 127275 => 'c', + 127276 => 'r', + 127277 => 'cd', + 127278 => 'wz', + 127280 => 'a', + 127281 => 'b', + 127282 => 'c', + 127283 => 'd', + 127284 => 'e', + 127285 => 'f', + 127286 => 'g', + 127287 => 'h', + 127288 => 'i', + 127289 => 'j', + 127290 => 'k', + 127291 => 'l', + 127292 => 'm', + 127293 => 'n', + 127294 => 'o', + 127295 => 'p', + 127296 => 'q', + 127297 => 'r', + 127298 => 's', + 127299 => 't', + 127300 => 'u', + 127301 => 'v', + 127302 => 'w', + 127303 => 'x', + 127304 => 'y', + 127305 => 'z', + 127306 => 'hv', + 127307 => 'mv', + 127308 => 'sd', + 127309 => 'ss', + 127310 => 'ppv', + 127311 => 'wc', + 127338 => 'mc', + 127339 => 'md', + 127340 => 'mr', + 127376 => 'dj', + 127488 => 'ほか', + 127489 => 'ココ', + 127490 => 'サ', + 127504 => '手', + 127505 => '字', + 127506 => '双', + 127507 => 'デ', + 127508 => '二', + 127509 => '多', + 127510 => '解', + 127511 => '天', + 127512 => '交', + 127513 => '映', + 127514 => '無', + 127515 => '料', + 127516 => '前', + 127517 => '後', + 127518 => '再', + 127519 => '新', + 127520 => '初', + 127521 => '終', + 127522 => '生', + 127523 => '販', + 127524 => '声', + 127525 => '吹', + 127526 => '演', + 127527 => '投', + 127528 => '捕', + 127529 => '一', + 127530 => '三', + 127531 => '遊', + 127532 => '左', + 127533 => '中', + 127534 => '右', + 127535 => '指', + 127536 => '走', + 127537 => '打', + 127538 => '禁', + 127539 => '空', + 127540 => '合', + 127541 => '満', + 127542 => '有', + 127543 => '月', + 127544 => '申', + 127545 => '割', + 127546 => '営', + 127547 => '配', + 127552 => '〔本〕', + 127553 => '〔三〕', + 127554 => '〔二〕', + 127555 => '〔安〕', + 127556 => '〔点〕', + 127557 => '〔打〕', + 127558 => '〔盗〕', + 127559 => '〔勝〕', + 127560 => '〔敗〕', + 127568 => '得', + 127569 => '可', + 130032 => '0', + 130033 => '1', + 130034 => '2', + 130035 => '3', + 130036 => '4', + 130037 => '5', + 130038 => '6', + 130039 => '7', + 130040 => '8', + 130041 => '9', + 194560 => '丽', + 194561 => '丸', + 194562 => '乁', + 194563 => '𠄢', + 194564 => '你', + 194565 => '侮', + 194566 => '侻', + 194567 => '倂', + 194568 => '偺', + 194569 => '備', + 194570 => '僧', + 194571 => '像', + 194572 => '㒞', + 194573 => '𠘺', + 194574 => '免', + 194575 => '兔', + 194576 => '兤', + 194577 => '具', + 194578 => '𠔜', + 194579 => '㒹', + 194580 => '內', + 194581 => '再', + 194582 => '𠕋', + 194583 => '冗', + 194584 => '冤', + 194585 => '仌', + 194586 => '冬', + 194587 => '况', + 194588 => '𩇟', + 194589 => '凵', + 194590 => '刃', + 194591 => '㓟', + 194592 => '刻', + 194593 => '剆', + 194594 => '割', + 194595 => '剷', + 194596 => '㔕', + 194597 => '勇', + 194598 => '勉', + 194599 => '勤', + 194600 => '勺', + 194601 => '包', + 194602 => '匆', + 194603 => '北', + 194604 => '卉', + 194605 => '卑', + 194606 => '博', + 194607 => '即', + 194608 => '卽', + 194609 => '卿', + 194610 => '卿', + 194611 => '卿', + 194612 => '𠨬', + 194613 => '灰', + 194614 => '及', + 194615 => '叟', + 194616 => '𠭣', + 194617 => '叫', + 194618 => '叱', + 194619 => '吆', + 194620 => '咞', + 194621 => '吸', + 194622 => '呈', + 194623 => '周', + 194624 => '咢', + 194625 => '哶', + 194626 => '唐', + 194627 => '啓', + 194628 => '啣', + 194629 => '善', + 194630 => '善', + 194631 => '喙', + 194632 => '喫', + 194633 => '喳', + 194634 => '嗂', + 194635 => '圖', + 194636 => '嘆', + 194637 => '圗', + 194638 => '噑', + 194639 => '噴', + 194640 => '切', + 194641 => '壮', + 194642 => '城', + 194643 => '埴', + 194644 => '堍', + 194645 => '型', + 194646 => '堲', + 194647 => '報', + 194648 => '墬', + 194649 => '𡓤', + 194650 => '売', + 194651 => '壷', + 194652 => '夆', + 194653 => '多', + 194654 => '夢', + 194655 => '奢', + 194656 => '𡚨', + 194657 => '𡛪', + 194658 => '姬', + 194659 => '娛', + 194660 => '娧', + 194661 => '姘', + 194662 => '婦', + 194663 => '㛮', + 194665 => '嬈', + 194666 => '嬾', + 194667 => '嬾', + 194668 => '𡧈', + 194669 => '寃', + 194670 => '寘', + 194671 => '寧', + 194672 => '寳', + 194673 => '𡬘', + 194674 => '寿', + 194675 => '将', + 194677 => '尢', + 194678 => '㞁', + 194679 => '屠', + 194680 => '屮', + 194681 => '峀', + 194682 => '岍', + 194683 => '𡷤', + 194684 => '嵃', + 194685 => '𡷦', + 194686 => '嵮', + 194687 => '嵫', + 194688 => '嵼', + 194689 => '巡', + 194690 => '巢', + 194691 => '㠯', + 194692 => '巽', + 194693 => '帨', + 194694 => '帽', + 194695 => '幩', + 194696 => '㡢', + 194697 => '𢆃', + 194698 => '㡼', + 194699 => '庰', + 194700 => '庳', + 194701 => '庶', + 194702 => '廊', + 194703 => '𪎒', + 194704 => '廾', + 194705 => '𢌱', + 194706 => '𢌱', + 194707 => '舁', + 194708 => '弢', + 194709 => '弢', + 194710 => '㣇', + 194711 => '𣊸', + 194712 => '𦇚', + 194713 => '形', + 194714 => '彫', + 194715 => '㣣', + 194716 => '徚', + 194717 => '忍', + 194718 => '志', + 194719 => '忹', + 194720 => '悁', + 194721 => '㤺', + 194722 => '㤜', + 194723 => '悔', + 194724 => '𢛔', + 194725 => '惇', + 194726 => '慈', + 194727 => '慌', + 194728 => '慎', + 194729 => '慌', + 194730 => '慺', + 194731 => '憎', + 194732 => '憲', + 194733 => '憤', + 194734 => '憯', + 194735 => '懞', + 194736 => '懲', + 194737 => '懶', + 194738 => '成', + 194739 => '戛', + 194740 => '扝', + 194741 => '抱', + 194742 => '拔', + 194743 => '捐', + 194744 => '𢬌', + 194745 => '挽', + 194746 => '拼', + 194747 => '捨', + 194748 => '掃', + 194749 => '揤', + 194750 => '𢯱', + 194751 => '搢', + 194752 => '揅', + 194753 => '掩', + 194754 => '㨮', + 194755 => '摩', + 194756 => '摾', + 194757 => '撝', + 194758 => '摷', + 194759 => '㩬', + 194760 => '敏', + 194761 => '敬', + 194762 => '𣀊', + 194763 => '旣', + 194764 => '書', + 194765 => '晉', + 194766 => '㬙', + 194767 => '暑', + 194768 => '㬈', + 194769 => '㫤', + 194770 => '冒', + 194771 => '冕', + 194772 => '最', + 194773 => '暜', + 194774 => '肭', + 194775 => '䏙', + 194776 => '朗', + 194777 => '望', + 194778 => '朡', + 194779 => '杞', + 194780 => '杓', + 194781 => '𣏃', + 194782 => '㭉', + 194783 => '柺', + 194784 => '枅', + 194785 => '桒', + 194786 => '梅', + 194787 => '𣑭', + 194788 => '梎', + 194789 => '栟', + 194790 => '椔', + 194791 => '㮝', + 194792 => '楂', + 194793 => '榣', + 194794 => '槪', + 194795 => '檨', + 194796 => '𣚣', + 194797 => '櫛', + 194798 => '㰘', + 194799 => '次', + 194800 => '𣢧', + 194801 => '歔', + 194802 => '㱎', + 194803 => '歲', + 194804 => '殟', + 194805 => '殺', + 194806 => '殻', + 194807 => '𣪍', + 194808 => '𡴋', + 194809 => '𣫺', + 194810 => '汎', + 194811 => '𣲼', + 194812 => '沿', + 194813 => '泍', + 194814 => '汧', + 194815 => '洖', + 194816 => '派', + 194817 => '海', + 194818 => '流', + 194819 => '浩', + 194820 => '浸', + 194821 => '涅', + 194822 => '𣴞', + 194823 => '洴', + 194824 => '港', + 194825 => '湮', + 194826 => '㴳', + 194827 => '滋', + 194828 => '滇', + 194829 => '𣻑', + 194830 => '淹', + 194831 => '潮', + 194832 => '𣽞', + 194833 => '𣾎', + 194834 => '濆', + 194835 => '瀹', + 194836 => '瀞', + 194837 => '瀛', + 194838 => '㶖', + 194839 => '灊', + 194840 => '災', + 194841 => '灷', + 194842 => '炭', + 194843 => '𠔥', + 194844 => '煅', + 194845 => '𤉣', + 194846 => '熜', + 194848 => '爨', + 194849 => '爵', + 194850 => '牐', + 194851 => '𤘈', + 194852 => '犀', + 194853 => '犕', + 194854 => '𤜵', + 194855 => '𤠔', + 194856 => '獺', + 194857 => '王', + 194858 => '㺬', + 194859 => '玥', + 194860 => '㺸', + 194861 => '㺸', + 194862 => '瑇', + 194863 => '瑜', + 194864 => '瑱', + 194865 => '璅', + 194866 => '瓊', + 194867 => '㼛', + 194868 => '甤', + 194869 => '𤰶', + 194870 => '甾', + 194871 => '𤲒', + 194872 => '異', + 194873 => '𢆟', + 194874 => '瘐', + 194875 => '𤾡', + 194876 => '𤾸', + 194877 => '𥁄', + 194878 => '㿼', + 194879 => '䀈', + 194880 => '直', + 194881 => '𥃳', + 194882 => '𥃲', + 194883 => '𥄙', + 194884 => '𥄳', + 194885 => '眞', + 194886 => '真', + 194887 => '真', + 194888 => '睊', + 194889 => '䀹', + 194890 => '瞋', + 194891 => '䁆', + 194892 => '䂖', + 194893 => '𥐝', + 194894 => '硎', + 194895 => '碌', + 194896 => '磌', + 194897 => '䃣', + 194898 => '𥘦', + 194899 => '祖', + 194900 => '𥚚', + 194901 => '𥛅', + 194902 => '福', + 194903 => '秫', + 194904 => '䄯', + 194905 => '穀', + 194906 => '穊', + 194907 => '穏', + 194908 => '𥥼', + 194909 => '𥪧', + 194910 => '𥪧', + 194912 => '䈂', + 194913 => '𥮫', + 194914 => '篆', + 194915 => '築', + 194916 => '䈧', + 194917 => '𥲀', + 194918 => '糒', + 194919 => '䊠', + 194920 => '糨', + 194921 => '糣', + 194922 => '紀', + 194923 => '𥾆', + 194924 => '絣', + 194925 => '䌁', + 194926 => '緇', + 194927 => '縂', + 194928 => '繅', + 194929 => '䌴', + 194930 => '𦈨', + 194931 => '𦉇', + 194932 => '䍙', + 194933 => '𦋙', + 194934 => '罺', + 194935 => '𦌾', + 194936 => '羕', + 194937 => '翺', + 194938 => '者', + 194939 => '𦓚', + 194940 => '𦔣', + 194941 => '聠', + 194942 => '𦖨', + 194943 => '聰', + 194944 => '𣍟', + 194945 => '䏕', + 194946 => '育', + 194947 => '脃', + 194948 => '䐋', + 194949 => '脾', + 194950 => '媵', + 194951 => '𦞧', + 194952 => '𦞵', + 194953 => '𣎓', + 194954 => '𣎜', + 194955 => '舁', + 194956 => '舄', + 194957 => '辞', + 194958 => '䑫', + 194959 => '芑', + 194960 => '芋', + 194961 => '芝', + 194962 => '劳', + 194963 => '花', + 194964 => '芳', + 194965 => '芽', + 194966 => '苦', + 194967 => '𦬼', + 194968 => '若', + 194969 => '茝', + 194970 => '荣', + 194971 => '莭', + 194972 => '茣', + 194973 => '莽', + 194974 => '菧', + 194975 => '著', + 194976 => '荓', + 194977 => '菊', + 194978 => '菌', + 194979 => '菜', + 194980 => '𦰶', + 194981 => '𦵫', + 194982 => '𦳕', + 194983 => '䔫', + 194984 => '蓱', + 194985 => '蓳', + 194986 => '蔖', + 194987 => '𧏊', + 194988 => '蕤', + 194989 => '𦼬', + 194990 => '䕝', + 194991 => '䕡', + 194992 => '𦾱', + 194993 => '𧃒', + 194994 => '䕫', + 194995 => '虐', + 194996 => '虜', + 194997 => '虧', + 194998 => '虩', + 194999 => '蚩', + 195000 => '蚈', + 195001 => '蜎', + 195002 => '蛢', + 195003 => '蝹', + 195004 => '蜨', + 195005 => '蝫', + 195006 => '螆', + 195008 => '蟡', + 195009 => '蠁', + 195010 => '䗹', + 195011 => '衠', + 195012 => '衣', + 195013 => '𧙧', + 195014 => '裗', + 195015 => '裞', + 195016 => '䘵', + 195017 => '裺', + 195018 => '㒻', + 195019 => '𧢮', + 195020 => '𧥦', + 195021 => '䚾', + 195022 => '䛇', + 195023 => '誠', + 195024 => '諭', + 195025 => '變', + 195026 => '豕', + 195027 => '𧲨', + 195028 => '貫', + 195029 => '賁', + 195030 => '贛', + 195031 => '起', + 195032 => '𧼯', + 195033 => '𠠄', + 195034 => '跋', + 195035 => '趼', + 195036 => '跰', + 195037 => '𠣞', + 195038 => '軔', + 195039 => '輸', + 195040 => '𨗒', + 195041 => '𨗭', + 195042 => '邔', + 195043 => '郱', + 195044 => '鄑', + 195045 => '𨜮', + 195046 => '鄛', + 195047 => '鈸', + 195048 => '鋗', + 195049 => '鋘', + 195050 => '鉼', + 195051 => '鏹', + 195052 => '鐕', + 195053 => '𨯺', + 195054 => '開', + 195055 => '䦕', + 195056 => '閷', + 195057 => '𨵷', + 195058 => '䧦', + 195059 => '雃', + 195060 => '嶲', + 195061 => '霣', + 195062 => '𩅅', + 195063 => '𩈚', + 195064 => '䩮', + 195065 => '䩶', + 195066 => '韠', + 195067 => '𩐊', + 195068 => '䪲', + 195069 => '𩒖', + 195070 => '頋', + 195071 => '頋', + 195072 => '頩', + 195073 => '𩖶', + 195074 => '飢', + 195075 => '䬳', + 195076 => '餩', + 195077 => '馧', + 195078 => '駂', + 195079 => '駾', + 195080 => '䯎', + 195081 => '𩬰', + 195082 => '鬒', + 195083 => '鱀', + 195084 => '鳽', + 195085 => '䳎', + 195086 => '䳭', + 195087 => '鵧', + 195088 => '𪃎', + 195089 => '䳸', + 195090 => '𪄅', + 195091 => '𪈎', + 195092 => '𪊑', + 195093 => '麻', + 195094 => '䵖', + 195095 => '黹', + 195096 => '黾', + 195097 => '鼅', + 195098 => '鼏', + 195099 => '鼖', + 195100 => '鼻', + 195101 => '𪘀', +); diff --git a/user/plugins/email/vendor/symfony/polyfill-intl-idn/Resources/unidata/virama.php b/user/plugins/email/vendor/symfony/polyfill-intl-idn/Resources/unidata/virama.php new file mode 100644 index 0000000..1958e37 --- /dev/null +++ b/user/plugins/email/vendor/symfony/polyfill-intl-idn/Resources/unidata/virama.php @@ -0,0 +1,65 @@ + 9, + 2509 => 9, + 2637 => 9, + 2765 => 9, + 2893 => 9, + 3021 => 9, + 3149 => 9, + 3277 => 9, + 3387 => 9, + 3388 => 9, + 3405 => 9, + 3530 => 9, + 3642 => 9, + 3770 => 9, + 3972 => 9, + 4153 => 9, + 4154 => 9, + 5908 => 9, + 5940 => 9, + 6098 => 9, + 6752 => 9, + 6980 => 9, + 7082 => 9, + 7083 => 9, + 7154 => 9, + 7155 => 9, + 11647 => 9, + 43014 => 9, + 43052 => 9, + 43204 => 9, + 43347 => 9, + 43456 => 9, + 43766 => 9, + 44013 => 9, + 68159 => 9, + 69702 => 9, + 69759 => 9, + 69817 => 9, + 69939 => 9, + 69940 => 9, + 70080 => 9, + 70197 => 9, + 70378 => 9, + 70477 => 9, + 70722 => 9, + 70850 => 9, + 71103 => 9, + 71231 => 9, + 71350 => 9, + 71467 => 9, + 71737 => 9, + 71997 => 9, + 71998 => 9, + 72160 => 9, + 72244 => 9, + 72263 => 9, + 72345 => 9, + 72767 => 9, + 73028 => 9, + 73029 => 9, + 73111 => 9, +); diff --git a/user/plugins/email/vendor/symfony/polyfill-intl-idn/bootstrap.php b/user/plugins/email/vendor/symfony/polyfill-intl-idn/bootstrap.php new file mode 100644 index 0000000..57c7835 --- /dev/null +++ b/user/plugins/email/vendor/symfony/polyfill-intl-idn/bootstrap.php @@ -0,0 +1,145 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +use Symfony\Polyfill\Intl\Idn as p; + +if (extension_loaded('intl')) { + return; +} + +if (\PHP_VERSION_ID >= 80000) { + return require __DIR__.'/bootstrap80.php'; +} + +if (!defined('U_IDNA_PROHIBITED_ERROR')) { + define('U_IDNA_PROHIBITED_ERROR', 66560); +} +if (!defined('U_IDNA_ERROR_START')) { + define('U_IDNA_ERROR_START', 66560); +} +if (!defined('U_IDNA_UNASSIGNED_ERROR')) { + define('U_IDNA_UNASSIGNED_ERROR', 66561); +} +if (!defined('U_IDNA_CHECK_BIDI_ERROR')) { + define('U_IDNA_CHECK_BIDI_ERROR', 66562); +} +if (!defined('U_IDNA_STD3_ASCII_RULES_ERROR')) { + define('U_IDNA_STD3_ASCII_RULES_ERROR', 66563); +} +if (!defined('U_IDNA_ACE_PREFIX_ERROR')) { + define('U_IDNA_ACE_PREFIX_ERROR', 66564); +} +if (!defined('U_IDNA_VERIFICATION_ERROR')) { + define('U_IDNA_VERIFICATION_ERROR', 66565); +} +if (!defined('U_IDNA_LABEL_TOO_LONG_ERROR')) { + define('U_IDNA_LABEL_TOO_LONG_ERROR', 66566); +} +if (!defined('U_IDNA_ZERO_LENGTH_LABEL_ERROR')) { + define('U_IDNA_ZERO_LENGTH_LABEL_ERROR', 66567); +} +if (!defined('U_IDNA_DOMAIN_NAME_TOO_LONG_ERROR')) { + define('U_IDNA_DOMAIN_NAME_TOO_LONG_ERROR', 66568); +} +if (!defined('U_IDNA_ERROR_LIMIT')) { + define('U_IDNA_ERROR_LIMIT', 66569); +} +if (!defined('U_STRINGPREP_PROHIBITED_ERROR')) { + define('U_STRINGPREP_PROHIBITED_ERROR', 66560); +} +if (!defined('U_STRINGPREP_UNASSIGNED_ERROR')) { + define('U_STRINGPREP_UNASSIGNED_ERROR', 66561); +} +if (!defined('U_STRINGPREP_CHECK_BIDI_ERROR')) { + define('U_STRINGPREP_CHECK_BIDI_ERROR', 66562); +} +if (!defined('IDNA_DEFAULT')) { + define('IDNA_DEFAULT', 0); +} +if (!defined('IDNA_ALLOW_UNASSIGNED')) { + define('IDNA_ALLOW_UNASSIGNED', 1); +} +if (!defined('IDNA_USE_STD3_RULES')) { + define('IDNA_USE_STD3_RULES', 2); +} +if (!defined('IDNA_CHECK_BIDI')) { + define('IDNA_CHECK_BIDI', 4); +} +if (!defined('IDNA_CHECK_CONTEXTJ')) { + define('IDNA_CHECK_CONTEXTJ', 8); +} +if (!defined('IDNA_NONTRANSITIONAL_TO_ASCII')) { + define('IDNA_NONTRANSITIONAL_TO_ASCII', 16); +} +if (!defined('IDNA_NONTRANSITIONAL_TO_UNICODE')) { + define('IDNA_NONTRANSITIONAL_TO_UNICODE', 32); +} +if (!defined('INTL_IDNA_VARIANT_2003')) { + define('INTL_IDNA_VARIANT_2003', 0); +} +if (!defined('INTL_IDNA_VARIANT_UTS46')) { + define('INTL_IDNA_VARIANT_UTS46', 1); +} +if (!defined('IDNA_ERROR_EMPTY_LABEL')) { + define('IDNA_ERROR_EMPTY_LABEL', 1); +} +if (!defined('IDNA_ERROR_LABEL_TOO_LONG')) { + define('IDNA_ERROR_LABEL_TOO_LONG', 2); +} +if (!defined('IDNA_ERROR_DOMAIN_NAME_TOO_LONG')) { + define('IDNA_ERROR_DOMAIN_NAME_TOO_LONG', 4); +} +if (!defined('IDNA_ERROR_LEADING_HYPHEN')) { + define('IDNA_ERROR_LEADING_HYPHEN', 8); +} +if (!defined('IDNA_ERROR_TRAILING_HYPHEN')) { + define('IDNA_ERROR_TRAILING_HYPHEN', 16); +} +if (!defined('IDNA_ERROR_HYPHEN_3_4')) { + define('IDNA_ERROR_HYPHEN_3_4', 32); +} +if (!defined('IDNA_ERROR_LEADING_COMBINING_MARK')) { + define('IDNA_ERROR_LEADING_COMBINING_MARK', 64); +} +if (!defined('IDNA_ERROR_DISALLOWED')) { + define('IDNA_ERROR_DISALLOWED', 128); +} +if (!defined('IDNA_ERROR_PUNYCODE')) { + define('IDNA_ERROR_PUNYCODE', 256); +} +if (!defined('IDNA_ERROR_LABEL_HAS_DOT')) { + define('IDNA_ERROR_LABEL_HAS_DOT', 512); +} +if (!defined('IDNA_ERROR_INVALID_ACE_LABEL')) { + define('IDNA_ERROR_INVALID_ACE_LABEL', 1024); +} +if (!defined('IDNA_ERROR_BIDI')) { + define('IDNA_ERROR_BIDI', 2048); +} +if (!defined('IDNA_ERROR_CONTEXTJ')) { + define('IDNA_ERROR_CONTEXTJ', 4096); +} + +if (\PHP_VERSION_ID < 70400) { + if (!function_exists('idn_to_ascii')) { + function idn_to_ascii($domain, $flags = 0, $variant = \INTL_IDNA_VARIANT_2003, &$idna_info = null) { return p\Idn::idn_to_ascii($domain, $flags, $variant, $idna_info); } + } + if (!function_exists('idn_to_utf8')) { + function idn_to_utf8($domain, $flags = 0, $variant = \INTL_IDNA_VARIANT_2003, &$idna_info = null) { return p\Idn::idn_to_utf8($domain, $flags, $variant, $idna_info); } + } +} else { + if (!function_exists('idn_to_ascii')) { + function idn_to_ascii($domain, $flags = 0, $variant = \INTL_IDNA_VARIANT_UTS46, &$idna_info = null) { return p\Idn::idn_to_ascii($domain, $flags, $variant, $idna_info); } + } + if (!function_exists('idn_to_utf8')) { + function idn_to_utf8($domain, $flags = 0, $variant = \INTL_IDNA_VARIANT_UTS46, &$idna_info = null) { return p\Idn::idn_to_utf8($domain, $flags, $variant, $idna_info); } + } +} diff --git a/user/plugins/email/vendor/symfony/polyfill-intl-idn/bootstrap80.php b/user/plugins/email/vendor/symfony/polyfill-intl-idn/bootstrap80.php new file mode 100644 index 0000000..a62c2d6 --- /dev/null +++ b/user/plugins/email/vendor/symfony/polyfill-intl-idn/bootstrap80.php @@ -0,0 +1,125 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +use Symfony\Polyfill\Intl\Idn as p; + +if (!defined('U_IDNA_PROHIBITED_ERROR')) { + define('U_IDNA_PROHIBITED_ERROR', 66560); +} +if (!defined('U_IDNA_ERROR_START')) { + define('U_IDNA_ERROR_START', 66560); +} +if (!defined('U_IDNA_UNASSIGNED_ERROR')) { + define('U_IDNA_UNASSIGNED_ERROR', 66561); +} +if (!defined('U_IDNA_CHECK_BIDI_ERROR')) { + define('U_IDNA_CHECK_BIDI_ERROR', 66562); +} +if (!defined('U_IDNA_STD3_ASCII_RULES_ERROR')) { + define('U_IDNA_STD3_ASCII_RULES_ERROR', 66563); +} +if (!defined('U_IDNA_ACE_PREFIX_ERROR')) { + define('U_IDNA_ACE_PREFIX_ERROR', 66564); +} +if (!defined('U_IDNA_VERIFICATION_ERROR')) { + define('U_IDNA_VERIFICATION_ERROR', 66565); +} +if (!defined('U_IDNA_LABEL_TOO_LONG_ERROR')) { + define('U_IDNA_LABEL_TOO_LONG_ERROR', 66566); +} +if (!defined('U_IDNA_ZERO_LENGTH_LABEL_ERROR')) { + define('U_IDNA_ZERO_LENGTH_LABEL_ERROR', 66567); +} +if (!defined('U_IDNA_DOMAIN_NAME_TOO_LONG_ERROR')) { + define('U_IDNA_DOMAIN_NAME_TOO_LONG_ERROR', 66568); +} +if (!defined('U_IDNA_ERROR_LIMIT')) { + define('U_IDNA_ERROR_LIMIT', 66569); +} +if (!defined('U_STRINGPREP_PROHIBITED_ERROR')) { + define('U_STRINGPREP_PROHIBITED_ERROR', 66560); +} +if (!defined('U_STRINGPREP_UNASSIGNED_ERROR')) { + define('U_STRINGPREP_UNASSIGNED_ERROR', 66561); +} +if (!defined('U_STRINGPREP_CHECK_BIDI_ERROR')) { + define('U_STRINGPREP_CHECK_BIDI_ERROR', 66562); +} +if (!defined('IDNA_DEFAULT')) { + define('IDNA_DEFAULT', 0); +} +if (!defined('IDNA_ALLOW_UNASSIGNED')) { + define('IDNA_ALLOW_UNASSIGNED', 1); +} +if (!defined('IDNA_USE_STD3_RULES')) { + define('IDNA_USE_STD3_RULES', 2); +} +if (!defined('IDNA_CHECK_BIDI')) { + define('IDNA_CHECK_BIDI', 4); +} +if (!defined('IDNA_CHECK_CONTEXTJ')) { + define('IDNA_CHECK_CONTEXTJ', 8); +} +if (!defined('IDNA_NONTRANSITIONAL_TO_ASCII')) { + define('IDNA_NONTRANSITIONAL_TO_ASCII', 16); +} +if (!defined('IDNA_NONTRANSITIONAL_TO_UNICODE')) { + define('IDNA_NONTRANSITIONAL_TO_UNICODE', 32); +} +if (!defined('INTL_IDNA_VARIANT_UTS46')) { + define('INTL_IDNA_VARIANT_UTS46', 1); +} +if (!defined('IDNA_ERROR_EMPTY_LABEL')) { + define('IDNA_ERROR_EMPTY_LABEL', 1); +} +if (!defined('IDNA_ERROR_LABEL_TOO_LONG')) { + define('IDNA_ERROR_LABEL_TOO_LONG', 2); +} +if (!defined('IDNA_ERROR_DOMAIN_NAME_TOO_LONG')) { + define('IDNA_ERROR_DOMAIN_NAME_TOO_LONG', 4); +} +if (!defined('IDNA_ERROR_LEADING_HYPHEN')) { + define('IDNA_ERROR_LEADING_HYPHEN', 8); +} +if (!defined('IDNA_ERROR_TRAILING_HYPHEN')) { + define('IDNA_ERROR_TRAILING_HYPHEN', 16); +} +if (!defined('IDNA_ERROR_HYPHEN_3_4')) { + define('IDNA_ERROR_HYPHEN_3_4', 32); +} +if (!defined('IDNA_ERROR_LEADING_COMBINING_MARK')) { + define('IDNA_ERROR_LEADING_COMBINING_MARK', 64); +} +if (!defined('IDNA_ERROR_DISALLOWED')) { + define('IDNA_ERROR_DISALLOWED', 128); +} +if (!defined('IDNA_ERROR_PUNYCODE')) { + define('IDNA_ERROR_PUNYCODE', 256); +} +if (!defined('IDNA_ERROR_LABEL_HAS_DOT')) { + define('IDNA_ERROR_LABEL_HAS_DOT', 512); +} +if (!defined('IDNA_ERROR_INVALID_ACE_LABEL')) { + define('IDNA_ERROR_INVALID_ACE_LABEL', 1024); +} +if (!defined('IDNA_ERROR_BIDI')) { + define('IDNA_ERROR_BIDI', 2048); +} +if (!defined('IDNA_ERROR_CONTEXTJ')) { + define('IDNA_ERROR_CONTEXTJ', 4096); +} + +if (!function_exists('idn_to_ascii')) { + function idn_to_ascii(?string $domain, ?int $flags = IDNA_DEFAULT, ?int $variant = INTL_IDNA_VARIANT_UTS46, &$idna_info = null): string|false { return p\Idn::idn_to_ascii((string) $domain, (int) $flags, (int) $variant, $idna_info); } +} +if (!function_exists('idn_to_utf8')) { + function idn_to_utf8(?string $domain, ?int $flags = IDNA_DEFAULT, ?int $variant = INTL_IDNA_VARIANT_UTS46, &$idna_info = null): string|false { return p\Idn::idn_to_utf8((string) $domain, (int) $flags, (int) $variant, $idna_info); } +} diff --git a/user/plugins/email/vendor/symfony/polyfill-intl-idn/composer.json b/user/plugins/email/vendor/symfony/polyfill-intl-idn/composer.json new file mode 100644 index 0000000..c5a2a46 --- /dev/null +++ b/user/plugins/email/vendor/symfony/polyfill-intl-idn/composer.json @@ -0,0 +1,44 @@ +{ + "name": "symfony/polyfill-intl-idn", + "type": "library", + "description": "Symfony polyfill for intl's idn_to_ascii and idn_to_utf8 functions", + "keywords": ["polyfill", "shim", "compatibility", "portable", "intl", "idn"], + "homepage": "https://symfony.com", + "license": "MIT", + "authors": [ + { + "name": "Laurent Bassin", + "email": "laurent@bassin.info" + }, + { + "name": "Trevor Rowbotham", + "email": "trevor.rowbotham@pm.me" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "require": { + "php": ">=7.1", + "symfony/polyfill-intl-normalizer": "^1.10", + "symfony/polyfill-php72": "^1.10" + }, + "autoload": { + "psr-4": { "Symfony\\Polyfill\\Intl\\Idn\\": "" }, + "files": [ "bootstrap.php" ] + }, + "suggest": { + "ext-intl": "For best performance" + }, + "minimum-stability": "dev", + "extra": { + "branch-alias": { + "dev-main": "1.23-dev" + }, + "thanks": { + "name": "symfony/polyfill", + "url": "https://github.com/symfony/polyfill" + } + } +} diff --git a/user/plugins/email/vendor/symfony/polyfill-intl-normalizer/LICENSE b/user/plugins/email/vendor/symfony/polyfill-intl-normalizer/LICENSE new file mode 100644 index 0000000..4cd8bdd --- /dev/null +++ b/user/plugins/email/vendor/symfony/polyfill-intl-normalizer/LICENSE @@ -0,0 +1,19 @@ +Copyright (c) 2015-2019 Fabien Potencier + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is furnished +to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. diff --git a/user/plugins/email/vendor/symfony/polyfill-intl-normalizer/Normalizer.php b/user/plugins/email/vendor/symfony/polyfill-intl-normalizer/Normalizer.php new file mode 100644 index 0000000..4443c23 --- /dev/null +++ b/user/plugins/email/vendor/symfony/polyfill-intl-normalizer/Normalizer.php @@ -0,0 +1,310 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Symfony\Polyfill\Intl\Normalizer; + +/** + * Normalizer is a PHP fallback implementation of the Normalizer class provided by the intl extension. + * + * It has been validated with Unicode 6.3 Normalization Conformance Test. + * See http://www.unicode.org/reports/tr15/ for detailed info about Unicode normalizations. + * + * @author Nicolas Grekas + * + * @internal + */ +class Normalizer +{ + public const FORM_D = \Normalizer::FORM_D; + public const FORM_KD = \Normalizer::FORM_KD; + public const FORM_C = \Normalizer::FORM_C; + public const FORM_KC = \Normalizer::FORM_KC; + public const NFD = \Normalizer::NFD; + public const NFKD = \Normalizer::NFKD; + public const NFC = \Normalizer::NFC; + public const NFKC = \Normalizer::NFKC; + + private static $C; + private static $D; + private static $KD; + private static $cC; + private static $ulenMask = ["\xC0" => 2, "\xD0" => 2, "\xE0" => 3, "\xF0" => 4]; + private static $ASCII = "\x20\x65\x69\x61\x73\x6E\x74\x72\x6F\x6C\x75\x64\x5D\x5B\x63\x6D\x70\x27\x0A\x67\x7C\x68\x76\x2E\x66\x62\x2C\x3A\x3D\x2D\x71\x31\x30\x43\x32\x2A\x79\x78\x29\x28\x4C\x39\x41\x53\x2F\x50\x22\x45\x6A\x4D\x49\x6B\x33\x3E\x35\x54\x3C\x44\x34\x7D\x42\x7B\x38\x46\x77\x52\x36\x37\x55\x47\x4E\x3B\x4A\x7A\x56\x23\x48\x4F\x57\x5F\x26\x21\x4B\x3F\x58\x51\x25\x59\x5C\x09\x5A\x2B\x7E\x5E\x24\x40\x60\x7F\x00\x01\x02\x03\x04\x05\x06\x07\x08\x0B\x0C\x0D\x0E\x0F\x10\x11\x12\x13\x14\x15\x16\x17\x18\x19\x1A\x1B\x1C\x1D\x1E\x1F"; + + public static function isNormalized(string $s, int $form = self::FORM_C) + { + if (!\in_array($form, [self::NFD, self::NFKD, self::NFC, self::NFKC])) { + return false; + } + if (!isset($s[strspn($s, self::$ASCII)])) { + return true; + } + if (self::NFC == $form && preg_match('//u', $s) && !preg_match('/[^\x00-\x{2FF}]/u', $s)) { + return true; + } + + return self::normalize($s, $form) === $s; + } + + public static function normalize(string $s, int $form = self::FORM_C) + { + if (!preg_match('//u', $s)) { + return false; + } + + switch ($form) { + case self::NFC: $C = true; $K = false; break; + case self::NFD: $C = false; $K = false; break; + case self::NFKC: $C = true; $K = true; break; + case self::NFKD: $C = false; $K = true; break; + default: + if (\defined('Normalizer::NONE') && \Normalizer::NONE == $form) { + return $s; + } + + if (80000 > \PHP_VERSION_ID) { + return false; + } + + throw new \ValueError('normalizer_normalize(): Argument #2 ($form) must be a a valid normalization form'); + } + + if ('' === $s) { + return ''; + } + + if ($K && null === self::$KD) { + self::$KD = self::getData('compatibilityDecomposition'); + } + + if (null === self::$D) { + self::$D = self::getData('canonicalDecomposition'); + self::$cC = self::getData('combiningClass'); + } + + if (null !== $mbEncoding = (2 /* MB_OVERLOAD_STRING */ & (int) ini_get('mbstring.func_overload')) ? mb_internal_encoding() : null) { + mb_internal_encoding('8bit'); + } + + $r = self::decompose($s, $K); + + if ($C) { + if (null === self::$C) { + self::$C = self::getData('canonicalComposition'); + } + + $r = self::recompose($r); + } + if (null !== $mbEncoding) { + mb_internal_encoding($mbEncoding); + } + + return $r; + } + + private static function recompose($s) + { + $ASCII = self::$ASCII; + $compMap = self::$C; + $combClass = self::$cC; + $ulenMask = self::$ulenMask; + + $result = $tail = ''; + + $i = $s[0] < "\x80" ? 1 : $ulenMask[$s[0] & "\xF0"]; + $len = \strlen($s); + + $lastUchr = substr($s, 0, $i); + $lastUcls = isset($combClass[$lastUchr]) ? 256 : 0; + + while ($i < $len) { + if ($s[$i] < "\x80") { + // ASCII chars + + if ($tail) { + $lastUchr .= $tail; + $tail = ''; + } + + if ($j = strspn($s, $ASCII, $i + 1)) { + $lastUchr .= substr($s, $i, $j); + $i += $j; + } + + $result .= $lastUchr; + $lastUchr = $s[$i]; + $lastUcls = 0; + ++$i; + continue; + } + + $ulen = $ulenMask[$s[$i] & "\xF0"]; + $uchr = substr($s, $i, $ulen); + + if ($lastUchr < "\xE1\x84\x80" || "\xE1\x84\x92" < $lastUchr + || $uchr < "\xE1\x85\xA1" || "\xE1\x85\xB5" < $uchr + || $lastUcls) { + // Table lookup and combining chars composition + + $ucls = $combClass[$uchr] ?? 0; + + if (isset($compMap[$lastUchr.$uchr]) && (!$lastUcls || $lastUcls < $ucls)) { + $lastUchr = $compMap[$lastUchr.$uchr]; + } elseif ($lastUcls = $ucls) { + $tail .= $uchr; + } else { + if ($tail) { + $lastUchr .= $tail; + $tail = ''; + } + + $result .= $lastUchr; + $lastUchr = $uchr; + } + } else { + // Hangul chars + + $L = \ord($lastUchr[2]) - 0x80; + $V = \ord($uchr[2]) - 0xA1; + $T = 0; + + $uchr = substr($s, $i + $ulen, 3); + + if ("\xE1\x86\xA7" <= $uchr && $uchr <= "\xE1\x87\x82") { + $T = \ord($uchr[2]) - 0xA7; + 0 > $T && $T += 0x40; + $ulen += 3; + } + + $L = 0xAC00 + ($L * 21 + $V) * 28 + $T; + $lastUchr = \chr(0xE0 | $L >> 12).\chr(0x80 | $L >> 6 & 0x3F).\chr(0x80 | $L & 0x3F); + } + + $i += $ulen; + } + + return $result.$lastUchr.$tail; + } + + private static function decompose($s, $c) + { + $result = ''; + + $ASCII = self::$ASCII; + $decompMap = self::$D; + $combClass = self::$cC; + $ulenMask = self::$ulenMask; + if ($c) { + $compatMap = self::$KD; + } + + $c = []; + $i = 0; + $len = \strlen($s); + + while ($i < $len) { + if ($s[$i] < "\x80") { + // ASCII chars + + if ($c) { + ksort($c); + $result .= implode('', $c); + $c = []; + } + + $j = 1 + strspn($s, $ASCII, $i + 1); + $result .= substr($s, $i, $j); + $i += $j; + continue; + } + + $ulen = $ulenMask[$s[$i] & "\xF0"]; + $uchr = substr($s, $i, $ulen); + $i += $ulen; + + if ($uchr < "\xEA\xB0\x80" || "\xED\x9E\xA3" < $uchr) { + // Table lookup + + if ($uchr !== $j = $compatMap[$uchr] ?? ($decompMap[$uchr] ?? $uchr)) { + $uchr = $j; + + $j = \strlen($uchr); + $ulen = $uchr[0] < "\x80" ? 1 : $ulenMask[$uchr[0] & "\xF0"]; + + if ($ulen != $j) { + // Put trailing chars in $s + + $j -= $ulen; + $i -= $j; + + if (0 > $i) { + $s = str_repeat(' ', -$i).$s; + $len -= $i; + $i = 0; + } + + while ($j--) { + $s[$i + $j] = $uchr[$ulen + $j]; + } + + $uchr = substr($uchr, 0, $ulen); + } + } + if (isset($combClass[$uchr])) { + // Combining chars, for sorting + + if (!isset($c[$combClass[$uchr]])) { + $c[$combClass[$uchr]] = ''; + } + $c[$combClass[$uchr]] .= $uchr; + continue; + } + } else { + // Hangul chars + + $uchr = unpack('C*', $uchr); + $j = (($uchr[1] - 224) << 12) + (($uchr[2] - 128) << 6) + $uchr[3] - 0xAC80; + + $uchr = "\xE1\x84".\chr(0x80 + (int) ($j / 588)) + ."\xE1\x85".\chr(0xA1 + (int) (($j % 588) / 28)); + + if ($j %= 28) { + $uchr .= $j < 25 + ? ("\xE1\x86".\chr(0xA7 + $j)) + : ("\xE1\x87".\chr(0x67 + $j)); + } + } + if ($c) { + ksort($c); + $result .= implode('', $c); + $c = []; + } + + $result .= $uchr; + } + + if ($c) { + ksort($c); + $result .= implode('', $c); + } + + return $result; + } + + private static function getData($file) + { + if (file_exists($file = __DIR__.'/Resources/unidata/'.$file.'.php')) { + return require $file; + } + + return false; + } +} diff --git a/user/plugins/email/vendor/symfony/polyfill-intl-normalizer/README.md b/user/plugins/email/vendor/symfony/polyfill-intl-normalizer/README.md new file mode 100644 index 0000000..15060c5 --- /dev/null +++ b/user/plugins/email/vendor/symfony/polyfill-intl-normalizer/README.md @@ -0,0 +1,14 @@ +Symfony Polyfill / Intl: Normalizer +=================================== + +This component provides a fallback implementation for the +[`Normalizer`](https://php.net/Normalizer) class provided +by the [Intl](https://php.net/intl) extension. + +More information can be found in the +[main Polyfill README](https://github.com/symfony/polyfill/blob/master/README.md). + +License +======= + +This library is released under the [MIT license](LICENSE). diff --git a/user/plugins/email/vendor/symfony/polyfill-intl-normalizer/Resources/stubs/Normalizer.php b/user/plugins/email/vendor/symfony/polyfill-intl-normalizer/Resources/stubs/Normalizer.php new file mode 100644 index 0000000..0fdfc89 --- /dev/null +++ b/user/plugins/email/vendor/symfony/polyfill-intl-normalizer/Resources/stubs/Normalizer.php @@ -0,0 +1,17 @@ + 'À', + 'Á' => 'Á', + 'Â' => 'Â', + 'Ã' => 'Ã', + 'Ä' => 'Ä', + 'Å' => 'Å', + 'Ç' => 'Ç', + 'È' => 'È', + 'É' => 'É', + 'Ê' => 'Ê', + 'Ë' => 'Ë', + 'Ì' => 'Ì', + 'Í' => 'Í', + 'Î' => 'Î', + 'Ï' => 'Ï', + 'Ñ' => 'Ñ', + 'Ò' => 'Ò', + 'Ó' => 'Ó', + 'Ô' => 'Ô', + 'Õ' => 'Õ', + 'Ö' => 'Ö', + 'Ù' => 'Ù', + 'Ú' => 'Ú', + 'Û' => 'Û', + 'Ü' => 'Ü', + 'Ý' => 'Ý', + 'à' => 'à', + 'á' => 'á', + 'â' => 'â', + 'ã' => 'ã', + 'ä' => 'ä', + 'å' => 'å', + 'ç' => 'ç', + 'è' => 'è', + 'é' => 'é', + 'ê' => 'ê', + 'ë' => 'ë', + 'ì' => 'ì', + 'í' => 'í', + 'î' => 'î', + 'ï' => 'ï', + 'ñ' => 'ñ', + 'ò' => 'ò', + 'ó' => 'ó', + 'ô' => 'ô', + 'õ' => 'õ', + 'ö' => 'ö', + 'ù' => 'ù', + 'ú' => 'ú', + 'û' => 'û', + 'ü' => 'ü', + 'ý' => 'ý', + 'ÿ' => 'ÿ', + 'Ā' => 'Ā', + 'ā' => 'ā', + 'Ă' => 'Ă', + 'ă' => 'ă', + 'Ą' => 'Ą', + 'ą' => 'ą', + 'Ć' => 'Ć', + 'ć' => 'ć', + 'Ĉ' => 'Ĉ', + 'ĉ' => 'ĉ', + 'Ċ' => 'Ċ', + 'ċ' => 'ċ', + 'Č' => 'Č', + 'č' => 'č', + 'Ď' => 'Ď', + 'ď' => 'ď', + 'Ē' => 'Ē', + 'ē' => 'ē', + 'Ĕ' => 'Ĕ', + 'ĕ' => 'ĕ', + 'Ė' => 'Ė', + 'ė' => 'ė', + 'Ę' => 'Ę', + 'ę' => 'ę', + 'Ě' => 'Ě', + 'ě' => 'ě', + 'Ĝ' => 'Ĝ', + 'ĝ' => 'ĝ', + 'Ğ' => 'Ğ', + 'ğ' => 'ğ', + 'Ġ' => 'Ġ', + 'ġ' => 'ġ', + 'Ģ' => 'Ģ', + 'ģ' => 'ģ', + 'Ĥ' => 'Ĥ', + 'ĥ' => 'ĥ', + 'Ĩ' => 'Ĩ', + 'ĩ' => 'ĩ', + 'Ī' => 'Ī', + 'ī' => 'ī', + 'Ĭ' => 'Ĭ', + 'ĭ' => 'ĭ', + 'Į' => 'Į', + 'į' => 'į', + 'İ' => 'İ', + 'Ĵ' => 'Ĵ', + 'ĵ' => 'ĵ', + 'Ķ' => 'Ķ', + 'ķ' => 'ķ', + 'Ĺ' => 'Ĺ', + 'ĺ' => 'ĺ', + 'Ļ' => 'Ļ', + 'ļ' => 'ļ', + 'Ľ' => 'Ľ', + 'ľ' => 'ľ', + 'Ń' => 'Ń', + 'ń' => 'ń', + 'Ņ' => 'Ņ', + 'ņ' => 'ņ', + 'Ň' => 'Ň', + 'ň' => 'ň', + 'Ō' => 'Ō', + 'ō' => 'ō', + 'Ŏ' => 'Ŏ', + 'ŏ' => 'ŏ', + 'Ő' => 'Ő', + 'ő' => 'ő', + 'Ŕ' => 'Ŕ', + 'ŕ' => 'ŕ', + 'Ŗ' => 'Ŗ', + 'ŗ' => 'ŗ', + 'Ř' => 'Ř', + 'ř' => 'ř', + 'Ś' => 'Ś', + 'ś' => 'ś', + 'Ŝ' => 'Ŝ', + 'ŝ' => 'ŝ', + 'Ş' => 'Ş', + 'ş' => 'ş', + 'Š' => 'Š', + 'š' => 'š', + 'Ţ' => 'Ţ', + 'ţ' => 'ţ', + 'Ť' => 'Ť', + 'ť' => 'ť', + 'Ũ' => 'Ũ', + 'ũ' => 'ũ', + 'Ū' => 'Ū', + 'ū' => 'ū', + 'Ŭ' => 'Ŭ', + 'ŭ' => 'ŭ', + 'Ů' => 'Ů', + 'ů' => 'ů', + 'Ű' => 'Ű', + 'ű' => 'ű', + 'Ų' => 'Ų', + 'ų' => 'ų', + 'Ŵ' => 'Ŵ', + 'ŵ' => 'ŵ', + 'Ŷ' => 'Ŷ', + 'ŷ' => 'ŷ', + 'Ÿ' => 'Ÿ', + 'Ź' => 'Ź', + 'ź' => 'ź', + 'Ż' => 'Ż', + 'ż' => 'ż', + 'Ž' => 'Ž', + 'ž' => 'ž', + 'Ơ' => 'Ơ', + 'ơ' => 'ơ', + 'Ư' => 'Ư', + 'ư' => 'ư', + 'Ǎ' => 'Ǎ', + 'ǎ' => 'ǎ', + 'Ǐ' => 'Ǐ', + 'ǐ' => 'ǐ', + 'Ǒ' => 'Ǒ', + 'ǒ' => 'ǒ', + 'Ǔ' => 'Ǔ', + 'ǔ' => 'ǔ', + 'Ǖ' => 'Ǖ', + 'ǖ' => 'ǖ', + 'Ǘ' => 'Ǘ', + 'ǘ' => 'ǘ', + 'Ǚ' => 'Ǚ', + 'ǚ' => 'ǚ', + 'Ǜ' => 'Ǜ', + 'ǜ' => 'ǜ', + 'Ǟ' => 'Ǟ', + 'ǟ' => 'ǟ', + 'Ǡ' => 'Ǡ', + 'ǡ' => 'ǡ', + 'Ǣ' => 'Ǣ', + 'ǣ' => 'ǣ', + 'Ǧ' => 'Ǧ', + 'ǧ' => 'ǧ', + 'Ǩ' => 'Ǩ', + 'ǩ' => 'ǩ', + 'Ǫ' => 'Ǫ', + 'ǫ' => 'ǫ', + 'Ǭ' => 'Ǭ', + 'ǭ' => 'ǭ', + 'Ǯ' => 'Ǯ', + 'ǯ' => 'ǯ', + 'ǰ' => 'ǰ', + 'Ǵ' => 'Ǵ', + 'ǵ' => 'ǵ', + 'Ǹ' => 'Ǹ', + 'ǹ' => 'ǹ', + 'Ǻ' => 'Ǻ', + 'ǻ' => 'ǻ', + 'Ǽ' => 'Ǽ', + 'ǽ' => 'ǽ', + 'Ǿ' => 'Ǿ', + 'ǿ' => 'ǿ', + 'Ȁ' => 'Ȁ', + 'ȁ' => 'ȁ', + 'Ȃ' => 'Ȃ', + 'ȃ' => 'ȃ', + 'Ȅ' => 'Ȅ', + 'ȅ' => 'ȅ', + 'Ȇ' => 'Ȇ', + 'ȇ' => 'ȇ', + 'Ȉ' => 'Ȉ', + 'ȉ' => 'ȉ', + 'Ȋ' => 'Ȋ', + 'ȋ' => 'ȋ', + 'Ȍ' => 'Ȍ', + 'ȍ' => 'ȍ', + 'Ȏ' => 'Ȏ', + 'ȏ' => 'ȏ', + 'Ȑ' => 'Ȑ', + 'ȑ' => 'ȑ', + 'Ȓ' => 'Ȓ', + 'ȓ' => 'ȓ', + 'Ȕ' => 'Ȕ', + 'ȕ' => 'ȕ', + 'Ȗ' => 'Ȗ', + 'ȗ' => 'ȗ', + 'Ș' => 'Ș', + 'ș' => 'ș', + 'Ț' => 'Ț', + 'ț' => 'ț', + 'Ȟ' => 'Ȟ', + 'ȟ' => 'ȟ', + 'Ȧ' => 'Ȧ', + 'ȧ' => 'ȧ', + 'Ȩ' => 'Ȩ', + 'ȩ' => 'ȩ', + 'Ȫ' => 'Ȫ', + 'ȫ' => 'ȫ', + 'Ȭ' => 'Ȭ', + 'ȭ' => 'ȭ', + 'Ȯ' => 'Ȯ', + 'ȯ' => 'ȯ', + 'Ȱ' => 'Ȱ', + 'ȱ' => 'ȱ', + 'Ȳ' => 'Ȳ', + 'ȳ' => 'ȳ', + '΅' => '΅', + 'Ά' => 'Ά', + 'Έ' => 'Έ', + 'Ή' => 'Ή', + 'Ί' => 'Ί', + 'Ό' => 'Ό', + 'Ύ' => 'Ύ', + 'Ώ' => 'Ώ', + 'ΐ' => 'ΐ', + 'Ϊ' => 'Ϊ', + 'Ϋ' => 'Ϋ', + 'ά' => 'ά', + 'έ' => 'έ', + 'ή' => 'ή', + 'ί' => 'ί', + 'ΰ' => 'ΰ', + 'ϊ' => 'ϊ', + 'ϋ' => 'ϋ', + 'ό' => 'ό', + 'ύ' => 'ύ', + 'ώ' => 'ώ', + 'ϓ' => 'ϓ', + 'ϔ' => 'ϔ', + 'Ѐ' => 'Ѐ', + 'Ё' => 'Ё', + 'Ѓ' => 'Ѓ', + 'Ї' => 'Ї', + 'Ќ' => 'Ќ', + 'Ѝ' => 'Ѝ', + 'Ў' => 'Ў', + 'Й' => 'Й', + 'й' => 'й', + 'ѐ' => 'ѐ', + 'ё' => 'ё', + 'ѓ' => 'ѓ', + 'ї' => 'ї', + 'ќ' => 'ќ', + 'ѝ' => 'ѝ', + 'ў' => 'ў', + 'Ѷ' => 'Ѷ', + 'ѷ' => 'ѷ', + 'Ӂ' => 'Ӂ', + 'ӂ' => 'ӂ', + 'Ӑ' => 'Ӑ', + 'ӑ' => 'ӑ', + 'Ӓ' => 'Ӓ', + 'ӓ' => 'ӓ', + 'Ӗ' => 'Ӗ', + 'ӗ' => 'ӗ', + 'Ӛ' => 'Ӛ', + 'ӛ' => 'ӛ', + 'Ӝ' => 'Ӝ', + 'ӝ' => 'ӝ', + 'Ӟ' => 'Ӟ', + 'ӟ' => 'ӟ', + 'Ӣ' => 'Ӣ', + 'ӣ' => 'ӣ', + 'Ӥ' => 'Ӥ', + 'ӥ' => 'ӥ', + 'Ӧ' => 'Ӧ', + 'ӧ' => 'ӧ', + 'Ӫ' => 'Ӫ', + 'ӫ' => 'ӫ', + 'Ӭ' => 'Ӭ', + 'ӭ' => 'ӭ', + 'Ӯ' => 'Ӯ', + 'ӯ' => 'ӯ', + 'Ӱ' => 'Ӱ', + 'ӱ' => 'ӱ', + 'Ӳ' => 'Ӳ', + 'ӳ' => 'ӳ', + 'Ӵ' => 'Ӵ', + 'ӵ' => 'ӵ', + 'Ӹ' => 'Ӹ', + 'ӹ' => 'ӹ', + 'آ' => 'آ', + 'أ' => 'أ', + 'ؤ' => 'ؤ', + 'إ' => 'إ', + 'ئ' => 'ئ', + 'ۀ' => 'ۀ', + 'ۂ' => 'ۂ', + 'ۓ' => 'ۓ', + 'ऩ' => 'ऩ', + 'ऱ' => 'ऱ', + 'ऴ' => 'ऴ', + 'ো' => 'ো', + 'ৌ' => 'ৌ', + 'ୈ' => 'ୈ', + 'ୋ' => 'ୋ', + 'ୌ' => 'ୌ', + 'ஔ' => 'ஔ', + 'ொ' => 'ொ', + 'ோ' => 'ோ', + 'ௌ' => 'ௌ', + 'ై' => 'ై', + 'ೀ' => 'ೀ', + 'ೇ' => 'ೇ', + 'ೈ' => 'ೈ', + 'ೊ' => 'ೊ', + 'ೋ' => 'ೋ', + 'ൊ' => 'ൊ', + 'ോ' => 'ോ', + 'ൌ' => 'ൌ', + 'ේ' => 'ේ', + 'ො' => 'ො', + 'ෝ' => 'ෝ', + 'ෞ' => 'ෞ', + 'ဦ' => 'ဦ', + 'ᬆ' => 'ᬆ', + 'ᬈ' => 'ᬈ', + 'ᬊ' => 'ᬊ', + 'ᬌ' => 'ᬌ', + 'ᬎ' => 'ᬎ', + 'ᬒ' => 'ᬒ', + 'ᬻ' => 'ᬻ', + 'ᬽ' => 'ᬽ', + 'ᭀ' => 'ᭀ', + 'ᭁ' => 'ᭁ', + 'ᭃ' => 'ᭃ', + 'Ḁ' => 'Ḁ', + 'ḁ' => 'ḁ', + 'Ḃ' => 'Ḃ', + 'ḃ' => 'ḃ', + 'Ḅ' => 'Ḅ', + 'ḅ' => 'ḅ', + 'Ḇ' => 'Ḇ', + 'ḇ' => 'ḇ', + 'Ḉ' => 'Ḉ', + 'ḉ' => 'ḉ', + 'Ḋ' => 'Ḋ', + 'ḋ' => 'ḋ', + 'Ḍ' => 'Ḍ', + 'ḍ' => 'ḍ', + 'Ḏ' => 'Ḏ', + 'ḏ' => 'ḏ', + 'Ḑ' => 'Ḑ', + 'ḑ' => 'ḑ', + 'Ḓ' => 'Ḓ', + 'ḓ' => 'ḓ', + 'Ḕ' => 'Ḕ', + 'ḕ' => 'ḕ', + 'Ḗ' => 'Ḗ', + 'ḗ' => 'ḗ', + 'Ḙ' => 'Ḙ', + 'ḙ' => 'ḙ', + 'Ḛ' => 'Ḛ', + 'ḛ' => 'ḛ', + 'Ḝ' => 'Ḝ', + 'ḝ' => 'ḝ', + 'Ḟ' => 'Ḟ', + 'ḟ' => 'ḟ', + 'Ḡ' => 'Ḡ', + 'ḡ' => 'ḡ', + 'Ḣ' => 'Ḣ', + 'ḣ' => 'ḣ', + 'Ḥ' => 'Ḥ', + 'ḥ' => 'ḥ', + 'Ḧ' => 'Ḧ', + 'ḧ' => 'ḧ', + 'Ḩ' => 'Ḩ', + 'ḩ' => 'ḩ', + 'Ḫ' => 'Ḫ', + 'ḫ' => 'ḫ', + 'Ḭ' => 'Ḭ', + 'ḭ' => 'ḭ', + 'Ḯ' => 'Ḯ', + 'ḯ' => 'ḯ', + 'Ḱ' => 'Ḱ', + 'ḱ' => 'ḱ', + 'Ḳ' => 'Ḳ', + 'ḳ' => 'ḳ', + 'Ḵ' => 'Ḵ', + 'ḵ' => 'ḵ', + 'Ḷ' => 'Ḷ', + 'ḷ' => 'ḷ', + 'Ḹ' => 'Ḹ', + 'ḹ' => 'ḹ', + 'Ḻ' => 'Ḻ', + 'ḻ' => 'ḻ', + 'Ḽ' => 'Ḽ', + 'ḽ' => 'ḽ', + 'Ḿ' => 'Ḿ', + 'ḿ' => 'ḿ', + 'Ṁ' => 'Ṁ', + 'ṁ' => 'ṁ', + 'Ṃ' => 'Ṃ', + 'ṃ' => 'ṃ', + 'Ṅ' => 'Ṅ', + 'ṅ' => 'ṅ', + 'Ṇ' => 'Ṇ', + 'ṇ' => 'ṇ', + 'Ṉ' => 'Ṉ', + 'ṉ' => 'ṉ', + 'Ṋ' => 'Ṋ', + 'ṋ' => 'ṋ', + 'Ṍ' => 'Ṍ', + 'ṍ' => 'ṍ', + 'Ṏ' => 'Ṏ', + 'ṏ' => 'ṏ', + 'Ṑ' => 'Ṑ', + 'ṑ' => 'ṑ', + 'Ṓ' => 'Ṓ', + 'ṓ' => 'ṓ', + 'Ṕ' => 'Ṕ', + 'ṕ' => 'ṕ', + 'Ṗ' => 'Ṗ', + 'ṗ' => 'ṗ', + 'Ṙ' => 'Ṙ', + 'ṙ' => 'ṙ', + 'Ṛ' => 'Ṛ', + 'ṛ' => 'ṛ', + 'Ṝ' => 'Ṝ', + 'ṝ' => 'ṝ', + 'Ṟ' => 'Ṟ', + 'ṟ' => 'ṟ', + 'Ṡ' => 'Ṡ', + 'ṡ' => 'ṡ', + 'Ṣ' => 'Ṣ', + 'ṣ' => 'ṣ', + 'Ṥ' => 'Ṥ', + 'ṥ' => 'ṥ', + 'Ṧ' => 'Ṧ', + 'ṧ' => 'ṧ', + 'Ṩ' => 'Ṩ', + 'ṩ' => 'ṩ', + 'Ṫ' => 'Ṫ', + 'ṫ' => 'ṫ', + 'Ṭ' => 'Ṭ', + 'ṭ' => 'ṭ', + 'Ṯ' => 'Ṯ', + 'ṯ' => 'ṯ', + 'Ṱ' => 'Ṱ', + 'ṱ' => 'ṱ', + 'Ṳ' => 'Ṳ', + 'ṳ' => 'ṳ', + 'Ṵ' => 'Ṵ', + 'ṵ' => 'ṵ', + 'Ṷ' => 'Ṷ', + 'ṷ' => 'ṷ', + 'Ṹ' => 'Ṹ', + 'ṹ' => 'ṹ', + 'Ṻ' => 'Ṻ', + 'ṻ' => 'ṻ', + 'Ṽ' => 'Ṽ', + 'ṽ' => 'ṽ', + 'Ṿ' => 'Ṿ', + 'ṿ' => 'ṿ', + 'Ẁ' => 'Ẁ', + 'ẁ' => 'ẁ', + 'Ẃ' => 'Ẃ', + 'ẃ' => 'ẃ', + 'Ẅ' => 'Ẅ', + 'ẅ' => 'ẅ', + 'Ẇ' => 'Ẇ', + 'ẇ' => 'ẇ', + 'Ẉ' => 'Ẉ', + 'ẉ' => 'ẉ', + 'Ẋ' => 'Ẋ', + 'ẋ' => 'ẋ', + 'Ẍ' => 'Ẍ', + 'ẍ' => 'ẍ', + 'Ẏ' => 'Ẏ', + 'ẏ' => 'ẏ', + 'Ẑ' => 'Ẑ', + 'ẑ' => 'ẑ', + 'Ẓ' => 'Ẓ', + 'ẓ' => 'ẓ', + 'Ẕ' => 'Ẕ', + 'ẕ' => 'ẕ', + 'ẖ' => 'ẖ', + 'ẗ' => 'ẗ', + 'ẘ' => 'ẘ', + 'ẙ' => 'ẙ', + 'ẛ' => 'ẛ', + 'Ạ' => 'Ạ', + 'ạ' => 'ạ', + 'Ả' => 'Ả', + 'ả' => 'ả', + 'Ấ' => 'Ấ', + 'ấ' => 'ấ', + 'Ầ' => 'Ầ', + 'ầ' => 'ầ', + 'Ẩ' => 'Ẩ', + 'ẩ' => 'ẩ', + 'Ẫ' => 'Ẫ', + 'ẫ' => 'ẫ', + 'Ậ' => 'Ậ', + 'ậ' => 'ậ', + 'Ắ' => 'Ắ', + 'ắ' => 'ắ', + 'Ằ' => 'Ằ', + 'ằ' => 'ằ', + 'Ẳ' => 'Ẳ', + 'ẳ' => 'ẳ', + 'Ẵ' => 'Ẵ', + 'ẵ' => 'ẵ', + 'Ặ' => 'Ặ', + 'ặ' => 'ặ', + 'Ẹ' => 'Ẹ', + 'ẹ' => 'ẹ', + 'Ẻ' => 'Ẻ', + 'ẻ' => 'ẻ', + 'Ẽ' => 'Ẽ', + 'ẽ' => 'ẽ', + 'Ế' => 'Ế', + 'ế' => 'ế', + 'Ề' => 'Ề', + 'ề' => 'ề', + 'Ể' => 'Ể', + 'ể' => 'ể', + 'Ễ' => 'Ễ', + 'ễ' => 'ễ', + 'Ệ' => 'Ệ', + 'ệ' => 'ệ', + 'Ỉ' => 'Ỉ', + 'ỉ' => 'ỉ', + 'Ị' => 'Ị', + 'ị' => 'ị', + 'Ọ' => 'Ọ', + 'ọ' => 'ọ', + 'Ỏ' => 'Ỏ', + 'ỏ' => 'ỏ', + 'Ố' => 'Ố', + 'ố' => 'ố', + 'Ồ' => 'Ồ', + 'ồ' => 'ồ', + 'Ổ' => 'Ổ', + 'ổ' => 'ổ', + 'Ỗ' => 'Ỗ', + 'ỗ' => 'ỗ', + 'Ộ' => 'Ộ', + 'ộ' => 'ộ', + 'Ớ' => 'Ớ', + 'ớ' => 'ớ', + 'Ờ' => 'Ờ', + 'ờ' => 'ờ', + 'Ở' => 'Ở', + 'ở' => 'ở', + 'Ỡ' => 'Ỡ', + 'ỡ' => 'ỡ', + 'Ợ' => 'Ợ', + 'ợ' => 'ợ', + 'Ụ' => 'Ụ', + 'ụ' => 'ụ', + 'Ủ' => 'Ủ', + 'ủ' => 'ủ', + 'Ứ' => 'Ứ', + 'ứ' => 'ứ', + 'Ừ' => 'Ừ', + 'ừ' => 'ừ', + 'Ử' => 'Ử', + 'ử' => 'ử', + 'Ữ' => 'Ữ', + 'ữ' => 'ữ', + 'Ự' => 'Ự', + 'ự' => 'ự', + 'Ỳ' => 'Ỳ', + 'ỳ' => 'ỳ', + 'Ỵ' => 'Ỵ', + 'ỵ' => 'ỵ', + 'Ỷ' => 'Ỷ', + 'ỷ' => 'ỷ', + 'Ỹ' => 'Ỹ', + 'ỹ' => 'ỹ', + 'ἀ' => 'ἀ', + 'ἁ' => 'ἁ', + 'ἂ' => 'ἂ', + 'ἃ' => 'ἃ', + 'ἄ' => 'ἄ', + 'ἅ' => 'ἅ', + 'ἆ' => 'ἆ', + 'ἇ' => 'ἇ', + 'Ἀ' => 'Ἀ', + 'Ἁ' => 'Ἁ', + 'Ἂ' => 'Ἂ', + 'Ἃ' => 'Ἃ', + 'Ἄ' => 'Ἄ', + 'Ἅ' => 'Ἅ', + 'Ἆ' => 'Ἆ', + 'Ἇ' => 'Ἇ', + 'ἐ' => 'ἐ', + 'ἑ' => 'ἑ', + 'ἒ' => 'ἒ', + 'ἓ' => 'ἓ', + 'ἔ' => 'ἔ', + 'ἕ' => 'ἕ', + 'Ἐ' => 'Ἐ', + 'Ἑ' => 'Ἑ', + 'Ἒ' => 'Ἒ', + 'Ἓ' => 'Ἓ', + 'Ἔ' => 'Ἔ', + 'Ἕ' => 'Ἕ', + 'ἠ' => 'ἠ', + 'ἡ' => 'ἡ', + 'ἢ' => 'ἢ', + 'ἣ' => 'ἣ', + 'ἤ' => 'ἤ', + 'ἥ' => 'ἥ', + 'ἦ' => 'ἦ', + 'ἧ' => 'ἧ', + 'Ἠ' => 'Ἠ', + 'Ἡ' => 'Ἡ', + 'Ἢ' => 'Ἢ', + 'Ἣ' => 'Ἣ', + 'Ἤ' => 'Ἤ', + 'Ἥ' => 'Ἥ', + 'Ἦ' => 'Ἦ', + 'Ἧ' => 'Ἧ', + 'ἰ' => 'ἰ', + 'ἱ' => 'ἱ', + 'ἲ' => 'ἲ', + 'ἳ' => 'ἳ', + 'ἴ' => 'ἴ', + 'ἵ' => 'ἵ', + 'ἶ' => 'ἶ', + 'ἷ' => 'ἷ', + 'Ἰ' => 'Ἰ', + 'Ἱ' => 'Ἱ', + 'Ἲ' => 'Ἲ', + 'Ἳ' => 'Ἳ', + 'Ἴ' => 'Ἴ', + 'Ἵ' => 'Ἵ', + 'Ἶ' => 'Ἶ', + 'Ἷ' => 'Ἷ', + 'ὀ' => 'ὀ', + 'ὁ' => 'ὁ', + 'ὂ' => 'ὂ', + 'ὃ' => 'ὃ', + 'ὄ' => 'ὄ', + 'ὅ' => 'ὅ', + 'Ὀ' => 'Ὀ', + 'Ὁ' => 'Ὁ', + 'Ὂ' => 'Ὂ', + 'Ὃ' => 'Ὃ', + 'Ὄ' => 'Ὄ', + 'Ὅ' => 'Ὅ', + 'ὐ' => 'ὐ', + 'ὑ' => 'ὑ', + 'ὒ' => 'ὒ', + 'ὓ' => 'ὓ', + 'ὔ' => 'ὔ', + 'ὕ' => 'ὕ', + 'ὖ' => 'ὖ', + 'ὗ' => 'ὗ', + 'Ὑ' => 'Ὑ', + 'Ὓ' => 'Ὓ', + 'Ὕ' => 'Ὕ', + 'Ὗ' => 'Ὗ', + 'ὠ' => 'ὠ', + 'ὡ' => 'ὡ', + 'ὢ' => 'ὢ', + 'ὣ' => 'ὣ', + 'ὤ' => 'ὤ', + 'ὥ' => 'ὥ', + 'ὦ' => 'ὦ', + 'ὧ' => 'ὧ', + 'Ὠ' => 'Ὠ', + 'Ὡ' => 'Ὡ', + 'Ὢ' => 'Ὢ', + 'Ὣ' => 'Ὣ', + 'Ὤ' => 'Ὤ', + 'Ὥ' => 'Ὥ', + 'Ὦ' => 'Ὦ', + 'Ὧ' => 'Ὧ', + 'ὰ' => 'ὰ', + 'ὲ' => 'ὲ', + 'ὴ' => 'ὴ', + 'ὶ' => 'ὶ', + 'ὸ' => 'ὸ', + 'ὺ' => 'ὺ', + 'ὼ' => 'ὼ', + 'ᾀ' => 'ᾀ', + 'ᾁ' => 'ᾁ', + 'ᾂ' => 'ᾂ', + 'ᾃ' => 'ᾃ', + 'ᾄ' => 'ᾄ', + 'ᾅ' => 'ᾅ', + 'ᾆ' => 'ᾆ', + 'ᾇ' => 'ᾇ', + 'ᾈ' => 'ᾈ', + 'ᾉ' => 'ᾉ', + 'ᾊ' => 'ᾊ', + 'ᾋ' => 'ᾋ', + 'ᾌ' => 'ᾌ', + 'ᾍ' => 'ᾍ', + 'ᾎ' => 'ᾎ', + 'ᾏ' => 'ᾏ', + 'ᾐ' => 'ᾐ', + 'ᾑ' => 'ᾑ', + 'ᾒ' => 'ᾒ', + 'ᾓ' => 'ᾓ', + 'ᾔ' => 'ᾔ', + 'ᾕ' => 'ᾕ', + 'ᾖ' => 'ᾖ', + 'ᾗ' => 'ᾗ', + 'ᾘ' => 'ᾘ', + 'ᾙ' => 'ᾙ', + 'ᾚ' => 'ᾚ', + 'ᾛ' => 'ᾛ', + 'ᾜ' => 'ᾜ', + 'ᾝ' => 'ᾝ', + 'ᾞ' => 'ᾞ', + 'ᾟ' => 'ᾟ', + 'ᾠ' => 'ᾠ', + 'ᾡ' => 'ᾡ', + 'ᾢ' => 'ᾢ', + 'ᾣ' => 'ᾣ', + 'ᾤ' => 'ᾤ', + 'ᾥ' => 'ᾥ', + 'ᾦ' => 'ᾦ', + 'ᾧ' => 'ᾧ', + 'ᾨ' => 'ᾨ', + 'ᾩ' => 'ᾩ', + 'ᾪ' => 'ᾪ', + 'ᾫ' => 'ᾫ', + 'ᾬ' => 'ᾬ', + 'ᾭ' => 'ᾭ', + 'ᾮ' => 'ᾮ', + 'ᾯ' => 'ᾯ', + 'ᾰ' => 'ᾰ', + 'ᾱ' => 'ᾱ', + 'ᾲ' => 'ᾲ', + 'ᾳ' => 'ᾳ', + 'ᾴ' => 'ᾴ', + 'ᾶ' => 'ᾶ', + 'ᾷ' => 'ᾷ', + 'Ᾰ' => 'Ᾰ', + 'Ᾱ' => 'Ᾱ', + 'Ὰ' => 'Ὰ', + 'ᾼ' => 'ᾼ', + '῁' => '῁', + 'ῂ' => 'ῂ', + 'ῃ' => 'ῃ', + 'ῄ' => 'ῄ', + 'ῆ' => 'ῆ', + 'ῇ' => 'ῇ', + 'Ὲ' => 'Ὲ', + 'Ὴ' => 'Ὴ', + 'ῌ' => 'ῌ', + '῍' => '῍', + '῎' => '῎', + '῏' => '῏', + 'ῐ' => 'ῐ', + 'ῑ' => 'ῑ', + 'ῒ' => 'ῒ', + 'ῖ' => 'ῖ', + 'ῗ' => 'ῗ', + 'Ῐ' => 'Ῐ', + 'Ῑ' => 'Ῑ', + 'Ὶ' => 'Ὶ', + '῝' => '῝', + '῞' => '῞', + '῟' => '῟', + 'ῠ' => 'ῠ', + 'ῡ' => 'ῡ', + 'ῢ' => 'ῢ', + 'ῤ' => 'ῤ', + 'ῥ' => 'ῥ', + 'ῦ' => 'ῦ', + 'ῧ' => 'ῧ', + 'Ῠ' => 'Ῠ', + 'Ῡ' => 'Ῡ', + 'Ὺ' => 'Ὺ', + 'Ῥ' => 'Ῥ', + '῭' => '῭', + 'ῲ' => 'ῲ', + 'ῳ' => 'ῳ', + 'ῴ' => 'ῴ', + 'ῶ' => 'ῶ', + 'ῷ' => 'ῷ', + 'Ὸ' => 'Ὸ', + 'Ὼ' => 'Ὼ', + 'ῼ' => 'ῼ', + '↚' => '↚', + '↛' => '↛', + '↮' => '↮', + '⇍' => '⇍', + '⇎' => '⇎', + '⇏' => '⇏', + '∄' => '∄', + '∉' => '∉', + '∌' => '∌', + '∤' => '∤', + '∦' => '∦', + '≁' => '≁', + '≄' => '≄', + '≇' => '≇', + '≉' => '≉', + '≠' => '≠', + '≢' => '≢', + '≭' => '≭', + '≮' => '≮', + '≯' => '≯', + '≰' => '≰', + '≱' => '≱', + '≴' => '≴', + '≵' => '≵', + '≸' => '≸', + '≹' => '≹', + '⊀' => '⊀', + '⊁' => '⊁', + '⊄' => '⊄', + '⊅' => '⊅', + '⊈' => '⊈', + '⊉' => '⊉', + '⊬' => '⊬', + '⊭' => '⊭', + '⊮' => '⊮', + '⊯' => '⊯', + '⋠' => '⋠', + '⋡' => '⋡', + '⋢' => '⋢', + '⋣' => '⋣', + '⋪' => '⋪', + '⋫' => '⋫', + '⋬' => '⋬', + '⋭' => '⋭', + 'が' => 'が', + 'ぎ' => 'ぎ', + 'ぐ' => 'ぐ', + 'げ' => 'げ', + 'ご' => 'ご', + 'ざ' => 'ざ', + 'じ' => 'じ', + 'ず' => 'ず', + 'ぜ' => 'ぜ', + 'ぞ' => 'ぞ', + 'だ' => 'だ', + 'ぢ' => 'ぢ', + 'づ' => 'づ', + 'で' => 'で', + 'ど' => 'ど', + 'ば' => 'ば', + 'ぱ' => 'ぱ', + 'び' => 'び', + 'ぴ' => 'ぴ', + 'ぶ' => 'ぶ', + 'ぷ' => 'ぷ', + 'べ' => 'べ', + 'ぺ' => 'ぺ', + 'ぼ' => 'ぼ', + 'ぽ' => 'ぽ', + 'ゔ' => 'ゔ', + 'ゞ' => 'ゞ', + 'ガ' => 'ガ', + 'ギ' => 'ギ', + 'グ' => 'グ', + 'ゲ' => 'ゲ', + 'ゴ' => 'ゴ', + 'ザ' => 'ザ', + 'ジ' => 'ジ', + 'ズ' => 'ズ', + 'ゼ' => 'ゼ', + 'ゾ' => 'ゾ', + 'ダ' => 'ダ', + 'ヂ' => 'ヂ', + 'ヅ' => 'ヅ', + 'デ' => 'デ', + 'ド' => 'ド', + 'バ' => 'バ', + 'パ' => 'パ', + 'ビ' => 'ビ', + 'ピ' => 'ピ', + 'ブ' => 'ブ', + 'プ' => 'プ', + 'ベ' => 'ベ', + 'ペ' => 'ペ', + 'ボ' => 'ボ', + 'ポ' => 'ポ', + 'ヴ' => 'ヴ', + 'ヷ' => 'ヷ', + 'ヸ' => 'ヸ', + 'ヹ' => 'ヹ', + 'ヺ' => 'ヺ', + 'ヾ' => 'ヾ', + '𑂚' => '𑂚', + '𑂜' => '𑂜', + '𑂫' => '𑂫', + '𑄮' => '𑄮', + '𑄯' => '𑄯', + '𑍋' => '𑍋', + '𑍌' => '𑍌', + '𑒻' => '𑒻', + '𑒼' => '𑒼', + '𑒾' => '𑒾', + '𑖺' => '𑖺', + '𑖻' => '𑖻', + '𑤸' => '𑤸', +); diff --git a/user/plugins/email/vendor/symfony/polyfill-intl-normalizer/Resources/unidata/canonicalDecomposition.php b/user/plugins/email/vendor/symfony/polyfill-intl-normalizer/Resources/unidata/canonicalDecomposition.php new file mode 100644 index 0000000..5a3e8e0 --- /dev/null +++ b/user/plugins/email/vendor/symfony/polyfill-intl-normalizer/Resources/unidata/canonicalDecomposition.php @@ -0,0 +1,2065 @@ + 'À', + 'Á' => 'Á', + 'Â' => 'Â', + 'Ã' => 'Ã', + 'Ä' => 'Ä', + 'Å' => 'Å', + 'Ç' => 'Ç', + 'È' => 'È', + 'É' => 'É', + 'Ê' => 'Ê', + 'Ë' => 'Ë', + 'Ì' => 'Ì', + 'Í' => 'Í', + 'Î' => 'Î', + 'Ï' => 'Ï', + 'Ñ' => 'Ñ', + 'Ò' => 'Ò', + 'Ó' => 'Ó', + 'Ô' => 'Ô', + 'Õ' => 'Õ', + 'Ö' => 'Ö', + 'Ù' => 'Ù', + 'Ú' => 'Ú', + 'Û' => 'Û', + 'Ü' => 'Ü', + 'Ý' => 'Ý', + 'à' => 'à', + 'á' => 'á', + 'â' => 'â', + 'ã' => 'ã', + 'ä' => 'ä', + 'å' => 'å', + 'ç' => 'ç', + 'è' => 'è', + 'é' => 'é', + 'ê' => 'ê', + 'ë' => 'ë', + 'ì' => 'ì', + 'í' => 'í', + 'î' => 'î', + 'ï' => 'ï', + 'ñ' => 'ñ', + 'ò' => 'ò', + 'ó' => 'ó', + 'ô' => 'ô', + 'õ' => 'õ', + 'ö' => 'ö', + 'ù' => 'ù', + 'ú' => 'ú', + 'û' => 'û', + 'ü' => 'ü', + 'ý' => 'ý', + 'ÿ' => 'ÿ', + 'Ā' => 'Ā', + 'ā' => 'ā', + 'Ă' => 'Ă', + 'ă' => 'ă', + 'Ą' => 'Ą', + 'ą' => 'ą', + 'Ć' => 'Ć', + 'ć' => 'ć', + 'Ĉ' => 'Ĉ', + 'ĉ' => 'ĉ', + 'Ċ' => 'Ċ', + 'ċ' => 'ċ', + 'Č' => 'Č', + 'č' => 'č', + 'Ď' => 'Ď', + 'ď' => 'ď', + 'Ē' => 'Ē', + 'ē' => 'ē', + 'Ĕ' => 'Ĕ', + 'ĕ' => 'ĕ', + 'Ė' => 'Ė', + 'ė' => 'ė', + 'Ę' => 'Ę', + 'ę' => 'ę', + 'Ě' => 'Ě', + 'ě' => 'ě', + 'Ĝ' => 'Ĝ', + 'ĝ' => 'ĝ', + 'Ğ' => 'Ğ', + 'ğ' => 'ğ', + 'Ġ' => 'Ġ', + 'ġ' => 'ġ', + 'Ģ' => 'Ģ', + 'ģ' => 'ģ', + 'Ĥ' => 'Ĥ', + 'ĥ' => 'ĥ', + 'Ĩ' => 'Ĩ', + 'ĩ' => 'ĩ', + 'Ī' => 'Ī', + 'ī' => 'ī', + 'Ĭ' => 'Ĭ', + 'ĭ' => 'ĭ', + 'Į' => 'Į', + 'į' => 'į', + 'İ' => 'İ', + 'Ĵ' => 'Ĵ', + 'ĵ' => 'ĵ', + 'Ķ' => 'Ķ', + 'ķ' => 'ķ', + 'Ĺ' => 'Ĺ', + 'ĺ' => 'ĺ', + 'Ļ' => 'Ļ', + 'ļ' => 'ļ', + 'Ľ' => 'Ľ', + 'ľ' => 'ľ', + 'Ń' => 'Ń', + 'ń' => 'ń', + 'Ņ' => 'Ņ', + 'ņ' => 'ņ', + 'Ň' => 'Ň', + 'ň' => 'ň', + 'Ō' => 'Ō', + 'ō' => 'ō', + 'Ŏ' => 'Ŏ', + 'ŏ' => 'ŏ', + 'Ő' => 'Ő', + 'ő' => 'ő', + 'Ŕ' => 'Ŕ', + 'ŕ' => 'ŕ', + 'Ŗ' => 'Ŗ', + 'ŗ' => 'ŗ', + 'Ř' => 'Ř', + 'ř' => 'ř', + 'Ś' => 'Ś', + 'ś' => 'ś', + 'Ŝ' => 'Ŝ', + 'ŝ' => 'ŝ', + 'Ş' => 'Ş', + 'ş' => 'ş', + 'Š' => 'Š', + 'š' => 'š', + 'Ţ' => 'Ţ', + 'ţ' => 'ţ', + 'Ť' => 'Ť', + 'ť' => 'ť', + 'Ũ' => 'Ũ', + 'ũ' => 'ũ', + 'Ū' => 'Ū', + 'ū' => 'ū', + 'Ŭ' => 'Ŭ', + 'ŭ' => 'ŭ', + 'Ů' => 'Ů', + 'ů' => 'ů', + 'Ű' => 'Ű', + 'ű' => 'ű', + 'Ų' => 'Ų', + 'ų' => 'ų', + 'Ŵ' => 'Ŵ', + 'ŵ' => 'ŵ', + 'Ŷ' => 'Ŷ', + 'ŷ' => 'ŷ', + 'Ÿ' => 'Ÿ', + 'Ź' => 'Ź', + 'ź' => 'ź', + 'Ż' => 'Ż', + 'ż' => 'ż', + 'Ž' => 'Ž', + 'ž' => 'ž', + 'Ơ' => 'Ơ', + 'ơ' => 'ơ', + 'Ư' => 'Ư', + 'ư' => 'ư', + 'Ǎ' => 'Ǎ', + 'ǎ' => 'ǎ', + 'Ǐ' => 'Ǐ', + 'ǐ' => 'ǐ', + 'Ǒ' => 'Ǒ', + 'ǒ' => 'ǒ', + 'Ǔ' => 'Ǔ', + 'ǔ' => 'ǔ', + 'Ǖ' => 'Ǖ', + 'ǖ' => 'ǖ', + 'Ǘ' => 'Ǘ', + 'ǘ' => 'ǘ', + 'Ǚ' => 'Ǚ', + 'ǚ' => 'ǚ', + 'Ǜ' => 'Ǜ', + 'ǜ' => 'ǜ', + 'Ǟ' => 'Ǟ', + 'ǟ' => 'ǟ', + 'Ǡ' => 'Ǡ', + 'ǡ' => 'ǡ', + 'Ǣ' => 'Ǣ', + 'ǣ' => 'ǣ', + 'Ǧ' => 'Ǧ', + 'ǧ' => 'ǧ', + 'Ǩ' => 'Ǩ', + 'ǩ' => 'ǩ', + 'Ǫ' => 'Ǫ', + 'ǫ' => 'ǫ', + 'Ǭ' => 'Ǭ', + 'ǭ' => 'ǭ', + 'Ǯ' => 'Ǯ', + 'ǯ' => 'ǯ', + 'ǰ' => 'ǰ', + 'Ǵ' => 'Ǵ', + 'ǵ' => 'ǵ', + 'Ǹ' => 'Ǹ', + 'ǹ' => 'ǹ', + 'Ǻ' => 'Ǻ', + 'ǻ' => 'ǻ', + 'Ǽ' => 'Ǽ', + 'ǽ' => 'ǽ', + 'Ǿ' => 'Ǿ', + 'ǿ' => 'ǿ', + 'Ȁ' => 'Ȁ', + 'ȁ' => 'ȁ', + 'Ȃ' => 'Ȃ', + 'ȃ' => 'ȃ', + 'Ȅ' => 'Ȅ', + 'ȅ' => 'ȅ', + 'Ȇ' => 'Ȇ', + 'ȇ' => 'ȇ', + 'Ȉ' => 'Ȉ', + 'ȉ' => 'ȉ', + 'Ȋ' => 'Ȋ', + 'ȋ' => 'ȋ', + 'Ȍ' => 'Ȍ', + 'ȍ' => 'ȍ', + 'Ȏ' => 'Ȏ', + 'ȏ' => 'ȏ', + 'Ȑ' => 'Ȑ', + 'ȑ' => 'ȑ', + 'Ȓ' => 'Ȓ', + 'ȓ' => 'ȓ', + 'Ȕ' => 'Ȕ', + 'ȕ' => 'ȕ', + 'Ȗ' => 'Ȗ', + 'ȗ' => 'ȗ', + 'Ș' => 'Ș', + 'ș' => 'ș', + 'Ț' => 'Ț', + 'ț' => 'ț', + 'Ȟ' => 'Ȟ', + 'ȟ' => 'ȟ', + 'Ȧ' => 'Ȧ', + 'ȧ' => 'ȧ', + 'Ȩ' => 'Ȩ', + 'ȩ' => 'ȩ', + 'Ȫ' => 'Ȫ', + 'ȫ' => 'ȫ', + 'Ȭ' => 'Ȭ', + 'ȭ' => 'ȭ', + 'Ȯ' => 'Ȯ', + 'ȯ' => 'ȯ', + 'Ȱ' => 'Ȱ', + 'ȱ' => 'ȱ', + 'Ȳ' => 'Ȳ', + 'ȳ' => 'ȳ', + '̀' => '̀', + '́' => '́', + '̓' => '̓', + '̈́' => '̈́', + 'ʹ' => 'ʹ', + ';' => ';', + '΅' => '΅', + 'Ά' => 'Ά', + '·' => '·', + 'Έ' => 'Έ', + 'Ή' => 'Ή', + 'Ί' => 'Ί', + 'Ό' => 'Ό', + 'Ύ' => 'Ύ', + 'Ώ' => 'Ώ', + 'ΐ' => 'ΐ', + 'Ϊ' => 'Ϊ', + 'Ϋ' => 'Ϋ', + 'ά' => 'ά', + 'έ' => 'έ', + 'ή' => 'ή', + 'ί' => 'ί', + 'ΰ' => 'ΰ', + 'ϊ' => 'ϊ', + 'ϋ' => 'ϋ', + 'ό' => 'ό', + 'ύ' => 'ύ', + 'ώ' => 'ώ', + 'ϓ' => 'ϓ', + 'ϔ' => 'ϔ', + 'Ѐ' => 'Ѐ', + 'Ё' => 'Ё', + 'Ѓ' => 'Ѓ', + 'Ї' => 'Ї', + 'Ќ' => 'Ќ', + 'Ѝ' => 'Ѝ', + 'Ў' => 'Ў', + 'Й' => 'Й', + 'й' => 'й', + 'ѐ' => 'ѐ', + 'ё' => 'ё', + 'ѓ' => 'ѓ', + 'ї' => 'ї', + 'ќ' => 'ќ', + 'ѝ' => 'ѝ', + 'ў' => 'ў', + 'Ѷ' => 'Ѷ', + 'ѷ' => 'ѷ', + 'Ӂ' => 'Ӂ', + 'ӂ' => 'ӂ', + 'Ӑ' => 'Ӑ', + 'ӑ' => 'ӑ', + 'Ӓ' => 'Ӓ', + 'ӓ' => 'ӓ', + 'Ӗ' => 'Ӗ', + 'ӗ' => 'ӗ', + 'Ӛ' => 'Ӛ', + 'ӛ' => 'ӛ', + 'Ӝ' => 'Ӝ', + 'ӝ' => 'ӝ', + 'Ӟ' => 'Ӟ', + 'ӟ' => 'ӟ', + 'Ӣ' => 'Ӣ', + 'ӣ' => 'ӣ', + 'Ӥ' => 'Ӥ', + 'ӥ' => 'ӥ', + 'Ӧ' => 'Ӧ', + 'ӧ' => 'ӧ', + 'Ӫ' => 'Ӫ', + 'ӫ' => 'ӫ', + 'Ӭ' => 'Ӭ', + 'ӭ' => 'ӭ', + 'Ӯ' => 'Ӯ', + 'ӯ' => 'ӯ', + 'Ӱ' => 'Ӱ', + 'ӱ' => 'ӱ', + 'Ӳ' => 'Ӳ', + 'ӳ' => 'ӳ', + 'Ӵ' => 'Ӵ', + 'ӵ' => 'ӵ', + 'Ӹ' => 'Ӹ', + 'ӹ' => 'ӹ', + 'آ' => 'آ', + 'أ' => 'أ', + 'ؤ' => 'ؤ', + 'إ' => 'إ', + 'ئ' => 'ئ', + 'ۀ' => 'ۀ', + 'ۂ' => 'ۂ', + 'ۓ' => 'ۓ', + 'ऩ' => 'ऩ', + 'ऱ' => 'ऱ', + 'ऴ' => 'ऴ', + 'क़' => 'क़', + 'ख़' => 'ख़', + 'ग़' => 'ग़', + 'ज़' => 'ज़', + 'ड़' => 'ड़', + 'ढ़' => 'ढ़', + 'फ़' => 'फ़', + 'य़' => 'य़', + 'ো' => 'ো', + 'ৌ' => 'ৌ', + 'ড়' => 'ড়', + 'ঢ়' => 'ঢ়', + 'য়' => 'য়', + 'ਲ਼' => 'ਲ਼', + 'ਸ਼' => 'ਸ਼', + 'ਖ਼' => 'ਖ਼', + 'ਗ਼' => 'ਗ਼', + 'ਜ਼' => 'ਜ਼', + 'ਫ਼' => 'ਫ਼', + 'ୈ' => 'ୈ', + 'ୋ' => 'ୋ', + 'ୌ' => 'ୌ', + 'ଡ଼' => 'ଡ଼', + 'ଢ଼' => 'ଢ଼', + 'ஔ' => 'ஔ', + 'ொ' => 'ொ', + 'ோ' => 'ோ', + 'ௌ' => 'ௌ', + 'ై' => 'ై', + 'ೀ' => 'ೀ', + 'ೇ' => 'ೇ', + 'ೈ' => 'ೈ', + 'ೊ' => 'ೊ', + 'ೋ' => 'ೋ', + 'ൊ' => 'ൊ', + 'ോ' => 'ോ', + 'ൌ' => 'ൌ', + 'ේ' => 'ේ', + 'ො' => 'ො', + 'ෝ' => 'ෝ', + 'ෞ' => 'ෞ', + 'གྷ' => 'གྷ', + 'ཌྷ' => 'ཌྷ', + 'དྷ' => 'དྷ', + 'བྷ' => 'བྷ', + 'ཛྷ' => 'ཛྷ', + 'ཀྵ' => 'ཀྵ', + 'ཱི' => 'ཱི', + 'ཱུ' => 'ཱུ', + 'ྲྀ' => 'ྲྀ', + 'ླྀ' => 'ླྀ', + 'ཱྀ' => 'ཱྀ', + 'ྒྷ' => 'ྒྷ', + 'ྜྷ' => 'ྜྷ', + 'ྡྷ' => 'ྡྷ', + 'ྦྷ' => 'ྦྷ', + 'ྫྷ' => 'ྫྷ', + 'ྐྵ' => 'ྐྵ', + 'ဦ' => 'ဦ', + 'ᬆ' => 'ᬆ', + 'ᬈ' => 'ᬈ', + 'ᬊ' => 'ᬊ', + 'ᬌ' => 'ᬌ', + 'ᬎ' => 'ᬎ', + 'ᬒ' => 'ᬒ', + 'ᬻ' => 'ᬻ', + 'ᬽ' => 'ᬽ', + 'ᭀ' => 'ᭀ', + 'ᭁ' => 'ᭁ', + 'ᭃ' => 'ᭃ', + 'Ḁ' => 'Ḁ', + 'ḁ' => 'ḁ', + 'Ḃ' => 'Ḃ', + 'ḃ' => 'ḃ', + 'Ḅ' => 'Ḅ', + 'ḅ' => 'ḅ', + 'Ḇ' => 'Ḇ', + 'ḇ' => 'ḇ', + 'Ḉ' => 'Ḉ', + 'ḉ' => 'ḉ', + 'Ḋ' => 'Ḋ', + 'ḋ' => 'ḋ', + 'Ḍ' => 'Ḍ', + 'ḍ' => 'ḍ', + 'Ḏ' => 'Ḏ', + 'ḏ' => 'ḏ', + 'Ḑ' => 'Ḑ', + 'ḑ' => 'ḑ', + 'Ḓ' => 'Ḓ', + 'ḓ' => 'ḓ', + 'Ḕ' => 'Ḕ', + 'ḕ' => 'ḕ', + 'Ḗ' => 'Ḗ', + 'ḗ' => 'ḗ', + 'Ḙ' => 'Ḙ', + 'ḙ' => 'ḙ', + 'Ḛ' => 'Ḛ', + 'ḛ' => 'ḛ', + 'Ḝ' => 'Ḝ', + 'ḝ' => 'ḝ', + 'Ḟ' => 'Ḟ', + 'ḟ' => 'ḟ', + 'Ḡ' => 'Ḡ', + 'ḡ' => 'ḡ', + 'Ḣ' => 'Ḣ', + 'ḣ' => 'ḣ', + 'Ḥ' => 'Ḥ', + 'ḥ' => 'ḥ', + 'Ḧ' => 'Ḧ', + 'ḧ' => 'ḧ', + 'Ḩ' => 'Ḩ', + 'ḩ' => 'ḩ', + 'Ḫ' => 'Ḫ', + 'ḫ' => 'ḫ', + 'Ḭ' => 'Ḭ', + 'ḭ' => 'ḭ', + 'Ḯ' => 'Ḯ', + 'ḯ' => 'ḯ', + 'Ḱ' => 'Ḱ', + 'ḱ' => 'ḱ', + 'Ḳ' => 'Ḳ', + 'ḳ' => 'ḳ', + 'Ḵ' => 'Ḵ', + 'ḵ' => 'ḵ', + 'Ḷ' => 'Ḷ', + 'ḷ' => 'ḷ', + 'Ḹ' => 'Ḹ', + 'ḹ' => 'ḹ', + 'Ḻ' => 'Ḻ', + 'ḻ' => 'ḻ', + 'Ḽ' => 'Ḽ', + 'ḽ' => 'ḽ', + 'Ḿ' => 'Ḿ', + 'ḿ' => 'ḿ', + 'Ṁ' => 'Ṁ', + 'ṁ' => 'ṁ', + 'Ṃ' => 'Ṃ', + 'ṃ' => 'ṃ', + 'Ṅ' => 'Ṅ', + 'ṅ' => 'ṅ', + 'Ṇ' => 'Ṇ', + 'ṇ' => 'ṇ', + 'Ṉ' => 'Ṉ', + 'ṉ' => 'ṉ', + 'Ṋ' => 'Ṋ', + 'ṋ' => 'ṋ', + 'Ṍ' => 'Ṍ', + 'ṍ' => 'ṍ', + 'Ṏ' => 'Ṏ', + 'ṏ' => 'ṏ', + 'Ṑ' => 'Ṑ', + 'ṑ' => 'ṑ', + 'Ṓ' => 'Ṓ', + 'ṓ' => 'ṓ', + 'Ṕ' => 'Ṕ', + 'ṕ' => 'ṕ', + 'Ṗ' => 'Ṗ', + 'ṗ' => 'ṗ', + 'Ṙ' => 'Ṙ', + 'ṙ' => 'ṙ', + 'Ṛ' => 'Ṛ', + 'ṛ' => 'ṛ', + 'Ṝ' => 'Ṝ', + 'ṝ' => 'ṝ', + 'Ṟ' => 'Ṟ', + 'ṟ' => 'ṟ', + 'Ṡ' => 'Ṡ', + 'ṡ' => 'ṡ', + 'Ṣ' => 'Ṣ', + 'ṣ' => 'ṣ', + 'Ṥ' => 'Ṥ', + 'ṥ' => 'ṥ', + 'Ṧ' => 'Ṧ', + 'ṧ' => 'ṧ', + 'Ṩ' => 'Ṩ', + 'ṩ' => 'ṩ', + 'Ṫ' => 'Ṫ', + 'ṫ' => 'ṫ', + 'Ṭ' => 'Ṭ', + 'ṭ' => 'ṭ', + 'Ṯ' => 'Ṯ', + 'ṯ' => 'ṯ', + 'Ṱ' => 'Ṱ', + 'ṱ' => 'ṱ', + 'Ṳ' => 'Ṳ', + 'ṳ' => 'ṳ', + 'Ṵ' => 'Ṵ', + 'ṵ' => 'ṵ', + 'Ṷ' => 'Ṷ', + 'ṷ' => 'ṷ', + 'Ṹ' => 'Ṹ', + 'ṹ' => 'ṹ', + 'Ṻ' => 'Ṻ', + 'ṻ' => 'ṻ', + 'Ṽ' => 'Ṽ', + 'ṽ' => 'ṽ', + 'Ṿ' => 'Ṿ', + 'ṿ' => 'ṿ', + 'Ẁ' => 'Ẁ', + 'ẁ' => 'ẁ', + 'Ẃ' => 'Ẃ', + 'ẃ' => 'ẃ', + 'Ẅ' => 'Ẅ', + 'ẅ' => 'ẅ', + 'Ẇ' => 'Ẇ', + 'ẇ' => 'ẇ', + 'Ẉ' => 'Ẉ', + 'ẉ' => 'ẉ', + 'Ẋ' => 'Ẋ', + 'ẋ' => 'ẋ', + 'Ẍ' => 'Ẍ', + 'ẍ' => 'ẍ', + 'Ẏ' => 'Ẏ', + 'ẏ' => 'ẏ', + 'Ẑ' => 'Ẑ', + 'ẑ' => 'ẑ', + 'Ẓ' => 'Ẓ', + 'ẓ' => 'ẓ', + 'Ẕ' => 'Ẕ', + 'ẕ' => 'ẕ', + 'ẖ' => 'ẖ', + 'ẗ' => 'ẗ', + 'ẘ' => 'ẘ', + 'ẙ' => 'ẙ', + 'ẛ' => 'ẛ', + 'Ạ' => 'Ạ', + 'ạ' => 'ạ', + 'Ả' => 'Ả', + 'ả' => 'ả', + 'Ấ' => 'Ấ', + 'ấ' => 'ấ', + 'Ầ' => 'Ầ', + 'ầ' => 'ầ', + 'Ẩ' => 'Ẩ', + 'ẩ' => 'ẩ', + 'Ẫ' => 'Ẫ', + 'ẫ' => 'ẫ', + 'Ậ' => 'Ậ', + 'ậ' => 'ậ', + 'Ắ' => 'Ắ', + 'ắ' => 'ắ', + 'Ằ' => 'Ằ', + 'ằ' => 'ằ', + 'Ẳ' => 'Ẳ', + 'ẳ' => 'ẳ', + 'Ẵ' => 'Ẵ', + 'ẵ' => 'ẵ', + 'Ặ' => 'Ặ', + 'ặ' => 'ặ', + 'Ẹ' => 'Ẹ', + 'ẹ' => 'ẹ', + 'Ẻ' => 'Ẻ', + 'ẻ' => 'ẻ', + 'Ẽ' => 'Ẽ', + 'ẽ' => 'ẽ', + 'Ế' => 'Ế', + 'ế' => 'ế', + 'Ề' => 'Ề', + 'ề' => 'ề', + 'Ể' => 'Ể', + 'ể' => 'ể', + 'Ễ' => 'Ễ', + 'ễ' => 'ễ', + 'Ệ' => 'Ệ', + 'ệ' => 'ệ', + 'Ỉ' => 'Ỉ', + 'ỉ' => 'ỉ', + 'Ị' => 'Ị', + 'ị' => 'ị', + 'Ọ' => 'Ọ', + 'ọ' => 'ọ', + 'Ỏ' => 'Ỏ', + 'ỏ' => 'ỏ', + 'Ố' => 'Ố', + 'ố' => 'ố', + 'Ồ' => 'Ồ', + 'ồ' => 'ồ', + 'Ổ' => 'Ổ', + 'ổ' => 'ổ', + 'Ỗ' => 'Ỗ', + 'ỗ' => 'ỗ', + 'Ộ' => 'Ộ', + 'ộ' => 'ộ', + 'Ớ' => 'Ớ', + 'ớ' => 'ớ', + 'Ờ' => 'Ờ', + 'ờ' => 'ờ', + 'Ở' => 'Ở', + 'ở' => 'ở', + 'Ỡ' => 'Ỡ', + 'ỡ' => 'ỡ', + 'Ợ' => 'Ợ', + 'ợ' => 'ợ', + 'Ụ' => 'Ụ', + 'ụ' => 'ụ', + 'Ủ' => 'Ủ', + 'ủ' => 'ủ', + 'Ứ' => 'Ứ', + 'ứ' => 'ứ', + 'Ừ' => 'Ừ', + 'ừ' => 'ừ', + 'Ử' => 'Ử', + 'ử' => 'ử', + 'Ữ' => 'Ữ', + 'ữ' => 'ữ', + 'Ự' => 'Ự', + 'ự' => 'ự', + 'Ỳ' => 'Ỳ', + 'ỳ' => 'ỳ', + 'Ỵ' => 'Ỵ', + 'ỵ' => 'ỵ', + 'Ỷ' => 'Ỷ', + 'ỷ' => 'ỷ', + 'Ỹ' => 'Ỹ', + 'ỹ' => 'ỹ', + 'ἀ' => 'ἀ', + 'ἁ' => 'ἁ', + 'ἂ' => 'ἂ', + 'ἃ' => 'ἃ', + 'ἄ' => 'ἄ', + 'ἅ' => 'ἅ', + 'ἆ' => 'ἆ', + 'ἇ' => 'ἇ', + 'Ἀ' => 'Ἀ', + 'Ἁ' => 'Ἁ', + 'Ἂ' => 'Ἂ', + 'Ἃ' => 'Ἃ', + 'Ἄ' => 'Ἄ', + 'Ἅ' => 'Ἅ', + 'Ἆ' => 'Ἆ', + 'Ἇ' => 'Ἇ', + 'ἐ' => 'ἐ', + 'ἑ' => 'ἑ', + 'ἒ' => 'ἒ', + 'ἓ' => 'ἓ', + 'ἔ' => 'ἔ', + 'ἕ' => 'ἕ', + 'Ἐ' => 'Ἐ', + 'Ἑ' => 'Ἑ', + 'Ἒ' => 'Ἒ', + 'Ἓ' => 'Ἓ', + 'Ἔ' => 'Ἔ', + 'Ἕ' => 'Ἕ', + 'ἠ' => 'ἠ', + 'ἡ' => 'ἡ', + 'ἢ' => 'ἢ', + 'ἣ' => 'ἣ', + 'ἤ' => 'ἤ', + 'ἥ' => 'ἥ', + 'ἦ' => 'ἦ', + 'ἧ' => 'ἧ', + 'Ἠ' => 'Ἠ', + 'Ἡ' => 'Ἡ', + 'Ἢ' => 'Ἢ', + 'Ἣ' => 'Ἣ', + 'Ἤ' => 'Ἤ', + 'Ἥ' => 'Ἥ', + 'Ἦ' => 'Ἦ', + 'Ἧ' => 'Ἧ', + 'ἰ' => 'ἰ', + 'ἱ' => 'ἱ', + 'ἲ' => 'ἲ', + 'ἳ' => 'ἳ', + 'ἴ' => 'ἴ', + 'ἵ' => 'ἵ', + 'ἶ' => 'ἶ', + 'ἷ' => 'ἷ', + 'Ἰ' => 'Ἰ', + 'Ἱ' => 'Ἱ', + 'Ἲ' => 'Ἲ', + 'Ἳ' => 'Ἳ', + 'Ἴ' => 'Ἴ', + 'Ἵ' => 'Ἵ', + 'Ἶ' => 'Ἶ', + 'Ἷ' => 'Ἷ', + 'ὀ' => 'ὀ', + 'ὁ' => 'ὁ', + 'ὂ' => 'ὂ', + 'ὃ' => 'ὃ', + 'ὄ' => 'ὄ', + 'ὅ' => 'ὅ', + 'Ὀ' => 'Ὀ', + 'Ὁ' => 'Ὁ', + 'Ὂ' => 'Ὂ', + 'Ὃ' => 'Ὃ', + 'Ὄ' => 'Ὄ', + 'Ὅ' => 'Ὅ', + 'ὐ' => 'ὐ', + 'ὑ' => 'ὑ', + 'ὒ' => 'ὒ', + 'ὓ' => 'ὓ', + 'ὔ' => 'ὔ', + 'ὕ' => 'ὕ', + 'ὖ' => 'ὖ', + 'ὗ' => 'ὗ', + 'Ὑ' => 'Ὑ', + 'Ὓ' => 'Ὓ', + 'Ὕ' => 'Ὕ', + 'Ὗ' => 'Ὗ', + 'ὠ' => 'ὠ', + 'ὡ' => 'ὡ', + 'ὢ' => 'ὢ', + 'ὣ' => 'ὣ', + 'ὤ' => 'ὤ', + 'ὥ' => 'ὥ', + 'ὦ' => 'ὦ', + 'ὧ' => 'ὧ', + 'Ὠ' => 'Ὠ', + 'Ὡ' => 'Ὡ', + 'Ὢ' => 'Ὢ', + 'Ὣ' => 'Ὣ', + 'Ὤ' => 'Ὤ', + 'Ὥ' => 'Ὥ', + 'Ὦ' => 'Ὦ', + 'Ὧ' => 'Ὧ', + 'ὰ' => 'ὰ', + 'ά' => 'ά', + 'ὲ' => 'ὲ', + 'έ' => 'έ', + 'ὴ' => 'ὴ', + 'ή' => 'ή', + 'ὶ' => 'ὶ', + 'ί' => 'ί', + 'ὸ' => 'ὸ', + 'ό' => 'ό', + 'ὺ' => 'ὺ', + 'ύ' => 'ύ', + 'ὼ' => 'ὼ', + 'ώ' => 'ώ', + 'ᾀ' => 'ᾀ', + 'ᾁ' => 'ᾁ', + 'ᾂ' => 'ᾂ', + 'ᾃ' => 'ᾃ', + 'ᾄ' => 'ᾄ', + 'ᾅ' => 'ᾅ', + 'ᾆ' => 'ᾆ', + 'ᾇ' => 'ᾇ', + 'ᾈ' => 'ᾈ', + 'ᾉ' => 'ᾉ', + 'ᾊ' => 'ᾊ', + 'ᾋ' => 'ᾋ', + 'ᾌ' => 'ᾌ', + 'ᾍ' => 'ᾍ', + 'ᾎ' => 'ᾎ', + 'ᾏ' => 'ᾏ', + 'ᾐ' => 'ᾐ', + 'ᾑ' => 'ᾑ', + 'ᾒ' => 'ᾒ', + 'ᾓ' => 'ᾓ', + 'ᾔ' => 'ᾔ', + 'ᾕ' => 'ᾕ', + 'ᾖ' => 'ᾖ', + 'ᾗ' => 'ᾗ', + 'ᾘ' => 'ᾘ', + 'ᾙ' => 'ᾙ', + 'ᾚ' => 'ᾚ', + 'ᾛ' => 'ᾛ', + 'ᾜ' => 'ᾜ', + 'ᾝ' => 'ᾝ', + 'ᾞ' => 'ᾞ', + 'ᾟ' => 'ᾟ', + 'ᾠ' => 'ᾠ', + 'ᾡ' => 'ᾡ', + 'ᾢ' => 'ᾢ', + 'ᾣ' => 'ᾣ', + 'ᾤ' => 'ᾤ', + 'ᾥ' => 'ᾥ', + 'ᾦ' => 'ᾦ', + 'ᾧ' => 'ᾧ', + 'ᾨ' => 'ᾨ', + 'ᾩ' => 'ᾩ', + 'ᾪ' => 'ᾪ', + 'ᾫ' => 'ᾫ', + 'ᾬ' => 'ᾬ', + 'ᾭ' => 'ᾭ', + 'ᾮ' => 'ᾮ', + 'ᾯ' => 'ᾯ', + 'ᾰ' => 'ᾰ', + 'ᾱ' => 'ᾱ', + 'ᾲ' => 'ᾲ', + 'ᾳ' => 'ᾳ', + 'ᾴ' => 'ᾴ', + 'ᾶ' => 'ᾶ', + 'ᾷ' => 'ᾷ', + 'Ᾰ' => 'Ᾰ', + 'Ᾱ' => 'Ᾱ', + 'Ὰ' => 'Ὰ', + 'Ά' => 'Ά', + 'ᾼ' => 'ᾼ', + 'ι' => 'ι', + '῁' => '῁', + 'ῂ' => 'ῂ', + 'ῃ' => 'ῃ', + 'ῄ' => 'ῄ', + 'ῆ' => 'ῆ', + 'ῇ' => 'ῇ', + 'Ὲ' => 'Ὲ', + 'Έ' => 'Έ', + 'Ὴ' => 'Ὴ', + 'Ή' => 'Ή', + 'ῌ' => 'ῌ', + '῍' => '῍', + '῎' => '῎', + '῏' => '῏', + 'ῐ' => 'ῐ', + 'ῑ' => 'ῑ', + 'ῒ' => 'ῒ', + 'ΐ' => 'ΐ', + 'ῖ' => 'ῖ', + 'ῗ' => 'ῗ', + 'Ῐ' => 'Ῐ', + 'Ῑ' => 'Ῑ', + 'Ὶ' => 'Ὶ', + 'Ί' => 'Ί', + '῝' => '῝', + '῞' => '῞', + '῟' => '῟', + 'ῠ' => 'ῠ', + 'ῡ' => 'ῡ', + 'ῢ' => 'ῢ', + 'ΰ' => 'ΰ', + 'ῤ' => 'ῤ', + 'ῥ' => 'ῥ', + 'ῦ' => 'ῦ', + 'ῧ' => 'ῧ', + 'Ῠ' => 'Ῠ', + 'Ῡ' => 'Ῡ', + 'Ὺ' => 'Ὺ', + 'Ύ' => 'Ύ', + 'Ῥ' => 'Ῥ', + '῭' => '῭', + '΅' => '΅', + '`' => '`', + 'ῲ' => 'ῲ', + 'ῳ' => 'ῳ', + 'ῴ' => 'ῴ', + 'ῶ' => 'ῶ', + 'ῷ' => 'ῷ', + 'Ὸ' => 'Ὸ', + 'Ό' => 'Ό', + 'Ὼ' => 'Ὼ', + 'Ώ' => 'Ώ', + 'ῼ' => 'ῼ', + '´' => '´', + ' ' => ' ', + ' ' => ' ', + 'Ω' => 'Ω', + 'K' => 'K', + 'Å' => 'Å', + '↚' => '↚', + '↛' => '↛', + '↮' => '↮', + '⇍' => '⇍', + '⇎' => '⇎', + '⇏' => '⇏', + '∄' => '∄', + '∉' => '∉', + '∌' => '∌', + '∤' => '∤', + '∦' => '∦', + '≁' => '≁', + '≄' => '≄', + '≇' => '≇', + '≉' => '≉', + '≠' => '≠', + '≢' => '≢', + '≭' => '≭', + '≮' => '≮', + '≯' => '≯', + '≰' => '≰', + '≱' => '≱', + '≴' => '≴', + '≵' => '≵', + '≸' => '≸', + '≹' => '≹', + '⊀' => '⊀', + '⊁' => '⊁', + '⊄' => '⊄', + '⊅' => '⊅', + '⊈' => '⊈', + '⊉' => '⊉', + '⊬' => '⊬', + '⊭' => '⊭', + '⊮' => '⊮', + '⊯' => '⊯', + '⋠' => '⋠', + '⋡' => '⋡', + '⋢' => '⋢', + '⋣' => '⋣', + '⋪' => '⋪', + '⋫' => '⋫', + '⋬' => '⋬', + '⋭' => '⋭', + '〈' => '〈', + '〉' => '〉', + '⫝̸' => '⫝̸', + 'が' => 'が', + 'ぎ' => 'ぎ', + 'ぐ' => 'ぐ', + 'げ' => 'げ', + 'ご' => 'ご', + 'ざ' => 'ざ', + 'じ' => 'じ', + 'ず' => 'ず', + 'ぜ' => 'ぜ', + 'ぞ' => 'ぞ', + 'だ' => 'だ', + 'ぢ' => 'ぢ', + 'づ' => 'づ', + 'で' => 'で', + 'ど' => 'ど', + 'ば' => 'ば', + 'ぱ' => 'ぱ', + 'び' => 'び', + 'ぴ' => 'ぴ', + 'ぶ' => 'ぶ', + 'ぷ' => 'ぷ', + 'べ' => 'べ', + 'ぺ' => 'ぺ', + 'ぼ' => 'ぼ', + 'ぽ' => 'ぽ', + 'ゔ' => 'ゔ', + 'ゞ' => 'ゞ', + 'ガ' => 'ガ', + 'ギ' => 'ギ', + 'グ' => 'グ', + 'ゲ' => 'ゲ', + 'ゴ' => 'ゴ', + 'ザ' => 'ザ', + 'ジ' => 'ジ', + 'ズ' => 'ズ', + 'ゼ' => 'ゼ', + 'ゾ' => 'ゾ', + 'ダ' => 'ダ', + 'ヂ' => 'ヂ', + 'ヅ' => 'ヅ', + 'デ' => 'デ', + 'ド' => 'ド', + 'バ' => 'バ', + 'パ' => 'パ', + 'ビ' => 'ビ', + 'ピ' => 'ピ', + 'ブ' => 'ブ', + 'プ' => 'プ', + 'ベ' => 'ベ', + 'ペ' => 'ペ', + 'ボ' => 'ボ', + 'ポ' => 'ポ', + 'ヴ' => 'ヴ', + 'ヷ' => 'ヷ', + 'ヸ' => 'ヸ', + 'ヹ' => 'ヹ', + 'ヺ' => 'ヺ', + 'ヾ' => 'ヾ', + '豈' => '豈', + '更' => '更', + '車' => '車', + '賈' => '賈', + '滑' => '滑', + '串' => '串', + '句' => '句', + '龜' => '龜', + '龜' => '龜', + '契' => '契', + '金' => '金', + '喇' => '喇', + '奈' => '奈', + '懶' => '懶', + '癩' => '癩', + '羅' => '羅', + '蘿' => '蘿', + '螺' => '螺', + '裸' => '裸', + '邏' => '邏', + '樂' => '樂', + '洛' => '洛', + '烙' => '烙', + '珞' => '珞', + '落' => '落', + '酪' => '酪', + '駱' => '駱', + '亂' => '亂', + '卵' => '卵', + '欄' => '欄', + '爛' => '爛', + '蘭' => '蘭', + '鸞' => '鸞', + '嵐' => '嵐', + '濫' => '濫', + '藍' => '藍', + '襤' => '襤', + '拉' => '拉', + '臘' => '臘', + '蠟' => '蠟', + '廊' => '廊', + '朗' => '朗', + '浪' => '浪', + '狼' => '狼', + '郎' => '郎', + '來' => '來', + '冷' => '冷', + '勞' => '勞', + '擄' => '擄', + '櫓' => '櫓', + '爐' => '爐', + '盧' => '盧', + '老' => '老', + '蘆' => '蘆', + '虜' => '虜', + '路' => '路', + '露' => '露', + '魯' => '魯', + '鷺' => '鷺', + '碌' => '碌', + '祿' => '祿', + '綠' => '綠', + '菉' => '菉', + '錄' => '錄', + '鹿' => '鹿', + '論' => '論', + '壟' => '壟', + '弄' => '弄', + '籠' => '籠', + '聾' => '聾', + '牢' => '牢', + '磊' => '磊', + '賂' => '賂', + '雷' => '雷', + '壘' => '壘', + '屢' => '屢', + '樓' => '樓', + '淚' => '淚', + '漏' => '漏', + '累' => '累', + '縷' => '縷', + '陋' => '陋', + '勒' => '勒', + '肋' => '肋', + '凜' => '凜', + '凌' => '凌', + '稜' => '稜', + '綾' => '綾', + '菱' => '菱', + '陵' => '陵', + '讀' => '讀', + '拏' => '拏', + '樂' => '樂', + '諾' => '諾', + '丹' => '丹', + '寧' => '寧', + '怒' => '怒', + '率' => '率', + '異' => '異', + '北' => '北', + '磻' => '磻', + '便' => '便', + '復' => '復', + '不' => '不', + '泌' => '泌', + '數' => '數', + '索' => '索', + '參' => '參', + '塞' => '塞', + '省' => '省', + '葉' => '葉', + '說' => '說', + '殺' => '殺', + '辰' => '辰', + '沈' => '沈', + '拾' => '拾', + '若' => '若', + '掠' => '掠', + '略' => '略', + '亮' => '亮', + '兩' => '兩', + '凉' => '凉', + '梁' => '梁', + '糧' => '糧', + '良' => '良', + '諒' => '諒', + '量' => '量', + '勵' => '勵', + '呂' => '呂', + '女' => '女', + '廬' => '廬', + '旅' => '旅', + '濾' => '濾', + '礪' => '礪', + '閭' => '閭', + '驪' => '驪', + '麗' => '麗', + '黎' => '黎', + '力' => '力', + '曆' => '曆', + '歷' => '歷', + '轢' => '轢', + '年' => '年', + '憐' => '憐', + '戀' => '戀', + '撚' => '撚', + '漣' => '漣', + '煉' => '煉', + '璉' => '璉', + '秊' => '秊', + '練' => '練', + '聯' => '聯', + '輦' => '輦', + '蓮' => '蓮', + '連' => '連', + '鍊' => '鍊', + '列' => '列', + '劣' => '劣', + '咽' => '咽', + '烈' => '烈', + '裂' => '裂', + '說' => '說', + '廉' => '廉', + '念' => '念', + '捻' => '捻', + '殮' => '殮', + '簾' => '簾', + '獵' => '獵', + '令' => '令', + '囹' => '囹', + '寧' => '寧', + '嶺' => '嶺', + '怜' => '怜', + '玲' => '玲', + '瑩' => '瑩', + '羚' => '羚', + '聆' => '聆', + '鈴' => '鈴', + '零' => '零', + '靈' => '靈', + '領' => '領', + '例' => '例', + '禮' => '禮', + '醴' => '醴', + '隸' => '隸', + '惡' => '惡', + '了' => '了', + '僚' => '僚', + '寮' => '寮', + '尿' => '尿', + '料' => '料', + '樂' => '樂', + '燎' => '燎', + '療' => '療', + '蓼' => '蓼', + '遼' => '遼', + '龍' => '龍', + '暈' => '暈', + '阮' => '阮', + '劉' => '劉', + '杻' => '杻', + '柳' => '柳', + '流' => '流', + '溜' => '溜', + '琉' => '琉', + '留' => '留', + '硫' => '硫', + '紐' => '紐', + '類' => '類', + '六' => '六', + '戮' => '戮', + '陸' => '陸', + '倫' => '倫', + '崙' => '崙', + '淪' => '淪', + '輪' => '輪', + '律' => '律', + '慄' => '慄', + '栗' => '栗', + '率' => '率', + '隆' => '隆', + '利' => '利', + '吏' => '吏', + '履' => '履', + '易' => '易', + '李' => '李', + '梨' => '梨', + '泥' => '泥', + '理' => '理', + '痢' => '痢', + '罹' => '罹', + '裏' => '裏', + '裡' => '裡', + '里' => '里', + '離' => '離', + '匿' => '匿', + '溺' => '溺', + '吝' => '吝', + '燐' => '燐', + '璘' => '璘', + '藺' => '藺', + '隣' => '隣', + '鱗' => '鱗', + '麟' => '麟', + '林' => '林', + '淋' => '淋', + '臨' => '臨', + '立' => '立', + '笠' => '笠', + '粒' => '粒', + '狀' => '狀', + '炙' => '炙', + '識' => '識', + '什' => '什', + '茶' => '茶', + '刺' => '刺', + '切' => '切', + '度' => '度', + '拓' => '拓', + '糖' => '糖', + '宅' => '宅', + '洞' => '洞', + '暴' => '暴', + '輻' => '輻', + '行' => '行', + '降' => '降', + '見' => '見', + '廓' => '廓', + '兀' => '兀', + '嗀' => '嗀', + '塚' => '塚', + '晴' => '晴', + '凞' => '凞', + '猪' => '猪', + '益' => '益', + '礼' => '礼', + '神' => '神', + '祥' => '祥', + '福' => '福', + '靖' => '靖', + '精' => '精', + '羽' => '羽', + '蘒' => '蘒', + '諸' => '諸', + '逸' => '逸', + '都' => '都', + '飯' => '飯', + '飼' => '飼', + '館' => '館', + '鶴' => '鶴', + '郞' => '郞', + '隷' => '隷', + '侮' => '侮', + '僧' => '僧', + '免' => '免', + '勉' => '勉', + '勤' => '勤', + '卑' => '卑', + '喝' => '喝', + '嘆' => '嘆', + '器' => '器', + '塀' => '塀', + '墨' => '墨', + '層' => '層', + '屮' => '屮', + '悔' => '悔', + '慨' => '慨', + '憎' => '憎', + '懲' => '懲', + '敏' => '敏', + '既' => '既', + '暑' => '暑', + '梅' => '梅', + '海' => '海', + '渚' => '渚', + '漢' => '漢', + '煮' => '煮', + '爫' => '爫', + '琢' => '琢', + '碑' => '碑', + '社' => '社', + '祉' => '祉', + '祈' => '祈', + '祐' => '祐', + '祖' => '祖', + '祝' => '祝', + '禍' => '禍', + '禎' => '禎', + '穀' => '穀', + '突' => '突', + '節' => '節', + '練' => '練', + '縉' => '縉', + '繁' => '繁', + '署' => '署', + '者' => '者', + '臭' => '臭', + '艹' => '艹', + '艹' => '艹', + '著' => '著', + '褐' => '褐', + '視' => '視', + '謁' => '謁', + '謹' => '謹', + '賓' => '賓', + '贈' => '贈', + '辶' => '辶', + '逸' => '逸', + '難' => '難', + '響' => '響', + '頻' => '頻', + '恵' => '恵', + '𤋮' => '𤋮', + '舘' => '舘', + '並' => '並', + '况' => '况', + '全' => '全', + '侀' => '侀', + '充' => '充', + '冀' => '冀', + '勇' => '勇', + '勺' => '勺', + '喝' => '喝', + '啕' => '啕', + '喙' => '喙', + '嗢' => '嗢', + '塚' => '塚', + '墳' => '墳', + '奄' => '奄', + '奔' => '奔', + '婢' => '婢', + '嬨' => '嬨', + '廒' => '廒', + '廙' => '廙', + '彩' => '彩', + '徭' => '徭', + '惘' => '惘', + '慎' => '慎', + '愈' => '愈', + '憎' => '憎', + '慠' => '慠', + '懲' => '懲', + '戴' => '戴', + '揄' => '揄', + '搜' => '搜', + '摒' => '摒', + '敖' => '敖', + '晴' => '晴', + '朗' => '朗', + '望' => '望', + '杖' => '杖', + '歹' => '歹', + '殺' => '殺', + '流' => '流', + '滛' => '滛', + '滋' => '滋', + '漢' => '漢', + '瀞' => '瀞', + '煮' => '煮', + '瞧' => '瞧', + '爵' => '爵', + '犯' => '犯', + '猪' => '猪', + '瑱' => '瑱', + '甆' => '甆', + '画' => '画', + '瘝' => '瘝', + '瘟' => '瘟', + '益' => '益', + '盛' => '盛', + '直' => '直', + '睊' => '睊', + '着' => '着', + '磌' => '磌', + '窱' => '窱', + '節' => '節', + '类' => '类', + '絛' => '絛', + '練' => '練', + '缾' => '缾', + '者' => '者', + '荒' => '荒', + '華' => '華', + '蝹' => '蝹', + '襁' => '襁', + '覆' => '覆', + '視' => '視', + '調' => '調', + '諸' => '諸', + '請' => '請', + '謁' => '謁', + '諾' => '諾', + '諭' => '諭', + '謹' => '謹', + '變' => '變', + '贈' => '贈', + '輸' => '輸', + '遲' => '遲', + '醙' => '醙', + '鉶' => '鉶', + '陼' => '陼', + '難' => '難', + '靖' => '靖', + '韛' => '韛', + '響' => '響', + '頋' => '頋', + '頻' => '頻', + '鬒' => '鬒', + '龜' => '龜', + '𢡊' => '𢡊', + '𢡄' => '𢡄', + '𣏕' => '𣏕', + '㮝' => '㮝', + '䀘' => '䀘', + '䀹' => '䀹', + '𥉉' => '𥉉', + '𥳐' => '𥳐', + '𧻓' => '𧻓', + '齃' => '齃', + '龎' => '龎', + 'יִ' => 'יִ', + 'ײַ' => 'ײַ', + 'שׁ' => 'שׁ', + 'שׂ' => 'שׂ', + 'שּׁ' => 'שּׁ', + 'שּׂ' => 'שּׂ', + 'אַ' => 'אַ', + 'אָ' => 'אָ', + 'אּ' => 'אּ', + 'בּ' => 'בּ', + 'גּ' => 'גּ', + 'דּ' => 'דּ', + 'הּ' => 'הּ', + 'וּ' => 'וּ', + 'זּ' => 'זּ', + 'טּ' => 'טּ', + 'יּ' => 'יּ', + 'ךּ' => 'ךּ', + 'כּ' => 'כּ', + 'לּ' => 'לּ', + 'מּ' => 'מּ', + 'נּ' => 'נּ', + 'סּ' => 'סּ', + 'ףּ' => 'ףּ', + 'פּ' => 'פּ', + 'צּ' => 'צּ', + 'קּ' => 'קּ', + 'רּ' => 'רּ', + 'שּ' => 'שּ', + 'תּ' => 'תּ', + 'וֹ' => 'וֹ', + 'בֿ' => 'בֿ', + 'כֿ' => 'כֿ', + 'פֿ' => 'פֿ', + '𑂚' => '𑂚', + '𑂜' => '𑂜', + '𑂫' => '𑂫', + '𑄮' => '𑄮', + '𑄯' => '𑄯', + '𑍋' => '𑍋', + '𑍌' => '𑍌', + '𑒻' => '𑒻', + '𑒼' => '𑒼', + '𑒾' => '𑒾', + '𑖺' => '𑖺', + '𑖻' => '𑖻', + '𑤸' => '𑤸', + '𝅗𝅥' => '𝅗𝅥', + '𝅘𝅥' => '𝅘𝅥', + '𝅘𝅥𝅮' => '𝅘𝅥𝅮', + '𝅘𝅥𝅯' => '𝅘𝅥𝅯', + '𝅘𝅥𝅰' => '𝅘𝅥𝅰', + '𝅘𝅥𝅱' => '𝅘𝅥𝅱', + '𝅘𝅥𝅲' => '𝅘𝅥𝅲', + '𝆹𝅥' => '𝆹𝅥', + '𝆺𝅥' => '𝆺𝅥', + '𝆹𝅥𝅮' => '𝆹𝅥𝅮', + '𝆺𝅥𝅮' => '𝆺𝅥𝅮', + '𝆹𝅥𝅯' => '𝆹𝅥𝅯', + '𝆺𝅥𝅯' => '𝆺𝅥𝅯', + '丽' => '丽', + '丸' => '丸', + '乁' => '乁', + '𠄢' => '𠄢', + '你' => '你', + '侮' => '侮', + '侻' => '侻', + '倂' => '倂', + '偺' => '偺', + '備' => '備', + '僧' => '僧', + '像' => '像', + '㒞' => '㒞', + '𠘺' => '𠘺', + '免' => '免', + '兔' => '兔', + '兤' => '兤', + '具' => '具', + '𠔜' => '𠔜', + '㒹' => '㒹', + '內' => '內', + '再' => '再', + '𠕋' => '𠕋', + '冗' => '冗', + '冤' => '冤', + '仌' => '仌', + '冬' => '冬', + '况' => '况', + '𩇟' => '𩇟', + '凵' => '凵', + '刃' => '刃', + '㓟' => '㓟', + '刻' => '刻', + '剆' => '剆', + '割' => '割', + '剷' => '剷', + '㔕' => '㔕', + '勇' => '勇', + '勉' => '勉', + '勤' => '勤', + '勺' => '勺', + '包' => '包', + '匆' => '匆', + '北' => '北', + '卉' => '卉', + '卑' => '卑', + '博' => '博', + '即' => '即', + '卽' => '卽', + '卿' => '卿', + '卿' => '卿', + '卿' => '卿', + '𠨬' => '𠨬', + '灰' => '灰', + '及' => '及', + '叟' => '叟', + '𠭣' => '𠭣', + '叫' => '叫', + '叱' => '叱', + '吆' => '吆', + '咞' => '咞', + '吸' => '吸', + '呈' => '呈', + '周' => '周', + '咢' => '咢', + '哶' => '哶', + '唐' => '唐', + '啓' => '啓', + '啣' => '啣', + '善' => '善', + '善' => '善', + '喙' => '喙', + '喫' => '喫', + '喳' => '喳', + '嗂' => '嗂', + '圖' => '圖', + '嘆' => '嘆', + '圗' => '圗', + '噑' => '噑', + '噴' => '噴', + '切' => '切', + '壮' => '壮', + '城' => '城', + '埴' => '埴', + '堍' => '堍', + '型' => '型', + '堲' => '堲', + '報' => '報', + '墬' => '墬', + '𡓤' => '𡓤', + '売' => '売', + '壷' => '壷', + '夆' => '夆', + '多' => '多', + '夢' => '夢', + '奢' => '奢', + '𡚨' => '𡚨', + '𡛪' => '𡛪', + '姬' => '姬', + '娛' => '娛', + '娧' => '娧', + '姘' => '姘', + '婦' => '婦', + '㛮' => '㛮', + '㛼' => '㛼', + '嬈' => '嬈', + '嬾' => '嬾', + '嬾' => '嬾', + '𡧈' => '𡧈', + '寃' => '寃', + '寘' => '寘', + '寧' => '寧', + '寳' => '寳', + '𡬘' => '𡬘', + '寿' => '寿', + '将' => '将', + '当' => '当', + '尢' => '尢', + '㞁' => '㞁', + '屠' => '屠', + '屮' => '屮', + '峀' => '峀', + '岍' => '岍', + '𡷤' => '𡷤', + '嵃' => '嵃', + '𡷦' => '𡷦', + '嵮' => '嵮', + '嵫' => '嵫', + '嵼' => '嵼', + '巡' => '巡', + '巢' => '巢', + '㠯' => '㠯', + '巽' => '巽', + '帨' => '帨', + '帽' => '帽', + '幩' => '幩', + '㡢' => '㡢', + '𢆃' => '𢆃', + '㡼' => '㡼', + '庰' => '庰', + '庳' => '庳', + '庶' => '庶', + '廊' => '廊', + '𪎒' => '𪎒', + '廾' => '廾', + '𢌱' => '𢌱', + '𢌱' => '𢌱', + '舁' => '舁', + '弢' => '弢', + '弢' => '弢', + '㣇' => '㣇', + '𣊸' => '𣊸', + '𦇚' => '𦇚', + '形' => '形', + '彫' => '彫', + '㣣' => '㣣', + '徚' => '徚', + '忍' => '忍', + '志' => '志', + '忹' => '忹', + '悁' => '悁', + '㤺' => '㤺', + '㤜' => '㤜', + '悔' => '悔', + '𢛔' => '𢛔', + '惇' => '惇', + '慈' => '慈', + '慌' => '慌', + '慎' => '慎', + '慌' => '慌', + '慺' => '慺', + '憎' => '憎', + '憲' => '憲', + '憤' => '憤', + '憯' => '憯', + '懞' => '懞', + '懲' => '懲', + '懶' => '懶', + '成' => '成', + '戛' => '戛', + '扝' => '扝', + '抱' => '抱', + '拔' => '拔', + '捐' => '捐', + '𢬌' => '𢬌', + '挽' => '挽', + '拼' => '拼', + '捨' => '捨', + '掃' => '掃', + '揤' => '揤', + '𢯱' => '𢯱', + '搢' => '搢', + '揅' => '揅', + '掩' => '掩', + '㨮' => '㨮', + '摩' => '摩', + '摾' => '摾', + '撝' => '撝', + '摷' => '摷', + '㩬' => '㩬', + '敏' => '敏', + '敬' => '敬', + '𣀊' => '𣀊', + '旣' => '旣', + '書' => '書', + '晉' => '晉', + '㬙' => '㬙', + '暑' => '暑', + '㬈' => '㬈', + '㫤' => '㫤', + '冒' => '冒', + '冕' => '冕', + '最' => '最', + '暜' => '暜', + '肭' => '肭', + '䏙' => '䏙', + '朗' => '朗', + '望' => '望', + '朡' => '朡', + '杞' => '杞', + '杓' => '杓', + '𣏃' => '𣏃', + '㭉' => '㭉', + '柺' => '柺', + '枅' => '枅', + '桒' => '桒', + '梅' => '梅', + '𣑭' => '𣑭', + '梎' => '梎', + '栟' => '栟', + '椔' => '椔', + '㮝' => '㮝', + '楂' => '楂', + '榣' => '榣', + '槪' => '槪', + '檨' => '檨', + '𣚣' => '𣚣', + '櫛' => '櫛', + '㰘' => '㰘', + '次' => '次', + '𣢧' => '𣢧', + '歔' => '歔', + '㱎' => '㱎', + '歲' => '歲', + '殟' => '殟', + '殺' => '殺', + '殻' => '殻', + '𣪍' => '𣪍', + '𡴋' => '𡴋', + '𣫺' => '𣫺', + '汎' => '汎', + '𣲼' => '𣲼', + '沿' => '沿', + '泍' => '泍', + '汧' => '汧', + '洖' => '洖', + '派' => '派', + '海' => '海', + '流' => '流', + '浩' => '浩', + '浸' => '浸', + '涅' => '涅', + '𣴞' => '𣴞', + '洴' => '洴', + '港' => '港', + '湮' => '湮', + '㴳' => '㴳', + '滋' => '滋', + '滇' => '滇', + '𣻑' => '𣻑', + '淹' => '淹', + '潮' => '潮', + '𣽞' => '𣽞', + '𣾎' => '𣾎', + '濆' => '濆', + '瀹' => '瀹', + '瀞' => '瀞', + '瀛' => '瀛', + '㶖' => '㶖', + '灊' => '灊', + '災' => '災', + '灷' => '灷', + '炭' => '炭', + '𠔥' => '𠔥', + '煅' => '煅', + '𤉣' => '𤉣', + '熜' => '熜', + '𤎫' => '𤎫', + '爨' => '爨', + '爵' => '爵', + '牐' => '牐', + '𤘈' => '𤘈', + '犀' => '犀', + '犕' => '犕', + '𤜵' => '𤜵', + '𤠔' => '𤠔', + '獺' => '獺', + '王' => '王', + '㺬' => '㺬', + '玥' => '玥', + '㺸' => '㺸', + '㺸' => '㺸', + '瑇' => '瑇', + '瑜' => '瑜', + '瑱' => '瑱', + '璅' => '璅', + '瓊' => '瓊', + '㼛' => '㼛', + '甤' => '甤', + '𤰶' => '𤰶', + '甾' => '甾', + '𤲒' => '𤲒', + '異' => '異', + '𢆟' => '𢆟', + '瘐' => '瘐', + '𤾡' => '𤾡', + '𤾸' => '𤾸', + '𥁄' => '𥁄', + '㿼' => '㿼', + '䀈' => '䀈', + '直' => '直', + '𥃳' => '𥃳', + '𥃲' => '𥃲', + '𥄙' => '𥄙', + '𥄳' => '𥄳', + '眞' => '眞', + '真' => '真', + '真' => '真', + '睊' => '睊', + '䀹' => '䀹', + '瞋' => '瞋', + '䁆' => '䁆', + '䂖' => '䂖', + '𥐝' => '𥐝', + '硎' => '硎', + '碌' => '碌', + '磌' => '磌', + '䃣' => '䃣', + '𥘦' => '𥘦', + '祖' => '祖', + '𥚚' => '𥚚', + '𥛅' => '𥛅', + '福' => '福', + '秫' => '秫', + '䄯' => '䄯', + '穀' => '穀', + '穊' => '穊', + '穏' => '穏', + '𥥼' => '𥥼', + '𥪧' => '𥪧', + '𥪧' => '𥪧', + '竮' => '竮', + '䈂' => '䈂', + '𥮫' => '𥮫', + '篆' => '篆', + '築' => '築', + '䈧' => '䈧', + '𥲀' => '𥲀', + '糒' => '糒', + '䊠' => '䊠', + '糨' => '糨', + '糣' => '糣', + '紀' => '紀', + '𥾆' => '𥾆', + '絣' => '絣', + '䌁' => '䌁', + '緇' => '緇', + '縂' => '縂', + '繅' => '繅', + '䌴' => '䌴', + '𦈨' => '𦈨', + '𦉇' => '𦉇', + '䍙' => '䍙', + '𦋙' => '𦋙', + '罺' => '罺', + '𦌾' => '𦌾', + '羕' => '羕', + '翺' => '翺', + '者' => '者', + '𦓚' => '𦓚', + '𦔣' => '𦔣', + '聠' => '聠', + '𦖨' => '𦖨', + '聰' => '聰', + '𣍟' => '𣍟', + '䏕' => '䏕', + '育' => '育', + '脃' => '脃', + '䐋' => '䐋', + '脾' => '脾', + '媵' => '媵', + '𦞧' => '𦞧', + '𦞵' => '𦞵', + '𣎓' => '𣎓', + '𣎜' => '𣎜', + '舁' => '舁', + '舄' => '舄', + '辞' => '辞', + '䑫' => '䑫', + '芑' => '芑', + '芋' => '芋', + '芝' => '芝', + '劳' => '劳', + '花' => '花', + '芳' => '芳', + '芽' => '芽', + '苦' => '苦', + '𦬼' => '𦬼', + '若' => '若', + '茝' => '茝', + '荣' => '荣', + '莭' => '莭', + '茣' => '茣', + '莽' => '莽', + '菧' => '菧', + '著' => '著', + '荓' => '荓', + '菊' => '菊', + '菌' => '菌', + '菜' => '菜', + '𦰶' => '𦰶', + '𦵫' => '𦵫', + '𦳕' => '𦳕', + '䔫' => '䔫', + '蓱' => '蓱', + '蓳' => '蓳', + '蔖' => '蔖', + '𧏊' => '𧏊', + '蕤' => '蕤', + '𦼬' => '𦼬', + '䕝' => '䕝', + '䕡' => '䕡', + '𦾱' => '𦾱', + '𧃒' => '𧃒', + '䕫' => '䕫', + '虐' => '虐', + '虜' => '虜', + '虧' => '虧', + '虩' => '虩', + '蚩' => '蚩', + '蚈' => '蚈', + '蜎' => '蜎', + '蛢' => '蛢', + '蝹' => '蝹', + '蜨' => '蜨', + '蝫' => '蝫', + '螆' => '螆', + '䗗' => '䗗', + '蟡' => '蟡', + '蠁' => '蠁', + '䗹' => '䗹', + '衠' => '衠', + '衣' => '衣', + '𧙧' => '𧙧', + '裗' => '裗', + '裞' => '裞', + '䘵' => '䘵', + '裺' => '裺', + '㒻' => '㒻', + '𧢮' => '𧢮', + '𧥦' => '𧥦', + '䚾' => '䚾', + '䛇' => '䛇', + '誠' => '誠', + '諭' => '諭', + '變' => '變', + '豕' => '豕', + '𧲨' => '𧲨', + '貫' => '貫', + '賁' => '賁', + '贛' => '贛', + '起' => '起', + '𧼯' => '𧼯', + '𠠄' => '𠠄', + '跋' => '跋', + '趼' => '趼', + '跰' => '跰', + '𠣞' => '𠣞', + '軔' => '軔', + '輸' => '輸', + '𨗒' => '𨗒', + '𨗭' => '𨗭', + '邔' => '邔', + '郱' => '郱', + '鄑' => '鄑', + '𨜮' => '𨜮', + '鄛' => '鄛', + '鈸' => '鈸', + '鋗' => '鋗', + '鋘' => '鋘', + '鉼' => '鉼', + '鏹' => '鏹', + '鐕' => '鐕', + '𨯺' => '𨯺', + '開' => '開', + '䦕' => '䦕', + '閷' => '閷', + '𨵷' => '𨵷', + '䧦' => '䧦', + '雃' => '雃', + '嶲' => '嶲', + '霣' => '霣', + '𩅅' => '𩅅', + '𩈚' => '𩈚', + '䩮' => '䩮', + '䩶' => '䩶', + '韠' => '韠', + '𩐊' => '𩐊', + '䪲' => '䪲', + '𩒖' => '𩒖', + '頋' => '頋', + '頋' => '頋', + '頩' => '頩', + '𩖶' => '𩖶', + '飢' => '飢', + '䬳' => '䬳', + '餩' => '餩', + '馧' => '馧', + '駂' => '駂', + '駾' => '駾', + '䯎' => '䯎', + '𩬰' => '𩬰', + '鬒' => '鬒', + '鱀' => '鱀', + '鳽' => '鳽', + '䳎' => '䳎', + '䳭' => '䳭', + '鵧' => '鵧', + '𪃎' => '𪃎', + '䳸' => '䳸', + '𪄅' => '𪄅', + '𪈎' => '𪈎', + '𪊑' => '𪊑', + '麻' => '麻', + '䵖' => '䵖', + '黹' => '黹', + '黾' => '黾', + '鼅' => '鼅', + '鼏' => '鼏', + '鼖' => '鼖', + '鼻' => '鼻', + '𪘀' => '𪘀', +); diff --git a/user/plugins/email/vendor/symfony/polyfill-intl-normalizer/Resources/unidata/combiningClass.php b/user/plugins/email/vendor/symfony/polyfill-intl-normalizer/Resources/unidata/combiningClass.php new file mode 100644 index 0000000..ec90f36 --- /dev/null +++ b/user/plugins/email/vendor/symfony/polyfill-intl-normalizer/Resources/unidata/combiningClass.php @@ -0,0 +1,876 @@ + 230, + '́' => 230, + '̂' => 230, + '̃' => 230, + '̄' => 230, + '̅' => 230, + '̆' => 230, + '̇' => 230, + '̈' => 230, + '̉' => 230, + '̊' => 230, + '̋' => 230, + '̌' => 230, + '̍' => 230, + '̎' => 230, + '̏' => 230, + '̐' => 230, + '̑' => 230, + '̒' => 230, + '̓' => 230, + '̔' => 230, + '̕' => 232, + '̖' => 220, + '̗' => 220, + '̘' => 220, + '̙' => 220, + '̚' => 232, + '̛' => 216, + '̜' => 220, + '̝' => 220, + '̞' => 220, + '̟' => 220, + '̠' => 220, + '̡' => 202, + '̢' => 202, + '̣' => 220, + '̤' => 220, + '̥' => 220, + '̦' => 220, + '̧' => 202, + '̨' => 202, + '̩' => 220, + '̪' => 220, + '̫' => 220, + '̬' => 220, + '̭' => 220, + '̮' => 220, + '̯' => 220, + '̰' => 220, + '̱' => 220, + '̲' => 220, + '̳' => 220, + '̴' => 1, + '̵' => 1, + '̶' => 1, + '̷' => 1, + '̸' => 1, + '̹' => 220, + '̺' => 220, + '̻' => 220, + '̼' => 220, + '̽' => 230, + '̾' => 230, + '̿' => 230, + '̀' => 230, + '́' => 230, + '͂' => 230, + '̓' => 230, + '̈́' => 230, + 'ͅ' => 240, + '͆' => 230, + '͇' => 220, + '͈' => 220, + '͉' => 220, + '͊' => 230, + '͋' => 230, + '͌' => 230, + '͍' => 220, + '͎' => 220, + '͐' => 230, + '͑' => 230, + '͒' => 230, + '͓' => 220, + '͔' => 220, + '͕' => 220, + '͖' => 220, + '͗' => 230, + '͘' => 232, + '͙' => 220, + '͚' => 220, + '͛' => 230, + '͜' => 233, + '͝' => 234, + '͞' => 234, + '͟' => 233, + '͠' => 234, + '͡' => 234, + '͢' => 233, + 'ͣ' => 230, + 'ͤ' => 230, + 'ͥ' => 230, + 'ͦ' => 230, + 'ͧ' => 230, + 'ͨ' => 230, + 'ͩ' => 230, + 'ͪ' => 230, + 'ͫ' => 230, + 'ͬ' => 230, + 'ͭ' => 230, + 'ͮ' => 230, + 'ͯ' => 230, + '҃' => 230, + '҄' => 230, + '҅' => 230, + '҆' => 230, + '҇' => 230, + '֑' => 220, + '֒' => 230, + '֓' => 230, + '֔' => 230, + '֕' => 230, + '֖' => 220, + '֗' => 230, + '֘' => 230, + '֙' => 230, + '֚' => 222, + '֛' => 220, + '֜' => 230, + '֝' => 230, + '֞' => 230, + '֟' => 230, + '֠' => 230, + '֡' => 230, + '֢' => 220, + '֣' => 220, + '֤' => 220, + '֥' => 220, + '֦' => 220, + '֧' => 220, + '֨' => 230, + '֩' => 230, + '֪' => 220, + '֫' => 230, + '֬' => 230, + '֭' => 222, + '֮' => 228, + '֯' => 230, + 'ְ' => 10, + 'ֱ' => 11, + 'ֲ' => 12, + 'ֳ' => 13, + 'ִ' => 14, + 'ֵ' => 15, + 'ֶ' => 16, + 'ַ' => 17, + 'ָ' => 18, + 'ֹ' => 19, + 'ֺ' => 19, + 'ֻ' => 20, + 'ּ' => 21, + 'ֽ' => 22, + 'ֿ' => 23, + 'ׁ' => 24, + 'ׂ' => 25, + 'ׄ' => 230, + 'ׅ' => 220, + 'ׇ' => 18, + 'ؐ' => 230, + 'ؑ' => 230, + 'ؒ' => 230, + 'ؓ' => 230, + 'ؔ' => 230, + 'ؕ' => 230, + 'ؖ' => 230, + 'ؗ' => 230, + 'ؘ' => 30, + 'ؙ' => 31, + 'ؚ' => 32, + 'ً' => 27, + 'ٌ' => 28, + 'ٍ' => 29, + 'َ' => 30, + 'ُ' => 31, + 'ِ' => 32, + 'ّ' => 33, + 'ْ' => 34, + 'ٓ' => 230, + 'ٔ' => 230, + 'ٕ' => 220, + 'ٖ' => 220, + 'ٗ' => 230, + '٘' => 230, + 'ٙ' => 230, + 'ٚ' => 230, + 'ٛ' => 230, + 'ٜ' => 220, + 'ٝ' => 230, + 'ٞ' => 230, + 'ٟ' => 220, + 'ٰ' => 35, + 'ۖ' => 230, + 'ۗ' => 230, + 'ۘ' => 230, + 'ۙ' => 230, + 'ۚ' => 230, + 'ۛ' => 230, + 'ۜ' => 230, + '۟' => 230, + '۠' => 230, + 'ۡ' => 230, + 'ۢ' => 230, + 'ۣ' => 220, + 'ۤ' => 230, + 'ۧ' => 230, + 'ۨ' => 230, + '۪' => 220, + '۫' => 230, + '۬' => 230, + 'ۭ' => 220, + 'ܑ' => 36, + 'ܰ' => 230, + 'ܱ' => 220, + 'ܲ' => 230, + 'ܳ' => 230, + 'ܴ' => 220, + 'ܵ' => 230, + 'ܶ' => 230, + 'ܷ' => 220, + 'ܸ' => 220, + 'ܹ' => 220, + 'ܺ' => 230, + 'ܻ' => 220, + 'ܼ' => 220, + 'ܽ' => 230, + 'ܾ' => 220, + 'ܿ' => 230, + '݀' => 230, + '݁' => 230, + '݂' => 220, + '݃' => 230, + '݄' => 220, + '݅' => 230, + '݆' => 220, + '݇' => 230, + '݈' => 220, + '݉' => 230, + '݊' => 230, + '߫' => 230, + '߬' => 230, + '߭' => 230, + '߮' => 230, + '߯' => 230, + '߰' => 230, + '߱' => 230, + '߲' => 220, + '߳' => 230, + '߽' => 220, + 'ࠖ' => 230, + 'ࠗ' => 230, + '࠘' => 230, + '࠙' => 230, + 'ࠛ' => 230, + 'ࠜ' => 230, + 'ࠝ' => 230, + 'ࠞ' => 230, + 'ࠟ' => 230, + 'ࠠ' => 230, + 'ࠡ' => 230, + 'ࠢ' => 230, + 'ࠣ' => 230, + 'ࠥ' => 230, + 'ࠦ' => 230, + 'ࠧ' => 230, + 'ࠩ' => 230, + 'ࠪ' => 230, + 'ࠫ' => 230, + 'ࠬ' => 230, + '࠭' => 230, + '࡙' => 220, + '࡚' => 220, + '࡛' => 220, + '࣓' => 220, + 'ࣔ' => 230, + 'ࣕ' => 230, + 'ࣖ' => 230, + 'ࣗ' => 230, + 'ࣘ' => 230, + 'ࣙ' => 230, + 'ࣚ' => 230, + 'ࣛ' => 230, + 'ࣜ' => 230, + 'ࣝ' => 230, + 'ࣞ' => 230, + 'ࣟ' => 230, + '࣠' => 230, + '࣡' => 230, + 'ࣣ' => 220, + 'ࣤ' => 230, + 'ࣥ' => 230, + 'ࣦ' => 220, + 'ࣧ' => 230, + 'ࣨ' => 230, + 'ࣩ' => 220, + '࣪' => 230, + '࣫' => 230, + '࣬' => 230, + '࣭' => 220, + '࣮' => 220, + '࣯' => 220, + 'ࣰ' => 27, + 'ࣱ' => 28, + 'ࣲ' => 29, + 'ࣳ' => 230, + 'ࣴ' => 230, + 'ࣵ' => 230, + 'ࣶ' => 220, + 'ࣷ' => 230, + 'ࣸ' => 230, + 'ࣹ' => 220, + 'ࣺ' => 220, + 'ࣻ' => 230, + 'ࣼ' => 230, + 'ࣽ' => 230, + 'ࣾ' => 230, + 'ࣿ' => 230, + '़' => 7, + '्' => 9, + '॑' => 230, + '॒' => 220, + '॓' => 230, + '॔' => 230, + '়' => 7, + '্' => 9, + '৾' => 230, + '਼' => 7, + '੍' => 9, + '઼' => 7, + '્' => 9, + '଼' => 7, + '୍' => 9, + '்' => 9, + '్' => 9, + 'ౕ' => 84, + 'ౖ' => 91, + '಼' => 7, + '್' => 9, + '഻' => 9, + '഼' => 9, + '്' => 9, + '්' => 9, + 'ุ' => 103, + 'ู' => 103, + 'ฺ' => 9, + '่' => 107, + '้' => 107, + '๊' => 107, + '๋' => 107, + 'ຸ' => 118, + 'ູ' => 118, + '຺' => 9, + '່' => 122, + '້' => 122, + '໊' => 122, + '໋' => 122, + '༘' => 220, + '༙' => 220, + '༵' => 220, + '༷' => 220, + '༹' => 216, + 'ཱ' => 129, + 'ི' => 130, + 'ུ' => 132, + 'ེ' => 130, + 'ཻ' => 130, + 'ོ' => 130, + 'ཽ' => 130, + 'ྀ' => 130, + 'ྂ' => 230, + 'ྃ' => 230, + '྄' => 9, + '྆' => 230, + '྇' => 230, + '࿆' => 220, + '့' => 7, + '္' => 9, + '်' => 9, + 'ႍ' => 220, + '፝' => 230, + '፞' => 230, + '፟' => 230, + '᜔' => 9, + '᜴' => 9, + '្' => 9, + '៝' => 230, + 'ᢩ' => 228, + '᤹' => 222, + '᤺' => 230, + '᤻' => 220, + 'ᨗ' => 230, + 'ᨘ' => 220, + '᩠' => 9, + '᩵' => 230, + '᩶' => 230, + '᩷' => 230, + '᩸' => 230, + '᩹' => 230, + '᩺' => 230, + '᩻' => 230, + '᩼' => 230, + '᩿' => 220, + '᪰' => 230, + '᪱' => 230, + '᪲' => 230, + '᪳' => 230, + '᪴' => 230, + '᪵' => 220, + '᪶' => 220, + '᪷' => 220, + '᪸' => 220, + '᪹' => 220, + '᪺' => 220, + '᪻' => 230, + '᪼' => 230, + '᪽' => 220, + 'ᪿ' => 220, + 'ᫀ' => 220, + '᬴' => 7, + '᭄' => 9, + '᭫' => 230, + '᭬' => 220, + '᭭' => 230, + '᭮' => 230, + '᭯' => 230, + '᭰' => 230, + '᭱' => 230, + '᭲' => 230, + '᭳' => 230, + '᮪' => 9, + '᮫' => 9, + '᯦' => 7, + '᯲' => 9, + '᯳' => 9, + '᰷' => 7, + '᳐' => 230, + '᳑' => 230, + '᳒' => 230, + '᳔' => 1, + '᳕' => 220, + '᳖' => 220, + '᳗' => 220, + '᳘' => 220, + '᳙' => 220, + '᳚' => 230, + '᳛' => 230, + '᳜' => 220, + '᳝' => 220, + '᳞' => 220, + '᳟' => 220, + '᳠' => 230, + '᳢' => 1, + '᳣' => 1, + '᳤' => 1, + '᳥' => 1, + '᳦' => 1, + '᳧' => 1, + '᳨' => 1, + '᳭' => 220, + '᳴' => 230, + '᳸' => 230, + '᳹' => 230, + '᷀' => 230, + '᷁' => 230, + '᷂' => 220, + '᷃' => 230, + '᷄' => 230, + '᷅' => 230, + '᷆' => 230, + '᷇' => 230, + '᷈' => 230, + '᷉' => 230, + '᷊' => 220, + '᷋' => 230, + '᷌' => 230, + '᷍' => 234, + '᷎' => 214, + '᷏' => 220, + '᷐' => 202, + '᷑' => 230, + '᷒' => 230, + 'ᷓ' => 230, + 'ᷔ' => 230, + 'ᷕ' => 230, + 'ᷖ' => 230, + 'ᷗ' => 230, + 'ᷘ' => 230, + 'ᷙ' => 230, + 'ᷚ' => 230, + 'ᷛ' => 230, + 'ᷜ' => 230, + 'ᷝ' => 230, + 'ᷞ' => 230, + 'ᷟ' => 230, + 'ᷠ' => 230, + 'ᷡ' => 230, + 'ᷢ' => 230, + 'ᷣ' => 230, + 'ᷤ' => 230, + 'ᷥ' => 230, + 'ᷦ' => 230, + 'ᷧ' => 230, + 'ᷨ' => 230, + 'ᷩ' => 230, + 'ᷪ' => 230, + 'ᷫ' => 230, + 'ᷬ' => 230, + 'ᷭ' => 230, + 'ᷮ' => 230, + 'ᷯ' => 230, + 'ᷰ' => 230, + 'ᷱ' => 230, + 'ᷲ' => 230, + 'ᷳ' => 230, + 'ᷴ' => 230, + '᷵' => 230, + '᷶' => 232, + '᷷' => 228, + '᷸' => 228, + '᷹' => 220, + '᷻' => 230, + '᷼' => 233, + '᷽' => 220, + '᷾' => 230, + '᷿' => 220, + '⃐' => 230, + '⃑' => 230, + '⃒' => 1, + '⃓' => 1, + '⃔' => 230, + '⃕' => 230, + '⃖' => 230, + '⃗' => 230, + '⃘' => 1, + '⃙' => 1, + '⃚' => 1, + '⃛' => 230, + '⃜' => 230, + '⃡' => 230, + '⃥' => 1, + '⃦' => 1, + '⃧' => 230, + '⃨' => 220, + '⃩' => 230, + '⃪' => 1, + '⃫' => 1, + '⃬' => 220, + '⃭' => 220, + '⃮' => 220, + '⃯' => 220, + '⃰' => 230, + '⳯' => 230, + '⳰' => 230, + '⳱' => 230, + '⵿' => 9, + 'ⷠ' => 230, + 'ⷡ' => 230, + 'ⷢ' => 230, + 'ⷣ' => 230, + 'ⷤ' => 230, + 'ⷥ' => 230, + 'ⷦ' => 230, + 'ⷧ' => 230, + 'ⷨ' => 230, + 'ⷩ' => 230, + 'ⷪ' => 230, + 'ⷫ' => 230, + 'ⷬ' => 230, + 'ⷭ' => 230, + 'ⷮ' => 230, + 'ⷯ' => 230, + 'ⷰ' => 230, + 'ⷱ' => 230, + 'ⷲ' => 230, + 'ⷳ' => 230, + 'ⷴ' => 230, + 'ⷵ' => 230, + 'ⷶ' => 230, + 'ⷷ' => 230, + 'ⷸ' => 230, + 'ⷹ' => 230, + 'ⷺ' => 230, + 'ⷻ' => 230, + 'ⷼ' => 230, + 'ⷽ' => 230, + 'ⷾ' => 230, + 'ⷿ' => 230, + '〪' => 218, + '〫' => 228, + '〬' => 232, + '〭' => 222, + '〮' => 224, + '〯' => 224, + '゙' => 8, + '゚' => 8, + '꙯' => 230, + 'ꙴ' => 230, + 'ꙵ' => 230, + 'ꙶ' => 230, + 'ꙷ' => 230, + 'ꙸ' => 230, + 'ꙹ' => 230, + 'ꙺ' => 230, + 'ꙻ' => 230, + '꙼' => 230, + '꙽' => 230, + 'ꚞ' => 230, + 'ꚟ' => 230, + '꛰' => 230, + '꛱' => 230, + '꠆' => 9, + '꠬' => 9, + '꣄' => 9, + '꣠' => 230, + '꣡' => 230, + '꣢' => 230, + '꣣' => 230, + '꣤' => 230, + '꣥' => 230, + '꣦' => 230, + '꣧' => 230, + '꣨' => 230, + '꣩' => 230, + '꣪' => 230, + '꣫' => 230, + '꣬' => 230, + '꣭' => 230, + '꣮' => 230, + '꣯' => 230, + '꣰' => 230, + '꣱' => 230, + '꤫' => 220, + '꤬' => 220, + '꤭' => 220, + '꥓' => 9, + '꦳' => 7, + '꧀' => 9, + 'ꪰ' => 230, + 'ꪲ' => 230, + 'ꪳ' => 230, + 'ꪴ' => 220, + 'ꪷ' => 230, + 'ꪸ' => 230, + 'ꪾ' => 230, + '꪿' => 230, + '꫁' => 230, + '꫶' => 9, + '꯭' => 9, + 'ﬞ' => 26, + '︠' => 230, + '︡' => 230, + '︢' => 230, + '︣' => 230, + '︤' => 230, + '︥' => 230, + '︦' => 230, + '︧' => 220, + '︨' => 220, + '︩' => 220, + '︪' => 220, + '︫' => 220, + '︬' => 220, + '︭' => 220, + '︮' => 230, + '︯' => 230, + '𐇽' => 220, + '𐋠' => 220, + '𐍶' => 230, + '𐍷' => 230, + '𐍸' => 230, + '𐍹' => 230, + '𐍺' => 230, + '𐨍' => 220, + '𐨏' => 230, + '𐨸' => 230, + '𐨹' => 1, + '𐨺' => 220, + '𐨿' => 9, + '𐫥' => 230, + '𐫦' => 220, + '𐴤' => 230, + '𐴥' => 230, + '𐴦' => 230, + '𐴧' => 230, + '𐺫' => 230, + '𐺬' => 230, + '𐽆' => 220, + '𐽇' => 220, + '𐽈' => 230, + '𐽉' => 230, + '𐽊' => 230, + '𐽋' => 220, + '𐽌' => 230, + '𐽍' => 220, + '𐽎' => 220, + '𐽏' => 220, + '𐽐' => 220, + '𑁆' => 9, + '𑁿' => 9, + '𑂹' => 9, + '𑂺' => 7, + '𑄀' => 230, + '𑄁' => 230, + '𑄂' => 230, + '𑄳' => 9, + '𑄴' => 9, + '𑅳' => 7, + '𑇀' => 9, + '𑇊' => 7, + '𑈵' => 9, + '𑈶' => 7, + '𑋩' => 7, + '𑋪' => 9, + '𑌻' => 7, + '𑌼' => 7, + '𑍍' => 9, + '𑍦' => 230, + '𑍧' => 230, + '𑍨' => 230, + '𑍩' => 230, + '𑍪' => 230, + '𑍫' => 230, + '𑍬' => 230, + '𑍰' => 230, + '𑍱' => 230, + '𑍲' => 230, + '𑍳' => 230, + '𑍴' => 230, + '𑑂' => 9, + '𑑆' => 7, + '𑑞' => 230, + '𑓂' => 9, + '𑓃' => 7, + '𑖿' => 9, + '𑗀' => 7, + '𑘿' => 9, + '𑚶' => 9, + '𑚷' => 7, + '𑜫' => 9, + '𑠹' => 9, + '𑠺' => 7, + '𑤽' => 9, + '𑤾' => 9, + '𑥃' => 7, + '𑧠' => 9, + '𑨴' => 9, + '𑩇' => 9, + '𑪙' => 9, + '𑰿' => 9, + '𑵂' => 7, + '𑵄' => 9, + '𑵅' => 9, + '𑶗' => 9, + '𖫰' => 1, + '𖫱' => 1, + '𖫲' => 1, + '𖫳' => 1, + '𖫴' => 1, + '𖬰' => 230, + '𖬱' => 230, + '𖬲' => 230, + '𖬳' => 230, + '𖬴' => 230, + '𖬵' => 230, + '𖬶' => 230, + '𖿰' => 6, + '𖿱' => 6, + '𛲞' => 1, + '𝅥' => 216, + '𝅦' => 216, + '𝅧' => 1, + '𝅨' => 1, + '𝅩' => 1, + '𝅭' => 226, + '𝅮' => 216, + '𝅯' => 216, + '𝅰' => 216, + '𝅱' => 216, + '𝅲' => 216, + '𝅻' => 220, + '𝅼' => 220, + '𝅽' => 220, + '𝅾' => 220, + '𝅿' => 220, + '𝆀' => 220, + '𝆁' => 220, + '𝆂' => 220, + '𝆅' => 230, + '𝆆' => 230, + '𝆇' => 230, + '𝆈' => 230, + '𝆉' => 230, + '𝆊' => 220, + '𝆋' => 220, + '𝆪' => 230, + '𝆫' => 230, + '𝆬' => 230, + '𝆭' => 230, + '𝉂' => 230, + '𝉃' => 230, + '𝉄' => 230, + '𞀀' => 230, + '𞀁' => 230, + '𞀂' => 230, + '𞀃' => 230, + '𞀄' => 230, + '𞀅' => 230, + '𞀆' => 230, + '𞀈' => 230, + '𞀉' => 230, + '𞀊' => 230, + '𞀋' => 230, + '𞀌' => 230, + '𞀍' => 230, + '𞀎' => 230, + '𞀏' => 230, + '𞀐' => 230, + '𞀑' => 230, + '𞀒' => 230, + '𞀓' => 230, + '𞀔' => 230, + '𞀕' => 230, + '𞀖' => 230, + '𞀗' => 230, + '𞀘' => 230, + '𞀛' => 230, + '𞀜' => 230, + '𞀝' => 230, + '𞀞' => 230, + '𞀟' => 230, + '𞀠' => 230, + '𞀡' => 230, + '𞀣' => 230, + '𞀤' => 230, + '𞀦' => 230, + '𞀧' => 230, + '𞀨' => 230, + '𞀩' => 230, + '𞀪' => 230, + '𞄰' => 230, + '𞄱' => 230, + '𞄲' => 230, + '𞄳' => 230, + '𞄴' => 230, + '𞄵' => 230, + '𞄶' => 230, + '𞋬' => 230, + '𞋭' => 230, + '𞋮' => 230, + '𞋯' => 230, + '𞣐' => 220, + '𞣑' => 220, + '𞣒' => 220, + '𞣓' => 220, + '𞣔' => 220, + '𞣕' => 220, + '𞣖' => 220, + '𞥄' => 230, + '𞥅' => 230, + '𞥆' => 230, + '𞥇' => 230, + '𞥈' => 230, + '𞥉' => 230, + '𞥊' => 7, +); diff --git a/user/plugins/email/vendor/symfony/polyfill-intl-normalizer/Resources/unidata/compatibilityDecomposition.php b/user/plugins/email/vendor/symfony/polyfill-intl-normalizer/Resources/unidata/compatibilityDecomposition.php new file mode 100644 index 0000000..1574902 --- /dev/null +++ b/user/plugins/email/vendor/symfony/polyfill-intl-normalizer/Resources/unidata/compatibilityDecomposition.php @@ -0,0 +1,3695 @@ + ' ', + '¨' => ' ̈', + 'ª' => 'a', + '¯' => ' ̄', + '²' => '2', + '³' => '3', + '´' => ' ́', + 'µ' => 'μ', + '¸' => ' ̧', + '¹' => '1', + 'º' => 'o', + '¼' => '1⁄4', + '½' => '1⁄2', + '¾' => '3⁄4', + 'IJ' => 'IJ', + 'ij' => 'ij', + 'Ŀ' => 'L·', + 'ŀ' => 'l·', + 'ʼn' => 'ʼn', + 'ſ' => 's', + 'DŽ' => 'DŽ', + 'Dž' => 'Dž', + 'dž' => 'dž', + 'LJ' => 'LJ', + 'Lj' => 'Lj', + 'lj' => 'lj', + 'NJ' => 'NJ', + 'Nj' => 'Nj', + 'nj' => 'nj', + 'DZ' => 'DZ', + 'Dz' => 'Dz', + 'dz' => 'dz', + 'ʰ' => 'h', + 'ʱ' => 'ɦ', + 'ʲ' => 'j', + 'ʳ' => 'r', + 'ʴ' => 'ɹ', + 'ʵ' => 'ɻ', + 'ʶ' => 'ʁ', + 'ʷ' => 'w', + 'ʸ' => 'y', + '˘' => ' ̆', + '˙' => ' ̇', + '˚' => ' ̊', + '˛' => ' ̨', + '˜' => ' ̃', + '˝' => ' ̋', + 'ˠ' => 'ɣ', + 'ˡ' => 'l', + 'ˢ' => 's', + 'ˣ' => 'x', + 'ˤ' => 'ʕ', + 'ͺ' => ' ͅ', + '΄' => ' ́', + '΅' => ' ̈́', + 'ϐ' => 'β', + 'ϑ' => 'θ', + 'ϒ' => 'Υ', + 'ϓ' => 'Ύ', + 'ϔ' => 'Ϋ', + 'ϕ' => 'φ', + 'ϖ' => 'π', + 'ϰ' => 'κ', + 'ϱ' => 'ρ', + 'ϲ' => 'ς', + 'ϴ' => 'Θ', + 'ϵ' => 'ε', + 'Ϲ' => 'Σ', + 'և' => 'եւ', + 'ٵ' => 'اٴ', + 'ٶ' => 'وٴ', + 'ٷ' => 'ۇٴ', + 'ٸ' => 'يٴ', + 'ำ' => 'ํา', + 'ຳ' => 'ໍາ', + 'ໜ' => 'ຫນ', + 'ໝ' => 'ຫມ', + '༌' => '་', + 'ཷ' => 'ྲཱྀ', + 'ཹ' => 'ླཱྀ', + 'ჼ' => 'ნ', + 'ᴬ' => 'A', + 'ᴭ' => 'Æ', + 'ᴮ' => 'B', + 'ᴰ' => 'D', + 'ᴱ' => 'E', + 'ᴲ' => 'Ǝ', + 'ᴳ' => 'G', + 'ᴴ' => 'H', + 'ᴵ' => 'I', + 'ᴶ' => 'J', + 'ᴷ' => 'K', + 'ᴸ' => 'L', + 'ᴹ' => 'M', + 'ᴺ' => 'N', + 'ᴼ' => 'O', + 'ᴽ' => 'Ȣ', + 'ᴾ' => 'P', + 'ᴿ' => 'R', + 'ᵀ' => 'T', + 'ᵁ' => 'U', + 'ᵂ' => 'W', + 'ᵃ' => 'a', + 'ᵄ' => 'ɐ', + 'ᵅ' => 'ɑ', + 'ᵆ' => 'ᴂ', + 'ᵇ' => 'b', + 'ᵈ' => 'd', + 'ᵉ' => 'e', + 'ᵊ' => 'ə', + 'ᵋ' => 'ɛ', + 'ᵌ' => 'ɜ', + 'ᵍ' => 'g', + 'ᵏ' => 'k', + 'ᵐ' => 'm', + 'ᵑ' => 'ŋ', + 'ᵒ' => 'o', + 'ᵓ' => 'ɔ', + 'ᵔ' => 'ᴖ', + 'ᵕ' => 'ᴗ', + 'ᵖ' => 'p', + 'ᵗ' => 't', + 'ᵘ' => 'u', + 'ᵙ' => 'ᴝ', + 'ᵚ' => 'ɯ', + 'ᵛ' => 'v', + 'ᵜ' => 'ᴥ', + 'ᵝ' => 'β', + 'ᵞ' => 'γ', + 'ᵟ' => 'δ', + 'ᵠ' => 'φ', + 'ᵡ' => 'χ', + 'ᵢ' => 'i', + 'ᵣ' => 'r', + 'ᵤ' => 'u', + 'ᵥ' => 'v', + 'ᵦ' => 'β', + 'ᵧ' => 'γ', + 'ᵨ' => 'ρ', + 'ᵩ' => 'φ', + 'ᵪ' => 'χ', + 'ᵸ' => 'н', + 'ᶛ' => 'ɒ', + 'ᶜ' => 'c', + 'ᶝ' => 'ɕ', + 'ᶞ' => 'ð', + 'ᶟ' => 'ɜ', + 'ᶠ' => 'f', + 'ᶡ' => 'ɟ', + 'ᶢ' => 'ɡ', + 'ᶣ' => 'ɥ', + 'ᶤ' => 'ɨ', + 'ᶥ' => 'ɩ', + 'ᶦ' => 'ɪ', + 'ᶧ' => 'ᵻ', + 'ᶨ' => 'ʝ', + 'ᶩ' => 'ɭ', + 'ᶪ' => 'ᶅ', + 'ᶫ' => 'ʟ', + 'ᶬ' => 'ɱ', + 'ᶭ' => 'ɰ', + 'ᶮ' => 'ɲ', + 'ᶯ' => 'ɳ', + 'ᶰ' => 'ɴ', + 'ᶱ' => 'ɵ', + 'ᶲ' => 'ɸ', + 'ᶳ' => 'ʂ', + 'ᶴ' => 'ʃ', + 'ᶵ' => 'ƫ', + 'ᶶ' => 'ʉ', + 'ᶷ' => 'ʊ', + 'ᶸ' => 'ᴜ', + 'ᶹ' => 'ʋ', + 'ᶺ' => 'ʌ', + 'ᶻ' => 'z', + 'ᶼ' => 'ʐ', + 'ᶽ' => 'ʑ', + 'ᶾ' => 'ʒ', + 'ᶿ' => 'θ', + 'ẚ' => 'aʾ', + 'ẛ' => 'ṡ', + '᾽' => ' ̓', + '᾿' => ' ̓', + '῀' => ' ͂', + '῁' => ' ̈͂', + '῍' => ' ̓̀', + '῎' => ' ̓́', + '῏' => ' ̓͂', + '῝' => ' ̔̀', + '῞' => ' ̔́', + '῟' => ' ̔͂', + '῭' => ' ̈̀', + '΅' => ' ̈́', + '´' => ' ́', + '῾' => ' ̔', + ' ' => ' ', + ' ' => ' ', + ' ' => ' ', + ' ' => ' ', + ' ' => ' ', + ' ' => ' ', + ' ' => ' ', + ' ' => ' ', + ' ' => ' ', + ' ' => ' ', + ' ' => ' ', + '‑' => '‐', + '‗' => ' ̳', + '․' => '.', + '‥' => '..', + '…' => '...', + ' ' => ' ', + '″' => '′′', + '‴' => '′′′', + '‶' => '‵‵', + '‷' => '‵‵‵', + '‼' => '!!', + '‾' => ' ̅', + '⁇' => '??', + '⁈' => '?!', + '⁉' => '!?', + '⁗' => '′′′′', + ' ' => ' ', + '⁰' => '0', + 'ⁱ' => 'i', + '⁴' => '4', + '⁵' => '5', + '⁶' => '6', + '⁷' => '7', + '⁸' => '8', + '⁹' => '9', + '⁺' => '+', + '⁻' => '−', + '⁼' => '=', + '⁽' => '(', + '⁾' => ')', + 'ⁿ' => 'n', + '₀' => '0', + '₁' => '1', + '₂' => '2', + '₃' => '3', + '₄' => '4', + '₅' => '5', + '₆' => '6', + '₇' => '7', + '₈' => '8', + '₉' => '9', + '₊' => '+', + '₋' => '−', + '₌' => '=', + '₍' => '(', + '₎' => ')', + 'ₐ' => 'a', + 'ₑ' => 'e', + 'ₒ' => 'o', + 'ₓ' => 'x', + 'ₔ' => 'ə', + 'ₕ' => 'h', + 'ₖ' => 'k', + 'ₗ' => 'l', + 'ₘ' => 'm', + 'ₙ' => 'n', + 'ₚ' => 'p', + 'ₛ' => 's', + 'ₜ' => 't', + '₨' => 'Rs', + '℀' => 'a/c', + '℁' => 'a/s', + 'ℂ' => 'C', + '℃' => '°C', + '℅' => 'c/o', + '℆' => 'c/u', + 'ℇ' => 'Ɛ', + '℉' => '°F', + 'ℊ' => 'g', + 'ℋ' => 'H', + 'ℌ' => 'H', + 'ℍ' => 'H', + 'ℎ' => 'h', + 'ℏ' => 'ħ', + 'ℐ' => 'I', + 'ℑ' => 'I', + 'ℒ' => 'L', + 'ℓ' => 'l', + 'ℕ' => 'N', + '№' => 'No', + 'ℙ' => 'P', + 'ℚ' => 'Q', + 'ℛ' => 'R', + 'ℜ' => 'R', + 'ℝ' => 'R', + '℠' => 'SM', + '℡' => 'TEL', + '™' => 'TM', + 'ℤ' => 'Z', + 'ℨ' => 'Z', + 'ℬ' => 'B', + 'ℭ' => 'C', + 'ℯ' => 'e', + 'ℰ' => 'E', + 'ℱ' => 'F', + 'ℳ' => 'M', + 'ℴ' => 'o', + 'ℵ' => 'א', + 'ℶ' => 'ב', + 'ℷ' => 'ג', + 'ℸ' => 'ד', + 'ℹ' => 'i', + '℻' => 'FAX', + 'ℼ' => 'π', + 'ℽ' => 'γ', + 'ℾ' => 'Γ', + 'ℿ' => 'Π', + '⅀' => '∑', + 'ⅅ' => 'D', + 'ⅆ' => 'd', + 'ⅇ' => 'e', + 'ⅈ' => 'i', + 'ⅉ' => 'j', + '⅐' => '1⁄7', + '⅑' => '1⁄9', + '⅒' => '1⁄10', + '⅓' => '1⁄3', + '⅔' => '2⁄3', + '⅕' => '1⁄5', + '⅖' => '2⁄5', + '⅗' => '3⁄5', + '⅘' => '4⁄5', + '⅙' => '1⁄6', + '⅚' => '5⁄6', + '⅛' => '1⁄8', + '⅜' => '3⁄8', + '⅝' => '5⁄8', + '⅞' => '7⁄8', + '⅟' => '1⁄', + 'Ⅰ' => 'I', + 'Ⅱ' => 'II', + 'Ⅲ' => 'III', + 'Ⅳ' => 'IV', + 'Ⅴ' => 'V', + 'Ⅵ' => 'VI', + 'Ⅶ' => 'VII', + 'Ⅷ' => 'VIII', + 'Ⅸ' => 'IX', + 'Ⅹ' => 'X', + 'Ⅺ' => 'XI', + 'Ⅻ' => 'XII', + 'Ⅼ' => 'L', + 'Ⅽ' => 'C', + 'Ⅾ' => 'D', + 'Ⅿ' => 'M', + 'ⅰ' => 'i', + 'ⅱ' => 'ii', + 'ⅲ' => 'iii', + 'ⅳ' => 'iv', + 'ⅴ' => 'v', + 'ⅵ' => 'vi', + 'ⅶ' => 'vii', + 'ⅷ' => 'viii', + 'ⅸ' => 'ix', + 'ⅹ' => 'x', + 'ⅺ' => 'xi', + 'ⅻ' => 'xii', + 'ⅼ' => 'l', + 'ⅽ' => 'c', + 'ⅾ' => 'd', + 'ⅿ' => 'm', + '↉' => '0⁄3', + '∬' => '∫∫', + '∭' => '∫∫∫', + '∯' => '∮∮', + '∰' => '∮∮∮', + '①' => '1', + '②' => '2', + '③' => '3', + '④' => '4', + '⑤' => '5', + '⑥' => '6', + '⑦' => '7', + '⑧' => '8', + '⑨' => '9', + '⑩' => '10', + '⑪' => '11', + '⑫' => '12', + '⑬' => '13', + '⑭' => '14', + '⑮' => '15', + '⑯' => '16', + '⑰' => '17', + '⑱' => '18', + '⑲' => '19', + '⑳' => '20', + '⑴' => '(1)', + '⑵' => '(2)', + '⑶' => '(3)', + '⑷' => '(4)', + '⑸' => '(5)', + '⑹' => '(6)', + '⑺' => '(7)', + '⑻' => '(8)', + '⑼' => '(9)', + '⑽' => '(10)', + '⑾' => '(11)', + '⑿' => '(12)', + '⒀' => '(13)', + '⒁' => '(14)', + '⒂' => '(15)', + '⒃' => '(16)', + '⒄' => '(17)', + '⒅' => '(18)', + '⒆' => '(19)', + '⒇' => '(20)', + '⒈' => '1.', + '⒉' => '2.', + '⒊' => '3.', + '⒋' => '4.', + '⒌' => '5.', + '⒍' => '6.', + '⒎' => '7.', + '⒏' => '8.', + '⒐' => '9.', + '⒑' => '10.', + '⒒' => '11.', + '⒓' => '12.', + '⒔' => '13.', + '⒕' => '14.', + '⒖' => '15.', + '⒗' => '16.', + '⒘' => '17.', + '⒙' => '18.', + '⒚' => '19.', + '⒛' => '20.', + '⒜' => '(a)', + '⒝' => '(b)', + '⒞' => '(c)', + '⒟' => '(d)', + '⒠' => '(e)', + '⒡' => '(f)', + '⒢' => '(g)', + '⒣' => '(h)', + '⒤' => '(i)', + '⒥' => '(j)', + '⒦' => '(k)', + '⒧' => '(l)', + '⒨' => '(m)', + '⒩' => '(n)', + '⒪' => '(o)', + '⒫' => '(p)', + '⒬' => '(q)', + '⒭' => '(r)', + '⒮' => '(s)', + '⒯' => '(t)', + '⒰' => '(u)', + '⒱' => '(v)', + '⒲' => '(w)', + '⒳' => '(x)', + '⒴' => '(y)', + '⒵' => '(z)', + 'Ⓐ' => 'A', + 'Ⓑ' => 'B', + 'Ⓒ' => 'C', + 'Ⓓ' => 'D', + 'Ⓔ' => 'E', + 'Ⓕ' => 'F', + 'Ⓖ' => 'G', + 'Ⓗ' => 'H', + 'Ⓘ' => 'I', + 'Ⓙ' => 'J', + 'Ⓚ' => 'K', + 'Ⓛ' => 'L', + 'Ⓜ' => 'M', + 'Ⓝ' => 'N', + 'Ⓞ' => 'O', + 'Ⓟ' => 'P', + 'Ⓠ' => 'Q', + 'Ⓡ' => 'R', + 'Ⓢ' => 'S', + 'Ⓣ' => 'T', + 'Ⓤ' => 'U', + 'Ⓥ' => 'V', + 'Ⓦ' => 'W', + 'Ⓧ' => 'X', + 'Ⓨ' => 'Y', + 'Ⓩ' => 'Z', + 'ⓐ' => 'a', + 'ⓑ' => 'b', + 'ⓒ' => 'c', + 'ⓓ' => 'd', + 'ⓔ' => 'e', + 'ⓕ' => 'f', + 'ⓖ' => 'g', + 'ⓗ' => 'h', + 'ⓘ' => 'i', + 'ⓙ' => 'j', + 'ⓚ' => 'k', + 'ⓛ' => 'l', + 'ⓜ' => 'm', + 'ⓝ' => 'n', + 'ⓞ' => 'o', + 'ⓟ' => 'p', + 'ⓠ' => 'q', + 'ⓡ' => 'r', + 'ⓢ' => 's', + 'ⓣ' => 't', + 'ⓤ' => 'u', + 'ⓥ' => 'v', + 'ⓦ' => 'w', + 'ⓧ' => 'x', + 'ⓨ' => 'y', + 'ⓩ' => 'z', + '⓪' => '0', + '⨌' => '∫∫∫∫', + '⩴' => '::=', + '⩵' => '==', + '⩶' => '===', + 'ⱼ' => 'j', + 'ⱽ' => 'V', + 'ⵯ' => 'ⵡ', + '⺟' => '母', + '⻳' => '龟', + '⼀' => '一', + '⼁' => '丨', + '⼂' => '丶', + '⼃' => '丿', + '⼄' => '乙', + '⼅' => '亅', + '⼆' => '二', + '⼇' => '亠', + '⼈' => '人', + '⼉' => '儿', + '⼊' => '入', + '⼋' => '八', + '⼌' => '冂', + '⼍' => '冖', + '⼎' => '冫', + '⼏' => '几', + '⼐' => '凵', + '⼑' => '刀', + '⼒' => '力', + '⼓' => '勹', + '⼔' => '匕', + '⼕' => '匚', + '⼖' => '匸', + '⼗' => '十', + '⼘' => '卜', + '⼙' => '卩', + '⼚' => '厂', + '⼛' => '厶', + '⼜' => '又', + '⼝' => '口', + '⼞' => '囗', + '⼟' => '土', + '⼠' => '士', + '⼡' => '夂', + '⼢' => '夊', + '⼣' => '夕', + '⼤' => '大', + '⼥' => '女', + '⼦' => '子', + '⼧' => '宀', + '⼨' => '寸', + '⼩' => '小', + '⼪' => '尢', + '⼫' => '尸', + '⼬' => '屮', + '⼭' => '山', + '⼮' => '巛', + '⼯' => '工', + '⼰' => '己', + '⼱' => '巾', + '⼲' => '干', + '⼳' => '幺', + '⼴' => '广', + '⼵' => '廴', + '⼶' => '廾', + '⼷' => '弋', + '⼸' => '弓', + '⼹' => '彐', + '⼺' => '彡', + '⼻' => '彳', + '⼼' => '心', + '⼽' => '戈', + '⼾' => '戶', + '⼿' => '手', + '⽀' => '支', + '⽁' => '攴', + '⽂' => '文', + '⽃' => '斗', + '⽄' => '斤', + '⽅' => '方', + '⽆' => '无', + '⽇' => '日', + '⽈' => '曰', + '⽉' => '月', + '⽊' => '木', + '⽋' => '欠', + '⽌' => '止', + '⽍' => '歹', + '⽎' => '殳', + '⽏' => '毋', + '⽐' => '比', + '⽑' => '毛', + '⽒' => '氏', + '⽓' => '气', + '⽔' => '水', + '⽕' => '火', + '⽖' => '爪', + '⽗' => '父', + '⽘' => '爻', + '⽙' => '爿', + '⽚' => '片', + '⽛' => '牙', + '⽜' => '牛', + '⽝' => '犬', + '⽞' => '玄', + '⽟' => '玉', + '⽠' => '瓜', + '⽡' => '瓦', + '⽢' => '甘', + '⽣' => '生', + '⽤' => '用', + '⽥' => '田', + '⽦' => '疋', + '⽧' => '疒', + '⽨' => '癶', + '⽩' => '白', + '⽪' => '皮', + '⽫' => '皿', + '⽬' => '目', + '⽭' => '矛', + '⽮' => '矢', + '⽯' => '石', + '⽰' => '示', + '⽱' => '禸', + '⽲' => '禾', + '⽳' => '穴', + '⽴' => '立', + '⽵' => '竹', + '⽶' => '米', + '⽷' => '糸', + '⽸' => '缶', + '⽹' => '网', + '⽺' => '羊', + '⽻' => '羽', + '⽼' => '老', + '⽽' => '而', + '⽾' => '耒', + '⽿' => '耳', + '⾀' => '聿', + '⾁' => '肉', + '⾂' => '臣', + '⾃' => '自', + '⾄' => '至', + '⾅' => '臼', + '⾆' => '舌', + '⾇' => '舛', + '⾈' => '舟', + '⾉' => '艮', + '⾊' => '色', + '⾋' => '艸', + '⾌' => '虍', + '⾍' => '虫', + '⾎' => '血', + '⾏' => '行', + '⾐' => '衣', + '⾑' => '襾', + '⾒' => '見', + '⾓' => '角', + '⾔' => '言', + '⾕' => '谷', + '⾖' => '豆', + '⾗' => '豕', + '⾘' => '豸', + '⾙' => '貝', + '⾚' => '赤', + '⾛' => '走', + '⾜' => '足', + '⾝' => '身', + '⾞' => '車', + '⾟' => '辛', + '⾠' => '辰', + '⾡' => '辵', + '⾢' => '邑', + '⾣' => '酉', + '⾤' => '釆', + '⾥' => '里', + '⾦' => '金', + '⾧' => '長', + '⾨' => '門', + '⾩' => '阜', + '⾪' => '隶', + '⾫' => '隹', + '⾬' => '雨', + '⾭' => '靑', + '⾮' => '非', + '⾯' => '面', + '⾰' => '革', + '⾱' => '韋', + '⾲' => '韭', + '⾳' => '音', + '⾴' => '頁', + '⾵' => '風', + '⾶' => '飛', + '⾷' => '食', + '⾸' => '首', + '⾹' => '香', + '⾺' => '馬', + '⾻' => '骨', + '⾼' => '高', + '⾽' => '髟', + '⾾' => '鬥', + '⾿' => '鬯', + '⿀' => '鬲', + '⿁' => '鬼', + '⿂' => '魚', + '⿃' => '鳥', + '⿄' => '鹵', + '⿅' => '鹿', + '⿆' => '麥', + '⿇' => '麻', + '⿈' => '黃', + '⿉' => '黍', + '⿊' => '黑', + '⿋' => '黹', + '⿌' => '黽', + '⿍' => '鼎', + '⿎' => '鼓', + '⿏' => '鼠', + '⿐' => '鼻', + '⿑' => '齊', + '⿒' => '齒', + '⿓' => '龍', + '⿔' => '龜', + '⿕' => '龠', + ' ' => ' ', + '〶' => '〒', + '〸' => '十', + '〹' => '卄', + '〺' => '卅', + '゛' => ' ゙', + '゜' => ' ゚', + 'ゟ' => 'より', + 'ヿ' => 'コト', + 'ㄱ' => 'ᄀ', + 'ㄲ' => 'ᄁ', + 'ㄳ' => 'ᆪ', + 'ㄴ' => 'ᄂ', + 'ㄵ' => 'ᆬ', + 'ㄶ' => 'ᆭ', + 'ㄷ' => 'ᄃ', + 'ㄸ' => 'ᄄ', + 'ㄹ' => 'ᄅ', + 'ㄺ' => 'ᆰ', + 'ㄻ' => 'ᆱ', + 'ㄼ' => 'ᆲ', + 'ㄽ' => 'ᆳ', + 'ㄾ' => 'ᆴ', + 'ㄿ' => 'ᆵ', + 'ㅀ' => 'ᄚ', + 'ㅁ' => 'ᄆ', + 'ㅂ' => 'ᄇ', + 'ㅃ' => 'ᄈ', + 'ㅄ' => 'ᄡ', + 'ㅅ' => 'ᄉ', + 'ㅆ' => 'ᄊ', + 'ㅇ' => 'ᄋ', + 'ㅈ' => 'ᄌ', + 'ㅉ' => 'ᄍ', + 'ㅊ' => 'ᄎ', + 'ㅋ' => 'ᄏ', + 'ㅌ' => 'ᄐ', + 'ㅍ' => 'ᄑ', + 'ㅎ' => 'ᄒ', + 'ㅏ' => 'ᅡ', + 'ㅐ' => 'ᅢ', + 'ㅑ' => 'ᅣ', + 'ㅒ' => 'ᅤ', + 'ㅓ' => 'ᅥ', + 'ㅔ' => 'ᅦ', + 'ㅕ' => 'ᅧ', + 'ㅖ' => 'ᅨ', + 'ㅗ' => 'ᅩ', + 'ㅘ' => 'ᅪ', + 'ㅙ' => 'ᅫ', + 'ㅚ' => 'ᅬ', + 'ㅛ' => 'ᅭ', + 'ㅜ' => 'ᅮ', + 'ㅝ' => 'ᅯ', + 'ㅞ' => 'ᅰ', + 'ㅟ' => 'ᅱ', + 'ㅠ' => 'ᅲ', + 'ㅡ' => 'ᅳ', + 'ㅢ' => 'ᅴ', + 'ㅣ' => 'ᅵ', + 'ㅤ' => 'ᅠ', + 'ㅥ' => 'ᄔ', + 'ㅦ' => 'ᄕ', + 'ㅧ' => 'ᇇ', + 'ㅨ' => 'ᇈ', + 'ㅩ' => 'ᇌ', + 'ㅪ' => 'ᇎ', + 'ㅫ' => 'ᇓ', + 'ㅬ' => 'ᇗ', + 'ㅭ' => 'ᇙ', + 'ㅮ' => 'ᄜ', + 'ㅯ' => 'ᇝ', + 'ㅰ' => 'ᇟ', + 'ㅱ' => 'ᄝ', + 'ㅲ' => 'ᄞ', + 'ㅳ' => 'ᄠ', + 'ㅴ' => 'ᄢ', + 'ㅵ' => 'ᄣ', + 'ㅶ' => 'ᄧ', + 'ㅷ' => 'ᄩ', + 'ㅸ' => 'ᄫ', + 'ㅹ' => 'ᄬ', + 'ㅺ' => 'ᄭ', + 'ㅻ' => 'ᄮ', + 'ㅼ' => 'ᄯ', + 'ㅽ' => 'ᄲ', + 'ㅾ' => 'ᄶ', + 'ㅿ' => 'ᅀ', + 'ㆀ' => 'ᅇ', + 'ㆁ' => 'ᅌ', + 'ㆂ' => 'ᇱ', + 'ㆃ' => 'ᇲ', + 'ㆄ' => 'ᅗ', + 'ㆅ' => 'ᅘ', + 'ㆆ' => 'ᅙ', + 'ㆇ' => 'ᆄ', + 'ㆈ' => 'ᆅ', + 'ㆉ' => 'ᆈ', + 'ㆊ' => 'ᆑ', + 'ㆋ' => 'ᆒ', + 'ㆌ' => 'ᆔ', + 'ㆍ' => 'ᆞ', + 'ㆎ' => 'ᆡ', + '㆒' => '一', + '㆓' => '二', + '㆔' => '三', + '㆕' => '四', + '㆖' => '上', + '㆗' => '中', + '㆘' => '下', + '㆙' => '甲', + '㆚' => '乙', + '㆛' => '丙', + '㆜' => '丁', + '㆝' => '天', + '㆞' => '地', + '㆟' => '人', + '㈀' => '(ᄀ)', + '㈁' => '(ᄂ)', + '㈂' => '(ᄃ)', + '㈃' => '(ᄅ)', + '㈄' => '(ᄆ)', + '㈅' => '(ᄇ)', + '㈆' => '(ᄉ)', + '㈇' => '(ᄋ)', + '㈈' => '(ᄌ)', + '㈉' => '(ᄎ)', + '㈊' => '(ᄏ)', + '㈋' => '(ᄐ)', + '㈌' => '(ᄑ)', + '㈍' => '(ᄒ)', + '㈎' => '(가)', + '㈏' => '(나)', + '㈐' => '(다)', + '㈑' => '(라)', + '㈒' => '(마)', + '㈓' => '(바)', + '㈔' => '(사)', + '㈕' => '(아)', + '㈖' => '(자)', + '㈗' => '(차)', + '㈘' => '(카)', + '㈙' => '(타)', + '㈚' => '(파)', + '㈛' => '(하)', + '㈜' => '(주)', + '㈝' => '(오전)', + '㈞' => '(오후)', + '㈠' => '(一)', + '㈡' => '(二)', + '㈢' => '(三)', + '㈣' => '(四)', + '㈤' => '(五)', + '㈥' => '(六)', + '㈦' => '(七)', + '㈧' => '(八)', + '㈨' => '(九)', + '㈩' => '(十)', + '㈪' => '(月)', + '㈫' => '(火)', + '㈬' => '(水)', + '㈭' => '(木)', + '㈮' => '(金)', + '㈯' => '(土)', + '㈰' => '(日)', + '㈱' => '(株)', + '㈲' => '(有)', + '㈳' => '(社)', + '㈴' => '(名)', + '㈵' => '(特)', + '㈶' => '(財)', + '㈷' => '(祝)', + '㈸' => '(労)', + '㈹' => '(代)', + '㈺' => '(呼)', + '㈻' => '(学)', + '㈼' => '(監)', + '㈽' => '(企)', + '㈾' => '(資)', + '㈿' => '(協)', + '㉀' => '(祭)', + '㉁' => '(休)', + '㉂' => '(自)', + '㉃' => '(至)', + '㉄' => '問', + '㉅' => '幼', + '㉆' => '文', + '㉇' => '箏', + '㉐' => 'PTE', + '㉑' => '21', + '㉒' => '22', + '㉓' => '23', + '㉔' => '24', + '㉕' => '25', + '㉖' => '26', + '㉗' => '27', + '㉘' => '28', + '㉙' => '29', + '㉚' => '30', + '㉛' => '31', + '㉜' => '32', + '㉝' => '33', + '㉞' => '34', + '㉟' => '35', + '㉠' => 'ᄀ', + '㉡' => 'ᄂ', + '㉢' => 'ᄃ', + '㉣' => 'ᄅ', + '㉤' => 'ᄆ', + '㉥' => 'ᄇ', + '㉦' => 'ᄉ', + '㉧' => 'ᄋ', + '㉨' => 'ᄌ', + '㉩' => 'ᄎ', + '㉪' => 'ᄏ', + '㉫' => 'ᄐ', + '㉬' => 'ᄑ', + '㉭' => 'ᄒ', + '㉮' => '가', + '㉯' => '나', + '㉰' => '다', + '㉱' => '라', + '㉲' => '마', + '㉳' => '바', + '㉴' => '사', + '㉵' => '아', + '㉶' => '자', + '㉷' => '차', + '㉸' => '카', + '㉹' => '타', + '㉺' => '파', + '㉻' => '하', + '㉼' => '참고', + '㉽' => '주의', + '㉾' => '우', + '㊀' => '一', + '㊁' => '二', + '㊂' => '三', + '㊃' => '四', + '㊄' => '五', + '㊅' => '六', + '㊆' => '七', + '㊇' => '八', + '㊈' => '九', + '㊉' => '十', + '㊊' => '月', + '㊋' => '火', + '㊌' => '水', + '㊍' => '木', + '㊎' => '金', + '㊏' => '土', + '㊐' => '日', + '㊑' => '株', + '㊒' => '有', + '㊓' => '社', + '㊔' => '名', + '㊕' => '特', + '㊖' => '財', + '㊗' => '祝', + '㊘' => '労', + '㊙' => '秘', + '㊚' => '男', + '㊛' => '女', + '㊜' => '適', + '㊝' => '優', + '㊞' => '印', + '㊟' => '注', + '㊠' => '項', + '㊡' => '休', + '㊢' => '写', + '㊣' => '正', + '㊤' => '上', + '㊥' => '中', + '㊦' => '下', + '㊧' => '左', + '㊨' => '右', + '㊩' => '医', + '㊪' => '宗', + '㊫' => '学', + '㊬' => '監', + '㊭' => '企', + '㊮' => '資', + '㊯' => '協', + '㊰' => '夜', + '㊱' => '36', + '㊲' => '37', + '㊳' => '38', + '㊴' => '39', + '㊵' => '40', + '㊶' => '41', + '㊷' => '42', + '㊸' => '43', + '㊹' => '44', + '㊺' => '45', + '㊻' => '46', + '㊼' => '47', + '㊽' => '48', + '㊾' => '49', + '㊿' => '50', + '㋀' => '1月', + '㋁' => '2月', + '㋂' => '3月', + '㋃' => '4月', + '㋄' => '5月', + '㋅' => '6月', + '㋆' => '7月', + '㋇' => '8月', + '㋈' => '9月', + '㋉' => '10月', + '㋊' => '11月', + '㋋' => '12月', + '㋌' => 'Hg', + '㋍' => 'erg', + '㋎' => 'eV', + '㋏' => 'LTD', + '㋐' => 'ア', + '㋑' => 'イ', + '㋒' => 'ウ', + '㋓' => 'エ', + '㋔' => 'オ', + '㋕' => 'カ', + '㋖' => 'キ', + '㋗' => 'ク', + '㋘' => 'ケ', + '㋙' => 'コ', + '㋚' => 'サ', + '㋛' => 'シ', + '㋜' => 'ス', + '㋝' => 'セ', + '㋞' => 'ソ', + '㋟' => 'タ', + '㋠' => 'チ', + '㋡' => 'ツ', + '㋢' => 'テ', + '㋣' => 'ト', + '㋤' => 'ナ', + '㋥' => 'ニ', + '㋦' => 'ヌ', + '㋧' => 'ネ', + '㋨' => 'ノ', + '㋩' => 'ハ', + '㋪' => 'ヒ', + '㋫' => 'フ', + '㋬' => 'ヘ', + '㋭' => 'ホ', + '㋮' => 'マ', + '㋯' => 'ミ', + '㋰' => 'ム', + '㋱' => 'メ', + '㋲' => 'モ', + '㋳' => 'ヤ', + '㋴' => 'ユ', + '㋵' => 'ヨ', + '㋶' => 'ラ', + '㋷' => 'リ', + '㋸' => 'ル', + '㋹' => 'レ', + '㋺' => 'ロ', + '㋻' => 'ワ', + '㋼' => 'ヰ', + '㋽' => 'ヱ', + '㋾' => 'ヲ', + '㋿' => '令和', + '㌀' => 'アパート', + '㌁' => 'アルファ', + '㌂' => 'アンペア', + '㌃' => 'アール', + '㌄' => 'イニング', + '㌅' => 'インチ', + '㌆' => 'ウォン', + '㌇' => 'エスクード', + '㌈' => 'エーカー', + '㌉' => 'オンス', + '㌊' => 'オーム', + '㌋' => 'カイリ', + '㌌' => 'カラット', + '㌍' => 'カロリー', + '㌎' => 'ガロン', + '㌏' => 'ガンマ', + '㌐' => 'ギガ', + '㌑' => 'ギニー', + '㌒' => 'キュリー', + '㌓' => 'ギルダー', + '㌔' => 'キロ', + '㌕' => 'キログラム', + '㌖' => 'キロメートル', + '㌗' => 'キロワット', + '㌘' => 'グラム', + '㌙' => 'グラムトン', + '㌚' => 'クルゼイロ', + '㌛' => 'クローネ', + '㌜' => 'ケース', + '㌝' => 'コルナ', + '㌞' => 'コーポ', + '㌟' => 'サイクル', + '㌠' => 'サンチーム', + '㌡' => 'シリング', + '㌢' => 'センチ', + '㌣' => 'セント', + '㌤' => 'ダース', + '㌥' => 'デシ', + '㌦' => 'ドル', + '㌧' => 'トン', + '㌨' => 'ナノ', + '㌩' => 'ノット', + '㌪' => 'ハイツ', + '㌫' => 'パーセント', + '㌬' => 'パーツ', + '㌭' => 'バーレル', + '㌮' => 'ピアストル', + '㌯' => 'ピクル', + '㌰' => 'ピコ', + '㌱' => 'ビル', + '㌲' => 'ファラッド', + '㌳' => 'フィート', + '㌴' => 'ブッシェル', + '㌵' => 'フラン', + '㌶' => 'ヘクタール', + '㌷' => 'ペソ', + '㌸' => 'ペニヒ', + '㌹' => 'ヘルツ', + '㌺' => 'ペンス', + '㌻' => 'ページ', + '㌼' => 'ベータ', + '㌽' => 'ポイント', + '㌾' => 'ボルト', + '㌿' => 'ホン', + '㍀' => 'ポンド', + '㍁' => 'ホール', + '㍂' => 'ホーン', + '㍃' => 'マイクロ', + '㍄' => 'マイル', + '㍅' => 'マッハ', + '㍆' => 'マルク', + '㍇' => 'マンション', + '㍈' => 'ミクロン', + '㍉' => 'ミリ', + '㍊' => 'ミリバール', + '㍋' => 'メガ', + '㍌' => 'メガトン', + '㍍' => 'メートル', + '㍎' => 'ヤード', + '㍏' => 'ヤール', + '㍐' => 'ユアン', + '㍑' => 'リットル', + '㍒' => 'リラ', + '㍓' => 'ルピー', + '㍔' => 'ルーブル', + '㍕' => 'レム', + '㍖' => 'レントゲン', + '㍗' => 'ワット', + '㍘' => '0点', + '㍙' => '1点', + '㍚' => '2点', + '㍛' => '3点', + '㍜' => '4点', + '㍝' => '5点', + '㍞' => '6点', + '㍟' => '7点', + '㍠' => '8点', + '㍡' => '9点', + '㍢' => '10点', + '㍣' => '11点', + '㍤' => '12点', + '㍥' => '13点', + '㍦' => '14点', + '㍧' => '15点', + '㍨' => '16点', + '㍩' => '17点', + '㍪' => '18点', + '㍫' => '19点', + '㍬' => '20点', + '㍭' => '21点', + '㍮' => '22点', + '㍯' => '23点', + '㍰' => '24点', + '㍱' => 'hPa', + '㍲' => 'da', + '㍳' => 'AU', + '㍴' => 'bar', + '㍵' => 'oV', + '㍶' => 'pc', + '㍷' => 'dm', + '㍸' => 'dm2', + '㍹' => 'dm3', + '㍺' => 'IU', + '㍻' => '平成', + '㍼' => '昭和', + '㍽' => '大正', + '㍾' => '明治', + '㍿' => '株式会社', + '㎀' => 'pA', + '㎁' => 'nA', + '㎂' => 'μA', + '㎃' => 'mA', + '㎄' => 'kA', + '㎅' => 'KB', + '㎆' => 'MB', + '㎇' => 'GB', + '㎈' => 'cal', + '㎉' => 'kcal', + '㎊' => 'pF', + '㎋' => 'nF', + '㎌' => 'μF', + '㎍' => 'μg', + '㎎' => 'mg', + '㎏' => 'kg', + '㎐' => 'Hz', + '㎑' => 'kHz', + '㎒' => 'MHz', + '㎓' => 'GHz', + '㎔' => 'THz', + '㎕' => 'μl', + '㎖' => 'ml', + '㎗' => 'dl', + '㎘' => 'kl', + '㎙' => 'fm', + '㎚' => 'nm', + '㎛' => 'μm', + '㎜' => 'mm', + '㎝' => 'cm', + '㎞' => 'km', + '㎟' => 'mm2', + '㎠' => 'cm2', + '㎡' => 'm2', + '㎢' => 'km2', + '㎣' => 'mm3', + '㎤' => 'cm3', + '㎥' => 'm3', + '㎦' => 'km3', + '㎧' => 'm∕s', + '㎨' => 'm∕s2', + '㎩' => 'Pa', + '㎪' => 'kPa', + '㎫' => 'MPa', + '㎬' => 'GPa', + '㎭' => 'rad', + '㎮' => 'rad∕s', + '㎯' => 'rad∕s2', + '㎰' => 'ps', + '㎱' => 'ns', + '㎲' => 'μs', + '㎳' => 'ms', + '㎴' => 'pV', + '㎵' => 'nV', + '㎶' => 'μV', + '㎷' => 'mV', + '㎸' => 'kV', + '㎹' => 'MV', + '㎺' => 'pW', + '㎻' => 'nW', + '㎼' => 'μW', + '㎽' => 'mW', + '㎾' => 'kW', + '㎿' => 'MW', + '㏀' => 'kΩ', + '㏁' => 'MΩ', + '㏂' => 'a.m.', + '㏃' => 'Bq', + '㏄' => 'cc', + '㏅' => 'cd', + '㏆' => 'C∕kg', + '㏇' => 'Co.', + '㏈' => 'dB', + '㏉' => 'Gy', + '㏊' => 'ha', + '㏋' => 'HP', + '㏌' => 'in', + '㏍' => 'KK', + '㏎' => 'KM', + '㏏' => 'kt', + '㏐' => 'lm', + '㏑' => 'ln', + '㏒' => 'log', + '㏓' => 'lx', + '㏔' => 'mb', + '㏕' => 'mil', + '㏖' => 'mol', + '㏗' => 'PH', + '㏘' => 'p.m.', + '㏙' => 'PPM', + '㏚' => 'PR', + '㏛' => 'sr', + '㏜' => 'Sv', + '㏝' => 'Wb', + '㏞' => 'V∕m', + '㏟' => 'A∕m', + '㏠' => '1日', + '㏡' => '2日', + '㏢' => '3日', + '㏣' => '4日', + '㏤' => '5日', + '㏥' => '6日', + '㏦' => '7日', + '㏧' => '8日', + '㏨' => '9日', + '㏩' => '10日', + '㏪' => '11日', + '㏫' => '12日', + '㏬' => '13日', + '㏭' => '14日', + '㏮' => '15日', + '㏯' => '16日', + '㏰' => '17日', + '㏱' => '18日', + '㏲' => '19日', + '㏳' => '20日', + '㏴' => '21日', + '㏵' => '22日', + '㏶' => '23日', + '㏷' => '24日', + '㏸' => '25日', + '㏹' => '26日', + '㏺' => '27日', + '㏻' => '28日', + '㏼' => '29日', + '㏽' => '30日', + '㏾' => '31日', + '㏿' => 'gal', + 'ꚜ' => 'ъ', + 'ꚝ' => 'ь', + 'ꝰ' => 'ꝯ', + 'ꟸ' => 'Ħ', + 'ꟹ' => 'œ', + 'ꭜ' => 'ꜧ', + 'ꭝ' => 'ꬷ', + 'ꭞ' => 'ɫ', + 'ꭟ' => 'ꭒ', + 'ꭩ' => 'ʍ', + 'ff' => 'ff', + 'fi' => 'fi', + 'fl' => 'fl', + 'ffi' => 'ffi', + 'ffl' => 'ffl', + 'ſt' => 'st', + 'st' => 'st', + 'ﬓ' => 'մն', + 'ﬔ' => 'մե', + 'ﬕ' => 'մի', + 'ﬖ' => 'վն', + 'ﬗ' => 'մխ', + 'ﬠ' => 'ע', + 'ﬡ' => 'א', + 'ﬢ' => 'ד', + 'ﬣ' => 'ה', + 'ﬤ' => 'כ', + 'ﬥ' => 'ל', + 'ﬦ' => 'ם', + 'ﬧ' => 'ר', + 'ﬨ' => 'ת', + '﬩' => '+', + 'ﭏ' => 'אל', + 'ﭐ' => 'ٱ', + 'ﭑ' => 'ٱ', + 'ﭒ' => 'ٻ', + 'ﭓ' => 'ٻ', + 'ﭔ' => 'ٻ', + 'ﭕ' => 'ٻ', + 'ﭖ' => 'پ', + 'ﭗ' => 'پ', + 'ﭘ' => 'پ', + 'ﭙ' => 'پ', + 'ﭚ' => 'ڀ', + 'ﭛ' => 'ڀ', + 'ﭜ' => 'ڀ', + 'ﭝ' => 'ڀ', + 'ﭞ' => 'ٺ', + 'ﭟ' => 'ٺ', + 'ﭠ' => 'ٺ', + 'ﭡ' => 'ٺ', + 'ﭢ' => 'ٿ', + 'ﭣ' => 'ٿ', + 'ﭤ' => 'ٿ', + 'ﭥ' => 'ٿ', + 'ﭦ' => 'ٹ', + 'ﭧ' => 'ٹ', + 'ﭨ' => 'ٹ', + 'ﭩ' => 'ٹ', + 'ﭪ' => 'ڤ', + 'ﭫ' => 'ڤ', + 'ﭬ' => 'ڤ', + 'ﭭ' => 'ڤ', + 'ﭮ' => 'ڦ', + 'ﭯ' => 'ڦ', + 'ﭰ' => 'ڦ', + 'ﭱ' => 'ڦ', + 'ﭲ' => 'ڄ', + 'ﭳ' => 'ڄ', + 'ﭴ' => 'ڄ', + 'ﭵ' => 'ڄ', + 'ﭶ' => 'ڃ', + 'ﭷ' => 'ڃ', + 'ﭸ' => 'ڃ', + 'ﭹ' => 'ڃ', + 'ﭺ' => 'چ', + 'ﭻ' => 'چ', + 'ﭼ' => 'چ', + 'ﭽ' => 'چ', + 'ﭾ' => 'ڇ', + 'ﭿ' => 'ڇ', + 'ﮀ' => 'ڇ', + 'ﮁ' => 'ڇ', + 'ﮂ' => 'ڍ', + 'ﮃ' => 'ڍ', + 'ﮄ' => 'ڌ', + 'ﮅ' => 'ڌ', + 'ﮆ' => 'ڎ', + 'ﮇ' => 'ڎ', + 'ﮈ' => 'ڈ', + 'ﮉ' => 'ڈ', + 'ﮊ' => 'ژ', + 'ﮋ' => 'ژ', + 'ﮌ' => 'ڑ', + 'ﮍ' => 'ڑ', + 'ﮎ' => 'ک', + 'ﮏ' => 'ک', + 'ﮐ' => 'ک', + 'ﮑ' => 'ک', + 'ﮒ' => 'گ', + 'ﮓ' => 'گ', + 'ﮔ' => 'گ', + 'ﮕ' => 'گ', + 'ﮖ' => 'ڳ', + 'ﮗ' => 'ڳ', + 'ﮘ' => 'ڳ', + 'ﮙ' => 'ڳ', + 'ﮚ' => 'ڱ', + 'ﮛ' => 'ڱ', + 'ﮜ' => 'ڱ', + 'ﮝ' => 'ڱ', + 'ﮞ' => 'ں', + 'ﮟ' => 'ں', + 'ﮠ' => 'ڻ', + 'ﮡ' => 'ڻ', + 'ﮢ' => 'ڻ', + 'ﮣ' => 'ڻ', + 'ﮤ' => 'ۀ', + 'ﮥ' => 'ۀ', + 'ﮦ' => 'ہ', + 'ﮧ' => 'ہ', + 'ﮨ' => 'ہ', + 'ﮩ' => 'ہ', + 'ﮪ' => 'ھ', + 'ﮫ' => 'ھ', + 'ﮬ' => 'ھ', + 'ﮭ' => 'ھ', + 'ﮮ' => 'ے', + 'ﮯ' => 'ے', + 'ﮰ' => 'ۓ', + 'ﮱ' => 'ۓ', + 'ﯓ' => 'ڭ', + 'ﯔ' => 'ڭ', + 'ﯕ' => 'ڭ', + 'ﯖ' => 'ڭ', + 'ﯗ' => 'ۇ', + 'ﯘ' => 'ۇ', + 'ﯙ' => 'ۆ', + 'ﯚ' => 'ۆ', + 'ﯛ' => 'ۈ', + 'ﯜ' => 'ۈ', + 'ﯝ' => 'ۇٴ', + 'ﯞ' => 'ۋ', + 'ﯟ' => 'ۋ', + 'ﯠ' => 'ۅ', + 'ﯡ' => 'ۅ', + 'ﯢ' => 'ۉ', + 'ﯣ' => 'ۉ', + 'ﯤ' => 'ې', + 'ﯥ' => 'ې', + 'ﯦ' => 'ې', + 'ﯧ' => 'ې', + 'ﯨ' => 'ى', + 'ﯩ' => 'ى', + 'ﯪ' => 'ئا', + 'ﯫ' => 'ئا', + 'ﯬ' => 'ئە', + 'ﯭ' => 'ئە', + 'ﯮ' => 'ئو', + 'ﯯ' => 'ئو', + 'ﯰ' => 'ئۇ', + 'ﯱ' => 'ئۇ', + 'ﯲ' => 'ئۆ', + 'ﯳ' => 'ئۆ', + 'ﯴ' => 'ئۈ', + 'ﯵ' => 'ئۈ', + 'ﯶ' => 'ئې', + 'ﯷ' => 'ئې', + 'ﯸ' => 'ئې', + 'ﯹ' => 'ئى', + 'ﯺ' => 'ئى', + 'ﯻ' => 'ئى', + 'ﯼ' => 'ی', + 'ﯽ' => 'ی', + 'ﯾ' => 'ی', + 'ﯿ' => 'ی', + 'ﰀ' => 'ئج', + 'ﰁ' => 'ئح', + 'ﰂ' => 'ئم', + 'ﰃ' => 'ئى', + 'ﰄ' => 'ئي', + 'ﰅ' => 'بج', + 'ﰆ' => 'بح', + 'ﰇ' => 'بخ', + 'ﰈ' => 'بم', + 'ﰉ' => 'بى', + 'ﰊ' => 'بي', + 'ﰋ' => 'تج', + 'ﰌ' => 'تح', + 'ﰍ' => 'تخ', + 'ﰎ' => 'تم', + 'ﰏ' => 'تى', + 'ﰐ' => 'تي', + 'ﰑ' => 'ثج', + 'ﰒ' => 'ثم', + 'ﰓ' => 'ثى', + 'ﰔ' => 'ثي', + 'ﰕ' => 'جح', + 'ﰖ' => 'جم', + 'ﰗ' => 'حج', + 'ﰘ' => 'حم', + 'ﰙ' => 'خج', + 'ﰚ' => 'خح', + 'ﰛ' => 'خم', + 'ﰜ' => 'سج', + 'ﰝ' => 'سح', + 'ﰞ' => 'سخ', + 'ﰟ' => 'سم', + 'ﰠ' => 'صح', + 'ﰡ' => 'صم', + 'ﰢ' => 'ضج', + 'ﰣ' => 'ضح', + 'ﰤ' => 'ضخ', + 'ﰥ' => 'ضم', + 'ﰦ' => 'طح', + 'ﰧ' => 'طم', + 'ﰨ' => 'ظم', + 'ﰩ' => 'عج', + 'ﰪ' => 'عم', + 'ﰫ' => 'غج', + 'ﰬ' => 'غم', + 'ﰭ' => 'فج', + 'ﰮ' => 'فح', + 'ﰯ' => 'فخ', + 'ﰰ' => 'فم', + 'ﰱ' => 'فى', + 'ﰲ' => 'في', + 'ﰳ' => 'قح', + 'ﰴ' => 'قم', + 'ﰵ' => 'قى', + 'ﰶ' => 'قي', + 'ﰷ' => 'كا', + 'ﰸ' => 'كج', + 'ﰹ' => 'كح', + 'ﰺ' => 'كخ', + 'ﰻ' => 'كل', + 'ﰼ' => 'كم', + 'ﰽ' => 'كى', + 'ﰾ' => 'كي', + 'ﰿ' => 'لج', + 'ﱀ' => 'لح', + 'ﱁ' => 'لخ', + 'ﱂ' => 'لم', + 'ﱃ' => 'لى', + 'ﱄ' => 'لي', + 'ﱅ' => 'مج', + 'ﱆ' => 'مح', + 'ﱇ' => 'مخ', + 'ﱈ' => 'مم', + 'ﱉ' => 'مى', + 'ﱊ' => 'مي', + 'ﱋ' => 'نج', + 'ﱌ' => 'نح', + 'ﱍ' => 'نخ', + 'ﱎ' => 'نم', + 'ﱏ' => 'نى', + 'ﱐ' => 'ني', + 'ﱑ' => 'هج', + 'ﱒ' => 'هم', + 'ﱓ' => 'هى', + 'ﱔ' => 'هي', + 'ﱕ' => 'يج', + 'ﱖ' => 'يح', + 'ﱗ' => 'يخ', + 'ﱘ' => 'يم', + 'ﱙ' => 'يى', + 'ﱚ' => 'يي', + 'ﱛ' => 'ذٰ', + 'ﱜ' => 'رٰ', + 'ﱝ' => 'ىٰ', + 'ﱞ' => ' ٌّ', + 'ﱟ' => ' ٍّ', + 'ﱠ' => ' َّ', + 'ﱡ' => ' ُّ', + 'ﱢ' => ' ِّ', + 'ﱣ' => ' ّٰ', + 'ﱤ' => 'ئر', + 'ﱥ' => 'ئز', + 'ﱦ' => 'ئم', + 'ﱧ' => 'ئن', + 'ﱨ' => 'ئى', + 'ﱩ' => 'ئي', + 'ﱪ' => 'بر', + 'ﱫ' => 'بز', + 'ﱬ' => 'بم', + 'ﱭ' => 'بن', + 'ﱮ' => 'بى', + 'ﱯ' => 'بي', + 'ﱰ' => 'تر', + 'ﱱ' => 'تز', + 'ﱲ' => 'تم', + 'ﱳ' => 'تن', + 'ﱴ' => 'تى', + 'ﱵ' => 'تي', + 'ﱶ' => 'ثر', + 'ﱷ' => 'ثز', + 'ﱸ' => 'ثم', + 'ﱹ' => 'ثن', + 'ﱺ' => 'ثى', + 'ﱻ' => 'ثي', + 'ﱼ' => 'فى', + 'ﱽ' => 'في', + 'ﱾ' => 'قى', + 'ﱿ' => 'قي', + 'ﲀ' => 'كا', + 'ﲁ' => 'كل', + 'ﲂ' => 'كم', + 'ﲃ' => 'كى', + 'ﲄ' => 'كي', + 'ﲅ' => 'لم', + 'ﲆ' => 'لى', + 'ﲇ' => 'لي', + 'ﲈ' => 'ما', + 'ﲉ' => 'مم', + 'ﲊ' => 'نر', + 'ﲋ' => 'نز', + 'ﲌ' => 'نم', + 'ﲍ' => 'نن', + 'ﲎ' => 'نى', + 'ﲏ' => 'ني', + 'ﲐ' => 'ىٰ', + 'ﲑ' => 'ير', + 'ﲒ' => 'يز', + 'ﲓ' => 'يم', + 'ﲔ' => 'ين', + 'ﲕ' => 'يى', + 'ﲖ' => 'يي', + 'ﲗ' => 'ئج', + 'ﲘ' => 'ئح', + 'ﲙ' => 'ئخ', + 'ﲚ' => 'ئم', + 'ﲛ' => 'ئه', + 'ﲜ' => 'بج', + 'ﲝ' => 'بح', + 'ﲞ' => 'بخ', + 'ﲟ' => 'بم', + 'ﲠ' => 'به', + 'ﲡ' => 'تج', + 'ﲢ' => 'تح', + 'ﲣ' => 'تخ', + 'ﲤ' => 'تم', + 'ﲥ' => 'ته', + 'ﲦ' => 'ثم', + 'ﲧ' => 'جح', + 'ﲨ' => 'جم', + 'ﲩ' => 'حج', + 'ﲪ' => 'حم', + 'ﲫ' => 'خج', + 'ﲬ' => 'خم', + 'ﲭ' => 'سج', + 'ﲮ' => 'سح', + 'ﲯ' => 'سخ', + 'ﲰ' => 'سم', + 'ﲱ' => 'صح', + 'ﲲ' => 'صخ', + 'ﲳ' => 'صم', + 'ﲴ' => 'ضج', + 'ﲵ' => 'ضح', + 'ﲶ' => 'ضخ', + 'ﲷ' => 'ضم', + 'ﲸ' => 'طح', + 'ﲹ' => 'ظم', + 'ﲺ' => 'عج', + 'ﲻ' => 'عم', + 'ﲼ' => 'غج', + 'ﲽ' => 'غم', + 'ﲾ' => 'فج', + 'ﲿ' => 'فح', + 'ﳀ' => 'فخ', + 'ﳁ' => 'فم', + 'ﳂ' => 'قح', + 'ﳃ' => 'قم', + 'ﳄ' => 'كج', + 'ﳅ' => 'كح', + 'ﳆ' => 'كخ', + 'ﳇ' => 'كل', + 'ﳈ' => 'كم', + 'ﳉ' => 'لج', + 'ﳊ' => 'لح', + 'ﳋ' => 'لخ', + 'ﳌ' => 'لم', + 'ﳍ' => 'له', + 'ﳎ' => 'مج', + 'ﳏ' => 'مح', + 'ﳐ' => 'مخ', + 'ﳑ' => 'مم', + 'ﳒ' => 'نج', + 'ﳓ' => 'نح', + 'ﳔ' => 'نخ', + 'ﳕ' => 'نم', + 'ﳖ' => 'نه', + 'ﳗ' => 'هج', + 'ﳘ' => 'هم', + 'ﳙ' => 'هٰ', + 'ﳚ' => 'يج', + 'ﳛ' => 'يح', + 'ﳜ' => 'يخ', + 'ﳝ' => 'يم', + 'ﳞ' => 'يه', + 'ﳟ' => 'ئم', + 'ﳠ' => 'ئه', + 'ﳡ' => 'بم', + 'ﳢ' => 'به', + 'ﳣ' => 'تم', + 'ﳤ' => 'ته', + 'ﳥ' => 'ثم', + 'ﳦ' => 'ثه', + 'ﳧ' => 'سم', + 'ﳨ' => 'سه', + 'ﳩ' => 'شم', + 'ﳪ' => 'شه', + 'ﳫ' => 'كل', + 'ﳬ' => 'كم', + 'ﳭ' => 'لم', + 'ﳮ' => 'نم', + 'ﳯ' => 'نه', + 'ﳰ' => 'يم', + 'ﳱ' => 'يه', + 'ﳲ' => 'ـَّ', + 'ﳳ' => 'ـُّ', + 'ﳴ' => 'ـِّ', + 'ﳵ' => 'طى', + 'ﳶ' => 'طي', + 'ﳷ' => 'عى', + 'ﳸ' => 'عي', + 'ﳹ' => 'غى', + 'ﳺ' => 'غي', + 'ﳻ' => 'سى', + 'ﳼ' => 'سي', + 'ﳽ' => 'شى', + 'ﳾ' => 'شي', + 'ﳿ' => 'حى', + 'ﴀ' => 'حي', + 'ﴁ' => 'جى', + 'ﴂ' => 'جي', + 'ﴃ' => 'خى', + 'ﴄ' => 'خي', + 'ﴅ' => 'صى', + 'ﴆ' => 'صي', + 'ﴇ' => 'ضى', + 'ﴈ' => 'ضي', + 'ﴉ' => 'شج', + 'ﴊ' => 'شح', + 'ﴋ' => 'شخ', + 'ﴌ' => 'شم', + 'ﴍ' => 'شر', + 'ﴎ' => 'سر', + 'ﴏ' => 'صر', + 'ﴐ' => 'ضر', + 'ﴑ' => 'طى', + 'ﴒ' => 'طي', + 'ﴓ' => 'عى', + 'ﴔ' => 'عي', + 'ﴕ' => 'غى', + 'ﴖ' => 'غي', + 'ﴗ' => 'سى', + 'ﴘ' => 'سي', + 'ﴙ' => 'شى', + 'ﴚ' => 'شي', + 'ﴛ' => 'حى', + 'ﴜ' => 'حي', + 'ﴝ' => 'جى', + 'ﴞ' => 'جي', + 'ﴟ' => 'خى', + 'ﴠ' => 'خي', + 'ﴡ' => 'صى', + 'ﴢ' => 'صي', + 'ﴣ' => 'ضى', + 'ﴤ' => 'ضي', + 'ﴥ' => 'شج', + 'ﴦ' => 'شح', + 'ﴧ' => 'شخ', + 'ﴨ' => 'شم', + 'ﴩ' => 'شر', + 'ﴪ' => 'سر', + 'ﴫ' => 'صر', + 'ﴬ' => 'ضر', + 'ﴭ' => 'شج', + 'ﴮ' => 'شح', + 'ﴯ' => 'شخ', + 'ﴰ' => 'شم', + 'ﴱ' => 'سه', + 'ﴲ' => 'شه', + 'ﴳ' => 'طم', + 'ﴴ' => 'سج', + 'ﴵ' => 'سح', + 'ﴶ' => 'سخ', + 'ﴷ' => 'شج', + 'ﴸ' => 'شح', + 'ﴹ' => 'شخ', + 'ﴺ' => 'طم', + 'ﴻ' => 'ظم', + 'ﴼ' => 'اً', + 'ﴽ' => 'اً', + 'ﵐ' => 'تجم', + 'ﵑ' => 'تحج', + 'ﵒ' => 'تحج', + 'ﵓ' => 'تحم', + 'ﵔ' => 'تخم', + 'ﵕ' => 'تمج', + 'ﵖ' => 'تمح', + 'ﵗ' => 'تمخ', + 'ﵘ' => 'جمح', + 'ﵙ' => 'جمح', + 'ﵚ' => 'حمي', + 'ﵛ' => 'حمى', + 'ﵜ' => 'سحج', + 'ﵝ' => 'سجح', + 'ﵞ' => 'سجى', + 'ﵟ' => 'سمح', + 'ﵠ' => 'سمح', + 'ﵡ' => 'سمج', + 'ﵢ' => 'سمم', + 'ﵣ' => 'سمم', + 'ﵤ' => 'صحح', + 'ﵥ' => 'صحح', + 'ﵦ' => 'صمم', + 'ﵧ' => 'شحم', + 'ﵨ' => 'شحم', + 'ﵩ' => 'شجي', + 'ﵪ' => 'شمخ', + 'ﵫ' => 'شمخ', + 'ﵬ' => 'شمم', + 'ﵭ' => 'شمم', + 'ﵮ' => 'ضحى', + 'ﵯ' => 'ضخم', + 'ﵰ' => 'ضخم', + 'ﵱ' => 'طمح', + 'ﵲ' => 'طمح', + 'ﵳ' => 'طمم', + 'ﵴ' => 'طمي', + 'ﵵ' => 'عجم', + 'ﵶ' => 'عمم', + 'ﵷ' => 'عمم', + 'ﵸ' => 'عمى', + 'ﵹ' => 'غمم', + 'ﵺ' => 'غمي', + 'ﵻ' => 'غمى', + 'ﵼ' => 'فخم', + 'ﵽ' => 'فخم', + 'ﵾ' => 'قمح', + 'ﵿ' => 'قمم', + 'ﶀ' => 'لحم', + 'ﶁ' => 'لحي', + 'ﶂ' => 'لحى', + 'ﶃ' => 'لجج', + 'ﶄ' => 'لجج', + 'ﶅ' => 'لخم', + 'ﶆ' => 'لخم', + 'ﶇ' => 'لمح', + 'ﶈ' => 'لمح', + 'ﶉ' => 'محج', + 'ﶊ' => 'محم', + 'ﶋ' => 'محي', + 'ﶌ' => 'مجح', + 'ﶍ' => 'مجم', + 'ﶎ' => 'مخج', + 'ﶏ' => 'مخم', + 'ﶒ' => 'مجخ', + 'ﶓ' => 'همج', + 'ﶔ' => 'همم', + 'ﶕ' => 'نحم', + 'ﶖ' => 'نحى', + 'ﶗ' => 'نجم', + 'ﶘ' => 'نجم', + 'ﶙ' => 'نجى', + 'ﶚ' => 'نمي', + 'ﶛ' => 'نمى', + 'ﶜ' => 'يمم', + 'ﶝ' => 'يمم', + 'ﶞ' => 'بخي', + 'ﶟ' => 'تجي', + 'ﶠ' => 'تجى', + 'ﶡ' => 'تخي', + 'ﶢ' => 'تخى', + 'ﶣ' => 'تمي', + 'ﶤ' => 'تمى', + 'ﶥ' => 'جمي', + 'ﶦ' => 'جحى', + 'ﶧ' => 'جمى', + 'ﶨ' => 'سخى', + 'ﶩ' => 'صحي', + 'ﶪ' => 'شحي', + 'ﶫ' => 'ضحي', + 'ﶬ' => 'لجي', + 'ﶭ' => 'لمي', + 'ﶮ' => 'يحي', + 'ﶯ' => 'يجي', + 'ﶰ' => 'يمي', + 'ﶱ' => 'ممي', + 'ﶲ' => 'قمي', + 'ﶳ' => 'نحي', + 'ﶴ' => 'قمح', + 'ﶵ' => 'لحم', + 'ﶶ' => 'عمي', + 'ﶷ' => 'كمي', + 'ﶸ' => 'نجح', + 'ﶹ' => 'مخي', + 'ﶺ' => 'لجم', + 'ﶻ' => 'كمم', + 'ﶼ' => 'لجم', + 'ﶽ' => 'نجح', + 'ﶾ' => 'جحي', + 'ﶿ' => 'حجي', + 'ﷀ' => 'مجي', + 'ﷁ' => 'فمي', + 'ﷂ' => 'بحي', + 'ﷃ' => 'كمم', + 'ﷄ' => 'عجم', + 'ﷅ' => 'صمم', + 'ﷆ' => 'سخي', + 'ﷇ' => 'نجي', + 'ﷰ' => 'صلے', + 'ﷱ' => 'قلے', + 'ﷲ' => 'الله', + 'ﷳ' => 'اكبر', + 'ﷴ' => 'محمد', + 'ﷵ' => 'صلعم', + 'ﷶ' => 'رسول', + 'ﷷ' => 'عليه', + 'ﷸ' => 'وسلم', + 'ﷹ' => 'صلى', + 'ﷺ' => 'صلى الله عليه وسلم', + 'ﷻ' => 'جل جلاله', + '﷼' => 'ریال', + '︐' => ',', + '︑' => '、', + '︒' => '。', + '︓' => ':', + '︔' => ';', + '︕' => '!', + '︖' => '?', + '︗' => '〖', + '︘' => '〗', + '︙' => '...', + '︰' => '..', + '︱' => '—', + '︲' => '–', + '︳' => '_', + '︴' => '_', + '︵' => '(', + '︶' => ')', + '︷' => '{', + '︸' => '}', + '︹' => '〔', + '︺' => '〕', + '︻' => '【', + '︼' => '】', + '︽' => '《', + '︾' => '》', + '︿' => '〈', + '﹀' => '〉', + '﹁' => '「', + '﹂' => '」', + '﹃' => '『', + '﹄' => '』', + '﹇' => '[', + '﹈' => ']', + '﹉' => ' ̅', + '﹊' => ' ̅', + '﹋' => ' ̅', + '﹌' => ' ̅', + '﹍' => '_', + '﹎' => '_', + '﹏' => '_', + '﹐' => ',', + '﹑' => '、', + '﹒' => '.', + '﹔' => ';', + '﹕' => ':', + '﹖' => '?', + '﹗' => '!', + '﹘' => '—', + '﹙' => '(', + '﹚' => ')', + '﹛' => '{', + '﹜' => '}', + '﹝' => '〔', + '﹞' => '〕', + '﹟' => '#', + '﹠' => '&', + '﹡' => '*', + '﹢' => '+', + '﹣' => '-', + '﹤' => '<', + '﹥' => '>', + '﹦' => '=', + '﹨' => '\\', + '﹩' => '$', + '﹪' => '%', + '﹫' => '@', + 'ﹰ' => ' ً', + 'ﹱ' => 'ـً', + 'ﹲ' => ' ٌ', + 'ﹴ' => ' ٍ', + 'ﹶ' => ' َ', + 'ﹷ' => 'ـَ', + 'ﹸ' => ' ُ', + 'ﹹ' => 'ـُ', + 'ﹺ' => ' ِ', + 'ﹻ' => 'ـِ', + 'ﹼ' => ' ّ', + 'ﹽ' => 'ـّ', + 'ﹾ' => ' ْ', + 'ﹿ' => 'ـْ', + 'ﺀ' => 'ء', + 'ﺁ' => 'آ', + 'ﺂ' => 'آ', + 'ﺃ' => 'أ', + 'ﺄ' => 'أ', + 'ﺅ' => 'ؤ', + 'ﺆ' => 'ؤ', + 'ﺇ' => 'إ', + 'ﺈ' => 'إ', + 'ﺉ' => 'ئ', + 'ﺊ' => 'ئ', + 'ﺋ' => 'ئ', + 'ﺌ' => 'ئ', + 'ﺍ' => 'ا', + 'ﺎ' => 'ا', + 'ﺏ' => 'ب', + 'ﺐ' => 'ب', + 'ﺑ' => 'ب', + 'ﺒ' => 'ب', + 'ﺓ' => 'ة', + 'ﺔ' => 'ة', + 'ﺕ' => 'ت', + 'ﺖ' => 'ت', + 'ﺗ' => 'ت', + 'ﺘ' => 'ت', + 'ﺙ' => 'ث', + 'ﺚ' => 'ث', + 'ﺛ' => 'ث', + 'ﺜ' => 'ث', + 'ﺝ' => 'ج', + 'ﺞ' => 'ج', + 'ﺟ' => 'ج', + 'ﺠ' => 'ج', + 'ﺡ' => 'ح', + 'ﺢ' => 'ح', + 'ﺣ' => 'ح', + 'ﺤ' => 'ح', + 'ﺥ' => 'خ', + 'ﺦ' => 'خ', + 'ﺧ' => 'خ', + 'ﺨ' => 'خ', + 'ﺩ' => 'د', + 'ﺪ' => 'د', + 'ﺫ' => 'ذ', + 'ﺬ' => 'ذ', + 'ﺭ' => 'ر', + 'ﺮ' => 'ر', + 'ﺯ' => 'ز', + 'ﺰ' => 'ز', + 'ﺱ' => 'س', + 'ﺲ' => 'س', + 'ﺳ' => 'س', + 'ﺴ' => 'س', + 'ﺵ' => 'ش', + 'ﺶ' => 'ش', + 'ﺷ' => 'ش', + 'ﺸ' => 'ش', + 'ﺹ' => 'ص', + 'ﺺ' => 'ص', + 'ﺻ' => 'ص', + 'ﺼ' => 'ص', + 'ﺽ' => 'ض', + 'ﺾ' => 'ض', + 'ﺿ' => 'ض', + 'ﻀ' => 'ض', + 'ﻁ' => 'ط', + 'ﻂ' => 'ط', + 'ﻃ' => 'ط', + 'ﻄ' => 'ط', + 'ﻅ' => 'ظ', + 'ﻆ' => 'ظ', + 'ﻇ' => 'ظ', + 'ﻈ' => 'ظ', + 'ﻉ' => 'ع', + 'ﻊ' => 'ع', + 'ﻋ' => 'ع', + 'ﻌ' => 'ع', + 'ﻍ' => 'غ', + 'ﻎ' => 'غ', + 'ﻏ' => 'غ', + 'ﻐ' => 'غ', + 'ﻑ' => 'ف', + 'ﻒ' => 'ف', + 'ﻓ' => 'ف', + 'ﻔ' => 'ف', + 'ﻕ' => 'ق', + 'ﻖ' => 'ق', + 'ﻗ' => 'ق', + 'ﻘ' => 'ق', + 'ﻙ' => 'ك', + 'ﻚ' => 'ك', + 'ﻛ' => 'ك', + 'ﻜ' => 'ك', + 'ﻝ' => 'ل', + 'ﻞ' => 'ل', + 'ﻟ' => 'ل', + 'ﻠ' => 'ل', + 'ﻡ' => 'م', + 'ﻢ' => 'م', + 'ﻣ' => 'م', + 'ﻤ' => 'م', + 'ﻥ' => 'ن', + 'ﻦ' => 'ن', + 'ﻧ' => 'ن', + 'ﻨ' => 'ن', + 'ﻩ' => 'ه', + 'ﻪ' => 'ه', + 'ﻫ' => 'ه', + 'ﻬ' => 'ه', + 'ﻭ' => 'و', + 'ﻮ' => 'و', + 'ﻯ' => 'ى', + 'ﻰ' => 'ى', + 'ﻱ' => 'ي', + 'ﻲ' => 'ي', + 'ﻳ' => 'ي', + 'ﻴ' => 'ي', + 'ﻵ' => 'لآ', + 'ﻶ' => 'لآ', + 'ﻷ' => 'لأ', + 'ﻸ' => 'لأ', + 'ﻹ' => 'لإ', + 'ﻺ' => 'لإ', + 'ﻻ' => 'لا', + 'ﻼ' => 'لا', + '!' => '!', + '"' => '"', + '#' => '#', + '$' => '$', + '%' => '%', + '&' => '&', + ''' => '\'', + '(' => '(', + ')' => ')', + '*' => '*', + '+' => '+', + ',' => ',', + '-' => '-', + '.' => '.', + '/' => '/', + '0' => '0', + '1' => '1', + '2' => '2', + '3' => '3', + '4' => '4', + '5' => '5', + '6' => '6', + '7' => '7', + '8' => '8', + '9' => '9', + ':' => ':', + ';' => ';', + '<' => '<', + '=' => '=', + '>' => '>', + '?' => '?', + '@' => '@', + 'A' => 'A', + 'B' => 'B', + 'C' => 'C', + 'D' => 'D', + 'E' => 'E', + 'F' => 'F', + 'G' => 'G', + 'H' => 'H', + 'I' => 'I', + 'J' => 'J', + 'K' => 'K', + 'L' => 'L', + 'M' => 'M', + 'N' => 'N', + 'O' => 'O', + 'P' => 'P', + 'Q' => 'Q', + 'R' => 'R', + 'S' => 'S', + 'T' => 'T', + 'U' => 'U', + 'V' => 'V', + 'W' => 'W', + 'X' => 'X', + 'Y' => 'Y', + 'Z' => 'Z', + '[' => '[', + '\' => '\\', + ']' => ']', + '^' => '^', + '_' => '_', + '`' => '`', + 'a' => 'a', + 'b' => 'b', + 'c' => 'c', + 'd' => 'd', + 'e' => 'e', + 'f' => 'f', + 'g' => 'g', + 'h' => 'h', + 'i' => 'i', + 'j' => 'j', + 'k' => 'k', + 'l' => 'l', + 'm' => 'm', + 'n' => 'n', + 'o' => 'o', + 'p' => 'p', + 'q' => 'q', + 'r' => 'r', + 's' => 's', + 't' => 't', + 'u' => 'u', + 'v' => 'v', + 'w' => 'w', + 'x' => 'x', + 'y' => 'y', + 'z' => 'z', + '{' => '{', + '|' => '|', + '}' => '}', + '~' => '~', + '⦅' => '⦅', + '⦆' => '⦆', + '。' => '。', + '「' => '「', + '」' => '」', + '、' => '、', + '・' => '・', + 'ヲ' => 'ヲ', + 'ァ' => 'ァ', + 'ィ' => 'ィ', + 'ゥ' => 'ゥ', + 'ェ' => 'ェ', + 'ォ' => 'ォ', + 'ャ' => 'ャ', + 'ュ' => 'ュ', + 'ョ' => 'ョ', + 'ッ' => 'ッ', + 'ー' => 'ー', + 'ア' => 'ア', + 'イ' => 'イ', + 'ウ' => 'ウ', + 'エ' => 'エ', + 'オ' => 'オ', + 'カ' => 'カ', + 'キ' => 'キ', + 'ク' => 'ク', + 'ケ' => 'ケ', + 'コ' => 'コ', + 'サ' => 'サ', + 'シ' => 'シ', + 'ス' => 'ス', + 'セ' => 'セ', + 'ソ' => 'ソ', + 'タ' => 'タ', + 'チ' => 'チ', + 'ツ' => 'ツ', + 'テ' => 'テ', + 'ト' => 'ト', + 'ナ' => 'ナ', + 'ニ' => 'ニ', + 'ヌ' => 'ヌ', + 'ネ' => 'ネ', + 'ノ' => 'ノ', + 'ハ' => 'ハ', + 'ヒ' => 'ヒ', + 'フ' => 'フ', + 'ヘ' => 'ヘ', + 'ホ' => 'ホ', + 'マ' => 'マ', + 'ミ' => 'ミ', + 'ム' => 'ム', + 'メ' => 'メ', + 'モ' => 'モ', + 'ヤ' => 'ヤ', + 'ユ' => 'ユ', + 'ヨ' => 'ヨ', + 'ラ' => 'ラ', + 'リ' => 'リ', + 'ル' => 'ル', + 'レ' => 'レ', + 'ロ' => 'ロ', + 'ワ' => 'ワ', + 'ン' => 'ン', + '゙' => '゙', + '゚' => '゚', + 'ᅠ' => 'ᅠ', + 'ᄀ' => 'ᄀ', + 'ᄁ' => 'ᄁ', + 'ᆪ' => 'ᆪ', + 'ᄂ' => 'ᄂ', + 'ᆬ' => 'ᆬ', + 'ᆭ' => 'ᆭ', + 'ᄃ' => 'ᄃ', + 'ᄄ' => 'ᄄ', + 'ᄅ' => 'ᄅ', + 'ᆰ' => 'ᆰ', + 'ᆱ' => 'ᆱ', + 'ᆲ' => 'ᆲ', + 'ᆳ' => 'ᆳ', + 'ᆴ' => 'ᆴ', + 'ᆵ' => 'ᆵ', + 'ᄚ' => 'ᄚ', + 'ᄆ' => 'ᄆ', + 'ᄇ' => 'ᄇ', + 'ᄈ' => 'ᄈ', + 'ᄡ' => 'ᄡ', + 'ᄉ' => 'ᄉ', + 'ᄊ' => 'ᄊ', + 'ᄋ' => 'ᄋ', + 'ᄌ' => 'ᄌ', + 'ᄍ' => 'ᄍ', + 'ᄎ' => 'ᄎ', + 'ᄏ' => 'ᄏ', + 'ᄐ' => 'ᄐ', + 'ᄑ' => 'ᄑ', + 'ᄒ' => 'ᄒ', + 'ᅡ' => 'ᅡ', + 'ᅢ' => 'ᅢ', + 'ᅣ' => 'ᅣ', + 'ᅤ' => 'ᅤ', + 'ᅥ' => 'ᅥ', + 'ᅦ' => 'ᅦ', + 'ᅧ' => 'ᅧ', + 'ᅨ' => 'ᅨ', + 'ᅩ' => 'ᅩ', + 'ᅪ' => 'ᅪ', + 'ᅫ' => 'ᅫ', + 'ᅬ' => 'ᅬ', + 'ᅭ' => 'ᅭ', + 'ᅮ' => 'ᅮ', + 'ᅯ' => 'ᅯ', + 'ᅰ' => 'ᅰ', + 'ᅱ' => 'ᅱ', + 'ᅲ' => 'ᅲ', + 'ᅳ' => 'ᅳ', + 'ᅴ' => 'ᅴ', + 'ᅵ' => 'ᅵ', + '¢' => '¢', + '£' => '£', + '¬' => '¬', + ' ̄' => ' ̄', + '¦' => '¦', + '¥' => '¥', + '₩' => '₩', + '│' => '│', + '←' => '←', + '↑' => '↑', + '→' => '→', + '↓' => '↓', + '■' => '■', + '○' => '○', + '𝐀' => 'A', + '𝐁' => 'B', + '𝐂' => 'C', + '𝐃' => 'D', + '𝐄' => 'E', + '𝐅' => 'F', + '𝐆' => 'G', + '𝐇' => 'H', + '𝐈' => 'I', + '𝐉' => 'J', + '𝐊' => 'K', + '𝐋' => 'L', + '𝐌' => 'M', + '𝐍' => 'N', + '𝐎' => 'O', + '𝐏' => 'P', + '𝐐' => 'Q', + '𝐑' => 'R', + '𝐒' => 'S', + '𝐓' => 'T', + '𝐔' => 'U', + '𝐕' => 'V', + '𝐖' => 'W', + '𝐗' => 'X', + '𝐘' => 'Y', + '𝐙' => 'Z', + '𝐚' => 'a', + '𝐛' => 'b', + '𝐜' => 'c', + '𝐝' => 'd', + '𝐞' => 'e', + '𝐟' => 'f', + '𝐠' => 'g', + '𝐡' => 'h', + '𝐢' => 'i', + '𝐣' => 'j', + '𝐤' => 'k', + '𝐥' => 'l', + '𝐦' => 'm', + '𝐧' => 'n', + '𝐨' => 'o', + '𝐩' => 'p', + '𝐪' => 'q', + '𝐫' => 'r', + '𝐬' => 's', + '𝐭' => 't', + '𝐮' => 'u', + '𝐯' => 'v', + '𝐰' => 'w', + '𝐱' => 'x', + '𝐲' => 'y', + '𝐳' => 'z', + '𝐴' => 'A', + '𝐵' => 'B', + '𝐶' => 'C', + '𝐷' => 'D', + '𝐸' => 'E', + '𝐹' => 'F', + '𝐺' => 'G', + '𝐻' => 'H', + '𝐼' => 'I', + '𝐽' => 'J', + '𝐾' => 'K', + '𝐿' => 'L', + '𝑀' => 'M', + '𝑁' => 'N', + '𝑂' => 'O', + '𝑃' => 'P', + '𝑄' => 'Q', + '𝑅' => 'R', + '𝑆' => 'S', + '𝑇' => 'T', + '𝑈' => 'U', + '𝑉' => 'V', + '𝑊' => 'W', + '𝑋' => 'X', + '𝑌' => 'Y', + '𝑍' => 'Z', + '𝑎' => 'a', + '𝑏' => 'b', + '𝑐' => 'c', + '𝑑' => 'd', + '𝑒' => 'e', + '𝑓' => 'f', + '𝑔' => 'g', + '𝑖' => 'i', + '𝑗' => 'j', + '𝑘' => 'k', + '𝑙' => 'l', + '𝑚' => 'm', + '𝑛' => 'n', + '𝑜' => 'o', + '𝑝' => 'p', + '𝑞' => 'q', + '𝑟' => 'r', + '𝑠' => 's', + '𝑡' => 't', + '𝑢' => 'u', + '𝑣' => 'v', + '𝑤' => 'w', + '𝑥' => 'x', + '𝑦' => 'y', + '𝑧' => 'z', + '𝑨' => 'A', + '𝑩' => 'B', + '𝑪' => 'C', + '𝑫' => 'D', + '𝑬' => 'E', + '𝑭' => 'F', + '𝑮' => 'G', + '𝑯' => 'H', + '𝑰' => 'I', + '𝑱' => 'J', + '𝑲' => 'K', + '𝑳' => 'L', + '𝑴' => 'M', + '𝑵' => 'N', + '𝑶' => 'O', + '𝑷' => 'P', + '𝑸' => 'Q', + '𝑹' => 'R', + '𝑺' => 'S', + '𝑻' => 'T', + '𝑼' => 'U', + '𝑽' => 'V', + '𝑾' => 'W', + '𝑿' => 'X', + '𝒀' => 'Y', + '𝒁' => 'Z', + '𝒂' => 'a', + '𝒃' => 'b', + '𝒄' => 'c', + '𝒅' => 'd', + '𝒆' => 'e', + '𝒇' => 'f', + '𝒈' => 'g', + '𝒉' => 'h', + '𝒊' => 'i', + '𝒋' => 'j', + '𝒌' => 'k', + '𝒍' => 'l', + '𝒎' => 'm', + '𝒏' => 'n', + '𝒐' => 'o', + '𝒑' => 'p', + '𝒒' => 'q', + '𝒓' => 'r', + '𝒔' => 's', + '𝒕' => 't', + '𝒖' => 'u', + '𝒗' => 'v', + '𝒘' => 'w', + '𝒙' => 'x', + '𝒚' => 'y', + '𝒛' => 'z', + '𝒜' => 'A', + '𝒞' => 'C', + '𝒟' => 'D', + '𝒢' => 'G', + '𝒥' => 'J', + '𝒦' => 'K', + '𝒩' => 'N', + '𝒪' => 'O', + '𝒫' => 'P', + '𝒬' => 'Q', + '𝒮' => 'S', + '𝒯' => 'T', + '𝒰' => 'U', + '𝒱' => 'V', + '𝒲' => 'W', + '𝒳' => 'X', + '𝒴' => 'Y', + '𝒵' => 'Z', + '𝒶' => 'a', + '𝒷' => 'b', + '𝒸' => 'c', + '𝒹' => 'd', + '𝒻' => 'f', + '𝒽' => 'h', + '𝒾' => 'i', + '𝒿' => 'j', + '𝓀' => 'k', + '𝓁' => 'l', + '𝓂' => 'm', + '𝓃' => 'n', + '𝓅' => 'p', + '𝓆' => 'q', + '𝓇' => 'r', + '𝓈' => 's', + '𝓉' => 't', + '𝓊' => 'u', + '𝓋' => 'v', + '𝓌' => 'w', + '𝓍' => 'x', + '𝓎' => 'y', + '𝓏' => 'z', + '𝓐' => 'A', + '𝓑' => 'B', + '𝓒' => 'C', + '𝓓' => 'D', + '𝓔' => 'E', + '𝓕' => 'F', + '𝓖' => 'G', + '𝓗' => 'H', + '𝓘' => 'I', + '𝓙' => 'J', + '𝓚' => 'K', + '𝓛' => 'L', + '𝓜' => 'M', + '𝓝' => 'N', + '𝓞' => 'O', + '𝓟' => 'P', + '𝓠' => 'Q', + '𝓡' => 'R', + '𝓢' => 'S', + '𝓣' => 'T', + '𝓤' => 'U', + '𝓥' => 'V', + '𝓦' => 'W', + '𝓧' => 'X', + '𝓨' => 'Y', + '𝓩' => 'Z', + '𝓪' => 'a', + '𝓫' => 'b', + '𝓬' => 'c', + '𝓭' => 'd', + '𝓮' => 'e', + '𝓯' => 'f', + '𝓰' => 'g', + '𝓱' => 'h', + '𝓲' => 'i', + '𝓳' => 'j', + '𝓴' => 'k', + '𝓵' => 'l', + '𝓶' => 'm', + '𝓷' => 'n', + '𝓸' => 'o', + '𝓹' => 'p', + '𝓺' => 'q', + '𝓻' => 'r', + '𝓼' => 's', + '𝓽' => 't', + '𝓾' => 'u', + '𝓿' => 'v', + '𝔀' => 'w', + '𝔁' => 'x', + '𝔂' => 'y', + '𝔃' => 'z', + '𝔄' => 'A', + '𝔅' => 'B', + '𝔇' => 'D', + '𝔈' => 'E', + '𝔉' => 'F', + '𝔊' => 'G', + '𝔍' => 'J', + '𝔎' => 'K', + '𝔏' => 'L', + '𝔐' => 'M', + '𝔑' => 'N', + '𝔒' => 'O', + '𝔓' => 'P', + '𝔔' => 'Q', + '𝔖' => 'S', + '𝔗' => 'T', + '𝔘' => 'U', + '𝔙' => 'V', + '𝔚' => 'W', + '𝔛' => 'X', + '𝔜' => 'Y', + '𝔞' => 'a', + '𝔟' => 'b', + '𝔠' => 'c', + '𝔡' => 'd', + '𝔢' => 'e', + '𝔣' => 'f', + '𝔤' => 'g', + '𝔥' => 'h', + '𝔦' => 'i', + '𝔧' => 'j', + '𝔨' => 'k', + '𝔩' => 'l', + '𝔪' => 'm', + '𝔫' => 'n', + '𝔬' => 'o', + '𝔭' => 'p', + '𝔮' => 'q', + '𝔯' => 'r', + '𝔰' => 's', + '𝔱' => 't', + '𝔲' => 'u', + '𝔳' => 'v', + '𝔴' => 'w', + '𝔵' => 'x', + '𝔶' => 'y', + '𝔷' => 'z', + '𝔸' => 'A', + '𝔹' => 'B', + '𝔻' => 'D', + '𝔼' => 'E', + '𝔽' => 'F', + '𝔾' => 'G', + '𝕀' => 'I', + '𝕁' => 'J', + '𝕂' => 'K', + '𝕃' => 'L', + '𝕄' => 'M', + '𝕆' => 'O', + '𝕊' => 'S', + '𝕋' => 'T', + '𝕌' => 'U', + '𝕍' => 'V', + '𝕎' => 'W', + '𝕏' => 'X', + '𝕐' => 'Y', + '𝕒' => 'a', + '𝕓' => 'b', + '𝕔' => 'c', + '𝕕' => 'd', + '𝕖' => 'e', + '𝕗' => 'f', + '𝕘' => 'g', + '𝕙' => 'h', + '𝕚' => 'i', + '𝕛' => 'j', + '𝕜' => 'k', + '𝕝' => 'l', + '𝕞' => 'm', + '𝕟' => 'n', + '𝕠' => 'o', + '𝕡' => 'p', + '𝕢' => 'q', + '𝕣' => 'r', + '𝕤' => 's', + '𝕥' => 't', + '𝕦' => 'u', + '𝕧' => 'v', + '𝕨' => 'w', + '𝕩' => 'x', + '𝕪' => 'y', + '𝕫' => 'z', + '𝕬' => 'A', + '𝕭' => 'B', + '𝕮' => 'C', + '𝕯' => 'D', + '𝕰' => 'E', + '𝕱' => 'F', + '𝕲' => 'G', + '𝕳' => 'H', + '𝕴' => 'I', + '𝕵' => 'J', + '𝕶' => 'K', + '𝕷' => 'L', + '𝕸' => 'M', + '𝕹' => 'N', + '𝕺' => 'O', + '𝕻' => 'P', + '𝕼' => 'Q', + '𝕽' => 'R', + '𝕾' => 'S', + '𝕿' => 'T', + '𝖀' => 'U', + '𝖁' => 'V', + '𝖂' => 'W', + '𝖃' => 'X', + '𝖄' => 'Y', + '𝖅' => 'Z', + '𝖆' => 'a', + '𝖇' => 'b', + '𝖈' => 'c', + '𝖉' => 'd', + '𝖊' => 'e', + '𝖋' => 'f', + '𝖌' => 'g', + '𝖍' => 'h', + '𝖎' => 'i', + '𝖏' => 'j', + '𝖐' => 'k', + '𝖑' => 'l', + '𝖒' => 'm', + '𝖓' => 'n', + '𝖔' => 'o', + '𝖕' => 'p', + '𝖖' => 'q', + '𝖗' => 'r', + '𝖘' => 's', + '𝖙' => 't', + '𝖚' => 'u', + '𝖛' => 'v', + '𝖜' => 'w', + '𝖝' => 'x', + '𝖞' => 'y', + '𝖟' => 'z', + '𝖠' => 'A', + '𝖡' => 'B', + '𝖢' => 'C', + '𝖣' => 'D', + '𝖤' => 'E', + '𝖥' => 'F', + '𝖦' => 'G', + '𝖧' => 'H', + '𝖨' => 'I', + '𝖩' => 'J', + '𝖪' => 'K', + '𝖫' => 'L', + '𝖬' => 'M', + '𝖭' => 'N', + '𝖮' => 'O', + '𝖯' => 'P', + '𝖰' => 'Q', + '𝖱' => 'R', + '𝖲' => 'S', + '𝖳' => 'T', + '𝖴' => 'U', + '𝖵' => 'V', + '𝖶' => 'W', + '𝖷' => 'X', + '𝖸' => 'Y', + '𝖹' => 'Z', + '𝖺' => 'a', + '𝖻' => 'b', + '𝖼' => 'c', + '𝖽' => 'd', + '𝖾' => 'e', + '𝖿' => 'f', + '𝗀' => 'g', + '𝗁' => 'h', + '𝗂' => 'i', + '𝗃' => 'j', + '𝗄' => 'k', + '𝗅' => 'l', + '𝗆' => 'm', + '𝗇' => 'n', + '𝗈' => 'o', + '𝗉' => 'p', + '𝗊' => 'q', + '𝗋' => 'r', + '𝗌' => 's', + '𝗍' => 't', + '𝗎' => 'u', + '𝗏' => 'v', + '𝗐' => 'w', + '𝗑' => 'x', + '𝗒' => 'y', + '𝗓' => 'z', + '𝗔' => 'A', + '𝗕' => 'B', + '𝗖' => 'C', + '𝗗' => 'D', + '𝗘' => 'E', + '𝗙' => 'F', + '𝗚' => 'G', + '𝗛' => 'H', + '𝗜' => 'I', + '𝗝' => 'J', + '𝗞' => 'K', + '𝗟' => 'L', + '𝗠' => 'M', + '𝗡' => 'N', + '𝗢' => 'O', + '𝗣' => 'P', + '𝗤' => 'Q', + '𝗥' => 'R', + '𝗦' => 'S', + '𝗧' => 'T', + '𝗨' => 'U', + '𝗩' => 'V', + '𝗪' => 'W', + '𝗫' => 'X', + '𝗬' => 'Y', + '𝗭' => 'Z', + '𝗮' => 'a', + '𝗯' => 'b', + '𝗰' => 'c', + '𝗱' => 'd', + '𝗲' => 'e', + '𝗳' => 'f', + '𝗴' => 'g', + '𝗵' => 'h', + '𝗶' => 'i', + '𝗷' => 'j', + '𝗸' => 'k', + '𝗹' => 'l', + '𝗺' => 'm', + '𝗻' => 'n', + '𝗼' => 'o', + '𝗽' => 'p', + '𝗾' => 'q', + '𝗿' => 'r', + '𝘀' => 's', + '𝘁' => 't', + '𝘂' => 'u', + '𝘃' => 'v', + '𝘄' => 'w', + '𝘅' => 'x', + '𝘆' => 'y', + '𝘇' => 'z', + '𝘈' => 'A', + '𝘉' => 'B', + '𝘊' => 'C', + '𝘋' => 'D', + '𝘌' => 'E', + '𝘍' => 'F', + '𝘎' => 'G', + '𝘏' => 'H', + '𝘐' => 'I', + '𝘑' => 'J', + '𝘒' => 'K', + '𝘓' => 'L', + '𝘔' => 'M', + '𝘕' => 'N', + '𝘖' => 'O', + '𝘗' => 'P', + '𝘘' => 'Q', + '𝘙' => 'R', + '𝘚' => 'S', + '𝘛' => 'T', + '𝘜' => 'U', + '𝘝' => 'V', + '𝘞' => 'W', + '𝘟' => 'X', + '𝘠' => 'Y', + '𝘡' => 'Z', + '𝘢' => 'a', + '𝘣' => 'b', + '𝘤' => 'c', + '𝘥' => 'd', + '𝘦' => 'e', + '𝘧' => 'f', + '𝘨' => 'g', + '𝘩' => 'h', + '𝘪' => 'i', + '𝘫' => 'j', + '𝘬' => 'k', + '𝘭' => 'l', + '𝘮' => 'm', + '𝘯' => 'n', + '𝘰' => 'o', + '𝘱' => 'p', + '𝘲' => 'q', + '𝘳' => 'r', + '𝘴' => 's', + '𝘵' => 't', + '𝘶' => 'u', + '𝘷' => 'v', + '𝘸' => 'w', + '𝘹' => 'x', + '𝘺' => 'y', + '𝘻' => 'z', + '𝘼' => 'A', + '𝘽' => 'B', + '𝘾' => 'C', + '𝘿' => 'D', + '𝙀' => 'E', + '𝙁' => 'F', + '𝙂' => 'G', + '𝙃' => 'H', + '𝙄' => 'I', + '𝙅' => 'J', + '𝙆' => 'K', + '𝙇' => 'L', + '𝙈' => 'M', + '𝙉' => 'N', + '𝙊' => 'O', + '𝙋' => 'P', + '𝙌' => 'Q', + '𝙍' => 'R', + '𝙎' => 'S', + '𝙏' => 'T', + '𝙐' => 'U', + '𝙑' => 'V', + '𝙒' => 'W', + '𝙓' => 'X', + '𝙔' => 'Y', + '𝙕' => 'Z', + '𝙖' => 'a', + '𝙗' => 'b', + '𝙘' => 'c', + '𝙙' => 'd', + '𝙚' => 'e', + '𝙛' => 'f', + '𝙜' => 'g', + '𝙝' => 'h', + '𝙞' => 'i', + '𝙟' => 'j', + '𝙠' => 'k', + '𝙡' => 'l', + '𝙢' => 'm', + '𝙣' => 'n', + '𝙤' => 'o', + '𝙥' => 'p', + '𝙦' => 'q', + '𝙧' => 'r', + '𝙨' => 's', + '𝙩' => 't', + '𝙪' => 'u', + '𝙫' => 'v', + '𝙬' => 'w', + '𝙭' => 'x', + '𝙮' => 'y', + '𝙯' => 'z', + '𝙰' => 'A', + '𝙱' => 'B', + '𝙲' => 'C', + '𝙳' => 'D', + '𝙴' => 'E', + '𝙵' => 'F', + '𝙶' => 'G', + '𝙷' => 'H', + '𝙸' => 'I', + '𝙹' => 'J', + '𝙺' => 'K', + '𝙻' => 'L', + '𝙼' => 'M', + '𝙽' => 'N', + '𝙾' => 'O', + '𝙿' => 'P', + '𝚀' => 'Q', + '𝚁' => 'R', + '𝚂' => 'S', + '𝚃' => 'T', + '𝚄' => 'U', + '𝚅' => 'V', + '𝚆' => 'W', + '𝚇' => 'X', + '𝚈' => 'Y', + '𝚉' => 'Z', + '𝚊' => 'a', + '𝚋' => 'b', + '𝚌' => 'c', + '𝚍' => 'd', + '𝚎' => 'e', + '𝚏' => 'f', + '𝚐' => 'g', + '𝚑' => 'h', + '𝚒' => 'i', + '𝚓' => 'j', + '𝚔' => 'k', + '𝚕' => 'l', + '𝚖' => 'm', + '𝚗' => 'n', + '𝚘' => 'o', + '𝚙' => 'p', + '𝚚' => 'q', + '𝚛' => 'r', + '𝚜' => 's', + '𝚝' => 't', + '𝚞' => 'u', + '𝚟' => 'v', + '𝚠' => 'w', + '𝚡' => 'x', + '𝚢' => 'y', + '𝚣' => 'z', + '𝚤' => 'ı', + '𝚥' => 'ȷ', + '𝚨' => 'Α', + '𝚩' => 'Β', + '𝚪' => 'Γ', + '𝚫' => 'Δ', + '𝚬' => 'Ε', + '𝚭' => 'Ζ', + '𝚮' => 'Η', + '𝚯' => 'Θ', + '𝚰' => 'Ι', + '𝚱' => 'Κ', + '𝚲' => 'Λ', + '𝚳' => 'Μ', + '𝚴' => 'Ν', + '𝚵' => 'Ξ', + '𝚶' => 'Ο', + '𝚷' => 'Π', + '𝚸' => 'Ρ', + '𝚹' => 'Θ', + '𝚺' => 'Σ', + '𝚻' => 'Τ', + '𝚼' => 'Υ', + '𝚽' => 'Φ', + '𝚾' => 'Χ', + '𝚿' => 'Ψ', + '𝛀' => 'Ω', + '𝛁' => '∇', + '𝛂' => 'α', + '𝛃' => 'β', + '𝛄' => 'γ', + '𝛅' => 'δ', + '𝛆' => 'ε', + '𝛇' => 'ζ', + '𝛈' => 'η', + '𝛉' => 'θ', + '𝛊' => 'ι', + '𝛋' => 'κ', + '𝛌' => 'λ', + '𝛍' => 'μ', + '𝛎' => 'ν', + '𝛏' => 'ξ', + '𝛐' => 'ο', + '𝛑' => 'π', + '𝛒' => 'ρ', + '𝛓' => 'ς', + '𝛔' => 'σ', + '𝛕' => 'τ', + '𝛖' => 'υ', + '𝛗' => 'φ', + '𝛘' => 'χ', + '𝛙' => 'ψ', + '𝛚' => 'ω', + '𝛛' => '∂', + '𝛜' => 'ε', + '𝛝' => 'θ', + '𝛞' => 'κ', + '𝛟' => 'φ', + '𝛠' => 'ρ', + '𝛡' => 'π', + '𝛢' => 'Α', + '𝛣' => 'Β', + '𝛤' => 'Γ', + '𝛥' => 'Δ', + '𝛦' => 'Ε', + '𝛧' => 'Ζ', + '𝛨' => 'Η', + '𝛩' => 'Θ', + '𝛪' => 'Ι', + '𝛫' => 'Κ', + '𝛬' => 'Λ', + '𝛭' => 'Μ', + '𝛮' => 'Ν', + '𝛯' => 'Ξ', + '𝛰' => 'Ο', + '𝛱' => 'Π', + '𝛲' => 'Ρ', + '𝛳' => 'Θ', + '𝛴' => 'Σ', + '𝛵' => 'Τ', + '𝛶' => 'Υ', + '𝛷' => 'Φ', + '𝛸' => 'Χ', + '𝛹' => 'Ψ', + '𝛺' => 'Ω', + '𝛻' => '∇', + '𝛼' => 'α', + '𝛽' => 'β', + '𝛾' => 'γ', + '𝛿' => 'δ', + '𝜀' => 'ε', + '𝜁' => 'ζ', + '𝜂' => 'η', + '𝜃' => 'θ', + '𝜄' => 'ι', + '𝜅' => 'κ', + '𝜆' => 'λ', + '𝜇' => 'μ', + '𝜈' => 'ν', + '𝜉' => 'ξ', + '𝜊' => 'ο', + '𝜋' => 'π', + '𝜌' => 'ρ', + '𝜍' => 'ς', + '𝜎' => 'σ', + '𝜏' => 'τ', + '𝜐' => 'υ', + '𝜑' => 'φ', + '𝜒' => 'χ', + '𝜓' => 'ψ', + '𝜔' => 'ω', + '𝜕' => '∂', + '𝜖' => 'ε', + '𝜗' => 'θ', + '𝜘' => 'κ', + '𝜙' => 'φ', + '𝜚' => 'ρ', + '𝜛' => 'π', + '𝜜' => 'Α', + '𝜝' => 'Β', + '𝜞' => 'Γ', + '𝜟' => 'Δ', + '𝜠' => 'Ε', + '𝜡' => 'Ζ', + '𝜢' => 'Η', + '𝜣' => 'Θ', + '𝜤' => 'Ι', + '𝜥' => 'Κ', + '𝜦' => 'Λ', + '𝜧' => 'Μ', + '𝜨' => 'Ν', + '𝜩' => 'Ξ', + '𝜪' => 'Ο', + '𝜫' => 'Π', + '𝜬' => 'Ρ', + '𝜭' => 'Θ', + '𝜮' => 'Σ', + '𝜯' => 'Τ', + '𝜰' => 'Υ', + '𝜱' => 'Φ', + '𝜲' => 'Χ', + '𝜳' => 'Ψ', + '𝜴' => 'Ω', + '𝜵' => '∇', + '𝜶' => 'α', + '𝜷' => 'β', + '𝜸' => 'γ', + '𝜹' => 'δ', + '𝜺' => 'ε', + '𝜻' => 'ζ', + '𝜼' => 'η', + '𝜽' => 'θ', + '𝜾' => 'ι', + '𝜿' => 'κ', + '𝝀' => 'λ', + '𝝁' => 'μ', + '𝝂' => 'ν', + '𝝃' => 'ξ', + '𝝄' => 'ο', + '𝝅' => 'π', + '𝝆' => 'ρ', + '𝝇' => 'ς', + '𝝈' => 'σ', + '𝝉' => 'τ', + '𝝊' => 'υ', + '𝝋' => 'φ', + '𝝌' => 'χ', + '𝝍' => 'ψ', + '𝝎' => 'ω', + '𝝏' => '∂', + '𝝐' => 'ε', + '𝝑' => 'θ', + '𝝒' => 'κ', + '𝝓' => 'φ', + '𝝔' => 'ρ', + '𝝕' => 'π', + '𝝖' => 'Α', + '𝝗' => 'Β', + '𝝘' => 'Γ', + '𝝙' => 'Δ', + '𝝚' => 'Ε', + '𝝛' => 'Ζ', + '𝝜' => 'Η', + '𝝝' => 'Θ', + '𝝞' => 'Ι', + '𝝟' => 'Κ', + '𝝠' => 'Λ', + '𝝡' => 'Μ', + '𝝢' => 'Ν', + '𝝣' => 'Ξ', + '𝝤' => 'Ο', + '𝝥' => 'Π', + '𝝦' => 'Ρ', + '𝝧' => 'Θ', + '𝝨' => 'Σ', + '𝝩' => 'Τ', + '𝝪' => 'Υ', + '𝝫' => 'Φ', + '𝝬' => 'Χ', + '𝝭' => 'Ψ', + '𝝮' => 'Ω', + '𝝯' => '∇', + '𝝰' => 'α', + '𝝱' => 'β', + '𝝲' => 'γ', + '𝝳' => 'δ', + '𝝴' => 'ε', + '𝝵' => 'ζ', + '𝝶' => 'η', + '𝝷' => 'θ', + '𝝸' => 'ι', + '𝝹' => 'κ', + '𝝺' => 'λ', + '𝝻' => 'μ', + '𝝼' => 'ν', + '𝝽' => 'ξ', + '𝝾' => 'ο', + '𝝿' => 'π', + '𝞀' => 'ρ', + '𝞁' => 'ς', + '𝞂' => 'σ', + '𝞃' => 'τ', + '𝞄' => 'υ', + '𝞅' => 'φ', + '𝞆' => 'χ', + '𝞇' => 'ψ', + '𝞈' => 'ω', + '𝞉' => '∂', + '𝞊' => 'ε', + '𝞋' => 'θ', + '𝞌' => 'κ', + '𝞍' => 'φ', + '𝞎' => 'ρ', + '𝞏' => 'π', + '𝞐' => 'Α', + '𝞑' => 'Β', + '𝞒' => 'Γ', + '𝞓' => 'Δ', + '𝞔' => 'Ε', + '𝞕' => 'Ζ', + '𝞖' => 'Η', + '𝞗' => 'Θ', + '𝞘' => 'Ι', + '𝞙' => 'Κ', + '𝞚' => 'Λ', + '𝞛' => 'Μ', + '𝞜' => 'Ν', + '𝞝' => 'Ξ', + '𝞞' => 'Ο', + '𝞟' => 'Π', + '𝞠' => 'Ρ', + '𝞡' => 'Θ', + '𝞢' => 'Σ', + '𝞣' => 'Τ', + '𝞤' => 'Υ', + '𝞥' => 'Φ', + '𝞦' => 'Χ', + '𝞧' => 'Ψ', + '𝞨' => 'Ω', + '𝞩' => '∇', + '𝞪' => 'α', + '𝞫' => 'β', + '𝞬' => 'γ', + '𝞭' => 'δ', + '𝞮' => 'ε', + '𝞯' => 'ζ', + '𝞰' => 'η', + '𝞱' => 'θ', + '𝞲' => 'ι', + '𝞳' => 'κ', + '𝞴' => 'λ', + '𝞵' => 'μ', + '𝞶' => 'ν', + '𝞷' => 'ξ', + '𝞸' => 'ο', + '𝞹' => 'π', + '𝞺' => 'ρ', + '𝞻' => 'ς', + '𝞼' => 'σ', + '𝞽' => 'τ', + '𝞾' => 'υ', + '𝞿' => 'φ', + '𝟀' => 'χ', + '𝟁' => 'ψ', + '𝟂' => 'ω', + '𝟃' => '∂', + '𝟄' => 'ε', + '𝟅' => 'θ', + '𝟆' => 'κ', + '𝟇' => 'φ', + '𝟈' => 'ρ', + '𝟉' => 'π', + '𝟊' => 'Ϝ', + '𝟋' => 'ϝ', + '𝟎' => '0', + '𝟏' => '1', + '𝟐' => '2', + '𝟑' => '3', + '𝟒' => '4', + '𝟓' => '5', + '𝟔' => '6', + '𝟕' => '7', + '𝟖' => '8', + '𝟗' => '9', + '𝟘' => '0', + '𝟙' => '1', + '𝟚' => '2', + '𝟛' => '3', + '𝟜' => '4', + '𝟝' => '5', + '𝟞' => '6', + '𝟟' => '7', + '𝟠' => '8', + '𝟡' => '9', + '𝟢' => '0', + '𝟣' => '1', + '𝟤' => '2', + '𝟥' => '3', + '𝟦' => '4', + '𝟧' => '5', + '𝟨' => '6', + '𝟩' => '7', + '𝟪' => '8', + '𝟫' => '9', + '𝟬' => '0', + '𝟭' => '1', + '𝟮' => '2', + '𝟯' => '3', + '𝟰' => '4', + '𝟱' => '5', + '𝟲' => '6', + '𝟳' => '7', + '𝟴' => '8', + '𝟵' => '9', + '𝟶' => '0', + '𝟷' => '1', + '𝟸' => '2', + '𝟹' => '3', + '𝟺' => '4', + '𝟻' => '5', + '𝟼' => '6', + '𝟽' => '7', + '𝟾' => '8', + '𝟿' => '9', + '𞸀' => 'ا', + '𞸁' => 'ب', + '𞸂' => 'ج', + '𞸃' => 'د', + '𞸅' => 'و', + '𞸆' => 'ز', + '𞸇' => 'ح', + '𞸈' => 'ط', + '𞸉' => 'ي', + '𞸊' => 'ك', + '𞸋' => 'ل', + '𞸌' => 'م', + '𞸍' => 'ن', + '𞸎' => 'س', + '𞸏' => 'ع', + '𞸐' => 'ف', + '𞸑' => 'ص', + '𞸒' => 'ق', + '𞸓' => 'ر', + '𞸔' => 'ش', + '𞸕' => 'ت', + '𞸖' => 'ث', + '𞸗' => 'خ', + '𞸘' => 'ذ', + '𞸙' => 'ض', + '𞸚' => 'ظ', + '𞸛' => 'غ', + '𞸜' => 'ٮ', + '𞸝' => 'ں', + '𞸞' => 'ڡ', + '𞸟' => 'ٯ', + '𞸡' => 'ب', + '𞸢' => 'ج', + '𞸤' => 'ه', + '𞸧' => 'ح', + '𞸩' => 'ي', + '𞸪' => 'ك', + '𞸫' => 'ل', + '𞸬' => 'م', + '𞸭' => 'ن', + '𞸮' => 'س', + '𞸯' => 'ع', + '𞸰' => 'ف', + '𞸱' => 'ص', + '𞸲' => 'ق', + '𞸴' => 'ش', + '𞸵' => 'ت', + '𞸶' => 'ث', + '𞸷' => 'خ', + '𞸹' => 'ض', + '𞸻' => 'غ', + '𞹂' => 'ج', + '𞹇' => 'ح', + '𞹉' => 'ي', + '𞹋' => 'ل', + '𞹍' => 'ن', + '𞹎' => 'س', + '𞹏' => 'ع', + '𞹑' => 'ص', + '𞹒' => 'ق', + '𞹔' => 'ش', + '𞹗' => 'خ', + '𞹙' => 'ض', + '𞹛' => 'غ', + '𞹝' => 'ں', + '𞹟' => 'ٯ', + '𞹡' => 'ب', + '𞹢' => 'ج', + '𞹤' => 'ه', + '𞹧' => 'ح', + '𞹨' => 'ط', + '𞹩' => 'ي', + '𞹪' => 'ك', + '𞹬' => 'م', + '𞹭' => 'ن', + '𞹮' => 'س', + '𞹯' => 'ع', + '𞹰' => 'ف', + '𞹱' => 'ص', + '𞹲' => 'ق', + '𞹴' => 'ش', + '𞹵' => 'ت', + '𞹶' => 'ث', + '𞹷' => 'خ', + '𞹹' => 'ض', + '𞹺' => 'ظ', + '𞹻' => 'غ', + '𞹼' => 'ٮ', + '𞹾' => 'ڡ', + '𞺀' => 'ا', + '𞺁' => 'ب', + '𞺂' => 'ج', + '𞺃' => 'د', + '𞺄' => 'ه', + '𞺅' => 'و', + '𞺆' => 'ز', + '𞺇' => 'ح', + '𞺈' => 'ط', + '𞺉' => 'ي', + '𞺋' => 'ل', + '𞺌' => 'م', + '𞺍' => 'ن', + '𞺎' => 'س', + '𞺏' => 'ع', + '𞺐' => 'ف', + '𞺑' => 'ص', + '𞺒' => 'ق', + '𞺓' => 'ر', + '𞺔' => 'ش', + '𞺕' => 'ت', + '𞺖' => 'ث', + '𞺗' => 'خ', + '𞺘' => 'ذ', + '𞺙' => 'ض', + '𞺚' => 'ظ', + '𞺛' => 'غ', + '𞺡' => 'ب', + '𞺢' => 'ج', + '𞺣' => 'د', + '𞺥' => 'و', + '𞺦' => 'ز', + '𞺧' => 'ح', + '𞺨' => 'ط', + '𞺩' => 'ي', + '𞺫' => 'ل', + '𞺬' => 'م', + '𞺭' => 'ن', + '𞺮' => 'س', + '𞺯' => 'ع', + '𞺰' => 'ف', + '𞺱' => 'ص', + '𞺲' => 'ق', + '𞺳' => 'ر', + '𞺴' => 'ش', + '𞺵' => 'ت', + '𞺶' => 'ث', + '𞺷' => 'خ', + '𞺸' => 'ذ', + '𞺹' => 'ض', + '𞺺' => 'ظ', + '𞺻' => 'غ', + '🄀' => '0.', + '🄁' => '0,', + '🄂' => '1,', + '🄃' => '2,', + '🄄' => '3,', + '🄅' => '4,', + '🄆' => '5,', + '🄇' => '6,', + '🄈' => '7,', + '🄉' => '8,', + '🄊' => '9,', + '🄐' => '(A)', + '🄑' => '(B)', + '🄒' => '(C)', + '🄓' => '(D)', + '🄔' => '(E)', + '🄕' => '(F)', + '🄖' => '(G)', + '🄗' => '(H)', + '🄘' => '(I)', + '🄙' => '(J)', + '🄚' => '(K)', + '🄛' => '(L)', + '🄜' => '(M)', + '🄝' => '(N)', + '🄞' => '(O)', + '🄟' => '(P)', + '🄠' => '(Q)', + '🄡' => '(R)', + '🄢' => '(S)', + '🄣' => '(T)', + '🄤' => '(U)', + '🄥' => '(V)', + '🄦' => '(W)', + '🄧' => '(X)', + '🄨' => '(Y)', + '🄩' => '(Z)', + '🄪' => '〔S〕', + '🄫' => 'C', + '🄬' => 'R', + '🄭' => 'CD', + '🄮' => 'WZ', + '🄰' => 'A', + '🄱' => 'B', + '🄲' => 'C', + '🄳' => 'D', + '🄴' => 'E', + '🄵' => 'F', + '🄶' => 'G', + '🄷' => 'H', + '🄸' => 'I', + '🄹' => 'J', + '🄺' => 'K', + '🄻' => 'L', + '🄼' => 'M', + '🄽' => 'N', + '🄾' => 'O', + '🄿' => 'P', + '🅀' => 'Q', + '🅁' => 'R', + '🅂' => 'S', + '🅃' => 'T', + '🅄' => 'U', + '🅅' => 'V', + '🅆' => 'W', + '🅇' => 'X', + '🅈' => 'Y', + '🅉' => 'Z', + '🅊' => 'HV', + '🅋' => 'MV', + '🅌' => 'SD', + '🅍' => 'SS', + '🅎' => 'PPV', + '🅏' => 'WC', + '🅪' => 'MC', + '🅫' => 'MD', + '🅬' => 'MR', + '🆐' => 'DJ', + '🈀' => 'ほか', + '🈁' => 'ココ', + '🈂' => 'サ', + '🈐' => '手', + '🈑' => '字', + '🈒' => '双', + '🈓' => 'デ', + '🈔' => '二', + '🈕' => '多', + '🈖' => '解', + '🈗' => '天', + '🈘' => '交', + '🈙' => '映', + '🈚' => '無', + '🈛' => '料', + '🈜' => '前', + '🈝' => '後', + '🈞' => '再', + '🈟' => '新', + '🈠' => '初', + '🈡' => '終', + '🈢' => '生', + '🈣' => '販', + '🈤' => '声', + '🈥' => '吹', + '🈦' => '演', + '🈧' => '投', + '🈨' => '捕', + '🈩' => '一', + '🈪' => '三', + '🈫' => '遊', + '🈬' => '左', + '🈭' => '中', + '🈮' => '右', + '🈯' => '指', + '🈰' => '走', + '🈱' => '打', + '🈲' => '禁', + '🈳' => '空', + '🈴' => '合', + '🈵' => '満', + '🈶' => '有', + '🈷' => '月', + '🈸' => '申', + '🈹' => '割', + '🈺' => '営', + '🈻' => '配', + '🉀' => '〔本〕', + '🉁' => '〔三〕', + '🉂' => '〔二〕', + '🉃' => '〔安〕', + '🉄' => '〔点〕', + '🉅' => '〔打〕', + '🉆' => '〔盗〕', + '🉇' => '〔勝〕', + '🉈' => '〔敗〕', + '🉐' => '得', + '🉑' => '可', + '🯰' => '0', + '🯱' => '1', + '🯲' => '2', + '🯳' => '3', + '🯴' => '4', + '🯵' => '5', + '🯶' => '6', + '🯷' => '7', + '🯸' => '8', + '🯹' => '9', +); diff --git a/user/plugins/email/vendor/symfony/polyfill-intl-normalizer/bootstrap.php b/user/plugins/email/vendor/symfony/polyfill-intl-normalizer/bootstrap.php new file mode 100644 index 0000000..3608e5c --- /dev/null +++ b/user/plugins/email/vendor/symfony/polyfill-intl-normalizer/bootstrap.php @@ -0,0 +1,23 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +use Symfony\Polyfill\Intl\Normalizer as p; + +if (\PHP_VERSION_ID >= 80000) { + return require __DIR__.'/bootstrap80.php'; +} + +if (!function_exists('normalizer_is_normalized')) { + function normalizer_is_normalized($string, $form = p\Normalizer::FORM_C) { return p\Normalizer::isNormalized($string, $form); } +} +if (!function_exists('normalizer_normalize')) { + function normalizer_normalize($string, $form = p\Normalizer::FORM_C) { return p\Normalizer::normalize($string, $form); } +} diff --git a/user/plugins/email/vendor/symfony/polyfill-intl-normalizer/bootstrap80.php b/user/plugins/email/vendor/symfony/polyfill-intl-normalizer/bootstrap80.php new file mode 100644 index 0000000..e36d1a9 --- /dev/null +++ b/user/plugins/email/vendor/symfony/polyfill-intl-normalizer/bootstrap80.php @@ -0,0 +1,19 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +use Symfony\Polyfill\Intl\Normalizer as p; + +if (!function_exists('normalizer_is_normalized')) { + function normalizer_is_normalized(?string $string, ?int $form = p\Normalizer::FORM_C): bool { return p\Normalizer::isNormalized((string) $string, (int) $form); } +} +if (!function_exists('normalizer_normalize')) { + function normalizer_normalize(?string $string, ?int $form = p\Normalizer::FORM_C): string|false { return p\Normalizer::normalize((string) $string, (int) $form); } +} diff --git a/user/plugins/email/vendor/symfony/polyfill-intl-normalizer/composer.json b/user/plugins/email/vendor/symfony/polyfill-intl-normalizer/composer.json new file mode 100644 index 0000000..393edf7 --- /dev/null +++ b/user/plugins/email/vendor/symfony/polyfill-intl-normalizer/composer.json @@ -0,0 +1,39 @@ +{ + "name": "symfony/polyfill-intl-normalizer", + "type": "library", + "description": "Symfony polyfill for intl's Normalizer class and related functions", + "keywords": ["polyfill", "shim", "compatibility", "portable", "intl", "normalizer"], + "homepage": "https://symfony.com", + "license": "MIT", + "authors": [ + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "require": { + "php": ">=7.1" + }, + "autoload": { + "psr-4": { "Symfony\\Polyfill\\Intl\\Normalizer\\": "" }, + "files": [ "bootstrap.php" ], + "classmap": [ "Resources/stubs" ] + }, + "suggest": { + "ext-intl": "For best performance" + }, + "minimum-stability": "dev", + "extra": { + "branch-alias": { + "dev-main": "1.23-dev" + }, + "thanks": { + "name": "symfony/polyfill", + "url": "https://github.com/symfony/polyfill" + } + } +} diff --git a/user/plugins/error/.gitignore b/user/plugins/error/.gitignore new file mode 100644 index 0000000..5ce2fa3 --- /dev/null +++ b/user/plugins/error/.gitignore @@ -0,0 +1,9 @@ +# OS Generated +.DS_Store* +ehthumbs.db +Icon? +Thumbs.db +*.swp + +# phpstorm +.idea/* diff --git a/user/plugins/error/CHANGELOG.md b/user/plugins/error/CHANGELOG.md new file mode 100644 index 0000000..eec5161 --- /dev/null +++ b/user/plugins/error/CHANGELOG.md @@ -0,0 +1,91 @@ +# v1.8.0 +## 09/07/2021 + +1. [](#new) + * Require **Grav 1.7.0** + * Added support for `{% throw 404 'Not Found' %}` from twig template to show the error page +1. [](#improved) + * Do not cache 404 error pages by default + +# v1.7.1 +## 10/08/2020 + +1. [](#bugfix) + * Fixed error page being cached, fixes issue with non-existing resources which later become available + +# v1.7.0 +## 07/01/2020 + +1. [](#new) + * Require Grav v1.6 +1. [](#bugfix) + * Added translated title programmatically [#40](https://github.com/getgrav/grav-plugin-error/pull/40) + +# v1.6.2 +## 05/09/2019 + +1. [](#new) + * Fixed a few issues found by phpstan + * Added `ru` and `uk` translations [#36](https://github.com/getgrav/grav-plugin-error/pull/36) + +# v1.6.1 +## 03/09/2018 + +1. [](#improved) + * Added Polish + Catalan translation + * Updated `README.md` to reference custom error pages + +# v1.6.0 +## 10/19/2016 + +1. [](#improved) + * Added Croatian translation + * Improved `autoescape: true` support +1. [](#bugfix) + * Fixed issue where template file for `error` page type is only available if page was not found + +# v1.5.1 +## 07/18/2016 + +1. [](#improved) + * Added chinese and german translations +1. [](#bugfix) + * Fixed issue with the Smartypants plugin running before Twig was processed + +# v1.5.0 +## 07/14/2015 + +1. [](#improved) + * Translate some blueprint configuration options + * Allow translating the error message + * Added french, russian, romanian, danish, italian + +# v1.4.1 +## 12/11/2015 + +1. [](#bugfix) + * Fixed CLI command for PHP 5.5 and lower + +# v1.4.0 +## 11/21/2015 + +1. [](#new) + * Implemented CLI commands for the plugin + +# v1.3.0 +## 08/25/2015 + +1. [](#improved) + * Added blueprints for Grav Admin plugin + +# v1.2.2 +## 01/06/2015 + +1. [](#new) + * Added a default `error.json.twig` file + +# v1.2.1 +## 11/30/2014 + +1. [](#new) + * ChangeLog started... diff --git a/user/plugins/error/LICENSE b/user/plugins/error/LICENSE new file mode 100644 index 0000000..484793a --- /dev/null +++ b/user/plugins/error/LICENSE @@ -0,0 +1,21 @@ +The MIT License (MIT) + +Copyright (c) 2014 Grav + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/user/plugins/error/README.md b/user/plugins/error/README.md new file mode 100644 index 0000000..ef24726 --- /dev/null +++ b/user/plugins/error/README.md @@ -0,0 +1,93 @@ +# Grav Error Plugin + +![GPM Installation](assets/readme_1.png) + +`error` is a [Grav](http://github.com/getgrav/grav) Plugin and allows to redirect errors to nice output pages. + +This plugin is included in any package distributed that contains Grav. If you decide to clone Grav from GitHub you will most likely want to install this. + +# Installation + +Installing the Error plugin can be done in one of two ways. Our GPM (Grav Package Manager) installation method enables you to quickly and easily install the plugin with a simple terminal command, while the manual method enables you to do so via a zip file. + +## GPM Installation (Preferred) + +The simplest way to install this plugin is via the [Grav Package Manager (GPM)](http://learn.getgrav.org/advanced/grav-gpm) through your system's Terminal (also called the command line). From the root of your Grav install type: + + bin/gpm install error + +This will install the Error plugin into your `/user/plugins` directory within Grav. Its files can be found under `/your/site/grav/user/plugins/error`. + +## Manual Installation + +To install this plugin, just download the zip version of this repository and unzip it under `/your/site/grav/user/plugins`. Then, rename the folder to `error`. You can find these files either on [GitHub](https://github.com/getgrav/grav-plugin-error) or via [GetGrav.org](http://getgrav.org/downloads/plugins#extras). + +You should now have all the plugin files under + + /your/site/grav/user/plugins/error + +>> NOTE: This plugin is a modular component for Grav which requires [Grav](http://github.com/getgrav/grav), the [Problems](https://github.com/getgrav/grav-plugin-problems) plugin, and a theme to be installed in order to operate. + +# Usage + +The `error` plugin doesn't require any configuration. The moment you install it, it is ready to use. + +Something you might want to do is to override the look and feel of the error page, and with Grav it is super easy. + +### Template + +Copy the template file [error.html.twig](templates/error.html.twig) into the `templates` folder of your custom theme and that is it. + +``` +/your/site/grav/user/themes/custom-theme/templates/error.html.twig +``` + +You can now edit the override and tweak it however you prefer. + +### Page + +Copy the page file [error.md](pages/error.md) into the `pages` folder of your user directory and that is it. + +``` +/your/site/grav/user/pages/error/error.md +``` + +You can now edit the override and tweak it however you prefer. + +# Custom error pages + +The configuration allows to specify pages different than `/error` for specific error codes. By default, the `404` error leads to the `/error` page. If you change that, make sure the page you point to has a `error` template (which means, its markdown file is `error.md` or in the page frontmatter you specify `template: error`. + +# CLI Usage +The `error` plugin comes with a CLI command that outputs the `grav.log` in a beautified way, with possibility of limiting the amount of errors displayed, as well as include the trace in the output. + +### Commands + +| `bin/plugin error log` | | +|------------------------|-----------------------------------------------------------------| +| [ --limit N \| -l N ] | The amount of errors to display. Default is 5 | +| [ --trace \| -t ] | When used, it will add the backtrace in the output of the error | + + +# Updating + +As development for the Error plugin continues, new versions may become available that add additional features and functionality, improve compatibility with newer Grav releases, and generally provide a better user experience. Updating Error is easy, and can be done through Grav's GPM system, as well as manually. + +## GPM Update (Preferred) + +The simplest way to update this plugin is via the [Grav Package Manager (GPM)](http://learn.getgrav.org/advanced/grav-gpm). You can do this with this by navigating to the root directory of your Grav install using your system's Terminal (also called command line) and typing the following: + + bin/gpm update error + +This command will check your Grav install to see if your Error plugin is due for an update. If a newer release is found, you will be asked whether or not you wish to update. To continue, type `y` and hit enter. The plugin will automatically update and clear Grav's cache. + +## Manual Update + +Manually updating Error is pretty simple. Here is what you will need to do to get this done: + +* Delete the `your/site/user/plugins/error` directory. +* Download the new version of the Error plugin from either [GitHub](https://github.com/getgrav/grav-plugin-error) or [GetGrav.org](http://getgrav.org/downloads/plugins#extras). +* Unzip the zip file in `your/site/user/plugins` and rename the resulting folder to `error`. +* Clear the Grav cache. The simplest way to do this is by going to the root Grav directory in terminal and typing `bin/grav clear-cache`. + +> Note: Any changes you have made to any of the files listed under this directory will also be removed and replaced by the new set. Any files located elsewhere (for example a YAML settings file placed in `user/config/plugins`) will remain intact. diff --git a/user/plugins/error/assets/readme_1.png b/user/plugins/error/assets/readme_1.png new file mode 100644 index 0000000000000000000000000000000000000000..930b87bb017916a5c9ecb4e71cb3eb672bafed22 GIT binary patch literal 41685 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
    bWh;kXEr` z^wew|BQi1(1LB`0G&7a;iFCysGw)3t36kP5F6#@VB^$bo1# zwcKX7=F+M~<=y2C3lsvlS!NguTV4-~algnh`$-um@g9N#mlmS6iL~VQ6NqAx=-xs# zL{pS5tXfn)_@{m#LLgxSSwtoAeLT1gCtW-qoqD8^rh;glY3B*OMmA2Jf29D(;3y|ir&mr#Ut9eI@mMRLn??uPDzkYt>|rxaYqUI03QAQoSoAz@w{V>p zIG@4(GkCpan;(<2-~Sw&tte2@Kne%6g>#~QVB`8d9k7#HZat2J>CtAJNl&mnaRz#vxYo+$mfMFOzlLzO zC)qkz%T%b;jrH(Z$?6AjPy&U)qS)4}t(&a9)J^w)i(38bq;zbFbm7c)e72< zPo0$W$682n&4R;%ggBYv1wtNLFrw4er?jjHIWjLQ=tATUq*Jk1bqw+W#kKT8p3w!^y1MhDll(xmgjf?)TKcEhGfEs<&IdB-)Q zn9>645u7NLZijVni{s+YSx$WEcIa>i%evBY)QSee%-u$K;^U;O zyLdDH8qu!a4SBhbj*qiIoWf1M7w>a{ZFCT<@P-|1mwF#+S;~07)haKKoVgzLihbLD zo!ocu$}?CwKUPAZ_aWENvr>|cIe5C;Du@S8Q zhvubvq|8kqzT3`p-|LzjHhYt5ZNC_<>5Rb9N_WSDd`MS&2F&HYBWiQ^(6zwEbCw?C z6Be0Ht!Twm%hTqu)!Ctp$T}1vBIFkDHk;LWF+byFiCrAp5ImgIA<#kg>DT~Apci5^ zr5v|Zc%c5=D03`+tkU?&XO1`V7a1es9&fQZ&Tkt0O}9<$L(Th_QcIL}My*32aV=A< zL^7%)3Zx#SkZZQ(;+H-IE4&$VoErFL8GgXM?+7!5{qW?@}LGjUD1!-X&#ypcNQ(7+fA|Dr<#`AWf!Z3th=H^ z9vTdxEN|FVqr{5}as@T5dz@5|*f_7zqZUJk;@eL;2ww%Rrre*YkC#U2QG-92kc1H~ zqbC^X!e{YrL;UNUA1}P;x8&Fb{pxvVNkep-=;U6^pG+!stqiMF8XsGU42q{nM>)0P zrdobB6m7O)1Dn(chO)l@0_%3LV)iu{UyfQbaW!|8OlAC_#n+ea$B`>xC)@n)qiPN} zA}NplXfi1oy2_@zO~PL7wby$r=URPd;mz2@qsBf3>8AxwANSXL5wEFj8qx2TEiQ#x zCT@epU)0=VS>$Xiq9RkZ;#MoyM-8u2vi0*tEg*|Q;#xyS>|gb#U|r>H+mG!L7L$i7 zO-0RK^qBhdwR48BpL!xvT#|WuXRJ}Ll&rT+?TDd3e#TdLXRQ%*xUw#3|A-gy1Eo5s zT*Okn8S%-|oA3U%KalgUNeYFa8Qh=Af-SJxP|3X^$=Qw{G^8cfs*N?1hT0Gp-SY7SxvjhC6qNI5jb^FoF F{{vy?43_`^ literal 0 HcmV?d00001 diff --git a/user/plugins/error/blueprints.yaml b/user/plugins/error/blueprints.yaml new file mode 100644 index 0000000..b642158 --- /dev/null +++ b/user/plugins/error/blueprints.yaml @@ -0,0 +1,36 @@ +name: Error +version: 1.8.0 +description: Displays the error page. +type: plugin +slug: error +icon: warning +author: + name: Team Grav + email: devs@getgrav.org + url: http://getgrav.org +homepage: https://github.com/getgrav/grav-plugin-error +keywords: error, plugin, required +bugs: https://github.com/getgrav/grav-plugin-error/issues +license: MIT +dependencies: + - { name: grav, version: '>=1.7.0' } + +form: + validation: strict + fields: + enabled: + type: toggle + label: PLUGIN_ADMIN.PLUGIN_STATUS + highlight: 1 + default: 0 + options: + 1: PLUGIN_ADMIN.ENABLED + 0: PLUGIN_ADMIN.DISABLED + validate: + type: bool + + routes.404: + type: text + size: medium + label: PLUGIN_ERROR.ROUTE_404 + default: '/error' diff --git a/user/plugins/error/cli/LogCommand.php b/user/plugins/error/cli/LogCommand.php new file mode 100644 index 0000000..d29354a --- /dev/null +++ b/user/plugins/error/cli/LogCommand.php @@ -0,0 +1,130 @@ + 'green', + 'INFO' => 'cyan', + 'NOTICE' => 'yellow', + 'WARNING' => 'yellow', + 'ERROR' => 'red', + 'CRITICAL' => 'red', + 'ALERT' => 'red', + 'EMERGENCY' => 'magenta' + ]; + + /** + * + */ + protected function configure() + { + $this->logfile = LOG_DIR . 'grav.log'; + $this + ->setName("log") + ->setDescription("Outputs the Error Log") + ->addOption( + 'trace', + 't', + InputOption::VALUE_NONE, + 'Include the errors stack trace in the output' + ) + ->addOption( + 'limit', + 'l', + InputArgument::OPTIONAL, + 'Outputs only the last X amount of errors. Use as --limit 10 / -l 10 [default 5]', + 5 + ) + ->setHelp('The log outputs the Errors Log in Console') + ; + } + + /** + * @return int|null|void + */ + protected function serve() + { + $this->options = [ + 'trace' => $this->input->getOption('trace'), + 'limit' => $this->input->getOption('limit') + ]; + + if (!file_exists($this->logfile)) { + $this->output->writeln("\n" . "Log file not found." . "\n"); + exit; + } + + $log = file_get_contents($this->logfile); + $lines = explode("\n", $log); + + if (!is_numeric($this->options['limit'])) { + $this->options['limit'] = 5; + } + + $lines = array_slice($lines, -($this->options['limit'] + 1)); + + foreach ($lines as $line) { + $this->output->writeln($this->parseLine($line)); + } + } + + /** + * @param string $line + * + * @return null|string + */ + protected function parseLine($line) + { + $bit = explode(': ', $line); + $line1 = explode('] ', $bit[0]); + + if (!$line1[0]) { + return null; + } + + $line2 = explode(' - ', $bit[1]); + + $date = $line1[0] . ']'; + $type = str_replace('grav.', '', $line1[1]); + $color = $this->colors[$type]; + $error = $line2[0]; + $trace = implode(': ', array_slice($bit, 2)); + + $output = []; + + $output[] = ''; + $output[] = '' . $date . ''; + $output[] = sprintf(' <%s>%s ' . $error . '', $color, $type, $color); + + if ($this->options['trace']) { + $output[] = ' TRACE: '; + $output[] = ' ' . $trace; + } + + $output[] = '' . str_repeat('-', strlen($date)) . ''; + + return implode("\n", $output); + } +} + diff --git a/user/plugins/error/composer.json b/user/plugins/error/composer.json new file mode 100644 index 0000000..27ddfa9 --- /dev/null +++ b/user/plugins/error/composer.json @@ -0,0 +1,39 @@ +{ + "name": "getgrav/grav-plugin-error", + "type": "grav-plugin", + "description": "Error plugin for Grav CMS", + "keywords": ["error", "plugin"], + "homepage": "https://github.com/getgrav/grav-plugin-error", + "license": "MIT", + "authors": [ + { + "name": "Team Grav", + "email": "devs@getgrav.org", + "homepage": "https://getgrav.org", + "role": "Developer" + } + ], + "support": { + "issues": "https://github.com/getgrav/grav-plugin-error/issues", + "irc": "https://chat.getgrav.org", + "forum": "https://getgrav.org/forum", + "docs": "https://github.com/getgrav/grav-plugin-error/blob/master/README.md" + }, + "autoload": { + "psr-4": { + "Grav\\Plugin\\Console\\": "cli/" + }, + "classmap": [ + "error.php" + ] + }, + "config": { + "platform": { + "php": "7.1.3" + } + }, + "scripts": { + "test": "vendor/bin/codecept run unit", + "test-windows": "vendor\\bin\\codecept run unit" + } +} diff --git a/user/plugins/error/error.php b/user/plugins/error/error.php new file mode 100644 index 0000000..edbaaff --- /dev/null +++ b/user/plugins/error/error.php @@ -0,0 +1,117 @@ + [ + ['autoload', 100000], + ], + 'onPageNotFound' => [ + ['onPageNotFound', 0] + ], + 'onGetPageTemplates' => [ + ['onGetPageTemplates', 0] + ], + 'onTwigTemplatePaths' => [ + ['onTwigTemplatePaths', -10] + ], + 'onDisplayErrorPage.404'=> [ + ['onDisplayErrorPage404', -1] + ] + ]; + } + + /** + * [onPluginsInitialized:100000] Composer autoload. + * + * @return ClassLoader + */ + public function autoload(): ClassLoader + { + return require __DIR__ . '/vendor/autoload.php'; + } + + /** + * @param Event $event + */ + public function onDisplayErrorPage404(Event $event): void + { + if ($this->isAdmin()) { + return; + } + + $event['page'] = $this->getErrorPage(); + $event->stopPropagation(); + } + + /** + * Display error page if no page was found for the current route. + * + * @param Event $event + */ + public function onPageNotFound(Event $event): void + { + $event->page = $this->getErrorPage(); + $event->stopPropagation(); + } + + /** + * @return PageInterface + * @throws \Exception + */ + public function getErrorPage(): PageInterface + { + /** @var Pages $pages */ + $pages = $this->grav['pages']; + + // Try to load user error page. + $page = $pages->dispatch($this->config->get('plugins.error.routes.404', '/error'), true); + if (!$page) { + // If none provided use built in error page. + $page = new Page; + $page->init(new \SplFileInfo(__DIR__ . '/pages/error.md')); + $page->title($this->grav['language']->translate('PLUGIN_ERROR.ERROR') . ' ' . $page->header()->http_response_code); + + } + + // Login page may not have the correct Cache-Control header set, force no-store for the proxies. + $cacheControl = $page->cacheControl(); + if (!$cacheControl) { + $page->cacheControl('private, no-cache, must-revalidate'); + } + + return $page; + } + + /** + * Add page template types. + */ + public function onGetPageTemplates(Event $event): void + { + /** @var Types $types */ + $types = $event->types; + $types->register('error'); + } + + /** + * Add current directory to twig lookup paths. + */ + public function onTwigTemplatePaths(): void + { + $this->grav['twig']->twig_paths[] = __DIR__ . '/templates'; + } +} diff --git a/user/plugins/error/error.yaml b/user/plugins/error/error.yaml new file mode 100644 index 0000000..0a51d4c --- /dev/null +++ b/user/plugins/error/error.yaml @@ -0,0 +1,3 @@ +enabled: true +routes: + 404: '/error' diff --git a/user/plugins/error/hebe.json b/user/plugins/error/hebe.json new file mode 100644 index 0000000..3ca6ad8 --- /dev/null +++ b/user/plugins/error/hebe.json @@ -0,0 +1,15 @@ +{ + "project":"grav-plugin-error", + "platforms":{ + "grav":{ + "nodes":{ + "plugin":[ + { + "source":"/", + "destination":"/user/plugins/error" + } + ] + } + } + } +} diff --git a/user/plugins/error/languages.yaml b/user/plugins/error/languages.yaml new file mode 100644 index 0000000..650e617 --- /dev/null +++ b/user/plugins/error/languages.yaml @@ -0,0 +1,55 @@ +en: + PLUGIN_ERROR: + ERROR: "Error" + ERROR_MESSAGE: "Woops. Looks like this page doesn't exist." + ROUTE_404: "404 Route" +de: + PLUGIN_ERROR: + ERROR: "Fehler" + ERROR_MESSAGE: "Uuups. Sieht aus als ob diese Seite nicht existiert." +hr: + PLUGIN_ERROR: + ERROR: "Greška" + ERROR_MESSAGE: "Uups. Izgleda da ova stranica ne postoji." +ro: + PLUGIN_ERROR: + ERROR: "Eroare" + ERROR_MESSAGE: "Ooops. Se pare că pagina nu există." +fr: + PLUGIN_ERROR: + ERROR: "Erreur" + ERROR_MESSAGE: "Oups. Il semble que cette page n’existe pas." +it: + PLUGIN_ERROR: + ERROR: "Errore" + ERROR_MESSAGE: "Ooops. A quanto pare, questa pagina non esiste." +ru: + PLUGIN_ERROR: + ERROR: "Ошибка" + ERROR_MESSAGE: "Упс. Похоже, этой страницы не существует." + ROUTE_404: "Маршрут 404" +uk: + PLUGIN_ERROR: + ERROR: "Помилка" + ERROR_MESSAGE: "Упс. Схоже, цієї сторінки не існує." + ROUTE_404: "Маршрут 404" +da: + PLUGIN_ERROR: + ERROR: "Fejl" + ERROR_MESSAGE: "Ups. Det ser ud til at siden ikke eksisterer." +zh: + PLUGIN_ERROR: + ERROR: "错误" + ERROR_MESSAGE: "呃,似乎这个页面不存在。" +cs: + PLUGIN_ERROR: + ERROR: "Chyba" + ERROR_MESSAGE: "A jéje. Vypadá to, že hledaná stránka tu není." +pl: + PLUGIN_ERROR: + ERROR: "Błąd" + ERROR_MESSAGE: "Ups. Wygląda na to, że ta strona nie istnieje." +ca: + PLUGIN_ERROR: + ERROR: "Error" + ERROR_MESSAGE: "Ups. Sembla que aquesta pàgina no existeix." diff --git a/user/plugins/error/pages/error.md b/user/plugins/error/pages/error.md new file mode 100644 index 0000000..e9b344b --- /dev/null +++ b/user/plugins/error/pages/error.md @@ -0,0 +1,14 @@ +--- +title: Page not Found +robots: noindex,nofollow +template: error +routable: false +http_response_code: 404 +twig_first: true +process: + twig: true +expires: 0 +--- + +{{ 'PLUGIN_ERROR.ERROR_MESSAGE'|t }} + diff --git a/user/plugins/error/templates/error.html.twig b/user/plugins/error/templates/error.html.twig new file mode 100644 index 0000000..420702b --- /dev/null +++ b/user/plugins/error/templates/error.html.twig @@ -0,0 +1,3 @@ +

    {{ 'PLUGIN_ERROR.ERROR'|t }} {{ header.http_response_code }}

    + +

    {{ page.content|raw }}

    diff --git a/user/plugins/error/templates/error.json.twig b/user/plugins/error/templates/error.json.twig new file mode 100644 index 0000000..27472f1 --- /dev/null +++ b/user/plugins/error/templates/error.json.twig @@ -0,0 +1 @@ +{{ page.content|json_encode()|raw }} \ No newline at end of file diff --git a/user/plugins/error/vendor/autoload.php b/user/plugins/error/vendor/autoload.php new file mode 100644 index 0000000..b30c4e0 --- /dev/null +++ b/user/plugins/error/vendor/autoload.php @@ -0,0 +1,7 @@ + + * Jordi Boggiano + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Composer\Autoload; + +/** + * ClassLoader implements a PSR-0, PSR-4 and classmap class loader. + * + * $loader = new \Composer\Autoload\ClassLoader(); + * + * // register classes with namespaces + * $loader->add('Symfony\Component', __DIR__.'/component'); + * $loader->add('Symfony', __DIR__.'/framework'); + * + * // activate the autoloader + * $loader->register(); + * + * // to enable searching the include path (eg. for PEAR packages) + * $loader->setUseIncludePath(true); + * + * In this example, if you try to use a class in the Symfony\Component + * namespace or one of its children (Symfony\Component\Console for instance), + * the autoloader will first look for the class under the component/ + * directory, and it will then fallback to the framework/ directory if not + * found before giving up. + * + * This class is loosely based on the Symfony UniversalClassLoader. + * + * @author Fabien Potencier + * @author Jordi Boggiano + * @see http://www.php-fig.org/psr/psr-0/ + * @see http://www.php-fig.org/psr/psr-4/ + */ +class ClassLoader +{ + // PSR-4 + private $prefixLengthsPsr4 = array(); + private $prefixDirsPsr4 = array(); + private $fallbackDirsPsr4 = array(); + + // PSR-0 + private $prefixesPsr0 = array(); + private $fallbackDirsPsr0 = array(); + + private $useIncludePath = false; + private $classMap = array(); + private $classMapAuthoritative = false; + private $missingClasses = array(); + private $apcuPrefix; + + public function getPrefixes() + { + if (!empty($this->prefixesPsr0)) { + return call_user_func_array('array_merge', $this->prefixesPsr0); + } + + return array(); + } + + public function getPrefixesPsr4() + { + return $this->prefixDirsPsr4; + } + + public function getFallbackDirs() + { + return $this->fallbackDirsPsr0; + } + + public function getFallbackDirsPsr4() + { + return $this->fallbackDirsPsr4; + } + + public function getClassMap() + { + return $this->classMap; + } + + /** + * @param array $classMap Class to filename map + */ + public function addClassMap(array $classMap) + { + if ($this->classMap) { + $this->classMap = array_merge($this->classMap, $classMap); + } else { + $this->classMap = $classMap; + } + } + + /** + * Registers a set of PSR-0 directories for a given prefix, either + * appending or prepending to the ones previously set for this prefix. + * + * @param string $prefix The prefix + * @param array|string $paths The PSR-0 root directories + * @param bool $prepend Whether to prepend the directories + */ + public function add($prefix, $paths, $prepend = false) + { + if (!$prefix) { + if ($prepend) { + $this->fallbackDirsPsr0 = array_merge( + (array) $paths, + $this->fallbackDirsPsr0 + ); + } else { + $this->fallbackDirsPsr0 = array_merge( + $this->fallbackDirsPsr0, + (array) $paths + ); + } + + return; + } + + $first = $prefix[0]; + if (!isset($this->prefixesPsr0[$first][$prefix])) { + $this->prefixesPsr0[$first][$prefix] = (array) $paths; + + return; + } + if ($prepend) { + $this->prefixesPsr0[$first][$prefix] = array_merge( + (array) $paths, + $this->prefixesPsr0[$first][$prefix] + ); + } else { + $this->prefixesPsr0[$first][$prefix] = array_merge( + $this->prefixesPsr0[$first][$prefix], + (array) $paths + ); + } + } + + /** + * Registers a set of PSR-4 directories for a given namespace, either + * appending or prepending to the ones previously set for this namespace. + * + * @param string $prefix The prefix/namespace, with trailing '\\' + * @param array|string $paths The PSR-4 base directories + * @param bool $prepend Whether to prepend the directories + * + * @throws \InvalidArgumentException + */ + public function addPsr4($prefix, $paths, $prepend = false) + { + if (!$prefix) { + // Register directories for the root namespace. + if ($prepend) { + $this->fallbackDirsPsr4 = array_merge( + (array) $paths, + $this->fallbackDirsPsr4 + ); + } else { + $this->fallbackDirsPsr4 = array_merge( + $this->fallbackDirsPsr4, + (array) $paths + ); + } + } elseif (!isset($this->prefixDirsPsr4[$prefix])) { + // Register directories for a new namespace. + $length = strlen($prefix); + if ('\\' !== $prefix[$length - 1]) { + throw new \InvalidArgumentException("A non-empty PSR-4 prefix must end with a namespace separator."); + } + $this->prefixLengthsPsr4[$prefix[0]][$prefix] = $length; + $this->prefixDirsPsr4[$prefix] = (array) $paths; + } elseif ($prepend) { + // Prepend directories for an already registered namespace. + $this->prefixDirsPsr4[$prefix] = array_merge( + (array) $paths, + $this->prefixDirsPsr4[$prefix] + ); + } else { + // Append directories for an already registered namespace. + $this->prefixDirsPsr4[$prefix] = array_merge( + $this->prefixDirsPsr4[$prefix], + (array) $paths + ); + } + } + + /** + * Registers a set of PSR-0 directories for a given prefix, + * replacing any others previously set for this prefix. + * + * @param string $prefix The prefix + * @param array|string $paths The PSR-0 base directories + */ + public function set($prefix, $paths) + { + if (!$prefix) { + $this->fallbackDirsPsr0 = (array) $paths; + } else { + $this->prefixesPsr0[$prefix[0]][$prefix] = (array) $paths; + } + } + + /** + * Registers a set of PSR-4 directories for a given namespace, + * replacing any others previously set for this namespace. + * + * @param string $prefix The prefix/namespace, with trailing '\\' + * @param array|string $paths The PSR-4 base directories + * + * @throws \InvalidArgumentException + */ + public function setPsr4($prefix, $paths) + { + if (!$prefix) { + $this->fallbackDirsPsr4 = (array) $paths; + } else { + $length = strlen($prefix); + if ('\\' !== $prefix[$length - 1]) { + throw new \InvalidArgumentException("A non-empty PSR-4 prefix must end with a namespace separator."); + } + $this->prefixLengthsPsr4[$prefix[0]][$prefix] = $length; + $this->prefixDirsPsr4[$prefix] = (array) $paths; + } + } + + /** + * Turns on searching the include path for class files. + * + * @param bool $useIncludePath + */ + public function setUseIncludePath($useIncludePath) + { + $this->useIncludePath = $useIncludePath; + } + + /** + * Can be used to check if the autoloader uses the include path to check + * for classes. + * + * @return bool + */ + public function getUseIncludePath() + { + return $this->useIncludePath; + } + + /** + * Turns off searching the prefix and fallback directories for classes + * that have not been registered with the class map. + * + * @param bool $classMapAuthoritative + */ + public function setClassMapAuthoritative($classMapAuthoritative) + { + $this->classMapAuthoritative = $classMapAuthoritative; + } + + /** + * Should class lookup fail if not found in the current class map? + * + * @return bool + */ + public function isClassMapAuthoritative() + { + return $this->classMapAuthoritative; + } + + /** + * APCu prefix to use to cache found/not-found classes, if the extension is enabled. + * + * @param string|null $apcuPrefix + */ + public function setApcuPrefix($apcuPrefix) + { + $this->apcuPrefix = function_exists('apcu_fetch') && ini_get('apc.enabled') ? $apcuPrefix : null; + } + + /** + * The APCu prefix in use, or null if APCu caching is not enabled. + * + * @return string|null + */ + public function getApcuPrefix() + { + return $this->apcuPrefix; + } + + /** + * Registers this instance as an autoloader. + * + * @param bool $prepend Whether to prepend the autoloader or not + */ + public function register($prepend = false) + { + spl_autoload_register(array($this, 'loadClass'), true, $prepend); + } + + /** + * Unregisters this instance as an autoloader. + */ + public function unregister() + { + spl_autoload_unregister(array($this, 'loadClass')); + } + + /** + * Loads the given class or interface. + * + * @param string $class The name of the class + * @return bool|null True if loaded, null otherwise + */ + public function loadClass($class) + { + if ($file = $this->findFile($class)) { + includeFile($file); + + return true; + } + } + + /** + * Finds the path to the file where the class is defined. + * + * @param string $class The name of the class + * + * @return string|false The path if found, false otherwise + */ + public function findFile($class) + { + // class map lookup + if (isset($this->classMap[$class])) { + return $this->classMap[$class]; + } + if ($this->classMapAuthoritative || isset($this->missingClasses[$class])) { + return false; + } + if (null !== $this->apcuPrefix) { + $file = apcu_fetch($this->apcuPrefix.$class, $hit); + if ($hit) { + return $file; + } + } + + $file = $this->findFileWithExtension($class, '.php'); + + // Search for Hack files if we are running on HHVM + if (false === $file && defined('HHVM_VERSION')) { + $file = $this->findFileWithExtension($class, '.hh'); + } + + if (null !== $this->apcuPrefix) { + apcu_add($this->apcuPrefix.$class, $file); + } + + if (false === $file) { + // Remember that this class does not exist. + $this->missingClasses[$class] = true; + } + + return $file; + } + + private function findFileWithExtension($class, $ext) + { + // PSR-4 lookup + $logicalPathPsr4 = strtr($class, '\\', DIRECTORY_SEPARATOR) . $ext; + + $first = $class[0]; + if (isset($this->prefixLengthsPsr4[$first])) { + $subPath = $class; + while (false !== $lastPos = strrpos($subPath, '\\')) { + $subPath = substr($subPath, 0, $lastPos); + $search = $subPath.'\\'; + if (isset($this->prefixDirsPsr4[$search])) { + $pathEnd = DIRECTORY_SEPARATOR . substr($logicalPathPsr4, $lastPos + 1); + foreach ($this->prefixDirsPsr4[$search] as $dir) { + if (file_exists($file = $dir . $pathEnd)) { + return $file; + } + } + } + } + } + + // PSR-4 fallback dirs + foreach ($this->fallbackDirsPsr4 as $dir) { + if (file_exists($file = $dir . DIRECTORY_SEPARATOR . $logicalPathPsr4)) { + return $file; + } + } + + // PSR-0 lookup + if (false !== $pos = strrpos($class, '\\')) { + // namespaced class name + $logicalPathPsr0 = substr($logicalPathPsr4, 0, $pos + 1) + . strtr(substr($logicalPathPsr4, $pos + 1), '_', DIRECTORY_SEPARATOR); + } else { + // PEAR-like class name + $logicalPathPsr0 = strtr($class, '_', DIRECTORY_SEPARATOR) . $ext; + } + + if (isset($this->prefixesPsr0[$first])) { + foreach ($this->prefixesPsr0[$first] as $prefix => $dirs) { + if (0 === strpos($class, $prefix)) { + foreach ($dirs as $dir) { + if (file_exists($file = $dir . DIRECTORY_SEPARATOR . $logicalPathPsr0)) { + return $file; + } + } + } + } + } + + // PSR-0 fallback dirs + foreach ($this->fallbackDirsPsr0 as $dir) { + if (file_exists($file = $dir . DIRECTORY_SEPARATOR . $logicalPathPsr0)) { + return $file; + } + } + + // PSR-0 include paths. + if ($this->useIncludePath && $file = stream_resolve_include_path($logicalPathPsr0)) { + return $file; + } + + return false; + } +} + +/** + * Scope isolated include. + * + * Prevents access to $this/self from included files. + */ +function includeFile($file) +{ + include $file; +} diff --git a/user/plugins/error/vendor/composer/LICENSE b/user/plugins/error/vendor/composer/LICENSE new file mode 100644 index 0000000..f27399a --- /dev/null +++ b/user/plugins/error/vendor/composer/LICENSE @@ -0,0 +1,21 @@ + +Copyright (c) Nils Adermann, Jordi Boggiano + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is furnished +to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. + diff --git a/user/plugins/error/vendor/composer/autoload_classmap.php b/user/plugins/error/vendor/composer/autoload_classmap.php new file mode 100644 index 0000000..71c4666 --- /dev/null +++ b/user/plugins/error/vendor/composer/autoload_classmap.php @@ -0,0 +1,10 @@ + $baseDir . '/error.php', +); diff --git a/user/plugins/error/vendor/composer/autoload_namespaces.php b/user/plugins/error/vendor/composer/autoload_namespaces.php new file mode 100644 index 0000000..b7fc012 --- /dev/null +++ b/user/plugins/error/vendor/composer/autoload_namespaces.php @@ -0,0 +1,9 @@ + array($baseDir . '/cli'), +); diff --git a/user/plugins/error/vendor/composer/autoload_real.php b/user/plugins/error/vendor/composer/autoload_real.php new file mode 100644 index 0000000..ee6a4c0 --- /dev/null +++ b/user/plugins/error/vendor/composer/autoload_real.php @@ -0,0 +1,52 @@ += 50600 && !defined('HHVM_VERSION') && (!function_exists('zend_loader_file_encoded') || !zend_loader_file_encoded()); + if ($useStaticLoader) { + require_once __DIR__ . '/autoload_static.php'; + + call_user_func(\Composer\Autoload\ComposerStaticInit4e2f762c713c4d4aae8969c74f5623a3::getInitializer($loader)); + } else { + $map = require __DIR__ . '/autoload_namespaces.php'; + foreach ($map as $namespace => $path) { + $loader->set($namespace, $path); + } + + $map = require __DIR__ . '/autoload_psr4.php'; + foreach ($map as $namespace => $path) { + $loader->setPsr4($namespace, $path); + } + + $classMap = require __DIR__ . '/autoload_classmap.php'; + if ($classMap) { + $loader->addClassMap($classMap); + } + } + + $loader->register(true); + + return $loader; + } +} diff --git a/user/plugins/error/vendor/composer/autoload_static.php b/user/plugins/error/vendor/composer/autoload_static.php new file mode 100644 index 0000000..11ca02a --- /dev/null +++ b/user/plugins/error/vendor/composer/autoload_static.php @@ -0,0 +1,36 @@ + + array ( + 'Grav\\Plugin\\Console\\' => 20, + ), + ); + + public static $prefixDirsPsr4 = array ( + 'Grav\\Plugin\\Console\\' => + array ( + 0 => __DIR__ . '/../..' . '/cli', + ), + ); + + public static $classMap = array ( + 'Grav\\Plugin\\ErrorPlugin' => __DIR__ . '/../..' . '/error.php', + ); + + public static function getInitializer(ClassLoader $loader) + { + return \Closure::bind(function () use ($loader) { + $loader->prefixLengthsPsr4 = ComposerStaticInit4e2f762c713c4d4aae8969c74f5623a3::$prefixLengthsPsr4; + $loader->prefixDirsPsr4 = ComposerStaticInit4e2f762c713c4d4aae8969c74f5623a3::$prefixDirsPsr4; + $loader->classMap = ComposerStaticInit4e2f762c713c4d4aae8969c74f5623a3::$classMap; + + }, null, ClassLoader::class); + } +} diff --git a/user/plugins/error/vendor/composer/installed.json b/user/plugins/error/vendor/composer/installed.json new file mode 100644 index 0000000..fe51488 --- /dev/null +++ b/user/plugins/error/vendor/composer/installed.json @@ -0,0 +1 @@ +[] diff --git a/user/plugins/feed/CHANGELOG.md b/user/plugins/feed/CHANGELOG.md new file mode 100644 index 0000000..9ef1ad6 --- /dev/null +++ b/user/plugins/feed/CHANGELOG.md @@ -0,0 +1,143 @@ +# v1.8.5 +## 06/09/2021 + +1. [](#improved) + * Rolled back the URL check functionality as it caused more issues than it solved. + +# v1.8.4 +## 06/07/2021 + +1. [](#improved) + * Added a configurable `enable_url_check` (default `true`) to disable the URL checking if you run into an issue. +1. [](#bugfix) + * More robust URL checking including multi-lang versions [#62](https://github.com/getgrav/grav-plugin-feed/issues/62) + +# v1.8.3 +## 05/28/2021 + +1. [](#bugfix) + * Fixed issue with feeds at the root of a site [#61](https://github.com/getgrav/grav-plugin-feed/issues/61) + +# v1.8.2 +## 05/21/2021 + +1. [](#bugfix) + * Fixed issue with json feed type corrupting other json requests [getgrav/grav-premium-issues#102](https://github.com/getgrav/grav-premium-issues/issues/102) + * Fixed issue with modular pages showing up in feed + + +# v1.8.1 +## 05/21/2021 + +1. [](#bugfix) + * Provide a default language if multi-language not enabled + +# v1.8.0 +## 12/02/2020 + +1. [](#new) + * Require Grav v1.6 + * Pass phpstan level 1 tests +1. [](#improved) + * Major plugin overhaul [#57](https://github.com/getgrav/grav-plugin-feed/pull/57) + * Bumped the default image sizes in atom/rss + +# v1.7.1 +## 05/09/2019 + +1. [](#bugfix) + * Fix issue with Feed Options not showing up in Quark (and other themes) [#46](https://github.com/getgrav/grav-plugin-feed/issues/46) + +# v1.7.0 +## 04/15/2019 + +1. [](#improved) + * Use `safe_truncate_html` [#41](https://github.com/getgrav/grav-plugin-feed/pull/41) + * Allow full-text feeds [#37](https://github.com/getgrav/grav-plugin-feed/pull/37) + * Dynamic json feed header and image file support [#32](https://github.com/getgrav/grav-plugin-feed/pull/32) + * Added `json` link example to `README.md` +1. [](#bugfix) + * Changed type `text` to `range` to prevent validation errors [#45](https://github.com/getgrav/grav-plugin-feed/issues/45) + * Always show route in url for self-link [#38](https://github.com/getgrav/grav-plugin-feed/pull/38) + +# v1.6.2 +## 06/06/2017 + +1. [](#bugfix) + * Fix issue with feeds not rendering with cache enabled [#27](https://github.com/getgrav/grav-plugin-feed/pull/27) + +# v1.6.1 +## 05/30/2017 + +1. [](#improved) + * Improved JSON template to `json_encode()` all output +1. [](#bugfix) + * Optimized logic to disable JSON feeds by default and only set the template when there's a collection + +# v1.6.0 +## 05/25/2017 + +1. [](#new) + * Added support for new JSON feed format by @RosemaryOrchard [#21](https://github.com/getgrav/grav-plugin-feed/pull/21) + +# v1.5.3 +## 04/12/2017 + +1. [](#bugfix) + * Fix a truncate issue [#16](https://github.com/getgrav/grav-plugin-feed/pull/16) + +# v1.5.2 +## 02/17/2017 + +1. [](#bugfix) + * Fix issue on non-collection pages [#14](https://github.com/getgrav/grav-plugin-feed/pull/14) + +# v1.5.1 +## 01/24/2017 + +1. [](#bugfix) + * Add support for Twig `Autoescape variables` mode + +# v1.5.0 +## 07/14/2016 + +1. [](#improved) + * Make Feeds 'language-safe' + +# v1.4.1 +## 10/07/2015 + +1. [](#bugfix) + * Avoid duplicated routes + +# v1.4.0 +## 08/26/2015 + +1. [](#improved) + * Added blueprints for Grav Admin plugin + +# v1.3.3 +## 03/24/2015 + +1. [](#improved) + * Feed will now skip pages with `feed: skip: true` in frontmatter +1. [](#bugfix) + * Fixed page overrides for configuration + +# v1.3.2 +## 02/19/2015 + +1. [](#bugfix) + * Fixed couple of RSS validation issues + +# v1.3.1 +## 12/26/2014 + +1. [](#bugfix) + * Fixed issue with default configuration not being loaded yet + +# v1.3.0 +## 11/30/2014 + +1. [](#new) + * ChangeLog started... diff --git a/user/plugins/feed/LICENSE b/user/plugins/feed/LICENSE new file mode 100644 index 0000000..484793a --- /dev/null +++ b/user/plugins/feed/LICENSE @@ -0,0 +1,21 @@ +The MIT License (MIT) + +Copyright (c) 2014 Grav + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/user/plugins/feed/README.md b/user/plugins/feed/README.md new file mode 100644 index 0000000..580acc7 --- /dev/null +++ b/user/plugins/feed/README.md @@ -0,0 +1,146 @@ +# Grav Syndication Feed Plugin + +![Feed](assets/readme_1.png) + +`feed` is a [Grav](http://github.com/getgrav/grav) plugin and allows Grav to generate feeds of your pages. + +This plugin supports __Atom 1.0__, __RSS__ and __JSON__ feed types. Enabling is very simple. just install this plugin in the `/user/plugins/` folder in your Grav install. By default, the plugin is enabled and provides some default values. + +| NOTE: JSON feeds must be enabled manually in the plugin configuration as the `.json` extension is commonly used and this can conflict with other plugins. + +If you do enable the JSON feed, you will want to edit `feed.json.twig`. Replace the placeholder data on lines 2 and 3 (`feed_url` and `author:url`) with your own data. You may also want to change the formatting of the date on lines 8 and 9. + +# Installation + +Installing the Feed plugin can be done in one of two ways. Our GPM (Grav Package Manager) installation method enables you to quickly and easily install the plugin with a simple terminal command, while the manual method enables you to do so via a zip file. + +## GPM Installation (Preferred) + +The simplest way to install this plugin is via the [Grav Package Manager (GPM)](http://learn.getgrav.org/advanced/grav-gpm) through your system's Terminal (also called the command line). From the root of your Grav install type: + + bin/gpm install feed + +This will install the Feed plugin into your `/user/plugins` directory within Grav. Its files can be found under `/your/site/grav/user/plugins/feed`. + +## Manual Installation + +To install this plugin, just download the zip version of this repository and unzip it under `/your/site/grav/user/plugins`. Then, rename the folder to `feed`. You can find these files either on [GitHub](https://github.com/getgrav/grav-plugin-feed) or via [GetGrav.org](http://getgrav.org/downloads/plugins#extras). + +You should now have all the plugin files under + + /your/site/grav/user/plugins/feed + +>> NOTE: This plugin is a modular component for Grav which requires [Grav](http://github.com/getgrav/grav), the [Error](https://github.com/getgrav/grav-plugin-error) and [Problems](https://github.com/getgrav/grav-plugin-problems) plugins, and a theme to be installed in order to operate. + +# Usage + +The feeds work for pages that have sub-pages, for example a blog list view. If your page has a `content`, then the RSS plugin will automatically be enabled. Simply append either `.atom`, `.rss` or `.json` to the url. For example, if you have a blog page that defines a `content` header to display a list of blog pages in a list, and the URL is `http://www.mysite.com/blog` then the feed would simply be: + +``` +http://www.mysite.com/blog.atom +``` + +or + +``` +http://www.mysite.com/blog.rss +``` + +or + +``` +http://www.mysite.com/blog.json +``` + +## Autodiscovery + +To let feed readers discover the feed automatically, add a link to your HTML `` tag: + +``` + + + +``` + +## Creating Feed Buttons in Your Pages + +Just having the plugin loaded and activated is enough to get it working, but you can help users find your feeds by creating buttons in the body of your page users can easily discover and click on to access the feeds. + +In our [Blog Skeleton] demo, you will see these buttons located in the sidebar under the heading `Syndicate`. This was done very easily by adding the following information to the `sidebar.html.twig` template file found under `/user/themes/antimatter/templates/partials/`. + +``` + Atom 1.0 + RSS +``` + +The first line adds the **Atom** feed by simply adding `.atom` to the base URL of the site, while the second handles RSS. This a very simple way to add a useful feature to your site that your visitors will enjoy. + +# Config Defaults + +``` +enabled: true +limit: 10 +title: 'My Feed Title' +description: 'My Feed Description' +length: 500 +enable_json_feed: false +show_last_modified: false +``` + +You can override any of the default values by setting one or more of these in your blog list page where `sub_pages` is defined. For example: + +``` +title: Sample Blog +content: + items: @self.children + limit: 5 + pagination: true +feed: + limit: 15 + description: Sample Blog Description +``` + +You can ensure a particular page is skipped from the feed by adding the following in the frontmatter header: + +``` +title: Sample Blog +feed: + skip: true +``` + +# Updating + +As development for the Feed plugin continues, new versions may become available that add additional features and functionality, improve compatibility with newer Grav releases, and generally provide a better user experience. Updating Feed is easy, and can be done through Grav's GPM system, as well as manually. + +## GPM Update (Preferred) + +The simplest way to update this plugin is via the [Grav Package Manager (GPM)](http://learn.getgrav.org/advanced/grav-gpm). You can do this with this by navigating to the root directory of your Grav install using your system's Terminal (also called command line) and typing the following: + + bin/gpm update feed + +This command will check your Grav install to see if your Feed plugin is due for an update. If a newer release is found, you will be asked whether or not you wish to update. To continue, type `y` and hit enter. The plugin will automatically update and clear Grav's cache. + +## Manual Update + +Manually updating Feed is pretty simple. Here is what you will need to do to get this done: + +* Delete the `your/site/user/plugins/feed` directory. +* Downalod the new version of the Feed plugin from either [GitHub](https://github.com/getgrav/grav-plugin-feed) or [GetGrav.org](http://getgrav.org/downloads/plugins#extras). +* Unzip the zip file in `your/site/user/plugins` and rename the resulting folder to `feed`. +* Clear the Grav cache. The simplest way to do this is by going to the root Grav directory in terminal and typing `bin/grav clear-cache`. + +> Note: Any changes you have made to any of the files listed under this directory will also be removed and replaced by the new set. Any files located elsewhere (for example a YAML settings file placed in `user/config/plugins`) will remain intact. + +## Nginx Note: + +If you are having trouble with 404s with Nginx, it might be related to your configuration. You may need to remove the feed extensions from the list of types to cache as static files: `.xml`, `.rss`, and `.atom`. For example: + +```nginx +# Cache static files +location ~* \.(ogg|ogv|svg|svgz|eot|otf|woff|mp4|ttf|css|js|jpg|jpeg|gif|png|ico|zip|tgz|gz|rar|bz2|doc|xls|exe|ppt|tar|mid|midi|wav|bmp|rtf|swf)$ { + add_header "Access-Control-Allow-Origin" "*"; + access_log off; + log_not_found off; + expires max; +} +``` diff --git a/user/plugins/feed/assets/readme_1.png b/user/plugins/feed/assets/readme_1.png new file mode 100644 index 0000000000000000000000000000000000000000..41843dc4f6e350a69f5506f614cb6c0121b3f481 GIT binary patch literal 298108 zcmd@6by$>Z_XZ3DA|ObEBHfL2w{%H&OAaY5(jn3zB@Er&1Jb2*H$zHFBi+0=?q@&y z*?ar@{`-#ikM}s{z;R^mE7rQ!wbpr_%Mhj4QmDxI$S^Q4s4~*xDljnc5il@tgGdO# zCs`sfZ-75wom8Y=!ITXVZo$Baz{rS;s=b5VO+`$>k$`qBeW2Q;G=jl=l$G^HTuFI= zJpY~fH~75qXq?Rp zf`TA7*NsAwX7$r4-L0kS-2ry>N%E(ZB5?oTdPQf$hdMgzB@t_64zQ2U&k#R}hWXda zSJ)5rZsVqMqxkcu^5edAO=62zzuBit3DN`c98WCGBhbssQ|r#z-#kjh7_$cjwlEKc ziPQLo(>VOYX>tGTr+*E(hT@k@Iy4c;deuT~Rg|Gjv|1J^H}YK2AxUru9o1ovdM1VH zY9GWEYaZ=c?7vnC45^0cC;x=Ae(H7Cp_!~&?}RTKYnn4uI^VA7X;JpDT6f?3->g_E z9-fV=hmw86`AR;&ERq%5)>0Srt)5aVhd)7WJ71;yahjc19aG+K*UzR%s*gz>e^of) zVDa#4rE%l+r0;Y1gG{$+R#6Iiukt-91aOOs4To7iQ~hg!q<-`iO8T#4s&1)Q)5FV2 zemL)3Lte~kEUbw0-Aa{$LBh=Q1$!Pltct&J5XxwMxWdqv$~$Jz;V8)op_}bIv*Oq7 z6q7C46a8`M%aS05ByjZB*{3aV%kP#Q`@~d7Bm`=J(<*;?v5-z{dp#-Fub~eoNq;L@ z7~4a$;P~7%t5(nO_X{tI5@E}dBVTgv7bR0B@Xk>wT%CSxs;iDdQh1hFV4&q*WQNRI z(sK31q3X^~|M$;Op@}Z3!1^XUKr_iUz*1s|=cl&w0kWm55f3Lt??qLFtwF5z%oH)B zqKbCCC7K%_8$zU!X!e`6h`@o7awt+LiwJ&wqdT~>FDuSI`7}>0i;LSmFQ$l|j3VB< zW1CX<*&2x{;@HCjd*>6xy{N{YdHu$&q$EhDDtIyz8d~m3N$Cs2dFSMlY^4VgozUZ} zyts1YO7dADtV_iB>)C85%l+ou@d6zlY{U zV|sZyYLowNADeRh6)2^obt(+ULN{8v_Lk*7gH6~22b_+cL1nEuB6?aQ5bL0R7T@bo z&GfGW;@3eHt?t(uz^QB~x~{zE?X7H!SCn4_Y%LM;c;q~h(1-<~2$DbgZKthG%G^lJBhtaVm`a>Zx`i~Y@Vvqhd4 zhV~01o?H?UrckuwQ-)(`#}Vy#ae~aMicf^Tw6bl%>gG;u?pA^K_VDN5gbQiX6cM#b z%AVn2VskO=%Ptg9vvb^HL&#CV=ILlHR(!p8@74PqgpFz{bINhM=<@Uh>#$EBrPaFi zP6yQ8Od4uKl&4D%@)TlFm2Hjhbe=uCKE>V`X8YIHz+&~d!5RC@&dhgiU&d2aWfD%m zcPeF{)^RGG{Tvj$R+?_J$e~<_I)l+8pow0|=q5WkQpS?m{^F4MiQwx(CRB0PLfevA&| zcVjt;3i!VbTn^>3gX(T1qE~&GRo*~d^lo04Sy$JSDN=#kEU-nmyqs<3;wFik!j&8> zuir>6F8{I;iqhZL2R|Kz`oiop3}V=CT-6ueiq9`Ai=6J|%i8Is`@8dxcFm_#bAu@f z$tcB9YCIhr`lDpDd#7T=?Wg4xYBx`-8ik~#PLHRK2Ti~l)Bz03fe?bVO$fySbiN5J zX}F#5I#8OaZS34N$h~xvI9aSI=U(rDuKdC8cjokk&%*RA^ZiD9eb9PuP;EY#Ec^{# zwR%7g!&*=O6@gj=oICekq9(x``;ppaS9_tN^tv>A;$jCj+$=Q4o?&bB{zfxt>&1w@ zshUo7;hPLj>k6Il|6`;v8kkhr_W__MQY#`pZ%>h&eVd>hQF!eTsoptRq0@=|h~_!xR?B4r53NO}@tQ6?sbiDv zkFfrKJ=ni2D=Q{c{KuFX@pD^OG-oMbL& zQU3~u!mfp3mSI3LXdV9DQpZG?pzqCdJMs?{MsNOo)dHXNu=stxtEkl1*ItWIPU*=L z69exfQ$iXYa7dN-i!7DGcr;imx~ zwfm4=v|D^6&#hg>8>!Gt`P%)GvP?9}lQNp2yxY^XpEu@LUSXO5v(#vsK%?8Q2v>i! z_%dl}I+<@q>d69qX6D!tawzZ6MLe;vsM9A^|@~uWH{%*qeq($mTbW z(JIr>AARvQ0E5rvikTSC7y?RZ$NfL@$9TTxwws?RL+P66Km<#~Pb;T6-MR=R41JGiG%hW;~AKWep|BXDjnBf27VkCwe`? z1HP5mq6k&w>i%KNKi#!TL~=Y!)pnh(-(r*c>&%lL!(Y@f9LvwXxx?uBdeFT)TfJV@ z|1#Fl`;y9*MY#+68_k{{<)}zmME8pZ&43XBJ&w{!Xvdqn0kEV{yziYVa$y-q=vZcY zR66P-x4mSvu-iT(r#&uos(3PYxFo(#+7gQsziZWaFDiUREqC=qy7Z#`#M^ZQzoLug zo`@tzoIkGodRZeNo;rTTl#)K)7^FarInXCJ&QkTml0I)<7|WGgFKgWYgv+4O(|o?j zFm345Tw^&(ZkDXI6dlO82R=u+Ow>ofvq@S-=;MQqbH z$Mf7yWzmFWcBCQR?dJRCBudWI0k-%v1sv@=lMnXewh}rniARI)LnrL94VF~--1gwy zO?u%k-)@N~H5Fww>*L!oAaWeMl&bwfx3@z*otA%@Q*Av}Qh6U^3z^h#yxPi_DoPJ8 zsC)bUl?Q@KqwAguR`RDUhS6pFhAryLyXyn&dUg6G@9VuipTl@$xTi^kP9o1a{<_zF znPHozFSqj3*V-PT$9bJEXj)B|?d@#hUoL*jZRdDm8szIev^`f>9!|)s@>=jz?Ye%a z+~>B~>z#5@v+4CY=cq-VsW5?Y+AOhCD5J?$Kw(r(s0cJ=gEL5f+_-W|s${RBmR`m} zj-w;6sU32es}I)I+zaj;TV&fw-wrF9s@YPxj;|au-xyXYSEh(5##A&Rn<|t=hNz$^}lE)3j#iQi+XMKw`yPfI|riI%+Pd(6(-iXl;`_%vclqr{ znY+NAP1)q)Eg|c@ZGRlUYaApW$y-8_@DLzGis1YDWECb6R8mUaa0=1FA2L1_@(R;l ztQW%GO*e;~=(XP3+DT2<`;Ba%F-qR=f!H|;;6rAr%S9@x-4b!QOn9N&6V+Mw&D31Q zbRi86z8@I@rtSWZ;rPWD)Wm9i3~zxF9khh$vD&4^ zgPUP(-TNmI47p2PZf$fD9QD-gf3m!5UA6!&Tkg`+=CcfeUAolSKwL?T@Y)pN>0nlj zuz}{WxtTAS6V~%R3Aa|BTu*IM-+hbGHimDv3~P`KwlYt^NU%1^+X_0(RbE9<@tJkL z9K0x5`hFA05LwaDgDi>a!$q#T6Iuz1jR^NO?YbCZQ#BXQ%_JHgz6zy4lI;A5Ugtk5 z@m!zMW4}Isu{gXdBK+NSt*vg7uuqE!57hH`a8GrH4Jv~b@!jYPV3GMLp7VJp?5RNE zM-SJ)+H*fF_bd;TdY_Taqd}?#>ye2*)1#T^rjx|oeL`UF0@2kCB^lC2cv76^o1^}! z^F@#TB#SgUbb&+PJ&dUNMT>N=92e{3mRKN#$ml~7A#Jx{y18@jbm%6sP}rF&jpcLM zei!CMPIC6)y}A$A_Cli@SCWXEl0Fg6>AhNraTx*5(+0P;N4+`PpL2vVfc9T%9*% z(ejgN$Aj_;?I~n1fun>a^ogXUEXlJVWqiy+*Xph@t2-QROV4Th(~oVnO1?}W*AFqs zk{Fp>Xv1R#W?eHSAx+ih$-5?=!;6ef%_BotI4i=Ht@pPFuEkRyo*VqQCehKt?p-9g z9X4BRa%Zy`O34Y#HoZnBs7sK*44dGN=OHk8ZAMrk_E0$9!Q)HoA20NELB8C*E(M=fAiReDzvR5|96d>%MUYeD&ViD)~&MMtbe~E)SVb53e z`f<7b@gkm!vD03%CU|ExVU|7OL;{Pm>xHDN96k>m720@hWh@uMMH{zrBTr|Kos6o3 zMKkCrNKYE#F{VTv49$u-ErIz^GpJc(Hr|EU5&}JD;4Y_i_c{j!!1fY zfz2hCL+)tX5a6jb6t{>ec z_J^5B^^)ZoI5=?Eo3DY7HYgHpPXxt-qB!SDxq}{K8^)oa75>P+h=x6yw{WT{P!Z@R z8isT#2tP92eQJ}0t<7>N@uI?^WZ`OwJe`S_eXe6rtAR77Jc$9$|^viB>Ivqhd;^wCNuF8N;+9XJebf0+()omDJkB5`IFhS?V_eXEM3I?CP z62fCoWlB9uIcZ&1cHjA?D}Q~vUX2ygR%vS$O@}27ZVP;Zy_@J$ zX2fCC2Ez;F(t{oomj0Ls%CtWDyu%&u4HH7HQ~Q{=29ntKV(`4vdEeGzmVG3C-;*Yo zAbTCM5ibkYsth&}sOanQXiw{_uh{3oim2!78@yQIK%yxZJ5T5=P*v)g5wZtAk6 zDJGkZmkdFOwQTcVH|C0~Ur(OKTOF;j4}Y#ul{uv-teIkLT5MNRzK4@ZVA2_yjc^Lz z5^_aLpF}qHew9SGgata2L-c&C;=5iuf=jODVtC-50v+cbgxvx!v#fSKQgP4RQTtBFP{bF#sZ`fo%-lO{@VRV(I5BL7M@q}nXGw76< z9y`yIs`bvJBE@;0)A4ZSd9H4+7O3@HX6$qf(X3;ku`fqCU@bh2C}%V(*HOOvqK?Uo zy;~MB+~P;8X&*^lT;=phTx&Sy>{a=>>}(2p?(IHJZ=qW&rQxX^o&Dm7?)zk6+-i+< z8k(mBObpj)jKXLy$et5Hm8Wjms4G%Y_gK&P*I35)3&r*m7(DE$((js^^_&kx-1m;@ z#*FuH>T{-hkLrk<*J6bC$rskO>+km%)-%}Mp3#A+qwdzVXU#fN9ej53BKQo^@J~wg zPS9geBwd`etyNCQuvll>+)?J70dldQs&u4?o^?JVE$72jh_R(4? z$;;SkG-276E&8hQUYg#Q;ORuVs0g-}yS>RGd7e(L_ z9v6K7QlH{bVM5A%)i(UV#^VQMVJmoUzlG2_)@Vz|&pzwSwWu}1Q;p9M{-c2j;h9Gq3PxbYkY29&{_;jFP?5652wo^n&_OlAMxO)RInt~ciSVadunH*NuoXz zUZ7S^KDlmrEP}$T)1u>;$>DR#%ASarTYYS2-B~nybXQ0I@qFS;Jd}HBv204GcF4xM zI3NZ!W|4nIF!=IOx{-~<#_f}PjUW0(DQK`Z_ubdU2~4^OTmdx2TbG|iUwaB7#AK$z zvx$+$el*bBJYYymOOTZ|8z_jCZKmw{sCaTkH-BlgKj%*mOY7{lmwy$($+36!ouykQ@zjn6~`p`la# z$x94lr@FP=A!SEr^OIFWo`;M~`Y+k3o0!BRx7EHI`PlL8AkMNmp+$3-1bmNVHUsV6 zpJ65OJ(JY+7iZM!pHWzip%Q+gN2U;8%DG8;N+rpf2 zowHpB+qXQiH9cDEg%bwwEx&Dw41S^_d-$ZS7ZxikO1pYb0i09LRqLHtY+vrJr9St8 zLMNiAi9PfgpRk^AcZw%lY*tL&xhcZdRRgFd#FH(t$dgM$oi*v*o`FZtO(|a}BfEX% zD1>OVi_8)l*Zz>F8O%A7Xd5j`mm8W-sNp&vwqQJmvUC0MZ~QgALSq)GmydPL7i;ZH z?B^urpe=L(=$_b+O-(yVTso00Vu5!R%f0wK!A#oUk-TWI$1uZhHnyOjUP!55HmsU7 ztPuFW`mUs2&Uz*W*NZVzb{;~$l&l(-2BxJlqdMB^0h?85a|WO?xzsMoy^ObCub4Be z`1q>)^J!tq+%b#0(KcK5viQNbGcunTu#`6?O5)47;WPrP>n~r>7qt@lbUT?7QG!~{ zJ`^jgUJjH9rIJM%K!bX zVEmY^&iA}rPh_*6Vq8Knmg2qXc$ImRx*>qF2Lw;1W-jtjX1VI-#oA>oTpM z==?mSOOI&X9P3QAo+gNCd)-ll2-Qx&TfB+&N*SCN<7QjY zDB6Gf1~;-}yV3SrE_aO`)y@?WQ*~DpwXMZ)$-7UJlP`a8f+L?oY&SxvI)K z9oRgk`p3*q>u?oi*n#L!Q#Vz{;%@{`!rBt@>bk+!R7rQ0|K7~qZSWjdQDyvR5)(-4 z1AIG@(BYt~?_1}s+(c+VB^lvlnZ7O>&$4g08#vM^?q~aFgvuPYQ7qfKCACDO23r<| zhq`D|CgbN&z*;qpPmCABF2y-&n{)&8JBOW~&DUr&Hs>qrqhmBFxlIoS$ytvcRY!}~ z(m}^0m3H&Wu7*!}Su^J}R~Orct^NBnM3m>KMQ`i3dqdbP&o`)5>E-g~X`+U=$U6sF zr4Li@plq|>e;7EX)9neq4W8XluOuoJO{^Z!@`?6}oLi9Q#{FKKm@hrNaZ%M_!^*#^ z_Cg>d(bI8mlWi+>*)``&B++#jwfv;M>5o`V8Mn@52fRkKII>5LeMCO>(n77v1hb7l z5oWVCNd|a=WL6Qc)NQI6bg4-`=i9zqy7c6=PUjl4J_NJ9S%l%OZ@l#H3sPN&Y>DMo z%glYd!qu{sStcChC$v*2&gf20A{%LPcjDduvbqM8nbG?Tjr}hhcgY8nIb+TG6P{?` zDWvd>CUi#q!st7Y;Jse=tqzM7$%uTU<<^Ww!>oDJajHo&(*%Nm2we%-G&ay)%4Qqi z*(HG`8kgMEF1TGyPx zkv4$|DSwRetmo=wVUL4!ud%=yD%;;LFUo%z1O;ZdS6aX&cyDG6{!Ng+RF%mr3fz^ZcB2}!IHZz z+xmN#m}6!k`3lK=%l$c(`R|tQHb-xGxF60w6b)2gv?pO!H)(H*pKI(>5@6l7wBctoIE1tnL%L4zVrs{RVj}+D#FSEyK%~3BtEqiZYXO z8+SFJ*u|nk(<@ny5YxbPaoZ2^7LEhPw-wFG+fcE0?(9{ z3ttED9Zf8Et}#cY(sQ5Kl5(T5Tl>5wBI_af1*ZSvEVwVEn1-B*B!k*D>8fG)qHog zBbeQ9!xhh({hICc(MV>1T2@$18978BaJgP(|VU%tc7P z2&>O(&UhBRAvC`A=#Pt<9`ZEC=z&a|7%OcuTI2gc_s~DtCk#YKQQs(fr|6P1H{bg> zN|(PhKh}06Q{AJSw&pm{Bi5~XF;X1;z_gGp*bZ@O!xc8w_29dKn|h9p0v!& z&rkd&wi3U+0L{q9Me@Qu{KLUJAj#!inil4~K=DM(} zYaQ(F-E$peT~OQ;pYb3~ut;^0h2<_ZS|bJ#1b=ZktCZ(@`m^h>SEqn}w8tLqr9d3T zfkB9k_qv@|jkud#bSsD@A&;x3onOP?iZ`+=loz@z7wswXr#3ck494;L+h2#w+5=}r1e0tGtzmGWXluaZ>iJ^T`VpLtqWe4d4W7Ux{ zsQrfuDM!rrKz}T=yWzttQq9FVs^dR)=zS5~s5AuW2L}CaTafPzZeSB=XYB&C7y&_@ zPLSs-z1j+uT=b*In^~yYd7!2tg{=vo`VHkWkbRQ%G@EUd0~Y)tiENxyG4-fvhPC<` zE)SAwG{Y(q0YyLZM;ODX4^HL0s(||75AWJ8=S5{#Oha#WM{&^L=~qgV)dM_nerR-0KIrqx_T-T=Qd}Q{Cfu6^T`EK zCb>jzXFJ3D!h`3U8q|3hz=M7_L?zQ}Q<0tUO<8oSm#1;I~9jC>(a%uS!w0p$ct z^VnP*j`r_tK9C226$0sL8tuWtzY!Z`EF-D4%Vy66e0i$(1G^zq8iLG?ez#vlKFO&^ z;5o5>Dz!*3FVwvE&MS7vLIuFgak-)kyzK}IvY+oJzs7U&NDhku{b`o}QA5!Z!T}C? zxrGI@3*{uCCY7kCvt$ot!I@+>PFIHr4)SBjw=sWFnxvtX^g5lcH4j_#22_9 z+a^gkO82hUl@a*;35v_1^a5PBPpj;YdS1~_#!DvQmB6*v%-8TM*b670Us<=P2smxX z*9rb!p@bYLlK(oDvcExuil`$)9bAU&cr0B^Kt3RF+vG2Zi0zkylF_sGi01oH7)UQsCu3B3I-w4}3( zWIM6v8N+awA#yOU-P>b3=&8f_p|Ws<@;-E-33~hHg7v=x{q2oNEz-pnrUCe@)RjA` zX1Z*B5ziZcp2KFb=_;4dLX1P!odp*A#DClqFPv6rD?HZaH@*N!0ZBvemN&Dxm_=ut zs7+M?bK}RkihdEQxLyyisX)}XBa#1$hx}i;o=6@NJP5OFVNY)Fm(WH@Q%p&xpB*dz zJ%(#T>dsnIW$g~cns{A$XZ@;pkf0cS6<<1|iBMPQ#b3fI(mJGxqWHlB11IY;LexJ* z1hlZ_2;Vm#S=QrDAB@DH1dT2oeUr?^4%Ffl@+|QgryNsU{znzp@t3pyP!;}F{8zsA zJytytD=hzA-ce}V`(xJJo~Hh@*seZ#ZClkK?(b8>Um*eqJwG9a+Ls6>%%9#U&hn|Y zMs_2-vqXWlE$4IzcvT4+pEHbR-g_Xbl^(;--;d67G)NLBUZ*EpA2S?ZksqA0=LN#L zV9cMm!MlpYd z$7I5d3D!?Zxc8#i)ezIZB(t8N)}B$U&R#`KYS>tc za`~Ku(B^&Si&JHSH%K!0oiwUs*|z379LQiw1Y(?dHty7(rJb-QkH?ewf9N3oD}E(~ zg|%VOHPt}>PDo}Wg@V$husw}-JfjwL92qL03!K`olj2|uTxVo*ln)91-cKgJ_BQeb zroYBiCw--_AHSB@EZ@=B)B;*BR^jLnxm|v&(6&RcmcRG@Hs&1K0X6!E;>TAEh7U84 z!UHWP#H4YEkVIkSg#188f+yb+^{hS#fE9ViA600Il7)J`tor8vs5ZOAvgmL_@gdIk zynyqD2Bb6Dv>j?z_Uvpj9d9(>y%>C8>nZ*H>jnlJK@-ygZ_dZqAY@S)?q8AcHPvFf=JIhmMCf-)rViYGK8*CRHpaG=fU8zin)0 zpZ-&fC{F2%E8-FkQ$yJA2M6cb)PcSjy~;z`!iw%I$qx8#3&!Cc_vWBU+C%>IGF^PV z%)V=Ek_z7#Zt;o7u`*4_dpiJ*f@arB3IF5DL5CF>wMm_|3#tygfg^qw6fZH;w;?Ns z@rk}R`*Jetmv34Lz)lkBF~P+iZNw%O)E2q`^^b+%(9~ItGXgO}CzBX-Fk8`HDAl3D zE)rX-)%$^vW62auaD22yxcxs2RvXqH*JBqQ); z`V*LPHA*K=CaB~RdaBI&ZTeldCt{dtXFA5iq-A767yp1z_)2*2 zP50l)0F7TwB2pi{kJjmXb>kL#@oW}S<^1hhzZ&o~*F+w`u{n0Rzk+!)`eQVE9bndD zTy~}|hl)Vsd5%N8n?1@>MCvlpy!SW9k8R-}Bk>G^xf5Tf^2xM%-DlP1k zHNMVMOt%ZOo-Sij6uxz)GPVE;RyNC#3@z-s#rMU#kZFTTPo+2CJ3g?zU2dD1xj#y5 z?P*6OAzXXS|CiJ)M?Ql!0re7|FtAy>S;4UE@{*GS4zny{ByT_Os!TDuVuG)2skEQt z;Tvk~us8Yn&x2OZ(=!r^X#<<`07@V_gzMGy={*U5jjZek@3#4%o4#f)dm&}7xQ~-S zl+_nQGLjhm_S}#WNN168!dc?i`xE;G&*v$g>pRDY*vL>D;bLh#1>g?lAT%PY$7%5l zn$$LLwkHZ%+mVJa^1334bPI_!#P%9?%2=<9%Ukf}K2jO@+@5|mnkdm`pY^%F?VQ(^ z{ClVb!g;h8oM?ksG!ey7g8Q+z&|=cX|)bh}H$*reY7+8L9`vb&08v9m;+~Hco>$EXbYSjSEH|`7?D^f3RdvUTgF10;b{G7qC`8{O8 zAgBchg|Kt8`%TBM>wyZ@#M?XMxuIv}C-?a;4vyP}`CX^5`PorII@AiurnkcPH%<@o zj2Zy=Q1Rjv@qNDscQ^ro`9D2=mAhv*VM;tfIQWm z)Tyyl4nY=APBeHgL+o{;ta~;pMbZnDV|&^%@hK6oS;GMB{6=DC5n=QRL)zVO`n^^R zt%fC5^ZQe*l4l*4Qd+Zt>f(Uxqjm=?@$OUhHoOW zSOZq%FuK?X4^~s38^;p;nSclz@do|q=UKZaDme@+5~2aca`g81&X4_o1ZbZDuRUKX ziuhPlU88b24@7?5fribgdFt|MGEQV{zd9-j@%@uC{8afXdu%zPt+U8jP3e zza8c;Rr5o@>LG^JjCwn67u5@0Xi!fZQXi##3J)_)+hZJSto;TK5Q@cYruztOyaRT& z|26*}PQL~FXr|altz$ro8=AWy4g!JZrz%&YgbgBjR*d>t8Z>)?756dAv?+9&y#w?v z_Z(;UZy%4{47!hP#!4K0t5RTy$%~7V>2~u;e7;eZ&>yjsaDS=qdUpWlepRQ!s&3X( zgSBPaH`mN=SjM(q0ivawBlSsclIQz;q+vgtDExU+aa=PF#Jbu+iIF1=KPyUCGLVZm zIb0fB>Fg3F`B_>GCgf(`QNcQe)ySq``^mDB6)F+G>(lv9c|u8{KjAqAl?ZHWfq17f zKI0lx3c|lSKOo^3+nO*x)*N|OZA>W!V zYw>JyPTl49&I~tfnu61@Hej!oo$lw9Bz$kSXvLf3q7N2!8)M_$9hW$o*i|3PR}gHM zv-$$s?2I@iB|c?cSG>`o7fhaxQH4$?KFKTD><%;C$Cpife6_8*AZlXtcHA4dq^(l{ zF@O3`okY1ZcOtT3pby!@sd!%P+pq)#ZbRo7Cqa@-gbB`Cr%mp?r&b&|_Vn=(!bfai1DCnT6GZ@sh9 zM2A>n-hU+Dh&Igv*bmz{gR*R2ojpF`i-(Cp(iXQ)$FL|A?PE_ECgyZsvq@Mse&!*Ov^WFINHJ z*YL0{U+C3(#TO@)h?z4rI$>t0o=}p*{6w%oCKDL}jN^f&9-?;#2wD59hlL0lD>&sJ z!50C7OT}sj)~{44+&Qp_Z%n9SmL7}BJlgg;Y)4Fv__nVtA$)rh>v=Y7;jp&~V^d=O z&rSm*nzv<`p|#d(jL(y4Qc|x6+3LGfI0I?22iXzTm(n(p#4PM5m1;RU#(m2Z`%29} zjN?(rf0waZ5Z1w~+hg(!WTf&-7R$&Bku2(vph^kvcn(pxQfKwkfmrndB3b+$+>eT_ zhaD)c{F(!wGvU*`H;CWej)wn_TL!*S>SNOLrBiDjDeV7|t7Q@M6m5AWZ@}Gf%=ZD*0OD{Y) zSal~C=jw88mcD4&eKsKPP7bJE(*80<{AEwjy0`VQ&T+H|TZ33tvLs|Rl#N%IWO^e} zgWydwi?)LG)6qWg!~5j`js%^8!HCH+*4l+hZcYAbxV0D9>}#-ob9RkPcI(4-jeFG3 z4c=usZ%@#jefE&YCLd-fZz2c0?!Eks`)*~o=}u`~EzaA+8aq*syUWehulPKSdS8@= zgzr7ITRiJemmbLcmh1g6Te^VH0Zt)+Aj7=>Baqpqe==u>6+VQoQB@RF*C;QWx%S*l zb(5{LTUcpIf4B0)eZPKl#imE(tAFs{|C zg>9JYo_uD$bg0aX4%27IXlzlFbh<@DRv&`hqbjN<=;gpcQGf1JFPg;Af8@=z=FB zGvgzN6P)Fifs^9zLh)-G>irOn8aY1ytp(NZ2mIS-u3YdG;TdJTHXh@JlB3v)5DyAY{mHBFm;V(?a%&j+7HwQlV)&7x<&AULF5TUz{GsRQeVqE;9gC^aR+-Y+t z!pVNROdk+PmNN7Q8iK3 z<(lONB@V%2jk{H0URN_fPlWa3JT>&_t|@N9jtJjL;m#n`SfF35)fIwm!_$vs5{y4G zwdiqRyD&-|NNaysM&F^)pw@k03wHl2DSJ2%e^4JmA~?7M!`;8g0xjlnxp924nxnkQ zAT8z#(o&0Og$ob>IoA^y?-8L5gn`|tTk?(t%3gK8^a6~HVcvhk-fHNu!%31n#nQtJ zM_v1~5;{TEGJ1_03o~Fz;^+PVI|eQ7lq6|&{;be{v;w$^>1SGbxS69|27lyO7>j>k zX213)iN-gc@Bi*W$B^>PQYJ(*|8L^;k2fNu=@Jwv0sr**Kev9CGP>?cOejop)>E{? z_BT89fWBD6;Y1u=ojE%G+jI|~MB~GTN)|ep{JXXD*B<}>_3IW*o1%aIUjYB_&g5Zq zzm%OHNklccp%h6lmB|$|Gw!Fe!$1$sdKrw&+=k4b#oDpdZN#> zV$P|_%U?z3EodE-?qqZQPfqlw)qq{UlxkDtZ)2Q{oB>aH-i^+1WH&vJmhRK9X}Rxm^>o$Q8Mg@UNKIV)tVFx4yy| zATqM)F%1x4dhF((uV_&;I65LUl%?$(HgNNyoc~9&ZR?YF5E$-qP{c7fP+Bxt5+mTo zj@G73Y3=IEnWqotTkqeDrPKqjC)l>W3~2;fH>Y~@oq_Ka&a<3vsEWvbAl>;J81M(E zFS3vIR`?t-Vr*x1W5HSJHra02V-$&7+TL^|G+Ufod57l6g!gY%@1NUwhjBRm=*H%f zef1(~t=TdVT*&aDiJMCula83o={Iu&tS8%6O!Y$`U{@y%-C;3I@{7zO!3#=qiRMfl z;UeMNf1Kez{#umit4Sd3%CR-2Slg<1_-k^L3`g(_mgR;csK`YmYl{B^JpHvmkwH?7 zQ+6M<)?`-ed*uyaexOEfHhDb9+Z%^b+5bUyqQii8pgvP*4d`gEZmI790Q9;(8-rMD z&Vuq&fo3MjdLGlrkY8D91_Bl>$3h0FIK{aOo^wFwSIRn}znQ#V!e}Uk*AYNr`i6z? z^*}}sy_MEw^^y&42L^?VF~)sybZn+Q7}@~lI1luFRRI|SRZ)lIuMp%XK!%Y+wAOn< zt_Xbi0KkejT$#C$= z>H{XZba%$xj!cc}*;+t}_Xm%IgX{;KmBa4T;$YCo4??TcAVv31&Nq|0qxoU|)^>(eRt` z_6bf$;u8q+_p=qr22HYoB&R=U_J>2{=Sc&kb`M!ViIS3a4ew|3P_ zEXi?IyC}FCo7jCVMr-Hx>NK{r7D}IhF53h^&i(-+n667+ZV!z){(9I@pb-d^F7!w$ zWlM?nyYT&`qC6u?GP`&;>>~tt+|ATxB|{WBM>j->O`vYjtdWsV=A1;M1^9WX z*!n93KY-D=of*Nlwc4T~l9?=8(!XSR(neDy+LenAua#$Hj{t!An>aNq$@n6 zltXYOm;(O!f8kUSKjOea0z)UH65U#%%2J3OM8p#oEU`Ut-kRsZtMU~-x7}{4LDw?W=*-2)n!9rqy92(+HN+AxeJXDgB1Zqgn8gZ#4nbtMl?kd+?wo8>p4Z3?bhO+F4nuS#dp;r5>fDc{E#b` z*yVZ3I<%eMTkp@5)`8gGgNnBVLaA`}?b+ zsFTWMa%S(|-K$rx?$KBPx;&4--1M=b20;R(M!6&vQ7_HCV}iIC00k8foZo&Ror9;V zeCPqJ$xK~&?FYwlu5H^R&&gidpo@+qFN9d>A=2g!DqTIyMtv&ks!-`&s-69ewp6@-qqyhbnQzrraYfw zjRp2A-xVilj3*{QdCGN!?Z^r5b(Z(am#db8*cWz!@8Tl|+h4h=|M#~-lQh+~Ow>CP z5TmoTst9IOYqBJLuuv8F0eFS6m4o~Egf-Dzx%f5hu;oVVguV}F4g+t@`m#=5ufeUu z_n}pM?rBOZ*=V|w29@sL0P{nd_?#*Mb@alp{BnIHo>kuulr#kP$YUPhY*H}7S)jcAuqEgfNubgx@)Nuv=bU`o;u3#8{^ zZRpbW{q0T;h)M9c^?=bGAT^F~v2M;`v>lz3>7TN5?0Vp9->ll!!xYv!aMF9-A2l`3 zwMnyApp5>7c5;g`OH_YRcbz2y(=uwZ5admjyWy&i~W!3FrZCS4l-yFT(dENyV zba>y7K;!D5QR8)^mPb?pPJK>|!OL&3EK>&|4Fu38bO7~LP3X4j|5C&WA(o8BRZn7Cv0Lp#8CQKHOb3`~F8Z#J(zjKFV5azopot3h37Kx^HYX34rcUX(E-{ACv2o36f1pE zLaa*z*(6c+2z=7rT-`?(l?h~Nm6a=*%Mh39c5s5r(E^plRLVVnz;b2S)|0k%L$Y@w z3h#K}d4#wdEgp&qOejDdEfM1#H|E(M8#?}~LY*pI=C$SJAj<)^=gZ72vDy#!lVI0l zv|T0i=(7FmZeG3Z7m*NY7(}*K1R^T6pIuPrm4{EfK2Zgabp5%cI!S>*w!nOuDqUys z=f9ujI~DLOwzdq^IARc>vYtL-*U>K^m_8IQ1#!RJ3joeG_ve|bdm%Wp2fGC#2*a9D zkbSmdBNNo=%)JP&_sDm+5+!_FQ%a(Su!hXj^Kg4HV`WTe^Eg6R-8bLEN}Fo>ZbH!i0v>k&WGkA8W59xYRZ&u^ zTCQeA6_wqKX?iCtqN1Q%v8aeX!a}*)M%|?uajP-70%|tS{2(C z057i!93&B<@ed1tBP{~vm)OGwzKoy%?>T3Ga(r8ELFJDjI4zEk^THnJ&`HEn$#hs{n$Z$Wp&$wK(v$(1}I$k z#yV39q08>~!fMW-O zer0mCUCPB|eVYaQ(%+jeNayjs@_UavKEBQ?S!;Y_L^8Eq6JDpoImOd7b11?Hey3f9 z4Dgd1P+2*8qon7V>aRpFoxJPo zSJMbe&^tKD;|OH$LieA2iSr5D)~{i)%H0CKy{YLR)je9j+hAT-*Z1c5w7=Z$Sw!91 zkDx5+b=Hr24m9^O)ocf%3eb3DV>GI?Xs_6nG=${#R@RD02Xo(qSj+!vtV4gkUwH<5 zFR~tQNRW7A9ZY5A;Oi2IQK*Y4lk{mgt72c=_mVuJ9k>7x{v0TW52_8BcfZ8x>lNS5 zPs$PH``2Ve-L)7mnAgOw3!XaDASWr}Yf3q*mXCG&ZY`8#1YqK6KjYGQ zlJc#__Y_FPrgR6w4i5PBCa$IK*@3K^;QL^?gvMHdErZhj$^H@#T@Z7&mqgQQjYjCw zgyLF&DUx*X_*$K1>+h6{hm2$S-_Gi~W-S8KOU`H1_2<8~bOTd>)CW6E2izV|UrRO+>RQ1O#oUc6w}aXOJ3fbiV{4r%>5R3Dk{(gvp&FvSHlINR3f z^ozUqYhhuZjeU;}P&TrH#^yt}zCGWn-F5|*g*y)s+HH)bQHacd@n)d$MKN&H2wI@_ z5=L?a)x@Yiyxw_2BH*NdtMh^c14fwu+Mjp|pp>OQAQNyV8OOXAABcKmJo;8X+v-Cv zqi!o)W7Q*I1TF-4dV(4(IE}%TN*nL+UnugHz2Xe9CfxNXdVXq|jF;}^qg$m|zVomz z2@&Pz*JP#slK@yDJ%Oj!tSemD3A?!cTTnr|0OStUc^4S57`FmNGq-vDxOMm^f^Y~0j=^FJE};}M z5YQxjA2vviA`;Ol#D{>0PlpzRcIw1ob=_@2=tYXkGf2I!a@PF}V7U}jfg7P097H$w zSzp6C=ty7V2P-f&q0NZWqHXwQt;@JV>t*uG5dvX_TTcpKn30A%)Z}VOK@5V`c?4Zm zO?hOt$NsxE48)jKD0CQ532B9}->+QIcXoa3GXSD8anC&fz^F<4*Qc>G!=_h8^gxql z3w9^7Tn!vTG(HDL#ay=zso&nO!_z{Z3WXlw)nUE{#*!S9L$p4-FdoJVn=c%eDMHK+ zsH)EZUu7g~)3TLP>ohI);^~Mm|C2;x70sm)Ve=8F`oUDm+2@f*Cu>Vj(Dyx6OwMfyjB&xYzTW^Xa>L)`M}+~W5I zbkAQFY#$oOGSqpEppq=@ei?EyU;^`~@(co?l&Jlz`Ae;iq>3cIr+2IBzACp?!p14{ zJRD}W1d?Ia<7BU;8NOtM@*%$?2X0%s&sR8&m8Awj$x3^K5l3>Rw7w*ZKIwmgaT-2I zjjelNirrkeG1UzK88a}TGDX8-Ggs+*EUVi&kNq*;aSTbnP$zNJKoH& zv0A4q~iA_7h?E5JRJ$o`7`lMaP|Tiwe6p!7QcO5WF*3@3cg;?FLO=nM~pL9Rn( z8wQ0t82zzklt8US3bNo2rgj<%QiJ~z7-$8z3`OF7IqBkwj{*kf@Fnx_?7paO%ObGt?MuAXv5MX~;;?LED zgv6nLtbit2jnAV;H<&hL8gBI!JSMeVlxj#?J~<(At{uRT6kZi-WRhTQ!I#a+A$P8? zUkX&M4p({<>su+kPv|T{WWpS*56pYH`n5y(--aiK)HgeX0>)6Gl(D*OCmLJ(1mJqp!~_G*7drUrxi zBhBkkATsm{jI9H17BkZr&X@0%Gr(40@d;M}=))%UkG29KtrsL49Q*HciAe?FN@xnd z-2y0x6wMkCB9PnyTt_7kAM{bMqe(3QS?$oB5fxGuU>oyn@diQM>&P#(7tn^PeM-sB zmCL~Q^A&Di8Ning0is2$)-o8Mmx!}y@hu?%;}+2PR)$@E6?~LBrR28lT6A6nN>+`{ zFJh090Jz{&ph7(gu)@|0C$J-AE@UqOIvJ_}m~8pehA0$o3nt1I2ti;Gfk2B`tV8*!TUVZ4p`T9+8B9E4zYAT8VgNdeTxDdHT?EfCcP zA{ITEV@L$`Y&vc~wRyn1Tcv{lzg7VO>kqWZ@Gyg357`s10gR&c^5YtUWeF+^>NN~q z60?2~Fcnk^AorFm{@%CdDH;Z^ihqaw965g1xd$&3+FX94h(%jB&cA(oXi%V!t|!Y?k+J|k zGRPtfN0;Prxr=`BDipve)G47q9RbedrR~j#GfYf_3>qC-r$!gWxeMi$@$+V)ycNC~ zPJnhQqplUPVAnoS;;3`4`Gd^@hKd47`p0+^-WPxI_s@(R1Y}S)eBf8nD!q0dyN@@y z$mss^@mOv6aO*ITV&PAZ_k;G1>IA}FFCJH?MIXk?o{2Oh(;GamHe`=lG%!Mz`8vqY z)9b&FTZPX##C<4TJn^F}h6O zAU{0)43e*T)2S35O5}HK*0HLyr<>wShxG{sC4zLE~QZ zV>1Gh1Z8v8umfcpbJrQP@!sx@ReSe9o7w;(?IP0bOhBcr*VN26j(3iTc43E#X4lDj zmgbfjj)moPrK#Xf&WqCcn|f$1it>9lvrU)?H>q|YF>%%Hix|hnjWehSkSPgAVhrfn z%S@!dlcLFT`*I7RT9?=aN9VTqFt}FbFzWS z%aW3$t!tTN{Gub;@Z@p;jQIX3BUCbIh7C=rW*=@HLG5zW!tW+*7NzeCAo&N0eywda z1JY%%pH&nAh|J!ukw5`iVB^sYuy!h|SnIzSeSmD%R_BE64Bmp^C)xWpsO zW*AgrE5TLcd$jSG?iS`{)NSsxH?Y+A!GJX}tr?E_Tsh2xfp|06s7A#r2S@W#KwHA! zQdd{^x=l7jBs&fi(0T%b=foa1E1C}}v%u|Uq6-f&jpf^gc*QH&Po7OY0k71w_i!3s z<^WjRBY7LN5i(Xh^+Z$yiTm#eakRA>=eYd%W$YK7#2!ZO=Ojkq-~U7yB{-07Ry+cf z#-1@%I%fn!KoGFW`54SvF#?Cd*6MO(A!v8s5FgtJ6q4Z@wamNR`OxMuper0EspAYS z3Dgz~F;0ivu%pGJ@C-koT_2J){Qz=2C6@*BuhQf>2Z=}QVq_IPJ!N^riPWP2M`49J zAl|9LvBeLeJ@^f1wFjzxVIP+(6ZS*#w5KjVGS0?aPM0db^l8`ArPc$2zE5g2{f#{m z#O{4x%zk_+>W}(^p|b|IVoH1n=ATwo76~Cx0Sk}pV~l_i_26}}6e5~l`vLWp_E=5y z#7UPOQz!tKbgSCIT9(-Y-mTbdq`Q;^q}i*Pq*1Tv`Wag`G5pcODh=>!w)O#3gj*37 zP~tqw&;(@@`io~i;*6(vKO11o`&@tuglk`GPfBg>k+WHra|(8vTD2Yn09`V%JLI_6 zf~41}P$)Zrq<%BaI3^xw7UKWSiGjAq2&BIEPR&4}Mgb`D6RXEiH=FxOj{FfY(#e5C zqD(oD@( zjVJRzs6_>E1C9_h_bu>c`oo;?l!i4{BN3xflX=TpoH=&%VqjS>N{-D+M?2Erj7NtA zpy>vXVnYvV&|9nUzQidz!!5#Wg(iTXk*U^euMo5X#&^apg}|S|foK&`>C(E;LQ{aw zm+M-0({(AQ+JQ9SnA5lcJA&{;B?R$*ArSZwEN<{{a|S*&&vJc!dgMrF9@uB(TP6x+ zq*!JC3`YWVqsVH^9{4#1)R+RgWtE_AO{wEw-3qYsJ#Fg|bn9wl?x3;=KBzZim=`m- zbaCt_xW-p#C~rtOERy&=;k0R&D*d%!={jmgN`U4Ki#mW!Q^Um*))49HUTglIXEu=? zK;8aFg%fB-ogPsUwfc9AC7JsPt!tkYx$U^M-065x^INbp1!b%XU@0stx|LRHY)rd-LgQM z2@Hydct!X#I+|Da* zDc-RELP#N5k88dnsCLM~<7{6Iy@VOu-hNR}sb##Y1BQ<-pi|`P1ZJRoGf%hk)Ix&B zY>|Yh-nG8~HYeAkl;ngrUr*3d2{W zIj|7Es@&E9uUQfL1PA1|ND_?+RFJPbv}ji-!oMj%^xtHnz~nZ7BlM<1_!m7w0?;E2pO)(vobJ;zW*I))0GpBq`X$7R zDl*yJQg?IOIF*lL}e!DV}TRYnY>LUB|dH*CO z5HFNHq>=h9iVREwVTsU2S z`>X7#c;)c9^#@~gj&0())>MOiZJIgA@4U6)DX0A!B9WeVl>PaXkz&eB%~UnTlBsmY zL2}4Yy^DE_k$yv{2dO44*c1t=rdQzbuxpGB(&eW?w*M=bCZtgmqgBlm=z0-ue<3AN zPwfs?I&Twk6St-lSDVGLp`nVh!{dFmbjMbTjW0ll(+=;>V(T;R%5zTGk7Dq7zr}%L z{Z6!~we|HF@mK3N2ySr>B6BE#-eG4ABX}@Yf!G_wObym=rLsb6?g;i3pa+?M6dAeD z5?m^~(LWF$51!uq=n}tjBgJ)f3)%`<$yv0T&yYYR);7#mKX32i?$A0}$Ot*k+khX? zO6{rUB4Jkxp7ZkcLjAqPx1sFqW%5}EY5NRB{3_N@qKje`{S?j(iVqU_W7kq>SGjHf zvUl1YPNz8BcLj6MbAyJfD_uhy7`7bwzD@{v7~IuYqm+BNr}xJ50xj{VpeO3-(I9FTxMAL6K26 z+k;Jqm?!BA@1HJG%fOvE<#V9Vfp7%zCL|uZ-OF5Ab-e~8p+U`hZ`PtY$s(U%kK2*p zZ|ulyVion{H9GIMS=vYf#P?qNwws^e%WEO@$n5c%y9^dX^^!nrRYRQ32jfXyX82P?;0%f2*=63U6>;A88 z2=b$je&BAlMt3_Ao4Qm?P+E7FEX;B1)ic)Hd0ML-BTf+899(&Jn#{ggG|zG=jas9x zTPL2TQ%Vf8!w@`+zR;j|*QfJ5E~Gvn}eq zGw4{WWw^g-LzPE(m<}%U{ytYP-|1>0p-Q2&L)Xm!lMaSf<{EfnHtj+d*1$Sy8{a&n zgOTKlXI_Dfzhr@HWA;AH`;N@`{A8=Y*y!846G}W3s(F~}v-o~^fUbX=SAOSEmqh;? z^@z1+b9G2U!l7r*yZPq}aE3gBz_52mc*p%IXy9nfuWlbUn@$u$?T7#`$B<{t>!wZO z7q}aj4*dH1BxdKtx6x|Fowg|!4|()z<$u|0WS1UEavLt}%6S{yt9Pu0vYP%-@V}V! zOXp{aC+3>6#?pskn7w<$qaG1<#B7j?bA*F0j_?+mL=$MYFf6EB!inBuD?WMcdi6hT z^cL_2#aAWDfSCALEuOK8Mx&<;M{lrIcy0Z>-cUxVfK$f{4-2>yI(EMZf<7OYjx^la z%NP4+rA9=H$qL?vDBimy36f<#?+07oOT=;IX>SOfRl8lZb>9u@>CcJcmHzaFR^*h# zBLa)BILeRvShmMffC(tGFYShDt3p2DZa*k zpZ$65xWl&8TMo6vHfc@kvH4{E$sc%HM$E}eIBE8l<#x=}7C{}$xtvZ<;PpFN*B+&V zAEZm8bGY7=?CI@a!EUMZm6P;V9`R-)B`L0)ZKgaPQW*2rmZ7u`kX-!jbpG|o$9hmM zmCJ3ouUF1_3H{BOzY9X{6%@|#34Sx zilQB&mXs(Wv!BK6{iHIoEFE{AldCT_&|XVYykD?dB{b*k1?`&!u^a0O%c}N!;B)AyHJ>iep+Keler)D+nOkV}GrXI;Dr-V1-RD@7BzHodunm_eM z(H>C8EPNm!205J-iWu2qiF{%wF7O2h(AO~`1w~)yKEgodLMqb{HInGR;|x5?3=qnE zqa=l#-T4ND|CL1K9r*G32&PJ{g?#+Ut6&QP-h{KVRxZO~&BeU+2<9~RjtiZ1F z)d#yBzYT4N9kSf5b!^Ms9a6ufO$%@|jjb32lFud%2Oiozi4b2n^KI-ViC)!{oTyY@ zl)&YkVv2^sPkWojdfM8Bz%BeC&05MnO2uHwP&4pOHOi(bP>AL z$e<(X!K~bxHzfwy%oXNA`^m|A<*aj;$&u;xbMA$flHSM{Z3gddl_{U>P35n0s`Z*3lb#iqO<+`z|Y_sn_@pMR26RTJvD7_LP^8^QO`ox-$Lf%A<3nNxtbF zWc*5tMLQF(N5=1`WYzoJMiQsPa`Jq-cZCPXr^iu4 zhmSfb<%8)yHkoba&_d=X;OA9>?uuabATRWZ(p?l0w-Gj2MJ6Y{*eX zq4ZpB5#E196KDFG{e=I&&XA%# zH6{~Z@rj-9si&Lv{T)p(DDZyGJ~c0AC->-p2yx=*o0O{@l2usE8@a$ilm(R7J>G|s zC_CNagn19^* zzbwZM3QV>tRp1?W^ZNg7!@yTE{{O*O>N@i4D$*LvW^A$zExY6Kc=0CwAPoN-YfVdi z^Zzstz%vw+o#OTvKTaio@wTco-zj?q@A#IWX(C5@VU}oOj(0GT>qu{wcK6`v(=THD zaM1Mq4l>?00)QbO(Z|bz^HvlsG*>S-*tUmiITXEy>79 zTY1%FL$ynpa8IV7-)1Sr@%yj`MehzMr5({Yac^R?uMyIm?r+etZ6lQeb{$KCz^^XZ^YsIEx3iH8^wuBsOSCOf& z9rh+TzknyQ8Rt7!7nm}nPIP#`*CLNzUd38>yk!AYm`B%t?)|86SE4u*EQfFOfBKJA zPH`dO>d;@X3iD${1>>?Z!lj+}V_`(Wq;KS4b$K&)*lM4b!wV@K1X>%_`LF2euLyR& z!K&?b=qwUb-hd4jj-7~Du!!$vvBVPMc(@M?CJ_K(nN zi3D#`oPNAUlVd`o(FvcM?e%vI3S|1w|Kotqd{`wE z8xk&^g3oL#ObZuTeRyZ1-n*wYi?ZWcdhZ~WI66xwr5~vEl2m7`qsdYgfIaDu6CtH+ zOlM_$+h^*0AAs2otlo!Nm|#gV1xRNPeoV@<*FzQDALAv9dJ7}_nC=9O7$4!Q>_W-X zP?U=&HvS+f^bn!=%rCWa4^PhO(A~}+BEd49V42^a4@aU3CLf=7UCAFJy|Y}SB%ev{ zh@VgCf>#!Pn<_qqxYz$aaE_RwVsu7L49}!>{b~h$vE?W+}EYh zc6-jXVntq58|=C8JSOuBow8f1?ECI7nc5z6@bUp18m8z;+@GQc|zFkk`BSF4k zM!27?GkfGx0osGwYH5GaP`!UI!HjC%Nzk|H6Wk^(i`B zNubvcwNa0&V%>J9;0`v=xHs%F`DJN&KvbQl^O+0bw8q=+pce<2*Rn4 zg3WT8%IPe@nkVkDM7)jxbp-Y3-{QVp%=k9kSgRW*H{%_DsbX{c%?QfF` z(hy{IR8WhjwD!uBsJ~m{(dm*$Qs_31ruQ&8eN6^1 z##*?q!tK11JP<9Te-V3E#-8r_nUjk@b_E?q5%9aeOS3dG=$B-DB>1^r(1_RQ%J-#S zp8t;9+abIb2Y3}ke)|FP_585N2rWpJw{7Oz4qjMlYHFprW|Q&8d(YEL^Ng(Q#@cYj zg_Oc)ibl=Fnn7aEfHr&7ZGS}@zVtdJ_bksQYkK*pH#VAO)7BeY_Uc@_BFmo&~^J&M_J- zzu;&#!2(`atDdQxwP7Q{#4(Gqs4(lQmE~n~Ix}1H?Tlu#<|0qQEC(e%(N5s*_VaL7QVb8J7k8h7CWS^*Uhk4e-`d~}Ebf8ph>|omlyb&&4 zOYtZW6-P&tYvg3&kL2558{VHlaLcA>;jVSj8SbHzij4$anHPx)Q`m@k%rb z&%=$FWQCnohX#&2k}nG&Vu_Z~7im@=CX#C3!6_tChwEN05$P?e@fg)lV} zR;k*;yIb|D4ctVAm`_X;xNc$$BnQZZrIW4q2^uiOb&?&(@d_=z`Bes}m(D8DnG0^h zI%Bve`4#T@m9kX~<402Kpt5VrmRnm*MKNwFE+*h5-4(+p%{S1BOCwUm_nQ;iPy54v zmcYc3iool#vl22DcAM_1X6((bQx%`ne;0MA!)WICi_OKt;!9({m8s)sw&xmjxs9#% zYf;Y7`0T>v=(B+67?ai4q$_oAd=!s2WYT*yoe}N@U~UH)DG`rW#bC(`V8or_8Y-ta zDGkO_Qq}h^g0PuGc%zL|q>9LFBhW0Qcs(}5evFT6FpjnZZ@4P7I{vEkVKL}x*5273 zmR{_0Sc!Rnu(}x03i|P{yhq~=OqZ(%Ds7GL7VuqK-yJ4d(Tw&tWF-;5m{Fj`vIVn* zR>NVUlYD_aR(Irx!5TyKR>ozX!BZnC{w#r$FW&b#gQYk&OfdSMyU%~2G@{IxoV@jh z+o;@EAU-UfB;ez$Vn~QgBFk(K+M$p*cgejgE(-b(J9^WSThbY31445IU!<~41GKx) z8?)`$7JJ2IozTO;LK7W!OW82u_-J$jf3abcx;Q&2I$M_C@0;o!##5^FYR$T~qpLlC z#*kzc35qdK&L)vS%g47V!ZDyX$1poMidtjLKr3$E>1j{LwiLd5x47sS;8=d?nc<#1 zY;t(B$l|#@kAGz4uRI>l(n45BBPN!5%KGY`won2nwik;H9M=s|})9nWEj$+3F z#+e$YDuYovf;gj5HS46Kp+m|?tpGStv zq*9}Cb_@gNh$1C%6md+HT37Je?Nm+ zJdC`O+5&s!0-MMQKI1c|l=qm<+ybXvuNxH?gFfrmB?n_;`sVt87+tN|-qfCnxR}|L z@g*0Wq$VzYo7NrW?x8A&rlTWQ52eK(nll-A`}S>Ri*D17zT0n~qfVc>j(xh0^R31G zl$Py}oHi5Jy5%r*R|1d%zBiQ{U~BoLLs!K;!X&4oA9Aw9XiE3rjrsN>1bW!4-(W}~ zWF;EW-|x-h*nI!^*o0xZTTZ;>BwU$8({Ob0HGs936{b`0L!4D*E4cJp4t>J>S|HFJ z3+g_VEH6Zgg6LNZ0TsH^HCoX9iRh=l!7>+=%@gLci)h#Eb&B}vde4XUWK>GMNtVxG zY9ijmM&tkpd|n7-NM|>N#Vyg?W2`qgY+eFAcydy4bla@Lc{?pj zkky*xb}lCmr&Q*r5jxWQuMu4dhX%C~P>#>ZA6dwMB>!v(x>nd+pI~>2yk>t?l zhRpZbeWeeJ$3aLclO#Yg*~@4~s)MKK(5bT?cYZ%R&{f!t5;=dSco6n6f6{qeMi(l! z&wL-nJT4WTN2{hs5`hBo9A4C&!1M>_=12G~QOwu%k%lzqq!A_&wA>U~qN|}1rT)+{ z`I1m#w9)v8&dTjl{45KJP6nCsk)9E8EMcXLCZaeEF-g*jQHxkm^Kc>Cc;YtDf#0>N zLDOS}L>U zgg!*8h2G~|1#o8+>PM7BJCGOByc=#;LJL}Q!7R%?LOS(>EAU@bN#ntocsEcVy&$HZ zU$rZ;4;_)$HHS-l7v{G2vsAGvK3+HU6f>P>>fMMA+B;I7+CX-RzE25_>_&@OE!{=0 zvKIv?G0Ee|dMHIns&Qo0-r1g)zHb;0L|wG~#`Y@(vI&nijnkM8df4I9Q=xL<=S34z z9MH!Q+JQ&TAn{NEe4=6F(*ltK+tg~k2BfVCq0gUVWa6oM6z7sjP4Ln3l`)lLxD(E0 zOmM7{2+Cu|3K-VXetuNBr`2(N>UlrF14W-E#lkh1#`E4cvsU+0XJ9}H-2A(ltVvi! ziSWtA&V}PYqgck8^HVZ0yr+ zD!&$SfSD>ekj%HS0>$L;^*d6)hqpkvmtaRGuoamW;SnLO&C8A?9L*cXsRUqdP^3(lk#5n%wp!|0#Dq*3b1CYrlU$W$IC@2r622K0UJ!nJ@ljVxE8w#Y zuk-f6LaVBUs^@n4*B>^HQ<7pM%;uNw6_h}8009@YPYU9~P94*_I76V0e2PS96TvI z>0rXmRG-L6rJC*H*yy z=Gc-tx)fGZ@hn?xT!E@4C?fI7J6t%w6VzK8ZtY{W^LXoR(qPzm0S?dF@ag@74p_8! zA)D0>(Difp;dZfYY^TcaP6Z#=BA1sl+dO$<$%?r~P8S}b+YXPJ`+2qPoBY~L==yf> zR~PBAdO!-xcJjxa{X*N1)JyTJAM`TPPP93GIW{)~6})B*q!S zn&jS@7iPohB=d}yBq^?c6pwoE+5+bIH1t*fN3UhTH@um;OuOi?Q-^ZgdBXi1FC0?@ z9|n)Tj|Ou)Y%~hY7LJ-oPI|dTwBbf*f-Koh94%WlOv&O{7#|ovBR6V)ryM2i8*!?l ztjbPO4;?Z;uarkt?VA3)922v}T)5Gw*ZXrhNF_W)kv8|K3oUW&jT2NK5{wQsg-%F* zZxBp`5V!pVKWFrTGICG(hg<6xOol)6kset|ylC;tL2AoY zP%!SIv?y5I^+i;o*v6V=>9n-38%!~%##NE(KeZjg!S2Gzh*U|sDE8W+e_HGxP_P)2 zm7P;FMGWr6fw{|M19Q<)Niq$gjb!2Hh*ZXj%YM)$`?4Mf`*mlhf|+L<>m5s2EBc~M zAxukah;YO`sPFRtIybo}Av3$u(X{Rd6q@1HWF6r2gg<-{Y@A{=>lt?>xvBJK>sb0wjlhk{1O@U}g;1tM9&TPP{3 zJj3z}i|W_thLr1)#==2HUtf1q2EcR`JS;Fx(e!9w`j=W3#k}WX+koqhcj}?dkkZ!F zs$~yadwrc3lgg_tj1i4j^nRXV43lfk^< zL_oQWyOT!3vl~pOv)(8B$Qma=(QJu7kq33o|AQl*n?r?*|1P(etw>xu^|L z!Y78u#W0=ho@D%{rP(H>Qpa2jd3M%r)VD7zzOP7uM1KTQCFEWt3lGso6D>50uh zZza}p#$c+Un%x^CI2JC?IqXwEiAOV9(~9>XqkF#Dl&_oHbjRIfzWEhfyyP=cm9bz5 z;`|9c*P;CH4Dg2%uP4xa{UaRI_{|B!yleLOe5X4auG~~p9_Q2)7*}KR&|}X&ET=Q? zfrP)Qok{ybCbrdV1OB*@TjF^aQ23yP(S-Q5XU$AJJuD@rsD8LNze7#24tzgsJmKR# zdFU(NeaUn(0s5-QV*gqGuET5uEIw3eo94Tvar|!X>)K~j{4}E?mxH`rA@RJmhON2`73?>c zK&NN;7~lFX90?!e&-~3LvN9U<{BCMP5hIJDMk!iybijZ$9M)`!}4PVXp<2 zKDL%OKwA!Bs$_1t9*4!v;z1;~w7gtF@w8h~snQf&{-dmEBuV&gasHdj{^id6WRD^X zM7<0G`dUAuGct(beMl=CJX<{B55vtJW-;oeTMP@BeqM87{QmHx!nt>r%~q9kHgKEC zi;gBq15hx1B0f$~q9jcmi`H1apOqsL7v3(3>QL0sVwS&S^(TkSmli+fJ7&e!v5#mr zX$W@)=)Ud!qDZy=xF5m-^#s`K9d^jq4AwSia?ORAgC|YLey^9o2K8V4VkmDP&sU~o8_G|+9OSarg{Q1 zRm-})XlZ_aT#=kq=m=$)M88{JEJQcD&?BN#JlhvB=J!o(;16g+Uu7u7Bk+&bbGL_Z zWu^K)+USI5S{4LNg^h{QVC_D0Uj%D&ua`i(rw@&VoRXU@uQg)Wmk&FHziX{>vlwg4(-SXAFEnt6peTJ$=Cf6gq#@XnqLL^4= z4I4Q*+SLNPNf9$n>DvzM?9n2u!9qJNx^)i(O->ZU`9S6XO9yNGg72Hs$t`+K>?R)> z-@HCZqab6QNB`H`U zA(p=Q|FLzJe^JI=x0e)#92mO0hmbDm2I(A-?nb)1hED13?jfWb>1IG_7!UzP5CsqS zeLm+r=f(LCey`Sb?Y-A`Ev9l^;nH7AWO^7Bold4R%;X&1gE%uV8nmo!u%{Dwv}SF$ zBNybX<6zC>N+6qNSe+mm=$)4uLM8!SMHh5Y(dg0mYPi%> zskH`NFlgT#corgt{40RjDIrd-p!EAB-KZ5*8K&&0hQ44wH5(j1Jl^?p^JOKA$McD- zIpL`~uTh4S;z9kqE*DFFLtoBfLw2Z0 z|1uw;LsxDAhNwq~Hg1u~&@=nD`F{|D@=8=~KNLz`o;UKFZqICtxd-^tZ9wd3Rg!{H z8mW}wL-(p#eX$$SHfN8cnY@05O#}LXSyAWbeb12# zvLZO2sA&)+KxIBdP``0PviVTYYyr}Km+;lhsvjbSkjibgBxXJBhTfnsp&=fFc2o*HV_i#dh-Guzcqv&8D#iFgOTXiVA1%BvFtEn6j-~JD zDb`vG?J%7n;Cxjb;lTmP)_f=a`)B*FY@xT%v`L~K;xrTu8JB}%U{ltkj7KzbgMc8d zw7nIDUNk&drQS(@JgG7PnJsBaAbDpKTY-ijfC#t2pn>4_Fatlf{fYb5*5Cit5;>`4 zZW+Pv39Q|ybar23xb{x_r9LV;Mbu<%KnxZ^F+kPsh}Z7VS&RE~OB+h{2FyPI_gO78or_;TFUmpLJKJN1M-%ALMzQ{wL9^l%D6BxYgVe z6`TX4X6>&y*%EU^u@)#IeOtq(z%!*-W0j%7P1vreH&+^GZvoB0^pOyH+2XqYurybb z8dA1cty0ShwAoMS%qHgToh+nCn}YFg_TSv$8B#VFvu1#-jVoeKyi>k24{r*X9S4A{ zf_Ox^h7C&%g={Oz5@hD$u03w*g`2v3>G+Wa(&BKFGNh)f#Yd!X-1u|KD18%1crwVV z!*}$OTFY+yoUd{vo<{uRO422M{Cor5N^az;y4+it^l+m8`k~zV!U^lw6vg*$o$9OB zw@-=hc;*x3_*{+RyPR|AN_wqaL*BmNV7i8mq9-WUE32!F(lso!N^wZ?{jCI7Ne(9y zfQmdzP~}i%j3t{^8P`b04Ja~7?M%AFPChIl&{fX9-s^khTwl=dvd<+^WH7hAb$2|c zI7ZtbM%qp0xY3nSy^gleaQpICa7dd&W<29}MP@+}$-Ma$Dtr;>4JBZTNH;W~%rV4Zm@aM!G%4>+9F*-Gc>{@>+KyKPM0|NNT_p62G6zLWp%zt{e+t}-uIb6*{|FEK89 zFa7Y0D=s{+4RNyxDu?03qCY20IYP>9Xfe$zeww;bq~QIvfawpD)8y0?ocC9oRmZqP z7ahNt!hfXmeIKj^)6}FuS-!nShh2RB+Aqdz^@dgEh@i@`h5K+QYyY_i+oI7Y1$Be! zr-8L{DtEuiI6|rC3wPyv5uhBBG9!c4y@6{EmKEtvuIleYC~=y}-@MPltH%c}pa%nv z8gETArIaH^Mo2{fE3PJ`RWBN*Zsev?D|@<91#se5o-P4n;l_*&pv#o$O7l8V%#jqE zk|FL}^lSsWymKbGO#^W~Y0ZxF>}L-9Sct9>) z^P1PXHiwk{c%?YRh_}i6*du8QlkBe(s(toIO~OrOE~^oAiSb(_VKp;bH{LT5c}6(4 zh)&FAdwc;;n5auYr)8rjSRo*o z)Mf!XP?(9Kj@sQ^C2e|3Dx#~Gn;>j#x+8VoVR6437(-Cz>{iyI6yd$IW`NYcl1ayu zL-7w=3PJpo`1SM6g0wwbGA@AO6d=#zdM9A$u+~E!rGc{{j+W6>UX#v| zKcR}uFc>$3SW^6#msO?xYjJ?(^5?lu)4zgkr0d8Kq`8pgPw;?%1Vz-Yg#4AT2m98y zNVTkGcKKQN3O&AL<9e^>Y-xv1?5a4GLmJ~MbG7WZFA2hEXR&e}R~#k7B-Ww^415CSpNcJNWh#_|DkGv)U{cjk#KRoZ9t}Ue9P@ zb$`f8f`&_sT~5-WC~RDS$@0#bSW)x#!=-xjAfAxa1dZG=6MWpbrha)YQb1R*zP^4; zc%~GW!TrsXc1aPhAr6e4`TPfSj~Vk-8b)KxC^=uW-b~ax-6L!-b;ia6qj+=ur|9yD zo)?vH&NR`BUz?MowWY)1=4yfsT>_QhudgJ|51?Gl4Le>W`eZm`-;KeK2plmi?)JG1oeAxcu~RUSDrOF0?%5%iwRH$@lsY)uj&nSN@kS_laolku|j zNA;UTkdz6ai~#JEk4oaYKckSzqsTw|S!)!cqL(xjqv?@4DjAaz0kWa)c|_esV_Xv8|w`<^T+%=TPDq8ny3!6zIzVRePDlQGsCGKhfLz(9+!&iF%BXf_G)oy&t8D17 zr}diF!%AG$r1uVY%xUk0?kX=;{e{F4xA$jFkzk+_CQU8T43YvVeTf<1zrU`*nKziTMZoqp~Cwf zEx0jy?cQBoYd%Q$dG-t{Kp z9tSIH#=)2tb)_l}(MB~a)N5DZDOka0E$s z6^7g>I<+v%91;WNwicu`rV2S!3q`?xy%^#Lc*mIhNyf)N|0+|&!WTE^tjxkR(zO|!KMCKXd5&q&7ahh`&LF{ zffOhBb-8HPU!=6xN^{@L18&qxQsfUju#|wSZ+cSKXn)clvPRR&OfdKQAoi3aOv)7^ zUacnhuIT(Ew9c>EUt&;X%dy#0oz-Y%BGS-LF9S}na=fyob^HF&PX1H*o7B-U&Imt( zr8;4agf+%-O#q*6eNOHCh!i-F-Q=jMUs}FmhRLHqoXGOw?8}PBgp{BNt|XLb=A#1D zG!tt>Zx{5@J_0MH?3pgP*~M4LW2d~C)K_;0sOT}T7|&2?s9AD+Ravrmj*805+Xe<{ zJuZC*PKkYHgRR6zElGe-)Z~idD#;>>CO!JT@x*vx9<1_wvZdqKbAzcm7M(7Ng)VJAb2Kin%?*$E&*9Q-4DEQlaXZl5BKZ8n~mA*_5#9tj<4PcM8N z7^5p;jokqd(C8&J%Jhv{_bx_$O1*LDje>P9e9Cog%xaG1zZ&9hLi?g2J7xJ-dn)Ly zcE7sbbN>j;fU=YIJf@IHy1b?U=c57xEH)AyzIv8_8{Sa+c5x}KxLcd^plI{O)eZU2 z&89=gQ2)vKfD6$U5BzrMVVBLt*Q#gk`T6VJ{CFyXUi7eM2i4W=Wfl_Gs8WpPKrA3K zX<&S|WiybmVd{Em_)n~V(;byrz1x;YU%65xs$DE_3#Q;LS4)esvi1_I89W*QD zU?sOUr8Bz8VKL|C?6NJK^TR2hvs8# za~WuC;2~&DYXjPAB|4Q|3UiArkNKu(Fc`X{0{@xB^y$YsYPyYkrgF_ZwhV;2 zr5VyEca-IwDY1R97xvW!D5QCrdhHlT;|Z}toqz-sHw37YU5O?iC`a}$$7fR+JK{xG zdFNi-A<}4ik*h#l@2RPghl)pbStDf7zcGN}ORfaX@ zANu<1tPLZg6jB|5@$HDPRdKyg_PEX|dPPLI$wyue-WXka7mOkoOOH+>vDnSGp2dzb z&H@i-X+AT(^rM2bCs73v@w-;nf{Uzf1m<~&!zmZ z2U^ptje$EJi?H#FdG6}385?nu~Lxl|kWEwQ1fS`SNLNRbZd-9Dh2)DqBAcp5^8 zYG0(EYJ0FX#nhPCR)y-pu%?Z?ta13(PlJs$Xof8^o2~?aul8naj-5FEZuHKR+q914 zygll|3KlGooB#1Lmr6{~4)#Wojzoy=DB`qG-^D2+m^j@z-DZygs4rpl+*F>LKehb5 zqmSt}_0PMu^v#dIjWECyq$@IDclz?+}ADxg<3t7Nph=T%xL|BRtdIFT2w=7XL(K0$AV-pa5vPOIV_NQ z5-zJn1*rWDN%H)j3z7zy$pb>Zrm=H5t)RB0@ct9{PXDt{*PcGD<83y>)F&nHiJU5V zf*ifhq_mTh298VSzaH&Lt-yX3R>SV1*Z8HYB52`^B?(L0(jkU$Z8E!Z6o9 z)yl_#dQIa>F9iO6Zg8(k`QIbY5QDqde@K$g!%I20j&wt+2kzSNtO4bDq~XLasNO*7 z%zAoWxX{d3jMqPB-wb}acv=hoFj9CN=Ip#Ry^ZIIy1};4nI6bZBUwAEiyM6|DfIS^ z!@oSj4HB$En=#u>b2u(8*POvK(2+EYa$ZVud05Q5N^AXO|a zQ&T9$YEk8-^g$26-#|W$dQT#Tj}6vO=)>{$rD~u;lCnLq{ z0!sQVzGQ6(eU1E5u?x(i2ko-z{1#I_#yOyX>xh_I)QMAEy(QD8ciq%+-z86|rI(XS zJS2iN&5-)lbCSHD9QrIPS2078U4{hKZS7;JY@wNyviA5OCGC&;vDCbc?}3EGzy-@w z3N>k)OLez#qEdv|5CMPB^62g59}&|t)IsXL=9odsz=2vl;EX5fjt<|QI|SHd7nyfg zQ|;H6@kmwrq?*JZtSey(0zAB)Fa4)7*g)tEW85R8#{uIg1Rv?!tYX4O*+BYE4I2Fs zz)wk@b%2j8(t!m?Tgn6!F<~pLEKwFlb@;G{{g{m^2|!I_F3ZJ*lm5ODPlPCwr3sYc zmWLX2$d(u&lfaVLLQmw9D)tWTI1vK(oJ`4hf8`SnR7Ounk9>BFZjEYmb(50QrL&Bq zi5{+Jnyj4Dd^@A`u7y5ZGfhm7=&(JRPQ1wcjvYJXd`97X(qo%;qm2`hN`6yU;RG*=O*5PB1@_>GgJOwaHa1rM!6n}*Hu6~Fu1cH80Dngd@|xBIlo=o$xB znwNt^M#CHm+eg|EPkeoO1Sf$^lsT4z8fruSSY=v(`T(q>1$*m_N>MUZbfyHKG>`oh z&-i=o#Y2ySO^iOK>@E`CN)J)Av~r(5mhzLr81z9+)~=8G>;+nLP16NlKQ5#-;{7yf zSZHMl@uiO&driaOswersh9d7_n{Ug<{%MIM`|12^Z+y;UJo5s-zEODVR^rMgmB)Iu ziaxwYlv0<xMCMx^}@nO!5tGNH3J66CrA#e~7x9=i2gW@V*nA-K}Z zU6+i~P4d}Ft=SfP6Ck0)o3?2?3y*PT*uVTM|5p*|C2RN_MpKzaN{i#C3w_7)PEee2 zu32dXhf0a0_Yxslasd+#p#~gM+AzNa^ZS}H=G+U#l+U+wvgbk)%E2bA^)s0`B4eE* zQ?>keKxweE&$Q1qU1ZVu)%5P*JNNGA_w!VOuE4EZsvj`DXZL?-{O~@c7dmYhXCR28duibNd1b0#kBiwn(b)!B?Ng4l%j~8*fRQi3 z-d*(y;qpe!dG>>ES8Fm%M;gYLNriNTZCm)#=90)j{NPg|9r|UULc7T9jBTlK<@Z-v zGb)2!$iUX(zo%XVfGMk$o9ct}`>N|OV=55&x}x1kK-9hOY7s`8X7X(Xdy}xS3(fG=W$?w& ziR09l?stv0dLvpe9BAdG@`fQLPr?vjjbQ>EVwx9Ca-H3gDii&iphA+aB&jVQpUuxh zewo0Yn0|nxxUjH*WCU;NjEGlmo)@+iX{;b(9$|t?67u)v)T8v{c$nRJ03uRCy-+}i z7euE6uQTb;0ZWm93r2;RG_YgpO*AMit9l3KAq^G{?-{4QGfw>D|2_W_+of^P)PWg3 z=6QCkH%p|Ak7Qe&ys$;kWMju`Tqz6`SwS!MKt4VBk>Df;&v#7^8{!O1*|x+aV3|$- z=J4ok@^Y0*WPCD{GHsnh7#@!0I>=%$E{{o$w9r^VopUtZL7K9_*a?ZZw4_J$m75wC zp(^SOdjpfGaeecN)DAA;|>uhao(8^*&yNvwfKc%zF00@B0-}H&fqG?A{ zZA>nxc37KUBS<3t&LlbYH4xQnMo6J!tk9yh4~$3F&3cexuf7$*zF;1Ew<1V~T9IrR zE9a<7?1JPOGsVNXr6Hy@%ij~4>|qjCp}hxUFH@7SE&n+yIQCIVJV`YPrxAb62J9f> zF@CHJBxF|}x?Q=SFJERCmKFJUnf8w3b1Q(Fou~kX>ZWAsg5Jrpf!%w5Chuv&Ep+wy z;2i5$t=H_Y#iz+{!NvFbfj=lT-u&yh6c6C}j42UB_xkRf@7>4a%#XI0hs;96zIA!v znF<0guYd?)<=>2qj;jed9vA&>uI+>lB(o}qR8g9vE{Y+>G+_wi(QO<#nvGoDCCveQD>*PS2md7)1bId&a*-9jjf{JT6(F! z3Egf064%&`2p^uD-7w(02gHQ4 zFt+Q2gmaOTO{6L@ZcFdZf1RkZ`#iBtZbhSwL7>sP$PV2nb}5vQ#0wWm<}hD^C9cs? zez(wYBsJ^r9rnV=q8C=AZM+J-MqMb$9&q=Vo(H!s6El|ST4Sl!r>6g$)eR?A7+bb1 zk~@x+EiZ%Oe2zwc>fbVN5OOchTxN@nfNtt~))p3$cQYPo)uwiNKdQXFlcQsl&%L!@ z%~+Kvho>lZERC}r8J(lT&624WO>f9Qv+@HAvB(wj@eQRX z8A@tW9sbl_Sz{@CrMty2%36z`>{2c{@tWcMy*f9l&t%dCD z#nlT)EO%8V#8Plok9NXa+zx~vsXo`iBMoD2;|w2jjL^ncmXA(PX;<7qqAXjkB@K6gNt zD1R=6y?lN2t7cH#Guyf>{%WVj;tf0_#oDI*b$|vYqFuT8V?Ta8*TNX_kbKht^o*i4 z*2X=D5z|e1!`bR+6Ibn^RuW0&1=Zb@rC#Xw_39X59EmxX>TbEG0j8L?sV*M8$*-zN z#pw%0$M_wU$f7w+sVx;N+!B41hP9<^SfJgSp{&%&N>ZIn85EPj?O3g?SI8kRwzZnD zMeQVI`HVDAEE}bqwlCM$qdlfcWl|h6?hQuyLkNHm*kDBT-i61N#YhhvdCQ*CtJq|O zWze*F0AOcBY^k;{lTBcx6lLRl4!p;RkQoOx$9G@0Mp00^<`B8iqRAbQL9v ziY4Nz(1Sa1TXnhCzD=Dm)-fK~(0QxKn9qOKFir@`<3(6~3o!}+)t~;n9IN!q&cZm%58iR!$HGIPtM_UV7b{9yk6kXFqZFiI%&UDY!aSQ)FK9M z3iaPcfur(itJ=26Zf3$97@;lt_DGyJA( zLG-XE(%DW`1os+$E|j(13Ek%qY1_eN6aQJP7OwHde34*LI?y^Sp+&Yf3`lvBu@s#Z z8#r9`M(X%LbChS${hUwXD6Wwp%E&{bgR>J7)#Yv_${R{~V7UTr-(F@O4i8M_<}Q$k z?Uf$PYsVIA;^#X;7H*P79~iT(uLP)Y$mc-n;lj~zX}+;=P5~Ti*3!hbdeR67rTo8} zQR9g=^Bggl2I&S@LcH5=-Uvwd<3xz-XcwBpC~7Ep$Qt8JQXso6^Wz=U+m?UA=D*=( zx^u!z*$)ra-J_d~&An^APQjZ`_r*R)DV-4ppf;Icx^5=2P4>Vnn_4@&WJ^QAhN<-P zT1E~VV0qOLyGkcED%o!$Iatz7kareSgH}-mtz;YNh@2om|CZ*}_>f$T}Kw zYkb7rM2Lk!(#mP2Ze4->U9idG{);cojn(b?$hZny?8_8%hqw@A%AaYZDhHSZ|f3)#eP$VOAG=htCO{ymQE;SJVn`&|+z% z7UY$1^@rWMaLST;8?{NqT$pWBhdf34ES&p`#gwTXC7CEEbhRpr$-DEJ#iucCNPVuf z&I_9`CsPzGvsr(Czc?T$=)ZcB{J9+-xI`UvE&TMEwDeO#=gaHJH?*k18Y~*rXdD=9 zJ>~2ie+wlB!z?RRXbwK{hwo56)!Lj8u~bLgvY?ZCPDg;<$9CXwt?bmvq>SICcHxiG z1&R8<)9EkA;Nq?E?u4A}b(Fyc^T!@0eNruc5o3{el#bo#QDM49M3%hcq}3xvR}tE? z_Q%aGGsH$l&CZ5YF`T0bj@XQGS$P-V3BHg$HUsEZ&l_aBpf}L;GP@Bzy)4B!hNg3T z>|PVu=@^xB;nqsNRTcm)(lGhl8+B)3vxb)J>4k|b^3-m@(p#>Ct%?-L=byUEq)R`P zuaJud6+k>7Z$Eurt(PCy)WZJ#0X7Jlb{jX=Jr zgmxjPx$msRQF2H~E?+87yz4;|=NbH7)nRp79Bc8ZNhOOWJFc6{kNyX8Oy4#yGa1|! z6_>$+nvevTYet|<6<>WPffXtrTYMR7)~I)y$hLMtCA`2X))=lIJZjf`f;1T+XR>*5 z-LD&ZF^QDK{ZxH8%raH$*^~qSi%Z>gC2Aq845=1JH5|~kEx5Hpc_Nlh%8l*NyL|IM z0VwW5|5-)%mFBn|3icX^lSKu{GK(DYIH&Br{xfMK)hjGxozd9)XN1%icTg`G+^FG z=~HVi(CgEPcrofJ>T6he)<4o{*U4##pn`TZDIi%<6@n37j~uddS)V=FN)hp+otI|wgZ^h?D#%+5g;B;#f9L$RDKcYk8Qytd`1%r?bcRxajKa#EFgwxH%r>Jr@>4q zc!}MQW2|U~M6-KNCYuL6N`nZyIN+B&35!EW$b{Ly-an@O)z~w{jo{9(3vJ{BOMmYz z@@hkGJWtg-SKcD-vK|q|pax~7c?MJ&jfA7fj@qRvf-%iTc6mZ!F=QecKs0R*q0{SI zG(AHk;jvDz!TbV<;of$_E7EK4L@x-!TZ;RmW|CB46opHiC}u zK}1*YJ;YQS*zSsrn@&@Wud&phKSm zKP%z)w{wbF23fPU`ny&(GKj-xi5>;5=a&DQX>rB)pUH~l?u2TSSTS{q08zbvKR6tG z?9II}ELI#CkK4S`9eDSF1RFAr7VaUQ`$qUX_7{ofssQg}$o1gf{yn2FkvB#YwRoq= zzv1%Ho!Hsqmw=(#9p7)?t-KrCeo5vu zM2W%^f#4PbKW?=YdPlvLl~6vc*wiesf{`jSr4H}PM@@>>p#@XY5ss@jhEN|S1>q~g zT7j8pr23!+QkI13QkvpUgs#Q}wF+cQyb*z(i^ph;!hYB@ z)tZ@ni=iAkTT0^R##Ny^8qu2`Pgxe6=vPcT?(k zJ*+gHBOO`8_k5I{@ykRE{1yWvId2B7bB}X-nt@Q`j`@J+!??!~-e2jIgU2Mg_|B9! z)Od7SLdNJ4D9W_?0RSNZ*h2ir)MXnBk0jcqSyt|e8XW){ zkxR*Y1ipY>aVRb_z0*ROn*Z4xrR)`|uqH;ZNu;|@m`~$&m7g#h2Igmuq(+cqC5|QX z_z)+~@3gf#JLuc2e8sJ0DQPBOcC`Hb>EmgNsME7U8hV z{y5;{O{HHIikwlZzdoiT7Q-hp4t@s^Oq+4JG7Zz*mLXy(kfUX%ZGRD96((5vz#r4^ z=2-%k^wPP`8%1)hW9CXV>NU;o8w~w;sIt+o&XfbMqU~IqEoYf+HA-H}hb3;u;!Xt= zu!~;=QH@fFr%`UQ%?5}l(fd`QKl4>1FG6aj?Z614Lg!lQbN2SG8B(4%=hP^CHh~qn zo}_l$Ne5XY?lkq%UKmDAs1~+j22M6MbwSx%zky@|G%Dz75Iwni988%CXjel8;f$~S zccP~13Hp>DCPG>7QDrUdVDhfB*{>^9c2HRo-B@%Vj>lyX>=u>QzW1I zcLl4lV@65eSyIr|{F#D0dSTQo&MgA-JVsQ_Mt(g>4%1N;kR%NaXu{+ew^)??VDz^M?b%cNLvP1Vo&J-9T3t|lct@HbX7&KGcG*$0aBKqqY1 z`rQ!n2KhnODI2(rhBPe3$cYN1L-3$ZG7H?MwP_TDIB!O5QE z9#U^*7 z<9q@s5h!KMF-#RiFQ%Nzn2R{5Tj$c6jCu5CZBvjOLG;ssrOG*}KeB-|qF(LiFp+-d zWBoe`+wZ~mV(v5}@CqEhh7XO1 zAn$+is1dz_wAKZrIsvX!(X;?d=(>h=R!D0J6A2iENdl9xsL?vVz_?A?NTSzFth%({ zm@(xb%^EwrkU?g;c@U~0LJ$~M-ow)QN+p<4&oH_YPDJB~qV0xCAje*p@niBE#+4ZF z%*xZ60-Kc_YShE)dm@LD@cE)oq%6kX&UKmR4P_<6) zedl3i{n3tA{^*3kR|E~oH+aZzaqfLjoB0q5oroiMQ6Q3be2;<#TjVT_l_Ia-%$TwY zuurMnumXR-K9^a`QdU|GSl&P){~KL7muL&ij6Sn%8VJ!>Z5UB>=87<1ppz@8vntcpQf9Tb;mZYu%lCp-u;np3~Q$5Sv*B& zkaUJOFMfv2i2;8Nt;otVBS}^?DLEOXc%l-vssHFxA1$+Y1|uJPC)i20iQt$f;yJf-0fq{!4jG`Do7A1JlxR*7g)M>5_RW=u&D1I+RTQYpd7<({7Dt z^s+7;mHCG&b+u?_qu=M6Df2ff$IGjnP_8A~083UtMy~R9@2b|2bMH$1`tBYB&Wiyp zzkCre_xk_X3Qaogf(DRLf5yOmm{sAJ+2ir7-+4AxG`pK1wfpKAPBqaH6Og?Wa$P;K zs=6gVfn3F`vaGHG?>qP|%-xgvOx@oZj7fb8zQ=NV72Y10^3~k%f+sQ1gNl_yToO_R zZF<^>f%y)aYUyfjT;!Rs)e4TtjwzHpE^-e^W9MHRynkZno{Q95K;~0%S@f?YmP_-B zju2iPvX_=&8j;`&|L?R{24B(_%R9bJpp3shV&^eJD%f~apk1aF4l02cRV8K3ngZ`i} zV5%CCEV08~?9Eh>;yuoDB_*xY;lc>gUSnR>;ShP5=|+WmNtYtAg#;5!OUmQIHWsvf zd8kPXh7x}@t+vy{TiRoO9~m#DN%`$>$*gzE1`PoJRc;SmdJ^|H>`+Ok;=A?NypFtI z<-UeD#!004uwjp49)z-Pwm_W9Is_8vcFQQ&V8#|(ez)v3-N*|*eIu1;P`I49DgVG{$RI-T-AfkXmFMc1l>QJ~_43;%vnhW>3mm!|7{jv7U7I$ly~(@{UeJ zzOPdUA{y=Dk-cWCD)f#BF@kD--(|Sd*lItd^9O?4v2A-c>T`Qh6ZwVpX+c zZrT%;lJ{Ts7SR=HDjf4T<>qwV&E;c+dGzk>7y_rZvZm<8kjOiCIq0Lp;j6=E#_;x( z&xI{^#c%EEQ$-bRtLb<>*8>ooha&MKHrV>%yh~A_h}^mZKuv3FPmlE^jeq2umS~Ic zegop>vMWm_zDF6k;Uy7WP5f7?vlm@+p1%;YAXf<4R0QhpUHGbD*qObRlqy;EgF1kk zbAy2y8~s!3(O*W@Rl7^nIw7F5aVL-Pq)JfF4=yg#DE{=)_pxIUab@p%@rw;en#xEm zLu4|c_}IZ6`CdQLl@U`6jnJx+FAS;d0#idc`giOC@!oQ~%yIXfUHxAtO7z7D!{0=h zm__RigLV`X*o5%TZDEl%7{4S0k~kP$0}PD(-O$oyIQZCyKD6uE-L>O@EX7G!109|7 zexSxFVCpo>2DKr!`Hq~44*c`X_tEsfu3!*IOYjOhvYcuFb>=R&66?Va&z!AGdw;g@ zb|USPWs54lomZQ+)KjpQyU!5B;7m1FG2@|{V9~c@OmCD8{`{+S4OyvkYj2-4)w~8m zZjY$z{A*5?b$@6_B}|ay2YhnqQx`82$TWA9#d>rl1kDa&h z6~b8qdrH`Nf{C0f>(VYP^LQy)Y}XiF!}I7894c?+KP2X=NcTGl4B{>b0K+^}OnUs* zCD*n(%+4#ef?2evseHrN6+1ZTt+bj766o%iQl39DIMIj)!|Crca{k0OXq8+M9Cr2G ziPtesZ80d45u)BzBYRe_Al!Kol{cG~S7Ntu)Qf}mS6>9~8_L@9el*#k+pR8k{qaqO z*-giI#(s#*w`274b( zaOcpY`+#(MWw;MWF$4T@UglVz?%l$Ow2qMBWxcn+vDus3;za!}azFa#gE87gXBnJPcH1~}QHkTq~ zuSZpS@~+5O#^ljl3oq@x=T`cSDKo|ks8GoC0FI$SvQRW62m#$iAfJimkWGYTf^t1v zujOe;7KNphIx-2W)w^gS?TR*(3|yDb<&*-Nl*rc0eWO0BCTr%IqW(TYz`pH zrBhWLKfV(^loUeAaHF{C#ED9Ct%EXEO|<%xYp$hO6ELpHl1~ZJ{Y13*`e4%`qF6uaRe^-%y0uOB zLj~#D<6n&T5{cG@Dr`_ZCejgpah9lj9m^#S|E2|IJD%~tF28+B1nFZI?I$kyH}}<6 z*g0Eumk|rD9`&-Et3P?Wv7Y1A6eEJwvdTP^kNphgCW7w)g+aJK^kG*vnvp0T+tb?w z)*tP}R37fp)WtT`qf{u!j*0BRIhXG!w0kKkA@Or{(4e4Yl zZSx9_xBz0}YQIE4)H#m+m8vaS5~_Gk9dmeV@`R$qWWRY4jHsXg^)R8p z%7guk+5K0xY*st8h6mnEPW*O!Qh@&6@t;qD8U!?$+VOgmqNWFjw61CN%1F(Fw;Y2J zVYBjqkMWZ({OPTy;P)R|+ljf`63CJk@9qm=3wKYV_3rTwk)Oi&F+h&mBN+N<-1FtP z%Z?F+FDN4LFZFSnzO@O<$twEIXUgYPNP-pvS^@IcX5K47jF{qzP{Pcth@QHz$&3Xv z^XI=vNQHFr%V-coI*YTF&O3qGvI;i2_T-<0!?Y2iGQ}9j%Omy`EXq$-U`Dun@PYv^*@sXOIT~`e9+STEd%}UW|X}k(FuZP#@v61wVBmT0 z5LNoEjTh@Wpl3E4(;eJtt1ex6=T;Di+p^7I*g<=d2bHL8vc!Mm82MtyTIvS?=kVJF ztv(QxWuL!W?%yX<^dI41Tnt-~=!;4$>ejwJU-Etei8n_=1Ad)PBF*?d)Z<08@#D$= zy!b-;|6g9;HYtus9lCJynC<@giNtl_vUq&FDzJxr_o+t5;^T040v{BuWarmZnv;XvX z9w*C7plkcNe${jj?{i#OLh}tyy+}k!S8kTZ1rty zcI^z_udGN&Y|QVG_~vvwYjw#Hbp1=G%lO1<6ehLZqP`M?VVrG4L4a)(VV@}YVW$O$ zEP~FM4>K)Y87$|K1K-^$vCTrUlKp8Scp81wC6<}rclCi+EfG)2GLzth9+diCZ{d>sWMea(F zAite>X?No?0>tb%{6)N`Ikz*(CCdAi#H$p7`N*|TS|&Y zSfw6;!CXU8{`@(44|#b=l&wiFkM$*I?fXi3&rw6l{v6dBRvI7J*LcWQa`Y&q-?eD* z$i*%=dUJ7ejd|t4ScA})?*tXHn2pT7uP~^O`1dQ z)nW(~rB|(#=))suzKDbCcCG?}ZqAX%i^FeePB`(BA)zi9p2Ti(YWGUZThr8ycJWZA zI$@#wai4t%yX453i3_}PqWJEh+n(S>##gPF*W`M*LEGn6G{Ni=zgG|CeiF*j@tIP5 zBmK+7#i>z&`Ij=O?AXUMy5$?;tEk*09Pc+R{)kmeQ5|t<6KDKaDk&iubNdc6DRB4#L!(_%wtgBpSsUw7>kZ*S|kj!A__*g9YH0XZoDm1DQ-E^?gudHm$Ur0~Hn^2ed9 zSHVr~H-Covg&9S+fqANELv)4u-IZ@>|5Tj7?EP@k-nVxU49$LXs()~Jab+a8cYiGJ z)8lW?&AkNqimHLyzGsFSdXR1qrBfQ|Mrjlfq!orn=^h$xT96nz z1nC;OhHe--C8fI?KA-ix@3+?bC!Dj+y3XGF+ShNNWQ{2nc<&#U8+g3ne$L!(Jk*9b zC-5CT4@uKyvr`!c31lN-AT%62R^DtRRshKHk>gG#yE8lX*Z_xhckQNKNu21_s9Xe2%JYHXZe?*9s zT_&l>bd+`+VrxmgE)_f~G+1rdW4kB*G+F?Ub`VL9{`~YU@|~ynar4*To8ws3xi%Hr zTJ4mlY;D^M4UbJ^uJE^K3}i$X9tS8_aIpnZSCmX7O=_Ngto0$Qy);uN@7Ueq|un@X2_AkU!QXdc zb1(%+;?ZO*GpSeucd!zchT|=pj>19*2#|4>woG7VIT3V4zev8bsk^fNRi7`XR6EN#7~CW)!3)#{D1`> zcoVj+Xc(Rfcb3;+ER=dn8;;+@JGt;;);`ZPP13w6c+z3q{X*$PDwr9IavJ|XPX;GB z&mEb3J;$=b5Iu){D*zYsAlMV(8}5A<$etk{;zs(~)X@EMhPhLC%t>2Hh=3xj$cXYp zK1+g0WJp5V!bal|w^z>0%ltd$8Z9r{WJ-d_=%E`k@DcSYhl>_Kc>iGn5#gF0fEm&j zL_#$ra-0EH>V*FV40iCmSNtfakn`<>0xneOfkDmeD7S)fgqSVx;-qSLwiWA==Dl_Q zs#x2EOVqb?0BUg_t3ObY8ek-+k*+AW;+Jw?&7Qt?Oo z_`PNJGL1SNv%-6ME_`lp~ZH!^2vfx9b5K-KbQ^TB=PViT<;=}qvH}=hu ziWm|9OBCTZGeN5gE^9IE|drx{qm60(@wKX>TOR^96;~1AgG^@Suc1Wt)XK z486b>e)LsQ?HtJh6p`mJc{@IU#Lq3$9W^(vlvf^Fm-RG`?i8RoA#B_dXyGJCcB!S9 zJdUu=!6ti}2ShbNHUMlUTnf;Z%I{KJUgGDzKvSwxK3Y@;s9Ef%Cy?N}+EjylTRKf^jRN#>j_8#zH^jTkljN z8cb`@x+>Gw@1Ti+{w~cLXXLBD)$Q!_pEV10%bepk`OoN%kAEUrER4>syWLI~<+*Ds zgmz{b@c&2C{#V>iWU`R}fjfq%Gw+7jN1f}rp;j%ax#`BnsA$u_yN4ieLJVo7mHcA= zuihZ)jydICtFv>u*;wIX2gpD$19XchbGAM3O*Aqj?St^ce@h|8p7uhitcu-qQzH!v z^dNGa5##7X=--di%iaZkt&++)GnD>z30a)nR#QnOSR;k}RFo9)KyXzJFcd-t;~QJuMH5A}(MS~kb}``GQ~K1&VoxBpT>csMZ= zI%|A&o67i#GTIDo2|VBlSq7{`)HK9Wk;;Nd)HYf9y)yti z@}_(IRapS4S)`uEPdobVgStePOUm?&cr2~=Z+;MlT808gr%>ss8HULGFSt4_YUr;45Kq_@dG;91lUb&S zvrySGIwbE{vBl=)Z`V-6-Ks*Ki8?Q@%RSdUxdvd07WEK(T0O4sm(+`vHRNW$?U zNG1D?^u(U#q2_Qg(;I~U<>@%fw&6*s|<#!XM1^9R^N?^QR$51BKk5bKs zG&)8g*q<8V=W@_e-yAcR8nH@Qs|u>f&Nwr}`&4=Sh_?6e;qyh08tr?n8_N#dRp34*7D0ooh03H`P^zN^cR627Xx+Ar<=hsxxI2o#4V*KcW)4l+UV589db6$or zBfhHnWW`~n3%%cK0`vVl&99-An}}ivP7j~Cl4}4Twx}# z=GUr*`7-58g#xa>6aH+(-fW*kiHkAR9TW zT9>L5EHmsIBPDBWjlu`SeKuwbG63ar=u8BCj_>9VgZjz!wN*<9D%xmh$kL{|Tc+Td)+%%JicTmO*-wRG=PiI&|m&h6Y z*H*TIZ(FSW5`Ig(w-yoWr%7UnZ@jz``7u?lPCMplCc>Axu{)-b}^vawC-Ol+9 zHVLq#pXM$0bzoR#{lE3!Ke0sZpz-$8cXKz%3^T-~owN|S%Tc~NvMU!HIc@5MQ_Dzg z+kzM!xaVJ0pI)j?;OBR$|5UqV4{S+$0!eYJppZ>G(1M@DuRgt+~ZJQJ`$xSly+d+>)|Y7QW>sBme!I)6t*GGvg(^$z8N# z4P573I_+_Oiu76`U3cqr66XfT`;V`SNvE4hH5T#27Kb=Z&G_bXN|H_BH#hDcgzk$6WPrT}72ZitT9A2Jy>_ur7ONXrLV=R4ICAsHrb1paX zOXXt=4vl1xL(AEj-_GpuS%=7cM`t8hv+$NkABc$=39}p$57aE;C5rEvQl`v8e!<`h z5Jd25sw%Vaeif@~2`1L-lk*o$aaG`1IT(|$VTE8lQlf?QUE-^nta8wHaO<*?mnGuU z2-3gIKPKw1!8Q@$IFH<2xZH=nL6R$no<%dD&<%v%UL2oBl8-BkD7*7klw^-s2o!7h z>}`O(ly>i;-_HNVJh4~qn?&dmB*=vvS0B@<4e`dJL1hOOc)LDhNUKju)&3ChUf;=r z^La95u^cuaWV*0A1O@QWaY-x<8H113mYQOA=Y`wPE)jSzJ$<-k41<$m79XK(Ly4-X zP-t%-1hn#=r!~rLj>5n^QfA0E#I^U`ntI1So2G9aJn&J6N-lE@1Xd3oSQYtRPt=@P zWK9y3;|5<1-pF;{5|S+#4Qe%+!FsXfCl~bxC%$Csq&_dm#+PZcR@QWWik^Q(?NRHh z^||S}DXS5Uha;FOqr$PydA%F^?yb5%WY9WN_80;PLqdt71#3fI?q&3RKjcavu2?BG z-U4mvSG1V50!Mir@)o$_XZHg!;q=9>xy++LOF?0W&xN#ugHf-UwQR5sj}Bi}Zg5!n z@Cn3@N>m4C0zH_~w9r|C-y< z6waHJdQL3QJ{f!oV|5=&slj=5TwNf)!Z$K$XGb;pd;a!aN=Vs8o^l;d8JF024#8;{ z&Z6+t(Ld$m>HQ1Dx1;lBCVN4D=c>dCID%tmSS}{o(4wIv^~DPtVC~^!($@DFCxl;BRcLDLuom621vxZJ1a-M{HthbPgYTQlJEYFbOn zCvHuLG`|oz*A50m1z_xPnx^M-#j?1n#e;fcAD|W(%YZJ;WxIQ0*A%F8NbP=d>FP{a zuwG9IPln!e?#Ddj(U*Lic_$-rybCsZcAWUww>hC;68J>3&*=~5QuaTeF8&b2XAl`(>&(V^`(Lz3{cs^HA8Cnmh+omP zvDMBjLpOi7HIT~^hm$78F@5?*Y0#SbFkFykq1q~ncR92)vnTcFO^j$VM0qeBMi=x^ zcYRCZ2jIu1Rn7oD)b66ukzSBk`{vv^y_+fO_La%TAGMMN46+=}e-FYSP;~>nSKB%+ zyqRl`+do>l)m`DDfiu!9M5;QztH<|?Z7K^Gvy5Cn)LV+KyBa}DBzP@#?9 z+77}1a0ikwzCxKiB-lU=7WngL&2Hm1_pb_{N9rOZrhfw>5)xEI%JOU^;3nppkx(6= z1SLb3Y=Cc=JDIJHh{|@mclp6@nRdng%^hl+fxOm|E_+iEh|pdc!w&SyiWpRNYh>1o zU`36qXpq2LiDcteH~tJ{SRY-dOEl!#8j9V420{P%&MoeMP0vB&aU8E)A{qC zb^eBHCO$@J_(h5Ty4d@&9XY6 z3V_+Fk0+hOVc$$Lvp@(&gQ+!RnCV^Af=u`aQ;xlS3a(go12cFVLmT5O;#8X>JZC$) z4#*@U0Ie2Z;3tms&+?tvfyzUR;XIWynwRLfQ#%%42^ibw(bMxwUsAEbM@YX3l+UP& zoRZc$1$!j-F>U4yWi?W%#C119Jdew`VyymAQ&^oWz8ihQ{PH<_q+Bl07pG`#GUOpX zZ2!)_NPjhMyu|UKlTES>*m`)ZFOZJ*taFcF1CW#cb)Ee4FftBZ zJ4-gZ?cy~BlHsbMg@1jRf9;YJ>9f!?%#J8-ptR5Pl&LZ9LT4%)`j^L;)c}_5V0xM# zX189?{DqoVTu#s>A)+6s(NxpZQ_y%{HO(FSqS-UmcC)8ksO9f{!GDr5{Lg0!lLGBH z7yBbRtFygsCB5ztCKpLS5B}C25tYJ7o-cCB_NMk_)A9n9WTYGF4$Y(6aqf#Xh@luy z`n|F@AXG8vk}mVJwA}C&7;~>rWh7;QpQWe|?wMHYO#>(%x|4e6-@_};3LPJ#vQ2|W zyWTV^O4wuGRn90cP8ohxOI38X23F!ctb6$U<+A!^s%gBk`K^Ny(E#8>7h!f9_OGmH zul?JYuTp( z!v@eYV6XcHWw4Gn&~s*52(|>F`UFDZBP-SCZ@c$8n({ssp63Qw>}w$tJDuFj{SO!H zY1%YGM2}x>eI*P(?1Ppb*3RFCcguBJ24=i-SbLE7Pr_9+Tl7ICbn>pK}CI>DMvYzcd-x$B)*$7P@DH*CzT-w{ynuF@m(vr{gDHF{9xOkT9Emq4u)J z%Xw35_U~w{G`qu=5MpWM$83UG57F2enzZ)s4i3bgJYk%DBriR zpx-laWR1@073~;n^f3RMXiDBNw*Vkq6X&qhhOLhv?Mz1Xi1;axaKB>`aV+o>bVEO3 zhiTw2x*{1Kp$vlEZ1?zkMGP*#J+(Lfws&5t$TsZv&maFgE@!X{c4J1^!L98{S&-Xw z7@s>ywk`(1R+6E*|2CRM)!Lf-1g>uJU(ACzzjKlZP@2dPjq3qxRqe700Gr*9BCOsG>t#p!r;%w*7pt+5HA@pUuL z3Z%~dZBQO_{95U>4MaqXqq~Z{TicMCCPZ!pP?51zD!8KF;Kl4o?RaTtRho2K90hOrFrqd1;F20M`;XZ*7BK!ttcUSB%r<8$+DVCM(q za|<0Ge}18RKly0$Cja>YgdB}Ot)G0#*_an=${71|jG-8o-q7%6r)c(kf@$EsYM0K#wKil1SZhJ^w+Mol%}PZ z4BRZAcs=}U>IBzWV1ZrJum5=HB#!Y<>?$q5u2&PTGNc7lT>15@o!n;i*868I&gs8t zFTTmP{paWUjyiO;Tj~u{zZt|P@sK#~Z&m88aK8fjiWipxn-b-ErxGpzQxmk+A4d#I zDbYVsl~aUMmJ4gw>iPcYyuEUX%;HSYFV|dw4t$}2!9M{Pc~w&6 z6wYk!%Z-ngUFDNcUDCX3o6ODP5(g-baKTzF+Z8FHWDqWh|HW-!9>sL7y~_3*6R_n7 zGtIJHo2E|Tm)ppuw|x(c^9I(m;K~PIXj-8oZ7I}r2noc$6jvYNPyGMh0SrWsj)Nzi zN7%{QK6bwox{wGYuJ?8@6-*rneD`_BF>n5FAKiR(c_7aGWkuIYza{0T)l*}#(mxFQ z!g--yk6`wD1$C9QLt2C}1km3e&E7_ozdl8mV+$vCl+a|=WqoDvF8!TO%-03k5K6UG z)w+(6Is?*&Uu-xOkN$|E`$V(mKZ4C43k?=lII=)??kxvO|JpViW?cUulKTEL)Bm3C z55858d{AvhkFpDXV-Y`6V@U{HX3)F^-|s2I7p!Nk+Q)s9)0+fg* zNESk&kp$l(Maql>wW%y*HxpU$B|5_D?(q?6z2F@CL>3r@I%?Xwh(qKhEA6_A8!mE- zKUOMKvuSMCCuH)wtT@N)bpVdk74-O?ngxu8uNo5%YBdch&-0Q}ws`oa4A`wAr#e*jA|D=K_=gRaguYK+k9)@aKydJHFQz z$Z>ZDD%wD<>^_RXXU^4KCtMu}BFNZtm;DUN=et!yAL&Ps7i#8$&_cde@zjmx*=z86 zv?MzNgeM6A^P}cJsZIc{2!KEqAkQF51{GsDZo2hx*aQKfbgmt#4$aIVyiaxhD( z=(lRFWI#xit`LFpcaKVHDsp}}K$hoL#hpKC<=8Ss@>BuRg_FMhn0U#J-ff3AFsLHB zK(bGU8|M64+O@nnS6@-{hhQGzkNpItf8*76ZJ|BZL0Ve?HlnkjOrN7%Y;6nGw_N~I zgc77m_m5S~@2{QiH?@IDBO!fsxFbS}Z`F`vT7<9;g8i_zHlzw`f~fpF(}^yTWRw?1 z95fPHN@XTiP5!E$Zq}v0-|BuR#d3r?uf`R~k=j&MP*TN?T=z1{=Gn?fhxf9KiyYP% zBUE>{1qx~>6x(L78vrW;1lO%wz>p0VaPHNQCs(@!i@)CLtyQp;zWsRn)vQeoP&r9z zU;PpIZ+1q{olT0@2vgX&JWba#3b-J_1huM7yOGK*`dG`Og=-|wUx{|&Q|TG3S9829_5Ll3YpOPo(dHNaNo%$gj?Bwp29V?A*yR`h|0Jk!Z zm8SRCE50$9s81T5EV*%Mayt~W&?4wNd@a}^0`VXn8CF9eb)8tHVy%Bs=viC7p7wOW zLbbqzQrg-TaYcfx@R~~%9#nbnP~mcP0X@8p&Mo7JNHl!*tiSHocvPafXG#0PQj=#z z=c;1GRmlOf!?6>{}|9mK+=cQfN-A+^>8)v*ihh2x5Qsj_iG zFSH`h=6IN_*?bs(#=X6MZ^nc6&Nqj_q`tY)f9t2E!_K{g7X|+D=CSK-K)v5>Uou7% zt4_E~-?9Vz^4R$(J^?{1LjaVH2DB9Q78qDn+JAs8r5Lt9@|M;tyvtGPLAgYwglHNu z;XP!0L}16MFQ#aCs#cIq#s`v7-=^LC!!OCn)KP&t@=a+$iIRmEVOp|7$jNiezyQ!+ z3fX(`SK3w0rU0@|-UVeHFpvFSstH3Nd0;;sfhr+kj4Ybfe^sSsnKQlqia98xxO!Q- z5NP1dhR_f0bSZLQI)(p!Oy9X2PHwp(_EvUU`yM?sy;xn??J)8w+7xKUKMhk?K&tv7 zi=iaKE3X1I;@j9CJj9F@^ogCcE&BVNV-!g^ctH@Bn|#kWpFE~7`AhjGy9rk0z*Wf~ zp}-gtinKL%^fp`O|r!Qah{}~t)bOm zWw9{PNs$WfQ7CRo0O{@*N@mIKm7&e|75S4XnG{d7SNM{-5kRruYahv^gZ)YW!?>A} zE`f%2H&E=_(dT@pASUYjWHzhk^4VD1Y1=mPY95=`bLieiur&AA2c;o7r6!AiSGYi* zhby3fKbMpkItD-XlQG3hC;!|ir_tCi&NO#lXWyJYrlcD0z0T6K9d`G{p}aB*`0z9< zFj8vs@snlZsDyRS$>DW<+TBM3^%eBt+g%z6WV~hUEZsJ6oaooTT`k?_R5z5}WPAK* zs8Y@@$&;@|bEA^~axInNZPveTQ=Be*E|_eTKY_Q3Fn|Hl8G z!51j%KH@XC{m}DzYkBKM@QvX2@TK1}(?a?DD(im4YLunC4M%YZ@t6!}fKgT%zX>|8 z%iZBQXnevDZjd8cT{n)?>bx)17Ef}9Jx>5(u9*eSy)^iGp|m|AZ(gFei9aHR9KYEWTqFEuFQI6VN_44+?@3_`L4?xwT7M`Kh`jw1IeS#lEMHZUCzD^7kX?K6 z&3AU^qw#ofZA?*K2gcL|NjgnM;>2OIFzTXH^`go-XF4y>*ZSoO?g^#nH=igT5mmH0 zC4O)=jWK&w(lPPvDTj%#P+8@b{{eBcj6wIA<`mZDkbmBZx z?#D$Ll5Z>Q5}LHEOgK8y|7v%xNqU;^)oRin;XUzuiT{L>WqbU)`~8lF2>UsEQp3-l zMM6+ZS?ZcX{SeFge`SqAbJa*D00_M(rwEl{S`G&>=Kn+LyE1^&%tNpfK)=RCGG^s0FIRf6fzUkUAJ#%(8924fE{zABzQ=P|~qVKch$XHLloK^dh0&j>UlH$y_&yuWOd1LU0oN?S)^;97oc(=?oa0wVUna)s3LP=pk7UySs(1 zDN~NW0FnhzQn>?%-!YJ_VTCYP##%8E8Vy9+1(1<+60`Iws8>mR)HRfsQRgQL$Yqiy zw3ZCUo&-vxM6xreFhlF;EGH#Hm}7EwZK1&34{q3MKZtf(!m?)>pOqKmCSb}U5kgDN ziGy0l5Xn=upTOT#PuejP9pRQdU|txjqKb||3bV@vo2q^_DNUumX}0;)DYbTOAw`zZ#& zOeSkp%t|LGt7j62)BL${ecK0>W$dzUV||ID(s#xw#}B{k7LrXPV-vN|V{ zfvm^)0ZqQS-?d^GcP$uN=`H5f_Q9+55KhZbxHZ9=W2(2bZ%We+O991#%-iWdF1Npu zC)PXrbcl2a7xOhB9bvphIU1ppWWoBMKjX>hm(f&*n2Pa9V*R7}BK1x}1mearlH2YK z>^;i>!=|IdIc#|qRfZ{T*vot3!UE>d1b9$0IM-H$`dB*&2Frd2B|Q1m&Oy@QTF%BW zcs!LgNgeIWoNEvEmp!R0_;hwzX+ZqBJ`=J`YEy)?eM-o9qj6d6kx>7;NBun5pG%G* z*KzdK33I+3V9`uX5y@_5p#7um96rd^EZwjrp)K!rd>g*%BDPYVodLxy7I zMhoyCg$F57Vf*Ie2`%Z?(5ozGgH=Y`7ku@!y7w54Zr{oe61WbP#^)eA-_&~*JSNW` zCuFFVJC+cbW?z!2f($ayj)$7~Qm&wM(+mEyR-oKVjvs(#ZM2$CVGl zGj9foEB_$(+4)6j9Tn=?VWS>uMFJS6}!2%ef z$t+g4WoD8VvR(u=rDJ|u#6>V>1KYp17jN6I?Jne=h)_dqRUVGAdd7hs_`S~e*-1hG z_Xqrv+}q2!`LO~eI?*92m@c)e;{njPX8Gs%LWXpg4G^^?c|a^!@lJHQiz!oXF=D0X zr_Q$a=Fk1z`E4GeLq|?~tt+~MVJgO%5bpVrO zMI%1U|08Z5&zhzHs#gErGqh#mdcT6FX8L=>!v-RMbOMqOFRO@M#+I?t&lIlru7d$U z8d`owNBi%4bN@DgrX-}(az`vDXNfx7s5fvJks9gxDur6fnJ z18vQrQm-DEz6Jk>3T=|2o(@ghe%U4l9LWO{p(wTKcyge2r`C&+cd|?QhDP=j7EGbBnc1+(VQ=2;^o-0>d?~6 zA6Aj7R)NaUtU)iY7BUbnFIYNIvRPC}Ta-187i1nUz=ED-pbQg`gml(n&wOzL4?XLTSw{;y}8>h%8W;Ff#rv=F4Xo;jY^f!ndoQ@({E zQ*#;7uU#^&^>^TLoWBX+R{H>DK&%p7bDSI0(EYc%RI><7BGAzWB_ELChBU=F;##st~xG?r5T{>7Q%^F#Yx;Lq1xf02!Mu31OM4|O!NlEe~CPt2@FFY{SP`D5#fzL?D5N9 z-*`AXv-sW)nXEM~cA$}}7PTFFOZ|7d_YP_`7|S&*BuGE4S}XHtgrJO8)&1&FzxL~l zB7O$4otZXgvn zUJjg)bJEp?NJmx`Eb|&#s4~Sm15elxsr?)jc>`%atS2R8$!#%;DfDvCs=M z`so+nU0N+^+aBorS!-}KUGA?k5G^9a3wATqW0yA*SKE5eIS zG8LoGP0PM_!I`W&w<60u_;tH`(ZBoiBz7j}P=^%xQ9scv{M3zXPFL^7Y>T)Z6s5p2 z{RzwMYU<9VAPRHDapjL{y~8p-WE@cG`Z!J9G7GmXzf{P(o%cgJ`@WO zTG&-VggPW!{9hJ8w%^mb{9X5jgc^V4=)VNfVL^Ljl5U3QqyDeBr{q}G!s9gWR?B}W zm(=jWo0B^ZdbpPyj%54FJO6u2!N*^P%OYdclHv_~|GVw>0Q?`_d;~&VHUGNDfIdn4 z*n8rG@nvGmv|&x59Ei0 z#+wsd6S4O@2V<*}nhk>a6_35{A|kD$@U3vw;DLQjc8F;w?G%3WYi>W=D+1jP6-8j; zoc?}dvd+`slpS!f6Bccf1QY*&y|nQGn^P92LiY8H{jk@}*)y6wxDQ`;x88KV-@PiEzF4!8%$xz@ zl^grMmN<`RnIzVbRBXrHotWkM_nxOs)TOQ*AI4qQ1`3H7h?>A9;_~tw8a~2xSD=GA z(K%oXqc$XaQlxM=4=nQETo}}ilCJUFhxa9bZ_@8r-#ZbC9i!2F3LUjAF! zZ8STm1FZ=((13cA|2{pFK1UteWqf)K0eu2(5$&C}nz|6tO-AIn8T%UfyAd(r9!1DR z#G8z~1aNNUSC=H)@bPb-aOV64gNKLjmQ{hCP`2qrv76O4d8}uJBc{`iee@ED;_|%B{tygVF>mmWcXTq}Ps&GEHOt z0xi?5>%q2Z(#83Y0)H>HP)a_HnQvY!za8{C<+=ZDUC=|ISe*otkVj<2bC+D1xZZv^ z+Sp@FyGc#id0+Ttveq5@PtvwcuY59{y4n;v(O;ax*~CKz z%H0ZaN$kqn-pAXE#<6E~0fe1872ILmj@#`xQLK=dkpZR;D29dznwT0e^~Zk!K0Cc?gd zBb=@Acopy`gy8AkZy(CF%GK)y2jH^&Ph7F((Xk~(xa9`-gIRZxoZ|$u?p-I3XbZ$Xsvh?!P z=G;`9@fGu4rx-bOHABHaI+LpBR)mxSpK7DmB5~o-ymX~DEx%WN;V)v7ZxmvlVhz7S$-ix zNo%vuAg67OJlbiE``@6)CE@FdiZV32YG&}mLr)>|i!QLiw&GGw*T9adn9YFM(Yi@tDs?x+?eV}cdS4Ct)I1@ zY{&+?K3~qYc-LOHxJOfbmBjd>QP8?wROP1`m0~{cfQJT=jynrp8gYrh-@rzv*ZAXD z?$E z6^duJ$En`rjY+@Ojp^P6(BUL*o#uJYifPSaeddnuDs3>>b4`uu}r3UFrC1g~YQ7*g74Q_7Zts zT@&&qP^g`Q<-`KY*UobbFmX2J5v=#AY(!s`(c9@w&YiQyjuPhV5|V=)uHa)bHWeMz zXPGaS&pJVHmb~3Ya$~hWR4&%Dxm+yarnQ79-q1<|#+UN~ri+ZsI)ca{@(N?M*mSW} z0wNnjh-nsT=N{aW8OQ;llwDMISzAO$$v-&{PdWUEQMA_4r*Gn753lBrq9rje90Sx#WvU(MxtJV5!I>mqU|#r%4g@`u-0rH+P1wu zE-XteZAO}d?}tLL4u`&?;hB$S+!^Q5`(X`VWEkn1#UEq)UeZH0HcxeAyDF)rupZR0)>vAd$sIYV#^KiMf z0oI6Mhtm8y4En)UwMo%QtW=6SkM~qxeEWg$gmtffQ|e}R@1XFxY_ay8J(pk+dOogv zZE^8PNREcQr8Bb8HZri05n|0YKpcjuaX$Qs8JO2cGD`efM8c~ zI*k6NT0=%o)@5P{3plAajo@dNiwFNwB?bmmy*{8e!tAtzgw9k_<9tEM#d3?~99@#U6*|S?ls-k>` z@E*2HUMftn-wuGN;1yQslz1Yb#uk-Dc3qThqQxi7bb!{^^gynlaw8A4R#FclhKL85 zPkVeC@*kb!ti#~nlQtf(C+qv))2Yoj@RUiQoP54w_Q@Lm5H(+V=p0)2=`rYH(R<^o zBZy5}AxcqJr@6yNMrF;l)s4fTL5V&f`42!(mm~OrnJUM$mf*nZo1GE&ISmp5{X!CR zq!%@*A0KW<>-VfkI@b*4;(F7qWZnLsNl^wiAp8BUle1ukm^U|<=BQ9X1>C3}cpsXR zXWPjchEDIj6>*W%M<1j_KDlx$aT6u>eA=ux zi@?7t=9{tP;#mLeO(D&tT9)@>&x?@7mqKFr)d=_F+?oE}eO9^({atjl3*|ZDAMUP& zSTY9P%~+vkw<9>@rDXDv(F*d_0k?OtNt3af)cKCbowJ5&L3_uxRM6E}dy_muL!g)7 z#_0ZlTzGZ5x5y)W+YWzNM=$>jwT^wZ-?7F>-!qp48T#ot%zAMNb%1O&@Vh{!i7 zT2$TfS_ zf2p`@Wip4AzFxmfkCdVMUrT8DH3m1-STZ`Xxt)%#${B)k8Y7){2NCC#DVe5A=zs`iY;Y0pS-4 zdDsC4FEYywV*}qm_xSxBk+2j8+olEMI(Wdm@wt@&7dI$qtBP5-`>O} zP|=@Gs|KotPU;5{xAreHX**cdgmRf~K$P}oO^Q-Nr$Fa$X1(hxD!+IY3<53NnemnD|Fyxc9!-D(``IlEr15!?c zpd8K0K;{V%JrW-KpY`X>=Nvnm5<5Ij7F0kQYu78@5k@@mjaLqMlp2)P2H&<$NgjC2zevlm3W&I2W}0BrXFOq->sswcdz z4{L;Bu2zKn?6b8hGvvThMuA7uF~LD)fQ@MD`i!a_`>upuN!4 znoOp_M<91oOzdpljh^-Qtt9ZwOc$>~eDHX1ZQKbC{Qdclb8B(I`SvJ?ophqMM0i}h z$HnfJJqR?xP^ zX)C&tCr)A%*qhrHjlQr(>nV-Wl&--w^(U;3>pvdJpWF|7t#-tjC#jcDk5mRq&&%_t7v#LS_r}9L0$lrr z{*UNkxcOOr4m^*TW0IVY{kack3oc;C48R=UV^H(u1q&ee4yGlwoh9G(Pe7M&D{TVh zKr*lUsc!E*>3p7*Y@;t;1B%)&E(Dyy&{xZe87d88&0jTd6X9Y>pmr1vw_##+ z`Y@hu%?Q{rtw&lX#WzkFoKDfHL_OOz4DsIx$@2b9EnSNb_-Q7T>Uz{XFqIX$Wz`I3 z3DJHnU}~W34>xrs+Oexyz@e5eN~JIvu$OZ1T)t^nX9}p>F^rFs}^WQPX_eqD4qOMy>*bbYpU`?l68`lhL+ zayRR38eOZ?j|VUr*wzM+F4mYbn*KSQU7T+wzPP|4Ng^Vav;&`Z6KD8OYZsePfnO+) zoI)hnP4SLW30Hc}B?fG`C@)KlP6f21rr!Fb5#4A-zn{XOx~oi`MZL4Bi7C7BLG+;s zx}d!+N(=Z1)^a4N!%lA-1qBv;%?9M0$aF31zDRk4@tcu2zMF3Slmd;d&;70hWp$61 z|A7M>cVI#9&kTD+$%xT~91y)6kTLtN;;|z#7DWMRH?@GtNZ?VA4umdjVh9liVuhga%dH#I&`srPi ze9#X1?MfXn)L3ktqWS^2D!`r!_>~>el4{;cMFFX7!@z zLY+%UZ=ODs>(M%F%Olj@q}x5oKL{2mXGEQ33 zjPvtA3pkuEdmIs}Yl+c!cBi@UMWRGjk7=VU{d3IeUNrY@Mjjcfi_6-cvJ%CaH zUzkpFekk+r(X?rCZQ_YfTliT@dJjY4 zECw>3WncmB_O#K8=*z~mR(gCYuq*W~B{letX)zvoLOjX-1-03I_~Vlq2V44YCjQ_O$u@g>-85x*XQ_R!k%2)e^%^ zTaLvS;+-FqvTV%=RJ_eIJF`Z=E<%_qY@~C`gasoCOmh^RU;`KNh1~guvlRt>qY^*L zSDF&8c)7%1z5GK5ZxVB@cZAEw@UIw@AEH!N9sWO_&ax}6XlvHpK;!Q2mf-I0!6Cuj zT>`k_yJ)xBEzj=9mJtC_kg*1GN#!B$AO6J{xb?J|? zbySkQzVF_YaPSQF=mNuS%xgTOu|>`rzsE9LvL2f^)V!mo%c2#3@;HGxu-o|HwQv%= zDL!U4+E*?hD6*LGsvdWI?%q21Z{iqL?LX>OP(SI{yK|N9tcwgf|F9P*S^wsWof^HX2(y!ylCQ=fze=dKFgMz?k(164WPPK9^ z+z=~`xg~ts53Xe2o>Pb zIlI~CD@qs8Fp2>rEq>wBU{pn%->$*!kpuDI5qb;Gbc&OjZ)EZb=_9!voE%;F6JMK$ zH0>`!L`_}EK=>epaV?mNLPL?imhc#6r-nX3?hqT?w1nIG%l6s#rohh!9*CXk$@avY zvzlF=plwS$3b-y-LSYQmTF8RUmE53S z+wK-!z&++f&BKh#q)=>E71r_DvdnBs=WQE6yxG~#7qQFYFhWo}&nKr*!D@`3okJ*I z_<6cS%Yq*u53$M~-fU%xDQ5xldK%^^u>MhueA?d*EJDy)W#Y1dK|HD0mO6N%2J|AX zc)O%(S8jBI9$94;x7FDVJDfA%1HLWbaH7bhIfD6qh+>b=@muYt&9SRO%%kvRVK%2N zOc>|XF!YXBxKD77YP0ACLX#uKux+5&o3wSDC*96_Pr3X|Ewo-n64nZ+ULK7F%r3%O zIXlV#^m5Y@qW@4P%SUdryoY2oy;-lHSwO%cnykRsjqorl-4DMp=$ohYv%K>?k6xY$ z5ykept6iY!-M&&-a!lQ(}jfc_}>|qcW)&bN;Q}dcor{`eih~ZR(x}!Ah z4O3|i*c_k6E74PX-oSoKpC$Dfu~h4d;C^^0bbepQRhwf}OK5)Z`Xhcj3YXyL{ZD5y zdsYU>_&ND;GUcN@^Eko08F?+$qa8fCb=oF>Q{}qRRcLzYDGXI6*-N6FWw^bg>pUR# zX4U-i?ZyX^n6kWlzdzz`td)L_?1KcKL&#rPxL@8Q*}YNgx~7R%ieDL`%>M5pZ<53bpKhQkU=1Q zh8+nQwHAXrKk*@S8DyiApByC2LdzwRlTVrqN+hW`2zE;Z-w`{G@^;0J17dVfHKx^!l=ycjBO2*lovs?#05>-d2<8W>L7 z%6xa3&p{pmd^qXpUsM|SZggwOdJ`4M!~1Eh^Vg_E3kufoEeB-9HfO)LWO?iDdxFRt ziEI%263^eZz9AhY74Xw~;HdlHo4OkBYPXP$Eft5~Md%YbX+gz9rxFL`Iig`PX#!c- z6+QE#rk$mOeB!=9**HUIm2O3UEuh0+uG2`$w+xZNlCY0q;pVBRJiF05>&;RJnJE2hrWoOopRAH<*3gLOp-<+SkYNIc#8w0nUou;8I2ppXcy{*nx%a^j z_PjvChjRSJq$ARA2uTpxP-!Rj;I+VV#xz#wcQ0{6FK21gvI-eq1Y4sud!5fIA%-5h z?G-+Kv}uWq$D+<<`7+m7I<-oL+{Uwg_x^$2pYO*ZoZqk6z`Mt(aQX}B>=v{(W%#7; zrQ2)6`|fGV=C6KCxt@uyP#gL$sIEAy_9foRwF zodkfeO|Z>DcrnUpk&YnKLVipWcxsf!%o!I&1?B-0jvD1+d7*Lsu0fwhM<>lH_%WJc zwwdaY^#BkX8bR`7zg1p!>NBbsViKpgHq$AnbT+~xgT1-=K5bU!U!sXG^ZVrA%hM!V zp2yBi+G5M;sWnu{-sf}~Qr1WBv&&n-m_8YP4uG4azz=3CO#3!#Uj3br1N3xBOV+IH z^mHX6QfAgB_19t|sf5trfmE;wSmt%Qdj5s&4fG1M4-B?ixy#vkeIowt@_gx8(qMQC z;+&N*hVf{68}}wR|7TiZ?i|+iKh#J)?7H1PHXWQpv+$p4ukbe$A_!<7EkUi~f zx-t5tF{DIt(z?7mP6ILQZDM0-u(>tHhpZhh8n0BP3p;9S)g*%d9t?2=)z}*q8{)p(W#r(j;27kS z0OV%+!*$(gk>+ERVO4&n+A7psYhJAlxK9h`#;<5`9Ubx#qAt&FBXB?J!9()dSCkQS zY*7Oks14F+Lz^D<9CKvNsqCUi)W`J;bA^8me95GO=z~?6qNlX#S==H-I#=J1+LV{8 z4NeRN{0{j|a6UZduEQ>UHbc=a9oA4Fhy|(NmZP|*lKFS24Jr|OLYRB2IK_&BN-(I8 z!)6rmM2H-~MSO`->a&an;<|tGLcij@f91vTnP$Ng3QM8yKx7a(YCo9`4*=3P#V`^Ysen$w|(BU!Iu>lYPFwIc~wz zv@3on5?HjB2J^ACZS#$c6sz6Fdnp`1ayYTij)Fwk=)Bu49rKlhAD6MW;yE$50{noF zTE=^4&8&3;WW&EM@8q`_oNdgsENfzsD3!gf)5~bv z=c@iRX~izjUV;qN#rbzeGeb19IG!_enSQ?B`dh`c;4Xgo6TYBi#@@NGzbui=h@{J7 zLM!zF)M>Sg6gX*AwG$%YrxqmRN1p;TIx-|tuckPve)_@fSpl-5LeYm^A+A#SE#G+3%B#P7}`RppLi+5h{nP18^o&Md=l~2K0Xk;tpJha~Q z0wLC*M)w_5c61!d1&Tnl{wClD+e04p4Z3(ENRfq-8dZOSnwtr3tq z-k|$YR}uxq3y?;fkOnXSsIA@sIzgrf2!2~Q71NJKRNhE~y)Qf%$Q}n^EH9pcQ#-Bo zucY}ug+pma4=#X2c5}NZ-;{i1tjatn8LZ|8R_S&Gp)!=5OeZHc$i&7LrcoLlZ(>a8 zeVA)NGO{f{yU@f5>Swid(q&k8gVUPY*2$!&&IH20>4rEAo_dgXh@K$jBE~%&I$dH4 zyG$KKJilF7Y|b#nBHQ4VJrs~*Jhe`u3JAZfD|A|Z(WS^~*>VTPQTSY^4j%SRhWDaX zS7=io^`La4S=&u(*EAz@u>madF_r8-$%|1E$vDSDfqu7O=RjPN``lM-Tdq9wBdveV zicO{J=po9C#Jpex20;yTrW--5+z_7O8D&Wt)BjwBD~)n}lu}MHGBII!B9P%+1!Kg1 z;q`3vDT}kV?c(tDncRF$RL^<$JM|a#OKGxt3oZuIQ2q*T9j<55S8~6F1jeGj>3!1T z%9G;($P9$p)1AlDZ){A)MwFRV|Q~OCO6&l(19{-{otKYJ!ui zzd{VU!%p@HWv5RHWynlWeTN@stGbH^r15<@{D*m|3>O<|muii<4vs%YkHblY-mCTS zjB`c}SbnzGs?HjeoRA_}wDGGOc)c+h^CUfinB`n-jHXNCii%V+Aa*<~TG~le(20qF z}V7`Yu zyp7*|-weI~wWSU&zbaoLys;ySXm<;D!_YAclYH~uADKTJv?a_9Y&7U^&*}N)pIl&fWKr@5M92I%lV{aBF!IP3Ap zH)=Q-evZXlB7;`J%pG87JZg_5sMz`qWilotOjI;(^}WK?I8@5fUZo=J+8c*6&t5Mf z`PXvifMFGht*YFoqU{KN0!#9o`35Uo;*c7|C&7C$qGP59(p3@ z%0mqwbtzMdJJQRNrmt$F`M>6b3Y%IT#GHnc*(>-i;Q+RNB-%eUeHt-S{0wYI2L9#( zP&5IV7Z>vw2!*!cec@W!r#Z5^l8flgmAQ50yx3AEukzw zc)-5c)RB5uBL-wR=FJm~K3?>W9FtF`ApG*8$YO%o1l2WOngy%>VXCk*H`bbK%KA%m zn!vz+f4=Y5a2D4W;f)J`E3<>{q-sxE-H}yjdKUX}ApPvuT_7^!;?N;aAo9L{eoGhb zcCXGm>c{HYeJg_b>0)t;)vLhf-F$>!+52PN(tU)(T{NH-J5oi5hE=;~ z(}H7%^pCf3jye$c>F+g{%!oLZt&ZS+eK(gFh^hFzQ*<r0JeX6})2&gaVd+u^d5F9Bhi_se`?TMWZ<$LWIV|E#V(W;F_*Rq7p zOB06&aR~GuXE4_hu`5vrL_0vKgNLK0VQWrFxnW10T^dzR_?IjuHm+Z60GiV6_J97 zh+Id$qK`Yn?8P3~C$t-RF{(QflClz_#t%7SST=5FNh%gV@{?fKY``tiW}gVqXrng* zi-P{r&W>Et)DMi#h6>7$=6;we+tA)C#x#Npr7xg_vhxCwOJA+%>#zN{xN_tgMI-TnR4 zyFQgoku!XHV`sIoC*N_{vDjv0_+&K+@(@eQ%XceI)e3F^u`p$}#j1#^+0k z@3DJ|yN-K*xT8BrnoOOS@#dtloLeqNvw0nkwE2*8+1%g%%$a;B!I8j40{Vr1LU@%X z8gAj$qzg7RHm2}Bz)}WsDi=YN1#u>7WVHMZ|5h9?I||}$p6=y{>(+X;5Ol}xF+hJm zGBPAZ=Onc7omx|+dySO5vmr@>wo0~nmQ~X&3sI)_chJlDK|0}Yuy!bPz{T>6g8wG3o%ELLr9TJ@u%`?7)#l$Zl~*#+dPvPVi9xR zU>DufDxcoF4CpRQS34xrSBlLP!J6Ki$PySf9<=j1iHJ=7;W%SD_^X|Aju^2N;n=af zxbfdg*jDw2ww;pC9jMI-5GLKJsD=o(@4ebgmrMyKqFE*Q@|R*UnsfoJ8UpxqIkF72 z6?m#Q0b~E3CQbSI5k#d56;5t*r4k0A#}JXAl(KXxTmm=gG&N>MjuXlPmW|abxt^^W zhN=9zVp8!r1bGmwBP<}q0en{CG3mUfc?>Zh0F2_TkA$AB_3@brACVLQ{(`|wr`1cl` zZT1VEUFNk?h2QR4(Y%}IN4|-aN8e_EIs6|frpHMas_F$_{<4gfh(u^iO%@1oPNusj zbqp!zlnY|B)gwVhwlq-j6I~aSG(QlQnpafC{DJH}(AD5v z&R)F+tbR!Ary+gi8FV{FtMkprm(>Y#9Jb|nLKlVbm&k>~ZJUo{O`f&$8D}tnL!u|W z>U8QF_4&HA~9f0&f z^7!|vpBMA@y>tH9!6ziwCYA?2;eIj@?>Hg01xzw}D9q8)*I4vnTe9==6oc0EiEMA| zZ9B?;0_mlL(PyVbTqjQ7G{5!sA40x2>SXekWPG3wf#YRML)nyUf3`OUk(;oHs-|G_ zD00y6*+RX5=*mic08J(xi^8-p_r=_~OK8o4LNT^r?g6rCRBRNqPx4y3*SELe20$sN zVj*cyJL`229Ov|>eCfe_vp-5YJiA!b$1MS z(HdUO`cHTn8VgB@B}xG@EePF=!Gjjl5mC4k2K_hK?BC@%SB4i`*rA$BjWjSNcY3NO ze$XSiR)o3q;dt9o@N(^1s?N>O1{0+(2TCTUKv?{i1Ixn6>@Gds0*V_kQ`mH*Xm9f2 z-D|${Iz?oVCFjN)p8M%fyNy8rF+@xUu`%}b6o)yN`gm7+115}``l>vYmE^Gm zq7|vU>_Fn{sjjy*k-AD_k*c9zfow?_>w zMu@+TmI9B2w+WG|J(ei0k`y1E64zC*5EOL`7JOOaW7%fNw88>Z$~EdcJ;9AM{}5vs zQ&FXweaN~~lbeN559&B{*Au?@OhN7Uw(zs(Zw&)LQ5?XTQvsZCIQJ|*2Upb)_-Z?S%c8KBu)HF(% z4d9CvF&m9Q!v0qlXI3c{SgskuHeT8i5&1JLi>LAMqikuI5SgNs?zY`K1Ld4PM4%4Nq3 zneKn0xr{J9?w=YT`^^em8Ul$cRSslIZVYaXCy}fE%izAG2Ca3V{-Xu`s}(pqv#Xc8 z+tU(LTJAxC?hVb*4hB|pc{R(U{k*8?-;iDvtL%0VdF++qvNr|8{MbK^A49ebedQn1FjvksJHipUrvYOLO+Na z%7<06Qv;^2$TVRf3}r=ovTdq3@or%!)vKL+DtrUD06wErwjWNA$$k#5d_@tH*bemH z&}?zq{bEeeAAsxdM{xw;yd&QlsAPeoH8LUXE9_4OojBDTZUK*@REzzKmRHD-f`1u5 zR~>x;it5waG&iY6C(>Zy6pzBhQdBjC$J>IVAKRO}DUN7<1Uj!ZfjN{O&NW4yx>Sq4 zqO!<%1jh%q)13H;xFs+q8Iai5hyPr)Jht9;TGnIn*1zToKRV4OEl%-uyF4P7$O!LT zSTbC%!;ge1pJZ$r0EJ-zqc(&a=>*h@862NwhR=>9y@n8IdS5qO~wqIUFA)4pe zk?+|@l}LVjV-f|1R$yP9pIN3b>hiUfW!UlInJ}ldaOxsUwqy057Id{(WmvEo?L;pq z5Mjs?EHy5%A7*!w`lRqjQkS@U_wzGZMgNS;+hA|qq)H5nAL{%_Ljplz!|7bN~>kw60gCyI0s0rgZi zOP6ntE|5L^-Fwc&c<|FhSmzYnVROvpkAHC=jum@K$8*AM41>>~>8Z8^QeetJN!S)3 zRUN?+2m}_aA0RAeIc_T<5%Owd0nff@BXb<$Xb|YH187X>QJ=Wm@;wat$j$05SIW7Y z##-^vyKL4Y(_?$Dnor#0P$b;WWZG4hjiv~I#cs#XQ847n8w%x)O&619o&~F;C<0s> zPKX7>m;)!!5#h_3xVUf6T%Cg+{+B_Z?BZ?`g48rwNK zmVrpORmag!wF}6nE=-R|u*QsIld}!Op7PLn^#{W=2NV4*wpixVzArTAcM^M!rUwEy z66JcNmmR9d%?z{g&QXj}RHwxc#6;?_8XVOKG1@X1EASJKkfcTh4t$MrvMq8QnKzqv zHALIi+%?wIW>F#RNP3ros7+Kt;lSEwe5d3D0mpqB|yt5&D(T`(ZV-nI5R{asCIY@rLwFSnQ+^-E5y|^2@0E zri+Ntp3vcZbB3#z(1hT#5?ynq<9y1cYgW+Be<4Hef&U@VX64@G#yDm`QALv|X)%;$ zQ254HoII+z1mHeMFW0ct0lx~!%?4RO;+zIJO4D~eumTDw==-adQJ(z1 z(WM8^d^6IBEH$=rXkHPb2w-`BaC$lamqv3Z+TM7p_G7G@(q2@h&lq9ls!^&cPoQ8l z+an4g9Czr|3qM>k2?Ll2i4&SoBZ4$AQH!15F$0-0zU9=5QJ|BX6VNce!ZJXOfTPiU+<+nu@IF(DYMn2=r zU?W?#32<83WfZDgfmBM2)9`Rv>xo7I;JbfS+PvcXzAf1YxFg5cc`~eY3}LJ$d@iXG zdhL(&Is`UoTEZy1{;B$Tpl<^`7HPYNeeMikRI0tX-vUvepeWQl!s>`JnHPb_O>WnY zfH=zNs4eLOeCU3T=M*l=xdkfX{ zHL;+(ctH~0y5UD5pc{1gJ33c7oECgPYer46ioJrMr-_PYu=m{xIOPjLLg>tl&SuKIbF=Cyn=ZV=?>%ntk=Ko9IZ0kM3+y> z{^s&Agrt>=z9~i}TJu#^>*oyB7#5p+@A5UP(Q4cZ$;?vn!+@-TT7nt;c*0c0PO(w# z+Bo)4_dzj#tF)H(L96NakDLx3>tCF06Sq}i-jCR%kj!|Dcy&eXkl&OD=l}$9!1Q>r zTqO68>V|0@fj8PpFN%b;CHBUM1zM^MfEWOjtKu@DKIRfUxK-bledv=09LOc4j&ulFE1NnjPW;i&5m@P(9TH=ACu@f$M4!Ptp6*v<5%ZtY21E0Ak`- z3nK2pZBKqan?eravxCxohoUxyQENnvFR|A%we`-IisCGW06TraZ@3Ip6=^p`q#9$3 zy5#p;fy-Zcm>qNSUg^wF=EHiXD!oh6fBF#_75dS-t&gg8^EyTqpmZ$_@-WswraIQsAOYMit|zB7qfSu2yL>9dMTNq<0D)Gse*Vc_05v^pmNs z%7`;XDsB|@8G01qpir&^wN3XxjJ$+uWFm+7JbmN&fs09|TdlIx$AKSvd4qm1ri)UP zbyfUfzzj!`(3?`R9lU}%_aW6Gay?g5tFqa(sYHm!nq79E^hAP#YvK?#9rW~-`QaLT z!fyKvJV8I=$>a1%xVUC!5PD=&*Kj_hwG?*qdKhOrFc<~e#P787?smYIc%WrLBgRo% zi0t(u@@tx&q=XYup7qHt5mpYzg3E0=vG|9JdeUu>`{K<0youM#MP);a;4tjqKPu=1 z!0#l5D%{wxP+8bN{(ap41@BnkvMYldpGctOh>op#Pfnv&`O%_Uae=R5nz=bh#~>|9cPAhgWT;nHGwn1QIe6YeRR+Unq&GqtO}6 zzVEM=OiteBY$VxP_295KimS*v9CKNbLRl2FL+P}4x1l0Uiq2l876iz`?=b|7$LQa{?; zCv$iFEvjJG(QmYBx3MJ!$FEf*T7|l5KR>hgrU_dwrAsKC=qU_u3x_6VlV0imR}5G} zJvhV(#OfZ9>wvc^b%ef%j(=^p?!>|~#kTkG3TUf4b%@3_rhA(=e4~zzCi+5qBnpo? zv5ik2FFK>^xH-UQ7#Y$kuvQ1{u%@MW%9~l|%M64uYtfp(AnyINB+joN$m4BB|0kG$ zHHcPDi5q0k@e`tHAtnNVIqBW|oFRokr!LYI*oP<8Ftw1?OrEb%VBGqzP-C+U4_n~b zCl7ZX=7AHtK<>-AQN|J(l-CXB+%I-r$Mcmz?L~^&du-lJ-?s)UXuX+=EWXT17-$eC z)Yp7JjQjo{pVai^Um_SKr9Z`7Vp`DIVQhh#IcL;9D#|OJ)vm@`LQx4(t%Iwt1k8VW z*+@9ptj?@H3az%HvG#g-v)K1?J%+qM7`VAy$NFBt^vO~(D`;m0E4{S~RMb_m32Ap6 zN_(izd<+Czgm_!;)9;BcQEn-X3v{j!L{;%}yY%NN#BnWBM8e}~-*-L|;XZWH zth2_jye%K150i;*G!NX*ZTXcFfwvz$P0-X}*8Z5K2Iq1FGf+gXKoY;PPSq<#Z;RJG zdKJ>x*f>P00Vj({!g-1SeH?tnG3cCR`kAxIt?9Pz3-*u$#_uHa6R1KdGUP*6+Kvc8dALm_Kummv9h)jl9H1yq^ES6AL28gl|GX2Ht@ffQ+&w3m>0|9GlGRRy? zpDrH-AF|W}Qkkaa>%jq(=e13s)D_<}R9bIj6_EV<3V7zZIsXZ7;^Ee%KF%3wWg-+# z3)akCm;oAhsK0JgKsd8{O!TmE>O^c2`43EwnwqiO5cR4982p=_EHwcfurR)RrpR7FD;x^8rY^_X~h_Q6*!)rvoicIs4CE+QklvN&M$0b(#AW8hZ_tIh+3;^OOU$(saFSl!ZCha0oKLvUMK|NL@u^BY%k zMzeGVEV)d~V28!6p9|Z;K1whiNvjhL4y{|ecj0U?)(_c2Aq#D;_QX#K9hVR^IzIA6 zBse3>?{B?Eh44{WF#32`c(pM?fnr>TOmRl%*KqDHjYPC0tBR^pF5`GU z>K|j=dC>%~v^ihgeU6`M?Zz`fDa%0GN1;gQY9exR;z1E8QJ=$(_p6bZ=+XA)C5WK` zl}6o$z=Y=yuz%<4`mTXKi!cOoR#maS+{3e{q;g~~WMD9;Zx`DOw}&N)+8yu2yd=e9 z`mq8tf$O%oJuQvn%Imr_FRqp|SRo&JVy5sJSAutn&uy~rSLW`HKAntA5#njjRoq*U zuQ;lKXCRqae2?& zNP}T-Y}Ww$Orzoky88@P@-m->y}q;Ge*S64=S<2}4WHzzVj07+Yin<{`58Dy;8w@-|A!zh`uD~ME5@4j=qQUa$DcbDRo@w`l2tP zKG7Rh1&YBObIRGo1aZ&_OIiV`7)X&cTNnxlh;%_YbvZj}*+CvftyQe6v+UN5cfqEQ zfi1~o7Z&XHJ5JRo?S$^e+~#8;`3{tSk;5~h9AJmUAgA!Ex>zN&Ai3>$z3;DTf>BMFz!hLrbOE7>RCtD>P}3Km#|!j6lj0p z-36e7F_-`u?EI1|f&c{mtlaS8hVmGU7|vXKkPB5L(f!CsZZ^98#O8EZS)kj*M8U+| zsuSIy?!<0QwmtRiP+hQ!NX`K|QGDeh95Gwe2%l~ik3t|@e+-qo_tIjU*tEX4RsFn!4d0=Nl8A`qkb?&k8?z|~F?^+6D1ZsJ z2$Cmae%C%D=t7De?g|N1Q$yXz9`$5%weCW^BMGU}G#OL6Vax;zB^OkjJA4|j*}Y-c zug&{qn5pP3pxYq4JV`t4NL8rhR_GpmwN-LY5T2)g78KYUu z2E`#zdBW`99p^gaLZHU6eW&@gESH6txT%{A?TWa&4?g+wG`41M8h>B~uT26a=izVG zP4z}+*mq4DX}uE<1#*o?QUC$TUqzbYDVgwe}arQc?N#iwQpQVLBXGbzK zRG!OZLE||7zP|4m*o06LhB^1d3uaaU|Cw@+hjrcPoX>}KdsqA)QjAUk1Kp?14#lvM zqg1#lECzy9S(gO)NsUW1IT=O|aZ*or87hm@OiSj#B{Nm8P@@C-mj;bqTxXxlDtMw^}?cG0-x|}6r{z1m83;^;AC3=`h>-hCF`5N)?~{MpGmG= z@{b6CPW~X%x~{ilN)c%G$FZ)Cfy>xiJmK9eGip{71Y%_D^p%%-sR1f3g^jO9`YZfl`lSG`xlEh)Yv=+z z(oDkv z-wmlit$yX;QF{BSTIOviYo3YTPmBPLKY)2sKO}AGWLtjAXEFUa#%A9pd681A6VZbE`l3qZw z<~@r}@^|xsh{?Aco>^##oX$xih7d>&TL-TMxck&R^dLpEDMnuUMe?|%D=k|Iz>w|e z(8p{8DAt$6{k>ck;rcT0WrgM?ak(A&g&!n~hg>!{^^yPaoxj_9Aar`0D-c#IW|ht2 zh>GG-nF#kt!UD`M61Gm8%cE9I{;A{be%_#1EV!X5w_r}fh@#kg zf~*P;zD7)~GO~$jh=f@jT{x4q*&t1wytb3BxSHOIyfm&7YMLQ)%$1w*61t?lO${{o zuTGM5O?T>jf6-yFVv~W$DRUL#GpzQ3I)h*95>8s;Y7~5e`Ybfqk#b|fQIu78)$Qw z!1jv(`$(B+@}cFkJ&KAW*}TDuCF#N3$%=nQA|mIWtU1$1H#u|2c%ew7 zZ`$MkP`NmRtQ3A+8LNC6oSRj2VJ^hw9Hl^(TvEI!J6aGkw*?xml{S$E{ zKOe&!8uh>IxWX7o=A_cvmGwgj4|0tW%1k@WSYv$&5W&X5z(3wOJ8qB}pg9HCGhzLm zd2SU=F*XcTTZq&d?Aqm(tLG&OwIaZ!%+2jgR@z6PaCL#WY%>na9(8x4`_yDN{SYNc zlq!)LPwEz0OS0tA)&HeAmcbgje%!Mn=wr2&WxV*rv9 z;;9lBfJaaBw2e^V)W)xeBv|KM(I6{&m?Smqff0kthwTuywV3%3SH)OmioYCnT(#|E zqO(F2NQ(n1dg_tD65^$Q=1vKBMV9nqw5>UtD!6wZjS#Lmp7AvzKYtGfr*Lx;OI_jS zu*BQ}%B{Goj)-n)PVsl+O-pJ1FhT|KW*)7<5cR+R+iOyuuPmn3d>THMA5R_Ub_2Zr zUJe5*1!EgQe!HV?qZRo6H)#9yTVQ@fE=T*zl4uff$0<{e{!w?V!OdDW)RuqO7Rw2N z5UDyW?yBw>^!A3R&T-bGOq%kN$Sk6zCe#dB#SGMkp2koheD`pssW#;HL6#3q{qh%I z{a@mY(P&jam?#3}PK6BNUvQ!ndRHfB@Fk=#{eq$|KthDQp<*@D6ZnCpiF;c200j8Q ze-uE#QDBR}CV~$y%aS3NOic_RlMrk;nIj@?Ye%S(i_Nc4MA>_Gg3eYo51A>xSFfge zVU%Xhv7}1s>;u`aGVjX6ZXeMrP>s+el)}ieB2Wz}Q5~r=X_`39Y}iQ71CY$}>1Qr2 zxd35SG-pNGzZeq{-9ULrPQdNVQkh^KWAB$=#{ShKCLc|X7I}8AG$TyZRp7f%-7yeZ zXII1*)(6u_j+yR7gb*Uj3EkA3eS=`rYh(d_;XM04K#wsf13dGmD+PicT5;Uo>^h-p zc%Ut`n-3743jeWy?2VP_$|q6iest3>^FrvIew?v7JCd?JjO6?d*yoxn%z-n!*Ybg+kHj2 zJl_$UGMH{)gev#<=jZtO6CHO{ zg?aG|rw)%ab>BH>cVhsu6X~gXG5k1sIlds#a%Zi&Soe?PHr|^q|!n^f&O6_+ANhy@=)tY#5_Y@U=-u!2C8y`Z~X=?vxb7(hP`CyUg$H*{;TqgYkYI&-D1v+81Shyd(BKZi9fDhMC%6aq=D*#yM~^#3znsVO zw&&Sr%{jj%a9=ru35Qlk^QP@GwkfX|ILkGcU~(BFUTpS z`kKEG?Q6H-e({e)DEaAkbieia^f+c>VlJcj{xEK8yEsw<{!F!~MZRXw!1eiGLF_tD zp=b;j4@PUxvs-I37`I~HNRDu1YhvO8uVS+m`N8#udQdVNQ6?8Z5{D%XrmUB#Tfcmw zXr6^$9ovVt94uATE6Bk1Yv%A%x8x)Vc4z%kB1m%S6-eH;<3umkvp=SCJ-y0)ao+vT z#gAOG+wMn(3f7qFhk0(yjzRZNT$&`VxJT2A0qh9QA)f@aA!{jp%Kb6c8zKtpd^6~;DQYR|8#2XcPXU&{vn;J&=hpith z#zEn~dAi!A;);`5`NiKZ(wW*gQrv&^LSdKzvUU9=CD9$Jzjms?8&}$)TJrNcWz3{F z<<4e(E$diQjJ~T+9T}moI)3CI8)x=$3GpZz(lL@$GN2L(>N1*jAOieMH&xQdMIR7| z+fOKiHWX09Lv)w;wX4E*ijE>8-H=g>iumnHXzVA3@!4gqc1PYRsXrhjUNeN6aV&~& zT)0=X-P_$d{r3g&RU0dRfkJX7=UV+c4*ryGtsQUl61ZpoP&Z2|yIFf6!p7SWgA91J z2$kvTO2?}Y+G&udynFAkEFR=WO@5l)YvPyHXGyx#w?O!rTsz3L3SJf+9|b~@koXv! z_`5PBFI8ZW{f*a=cZ(cBf{DTJl9b@82=qcA$ou|6~FIG7fMKVlI91J~iZj{l)4`H^UP?tR70xk!#hXQleh+_ z&+Xm#OPpGE7>UUo>{@PFrMqY36I72`*@KwZaTg5GcptT4 zclG=v&GVrpw$q1iJ>=STK)0zT(Ru*h`Hd?LYagabe^h7J& zyz57fCU{F(e4V8@}sRlhr%>;o(VY$8_bXgqMvE z>)Lmi=s;gC%RwCRv%sxu3rE0!lM;4DBRu`UM68xABVlmb znMvOvAF?XGMaWXut)s6$x!X4<&&Nwpbe-{g&ajji6YLz7Pjvw{@Kv^G`{_!sQw`-1 zAOZXq8V(N}i6JuWpAgZdZEp*Cnud+D^K;n^Pjv8`yR?!Bx?$^8V&{QIn7c*Isfi-u zfyEiPQ!TIeNz&b}Cx*Rk=P6})Nn!zMKdEWd!&oj;{n>E~T+4-bAbRkq;0XjqB{UbF z>Z6I*`{j*Aj}}RApFnfE`f@cl3ms0uQkzYsilKUI8rg2@dG&s+HC{_w`*ojzpG+G_ zHN%LYAqhmoSRz-?KSvZDg+4ddB^(jUSZV!qx8F46WKSwfY84jsx@{P0tv zxY*c^hZEKGOOdd$KXS#!6G8TkAl>~aWCI$KH4CU?F8I8NfQlD}7R7T?w34U#`cE59 zIf-*SSJ4&m?}2&^Y3utd6$t43@Y4yyR2*IubfO98R#yhNv^#kt#Yb}aAje;y1qmen zss!2Mu(RbFjRO!*i`Y^mRwrQ)Uwg7%y=Pyf#bM55U3XJHZ4I11!;rPYPAw(ExG2dDD`#|CPjh0~0qx|K7&y3PrN|6@A8??NcE`;Ujx-b!Ruv;O#id)#YYAl|?FTOgW5aulL>&{n5QrM;rtm)h1VFjh@f@uL)8 z**&CHg(MqPpRHnLXJ-?wQ`M5Yej}rQkKWOS@n|XEL)Zf$R{L=!OqUsPK15jP4EKSJ0NIxU1O%=qn>yhpIxme4D`QBb#agJ zcq;%nbg(&Ih)Szkxea%q_PhrJ`<5?fIB|S7H}ILmgu__e3Pt#oV&}KfOanO`v#=jA zEGhcEXkbJ&<_)H?@1tK_EtoUZ$!7|J_hDhk5SNy!V$sJ-Lrg2xZk zYtrYUMm2|*(OkBM)Gr(BmF%M-TlDLTh{dSafbHYy*j$0WCOsosMMG=x^pBdE3G>-& zOLBSfW?F&U`CC~Wtw^lD8dA%d6Iue;EQ*YiqT*a^w-Tx{Jq1PLtfxScxPv-!$$PPw zRX(VjJy1>Afri5$s_$UBA5J$RHIK|kdK zzJRgi5Fi|2>=N?xmrIOmbrF?PRut`#v``;0ux?U}gwkI87lxDxp$1V^PYPDX zbd*dCksvJcjH+xs7)(yMDPs-!mpnyN5Oe^2oC(@;5B$lhZlCzA6@ z$%ruhuo$`!4Pe7&8gCqVChsJn+IZus=aFJ#(AzTrh$1NEXJs3A=O<9Awz%^BJYtl0 zNw^DJa`-+`2e|o}&eMx|5utl$2Jl>>xrtlQLVz;A>86L6x=WWDBjNDZQt& zsW^uIis$chVmXG>za0y`cXDKAu1fMb+zL+(ZFpSjcu=)=F-PkmHO0iC+EI|^)HdJYm*qM{0 zz7_dX(D!vIan|$;J8D~N>!NJs9`Zo<$QyBFJTP18KF$u_hMCGdH}J!qVU%J{p?h>H z-ZW;(;zTYJY)>ENBBLd-6NUa-BC5(pYQ_xYdnmF0+(khL*u(zY(qJ#^)9P6`{jO=} zLYyk%TuB7<@ZZ++fBlBHqY;q=$gBlvJ)_T^2doU?XB_Kj^p6>GfVZ_jeLbI*S^K~i z${lh2R&o$0+x~mFV8Qz@Wqkqd;zyA=k-1Xn3@x=sG)>rq9m+}c{@BKFiU_{|>Dw6M zQs`_78z&Z5HSREhEZOB$bh7~;=NbrL7D=@L!I1O2sd7g}0i@Fk|&MtJ)i z0xtn4^9Eaa7u@q{7E2~RbZKpmmg);SeWgbB*kL1JB3hGNmZf^hA>0L>%z&AMcRn&2 zKT5D9Pkw%AfYK+faG*W2BnTyqdAa!#2>J|J-J>vl-wiFU#P*D0mD>u^;2TfhU){|v z`1d$E81f#&Ry@x5@G}AdqXvK9NNGqm0@NToTR|Y>j=au`LfAuPkJMNPF8^}C;g_;Q z-;anJXUvOyakkR9CPy49gt|R!A}D_qPYbq#;{u|K%oOSslA~ky$TW5KsbDhy>?UL+jr1$O8C7 zTM0?pyT@wCip)=8lnX))an0NT0!o0N(nIH9`=5iiDHq@^!IFexzh7Ho3}us$z|&FgeIpO>GIBBboDujI6D(-tqR$W7rx}kri%q z;O_vfxJb^TKSw!`?^`6hk$CPj)|6V>y8)crq&kvht-wkm#5bp|8{Op<}^ZaVH$ls^rz6cqJE0>+`nem ztRC$%OO~%>*ryn^UdN#dt@ydTo)2RD@gSk}FOUffMe(|c?4iSFo0RXZAv{QJ*A zkNaRbqa=!tCNW&3{sTf;=o|yGS$E|TIoC|(i9O+}~W#>e7BmfGivVuQ`8I=N(IDs=$4!CVunV4Xf%~i$0PFPwhlh%l--;6;o2U z^s5{zhP8bjOcqx!t1uYTz$2H?&KD#^;Ptx;JgpUaWcB&i7wFvi#Wp#(GADF+ZG`Om zHeTP*bM&DFWmAe9@uK#(fZ`>%A^~>!4R4wFIx8<%u{OjQ;>q4%;GMkz9}Qet!04qdKpN**YVEYnlH_~D8F$C3K@Tj@r@@8;%;U!BBdr2G*k;hQyV;-o5OW# zLxyVxTYnAo1VGp44N-;hXx3FOxLB*vx{+l6*&L8G%tWkMU$NEk1S6Wk4FaYsOzmA( z&P9+Rsavhwp6@*FrO75WyLy;0d{fB;#emN1xJYN;J-+K8qhz}7ZN@Uf*xgN0*BDuu zmEOqiwlO{{53^UJ-%H?egcY zRg%*%v`MLh3HScvk1Wj~)IS`mRy~p1R4N3Xly50^N4s__5kfzt&GpO=U?~VRJ z)g-ITwI@(bz>Hm4TiZTmnaA}3{CG>Vn*Xtgk{9^(I@d8hQTfH+pXL-Q|UmuL2|aiP(luD2f*_=;?O6y+~Eo1Go?1{j#c~0-EQnNd$i$ zH#|b7wZS|KvB0vNaz4@X3JtO{=tfWN9E5YtOTL1RiefE{^IFdrU7|zF{hhp`@hirZ z0O*ii?qUTIA59A(7+E=m^9TWDw@G)h&iGqze*W^NFmDwVX15Hg8fho zQG|bN02wjWos{k(2Z78l=Z&i>r)vh5Uo0>I#c1>-S$AQaU9vN_c9=P5DIVWMt(sj! z<#t167Kkfl-Lwud!6O-SS2#EUS<~_+i!S#-2N-ywJ-?n11ApSDdKl&_tM%y@FD%66Dgt=E2a2Z`t?HwBdyP^2r)KPl(f#V;Vz^8;%D#9)eT=@PlJHh$tZrIJo?WTx7M zqZ%*x$m-oVIK+dU63Ye9x!s&dV9>>^i9M_}@&K;2fE5>;I!Eeh6VuX-ejA7w zj&BjxqNE8Hk`H%H)lguL`8VywOi!+Z>2kUQv%vrW%utz8#bJL)HLQlUNT7(Vj$hIR zehcQ{&(}vhf7@Kys*(;5@*{A16=^yJXY}J@`xba~7Zsv3j6olozXlTbHwrS!b~SDs zWM5c>z#TPI<1gl_K~FI?SEzx9YAPUeStJg}95cboD^Yu%j8co1EZ?g`oavbM2MS}0 z*S7=SGKZ~Y0W|=w^Y}=en3`|%jumI>BWvepn6}zb@vT7olXQ0I>jXogQp${}pLuq} z7~hjIOg4hzZ?l&Ugg+AtiTNP!G7^^|7z6G_Q0g7~G0A>)oYRbQj1{KO5iub)^VvGR zrZ@_}1s_%sP`q;NUaD|933}>f0}Eo=%Q;+2jIxT_cv8qhQRfhaQ>Y`C750yXE&u_^ z0A>9B9a}{!hVp{l7^rYgn<;WHefN?>>-AgLjDi>o>_eJk9qG_~B|if2@P23X6{=!j zLA@uNfl+ENJ0~ydpMr!wlNWB}m+J(>p%;nOAWQDnL%BtIXiqv1P+u=m?z zkq@`ZiB$sZC!N@E$s*?o1|jl`Q0w+lsJpj3<1y1hVM<;GS;^%t#g=qYeb4d?K#5P; zoeW<19>7~9QlY9+pgux22y@xQraD#3)CY9oxCx0f4S97L+QOc_d1Q0UKgDHBx;|@J7sHIl`%NLA22Ed z;NZ4Mi^TP}d(c3>#K@6u!s(RpZ!T>^LJJbGL;{pyOdoTT135Fu8>b}F?Y@nr!lM}g zn%%(Nx_HyckUcB1KpO*VTw@27aY)$?WYO0DiL?cjB{qA+6V7E}ePa{}J@-%GX_{s!4=v9*%{#lO`p8L8Q&j845(<@rx`xj_~#@R>9p)0Wm%}w9m<{J&mn= zEa!1EZs)!jpfTP2jh{uHFgj808&jpluO2;))}@Cq!hSiG?&dIIWDDotvi9*|e+5yb zaI52!1}~TXek2?hyQgbI&2`NJjnrx<7ggP&ve+j9jD&K{Kbbn^%DrT~d$*ugk9{mE zVyGhaxN%c`qkDgh(m@q@2l2U_beJx$w_R=w5M8oM^Y8jpfm+Cu%DpB!{t49safa_5 z#6gFvp{M@~__jB$TnBOa0O7VyP?uQ6L)`^!)ORu1Y#o2&N zHn?%^to5*lwLdoV?e1BD{XV|I&gb>5iTntG@BH`79U&?Q+P|(s%qjnOz~K2%_cdPd zG*^3drt%`j%E{LxhfxZNV}*?Cs1YqVW*~EF446|=ujmqaP1ha*?ONx{iloG;+^kj{ z+kQ2p7jvc_2)07f1NcI=^sAOup_X{k@4#!Ct~Lx2`6r-+k{Y3AH%U2QgxUwsn0a!n zs=$tdnijbP{5NEf99^Er19_*f<-Dsa; zOv1_6P13~Ooe7W$a)HF5kcQ059dZEiJf-s9S%6HAB!EEe+)-!bB-mlBpegAKc7)N- zTLTRY6!+c%jmO~+(OVad4(v`TE&qZNQQfOkL>X9*2=JEf_o-WcS~;nmU}XGJCmJHm z2;|Wr3E3u5(Q>edvJf2x)sz`Bl;1nE*^91WYr%8UerCFKIt#kAz$O`EggOEI0GyEP z;PP7~H3WyOueIx6YN|p%ZD6;W&n0EW2Zx!jf4>?w^d57|3Qg^iZ=y0YL(in>Y7#!? zQqfDTA4xhBUclxCpItfH=v;0gKpSAZATxGHjbTDS3aAUaLUnSvo?kx@3c^&fLR=&* z;#3ZYFnP4<)mNE0SbJvfYj)p?nih#>XoImTZGHZo^yke@zpGucyrC%YduLup8l<8! z*fc}iVr0)@0BcPof}!@my{c_9=%@1|lDP-Q2*N{Piec*EkuR zNoy6MYqn8u-NWKKO&x>8V)Okuvl(Dpx6MVGIAfo>3FdJj$FJa?qBX-!cOND4xxKHa z>z1#;?H`lWv194tT(B0@B1p&!j`G$tyjRXVa*W9q35=8U3lO-v@B`nGQXc<%Q*VHC?fh!DF`-#oI?p!i;2z3j-~tJt1wDB<;sK1 zY#wA?-AFB|skya(H+uol-U0qQ!o8keNF@~q-;B*4e@Xi`& zuAOjSoBUxk7V`*MG8~q?7lsBKI`}6NJW4NTI`)U;N7XL4a$a>km7;UvpXa5R;7ks6 z=Yrg;!4*Ul2Z}grcywoYddwD88Ry3V5Pu0}S4Yu<1@8?Q02E2zrlfERwZxhxww#N( z^VTCq{#bKudR~3zda{Z+@~fIov1OTI!TCOkux#e)h>k|25uuE*YYar#WqdF~TS5!E zY*NPvDZ1feo%v_EIZ`#o-!QdvO_WXQDV@4U#r;MofE<-G8{vSRopoTDu6E#zO$qmi z)ILWho;v)%TsaPO1mEq(1|$O#x8od%y6;EE$DGDY!(AP0mRXY5T3YbrgWwpdD8LjTGO*az{@!eW=>S zE@o^m>o@zwZp#(Miy5Yo?6@xSp{_Q_+PN_Hx`*Q|mGs*r@O8tQzL73A@>_Q%$p_8( zM9bJnj%T8>xcdEzasKaEN4Gq63%jNET3a49%6q0L>n#e%(nYv2NnPes=pRnTjU9)I z$wPB5i~KHkgQnOyi2=WOvX(JZ>B05G{cs;yfQn2>z;=M&r9!_4KW$&40KKe-StQe5 z8!wll5fWy=uh~=biI7XWoqT`Y7adGi;9HLs4CgjGqrNp+4+^|ZD7t>ewb zvs|C({SDNH`TY#DP<6H}9oUxKfw)S~7fzqMUIM5TOLE01TOszkLPuabsAXDE2k#z$ zI$@m42FKs;(w#4jqh(tiVMV|fBs~!JzF#0d(u%=t@P8hpYk6IzJFNV+s_Al+If0vO z2cCqka(MOYd{B;8)Ov>t{1Hs*)<3%EY7U9CAMhZy8dO5CVH(m$M?pqO2epv;ASp89 z7H!GF5i%s-J8XuHsf^=w_m1&W!BrxmAwsJ*tIPVj0B73iXhTFoD`>hRc%Jl2@v0&s z!=FAkViYaeuNf2H1(g!Lf4{k!OfRm^izs&tLE4~RP6x#g>OB+@Jxn$~!6`aGS9leJuW z8Wf1mP`bgOv~nh*FJX#A_j84qrf`w;hfsKUXoArS=^>b|ilCKkdziT6pcwsa`}{Js z=7#8oebD2?ZVak}hxcvn>qPrVH`0D<&b>58v_n z#2?v;JNO=;Tk!Ac(&6RUFT35{Jy!G{lgs*GA%{H~K@?nCezY4-HI9Gs$2O(_N7S>+ zBP_m0N5gdJIiCox79ARl{hoNYl|NTBF2sP-KjuC`PX;;ys#~MG2G3i9VkRK^y}pfGcvp#C=lyTI>XTOZ~Jd}~;&(2A*3xIf&+9&;*CUMpPl_UM5u%WK8u z0UeJ8uk#O_rV(!*5sBj14f`1$l=&K*>An4(-TerThN(B06?gTZioj0($O*^VY{zJ) zZjh-&>_ViCL#qo06$cqZE=NE30%ZSq-nLuE=K4BU1$)^$rrD}19_{#{d!&Dx{Ivp` zMYi{GbdIHp2a(ZnpK!68JMp8{zGhRn{;AhiJEkf=U%$OJB~7D~RKS39?E=adKfk8Y zg$Is*z{Zjf?gux?x~`)Q(0gCt6f-_vrerde_sZC1x^JvcA%M9{CUFe1ASJaSfg|iUz3X%gf4Gy(NTb#78#`TS3nC#w{}R5+{~IsOxw7 z5q4j}WPtbfrX+b!eeITeIhp?mmx>|*w*=!QcLKU5y4k*oPs+IC^ohFr`t)9hm~ju- z7h%7NC`7#znu9nxUdGa`OsSu7m}oL3s1qS8`QwUY?fNPTC(9T_dmw*4bEyMaej1`A0co zaxnIYzcGvX!2D$XKUxO=DU~W)ZCAp`WhbmsjSR6uFW?4K0ySA57q;1{iiHG(I;ocx zJ6-{3)1>Qzgw(2nCgG>(DyW#e6NHW%W3v{J87#)*U9}roJm<`SVBVqbd0eWk`*Gb? z!@bhldEO{D49jIDKEW0Ci3f;hz*`&oCLvwA-pIYz-b+wP)n30g)Db)K1F6}Ypw({} zo|U^k5Sd-s(Kr@Kr!@2KqyAke`6%A!*JC@8<9;~WV(s?=KxxQ2(KnLq*oMd7S1HoZ ze{kpyN(+w5znD|74bwK-$oToQXZxIwQ5a*_yCXyJXlCpOp_7M%2*7jMyuH`h2G)8B zZ+`mo-z^Yji8cmNM_{Tx^s9iB0;D6j{dOk0ip)#*L}M)2S~{>GVNClaeD;2 zRbVJn`#MWUu6XkN4~ZqzbyN};Ao7;XW4YAM7e63yM>G=4t-lXyHlmj4?uAoJzLD$n zft4*CXCfs&)t+yW^(;*(S zh0!UbBMx`m0@x@IS$uwA3u-_)`ZtWJmYf$#t3fmKLk!(nJbjRHh*V3?uY0BX9T0s! zOG{3cyOhs9;35x8FYM1-_Jv$FPczyBr%LFY+BG`0MuS7($^)WC7W$*`we4PYJj`uE>JIl{xZ@s-)O)vDg8ue}D-~a50zOKjT2BJ-#ZQ zK^tUFb!xsQnzMi&k?yWVPCDP4JN&6Mo~)|VV(bP}6x^Q zckh#?ABhT}C}5ttcvK+Zm*EZitaOp=S~rn0fHYiOj5d!@#gCk-868ovKjn!v?R~%X zZ0|MM+iWqCfgp2Nz)eX$`#63r*#&4Mi61`HmlI})mAb&*pmF-FSz+#;zu|GXAGP#e zlI4(V^LRX4RAKFDTElZoc|b6_N#r~C6+n0lukq9=6B*wo&{s&_y+S-~UEQpro8Bcw z0|8T#Su$UHM4KTX7oI2}j<=gGx}~!|pDYfN;x~-Dg*TK=j}c~pLY9GiPIUDdDFeXd z8S!vOe|sdVD)%}E3~Jw=0G3EH`}4;;i{^*b7HgD=0tq6H+G~M!0(ULBW~C5;5Zv+1 zvLgiLX!3!G?W!X#ZOx|%=YI@Xrfqd@$Td!wP64KDl8<)CM)MN(bbgZV8@3YfEakfF z<|QtJ|NZ3!Ofnfwq97?(Nwp;wJx#XJ^wus3s0;_WYDt`!k+(PdeiOCT04#)COtExN z?3?fmFBP#>ki=L7*LquQ;rDJJ&qSPhSlsf$C`vynTAOdb)qQ54+QPc}QDSZEC;(rM z&)l-B$g@L_L}?nRrw62tK_!M}xk-Cvv%QssR+Z)^O-m=j1SF^J^e8MdP@2Yqc!wab zL`b2?bRrzG0n;87&T;+h;i9^@+yT1#Ex2W~y^)0vCvu7>GU`f6ya>L`)VqEb9xYD> z6zgEiU2o7Rq(T?5mEM?IN#bZ!byq@`uKdk96m;hJKQ(#-|1^DK$Y?|GBp2iI5G6h6 zOQ*ASynK|BX!@Q<3fInMYkUJ9q3?A-6(W&i8{V{gOUuFL5+Ox|A=t^y-~40B=UbAh z!mcl8?*4r|5n?=hDRlB`rig$Ni?Dz+Q7iqu)!-0Zu|IRD#>PZ>gp!n)heNbKQniVZ zi>lz-RS=tI{h%{ZqmnP^iFiq zs93tff-m?t^WOJhmV!EGdp@79F9KKn@&mv35W)uwtxZY|q}|Owptjc=Q?`B8Ps_mx z4LebxX=ff(>&e~Q0*5r!To*=@_VurUBId0J=xg}w@TJiH+M6lSkf<&L;`_NyNDiHY z@B_+eWl$71uBL)g1IzV#_gkIK9O1B|x179YVtZyWX&*v0dp4$|c*?@K)8u7GqeZc$ zvm0RDPACE>XYhL*I7TF4Q)r_H4K|Dj6cYtPKmOINu*a)NRKSv z%OM}FCUtw>SZr}gnV8{{MaS0fzRjUXsB*1aK*VzHQKD{Tq*vp!w+|XhLo$WvJ(${6 z!&P;(&t7u#;cJw&24j^QPxif@B)y2OMgZVN< zJdejfpqvyyO~Z33(U((+D>!?Nb#DR+EfYirv~W_2_o3xxHOP}%HVp}|9sKDpjNc1A z!YeUNqH^2A8g>MKNXZTE{#EZz5}55B{c5zc5q|Kkss4c6X={y^8Fz8Q9-RT8PyG&S zHSBo8HvXCnfoBZxX=`_=CR>O4lym-($?)Z{pE}Jx$u1zy7E$WB+pDc>G1Z}@!lt$l zT>Lo1W1&Lg;P-$drYiO_N?fIDG4YrRfG{DB0Z{QPlJht)0kqC3f2iWv7*ig=^i!nk zn}FD#olRtHK+nO=TnEyMPZDzEy0kPMRZI@(7)t^7KpDy|=6ltSM-(uW`{#zSASHqE z&p#>JC3V3xkBBvgpBSK}A15Vy3P)MGM+Ad{jI$B83ekomj8bgvjO?tJ1S`)ptr%N1 z7JEn3YliOuj9iA$Ch1w3E7J^BNJDSa+nx&YK@MeZGne#Byh|98?$@ATgSbzp0nCgg zq5>`Asr^;J&mWdmW3}M!p;ftPV9!*8c9SD3tVLPzA^w|=Dx5DDmwR-Jyg|o1K&oG3 zNcZaXpPB5THy9NQdD&4L88@lvdQsEPlErIX&+?whn1P@a0m4p67vqrxMn#P-OW!JL zXo!sSUnn@UigcpOg9A}G0eG^ANRmI(!#|SpZa#cXYJ#F=vK7cn5^Z-^pF9E{P>wm2 zE@sWfFmwCmmhNjig#>I8zGxjGx81uNBeY-`=@Mr`keeR|=^C{*5kq^F%&Mh&DZ~$Z zV#HK%vfIQ1i<9V$v1FX4Ea)MF{DfvMQzc`zBjwlU+Lc7&qjdK4RcyEguV*W4LQukZ z7?1cb_@%be(Z4v`rH;a)%*nLdRby9fG*9>`9|@opn7c)S*Lx6`1DDmk$Bn(d{TGI7 zcIgRm14Dmn&wqeMSC^F2(=$xi31R^>xU5^ug)w{`XkRm@eCGM-A5xK`ZyE0^0qx>@ zyn_0}dzMimqDp*6u3NJTZ&Cl{7VLtF(dYm_76GEqgm%{lk$G@WO;6Qg7H`?yHk?lXiJ%m1pNlXuNn`~8F7xHDgy~YC<6*}e5W*l>y zn$wJvr6E>Fn>*g)esK~K!W00VHAr1%N zBms9HjQfU{KZ27-_*pqPTemI=hWV9~d=XCNl0qCnuFZNtJJP8}(cKypt72?{O2x{N z8{gUOh%@^w+J$hUOG)+A?@&1fj|?JaM$jFX@FwOk_6xfa;-G>xvHvd){9=A*=c@rG&pjAdavY|U>h6%VCr-boh8 zbHr35qF*(@$SKg2WzFE7Kd?;6RH@p(v=Vzd=^3A* z^gGpqzjfO9E8=;}du(@FaO!jO@H(9mQ}hC`oVLAu`TVP0DfNCox#J#yQX2n!VDwCP zCE3z#uWy%MsM=Hlk!r{utHCCu{O8KCVg&TRjopz<@WNDIm3I#P`_7yyj$u!j*`|a? zyL<#mQ4U4^DMO?u1sddisMpw3888vlIHCmern7II2gVA?%_S4l1kMo(P1d4LzFmYx z_i(|f9WVNAmK$T-n<5h^eP15JvKl8%JyaSh9RUT?jJxTT9b@C%nB1*z7mcm0vrgB7 zze%UgeR<=1j>~YB=ZsuzX$7UskrXO!q!}y-YveTT5{(MvmJn<0YSXSTLOBysrF^{C z-oHO!J}R{B`oZI+Up1owy9cPt%qk~Gt6-Y!g?!haXxM$6`Dr`R!QhC?U`!mjWfqOw z&11|+Lv0HJ^s7RTi(hEFa{~(ziMBT$-K}-{rFZOz5O_VMwF>jv$ib3}akgVjN@E-N zTLpCu4c`mptqmmi+OYNVxkWM5WJM;!;_Uxe#Q+4!L3!JL4`MIu_Um$4o#^{`w$rD> zdo0~5i}~dMPvgS6KUUP4H~Vzdwl=1d*QXs1hM&7hlgP~&*W(AqAsxxjn;g#wZJ9Qn ztv)GP9rI9c#HJYwC|;-9kGI^WGC(0uGaKGE_h4KiU1o_5=-J%KD~=9 zgwjih2jO+=|LJX(tnE7|8tq>Jk(nKQNcsTihq9>?51Zea;688+7^@sfat_TcAY(tZIO%F<|VCXx5ipy1F~zC$!Cl$`v1m(Om6me`82a z2L`62!g3xGsu5zRp#LvTz%*th2_L?m0c@yWt1L1KhNh z+n_+@t|mb zCZ|i^qlJjxWi3VLcbqo7x2P$)kuWZk*Vh0i09#Go)68%A7FPqnlsiN+I>KBkH0OqMGsEw&^CIfPah*i*K!y(v(Mc&G~aoa zWd$i?Z=tg!!MVX;3=0-e^lHCBB?m7^l{;VDD|l}0xBxQnQdsA3Bh4+rlzlF(M-_<9 zu9#~rj;5KO=~1W?SVY4eFKaI`^M78h9~`1m1_sC+`yUdu}k?Pz(SB_=I+V5nx*>3L?ras)ss&LC3sBct-0teFA4)jT7L zDeWX!>j0p*5YM^;dyhZO7pT|&tVZ*(>VucAW_VUxahL=HIXFrEeq!da-r4?`9`MJ* zO82*#)n-aLYpY^Q;uH_Kr*X}j+>3IPiUwS|gBdW0wS>Prf1OxQyQI8CF*Ua$Kc_f* z7f(u^UNWxIy75W-=$ec@iA&WAa>N|F%R$P5i4xv%OYe)$nE^NuyiO`AiA3X#f}{q-p=Z8)H}J$S$P6 z>Ga;J{A)bF^s@xd^ zKg-+O%~K^mY7~to-s?pUV_juQA8(AcDb^p!$!2 zQSNn(XzOY!Jb*cFxmoSmfc=^%!&y9gUi5Txgibx#L?YE%$i-;|doKPJxU@SUuWbl^ zz?Z548LAnz31djFpQwJ*y$kqjQwyPV#he2%{)Da21+DWGMwIW(cd77~h#9&{OMLFC zvh@~@FfM_AH{XflcG3urt+u{bB_pc?u(vjf`->y>ZEGNeXF5|RZ6U1NX8mfx^s@VY zwl3ALl_-!eiTX8_B*%KHRm?+WmOE%#hze$y*XfdZct>kzVl=Wt(PiGB{W4`iIzh;{ zuC~KFv>~KXb1{9kfp_HaZ3Y=b-S<5~@fOR31e8Y7ATuAS-pVPszT7W(t<-FbyXAAL zFV8}{d=a3}~DoVZ)NHxS~#X#(n1N$*-SWJMRWkk3{#{I3t_LY z9hjr3x@-KQwmdW)zdeKF57XDeJpnNtx>bYwrm}jB*T;ugTwip_7)NcWYA45g9pt)> z1yWU1Ed2bVe@eKJx>X8>SUZwMhHT%lUyUR}^QdYa@?@t7g^l|{A?Kj5NCWORh$Jm= zo835xoa?!Xl{H@p*ZcVObT-stNnOAl5qP2>1jI_H>6(hd+H{}5(=n7HAqLL9-uVVz z^XYdVmLSPH{#}6EmMTzR3!v*H zmrHBY`ma%eqA&EI(qWHC{@&;@gKPY38Mdq~(@5I);o#S=dI?z9e?d2fsP8YwK$ty` zH`ae>vj4l`cjnUYA7Yqb?=Wwe|i_~dJzG%CH+ zIzBcnR8`d^m(fR`A5LvsnCdoJ6e0tfux`ic@gH|py@BZ{u%=9^!RcV2M59Le^LbIs zhztx@;V8FNUs|H0fdLdw1Rd?>^s!wJXO`!qYsw-JiDY5RmoEO4o_!|9@5*xVyIQOd zY(%AyQy~-~I91j5>kf->25fLlr%_43j)#|Qio1y>F(|>FW(q9#{Cm}tv%N>=Ohu}*O{AO^+i?> zlfr70?Eh;Svr*`2HL1q6jnz&$@Be zgm9hfIsZt{u}?|c$@8wMPWxiM|B31(`2(gbkUfPvr;DZaE_G7VZVMQLwp?Fd*E(eV z8L$JS`1P)njCRLC)#Wt0KADuly11GbIdq?fJn-Lw&L@bp07GGkP+dYJ){#KRQejxQ zjP&sSmj&D20FG*~Wg*7j;lVBK9QeKf5L-Ar(Zh9ChPgQkGevL?m!;3rFYg_LROLTd zxoid_Ca>vTmO5#rDRKnNNE?6YX&6VH zy}^jO4EY;5H|(m>pLUWI3>Gqkv2kv$_e&$M(=Y1Q)d!?yzpn6v73U__L^;>C7&s+I zXC?@`+gwf)q{~IOjTds8JLjmEPWKb?(b=O9)MEG{zDL5O*}{Pqp_wyXLw__Kx-b3% z@Csm>Nq+i7MBR(h7gfOpRhl`%ZPcTJeUAQb%gd>f+Bgs>AX6kM9%naK32wx$)FNXz zwvVn(@n`MXeYeRRPe4*2Fh>;W*|cQ2cpY|57}k$bzfDQeUDH2;#}z-?HK884kT8Zr z9M;2U|Ci)Z>GutRB)Oei!+%rXRlRg}r$t|O`LS}Q5YmyNwMM;AO?U_; zGh-?x#JWTx+QSI(%ysfq02(T69{!bpF|LpG6(?zy(9wQ>*pGRv!4PNFLm>uEL~x|& zUyJ1%s5ySMDGuz1vOu0&!JFlg#|u|D+!_TYO(hH%tx9GLFn?ku2(m0ui?|)^dM)`G zbdgMjC-fhPrvk)-=1JPfpHec=mPe^(L1a#e2DI;&g@uoDg@<4?M?uj{{=M$B5j(+% zky>6-OD8R5@S*GKR5Cd{0ufH-0!}1ylbtWg!BD+Auq59EBtXCBK_K@LSyEUxmb>#8 z7sI^;&IdVh2!v(c#$kAVTTd!SIV{1v1MfeV9M;QYQ+LGm`J(Ju9o@-Sn*YA~tp=SV zuM?7~GX^gz09=6d9-cFYF3-Ya=tp06`#stjZlR8YJgW$~f0vKCr3u1x?K_pFu=Y7n zM{_}^l5*1ToH8zIx^9@M8ZiQdPPZ8QQDBbQ)k`f8mW!Ab9FljaS#;nbl2{Vn*s0YP zC=ZbKlKi_lU7_N9aey@^0QQ;c=L2O-^B4j&`S-`qT1L`?pCa|a;va$fPMnUGj2}%) zP|jxu3-!!L>(hhy_;ARX@LloyuHIjbFa+pGI7rnYID}!D3%OqYSiMD);FJ1V_Ey4V zKkTv4YdRW7{C*@nar`S+j#xo>9!UN6U`_Ct4tf64hhAP`DRt<*jadZjz{Z+#ql=ks zK9#!~kQDxA!T!IIK5t&a2{qz3&f|XSlelbXzHODKAp*mUwe9+O{lb@&&w=Ra^d5#x zJvVfAtjSY`kM=krq zH-k_|p`!YCYNg4s`1U~JQ)h?xy%z6ZKrG@}M{tjt9@&C1=$xSBz{K^HHdRh{hT~RBTuBS4+qumx z5^N|>^>S-|o%)JTU6$n7*_b*zi^EyG8gwmp=G@t2!(T+!Z6|x#em&N7YBrz`uj9(X zrO{+_isPT?G@)1>68vr4#-&&QG32c;qLL;Gd|5~ z8hJFr$yHi*;Ph`xtcZhB%rfnf_2qP{;(Ckf)#q`=NenL0{eJ$UbuEx8f7gXrbnl?J z^Pbw_I1Bh0wE4}{4||bEk$8zRZxR8XnkVDihy>%tI6|<&V^ZmItRa(eM39GA7z=1eupdc zCi2jSdH#_cu01-EM8glWA_@@4d-7^P%>>O#WS(PxiA4B(jN2$fjxT0@-}Y<(h`t1n z?<2o^&mL(r%OLLnz=+9Db`<(|kFcmXH+4Y(zzz8juASYTH9UuEi^nKMV*U7@`kW!8 zn}b-(I*Vh;Cd^aAs|YDmRVO?z&y+iEDN~?B?6s@O6zdz#-3~E@;G%RkSA#M$a!j%2 zC)&(q){r&>Kc<7TpvRGVN#sqoe76(II6iY-E2&Y8aB{BqyT#ZeCb|8y+{ok8KpHMJ znl#r;4%J`B)4U14LLktGjjP&q$vo=M` zyY^C4Ug_vw0nT3or@-j^_Vq}}X>|5pA?nM*WnTfvpAn6IX484&*8g-XqWKD9p5(BB zI+Ut+p0J&7qA??5V+HRu7(}UlBjtSZ9qn}f5Jd$7h%6Mf5!vh{Pf`N zJs<6}2atRAAXw7IZk6Za3m^CeJyULB8S#I&j|~HS+x@tlxXC8=4;AEi^^w_(6}>lyw7Dr zZ7j^l<3Y8S77xlarN#wLJAl%kxt6BxpV_&rkvq)XMy9Orq-bob>QJtn!*cg#L;YlT zl~MNt$kjkb+&R(LTl%oI)ML{5fW2z}5B!p*Eky%{-F#b|!|Fc`c+P=2N?{D7kM{fL z0>^^-h3E_O>b9VDvfu5Is;e-U>2(r;kVcILWsZC{J=)$PTju#do&$-0KJ~2*9Md!X z+#}0+75xJ5ihk~Vn^_W4EFPeD%B#xmZpYJD&R-6-j-oVM|zb%;n}d zE3zgd}>{wmPH9(7h9qqXM<$9b<66;O^syi2G% zr2d;CX3{K-N_c5P*A^@!H$(TG%vqUmhTgQAzfy%~>@Ux6=#~QG87i6l7H6y)@|jUE zjy~|Dpo23i)Vz0j5(>M99(|AcM{w#e5$(Opl3Hb~;m9KmWi{tl&vU(2)h&emM179S9bu10hWw ze~$2bQ;#`Qu(=75yLmS>SCFkUL$iPECLIJ^S=cWOjvv-`Rn>qP>dVz_uD3v1`s}r&X9l% zvhg?bl^q9MMRSsomeTiF8%zR=$E><87Q1@H{6tpMT#L8?|D}{3{~!(V%2&ntYU-s@ z@kN!8sg5lB2IbA=_HpajxNNEL+({LnxQ;PUs1n(KyGuwzR&Zb)bT@syn>hk7^8$H0 zTMKXtnMzRv>Wlfph1yf?Kq5r%$E{CY%SgZ6asrf+jjl1rFsUNyNCKhHsoxZ!N=y!p zj+DiHEa;xv)-lR%Z0A5F#?Rpk9yLKId*+k_#Nr7n7lg`;TK+_nZigGhjiyF3H4B2& zns@mB`LL!}1vg*=;QH7c8pHPZ-DzLn%j1}A&)NYaprZTXv8z_l@H_l(zV#26xql^HjoOp5w$ZD*_w7&tB2p3dVgBwl5porT@SY$4 zxgdqZa*r&@95)3xd!-HJn9*-}9c~FQa~9briLdb}&e4_E<*{}@1>MUOqiI;`(Niqy zEtL|u{d)yJZbCeP^?2u&F>x?o0%QrCERy`Ox1@beBRQ|5bEsH*&>bIJ=s|rTU!rJ( zh$@RP?L@vvnEB$*ic#DKd8?m@%6TaL3v952?yK-Xf&+uN0^9(p)D4C)v&fC9yV0!w z#=R*cjLye0n?k=-H`GOawA|quN9IfTn~<-zpYHaBrX)<29fW9-saUo439ajdy;l5$ zoV<{y_WkVSt-h2AbNuQ!n|;Pwz&-sg@&W}$*73rD>+b+J!9PZ=lxE8}SeR1`ZnClG z^<;MMV0dZ26#5&<&26vxz5=92(Ld(>8(nW6nZYGDVqo+1v1R>O-AD6V;2)OX8Ht5~ zr^(%m(^&q~>R8Lu&4?{G;yR3n8b#8~ReuMUeI%7l1J}|(=OL7(jyaQ7Y_Q%os?kt8 zPn%5>SG1W~iw`W1O_ELm;JLC|Z6g=jJ6$@s{j<>7@Fe2O34}=i{J|^WYxhpFu?6em zx_@?64X+iSNEWOy8PRg&v&`?153t$QnMyp+(GO{;WzqO~Wb+Kc^SFbw;AcezHiAd0 zlT!f3q6VC$;7yyZdS3J-Bu*zGL;O!sA4peXHEM^%Ub}30uJRQQU)-WBu_Gy)Zn^Iu z78;g_=hGfkuP%W7m%k0V4c13$MEu{Sk1`6&M@7>q(-JZc32 zQba0{W|8~c#U;@hjfh){3rj)CC604q2)~Ef45)vl%{?$plfuaMH2UTKNSN`X8fYI^ zd2W7HmDT-u9N1q5t1zd|v`e~B>ySMqy|x3sGh-Zvnoy?z4F4oQrEtJv*vG@eMlUi) zWwY*9enxdF&6>mbZFx=;xPI>n$9*qyh-R5 z2J@Pax+;^`$ATUu2?Xy&luBqeB*3VNl@!EFZJcs3t}zxLHyg=>zZah^cQ~kt1*VR7 z;d;1n1w`Fy^fzRm1oT@C|IPKC-rg=@FR$XF+NkJrQv*Pe0lEQ_&;;~>Z$=fy?=IRh zE#A(!n#H#M*&(n^KhEf~dKC)5B+>-&hH()S-Cg=j1(!oksD;N{S%aGih|nI!XU|i$YNBUR$pnO4 zrNTd&%9*+U3bHvYtF62@7Vhv@Z(1`fo8R+1YJ}Hm4E#rN`o(_Yb=ami=VU|w#zFM8 zHB;_Zu9dg-)^vAri!oq;KzmKCv)L{!8Tgb&q;=-q`6Std_?vg4BG?hb-`Y+bNB3@j z7EWgXM#0Ycln6%;)%d|e*b&}!88_mnY5pyfPTe^CU}};2;|F7gPyQqGnhVL#-o)26 z#A9`SCX$Lt)1qM( zLsNur(!jA!Y5j@bV)gY^ob_HAhET2l@YJc7S!vt522($(#v%j~-cDkP-lfn2x`R%z zd+cc=?-D#Iv{BR}lqHt;>e`Dhct7>$?$O#)5cYZt8h&RCCGDDwZEdPRVpJkN%Z##5 z1yFh65l($28&Q8*2tFZ$Zm_S*7}K;8e{nP@7qbGx7|Fg0d;0nVs%h<&2Fon6$V|J= zzNKO9aNvAnR%tk_>~i$a%&XZV>`zIfFaV0-yy4g(3>oGl`%9rDXCGj*`1&r7;dO(} zinD3o#)pB&ETI2re_>K1j07~zGZq2t1v_Mu%QZdbwRt`3UX~+j$sbBuO<|p_M@oow5U-?MX<+U%T3qZeQWd%yPAE!h{oM>*I)c2ts-+l^$0su>7d>P-B3UaIxOSo zN{@!}XO<@aKHo%%fPX(pmh?yT`^lONqQI?);#!B=B?51L^C}F+y40wi`vMN%#LV*b z_&VJf+T_oRqfji5GsQ6a5j&Yfc0@lK`CR;-{EEP+xv2C{Tzc=5oMNq#`1od|j9htM z^c}U_qKN77BmHjOo?IR^r~sq*@S$lYSsS#rp@i>ILtJ4CFU!lg<+$6NR1ehD^BALh za;7|%L-Knv;o-e3^0%^TeZDr&e6Yb_n5<#!9oL^q`2MArWT6WahTzGxSbBr;Hww5? zOk`d1%cw%J?RZfIV5-CWD(=SY(de_8YplOYK!J=%N=ql^9Z6wl{Y3ysHvI2S4gXpB z#uo^(3_L4}0;oz3piEea4dlpAgmY(9peZMiE9V(vz?GV+?#$$0`p+MuQ2~q|eo@M) zD)8^f)Q05Z`ZVsL!?<)6Msye=Zj0y8kjF2U3Vvm+kup+5`KrGRejmmM9wSktX9<_6 zQ$EV$OZn9pbjxvW11JHtTPbq52D#!WWAB^^#~sqt#i5!h4~sqRvo?2x_Bg?s6uZpT zoRuT<-sg0p(T_@5=pi8LF26(}7h@Pug_RwE5nKtH>^>CEk`gs#Uo7j}qZcG7p)PR2 zis?1xx_70w1jyL%UAn*iHkUc+?$;m`u=I%GZi;>D-xjA@RBy8lx_Dr+Pigs-)Ro%L zJ`FO*hcG3$e3wWa^cXUcSqi~l9==fN`gV%JTtx<+6GN0)9Uzq{UIx?6A> zS1odRZ`gjccVDA$C{TThY581jaU}fQ-sC`3G+^)RI_0?58Y=x&Fha=e(8cQV z;85U6?yJF5)xXStF{8NwGj;Qd)jliah+x89({H7*T|Wrsr@OGmq^Q0Hec~wZNCd7} zlR75|qF}d=^0-p1SBU?^rmOj5XRQWarTN>ZMJ46UbtWL<_KEDg6gBT>uF%V;WKDdO z=ECn@X?!OQ{7x>fqKnOzN+yBHEgH%NzuP@uI+nyI1Dbv*1ut9(94pRe8rWreODA5$ z`el++)@*2}9(>GLyUvpKR>)00o4lL4n4Y`3j58Z4)3ziVRraXZf8|0I!V zAU_b~R$(9HpgjKKMcLV)(J+TehWVfGUTY9vmCc9KI^awdlJDF65dWW%axP*FHk#P? zYYSdGYbw4TbyP}6D4-&l%x-n#6Y*R0PjBwmvS^@%qTnEtub06emx4juvoW6|a)Qnr z9fVn5?`Kd9{`@gzGoYC$!=*0Lt5*8{MS~IT`9l&1!av(*xmpnvqU&DhR%8wJ86v_t zuyg+`iIBOOsRT-MwDDxdi-N44cV<1QPd7j7_0o36G@%V3l~JYT(L^0YB1i!+Z;)xg zxT-U+da5UXfDuuFI?3WSV?LAL6Mp@~P?t_X9Ngrn>A@&;mOjU}7|?zdFYm~XSEK}M zKA`@6c>bol>il)l`;hCZi*RAlP@FcQj!wKJWLq6WIs73@kK2RrlH#=Qr@9UTu7yHT z-f#-DaycNFwQb|DRAPcrHpJh>Gm!aB?>arI$H^+N{0WKS92i0@)xC~&SrLD-6 z99rfOWeAy%zqr{DdJ+SDQkD`ti&QiYUGgU5R7Ed{6;%qdW&IeY>_>q7btfOH8!Qln z>lXEg8YPq7-@;Al(SaDe_2g%_p6l#1~aBJlkxuY~$51Zh}#fga5V zu##hc^HPa^K=_cRskTsOol7%_R}0Aut!eyo`O)&cX3F&wY6YfZPa~Xgd(|KYjir=7Pcu<|6=pg&v(H7^8kmNN~ zZ=J)(mOhyQHj-ch&*tA20n)G8imQ?^Z=*1>-3MnDa9)IUGI5&O!IpGWZk=AM|Bzw%`D|Yt~~KA7|te%VgtR{vcoVXe=Ol`#0dp;*=~D3W`gGHotE0w6D!B5r!V@oe`dJ z#7eU%i+LaAH!P2@u=~sDsXDdCz3MOy2Gy(Ab4)nhPv?w7PN=e^-=pxHY;@HQy`ILl zz1R`!g96pyl!Q+QEvsI&)q%E^Hkn!b{{#m7Zz%^<0Cj5s&ZixovzLs!`_Fefju`HC zc?RIM2GaevD8+`-Q{#PuU%}uujehGf0iIC;LSGEeFgH%N5H_JXKv*}YR0zU{NWCyS ziBh;~*B9kCr~d6YuDuc6Ju4iUnzRwo9?e7;Dj3p);RzGQK<5VL^@n4fOl#{V2A1Rd=2>aRKN0tFezu8Ej7_oD6hkgE?X$2rHKTqGNIGN5_r7&ZfdKRc1^WHd zAS=5MLN2c783Kp^W!Ue@4`qJZlX-};wOhjTRoJi?)kfA^CSUIvH!M;^Qeh?JQwKKX zydm&3&8!tZIlktRj;}JRv-7TRiVQA6O(IF}Y1hYz3R=wWa2^^H!)cgA(Niza`~(Z2 z2%)z&8}a$5Y}xap6p#jehhxf;m$a6wq@)6%xt)GkU?J8xMy%RJAt&`jcKa#gyic!D zPM7T-Zl~mWZZ3AoHQ-Nu*_+v82VV2aaif(0l_cAqIy%PZH92tjZ-W8U%S`1&o%ZYXG-?tf6D z1tI$!RGR4f*~<(Qu4%S6V?XKIAgM->S;!8x-FfV!s%8_jotQM`q^) z3Tq)=?k)z@Ve+5TEPk5 zLfICefawE2sHAJl41aS66oUe}BoiW%GO8qlq?RNBfOr(dZeZ6oB6Ref*C{An6q>F+ zsYJ~CRRkLlrbI&#O{1VO@#|jZW(#gMR=zg;yRZf?T#zw{0w{M$c!`h%&@22AA-F@= zlTS3xB4%GC((f26LA_v>Xzy)|UN2W%Wbf!RUD=(k1U?kGx;D2MB}vahr(it1G|yMu((1yr~3&lNg4b5MNRRPBe%EelEzS_=d$pi%8Jq3 zde$+SthnU_^kI%YA#wS8$`Q2$z;%WJHn-JM|Csc%l$ebhVXyNAP}UK`eQ{MKB_*IA z!NJyiMD*p*4z}$=Mv+_1^ggSrm$D#W-a|s1(2IYRX$V^%kO+>xV!#sm^TcpSKSoa* zdi&B&k!}RgfYD^wcfOo5i4Ij<@V~{+r~pR00!95s8&`%arsWQpM*l3@YgE|gXsb?K zZcr+a4(`i`gl%*f_a|Gl$^cGESM)wLS#Cp#8B({1WyA0jLvygq$YTjiMytqcR0w9sG6q4WGc{0?73*T2z)Kqx|K#avOffnVpgG z2oAG8#oM~_+raMG&jiL$u9k_Go%sus$Wa|)%(wrTdmSgQd4b;q&#ZjtED)P*~Boc86J08XMX-_dLLj|cXLDJPJr`DWy5bTa1Z-{(s^ zeU&Si>Dt{?<;$1+>X%D>;_mCRT%_{HcoX63anVd4Z~dq7HEKVqt>?ptI=+yZhbF$V z+k&d&rDCy!n&PQXXBkE!pXbH$>~keNy-?K;+A)Jw{~a75rTU{W-x%kfbgcf5w&rfP zK3c{w0$M*4VafQ@d9jrulJeFqc2AJRzzOfw@aZ%(FgUjbYUCmsFPfm4qb@d9( z{`(_kOdan@W+~6QMn+P1x?xR^_$8GrFr+Is`^6lr>?ye;%q7TWX}pb=r*45Hg^R@b z@dQ6RESTWeY%xSBx&dGSrM0Osg7^GDZ>FyzKzOH$DRHiAPGiJ~ecMB+=^XH35K3dq zpC%sSJjPy9R$Z_yr#XOB1dODSO$wo7S43EctZaTa3K*mL9uP{MRgwZo5Ks6Sn2GT2 zAw%!@>Nm*OGp=EpG>!qKC@~wjKZpj_ph9zdPCI04L^=OVoPvptg>A2f7b)2#mrA2= zj9U~vg>kmYq-jZ0<);Z}sE*v>w{sn?`cK4A>Q}9`TCV3Du#B6-d3L_C?r`2@5&YhkL;rpN-Wxzh$1C zNe{_TOT-sIo3c_FKdR>g#~32(J5~Tl*Y7*|j{pro=8SR?hJ2J<6p#jHbpmWj-E}Hf zF){K*H7~?<$PURotxJtOvOOJY2a4p)8KJnur-fnU4qU*09|PUnAt%4V)vT$}iwu%R z!%g(v0r-0E?^=_tvRt=hp*f*RhS_MGi3?2@BE#JK&zAKY!wt;kPx%JU$o^9tmQ;nJ z_g+zUV}JIJ8`cBJd}+|iWGIDUu~|Wc;KlY8BhOnNPq6+7DXx}{{^={Pqww_|YHlW& zn9xf$qvOYnNhnO8$kpmMD5J#Rl9s%GPJZ_uMNRWZ0kW zJAEj=cs4N_i09q%5^k-o!ZWvRu4Q7G;2G&K?HXIOBo*#CT#w#4B^N^^kKuNAoX&O2mO|pYH`OKw#m&%1;ZBIRysjtb(mrW-<@oR7o^;L2g3tmI z-5SaxJRNyf-+#EJ&(j|eeRv=mf;2~L2wn=pSHOTsNrb5VZTvi&ueJAp4kU8s1g8D7 ziM@}GH<`S!DNgYtiPu5yfB-;n(t9)fm?1Z;_1f>+(5Cs%%BrXSA4doMOnZDTGD!*o zw>V9@M`eJ+L`Wr->Zi@Oj3aKD`G3bzow;?l+mTu`HI^q+N0mVS3ve z9zrs}N|FLE02h+un;`K3Emy!T7Jauan+a6eMITzeuGaAEN4;7AEa1|+T;W283k{Wd zd~S}p?`9+_a-QG_e$P|&VC{h-M57{cOU0PSE6R&QPstb+tMAc!T)5%2Aep=k(MW~#L=aEzI+5seEU;@?5rLBu%0&pocTXl0G1!3 zRZ9FwB|m)#R`5qjjZgDw6Mrh-nDaoww!_1=q3|&vggO702@!|~G5>Wao2YJy1&dEf z9UWDGL>lbz&JVW!oq8Q33$Jf>?b+^O!yIdCR;>_44$U=hDN)TY_(#-={UAyZ8H@$tY-_q9VJOF~dZ>)H;sArF91-aCJKeV%)djr#S2Zrz&_GVTV;9hbM}48FhC&7Gl`a& z7x~}Eo)5#k&gA2w!wko%Ct~}g`(&g|NBmBLvT^8NGe!5|Ibbp}GRqAGVz?v?+)S-M z&x0`Hy%xq-p|n(D!G6A}AKb8z_!tvYlB8Pr8G<)!&HV)J@1c-ZOz*lcGq$ELDs9Hk zv*VZr_|lo)|Gek_RN)|F%LaY7P9Ubun1+B7+eiLLG-{kJy^P9goq4T(8 zOiG}DmjYftykA0XElaXz$)PTCW0^XuNcf)l)n}WayV4H-Hf~!N)uLXCf_nW|7a}w6 zOmvi{IZig5>8*h>9H#9`#_<&csB{@)dkKb^XB*86jeLd7plpj;dUmy#q!as05fC9G zUi$zAeL!lgu`7qH!o5Bq5q|^v5mT?awV+7;l_t8hi-r zd4hrmCBQKr);f%NeUo|BIOgb{csC7`;#$<^uB4bM-+PBD3Qg#8T=?QrTl>4K6D3KT zF&%8?I+I9M%GRMb%*E212mcW264(a#=&Y3HX<8W(Imorb9PymdtN0cRXY{MSCcL&l z@vG~{1n7nq0&*d>I}+Unu+7fX>&|G6y{9~xyno35o_&HjR5vjlyt9Krl~fcU`g1%Gx#rmI`a zh))7{QUmsXO+yj^`kWKoVDAw);r@Y=zL}U6&LipH@n~ac`E%uA4A+ng@zu3c%?&9` zk`gwFnD~7=-{VmOU^R*TDz;VVXky(KMZ>JuDD$KPfVM%x86KZv4Vu_5dP(|O7fzuM zF)=Yc(V6+V%-%BJk*}O{FLIdn16~*0_}pAUxtyAdJvvHe!)0VCA0~iU%gM??U_g@D z5Q;dV-Y;brg2w=q^Yfo+9cH1`9je*i`(QyBQTu#ba#ym!qqc_;f!rGvv~{CPTh>L* zNW``VM|}TrspK*{{|S=;R`$)Ja)$Bf5)vbc^GX4F(k0_4`z{JR?GW1q&P8rBzpjPxW-SZ zt0=%eogTGW1PeGHZVt4#w3^DIL&-ot{YEWeY;0DB?C-!sh=7dH5>ISXQF|QKwQZf1 z_TVqYa{PC|McfOw^^OpllY$9 z#?sry$;)TT(bLhBO%B6LE&q_XAL;^I8|{U$JFzXz9Jq}YIKIA$z-)4iU{)h#1}SLa zwCGbzRGs!{XlV2bC7*b4s+lNTM-AidFq4|U78jZ3$ao{(2ypHmk~uB5``rOX@GSP} zL(PGm!n<5GfzR}42^roX!4<54Z69&Rd36K3#-U@pB%bz^Nh*wQlC_GaK`zzp=H>ij7Ph zjFduy0e;zUfcHZg1I)0k9fCPFrrLt;5Lnoltfj>#`fVd4)B@*RGimdWC4jduEl^xI zSj|yO97nP4bUlESOmKQm~61p?LpQjXE(kuL=ErU*oiF?1gKwIg#lH~}fPGw0o4PAtVw%%?6_fO(tclo6Y2)A8c<=F? z?nvCj)wDOqiwc~nCM8Ew^53~P4&s!+`b129x|4AFj}Ao6sU?P4xl1W!p7?|NlZw(8 z%foFN=(h2;SWxoO%cui);pKw>6K+ZG-0~h(;OJY#yxjj;Np8qUMZB?J4!fE}eD zy)ySU4FQ<+$lj&~aB_`x;zINZCFGpJMVat4L_mnDD}I~KC+Qyh zXtVy2kmSCw(ZVfnHEqu8kDU5U%~PARJ>9~wYO?9*hILF<_Ewi+6&x#ccw;I}b!3bI z&Lp0_@~mNdnlq}@cG!9}FgE3Lb;jnPtyy*=|A=O4TF}wKMh?Kdev5+Xd|Y;D7u=o7 zRGq!{i5g(0p(2OJr)hp+!hkHsa}krg(stcPbh1EoUxG&5alZJ@Q@)yoik5vic_VQD zISCV49z?!wY(A*ZC!bttr#7nGOl^XjQ8UQ}%VanVrcOb4eYn~qU)O<5;1o#fC&kU5 zu;F2cE9?aTd)7#I+w=1bF-UuGtn9UbcHh~g7~!;QM0;|3Zd$fP$NrnJHo|b zGVtk63=5C|nZE|Q@1Ef0`XEfuMa0++iasrHbcx%{qm7H2*6}2dS@$8GTN{JGj}h~Z z!_h@6F9IarXVNkOSV`r`=Q9{1O^QL09$Q3yVQ}64sbBcD{EsEX=1De+rF5M{1E;uU zG8Di(b!DtzVUT_=;cyN3NhT%}Jg8ly5X3Gkhfwt^+d;Eo>o0Dv-%js=zCp2wryC^g z`lo~Pn~!`I^R|&@mHG)(UTz+()XQNOZ*G`!0a2<(YeTu868upEV0I(Mp*p7Cl1|kD zz{{MSde5FK7XwDa8M2ew#*o|;#cgn$*lNCXkAl^VMf(~`t5Z2EcV9y}QIPf_l>N~# z3=emOc6=f441+`Y@4e61WU;z7?_eT;P1h)&gZK6=IgBKWh{)$~dGTeUN!t?77Q}8UyKj)dsy_)MZdF$eM7l>W7rNZzj|w{JPsger$MXJYMp?o= zSM~>@gF=s2ePU@3>4g&frrt4AN|8!QZAY!leZ<}>3?qV#)PBr=#GK_`R1 zLT%_NSPu}MNHI0gJ_FEnKwcnNius98ZBD!Fs@XjiHxMq5oyVR;8t{nRKRL7Tm9U`V&eN0S zEWy0^8|OHo{Kp-iJYNF9tUVVI=Rn^#XKwtee>sU;b^*ymRd_zZybA%yo8N~5`5uO5Ee4_u^NKx z8s4o_!k8(5>nhDy20Zz_Uk#DYHqJOMv3d**)r)+HTr5FaA?&C<7wZjLY1(>+gdzOk zVe#>C%rD?>W$f-x$1NHYp69{W)?2TlADHD21mXp0V%MrV6FpZK-t`3iGO-V;(23j# zhX4LiA1$fH${jxwd7e1awXEWM^mx28&EYa87_?L^$KEp?+3mIG<7A6#r|BFFH&cQbOPA4mZBmmys zj%#o#6vD5BdjT&6#NI{6yMOFp@;GF<((h#^@GLdRR4mw2<(KSqE0bc&j`gUyJR8l} zlE@$tZDxMa^Lki1`%u9U(9H!)oI@AF0$$2ymL(xpJ3FHly z*f6~lMkS`f`YMXLtX2oKH2p9c5XxCsTD!4MT^{TBEEnG+XJMm(A( zS!*JT;|z~{lOU|u%-o?zhwnVXhS0&%XLT$qnV;0?HY5fCeDn*nd3T@ z_-{MHAkz?1_QyW$NZOM~E8O>ZX`YGSRuuHViQZ(4*GzYep1M=&sK74;4}dWMKVMn3|I6F@W{D!xPbG4%M^iD`TPgLsOz@-~G?qwFGA2|^M1LYh=EBLgIy zv1yv0Pu3pUUoqYV1KvhbR&Dgdmtv$ZXWGq(E)#nuzh&7V=Q8T~02Wlc9~7mF*F(uL z*nPbEnceZa*E!jtxm>NvIawdF;1@P}Wl!qPe+hYUGAt)EwAG$4oH^YL`fO~gd_dz+ zWfR)@H={VwHmRcgbw`v8s_@g^>IPME6!h{a8>~^7F})Ea4YaE_$`@%BkWv$uQO=Z7 z#G#$_U!}@99z)$K&$wu)v<2SP5(Cn(>_tZgVq06_7N0}@{DhNj?o=NCh2{doJeZ!w zd&*T;_=z&4GY;MTmmjcT@$Rmh@Ex349-Yx)_fkJ|u(zdXZI_4-kPqk}4ysC^eC}T+ zt<~Vpy2y#=%gN3H#(a60Wt_$_wGV9s$>cfO>Zbc}$8dmYvol2;m>5kNq|X(9P$!Yd zKzo@zd??Su=CdCqab;S|xmVrp&&hYOfJO&%9Yy7@(*pMR<)_Fe6^v zwc!UKCSwSNUde%sc0y-jh0);=z}>)lC67&Q1dUCbQS`jZOjk{Qy2@qd=9I z1iVoascNG~cT5=F!~L5ifHRNe0Q6kCWL==JEu-w0&G3!vPx4-@f9qcG=)<*_grzcb zx6!5R$j!U}(c9fa+-|X29(Is3HjkRlG_XLv1fvZXc?yDrV~fM3<{FR8@fJ}GT&?M9 z*oBt{=UL#KwkH!09PZoQ>TBhhPSCEL+}~RA1i;`JhP8=!_wAMrtj~ z?0$Siea3UgwZG3}MzI69e*-f>jqzF{{XYbH&lA-l-`hd_e*gMk*60}`1WbfbPFa8> zq3#^Oz=jT>8%&yMXBW4!z0>A!$OEs-@0NB8qI0_QsuYy6b_}l}uFw8yGzR1xwHE$C z#T~&pJw11JmFc6pmD9nh{u?XQ-U_{+Ra5OF5*(GGY3YurqAOe(*WKO~J&F#xgBjDW z{d>&6T3n>Y6pTj@z>Kc9NCLI?1o@oI;KP3b_{8b;bV}VGHd$Jv(XqZST@CK+hnWdk z)k=N9YoC=eIj>JB1llw_w0W|H$VdK-j;oP-Xo9|K%g<96&5_!7_QlePh9_kH$@xsV zE-bOz>+vD)*5=)#{ZECr!|643(YZ<`ho>$?JmFwKRYgUJ=@bC4&gXCqiq=z^eW~#mN^8*^Yj6gAN!Xxy-{B7 z;TJ+q#De>BwGvOAe1K>u1&ZDy-E(?J4ogF&8>Hl4ombqkSL5efwBk*Z~P%(r`Kaj112xnTj=GW>rkr)KU@u0&-qYV-lf94Gb&pVltK~G;W;sDxLR8}U$2_A*C*%B*hh$E4QFoWR`&B{S>tZJo!TYdbm zE;MnHnE*YY0k=#)BiA>8z;?j~8fch$jW{#i9oWCi&aDd6X%9q;>N3W3{zbHl6aomz zWC)210Mfl56i8KrBvQ?gA|3bQ%GaT>b)p_uJ7CwHaS>_`ce~5aVk#t09UJ;J&t4xZ zFc~d=>6(_R=J$F+bPWgXF$$CBqD3VB!@e&x$5WkkL6^lzaCv3D8I~2@qfaKdOHoc% zhx`8 z+>if@r?cRS0$SVl%+MXu-60@dQiF7NNewZCv`E(w(%lFG(%mUFbPEE~NOyO`=X=&U z-*4D!?Yf`qx`%3I5JB3g&U&b0kpKi8&<9d>!Fd;Cx7;ig_sd^m`s6%%Hyc{@4%824 z7)SE~-{4wIHFtc!-TD7=TC9~(LlIn~NkLGHK~Y%PXvUjj)a1u~-a}o)cns@vrMz}1 zOtDeTpj$*a3Spk`laB&JpF3*rY(zI5u5-G!1nfCJ=_mpg5Db$(!r>;={|EaW{wkLp z=m5Q6YRHe)6@kfuLRk)6XojdiS{|qyHlzJYhO#5VSy+|R*|p$&MkouE1EUJ?E-(ob zR(Bc+JC&&Ql)QTTqAgOznINPFVq-)nk41ZlPV*X}9>y~l(;HfT{{qcR5#P#^bmO#Qc2#%?@pi7zC8OsIVL=_OZ}=2=-1u0aq|)3kde;^@jC z^{zM#|E)1#sULt*kwP6;Hwcwic|A%>0}k2pg1^(*r(yt7%4Z@(E>UGXQHU`Wf?xM4<{lDOeye!sV2wPIg3Y;iDyO z^yI0cuyPQq8X2H0tinxYxDrsPjf2PSx~HT=(-JS?=uD1WY z>U9QZ$)Q(A0YqI{B}i~A3RwM4NG4&h?ChN`ipOB?8eMU@kF+QnEVm)k+x&U7V>cMgz+z zftx5DnR|B|<_y=IkPbpbSQQVo2SABG=Lil@knFOoO9V%h&aC;u+lGGNIK=P%E65TT zA^Rt|-*5giu7Y{7OCj{!SXjck&}`(x@AWsk~7Eil$pfFp8ehsL#n-ikZQ5H(nGUH||B~G;ym1k^7e2@l_qe?8^bl)p|N8Q4T=YfeS%AS|F?e$~ z-iz=LDK$kvrV3dH)8w8K=05rN>PP?oe)gTpVttX!Kb7V1s6OYI15*ws2E9L~ zYC>%ff^nhyGs=iWMVF@K?mlLFXJMN9$cHC;Ap=5h`zhi>q%}#oleT2knTMES89dFI z(I5)h{OB7|o}#|%BZO_OEr82hXnqZrx0xhGGPVOoKq%9i_7BZE2Us>xpHFd{?MA)@ zFG!{V=aAWnS1Z4%?u!laulQ?}Gij>#hVpg4#(%+WyjN;n5^IpX<5MuLc+@u%GUC67 z?j=z-FUr=XHtp}b7^a){E}6w4d6GI6kb-WblUn~kfGeh1o10lVaQmo!$Mi9U4nzZ; z_Dlx0_|k^>1cpS!!sMK;E<{{}$A~qjxUYBY*D3at8Jo(7)Tq67f zxA7c!mdbH4`i|tT=0s0CXB~17XD29vECvKE5JEPo!cOnyKE&04%vJk!8A_3B_QkTV zszcZbMV?LZ?l_vRmxNKjtd7Lc^e=-u>>9+?x42SAa{IP-3A>Zm>wshYgpWuIk=}EW zAkGG5Z~N}c5iZ054^>GZ-}ssl1u31RtR zO+$QZIFR-=5>?V9>ag4tj~ZWlk`+}pF2*4<6%=^%BS*%IQwG;%|J>Rh!ZLi_Jg!@#x;5le5NxZqH;i#^eziGBr&+DJ1RpbHxStYc$@7A{9l^_!f-(P`_ee;UzC$uCO_>j>*CBq%zZVaS02yw|G z)f0vr>MueyS$m_`-w}cYhvS4Kx*LgS4MA(WEM12|`}S&M59hx=H9=Yd^D=$&bS1~Q zd&o99TrUdfiw3Blubyq`hb{_YqK{|6VdshigHR@E4B7FtI)YIQJCvR#Dem zo1T~SnJtP>nM#Z-%wdEaA(;&UmoVXR1~3*b5f_NLNTY&V?TrDvxVA(#)2CSMIY2&U zr_q871tX?LADBWSc6eh%Z~~%!19_0<5nLk=seXr+935R;$~;(%x1=aDdZzse6{@~Ta)sD6n*Wxs!l zx(WjgqmcQss16~y5+Emfma?qL|0R0$o5nTyGS(dYkRBYHK6(+Iz+$hE!rdDhI6}16rm%Ae zI^K#v-Vd{VIvh#0{(AyvO6*EXk2hDBVQGftAm)BVAGVk3l=W4O*+Oc-sMVMPu5on# zWCy$(Oi%mPE+#BsIgQ|VB_rlTA1yIJFibPWg##7sYKjOTzs`Sg1aNjDTI5!vOkX4H zfTO2?wvVO70HDJ}b_JT>kp8mVEegVSF_Xf`t%f**reJTOOGVU_8Se!{!f>vrB# zo?G>e{7ikpZDJHydl%k|^~PViAMv!`L%pLHF}j8^x`* zZEBX0p19uWtp!=@gBXL(>d22%f96=s=hpzb@eUG+{6#abv`r`z7I)-dbdr6G5zm|1 zO?vrZY%)3b?^rwv(|spi)l$=qP@Ts=g^3*(MmL9k6^|zW%bTi@J9&9u=shx5Kpm!bV5TxNqLniWRFj0D zvt-9Qu!F}u9`yHH_h^=w=_9q;qq>SJO#Grt`lKNRk;x7ine{ z#q;L+Jrmo(!xZ6F8yqmcc1AM#w@78vE1}<}!L!9e5}dzKisl>YST~v4dRp7s;O^Hv zhh|C0h3hM`pu&9A{FVRd3q{!xWF-N422Xjj zLp}7TB%D!qya2m?o(qh56(Br0B}S!cv-x+e3#h=4SRT*tW8@l>B3y*`J;dYDawF5@ zGjk4rDyZHcUWXhVLr~Q0aq2MteDA;@3boWmBn!E?oY_EqQZ!I4JJ^B~_SLtr9pLQ46$=8SyVSBlXk>ax)~DP> zSWt&_7IMb+EQN(?3 z!YpVRKe3j+ic=xwL@77Ww~9}E5nX$~-aM2K2si{FfGq*|@~_}e7>MqfZ6w4N$bV>( zOwnv11e1hU$wVRgAtx))!@j|stMm`euV^H@d%uZub^m`E+9iD;5N&;XRw7n zK^5?K26bjFOU$4Dn($h2VEkB{ap3Qo4XwjWn+&R%vv#a778CkCYH~`KBieB`=)>G| z3Uq|kDiQbKEzNXbB@Y!D;-+~gYB*v1Z`x540R+Q9cw3P0A(e6o0vtFT@%E}R5AFGd|PR>#! zDWwLO+1tRzBHD&Vl3ND>vT|7l?kWbvXuiqV9Z2&PM_!OC7~_z8-;sIN?yXs=Mi>WJ zavZ~r#8YLeQEtz|1UbQCZ&HtunV?)cgHhzEjXfTtrdrv#>L`w+)@8zB30CVdk3LW9 zC+jau$ccskIKUXg0)4=bW(%A)Z@+(T0D?7B=bmW+b^uf;P|H{kxG_BzVZNl@qKhb? znt31a*>W=5?+JAI7I?AzGwHPvpdIFE;(K+!YoF3duaL7f0&Hl1&V-2`R%8-n@IYD zt8Z-zPW_8xyF?0G4?E&871iV-jxI-4S}HN>$?#F1stw?qPsH~@;dUva`(Zp$+grUT z!&=V1S#@_d-E?)7`FcyU>P=5M(}3DZX8E-0fpeF!yR)8D{q9VgL+5@ZjUO+mN_%Mi9!nXvx4 zXk{(S>BWU*8ufvanctNLW3gk4ZpzMG7Xy?9WF0k0@g=x4U(Z|Aap!5|wTTJ=7)xgJ z@9+-ffW7V~FlAXp2llNLMK8pp+3(jn=~$l8@v6Qae&jW@PKS#3nAE0Jgf2mqf4<{S z!RCwyXpa}!aH~MlUZ~=IQvR$_&fa2u5-Mh!ZQ(D{Bh2zT9N3nvD26Y;eAA=>N&s>m)O?~d`8sBHw=#uMU|UP z9gPUHFRBAVlfk00)h2N14GT8>c;HE|B~?RV&ka~F?0}f{t&n(jP;85i?1UY_*RXSt02Z;JBJLh`i_*ZPlAx2 z)YRH8pNpc-00Dymz@KAwVu&guBa8!NziY|^yg37jpYgo4=?KHjU`J?g_R~o~%RaAb zLSq>PEAYeZX+17gCKi=1=r`-G`2zguvLgy$Swlhm8FE0OzU>z=4BC3uokfA*FLkou z)zBa6eM&_}#`U6s&PiZ#g;)C;3r=`Zq-Zs^h=u2uA@9crKM!CCn35gSx=aM@cV_-CJfV!Ip;D_6N^4Yy=}(I z)nOco#y@+6Al;w4kcO#DEk(?aUGZg$!EoCfhQvyq+jMJHG*p^Q(;$8~Y4F*#Rimy4FvKq^^{lnr|25(E9$I-$4dIen+XioHF}bAcf1J*$_7w zA?x^z@m?d|l&@GI5)v5R)PUYw)kRlM`(|Y2g!gsg5akEvOWI9;@>ALj$x#tmnuM|6 z-xJo^4|$Kx}SY?V#&o7&>WI~UDb_k!D(z|Bn z#9-t=_!|E4cSIrfH#5Wl)f7TbOqOwmKL(AAU@81;t^$CKrL=UzX z2eoscj6&gF%96>Td7m>sIM%o;DTA?HroE;5Kji0m>`w=m55S*$gA+*cu9{t_Mklu_ z8w(N$gVey%FP~sWRA3KMx3EUD9wWMG-xQS#w%W9hV{;cVLHJwQZX>?)l0VA@AgNZd zTcw3p$tMtT>m$_gFS!ix7KCD;RUSZ?kE;5TQj8v`UJm$%_v8K(N}aNzfAOicu<5Lr zo^aHF*y*_p%mK!Dz)Oc)s(~BwHCdoPy+HQfNHN=HjF4*4*whAClJc!)`@r&xMQ{P} zEX|}CG>@vK5IfKK!O1QOZ6(Jr4_d8>W8r?7l{KSI1 zTfl3!F@04~*DU<^KM=je;AZFhqkxcrZPGfQrtl6WXC|(Ef+699C{6v&mlV6t-ZSr? z9v3eh(zR*zV+n$-a{zyCAJ6sViC;P8bzUne9!_%poPS`lk@&iG1OkuB02qLr=D_EH z?c`^ni@Ij20K&L}oHoOn0M7>@`X$3vpTpHTeN%QivCC(1asww3acr8aq~5{XM-jE_ z#nsO2<{xSfmrrKzEc_p@m24kb<^nwTo=xdpGs(rBjx%gp#Y(`3Zg4BqJFV@&Lq3Wtbv9u&_;F{w2i=qBw@@p-z&s z6Sdb;HN%Zf{{C|X8#Xm`;C#*c$`@swG4!4RjA2dGiW3(GOL(dD1a}9%C>gE$A9kUC zxvHA&>k~$d!P>%2oMNFdm!zPbWFAo*JWr$rdtUEwi2w3{_)2?wFSy(;zU%yel#XxC zc;`dk)ZTpJo@;?P#vRoC9^-Qcw%%DV8iPSd59X&gsJ4wRm*ax*C3r@-TSTbIH)dwi zsM_HK3qU84ocI+7cw8sD?U5QTr240!j^ed{(0y+uBM67Hn-4$)z&u^A?~HpZ5uUnkun`5{2<1O`Y(K zwB`>`GefB@4O>Q=$K0$Qqy)EO+Z`EjiOm%)Rui%RM&3F$i@-5T+4?!yq3w$;*%`=y zPSQOYZn^%K0)sc_`?qW$CL1UbbFuO8c1FkuB_0PX>!^rcL;$3MQzR@@FR~*|)1j_u zG07XO=pz6UqLJ4^*5nrQ1kBp9L|mt`g#tp8cf9IqkMYk6&&GmkgQe9=+tPG(*>z89 z$H@i1$H`$K>oUo}7>LmRQd0#@b;Rfpx9DE@V8;grfY$3H8K4JKY@X?mN2wAPy$r*+p~^aTo&!RO^XG_2ne0}|Wg zuROHaiH>_LP*;)f&S-Cygm5)!@nfWVJy#-NGbQ-~77SoxmQCZV$A6|I(7FLqk>)> zC|7-s3JK96FQ;!zE=7f&t{gKx)b-zf! z<9YiP$a~`|($rOt08>ZGC9NA~or?X(zi9?4AX)Obowz_~wlOpK-TR435fC}sT`=nR z`Di%sS>U1yP#ZkV{B?O5G-o?;z!Ld8USp&hXz=4-gT>Ely)-Zgsjey}yhL>{jWb0# zrXGNb7xbv8U?Rh{8xM$$Rn_3MIz-_Y`8a0giPbV9gt2*@7-*}F45lI({+RSKwXoQH zLAAyO$Oz*Z<}5~9>N)HeN*5539+=0NXXRZ*hee7u8Knd5`pCCUxRBBiwJRhVO-%*t z9!KrSI1vBV49rvmC>}C+d1_QehepceSyIFzHDa^yCgr8j0G|M}I!uTx2=XD6^}LW+ z?&6WhGEBSLu_q=I(~u@z*;+G8h@3e@lNuDW_#_06dT{#va*5edSPGEl;uBK;OZ*JsQTe#p;$07vwG)qz=XE5@Gz zud1pm7fPp#DG)Bhy($r=rH``y{NaD>SmEDw(=FNj6OvH38udfuC`ZkI$2FN!m%gsn z)_2S@o)Rg&9B?wsJOtd1CKcnn>$)sMm*esdUB^d)kK7d77o>!WWz_Mlxs&N`m0nKI zAkd&h*J6Gy$A9LC;M69X-P#*w)i(lWlirQ2o30e7_8lAnpHz~Jx?`x})G>NudQ9;* zp?pM$WZY;04R~lJ zt+ThaAN>ua=+$;?UkvIrQ?GZOn^fZ9rqWpWt9)YrXX0>^wxp3^j?RDxX|v!SJ>@_> z?B5+W!azs%BRj6L!AhSt0k6`f1`=d2-wP2^JKk}5w>~mh0db~c#v}CPP*;v1zVWKs z1_nRZ=(3H8m`k#{8fTnRPf9p(RxMhaw03*Ot~uz|AcFrK^>H1sY|UNO@hALrT$2Zf`u{zi^tf7a8a!v)9ojfkp-8OgxW1!K_=W~s*j{)$eHb=)gVSB%KPp-M zW$nz=A7^->H|_<;lXZWWoRVknMGz*xIK8mDh~RXt?R~cr;7$vD@M^Z$aQIhH0M?0i zH32;xP_2;tM=3=0hiolj`5(V@_Rmn~RfjP=q-_uoK44%*KOYpt*=yK51m!MXITbA` z7Tihx=G}c`!0rw@+Ny!2*j6baRT1(=EjgV`?#2=iv8UXV0aA#DpKk0%lU!TB3P&Y_ zw(&0W0p&Jf-yf(zP70O`n~{oS-L}}}T!H%fEyfBwKO2VT88{AzUH?+GS z4t6C!C8OTf@OmbJ`LIOkQv>J8%-nBpZ*GTX2>M7!NiIJIkY!OEpy!=QPS^z&@_2uc5gP!ZiGp7N zT`iBBwF9R@G?H-6YLeant0h${+2fHEwqH3=XHQ&eLS-f3KUz|X!H2DZoR;h8M@8W< zBFTr)V1$-TxgJ;`N6@-xt}2K%`6)8-4#Qz;u=8Pne>Ye_Ews7~V~Az=g1C@V8}%xR z1iTA~>F-ejA}6=@Yz@tG*90DE_!}e+h5*>UjcJ%Xw9Ts;q1O~3%e#cP6Sy7=K*|rY zT-yJ!a8u7qsT&V}X*vaA{J7nF#h(HeLpdLTmwBGG6tutX!wZr2@+*w7)q@{RaNeaIFI%UYs0=F~j!AvnifV$moJ8pcO3dE%+si-8T_VF1Tk zdg1L1Vk!^u!oKD__MI;Ezv+cFNG?^c88m?JKd>4aek^cxG@R0bRe;a>CLVKCmdm@Cw%fE?>;#3$f`u%oAab@qlyVxM#aH zgsG54kEK4L*#*)f4t4mkO*+S9?&&COL`wm$266r$Jm~3X2bT0A?#ma`}%SSQP)xSF+qh-?E-) z(&57mK*6KP;ms3DPSd)-uP>mk{faGyImR&XKC$LgcIuDTo$o{r(;%Cf`UuTSgOOhA z>&$mUeq7Ac$gvi^Pe+?xWv#~5heFw>8IP3CUwkQn8V|pPW4i({*=-%g{NJJC;zLk| z1}`--(Y%c(n5$&{Y_or?o*C{={$4i$$y*^woornQG`AqbaHPU_it71GeU3NsVJShJF` z_9kp8dup_wah-=|^`&&2Z__Kqf9tk(;>_-mnfR7B@3vS&$1&&kwTkVZ_>MnzsRZP^ z1Aj0uVooBjVhl>4EbD_>?iemAoOW>YNfAr1p`dXP@i8)SWeWOb=*yt!N{>XxAF0`)$KA^ zrgEO*#Iq)Sc9e>!6kWDacH8t_i|*OzLCRdCd>Ry2WFS3d;Osrin+g^mCC5b19> z7v1<89T6EcT&FPo54Z|=q={Qv+~U=F)auv)Bo>f|$S{~t1OfZTwn+kn#qJxJF))T7 zR*76xJNQ|#OuL)ft&EH)sz71I^Njxjf_<2@EGzOIvAs1Pff=RLVumaaTNZ%!Xy$=d zqDif}s(veEeMt3jFyr{6e=XI+pbMh!L?J_^@Rf45c( zi%UFU9E*E$+v*}HSQSAA?Iuc(_AezH2Qmn*jWwNeCj7wd%AS^gTR$UgPJzX!2*%m4 z@JCieB~|zeQAKVw$6`e60}VBu(Uj_*g{{AY0{X0qiuZJV;~wW3HnVvYQqI^EF77k- z6?}cT)KSzg0Zo%)Bw9UYdx2LLCOaNUa0y^O9+)Uz?V^t7xF(KR6&F{Lw4R4cRAy`WZ0JWR{CqvMQFYY#ty#^0rAA0nmtWmJ4se^ij?@?BN=mnZq_aWYyP07Ua+S zIGX|0N(c+P7~bHO&$~f|`2o1Dy<@#CqbJ49%_AJPfB5CWq7%g$TZn5{rW78O*fuO} z%wR5FZO4E3>uM#C0prJ|P9T=A!c;KjM`qclq0L)X63#z9D5Qat(Wo>1XD^z*% zC6$x=@u$afrJ`c-z`e}xvIBKe8>kABmTE*d%rfYyKZ2;=QXAe8jt4ADk%2{NX_8&& zc_c&pe;9CKqOvc14%-c^TXX|xAjOv9U;yUS-f(rwEZqSX`hKDVXi!L$Xy?vqSV?^z z9Fc=>9SQrjG}kowx+(dH-&1;5<~-B}U3HAXnCX@V@^YMu|G%%L3V3kJ}*tYDo@0{bod>;C|uHX*smXqKxwk z9C)ZGs5N1*1ihDfR-AY4nH2=`n+eVW_RF+G+iUu=wNtx38Lt^F*M1ZO#V%il?QA{K zTIY^GPcx4!7Xz~Y>Pxsz2XeftuKh8&l`-PEg-n4F<-({|0zhNP1Ni&b1!>X@fN{M% zhg4N!>wy{#Dm+b9iismdeY~D##^0H1d;POtaOy2_xZ>TFFUOqydK!BkUnK(Wl&hcl z63aX+C_1iB`nbHc0r}0Thbu3$S$6^NQjY?9<@Q!3hM!)-sU!k_+{VTKsr31e!0n&> zCfN>r*!*881~FV)zXdI%^i4a8{t;XFRm~(;$k}IFl8;7zo62wXu(nYGBR-c;R-%#U zSG@;+{lj)!yp14{HBo7HjX&7yaYbaO?$L6lM7=A7-G8Stxz;(6cAb{ae&OYe$A#hf z%poj0bBy0hxArUm9HYe;M;b96zF8a-vYLm0!7MU0W)~^F(ljS$c)gP z^R+@9J2R7>#={w{6dElDDGT9TfX_#z2s7zidM-P8aZ;}HOb#%Do`-C%REC)RIDjrc}%{gdhuF^65Q$;z*QuS4OXrC-8XijalyLCIuDqKfbubReo? zByF!}?dp}=HSyQ0PjX)CXF-R0v81xpTC1Asvl#J$e&%HN+Vh{~r3L306l~w1P%rEt zSHQl^rlzGi_ZD^v)u zyDgrsYUzj5P;R=`nV3GEIRzY|F)`PI3dANXCFj2XaJAm~;y*`?6CY4jRVj?{SpmIX zz8X=V0aYOC-fvD$DjJEKur(SXkZ??KaR^)}#%&O~&&;Zh6P+w*>WhR%;?FyzcQI26 z;PLY3XYl}@;Uh+lIo=T#qU=2mN_ufcWyLJ6FwJWRs6&3K|L7EG(Ti?1gBB);XRBV( z<@}agKbw_h&oYQFPCF0@b%tijn2;0HPS_0Nz;N(#_s!!w7BYe zB2iLY>Oes$?~({43Teh`)|xcM#4(92v1QISQ5>EbSeeyJhySY zfM40)y4%896TN=PwJChu1EUA>v{!rSBS>9_q@CKu>KZ&HPeVz!o5B48fS8AG>FGFF zH%NR3_3v{!PxYk_27FbOHN~X*xZe8@oJnGHD+OOE0ecRj$fgtds1QC4Zci3PNA~me z-Vx3p{#z6cLF=D~&YUV>JqJF9{bI9+DxUdc(Ckt7p7xF4ne|o*K+?uQ>B(?{C*zbE z2wiwLHN3)G+LM`CF3vgopN?ZB}}r^Sr}rintDjHN3A34f+G z^arZDI5^Ec!8220!^C=hz4~lZklE9bV1~(Ihf^BEahrzm7Yu9v=ghR}8``b0xPu?( zv;$WEpK4^80~7OkCmR+U3IOP*R(faSof1%-rEH^+(7jOY*>MLg3M}}d-{>oRZDR8y9{P&Dn|{S{2E&mIP>3VE5?}#11h0%#Zo6GEkPgvXb*$Pv4j4N zm(T%QT_~M0eoKP7!ecDx41+UVq`4^i;$+)~8QpIP5n0<(g0kPXjez9v5y?OmTak?M zN-rNSM(~z$RpOZdToJ=}@7(y`iz);1F(E?%XFVCF2DO9PzGO8e04|WalyljUyP}c= z|CDt_Atk(s@{tL@RyQeHqK^+`LE+hF{LmUO=Ty?eWDmH6D+YPd!j<+L{-pa1oy#t0 zaCThjG%Kl|$947IuDse9a<^Y~G0~vRh%k2v2VBs}HeC6TV0^;h1XkB!65WdzkcjYq zeF}RZRFej_Rc(tGH{~508`z@Um$8t{?BN?qMt7#Pwk6~6x-o!z0dish5!B*%*GcQM z5QQ5n7KRswFrOL*u3<)8Vj&&yH$7$+9mv}pd@=*$u-@me$2GyZw>>=N8^T*rHYob+ z;waX_vza8K=rjNFi2aF?AS5j$U1bT`lkEX<(qq-7qX;~Gpxh8Uu@Q1VDsXS|EIi4s zY*i7v6t1V|Cdn1L>Tmh>6UK(0IC!(P`ZeIF!#d4!IH72_l#X8Wa4HXp42xR?e#0JG zKPv2V!{&u8aY_D)^NNdugEQO>LF5uKM~Rs=HvVV@)&2B6!8dzuQHCQTb_Q zWHf5myRq?cvE{#ZRd_H<^UeoGV&`IAHw_T;zA0l-5EZ6yVyigSFaMz){o z`xJSnNJd1-i(Jyb)vp*NfTuZNj)@`Z8Cqe}ZN0i>3rF8Fj908t^~l9y7xCfXqjmz)tSdHP zr@JCbq^1#%TxU{f#M(RDcmPTPTk+M?7O@$F)>l&u z_b4csX6r6%!xk-E2LpnG?`tN>-=(EhrHDiyKd0$`p{2+9(a8I`v|`L1Va(ASNgzZd z0h|YGJUqP2KHMeyjl4$2%JY;kOe^B2f>=(^I2y;l7i8pDyhW%Ev6p4FynAr&ELD@>Dfu# zLj3d7Q`%umGU(^zD;3{Li+ASQ6(Bncw^{Yo)Ev)BLap|5-$KpPk(`rj-6r(HBBHF3 zLzG}L!VlM?q&%lQqc%DoGdv!73yTW<+t0s@@#3lBA5mkb(y+S}EIyjD3eGT|ZJ(Ak zdJErnR18+N>Y^o+vSAZVF?78d%EjTzl8Ugi^s-qKu&p=`4&xtu$F7S)IqZb|`Ci01 z6oWEaaixapkb4m@l&~rWa|@+(PMo(6Lqu8auETBpYk^%^WiI?v3X^r?$9~y?w_!ls zHeeYtj*DUq1K}<GNI8a^~UEz?b5_!>nB207M(WHJef+5~z z@9fR0^Wok<7k^x12av47*>K3G?QQDUp@X@ad!v;0f1fTN^^y{?9FioU$TFN(6FbdJ z+E5e5Wr1OgN)*vjam4t&+SXaI-jy3JmmnsW0HF`GEm9RJVF9ms?EVY%EoY6N9|ux+ zl*X`gHdHUAwFSB2jIH%z@V_SZgf4puz73Xi-jiNrL>XT8n8pbYB>YN#tx}<~HOCED z6jOeAU6*)%7wP8YjVdsX+4SM!(;jy$1* zQ|sf)m-(xt^!w4VDba6nW=1jIQYvI4CaJ~K@yS;@O6m9F-hBxY;ttc-u&;7?Pc|~e zR^dZLlsaPia=p6#%~jj6OD5hTo{UgxlaqtPXoHsz0H{DX@^!fdc2`g%k@y_$U@ccT z>(K~I$S(`}evVBA>GOoR|EQaj*rDR{sklBB@5%)9|C4G9xOg{(H=Yw#DI9M9YhX1^ zEg#hn1P*u=G#C5qpYTNmvDs{$ACQ&eK>?)ElbI7(WvVR%5TeF;#@(kuI+L z#Wg7DYXYq`Mt8Ui>Ee9pnJKV(F!{9G|B}Qu-c|rTT@GEzv`M|4o5UjHem= z%Qi~DmE`^7s=tx{b92Dpn};74RH-y-R1&P5fb^R}gOBAf&BE)?3oU+uo!Ay@wTmNP zeTDlqPZ4iv3#C13rHn6!y0Fv*(QZc?dk0jl}O(+G<`CE7nx%cT`sJJFXjXy`v39ZF& zZ>9$tpbV@xx+Ec<;&{r}HrEm!%C0QIYJb7^pVL2<_+YG;%ayPBnx*0|M zXPj1|H7%pv_#EClai9?YFN!RP5wo-4(z4LN@obA5Gc=QX$&6zj0o7N!E7c`p=2%N< zp);@+IE6PlRPp3YiB~bF89^;O%Mx@$FOp5?6?C}DsJeLwS#RlkqCDnImUvvV?yJkA z(KTtS5PQ@YR5eQ}5;=(@kupwg#@5Gi<~UZ})Erw3*q++1$PBJ(bmBnyh}}S8^KYA7 zi`fBVkahg-eOx&;0x{Hg>-~PSe75gJT)2g*zQvj#cl!Cu6ZS}yn#oFt70S4*uIsfG zeb$%LpN7|;{vI}8hRp4Y)5aaVzL$H3Tiv@+U7HK^xmAxl2+a7p)OUnI`-J3JEEJ`+ zSOg{qUQ+UB(3+ME%w3g~$pxxj!4ySmr=pDWmnjz~m4@5+=l;GMm6;$iG+lHSS&$q{ zPc0Mf5v0DeT(i1J#pkFS7%_hcQa-x)(xqmfyQ@#+>wW8T9}mfS8?Q9l@)56B(tj^| zL(A*SqJ7O9YC6oosWWylg@B{_FLNH^1ss?68c_tvF8AwE{$8m-&%4Nm8X7I&)NOT1Kfy;T!_yAbn|=8=<3xB)R5 zFa|R^lSJ`;U{CvZ?Rwqi3^1nZkRE0T4WA{LruH{*#0NhGJlu8-CG5P(0?%yQx>GZ% z!BiN>^!cXF?)IlIu7tT`h=gRRFvu*DjAXt1B7%J6jWVd7L_`-^BwqK`M%whFe6I<0 zh4jf8Wl^8?N_nz1ALs-2oRXEN)Nm@UrEoXIJ4 z@Pb~&in9G2@GQCfUahgn{M}yOw#IyO8fke3&q9{NFBP_0HEXWx-apX z_C6888_!yt;-TRM)OT9Ac3d~y4^#92uN<`F<=@bWwZ*Q7N1XK)vkZfeRx3Z)-?rgHod z&Iy!N9iuDGO5H8h4}y;joCHEbo+SlPuOzT@g=E_-V1^%mjo}_00-1FjEIPg*tGA#z zU*p%eOi+n(lxHG#Aj8Q&c)cF2KVQJSenf3@rG`kgH`#7Bd*t9N?X^5TF`vHaMXiZE zpS)JSA07^B$9Ojg#r-QJ%kFmlfvFLWXG9`Z6vNNdB7|O(N0=xaL(R_}DRLm>vZkN^ z@bN$&=!SI|tDFt%p7~nCmH4ajQ$nydJ<9tnbOrQCRiGz6302z91*8f}5~VYYEt|*| zbrEQ$zP@1mYSku+{tUHPw_=^v-+)81;<*GoQZDgyuo^XK+)N1ertlkyu};ab!=He5 za0TRy8=mQV83^aoO-m?*seLp%Hw^k3tNX#^*BJUHP3BDZWMMTQ85|YQS#!I2-1nDl z;Q!<5EZCv|xNSWQ-Q6jOG)Q+#x75%r9YaXB2+~M*mo(DdF?4q`q;&V?JNKUFIp_X~ z9c#U7Z)OrD1DLG)e~CBNPF0l*<8J=AI)g(vfN-A6NyIGjtsoyD)hyV4*Mi0D+9Zsh z7g$9n1K0&@HaH=Z)36$bZm6)tM%v#W97ceiJ!<#)y3|OFE5ezWZ~CYsT3Xt{0h$#z z9+{h$k$Pal<0jZucwSy7c=VhqC}~Y2AU11fK)7Eh8~*b~ZaNc);pL+BEJ?2XFiY4w zP>*Xq9Mm`N1lgJ1Hf0V!@%FC&uiE;b5jK!F6PCs5x+vz{z0DtiVE&^>H}}#>S=bq_ z!VZ58>#49u&y3|ZM)e!FVMw|j@1ic-?1|IbC?p8sd5HDlSO~m73N2bxs{A7sV){En zl$-B+MHNi+xT=6jFDAV&|P-I$te~o_hOsoPy8X6T)b^Vqg<8lj$jp zgxmBw#I_7pEMUjvzU zHVUEU2H9T>RV>`39JS-|QuzUmDIAdvsf6@SNDLKkjzXo`?H#=kpbcjf(&(P*k;-&U z>FQWXZ>1MmvFN9n-erWfqgq}p1@IBgt^lTP=fJ8;<&X?mIPn|*fomd*>Ex~;utWkr z>?bDFmX9c6?6LtogMH5)<5M%mP+aDy$y_HnQWj3QZHk^X$yiunOp${Yals)5Sfvpj z%V14#_F((T5wxs{L|H1;8~Kc~ef7ib#P??9$@}crdrJTzT)Sl!lIdErOR=~Ij3K^?n z@K{{Fr6nK|bZbTYiHK^*1+wfSq36r|X}mhc`INuvQ#E9zA2P`9G``~KN$bol^Z6)I zEr4M_jS6gSA^=cyd;5?hD&E=(@+3P`N~RqJ!yOUsOOHVHn1)E4VU2ktnoSObdoqr@ zJj~CX(LS4_MZ_86-LaR8RAa%|rKPqQWWgX+hE%rBR+Y%_Qlm(2Bi_eWVo9V@pn62-~m6!lF6->)KE8AOKKpw(`{6v1K5IGyGXq zTsI?A1l?zF?ZuYi1`qzsK!mVrd4*02!ky#a)rF;EB74O7hk0e(`)*TbvY!IwH227D zchbl?7GUl%k$W&E9M+mJh#IlaoffPh9}?M%Gcf@F;IyQJR21H|5?UZLY5K6o_saTd zwytr)k^(B1*hBP5U;qq}rO_cq0Ab)vobOsQTpY815PtL>CoeN(bq{m;BaFsjM%;Jv zsYiw%k<>F9Rx3d@s~;PEs3~>ezOk^X9uM#+}#^?g0ynIjYBjw=N#OcfmQBHpuNxTXSuNCzuNB7_zg?no-=E7|a zkr=xaGIqgao@qKA)Lr%ZRMbC2V&csk+Q zr<(c~FV@p0TnA?~8|U8iq%>EKrs0VqP+GmK@s+|_3&#P@-k~`{m798W5>h~S5kZuC z$XP!^aYMN%L-v|4MI(B!-~0b1p4ZTB12^1v=jp@)FPMyJOnpJv&=zjVApcn)@QbGE z;3uT}KY6s108hqWG5`#)o7ls2xVXDWH;)d@=goL)@6&Ha->u{lB5Hp@O;&=WKa$Y( z)|P}P5`Xei(<^WQZ2u(E`rGaK~))<8VpzX^1Yy2O?^#hf0;NF91?@!0O|< z`4MMag<^bWglInJ_WUIzl%jcMAl@Lo5aV+Y-m9cWK48fnpCOgnorwxjbSO7u^+-;431)O`Qk|_&tRV+JTSFRg0~*{l4aXWx zM{ke0z{h?5FmpMVFVnXwKrbqe-1;!CM`E%0M<$Z$@$s-YI}ul`9bOscpVAnWd*6|+ zZx7j5wR%zd(~>#H9-s>XPRz8T-XQ(!3|!yXs+@>(+^Mcf?18A)*~z4=`0m<8cMxi! zKH(79N(gqcDX2be{);Ojl(6R@W?tKyzGDKWStvC+&@A$h*EuJsGGp)vO`%-PTqBtR z-%ID1OdzN2N~wA)?7PKk7yysMQiy7e*j^?TJVu(!Vpf7A2Vp$xoYU=t^@R)gEl1y`PTA3!B9j=ewTgo z%8#)4`8|u+D&v7I<=Thbuqz!A?)20c{86l6ZWZkYw~r~wy#?m1)(Kj)rqLG*o&PlFaNaI&uMo#kIT_n)N^;=b)tn?D-tfLu5~aiMc7>@gH>4 zg=-yKs<@;3s4YmibmsUe%J1r*HWs@itXPOFK*}co1hRlF_Q`|Gc=ZcE!LD(XfCa@7 zN~4ooO}V}yqh$b1YoDQ+F*yGuA-#|P=!1%7-N}J%$R62rl%l5-kDzMvYP|Z^u1{2dp}>C{yDdhL_MU7{*bzmMWnD*LgRG1 z%E(ATb*hU-&8-AaAX9X@2QaZ*&2f)_e6jEqL|{7mkX(HW9H3M6?qM}xsc}a#YrSZ6 z+f=$QD4%TE`9f%yESUd!fpFg?)^(n)J?6@3h1TP89kwvXIz%M;sgt??l1~GZU|A5? zeK49xZL5-C-%R<>wL4o!)cur!+sOGBs6OGR3}1lox{LR9s*Rr$Wq2DLKua~>B=4Ux zog)rL&`(1~o;RGEP2SqeO4IwU?6)82zQ5RMJ!GNRX?++V-V#(x$pCI!7LrV$`KU%N#4zG&i!Xx=hZlRDz7;|m4mo2~z42yHNl zrixAnl7e%Qc^`q;S^o;((ak8j&nTJPD!%You6OK7I1}!}nDwy+_(+Tijj*&Iaxw({ zLlI_~l^~F4JQ( z&QF;^E9<7skv)D_(>|W(n;%eWa|Vdg@8R)cbnsM_YfX1VFz7#XyA!7_4iD=Jo|}7D z#XJGo!}$15@fLo@P<8+l?ju{i9qfxgTzD_=ds?SH(bu2_3>sFsd>s|_f5hL!E55|; z-Giew4Ot|X%=~+KZk%qmw1H64Rfq(yKZ2i;Se5PgC3 zku&BIr-J~>Kj`LvJ-6e$e-UvRJ3$xl!8|-bYD?mQAj6C(j&>x!mK~7{Gg!iQt0v@T zNXI_}Y}p3;MOE|;u20Bhxa*>rUOc+dEz7vs9f`_SvCA}3ImUn&P*ugP%tk`GZ_YPB zRwHGd6_s(b)%)4Si4^*n-^zyMfW4)rV8fE5! zys3ipOS&(s9g0{Ep)uNcHXWnXE6N!lkI#)6ok3ENdX%Pcj%*0YJaV*k`74pp@qAv- zQxUflruk4l)k9g#D(&8VZmhvGb|p&N72AdXpvK5mY>B7@E^hW(WFt zR~E4bGaujEG?Mu_>v9965tQM3pC3VVfMAR7q&QE1Pc=lKx-m0b7Y6Iv&5iNa0mpU9 z?oQd^0snE9E!oK(_p`tk?6;HsJBG5$=(#1qMi-7v&P(Cql295Uy2?31A-<*#q2NfI zr=K2HW}{moE;I2=bSa^9pw7%`Hcx(_for%HfF?D-JIE1;*EP~Bc}@9>eAN2&n7Zu> zyO;~;Ob!DW?gXh%sZ^{hTN_1)P@?pagbKhvS@CowCRwcLtyl#2B7JwWNXyvgJ;oPL zj+0FJRN)d}J_v{^TbYF?&yO5qQ3lTDskEt{EAb!v9S{?tOk|VlLJj8Mq9134U^3~y_!xn}O`mw8qW3WZDTghUwUN=Wt$E`g_=}(kk7IG!{8I`ZU zeK*+A=g;wv2L|Kxj-gmr%b>QJ4l@r+@5;=9ns`Sa>Zqq^45%4@zy1N$K5pNWS)6H4 zQv*;S&H@uq$|<4$p{p_3v_GH6$)K86tO&u(IQrO~&g0%R;?GW0UzvK;Xi72LJSy=^~M-l8$?`-7ED z2bcY~4eulS<*iH}b7iOYl~ue1m1sY&%@f;7-a{4vA^}&5X2}n zWaq#C$)bPg_<5h9#Ak70s!5{B5oiI&_?+BwEk<-JSN~1omsH=(EYc?=>GUte?i1=xDzH6xDaK(`?p?SVo`W&V0MU|7G0g3{ zIdp8e?{Aj-cUaluwfGw>!*=?zh4?p#F8T4!{Daeb5-*2kIwSIULIe}m2?kw_F)g;j zjJvELYO!#ra96j#j0#$R*4UCv9svA{&9d%gK*Yx4t;uXgiJgz38#s2J_5ZNHG^rRA zXH!7v~|4*@3gUL6@(oswP5c;c1?0V&Hm_Y9L z;n3*2)32Gwk%#R^@rzwI3`8e%@&M_`dW&+pB=0@ay2LNj^?WF41D27Qzx|1%S_ado zWNlktW(;*!1Q~7bvMeJt$_+TF2}{$t12GPN@>fd1bFrsEU2RI+!~zWqGfo?^zGUtd zc21A&Ut^l$D5gK;FeP?HQXL?@U=20MLmLoNY5~=)ZSMMp*vAK9xY*4h`ZJ;dfokSO z3kHnoAVG8*OeB_07&<_d3XB^vm68w%`KUAy&SvUYeF7Erl@Lq;vA6CQii03mDt}$= z;eD_L?xTJ-+?){D-p;h8?J1rT*U=ibgD8@MNqPj?hf&jQYSin{F^0X8?CLz>4&)of z*~k?q<@fkvzZ|fyYU1R%-~D(L5qZIPJittKkk~A@>pE^oLj#bcDgjR4{CS>*D1I5f zSKTWGpB{M~vBd~!JEUpT1kdM2GDa48W{3Y4mCz#nU;rpgqO(2Kvs7gsL|JO{pluSp z;W|lO_~%EcXv;dd#?4pEP;?Rt?92&NoM%d*dFzqf9rOH-B)kJ!=Fw7(Zz{De`~*PS z8zZ{%?rFOI+T)pG5bGA6LE|M?H1e5%g0MI+b8MJ(pU>^J(Gqs6S?T7kt@Q3e7>w`(yT3vZULvJ}!oD_i zTxTm)Le*D0SIZa$vg4Is>{j#n3j7PwS)L^VJ=dfX@x&=kOYhO9p}#Iz%emo|_My@n z0w4SHQ=$^hFb-qB=G)-m*gOR((FKr=D7f_fz$Sv>tB!;z*WAmwh%N3mmTMwE_*x$s z(ucM=!U{3!T=lP(A59INo!XM)2xkO48djc7C89uN6I_w)9=6~_o+ABF;5|(djKK(v z)c8iF8cSM-y4zz_QcL(^(eY4X>(EBTqV%4LEVDi%8k?omQhY*ndZfD~_GP z?+W%&4&3s>_$V{GM}ry}k=}re#bEK?y81B6XCz9lY<^;({xtOu_7&)_rX*)dzeg$0 z`wS0#&}3gtc$-;pK#db8H4Dg`YMbJlsEd%WQFC2n#Hxg+ttWP4-o+&m?cP$nOw$dP zE$lI-E;^|2m@>(C31I+dd>#NDbht()1~{Y+kfaU#v8LcB z`pH_Y=&`#y<$V9ITqlM9P~TK zR|RO1Zf43clg7NTe*6KNK$@HB@9IPhYHE)uDY(63-_Rwc=e z75*biFv8#P&@K%Lf~a=YxkB6$1e$F#bK@}8dS)hCzIpcII}uGHTEjbiARob88+Z&z z8ekC=@e6AG=+FrI)owceavH$~;okj5ZoD*az?tBtBIVtIaB#nKH$v?ocLleYMhmJ1 zOpMNAI(ZkOTk#cUH67M|K{}U()tv1BJZ5D4V}EUOVE^8Nfb*&R`DWwAtXwG}chuTr z^8nc|Y<%DdbF+&{X1UjU!QLRiBDU*yQtp7)^3u98m5UjzaGQUlz6FI~B`|$3UO540Ca`0?{Wm7IrxiwshI~vJ|k#2 z&2H2zPfRNLS>sdUeirSgRtor@K#2tP(#X1+&h-9Kr)F*mjCCYf5TV3rGi4F#vA7e_ zvib|y8exJXA$*?qb;Sa#Hk%tj98KFVe36>ts$@=CzA!b5A|KR^{rZ*d|DZYGOQE_9 zk{5m6!h|JaVH=03ZRNFoUt9m%sy^Ry$$^hre`bGGzMIUMSn6-FyqU@&H7^HTX1$P* z3e7C-zN~BBHSNp!Ot_3icyC>`z8PfOXa=LK*;y)-J41QWi<9ZG20jo=v(H@)M%Alm zsBNk0YKYMONxFOefbxsfj(595gSmvZt~szl5tw}$X4wDA9L@+`+SN^dap4?Q<~f1y z%grFY&q$&(VyU-0-OgHA*Kw^NdkC>URlsVSUIv zBfLn|Nsb2#z)Qci0a($ZkDjcAx2q!hMD`AcMY=XH14zh>3thfM=2&lIk!J#f za%N9WJU??b!hyQn8Rvve@B|7D@j_Gz_3l0Jl`wmV?ZEXl zoR}`A0_qwrw91EIv)eTA)d&1$@^Jmi82~?kARxTGMtAW9vao_qZOutpFQ6mW3$>je zwu3_;Sn~#x9zW)01x`f}aw)Pi5c>GL4eYCgd~3cn&Sa|tqa95yI0r!$4i3&Olg_xpkzDHV(+iQ#VQ!Yi4mU^aU3EM6MXUy)+3g)_{Wk2c1XZ5TLM@gVBqWG8HNA zXE6q{?mRQEqZoQ#yz}if_jLwJpYvky+EawloBdL^?>L`w$=f-_2zR+u2JCUuOPfbG zsJvHuKvjWI1?T#@k)5S%pemow6bvw`6WDwcd##^z87sLO+nhttC^FXk1fJrk9AyWX zWwXz&O+R=?ZkN^m+sAm}EWa^M618Vf|3qP_!wi8M3 z`@D)G;dk>=ZmgAL7`Ya@u{6jmL|P2jT0AqU_IIE=Dk6ng?1MvZ?}R~;XFz;8?*M%s z`yS9CE%Jhdz}wc=w(nEgrpJ>gqv+FAt5!z69pSr~08t+?EwY!9U+uZ4+iaSx!y<;d%wqF}9l0_>o2#skXBmxd}T+iw1J zA#q=5k~X7EdQ=h1h^`QNX0!jU^0~7K$n@EY@l0c~6*M|}3UQs$Z{74{h0NB}ckH?N z-gQ99cZxbDkH{|Nb@l*ejIm|qDW9sdLNS6L(=NFeJql@^CHZ&om(Kcz@+z?RcAIui zN#t?K=Oz8%omd9Q-Tm?uIp5Io+T~+!$Oj%Dj-;1hkl4s`f1m8>4JUIAv5X@>A?^d~*3x1a-Lc zPA##r`B`H`gKALSRJmo&`Ns=4sa82JLU`bl$JIW3MG(3sa*3~2_w}VUz21pk%T*4( zRDao$llD1-oP+;bI-Mg0M*edlyk}g;GJV@uerYu_X&u~uY7AjOh&}Jk?6~`7F7u~M zFSG%h)LFzwi^K!)Zlldnz&OGx$Jo<+u2iTNXOIj+8NT9?F~iJRr{=s-61f~Xaa$QJAp-?;d4@P(aWKa!{3D30DX|&YHHfZwGpMVFW`bZ^ z{ToF*>*8N7x33Ot?IE=f6fc#P0=Rw7OIySDrQxDxIfW4c+Jud%!@rOr*n{EV${cNY zD%Yv$8#|0_bp?8qrM-3jmogU##3Y z*cnvnZ}|p#{=sOevQ?We({6Ienq+#$r$?u z00-tPs+YZKyk`R0y=>S6i<_a?I=Zpvgq!|~)w?L_)vB)EWA3Q70*?sq4#vgS`(C{V zhbO~Q(UXfz_dtHs!YuJEdE9?vdGV%)`EErND|z~mqGbpoi+j0|h>-Vf+p5@u(T|N7 z5q{ujj%_UYXI0)d%AzxkyfMQd8_F$Rca+KJVY=+(CI6Rr=ezZG=axpf(Hvxe6fmt< zVdqVe+OegV9DqTN+p9Qm4Mrx16}sgbRw`eMb|Q9ZKZF5zrmfv5C_t@D!c+9rL7g?P zpF1RVcX|C~H$t&z=iZMgtTt*Edk0%sG6_j((Wbh;B&E8$wF2 z2e{()CB<_&xbXhv|Gh8``TJ+PM}nDv8Zq*swPh+%}`P8 zm_!^%^)_zg@t^)xSHXB3T0Jj=w*Of|CJ3vC{=L~MVNUvyB`^DS>(4iO0-D%Yf!Z+D zynwWNoKI+*5XRHyD3z4XxWRQio?e0&-f zy1CT5YA)ikKqOA%<*l%j^*{TgIajbzwR=~Ku2G3<%`GM1mio1Omimir49cj6SANr1 z#+TuuW}fXq63m_`0V6nxwk9>+h5EZsI*49sfba-%@&o|dR(#9PRD=f>niV^`bPt|! zH+4gNtC14Ylq%i&5@rp7_V+so?ynCU5E89YJ~Zpx?w60?exWRm8CRkGOXX~gQ zu;9r~X5f63I_tBIc)MFnSVJ4`MxWE!i5dA zIg;g^og4pszQA-y*brIo3X0skyB@>c`!O#53#1UoZR2s4=^p0WpgYfFltkC$)#37j za%v|C9o~@vrC=i>m+^O7tFT@7@zeQAX4i~!#N>)A&&)HcW4v=;@}AD&saTPxA)mXG~oSrk^NS2*V8+&>1y}vX;e6Z!`aG_OME}M@+&#cEdQyAfY@j-d1 zRJo-EAEaa}Te57xDQ8N8p9&3OvefoUT`6HZ4uKTa8**d191`XAtf%98fYtN>nW}lD z>hUe&kv>VzPib^7d5XzoZgqZ4$S;#^3#0za5mmtLru4fcE7Uh@iRKlbD5XUW*a}AGNm3$FUmTo za_y42zuxW7q=-8kzeMU4j#s#Jg`MCWyJLZ(^vDkX*`WWv1;DFWR9mAg^7;iPRz3lT z=V0s;4=Y*l`uw`O!({4ph?0xghncTz&24e$erpG|zi29e;*5)8sCH8?X!M+_2pR_k zgJT|DPH8L9~b$MK-Uo9yuVQ~6&^z#MjjaFe$} z^Niv>@~rivq`DzFSqjN2+irxMI68ElJ)(u*utC>f7-~Hq`LtL2=`g9?L)ED zFz@s*8q2J*Uto?ko>X8qCZ&(ssj&aBwS#vP=;VvICOcR^iZnk&&9^qXN7;KoUYs(Q zSql%qW}v^Yn;l&FY-JFFNSP#n+w{zm=P_=U`{mU)2vMOC#t2?DGDaembLXR4l^4b? zcnb5rPT@JX>QtCskIY3BQ`T5NRR?%+t7eD^M*e5IRQN<`Gh=MGrIx^Suk`R9*ZdeD z`ActRjw#vdE-ZeQ!bH5D(7n(9&hahMxRw(-+#3p=W4s9S_*(U}O3dZ8otU?Muq2u& z$47z+^z=ul=ICoGYZ|eYF`KQSK!efL>i0MR;dj7!BqJiqsO287R;_snc;QS;!cP=Lo(Ldd$PBX z`(^*b-~6StjhA$;J(lnJh$8esLVLbz8=Za4I+bVDeH+xO$%e<)5xpH_~c6R%?vkn2QkiyO9AGtUsIxULD} zt3QbJ{Qb|~XODB2qOU7P3GYm~pH$Aa+jjgG0*W$UZyTtY$H1_>gPF96P6W>qLFE{+oSZxyNxe89ustdGj}mY zW1z&@*vRt)KvP6>VaELO)_mq$+;$y+4eXh_6Z*R8i7*2ug(zEkMs0I#8=iKL@1+g- zB8UK8(oCD;s*-GmxvR<+a3<%j1a2dKpP)^x<+E;W{$G~tefM${K-8T)P@>#A^LYC? zNx!PPw_U;bXh)(6Odlb4Z}`1b%UfEt5zi?&wjlTBMroJaqKQuV*>iuhUPc(LyZrTyR2;f?-Ng(Bnm))i2Zr#u% zx@`aAJMYJM!ieXvsF~*KKZIaJ-8AU`$U(%G7>`AViNKuPc-~osN_gh8osClH6h3cU zXG`8fS_%N~eBlDVg3{Yi1-hSxZP$A+k1D{9o3N)i6It!doi8VJ(2=JYNcTONuO$0l z!%Ji|ov5=x8QrhlG_O%u>G>`8vee-OCwE(tjSDpMYJ~8M@p;v=hjG#yQ72R4feoFE zRvmp{A)QI%*%E>4(246R1k47d@>HkJhxbp+kvKQ`+0St9e9Sbe(Sz`rPE+qe10z-= zL**yVrg2wqTqu5xnaJxwd~Ktd#s`+TSomeWpSO}g9rwXUsQ;7ETXKf$Ud=MF@E9ch zU$iUTm@|jZgF|8IG{%MQh z&#w=0JJTC~Qfj_b_Ut$a+AS%F7SEL9rQz~q3m^%RWE;-k3+!AoYhe4-V)w* z?qp^jPj;8_Mt1TGyUBnl3u3^#G`taA88NNnJC@^8)+y1~hAzL9I!pJ4_zid>>)m zxZSQkXxk6E(f**VsJwG~=Oketpbn1)5z?%MQ*HuLyobP#lgxaDT z_@`&&baX7=f03$XisIvaH#yjM#OM@_$7T3C*v$Rnit4PfGc|5{J{|p{abG}%yGm!x zcp=KC3#ZQG35&KTifw68MW#kwTnkxqf$G;->7A{xl0gf&*;DHSIKL8S&;3d-JWuUA z+HboSm!V&K#R7W+k&{_n0iv;HJCrcvKU4-25 zfRMrV5B7f+RSE4=YZw(jmR|o|Vx>Q4L_|ROlm=dfi3TKarA~SMz`<%IDZBo?KYgg$7+Pz6uqmf^@|W8)aiI-|AuDCrfH9Z*y0 zP7kRe7Dguy1A&;g!4n#RDOhB7ztNBbd5{BFkdI8~ry@{npTFO}y07 zOB9R#fP+xb(Jq4k#ADXGML04w_QKUQ>g!Un3^Fx3rSNTYa7fxbh?|cc^2wJ>y7W*i z0;Ui>tIXL2&SSS=vho1Luf`6gb#xnvuwzgd+8MwocEy%`LZL%_H~)!bX+B#dH4uOi z+rZY9%;Vr~Jy&hh5hu8oKyz(^Z;+!4rgCwFaNad^`rfLcqraih2o_j(}N2(L$O(0K7sq7r8A7nC4)(yb2GZ{P=saSp!#eY*2$ zKbsF!oBNA;1L4(_o3yg;#D0S@#$0SDu{`-6w^L=#7CRvN@^}%_V6w}F!s(gIm3)@E zQDpINcyKX&Pye&OTRt`#mmhki@(%9mU&nFwrvakeQ3?}i5Pfdl2*O|_S2yC(?+y^$ z<@lRVW2VS;R&E!{>a@?jwc#O7q-?B}$S+PbYd;u&R>L@L-0}pb7x8I$i2{~dWVJXq z&R7-z;OgSXg*=0Gc-stN7*_SI^iiIiEUIH0ozi7dOTOl$ct^i!q{QW@vj$PM>ZT9j zxiMOR#zKB^j3~p%U-F>xjgPYTa-L7~^_Nxa?S@`-Pf#n{;F>wND1P`V6~Nx9hzFd< zA;`==6tzf5a~)m8G3R*2MYor~BNE@9#HSS_+#ulWSsgDXj)5_ka|nw{BHAwb?luwa zl8zRX+}1<<@O%7YY0(^V-#!X+^apkHE|vp57Ve5Fh;)TQ8jDGVn?WsRwEO9mIR6#C z4%Bp{&LWcBN4#tA%WU>ape?Hkz>+Q zPvN24dqz4yJtQmq3JdN#ywmWq&P+w`27y^+bC%^P)k<{G^)4^M^0Q@n(!%oS25@j% z{iqHnfmbr?`;cyGvlTj;tsie3)*AWUca;&2i%74(s20yqg`napXFixtvZiu!Yy}&5 zckYEp^?7^B6jx8sHi=J93(;nDefPceIMJ8Gd>;Iv-7T^ z+|{Y@tTY%NpjiJdHkIt4&-pkY5#i;lOV&bf%To&=Dmf8{1v|m%td6Q+wYhynX=WEt zb=ZjQm}cV{BLW~c#)A^GT%HNr9S+Gn8qCgX-`#149#IW5P-M7oso-ZTv_ z{6WH5tn=nTzZ-6BR7v+alMKC~9SBo2HQPXRU0$)^RC)TIXgLe|Ek^EJDsMnLQaNn! z^y`RPNOdHZR}7mRi|cRX&8!-kMtEWj*TceX^RN^KUP>g5g=Ry%fCq1`r8KhqMpF3E^u3n8}b2mF(<_zFCS@ z&-VEbZHS>;_^^;0nmw_9Wdy%| zhVKNfeEd2!t6K~k^G8S*5rwS}MV~=*T)_cD#5V9?giBV&;cJyI&9M0j7fTZTM;f{3 z5DLiBT8A;x4FvwZf1+9%Y{viMK47=LUIPF1I@G9CM7{6%h|e|j3}1&E7E2+{yE4)V z85*@OyOkHzqOUPeESel}x1JI>r>3kJ+Zppswt@b`Q)oRoQ3{yBpaOTcz41^@scgXZ z5i8rJDfA5-nT6Ed+Qrn)I{GjkEF4+Esa`%p@WiW;>r}AZ#RbiVhhtJ77=UUM$$AUP zM6dzUFoFZJ)tW7l`_HBIQMV(S~68UJTMJ+J86P)Vs8{Kw*j~}uH>V` zApsAshDX3-qWh=P{=8cBzNCjZjE4VDza`-E>P5UCJ6wMtxW6g>XOyl~URrhLW80|d zv8e2~!;xvgLOM}Y>1bYxJZ7I>BRi8N^-^B6ThZp3{NDRJKB$x~iM7JG#oH5 zvu;U}Z0+-8Pl^lp%4}UCIM^{mnV7eXT@nHhq|@CXJIfu_O@-ttCVG@`4XZqq=b3Kh z$b2KGe_pLWGc0jA$Ixw}Yd7>Pj+9ULwZ;=U^9)i=AV}kCJ>hrY#>|#e1!KpS)bksb z;%~onjd=Oa=!S`HHe|cXAQ(QNd=AJv5WW%s{`qAI5-e@|<8%1!+uC5UE<=}|v(<$K z*0;ntdtm!dLI`4|GfGJ&ks6D#Im=jd9bNb6Fx?Y~+wR41z zCD4}tA?GH85#$h9_4^wbQ1Q|9)fH*mMpOVfd694i>X z!XI@qZ00gjjZ>8ON8*t4!^Om#CNa!zmh&3*d7HW_lMJoIviH#K=(Txs5Ii{zcD3g3 z1cRL-YcS1F92ZXJ!nmV2kHzGxjXhp$(%JZ$nYd#B+Jf}p+PL6+rFFC`4Qh0P3*WI2 z2bJ(lQ)(@!NbzVte!&(w$-r-Ct)XHa5qUlvm*y~8d*-Jn8KP0u3_Yx%oWlIdDgAn73w}1Hr{%e!z~Oq|Cv);h`Wr-|?N*m+T`^53$iugnT+QVN zR+c?nIG1&gjmMW0tftwun;&3j__envxJBL zGwjiU_#bEatedLQKxkhqO3?LnP307J?eoI156xPE&yGRBwjOIk=YFY=A{hbi#95;`QscF4XGPD zhvAV=3uBe<;SH0!6Mk}ZXbAJ_6&oYImm8s~so(dXcU!f+as4q_Fg!WsQM}>*;;YhXc@l=bIx7ym{6xl&-IM2F`yk z2<#98nFsEmpeHsN_QpDw&Zf z^Qjgf)-!%;hO{wUo+Y(1rk9r??*~+#Kc0;y-%eNVn7`mKSq-2{(HrB2%VlXt)##$*+uQcpLz~VME+_nM#_8`D_5tppE5w2M)Kymyd4S3#5whBNbtv!y(LBKK!8Xr_dkjae zj4Tm36;l^~apTW3Sss=M3v6jlg z+o`(#9@VbQ1n}o18FbOGc#OOHqN@XRts5mr;f?a^14s#1*Ao0y$A2I~5t0w?hl4RYOV7==KRkYmtI4VHt~nx8pNd4md}$Ai$ju zhsr$dW8SE)`_Wg2LKm@M7jY3!odKVY;;2~=4C&0+h~DLhpd6O0JY@;5%TKj)-o8hs zNy(z_x!Eo4krC~YZ|yW=9DWYVcdg0L-S!Rm^Z}T#D9zooG<)Lb7Rku6(;Et{WK`%> zJRy`pZ1;2z0TIP6nP#vOO zH8Zb3;<#WDe68O7S5EztM-BI`+V^+oZlu%g4XVqWz;ps+`4RdDTP!X>1-EY|?Mg-gvi0(Bv?q^jLx$<$9IxE-9&GFYmXIs^=H zIAn1LE~ZcVBi&_nUN)#pVzH6af6jm^Kw5iN3&oD7vHxk3n4wS}s??3Xk?lDd*OK5G z$xtTsXdnWCKP=y+V^8Q7DqRV!ZG%q_#*0r6^@)oSKoP5%drUZLG$$41;T=k1>k3p! zOQ?)zS=CDWqhAmS*-yC*Jl32F$E0+Cc8)1>!CO;XzFAvF8*PZ}t$H+9#B&bj1oZ2X za704c(H>k z;QmzecEI$>vdF__w=tUJht&~UcKW6nL7k*K(e8-4QW$&a#ClET9kS@}fd{X_BJb*< zMqIVk=A;nTpqx?m`8l$Y{A7zR* z+ULas{!(YYLr|UT`eU&GdcoaTdmDC(Dm!AL&cq{a^Cp5k+i-zZMQvaQ{StJ~F`98_ zSwC+P9riD@aZR(;xSvZe2O()!01KJO$J_jm1Ubs5T_<73UaFNLx--4Y6{c@FDR?Fx z)`S$kDgGx=bU9j#PEPg1`?}A^1#zQuR8tAhY=O8_yP6F#zvT=Gf7N(LLQc_y`?F0- zSq8~v9E~GU%7Q^{$MHUF0%SweKs_F&(?-(~(`$DVZUOn^i`)ldf~_C-K!KGSP*2@N z<{SQ72@mhscP0n`*QT&=%k$z-AZBKXdLnuC9+M6oAxw_#f76!U+gxNU4mYAeCR_YO zye5xVZU3&*=<9*~5&uhfMq#n?1ywu)WB;aE!hQ%ARd?2$VDs_7L=S&u%I)+%k(lWf zeN$l(q?_uZbDs}P)<<)^g8%CU>y@p}t>AmT7{eMNv)?}?2SMGby+z;N9(I6#cKkN( zyv|v~z1?ue4Vj*KBIPSIC;eLTAGF!Zf751O-fNrhI6U%P>!wzmQ@*Z2A6t$K>qjm+ z^j2>ODUd19TwftnW@6QhNt_JWJwPOYO~tfkP-8h5r*uVxbsvp;q+{|pE!^82#Yp?g z0P?KmMq{*x7J3d;BF#`qjKm+si1Fe*)O5$?nFvBVl9pZ*%epobR%> zlP)CoM!9o#%XePrX)FnqLOw;`H)b;T3d-6Do%lO!R_e0e(Fn->gmIHOxsJ9~sROAg z*PFYXW8YNB{N*Tvp;aPyL$SfjS_WpqfS~@p4amCQIfKftRVjofi$?QaygCEqW|8R0 z%-N-U=gXZt9twvkE?HEqV8AxPKuS<$)5c4 zc|Fsp(EDu|6j3hS*XMs1Xp%Ms$60xK^rRBf4H5>E6NIX%3>r6kcCMbMA%OQM#wK&y zPZCm=Fh}R!V&q%8Ai58jh$&kOtae`v|$s)ol- zd7(bjArEhTk1LEjii6JYyGUBB>$^^miizp4#mlg@XQ4Qv(?|<;chW_$g6q2S)~$LU zyzdY6E1~g2A#hKc7Wd%p*X;5KjBaqZAs@MqUcs>?eJbOBEVUUL?3>{o@R#IYbOzOR zHOsZ9Oop0{xvNYM{ZSPJaUScX2+dVQ<=2IHw}_JZflBeR?s6ZXe=x=7lV-DC@fK?p zmh^i-FGpa>rNC;L6_(|HB(b>=&m`;Po`s98%x^SU(X4g3uP_Y>y$`=Ro?Dp_WwkwU zxGdB?P=ujgUz(jMKUjI`0fgo$ay>f7ahO#z#6L3G&pdQsH4Yk$Y_`ffUcE)=NDs8# z8hF#_jRbGmt5YV)MacDJKc_7CbE%pbbQTrBY5cAVA^mZQ-L^&Iwwf_|jCDS%_fp%L z`80?PT^ed-uKfZHw+5x1AbUWgMF*^8Eta3SK^<(iZ>N3x2&P5#7rFmIz{C7E0l(er zgVFYIKXL8XCHJL4wAQ|Rew4@hFu2s5*hnu;cy7RP@i5Kq95yu_9I89v`bu_tm7yYSDPiL$AZ77uH^9z`W~Ddx1}X?>Wx6e#Y`dB0lECtE56uR#p48(9X1 z^ojS-2SCfMCTyxd%M)0_J16zf1(=nQYlkk;UO3#49t@DqK_U>2$ct`Dr~Ix;WAW>- zBtAz*Cj`{q?@!%9eq=ss= zF-yk8&n*{M(#QmSsS&58{{2PhL(JpBuyeh`g<#qoqU+na3LO|$oxE(jriZvliVTQf zc*I1~nf14m{}N`W`SNyIk2SF(+hPac&W6lhDlwaF4= zX24_pgLp)>PfcVou|<7w$0+P3EqAU~EC6gQQL(=SbUo)3yR z40H;*c&Zb~Knt#?+AOGz(d<>f><;~}is2>k#YQdiy>b~_l80q_qn-V$AFZK9;p>S^!?&(0utuO`O{+DIz zpWQ1AuFihfFAuMu&o7g7uTA_4n#&YsN?9AM1o~X}w${&=7*`s93Ns<|j?uWp!6Xo% z5FNdl_0|b1vdf6$$sWB)E3rb_kErXd-8VGb$pIy}Wzr61^9SGUFm357()^=dHMrgd ziyDb?SC3L=X=$e|cwcJDYfPL=`WMMA5Up(DL0~j6-)C4uVw#2qq{{NMvwTzRI)rvT z=g3Ibp201y!Axv|-$YsP5o;w%9;B1TOUqRXjGum_QT0-rX@=v@^APyG+Q2?B2{~r7 z>NM-4wrg=vq?G62a%NymE&Iv4#393!vU$IJ~8gA#~gPPrlbBQR48I&zq>t}$e zfzw^++2%ZQAD#k#EMS)|uw-OMlQPM(LUN2(I&fyD_fW#-{%B_%z^|&I)zU;Ras`RE z=KHJS-ZA^AB=D;sb3dQsITQ(g>^lX@lB5ZJ-U^}kHT=^QMoW<#vLMXiabwAO1d0>;xaGKf0_=$g6vI$(ePuyS))SPnBg%dUBNd*-dip8`Lh zw0H8#@+`>%z?*7WG;Tcr0?lR9b|NnPF3Puy-mBBrD})sff{X~p*oW-%YH0N!BtaDX z^>H5s_4||VbaHTlTm2TZPtrR1;QQs81Ss4kH~geHs6`PV&MR~kA- zGu!WyXeobAEHD+=%A<23X&VJ!|3OqhC#fR0t*bAloh(*qdvTn2G@smYHG_tn&#XWp z-yl^p4-Z~>WPg3H>XOOwvAkUJJnd}Y7&gl(?qb%D7aY!LKJ-;m>*UJIc-wSaXC=fr zRgrAD$%Gj*^DYw>4xcFu-$N>m67{t|##azYChPrvdY_B2Zh4`#7ig*ToYs3(yyXEu zpcb$l!;{QY{`dyg7K+?wPx^>YDdD`L^d0`5^lG<&ETbE2yT5H2U zJaU)}c6jb=a5$|(aO1)v#sim1eXPPWQA)V)fNZlx$_<3)XA?aF`yUjL3>& zbsesoA$mW=A6oxz;dZIj47xOEu5+-SK1Qj{#a>OMu>2!O0#iMhY!uF%(rcVbHnNFC zl$U~rwtB_lZqP0odpwmKa(iK%kgaH9Qa62{qzm|Al**wtSG{FJ-k<>Va~#|fTq4+5 zgc`1l5?cmaG2?;zHwJH|1MvwkAw-Tv26-Sn>aWeOz%a& z9XI*BGCB1Sz4{%cOt6`33~0uThEh3~wYaTBPhxPHnmFXNz-ykBo}MP|9HwUblPhFz zbkzkkd2%WFCfg%wi3)A$-Ndak zWiet&i$IsX}6;T_>ADi~+}0L&}#K8z)j2j7>KkTw}+g7+q> zfu(>QV+)G2yRwC(j7ctAS*dGTr%6*yg$RciCI0qc&-%Bg@Qru>l}1=14I>j9{;)0V zews}BsQ~tIRPepq^VzXAnhrQjy%#LnUfW0@@$h`gX)DZk9o)hY{klKyt#K;LqC2a0 zKs_L8(y0vEc5BcuFCn?N^nB*cZ%uf-j{G>V=rlTXXMOPK4cbxfRS0|Ak#6HpeH?{j zwQe7c%uSLMWEe?i!Q$=x9wtNA=CJ;^yeQD(V}0b6_7R-hUq*d+S{_8nxhec2qnyG4b;EkAjJq)XP-M3$fKN*0l?SKvFSw z%dIzJ&2)^C=}aXIJSDbozQB|buXzbucWdy?ITDe@%;rU%qY4vI*vH?^ZT1O|`&1l5 zC0UUjKVskk-tHl;f=P)}#S5UaZH}G{<)oIZ^&n6&TqZ$>FXnV<8&ITMpG9K=8^6Bk zXRc#1ZE2REf@+>p6cFKBnMoP z#s!EF$+jJIX7c0_W~n~U55MQhzUOnkAEl?RY{cS#W zf@5rF2{9M24Xn_ReKZXf+?yjusI2j8_C&g|+-$r{scPLQj+)51$Q zA`UWL9>x~2sh({*cH_faSr>_nkcvLQC&)V9=l%oI(f@A^p1;LTbSX3Dl;kohYo#s! zz5jXqVZs~d;fdyBg0N9_j_EK4LJGm_j#?aoxxhQaSgh4wW|j2@m4DQmUq3QcsGM;B zXrZ5ilFCwn6AZOX%38gV-l6`2MvOC6_91WQ`a6N%ZB45Qxfa*C;SUuD5}+nsnHzDlb7rkp@6*HBH{R%Oj?~^K`dP9-8JpTTUQ>X|d{LM94*xVw>x4#Dm!bmAR3Z ziv;ekP-VQ>v*{~u^;p(Ko0H{&$<6g2o?1Vz^s z5#b>ENFA`{#K4Drgd2};*a26>16n#VFpIoXVst-lkCr7!#*--4Q^d>m@0OaCbezg0 zOh?2Z_9%iSR@i;KTMJ~Ki?Z+I2o4zE+QFh$^VsNt%mJ!f#6?VFT}Mm!*n;oM#_Ddm zd1Xu~TYziagMy_gJT*VKJ-gzeDb8qx8s7jfZ{8M%NOO9wF8wWx<$HR^y~dvht~!^Z`$vl9VaRutG;3c^)A5m zpvEWmJk?FaTk{Y%Ec`7@2BNAd;<}-M01W+^3B?a{3Y?b_D!=HoBV6-^RA1w&WXh#a z1Vzp}j)P%ax*+~V4L`B-5}OyD)%{#Rafi|3{7gsI;S=YhrS4htq^26EW%GHLtJ*QF zt&<7GI^NS+O3-*BL8xtm(?u82e?$HHK)K;tEpQg*ppc?FU=)L$8bY`2ZMDRkcwDG- z1QI2y+2>z5tU2;^Xu$Ek)!0FN&$<@h>s#pWeS?0^vzwb6^TiDodffk%CI7cB{y=`L zUAfjd7p>RmOh1HqI#c7!)|2z@3?W?CZ&sJ76Y>38W3Ty^ypBVMB zBK9!rVw;tWq62<)#pOf0t{lHkfpVma(dp}EZkHW72Yv5H$|sO+7`b;sS0&k{IKuAB{PUBq8PoTHo{rgj3j)RX{sY1@ zvwRB_i((7L|Db9YV%Nf@RE~maMzvInMr51ylOp30{8Nb)K1yLH+`)pt{@CjYma>!N z5<7Zx7Qg4zL3V-%D|_;9rgtsiiuv2M!PSUJg~@ng%6av;rQ}=(2xi%mK&m4OH%sc& z3>^p8_VLW^M)=AZrWD-wshcs?2E^u(GZ|VF+Ow`Rrb>CKlU|%(rphKq{ra<(k(nMS z2j<^`?-E|cx{G^~c_j2aO8P`>MYBmRJ56yx410NR?5;| zQa_=PO|i(-)3Dib+HHc0;DTV*S)WPgu+)p))`>n*)hO%`<2qUYSq8WKcZ)uVMxxsg zz`hdRc&BDqUG*;EbvVmSPO4O(aqS_w2v`{eWCMC;VK*&s7BFj5V|4|uUQ7>KgKlva zEQ?qB7A@^#&Qagl^nH`y`o{%W9rS#>skuW}`W0eYw>I{Hv_>Mxc6Hme^F-}KW0KRH zcMA_gr&<^AYvi}nv{R02?LSW@m-t6R!KKVw*2aGTKN9877_L_@-87qT#64rvJL@G3 zO9|jDYOg=3-kGkl38U>U>ZxJQp!U2W^1MRnLpd+ix;(dJbX)$ksn+<)$2kP~OX|h} zS}V66wD|SeCewC6`wpVyI*0nKlIqfkvw_Ejhx>cY7avBnKb6Tua$$jCUG za32O*ymHrCT=tOtkcPMUhCG|&!fT6#DJUeXz{}6BuRJj6P`r)Wy%2TlWMUA|PwI+X z16=>^?+RN{P*pbwpBg5$1vO#=_|Iil7BJuoZ<&+4lRb-DWVjSQW1Rm>OJL@jJ>f#; zQ&V7jdHtvL+}LAGh;z&ug5e^xrfg{H{CmB}J^7k8CK2bjHKR&Zj8L$h2X`@_Su4(Gba%-@V1EY4=?=5`*a%1NLelwH1TIYWkokI`!J@T+;$IgQoU z{56oFVas|_MO`839O~Zu1VW(U3dp4@ysl3o>&uS1dO4sr&RI=O=@3R0RLH~NGoM~;9NpO{8I?l0ctZ3okPn3U~eI=fY_6nu2H ziJFy&h1Bj1MdJMZDwT5?BI<08jV~$iO%~$k>J1cPK}SGmyZMzAR8Vm(Valapkz$dH z3`C0}`z4%abE)-+R4*=HIl9P7^<92A;*4o7MtbbY6|(~kVHO%hF0n&{4{*!3f8ehU z#IMKpTJdsKS}#>?3lEfZ5u+C9hL*XKi1x~Ws$ElQU{-lFyX9t5w^JGAV4 z+qBuVl33IJP{(RFtkji#h4eqNnrlMkH>rmfhD}~%h$chsCcKBWkq)chG<|zWu4an) zYg5QJ?953)$Wzubo5~d0IrCGrb7jVju$84xP}OK`9VLG)M-BZ;t4EJG1^ zkfQ4(zePUGiS&Tv{?)WyPO1n2i!!>Z=cT5XQc`9gk8QFnxQfDkyl|~5sJ9=+f0Lt@ zbm_%r+uBRgz4V%r3;y`i>XeU3Yp9IItc~e)bzb3B?M$g0%Jn?vJ;ea+@AQb-72KcT zKkj0baYfAoW1n%ITsE;kcxKs&9LVh{K&6#Im527+YiooV8=s%w4qwA7&#j$`R*Z=% zX%`bRxc49qJ#<|l|2ej)nF>+PB8A(#@y&ld^vVkhC()x>0!V}%z*JSY^i0qcJH ztAIT*%BJRP2*=*{6cTl3i6=(&g3pN{bR4B2*4cc(o&75IHy;XL zyzg|vYJPzC+Zm6P=ZS&wdl#7bo#XgH5hMlC=Y2lOn`{lzF8S}1v7mGW4>6KK$Z_TE zBB9bbPQI9RHnsJxXC5ZKKY4qgw;C^B?#s;@sm(Y$z^xZpIvFA+E;X~feqN7o0F_*T zRN2l5my7v!*v|mCY>^He#a3K1c`ybGPB|Bno%y3wxq|^wxOP*?ZO$<<&Hx%}y6i-h zn?!B6DufPqh8DGPG$66{HwEe;xDpJ0C*XOjlXymvXr;r?bo|J5WVjJbTwHknVnw5S z+C~;v`-24jU3m+^Ra`5z-kXV*XPIRz68l9bDiP?4OneGy_vDP-cf)IA{LYy5d5x(A zOAE{ME39D^es*kmxx@hs^29{;$UuZKQ==|Lgl}#+Jqf3!6`23{HXo$O!kQA95q_8` zb7HPK{UflM4eCD-C&0|&>#$HB-#8)%CRN!1D{N>bc(C!+Jxz$}#^nf$WP?4Rd>>z? zdkUBB;v`v;iRVX*;N~JGdo}$=Ps#y@!}(wue=y))P}wckkR7Tbymd9=QbOq7g?{ z@^St9ftqFU-S1=Xs!ix)j->3h>-7pZ=5YIQwjk#Q+41V%>x7CMtI+vJzfi~J$Mu?A z+mw*s=KDpMP%Wa(>|a7B-qn#`4@Rr{^IucdZUcKmwlfm`_akhkI;CXtr*FC;fh?XP zmZwr>yXccaz#1^=Y)N67pR7-k;Kfb_7^7n#3lgSxo7_k@PJHZCypYwWG^$eYsd;oE zrH$s1Ho9SFOJ|8JtoK6jo&zn~!PBzddO16UN(3|aI4cL|9W33DoWV5A3#(srBNa!R z;W2|$=O=}VR}s>T?M~~J8mlEc#}BElo|uo|2;@?&?fj(+iM`p+!JLoW8WMQac_hq$ z8-yf1on7-9zlqHAIJld0Zs!gT-(L?vparkw9Op zy@5w>pQh_y3w22suFv?7?iuViKmRep6|eJUUJuP6f3LqIQ=BWNo&YnYj-EiYcVzoV zWqg)g=`8oFU_Eg0_k74zg+Dh+GTy5^HjnW3 z==BJNwJzX5GHET`tk|+i)hvk_l3UNU+1CR!k3FMyq4#WN8Kzy*I1!|hx+lZyL(1gM zBlQnsL1eMnyLnQ|hlJZ!;;zJ_S11u$sSvNM#*>@MY`UfHiCc%&h!fZ(eZm0&5RlL? z2#A>OrSG`~9n?yrRvA`qtn$ zB$8{q!DT`58$)2BP{oj!Q15m7L{QDF8%-!MGY?Q3RW#6sOAQotK$N!0BopdeyiKE$ z_dU+%9%$263X(U_-g$1VQt`8ZG$bkpxlHC$am6`2luGW4BWcC@8F}!27p*5X@JB?W z)1=j{L-M!`{S5prR8q|v-WpI7nxv^)9BB9|a4!}2J+9LYD{0JC(!Klqnx3_Ez7+Ao zU8ah(8qHLaIPGqnrE*5yaYqCEdpC^19}dNO%5r3`Hc(R7(_+M8cKf)@jyXfKA; zxE)WRPt^=u(N={FYSXr&es5b{$GY8pVwNr| z?}sG1#?at4YTs(8ds0C1N;mU*u8n_#jW z6>CQc{^PqsC9>}jnHI@Pt-CCq6c)29;(+rDpNHH%0=U*zWvI&VMIvbPJ{o5rRtg37$ubEMlcRsP>}G zJjn0CWl*>*cVOJzF`@N5LJ^c1<>6U5QjOxi-P z&dUHRq1?w}_=*j$_s3KA&5nSHyvkN2UT%hC!(EEbUT*&;r^Dp}Jg1Ri-=(1NXU+Ae zV~yQ)({>K1GkBWZ5>DW^nz}$E}J`Bw?*s@qj@e!Se9%{oqBOou$7+C0ZlAPPdMiu56@?EZAzRkBy6Q_ zFYu~{+RbTKWkpSZgnOQoBwBVzylZx+BDb%b}L;Dm~>3jIwyeQ$-)gdl5f zgAJY-q&>$ncCJyfBRq}6L&3o~liqQWC0r+HPNQRwJJKP(0qB*_b>Q<*V6asCLnxk3 zzl?EdTPoXmK^}Wb=Sb+VJXFm$O{v)lxEBQ#v$4qZS=3E)WS2a)HOU9VJMnR#$uDNvrvY5m7+46aux(6#j zkFCJRKD7izgUAHf5Sfticfx<+1FxY)NVvZ17#6&L$qAX-@w`5k8GASKli|)p4F0`q zq>}m$#O14`ItW*=jwee=d#IMq%Q{-~2j^wuLww?MP}6z8N|L8`ns{!8R{Ru&Omi~_ zn*{?2huz^qQz!tUOXA89?+pI8uJsfMy;WWs3;{C&o2XJZ^sUq@VJe01Q zb8B{AbjFT;GaXPYVu_rJE&4{68ey)?7x;%ZIxFTvB_cV;z{uGCdG`6?$Gk2a^b9XUG^mEc8m&Hsy^)sNb^0+T^j>1y>R>}`EF{S=wX7uD%X}h+1OaZ9P z+F*)=bnaX@1?_d_ySJ?F`FQyX>5aXjGCe7ib#3FI#u^Mk?Im?*boI?mnn;Ib2fL4TX*W01(`XVaaJ+i$ z@VJX*dpk~=e&Q#eQ;l7?)?Y@mm=LL@snHNP_sa2}C{TYk^Vo*s{D5A8jA@11)UG2$ zWZrgJxcyl~L`0;-=3{dE9V?yi3^Zkq<^3 zx=Zm|a6#&{PcOvtrpklnKXh32!LX&ieW>MAf6rBZS%8oC$TM%ijCR*+46*zU=5 zcl9jaw72JX?^EcN5;7n=9z$ax8~j&K@jqn*zXt-MWC7LIAc-sFm8S$iGrvU@!pMs< zaC^zOg9Z4k17WO)g{jdc-|O|2g06mhUCb5815r9O%A_Evo0sexIQEH`B@xHT1(ykT zno0KEI*DLV8T#kW*PiK7(8^r_RfTo|_a-kmfyRqD9WOxLD}@ZAdX|qQL?h+<9^xi} z8idooYkmisg5f6Z0u})0%A5d(GF1Sc{D5Nu#xK(^pUwaVzy9%XV}@21pyL8 zCohNi*-MzpEU=W^;&=su2nv##YXzqH6CVa9N;9>bLLUkSnVKz6oEis159ZEaYd#y5 zTAW9$p@nY+oKXVdwG!(GNcjEO>eQM&>Up^3-061BMtB%+4u~J$%pIX@lvx=SjPE(8 zjVwY%#J#zUULaA*sC9Nl3*YkkXg4A`smYQZAZ?vZRy}80xfWR@e+iKK-o8k<@e3XM zKHsd_-n|hXJg7V#34Ip59D zP;M476f%`WZ^XIXL1yKcdE~uo5Pt=&w;m;RoNp>Isuesdh}&RP`E%A^!t7}bu?iH_ z*v-hT(N7U7HAUOIDfqjoam_2e#>)$XZD1GdB{~#+uVk%io^aJ9wvb8nI~Lgi!<&Pp z7qSe7XTi!3G}e|jiit`&;{;5UcY)w_R4F4CmBjBMSmK9l?t5|5I%_Xtu&02f{ z3XD76zst&|oZf8Fe~uh+8+A}~3S!Pe>)Rh)S^a^xN>~>s26oR}xz#3XSJR2VB`QOw zzSz4=+MUZOr-DzDe81<^juYEpaR;y6%N=G8c{pX#Zt)F`9FcSkFNZZ+PQdr>Nt1<% z&|ZhTn)-Ca>(*!p)nujH27zRpeG`^@FXKJH6xYWrI*cMmI&6$Jvra|JZA?nBlV69m zO8+h_^kl{hL{x`^C4)J|48w1<=QULB&et>+RMbDL1S4}a)Zlb-c#_jp8b%Nbt#1yt zz}@JtM-`pW3M2ob@#P;bpaMkZcntbmy1HE9vz!C{(g`-!U<2c&c;$LX3UIy8y~~Y` z1a48u|32>~1`I3<@fmJa;cS@Y<`_kH8uJIiRvDH}DR{o!1QF^&&stV@#sy zsD{;^X+P#_HVg+QWQUQeE(d0OgSbtnL=Ge0LLmW?p6|q3lH{M-OyaMSaU4&xCYAqL zU66cr9|bc*(_*JIItgKB|svlayKX3Gx%qg;5D-U(=%CuOG=_r+#VJd6Rg6m+X7nqZ2DHB zSFx8r(CV6D=U$}sJ4FEdo^?!Lxo9a&rp?z0T7(&uO;#X<-YGTsN7vR+Z@Dxx(-m0? z7!uUVotF3Oi}Z3DwuDj&_SyV5)8N2aM7|~kj_=RGHqg{auxF5)J$faKDHm{C6QG4= zgV_9j_p#(1MBW1ZL2Bp??|J~bnfAjVxI1g|qD$m`RI-WriAB_))}9eKeY=lsxS@MS)8n0ux~Mq4nUI(>=1y3 zOw&IRFcomJcS&+c6Eis>_CzTEZVcoO>Z=%v@+e%u?B7imWd6ioPGpXRWmg}k>38IN z29h$BlI~5;FV2O1^;aD8!c_N* zaoPw9=HI}cR}28Rq&SME%+Q11vzW0r_Nv%K69joO_R64e_G&r8uwkjwzVTzSPa5~z zUV|lVi(iGpFb-uKtY`cogbV?MCQc&-rRS(FbmL2L(5A9XvY}Z6E>k#b)}d?S}4jebjTi5THU3O2a@4%G->nl=fSO0MRS@XgY@nN8qb zB~*OV+w0*RB#65M?x~F4DF%0zlV<5Y`}ivFPS|<3hr;luP zYsd2)5xk@}nbA}_Ll;lnLWw;#@Cs(sf(rui;i?io!E`6VA$#Sq($F_FFe|UK#g*_%3X_p|Nz{HEoJhMiXc6@G#=v z-!7%9k4y@UEok3Uws7TUAb|6tC1RF-feblG3GG|(~4a#-W8Ax9FRqBe~ zQ3lVUCh>IcY+3e3{9D%5EHFmtrqJ`?M&vMbddk9;^zD#1NL^$7L6-}3{3XLe&|IB$ z!j$~ffH7E5rc>QL_NEDa{RX}oK8if^Be1zEN!R5IPA@51$w6oe?J4lF`Q!ueYzZBH z9m$y+q8dqYknzzCvD@%H#@l9wv1q^Pt7Jb?ye8eiA<|Gq%q}m{=U!M|yd%3;U-Zeh zw7{3qdY*`TM17;0OkEIGyEt5F4HmMhwVhkD6TPO~+{&QuF`9diFE%qLS;b-=TbI{#-d zB*Xz>z}vI8bz4Ai&3En%^aDS{GDZ>YR3RL5JxdsnmSC@=n~%;ofsHHWO(#Q6WMU#e>@Ba? zT*gbMnv!8wh_ND&GnMFU0n(cbX6Yx-;5W%1g@5nx14^WIIQtKbJI%7=i)(l8sQ}y= zSHTCYS8aA(&oD+qkpdOm5w;!2x;~@6lH2(rh=0NZIdck1`x0o!*bwCkydDGkmSLEz z&iVSCY+*Kc9h(PR3eZAb19SkW4oGqVR7U@zL*j#k1R_}bgf~bx?mp`DI0i;gQt$Em zY1M+fs{?=^bM>+ktlCk%qVswnft&XbVjB2;5!!-tu67 zt^VqW^je*b6B#PDhxhiHuxZJXeJiR^TQjQBZhu^Hd^L%-BD2{u=w@8oGB@df;mIH! zGwbc22qU_peatV2YaYAwK-+A)Y0$8{jw1D&hy2|UKyMeMkTo8gs|3_d|iu%}uz zOp_~qGzq3bt96@?_pgOHr%8IIsOASaW1>8bG)=M#24?wOb`a-atDOwy+OQfEQwcs! zcg-xg>p?Bs9*M++$586N<5pf__n#p>1D4rsC)P{A*WMUw`2++^=?%ww;9SDY<}+JU zH0bW)VZI^i0ak{>BhR40?C-6UIaj=Mc;;&>d&zTtZzmzu1pIqUeni zc$od?+isNKqtE`L?)d^~bHuWV2s1c>PAd~X!B&gb=@DKN>3=+8Fw}BOlKs!KXm!*h5odetX5*|2A1vPWTwJYb$zvTV zDpb}4d*>F|!+*D_VDAbr60@Eykk>AGy1Ph&F^qHk6La``gK=%n%DA)B(8x43y5+@a zKN_T=AUOQBrPi!^}sdO`{W*n@#zs}|M@Xv4oGb|e0&AYeb`I}?%+xdQYA zzkG6e4x79KYShcBx{W{EfPU&8+fo9GRM(31^(}`tj_ZQbo}@*rLFzjO;?x}SKX!BW zE?%8|72zh7)WLQm_5EOt`mN(5EA^MpRP2$U64l3FcWaQkuhj6ftMCC*tw z)p}Gvi#)J?b*X=yRDBa|=bHz?Z)((4sDDOLzImNLLVed!rKYBPSyo$7Ft|AeXNy=q zU~$?}P~vteupA#>ehu|-7$YDJi^*A$q852Q(Y~1o1q9`oEt8i8!K}HSI^iW<6zt%o z5v1;Lpin!AZn4va!tl(`$O;vZu703xT3s~s>bPTYZ<}m5vs0f)kbghF@4Ity@EAiM zFiHNLmN3DVP)4>Pd;jGdgJH97%#WZ)I1tg4c;F|n3>GLc%fzqdVc8_K{R*O#Zt8k( zT6@vlq_x`c4fI24mR9+2y;|UhIb(+dge*=zynVQIM<2X3a057UXPBbpy#6Ad9{|^d z|7!6gcl$YQ__)0bTw}wy1W#U@4ujjx#%gg^yX8pJ zd3ug;VOBT@=bS>;{FpsRPEC4*PV(k&zj;e{5G<5 zTZpHxUpj7#V5shg|Ju`6DnG)xilFq*MjG0E+8qjOT2B11_|cf}t$p2rFEj*&Id$tp zMdCl*R=Ib{48ddA(QL6^T9(2^7%6;{aiOf)l4@zph?z+6uy>X<>nv#c-h8^JB3$T< zX=`BA93__T!Ix9-8C|GCy#+Do&6t7h9le#Ma23DKyT8+y=)=#bnra{C>qntxQ-JrB zKjhPcfL(xHa95~HQs|l<>Nlvrym?WPQ6e3)h?h2c@LK~i=7CQz#3q#PquD}!SSDu^ z1P^NlNyMFgl9ySKvO23JW--#uqyI)j3H&R%s&ozy1SJ{-VEm^Gt|03J?V_a`k_xw1 zf_+5>$HG1NZ8hU^6zMr2o?UZZdgizm@n`OeYh-21YGuRR*+;ZIB{%ARPx|<4&lWq_ zjHAX{Au4PTtY54`QA*=a>HIn?KF%2#9%xJqE?U~r)vbzSA>bRtvrA_c7hA9 zx?a5=OZ+~rwpq_UPI5mI$QyFkXCc4);4@Dny2rAgr4ieF{sq$QK)c)CiP{NiyCZ;|{t&%l*^?&*p!htfjI+%nw1CmdRlt%#-R^EYw=K5wyK%&BOd{ zv8=x;=V_Qe#~)%M)k)N#?J(=Svw1ok^^}?K)ZRSyRo%GNEy-BT0 zOP=YJ=8)L4g$gOx%9)dV39|C|fmQXld)y*ksvMk)o4a<_b^ zELw9hzyQMzU^$n=0{zo7Ns;d)?tSA)Yye*_o$8I6G1nlDzlWA%ThfjRupp?V$vGYkBDIw(O~whj@^ z@>{jR?817G{;9&O?5?UQekVDqv;vr@QV~_DL{l!9|ISYbg)k*#i~3F*=pM4g5viW6 z)`2%lx|;}PaG64GS|U#nX`Sdp2S#M!8*ZP+1ZOs?JS=N(Bl;12rsf0CxbWJxX{IRVmk=G(Wb@>pbc}M z3kA;_klw>yS23t(@&@#h$88=#3o@JGOv^?`*i(3%MF+l-hR2DF0^|c5Z93A0yT*RF z3@HVg3K6tW97$<(HW=_0GnlLX@G-%vZ>U6n+${j_aRworEuUdhw(a`^T#tP%t(_;A z+!o_=&cVVg_IW7(hpxBqiUMr+b_u0ZK!%VIknTphyHnbc?jBmYK^p09q`NzY971yF z&Y_#ncb~o2+22{~{1eY}$8}%7(E@rI2g>A7W(66|0nIjT+t99Fux!ZjzA@C44&ssz z3fY>|Km8S!-+@ZBGx9-dqEliyoA*qEs`DH9ace`7nz8SV7Ox?x8>?~m5z8O#wH2^K zzK=X+z!Lda$5?obdo`cJ)IWT>k=KEV_WC@?T|hje8chF&SCyRE#U5PKvC`-=EaeOrn|~gSu@#9~zy2kU69lO+pR2+rp7CbcVsD?4 zGLqocr$3Si9r?4wB9*XuA&$xDFlg&Xk_@S8l;w|Qr zu-qIklZ`HRY-u(@J6c#aQyfAn*@fMC6iN-55*Md*X?K_!D$^yb4E&zGAObyaX8rld zI?F^0x&n0EC4RiVQ#NDCTV^jdp@0yfU#C6+)^OYgg~j!^b={lVi@KqPoXtk2nLSTP zR4?c}etr{V#=~BdVhX3ER?QuQor3Jd)tr92HmTjCgh-fQq$FSo?cdhhzMCK4I4 zae2YkTs5w#Th?D#dk(LP8S;J9;N}tVM%LIf#>jnoErY}AB>@gnyz4__NXpz6hf?&F znf7wNx3$uY)z2c+l{dWXb3brb;`3h`m%oq;U$#=yk<}=+H#0GFFmTP)n135YOzq}r ze)<4+bfJHFK#=aq@X#CIouBujan(jAFm+@`t@xzY@x0h9{6w;GDYdzhk;e_YHC48m z9btigra|d4QPjgWDm8f`vdOi0_}}bMTmVAQ%mMIV7rP~9_}_cKRF9gC7S4c#W=FHZ zuzA~;;hdEtn@zJw8~IEVm|{X#*;8-O-VEp~3M`$W5|qa$*22J4Q$+{uYWym!6ff3JPUAq_^RsT?RHefDFTlA!n#Cv8*g*NDrCUz(-bJ<6V!KoNRGq-%y2rdmFA zkTH-?U`Y2;?{4btnRVJaWmkHJn8Ip?z<1+GstQ%(vwo$Gzs-gNVSy**#!28<?V>S+Em-*zT_Oo0(RdL& zK3JTORkPFGJdA%j2RI^#dNi9DlOJ5!^P0xt%?vRfr8jTCBd7#?QH$JB6Qcg&jzGEY zZWDOD87G@@Mrdm&m?gXbl6e#RVaG^?nzA-bPpcH5cL%`8N*%4efJ{u>DA_e+=1I7y z_%u_O6i8@AbFCw47;QI^U zwzrzHm&j;IMa_DATuU4_|ow0E24FkT|`!#aBK7*MIr z`757;@}wpD1!(j6<LN)~%Q~-6P_yutiT0Y_~7g=@i4cp3b70HQMf|FYUCJ0fk zooJYsCu^UeNrGMoTdU* za%&{}^&2x+MAr`4GBL;lLRVRM=y_X0uo(W1ecEjjho%a_#>1x`Kg(W1M96?^xIAOj z+clRB5~b;g3b9kQ!{XE70bpX&^~{yXD030F--qGw?oE6K^-Ud+ley8-e)i0Hqu0ga-b?dn?%yUpo8 z*y#ui=VS5mE4Xy687HW#*1Bkw=Im=W(PU`7p6ZmMqEnoGZkNBXLtIM=m-gkB1XB@A zuRkJ&z;KVKHVQQ1O6qF$*jiBa^MsIS%3X6%H>EqYQ1e2+R(A&GP9MK?^+~17X*ekP zma9%o@|uNLR0AZwk-=n&OMDt>vbj)N%XJx?vaj*lLc)K%Q;z=D%T!cQX-Q{^gnhV_ z6r>#&S`QGW=fkcku8YZ??E@~T^F5h0J)4L$M5wEPi)Qr&5<)z%@hA*Y7sB#GJ{j( z7=4BzJr3H5i=?)5!HGZ61+a%uL~#1;NFZ|+`gUMr`haA-gAmt%>FRd!u6P?S?NH?pfezSG zkSL7l5K~ zH(=jaENqR0`@C&1nS?O7Wx1Y<;EB9RgO5tY!5TM$dsj;wNQYF}*m(gIOZW2Cg2^fd z6NY?*wnO3@X;YwpaE+Vz*4>=GWY=L62=}ch=NJktFw=)+UCrrsi39e7(pcy#p{7s@ zCy3doR5%%$tjf1)g96v(wqy&7%!6BQGxfbS&sQNmzq=eu>FSZSejBnROXsV0PDlsh zXZp2v>`C_2pMhD02kS#$r*}?TdV4O%mDUZtPy|)XT-Mpgy@=M?#Z|*X0V;%eC39x_ z_p&6Iwt0*HZofk!SM{GdmCEXyvf5K9%pR4K#Nwri>VlUZ5D|cr^9XX|lF$+qKDFOcZyp>+tTe|NJI96DYi8qp_0Fu)S3gOufb`$} z&)WYVJ=peN^kB0?jwBdgA|C$1A77F?Jjt;%7r@?_!bY!kS!pU`$`*kVBS~XKBlliC zfOkw|%*)t8n`GR4Lrt$qan)F|0JT~EFc=V43En=6_#ktF_wJon7r`V@v9AS(R8gJy zi>2ct;h(|AIld3A4iCOxnL0u<%+SSmMUy7$-Ruaa1IT*;q;>@v1-I|XHY|U5q3m%E z3OoStLo=pxP`czPYgjG?laMWzb9fSvUt;kF7a2pFH?le02gumEpVmrx*4_R8odSTs z4($e)+r`7T7Al;{9O^t9`k}}X;c7j+s|%LCd8k6`+m_^7owship9$@X3o!>aK4g|r zA2@%?)04cR>~4U89GouFK)frBFCN4ZAbtNBgu*gV?m!k7fr98r-g6;4|%}1Q5te%zy z1H|Yt-!+v`T<6;9R_~PdWEiLaR+$O|Nyl3_I|8P-ggCiYX>c6A4ovtEqZQ`Mr;oYx z>tTo7FhlY8cC*oc410r%{O9zfsY+37@&2;h1OdEObW_O)2W>)9$@I6r`II7KE7)A5 zyWlxsTBF}4Cs?wGL=-hRJh^hQhUlg*hHa>ZekKrq2;&o0+mpcik1`wXDeS8gAz`w# zCoc$v{1+Q05DXpej~aIl^>&HjM}P_^7l%p{R^KpAWc3wSSZ-h6`$(7pUoc>i zXHiY@2gy^TI$FMVVtPFCLGq9`$7-)WlSHz8^Fb_yjvq_WrL5>GvtE`+;BAs)=6%W9 z%VyNyH5X+$L6c|YMYu;xtaZ}^D&8+LLs=vxz~EnmQd52r7U-cwF)hRnkvfsQt2p}C z7-pGHe`$0BoQL8zaWSvYT-=8JbS8C&Prgzs8De23_T`UvH*5xXrr9P+|GHV$Gop%< zHr>x*9?IuX47H~i{sm5JH;-kX?0`T$A`kM=brZP5BNef{@emL4L$~2EVO%mEMMFIDW?^U6I|DSnWi}*}5C;~@E zhh&zqd6oWI%4FwTVC7U~cjq)QZWdriUP?h@d|zVhQ7T`&=n%=dP|z5)m|ilydi7di z1PkXXvGAf?Jg+&32R#o4fPW+#q~N>E@_Kyyep2%V{@SW_cc!I*64mEn)nD^Nu$_^V z;rX_h#9Eiw&4{^>rJ(k5Gq{L?Q1SR~$p-O-F%xbXqUg|Kmbf^rXu2$LoVZ9Hk@e66pF+0zf+hT$pgg?9*8AI~f+qTo|4w4?)sW{IR#v zp3$Epw42&?m70*SI_OvHB~^aLLq!_oiX?!GGnX}AH}LkT|RmGIb_mF~*+8{{5g;C-DCL?DnvNSeVU_sYNW=Z5Y+rWx|h^9y#W+6m6wv!xzrSW~VJ*!BIn2Hqa#XKGG zl5sENbjO+R@;#SwS_~F*m!)P$J$7?1PB)rX^)4|}HQ5dH63s?Ahoo}YVwUVEm?g%& zt_wg&_94V;gmLYIadL4L`v@@USM}O-8~vMB(;h&f^@RP&>gL+1?DrS=;ZLu&066V6 zoo2$dqocZ~tsC%Jln!WdKv~(p?Hx{`d8~s|FUpCgZO$K}ZK~+S?m-_TlCepA+pQQpl>=f zH&)DX@xguc&B9W-npsPADuI24hez~!DZoye?2quYkdKasy|uUKy#fjBOB?q|>t}ay`fP zSs3!?GMPhu0hzRFstA55OxiSqCx-juh10g_`gn$)yK`hhpE{Z*YO1bh!e1ZuBfqz& z_3w^+XRp^K)$AXvuIuckrQV}b8ol=kbS`O5LZgiT!0&2j#4~`@{W)Q$t{ac!+X^R( z#y=kfv|9?i`ZLG11IW4kwF5i)Z`ua?0@~YB=|`VxHbqjWE$HZ>T*tp6)ClP4`8NyZ zGf)d-Xg&+6mz48y_j;~zNRlrcbHKoy+s*OCUp$F$^{)6F;RL_hps`llAx?Aa8u0=B z6BnJQmfR||Hu%dJs=Q&6wN-xt>N2%)YtnGyvONq*&vHD$DxhMqZ)3 zyMjlncv+X&%<1F>h3L${l_=}GV^@CYqEbC4qU3$mILAtl7|uj_7*8h4 zP2`fp))8G{cQ}RBQHUXKs6|Vj+y&Qp_4_F%#)p3Hs2*xROBcZ6kj~w9wyO9pD=4~Y z=0=%@7~f>8c0fCjB~kFyFL(D5ExdZ$xU0uiiUe$u-yG^1!;75ZBbEZd-!Xew5ICWV znVA2&`YrWh1eghq4M(vR62Y>pex^LVk^Ggj;rK|_Pqb|--%;{b77X@as8W|Gnxilf zN#WH^1r`gZT=2_bdyZy5MRLm|UoBlS<1>LJn1z=}yH$J?8LM+c!?xS|B#NXIK6C$Q zbl#iovE+{lK5riO95HG0T*(&JgT5zSp{N4lU&23+TU7O-DV+eVP9Su3_%S0gZPH0e zr^h(&G~VsDvMW;|+#FbKr3gFLcf7a_nuB(lLLkSEhVWYGlc=6R~UP z?r6?*QMoFYBM;1AGHbH~&&OU$u&JQWmrMg5QMzy8m?Y9WW-dQgG9<&s1UI;4R>2ZK zW5aOSIPUOh$*n}4?>!HKTw>k05LJQ>=hwwzbS4}tU`A<^vqLt3S!KZ#Qcp|`A1|`;w7RaihHbAYd1fRP~)5;nKEjDbd2;C>mzmpLTWJu65}$J@1PF6!LD?H*zKU| zsCe!aRCYtqY;BHW#Hd@qBB#{wZvO8&RnNMs4uE5I zz%}wN+80p$X*u^73kw5C05RMf>Q%v3{wq-9(a4OFOOu|4s-;kgj)h@XHIdHyU5Gd~ zTr{~22BAh$8T~>MJs3@kg4?S#E}ly-zG=z%8{V}68TodW3;rX~d6#5gBent0u9YK4 zu>6F1j5FeMUj;q$#*Q16i`x5TO7dr(u9XRy}t?}Eol-Y$v-UZ zN&YxgFKXTrBgT0F7+9zRMrAGo^yKdu-1rf+w83 z`-b-ztS!hBL`buF3lO+8@u+$`N&Q!&CEtTtf6Gth@P(goYmlr;3_Q{k z#7je%U8{Pk4??FYjcX~}c2CTq%}mlk545HJLDoxX`hd@5`MD{XTQXz zWUZVl_NjgI<6{*@Ov#14ohFeM6~;DZ!r(`hmT!s!4X?ga4slw^K(8(Qlldz}xTc=v zGAt|Hblxn-%~hx`zC@bXU+PZ^kGTvIsNlynxK@V_v0nblVbF&$tAO|C`BG>8t+zJA z9#WA;n>X1#IUnw0fGlxNkruFzT~9g7&IVCN_sF;QXA z_F(JO)}Dfhgh;&e0~F^!mxTX41RNF(=(W6NzrI9XmFDeaqSO#0p82S!0X2TYP{hhla}6>k^(V!vMi1(D_?mWgs&GL*Msc75TkjrlSizvv>v8 z7KRq8n$Oqmq>P7}hbu@!5?69{_RCCz7gU+Vv1LT)l}lks#aDrXYTTiT5X~uT zoPLipU}0RN(;LsTyB2JUkj5E&(2*wtij_f^zs@5=qk8~e%%-IZS+BCC>W+)(@xU^s zj4wKlyIx+Amxqw5Nzw2TC)Bqw9&EeG4}Qd{90Z*>^!b`H8iL?to>(ofv?8r;roxqV zim?eVb~C&V?Z~V)5}MiVQimYUNM}tGG4&*5%Lsj9F!Be>lL(# zwjGmkQr@Cl;j;l%Nj)jp5>`YP#MD&RvK|l_qwX1`o!f+(xeya_?Ubrop^Vh2I2vxR zad%3U4IOwyrv^T6JI&emkre&*0^)~sbCZpcGzpEd)ts`v_4V^azLhDw-ACnN8))_P zsif>rP5--_{FmT-R#;JpS`7FA&3E{|lWVkMNnXsPBPO@MvC)zc`cdguHl}fIym5AE zkwn9L-B{peSz%Ppb{}?T!tLV3W#;u~B8nCJfLb-g{8LhuHEc8oc8KN|Zmc*qENc_I z>imq6Indptx0RVttXdG?fp7j@8u*!*Z0p+3(rPGduLs4hm8T%ovl4lvhsR=_oz z;KLNaP0wM^VauA8b2*q-IpbAK`?G57L+UYt15Zrp+v(d&+mjB)Y%J&SE$;Tt{XxxF z5j|@ANr1DW#p}N~iPgz3xAZS(y5r;hAu;t5(y+WLn6xSB8bqhNCKZxAOp>s9vQy}N zTglV=k!JsJ8q()VIfrJ*ZS>nX4lqj+Q#Fb=V<2yl`TPZUtaK->25-W+h2P<6WuqfM zfImQxFtvF=K}+a$B&hc_d$vCXP;T7qvyi2jGH=|lrt|=WL&W}7=JngZa$R_?0#f*F zUnu+lCn#~bMK!GQ{wY_6YWF#-tO=081Fr*Jc5q1sFQFB{Bqo|8D6T0FMQW>He5>jsJrj zc$5PANxi`OeidH~g-1j@udg&PcPK=?SRPLM7q`ppZSD7X*fMg+C`!xD43*6Lf8o2z zSosgSSwqAe;fmxILK+^Fan5{tK~WcF^awRva{wykC)YZDCD8@Yrm-h&QmyPDmqK2TN(+OLB`qB# zgFM|NmpO+sP`CKwwxP2rN$(o(ONk8KT(@WJna8^C)2RpUs+P3>h+CBwk@7LVYDnRMI<(cM_g;B_Rhdx{2Sp=b|H6>8=Lnku%#q?a zd3EEE%4VXAqBO??v+M(T=W9DcoGpD}i((OV=a`pGDls}8XSs=a&T|_h%ozZp^D!I*h^_1-fJ(#L&F+IqwQ21y zx?xqA$-4aE%0gn}&!4ekq>}rHrf#Wz`;1>N)oUlcfanwa2X#9GVg9W>`qL*3!{3Q> zh>AdyN^C|z(eIvz?7n-U3-Fq=liCo zl_`e+toJ=rG&vBNSNGV+RIDP%z7-4G@A^-F^Qv5Fpp-v+hqxu2kK;DPe1VvW(a8nd zG)U0*ZZ(AjRC8Xt&*&KCNfsVFAst>vz7I?2JR|Ov>g3zsh#{+htZPsRCIdhzV?~CQ zct7tE^K;ZTeRuq2Kb4C7FRmyD*fr4dZ^Kvi2;Ua4#ya%l(xm{Qo(JbaN>^gT5u?F6Q=;Uni)AaLiE35$IVu%s1NmZkp|Qi{(dZ+x7kVu^*|@CyR&$M%7b>KNFY zAw=11C8Vdq!<@(AFTb%i$X)bgh)fC--{BPGyA7^@#4R-%Qr6ofwxh_NTybS2EUA^f z@0iySG3AkS;&2K8(rB3(!b;i6SiakGgq6GqIZQXR8wfQ0 zraIH}67ckx%`$|#?gNaJbvX_rXK-olT7wl@#$74oj4mcuC!Cck@UIA5!enZy_4>Fh zBFbqUtt1`&-aCx}HPMOmLgnTR4Rp9Z@cY@sq7{N}_;ME4Z#a7XBpdl1dF1Z3P7gID znx15qtEF7(J37TRX0hU4*caeum;w3vXI&Aoyaat;k1C(8qgY{|4b(-rXN9Xqz37Xo zw5{Q~sHfCTmaBTftx~LFvhi(p{x^wBHsjyEJma(=#Przwj|*UjqWYdtmWnZLeZxUz z?83}I`rG;$5~rZtHxijxqGLPqyHOXB&sXhlDML5W4oAt8ui6hQv?>7X+@u?idDlZ` za`bK@tHFt9uX4GBTm9@*ZAyZBNOy1V-sagC{;>Zx1O4a27XJ938{W905|L^5M;_J9 z3o$k+S5Dadk0u=nqUV>R$MWO`OJh>%_Mt|-l(a6q6QRXXSp#6zkq8@tycIREKm|JAA z#>39l$p}YRvQ=0v;|LbD^L|LY#T_fsPnrre&CrzP0&u|#g@*3XQ)VTIZh)+BNgkeO zb@)e*Pup#vN$q;hS=JiT9G6SxNj=lQIq1VbYAi0CPJgpmIUOD|xaQLoJjaokwD(zm6uPVprKr9phM{V7sN@>+=Az}G> z4Rlrz7-S3)^x5zg=BbF=|7JDM%7SPeS*U!ZQSeA*UcavealTR7P@#-%Ky$IPY*v{R(*~z ztW}}wkl+gu5JA?shP>NN1)2vw=*iGpUiVO2rFCdzwwX~96GrY7-$lIsEn`n;!| zWVe9$<>&F`Jnvsyx+y+=lWASj`i>;(81O64kEKt1VDdi3IHC?Dy;tvn1dSMqSiyZ^ z&o!RKp=T`h-sPAVqD8M7fjxM7_Q*KT8nT!b#^t)*_XEc&M(#Pjk8&P0{dCwl=i-dZ zU$8l(2WN#pJOFfCrl6`!W^M+==X(!E6Z0TdBO73iMIKok@%cRWpiEV?uVE+!+)WJw z*0+lj6weWGCt1U#5{wBq*c~lnw{l&T%#i8M&4DZC#fSLMq|4s?qR~|eS!^t#5rXJ? z8OgPRsCX~aYk4Y;mW(tTTQJe{C|SSoE-@B7n-AvywB`TwUyA=}%!9w)(R0}qhKh#k z``Y8L=67CcB9NWGPriSaVV6uhCEyCNQ((j(epiH3R!NVso$-q}VtVyQUVTc=kPtKILlSAHPZ8npIv2d}3$_k((@=ulU6?e<6 zoY0+XvW#U=C}e^B5{9V6Y=Z@-|7REVBlR?7U`Ya-*p&*lt~Jf!*6ZWN$+sIOXM4fTX%Z2%ec`e>@yLu(G(bz3>Uq+1yJj zI5O@yP}V&=9tFkz#XPNx%gM_65%kEcu;{lr(AeF%>ngtr@@rdkZC+vAvpwkTICzy) z9HNjAVZzeuY6Uv*r-YgI@C&$$6j5OznvD0{=|{)1&@{!_U)XlE6jp7xl5G=oAQ{!w zNtf_bDYQWR{7Gz- zr=zsDtgs<;|5QC=G=0>x(6#}UZw-D8#+|%eexpJ)oVO?Jd-Ni|xeo7ICUC%2c{+W%n zO&3>dkF)EHmF)H^+bpzcQ@&uyNTx2GJ(2;+IZXT%iZ_b?FOsF+07JM?$D0D-A~9^d zYqL4lwhfc~tF$K6K%1t!yi&ThNCs*sIDQhgWj9=~eSU)PH_#5|36FBk0W#@c zIB|kvq`lmK8)fSz=#9;BH=N|)Ep<^?@0N#a57D0A<;0+4c2YJxy$B9ddOOY_=! zH)!n>@M5W^_hmPuc?WpTvG7NU{htpe$I-u6`oLvqJedH{oUC15$NCekydZ@%6?UhRKQ;%`TFY7eK?u(3C00Ww$Cd=l>v0@ z=eyXAygQ3;UT~p@`az0@#8UR;`m@8Uj62P3HL8K432j8pR~_J?$e}qJ@z0}KX3Hge z2>v=RhNZPz9DEO8u1!rfFn{qAEJ?URF!>A|wp^LRL|+kBeu~37{Kq9xOhQX22>T`} z75E>Qdi(LY0|_?Hm)(I;eb|`q_b1K7(nWWS|0U<~`G@JLWIX`V1sh-z`9A}Hi{(|J z+Mjko@D($h5H^#B=}-rxTTVliuNGwB>w-ni`Z%oVNDDG=1A+6ij2gZ#DYZTo?VAvM zh1s_%6X70heo5;)#SvmM4#u>oATuC^XjwZ6#D=#<{8N*wtJc^OF`YN<<&i!K6E94Wqm(Ng>wtl zB488k9qQPtTH?#;)m^1zAH0WXVY#wFo1MKDby^+R%<$OnB1I(*-cb(L{+${@&rW$i zMITaB`+I^4#WlAg&paaPJb@AFS0v| zmaDIYw1&w41Z%}&-FC^uTjKSf53TMBUL&6l|a4aPgt(le{w$ywVK=qHYitn6qBX_1av6+Q@?LDt>&r9f= zw>rpg!G&+PAN2K(d5sl3UTvJJo{ef(iyz65+2QAdleSr&2Ug7%!)A`yUS3rB;1s$b zZdj!gBud|RR0R8BzE)N{oH{WB@4HiMhzvECD@MH{=91JdZhqB^&_$JyW+@1gF*+A{%*%aR2#8%im7U`n1vB;V zWRIG8I^8AVfrywJ)Hsj~rSER)c{usbzZ^~(J8doN3&zHBo>wh2!;)q|^r20z?cY<~ z^cCA3%3KhIiQ~X1Tj)p+T0oj^+)0;0tMNLb6e5XX?;&JPF^^D>*`-lRBpQFj5e2!< zZ&_b4V{z{g#$IKjmuO0K+B%N6wit|LVqw4Hyn;_lU=gmV$e2S9?A=Hi!LGr+-}1(y zsO*BC5A`k2==0>L^oiWaAB3SIKbo?io48D{bz)!uNDpIH;yTGb;YCyTO}XNyEtIoq z3U1E0kt@5CVVl~Ve^beC?U{c!I$3tVPE`o z@m2Y3#=_FP$;F(iiG~`R57bOPpMH*{ay+VY@Do96mQAED%eSN;PP?)4EbmGYS-PA* zV&Us#LmLOU;y=O92``*>-j_PgWjIQC936$srN~Gmh<9YfmhV981;=>%zjo5nZPv~( zv~5M&lm5tHmkw#4p_0asa{f$}hN$yf`Y$lx9~f}PYEU%$?)Sc65AnO99{Q4`xkgqE||pEa*t)n1whG?c>;s0 zRSK<7du6Y79W?%nc#t+rll39XAP&zdj<3hW^&&|nPRz=CYq%x7Li)$P4SfeKXZCD@ zURp%6E8ip4ScWJqiKXy^Vmr1v(Ng%}SOkGW9!r|{a1LxqHXS5frT4{9_LhRqSpH;F z-udJ^%`=~_uC`)!!xU{6HXgIL6r4IshD2!lFp4xKrnE~6t+4F@1}$k#1PsF`E(I^e za%%&g?2xl_&8r}`;gZj7v@&nb*IHa+`OEp@S-=I*q9LQB%xgnZqz{I z9M2dBE8?5wPOCoGE?I-in}--M#rBc_iLbg5Y4ire&*73t-|%Df-PXP49k-L8&G+qp zA)lUq=r;q1y0%9ikNqEP?gkI*ygmKK>go#Y-=`rSR6Sh2li1`3&u7<`U1P7GFaCHW zRiRE{?!%|O+Fy&hx;h(f)>%_=U}-y@kh*sqXTNiamc0Z|IaL2U{1P^Bt)}-5-=7Ht zjfP9%88O6t!X)a&6&MMM)p#1H-2sJYJXv7+b(u_qH1E9l*3L;&>jA+#hN=AL7o~yI zc_~m=`wMbxRUQb0Z|haoE_3W(h7(_0@T8xH|IXTBaoGfM8hXd?3i zK0T~BLna#lVQj^Ax$)hUA9Ptze;w~|I+QPwyG3ap}8|B z!RbyZ!NZo%CJ4o*m8hRc6z=Shi=>Q^VQ)qp-&dJfJdsYv( z=UQ+$Aym_mt!VLqbZJ8e>V2(s3{F;2jy^8!^iuhRg%c%&r~=~nACg^m&B0cpYKynb zWp!0(RS#NU>Y6c-LcT&);|8|Nv~1!dy@TXW_dib}t*lti9t4EP1e%rGEgXvjMSV-Z z+zkGF7tRqWhaF;9iMeG?qB_ETn?$T6a1+N)+$sV|C?e14_M2SsNXlrhI7{!87W6!L zJPPHhX=QvO9lV!v?^Io-Sip;hQ~reZHVY6~rARpb-6AsaQ649qC*OPnEnS7fSU?XIEvTSIE%U^Q7}7FvD(h;#LV9p`QMoGU1z(;=Oqd z^Cj9`C`oECca&cX+$^ThRJi%$^p-*dE{SDt%Q{_@i1htwe_`3u_p=}$6c*qtoZ6H< zpnaW`)$D403jg_Ku^FvP->LErX;<4JZ14y4)705ltekxR9!4Z`w6-}!!R9_7rxSQ` ze;N}wO=|YniFcd2t?0>d6#Lqj$XOG*iHEP4`p1mZmB7T(G{bPHm5=Z6k1Axh=&5}L z5X>c5W}?h>{}UPY0kGetd&f{I^fFz9$0X9P5llS<2&KN1{~AZvoC%)Cu(S0h{#cf0 zcl#xg$LEAxWe8maX7Z*iLw9{biTBU!fi2)%f{E=*e(+>GU(H;6UvfURK|=sV_to5d zaVWf7BKb$-kP9*UH2J<6Sze_c_O>S%lwYL9oO>Ed)I1s(Z$i4|dd{xViFIsjNQz0g;CW_CGy zSy8~41E0Aldm7Z3itwbIp>*ljTpyG9{bqk#-JH34Y|K#X?wds^pyUK&0S6xxct&2I zRMz4|o_n4Lbpu4c0L+L0AWfyVl??FN+KrvZi1|{r2>+ono1z(!*|4xoG~qtpzRt|e zHtBg9{LHk@_K%oId0P0_`dD*OC-;!%-`K1=mt;t^j`~2lrd4`xMy16luuw}KM*3~E zG|1umTx0fyY#btYv2j)ZG-%WhODUp$J;oovIDW`1>%VV1oOo5SMnF~9trm^$A2y3T zpp(uQKy&eI`3_>T2UXugw}+db9exE-(Df;JsOh&Y)lNl|%>cD(#@zdoQKZkx1<3haas0U@X;0t&AO!dB3ejNA{BQKE` z(!+BL%AmdTMpLvDpXo3>2iru?%344_YKDGiLs9$3W|qvwdyzj#`h2r=joqSseYpOI z$PWsa`n0>w;7|dh;!F|Sf)p;`LmO~z->J|h|6%_-IM=E5agEpk^-iFzb!JwS0`PNj zN(!jdDAT_eyKBeG1n#*H=4cefoo}}oHs8-iX%r0*8kjXlBahx#iLN!;G@Nxf=|VUi zmFd*zU{t=Kh(y3(xy)DM^u=Pk``*^sT12M2&>tkHLX|2G?Ju~EYv4ChY$pKQ`z+kk zFr~sD<|Vy;H;~g2nyI@>45i{BjSaN2+c;L|PoAdhx;_U`rAkxfgphcdN;-zWkR;D%xme5;~!-xj7o<9(ETxaO1mOZv_!~8l4NmebcDP zw6p5nzh(b(Uz|30dm@riy=!%M%8%;9tqYlsV|xbW6b!$|^dmxVt?~x{PU@U{^a3gV zGA;t5S5?lrLTAAhLn8MCM|1SuAG_2qbxg_qa>$uR`ec^%j4uHeOKm))iRN14RBSqz z0?2iBiTtRq8_UAEAO%mO#csEZxt0sxOHpe76=fmaSQHl4Fm}U_YmCOEjR>scXxM};O_2j zjZ4$G=CHpbWB(WbO^v#*s&}oLYp!RKX}X8+;@raBM+y!X&o?j%yu5ti&Uvnwf2Bu+ z%r!Jz#`05x&49F7ECXGDGP|F%Y)-!EblLZxBp^OMqZ>VsGC6THLuij#t7&{G?rBet znJU{pFRLYy>JPhyLj5CqhpX{Z*Nvt(w&OBq);C%I2B)`Tr)jm2Z!-*MK zxXSu->xuPqWV>FqJsGKQ8bx%<1|@T-TUwEZp{pGyzYCOgPB1f-J~!`_U{sP*(&UPK zy577#XAhP*T1qa?O{eh`R6MdBcSNSwBImH0nTy5R$3anm^O(~v4ra;|H7|pZdt*OK z(rR@~9*KAj5*9w?121@WnA=(0JQdD*<;XC1>+??Y`ZwZkx3uJ z>>55gxu<4)CnY7;=Y?R?$!qsVjClLYPv^J{51)6!#I%Pb>mqpsslAo413{ziPJ-Ts zyp_K#Q8S^`(V@rj$BvPw+j3Aw)`U{J-7V8z@ij4h9Z~E=1KjW}i2O(ojK+<%%jaSQ z=_1f}$<-1q9g(KrL0_`Ly6NMjY(Pwwf0jv;K9U?aOT3Md!IP#Nr4DM@DA5^iOsOfq zf6VI#Qpi^|Vg=y1S1-Fc+84TG%O}ILiQ>1}Zs=ar#H%*qS!SQS!2Lpa;gdb>%#yCP z3BEt~p2SSLyz!~MIJ5!X&)*xImv~-Dwj#Vt9;NeGWuCJJL%We`o0|sOk3*^2Yrgf3 z2)Yl*Xg)Kt6jcqVXK^7Ak}%JIutdp@ax(s1#X9UCH@iNDmb~hV_iHTR8zF~L=KEIu znBP^RxGS1x73zz>y|mnXtN%Nt+=x%&PU!|f7+tv|fNhx<=|GF>Mf5o)L^bvyK{cyLu?V^JE0S1CWjLNJL zXA4G-JJ4&#M=lXfI^CX;(Jq?z$<0Ev4zzI{J7O!3HyKA*l|j9;J+AKU8bT&f?I^VW zJbyF8w?W~oV{iVta9TU{wjIXZJek5qE!3;#@qDd;IM8) zO2imdalxNb#)VbCAXY(O4|0EzGwLOvOp;(bn-ao<84ehvk|~jFuzi34j4&m&|D7MM zFe*`cgR-#}T*F2BdB&{dNz%poJKl zv%{L5_uAG5C--F|0=#iF8-=1<{BIfGIVbN&jV`v%Gz0V*RMcK3ho2wMZq5cFNZZ+W z&YY-J-m5(bh=Pj)O2$Fscn{4r`Y0KxGdPfVReP>{K>brK=+igXk-4Tpa&MSzi?7dq zMO?z~kCZ5>C5fx9^e#6;Tr3l&rk|QGe5;p$ka;nRW+qMdM81q%v^P(g;95> zi{zP+M&KlxyLZJJylDXA=vs1CX<^XMW*&qeZkx`h6=d2tbC5)g*xDefH%?J;y5cGP zv9{hvKqM!|$6^%b$%AtTiFGuc18Ukx4iFd4)k5$$htqqp8@0Q&`kBK^ zZeKz$ty=wOM{_H;o#Zt`Ojj2gJMu{|;zp6#P^@!}vj zgV&NeJfr_UFmHPLO{mI>Xb7nHG-@jEevG8hMhV=MU{rb8JgR9Y<;A&R5!U^kv2XG~ z_d+C6c!|qzahukohb1qlO~mvuUQ%%S2f1t6jJb3f(9V^NcmJGHvgzTxUd6h!(GCr~ z`Il+ZPTBFTKOhnhDZ$}`PM$@y%0}&%+D$d5lg$IX#k|G>=8r%N9X{BmxZj}v+vNd7 zC8Nf;9Kw4n)7L-UrF&1IMhm(tubtnddmEQJz;{QW=io-B7~)JL8Duu2jc4F#-bsQQ zqVEOTjigF$N_$%mrB+TW@xC+{JhIl8k9lD6-UYdqHpV2lrRV`PfX`qB|kbeBS zC-L~y!sH$XNQ8rH32T*aB-7P{IOA$Lt zWq2nSyQa|$i-yHPqOm;0PtDWgLd;0{9P+zL9m@jW(Miz6FUS40GkBVYB5KAglUwuP zPHgh(wMtXIG1=0eH}lv~P*^gDI|Z6#tBHE;U&Ln-+YMjUcSrjB%uabFGp)?_&0!0Q z2TDla?$G^fJ00MPc$}jLgfPd#=fyP zCa#0=d`a?AG%ZM%M)DyUxrL-ms~m^{YaW{njXlb28cx!wkE>x`55bg|?#18Be|V*^ zn`Z{ztm?o2>)mn>Ic?Xz^Zk7VYFu|TvUQYGQmi{DF%-cNx5mt;2z|#?QYz4wq(CBo zf9ppugva6fB~l3(2wnN~8!PIh?QLQ6<=tCo`)=az17F*h>y+0KzN4(p?FaX4I;$nk z2GcE#GYyV?!O8g`GOwiJLA^c6w(ojEQ0ly1xAKZ7RGvG(i5L?yEhz%ylXg*rP6vw* zoOzCaWE@IY_QV5n5B*Ey<<>)RxCc^e>XEz6+5ORx7n7w%Q)X8cQ}_?UWlkqfzOZdK zpP78^cGd9M4_>7i36XKIwP{^m_)J^Zh=EQCVj!$2C>*m{&BY75)2KnogeV0QJ0$l9 zh@gK>Bup`~OjNvHRG|qsTKkR>^!Gv!SjRGMm7to;Wag_hOOhyv<_>rEvkUc($#G|t zCY;h`g$N?=&S*zBjP!t}aw#RLYf}MeF-LsKzg=l5eE5dWb3++(ulKa8JnNDOkz{3L zG^5i|bjzt3p==$g0PvL2T+m$vS~fuYo^p)9hVkU&kOVI75A??LKHlUBKXeFAXPFev zc9_{?D4_vhdFMMiv2^$HhM_CmRKE{2#^h)~LPR!N{b4J6ZY(ox#Oc*rdyeigun~YB z;g!cq2IFm^(FJcT2Ca|BRXLEM-Opr4?v<$KqRRE3@0-_8cA595ygU!~EIkkW7%nb& z?$@!@?V2totM0)?5#K3?NChWw*>qWI{r)`@cw6|EROzRBpPmpu0C1#8F`rM|C9-8O0U>w=w8|z0yZcm>GRpZ* z;G{p{$A&mW1aR6R0rjkyJI8RJcZ&X$GfvAj{X8-dlTj^M@l9gXUi6qT5xD?Mpy3|b zHYalE%+J4Q>hp#Jw*c+0G-pj_le=VqKE#?kz`e3qsE}~DWGhHA?>ZTpQ6?)>IjxE~xt7k}gnILtY%M|dY{ z2tcVa#49Po3mfuylpav=hokQ2>><cuu1D9U57OJP7{vA&3gdV(@ z9?nS*8@;h&+_@gfKYffsAsMjNC<)ymg`s~jwJVqh-zpAZ6h><`*u2PGWzL=Q zU4vwnftJtaTCibWz#)6*6{}N=OFLAzSnTP&92kjg5ac64l@&n zE5|JVu{cn9H^fHCu~MiTq)LetCG_qWY$Xz_lw4^zS2FU{Y~c+(6N2pO@_2m8-b>n1 zqZqf(7ny4RS_O_rhiDMxi?1)eN|lpZRNWJsvz|sPK5mn&?mNOOenZnJuMX!!fAPxN zW7Wi!;G1Vu_r0eA)gNP6&*c`3W7C~n^*!uAGUhNE>6Jm*fK}Wx7DDCzp3pc&&R)#a zed}kpNG4Cn1dJhf_OqV83fkzwkFk>3m0eXD`;F9d3B+)YdOH1*SM;Jb%r)D97hVs! zvQ7qm_ubkOFtG0ZHtIOVVD;%@5MA5+%FD7qaCGQRa%ABin#2r1xS3<+cdw_HW`V~_ z!mR(8v(MSp_Cz&wvC93ob|G1PX$|)UpZMb9fO7&qxpJ~j`}~hdixwkRl3Mi3*;&Oo zVsYJ<0Oo0kSV00w`C%EGv3Y_>@{YLtnQ=rRH=;rbD{GsV`c+Gl+A}AK{e8+Up?+)N z6H@9)Mo&x5Tz@4!BIbx>I_oQPL>oMmLn9W5K~baCLgET7TIV*YcV#{*)P(o``}ezT zW(Gt+L?TYqcMbOB-(@Hr#Db3d$I3>3ZAR?k-g4^Mo_97aOWmR1-!2L!|L)>*e;*Qf zH_;cJ>RG(!?!4+hx~lL>Pv7Ioy4G*(_;M(Im=uSJu6*%m^?yJ9k5j-i8TRgz=X5*| z^||fQpKyOHAsio?XL*TEb>!KdJ*}TKk+Sd!x?|y37C4Q{pH-jpIr&GOUMf5@)+0@jMH8sJI#jSn0#lU z7p8x{#M?#a9o{fot8&F0v0Rw-JPvFrVe9K1-;1fuB&zt9wBFqqQUd$gu^>8t*~2D- z51U3%MZQ-n=vOu}3kmt2bq1Km2QolqOTZMFa06lTgAmLnn`%h()?M3r*mznS)Q0x{ zneYBtlFa6{+m!1M>)nUD4f#gL5{Ha0WsAJl=0> zF-Qr(depsz6QA33Za=P#v@zE*%&lPbV+l)_@koEfw+B$+ z=OQbXomOdt7vB9N3og9FKc;7Jgi)2Ez{J+VQd z8^HljJ&_m|0(6fum1%0QV(@5stTJ7OX>%F!-13X*tc~??IVznlFE*LO<@Cw682oNR zBt^y$YfZ7rdan669jVPx`Eqj|K?)1Xaz`7CWDLV~tuVda8)yF*qV*mONji3u(Zhrx zs&J9c{rxTt&HJq8MJko{bx(pj9MwX);p1pl-Hu%9jH0{{Rr(O;P^5MUcW_Rgu%c`* zbpp=!e{ReL(9?6&M7sum>|^rZ!dCBZC*STDCbNE9pcSA8r{L-6TI4_=cul_0Q-5c#6>Sa zL*31k2z`hnk>pq?+x1Kl`rSikrOsSs;I-#0_6UM>!vh0~1@q9;pERK59!Eop4H$#I zfxwPd%o6WjIuaQ>{7@mg1SY!THCYH+PGG-W0#v3GtQCFOYKc!k)ypBG)lTb zJi+yse7IYEG$!2MG=d$5o?QUVxs+ZdA1xFjoHU`Or*+dzqxP++Jw>Bx8?7L1iQng@ z`+%9ms1cTK!se{*pmzkoEmV3RhD{EZH?*01-Sh%xKNS!2zxxMTXYl#s7v6h;>=4a< zEz)PVf=F}KCeo*jtVk;VGT&FO!=6-FqtB6itcN|F6Ml8G$GWzgo`1M$T;-*+O0zn% zNE1bAUedsPX&jx|1!Uk2nwmGujx|y0Rm%%mkG~Wkl`#&i$a=}G>eTd~Zlyg7g^Rp2 zCD?mY?ThNEBJ6dltH1sAc+V^xVvBe<82_=!U44FNCWD=JW6>w7W2UKtm;Cj$02Qg< z%SSc!bd?`jdxEsx*0Y*IiDI;{-g|67(+vWXoNru8o8r)uulAiTsBD>6XihE;h+`|e zQRc)?qBwIJmW3LrmpYzcQ&`V&LpqIm?GGY2yE1WFk?IuMmJC2oALZ$6>FevjHt$LF}yvt?prT|}ah zX#lWnAmV8QBm0Jw=tv_pmLviYBHRE2gQ+0SK=jp`$^#gMFHA%L9wLFyYy=-@b)b7Q z&pPsW5A}+5x7=jEy0ZA!yk*r!4FobNDZO20?Jt}V%Bn%GF4zEv*zQ}B(=RL>D}NKK z_!wE|zKsIvxfm=Hlc+)e5Hf!LTlU{Us5&6v8AVN%VTHLJeegIS-b8= z$<%D}yi89+XlrZNR8@t>J?4{dL#Dvuach9u`YDc$r)`J;KFVVyF;8Qo$%qy<&Lxs} z>gI=o{SzNO))p7)s#SLZ>QKNo%e!#OYxSaC(KS`g2AcP*1Kbl?m#*eQYo+xXw|C}sI!O24gP+UhjK(xXnF#=de=mZK!WNxmUMjPGzSlszh6qJ4umN=$>AVCof0` z@_-1H4|`IT2 zh5X-l66-5#L%dK|h$Ku6nU>+3^$LpeZ#NeW63|hS5H<;Tw>)KRkiSP|1tJ@n)}xIl zg1rK2NW@{^df?XQRJuiB zh&ZcTOT^VAW~al%lDiN07`8xm1fa6}AC#46?P8c3a|U<2cHgf*H(`(_O>UiIaCt6V zkathVyw(ly*Qd6G5IQ$U6q_h7Lf9xWMqm^QqO(7Z#d(YNmm`ooaIkl`${W&Vii>0w zb*B7U!cu^CfToH1T;i5*{<<5+jUz003gio82RNNe4iD3gkJz&oSK6!n*epPf%IY-5 zJ@&ncTkqW5tQFPZIInAoq^<&iiohZokr1?wqYs1DDH?Cf6p6k8645NJ7;^aEN;|*F z_!Ol}C(XnT?C)S=e6RVwdORV~{mba_f0k{TE~CB;vFG-^a*O>smo@~0KiitK#*xfS z4VFsQChCr+cpa+h=B^oy&^r=@abhc~fo9q&*O$&H;|>88`x=PVsF;w+&U!3##l2@o zl6j*MvPlmbx|&%{O3AEWL9TeykN{s`d#q%npCSz|?zA8mp3suu0Aa~2Wn1Lod}kcB zIr>?=!Y`;lF@9(SiIiwsVI}>?qo-eFJ9WjSNmfcMRqTvErQeZxPR~y_@^l+P_n$EQ z@*kq}<#-{|o33wI#WMn@Ste z)LF($Uhhv~>#IM%IGwz>pJ>XsSX(SvUt5E}cha(p7?~ZSmMDtSx)9#F&%Or-q^u?! zD{E>i2x(N6AR#opv`wyhZZXpuI+8MlDn z06eeX*5@P=(a_iI^;z@D9p^g=n)PhFHlWs$6b1LUSkl&O{^FnkCDi8?{C;Z8PF;%| z*YbbK5mu;b1BhmBAOO7&K1a`_gZRFZE)0A-`z3%Hu@!IH0q|e)gwW1^GvtUSp?|mQ!^BKV;;}_y=d;f^A297rabi5X)8reUGD^J~Kkb&(pe)3sCGiDk zxG#)XUp%gS)tEZ5&qW#Egf(GDxzKTg&-2$ol~97J;5XI6tOd)Rlh(2UUMbuh+O@Xi zIh_VeD-1;DtY{yZ!UQidY_2opsDxETO}sbC&G%XCF%0S|Tm-YTU6OE>uC4hnZ8STqtkTEK9}V)i!?dLIZv#zYCdabUPg9_`?A`v8k{5$ctn^V5#9U}uy( zD{k$Ly}7K7`U>@&O#3qkMjIox`$J_%vNzMZo|MBE<_)viho zLa_ok6LkD*GQWz=U3NA>4vC;K<}x6>Qgh=4Bm;5JKZpon1BYZC3PrG4*q-X#`60J?2< zY;cwj5|gJ^7{Jq37u5A!!3&=BOVWACmj+)lXZyMdF&S`<`Dpb#3=~$$CFel<;uxiQ zE}9q42^8Gx^bjO3MnRKm4vi@jS)Rae*FO=E|Rv<{UM z>>Gbq8iUVqvldDB0tQbvO@zK4VMFjc)pjyOJ^hB0#-jlwi9}{eZ8RD#ZS){f$gZgV_Zj{ z8PjWEdI`&fcKZ0?jDnCS<^GmY0(w&jX=@}o@mj3LaJ$qCYmV)oB9#R<=%{;iG>$G* z-XQ_=kfP3}=~>a|>Mc$JRUJ$B9th`yT>W&9|40OatHSl|!*rdtM$J!$3BTpnXx{AL z7j9(uB%0y5cS!EAyI^6o#pfU3EjBV51_~O2$bm)SfRi_seg3MmtJD)I8S1Wcj_4S0 zD(AIo@*5>#E1HoJ2DZd#&7(=j(Q1VYKEzO}qerSBnSIlO?F~DPZOXxi=s(Kk|B*0T z^>|si2{u`nyi?}fw{l~ps1pSCrIF9X7Y`f@t;;Yl+4EeK1!PgIiq~-{$8RBrRj+g@ zC&i#(4eGcw))?w!`T}{!v~LhIp)JhK|s3OOjb zAg>1gyb$p@0ki;UhE-14(ppW0q8II2t36#To86yX$V+&s%P}aT?ozSR-agjd<>;9Q zf-Zl(#wWG8?1_oR5TBNmZbAQW?Iye_t4oHMc#?yv+YG|ww($zq;3;t|x~NjFmXbU| zZ|Jjir~Pk7QsR+o_B5xH7}{p>`yTQtAC^*B2S)#q4^4<+{H7yXNW7P?(@nP8d7PlJ zLF>RqXML=Q4CA>-WdQ5{Q|wl>$%%(PAtr~8^;bQ~vaO(p#j2>pA*wB+zH&99V$* zJW6AYL)YOAobx204D)iupXeY&xSBTl))yPH`vc@;c9hz>_RmZL7I_E?=M>8X8dl6^ zAmRvN>=ES!+5#ia#{x_ly~HE7esO6?YuvA|u#%o;@PvLRU4lTDbi4y9Qw{{Pwi=lm z^#86*10?@~l%63C(HDLO5HO8ncve=LAZL2c?P!VS)Lm+T7k+?rxjmv<{jN8#vww_@ zIJk2fm?`&5=ngJZanqlf?C=GJT*DBqZ4AZ6^xZ$&DzM%58;Pz({EcH&yHyP4K3WAX z##m!rG4;@Vn_ycYM|W@hJFXOPX9|?H|mD&qGIunPSZR*f*i1wOTf8^`Pi50;2^J+*WNq~rPxJePUV3E%VQ zb`nLeGCzpqL7>~V9j7AeNJiE0`5%e*Gl;;Nv?@*7-d5W@r2o z?szo-eN|i!pas3d9yL+FJ9-3(ow9J!I9Az4gb@kI3OR-%%88?8=Et9=$uBwHThV`O zq8}&E(y&jZ9bDtDGVGGbuln&!{*;t=9%II!G%Ix@et95P7{AY@kedSDyD4a5*@F~% z!Gr0Zqy9RLpO~*V9`W38Z(=IOI>~u6D4#+x^dU3Vkj#l@jk!^k@+heI*-EA3L~oO( z#Cm^`yhPa9cEbbvX)H`6om*Hz01TY7YR{`8hyK||vWh8sE<7sVFk|P&;9tp_U=7aU zfHv>?*2qXI<3=jWv_Gsn_LfV~q(HKBflqGbOnX#`o&K?yI65X$9d%c^;D$=10{>cE zw!PL4DPTqAP|PW;I8|wfhv6EW*8+#t7j$$5-cL4Vb{4GZP()AsgQbZe+L5Lq?e*e& zCDGmx&6GX!o$JKPkvY0svIh<~lu`A4PD3?e2BX;U#y1LfsI9$H2m@MkD^UL5A_mq# z6xN#`k{vSjclSGl{Y2Q%+6gVkf(g~M0SDjrw*G>_9wj%hYi!LF&+rUHf}R&5^mP7f ziM^-h#h?6LBBS64kJMqNG!>2+;bu%y&}gqS_!?v0sACe`8RlRDvp)hS@s%K50i)N$T=vxK7Ldb*v)ZRQvC0~dd5N#^Z(_4vpQIe!}j=6G|Px2iL7@X)dtmSEnZzH|r7O6cHdKk}lEZE~@XIUN- z0p@hqCqZ>CD`F?)8}c{)d&o0&FB&UD%~}3aPqi54PenFALEgkZ?XHtCy(7#dfbPz# z-a853q+~qy4vB%JWhc&KL|r)jk$Ei7Sfoo#|Nj#mQ(+%q5r-rSUhgC-$ zQTwm}Q*ROXQOa~?@u0h1ml!5ES2J&e(VVF_3yE%uwFBHC3uU(!3{P{~`BqhU z`opQ5=_?Z#U`j`JDAgpG3ey*PxC7V?NIQc0NjD<}GGK;h`VR;SA|zNJESf4sctOE> zx8~-dj;vk}Qo;wQ2;?|07NtijI9e7F6q+dC!$Qy4$%Zb^YMqUrQcug6`(}Xau?9-Mmb=ssPWvoOvr4G z8{E_|4-^+u8!gr?EHSS>q5h!N5y+e?boC4V&SR$wNRFY4VfLJlr9)3iNv_|Ht^fAL zo{L~sx9~)+cAP{U-t5aXb#n5F%MWhBsEv&8;s@&Xdt2=dK(wo`XgVff0}H&MdT2oh z3q0xKs2{wMezGLlcWtotdRkghdqnTw8W5_!C!;Sq3M8pl(BOErH2==$J>xRTL8{bE zc|xkiTLU2GZZ_BX;$2cjB$a?~gzBa6uP=IA--*&rk^2{0XI!ggclmmxR8k^ccsC!n z9554Ku?O6L9i4Gh9r46SY`$whN&k=?2O!1VLLA#tO=s~LaXA>FGxA8C4k@#FMqp*M zOIWKj;n7gO$8^M(ye14srCSj#IjO8Vv2b2-k+D$FL_{K5jf?>$5K?gYtKret0uf}i z+%G}^7-6AnKyH9FSx8Cb69L%Om2R5!K85=v1}d2FY3?CvUf(0`Z5_Ag4I#Lo;yj^oP-4UB z6Jx}|ZR67*&QLFWvaD_MKaXVi0M)<^OmBxNvxB5tv9XFC7vk{9?$9`Pz@1NNhHM$q;k#P9S7bRnA=yME) zhf$fSP-FMRyjjQxN*8^dVs>IqlGNXoKJ)sGzw!RhSmFPOgTnUz5eG>%pO}kh z!!-Z>2$t5Dqp)iJiGrM9*NAvy0&^OepnyHMyM=5({kQ!ABa=6M8wf8v>s5vwiwMe9 zFlRa{T#za}p=X{aiUJN^LskQNHH=L=md*rpZ&K%X;536qp=7DMaTHJ%kEQlA1rv;E zo)26_8GXDRKOy@;gES@AzGCft-Y&0_qf7`+&2QL(lrsv%RilLal}AXsK9#B42Om~;-in&pB?vV2pyJ%8S!gdLE+vsOxhs-8n>`xij9xOXH zmvI#nSFS(z3D}LAQGQj$zZomRruY{ZjyskFRBMwWZpLaQ%I)yLZtYk?E&mnasyAnb zZvkhh(-w1%tjqtX(&jX(e@r6;&FgVvtcT-?>6LOxd2g#>da??WEn*w)?N&RSEh)fw zp)nz(x`g+t^uCe0X4F$q%3wu}!7oo$z+6}6?Iuc^cI#i;b=$r3IeBl4#`#Z~1Wgpw z<*wnDH>w;+39)A6!#-*xnk@H3lnU$XXSA*8(DWI3n$B8Vr_TvkC93&0%Y*cVKH#9yZZ6Fa6V%LMq!sv<7&6~!zj41(#@yZOx98+{ z4`=I4?*;KSTDdJ61cbct@Je~oO(r*x)C}G6(|7Km>&H`fwFq+r_cw^`rW3UEVEZ4Oypj|&!C2gC@VVVrb}ALkU3Z@)7W5BIb> z+)(dN;Oa^;T;zpR?;y8@_J+K5vfj?%uYGyc*01z{>Yt)VB&%$Ah$A$x0*gXD%I)-D zNNJo?-rV15blffR5kn|E$pi=Eo2+=a4ZX4qYA90%nX0NJi|zDtH#W9x(G6-nj!_6r z{)PzzlWs%tHi!Rx8{rmkZ2IKtE=TIYK0|*`H~;Ym?U9(BpX^ zqK>1iLwM#a01&9)LFppwdlqDEn;4lURKqyp_l;#bHT6@4YvK>}ZiWxpl`bAblW4tn zm|GZT=<5r0o1{kPt$u)KWY?RJ7gTnyr%8)%pu^6V`-w0hR%+Z1ucKT@s$a3VA0_sB z`M*m$^#7Fh+_)>#FCp#*KkO;YLi6{~5?a!s_>rqt&8Cey+Pt}|_JT~U<*=>b9)gD`$xvLWsbw0)TF{~zlcHYt4b?vv7=$~&BSSh z23_s<-#)9Vz2%$&#)NH@!G4dR6uAKnQS47r*b3Op$(RNN(z@rEY_jHz?SIThP*FC> zb*WVq;*=BX#bL95G;jjSKc9r-!ykkOuz;>j-oEIf$gC-olvIT>BLNeHnbaIaKRb{8 z#NY3P)x~azpJa6U8gs!wf^%ROqVffKhp4J2NuUk_D`_~ zQ{0?PHcZYn9r0=c>%XPD+zFNqP;$~9#o}Ml*Mubr-8o$6UIm>c^AaNRcP5`b7EMD{ zcBCKso?lQ*2kCid9#L9VbzLIsB0MnyZ)jaNiYCIO=^TowNL@_A=<93pru4IH`742! zl$iuEx4-B1EyJl~B+uCjfMZTCMYZ*QjsxGGb|{5=$GR6%J`xtaqTIw*_4~NIiQSsj zQ*1a~pH7!&eij)!9!qa4_xJ}u^nnP>)q~^tZKxeo*L@7Y-EGz(=RwWa0fAr#NYS=_ zhXY+nHZK9b_3Yp(;`-@1P4fvK(883hL*Llw2YHX!nkEae$vExxNSD=4p&zIIAl@$z zS~;Wh*?`Gc0`&V;&r`*HbPy*n$dJstC$-Rfk33+5Ugxms{anf9Vx)`E z-Ab{P4IkC7ySK|yh=qLr1`xuzSMx2vDn<`-EN0_vgSHRP$$B~E7cyD8dxG={O!vy? zQeY1*x@)!MEo2sIaI&(oaVZk?zVq;0PMB`K=(Iu2*eNJMtLF~EJPl>LOe0)g4fQDz z?4z?vSputSrn2}zQ+F#RDhVZmnH!jyxT$T7^puyRGnuf_TTk%q`RY2uuacXtT=uOF z@C%}3B$>*IQmcvFAVoGtga8`3IKfA=j$U5SwwVDU&zcf!f&?YjL5Qwm^ynK;U%kIQ za+(BFXNGu>$M2`m8n1My==x(CM-<%x4_Z6DFcJKxIW3&Xc-s!rl=eY$1mHMc7Z_@# z`2V+u7sOrJ31nCA%ItYMs#J984?8IP=_gAbRU?4I9Pu3_txJ-ciLe4bhg08|>9a=$ z?tV@({X+QTr_^McnLuwdeOIf4Kcf&rd6c2bBOfw%^eDA@6b-^1^fssGt=m>=!OX50GxHR5S{1zB?toQW!;m(fL-p@`Pk5k0%#qYMB}Y@Lf3 z#m~{dZ0$q)%0psb9UxY1Gr$>d?rW~Vg=e%-}geKIzg7A!myu<29~(Or~f!T zmiGmjn!bD|&1F_#39tV$1*LjSyU0Ogr85>Cj=h-I(H1foh{8j-GUb$x0|19Wy!{=6 zF?VpKy9rM&_tk3KoK~2t-3vJ*bbm3kN13HwTv><>Yjdrw+BWgTCCOMdC1}TOmj13M z2lZtbDue4pCP_D5r=lFhz-c?hlV&36m9XhiMDfa;(_3kh*|>#XFV@JQB&&nk_)mde zjR#OHV}jEju*i%iLBfersM6DP?22z;ocf7=JgWvoYuwd6*^$({V(u@`U0ViR|x# zDgsq9_C2gGzvLRUX~yy|zH2R&X~$QJ*5vDOdd(;*Vq6udJk|2cu28p-A;@71HIC&l!T#t(PZ~Cg zNzMgILwLJ!`xC8Cd;o?-{wt==209#l0Y28>eSvSt;zfIPVWJtpO;}jMh0FKAqoCUweX2!j5d4 z1@GPe`iIN~-QkQmjZrlw1B^QEBr@-&$hXK?wC4!2rHdED{&ut60w9!FyM*o+ADc?a zPtpjW2%9`V1>L#fb1(2lQI-c_EtAz{Z=W}KSQ-YKX?ca&WG2Pun3@E^vvc0y8dX} z|IVfSQA0C?Fo*oh4RSzSY*L4`J=I4 zN_0mw&L-An$T=v%V}4lOFghsFMeNYd6vuj#79nA!($HK*nd)Y(^kv%O=h~%>eKaRM z(z?}UG4(F+=+s+EP_y}J6q)JeUn{PRHISw`Ixc?3g!NVRjluH$C~*wKgvKG5i)NGO zO~Y|FNCm}8u@%E&!{Lxoj~K_apf`=GQ;h0j*=`pv8|$?CmsLD0q?Ui>NpPY>X5%lL zQPPlKGla1#V^oK|H>O_uARfVWep1c6pMoN7fdY(bCnms4!|Zteai4miVKv9nHqQG8Saa=Q<%(E-V13m<3JpO_oKzuU zzF9%5d}a!Zt>l$#m>}CY!qcCwWeGsZ=CD_t5^`6pnWT8o*Ol~^P&m>@ov<9!nu6-j zAi0X!XdoNNGh!H{aGtL(^Xm%g9$UBXq&LL{{vr6Ml5;szX{H~g4%y=b&A+z=^EAt^E zUfK_F+z1g6i(AMz_Zqc3JN!p90E61?L25rix1T)D8%NGf@7k(3z{sK?7jr&?kmvY_ z64U3&j^$Nd*SU}6v-gb-EqWKlMhB?4#}$7698jLPgm(8^EUmTzK?FMJ@b| z->5-mB5@j)F~Gy|lK9;4+g=bgc-Egn3g@JW37;*2$1;pWxU&8h6e890@tA zC|QR^aKjM$G-#N_W}2C)ktWBdn3&jHHh>18$<-_`f41v9SG{RGy2g}TDd>#MLUk`< zm_zecT>N3`OqECmNHv~;X;eVpZAZ+k-NH7C2I#OQ3R!M7tN!qgY7}4wb!RG|RNHSv}on!&0 z4!^745P6*p7s+pfV};Yl>`-;D$W&|}o9v-pnMeZeX4xsD+2ud8^E=7{O_G6yDUSQ% z_1LH~$i)zM!3HLF!w=Qm{Y&>Le75I#>QA4T7HlT=$195=9pZ=ykrKmT+Zt7ek!3JRDG~*Q zFjD^LL}IL+KKUhiPW%OgBS8XvrEl4Fp%k~J6vDXAC%*eLF1zoOS+zXl{n7Zu zTR0TGz*zI35g$jiB*iqgzWGM*wrvWtN77{S@>wbSk}*2+w8wIhj$lL zQYxT45_^>EI$Vk1Y+t8kzJAQsG=aE&Dqi6S2v?VUNxz|>Yv$}?{~e|<2@(h6d_!WL zxY#U-b!tH)GJ%$#rb)2!KBVmsqx=UTG)Y^M326wJqEYX=}&rKeJ!(?!iSCr zDS3_cP@d^?7@CecqUCFkVE$%q+a}joA7u0*#G1+$F5t_nA72kE%*swi3OcM@v-Ye+ zAkm-T+nilpMtHYp3cEZrDr9Go1h0@F@|%y}zpdL!lk1<^n*zZ7(< z74H!rzzurqy)niW2}Q}yvNMcBF}4sTZce@z7M4)LHICG==3xxVb{HWS)NYtiyDv!I z*cRi$A3#K*A{PNJLW}epr1yNVn3L#3cxZkNL~7|%FdQ}x@SJq}<`@N!3H#KP{Dxl| zfcWdn0rv6qIK;^1QVeOZ-p=D*r|qn_kwFE#j9N=Pcv7A5Y#O_V(!u?v${CY;PZ#nO zuu?SYR4?~1aU&CTlTw5RI*AT$)&s;^(p32*#$vE7WuPX1(hxi$(xn{kjb&U{u)-74 zLXU8fBZGPJH;qy>C@6`Qhr%+?!1(kBA~Yh!j-%y<8oed>MBD6_F)%QZS?jQEPFeOLZYp1U=9$6MfqM-=kgNlGc#ps8|a|D0hnhyt(Dlo>4* z8Y3zwhl59ub%Pg>NVi_^4b&mut!IE6g;}22_Q2ARxo7_n2K6g@@_O2(NPx)_SL(K( z2tSR%McORmHHIbWF-LH=z0Io}6b|AM-X#xTLnvJ3BN3MI#-hQyl_S%()9>I9B5UQ97A>t+=u&mAQe3YpLz#ghSuPPcO_-y#|fMM zFSEDX%N~CWqtRx2?~_lnH11~hl$&Ft>;w9Y-bWe%Mg6;lRKtx%z-fn#vFKF4vdXP&&!r^ zXz}2!EUivZ?^GAW=nm5S8q%w~`mM-#=BNzS9m=<29ZjC~1rAaU>7+4(3C%O2#hA z*a26Ui#YkW4OHf4*!M_f{D8fW^zaxd@$wZI(pa#o4G+=o;$1)m<;?=`sJq&q%mc4{ zTWwrD%NKcEEtgp9B3-4Um#O^Zh2|*nmiONRl$TZVz#uFW!b|WM$9fa4l4%msZaI4c zSK-+<=1W;pyiX2f=K!Nk3=D~>G}CWW{)7uSmkv@3G9bKw4{VEWbK==G_F36LX_hpX zrYVCO5hNf6LHdElnImNNXrhdE087n&D+kJy#vZy&WMp1IbZT%KwF=OZ6) z53RF94DqtXeC~^7A@7Sf#V>&uPw3NlqCwf&vvkOF@>oSt#Eqarr~OlSmNHYtduu2@ z%isE#YWrIz`*ukLLH-Ndd_|M|tG-dqS#3sY45-3&%u*)Pf8e^yPA5@vHGK39paDWg zU|9leiXtI!#{B;&T_e9Y?I!PvwyZly?lJ-q4`X z4B<|AvO7jBuViz`h*uQX;#bikob&wa@Qg3A%b20@K+{cN0ZgMoj6EQwcc*+$87MY5 z_QzN~w11_OW+v17t@NbzX+x934!+1BokuK3tG+DVc*Thau)_+AblxQ&|7zIbrR>I==^a2yL(z(h=Tu#V6&Zj6>o9wBTPJa59VfF$%fA zoBeEQVUbhT@H%?psrKA+*V@k3CL41t+A)yb#<0w>`f9 zW}07v(1IRWfYWeOootxGumW{IaSRQ4!W%UR2S z6q$ow+pxy~*hu-H5m!{J|fL zjP;0L_=R6+Z+OESB9G>Kz}RSXUp4pLN9?H^r8*bQ#83R0 zLJyNqZet|LWY2vRdgyaj-uNjb?(*0XW$UnETf`l&CIT4v5F z4jKSdNGDYo$mA!pYAzZ?u#aS7GQ6VVagiV4Q==37} z)@Kfv=BUb;enwj<0n!Hx+6ji6q=y1=buupGGNkBHRbC0k*#;ffVDJiWF%$u8ZdPLu zhAt-Uwzok(hwtY+H##5V5rT%K!D4-7KK!-*XRd8vP@Ha0J^dVtnoAsfOAT%qkB)fT ztP)l2=qBQ|JYtSKvn(a?q$>?eDuI>}XZc!24RF@@VLS3CkEJ~_B!kIk8H+}#OmX;4 zyz(Z#hAvAgu~F723wCMiE@QSsmoekchsZHJQprg^@|s6OkoZ`C=pA@%o0pMEyJO`Q z*ACZuLMM_DqbBqR-bh}B2c`hl0IFAvL9FHTHpaDWJiOd!+>O~?GU;3XnYkqnjnXp) z{E6SU2uO4AWJ}-eIaFohde%)4xBDS;gvawbKIzS_TS;RLpnvlC6iO^Eo7U>dyS-f^obj6 zV7*`fyukzc;xn zC*+}YMOL^Pmp$faW9tu(i0>gdi5DNoVcW!h(%Ve{!g4Ii?-u#OBLP^3&-wbi?{VH& ztCx&8z6E~9Czk%Xe-r$scKVD<#j4GuL^-l;#6$k=V{EN)$~1ek?PvX>L0cTrd-BOAF+@JciGWM(vBw^3FM837 z+ACi1iuReG`I#}u-3uh!#{d5B|2`t+e4E;rfBn~gJ?*@`z1@EEH-Ga((rEPKKmOw* z{J;Fmzr3xku8y9^H)9TrIWXqH2Z{q@qtOS7lVdm^6b?)>=}mA3n`xw1XM6SNo5)Pw z+~QdA0@(2pjs@=itt>O}TDnTZrA$^7Rg z29hYGDonAi9LA?2-z7u7B^@Tv;2>U*QaFkyAOA8*r%>npDVX+a61oNtdc zU_@D966@RLGH6(1;V+-%S8%7P;3CEzj&;Z5==6kBwP?^Ax3=0%mS?zJ>Hs`Xee;j; z!OgYzc|HI)m*&X_y^j1lVq;bnxnpS8a3xlH1+1^FMp<(iNR-i(!ypG8r^I#DinkIK2+tslp4a7Vn){GC=#)C@kznJ7Yg9g%p5-uUUts}| z|4`$t_z_q9qD|8NLP1(=19Fb~jz$>xPBb6olBFIh$K+8IDn5xx4>kzY9EOXF7cQ_T z5qoD%u?g?q0ecW(e&r;x6L@k!{V^(nckmeGDnJ2Z-?JSyH@Bz>dlF0aR8o~gm+sUl zaPSM@unygj{ufHikCD?Ywu5ybukw{Uu6JQUdbEoaL=Db1<D*h_blS^%9?}-p%O@qO|63Lol1Kc4M43#y*d;}d4yAikg zF%jh1N4d4lVmzb%j)$vIEgxeHyj8}iW$3roYxzjYP(jgRy=MlI!qqtO93jNBagKqV z-?SF(RK`Y1kxp7b4&x5xiyq}#dW*lIKcvVfxkfdl@fDtw(Yp*g(pGXT{zbzP$K8h( z%EiFq)xXG3;hem{G+#U&#1ST6mkr`smnS0VAK_VG8H!GP#9**Nb7E9@@M;wS!|UMQ;8 z=d+t)XW1NWQB@Qy`&s{JJQBAU#zNJAOJQ_Re81%_Z)xB6ec#8D%BOFmXLED2{mZ}n zOFqB*yT2RHo7cSNHSNP<`~uooC7&k2B>{fX$9F#mziBAm^^2xhZ>b{ z;4`&#`dAY>Jw-ALbWTZdZmBYH#D=bWC|mI~VbaLd5o5z#TU%MiXv8GmWd&Qtp& z+VXt@n#nN}aceTJf6UW^aixqqk#<5o(7_Ehj0Ba6DL25TF0^anq)U_we_;$cEo^co z?mU1Ok9Z0g+~~98z|=m*2=Tr?95ZJp-_{p?3iNy!@L=YQVqf{l zD3+oSlvHk*T7y_AgXYUo&LqrfSmRIf3e%ySby^QfkCXQf+c);U`75IlMn2GS>4E!8 zsGu3d(}{dN2v^!|CpHnLo_RJ#wK6xLokvmf4Sux+_|eu=DhVh6TqvWmO(hscrr3O{ z3_oBt&~5waW#v9ptL$l@2h7fv%CMd^sU}~+Gl~di9`dVLNTA#-nS={b_zM3dN`QzH zlrfbTPtzNsh^6JgDR1dhw%WM7O((IF4dlNg|Sa8vg1 zKM~=i+&qJ6yK8LI@F+&)r&^wgr(JTDUgBmkUR_$k>jk7-I=RJikP~G4P@@_B&AeF} z0!+XFERYHY?ctJ>6Z+&t6j%&lfupyBdu8E8gIq5ypoBxuA+qLX@F&2Y%5t{COQlX_ z*Q*G}&=Jh@m^ME%3P{hu$4~`MgcI=Y=#8%2qy}gZZH-1Q6-zr)rur+mfur{^{&98h z82jD%V7f32@}xW&kUipT0fpXip-^HBkzdf$jU=hdJc9>_ioAwN+$n%(E8%hI-cs;B zeBgP~ldVYdn0Nb{Fmsw9xD}72q39?>hfu^*L`yaWT_5Z4Q?jGvnJq>>ZUCJ$W!gMF zZ>Kwb(dDfex=n)x!6AmVl%R~@`I5hGNL+XrM=VI#R}9io*idGuP8>B7$a}{GpOcrI z=C`bTvG2#*Dyh&yUDoHatqK+tXoc_$xGsq*97rX9+A8f14;)J3+o`vPZwy?66@nsGJYhDO|n>gQM$(q+$+R}Q8EkR`iiM4N;^(|V24 zs})20i%3&baFF)YZk#ZK8+p!H75<8&d@kHATc45>X{_haLSDn2_lYxJIQ@ZZ%7SOE z87IJKs9zYh)K&SSukz#Lv+bt=+~s8_{>DI8>H~7YE1Ib)!8kjm^6BqU@(`7u>Cj#B zSGn*0Z#{~>`@6rpUB7<){Su=G((7OU`u5t_zP7#URj+!#`S0co-}PPJ)ilanzI?fT z-sgSZ-Au|D_b~^?92j%p|A_;AcJ%)QWL$X6fe#i3mX^*$)Cpb!6E|m&PVo}Q{m7tT zhEcvU#&l)fX|G8qC{UYtFFbwqW;@xz>jNc#sbMzTonoThH=k7*PdyZ}obyD#oW7#Q zMfp%kkK)2L^T?s@nqXFaZi21(z~TwODvy+!^y)=10S->4O)^NE|G}Z6DmF+I-OQO| zG%&d)yrq_!c+JW4_MI!hn>(5w>YA=Q4jOq2}R37ON9h z(Bc+VG)rV;LpGPyLd8S9&D8)SO_sN9z)9FX2V8&=SG>*SUPBDL)sUoNt#5*w2|Z9M zXeJ{#y9e$x%JM9y&n>Z!$I2p}MWC?9o;#WX4v+RqS+ow2PKnTAiGm{UUeBShYUG-kVaX(lXzEwH1s5QN)Kzf$wt2V7cht0ERIcd$d)AnLt z-M|y$L5>mETP*xn`Lnz{0EbBwyzranE+;;bO#!b0rqW!#&CFPjlQCP(TwO&K8GHYQ7qOFWl62&sbJPSy7XW*IYAnh<>uUu8ue z$UlvH2JbiaHeq)e&~ow=$GzKkG?X|Vmf;K<$j?*C`4!x#+p4^$f?SnvsS6U;#hvJ`IH+q+p-yvR7UzP1vaY$rYUGz4A0ev_qbdxOy&;~6JD zR;V@rNHESAg%Qf}*TLWYyB@i?-qu;J_RMoP@HnO4P}j}fjkbR2V!M80lR7xnjQy52 z*}(qh+un(%;Cj1q@j_d`W9b0Hsi(W8%Z5c~e32LO&M_!*LjNmll$DYw`I+`0U*}!$ zrobuQo7GPWPEYUhT;pHKS5LDq^g4xO-UM;5^909p@s%1Jlmqh%O9Q$mFrLC&D{-qb)qgW?4Rzh^m!J8WpBWj92vv+1~MvceMZbkN;@D^E98;!Zu1Et6IiUdvUU!kI~^O1mg0-W!YoD8I~9Gx4rO_r-8}TGQ{;t#+m1 z$GtJo+8H{HyDg66#l^#m`uq>(eBS;dG~DT`v`e2 zKN4&YE2W;`#-nPm%1oB2El#&(l%{pO$DVxpI{Q7%^E@AT7MO8g91ImI0S72t*?T8O z5Z_dnoMm4Y3|0%N7rHp5ubs|EftW-QcUeYGdt<+zR1Z#lDTMN>CxaWGYXFOp1`Jg$ zRfLU`9%)xGoa2Nrd85%pE~+RgPu++qpVPSDo6~@hca>6uMm6E76va~uW6KGOqcA-B z+crLAd8F`a51`4m%fz4EKq7~Bjxr!t72scFVF4lr<7m$b+yVTB*SwlxYbWYIr~=aabPt@QAOKBQ^509_{sMXz62oehVBzbo&VJOPSA7P|8V5*fWe4;^uPD#==&`vM*D~;EAhNw&Hm5907nNY_j{GCLwc$AZm^xjySikAg zB7XEWJ~i%Q*e1`t65jmgH;+j9{LlaV+YBY19QNp=kG4`dBwA z_(8sL(`s?~--hyH#sist_`wd!ipI774Zh0S#>PgLnJLR3>|lNJc4cMdgI(1a{+I(} z4&22Y7#of5;>NolP@h7X&BQTNJg0e1?wpYF<&P;3x}28>gp+iq;snxsQ_U=o)3ETi z5Q<74OP8F4-@19jStOHU3<6B>SC~YPyf&CbW*HZg*wGI*@SI%s$!Ol#Yxp4EIDd5G z8G}{I31!bm4NS26%+&1SCm?in6_!joc_3mcnrhukLIs|ItZ1>aKU2Np`A zOOKqRiwiX*#d5^*RNfbsGf0ae3LBmvc^vAg2PfqQWRWqHENRjJBrm$RMR_2UXHUE)NVAO& z4#dGFDN`JSJ=50Mq*lBvU#9`t=EwzgTP{4|>jWM|i6TzLTCbFCjZVr2jap#1+oK%!%+3V>jJhhE@w!ft9+=HnUMfoj%HI}+} zma6zP3hOB+(vwNMKqJU3gILLlrcq}0|%8sYL&0wHBW^b5=;nziZ2lhKUK-vnt#7(m5sjP|D#R9UCYN$PU;uAi(v?&ISXZ6Y#m~41Xlxwna}TT<2W-QlThFY+ zV>S|Zqh`EFB74ZVaFnyqLYup!D}9^#9j_?PzGQSnKZJ~FauVk1#bb;x+@I^1wup=X zLuFn%flgjb@xTTJy!aTe@!HGSBTR^&pf5Qdo}Ab>$;AIOvNQ=z%8G_aThw~QsZJWC z4>D#V!oa|2ij2qmi#$_A>UlK@{A2oy{df|Y1VGUl+@uU@$kUA##!y4psoa#2s`yc? zl>i&BxKK0-lc*s$23Xd8f&dPkM{O6v;W~z)EubH?J@Ox7)RpczPEymeXqV+;?|RpJ zvkd0q#fy=b3+tL7#o!Fb2**yL7w1-Ra~^+vm4u zn)@mC8hiBeg?9PkVtdDXpJ`j{nIu1teUSp56Bw&!S1z_&o44B5yPj$fTv%hTqh)Zj z{T*LxJkD<_d{#c7I_;{9V|UE#zf1C}cmh81Kmku2&&nL_V4K)p{_e{E;;Q9r0YcC51v(WeLF%}2J%FK!|~1lv-t zQuCD2iF~B>I_B74?Oq7}=A7Th=*2I7@qbH}o4J4O*M9A7>7Fq52Y>JfiF^F<$Fnce zZ5i%(_|YHz(e{^r`Im{+o9SD>^;>iQ{onun?VtbopL73JU-eblaQh$s@gLhC|M4HU zzx%tt%ck5KHeU9!m$k3_%CBtylRbu9cK3_F_>1w9diT5E9eEVTkN)V7Zf+X={=)O& z^xu^c{;&S(ueP_p{q4=Dhi5t&qAxz=WFPPjhu|qM*jGsxKiiZ0WIR(|*$IlKM^xoiTaNo=y`UW23 z!vdZXDwj-St$=?NGbWZocCwgBrL`oDskW0=>e2(Gr#TN*fyi={0l&NfwRZA~|M{Ro zQLuZG6WpST;)Hyq9-o~9Sf`;+bbH+erzX^=u93Md+zC^9LMA+rkCe-^(_paVD{y^q zZcUna#S0{$os3%n%C!nbaH=>JtXe8%hEf_$M`iG7Xgd@g`0K=71A|9&7c^iD^!YYW z96agFH^PP(1~GUX&3IB+DXM*9BtFs+CdKPZ*e+S5Z7~S0vf1m&@ft=iaHh>%f+*$U zpl5aL!774LR3~!9k@atG*0uzzSku#!7TqaEX6)7#m)g)OXXvryJ00BBb^_d`D1D9#>)T~TmfdRm{UP{#S>*$ z`7tMwjOUUKAgc@!wO}H!*rLv$JW-lKgA1g`WT}csLnf;_|di?=>h-Fy_&6j9IpAjeUB>QJD6@+ml-6ac^2=S?UEg^WUfJzyH@0 z@NyS}EpYI4{hF~B(<%iOrm>7Y;zs7s9 zlNNaa3Z%9n1@$(kFb?a99!$15(WKJ`FYoGEdpEAm4n&l0< z>>v22fBL5}K$W~zHVvqM|M!32{^1|~p?&?=e|-!pmGZvdzyJHc-+t<+ekvY6=Tral zKmW7&5yrQF`?sG@dY}6{aeAK&L}+k%!yDeve(l$Ojo%cHX*dh+5%o8J^Edfu{Q9q8Jn_U6&82~V{^x%_it9JRef!(r-hSjqex&{OZ~u1tu^;=fc!~COVRwG@ zxEnWkA$l&H=UtDMub#Me=l)gl_TT>P-|~@n-}Fu2)IRE?KB^ZRU&kC6bKpMbKxt(6 zITOa@e+Y8`rJflj^ExJhD1#~or5MynJ^mmv<&1()LME3^FrAM&$#$Zy60a@c0HyQV z&CQ&qiRx(52z$=o$8%wrOryvY#2tdPIijqHX%z1E=VU-Kp zV-m$D${9S?(4r#dq^#2?7;Ba$^QS!qzM3L@m*aRcQR)J&G|AU}-U3p9&9d?Knczrx zV5=|*N9D`*(Hlm^P57M`#WU%ve9F%vlWrBpD2l+74+fP>4J#^-=W&)N(=2mwQYfBo z7_JOjXS|#+rUXyxl|rr>Mr@}%3Y_|bg3Gt`_?XkUcEnP<{qRU*kIEIP;58`qz=@#` zeDrQ`@1`j7Atja}`i*->d3qV@Fg%$A&H@#=3{PA%4lQA5)f>o@27Q}vU-PXfzFfQ^ z#is%ovsmNY1b7~WdWp}<@(RYIO_ssjXq!8GZHJTnY%dUM3(!AFd6m4mVdLL;{vjUm zK*0;FR19PYFOmt4G}rW$y?^lGn3+Hk2ahA*70vL1k->o=93*}UxzXrmNFPXw=_R`w z?{Yeud?inBZ}Zz;wqH&tREGFdhLizG(91@zAGuxQQ^E9EnhJ*L@c3L158?11UY$!y z{XKmoe^zE46cBHz0i6Vm=D~rs4Nb%+DR`BURDp494E?n2ggl|NSq`9YaipL z8m}!3?|ND3EtGQbB3E$fJUYRGC7siF)j)}y=hM^e2beBMqiAqD!_R&$`o=)dz_xx5 z*NYF*M4B5&Z*K3jEsV9wW5$HRfa6jxIxPRy_p zUk>bNc&$v}9kh$V=71%go143B9gm-t<)y?gEUu(4>>c27w1vTkeg-K74Sx2uR8lgK z@e6t!N2qHBgTOK;wb@29$~j}r`uYW~@DlGL+cuEkpW~SZr+xNrJJ^8Fj4jI;-WORu zs|Tl^V#y0!mvigw#T`-h5wR({%wwN1bUDdO0-~fo#z%1WFA>SLf~2J@t>f=4Ft$he)B0PEbCEDlFq&V1}VQ+ z!sCxW-u~&I{wd`A^>4$&#hey%2yc%|8&!PsfWM#i@z8dj20N9UjFizH~A^P@>3&@LF18zo^Srd_+7P#nt*W=*c5D0sqOL{K@w4!w--0 zk8j2t7<1tM<-qNu$^FZRG36hk9N2fl%>>bjoNrk5j!`+PO>LR9p(r@5JH#rap}}Ll z-B%|^#iKy`_IzGthabT$_E@>b-VUCs<(pcUIjQVB1N04}r#@xkIGS+QB(qOIodByy zcr~sjmt4WI6hD=NiuVV3Uz9iDN{jk|)AE6*Ao#93a2F5=G9V`7#JplJHiUHDGYxdohUQ}|m* zIC>0Bag#T@;=)J6gXLUKr2-&7j8hphT}4*@2Mgn(9Maa258gK0{>qEWFll-$Xdv;} z=b4$>tX3S&<5C@sGZRdx+&Ek1PFM0Mx>Z5)r82+7FF02HPO7p$0%fv%1}`3QSIJg^ zlaJQJ$|}5h4)UDI8_Y2+dxZd2`II5zq9={}@?=SbbrP>0T(>Zdyof)Fit<7}l;J}Z z<|CJy$PX1q=#npPqI*oe2YH)&CX4bz9+rm%d`2MzP01^~fTNMd{k2q>#5u+%`qV52 zHKN(SXc6zNMf!_PtZdiPm<2th@MN+am`ecdi#HHP9@OEsgwnZ!!RZS7ls&`#DNjFl zEe70UJ%&)0r&yL&{kiCfb|^l09cch)cw<00Cqi8hZ5LPO+bUjO3oKokiQ-zdTCW7v zX;ri+kEVzxf*eDbZ6$3Q5_`Y#TE+xx5d>EmlOSK={IEpL9Li+88xxmW$=N9%N?G|3 z(r^01xwzCzzP_Z)B#$&Z9 zux(Gb0}LSSioK7s{B|P0mF^?~{03i6d$8TB5#SKwJzf zWTkheej)-VW%=sHUgah7hFprX)X8f~@dwZ8%PTD7T)_KAPpKp1O&&R(3U zJ&Wu}qrVrsI~r(f37>sXKE+rrmt>@MnO7dC%z&e{TbBlt;9cXCaV1w4b*w3#D?>*t z`RvPDHN55n+%n|Kvs4(_(^!RdoW4VQ*s0`!UX=_UhtFQ)l(YTteg~9(eLio-EdlMt}52f7D!FcIVzf@?3*b51;cnpEK$=J+5C}zUI=bZ~2yQ zxy{=}1IZ8l&<~|g*~fn6SAOL-LyF~HlBThv2jRT#b+5Z^Ion&``quXP*S|i7sGjeC zbM<63J&AgdPhayjUz0tcjMIDTPyXaj+Ry&%&&HeUP9xP9ebE<%?;5kdE?oMvP!GDF&i-kz9>aN~(N}-hqwyM! ze&7dwAjTv2WYWN88T-OGj5#po!2QjEvC-)MZvPK?>Yv-MB?%snt76~;*?k<2*ua&? zOu~ljyUL z@C?1)e%~j?{c4@PUh@>Jy7oNQ*MI!YTlJ8KztGF%+~6d?myy28>x5mLOF_!pb~D2s zc_t?fy_k)T|j(~^v zqxw33nfi;1c*ZLPjnPeM_wY(^quB6Y9FZZF1GFuaD?fTcpnQb?WB`dyzqCu9ba^jq zL-r0~IhIe-C*EES8Wh~aNp=oVBRMe6y|mnD+WmjrW2p>98by_*fXG)o6~L>OUnvuy zM*Vu&%pflZcpbPgbjc;BoS{s*2h|~P+(=w}T?#2&@pdC*+u!?HV4boFwR;=+Jcsv? z@K06hyz-~PVGpBJKjPjtPzl$-1=0h3HJRLDIe|x6&*G(IuzBRh(ZMd?6yk%!P+OUs zY>O{=fX#N<>*%Rx+OyX;@H*NjmHvtMmF;0}>#;l%!58(;Iu@L?8ynkf61v%*VSlR2 zcw#(yWu>jspKULf6UlqJF{Pl{n;wEt^|^SmL9=1ho}KXyEW#kz=ECjwQHl{TI*}a=yR#SpHA-~+9Gf+K z2{)(UX-wcg{19R8Pib3Hkzt;xvzOI~8c&%aPQ*?z(v;j6*Rm{c7(d@sNEhVo3Kt7Dmbbpv`mqU_`T?o7q&O1WmEWqHP*x&Orig%He35-q)QQ#NxK$wp~Xe#@T*?%ss zEumyzYwv#VlWpVHjkdJB3NP4yNuv|cTqbAVzPa&qd+_olJ{JSkan0XWDHs^hFS*Ja zjqCEck2#&s(ne`fr7mS{Fy6`y@>{RtxG;Q`)&qq++SpI6USJz`$?!WW*8ZlCp8pB0a&ZYX&tdjQ=Te(vXfZnPv#Zy${w>+9>cWph6y zjZd$6&1*(^Z_DsMcyMW$OUrtA)vI3BUi;eD_QzcH>xL zTz%i{u68xMs!}_NCq@z_Las*8pn^hBBq${-eYC$HM^|@Wek%Ni&B$L`%CcqakZNBUD0+ZZrCWkCZ(wYT!sJz!i zp9vseZhe-o=_)OKLOHOlPtv{hofG2zwbW;QLhN-9K2uq7D(j>+0h)ZGLQxaddTd_C zcS4;>ZIq8v@O|Ft>2&z)WJp;|#CquOooIOUbWYaHEA=#ACdl#8q1FXAPL@+?tS`Kd zzo0}(9KYfkOeIgfcM@FyQEHqw6=A45F=GV;PgL%ltjh#xHNEBOz}m;E4m#U4gbvd9 zg*Q)5eBBlZQE8HH;~gs?D7r39)8CKut7!Bu;VN(zBE6O+Pn-~&z8{t=-+br!WboMz z{;@o(Fb1d~BWbWMDi -*Z?-D$3u)u^j4K)>ACCRQ8Vbm&&J?XZ}h`Ci3L#l1pX( z7Qo2{%A7!vN}kK@c8>s4QSt?h!dL1nEy|wOI+m?MOyOC^M#ah+L#u+JK;WQ&69N>L zncd-tr$b@2Gt=uZ8_A~MsXW_0gPd1Ib1(SgJM)m=D)NGT7zL&2&th@3faTGtrJL>2 z)tl`WOKx__+a+RgKcH7jwMneb%ChhI{KE@qF;DqLCXCaJPt!c0EnISG``O2%u+vrv z+*i4@HRFUO<%M<{mNzwyuQl3yVjpW)c@6`7UjCA*9LGZY z;WqvJ%H=(liY>>|ZyFG3hIY}n*Qryd>C0NuZlt~J>j9P+&kh-5X8>^pj;(`MP|{?c z`XSTNHOL=*=QKgJT9m5omMgLfB*ZBUpo$b-Pe6xeDC;Bi=r2ULMN?^ z-u13`#YyyW1~0nM8S{$)qaMX2SRFJHM0s&|_~D0-AHDB=@B1{ssJ}dO=1i90edt3U z>W@CFvw(`$P6n6Ab<3ZZ%EYofKHH$|nYZAbLD22hf=1mE%zWPa-uHTX$)NM@FZ;4D zYc6FoJo@OPBhct2IW>AX;=t>R19#Rh-s`LFUKh3f*uOoMiHnmvr*|q1P8BoNbHeI1 zKdL%*^&_|MqKq?<#Hk6B!0~p5AHaphGh8!)Wg@!3ms7v^`bAeo+GOeuZY%DzFrWsL z?dK<$HCYS|Dc^FK^fM`!s?an%ccNO8QWXH+`kW(q5w}l1GqsKKE_mQXw#v=>%03h1 z;qv%oem#F5CjS%XlkdFF#Cf2@xP4M?THkqZJkKihP7=MZP!n~(&K|MVe9ub-se>Tv ze-b}Iz3$Q)1&*`Jg}NhM^V!KV4!@X7lgeWxhnUEWdJJ)B9F(`394k*fNUO(5o=Zb$ zG6&L5#`h1EG!NbhOi8b~q$GG@yxhyD;kjpJmIUOlqK@47o;sV}koGbThx}A|_SPMj z$Tj!UKZS*X&jnRWmf??JnQb}b6H5n`c;YLsu@s^#b;i&~nJRr+I%q*738rzUEfqNB zW1gj8^YgRud1AY%bY_X4ikK9UUjb7^yK-W^C?R!$`H3TqDuODTb5l%+&#ks|r&n02 zw%MM!bggZ%OlOwTHS0H?qZiH zEHY;4)NZkqP80D7epfy1B`c-yQtl zXi-Btl4MMt030Y^IgT&5+=9=7Jo>_#$1(E^ayx^yQh`hKB_i2>1PDF5#7cltusZu+ zlD0sjp-n;t^+pceIa0tzUTfha)@=H5t#%mKWJ$mhtY<2im*9yq#XriH2ezMsm==)X zXX;NJ^Or;Zp}(e`$&)P7e(sQI{On@M*=zX<^TVrHOvxBR@~w*@PxEG6ArF7H1o5<( zQohF!@EMk+IaUam-rCr0Hvw0dv0hkUr$qappqx&Fbwa-dK&S;{eghpBq!C&i57O^# zK+2eaM=sU%bBn&F1P>>1T7U8W`*41}&_4Clvu)${tpHt96HD#Pspa@kx_oJ;U1KTR z3QLyUK){Uyre!wt2`V1f51K5sF2OeV=5Mh6^b6$-E;%0d-%uLcY|>u*Nj$Q!)~P>#%+kA@*)he*7(`NKc^qw?YJ zM(^jQwCvu#9W3 zmw)NQ$DPg$rWbJP;hVncoBHKTo*#Vh!IymQLwzCj;1a5nL10Vg(mm+&=#_#NR*3KyAMKZ;^N0f@4!n*zFanKU$BqA5sQQ+QPBLt@o*5z&SEuGoQk`n5a5&M760MRzxtaKrXC|p9&c0*n zS`$c~6WPDVY0Se}XnlPbOfj#@(|G>yGxv-V-M94BnQAY`I2EDt^?84H^14qTj(I^j zUWdLR&B-{{C-vo>lVK{-btH^ ziOUTHKwSPo9C)Cjn&pltWqZ)31ske$6e*ua)lM5$-8;|aUGW$CP{c_xC>X^9l}(=| zBp(1FLEgUd;#|sZSAJTS%k5wtFo8lihE+t`c2JIb8R0n!o%{($p;LZ`FVxjM{hB|6 z^+Lct-dUFERG_Vgq-ez?AasZl@0W2cReYBvb<{_NR4coEc2IKZ=fqJh0aSV2qhDFh zEDD^yEM{54rcyoyXs41d&$}Wgoq|y+T3Nb9L+Bt{5Foo3LW{h!EdyRrAGPjmXwvN?LjqgtfJ%q%tQXk;9HiaX@x5|=^SO5A z=8bl4dA^-rna6+9LYs%y8T!9VqspRAWTPyv}f83D%1oOkZG) zG?W~9CY!{!9sL-f!{%wy&oZ3PL_SE2d;?V=uJjq?mt<-0&TE7z@)hubf|Eaa*izw@ z_C{J*B*M3N0n*ebe zj9Kpf=ZaPw*l;^K(Aw&dm8}u=_^-bVRjZPqSO2a z&azC`zU0!@F|4TsZSD8tSmn9P=po~zef93Ms{!+#dG0FKf17Rd_RaRd-Dlc3W!$`W zHOonLMtt}Avy2z^Ve49Bm@;Rr<*Ri`zo0#pqsS6xgYWZO3k{J|^B8)N_gbjgMlxN0 zR9-579>w13!^W_cY_}vRR!Ty~bKe`3AOWhp$P@nzX>#v1|6L}>Kl=iOktKOUv$y`~ zvS^M45=%I%mic{r({nvj@6fKLo zsfY02_R!DVGH7hdcu>0~^?j$V#!_a8ZNekmu~C-Zxy>kh&g=hfz; zb8Gz~eWoFO=QE9bBA#HBz>&c`KJt-|oOt`nmoEn9UOD#Y?T7;-4&136V7fI5BMyAw za=<;3oDlXyg+j&Dr3W*7>ePB*nhEA2%EycrMEGo&<{V24l*BzOC71znzQrW+2tP*i znVRlwZDv`HssuAsCWa`}n$71+ClgNQwoVv(@cQJBwf9H%<2%nzk~nc+ie8V?72%gkYaG+|d`#Py z6!i2xf8W)ilIBte)AG!jHatwZ{PC-G2QGZo0kP0wY~pDBpy%9)1HRnmnmCSky4k-`rw4@TY!&mt| z9HU!)eDR<(`PDuCRBTTUX*aFGa?>6>kFqn=InTJ(8bGDP_@)z>C|anO3MS7z)>v9* znPV{0GF(Py5kyCcth$=E+K+qkHtsPqj4VIll}eN8{A1p+Gyu>N1eIPbK$O3L1Sof2 z$Et$-#t?Luw;iCUN+1PPNmsSh>*Gv(yQ?WoP;@ z*F9JV`#^l6ac$dlP%L#tt{9R47)Y-L42RFVl?p9UV1YytJOzv%WWr{%Ep0pHxD?@% zRituw=bMUAaqHgp0c#N7sJBBI@*n`H?@ACT)X}b#UuD7^Yzt}}88LU?>)VLrDImKe z5;by7n%u)rV`|$*Ww|D@@hQh`@53){XZ5GU7&RluOG?nLSTQ&-lc!=Jk7y5{Tq7hm)19J3lFyeh#r0N>Gt?Dm)j=%Ip7&^PU?4dd7+&FSl!$? zY)`R_?ChzfcJJM1>7NsAVP0!Gz%uGS&Iglin0E#LC0DWV5EvG8JrX>HSL5`9@WH<9 z80s^AL*>O3ySOc4#dL;cZ%;pWr9J)BlkH#!N7!f1;y8P@U7<7T%jMpC&XZO?@H@zF zZNO6io&aOk-FK;{ysRVl(2{?iIYJ08^lbz;Xbbqx#~rO0l?VHvzXeL4JW3ey_FDNj zzn+g5rV0N$4W=7@Bwp~G`koBQ9-8EX0JBzH%7UTi+2c!l=8bRip3l$y+|RWq zo_M0)zN+&{zL^BBb&abU!O*FFcFMUKLV17ENl_~Hl7=c}ViwL6_H zvU|%cN&$1 ze4a1wOcYc~UFyMfnRiS?ndoGWOBxgUKKYTR6fZR=pHv_TAtmHNDUK>7Dx=R&ctacM ztV1cnJ^k~O->PTP9wlIyd_^fvnWaE!P2$c)hRp3fb0IIS0|lV)NoOf@*|}yYJIWVP z^ubfhq~JN$5b|YDOCYM^GACe%Tqi&B@3dK`U4S0*aclVEkvz7p)+LccgZF|`Q7BQY z_+B6SbUuBw2Oj`b!gEq*x2=@PHF>+-VhnH~e1tan+W8j6I=oTw7k~i3#HWM)Vw8iV z8Tem(sr({OQt8)o(xXeIt;e-m0zlKpmV9s-WtXSahdRkll{9PWAsC@jt&gK*Vzqro zT)`qOISg7j%(JtZ@}1>AM7BL62a(NE=tCR%NpCEZ$jG+!aQTrIdRi+8;J724@hw=M z9BOGmePI-{V?ts;pYia_BqsCFIHWP8|a}(6#_5v0@=lLA-!@@Xaue z49ROlWX*(WCwW(WUd7j-Oqka93A9hrC`*Ye$6*5Rl`-2nOK7M^SIo^_UZh=&!y&Pz zPvB%*9iZ&jsN)0QkS}!l&m_vbeZVD#dsqY-CF7a-P+sJh@}(!V!9)9?I}`4(#Bh^# z+?9T0-2$XHXJQ=z^p4|WN+3lLS&1eF?>Pi*{YSb(Sv;;=>vPf0uG^4PGNcC+q2GheGH zPoddyM)?pZa!0Z59|&@I9gBR&f$cVp1;$TI~1OzpSp_$OMKU2Ti>>uqS8#HqP{ z%LI`#KEcT|%X94(%hvX{w^`meO&M+@zSyp?3!Ajh@p}x!n%xYwQi6Mtk;psm<$=Mo zvflfFEO!h|Q*!M)>zy%)Yr(jr6u9GgmM#-L)}4uOyVMwIk4wW1`EUvi{rArMG1`f) zmGbhtn?43zv{~MBANqpG5>XmBw7jg}Q{>U6CK#{kQomvK^tJ!jHu~fzKY6^I?B!~t zub~ba8Al72lc3SN-~I0PtH1iIv3gV9-AT>eyo_hif7(gwq&)l_{&9(zRzDrY`S`~_ zo~`L$u85QVk6td$%RRq%@#68TkA3W8@o!Yl=#L-2;>F2b*S`JRzrDTx{qKLt_`Tow z^5pePMt+%x@T<5i!x~+L)o?6tIbQ% zkSDfLSw0oL((K_xTs}0sgsL)ZJKCTw9rIk6yacK6%ZZ;;3pz2%Xpdc4Yd5alXb-a#P7vXNd+%(`fldS#(1{1oU@d?kyo{K}M~(GlY*O}Z_W(B(Aa4cI5RyDQ z(D@9Gn&tl<%NF$?q$QkSl|H3(M!w5=dsl0=k~@Kj>WlKT%9M{@?=wcyGATp83*>ZP zShfo{roi$`%cE)w@AI4r1VD`dM0(p6@8s_U`Hmxh%BkdY2fwjMlW71qGd?66K?e`V zxU@C=gM+DeByi}n;fHxkH~CAJa$zQ>(BjLnSgb>UZydf%A&(3bc^1nt%k1(5j{{Kf zY=eg1x_YZU2Y}>mYcn%0<6`+57ISkfvz+J9zug?m*}R@bHfAYkdJLJzid8nro6rU= z=`+x+1xorT#a2I;H;zRDYm7_EAnA7SFLXFD+c1=4r^2JQ0^m9iFciR=dd=|6j~H57 z6?dox@@KzV!T;1-9=g9>U?-#J0BD}MbhTZ*c^k_umSHk}KJ{-;vowt*m@GS6VjbQ% z+ho7-zH{x~)9fU;XdU^joWfE60>IlGzKGBG#Sq?EKl;97`WQ>X=>zf$*5sY7Cg>JWj<|wI8F!M_e#Y1Vn66xqB;&DTa;zME zW`E>xd?ZrxvTWm9wsIrj={3#9tNNEXo33b>||cA_S&7%I%wn)I(K}V!wUVy!DUy!`@6sU;>Vxyz1CMfT)K3redt3UddVHh zjI+)zh>tw-$P1R`^_}E=fAQi)PoEY{*MS~imR!Ctnme=^&*1XBll(pzQ@-@PY?tr- z-tRs6`UThWMhme~7;#|4fe{Bf2kx9-yk4Wx`HtcM2J_Tsn9wnGRAEt3^2@KlfxFA7 zKxh##!Q}rCC3^=y8rQK-a6*|cyC@l27epE6j}sk(U&;k-biP?%_n8K&BslTpouU6g zzxdqqNTe72F|HF@&rVzoOq-9(_1^SalN_Kxt5jE^6buPcm$Xh=b0b+!SbZ)JRAad5 zL3;U@a(QprJ(#x>b?bMM=K4aO;*zg*j&iSdMi^Msvx%}CEivzyT$AV2)NIOBN$d5M zUioYWp*L-3IU!yu;kS_hWr$N&Kw5cWp#lixz3ma2p}o@~?V+DG_nknH@9Mc_qC}uD z%I``m5yh9B<*_QR?TvySnxWeuNTH%1Dj`}0L&Y%4G*7Kt$|0>hD&BYgKi}5oVA&o$ zBoCAy%mh$iTpow&Oww3y00?aJ1-}3&_znnS{3z1NUJwMuhw^P(m8vK%$b!m~kZWkQy^9|kwol*l9@)@xC9*~X$PfNNM*&*X&@zpcht?f) zSaxZdrzMOsp`z}xGcAd16U*CGjyTMt147nKp4Uk*glh?vmz=y*77^KixYkDg9I&KQ z%PKbx5RezN7w|IgJ<281qMOU)?W54ItPSN8!+0LHPet@pGGW`fv)44stsEN!b(R>z z1Mo1;FR%nlt2e_P>X{a%S`UL3U9#93?gL3KfjP>pwDByC$ zvRqO^7vm=7>ui3VcGqdYOa3-NnYOm~+6Hw%`tq^lo~5a_I=!3^BDZ+2mC(+{L3&UVbUy>;?K0!fO?G8^>N%Hk zF0jLB0Z6N))AC86eP)qzY3DsbVkMe-$nPz7Slij5eXy9)Q95K01b#gm?2Upw)}cT+ zWk^srA+kU^&h|O`xt#Q$?W9~}3?Q<<_xhvD4vyaQK8M#9$l+LNTE~{i8FA7kvIp=*K)b>)3r1s|HmQ@!;`1&i(1uko|atGfeh!Gyp4+rMq!`mNvE-tv~W zv^Tx!O&RYWfBfY9^S|ew zd#?S&Py9st@gM*37x*0#onXl41e(# zf6?CdwzuV4Ajw_Vy1%8)7v~)x{_uy>uHW`;-y zRo74iP^9!@G)Ej=TIhh)$)dqYw&`5Dr1`kbXYF|KH&_ktiz^|Y?@jL01< z>XYQ-xGH!4XS-!V1Zl3Rv3wEus2qA-$dw0Gm`bs{^9U#sqK)B{pNT)TP!&R@QK|7t zYYo_)WmD#_k}Ln^wf9;M2^t7sl-_N5HMt*}%uExkZ|a<~$p>0gz`XUj%D|-7P1I9m zCVp&?34tY*3prm))~FQ|OO?yCIW#I~Dj3zi!#(i@qy+ioQ|K9J=(2N?#}e6jCp~Ft zh*LQd3=nW}d7ewiCQvRLisTqdS-?w}C67H~ouWcUeo?M17#`VL*{RC<@-IM>g?cCb zYWkE{?NGp$mMJQ<`TB1*LpkbeNlD(;Q9d4GEn!i%k;{4N>%Lhkw_3p93kn6-5al|G zw(V{r%IDkxE!#p__gNhwjce)=WzqISjgCb^UCTST4L<-*pj!}3zbz~D<$2^}4TagQ z!fo%Uidnui^Z`g17#8}vWbd*Z%DDPH+FHX=^Y*p&G|PYP!SU~fyU(%2XAw&ib{JDm zQ@Y8e*>OUjQ?@-;FWirj*AY8$`6SCQd9TX53xMR#Z#wW7xXA8(@H0y>l^@z(P^j}J zV6d%8MI5h`{W*Z|B|s9b%v=g3SQYCl$384MrjSAX6B#%CFf@`l?FhZ08vex^2-#5- z;C;zRI(FpHHh~oiR@#EAY7Y_&B0<_>X8aCO|5DzOU+QuF_IkU%w$09UIGG1TJD@%H zol%(Bbi-MQL_YdV0LR`(FC=dPo%D>HZ9PHFDaLA-BA>=b&ndvX#W-Ns8fX?7DS+8{ z0i2O7`(28X?i}nSh_%}uhyBg>_IZSic+dBRSZX25%KR?Nn|B!pz+A92oItj@;293J z(jTl$Kn!>#h&00)dz;YXxMllz&N5JcPbf=S-)C8$PQvB=v(H@uWWmA^d5|NMSoFBu zO_0N7miij9UFVl(+tPB4p;|?1O(j@mJ86Nr4jA?%PO6{1a)aH}cCyrL3(KF!p1snZ zyLPi(yS>@obl+Xb^(la@Nx+@Mw#a!3UaY{|`&rhub^rOcu{+*wBB$4H+`wTr7MA!e zx^n$mmVhrWFX0EqEy7Q?ohkhQ0v5t2+fiAPpYk}nEyntc`qBvU$Tm<4sTOR5-^8tt zJj#*)pK)@@A6q2S5&6g`qP*v+vcVWGA5G9d2q?E6$-{T>&cc-+%XJJ&5{qz*p-);! zWP|s%0^XJbuffR#&fPVege?8as zA1zt>mhXAUAIJ3{`H>&#w=XygG-=h+0g?Xl;>C;Yt#5s6zx}+O1xdc^yS}Ua=5PLH z$`DZb{_p?(fM5bO?yjcaCBYMyllgo6YQqowzz?*4_=kTu-my(TMFKZ(c*7gAY)=Q` z^0S9u`?X(dE)7$5zVa)-vVHWUAI+=3`@6qu0yuAf``ZK5X)*LyfAv?N#`m7j$+Jra zJ7^^MXWhQ!OTMK2&ENb@td4&9mw!3YbqX#Ye&ttwCHKGm+rJ%f?;Y=WN0zGD{*ONT zXb$^}R#?`<{6}HLfe{Br9Jn)n@kZ@<$8x~0*-p^IMzUn(oIdZ0E>u+c9n^w=>)riB@xGRqiCrB3luQfbor7>v7y>tro;6? z9^`A}F08`84*-U{s7+1a*9!$y@YFhy3RYL$OmEPst@Wz5tTxh`!e@pKczEx%ig^G( z_!NF{76j_?OKGn>O>bLjA>(s_A>}~cdzQBq2e}3ufiiC4js0U1AceXIPz&wK9CRux zBvYBK)YQTEsk>2pN}EyUF8Mg3=nz=2bOQx^?b#dcX_hdZSy{&S%`$$E*v_1#M*7^b z{l<2naj*EL60f4H_18|oA1rvNe*h!i-QL(@c^;sV%gF$bK)jH#@`ocpSk`pzKIhmq zowHU$OEcr`G)sTx1V#iPuyS!(Vfs1LD{J*XFjYO_k@bv4l1#OZIm0n%%d#Jz%2$pG z@{<36Y>J9YjEX?7GL!pR~*MI`v@7D;J6D%>{-6bQ$bk4K+m?l@|+zU zl@<7~faTb%@9pc*2)0Cjl2#iG9xvjv<F2a@|y() zJ-nvfGFBCzY!51DG6J!T50CBBJ~h5+OZsUmpZP`*Qn`YM9+7j$7TTc3KVp#=odAL? zqk@l;FY>A-q%vbZ>2H?pOG_9c%6g*YnSZ?r*asi)grM`~-}iu^@BGg1#1dae;Jy4r82)+aCvdfNCH*gZ_#C3ZM{|ijIPc7jSiOIO?DW`-?1czGJ zWYb9_56G(&B`<5j=(#4e_00D^>+yzcj!!4!_B@PxGJeuK*(M)@?@Z@i=B38>nh9;C z6^QA1Ko@lhkicY4CCY>XX9n}>Wm!%SKJ(smo=e%UYu^<(QfZ4P&)45PLQ8BRiVsoB zd2V@8^dUo<1&35FB+7i%A)Uy_QU!8UWU~tvE#jATqVTS)UqWwawrt{>9~aibERAb0 zp4agi1z4mHka9qcBW8d^zt&HoX$hQUshbJ|xoNQhwd~qff)HOtDEcaDiHqDwvr2dz zq*6}jlg~S!JS&e@PTEe!@p>AE>{{QXO^FaI2huzbh)BP67uW%`63FDx>VQm>XH@Dz zAyPTf;wQ_1$VWdfDme1e_7t!iQ^ABMv9P1wWFDpoK#Y;EzM6KhDmVa?7{`y2Q4X^d zOU2kj@J4=l6d!t>Au4UEUlV!nWYWH+60Ab4qUF71$>~b(RfTFV+XH2vv`V+uPAYb$ zH>QA!BwMESk}(2*P@`UmlY9M@v9RU{r@+XuIQmWUK1)w|InB;k zbME%V60;@vvV>ouCH(0ua&}3YJpjt-r__Qah011@5DOfnP5`FJvUL#fiNzK2kp4y+ z*srDAG10L{Ipq(}3S4q|RRO`)2flqkCd2VI% zkLc+yq;g5rv6WYVeL-8~7Wqk=0R-=BnZ?*8uSiMzn+^#_HWu9ljo&@{{G_s=oKdG( zWwESGT6Ew&Gq>87R!_AH_wTevo_M-F@$|E8jhzFx07C!$>8tJX&F%K43v2D(vpC3R zS3;LYjveh%zp=KmL>c%;(jsbha<$!kdKIgs?RFXYfBNz@EXX#qL)+s|0}A3(>pI6Z)0ML{FcvoWvX2IOXut{F4Sg7T_d1;b-1K1+R-v@}ypts45K*o*#U7F1A z7k=Rv+MoaVpT~0NQ!K}GX`I2G+w^^8-M{*)zxvaP6138~==XpB_m3^Tq}`=&#uvEx z9RQvldOzs*o{j&Dzxay*{{Hk&|Ma+Q+vt0~=X;I;BjcLhrH5bjRbLfLEFFdS9pubM zXW4Ij;~U#|e8+dZte++G8HEuCMjUwkaiD&MU%B2d73bu$m%8rHJom#=`gK1uEjWJG zuTP%6K6&rFu0QMN{_N!0YrWo`=g0s5<~$0oQ4ajq|M~+=xHqw?*g?s{ze2vy*K)L& z_VXh*#svE^%OtK{znO`*%K`Mcar*SBC?ZEV^mL-^^igN929+n3SOEhS3x7z<(JAqm zych66e4hJ5+JC6~B-dyC`sBMzHj{r%R#TSJPUv|V#|f^=Mx=jum&tNsKL00q6W{WR z4wE?f9wxR#HNSrJ=iaM)W|>4%Jf9}z4rQh!$S9>$vr^O7d@pe$A6VhU>jzq;EF@lQqhvBt1Xh-aRLp@_QX zUCQFU07Lu(p@>n5gLvd`}ap4$NEf=2g?yMRq>HOTGY7A$~wv0qQ5{R zfg|fDKVu=lb@8Pr@%b)oXe*mne8(Vj+{N78FR|unP(^ZiC0XLPW}l^1_*CJL7lH@@ zi=bT|%;T)nybUV0@g2jxK$J2|tG~b}h}1~GX`)=iKkK35?LVynR7NjfzJgM8&`zzc zwo~k~Bw(Zx3hCxh{75+fGn}oH`56MXL7U5}B3IPQI2#)qS#F~b7=0Y+XmoOT7X^+u zoi6hcRFW^*`knm4AJ3LS{sN1FNGYGR)@zD3R91-4Zn0$UU!J+%KKf6eXxC79T|x)b zU@-5g3)M{A$V~ zXwfGElrScd?;gwOvR9n#!T5KJ<$}*V`y8MTPO~=!zFCfjllQkibWeN7mpssx=MS-B zLWBT9;R5Bk0*{X_SR1)y^A=;|4td_*+G|g-Z1Wk8O?)d|yytX#7wMN)r`qLPx7)`b zezrY(X|28KjrRjSAt!sAZEhS;3d^N^`84!JJK;a&g7SGNED-~O+pxl{jW{o?W}m#}@dj*(ru_1I&Ng*Eyzdb#Cn{~5fq z9bJ~@QoB{g@Xu%HWy!D8r%!*zMd^dcUFHOC1o2)?P-c5Q1^GUcpdTjN*kyhGMvuaX z10xQ+Iu7ug@_&-jb-r61PNF@WIK24mvwrk<{s8r7p8NgD^NX*&_b~M9llT33A`Ed} z>iU(Q^>-snqhn5tF1{c+aKJ=ge-3_$)<2OGbHDui#ea`wK7KXc$1(2>w$J$%sB_>`XDO!L)s%dGgvxg2%}? zJ)U1*ebd2-J`p{c#%FzLQ8GF4$9SQ~$uBwOt8=Elvgnjm7-~^2a0CXTi43pXMTm%(kpSv)3k=-V)4a1RoZN$)ELFbJTeBt0H5o}BaV7i zp0rL#Jy3+XA4l0k6+m$#bwDIlYwJ!zGRoQPk|%M@AHr1%TxS-)8Kj7!C_=;V=H%Yv zkT2}Y3`wGF7{{HlJXF$EIQ5;Q!n4iNB9+w+Se>kM)w?T&&=$o{5KHCSe9B5E)(z4M z{pRmiah>71w8N!hDs&T=HN=8~`W;|CBcP=6sZtb0hqPK}$haevZ=YoeUGl9qP{B87 z8D*K$td&!5a~jCq4qg>m6kzLw&oOpt_<|59K`qGd5XMEdIi!ccc zsLnZgkwX5NkMWe-fO3=*i?wh_?r=|gWCujR6v5C9+HZ^HoqGr4fUsLx#&m<_Q0vGs zhCpQJGBd4Wpo(@Ihn^Xhnk~+=?fcv$W4Gh?3}7WzMT-E8@Np6vCdc>?Kw3dJ9x?tw zE1*TpRp^ID<1T{}K%s8XX>SiNxEIjVY7EGR{IEtv_T=Xd{U}c01qaA?5`bt5XLg5L z=o|nl*_qI3q9YgM^7e8b8#RAA-jL@Pc_lynhp63{rv5QP} ztj~Y)vta5-Zby7DnFp*q+S~*D*=RSft+%tQSmaJTl>UF4wzPlfCrL}Ji5;A|1Mb-- z>zuFSE9oYFl3Xf%incr8gUt#c=#opkX`?L5q)>OJd-zjN0UEK(p%@+D)6~>rmVL@c z0qOu`@{vQH6|m+wZW}0%1-i?v^j&IT+;EyUN#4%vxv;WMcX`P0XXWR9{g$pMiecrBLZCL_Z9{)SR z{-u@DXA|7b?(@B)-DgA3DDH>@BMy9Fa-cMhFHG7-RE;>0FVM^fqx>CZlFafnzTRX$ z$jomSvcsoKTZR-ZPo@tAFAf zX$YCf4wFqE^?N4)i9OOef~@q|(ZyN~>vkCfkrE&trXI0u@sO`N^*+ zp`_WzDXyF}y zsx0`-_OQMxjw-Y&*2Q1wrY?~!WK&w@Lj_x-g3HN{0I`f9K%}*WwK+hs-37#gEMC>n ztkYeA0?RCLOJ%>5uF4RQ1;vSi!_!FsjBG>6nYPqo_!@-{Mk5C**0!;H zk{0Wy%y`s(cFe2uNs=zkkfPasaJGlC&1@Xk+3Y z(NC2n0j>#-J*)wvr9-!%kycGe1m!^oZL!Py9s1`iO8Px4t=ZeTjim)`h}<|nxQx+j z6-R+76-L3bluLQVD->B(P3~Q~MG9mL#v^njrvYp*q!M10f|^E28_RzW>$pk%Y~$-2 z#wQo$oI~rRX=wn#n&Ewb6lg=|hL-?K@K;MoE$ZwG0$sMfer@6tia6PgOTih+v(wp+ z>?X&0Hp-$vI|{m% zS&&01(7~82aO|?-BY=^8+amm^v4oh_HpWhc>bblYA4xmYC#;``{pN_JilGlVj^!1! zD(6{dYC7ea@&kz3f5=;~Fo2Y-RlyE;GP_Uv(fWYL=Vw>j6m542 zQ1mj#(KP+@%zV4={3)#G=%aw4TAR5%beC~^1MA)$Xt?Lh3beaaoUw_j%3bNGYFDl0 zn^)E~{XevGP1`#z$esGFBJ=RAc;>ij2yc~Z;*un7Wq;HboT)Sp3=~Wh zXkz^2@VC!k+Pq7@8Gb*I%e<=y$tw=zL$h&8jt;mN0CtSoXRI29;=o5f@{#uN!wkQ1d6&rW*hrbMdYuWa zkDMGP0XKx2=vLX@`_2jOi-Sevc@3OA76A) z^i&vXs?9{2dZ`RMA+9gtnELTggF z^O?$4>OpKL@;Vxi(k5L!&%7falunf@`GAhARu)Tx1IpqlGt{KqM-0WV@iO7Bnu063|Pt!CTLf*T|7vq7Jbx zB0l`pt04 z%TM_`1FiNo2aaW4Cd98#8!r{!ZnW?PwOBqx+S zNC&oXQj)UeariC>2VLfEARFplw0lo#4#5vO3$LiJ<4r&$dFugvbBqTQQ-ZGh0fD9+ zli>6EHqUGuWY}>{K+kqmh6Vow1}$Zdj| zD-x9?ElBb&SyK+cpfQRr9-;^tid)|2CeIQF+QLiu#v#p?%O8@$cPIYv)+IHUFI|QR ztURzRGOcZ)eCR((Wp!6&2xrk+`b_XFyO&XGL5?Z5oECHucyL?pgMcyc6N%JnWDI#b zLZP-U@vlLd@`O{krd%o)hf#?9;*T|e`~^%pq&)d`q}2k}H`Bau>-i)kk>FXkObG}G zO^}NT`6PcQS^hIUy_!13Dv5FfbQnK^Qthkd2F#C=OE%RuoXvC=e@CV%MU4_v z_<3d7%7*2HNuH%kiw3S^NdaG6mS)u!>C&fh{`-czttW5+mSHYm1H(xk0tJGfWIyCd zS_rjN)vi`(W!!+I?%4jm!OLPcr0>g^Kq@vO|vT`yNjK{dGQKcqg#JLmjWY|O7f!qjxR208(}XlvZ%#pWeA4O*pv+~U zFq%+&)n^ZWuZQ-qt{k?vY$A&6mlG}r6MTzbGt#7w$}IlZ#{$!aLBy^MbqFu;=fASt zLH_91;XIjZfiguuurKQ0Nx;l@h&;fcLjhCzy*|4H<|ec{90&SyyoMIr+CB}5J_cILXq#BdvX0Mu|WKuuw*k zKV?t)1)?m>Wwh>oxVYrfL4hL<&bN^dt;3Y%H~@z?bHtroo@uLCfsJ8}HO{ijqdj&_ z+dgc6_mBUp-F44hSbv;rtIKm($k8{Uah$SF<8R94;44dW?dpx|w24bicWb%Z&D*5M zVLLpxvQX4+uh9n&*4pU{3vJb9raUh`QAg#EJi|+QK-)Uj38D&u2^b6B%VT*~{Rt7` zT42mGC*lj1&teU_kTIkGo*Q2)EP*3``yBTiXKWWg0Jvd+Jey~E9Ww#O?{Y|P+$lhR z%g$I$dWo>T93QlqI6Fky6gQ%z8r$gB9G5I6}oH~zRP_gK_B!6yl{fdWWOfZ#)-O<_fCd;y5qF!BNoMVy+@XLJprAvK%dQd}&in>B>#zUrJOMl=pJs5M?a1laKe- zp-A)2gE&!|;6MDaOpDcltp5a*{9+!E0HwA-qk*C*%qm?f?kID~o&2Nt+C~Bv(g;|E z4mvKt2mLN<6EU$4@}YzZdG-Hz8 z_1F>{;fPH5Wt$=bYIs(e90M$9C{8*rnM5APXDQo%D0-IXu4c-Xd^wc9fDl~E6Y4m@ za!QpNm$|8k9Dr~vqimN#qHLlpqNGnupuC}&YrW%STdvE$fGvY8c`cAN%@=N!BJblD z$@r9~45)~i2ZWFZWb;hG!}1KKQ>NruB~w{d(SzSAPXyaD%9Qou5Rj0Tx-BK$G=d-I zWj;ip4J%Gp#5@bo9qi~VnQJ0Shy3&ZHVSCBED`XERSI!ZzW0%>qRIRNgg}IS8t!H( zqaX!bPh}`QvbRS&3iS9`K1%BpZRK(*tz1;>tIgz3jTeGu2l%}ipE{FrvlI^+LJN7t za>@4NaG4Ieew2E_C21G<2p|QoV*x_EUC@Os^4FS2nM)m|3&J2Vys@1GPTYYiRx0v{ zrgOQQXF2M%UBD|vqVYDAuT)wY|6r@G3P|mcMZFTz2GGmBBHG6|`@jEO{u5b?B@eP=QWNs0%Z=72rpu0k z{4VI=o|RniwAxyk%oq!u@F_RQ9m z_Nhld)vj#aZf|+;{&xSFvu%lt7TFO_Fl~(bFHz18JKQZGX9DkQYk-U!yNt;@$lV-1 z==5`hlV8Tg8OD0VrrmvZiDin*SZV^C0p{VbS>>9zUc1?a z{YQT7VF9&SAfTHOq~OFCD68|V^nP0 zwoh!kV%rtx#I|j-V%s(=wox%EPUqhDx<~(ry~bR7&h^cylg=pw^LW{v0L7A8f_^Tp z9`+#vTt7~7uDvbZ zVs@Tmp8mtGT`Q4`DvH8l;%x2q+t}EC>NuV*zx&_4D`y~Jf%GbQJ^I{n)X~t)F~W** zQK1kcy%~Ngo5K-)?60QYiBt434baYjAqr?DL>iE61l*}{y0}#;=BZ4n|83oP zedWZ&DN_#BsGvh96S)PNeC#E4rktrttQXKX!FW)7f8o&e^Y+&!$zs|Py%0bqcKy~b zRYyxzEIy38^|tsJa9@}9M7Y~%s6I%S{aF$@~%kf)?8lPqMTHuE zPa8eeMolI9z+6%Pl0+r6HZuSh4WdS7l$2t!SIR<Mm&;m zofw~L*2=1Q77h?%f0t}dV^dT_AQ(}kOjHQ9n>l5 zIh2ONfCr%xTHierlqesVv% zta#zRYg3cC^(M7fbOToC)LDiud7a)6SF&aCauX;7?!WZhG#`dI>0Ne%LwTAHseCCX zjk6#k8TW|y&a!c4<*$f>Y!(kqfL*`+3L6*%S`-5&8KLfE@&4l`t|M)jFu$KzF~R29 zb7 zNTYlM85VFU)=s-EIV9tQ$G0rLL<`@hQ+JlMY4ZnB6$5ZJHC9&L3pgy zO+2|%rMFB6@YqChTbjPXJh#4%wI{#qBl)(Ed#(hd5`33b783GoHc#6qtto_4k+0MH z7Wslg*u5CWP_7QUFN(3FcQ!o;?SxK4YrXqLtkZSn@@WL_M7mclJE#TLpKQ0Scd*9y z`|QZXyT{uL?_&G%8C_Rbf0{A=ExJDT(Tmt^R-ko@)4{;Tz~xrBkF1Y8n1mJFr$JnY zh=KJntZCe7MHFVj%FeuZVwGxlfy(6R>lkBG_GJHnzARCwEgyd_#PZnI4E~F*uA}KNB?S zrTA-NDz%Wv2m;M3Adg0jY0S{|QVr0|Eh&6`j?9ha1%S{Wm?aJ{RDVB{1Vqca4J5}4 z;CW1MwkJV;0FRfpU_HwQapRdH8y%eZlarbR63Umx0VO4;m+YFc!rI=Hv-gigg(ZA^ zn9@*5UTS|2EjD4%VNyiW(jiP);tm*F}+a+*{ov9|2{z8}UTGzzc#<1Iz z7?%B0lE@kkCv=FnV-@3an&y7U`SP+E{z+osLt62x?DBp~4+tmsyT2(^;Gx zd7f!=X0W>lWyW4|D1}p3+JGi4)%2gG0rTqNVWZL)e0a0pJB%BaEAHLUQ z{{4}NZ=dO$WuQGwv@F9XuFaz);NT(4ZWctnYx*}j6fzyqkUmz&WchvV%t57Ow913%Wh}Gz?v3`5gq{3ZF!$#L6aq@uCcRdzt>)|C+`8pR6yr_ z)O`?eXANMuHXh~zsXs0#X?X7Y4!_IL zTTSgy*fnLD>|q0zgnnKuPH)(ND!DCluJe9Yj1;)j60Yi`n!}Fazu=9uk)57}rHEFY zBaZKm*m?KZ-J_VhH|n*$x#;wvI!AJQfyiCmc^oY3cSiqNPfBwz%?7^d?BMzWUdJUj znlHHSyljYc!C}_@yQcm83cGRGx;nK4Xsib<;ijV}m)1UwUnZCt0%|F|sX>Pz=cLi* zN}GZv7q&zvj0Qi=l^B~ymnS9+ooAt^=#jTtRJ846d|FZX4}9t4P`s-rARz8HV7^&k zfjyDIMY0Ug{2=Ttwb7vZYcMV9BYKJA0^@!oZsa*a9?FCutZc8J72 z&L3*&1JgA>z%Sga;x0vwM84S)oAe5al{gjC?wDF!truzN7HXzqitA{N2OV>I?$8sG z&w zV*6u8^CI>Th4Z&3Rl?K7BFT7|Did#T_SlU=#B^8$8TbP$Q0OgPHUtE-bU(mgyty2v zSKZRq;#0czjx4S@9c76J5i_?#SdE34>LN?8uQ*~Vr4!8f_jc)Z*Ei4yXi_JalBs)Q ziZd6ca>jRG+0+wEnB1f}t5iC>$hbh?y#PI(qA^~L|FfP;4ev+r%@nlgcH%zPzi}FT z^RUmtX%{cr(PIX|y##|Dz0k6SGaoPj<8JM%h$W?}4RO2`pLE#Q+(_(X3gJtYh}8z} zA5lXuO9WQPE?uCrg;=tn}pagPSnJFuz_vUco>`oex=2E z25Itc)f{J4-5FpD@H~_7dRoTqn}2Efak>N&;C74G*3-RFV{6YmLfFj3?^2-G1zjm` znc+3Kb(u6a+^ln9AO?K2ed{)*9ppCktOO=>oG8pjs=6421m)(WgY?vUm|4NesbtlNf zQrxXR=zhQBu_F67=8#7>REEh4rD1k>L!>=DptEoep?`*Pnu1jHU+3n3SBZ-N@NaDA z2q!dOs-hGu&63bU85-o`$ZjByv$#Ge!k;;<(0`>Hv{XgJGX+bqPr4{K!Mf49+2vL;ZyRa&pmkS{OtRSE@`nl6-cQ#wva zF`BamQ->Vdpj#Ot%D1N)eM->2`ivexl#Q7sh*vAQ71IgHQtr}LX!m|!AGXBO8jt4z zWI>ZhgcFL0)8-4P)bP(pHkLxUbJkU;X`-HUmgmGFH27aqcz)o~jH+kyz~PE%sg3Ur zG-)qCFTWqg9F0Mz_yoDe1)g@!QTx!kkkH<~BoRNeD`hqmDpjH?hw4OZw1ht2kQjXP zFy#pQ!kik1VmZ+t79tv5S#t{xi+->%5xh)f*XUaJA7HuCsmLH5{T3tHIH2ZS;%->p zAjT9rHp+Ry%M(nlenbu_C5XMbF8)GE8E2W1hI0_b11#o64iu2tGvJ#xgD9Rv@T&DO zolc{Qu&aJd)ro{!kK0AH`t~r@6$Bxh8%IG`?b*hya`CgnU5#sqCi5qYz7(UDfhnlj zx1ad9`!hZlI9qIJ5Vmj9m>mxB&+^vA3lw+t&DvFA_*h8g>Q?&8NRAVkIah;O2Mm*) zo%+je8-K7Y@=4TrO$CuNl|x(D}wb9T+j}=2-0C zhVNB_xq#2#`d+wfxVuv;>S%UWuI<%E1x?a=NaJ2M?p<4(ynSDPQr!MkPyFe>{hdYY*$>?b`lCLvuuYt7MR6eFw%b zi=boEj2UsHp1$Eaj4Q$M3RSY5x;@1&mIgS3%@rU>I;xBs0v#x)s!ihPpup&t)b?s9 zmNkjC2(H-yn00fvT}D!&x7{nz8kc325}2?tP2B(swo^>&y$G}FVwk$%w?_Z}6~O&} z6~H^Eul&ld6U* z8?9xD+I{&sm80mXOqqCQSwV8W%6g;iv3HZ1n46C%bvVPhC`fHWf9gCjEY7~>gXOuqW_4^{}h<~-(D(r2!1 zx3mw${IXvEP1m%KmXsR4b0Md4%u-m&AA&=^<`R4i-3tTah>7ywR*-Gee2C7(+YmqE z{nI}K7d{upyVqNk^X|%)$3+N`eFOhe_GpAZlRa&I8I>6+{!E5X^4iS~pjve3X{u17qwh~mva`l2ra`958@xHF0?;b1gLVBcV9 zPf|8b3|lzqWF#{-Ji?-Z{nezelMdGdyE#2gFG<)GTK~4nB`Vk#JsDfb+ay z5JeG?H8TQ!dK1e)#3Zz&-q7 zs~AQ>5k+MoquZ1lgl;W#kFHlN&B*C9&7^b>Lda~1q3wB zO|frekVkWR=@ol<>g|)UkP|tB4N|Mgt_b{TN0a=?m`5B{K&Cn@IZA^p--a1yM?sgL zkOkb~otrNN_;v%VL9hF7!Bgi+Y#Mulj={bCFG;vI-ta)`b-4M792`7vY&#u4%6;x` zEvO}Js-@2(-;<_4XS6%7|Jr)pi~i%_G_aX$8YDG&Tixb8!0YN~d3v4_(E()#-VE?_ zhvYioDe4x=Tj89Syz82kHFLN6?&dxXA2v1#@iiQ};|`S8C-Xu87G7S#5Nj&2((vQi zKbB(~n4U*{O#N95fU1Vc;AVYC0Z+l8KR7Wg#nL91# zCaEWiiFURRKBx4*7{$x}COW2$?vZ={|8v8G|JV1gLN}rI3y1FL*GbWr1Nxd)wwJ;U zhGXnKW$7K79F&Fv12YbEmr(z&Q8cPEg*zFlO4ve7aRqX|_}$?6uM$n{3_e8#!ieOE zE}4*41=9=NfA19bG?pW0w^Lq-VH0q0&X@3rLK>_5BTUH)c6^}->gjs<#{l7_3dcr&Agy@)_mhy2Ol-$kHEp7@q&x;E$nhcce(Lo)5xG7hXq zig`jhD8S+(JfQf8GF!UFoN<(w0rS@RA%u(Klj9SaBK|FV(dx= zC03>MgH&HggyvV0^71695Y>5eF#NWmnW332I4GJ=Ry5?U%30OZ9UWf`Ze|lq;?DqF zEkURoSoea)bt!EKxLBw;aSFPD_=n$?QDxKdPE9>m<$3i8gkR&Bd)hxO2`F5_ z-0X#`o&I`#X?;=Gp|Uk;B`YTvj3K)$J0Sq0nn9eb1!xe~)iN8VBD@#kJWM$CUYc?`{@Cc=K)VJE97|$SF zQmVUUm(EId)ONa~R;;Wn!kyL&#JdS4Qcbu0pmQiz2V<=++YberJo(Xd7LwHaLORNc zNXk{yDIm9cwcUva3gQ7dP&$42=+;_Mvg; zAZ!yG5dP&|D1EV0qF$#zDI-8KqF)9M0q0;t!6_+kX?3p?d4tE(4f+ z%eOj*e*R+yW;-hP%IMICWep@e5%%O=4Y%%QZ3EV>c)v{FR!6@G>P~;+fy+7T>ICIl zI8@!*_vQ$=*Hkk$Uf|xjg%2mO3d#y*6p|pebB^_n5n80#q`DgN|MPkNv4d(@cc*nn zvGTfV;tfI>Kv9?(nu!+IvKyZL5?C~O9B(q7P>%6MQn2rI-AvNUQ(7`zy)*IZ*^T`{ z@ISDj{}!Pjp7=NJf8&RC;ZngBcg*)Yx~9nU?1C*$CSI7(jyh*@Mi!((5^L+^0&`Az zVKx3-I!}04n;EA?066HQa2V4c5S;tuey{;uz$yY2->FM$fad{Yzj>tD0dA;Tk+NEB z?b9!S$Or?&Mjy6i<<=E@3#=ltcUDVrG_!EnDuZG5V2UQXdj);<>hDt&ee5bxKSm$x zF>O$_EzeCk{|Ky*q%NS28R~3PSqO@dfg|pFp-6w6q)^%)TZ-FH?BXjf zwE?x{al!tvm(LG^Gz&b0ke8zkr>UiX0-U}lG|r#awf+cTh|5@JKSF-?35!n?KYAsf zV9+FZ76D$ciCD<#aM%>jMR=eN-ZqsQRDrT#eX)jGOp5?7?}PQQ zXe#W&I|l5Qv?HBEJuO5lnxY>V1pw^)4G^p&YZ5&m zpe!f{%1krOZ#ZTRWZC}lyF$s={-zXs?68lt0&-JWy9IwjoyJsA`&7?ab11w}r71tl z;2E?UvT*u>gewu;@tt9#`aMr2DTUzvMe3!t#a~1C=NQIc_9$-k-In8RtY6z20YeLC zJ6X=pFpn3VUn3eW!w-ZGJpBKR2?#hXfI}WL-~QrRl=H_u!aw!*mPWzB1SwmYgH1kr zJ!^6Jp}V?*FoM;TkqOShEYvHS;f*#Hh%yH?i-Ejum1?GU#}r$%7v_YqmgruL;a!9Q zLY1HR=2>=xkEzyV_08p!y=@>2JTw7eS!QFkXdimqB01oEhTW1Cm_q`U`g?63RD%yg zTe=nD5Sof{M6{OlmDQ?=Iqcj3ztea@b_Nks<*o%gZ?N}*f5|J+lV$tS9nd_-{+K&x zYOb3>=9Pwbb()Qnue%KsJ+hzBReen&r&Bx)p)(R;sCRvo!PHdc)T+)oDsuk2*$m_1 ziUS*%^+_4w7n-t5(nEn~sk|C2Hw$YHwUtzwk%N z{I);C&HPCBZSw23_dms98<>U&1p4zC~zMfNr%l^*m-vqFr2W6?pi~3fN z1VS9^Pf=I=e=y5>%K4ujN}g8P($-@T{E01lT%5Z<{_K3sKGnu~H}HGxytrNKm91Bl zXbI_zV3>MMun|$n1TH@8{Xu#BEg%|%a<~2Tlas6$L!*ZVEdc>|D!31iyR} zQ<88HBAI;#MSh7Yi)oaassJN9TLq-wLVCuD-m;F|Ty z^!(|Vv@QEw(zvAQqZCFD7XUW>HXZx5S3l9jMQg2(j;-YC%tgjfK`y!;Lre4?cs;by zWil+RTF$OsMXIjeaw=-Hn;D%xS`?EMb_5IdHv=i7bn6fqGNs5`_C62ImsFDJI7f!p z@o7Bj`kuOl_SFAJQ;u1CWp3B`CC15GG17Dklc9JOlci)o;spi89j%#j%Lkw;4MfB8 zKwlQCR$eiYTKjmO!RwHSMTKabqvnTfva$^eH4`I3Bp6d~vHEABEl%FLqusYm<1{fK zxkQm^HPe;^rMJ3xEOr{+DFECjq(Ep0q5K!9z z3s+G{cF9d?PFtp*V0={c!tzO_Am;pTFCR&KHv|RNp^u)Oynd-DRy<3Y;guH6?*?nvuLh&{mH!3W|cdT9Oy_SH<{M6ouY3c*3s|cSv)b z>VmM9GwFPghdvDOk?44+Jy<9*K_>U9nm|!g+qQFL*oV+h9@m5)z!N6aG0HR>33R)g zVIj#P6!J^WbW)tWo4B1J#R;mbBXKny699r#FE)YZ1iV+F-QfC%S-EKPL!UM_0N?~S z?YBMc%*r^-=DxvCf;j0tDD5clCiLODWATX^psH!Qw2Hh{m`!dtj0^%zG)*)noT&Y7 zb&4l50>i6TJF1jbm6y_X1qHaXz6OX#(!%&}*)y%v7GTJO0%c4SKY^ z{nu-l{?oa{NM^cVnmTWJUj|<95t17|ld_ka@5X#b3J#k6)*&r^b>f}Mq`f&dEB4J1 z?YK6_I5<0xv0N>qwVRe--_Y;Ng~yn$yzYCD_~PnW~J-{=*UT1^bN)#;d(u`oY3SnRh)4Z{r<1q!yw z0sIBQOAi(Vg*dkWxRaLIZ3PIX+=vQSa&>^VAw~$`SG33Pbmcj@v=0 ze%9fUh5m(!#1=eBwz@WDHRht9T<1fMs^hA^=+^9I@M^hAkD&5&BUlExa=36+8%^OI zV}%owGw3x28b#dC+>&g#YLjOWswc<^xJsqHoycs(0uFbfR-b&8?b$@=eTrB_62_v~ zJ0>|;MOm=J#}moM^O?r1#ZZZIEl{0w5+Ay5n7U? z$Zd-$1g)EjKuyFuk_DC4Fp^N0&)YZr`8+Je8x-N%k%8`!&SEZ3yo*)>!GgSi*2~|C zk7(W1d>zT&HP3}j#KB>CAa093?T-rb*jla&8nrXVMW5F|Nx`N~|b*4O!8v6d+Yrr9H+y z(h(6?7L=tgj3rmxqTy=~ZE6bQlvIK8_BuTiaN6@hd7P#d0!cD>QK$JM(J*|z?7AT; zM#!VfwqMG^KPkDZbGv*ogWd29VL;+ATy)U2RZeAAS#@aggT@A)V9qtA5|bmfx`ZR< z@-L-IzQVAkft3BAiU@Ip5xtYYn@IL5A;s??6DBF>GyFMWIi<2sO+gWFDY*-(k*tQ_ z?Bdk^SQ6Y~IGV^gr-0X7L&@Sx;UZ5OtRfE2);inYaX*T^nW+RlNQzJ-WTO6t7payc zSfts6>#Y3iJ>h@ZNxFS8@R ze?d5ni)^u62eyexrmLc)O}A)GL|koXD&<6`ib;Qj%kbZG#A_apb3BzcQc4->|6(o^ zF0QSsQ1v^I9!sR76LoAMLcd&s4n$z8`qW+kG$)7&QJGH`!J*b-Ibf*vJFmgX2Owlx zrJ)GDBDTW^PL)XrX)+W;a2pM#9|NGGQpqFgO4uLZ%p^WY+fhhDi75QD_BCZD2ay8T z6K*0`CJkt4U~Pf(HOXEnV$Z;4qdp3&)Uz}~dGAgsgWq-BGPedu;RXY=Sg zv+wcd&CD~-9eO6}Pc1hWY=(id*7Iz-*^V{ZN_`|3^Kkr3UQsXMvwy~%9t()$(*TG} zXY+9rIf(5x8n!{NbwJj1Gf6y@H4`@=w!_N%#+>6Jd}rDeNZXNO7+{|sTPcWx_Jn73 zL?uRLf}&T)lFth7Y$lOKf+=70u;rqDCN;^^<`jH$&FFoG#`$HjonK2G#~nMqZ5pWo z9F$a4fhEKTmFz?L1%V$>6X%~Kq1PM7=L&b>0zMV%Ix&58>FWh~}$)B{~DG;m=kXs(Xn z!=FhTvi8hLc=Gn4B-Z6o&@-EI#`Gh2N@V=QLtr_02G(cnYU=RlO%#dAk&N&s+sB0fKqz&8CRi<(|tA|1&`T_q@y*mcC zymA50%+NMHS2k9EfsCxwg#!oaG@ezat1a8EhO_vxz|6zY!Aee0{Wtt76vJSno3s27 z{6U{fDH7CoQT6x_`@cKlTU`{;g%xqEz%W%tZxKhd-LkD(-S}&~+pL z#cSOmRHU<>Q_f1Wl*|vlGgNM9-d84r=_iEui{(HOWzxpN8Q$dbU%U8dF37Hu@BZUR zX5ARM5+7=WBWgjK49O`n6$#!|WY6)7pmVSNY6;LE8wwCgq z;q}|=#5g|tUWzEioY&>vQK|xXij+TAPz#|HSv{e6*b^5Zk-e6 zq?8qDrq{BcytlRgTbky=Y|kf=?)`piG~&7v0%i2K|9cwoa)E6@A;Nzk3UI^s945|e zA*c1olJqe(KuhKilKQU<&|i)+Yed z${VmBw_Tc5gO9MRFng2uQHMH5i`t)`j9&!AG`BamMkdQ+(B#P+i4x~6kU(?Q*?LCL z8*(*zI@#$%$As!6Qj+{K25{9bMdiCKo#EpQZf2|G;25%kFprIyc#&!WxZ1Fht%FSW z#`GFd@Ojz(d5)7+Dp!bsoRzNDkzfT<-y9MKC3SS1m2T>*%Hi9MdMFVdHs*8A+ehQ~ zR|$2Ztug4Y*ohkCx?Jr1)!K{~r5@8Y%0Q5a2+Rne-7%f#2q&ANi6b+s8>;Pu$G2Z+ zITXqiXG8|40M{~WJiGDchop>4AYQ5}oCBAx^}vyyu+{vn;9@8cTED;go^CDgR^rfC zIkF#5F^{8zNIsbOIW#w9DvS--Nc@yPzakN3U_3dSsXTAi4dY@@U^)}TK_AHQi9a?; zAJ-J71cN}4z}+Fyk{YcXJekd?@eyspN;+pf&>nw#klXGeXO?jiZORZXYB8GnWnWD3 z7*KY15F@!Uhaknd(T9Jb28ttHW;#Jvq~$cV&?9VUX95+E8k*j z%SXk_b3*B`vtwu>X>?4TpnpgT8pGI&mxlky2y1^{1n2Jso2=xax$R6+fYrfo_l7<9 z1wsb?L<=yp`=vam%QiD3_hGt`gbmiSOW2RRMq*fb3*ws2L~ zDIQU@_Y*}{Wjh2vC3b;q_c(Dq_b*c7ENwELTc_YvQNapn6NUdQO{R{!= z`&K(f4rD_vUk@U7$;=K_;6d;Z&%YrXt_#bM{+)uY0~RN?3yh;*{mf)XY$4)~B(EAV zWilZR5q=4QgLQU}(84OkuwaHJym55KHwk|+Xjr|ZV?UHXXR(`aia$|Qo<})SAPQYUZ}+SA1@;=J z$$OwUV($z~AMt}m3IfhqpcjyDmTNe%qIa*Lw*zYQJl4T1JUK-fg}=|+ux!)Y1A8D4 z0IKH3fe$9ZJKfOTFB%%GJQy14n+f;)0R?>zwG7a#6)Ckn>mzbl11aB$%G3ckD8=cvv?OQ z2`;MD&qHGa$d`79NM4>(i6k*A(58@FQ(MGML!4hBeO40qy05iEIgE##?Cj^Cg&o=Vf8O2T9P+V7FhEz zL3U!?axmT^QC@#IP&AhW#=Ms3fQ#Qs-AB zU!-?LM^tACSv!(JO#ZwoJ!-E=hk|OmMYw}croR4LS@h7V@mcyAPPL#4MGh`un)z2) z@f7@5@stN5P`KCcZrtNia7pqleN0KsFP=zmt^*zRH|Lzf5!sxC4+j~cttU;-2H^P&|@sSKRn85_R&p83ZVqF}5Ht zL8p&~eX`8NdIf`=>!H4?LfA|(qD%$V4a}uxHTD-C=gA|tQ_-pDUcy+cL~uUJ!Ai?Y z&=^RUJLGD|J!-74b{;_vusO{GLekE-B(c=^)yo%05baMbPOm3Mj|a~QbD?QT%MvsA z;2rQt0Hqp*YSEl1tD%1inc&>&QY_FfI=XacjmZNNU`~CU&~HcIf3OtB{UO644FKhg zE^-OCEApi^%mpDd<;V!vFjS~-p^%{H^xYGQ`UIb^lCSDy6CuT_)0JNsXNqP1D*-iOLfSlqO!vi$D7YYX;5gffE0st zA8o?85WQTc@P=7o5Qcz3g{y}L&J8sHxUHhEdF(R9ihF<$t8zG7K)HsmKc6V zNUC+FI31O5dMDiiF)p_9H*(#mBN{8WPKNOF=Ax?VJ;oXOA3`*!FCNLeg|#B1k?{xF zR-+>$FcBIhIRkkgIoA1TzBG^Z0_%!IGjIwVOaF8ZWnihYrs2sALQ5CwdqpZI0E@Px zim?tWOIzZE$Y!_3^UdwdLFs!N*;XmR1H#KkTX({ykVK-CeYqt~9@oWVKS3yQRdlo_ zqZHyPT(PHw%R+hXR)}%CgKvxVG9%p4Us~e}}Q&W)~1Fm$$>V0K`WdLj;UXwoHMEW4PmgWLZTK ziMfWN5|paml(gYTcp3hQ=&makbc=P>omBx9Kw^J49Krl<^zvhfQNefJn;&9Dh8G13 zJ*4l>ftO=JPk`iE-EC_<6g7`#o8Wj+ue-!C@d;rhA0oO7pgXEFsx=CnCwZBoPLWz> ziYFW^_ULLOZ8yA3jxG)RO-3T9)^lFqaNHOXm+JMfpp!mTBu;4UO4_UG$)+f#^*4!! z6mhK=vLFbl2sM+t#8o|<^wp5an2#h9Ophv za#j-)i4#3)l9rWSt`fxB*kpn(zTFhdKaNlcCao@+e&Bn#J3UhdskA8Oaq)sTwRdzh zSzx_%^EQaibWih#3>$S&oFkdKRhj5h%qFodt8vLhqtM9Li}=)q>QHp~$mGdT@; zHKG;kBchdrFfqA*`zOlV=?kP*NHk~f`Pim3gu_7*;W2^@nKRLSM&Ji#xxfhak^4nO zea*`#43$|a;zRcIO8;c3@B_gdUQjcK?|gzl{bw;j47VeX&&)saa{SMv8Ww)n!b*Ia zs5`5y?ll$H4fhyOLS*2q;F8y`uIr&y#1N9Cd=U{{>T&_kSGOPC5`-1Ku zzcv~I062w?rer&`DqJvH&0r~geLX+k%8eZTtbc$@wWEQZZK;OO(e_h;ZkUe^X71zj z2gKZ=DH05Xlch@*CEYElOAHZX5po^Z=TD76NyPKfzn#}OUzlil4;9Gt@oeeP}EsBTdvEvQnyB*yWsOepD^ zNEQW|r&d_L`d>dVVCxXUZHk4J{Hp?2`%w`I3*Da*onFk)wVv(CT>c0CNcMHQD~7xg z`Md4|*JLtNWNqA|p+)Pc!?d9s-zAkP=72>@n}%S{{WX&!CK`N#?LgZRU6vRDG=hfA zN^}7;N@G17WraRI)_3vWbN%zkb+#&#?9_R4TC}yYL3wpD#gs7*Wn<0AHE$z3-2Pdo zX$F~mRgCvcqh{d*+woM(@~MVm>HBqT-d z{e#Gfdeg@FNsFxI6&@YX73E`oq|KMaNgu8_LbqZ?l;^>aOI9TP8?CdH{r8Zsft>G5 ziiCVTJ@Qi%mM!}>1-MjwErIOQ@mc?b_lJHc5P54r5>Gu0s{1yEf3+zM1&MBsU!V~P zQ`Ar~*=6r4<|$+PK6UiZWu%E&m8l?|jMO)GBIs9UEmz(2GAq;Z_g;odGqmuFffaG_ zNO>s^(vmbLaYvJaILE~@cO5c;LroT^%$+t()l#I@-9p>WGg zeEWB4lcsxU(%SPNQ8KGYZKmmLk>mQpSCm(HXDV}8#o9&BK@pDy9|iFL{2V<(P^y>? zZ!GsKsH@i5lR<{ok8%5lw((~9K=B_!gu9$GPSl)sDSvDgK`dO7p#2xl5S9K_z}cU+ zuPyp@-X0(01yzP!^+X)F<-lR@o41V-Cz&~{5aZpL?uD+ZI3>HzB3$7E_r@N6Hrc1M z+?jPzQdUlcpeMq+4gR)Cc3?d%4uc8OBK=WiyA@6eRTk}a)q~-Y6tl)WF*;IJ%+@J! z+0T8dx3UsW4^KD|w(0-82g`4z-pMQlQ{uaBioP((nf!Cz*Au~&0FR%_xN@GJW*62; zM01U<3XR*vIXfN)nZVWBd1u6vIhokSpYisuF`0dC&-q#J#QArBH2DY;RYbiQKC39> zqblyiUg0C0-&DFBjBt3IJ*%Z@Zv1rD4|wa6mCFv=5yS)|ss)HRr0B9MYb=MJvyv9k z)Qa!iVYCpLLvongMw0j41)N=7@o&6?bPA{Y$KuQ*7!Qp#yfE?&Z{R2PvJ5~Y6v5|@ ztOT~hhlqtOPV6sMR{0Mh{!=v88ySzv75{v{1pb6!7_{|b-kaUMLa`)Ya);G{;6dhN z@LXj62d3fxh@Ub+8Z1p<1c}?f^-V)S2kvE+e=AzyZQvcn6vyMlbc7P(I*VJq&SaH` z4~~%{ogG)mtw*Nee#rYhDGToU2>&BNdHWz%Q1KPfeoU{;!#%?;))Dzjk!z^@Z(iq| zn24diStG%bLz)W};qK{!7SzZ%-l*&6t0j%SS_hpL9)( zSGH0rcE}`~6wm96d0TGO72(BIdIwF!zo8rygPBz2fDG#Hv^Vghp7mKFbrsR3*GKW3 z%vFWbm7JTx>Xhr4>Ktw8LH91q2MJKj|W&+e+W8 zXS&?7m)c*NaF~R;1ho?~<-HWdwbcobPQ9J_f;?Nu{(LBodx-KK@N&KapiI%CPZ6*D z6$g=7RCP!@XwBTwVqLT^2o6e)Jl+ElNO%%@W)Jub1eVb>Xi>iO;9 z{Ev~-ApoX;>-r&ZwZyP#QQJLeXy^HQV-iQsb<+VH39nvR6v_qpw;V&wweIXP7*-#k zJoxc{7<=o0DA(-`R2q~l)j=vuF>|QG#*8 zuxkutZ02IV2B7iw1y_)|uNmB9c9$h;&ecwHJRZY>4k_?1Fe^YL)G>dVc_&l^k-!WD z-%Y5mcSOBNDJ^b=>8tx7xon$*{hru1M@8gHNTZ-e_p^U^#5Fo;hU-ug7U^RkEiJDifcb%rorb2}z)t_^F&7`J=_{Tq4))KI zi$(jKr$4Zdd(%Zw2*hQ6McQVkd>{E_S;0n2F~>nGU)-Cd z0j@Ri7nxRQOA%3^IQCW{nR%pbO+fRZoH71=#?^alW9kZ&WCgJ;9Mt$XWnhe3|1iTr zX)-wl(a#vx8MmPLbu0sa-3P?Zf;ilP@*|P}EN_i9flf9V%_$0j__HCj&CT$s|P-F|f zR(~ezRrsSWdD#;La@o}isMuOZmi~A_wKOy+K%EB3VdUj;XQUWL6O8foRL};Qb+)^c zP?&vp#yORe6@S)=H&5%Ksf@vE9Xaw|xh}12*duW>l;I&BC)k?lE)lXPGr3d%Mz&gL zrCn(02mgM^Bifd)0zpkS?4{(p<(wG1+CFL)_}#E4HBr8%9+y+7VZ_0F5m2QS zyOX$%SnI6HrtVF>^#emEg!JrP?UwIqum=RRU1Pln!;HyuO}7FrVu*$cQ}e$7M*ls!*K_#>_9S8Vi`PYsVV+bxhRWn&F40uiS7zo!P8wVe)nI?ti` zXQ`?4Fqe(m)m6QA3_JNE!d^g=RRjgW-V-#G)p}TehP!yM*~rJ!<7DuEwe&%^_z`Ef znRR<|@Y$~uP8rpip5l5uy;wLJNKNBOg#qoPt&5=$H$1LPd$TdJZTjVzT0GHs{0GYR zuvC!AQLx*ND31w|TqY0p?*(3FcI`xqyw^g(@tha=(f)Z`i;NBm^Y0?0HyJCZXR{qW zH>k?79Py4;4U`zxZFXe1KZn)~Wqh}dLD1+(k|9~2YfV&MjXrs%qi^u5fjV;ixllj@K*E8wwoQrV5-c*O@D7KDj)yb=?=eJ`Q=)k%9E3R?k*sy-c9 ziL6=P{o_UE5}74$dm99%K*_(KH}GOEUZ)`A!Rh&zA_DZ$HwEeggB7G`s|@&ZQ}`b) z(NpvbzTZ#hRF!3gRrzEw+P7Pz9oMzK(JJ-xDN*u=r@DmZykif8+@y$@3|s;QeFsJs zAhmR6ucMuH8Ci8X5wlO)l>P}>{~vPww?DXzS{=TB5M}<4FY_ON29W`S>uckZ-v4@# zSfd>61k&FI^w;6}n4t5Sk7DA7|8>NF{lXvp8t(k~AMgEBRX@xSF`%uveOqb&S65sG zkpE*0g)Y>C-`3~(%SDpzuTFrp-Kh|@6(Zkp8}?Gxq-uxz!j11DXQITtzS-Z3L=K!0y9ELeW6?Sw}~r!fy;NYC6{Je zVY4)lh>1nJ<9^tbzUh1R^LS+HxP=j{h~;(jT|~R&E`t8Ohm^;H#Oq;eQnv+Ogltqj z{Mj7z^Ms{s%-`HE=0og|2{91wo)pRIpUVSr_`lAIk5oWo+5P|~(NFe4j0~v>ls!#O zNvc}~QPURg@pIqW{gTGfMYqq_-yXG707Qk)4@8A5hC1@U&5GC)Tsxc$Lhmt*=nvZq z@)H6E?*wBy!>j|gv5B%#fz?t)!mUI9x0e5{AJrreM`szu>Dj+*^S`y=P5TxJi2dav z1nT{ zwb4gFTNaPfiI)Cs|8L(GQOX_VohWchidCtsBD)aliz= z{dtL%=6v3L#ieE;7fcZw{gGl&M@2@Tnrbm~=+&dCyuWv^S^$yPosE<1W;F9{0;{HX z^AE5R2H2LDgLy8e<8x>h;0ZFF?crf-mFw|YuOU$PJrNc%_;fMP^sa>tHjlB4E!$Du{ReUU5uD^xftmX)#n&0o>V0c|SeW-kG6!oB?zr%oy z5PNu-_qSaHZ2d<*9SnU%s$P?3W-ca)cuN+<>(}712{=-055;jz%^eXQN+QnQvoMW% zy~^~*O{%|OU!H|e^ibR<Xx_iaUM1SEcsQ!L?)ULi()`n8ccC{zmi2_OYb%(Gh|IeF7 z27@lQ4u7yPKYJ~wqmRrm>9m{qeg^}pY!c^MU9o>>;wdE=k>|bc^5qHq7v))RCYwBz z_w5bmJN#G7@Kljk_{rDPrG*0o1TAx^y^lH9St8hz!;Zl{Nd9Y1N+GH(oa;_371Qq| z-#ynU-V&TS*F5tm-^;V4{F$bya29nEa!`Ne=qp}V+_meLI!aQGv%L|3C5dm0ls8Nj z@&7pmjTD?r!9O)VxQ&Rd{-nbRcjG0cIMXRsdLoa3u)NNV$DB$&B#2qCLs1UWB(k~v zUa#6N$ApF6VQxO$PwN&CP`WU5$aGd=8Nriy=avL7<@TE?{kb*7BIEb|>Kv0)l#8`C z_XxctW<8(Sv86&c-s(Bd>i7nHmj(QdaS4URP2jMNaY+m+HUwunPQfRLh-9KqDo}{lPTFGXeU+<#gnRy#NI|}xeY6y6 zd*29eoQO7K)P6%Kg$)!MIP*Hi0@pXyBIplG#Ec(Mv1MeO1OKTSjd2^9HXnJcb94EP z=%tXHxjCrB7aS*+Sy`*$2}!l=OQMs#RH4IX*V8Dsji$3eDy0v?(WRr6+C8y#rz4z~ zQ8@ceLG^hY&!8+F&YYYV8i^CvF$@e=C6^*RR(IO^($o_B@eV*ZGgh3js2VY)B&GDs ztxSHt(=Orqh4g)Yi2St=k7@stxL?A2Hxh1JKlR#o=++ICQhdKCH1y`xgpK3>a4T!T zo>xv59?ji9wiBa-kD!j{1>4aUmcrJ;wSuTxNq1x7vi;H8`>;#i&6{Oj-?~aP8&$=y zFyK4#?)f;S!7JDH!lg8E0688cdoXw)%k2Ll(}VKJRM<9ycbvAr3;lQ)f1CDn(Ab}Z zl%YLy)p~Z*^?tvvl-ERx{gYO@lK$np6T;xbsTIn#&=YbfwQ-9aizNX(;H9De3h3o)BO5blRK{_dfnR0HPPYY&4P6;-@4qFWULyGgKLEyZ7$N`)M3!Y5j%x$+E9-$ ziWr7zuW}L_H>x6~aaSBql5#I6cm0I)|E;_R5s~Y2LsP=xkpm7?wRUePI2!|L;rd0) zJKqr#aTc;Xg6Rj6Dc{7NcOu*;8d1UnPx0S1wzsb#zM+o*+mEa`33O7ztE7g1G<1GV zbCq%vz*HqeR_4JRrBLK#+I=6Rn0lT(ro5)R|E6YA??*|1=7}(mQxYs!6qxl)4jT^8XNOfD(P`4Z=NM^(F{s9a`3M}>7%u{mQwR4xP#8%k{*p+5Dj)%>m9b)`HQ>4=L_PT?|Xf&hw0GzX}R)287SGw`x+KO6d0| z@h@%Vq_V>KqI0?9E2QH%$F3%@!yf5UAj9!*75uM|u5KVV%x+Rw->X|gP?0>7Fz=~D zdz!D7Nn$Y6EWjDUl7ykd#Tiyqr;$CUOxA%|X^sBlE)*W4l^eLNC<>DYvcW!dZ))-O zX!d+c*pQwNmAqS5kG1;Qrz;mA%E|cJ+9<4Xg)5SJ;}?&eLGb(IYKyV+HDn~g`E=*t zLK-nbkNYumgB_Xn05?gBHr|ZG_Bu!1MEYT~6zl3Rh9S@CjXWPY-Jiv$p5u8oA`x@(}y|x^w>-o0|MRl#h-0CjCjo zZ$vIvA3;Z>4np*9XlhS}6tLXh?4Da zU^?Vw2sHXtx4U^LYaC;DhTscCv`xhi$gqpO(yoJdM=uSlhQHq5a3!6n9E}&3oVZ@S zzdtmO&onkfo-c-Dy96D;nFG@td~PkNvZ&Ch;@X3mNlqrhTi~uCe9A-0_#@qF zDvFkvl$0K;ZSUy{hCJQsO(XQs%fBW1#m_cNgHtTS@YuE}04FaTXN2_B^FH@bx;B09#aElr@5)QPoCC~sscZ(XE;cj5X2PxDJkq;t>8!mo5T~2z)eEh?u4rte(chM*Cj3Gf z^qng&2NGW<*Ow$sr0+wt7A8!_p+0rr>G!I?EeyqGNU|PLza|t9(q*ic`?l{jziHqf zhe!IgWU1=mpnCD(+O^posfLO5;i_Bw$g=nVCmQ{PJg#Y(Urw}4$A`EVC}!zYI)3~* zzbB7d+vDm41K9kYiXr4YR_c>ZBZ@86JHJTZ0JVY+Hbn3FcN^~SxbrhOiN;BKfvHI* z&S+CUV?R1D7%_xDRJ{xYD&4DZn`XQG5n5(tQKuKHCp&GdZo&kQ}Z)PQ=3PZ|Cyfpv2q!^68gkfHb9< z4oLRdHr#$XKA3Vp?z7gA(9zMkXy>gr$aez-tvOar*ZevV2q;cqerdrLWRCC`(`}X} zwSM}m;qL07l|ac4(4fL(4xQ8nYq4tBLSNdyH7XbbzrAc|4!dkP7 zKUuOmZCQYIf4lG1aaou;?oVF1X>C_PnonxN_#na{E|OSGg{T`mG=!7 z8SPax+~ym!UkdE}BnT6^+5}RX<6Qrrg(Npv*-055r~t$wH&X*#qH*>Lvca_$l%p=YctC3*&K;se23V+MxSVfk1c#M zI9v(*!hh|4;r@=ur0?sq4;sd?cB9HNC{B#zcfgAHH30LI-C+5vDtl|{(~PyLT$tc* zz8$rb#bBmig~mKEnOBx<$Z^2u^hs{Nt3F8Iw9Gb7UUn&Y8Y*vM3c#?_-C*Ft*Jwfs zjoUyEpX@5PUfe7bHGn=Xc$_Xh;B{BRb>CjP z1WWR9=Z?c1IuW^O1{vB%~d$B?pzqr6Xq3|GHSp*a@An+rX?E?S{# zWZF5_)mpHB?j$$;1Y!UB?A3VBM`S{BM8#V!qGU4N652s}PVKeduM-2P~B|Gh!!WF>NwAhZ5t81J!|&%^TBO?v^QT@BdihTb_~=9U3}R8>X117Hs_x!>;S;Q%I%yUWrSqGrnbi;m*GH0HBND!Y{dlV6>FMLolT zFRsmVl0QU|f2N6|#1#RV;E3MX>0cuI9I^G6_*7rueh=YbGh`dCf-V?_u>7n8^g%fu zli+TlFLAFg8V(PHN=x_VO#+B00%6w+p?~o>K=g*1zKHfzte2V;gW}~3r3b}hr+a-+`L~T_2+f_3F2-; zQbY-9YVt7x30&q;cqpJqTujls!|;5{$vj%r1M~cP)sc>L2WgFEJO{KopIxA!oY&?{ zNm(*lT=3?!TK&;8+PJeRQ%c%?8f8h1QY^$rw@oET$+x?vqLwm+&%Y@(+^hiw-uw`6 zvCTjC<5M9Ig``OYXbRZ17K)yZzDu-v)aR06Q|SNAuz`5nSBNgjc^+!QCV@C?I)rY+ z;$LDq(62Kb6PlA8L5*7%VPMZ6jWKo+ApCLgSvya>=V_iEcQL$*26Y+%uW1-u7@%tC zp2OQjZ#}BqAJR{J@-E3V_Y`gILyLe8#a3jHN7$xbATj#54-%UH37-p4M%a3mvw-al zafUtu2Aj<+UvL-J*cBK|PzmT}v`-lLICEbbWx&NouDW*?_PDOSm$>47G!6Xr{ZdL> zPda4-lT1@R%1@|17gLoDJz00}r1R{dI^YX8xH{RAK6$&2<9UG8k`O?<8q|QqZY}f~ zZL7qG=i3N0Z8pApS#e^jqNX^|F?gKcjy7OEiOuW5%Kpiia(ExXU>? z{g(%mUvX?mtR6KQ8jI{Yb!1%JU11IeOb`_g#*ugWZ*gi<5@MD_#G>T=Tv;mOWJM5? z*OE((J=J)hI(Dk@F7@MyhEgil>6Ch^;_1|@RPs~)x9t%DZ^FE5HAp;<6BlBvzu2sj z8maPZb~!|IRi{};9M0GQwzYaK<_N0rnr%driadj@H!AcgcjqJKwl;#fMcz)g?=fog zd{{Jr%WM8W-sSLg23ik_kYF9DFt#l~HIk)V_gX6%;%zLBViF_Sm}TQ# zO-(34?D8^{0WgX7n{JC2F+c)X)pH(_d3b0qhEQu`mTjGTnHb`TZ$qOjghC_v>EQ$)t2%|=DmsrifPZaJp6pIVoHKrw zsf0A`dq$q5WINJCObkHnlS@95t8K&elX(4uj)7pVx3k$QQW>IcYVNr2WX;FFc-Qs(i4#Wk-eSH4-&MwI? zf5@s0pGg&Yy&9&`(IUE&1+uzyi^`APVjOtZp8%2mx{c#I{8}Y?jRM|@k+ZQJR3>znxosqN(y68_QNj%JhM9L-2x{b}BP*83) zItVNeK5-%sXP%D4b{Q&kg3%?gv-uym$fLn?7d0gG?@8hOM|c>(p4%90tL#FB8+YTD z)#KwC^?-+3oW$TKe6RIZYU|i~$6Hhc+il9c1F)@^JMqga`8geyg`?Vhio$udv)&r@ z%Wf2mQ|7mQwNIJ{eKjs|m%)k8139`xWFaXOzbvygIMvh4PT#2hSXNa}*TBzw+shgX z=?{gV>}tsO;a588|6V>1hDM21@7~A@L7O}b{Nx4njKaFQ)r}~=XV*+|+}8XFZH!VN zsK3Ao6U&kIt`lQZr^YSzsW2?skj2~`1JWp|n+pw~QapuEsrQ4~GMwg;MAo^J)l^CoLxQ6syXB$2()Qf8-uNhzMqQ#;3XIeiDT0TR(yW(ldA9 zOiZzlq5Et|(vCL)(bv%6`KG13Pu)AH(J25owJvNzEiZ-DrEcoMI|{v2HT4Xkn`F}b z93=rt3KDJx@v**H;<1R5cnal>$Wc#*!#-t*B2TN?%y+lY>8M5W(rdOC zK~RhFgoup4XC6zf$CvI(ZTMJJC$f$V{0SF+^T4$m{_bISszOAAINJ$74s2RsP>=Wq|fJ=!P=XJ9}SMUw9mj<;=}_`{r6`%v4J6_5J zDV)U`FHdDGi~7eS@7`PwCc^#8PxKUaEaY5e4NrU(a}#PbuM?y5qtAwUp*XCvAvySt zG%m}^3VP45Zdg~hIQ+XIV`}xT4C*Zu>%^;*ohtZGh%!vu+-5g?`VpL7x= zJpc{qz9@GB?8?h<9si`IeC{o883|XY&XuOtKvPV`D`VfYHgo*8nW$mX`}UAp{-B)o zwG{0N9zAB!eROfjD$p@#M~K)~Q6FjcM62157^RZ8 z((q)u=DQr%t$2!Nz~n;gdc0L~(caXjoDCnR6rnjqy>rJufj=|KhrAI=?Yhw~fnq1k zODrFD^TZnS{3ci-?t6d(Z=BVX;lm4FDvGX;^lx3-Qz<(`?j%6Igzf+wUVPr(T5*g5 z(0sOEkOKe5S~K(r>e6T7*oaEa&^+S9qzM7DV>{YVmlh>=i%{xLd;wVM zCQ9pwBYg6(`vgSwp+?naqU?j(J_!t5^;Zb-eCJmNT16`Z=S#nlglX} zOFgs8O+LJ-Q!CA|hFZggmfT;<%9$UU+eS3jA;cfaeOsR8q!aTbdlR{UgMq4n$C_7I z#^y}ghl?6Z@+HF2N|IxLktL)ZR#Zvjb_My)5n7GQ! z(V3Xt(i?|lM!$nH*-sC1UD_S!baHu2TLo5%G`*g-3Bc7>JB1o4_?RVN&y}t8Mw@CK zg3l;Hg{2{ffX~)gtPJOOAg`kmt8RtzB#P_{UQRZIE+Dp}DtyKmRa_`r=Vj2snOu=- zB^`}-LoeNEC$;683)~{+gkiNST7g{=i4(~!*$03i0Xfy?iY*!rVSI*$KZzGnBPon( z2vRl0{;Vg@iJ7Cr=$I%0EqBYN{Pq3sKLPqOnZ~%BF^YHKB68eCY2G?sT z0}syoqhGB!ctzSR-3`gkm8b#N5AESYf>vfT8y_G#K9hBPLv`5^0CH{I$>9OgDEa# z*d3W!q+Pc+0G|^3yts!V*NU%*xcB+d%GhSB_;8`Q{b*MDUUNy{-8zyq=sVNT!dHA} zlaPG$WmX`dvEz6WaGOu{e)2}RE={;Pgxv#hYG%|M17$Ww5>rbIgsXic>*hYqpw#6L zIE7z+8;ik#NQyW=7kpyqoBhCAAK7y0W+xpMJ1dnH{jZ5SyTYd#L5Gu2x&HSt4t< z5lir~Oy!=vpK2!I`tl(Hsu*loa+YXQ&A7Q2#B(-exsKS**lJt#jW-~cRs1dz&K^5g zSj*DDpY@nTiRMg({G+P6Ll>PjGn=z`db>Bp7E1yTn8ReUCv*W}J>^0Wcch)RhqmE* zZlA;e)1b#ibSpC&Q4%&^Z6eS)2`O>dUKfDy*uHM#U?PV!y#ERrz6|L_lKQ)P-@{Ws z=*~GZ-pG>cSWE8U3p)A3<||#k|FsxVk~_266E7M%hKzPse*Nm?(&aSl-xT zhsH^|{q939dNdA#_+6BewD6Os=b%c<>w3FW+m6V_~fb0ok{#AbI$#2KpRftQoIt2J_Y*^pRJUyYk4{jk4fzg5p}jYq;;;|KofiY;jda!GFH??KPe+0UGal|h46Sqa_7;3DvZg% z#i*`rinxRO8{)zGUP!uFp*w7;m;5rz%M95|^qlSXu!WJ1UH*kj+-2yM8>|93)cmNQ zsjbbjNjOyg?S-70_@kD*GM~g#DPp$3W7zTw0%`jc1G0h*Vx`!?@c06jj-TR$pnoymyqQ5(i{Jf49`#dMc{V$24WgZcLA$IqQUToqtGy|&PhTmYPQsgc zI`cMPG}j=RwP2XPm6Sr?WnElFsu|tkQ8*u*{uu@kny~E;SsRAe+LIJaY)=9wYbmBw z5wQD**GxW!SZdq`-x3_ZCwa%Nm<1{G>{-trr!V~RA9gwF1Les#BX0RYqc+k=QSC_; z%Ay>0lOs@jixm4|4pab}RiKc8kb)nG=sHijtb`&d*gRaI)tD}`_`qB16i7N3c9KHg zTySW*t|#NL4lnR?n^8E&2LQitv5`~S%hSII&K4jzm$Cm6oE7|1P-vi1fz(9Vg^!8boW2 zafi+k%_uPV*OPJ3W~(xhDt2JVJKe7&>lV-r?j7FKOi@*UOgBD;Vu^WFUtqt$P^pA* zT>5qsAk(eoTJ-R-s%3Y8wUJlxX0qaP#M@P$K+T8kp&Jj>$+t>E;WDzR08dkaKq6C) zKyu5{y!b`7{V;mzpO=XJ!31#9K%O?VD!yz>hU~Ol7AWC_zfPJnX4ljvEpHpFw%hK$ z1$J(!o(3xN)!nb6lIBa>*H7+K7ClmZauoF{$mnM~Fwxy$+jE%b4k*BGj$;~GA!0?; zN#;6QGk>C%TFdjN?ehn3OFxqKQDk8pI*JGdAsBh{T3E{B;P4MBn;19pLGM5Q{l_I| z|G`vPMCTF*Xl(R$7es%1>R&l?2!MOgdHQef{O#NSzZjQETn^-aXPW&P+iJu!dw_5H zs1E-Jnec&fp^f&}AN~D-UmxgnoU%gyodF2&Lvtj6@W3aShYt54>9| z;iA}%>%ABNW?+@qv-zD^^l~+t4S1*U=BOtzu=E%}4bUI(BAI8<$j-9DkKYJgwV1vg zIW0c`))~^FkAb-CulL-2-HgFa7l$h?t6kA80LC%;6El2M9lg|u%y=U^Y%J;vSaImE z@P(b*?dik=64El5CLy8Buk~49;Ut@GjWx_%ba%|s-m1J}>L0v>Z{)akN*SLXjfMPV zL41H#ACTBQLV-`alXgJg-zyRkti}RZ`X7)l3;mW#2O6b2+bkfVSv-nKeC$b{S6f;8 zd(fzWk8a~}YG+DbS0e|rjsx6PF$`)f9~Zrmu+atgYaOEpmI5d#Y#MIQqR3drW>nfg z@pX*^=>hn`5)j?C2$&{(s`1pfgTn3SpmyOmBT-8X#FP7q`qO;45o2OG-O39=-dGkV z_Nuo|Ld=h6e^o9AAB?_J(oiy5>rGVBnl{#`>q@N9(#+2Jlfd9pPQ92SZQU~92u4Px ze;tntU_2SQ+)G&Y>j|bG{uo%zN|@l+9Oc(59n(}10Uxd9S#`T>_UlQr6%)swOQdL* zjU&j$jeXGS+qO0{Ll^pSKNRlybiFT;NaX%I(AmZXfW$0R z6!SZj75$E0Sp;|CN)DL_L_Jl*$7x(*$5efwv*r zF;YHaZrfrNHgnA{^M2yj-|pEas?CZ3z{ZQOlS|t_+a~wyLN$9)EC%dL<0WPczAjL# zjGtz&%?alGVm=5fncdQfcP9z`6>BpnpE5}#?!Ub{Ws0T^0)VO- zMV_-skg%&0hUqW(PK%X~eb@Nk5zV;+U7&3wh3LDR4N=m0Qrp_1vIgh<`47F7_AAYR zkwcW?aW=*Faa(n!VhiYlD~QtsrX%{ha-~_zw$8Y^>F67#JapsQLzzBqQ z-IRX~kWnHYAi{Le2KHo6raMo9BJ>`t8@e|f_Y3;dI-)@^>kQ>^C`_;S8@yzrKaCya zbEQ(fF54M%;;Il2X67(mTsi~>HVwxLCFAGVEo{MFdZKsnif=t0()@rwxt?qqw5e_1 z6Y06LYuh!UtRtZ5O88@95b3%Y{8Gm=y$UVzf%P{06Vzi?%J0DQIGb6x8+VGUtB7Yf zo3U*erm$A+P73iXNphGhG%(1^FMkYZ6T8hR&Z@B>$KLfsTbnHkuN!;Pj+^XVU<&DZ zy$;YN)c|nF3z-c22rND;g!8`r?yCP+H{%v48Oirw$t`ns?nvFi2Em^}}0ziwV-6UG!WbT__Zo|p54A5~f1j3|kcd!Ch~YG_1I0HyMf0SC>n@?tqe!C&WRB5gaKHQ#>iaWDGk z_-3lRK3h-7^|HRK=}ypPPg}>%6zzq0BRO<6vV4fGUBHFfG0WI%QQHt<2Y`+MFCr%%Ibg6GZklaL}Zs@;G@iC*Hhjs zqJ80wGjZ3KG(oBqC&A0@is}nV$?0H~1S6xivbAsLq#?{@Bn3I#TPH?U?P{tt8hCVpfJO zBQ~9SfoQMF?({y6y>B_MKNn`&Ne^Lt85s+8@ZoeD5EFUDChpBipTMLZCii`fFP)OQ z(WMKaI{5c+KreqU&fp(IwaZbFxd2EEH$!2Qo5u#@hOXm3yQ}DWc=u&9+(t$6S_;tPI=wIUKRp{UPU?AHeEjL>O!yPr?{Q%bF8%xl&xE<` z!!uASFA``6HSii+Ho1l4Q|cnl$oGEoRn0yj0?Zgf)_Gm6CwPsZCiLyB3U8x@`PO%O zFg^4~h`ha9-Z|akXymFiU)iokR%NOjAjGvnSiYYbCWhi0y>$T21L8a}0RNl5);tZ2 z3`Khi%p*BM6=MMD3UH2()H)tL{_MBZ#n(=ZKugpTkh3aP3qI=Z4Qcr%BEy@)KKN!^ zQo7cPO0U?5*V157f^|p@`AE5cqW-L`5b*qoKaCZJtr_kb#{VoE*ChO+90*itzdJzV zJY&Ccxh7rhe%Lhl=1$ER46QV;)!6hm1#9Iu8H_qQKW7HHs>)Ru8VHpwh$*=ak|RO~ zf0X+_fV~ELWfQDWO#KT98glzqyboM{gzaM);UXkdp}`M2)wXg8HIHB*1a#0!rSB4V z{4&T~%i$-zLRRsl8k)*eM7xT)PbHbP`9Vcb>@g8k85a%w?E8|$z3sdwTQk6}glQ8l z!EF8@C8>jao>bKuT}7D^>z4wiVjm1fSD+vy$Qb}`7guPtRnpv2cDRtyvfIw%HRCxj zy3Qs8#KCox$MdifC$kWdx7fO(Ft@-((56HnYdaR@x?1NNA9zLMu?8|>@3WfS;t=Co zKw+9Z7lvZQ_`2ijZ;~3}Ig}Yo0|y9aU&_!@{I`aX#;68=`Q}$dMXVPgfnmYn!uka*XUV=e!_1 zn?FLD*%1MMxK8w&BWUnF}@=s0tO3E=%}C@?*sm@^WGK3^#Ssd3CJ z;tGQ-7CSg%%-&}2wB{i#0}nWyZuCJynpXv_4F!fwyd>A~#KWK+9%=x+0=W-`d~sR* z%%^~cDN~#1a#h!guP`|*x@x1)==d1t+e74Y+!?BLo)_x{@J>}*prJ@B6dbgq2bn%rL22W+1H*-~AZ4`Y zSPRtqC7H@vCqBgqrUyVITGsVd;c_T^57N%WCq^OTVQ6mq9A*e*&JV#MzsoQdiI|II z3pQ6LL>ZcidRvNf+->xGrGlE=45xwMhG#8On%$aCm|jsClg8j_Pg_lS7O1uMaPosr z;MzqIBjTp#hx^3r1KWQZk77G`0H$&}3GJ7HiJkfLFk$x)t2ehsJxRG(&Tk=5!Sti? z$s%9tOekyqT4#5Mw1ayXu<%?CBe2pz&LzQvw1Uyo9w|0^wbTg44C?4XeBR&^bSFRy1KiigF zW=@~Nw_iZ=rjx`Qin$2u2K>1`NL^DFmzi}&yR zI-?Vdh&oZtMcYDbiadKm)dvt*Vy%XUou|tHYe9*8UnB%5-#zSKot zusD{>+QFq{85^Q;L=`|pXuK1SMW-Bow&m4rUNETX5m+n%P`_wbMCyoisPO6$z1 ztntW#|1h<_YqOIVXKhr028seHaz^3=!NKBHH)G3Mc~8c=Pj~*gF9FuO2)dJPs$rd~ z%r^+Nw}Oz{P$4f$4^A*LT&@U{YR4D}+UO7nN^knC_C`QVrL8fA78ewu<|3Ra%B-aT zJ`RKiQ-qA_WisC=lrV5?(LIM~6q<$~=+le$d zr9|7$Ls*@@C57P$XKAVJkx{5e>|T!S*;6`JYQ{;N7vu*3@#&pzXEYsH2L}21P0)%e z3CpT?h9WKNLC%XOv@$ZJHZaeGEAQ{F6Ppl=60pm*@0}9z`E7rQyhSTM{?KIQE&J+x z@;bnyzqp5A4u@wIOwvf86P6;wPI=1Q3#BxKpBW?dMD?)XS^l6f?Fn0G3gKrJ3^>w? zZ>P$(-7Dg*9-OWgO8pb3E`7K^L^C{jLt7TT@TXrE=WHS2;f*-6%_nG&##O!v2!S~x z_?q-RQ`{|#O2Q@jO)WIrbG|xeej&hET1eUC{`v6I`$qnDK1saO<+i4%=e0@0{*V00 z=asAvf4)!=jbFrQa=@^Ylr~yUS_8Rv92j~%?Z?p0$OkDvQ|K~%elGpsBE>4{4HNS` zLrBkOS8Wls_cAZ<2SxGWsIzJ(2uLx0&b~v$AYXcpRsxMXPfX1jq58d?UDLWJ_e& zfXgEx0{GXVv*}nMMk^j{xRs>BUF|^&<=vnx?Yv5>h>(kReo;G#v~=qURDFb@>>;RB zf68xMdi^FIIK9K8YDz9NH06%m-|RWNUG8Z~-FJ@RKg!~V=?SY?|33eP>Sk74YWFNB-C zuRNzSsi{`7;V4b-GEC%^bWUAE@QJ8`Lqd&<1koyafpd7GqN%ZE*SW=21TSw^kIbj} zuy!&j(kZh<`~I7!8;fi7FGQ>YvF$HW=lA~wuIaySklFgNdMe<$xr%<^l#o+D zMLI~+*Ie1S!cddI0S$pGcnSq9_X!kKm@ukco%RS#r3gWb=k#T&mfzXiG>;(AK5EJ4 z-jj=q76EID_V5`Bb`Gde!SY`~+>4Xop`TiJwgg5tGMfsUCYOR7c>pvuv0&3#mh~W@ zHISN#cb=d%OBgk{Q;OsaKW*27ueEw+MLp9txU)On`w?Vhv-ZsBBcc@}Z`~}eFb(T% zHgh|AyA!6AQIL5L`QhUhvv3EKofmNh+=qbu%a!`pG;2r7sWfR8aIvjkCt>#^@yu%QW@%kBtUXv7`(<)GmH znoRI;K+)_;aMHU4>6zhL){PV17 zOqUir|A8ildiFBm2Tl+8qIZBFpGcG)>lctT_g`-#XwE*#>XmzE$txEV)*~2hPqq?} z1gu&SYw-prmBg1uVwF&Isx>~xIp>hTEK-z7^v9!Rnw1N_Ok85_%HSZ40m%o zGZL(%1&f(V)D%QkCuynYH&@D-j{Qvsgdu>u8%%`tZzFF6`_?mnVA)8muR39mrww!d z=^zL42W@+);}`>T3Q01Bl}VzY+aC2Re>C_*e!{j`|^F9T#aS zE)?NIA%XjcLLM**sYBNj`rtz{i1yWH%0C9F--YQWSg02HkH-+wAu><70+~^Jdj`yL zBtV#JZ;CMPghhTz05Zp%?5btk*;*6m(I6d8K@O08cfPVR{DxIl_WpBWylErC#njHZ zKEwW_6OmNQZbHDN5lUX+t#4r)pp{`6hEQbKzjgnw@pm&(3g7E5kIF` zLNCSkiPQ7sf1SvaZ@3OUUjLGl;`)+{i)%Ie8VF`J15W+B>JNH)lqrDIKYXs4VziTM zJf-`gLz-&l`~k86_PA3A;dGWG@?)yEMil)_*=3hU-P?ioWo8R7V$Nn?91#$Z_*3>} zzP0p*5{TZp0B8YWHKuObKc}Fuk_Na8V0rp@{x>1@|HIyUhBcLSVW2}90TmEY5eXom zAcFJ~YLu!}5vBJc(tB?rB_Lfop$IC7^cH%NF1`0&5?TllAV4VhFf-2geKY>K&%O7# zKkoepBqhmWt*wF7c!sL}c%(20n5z0ZsXPrE?Uh1} zN_{{p`Bx7OzxTwI*(%a*Cz(voL4H6vhV3c{T;vvn&x+eyqa4-uJ;i4gdHum=raJJI zn&y2k+|(QykmT!5n7Y%ddL(oLn^KqtKR*?!4dWzFH*602JvhffUVMi+f1e;oRA|uN z+MNF0IPl(-qdJZ~PSIEPYai`$zI;;0^V44eQw1P2x<#rrS}|?mG-d(KrG4TwSxTvQ z;`M!ww)YEt#Q+OyOFjmwmq8aIM6Yw)T!j;R-P-?%f6nLsNBrYH4gg~>--USJ`QJji z0|+Rj8zz~?7xMuSh>qJvenr#$1fA;um~>gYt#r4OEn&Ak<_|aoAmbbEkEmCC1&p8X zkIJ2^PbUDEq&5L8Z<-h?;Xyd24>GqNL46?&wFAI5m;zv}5#^<_k#q~`=O<==NUDCg zJ;bG=y|Rac60!d+E-`)?!xV(4+&JfZe%dH52(yN3f&pwwvccyx`LpF3RTybn!B9f% zm3U-|qf+Hcymr$mcFtCLC3oL34+Gd186ZW{C&2B7(TNFrZ8@e}?(V_P&VcE%J~Y_u zACm>yOKG@Fm>N?ogbU6RtLwR&8jw7jtM_gO?Bfm@p!0aHu5M<&=uq7wI5+LIw9`&c zUgwD=V{e!OAWL>dmAbq3Uye0;9lrlgmB@0d3lemd`Z`DLwnQ$|Da-oNgjqVR#w7kF zKt?Mtv9|HR(-J4HONEriF~JJ8&db#5EviXaCmMXuqxN4Duyu5CdaudfSFscd`qo4L zMUF=KPY7xp{IMa4s-I2bzSx4tu-|C6^QseeYsT8gzsx|~RDnx53;8AU6a%0m6Scyo zow2`F)%{?G1pr{ma2rWUR`babrumh+?oB$6RR&9JFa;CP<5Kip6uE8u&QiNJ#Ahc| z|0)3Gc~&Pr|2(%Ss*viw^liE_{3x*@_s5jf*A&i^Gp_V`>j32aV=97%D`6Dt#$;g` z#FwOxFVX&h=?|ek^~Uefdv0+1@(O;DEEmE@|M;nlTC);B@4`-F(oa6$P}Xt^V4{Qn z0dHY%u#;#Wg)9l)J%cj=3R%>s$q)Sjp^W<)&kO%P{KnudkihfV%p2b&cQ3{B&z#n~5yPy= za~%ojtjb(U2Oh|fdp;|34gm%62i=wt<0<8XmP8{P3CQ`lbN6{e7^$6rJrejOUaK<= zAz5S~x(RS3)yOXK6XJP3QDF&U_Ovswqi{P`hOJ@&!vx=@k=YAjNxKbD#}OllPXvtad1pPuX?=#29KGLDwp?b*gl+1_RH)zfP7;^|Oz?d-y=GXyqSIBz;|oY9 zntfz1KvacDi+9YAz?nx-!bVllm>?B73CPE-GjFY>SIqfLA-XO^Rx;D?nlCiVjrD?n z3e6b)LqidL(bagbt$A%G%W9e6&U`~s35zy?4;veZzfZBUkBy{ z(+A^_w8@wYV04s_FDjBa{k#89(QU^0uAy7aN@y!ZaeyVZ`3$TKVxZ-!cKa4At8#UE z-00<#ta;5QN;F`Nf+-H2thd@pIogC^r@JmCPm3-X?08G>U<$#hX=0v17ot)xl%@Wa z1U-+On~@ZfqR!-WqT}l!`|%<#I2@jzUuMg@7O!DM62oL&8{ehPLFa$_6NtwGph@x- zvZlS4v=Q5Bp> zd*SB2z>mRfO!Fyb)&;5R0Bi`>PRu81aj zZl5rDgCg_SDjb%+byVgv7n10%kfYvqAD$od66nQ$emGsXS>k8PTeN)l>2;^Ld+s-{ z8W{Y3lQ8bV`@0YD<+eE=;6J?7NcbT0Ey?qHU+;E)cp_yGof2JE6k_Ulf*r%A;(GIQ z$ar0C&epN7*N1adGa3q#aO(=M_}T8PLGXxLMP_#*M&eAX-g94?a8W4mZb0y0rXlsV zhaxhKe*XTje4_yO2BvC>RvNavL+wyX`u6*|{a@1?Ec2X5U8IY97mgC!MY9}FFsF@k zsBFmTT52;n^n93$JT%AIf(4J{>0|usucTjMVYWYIwO(uZwvQ7n$;?9{@A0}3~ zra}6FAjZPy$Ln|3{hpDWe{ZRJJfC3C%wk%(M2j9jB}zxxg%YZ<%^=0GNvxd~U!)0Q zq>r1WIEmEMPaDZk9;@Zc2XRL5r*K;RzD%{#?UCmIPb|uOPo?dDXnOvt(BoCb3-->% zyze_IK^eGilh6=6%3+XQNs&>oer~iq-JlI>)?PR7y}|Dq)OKXtbc|eWc6^9N0ZBC} z1yW3z;1?wjX>lCuCN&bX$J(hF0^O3;^yxfh?dpc5vH&@%7%>rHe@;+w9{_cK}XIomfls?SCRN;ld*VWG0MAkL3UfeM+EU0G@IP_dG!c` z8ypVx4?T;|7*#SKO2{hIfl$8V$;+Po8fs0N((v84Qu9k7@8x!i+^{T#tDorL?^hn# zov@_oPa7}#(Xx?gRK+!qdm~cr_Zof|dKm;(4N?CG%_8K3Pm~#5Jo9eN~*iY;{D`&B$ zSy>7E0trXdS_o{r=#oh^x_Vv*w{;hNjIwwN+EpdU#o8S&rkHMA&yCPvZSIWHYCKrs z^mVV03+$uTw$yxe9oe?#A@nAY_yt8qobQ#i1u62Xx{Mm}S0sLVcn_Q+6^Bc^ibyI#y zqUzVOKWg`55BB1OvkA{6ds=d@^0R1-+ll{9Mo%`;i-+tI_2YdHmbXabS`jZ@4AD=p zB%_~vPoS#F|DF1!f|8I)a;aM4wA}+C=WRA$D=~K5xL^(kDl1E{M(nt}qmHxCtn>6i zmqHyRbkDYP{PXPOI**z}fU0v+dWNZwuT?Af2R1S;L3AaGYyWIpbGa3Jl`R6S9cr&y zaQImX1Y33I&hQuJZKWd=Cc*`RurH0s)}iA zxi5f?rW~yX*fwq(zdarHR2|io?{hr2SjqO1-S*bPiL{vU;2T5Wp->w!ZeOM)bYCo* za8ipibboKGImy*B(a}<_COa3vv7RD0yLqrW z$B3=3Eno$#kaz!#eXxPmIL5<$_XSzr%OBcg38&QWEjii;Yv<@;{7PV}8Xf+QBhJ;O zoJhN1Sw5bSxC;MG?o=W~Krc*AJ6>7CxX__Jf`i(Z%({8g!nxI|ETAI*$=Zc{AtHg2X zs#Ss&@H`CVv~aH}sNJz;N4>3SA!2jVN1!|K){@p6BAtDXa}GG~ z^xTX-l!k9kIt!$ia-64CBkZQF=>+T52fQn@vCd@1- zdj!h{m!S}#NvL+T%k&|8)^>@g6^OdWMYrrDL-Q=U3x~!rZ(P?`sMLGQ+?puU`t!ZM z@3d0(cQ&@b2tK=qaTU5<))==ZBc{yA7DJh*zV|o^Ogn2eNxBO65CytJY@PA;wuF^N z8MOIEX_7Vyk(p|PtKBxam2OsYWwbtP4G5QvC~jw!O!h49=GqtM{oZQc;x_+SZR@5s z#4VE?FG*Y+=-_}(bR<=Xow(Dq9Ppc~Ng6R>16VMSgorZ5y(!k7`->Qy*FlB~nO|_AS^Q;%bbAZX^vh>{e%oDXLLTW74pjy5J1$&{mgpg)60 zc_%9t8Ydk_p~uz8+FtcE(rcMXeS^dgeT9y_5gFQuj7HnHQBA!g7JWwAe%*ONV*%6X z%AQW37P0NkzhCcsbIWrBr$g#(lf9SVpMR9c!B#Y4f7zcE`&up?QRVBsuXxn^`U?kJ zzuRqmNT!|dQJQB96Wzde5i#gkbb_x<{OSXL$q+OH=$SV(h}Y#XjMt^uOcZm3M5_m| z&XIH(P@t&gf#?eGkS=U~1k5@bJqAV3W>@UIag5$Q7{g+j-~spmNMA@lDbCU46?Qo2P<(mA5S;U)f9#dHDuS z(sgPt&+=v&+%k4tKYf7XUO7`()7M1D7XNU|I`!)J5JG&KHT4eqYP*SJnhZ-6cWAIQ zwzW!;qQ$guy8n=`&X?Gs{q9OjCfDZsNTCX%LooI2P%na8HJ8na%jjL7>kH~k4)LJ@ z7N>xcEmrKKF@2nl;?XqOzTj8`yZggG7bUYU2V1Cyj71ZxsqA`(#fVGH)#;jSHv5lg zt$;(|Szavc{?cV;?0*Eco{^7nf~$C_SLu`WfaBoPqNjIOnQ$^?hi z$vloi1!!90W1j$a@-@an$BsPa8~2KINw`8f$e4~Nu=Fj`g?LDOHpS!hRw3@?x2u*3 z&kQ+aPra?BXcZ8hjlQ)ie$%|3NzcrlvX%Hgfb+&B#lOI4b*soJX`$1Jt>SX?vzp3sD)bJJG@SChbcr?*7A zWi&2+s?fV2%gY9O4BOC;7j3y)!M!qTf)f{-WYXhP01hhKYu>$n0+uKao`akkHT5#V zz0_+0vFT>)vO>mxqy|xqdUv0nhuCxKRE<6Gqm_Ak?p7+jSsdwYRqx7A}A{niH?HiWm;ARFX;bjmL z(g_?Sp$w`9ZSYxqzy0&M{s> z5uK}lYJsWh^R{72hAaM@^n+`7sWP6cuh9tk)4Dla9U{iN?c2oPy#P*3TtfhS!~!#% zE$+PMaDF;>UU!u3dz`IOBYpJ@1351}%56B#m408qs(SH^{6W%2-*i>1#_kL5(s9y^ z0;t9&wV7Fcgfe9g&_cebx=9yQ?`w0I?}%X(*5bpg3!PrLX*@w<*TmN|ef z%iplC-7qo@KG;IXr)PHb-z<+b+n$+HO@M=2+|$ivZOK?qUj2!mEC2rb(Kg9pG6j*Ovl>;{=g!y_i&!? zatdD5^f3{xwZ@Jj{DaBqr4)}}|8+dxE6OIZN>4vN*t6bVgc6IcuqvC=9d*bG=pPRz zBq!7^-|xv5-_Jozj@7$h*cx`(dVo^;X~6@5lT2?Q&v7b$*gIgbb_Sa}L2PZtPfa5P zdYI^Tf)R4+)q~$i@sZWfFZ2k#i1+HXMwlq5=;x{~-K~6D^@fGR@Wmv>$72^an7|sqQCVLfOJqWz&;w@%mP6S z9~9*9)C?yH*^|_z8|xdGUN-|9s>Gut-PD0=aKx)lRtWwCLe?ay>_sVfTd6 z`C;Vwcr8#Jw6y`8oKv@k`v4V~YQ69Lqz`s}lzzT;?3=4S^X;gZ9#{OT{Ypaz1PBK= z4w1riK&?{{a*lz_l|M;eL))GqYy}G4TG^5>?zp;MyIIn82cBKKpKps=ukUI|} z;-kLh(;w+4&oI_=2i85bXt#C_+cydZjdGz7Tq(p-9Fx??7uI8YoMmf4ciayZ7^~`a zt|k%isI1!#^GSUnJ)EZw#b^oJWnY&VnJ`Yg-(m?)-KAqdF8ACGqE&v*Eb zpDHZ$)djX+tb|}$^TBO#Ucjj9U}#)DdZQq^@A?uYvXL@vJ77!rQ#dGcMqbU!?tB)2 za0CDnx`(SGz*L@w@37*GMxfK0sl#J2s&H|tq^ zaTUHbRRA-;23-bFo;{pFzVih1Z_a?b6dW~C)%SbfYQTszl)3|D|N7$@u#4@YmgP>a z-u^d))>yTg<6;QQXbDXJbVMK3#*n1i{tyV-?DY?o46pjOyLz>+9tM+zdF!_!!!`=I zjmt;%0kd<>&CXOZ+Tu=!&YjN8p@zfM)dY4^d*|r3gqC=rtj>z3G#@s4cE?>Q;CudP zW1}vEL>MUs2eaq5!{dAos=ER%#=OI{xAztO1bjMot?I)IUgJD4=bV|3GjTG{P zpzj{DU zwJ~<$8QI?WF~fE#{ph0aJ3QrE#lqD=gEV16p8_5?yg8@tbCVgPn=&)l1CWFUnAc*| z1A+*etqmwp`3M>zrbz5wx@zp8beo29eEyAL3D7TBL1_**ixmhHOyS=P`N7vq#e90f zGi5F5uS9s*--yM#1r9&PU$W|~3uK@)Wo}V`+v6{8R{v168B~<8cUzQdrFh>QW3PV2 z82f?uRWHyHaSP+N94+e-@f9hG6iUSe_p$l)iBW1YSBI$|JRU92WX2+mk9fG%_Gyvm?;rgG#_v%y22$(QVgZpuUIDRNhsZxkH&T zND5twao{JYcryu$66lWDmvrFlG^??k-@KbL7W@6#3A~~%AE$)#Jx8BATkp`i2D0U` zvj?$8BtXSB4QI-CxqcJR-4lT~Ma<9?lylA#<7UyPv-O+&#&+u(E8-aU?<#%qs%?|8 zJ5N}$y!6}V$UzbOue~Zp;4}#y;>KX~AvW}n zJl{TTpHppP9y?F)JxWN$g!ZZE<5aiC`V*IDseguNjaMp{&X#(Y(RA2K*@QsVcYsByG~wO!P-Ea;XpL_qOe3LcP#9wt7qx%?j3rXY~MylWWW~=G%m4l#!o^h&1<#*}Dp- zPM{FbZ(t5PpVoU~o0`8jNk#cw(|Cp_$Q(a_ExM1WrGPsWTRgx&&9DUvAxQLblVjBw z_xbC7Kc)!iw%?9;cH9$W&N1Y@Raij=^2)=XuO zzmXRT;`ZYu-}0^+V@pm>iW$R36bijjmLkxn!$k5ar4$`K>nK`}yy;0%$6tCM)qbOQ`=n|a7urYQZQ!NydUIClv^+7}eWyyx#o%{J zrFy%sO0@K<4V-J7>EG{^x)%h#5(lTyOF zjLIclt8xR! zrQAf!m6EkdDQ)r951^E+ZDX~H61qk!q2c7!vO-sd5LTYp-@)TI@r zaaX0eJYxGRrD<%V(3m?X6DZIhWe4)42q8owzxj2rjmDt<74Rdu_RB6{lfzbsg!Pp> z+LOoYrnnB)?35SIWIJqP4PI4BOx#$dz_X6c*NBX=|lZnjQW<+z5oYZr$9p7Ytzd_ zJdS9guHfb#<3WCBg(A{mM@PH6c5j8u`t00z&1^@Q;g~(KNK0^=MUoCtE+l9&sR=Sx zq36D-=Wyu;ThOk6BK(d$qEo{FM#Y&@;(k*z%n=^d+F4V=kz$mB;k7jY6=jCyL&~p_ zL5^Ea?;NKnqF7K|%zzUxX{9i8Dpt(VA-(0j_}DBZ%}TZh&+K(Tu_vWVdE$scO5lM% zvp{$NT| zE%}iLJ&?duKYCHri_Ga3VYZtty6pdqGp54pDMrILJIoTiEA<&v>02!JaHCX|^IXTJ z&cU5i$n0{v972J{tF5!~NW`>};m3s05qo-32rdp%)3NZ<_(j9h`4mRbE3i~o^_t)u z;NiY5xUmyNq=679mfTO{dV3dW@03!~Mki1Dn47TiC^ny%4Xwzb8e_k^V6b47t~EdJ z(Cfpwa?AfG7{!gaT=h<0Ix=*6s0*Eje8RK9oJ`K-nku0Bwkzt*;%_Ci)4w=uGGb$QG&?M_?a zk$YSR;8a!1-Go(UT{@OiorYTr4;AbT=LBD8g;|1LObe=|UaRC3{c^>-UKT9i)ao--oiy8`S_5V6#k`W-nFuQZ z6D{$!R<3xyk5jd4PHLvMi6znVlI1S2XJ3p3)d-gPJ60jW7|639u&u97g-$isH4ii; zB1CQ<*k=t57t7TNb@PfNPV4iyoAG`i(|9N52}Ddl;o!>{q%gLWSvlXbbMBfr(~05| z-C#Cg_+hGTx8_K^T!>>=>baDR@BlEs$foB+$&e_rNP^z{F*bD%nerf2V}|aL}Y7ze^;#;$E7@D>>P{Y;8oP8-wBp= z8q*&Y5n#Se500?gH>l4U=D#xH^2 zks7XRpu&b|rm$HNk?swgmfafW!I+dj5;92T_c$~`$^rPTt#hvS7rKMcJQLW9F`zCr zoeKo@zHh)%sZ_lmi_wf8x0Y@M?Gd$8&8>hx7?oT6$2J6>sa-C~;BtSvJr#0 zG6s?rM@N?XDcVD`Bq9>yl)hY4aSi>w3Zgp;}- z@osOh_dZ~zK6$8pY1iCSvp2KE$7kjBho`tMGO*KESaw$Hgjf}+8fno!Q31tjUu?eE zaL>IjaOdFatYI-V**){prDEg@@)rI6@~$NIbyf_)<+jDB zQlCzZ{8#j2GlJp{Nq^3Lc`H&dvRIVP(bIT0w)(4Q=Umhs{Z6t|@Aqe<;Y0NY+0&ez zyAvpyn1TA@KfR}c;I%jB=X-AtgvZ-^H7{GqE;wu6m!T>wT7Xn!Fhw{;$S3h}N^}U( z9`_ogD=N|f6O1g|{nnF}3Zec4l13ey#*Het-<*XzvgXziV?* z%`TEBiBiu|v#F^+iCC3~P#xnkDlr#lcx z`Axgb4IgBNnm$1YqSeleT0=1P;}K^6RV$BbbYX0Km|pz+XF-2Jse_{ZA>$we60CMZ z+9!|svY7pE) zucN;H`o8_<%eR01Ng~6?p*NR8F8}hT7sLG$8@T)b5BD?V__?wdMXCRPGJge6{eRpt z$D;{3YP>9~Pq#`rY%;}n^+T_cr$FAVBR)Qd zGzol={j<_!M~=E$cZ6c3#)xg!cFdS~UR9Cx+`qs_k%YHw;VxTsQ@monr(+zOY6Z0z zrFMQ6-P3-=IGbKZRTG|~V}dcc&8!!6DH(Ep;@-1HW!)QJECRP4JaZuvv`y9G#2tKs zK@Rt-dIXKu`j}l0gVcqKGUzY;)BlZE5yG*Xu1JS+r2M_@WtX@CN?Rv4N0cOaO3qE9 zUZO3B5k#dwmfSSuX@%#Md5_BZK^&q04X$(F&!Ng=#kQx56&}SL><3=qu=d&YHse<} zuc*<@oDdQY zpjHyXEh22t!rtM>r}+^mS1X|!%_+o^xR;CL_jjJ%HXbYf$;Jh4k1^3s1^pVQR25hJ z&x&SVxNKCUjp~%noXOJbjhCz?4O%58XU{=~+KO-hk{5 z3Y6_TSr+OcokBTI!*CUwT^pW~8+Vt}XmQ7?Fwb(+GfY`%^`m!@$8&`VGhC1UX(2QU z2ImT%{xl^XBsVNv0{Wb$X z;LY}`bG#ndV~+avncRnfs3)n%RexnZ2&D@dvB_@Y-l@WHqPoxa;q3x*g9WjMo@3fm zBMKFw4yL#q55ziJ|9h#-Wi@ zXAAPUR2zNEi5a-_L)zI<&s|icAKOevEW zR#>**P+*EXu@(E~?&#SAPGFp$_Wyob=&XThaIKTWe73E3z~m{X4%Na(eDMtaZFet$ zb6ntNMRI?)7P|R^jO+DT47ou z(`JO&Gf(u-=8k&w%OXOdI!HNE?VPj$VW^Gk-uE7wsW=WoHICvdsIM;Ny|1*Z3Xh6C zGV3yKXZJHrmL}=-A0X+}MLr7^?PEYQ0%szEA|+Mdv_YBwP5AYXr#yARnwmVjKR_c>;s06))L}F%VtC6Ic&u)Q#L`$mDOg@L;RFPZytoxJk z3!LS>X*^-HQa*N5(JZs8otE!sK0DJDmxR1kT?>QPrE{po(oV+Xk~R(sd9+nCNdD<) zG#=ssEn^-kv1tqV!OA0khYRmi%L!L}9qpCXZg0+y6t0XPdEVFFTW7)_`Rb`@r9(~1 z>N{`kzRueEJ)ZR=w~bh#PcuR7)DotZl{2#faNZ3JidxcM;M&y2S@ujXcEH7Qb_A=t zG<*yh7Jg6XBInure1oaFxmevQ9pvi1!Bzda>djo0oRk%>@t5b+$7)7_GjWqEs@pvo zOLc`dlT|7kWyW!@sNqLdOQx=hKXLJ&m27^(*Ji#oh{4*ZnaA@*qoH<-_C$i578TlJ z3qh9Z-&*z;h7Im_@spXWUq*?@vg|URy{O6jg4hf`34gy6lQJP3&}nC`CDw{J2Umyo2+lW@!nw=>*vxnCpKH> z5G8n8skKpwd$IAVTCX_y%G7>Aq1x%%V$bhD2T-#v9+m!3xx-bTQX8BCku0 zd_2PC{2&xpkutN};a}Zc4w)!`FKlL=9Jk$1;LjUOx-;I3ZLa{A9E}`=IA&MmmID6# z+@XuOebRrDH_ZWDq2cbFuta7)PNp7&Emuy~R<1PlTm?ge8dkz4Frl+GXmjU{oVmX! z%>VJVTo524$MBZ6FjE@bBte zqxfK9Sp-v4>~W;6`n83;_x?Go*olKRn}!iOFK-{uH6+@RPVAIf-9~Rv+!Pfl?rG!t zXuOzqYa(4d+wj$G3_?ZQsm!Xw|%9iEj|AAcp-0$Blkb&BzKhl>Z-93|30@V5UB zwJ)4OkvPC+)uxBY+g|r;pWEI>+(KEz&Yka7<*TmdZJBF>jeQEd2S+)}B6A`i>6{OW z_nuNgoLn4dfRIQC?i^6WziBpQt)*P|gTfKJ$6#Frt$@lwFfm9ztabXqex|L6#g?$f zy}j%T(Qj4f=P48U{og~J3P-E zC;NrNc2|eIwOHtDum$$3H3)Y@uXno#3S3*JDU z)!G&Iup>Dje&E+8dfMRFQ+M_beQUP-eOy z=Bc*-JSC?>8u5rg+i&5JY&a)es>nHjN}H<_;7~F~n!j8PW=dUp!Q2yi%|QuT&pU3W z8UuBT9uqQ9qr7~5oP<#0civ^L#XH+9x|XQ`dvPHey>Nq}?#;)(2}3C{u==DguOG^V zW`!%WIOBMYd>TN~#HzI*kv6GXNu&ay!eMsbiu0o+;Uo)OM)GrW-fJg8k6i!xfY--$ zE{N7Tvv6iSl9$BuFL4V?yzldI%|Xijw7l24h+13zZS!Z+e~kMx1<|;m`P~6A|NQ-b2e}LI z1MUBH!#{5I{}Mm&*RS#a7#;Ed{BSO%L#w+i_;ri)d11Y7T~X#rQbtUj8$FiE310D%v=qsQGSw zL-77$s=(LH!hbp$pf*wieSFBmI9sd^S51{Mo^RiE-6Snt`o$btiQpUi1Q(xJyFPJx zlPwhfR+N0z-Kt`Rv_$n+-`2**9MU58&8?24(R|qh@dTy6B%c~^UK`(1`s7|`H_@E1 zQfJ3mC-bitc}pme{`df5;-1Gc-fIj|n;XPb0LwvVhZ*Of&Aci1tJ;Q?0Ue}O6rK|j zPF3*WOOOo!TnsFEL2-Gs4)~yuNk#4 zs(4o?_E+}T637NF|0Ey$*Q1S>5+0wBdwV=4T``SPML8sW`9bt3KdUE~*ucC0cn>xv zqOJAN4`{>Sn6s~$^!KW2T=D~ycCV>NG@yU{ZBrcI+b4uUzYYGSNHi=aO)Ln|R%S1Y$)MBqqL6@w{>F`&FA+UD|bG`L*-nZeM84txCNWd#kl* z*MDirnS@Q~Yux*>4oZ>bypbpk-HqNk8>LUX@80rXVn%Zj~H3?@Y}ez?Bv9pNjm_NCF$heVbeJADuzP=UQUF z$-xF8FS6uur1G|LLvJ?UIr_vCv?NA&*-Qok|MoUlIYi=L5!c0(7*PN5FjgCvvsGS- zAWFYZjC2Oj?r8YHb(6j31Cq(Uj+@Lxf!qN&pgOASq`vk=dKc5uNoV!Q9>A^G{Q__+ z=idYEiWhrwT7G$cj7rX%D|=3|rQ@cNXR6xmLa5LYnPRsni& z{0LfB*gQFwfm>#Sa|=vxtcMFTW`(Cvd6VmY?y7tQ_efAlSe2Z@aIFZj7S5 zhYZvSEhVcu=!{4K^a&u&PN+h+;aIJPN{dU`mC3Oq+_L;6*s7RBXc7ECWU-$T=^_zP zFY9x0`}%c*_o7aOgA~WhT0X04#-N8?SDju@C`EjY0RRk@q4x3sTJDd{nD+3MWO*|c zaByd$iv$!@IA|!9eC>$BOt+(j(2CK7S~rQTCb)gKxmV*~M^KS2F_$d;Wm6xeF%zc@ zav`HhR$9(-r`6zgJ+P16b!m{PBh32X8=4Vo{Zx6jM53%J_BbBJr=^@-S!5R!pwni0 zdjIO+QJ|Q)%{@VZWjjKOrN@~w!H#stPnp`U=yn(meH&f1SnFS@jD05i(Z>I8cl2}l z3Tizw^-&lAiR9_n`Sv9VDeKds2?edaXcOPfv`UYFGnr_cNQ~yc z8Lfxvju-UMDy@_>$6s0IXg0q=n=)4QM5t2=G=rA^RJfAS#jtrRg!&pdFq3_s5t`-{ z|BSMKUl+2%#Hr8eA+f6Vf(>n`{BZMlw^UE_7mGnMjHsw8EI-M+;{JfS5ZyX0wp#*V zqvGCh>JMET-vyu#LJQ*6Cr39+6w`G^XUqh@>IV(IDe_BG5T@__0D>Mp7kA&ejFkHf zUDR<+rxg(59BjD?0?84YOp+0)uCj)TAK!FX?W*M0<$an7a-oo*GG9zd-|zg_A?=qc z^--XK7Jv&Qa3+YYfI*6vS*(!#kyqe>`qwb$jw*Dt`VdqXK4It1lq#e194vag?BzFc z$@|evHo#nee|&6ZbT^QaSj6cwQx=&?0c(m>bcEZgM^22Fk;M4xs(7mEf+*X6534Kp zG36ZLbRoB4g>tla&seS{*AK5abOgK@OVBIUb0>$r5R8qeeUsn>B$x6bf`jH|Pl>8l zHx)7>exvXh+__BaBFV6cGwPI~Bk+%+m04|4k)ku7l##6p9%#Mdy~nws<($ou{#dUg z)hL}~Sqrp3x;y++ukatw250hf*wQ{Ij!$>~0$Kwx$qFN|Eg6wuCm}K+tG30GbMG}B z7RyfYxVwZO?XskFR~?U@_R;VXcV1JX-<1Pk*1bR~fq;H# z&}pbR)O(fHKf)=X=svAOFL@0JsyoX1j|vU2JK(&2#Z@+YVpFC`Cr^=XPnkLOx@RPr zBb-_^sd(Iv;=1~nDu6zDoy&X5@ujLQ}E3FKbFt%>Q)=HL6h< zM2OxusbNvX>z@rad!Plu_3$m(j}I2-nn)d0or{#|H& zH`5H21Fg5f`oF`0sgTEM=Vbf2WnF780AM>hyEbvjSiMbiOkFv4txJ}k!Ro1*_aoZs zqAt@P+V`Y%9TRki&G}p!B*;GoqB6EOb2%kg5C!59H zn=5kOmen5K(a?y;!qAjn2RQ3Wj*F?#(7!D-pRv))ORmF3Gs{W|FpKsKa@}-)mJP{> z#F7r7)D7AXQ%1VPuoM{?PjU7( z-sQr#&86pa2zbSG6js`%B>c zUqP)wE=h~1&sX{{JMY*g#C=r>X4Dg{pCt~9$`abyqicQehLg_i+3Z+O4q*ohn?3#Q!n?M}W2-m> z-#;A^#8JbkgzLHww3*{6BRIpNnE`A#JnFfkw#K{EctJNO`>0*l&(n7{hH^8JaP!H)b2lwk0cI?V0KQVy7!R0Oj@BZx`N> zKHe1oI&5o1gj5X z8Lb({zn>UDW&*6B~sW3h7?(6lg*>R8nH`}ggfBSLcr9xrGp?=9+M^q z2Y6y2*gU9V{3g4uzsAU`XDDr7RX1Slh6~Bb;Og{UND@6W5=8dl+9Bo&tnk38%7~8H zy7)|I6=Qt#Yh9%k^^nX(w$)_(Fyl{1wyNOBPP)K57t3!JC64fW0jzRaig2GTk%Vr( zh7wFI8?!X>eJba9o9;n-iMC9dR(yz&8A9C-?M$NYgNwjL!C0J2f#qXg8kV`c#<@Jw z6z;ZzlB>z~s#^vJ)C>x;wq+1N1Y*uZb1d5j@granH(N+c+T{4; zIkBY4(3T=k;!90dR{GG$yoNCYhc4&a9HIh9;OV?6UyCT#S@ zy0l#t+i1mmhOq1ha7&Yi++tNnFAX;t#XNC$>!m=^__lUTJa9m|B??9`GbqiDjs%87 zD53MaE?M($&eTDmV-+aAd>>!2bY+`VwrMuic!FUN?k^35?_@4UTTNaoLDgigou{p4 z&D(3)knbSMA)Cq%DbxhLEvO!fXFT!)y2T16r;z`cQiHO$9 z=Sea}wQvWFeG4|w3!=tsj^a`_;lmmGk&1$Io{V;8byx~^`&koq(m7}n4Hun8>W%A9 zUnB9=cG!hQqGiL#l)nh9Vbl&f7!DWPl&m&G_yr-C?m|R2O)=P%14Knf6hzCE^v<%K zL>O8!V?`K`KezfqIq^w(`ZGBoxJa_v5SiYvd2_KM%1D*#4Ox2ix{$?BwAc>cs(oj!UjsXFG!ch^fU zdO~ZwrJ>g?>zuzl_4~s!NPk73Q&|Atq~VF)8^_k%@e10O--11&|N9cczGr|gXAo|< z%EM1RZy9TpEihHHqsBC#M1VE+KBqDV3YCyEoSfi_VrHrQ_dX(rgO3@M$OwE=V3_@Ur*!xjb8xBf zEmZ=L3LVUb;ccnwerDy+*BD`QMm2QV_9z=PliX98W;xgNAxNDK>Xi6T zwunoTdAhJ37z>QbVoS1awWzP7QQS45wl(ztiu_DBR09UW>(?ZdXhT=x5d3QBm{aB= zLDfDbnWoAeD%3)=Ztr6w#@x*$$3QG(M_}d9V8ja8C11~th8FLo>kIsuZYkFs2e2+p zQ)i`dH6e351geTbJN=G*dP5)jS}BIA zW%*wnJ-&2#c+`D71p>*#(aSnKGRX?@`ZcdMs-Y6fxF0#8?2S5dpF6VG{irxnSVQEw z?jUeedz0kv#LuFGTvODI1h(vVULCFAQ{O3LQ%L1tIa2Qun1ko93(H=3%w^zIM>kjO z=q-LeIW3Ujz@=NVukQPuJMaL>YfQzj)kBNcL7qrT+I=_b`oQ)*pWL$Q3u~vSN{1qE zKo2di8cg-W9O8Z z^xMp1RP1v_n+HGpZ)v`#4-2!(u9BN{U8?((_gsU0_SwFmb9QIEC`asGI$}&wEwVE( z$nx>k|E`(?7>`#=yd9j0@&VilfZc{((R% zn>GEhocVQxP9>#*M`3Q;TA|WZ6bA7vU5m9ZtHOn{Jvc5zGSJXB8gJ-UByFX-2Yq|# zqdt|KMf~;~WX;&T?~4GWbrnFw$#XOxRvW%VjwCl)Qdg+cFaRI}9}-gr#WZQ`d>v3Ze#!4Cy4C6MK8S@&NYF@o;O!A-y7 zepBjBZtXX_SIyy=_6o)}aFP250g?r>(-H~ZFPK#hwkynL^m#^M1c+G}?Q75FYF;jr zj_2DCeUW4tV_6ZkoyoBrOIjLt#JndNTyIa>0p>4tPAq(=7EqZq%^dK9bb7F;vN944 zAV*=nzB~-bXg3+nixj$L;qfzjf<}PR5J`Pi|;`s4AVsV0BAg2d}f6J9Dt|AT)IVMCb zVezk`rO4ohOtNe`+zzuD!lYRrZ7?gT9V9rP+mqcKxHNeAF3K<3g}LxA-;fjG7cnGK ze8n}rSt@mX@aIQa%U>Coph~b5mDDYf+VPN2eMp}K?Sh%2FXz>$52F%FfOqeQPd(~> zCN!WD+l&!5e$n<8TUHa%?V)tuUSQuqe?CUyK^? z>e`tADF8f#0j0UG^Q&f?61K#V5)YqBp$||PGAXpuNU*6V=hAo^#Hes5`AeqLDn>CM zZQqlKCLg~>4S(siD*8MoxMLtVtScXD*z(J#9>`D1euerl8E$smp?_L5SaP?4=Q1%m zTYwFGdOnEDzZ|p`7=Qld{>3L<*mT~8U~0{iaQZG!PI!{r)65HVCxVxQTHW$;J}vea z1`K`#7PXvayVP`!glUq7+be(cDY5b;3sO+MtJBDibMM07I^RTuR}Xa&N$*Jsza9{{ zJS)L}{$3@c&BP5gEnUlu|2z?muzM;}WxXA&6-F}eE2k~kZ^AV1HngJjy7Sqo_S35R zCn>*Br>ge+dj2Kl1HJHs_r`g@RcRSe;<{ZpC709GY`aM!k`fXuDP~8m|NFbQ)Tg2s zF&%OdEgC9m?PlK5de=w09wNM~qHzC*&1XHF1B|}Xxk;!F#ox z^{C0A)036Xt248YxQs}KUm!O)}9dn9z$8)5Yg_KIT% zn)eyb5tWk|bDFf;T3;^>T|jEu=R+|h&y_s1XQ#ENh>;sWjpoT^6D?Yb-&f_K+EK&| z&t>RN0qgeTG6PXmzJD|?-bB@NraBizjkYkioSaD^vPMGoafz>|2q!&W)nm*EXWXSd zvKpCo791ASxyl_03HY)5rML~DyWE}=cd?t~SN=g84STVkH$vDU*{jodb@wu%%fRDW zHf)nM6<{^h*4Q;m(;QqHNf7zE@$6$Bd$)F63O4+6(CA;)6M$8?&btF%S^BvZE+111 zq`D(HZH&vE2!p(dhS%OB%;>zIq%)~XzN(36czAojDW}g{4XRjU2+Hy4n>|>&qESIc zoyGKtodkpSuvs16mSWKB$mI}14}E-@YC1*wvHowF&c8l^E|vhG zmp0Wj9CB5&&-I6-m89R^CRwphhPD1zwHgTfqLg=AJW^~qDDmws>3l|SDr8h7w0KEd zl1?Ld?}{(dy|Obv!?1ImDem4u`5i87DR2*wOVi^T%zfUo2n$zs(7Y_5d!0*gEmfKb zimzM|L_+%$rE}^xWF)dH347dMj}d5`>bj-S@sX$M(gYW+-Kbk+6JmD0f8a2Ea}|xS zKI!zg{K}u7d1p>9j==Q%|ETLr|GtB<{|!I?ub+u7NB;TmUDsuP4zx*J#C-<*owIkf KW7u5y$NvI(IiJV? literal 0 HcmV?d00001 diff --git a/user/plugins/feed/blueprints.yaml b/user/plugins/feed/blueprints.yaml new file mode 100644 index 0000000..9d99c83 --- /dev/null +++ b/user/plugins/feed/blueprints.yaml @@ -0,0 +1,78 @@ +name: Feed +type: plugin +slug: feed +version: 1.8.5 +description: The **Feed** plugin is a simple yet powerful add-on that lets you view a Grav Collection as **JSON**, **RSS** or **Atom** news feed. +icon: rss +author: + name: Team Grav + email: devs@getgrav.org + url: http://getgrav.org +homepage: https://github.com/getgrav/grav-plugin-feed +demo: http://demo.getgrav.org/blog-skeleton +keywords: feed, plugin, rss, atom, collection, json +bugs: https://github.com/getgrav/grav-plugin-feed/issues +license: MIT +dependencies: + - { name: grav, version: '>=1.6.0' } + +form: + validation: strict + fields: + enabled: + type: toggle + label: Plugin status + highlight: 1 + default: 0 + options: + 1: Enabled + 0: Disabled + validate: + type: bool + + limit: + type: range + label: Feed count + validate: + type: number + min: 10 + max: 1000 + + title: + type: text + label: Title + + description: + type: textarea + label: Description + + length: + type: range + label: Feed Length (0 for full-text feed) + validate: + type: number + min: 0 + max: 10000 + + enable_json_feed: + type: toggle + label: JSON feed support + highlight: 0 + default: 0 + options: + 1: Enabled + 0: Disabled + validate: + type: bool + + show_last_modified: + type: toggle + label: Show last modified date + help: If enabled, file modification date will be used for computing "last updated" times in feeds + highlight: 0 + default: 0 + options: + 1: Enabled + 0: Disabled + validate: + type: bool diff --git a/user/plugins/feed/blueprints/feed.yaml b/user/plugins/feed/blueprints/feed.yaml new file mode 100644 index 0000000..1269f39 --- /dev/null +++ b/user/plugins/feed/blueprints/feed.yaml @@ -0,0 +1,22 @@ +form: + fields: + tabs: + fields: + blog: + type: tab + + fields: + header.feed.limit: + type: text + label: Feed count + default: 10 + validate: + type: int + + header.feed.title: + type: text + label: Feed title + + header.feed.description: + type: text + label: Feed description diff --git a/user/plugins/feed/composer.json b/user/plugins/feed/composer.json new file mode 100644 index 0000000..c09e395 --- /dev/null +++ b/user/plugins/feed/composer.json @@ -0,0 +1,36 @@ +{ + "name": "getgrav/grav-plugin-feed", + "type": "grav-plugin", + "description": "Feed plugin for Grav CMS", + "keywords": ["feed", "plugin"], + "homepage": "https://github.com/getgrav/grav-plugin-feed", + "license": "MIT", + "authors": [ + { + "name": "Team Grav", + "email": "devs@getgrav.org", + "homepage": "https://getgrav.org", + "role": "Developer" + } + ], + "support": { + "issues": "https://github.com/getgrav/grav-plugin-feed/issues", + "irc": "https://chat.getgrav.org", + "forum": "https://getgrav.org/forum", + "docs": "https://github.com/getgrav/grav-plugin-feed/blob/master/README.md" + }, + "autoload": { + "classmap": [ + "feed.php" + ] + }, + "config": { + "platform": { + "php": "7.1.3" + } + }, + "scripts": { + "test": "vendor/bin/codecept run unit", + "test-windows": "vendor\\bin\\codecept run unit" + } +} diff --git a/user/plugins/feed/composer.lock b/user/plugins/feed/composer.lock new file mode 100644 index 0000000..26adc9c --- /dev/null +++ b/user/plugins/feed/composer.lock @@ -0,0 +1,21 @@ +{ + "_readme": [ + "This file locks the dependencies of your project to a known state", + "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies", + "This file is @generated automatically" + ], + "content-hash": "76fd53c3c430250c751e8cb0d82e5308", + "packages": [], + "packages-dev": [], + "aliases": [], + "minimum-stability": "stable", + "stability-flags": [], + "prefer-stable": false, + "prefer-lowest": false, + "platform": [], + "platform-dev": [], + "platform-overrides": { + "php": "7.1.3" + }, + "plugin-api-version": "2.0.0" +} diff --git a/user/plugins/feed/feed.php b/user/plugins/feed/feed.php new file mode 100644 index 0000000..f89fafd --- /dev/null +++ b/user/plugins/feed/feed.php @@ -0,0 +1,162 @@ + [ + ['autoload', 100000], + ['onPluginsInitialized', 0], + ], + 'onBlueprintCreated' => ['onBlueprintCreated', 0] + ]; + } + + /** + * [onPluginsInitialized:100000] Composer autoload. + * + * @return ClassLoader + */ + public function autoload() + { + return require __DIR__ . '/vendor/autoload.php'; + } + + /** + * Activate feed plugin only if feed was requested for the current page. + * + * Also disables debugger. + */ + public function onPluginsInitialized() + { + if ($this->isAdmin()) { + return; + } + + $this->feed_config = (array) $this->config->get('plugins.feed'); + + if ($this->feed_config['enable_json_feed']) { + $this->valid_types[] = 'json'; + } + + /** @var Uri $uri */ + $uri = $this->grav['uri']; + $this->type = $uri->extension(); + + if ($this->type && in_array($this->type, $this->valid_types)) { + + $this->enable([ + 'onPageInitialized' => ['onPageInitialized', 0], + 'onTwigTemplatePaths' => ['onTwigTemplatePaths', 0], + ]); + } + } + + /** + * Initialize feed configuration. + */ + public function onPageInitialized() + { + $page = $this->grav['page']; + + // Overwrite regular content with feed config, so you can influence the collection processing with feed config + if (property_exists($page->header(), 'content')) { + if (isset($page->header()->feed)) { + $this->feed_config = array_merge($this->feed_config, $page->header()->feed); + } + + $page->header()->content = array_merge($page->header()->content, $this->feed_config); + + $this->grav['twig']->template = 'feed.' . $this->type . '.twig'; + + $this->enable([ + 'onCollectionProcessed' => ['onCollectionProcessed', 0], + ]); + } + + } + + /** + * Feed consists of all sub-pages. + * + * @param Event $event + */ + public function onCollectionProcessed(Event $event) + { + /** @var Collection $collection */ + $collection = $event['collection']->nonModular(); + + foreach ($collection as $slug => $page) { + $header = $page->header(); + if (isset($header->feed) && !empty($header->feed['skip'])) { + $collection->remove($page); + } + } + } + + /** + * Add current directory to twig lookup paths. + */ + public function onTwigTemplatePaths() + { + $this->grav['twig']->twig_paths[] = __DIR__ . '/templates'; + } + + + /** + * Extend page blueprints with feed configuration options. + * + * @param Event $event + */ + public function onBlueprintCreated(Event $event) + { + static $inEvent = false; + + /** @var Data\Blueprint $blueprint */ + $blueprint = $event['blueprint']; + $form = $blueprint->form(); + + $blog_tab_exists = isset($form['fields']['tabs']['fields']['blog']); + + if (!$inEvent && $blog_tab_exists) { + $inEvent = true; + $blueprints = new Data\Blueprints(__DIR__ . '/blueprints/'); + $extends = $blueprints->get('feed'); + $blueprint->extend($extends, true); + $inEvent = false; + } + } +} \ No newline at end of file diff --git a/user/plugins/feed/feed.yaml b/user/plugins/feed/feed.yaml new file mode 100644 index 0000000..c998a44 --- /dev/null +++ b/user/plugins/feed/feed.yaml @@ -0,0 +1,7 @@ +enabled: true +limit: 10 +title: 'My Feed Title' +description: 'My Feed Description' +length: 500 +enable_json_feed: false +show_last_modified: false diff --git a/user/plugins/feed/hebe.json b/user/plugins/feed/hebe.json new file mode 100644 index 0000000..e25c39f --- /dev/null +++ b/user/plugins/feed/hebe.json @@ -0,0 +1,15 @@ +{ + "project":"grav-plugin-feed", + "platforms":{ + "grav":{ + "nodes":{ + "plugin":[ + { + "source":"/", + "destination":"/user/plugins/feed" + } + ] + } + } + } +} diff --git a/user/plugins/feed/templates/feed.atom.twig b/user/plugins/feed/templates/feed.atom.twig new file mode 100644 index 0000000..0d63a45 --- /dev/null +++ b/user/plugins/feed/templates/feed.atom.twig @@ -0,0 +1,45 @@ +{# Format specification: https://tools.ietf.org/html/rfc4287 #} +{% set collection = collection|default(page.collection) %} +{% set feed_updated = 0 %} +{% for page in collection %} + {%- set feed_updated = max(feed_updated, page.date) %} + {%- if collection.params.show_last_modified %} + {%- set feed_updated = max(feed_updated, page.modified) %} + {%- endif %} +{% endfor %} + + + {{ collection.params.title }} + + {{ collection.params.description }} + {{ feed_updated|date("Y-m-d\\TH:i:sP") }} + + {{ site.author.name }} + + {{ page.url(true) }} + {% for item in collection %} + {% set banner = item.media.images|first %} + + {{ item.title|e }} + {{ item.url(true) }} + {% if collection.params.show_last_modified %} + {{ item.modified|date("Y-m-d\\TH:i:sP") }} + {% else %} + {{ item.date|date("Y-m-d\\TH:i:sP") }} + {% endif %} + {{ item.date|date("Y-m-d\\TH:i:sP") }} + + {% for tag in item.taxonomy.tag %} + + {% endfor %} + + + + + {% endfor %} + diff --git a/user/plugins/feed/templates/feed.json.twig b/user/plugins/feed/templates/feed.json.twig new file mode 100644 index 0000000..c50adbc --- /dev/null +++ b/user/plugins/feed/templates/feed.json.twig @@ -0,0 +1,43 @@ +{# Format specification: https://www.jsonfeed.org/version/1/ #} +{% set collection = collection|default(page.collection) %} +{% set jsonfeed = { + "version" : "https://jsonfeed.org/version/1", + "title": collection.params.title, + "home_page_url": page.url(true), + "feed_url": uri.rootUrl(true)~uri.uri(), + "description": collection.params.description, + "author": {"name": site.author.name} +} %} + +{% set itemList = [] %} +{% for item in collection %} + {%- set post = { + "title": item.title|e, + "date_published": item.date|date('Y-m-d\\TH:i:sP'), + "id": item.url(true), + "url": item.url(true), + "content_html": item.content|safe_truncate_html(collection.params.length) + } %} + {% set banner = item.media.images|first %} + + {% if item.header.metadata.description %} + {%- set post = post|merge({"summary": item.header.metadata.description|e}) %} + {% endif %} + + {% if collection.params.show_last_modified %} + {%- set post = post|merge({"date_modified": item.modified|date('Y-m-d\\TH:i:sP')}) %} + {% endif %} + + {% if item.taxonomy.tag %} + {%- set post = post|merge({"tags": item.taxonomy.tag}) %} + {% endif %} + + {% set image = item.media.images|first %} + {% if image %} + {%- set post = post|merge({"image": image.url(true)}) %} + {% endif %} + {%- set itemList = itemList|merge([post]) %} +{% endfor %} + +{% set jsonfeed = jsonfeed|merge({"items": itemList}) %} +{{- jsonfeed|json_encode|raw }} diff --git a/user/plugins/feed/templates/feed.rss.twig b/user/plugins/feed/templates/feed.rss.twig new file mode 100644 index 0000000..c2000b5 --- /dev/null +++ b/user/plugins/feed/templates/feed.rss.twig @@ -0,0 +1,40 @@ +{# Format specification: https://www.rssboard.org/rss-specification #} +{% set collection = collection|default(page.collection) %} +{% set lastBuildDate = 0 %} +{% for page in collection %} + {%- set lastBuildDate = max(lastBuildDate, page.date) %} + {%- if collection.params.show_last_modified %} + {%- set lastBuildDate = max(feed_updated, page.modified) %} + {%- endif %} +{% endfor %} + + + + {{ collection.params.title }} + {{ page.url(true) }} + + {{ collection.params.description }} + {{ grav.language.getLanguage|default(config.system.language.default_lang)|default('en') }} + {{ lastBuildDate|date('D, d M Y H:i:s O') }} + {% for item in collection %} + {% set banner = item.media.images|first %} + + {{ item.title|e }} + {{ item.url(true) }} + {{ item.url(true) }} + {{ item.date|date('D, d M Y H:i:s O') }} + + + + {% for tag in item.taxonomy.tag %} + {{ tag|e }} + {% endfor %} + + {% endfor %} + + diff --git a/user/plugins/feed/vendor/autoload.php b/user/plugins/feed/vendor/autoload.php new file mode 100644 index 0000000..7273375 --- /dev/null +++ b/user/plugins/feed/vendor/autoload.php @@ -0,0 +1,7 @@ + + * Jordi Boggiano + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Composer\Autoload; + +/** + * ClassLoader implements a PSR-0, PSR-4 and classmap class loader. + * + * $loader = new \Composer\Autoload\ClassLoader(); + * + * // register classes with namespaces + * $loader->add('Symfony\Component', __DIR__.'/component'); + * $loader->add('Symfony', __DIR__.'/framework'); + * + * // activate the autoloader + * $loader->register(); + * + * // to enable searching the include path (eg. for PEAR packages) + * $loader->setUseIncludePath(true); + * + * In this example, if you try to use a class in the Symfony\Component + * namespace or one of its children (Symfony\Component\Console for instance), + * the autoloader will first look for the class under the component/ + * directory, and it will then fallback to the framework/ directory if not + * found before giving up. + * + * This class is loosely based on the Symfony UniversalClassLoader. + * + * @author Fabien Potencier + * @author Jordi Boggiano + * @see https://www.php-fig.org/psr/psr-0/ + * @see https://www.php-fig.org/psr/psr-4/ + */ +class ClassLoader +{ + // PSR-4 + private $prefixLengthsPsr4 = array(); + private $prefixDirsPsr4 = array(); + private $fallbackDirsPsr4 = array(); + + // PSR-0 + private $prefixesPsr0 = array(); + private $fallbackDirsPsr0 = array(); + + private $useIncludePath = false; + private $classMap = array(); + private $classMapAuthoritative = false; + private $missingClasses = array(); + private $apcuPrefix; + + public function getPrefixes() + { + if (!empty($this->prefixesPsr0)) { + return call_user_func_array('array_merge', array_values($this->prefixesPsr0)); + } + + return array(); + } + + public function getPrefixesPsr4() + { + return $this->prefixDirsPsr4; + } + + public function getFallbackDirs() + { + return $this->fallbackDirsPsr0; + } + + public function getFallbackDirsPsr4() + { + return $this->fallbackDirsPsr4; + } + + public function getClassMap() + { + return $this->classMap; + } + + /** + * @param array $classMap Class to filename map + */ + public function addClassMap(array $classMap) + { + if ($this->classMap) { + $this->classMap = array_merge($this->classMap, $classMap); + } else { + $this->classMap = $classMap; + } + } + + /** + * Registers a set of PSR-0 directories for a given prefix, either + * appending or prepending to the ones previously set for this prefix. + * + * @param string $prefix The prefix + * @param array|string $paths The PSR-0 root directories + * @param bool $prepend Whether to prepend the directories + */ + public function add($prefix, $paths, $prepend = false) + { + if (!$prefix) { + if ($prepend) { + $this->fallbackDirsPsr0 = array_merge( + (array) $paths, + $this->fallbackDirsPsr0 + ); + } else { + $this->fallbackDirsPsr0 = array_merge( + $this->fallbackDirsPsr0, + (array) $paths + ); + } + + return; + } + + $first = $prefix[0]; + if (!isset($this->prefixesPsr0[$first][$prefix])) { + $this->prefixesPsr0[$first][$prefix] = (array) $paths; + + return; + } + if ($prepend) { + $this->prefixesPsr0[$first][$prefix] = array_merge( + (array) $paths, + $this->prefixesPsr0[$first][$prefix] + ); + } else { + $this->prefixesPsr0[$first][$prefix] = array_merge( + $this->prefixesPsr0[$first][$prefix], + (array) $paths + ); + } + } + + /** + * Registers a set of PSR-4 directories for a given namespace, either + * appending or prepending to the ones previously set for this namespace. + * + * @param string $prefix The prefix/namespace, with trailing '\\' + * @param array|string $paths The PSR-4 base directories + * @param bool $prepend Whether to prepend the directories + * + * @throws \InvalidArgumentException + */ + public function addPsr4($prefix, $paths, $prepend = false) + { + if (!$prefix) { + // Register directories for the root namespace. + if ($prepend) { + $this->fallbackDirsPsr4 = array_merge( + (array) $paths, + $this->fallbackDirsPsr4 + ); + } else { + $this->fallbackDirsPsr4 = array_merge( + $this->fallbackDirsPsr4, + (array) $paths + ); + } + } elseif (!isset($this->prefixDirsPsr4[$prefix])) { + // Register directories for a new namespace. + $length = strlen($prefix); + if ('\\' !== $prefix[$length - 1]) { + throw new \InvalidArgumentException("A non-empty PSR-4 prefix must end with a namespace separator."); + } + $this->prefixLengthsPsr4[$prefix[0]][$prefix] = $length; + $this->prefixDirsPsr4[$prefix] = (array) $paths; + } elseif ($prepend) { + // Prepend directories for an already registered namespace. + $this->prefixDirsPsr4[$prefix] = array_merge( + (array) $paths, + $this->prefixDirsPsr4[$prefix] + ); + } else { + // Append directories for an already registered namespace. + $this->prefixDirsPsr4[$prefix] = array_merge( + $this->prefixDirsPsr4[$prefix], + (array) $paths + ); + } + } + + /** + * Registers a set of PSR-0 directories for a given prefix, + * replacing any others previously set for this prefix. + * + * @param string $prefix The prefix + * @param array|string $paths The PSR-0 base directories + */ + public function set($prefix, $paths) + { + if (!$prefix) { + $this->fallbackDirsPsr0 = (array) $paths; + } else { + $this->prefixesPsr0[$prefix[0]][$prefix] = (array) $paths; + } + } + + /** + * Registers a set of PSR-4 directories for a given namespace, + * replacing any others previously set for this namespace. + * + * @param string $prefix The prefix/namespace, with trailing '\\' + * @param array|string $paths The PSR-4 base directories + * + * @throws \InvalidArgumentException + */ + public function setPsr4($prefix, $paths) + { + if (!$prefix) { + $this->fallbackDirsPsr4 = (array) $paths; + } else { + $length = strlen($prefix); + if ('\\' !== $prefix[$length - 1]) { + throw new \InvalidArgumentException("A non-empty PSR-4 prefix must end with a namespace separator."); + } + $this->prefixLengthsPsr4[$prefix[0]][$prefix] = $length; + $this->prefixDirsPsr4[$prefix] = (array) $paths; + } + } + + /** + * Turns on searching the include path for class files. + * + * @param bool $useIncludePath + */ + public function setUseIncludePath($useIncludePath) + { + $this->useIncludePath = $useIncludePath; + } + + /** + * Can be used to check if the autoloader uses the include path to check + * for classes. + * + * @return bool + */ + public function getUseIncludePath() + { + return $this->useIncludePath; + } + + /** + * Turns off searching the prefix and fallback directories for classes + * that have not been registered with the class map. + * + * @param bool $classMapAuthoritative + */ + public function setClassMapAuthoritative($classMapAuthoritative) + { + $this->classMapAuthoritative = $classMapAuthoritative; + } + + /** + * Should class lookup fail if not found in the current class map? + * + * @return bool + */ + public function isClassMapAuthoritative() + { + return $this->classMapAuthoritative; + } + + /** + * APCu prefix to use to cache found/not-found classes, if the extension is enabled. + * + * @param string|null $apcuPrefix + */ + public function setApcuPrefix($apcuPrefix) + { + $this->apcuPrefix = function_exists('apcu_fetch') && filter_var(ini_get('apc.enabled'), FILTER_VALIDATE_BOOLEAN) ? $apcuPrefix : null; + } + + /** + * The APCu prefix in use, or null if APCu caching is not enabled. + * + * @return string|null + */ + public function getApcuPrefix() + { + return $this->apcuPrefix; + } + + /** + * Registers this instance as an autoloader. + * + * @param bool $prepend Whether to prepend the autoloader or not + */ + public function register($prepend = false) + { + spl_autoload_register(array($this, 'loadClass'), true, $prepend); + } + + /** + * Unregisters this instance as an autoloader. + */ + public function unregister() + { + spl_autoload_unregister(array($this, 'loadClass')); + } + + /** + * Loads the given class or interface. + * + * @param string $class The name of the class + * @return bool|null True if loaded, null otherwise + */ + public function loadClass($class) + { + if ($file = $this->findFile($class)) { + includeFile($file); + + return true; + } + } + + /** + * Finds the path to the file where the class is defined. + * + * @param string $class The name of the class + * + * @return string|false The path if found, false otherwise + */ + public function findFile($class) + { + // class map lookup + if (isset($this->classMap[$class])) { + return $this->classMap[$class]; + } + if ($this->classMapAuthoritative || isset($this->missingClasses[$class])) { + return false; + } + if (null !== $this->apcuPrefix) { + $file = apcu_fetch($this->apcuPrefix.$class, $hit); + if ($hit) { + return $file; + } + } + + $file = $this->findFileWithExtension($class, '.php'); + + // Search for Hack files if we are running on HHVM + if (false === $file && defined('HHVM_VERSION')) { + $file = $this->findFileWithExtension($class, '.hh'); + } + + if (null !== $this->apcuPrefix) { + apcu_add($this->apcuPrefix.$class, $file); + } + + if (false === $file) { + // Remember that this class does not exist. + $this->missingClasses[$class] = true; + } + + return $file; + } + + private function findFileWithExtension($class, $ext) + { + // PSR-4 lookup + $logicalPathPsr4 = strtr($class, '\\', DIRECTORY_SEPARATOR) . $ext; + + $first = $class[0]; + if (isset($this->prefixLengthsPsr4[$first])) { + $subPath = $class; + while (false !== $lastPos = strrpos($subPath, '\\')) { + $subPath = substr($subPath, 0, $lastPos); + $search = $subPath . '\\'; + if (isset($this->prefixDirsPsr4[$search])) { + $pathEnd = DIRECTORY_SEPARATOR . substr($logicalPathPsr4, $lastPos + 1); + foreach ($this->prefixDirsPsr4[$search] as $dir) { + if (file_exists($file = $dir . $pathEnd)) { + return $file; + } + } + } + } + } + + // PSR-4 fallback dirs + foreach ($this->fallbackDirsPsr4 as $dir) { + if (file_exists($file = $dir . DIRECTORY_SEPARATOR . $logicalPathPsr4)) { + return $file; + } + } + + // PSR-0 lookup + if (false !== $pos = strrpos($class, '\\')) { + // namespaced class name + $logicalPathPsr0 = substr($logicalPathPsr4, 0, $pos + 1) + . strtr(substr($logicalPathPsr4, $pos + 1), '_', DIRECTORY_SEPARATOR); + } else { + // PEAR-like class name + $logicalPathPsr0 = strtr($class, '_', DIRECTORY_SEPARATOR) . $ext; + } + + if (isset($this->prefixesPsr0[$first])) { + foreach ($this->prefixesPsr0[$first] as $prefix => $dirs) { + if (0 === strpos($class, $prefix)) { + foreach ($dirs as $dir) { + if (file_exists($file = $dir . DIRECTORY_SEPARATOR . $logicalPathPsr0)) { + return $file; + } + } + } + } + } + + // PSR-0 fallback dirs + foreach ($this->fallbackDirsPsr0 as $dir) { + if (file_exists($file = $dir . DIRECTORY_SEPARATOR . $logicalPathPsr0)) { + return $file; + } + } + + // PSR-0 include paths. + if ($this->useIncludePath && $file = stream_resolve_include_path($logicalPathPsr0)) { + return $file; + } + + return false; + } +} + +/** + * Scope isolated include. + * + * Prevents access to $this/self from included files. + */ +function includeFile($file) +{ + include $file; +} diff --git a/user/plugins/feed/vendor/composer/InstalledVersions.php b/user/plugins/feed/vendor/composer/InstalledVersions.php new file mode 100644 index 0000000..0766f58 --- /dev/null +++ b/user/plugins/feed/vendor/composer/InstalledVersions.php @@ -0,0 +1,209 @@ + + array ( + 'pretty_version' => 'dev-develop', + 'version' => 'dev-develop', + 'aliases' => + array ( + ), + 'reference' => '8f9e4fdbb1ae743f788767897571f175fcdc4e27', + 'name' => 'getgrav/grav-plugin-feed', + ), + 'versions' => + array ( + 'getgrav/grav-plugin-feed' => + array ( + 'pretty_version' => 'dev-develop', + 'version' => 'dev-develop', + 'aliases' => + array ( + ), + 'reference' => '8f9e4fdbb1ae743f788767897571f175fcdc4e27', + ), + ), +); + + + + + + + +public static function getInstalledPackages() +{ +return array_keys(self::$installed['versions']); +} + + + + + + + + + +public static function isInstalled($packageName) +{ +return isset(self::$installed['versions'][$packageName]); +} + + + + + + + + + + + + + + +public static function satisfies(VersionParser $parser, $packageName, $constraint) +{ +$constraint = $parser->parseConstraints($constraint); +$provided = $parser->parseConstraints(self::getVersionRanges($packageName)); + +return $provided->matches($constraint); +} + + + + + + + + + + +public static function getVersionRanges($packageName) +{ +if (!isset(self::$installed['versions'][$packageName])) { +throw new \OutOfBoundsException('Package "' . $packageName . '" is not installed'); +} + +$ranges = array(); +if (isset(self::$installed['versions'][$packageName]['pretty_version'])) { +$ranges[] = self::$installed['versions'][$packageName]['pretty_version']; +} +if (array_key_exists('aliases', self::$installed['versions'][$packageName])) { +$ranges = array_merge($ranges, self::$installed['versions'][$packageName]['aliases']); +} +if (array_key_exists('replaced', self::$installed['versions'][$packageName])) { +$ranges = array_merge($ranges, self::$installed['versions'][$packageName]['replaced']); +} +if (array_key_exists('provided', self::$installed['versions'][$packageName])) { +$ranges = array_merge($ranges, self::$installed['versions'][$packageName]['provided']); +} + +return implode(' || ', $ranges); +} + + + + + +public static function getVersion($packageName) +{ +if (!isset(self::$installed['versions'][$packageName])) { +throw new \OutOfBoundsException('Package "' . $packageName . '" is not installed'); +} + +if (!isset(self::$installed['versions'][$packageName]['version'])) { +return null; +} + +return self::$installed['versions'][$packageName]['version']; +} + + + + + +public static function getPrettyVersion($packageName) +{ +if (!isset(self::$installed['versions'][$packageName])) { +throw new \OutOfBoundsException('Package "' . $packageName . '" is not installed'); +} + +if (!isset(self::$installed['versions'][$packageName]['pretty_version'])) { +return null; +} + +return self::$installed['versions'][$packageName]['pretty_version']; +} + + + + + +public static function getReference($packageName) +{ +if (!isset(self::$installed['versions'][$packageName])) { +throw new \OutOfBoundsException('Package "' . $packageName . '" is not installed'); +} + +if (!isset(self::$installed['versions'][$packageName]['reference'])) { +return null; +} + +return self::$installed['versions'][$packageName]['reference']; +} + + + + + +public static function getRootPackage() +{ +return self::$installed['root']; +} + + + + + + + +public static function getRawData() +{ +return self::$installed; +} + + + + + + + + + + + + + + + + + + + +public static function reload($data) +{ +self::$installed = $data; +} +} diff --git a/user/plugins/feed/vendor/composer/LICENSE b/user/plugins/feed/vendor/composer/LICENSE new file mode 100644 index 0000000..f27399a --- /dev/null +++ b/user/plugins/feed/vendor/composer/LICENSE @@ -0,0 +1,21 @@ + +Copyright (c) Nils Adermann, Jordi Boggiano + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is furnished +to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. + diff --git a/user/plugins/feed/vendor/composer/autoload_classmap.php b/user/plugins/feed/vendor/composer/autoload_classmap.php new file mode 100644 index 0000000..235977e --- /dev/null +++ b/user/plugins/feed/vendor/composer/autoload_classmap.php @@ -0,0 +1,11 @@ + $vendorDir . '/composer/InstalledVersions.php', + 'Grav\\Plugin\\FeedPlugin' => $baseDir . '/feed.php', +); diff --git a/user/plugins/feed/vendor/composer/autoload_namespaces.php b/user/plugins/feed/vendor/composer/autoload_namespaces.php new file mode 100644 index 0000000..b7fc012 --- /dev/null +++ b/user/plugins/feed/vendor/composer/autoload_namespaces.php @@ -0,0 +1,9 @@ += 50600 && !defined('HHVM_VERSION') && (!function_exists('zend_loader_file_encoded') || !zend_loader_file_encoded()); + if ($useStaticLoader) { + require __DIR__ . '/autoload_static.php'; + + call_user_func(\Composer\Autoload\ComposerStaticInitd512066232734940b99b34ad4f8603bc::getInitializer($loader)); + } else { + $map = require __DIR__ . '/autoload_namespaces.php'; + foreach ($map as $namespace => $path) { + $loader->set($namespace, $path); + } + + $map = require __DIR__ . '/autoload_psr4.php'; + foreach ($map as $namespace => $path) { + $loader->setPsr4($namespace, $path); + } + + $classMap = require __DIR__ . '/autoload_classmap.php'; + if ($classMap) { + $loader->addClassMap($classMap); + } + } + + $loader->register(true); + + return $loader; + } +} diff --git a/user/plugins/feed/vendor/composer/autoload_static.php b/user/plugins/feed/vendor/composer/autoload_static.php new file mode 100644 index 0000000..0a7962c --- /dev/null +++ b/user/plugins/feed/vendor/composer/autoload_static.php @@ -0,0 +1,21 @@ + __DIR__ . '/..' . '/composer/InstalledVersions.php', + 'Grav\\Plugin\\FeedPlugin' => __DIR__ . '/../..' . '/feed.php', + ); + + public static function getInitializer(ClassLoader $loader) + { + return \Closure::bind(function () use ($loader) { + $loader->classMap = ComposerStaticInitd512066232734940b99b34ad4f8603bc::$classMap; + + }, null, ClassLoader::class); + } +} diff --git a/user/plugins/feed/vendor/composer/installed.json b/user/plugins/feed/vendor/composer/installed.json new file mode 100644 index 0000000..87fda74 --- /dev/null +++ b/user/plugins/feed/vendor/composer/installed.json @@ -0,0 +1,5 @@ +{ + "packages": [], + "dev": true, + "dev-package-names": [] +} diff --git a/user/plugins/feed/vendor/composer/installed.php b/user/plugins/feed/vendor/composer/installed.php new file mode 100644 index 0000000..987a994 --- /dev/null +++ b/user/plugins/feed/vendor/composer/installed.php @@ -0,0 +1,24 @@ + + array ( + 'pretty_version' => 'dev-develop', + 'version' => 'dev-develop', + 'aliases' => + array ( + ), + 'reference' => '8f9e4fdbb1ae743f788767897571f175fcdc4e27', + 'name' => 'getgrav/grav-plugin-feed', + ), + 'versions' => + array ( + 'getgrav/grav-plugin-feed' => + array ( + 'pretty_version' => 'dev-develop', + 'version' => 'dev-develop', + 'aliases' => + array ( + ), + 'reference' => '8f9e4fdbb1ae743f788767897571f175fcdc4e27', + ), + ), +); diff --git a/user/plugins/flex-objects/.eslintrc b/user/plugins/flex-objects/.eslintrc new file mode 100644 index 0000000..e62c1d5 --- /dev/null +++ b/user/plugins/flex-objects/.eslintrc @@ -0,0 +1,170 @@ +{ + "root": true, + "env": { + "browser": true, + "node": true, + "es6": true + }, + + "parser": "@babel/eslint-parser", + + "parserOptions": { + "ecmaVersion": 7, + "sourceType": "module", + "requireConfigFile": false + }, + + "rules": { + "accessor-pairs": 2, + "array-bracket-spacing": 0, + "block-scoped-var": 0, + "brace-style": [2, "1tbs", { "allowSingleLine": true }], + "camelcase": 0, + "comma-dangle": [2, "never"], + "comma-spacing": [2, { "before": false, "after": true }], + "comma-style": [2, "last"], + "complexity": 0, + "computed-property-spacing": 0, + "consistent-return": 0, + "consistent-this": 0, + "constructor-super": 2, + "curly": [2, "multi-line"], + "default-case": 0, + "dot-location": [2, "property"], + "dot-notation": 0, + "eol-last": 2, + "eqeqeq": [2, "allow-null"], + "func-names": 0, + "func-style": 0, + "generator-star-spacing": [2, { "before": true, "after": true }], + "guard-for-in": 0, + "handle-callback-err": [2, "^(err|error)$" ], + "indent": [2, 4, { "SwitchCase": 1 }], + "key-spacing": [2, { "beforeColon": false, "afterColon": true }], + "linebreak-style": 0, + "lines-around-comment": 0, + "max-nested-callbacks": 0, + "new-cap": [2, { "newIsCap": true, "capIsNew": false }], + "new-parens": 2, + "newline-after-var": 0, + "no-alert": 0, + "no-array-constructor": 2, + "no-caller": 2, + "no-catch-shadow": 0, + "no-cond-assign": 2, + "no-console": 0, + "no-constant-condition": 0, + "no-continue": 0, + "no-control-regex": 2, + "no-debugger": 2, + "no-delete-var": 2, + "no-div-regex": 0, + "no-dupe-args": 2, + "no-dupe-keys": 2, + "no-duplicate-case": 2, + "no-else-return": 0, + "no-empty": 0, + "no-empty-character-class": 2, + "no-eq-null": 0, + "no-eval": 2, + "no-ex-assign": 2, + "no-extend-native": 2, + "no-extra-bind": 2, + "no-extra-boolean-cast": 2, + "no-extra-parens": 0, + "no-extra-semi": 0, + "no-fallthrough": 2, + "no-floating-decimal": 2, + "no-func-assign": 2, + "no-implied-eval": 2, + "no-inline-comments": 0, + "no-inner-declarations": [2, "functions"], + "no-invalid-regexp": 2, + "no-irregular-whitespace": 2, + "no-iterator": 2, + "no-label-var": 2, + "no-labels": 2, + "no-lone-blocks": 2, + "no-lonely-if": 0, + "no-loop-func": 0, + "no-mixed-requires": 0, + "no-mixed-spaces-and-tabs": 2, + "no-multi-spaces": 2, + "no-multi-str": 2, + "no-multiple-empty-lines": [2, { "max": 1 }], + "no-native-reassign": 2, + "no-negated-in-lhs": 2, + "no-nested-ternary": 0, + "no-new": 2, + "no-new-func": 0, + "no-new-object": 2, + "no-new-require": 2, + "no-new-wrappers": 2, + "no-obj-calls": 2, + "no-octal": 2, + "no-octal-escape": 2, + "no-param-reassign": 0, + "no-path-concat": 0, + "no-process-env": 0, + "no-process-exit": 0, + "no-proto": 0, + "no-redeclare": 2, + "no-regex-spaces": 2, + "no-restricted-modules": 0, + "no-return-assign": 2, + "no-script-url": 0, + "no-self-compare": 2, + "no-sequences": 2, + "no-shadow": 0, + "no-shadow-restricted-names": 2, + "no-spaced-func": 2, + "no-sparse-arrays": 2, + "no-sync": 0, + "no-ternary": 0, + "no-this-before-super": 2, + "no-throw-literal": 2, + "no-trailing-spaces": 2, + "no-undef": 2, + "no-undef-init": 2, + "no-undefined": 0, + "no-underscore-dangle": 0, + "no-unexpected-multiline": 2, + "no-unneeded-ternary": 2, + "no-unreachable": 2, + "no-unused-expressions": 0, + "no-unused-vars": [2, { "vars": "all", "args": "none" }], + "no-use-before-define": 0, + "no-var": 0, + "no-void": 0, + "no-warning-comments": 0, + "no-with": 2, + "object-curly-spacing": 0, + "object-shorthand": 0, + "one-var": [2, { "initialized": "never" }], + "operator-assignment": 0, + "operator-linebreak": [2, "after", { "overrides": { "?": "before", ":": "before" } }], + "padded-blocks": 0, + "prefer-const": 0, + "quote-props": 0, + "quotes": [2, "single", "avoid-escape"], + "radix": 2, + "semi": [2, "always"], + "semi-spacing": 0, + "sort-vars": 0, + "keyword-spacing": [2, {"after": true, "overrides": {"throw": { "after": true}, "return": { "before": true }}}], + "space-before-blocks": [2, "always"], + "space-before-function-paren": [2, "never"], + "space-in-parens": [2, "never"], + "space-infix-ops": 2, + "space-unary-ops": [2, { "words": true, "nonwords": false }], + "spaced-comment": [2, "always", { "markers": ["global", "globals", "eslint", "eslint-disable", "*package", "!"] }], + "strict": 0, + "use-isnan": 2, + "valid-jsdoc": 0, + "valid-typeof": 2, + "vars-on-top": 0, + "wrap-iife": [2, "any"], + "wrap-regex": 0, + "yoda": [2, "never"] + } +} diff --git a/user/plugins/flex-objects/.gitignore b/user/plugins/flex-objects/.gitignore new file mode 100644 index 0000000..0ac92e1 --- /dev/null +++ b/user/plugins/flex-objects/.gitignore @@ -0,0 +1,3 @@ +.idea +.DS_Store +node_modules diff --git a/user/plugins/flex-objects/CHANGELOG.md b/user/plugins/flex-objects/CHANGELOG.md new file mode 100644 index 0000000..66dd8af --- /dev/null +++ b/user/plugins/flex-objects/CHANGELOG.md @@ -0,0 +1,523 @@ +# v1.3.1 +## 09/08/2022 + +1. [](#bugfix) + * Fixed `covnertUrls` action + +# v1.3.0 +## 06/14/2022 + +1. [](#new) + * Added user object to `onFlexTask.*` and `onFlexAction.*` events + * Added tasks `MediaUploadMeta` and `MediaReorder` to support remote media fields + * Added support to remove media defined in a field +2. [](#improved) + * Refactored admin controller tasks and actions + * Added image preview support for 3rd party editors +1. [](#bugfix) + * Fixed broken error responses in object media tasks + +# v1.2.0 +## 03/28/2022 + +1. [](#new) + * Require **Grav 1.7.32** and **Form 6.0.0** +2. [](#improved) + * Improved flex router event to include directory +3. [](#bugfix) + * Fixed caching issues in dynamic flex forms + * Fixed flex content in unauthorized module causing the whole page to become unauthorized + +# v1.1.9 +## 03/14/2022 + +1. [](#new) + * Added support for flex router to return a response instead of a page + +# v1.1.8 +## 01/28/2022 + +1. [](#new) + * Require **Grav 1.7.29** +3. [](#improved) + * Made path handling unicode-safe, use new `Utils::basename()` and `Utils::pathinfo()` everywhere + +# v1.1.7 +## 01/03/2022 + +1. [](#new) + * Allow intercepting object `create`, `update` and `delete` tasks by using `FlexTaskEvent` event +2. [](#improved) + * Added optional `$scope` parameter to `ObjectController::checkAuthorization()` +3. [](#bugfix) + * Fixed continue task with `PageInterface` types + +# v1.1.6 +## 11/29/2021 + +1. [](#bugfix) + * Fixed regression `Call to a member function getRoute() on null` when using CLI [#151](https://github.com/trilbymedia/grav-plugin-flex-objects/issues/151) + +# v1.1.5 +## 11/24/2021 + +1. [](#new) + * Added method `ObjectController::checkAuthorizations()` to check if one of the actions is true +2. [](#bugfix) + * Fixed regression when calling flex router with a path + +# v1.1.4 +## 11/16/2021 + +1. [](#new) + * Require **Grav 1.7.25** +1. [](#improved) + * Changed flex router not to trigger `onPageNotFound` event + * Changed flex router to be called also with empty path + * If ACL check for the object fails, display unauthorized page instead of 404 +1. [](#bugfix) + * Fixed unescaped messages in JSON responses + * Fixed `Call to a member function getName() on null` when using file field [#149](https://github.com/trilbymedia/grav-plugin-flex-objects/issues/149) + +# v1.1.3 +## 10/26/2021 + +1. [](#improved) + * Updated JS dependencies to latest + * Optimized import of certain JS dependencies + * Dev: Moved away from deprecated UglifyJsPlugin in favor of TerserPlugin + * Use active form from the Form plugin to get page metadata + * Added page header `flex.access.override: true`, which allows flex to replace page `access` when user is allowed to perform action in flex +1. [](#bugfix) + * Fixed flex object page access for super users when permission was denied + +# v1.1.2 +## 09/14/2021 + +1. [](#new) + * Require **Grav 1.7.21**, optionally **Error 1.8.0**, **Login 3.5.2** and **Form 5.1.1** + * Added file upload/delete support to frontend forms + * Support proper error, login and unauthorized pages if all requirements are met + * Added page header `flex.router: [ROUTER]` which triggers `flex.router.[ROUTER]` event for child routes of the page + * Added `flex.[type].task.create.after`, `flex.[type].task.update.after` and `flex.[type].task.delete.after` events for frontend + +# v1.1.1 +## 09/01/2021 + +1. [](#bugfix) + * Fixed XSS in page admin + * Fixed check for bad folder name, prevent bad characters + +# v1.1.0 +## 08/31/2021 + +1. [](#new) + * Require **Grav 1.7.19** and **Form 5.1.0** + * Added basic frontend editing support + * Added `onBeforeFlexFormInitialize` event to help to initialize the frontend form +1. [](#bugfix) + * Fixed error in admin when field validation fails + +# v1.0.16 +## 07/19/2021 + +1. [](#new) + * Added basic new modal support for all flex types +1. [](#bugfix) + * Fixed authorization check for user configuration + +# v1.0.15 +## 06/16/2021 + +1. [](#improved) + * Better checks against missing Flex Type inside tasks + * Better authorization checks, falls back to directory level authorization checks if objects do not support authorization +1. [](#bugfix) + * Fixed missing handling of child_type in Flex Pages [getgrav/grav-plugin-admin#2087](https://github.com/getgrav/grav-plugin-admin/issues/2087) + * Added support for multiple `Exports` in a dropdown + * Admin is no longer a dependency of Flex Objects [#130](https://github.com/trilbymedia/grav-plugin-flex-objects/issues/130) + * Fixed authorization checks during page creation for users who have limited access to some pages [getgrav/grav#3382](https://github.com/getgrav/grav/issues/3382) + * Fixed permission check when moving a page [getgrav/grav#3382](https://github.com/getgrav/grav/issues/3382) + +# v1.0.14 +## 06/07/2021 + +1. [](#improved) + * Added enhanced copy modal from Pages list [getgrav/grav-plugin-admin#2139](https://github.com/getgrav/grav-plugin-admin/issues/2139) + +# v1.0.13 +## 06/03/2021 + +1. [](#bugfix) + * Fixed expert mode for Flex Pages + +# v1.0.12 +## 06/02/2021 + +1. [](#bugfix) + * Fixed logic to get form blueprints and object, prevents events from being fired twice + * Fixed breadcrumb item in Pages list not translating HTML entities [#127](https://github.com/trilbymedia/grav-plugin-flex-objects/issues/127) + +# v1.0.11 +## 05/24/2021 + +1. [](#improved) + * Allow file uploads to send data such as `data[media_order]` + +# v1.0.10 +## 05/19/2021 + +1. [](#bugfix) + * Fixed `Add Folder` not updating the page list until cache is cleared + * Fixed broken error message translations + +# v1.0.9 +## 04/29/2021 + +1. [](#bugfix) + * Fixed fatal error when copying a page in admin if no modal is being shown [getgrav/grav#3335](https://github.com/getgrav/grav/issues/3335) + +# v1.0.8 +## 04/23/2021 + +1. [](#new) + * Require **Admin 1.10.13** + * Require **Form Plugin 5.0.2** +1. [](#improved) + * Added a few missing translations + * Utilize new Admin detector to prevent Save actions that triggers unsaved notice on unload [getgrav/grav-plugin-admin#2125](https://github.com/getgrav/grav-plugin-admin/issues/2125) + * Improved copying page by adding a modal for new page title and folder name + +# v1.0.7 +## 04/06/2021 + +1. [](#new) + * Require **Grav 1.7.10** + * Added deny option support to `filepicker` field [#119](https://github.com/trilbymedia/grav-plugin-flex-objects/pull/119) +1. [](#bugfix) + * Prevent expert editing mode from anyone else than super users [grav-plugin-admin#2094](https://github.com/getgrav/grav-plugin-admin/issues/2094) + * Fixed not being able to add new folder [grav#3293](https://github.com/getgrav/grav/issues/3293) + * Fixed Flex directories defined only in theme not showing up [grav#3292](https://github.com/getgrav/grav/issues/3292) + +# v1.0.6 +## 03/30/2021 + +1. [](#bugfix) + * Fixed automatic git-sync in admin save and delete [#120](https://github.com/trilbymedia/grav-plugin-flex-objects/issues/120) + * Prevent Add Page / Add Module modals from closing if clicking on the outside overlay [grav-plugin-admin#2089](https://github.com/getgrav/grav-plugin-admin/issues/2089) + +# v1.0.5 +## 03/19/2021 + +1. [](#new) + * Require **Grav 1.7.9** + * Require **Form Plugin 5.0.1** +1. [](#improved) + * Catch JSON decoding issues in controllers +1. [](#bugfix) + * Fixed broken media upload/picker fields with `@self/path` notations [grav#3275](https://github.com/getgrav/grav/issues/3275) + * Fixed `filepicker` field not including newly uploaded and excluding newly deleted files before saving the object + * Fixed `Flex Page` CRUD ACL when creating a new page [#115](https://github.com/trilbymedia/grav-plugin-flex-objects/issues/115) + * Bumped dependencies versions [#116](https://github.com/trilbymedia/grav-plugin-flex-objects/issues/116) + * Fixed clicking `move` button on some pages resulting in endless loading spinner [grav-plugin-admin#2095](https://github.com/getgrav/grav-plugin-admin/issues/2095) + +# v1.0.4 +## 03/17/2021 + +1. [](#improved) + * Added id attributes for buttons to help on acceptance testing +1. [](#bugfix) + * Fixed fatal error in `/admin/flex-objects` [#114](https://github.com/trilbymedia/grav-plugin-flex-objects/issues/114) + * Fixed `onAdminSave` original page having empty header [grav#3259](https://github.com/getgrav/grav/issues/3259) + * Fixed flash issues on uploading files into a new page + +# v1.0.3 +## 02/17/2021 + +1. [](#improved) + * List field: added new `placement` property to decide whether to add new items at the top, bottom or based on the *position* of the clicked button [#105](https://github.com/trilbymedia/grav-plugin-flex-objects/pull/105) + * Added default styling for Flex-Objects Admin list view +1. [](#bugfix) + * Fixed fatal error if configuration is missing directories [#107](https://github.com/trilbymedia/grav-plugin-flex-objects/issues/107) + * Fixed case-sensitive `accept` in `filepicker` field + * Fixed pages admin being accessible without read/write permissions [grav-plugin-admin#2053](https://github.com/getgrav/grav-plugin-admin/issues/2053) + * Fixed missing event `onAdminCreatePageFrontmatter` when creating a new page [grav-plugin-auto-date#8](https://github.com/getgrav/grav-plugin-auto-date/issues/8) + * Fixed missing event `onAdminAfterDelMedia` when deleting a file from a page + * Fixed filepicker support for old `theme@:/` and `page@:/` notations [#109](https://github.com/trilbymedia/grav-plugin-flex-objects/issues/109) + * Fixed adding the same new page twice remembering content from the last try + * Fixed saving a new page with invalid data makes blueprint fields disappear [grav-plugin-admin#2068](https://github.com/getgrav/grav-plugin-admin/issues/2068) + +# v1.0.2 +## 02/01/2021 + +1. [](#new) + * Require **Grav 1.7.4** +1. [](#bugfix) + * Fixed saving page in expert mode [grav#3174](https://github.com/getgrav/grav/issues/3174) + +# v1.0.1 +## 01/20/2021 + +1. [](#bugfix) + * Fixed 404 when trying to edit a page with accented characters [grav-plugin-admin#2026](https://github.com/getgrav/grav-plugin-admin/issues/2026) + +# v1.0.0 +## 01/19/2021 + +1. [](#new) + * Added `$grav['flex_objects']->getAdminController()` method +1. [](#improved) + * Added support for relative paths in `getLevelListing` action +1. [](#bugfix) + * Fixed admin not working with types that do not implement `FlexAuthorizeInterface` + * Fixed bad redirect when creating new flex object and choosing to create another return to the list + * Fixed bad redirect when changing parent of new page and saving [grav-plugin-admin#2014](https://github.com/getgrav/grav-plugin-admin/issues/2014) + * Fixed page forms being empty if multi-language is enabled, but there's just one language [grav#3147](https://github.com/getgrav/grav/issues/3147) + * Fixed copying a page within a parent with no create permission [grav-plugin-admin#2002](https://github.com/getgrav/grav-plugin-admin/issues/2002) + +# v1.0.0-rc.20 +## 12/15/2020 + +1. [](#improved) + * Default cookies usage to SameSite Lax [grav-plugin-admin#1998](https://github.com/getgrav/grav-plugin-admin/issues/1998) + * Fixed typo [#89](https://github.com/trilbymedia/grav-plugin-flex-objects/issues/89) + +# v1.0.0-rc.19 +## 12/02/2020 + +1. [](#improved) + * Just keeping sync with Grav rc.19 + +# v1.0.0-rc.18 +## 12/02/2020 + +1. [](#new) + * Require **PHP 7.3.6** +1. [](#improved) + * Improved frontend templates + * Improve blueprint structure + * Hooked up Duplicate and Move from within Pages list [#81](https://github.com/trilbymedia/grav-plugin-flex-objects/issues/81) + * Respect CRUD ACL actions for items shortcuts in pages list [#82](https://github.com/trilbymedia/grav-plugin-flex-objects/issues/82) + * Refresh object on controllers to make sure it is up to date +1. [](#bugfix) + * Fixed fatal error in admin if list view hasn't been defined + * Fixed fatal error in admin if directory throws exception + * Fixed attempts to add an existing page + * Fixed form loosing its form state if saving fails when using `ObjectController` + * Fixed missing context when rendering collection in frontend + * Fixed Flex Admin activating on too old Admin plugin versions + +# v1.0.0-rc.17 +## 10/07/2020 + +1. [](#bugfix) + * Fixed media uploads for objects which do not implement `FlexAuthorizeInterface` + * Fixed file picker field not recognizing `folder: @self` variants + +# v1.0.0-rc.16 +## 09/01/2020 + +1. [](#improved) + * Simplified `Flex Pages` admin not to differentiate between default language file extensions [#47](https://github.com/trilbymedia/grav-plugin-flex-objects/issues/47) +1. [](#bugfix) + * Fixed extra space in Flex admin pages + * Fixed folder creation with parent other than root [#66](https://github.com/trilbymedia/grav-plugin-flex-objects/issues/66) + * Fixed task redirects in sub-folder multi-site environments + * Fixed typo in default permissions (should have been `admin.flex-objects`) [grav#2915](https://github.com/getgrav/grav/issues/2915) + +# v1.0.0-rc.15 +## 07/22/2020 + +1. [](#new) + * Released with no changes to keep sync with Grav + Admin + +# v1.0.0-rc.14 +## 07/09/2020 + +1. [](#new) + * Released with no changes to keep sync with Grav + Admin + +# v1.0.0-rc.13 +## 07/01/2020 + +1. [](#bugfix) + * Fixed bad link in directory listing template + * Fixed admin save task displaying error message about non-existing data type + * Fixed `pagemedia` field not uploading/deleting files right away + * Fixed `Flex Pages` add, copy and move buttons appearing in edit view when no permissions + * Fixed `Flex Pages` permission issues + * Fixed some admin redirect issues + +# v1.0.0-rc.12 +## 06/08/2020 + +1. [](#new) + * Code updates to match Grav 1.7.0-rc.12 +1. [](#improved) + * Changed class `admin-pages` to `admin-{{ target }}` [#59](https://github.com/trilbymedia/grav-plugin-flex-objects/issues/59) + +# v1.0.0-rc.11 +## 05/14/2020 + +1. [](#new) + * Added integration with Admin's new preset events to style the CSS +1. [](#improved) + * JS Maitenance +1. [](#bugfix) + * Fixed `Accounts` Configuration tab + +# v1.0.0-rc.10 +## 04/27/2020 + +1. [](#bugfix) + * Fixed custom actions not working + * Fixed custom folder in `mediapicker` field not working + * Fixed export title when not using CVS [#51](https://github.com/trilbymedia/grav-plugin-flex-objects/issues/51) + * Fixed preview in Page list view [admin#1845](https://github.com/getgrav/grav-plugin-admin/issues/1845) + * Fixed `404 Not Found` error after saving a new object + +# v1.0.0-rc.9 +## 03/20/2020 + +1. [](#bugfix) + * Fixed issue with touch devices and scrollbars hidden, preventing native scrolling to work [admin#1857](https://github.com/getgrav/grav-plugin-admin/issues/1857) [#1858](https://github.com/getgrav/grav-plugin-admin/issues/1858) + + +# v1.0.0-rc.8 +## 03/19/2020 + +1. [](#new) + * Added a basic **Convert Data** CLI Command. Works with `Yaml` <-> `Json` +1. [](#bugfix) + * Fixed jump of the page when applying filters [grav-admin#1830](https://github.com/getgrav/grav-plugin-admin/issues/1830) + * Fixed form resetting when validation fails [grav#2764](https://github.com/getgrav/grav/issues/2764) + +# v1.0.0-rc.7 +## 03/05/2020 + +1. [](#new) + * Added option to change perPage amount of items in Flex List. 'All' also available by only at runtime. +1. [](#improved) + * Page filters now obey admin hide type settings +1. [](#bugfix) + * Fixed fatal error if there is missing blueprint [grav#2834](https://github.com/getgrav/grav/issues/2834) + * Fixed redirect when moving a page [grav#2829](https://github.com/getgrav/grav/issues/2829) + * Fixed no default access set when creating new user from admin [#31](https://github.com/trilbymedia/grav-plugin-flex-objects/issues/31) + * Flex Pages: Fixed page visibility issues when creating a new page [grav#2823](https://github.com/getgrav/grav/issues/2823) + * Flex Pages: Fixed translated page having non-translated status with `system.languages.include_default_lang_file_extension: false` + * Flex Pages: Fixed preview on home page + +# v1.0.0-rc.6 +## 02/11/2020 + +1. [](#new) + * Pass phpstan level 1 tests + * Removed legacy classes for pages, cleanup deprecated Flex types +1. [](#bugfix) + * Fixed call to `grav.flex_objects.getObject()` causing fatal error + * Minor bug fixes + +# v1.0.0-rc.5 +## 02/03/2020 + +1. [](#new) + * No changes, just keeping things in sync with Grav RC version + +# v1.0.0-rc.4 +## 02/03/2020 + +1. [](#new) + * Added support for arbitrary admin menu route for editing a flex type + * Added support for new improved ACL + * Added support for custom layouts by adding `/:layout_name` in url + * Added support for Flex Directory specific Configuration + * Added support for action aliases (`/accounts/configure` instead of `/accounts/users/:configre`) + * Added Flex type `Configuration` + * Enabled `Pages`, `Accounts` and `User Groups` by default + * Stop using deprecated `onAdminRegisterPermissions` event + * Renamed directory `grav-pages` to `pages` + * Renamed directory `grav-accounts` to `user-accounts` + * Renamed directory `grav-user-groups` to `user-groups` +1. [](#improved) + * Flex caching settings were moved into Grav core + * Flex Objects plugin now better integrates to Grav core +1. [](#bugfix) + * Fixed empty directory entries in plugin configuration + * Fixed plugin configuration displaying directories outside of the plugin + * Fixed broken blueprints if there's folder with the name of the blueprint file + * Fixed visible save button when in 404 page + * Fixed missing save location when file does not exist + * Fixed multiple ACL related issues (no access, bad links, information leaks) + * Fixed Admin Panel Page list buttons not appearing in Flex Pages + +# v1.0.0-rc.3 +## 01/02/2020 + +1. [](#new) + * Added root page support for `Flex Pages` +1. [](#bugfix) + * Fixed after save: Edit + * Fixed JS failing on initial filters setup due to no fallback implemented [#2724](https://github.com/getgrav/grav/issues/2724) + +# v1.0.0-rc.2 +## 12/04/2019 + +1. [](#new) + * Admin: Added support for editing `User Groups` + * Admin: `Flex Pages` now support **searching** and **filtering** +1. [](#bugfix) + * Hide hidden/system types (pages, accounts, user groups) from Flex Objects page type [#38](https://github.com/trilbymedia/grav-plugin-flex-objects/issues/38) + +# v1.0.0-rc.1 +## 11/06/2019 + +1. [](#new) + * Added directory configuration option for custom admin templates + * Added `Flex Accounts (Admin)` type to administer user accounts in Flex independently from Grav system setting + * Added `Flex Pages (Admin)` type to administer pages in Flex independently from Grav system setting + * Added blueprint option to hide directory from Flex Objects types page in frontend + * Deprecated all `Flex Page` classes and traits in favor of the new classes in Grav core + * Moved flex object/collection templates to `templates/flex/{TYPE}` which is easier to remember + * Admin: Added support customizable preview and export +1. [](#improved) + * Admin: Allow custom title template when editing object + * Translations: rename MODULAR to MODULE everywhere +1. [](#bugfix) + * Flex Pages: Fixed default language not being translated in both `translatedLanguages()` and `untranslatedLanguages()` results + * Flex Pages: Language interface compatibility fixes + * Flex Pages: Fixed frontend issues with plugin events [#5](https://github.com/trilbymedia/grav-plugin-flex-objects/issues/5) + * Flex Pages: Fixed `filePathClean()` and `filePathClean()` not returning file for folder + * Flex Pages: Fixed multiple multi-language related issues in admin [#10](https://github.com/trilbymedia/grav-plugin-flex-objects/issues/10) + * Flex Pages: Fixed raw edit mode + * File upload is broken for nested fields [#34](https://github.com/trilbymedia/grav-plugin-flex-objects/issues/34) + +# v1.0.0-beta.10 +## 10/03/2019 + +1. [](#bugfix) + * Flex Pages: Fixed moving visible page in admin causing ordering issues [#6](https://github.com/trilbymedia/grav-plugin-flex-objects/issues/6) + * Flex Pages List: Fixed issue where auto-hiding scrollbars in macOS would throw off the dropdown position [#20](https://github.com/trilbymedia/grav-plugin-flex-objects/issues/20) + * Flex Pages: Fixed prev/next page missing pages if pagination was turned on in page header + +# v1.0.0-beta.9 +## 09/26/2019 + +1. [](#improved) + * Show/hide dropdown menu as needed when scrolling the page columns container left and right +1. [](#bugfix) + * PHP 7.1: Fixed error when activating `Flex Pages` in Plugin parameters [#13](https://github.com/trilbymedia/grav-plugin-flex-objects/issues/13) + * Flex Pages: Fixed page template cannot be changed [#4](https://github.com/trilbymedia/grav-plugin-flex-objects/issues/4) + * Flex Pages: Fixed new pages being created with wrong template [#22](https://github.com/trilbymedia/grav-plugin-flex-objects/issues/22) + * Flex Pages: Fixed `Preview` not working [#17](https://github.com/trilbymedia/grav-plugin-flex-objects/issues/17) + * Fixed error caused by automatic path selection from cookie when destination not available [#23](https://github.com/trilbymedia/grav-plugin-flex-objects/issues/23) + * Fixed breadcrumb issue in Flex Pages List [#19](https://github.com/trilbymedia/grav-plugin-flex-objects/issues/19) + * Flex Pages: Fixed unable to change page template [#4](https://github.com/trilbymedia/grav-plugin-flex-objects/issues/4) + * Fixed `Error 404` when adding new contact [#14](https://github.com/trilbymedia/grav-plugin-flex-objects/issues/14) + * Flex Pages: Non-visible items appear in Nav menu [#24](https://github.com/trilbymedia/grav-plugin-flex-objects/issues/24) + * Disabling plugin breaks saving plugin configuration [#11](https://github.com/trilbymedia/grav-plugin-flex-objects/issues/11) + +# v1.0.0-beta.8 +## 09/19/2019 + +1. [](#new) + * Initial public release (all previous versions were in a private repo) diff --git a/user/plugins/flex-objects/LICENSE b/user/plugins/flex-objects/LICENSE new file mode 100644 index 0000000..d151da3 --- /dev/null +++ b/user/plugins/flex-objects/LICENSE @@ -0,0 +1,21 @@ +The MIT License (MIT) + +Copyright (c) 2018 Trilby Media, LLC + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/user/plugins/flex-objects/README.md b/user/plugins/flex-objects/README.md new file mode 100644 index 0000000..976355f --- /dev/null +++ b/user/plugins/flex-objects/README.md @@ -0,0 +1,289 @@ +# Flex Objects Plugin + +## About + +The **Flex Objects** Plugin is for [Grav CMS](https://github.com/getgrav/grav). Flex objects is a powerful new plugin that allows you to build custom collections of objects, which can modified by CRUD operations via the admin plugin to easily manage large sets of data that don't make sense as simple YAML configuration files, or Grav pages. These objects are defined by blueprints written in YAML and they are rendered by a set of twig files. Additionally both objects and collections can be customized by PHP classes, which allows you to define complex behaviors and relationships between the objects. + +![](assets/flex-objects-list.png) + +![](assets/flex-objects-edit.png) + +![](assets/flex-objects-options.png) + + +## System Requirements + +Plugin requires **Grav** v1.7.25 or later version in order to run. Additionally you need **Form Plugin** v5.1.0 and optionally **Admin Plugin** v1.10.25 or later version. + +## Installation + +Typically a plugin should be installed via [GPM](http://learn.getgrav.org/advanced/grav-gpm) (Grav Package Manager): + +``` +$ bin/gpm install flex-objects +``` + +Alternatively it can be installed via the [Admin Plugin](http://learn.getgrav.org/admin-panel/plugins) + +## Sample Data + +Once installed you can either create entries manually, or you can copy the sample data set: + +```shell +$ mkdir -p user/data/flex-objects +$ cp user/plugins/flex-objects/data/flex-objects/contacts.json user/data/flex-objects/contacts.json +``` + +## Configuration + +This plugin works out of the box, but provides several fields that make modifying and extending this plugin easier: + +```yaml +enabled: true + +built_in_css: true +extra_admin_twig_path: 'theme://admin/templates' +admin_list: + per_page: 15 + order: + by: updated_timestamp + dir: desc + +directories: + - 'blueprints://flex-objects/contacts.yaml' + - 'blueprints://flex-objects/pages.yaml' + - 'blueprints://flex-objects/user-accounts.yaml' + - 'blueprints://flex-objects/user-groups.yaml' +``` + +Simply edit the **Flex Objects** plugin options in the Admin plugin, or copy the `flex-objects.yaml` default file to your `user/config/plugins/` folder and edit the values there. Read below for more help on what these fields do and how they can help you modify the plugin. + +Most interesting configuration option is `directories`, which contains list or blueprint files which will define the flex types. + +## Displaying + +![](assets/flex-objects-site.png) + +just create a page called `flex-objects.md` or set the template of your existing page to `template: flex-objects`. This will use the `flex-objects.html.twig` file provided by the plugin. + + +```twig +--- +title: Directory +flex: + directory: contacts +--- + +# Directory Example +``` + +If you do not specify `flex.directory` name in the page header, the page will list all directories instead of displaying entries from a single directory. + +![](assets/flex-objects-directory.png) + +# Modifications + +This plugin is configured with a sample contacts directory with a few sample fields: + +* published +* first_name +* last_name +* email +* website +* tags + +These are probably not the exact fields you might want, so you will probably want to change them. This is pretty simple to do with Flex Objects, you just need to change the **Blueprints** and the **Twig Templates**. This can be achieved simply enough by copying some current files and modifying them. + +Let's assume you simply want to add a new "Phone Number" field to the existing Data and remove the "Tags". These are the steps you would need to perform: + +1. Copy the `blueprints/flex-objects/contacts.yaml` Blueprint file to another location, let's say `user/blueprints/flex-objects/`. The file can really be stored anywhere, but if you are using admin, it is best to keep the blueprint file where admin can automatically find it. + +!!! **NOTE:** If you want to put the blueprints to `user/themes/yourtheme/blueprints`, you need to use the new blueprint folder structure from Grav 1.7. See [Plugin/Theme Blueprints](https://learn.getgrav.org/17/advanced/grav-development/grav-17-upgrade-guide#plugin-theme-blueprints-blueprints-yaml). + +2. Edit the `user/blueprints/flex-objects/contacts.yaml` like so: + + ```yaml + title: Contacts + description: Simple contact directory with tags. + type: flex-objects + + config: + admin: + list: + title: name + fields: + published: + field: + type: toggle + label: Publ + width: 8 + last_name: + link: edit + first_name: + link: edit + email: + phone: + data: + storage: + class: 'Grav\Framework\Flex\Storage\SimpleStorage' + options: + formatter: + class: 'Grav\Framework\File\Formatter\JsonFormatter' + folder: user-data://flex-objects/contacts.json + + form: + validation: loose + + fields: + published: + type: toggle + label: Published + highlight: 1 + default: 1 + options: + 1: PLUGIN_ADMIN.YES + 0: PLUGIN_ADMIN.NO + validate: + type: bool + required: true + + last_name: + type: text + label: Last Name + validate: + required: true + + first_name: + type: text + label: First Name + + email: + type: email + label: Email Address + validate: + required: true + + website: + type: url + label: Website URL + + phone: + type: text + label: Phone Number + ``` + + See how we replaced `tags:` with `phone:` in the `config.admin.list.fields` section at the top. Also, notice how we removed the `tags:` Blueprint field definition, and added a simple text field for `phone:`. If you have questions about available form fields, [check out the extensive documentation](https://learn.getgrav.org/forms/blueprints/fields-available) on the subject. + +3. We need to copy the frontend Twig file and modify it to add the new "Phone" field. By default your theme already has its `templates`, so we can take advantage of it 2. We'll simply copy the `user/plugins/flex-objects/templates/flex/contacts/object/default.html.twig` file to `user/themes/quark/templates/flex/contacts/object/default.html.twig`. Notice, there is no reference to `admin/` here, this is site template, not an admin one. We are also assuming you are using `Quark` theme, so you may have to change this to reference the theme you are using. + +4. Edit the `default.html.twig` file you just copied so it has these modifications: + + ```twig +
    + {% if object.website %} + {{ object.last_name }}, {{ object.first_name }} + {% else %} + {{ object.last_name }}, {{ object.first_name }} + {% endif %} + {% if object.email %} +

    + {% endif %} + {% if object.phone %} +

    {{ object.phone }}

    + {% endif %} +
    + ``` + + Notice, we removed the `entry-extra` DIV, and added a new `if` block with the Twig code to display the phone number if set. + +5. We also need to tweak the JavaScript initialization which provides which hooks up certain classes to the search. To do this we need to copy the `user/plugins/flex-objects/templates/flex/contacts/collection/default.html.twig` file to `user/themes/quark/templates/flex/contacts/collection/default.html.twig`. Notice this is the `collection` template this time, not the `object` template as we copied before. + + Edit this file and replace the `` tag at the bottom with this code: + + ```html + + ``` + +# File Upload + +To upload files you can use the `file` form field. [The standard features apply](https://learn.getgrav.org/forms/blueprints/how-to-add-file-upload), and you can simply edit your custom blueprint with a field definition similar to: + +``` + item_image: + type: file + label: Item Image + random_name: true + destination: 'user/data/flex-objects/files' + multiple: true +``` + +> In order to fully take advantage of image uploads, you should always be using `FolderStorage`, meaning that the objects get saved to individual folders together with the images. Other storage layers may or may not support media. + +# Advanced + +You can radically alter the structure of the `contacts.json` data file by making major edits to the `contacts.yaml` blueprint file. However, it's best to start with an empty `contacts.json` if you are making wholesale changes or you will have data conflicts. Best to create your blueprint first. Reloading a **New Entry** until the form looks correct, then try saving, and check to make sure the stored `user/data/flex-objects/contacts.json` file looks correct. + +Then you will need to make more widespread changes to the site Twig templates. You might need to adjust the number of columns and the field names. You will also need to pay attention to the JavaScript initialization in each template. + +# Features + +Here are the main benefits of using Flex objects: + +* CRUD is automatically handled for you by Flex Objects plugin +* Objects can be stored using many different strategies, including single file, file per object or folder per object; using yaml, json etc. +* Flex types can be easily extended by custom PHP collection and object classes +* Both Flex objects and collections know how to render themselves: `echo $object->render($layout, $context)` or `{% render object layout: layout with context %}` +* You can easily create custom layouts for your objects and collections to be used in different pages +* Both Flex objects and collections support serialization and `json_encode()` +* Flex objects support Grav `Medium` objects with few lines of code +* Flex objects can have relations to other Flex objects with few lines of code defining the relation +* Flex directories support indexes which allow searching objects without loading all of them +* Efficient caching for indexes, searches, objects and rendered output + +# Limitations and future improvements + +Right now there are a few limitations: + +* Frontend only has a basic routing for the individual pages (you need to do the advanced routing manually by yourself) +* Administration needs more features like filtering, bulk updates etc +* It would be nice to have an easy way to display Flex admin in other admin plugins (it is already possible, but not easy) +* Optional database storage layer would be nice to have +* We need general collection functions to do simple filtering, like: "display all published items" without custom PHP code + +### Notes: + +1. You can actually use pretty much any folder under the `user/` folder of Grav. Simply edit the **Extra Admin Twig Path** option in the `flex-objects.yaml` file. It defaults to `theme://admin/templates` which means it uses the default theme's `admin/templates/` folder if it exists. +2. You can use any path for front end Twig templates also, if you don't want to put them in your theme, you can add an entry in the **Extra Site Twig Path** option of the `flex-objects.yaml` configuration and point to another location. + +# Tricks and tips + +* You can enable and disable directories from **Plugins** > **Flex Objects** + * New Flex Directories can be registered by simply creating a new blueprint file in `user/blueprints/flex-objects` folder + * You can also add types from your plugins by hooking into `onFlexInit` event (see `AccountsServiceProvider` in Grav) +* To properly create your own custom types, you need at least the object blueprint and the template files for collections and objects +* Use `flex-objects.md` page to create entry point for your own directory + * In page header you can use nested `flex.directory` variable to define the directory (or do it in admin) + * In Admin you can just select the directory under the page title + + +# Parameters supported by Flex page type: + +``` +--- +title: 'Flex Directories' +flex: + directories: + layout: default + list: + - accounts + - contacts +--- +``` + +`directories.layout`: uses template file `templates/flex-objects/directories/[LAYOUT].html.twig` +`directories.list`: list of flex directories displayed in this page diff --git a/user/plugins/flex-objects/admin/pages/flex-objects.md b/user/plugins/flex-objects/admin/pages/flex-objects.md new file mode 100644 index 0000000..c9359a2 --- /dev/null +++ b/user/plugins/flex-objects/admin/pages/flex-objects.md @@ -0,0 +1,7 @@ +--- +title: Flex Objects + +access: + admin.flex-objects: true + admin.super: true +--- \ No newline at end of file diff --git a/user/plugins/flex-objects/admin/templates/flex-objects.html.twig b/user/plugins/flex-objects/admin/templates/flex-objects.html.twig new file mode 100644 index 0000000..74ee1ca --- /dev/null +++ b/user/plugins/flex-objects/admin/templates/flex-objects.html.twig @@ -0,0 +1,30 @@ +{%- set user = admin.user -%} +{%- set route = controller.route -%} +{%- set type = directory.config('admin.template') ?? target -%} + +{# Set action from ?preview=1 #} +{%- if key and uri.currentUri().queryParam('preview') %} + {% set action = 'preview' %} +{% endif -%} + +{%- set template -%} + {%- if action == 'add' -%} + edit + {%- elseif action == 'delete' -%} + list + {%- else -%} + {{- action ?: task ?: 'types' -}} + {%- endif -%} +{%- endset -%} + +{%- set separator = config.system.param_sep -%} +{%- set view_config = directory.config('admin.views.' ~ template) ?? directory.config('admin.' ~ template) ?? [] -%} + +{%- include target ? [ + 'flex-objects/types/' ~ type ~ '/' ~ template ~ '.html.twig', + 'flex-objects/types/default/' ~ template ~ '.html.twig', + 'flex-objects/layouts/404.html.twig' + ] : [ + 'flex-objects/types/default/' ~ template ~ '.html.twig', + 'flex-objects/layouts/404.html.twig' + ] -%} diff --git a/user/plugins/flex-objects/admin/templates/flex-objects.json.twig b/user/plugins/flex-objects/admin/templates/flex-objects.json.twig new file mode 100644 index 0000000..c5b85dc --- /dev/null +++ b/user/plugins/flex-objects/admin/templates/flex-objects.json.twig @@ -0,0 +1 @@ +{{- admin.json_response|json_encode|raw -}} \ No newline at end of file diff --git a/user/plugins/flex-objects/admin/templates/flex-objects/layouts/404.html.twig b/user/plugins/flex-objects/admin/templates/flex-objects/layouts/404.html.twig new file mode 100644 index 0000000..6101c81 --- /dev/null +++ b/user/plugins/flex-objects/admin/templates/flex-objects/layouts/404.html.twig @@ -0,0 +1 @@ +{{ 'PLUGIN_FLEX_OBJECTS.ERROR.LAYOUT_NOT_FOUND'|tu(template, null) }} diff --git a/user/plugins/flex-objects/admin/templates/flex-objects/layouts/accounts/partials/top.html.twig b/user/plugins/flex-objects/admin/templates/flex-objects/layouts/accounts/partials/top.html.twig new file mode 100644 index 0000000..46b1ef6 --- /dev/null +++ b/user/plugins/flex-objects/admin/templates/flex-objects/layouts/accounts/partials/top.html.twig @@ -0,0 +1,25 @@ +{% set active_html = 'class="active"' %} +{% set is_configure = route.gravParam('') is same as('configure') %} +{% set authorize = directory.config('admin.views.configure.authorize') ?? directory.config('admin.configure.authorize') ?? 'admin.super' %} + +{% if allowed %} +
    +
    + {% for name,title in {'user-accounts': 'PLUGIN_ADMIN.USERS', 'user-groups': 'PLUGIN_ADMIN.GROUPS'} %} + {% set current = flex.directory(name) %} + {% if current and current.isAuthorized('list', 'admin', user) %} + {% set active = not is_configure and nav_route|starts_with(flex.adminRoute(current)|trim('/') ~ '/') %} + + {{ title|tu }} + + {% endif %} + {% endfor %} + + {% if user.authorize(authorize) or user.authorize('admin.super') %} + + {{ 'PLUGIN_ADMIN.CONFIGURATION'|tu }} + + {% endif %} +
    +
    +{% endif %} diff --git a/user/plugins/flex-objects/admin/templates/flex-objects/types/default/buttons/add.html.twig b/user/plugins/flex-objects/admin/templates/flex-objects/types/default/buttons/add.html.twig new file mode 100644 index 0000000..076f293 --- /dev/null +++ b/user/plugins/flex-objects/admin/templates/flex-objects/types/default/buttons/add.html.twig @@ -0,0 +1,3 @@ + + {{ 'PLUGIN_ADMIN.ADD'|tu }} + diff --git a/user/plugins/flex-objects/admin/templates/flex-objects/types/default/buttons/back.html.twig b/user/plugins/flex-objects/admin/templates/flex-objects/types/default/buttons/back.html.twig new file mode 100644 index 0000000..dbb57c6 --- /dev/null +++ b/user/plugins/flex-objects/admin/templates/flex-objects/types/default/buttons/back.html.twig @@ -0,0 +1,3 @@ + + {{ "PLUGIN_ADMIN.BACK"|tu }} + diff --git a/user/plugins/flex-objects/admin/templates/flex-objects/types/default/buttons/configuration.html.twig b/user/plugins/flex-objects/admin/templates/flex-objects/types/default/buttons/configuration.html.twig new file mode 100644 index 0000000..2a463b2 --- /dev/null +++ b/user/plugins/flex-objects/admin/templates/flex-objects/types/default/buttons/configuration.html.twig @@ -0,0 +1,7 @@ +{%- set authorize = directory.config('admin.views.configure.authorize') ?? directory.config('admin.configure.authorize') ?? 'admin.super' %} + +{%- if configure_url and user.authorize(authorize) %} + + {{ 'PLUGIN_ADMIN.CONFIGURATION'|tu }} + +{% endif %} diff --git a/user/plugins/flex-objects/admin/templates/flex-objects/types/default/buttons/delete.html.twig b/user/plugins/flex-objects/admin/templates/flex-objects/types/default/buttons/delete.html.twig new file mode 100644 index 0000000..779760e --- /dev/null +++ b/user/plugins/flex-objects/admin/templates/flex-objects/types/default/buttons/delete.html.twig @@ -0,0 +1,3 @@ + + {{ 'PLUGIN_ADMIN.DELETE'|tu }} + diff --git a/user/plugins/flex-objects/admin/templates/flex-objects/types/default/buttons/export-csv.html.twig b/user/plugins/flex-objects/admin/templates/flex-objects/types/default/buttons/export-csv.html.twig new file mode 100644 index 0000000..8c53c1b --- /dev/null +++ b/user/plugins/flex-objects/admin/templates/flex-objects/types/default/buttons/export-csv.html.twig @@ -0,0 +1,3 @@ + + {{ 'PLUGIN_FLEX_OBJECTS.CSV'|tu }} + diff --git a/user/plugins/flex-objects/admin/templates/flex-objects/types/default/buttons/export.html.twig b/user/plugins/flex-objects/admin/templates/flex-objects/types/default/buttons/export.html.twig new file mode 100644 index 0000000..0f8382b --- /dev/null +++ b/user/plugins/flex-objects/admin/templates/flex-objects/types/default/buttons/export.html.twig @@ -0,0 +1,21 @@ +{% if export.options %} +
    + + +
    + +{% else %} + + {{ export.title ?? (export.formatter.class ? 'PLUGIN_ADMIN.EXPORT'|tu : 'PLUGIN_FLEX_OBJECTS.CSV'|tu) }} + +{% endif %} \ No newline at end of file diff --git a/user/plugins/flex-objects/admin/templates/flex-objects/types/default/buttons/languages.html.twig b/user/plugins/flex-objects/admin/templates/flex-objects/types/default/buttons/languages.html.twig new file mode 100644 index 0000000..58c2551 --- /dev/null +++ b/user/plugins/flex-objects/admin/templates/flex-objects/types/default/buttons/languages.html.twig @@ -0,0 +1,18 @@ +
    + + {% if admin_languages|length > (language in admin_languages)|int %} + + + {% endif %} +
    diff --git a/user/plugins/flex-objects/admin/templates/flex-objects/types/default/buttons/preview-open.html.twig b/user/plugins/flex-objects/admin/templates/flex-objects/types/default/buttons/preview-open.html.twig new file mode 100644 index 0000000..df8893d --- /dev/null +++ b/user/plugins/flex-objects/admin/templates/flex-objects/types/default/buttons/preview-open.html.twig @@ -0,0 +1,5 @@ +{% if preview_url %} + + {{ "PLUGIN_ADMIN.OPEN_NEW_TAB"|tu }} + +{% endif %} diff --git a/user/plugins/flex-objects/admin/templates/flex-objects/types/default/buttons/preview.html.twig b/user/plugins/flex-objects/admin/templates/flex-objects/types/default/buttons/preview.html.twig new file mode 100644 index 0000000..6307913 --- /dev/null +++ b/user/plugins/flex-objects/admin/templates/flex-objects/types/default/buttons/preview.html.twig @@ -0,0 +1,3 @@ + + {{ "PLUGIN_ADMIN.PREVIEW"|tu }} + diff --git a/user/plugins/flex-objects/admin/templates/flex-objects/types/default/buttons/save.html.twig b/user/plugins/flex-objects/admin/templates/flex-objects/types/default/buttons/save.html.twig new file mode 100644 index 0000000..379d97d --- /dev/null +++ b/user/plugins/flex-objects/admin/templates/flex-objects/types/default/buttons/save.html.twig @@ -0,0 +1,4 @@ +{% set task = task ?? 'save' %} + diff --git a/user/plugins/flex-objects/admin/templates/flex-objects/types/default/configure.html.twig b/user/plugins/flex-objects/admin/templates/flex-objects/types/default/configure.html.twig new file mode 100644 index 0000000..2d72493 --- /dev/null +++ b/user/plugins/flex-objects/admin/templates/flex-objects/types/default/configure.html.twig @@ -0,0 +1,103 @@ +{% extends 'partials/base.html.twig' %} +{% use 'flex-objects/types/default/titlebar/configure.html.twig' %} + +{% set name = view_config['form'] %} +{% set form = form ?? directory.directoryForm(name) %} + +{# Allowed actions #} +{% set can_save = can_save ?? user.authorize(view_config['authorize'] ?? 'admin.super') %} + +{# These variables can be overridden from the main template file #} +{% set allowed = allowed ?? (directory and form and can_save) %} +{% set back_route = back_route ?? ('/' ~ route.getRoute(1)) %} +{% set title_icon = title_icon ?? view_config['icon'] ?? 'fa-cog' %} +{% set title -%} + {%- set title_config = view_config['title'] ?? null -%} + {%- if title_config.template -%} + {{- include(template_from_string(title_config.template, 'configure title template')) -}} + {%- else -%} + {{- directory.title|tu }} - {{ 'PLUGIN_ADMIN.CONFIGURATION'|tu -}} + {% endif %} +{%- endset %} + +{% macro spanToggle(input, length) %} + {{ (repeat('  ', (length - input|length) / 2) ~ input ~ repeat('  ', (length - input|length) / 2))|raw }} +{% endmacro %} +{% import _self as macro %} + +{% block body %} + {% set back_url = back_url ?? admin_route(back_route) %} + + {{ parent() }} +{% endblock body %} + +{% block content_top %} + {% if allowed and user.authorize('admin.super') %} + {% set save_location = directory.getDirectoryConfigUri(name) %} +
    {{ "PLUGIN_ADMIN.SAVE_LOCATION"|tu }}: {{ url(save_location, false, true)|trim('/') }}
    + {% endif %} +{% endblock %} + +{% block topbar %} + {% if user.authorize('admin.super') %} +
    + {% set normalText = 'PLUGIN_ADMIN.NORMAL'|tu %} + {% set expertText = 'PLUGIN_ADMIN.EXPERT'|tu %} + {% set maxLen = max([normalText|length, expertText|length]) %} + {% set normalText = macro.spanToggle(normalText, maxLen) %} + {% set expertText = macro.spanToggle(expertText, maxLen) %} + +
    + + + + + +
    +
    + {% endif %} +{% endblock topbar %} + +{% block content %} + {{ parent() }} + + {% if allowed %} +
    +
    + {# TODO: RAW MODE +
    + {{ block('topbar') }} +
    + #} + {% block edit %} + {% include 'partials/blueprints.html.twig' with { form: form, data: form.data } %} + {% endblock %} +
    +
    + + {% include 'partials/modal-changes-detected.html.twig' %} + + {% else %} + + {% do page.modifyHeader('http_response_code', 404) %} +
    +

    {{ 'PLUGIN_ADMIN.ERROR'|tu }} 404

    +
    +

    + {{ 'PLUGIN_FLEX_OBJECTS.ERROR.PAGE_NOT_EXIST'|tu }} +

    +
    +
    + + {% endif %} +{% endblock %} + +{% block bottom %} + {{ parent() }} + + {# TODO: RAW MODE + + #} +{% endblock bottom %} diff --git a/user/plugins/flex-objects/admin/templates/flex-objects/types/default/edit.html.twig b/user/plugins/flex-objects/admin/templates/flex-objects/types/default/edit.html.twig new file mode 100644 index 0000000..ecab064 --- /dev/null +++ b/user/plugins/flex-objects/admin/templates/flex-objects/types/default/edit.html.twig @@ -0,0 +1,121 @@ +{% extends 'partials/base.html.twig' %} +{% use 'flex-objects/types/default/titlebar/edit.html.twig' %} + +{# Avoid defining form and object twice: object should always come from the form! #} +{% if form is not defined %} + {% set form = object.form %} + {% set object = form.object %} +{% endif %} + +{# Allowed actions #} +{% set can_list = can_list ?? directory.isAuthorized('list', 'admin', user) %} +{% set can_read = can_read ?? (object.exists ? object.isAuthorized('read', 'admin', user) : directory.isAuthorized('create', 'admin', user)) %} +{% set can_create = can_create ?? object.isAuthorized('create', 'admin', user) %} +{% set can_save = can_save ?? (object.exists ? object.isAuthorized('update', 'admin', user) : directory.isAuthorized('create', 'admin', user)) %} +{% set can_delete = can_delete ?? (object.exists and object.isAuthorized('delete', 'admin', user)) %} +{% set can_translate = can_translate ?? (admin.multilang and object.hasFlexFeature('flex-translate')) %} +{% set can_preview = can_preview ?? (can_read and object.exists and (directory.config('admin.views.preview.enabled') ?? directory.config('admin.preview.enabled', false))) %} + +{# Translations #} +{% if can_translate %} + {% set translate_include_default = translate_include_default ?? grav.config.get('system.languages.include_default_lang_file_extension', true) %} + {% set all_languages = grav.admin.siteLanguages %} + {% set admin_languages = admin.languages_enabled %} + {% set default_language = grav.language.default %} + {% set object_language = object.language %} + {% set language = controller.language %} + {% set has_translation = object.hasTranslation(language, false) %} + + {# + {% if translate_include_default %} + {% set all_languages = all_languages|merge({'': 'Default'}) %} + {% set admin_languages = admin_languages|merge({'': ''}) %} + {% set object_languages = object.languages(true) %} + {% else %} + #} + {% set language = language ?: default_language %} + {% set object_language = object_language ?: default_language %} + {% set object_languages = object.languages(false) %} + {# endif #} +{% endif %} + +{# These variables can be overridden from the main template file #} +{% set allowed = allowed ?? (directory and (object.exists and (can_read or can_save)) or (action == 'add' and can_read)) %} +{% set back_route = back_route ?? ('/' ~ (action != 'edit' and not key ? route.getRoute(1, not can_list ? -1 : null) : route.getRoute(1, not can_list ? -2 : -1))) %} +{% set title_icon = title_icon ?? view_config['icon'] ?? directory.config.admin.menu.list.icon ?? 'fa-file-text-o' %} +{% set title -%} + {%- set title_config = view_config['title'] -%} + {%- if title_config.template -%} + {{- include(template_from_string(title_config.template, 'edit title template')) -}} + {%- else -%} + {{- title ?? object.form.getValue('title') ?? object.title ?? key -}} + {% endif %} +{%- endset %} + +{% block body %} + {% set back_url = back_url ?? admin_route(back_route) %} + {% set id = key %} + {% set blueprint = blueprint ?? form.blueprint %} + + {{ parent() }} +{% endblock body %} + +{% block content_top %} + {% if allowed and user.authorize('admin.super') %} + {% if directory and object or action == 'add' %} + {% set save_location = object.getStorageFolder() ?? directory.getStorageFolder() %} +
    {{ "PLUGIN_ADMIN.SAVE_LOCATION"|tu }}: {{ url(save_location, false, true)|trim('/') }} {{ not object.exists ? '[' ~ 'PLUGIN_FLEX_OBJECTS.NEW'|tu|upper ~ ']' }}
    + {% endif %} + {% endif %} + {% if object.exists and form.flash.exists %} +
    + {{ 'PLUGIN_FLEX_OBJECTS.STATE.EDITING_DRAFT'|tu }} +
    + {% endif %} +{% endblock %} + +{% block content %} + {% if allowed %} +
    +
    +
    + {% block topbar %}{% endblock %} +
    + {% block edit %} + {% include 'partials/blueprints.html.twig' with { form: form, context: object, data: object } %} + {% endblock %} +
    +
    + + {% include 'partials/modal-changes-detected.html.twig' %} + + {% if can_delete %} + {% include ['flex-objects/types/' ~ target ~ '/modals/remove.html.twig', 'flex-objects/types/default/modals/remove.html.twig'] with { name: target } %} + {% endif %} + + {% elseif (object.exists) %} + + {% do page.modifyHeader('http_response_code', 403) %} +
    +

    {{ 'PLUGIN_ADMIN.ERROR'|tu }} 403

    +
    +

    + {{ 'PLUGIN_FLEX_OBJECTS.ERROR.PAGE_FORBIDDEN'|tu }} +

    +
    +
    + + {% else %} + + {% do page.modifyHeader('http_response_code', 404) %} +
    +

    {{ 'PLUGIN_ADMIN.ERROR'|tu }} 404

    +
    +

    + {{ 'PLUGIN_FLEX_OBJECTS.ERROR.PAGE_NOT_EXIST'|tu }} +

    +
    +
    + + {% endif %} +{% endblock %} diff --git a/user/plugins/flex-objects/admin/templates/flex-objects/types/default/list.html.twig b/user/plugins/flex-objects/admin/templates/flex-objects/types/default/list.html.twig new file mode 100644 index 0000000..c9532d1 --- /dev/null +++ b/user/plugins/flex-objects/admin/templates/flex-objects/types/default/list.html.twig @@ -0,0 +1,98 @@ +{% extends 'partials/base.html.twig' %} +{% use 'flex-objects/types/default/titlebar/list.html.twig' %} + +{# Allowed actions #} +{% set export = directory.config('admin.views.export') ?? directory.config('admin.export') ?? [] %} +{% set can_export = can_export ?? (export['enabled'] ?? export|array|count)|bool %} +{% set can_create = can_create ?? directory.isAuthorized('create', 'admin', user) %} +{% set can_translate = can_translate ?? (admin.multilang and directory.object.hasFlexFeature('flex-translate')) %} + +{% set per_page = per_page ?? grav.uri.currentUri.queryParam('per_page') %} + +{# Translations #} +{% if can_translate %} + {% set translate_include_default = translate_include_default ?? grav.config.get('system.languages.include_default_lang_file_extension', true) %} + {% set all_languages = grav.admin.siteLanguages %} + {% set admin_languages = admin.languages_enabled %} + {% set default_language = grav.language.default %} + {% set language = controller.language %} + {# + {% if translate_include_default %} + {% set all_languages = all_languages|merge({'': 'Default'}) %} + {% set admin_languages = admin_languages|merge({'': ''}) %} + {% else %} + #} + {% set language = language ?: default_language %} + {# endif #} +{% endif %} + +{# These variables can be overridden from the main template file #} +{% set allowed = allowed ?? (directory and directory.isAuthorized('list', 'admin', user)) %} +{% set back_route = back_route ?? route.getRoute(1, -1) %} + +{% set configure_path = directory.config('admin.router.actions.configure.path') %} +{% set configure_route = configure_route ?? (configure_path ? route.withRoute(admin_route(configure_path)|trim('/')) : null) %} +{% set configure_route = configure_route ?? route.withGravParam('', 'configure') %} + +{% set title_icon = title_icon ?? view_config['icon'] ?? directory.config.admin.menu.list.icon ?? 'fa-file-text-o' %} +{% set title -%} + {%- set title_config = view_config['title'] ?? null -%} + {%- if title_config.template -%} + {{- include(template_from_string(title_config.template, 'configure title template')) -}} + {%- else -%} + {{- directory.title|tu -}} + {% endif %} +{%- endset %} + +{% set schema = directory.blueprint.schema %} + +{% do assets.addJs('plugin://flex-objects/js/flex-objects.js', { 'group': 'bottom', 'loading': 'defer' }) %} + +{% block body %} + {% set collection = directory ? collection.isAuthorized('list', 'admin', user) %} + {% set directory_config = view_config['options'] ?? config.get('plugins.flex-objects.admin_list', { per_page: 15, order: { by: 'updated_timestamp', dir: 'desc' }}) %} + {% set per_page = max(1, per_page ?? directory_config.per_page) %} + {% set table = directory ? flex.dataTable(collection.flexDirectory(), { collection: collection, limit: per_page, sort: directory_config.order.by ~ '|' ~ directory_config.order.dir }) %} + {% set back_url = admin_route(back_route) %} + {% set configure_url = (directory.config('admin.views.configure.hidden') ?? directory.config('admin.configure.hidden', false)) is not same as(true) ? configure_route.toString(true) %} + + {% set fields = table.getColumns() %} + {% set fields_count = fields ? count(fields) : 0 %} + {% set fields_width = 8 %} + {% set fields_set = 0 %} + {% set title_field = view_config['title'] %} + {% for key,options in fields %} + {% set fields_width = fields_width + options.width ?: 0 %} + {% set fields_set = fields_set + (options.width ? 1 : 0) %} + {% if not title_field and options.link == 'edit' %} + {% set title_field = key %} + {% endif %} + {% endfor %} + + {{ parent() }} +{% endblock body %} + +{% block content_top %} +{% if allowed and user.authorize('admin.super') %} + {% set save_location = directory.getStorageFolder() %} +
    {{ "PLUGIN_ADMIN.SAVE_LOCATION"|tu }}: {{ url(save_location, false, true)|trim('/') }}
    +{% endif %} +{% endblock %} + +{% block content %} +{% if allowed %} + {% block content_list %} + {% include ['flex-objects/types/' ~ target ~ '/list/list.html.twig', 'flex-objects/types/default/list/list.html.twig'] %} + {% endblock %} +{% else %} + {% do page.modifyHeader('http_response_code', 404) %} +
    +

    {{ 'PLUGIN_ADMIN.ERROR'|tu }} 404

    +
    +

    + {{ 'PLUGIN_FLEX_OBJECTS.ERROR.PAGE_NOT_EXIST'|tu }} +

    +
    +
    +{% endif %} +{% endblock %} diff --git a/user/plugins/flex-objects/admin/templates/flex-objects/types/default/list/list.html.twig b/user/plugins/flex-objects/admin/templates/flex-objects/types/default/list/list.html.twig new file mode 100644 index 0000000..4f90ad9 --- /dev/null +++ b/user/plugins/flex-objects/admin/templates/flex-objects/types/default/list/list.html.twig @@ -0,0 +1,112 @@ +{% block directory %} +
    + {% if not fields %} + {% block no_list %} +
    +

    {{ 'PLUGIN_FLEX_OBJECTS.ERROR.BLUEPRINT_NO_LIST'|tu( target, null )|raw }}

    +
      +
    • + {{ 'PLUGIN_FLEX_OBJECTS.ERROR.BLUEPRINT_NO_LIST_ADVISE'|tu }} +
    • +
    • + {{ 'PLUGIN_FLEX_OBJECTS.ERROR.BLUEPRINT_NO_LIST_TEMPLATE'|tu( target, null )|raw }} +
    • +
    +
    + {% endblock %} + {% elseif not collection.count %} + {% block no_entries %} +
    + {% if directory.isAuthorized('create', 'admin', user) %} + {% set createLink = admin_route(flex.adminRoute(collection, {action: 'add'})) %} + {{ 'PLUGIN_FLEX_OBJECTS.ERROR.LIST_EMPTY_ADD'|tu(createLink, null)|raw }} + {% else %} + {{ 'PLUGIN_FLEX_OBJECTS.ERROR.LIST_EMPTY'|tu }} + {% endif %} +
    + {% endblock %} + {% else %} + {% block entries %} + {% set per_page = per_page ?? directory_config.per_page %} + + {% set tableFields = [] %} + {% set searchFields = [] %} + {% for key, options in fields %} + {% set name = key %} + {% set sortField = options.sort.field ?? key %} + {% set title = (options.field.label ?? schema.get(options.alias ?? key).label)|tu %} + {% set width = options.width ?: ((100-fields_width) / ((fields_count-fields_set) ?: 1))|round(3) %} + {% set title_class = options.title_class ?: '' %} + {% set data_class = options.data_class ?: '' %} + + {# Vuetable doesn't like field names with `.` in them, so we convert name and sortField to `_` #} + {% set tableFields = tableFields|merge([ + { + name: name|replace({'.': '_'}), + sortField: sortField, + title: title ?? 'N/A', + width: width ~ '%', + titleClass: title_class, + dataClass: data_class + } + ]) %} + + {# FIXME: Search fields should be passed and individually customizable, right now defaulting to all fields selected #} + {% set searchFields = searchFields|merge([key|replace({'.': '_'})]) %} + {% endfor %} + {% set tableFields = tableFields|merge([{ name: '_actions_', title: 'Actions', titleClass: 'right' }]) %} + + + {% set list = table.jsonSerialize %} + +
    + + {% for i in 0..((min(per_page, list.data|count) + 3) - 1) %} + + + + + + + + + + + + + + + + + + + + + + + + {% endfor %} + +
    + {% endblock %} + {% endif %} + + {% block modals %} + {% include 'flex-objects/types/default/modals/remove.html.twig' with { name: target } %} + {% endblock %} +
    +{% endblock %} diff --git a/user/plugins/flex-objects/admin/templates/flex-objects/types/default/list/list_actions.html.twig b/user/plugins/flex-objects/admin/templates/flex-objects/types/default/list/list_actions.html.twig new file mode 100644 index 0000000..e4d9da5 --- /dev/null +++ b/user/plugins/flex-objects/admin/templates/flex-objects/types/default/list/list_actions.html.twig @@ -0,0 +1,39 @@ +{% set object_title = title_field ? "'" ~ object[title_field]|join(' ') ~ "'" : 'Item' %} +{% set can_read = object.isAuthorized('read', 'admin', user) %} +{% set can_update = object.isAuthorized('update', 'admin', user) %} +{% set can_delete = object.isAuthorized('delete', 'admin', user) %} + +{% if can_read and object.getRoute() %} + {% block action_preview %} + + + + {% endblock %} +{% endif %} + +{% if can_update %} + {% block action_edit %} + + + + {% endblock %} +{% elseif can_read %} + {% block action_read %} + + + + {% endblock %} +{% endif %} + +{% if can_delete %} + {% block action_delete %} + + + + {% endblock %} +{% endif %} diff --git a/user/plugins/flex-objects/admin/templates/flex-objects/types/default/modals/remove.html.twig b/user/plugins/flex-objects/admin/templates/flex-objects/types/default/modals/remove.html.twig new file mode 100644 index 0000000..f37500a --- /dev/null +++ b/user/plugins/flex-objects/admin/templates/flex-objects/types/default/modals/remove.html.twig @@ -0,0 +1,13 @@ +
    +
    + {# FIXME -name|singularize- is not translatable #} +

    {{ 'PLUGIN_FLEX_OBJECTS.ACTION.DELETE_N'|tu }} {{ name|singularize|capitalize }}

    +

    + {{ 'PLUGIN_FLEX_OBJECTS.ACTION.REALLY_DELETE'|tu( name|singularize, null ) }} +

    +
    + + {{ "PLUGIN_ADMIN.CONTINUE"|tu }} +
    +
    +
    diff --git a/user/plugins/flex-objects/admin/templates/flex-objects/types/default/preview.html.twig b/user/plugins/flex-objects/admin/templates/flex-objects/types/default/preview.html.twig new file mode 100644 index 0000000..3e24744 --- /dev/null +++ b/user/plugins/flex-objects/admin/templates/flex-objects/types/default/preview.html.twig @@ -0,0 +1,62 @@ +{% extends 'partials/base.html.twig' %} +{% use 'flex-objects/types/default/titlebar/preview.html.twig' %} + +{# Allowed actions #} +{% set can_preview = can_preview ?? (object.exists and (view_config['enabled'] ?? false)) %} +{% set can_translate = can_translate ?? (admin.multilang and object.hasFlexFeature('flex-translate')) %} + +{# These variables can be overridden from the main template file #} +{% set allowed = allowed ?? (directory and (object.exists or action == 'add')) %} +{% set back_route = back_route ?? ('/' ~ route.getRoute(1)) %} +{% set title_icon = title_icon ?? view_config['icon'] ?? directory.config.admin.menu.list.icon ?? 'fa-file-text-o' %} +{% set title -%} + {%- set title_config = view_config['title'] -%} + {%- if title_config.template -%} + {{- include(template_from_string(title_config.template, 'edit title template')) -}} + {%- else -%} + {{- title ?? object.form.getValue('title') ?? object.title ?? key -}} + {% endif %} +{%- endset %} +{% set preview_url -%} + {%- set route_config = view_config['route'] -%} + {%- if route_config.template -%} + {{- include(template_from_string(route_config.template, 'preview route template')) -}} + {%- else -%} + {{- preview_url ?? object.getRoute().uri ?: '' -}} + {%- endif -%} +{% endset -%} + +{% block body %} + {% if not can_preview or not preview_url %} + {% set allowed = false %} + {% endif %} + {% set id = key %} + {% set blueprint = object.blueprint ?? directory.blueprint %} + {% set back_url = back_url ?? admin_route(back_route) %} + + {{ parent() }} +{% endblock body %} + +{% block content_wrapper %} +{% if can_preview and allowed and preview_url %} +
    +
    + +
    +
    +{% else %} + {{ parent() }} +{% endif %} +{% endblock content_wrapper %} + +{% block content %} + {% do page.modifyHeader('http_response_code', 404) %} +
    +

    {{ 'PLUGIN_ADMIN.ERROR'|tu }} 404

    +
    +

    + {{ 'PLUGIN_FLEX_OBJECTS.ERROR.PAGE_NOT_EXIST'|tu }} +

    +
    +
    +{% endblock content %} \ No newline at end of file diff --git a/user/plugins/flex-objects/admin/templates/flex-objects/types/default/titlebar/configure.html.twig b/user/plugins/flex-objects/admin/templates/flex-objects/types/default/titlebar/configure.html.twig new file mode 100644 index 0000000..08d6f86 --- /dev/null +++ b/user/plugins/flex-objects/admin/templates/flex-objects/types/default/titlebar/configure.html.twig @@ -0,0 +1,32 @@ +{% block titlebar %} + {% block titlebar_button_bar %} +
    + {# BACK #} + {% block back_button %} + {% include ['flex-objects/types/' ~ target ~ '/buttons/back.html.twig', 'flex-objects/types/default/buttons/back.html.twig'] %} + {% endblock back_button %} + + {% block extra_buttons %}{% endblock extra_buttons %} + + {# SAVE #} + {% if can_save %} + {% block save_button %} + {% include ['flex-objects/types/' ~ target ~ '/buttons/save.html.twig', 'flex-objects/types/default/buttons/save.html.twig'] with {task: 'configure'} %} + {% endblock save_button %} + {% endif %} +
    + {% endblock titlebar_button_bar %} + + {% block titlebar_title %} +

    + {% if allowed %} + + {{ title }} + {% else %} + + {{ 'PLUGIN_ADMIN.ERROR'|tu }} +   {% endif %} +

    + {% endblock titlebar_title %} + +{% endblock %} diff --git a/user/plugins/flex-objects/admin/templates/flex-objects/types/default/titlebar/edit.html.twig b/user/plugins/flex-objects/admin/templates/flex-objects/types/default/titlebar/edit.html.twig new file mode 100644 index 0000000..b209e44 --- /dev/null +++ b/user/plugins/flex-objects/admin/templates/flex-objects/types/default/titlebar/edit.html.twig @@ -0,0 +1,46 @@ +{% block titlebar %} + {% block titlebar_button_bar %} +
    + {# BACK #} + {% block back_button %} + {% include ['flex-objects/types/' ~ target ~ '/buttons/back.html.twig', 'flex-objects/types/default/buttons/back.html.twig'] %} + {% endblock back_button %} + + {# PREVIEW #} + {% if can_preview %} + {% block preview_button %} + {% include ['flex-objects/types/' ~ target ~ '/buttons/preview.html.twig', 'flex-objects/types/default/buttons/preview.html.twig'] %} + {% endblock preview_button %} + {% endif %} + + {# DELETE #} + {% if can_delete %} + {% block delete_button %} + {% include ['flex-objects/types/' ~ target ~ '/buttons/delete.html.twig', 'flex-objects/types/default/buttons/delete.html.twig'] %} + {% endblock delete_button %} + {% endif %} + + {% block extra_buttons %}{% endblock extra_buttons %} + + {# SAVE #} + {% if allowed and can_save %} + {% block save_button %} + {% include ['flex-objects/types/' ~ target ~ '/buttons/save.html.twig', 'flex-objects/types/default/buttons/save.html.twig'] with {task: 'save'} %} + {% endblock save_button %} + {% endif %} +
    + {% endblock titlebar_button_bar %} + + {% block titlebar_title %} +

    + {% if allowed %} + + {{ not object.exists ? '[' ~ 'PLUGIN_FLEX_OBJECTS.NEW'|tu|upper ~ ']' }} {{ title|tu }} + {% else %} + + {{ 'PLUGIN_ADMIN.ERROR'|tu }} + {% endif %} +

    + {% endblock titlebar_title %} + +{% endblock %} diff --git a/user/plugins/flex-objects/admin/templates/flex-objects/types/default/titlebar/list.html.twig b/user/plugins/flex-objects/admin/templates/flex-objects/types/default/titlebar/list.html.twig new file mode 100644 index 0000000..03a0188 --- /dev/null +++ b/user/plugins/flex-objects/admin/templates/flex-objects/types/default/titlebar/list.html.twig @@ -0,0 +1,48 @@ +{% block titlebar %} + {% block titlebar_button_bar %} +
    + {# BACK #} + {% block back_button %} + {% include ['flex-objects/types/' ~ target ~ '/buttons/back.html.twig', 'flex-objects/types/default/buttons/back.html.twig'] %} + {% endblock back_button %} + + {# EXPORT #} + {% if can_export %} + {% block export_button %} + {% include ['flex-objects/types/' ~ target ~ '/buttons/export.html.twig', 'flex-objects/types/default/buttons/export.html.twig'] with {export: directory.config('admin.views.export') ?? directory.config('admin.export') ?? []} %} + {% endblock export_button %} + {% endif %} + + {# CREATE #} + {% if can_create %} + {% block create_button %} + {% include ['flex-objects/types/' ~ target ~ '/buttons/add.html.twig', 'flex-objects/types/default/buttons/add.html.twig'] %} + {% endblock create_button %} + {% endif %} + + {# LANGUAGES #} + {% if can_translate %} + {% block languages_button %} + {% include ['flex-objects/types/' ~ target ~ '/buttons/languages.html.twig', 'flex-objects/types/default/buttons/languages.html.twig'] %} + {% endblock languages_button %} + {% endif %} + + {# CONFIGURE #} + {% block configure %} + {% include 'flex-objects/types/default/buttons/configuration.html.twig' %} + {% endblock configure %} +
    + {% endblock titlebar_button_bar %} + + {% block titlebar_title %} +

    + {% if allowed %} + + {{ directory ? title|tu : 'Error' }} + {% else %} + + {{ 'PLUGIN_ADMIN.ERROR'|tu }} +  {% endif %} +

    + {% endblock titlebar_title %} +{% endblock %} diff --git a/user/plugins/flex-objects/admin/templates/flex-objects/types/default/titlebar/preview.html.twig b/user/plugins/flex-objects/admin/templates/flex-objects/types/default/titlebar/preview.html.twig new file mode 100644 index 0000000..6b7bad7 --- /dev/null +++ b/user/plugins/flex-objects/admin/templates/flex-objects/types/default/titlebar/preview.html.twig @@ -0,0 +1,30 @@ +{% block titlebar %} + {% block titlebar_button_bar %} +
    + {# BACK #} + {% block back_button %} + {% include ['flex-objects/types/' ~ target ~ '/buttons/back.html.twig', 'flex-objects/types/default/buttons/back.html.twig'] %} + {% endblock back_button %} + + {# PREVIEW #} + {% if can_preview %} + {% block preview_button %} + {% include ['flex-objects/types/' ~ target ~ '/buttons/preview-open.html.twig', 'flex-objects/types/default/buttons/preview-open.html.twig'] %} + {% endblock preview_button %} + {% endif %} +
    + {% endblock titlebar_button_bar %} + + {% block titlebar_title %} +

    + {% if allowed %} + + {{ "PLUGIN_ADMIN.PREVIEW"|tu }}: {{ not object.exists ? '[' ~ 'PLUGIN_FLEX_OBJECTS.NEW'|tu|upper ~ ']' }} {{ title }} + {% else %} + + {{ 'PLUGIN_ADMIN.ERROR'|tu }} + {% endif %} +

    + {% endblock titlebar_title %} + +{% endblock %} diff --git a/user/plugins/flex-objects/admin/templates/flex-objects/types/default/titlebar/types.html.twig b/user/plugins/flex-objects/admin/templates/flex-objects/types/default/titlebar/types.html.twig new file mode 100644 index 0000000..97789de --- /dev/null +++ b/user/plugins/flex-objects/admin/templates/flex-objects/types/default/titlebar/types.html.twig @@ -0,0 +1,22 @@ +{% block titlebar %} + {% block titlebar_button_bar %} +
    + {# BACK #} + {% block back_button %} + {% include 'flex-objects/types/default/buttons/back.html.twig' %} + {% endblock back_button %} + + {# CONFIGURE #} + {% block configure %} + {% include 'flex-objects/types/default/buttons/configuration.html.twig' %} + {% endblock configure %} +
    + {% endblock titlebar_button_bar %} + + {% block titlebar_title %} +

    + + {{ "PLUGIN_FLEX_OBJECTS.TITLE"|tu }} +

    + {% endblock titlebar_title %} +{% endblock %} diff --git a/user/plugins/flex-objects/admin/templates/flex-objects/types/default/types.html.twig b/user/plugins/flex-objects/admin/templates/flex-objects/types/default/types.html.twig new file mode 100644 index 0000000..88b1ab2 --- /dev/null +++ b/user/plugins/flex-objects/admin/templates/flex-objects/types/default/types.html.twig @@ -0,0 +1,46 @@ +{% extends 'partials/base.html.twig' %} +{% use 'flex-objects/types/default/titlebar/types.html.twig' %} + +{% set flex = grav['flex_objects'] %} + +{# These variables can be overridden from the main template file #} +{% set back_route = back_route ?? ('/' ~ route.getRoute(1, -1)) %} +{% set configure_route = '/plugins/flex-objects' %} + +{% block body %} + {% set back_url = admin_route(back_route) %} + {% set configure_url = configure_route ? admin_route(configure_route) : null %} + + {{ parent() }} +{% endblock body %} + +{% block content %} + +

    {{ 'PLUGIN_FLEX_OBJECTS.TYPES_TITLE'|tu }}

    + +
    + {% for name,directory in flex.directories if directory.enabled and directory.config('admin.hidden', false) is not same as(true) and not directory.config('admin.menu') %} + {% try %} + {% set collection = directory.collection %} + {% if flex.adminRoute(collection) %} +
    + +

    {{ directory.title|tu }} {{ collection.isAuthorized('list', 'admin', user).count }}

    +

    + {{ directory.description }} +

    +
    + {% endif %} + {% catch %} +
    +

    {{ 'PLUGIN_FLEX_OBJECTS.ERROR.BAD_DIRECTORY'|tu }} '{{ name }}'

    +

    + {{ e.message }} +

    +
    + {% endcatch %} + {% endfor %} + +
    + +{% endblock %} \ No newline at end of file diff --git a/user/plugins/flex-objects/admin/templates/flex-objects/types/pages/buttons/add.html.twig b/user/plugins/flex-objects/admin/templates/flex-objects/types/pages/buttons/add.html.twig new file mode 100644 index 0000000..74242aa --- /dev/null +++ b/user/plugins/flex-objects/admin/templates/flex-objects/types/pages/buttons/add.html.twig @@ -0,0 +1,20 @@ +
    + + + +
    diff --git a/user/plugins/flex-objects/admin/templates/flex-objects/types/pages/buttons/back.html.twig b/user/plugins/flex-objects/admin/templates/flex-objects/types/pages/buttons/back.html.twig new file mode 100644 index 0000000..df0761a --- /dev/null +++ b/user/plugins/flex-objects/admin/templates/flex-objects/types/pages/buttons/back.html.twig @@ -0,0 +1,3 @@ + + + diff --git a/user/plugins/flex-objects/admin/templates/flex-objects/types/pages/buttons/copy.html.twig b/user/plugins/flex-objects/admin/templates/flex-objects/types/pages/buttons/copy.html.twig new file mode 100644 index 0000000..47ec501 --- /dev/null +++ b/user/plugins/flex-objects/admin/templates/flex-objects/types/pages/buttons/copy.html.twig @@ -0,0 +1,4 @@ +{# href="{{ uri.addNonce(route.withoutParams().withGravParam('task', 'copy').getUri(), 'admin-form', 'admin-nonce') }}" #} + + {{ "PLUGIN_ADMIN.COPY"|tu }} + diff --git a/user/plugins/flex-objects/admin/templates/flex-objects/types/pages/buttons/delete.html.twig b/user/plugins/flex-objects/admin/templates/flex-objects/types/pages/buttons/delete.html.twig new file mode 100644 index 0000000..859b38b --- /dev/null +++ b/user/plugins/flex-objects/admin/templates/flex-objects/types/pages/buttons/delete.html.twig @@ -0,0 +1,3 @@ + + {{ "PLUGIN_ADMIN.DELETE"|tu }} + diff --git a/user/plugins/flex-objects/admin/templates/flex-objects/types/pages/buttons/move.html.twig b/user/plugins/flex-objects/admin/templates/flex-objects/types/pages/buttons/move.html.twig new file mode 100644 index 0000000..17f607c --- /dev/null +++ b/user/plugins/flex-objects/admin/templates/flex-objects/types/pages/buttons/move.html.twig @@ -0,0 +1,6 @@ + + {{ "PLUGIN_ADMIN.MOVE"|tu }} + +
    + {% include 'partials/page-move.html.twig' with { blueprints: admin.blueprints('admin/pages/move'), data: context } %} +
    \ No newline at end of file diff --git a/user/plugins/flex-objects/admin/templates/flex-objects/types/pages/buttons/nav-child.html.twig b/user/plugins/flex-objects/admin/templates/flex-objects/types/pages/buttons/nav-child.html.twig new file mode 100644 index 0000000..778ccac --- /dev/null +++ b/user/plugins/flex-objects/admin/templates/flex-objects/types/pages/buttons/nav-child.html.twig @@ -0,0 +1,9 @@ +{% if child_url %} + + + +{% else %} + + + +{% endif %} diff --git a/user/plugins/flex-objects/admin/templates/flex-objects/types/pages/buttons/nav-next.html.twig b/user/plugins/flex-objects/admin/templates/flex-objects/types/pages/buttons/nav-next.html.twig new file mode 100644 index 0000000..c38113a --- /dev/null +++ b/user/plugins/flex-objects/admin/templates/flex-objects/types/pages/buttons/nav-next.html.twig @@ -0,0 +1,9 @@ +{% if next_url %} + + + +{% else %} + + + +{% endif %} diff --git a/user/plugins/flex-objects/admin/templates/flex-objects/types/pages/buttons/nav-parent.html.twig b/user/plugins/flex-objects/admin/templates/flex-objects/types/pages/buttons/nav-parent.html.twig new file mode 100644 index 0000000..b57f851 --- /dev/null +++ b/user/plugins/flex-objects/admin/templates/flex-objects/types/pages/buttons/nav-parent.html.twig @@ -0,0 +1,9 @@ +{% if parent_url %} + + + +{% else %} + + + +{% endif %} diff --git a/user/plugins/flex-objects/admin/templates/flex-objects/types/pages/buttons/nav-prev.html.twig b/user/plugins/flex-objects/admin/templates/flex-objects/types/pages/buttons/nav-prev.html.twig new file mode 100644 index 0000000..141e9b2 --- /dev/null +++ b/user/plugins/flex-objects/admin/templates/flex-objects/types/pages/buttons/nav-prev.html.twig @@ -0,0 +1,9 @@ +{% if prev_url %} + + + +{% else %} + + + +{% endif %} \ No newline at end of file diff --git a/user/plugins/flex-objects/admin/templates/flex-objects/types/pages/buttons/preview.html.twig b/user/plugins/flex-objects/admin/templates/flex-objects/types/pages/buttons/preview.html.twig new file mode 100644 index 0000000..7445322 --- /dev/null +++ b/user/plugins/flex-objects/admin/templates/flex-objects/types/pages/buttons/preview.html.twig @@ -0,0 +1,5 @@ +{% if object.routable and object.published %} + + + +{% endif %} diff --git a/user/plugins/flex-objects/admin/templates/flex-objects/types/pages/buttons/save.html.twig b/user/plugins/flex-objects/admin/templates/flex-objects/types/pages/buttons/save.html.twig new file mode 100644 index 0000000..fd401bc --- /dev/null +++ b/user/plugins/flex-objects/admin/templates/flex-objects/types/pages/buttons/save.html.twig @@ -0,0 +1,23 @@ +{% set task = task ?? 'save' %} +
    + + {% if can_translate %} + {% set untranslated = admin_languages|array_diff(object_languages|merge([language])) %} + {% if count(untranslated) %} + + + {% endif %} + {% endif %} +
    diff --git a/user/plugins/flex-objects/admin/templates/flex-objects/types/pages/edit.html.twig b/user/plugins/flex-objects/admin/templates/flex-objects/types/pages/edit.html.twig new file mode 100644 index 0000000..a370b87 --- /dev/null +++ b/user/plugins/flex-objects/admin/templates/flex-objects/types/pages/edit.html.twig @@ -0,0 +1,236 @@ +{% extends 'flex-objects/types/default/edit.html.twig' %} + +{# Avoid defining form and object twice: object should always come from the form! #} +{% set expert = user.authorize('admin.super') and admin.session.expert != '0' %} +{% if expert or form is not defined %} + {% set form = object.form(expert ? 'raw' : '') %} + {% set object = form.object %} +{% endif %} + +{% set title = title ?? form.getValue('header.title') ?? object.title ?? key %} +{% set parent = object.parent %} +{% set can_read = can_read ?? (object.exists ? object.isAuthorized('read', 'admin', user) : object.isAuthorized('create', 'admin', user))|bool %} +{% set can_copy = can_copy ?? (parent.exists and parent.isAuthorized('create', 'admin', user)) %} +{% set can_create = can_create ?? (object.exists and object.isAuthorized('create', 'admin', user)) %} +{% set can_save = can_save ?? (object.exists ? object.isAuthorized('update', 'admin', user) : object.isAuthorized('create', 'admin', user))|bool %} +{% set can_move = can_move ?? can_save and form.blueprint.schema.property('route').type is same as('parents') %} +{% set can_translate = can_translate ?? (admin.multilang and object.hasFlexFeature('page-translate') and not object.root()) %} + +{% macro spanToggle(input, length) %} + {{ (repeat('  ', (length - input|length) / 2) ~ input ~ repeat('  ', (length - input|length) / 2))|raw }} +{% endmacro %} +{% import _self as macro %} + +{% block body %} + {% set current_route = '/' ~ route.getRoute(1) %} + + {% if not object.root() %} + {% set child = object.children.first %} + {% set prev = object.prevSibling %} + {% set next = object.nextSibling %} + + {% set parent_url = parent and not parent.root ? admin_route(back_route) %} + {% set child_url = can_read and child ? admin_route(current_route ~ '/' ~ child.slug) %} + {% set prev_url = can_read and prev ? admin_route(back_route ~ '/' ~ prev.slug) %} + {% set next_url = can_read and next ? admin_route(back_route ~ '/' ~ next.slug) %} + {% endif %} + {% set back_url = back_url ?? admin_route(flex.adminRoute(directory.getFlexType())) %} + + {{ parent() }} +{% endblock body %} + +{% block back_button %} + {% include ['flex-objects/types/' ~ target ~ '/buttons/back.html.twig', 'flex-objects/types/pages/buttons/back.html.twig'] + with { back_url: back_url } %} + {% if not object.root() %} + {% include ['flex-objects/types/' ~ target ~ '/buttons/nav-prev.html.twig', 'flex-objects/types/pages/buttons/nav-prev.html.twig'] + with { prev_url: prev_url, title: prev.route } %} + {% include ['flex-objects/types/' ~ target ~ '/buttons/nav-parent.html.twig', 'flex-objects/types/pages/buttons/nav-parent.html.twig'] + with { parent_url: parent_url, title: parent.route } %} + {% include ['flex-objects/types/' ~ target ~ '/buttons/nav-child.html.twig', 'flex-objects/types/pages/buttons/nav-child.html.twig'] + with { child_url: child_url, title: child.route } %} + {% include ['flex-objects/types/' ~ target ~ '/buttons/nav-next.html.twig', 'flex-objects/types/pages/buttons/nav-next.html.twig'] + with { next_url: next_url, title: next.route } %} + {% endif %} +{% endblock back_button %} + +{% block preview_button %} + {% if object.exists and not object.root() %} + {% include ['flex-objects/types/' ~ target ~ '/buttons/preview.html.twig', 'flex-objects/types/pages/buttons/preview.html.twig'] %} + {% endif %} +{% endblock preview_button %} + +{% block delete_button %} + {# FIXME: add support for deleting root file only #} + {% if not object.root() %} + {% include ['flex-objects/types/' ~ target ~ '/buttons/delete.html.twig', 'flex-objects/types/pages/buttons/delete.html.twig'] %} + {% endif %} +{% endblock delete_button %} + +{% block extra_buttons %} + {% if object.exists and not object.root() %} + {% if can_create %} + {% include ['flex-objects/types/' ~ target ~ '/buttons/add.html.twig', 'flex-objects/types/pages/buttons/add.html.twig'] %} + {% endif %} + {% if can_copy %} + {% include ['flex-objects/types/' ~ target ~ '/buttons/copy.html.twig', 'flex-objects/types/pages/buttons/copy.html.twig'] %} + {% endif %} + {% if can_move %} + {% include ['flex-objects/types/' ~ target ~ '/buttons/move.html.twig', 'flex-objects/types/pages/buttons/move.html.twig'] %} + {% endif %} + {% endif %} +{% endblock extra_buttons %} + +{% block save_button %} + {% include ['flex-objects/types/' ~ target ~ '/buttons/save.html.twig', 'flex-objects/types/pages/buttons/save.html.twig'] %} +{% endblock save_button %} + +{% block content_top %} + {% if allowed and user.authorize('admin.super') %} +
    + {% set save_location = object.getStorageFolder() ?: directory.getStorageFolder() %} + {{ "PLUGIN_ADMIN.SAVE_LOCATION"|tu }}: {{ url(save_location, false, true)|trim('/') }} {{ not object.exists ? '[' ~ 'PLUGIN_FLEX_OBJECTS.NEW'|tu|upper ~ ']' }} (type: {{ (form.getValue('name') ?: 'default') }}) +
    + {% endif %} + {% if object.exists and form.flash.exists %} +
    + {{ 'PLUGIN_FLEX_OBJECTS.STATE.EDITING_DRAFT'|tu }} +
    + {% endif %} + {% if not object.exists %} +
    + {{ 'PLUGIN_FLEX_OBJECTS.STATE.NOT_CREATED_YET'|tu }} +
    + {% elseif can_translate %} + {% set is_default = language is same as(default_language) %} + {% if is_default and default_language in object_languages %} + {% if not translate_include_default and object.property('lang') %} + {# Handle default language extension #} +
    + {% set overrideLanguage = all_languages[object_language] ?? object_language %} + {{ 'PLUGIN_FLEX_OBJECTS.LANGUAGE.USING_OVERRIDE'|tu(overrideLanguage, null)|raw }} + {{ object.hasTranslation('', false) ? 'PLUGIN_FLEX_OBJECTS.LANGUAGE.UNUSED_DEFAULT'|tu|raw }} +
    + {% elseif translate_include_default %} + {% if not object.property('lang') %} +
    + {{ 'PLUGIN_FLEX_OBJECTS.LANGUAGE.USING_DEFAULT'|tu|raw }} +
    + {% elseif object.hasTranslation('', false) %} +
    + {{ 'PLUGIN_FLEX_OBJECTS.LANGUAGE.UNUSED_DEFAULT'|tu|raw }} +
    + {% endif %} + {% endif %} + {% elseif not has_translation %} +
    + {% set overrideLanguage = all_languages[language] ?? object_language %} + {{ 'PLUGIN_FLEX_OBJECTS.LANGUAGE.NOT_TRANSLATED_YET'|tu(overrideLanguage, null)|raw }} + {% if language == object_language %} + {{ 'PLUGIN_FLEX_OBJECTS.LANGUAGE.NO_FALLBACK_FOUND'|tu|raw }} + {% else %} + {% set overrideLanguage = all_languages[object_language] ?? object_language %} + {{ 'PLUGIN_FLEX_OBJECTS.LANGUAGE.FALLING_BACK'|tu(overrideLanguage, null)|raw }} + {% endif %} +
    + {% endif %} + {% endif %} +{% endblock content_top %} + +{% block topbar %} + {% if can_translate %} +
    + + {% if count(object_languages) > (object_language in object_languages)|int %} + + + {% endif %} +
    + {% endif %} + + {% if user.authorize('admin.super') %} +
    + {% set normalText = 'PLUGIN_ADMIN.NORMAL'|tu %} + {% set expertText = 'PLUGIN_ADMIN.EXPERT'|tu %} + {% set maxLen = max([normalText|length, expertText|length]) %} + {% set normalText = macro.spanToggle(normalText, maxLen) %} + {% set expertText = macro.spanToggle(expertText, maxLen) %} + +
    + + + + + +
    +
    + {% endif %} +{% endblock topbar %} + +{% block edit %} + {% include 'partials/blueprints.html.twig' with { context: object, data: object, blueprints: form.blueprint } %} +{% endblock edit %} + +{% block content %} + {{ parent() }} + + {% include 'partials/modal-changes-detected.html.twig' %} + + {% if object.exists %} + {% set modal_data = data({ + route: '/' ~ object.key, + name: object.header.child_type ?? object.blueprint.child_type ?? 'default' + }) %} + +
    + {% include 'partials/blueprints-new.html.twig' with { form: null, blueprints: admin.blueprints('admin/pages/new'), data: modal_data, form_id: 'new-page' } %} +
    + +
    + {% include 'partials/blueprints-new-folder.html.twig' with { form: null, blueprints: admin.blueprints('admin/pages/new_folder'), data: modal_data, form_id: 'new-folder' } %} +
    + +
    + {% include 'partials/blueprints-new.html.twig' with { form: null, blueprints: admin.blueprints('admin/pages/modular_new'), data: modal_data, form_id: 'new-module' } %} +
    + +
    + {% include 'partials/blueprints-copy.html.twig' with { blueprints: admin.blueprints('admin/pages/copy'), data: data({ title: object.title ~ ' (Copy)', folder: object.slug ~ '-copy' }), form_id: 'copy' } %} +
    + {% endif %} + + {# TODO: regular pages support extra modals from admin config #} + +
    +
    +

    {{ 'PLUGIN_FLEX_OBJECTS.PARENTS'|tu }}

    +
    {{ 'PLUGIN_FLEX_OBJECTS.STATE.LOADING'|tu }}
    +
    + +
    +
    + +{% endblock content %} + +{% block bottom %} + {{ parent() }} + +{% endblock bottom %} diff --git a/user/plugins/flex-objects/admin/templates/flex-objects/types/pages/list.html.twig b/user/plugins/flex-objects/admin/templates/flex-objects/types/pages/list.html.twig new file mode 100644 index 0000000..e4ab2f5 --- /dev/null +++ b/user/plugins/flex-objects/admin/templates/flex-objects/types/pages/list.html.twig @@ -0,0 +1,29 @@ +{% extends 'flex-objects/types/default/list.html.twig' %} + +{% set can_create = true %} + +{% block back_button %} + {% include ['flex-objects/types/' ~ target ~ '/buttons/back.html.twig', 'flex-objects/types/pages/buttons/back.html.twig'] %} +{% endblock back_button %} + +{% block create_button %} + {% for key, add_modal in config.plugins.admin.add_modals %} + {% if add_modal.show_in|default('bar') == 'bar' %} + {{ add_modal.label|tu }} + {% endif %} + {% endfor %} + + {% include ['flex-objects/types/' ~ target ~ '/buttons/add.html.twig', 'flex-objects/types/pages/buttons/add.html.twig'] %} +{% endblock %} + +{% block content_top %}{% endblock %} + +{% block content_list %} + {% set list_layout = grav.uri.param('layout', 'columns') %} + {% include [ + 'flex-objects/types/' ~ target ~ '/list/' ~ list_layout ~ '.html.twig', + 'flex-objects/types/pages/list/' ~ list_layout ~ '.html.twig', + 'flex-objects/types/' ~ target ~ '/list/list.html.twig', + 'flex-objects/types/pages/list/list.html.twig' + ] %} +{% endblock %} diff --git a/user/plugins/flex-objects/admin/templates/flex-objects/types/pages/list/columns.html.twig b/user/plugins/flex-objects/admin/templates/flex-objects/types/pages/list/columns.html.twig new file mode 100644 index 0000000..082bb61 --- /dev/null +++ b/user/plugins/flex-objects/admin/templates/flex-objects/types/pages/list/columns.html.twig @@ -0,0 +1,155 @@ +{% macro toggle(id, title, filters, name = null) %} + {% set name = id|fieldName %} + {% set filter = filters[name] ?? null %} + {% set value = filter is null ? 0 : (not filter)|int+1 %} + {% set classes = ['status-unchecked', 'status-checked', 'status-indeterminate'] %} + + + + + +{% endmacro %} + +{% import _self as macros %} + +{% block directory %} + {% set filters = grav.request.getCookieParams()['grav-admin-flexpages']|base64_decode|json_decode(true)['filters'] %} + {% set hidePanel = filters|length == 0 or (filters|length == 1 and filters['filters[search]']) %} +
    +
    +
    + + +
    +
    + + {{ 'PLUGIN_FLEX_OBJECTS.FILTER.PAGE_ATTRIBUTES'|tu }} + + {{ macros.toggle('filters.routable', 'Routable', filters) }} + {{ macros.toggle('filters.module', 'Module', filters) }} + {{ macros.toggle('filters.visible', 'Visible', filters) }} + {{ macros.toggle('filters.published', 'Published', filters) }} + {{ macros.toggle('filters.translated', 'Translated', filters) }} + {{ macros.toggle('filters.folder', 'Empty Folder', filters) }} +
    + + {% set selected = filters['filters[page_type]']|split(',') %} + {% set page_types = admin.types(null) %} {# directory.config('filters.ignore_page_types') #} +
    + + {{ 'PLUGIN_FLEX_OBJECTS.FILTER.PAGE_TYPES'|tu }} + + {% for name,title in page_types %} + + + + + {% endfor %} +
    + + {% set module_types = admin.modularTypes(null) %} {# directory.config('filters.ignore_module_types') #} + {% if module_types %} +
    + + {{ 'PLUGIN_FLEX_OBJECTS.FILTER.MODULAR_TYPES'|tu }} + + {% for name,title in module_types %} + + + + + {% endfor %} +
    + {% endif %} + + + {{ 'PLUGIN_FLEX_OBJECTS.ACTION.APPLY_FILTERS'|tu }} + + + {{ 'PLUGIN_FLEX_OBJECTS.ACTION.RESET_FILTERS'|tu }} + +
    +
    +
    + +
    +
    {{ 'PLUGIN_FLEX_OBJECTS.STATE.LOADING'|tu }}
    +
    +
    + +
    + + {# Modals #} +
    + {% include 'partials/blueprints-new.html.twig' with { blueprints: admin.blueprints('admin/pages/new'), data: obj_data, form_id: 'new-page' } %} +
    + +
    + {% include 'partials/blueprints-new-folder.html.twig' with { blueprints: admin.blueprints('admin/pages/new_folder'), data: obj_data, form_id: 'new-folder' } %} +
    + +
    + {% include 'partials/blueprints-new.html.twig' with { blueprints: admin.blueprints('admin/pages/modular_new'), data: obj_data, form_id: 'new-module' } %} +
    + + {% for key, add_modal in config.plugins.admin.add_modals %} +
    + {% include add_modal.template|defined('partials/blueprints-new.html.twig') with { + blueprints: admin.blueprints(add_modal.blueprint), + data: obj_data, + form_id: 'add-modal' + }|merge(add_modal.with|defined({})) %} +
    + {% endfor %} + +
    + {% include 'partials/blueprints-copy.html.twig' with { blueprints: admin.blueprints('admin/pages/copy'), data: obj_data, form_id: 'copy' } %} +
    + +
    +
    +

    Parents

    +
    +
    {{ 'PLUGIN_FLEX_OBJECTS.STATE.LOADING'|tu }}
    +
    +
    + +
    +
    + +
    +
    +

    {{ "PLUGIN_ADMIN.MODAL_DELETE_PAGE_CONFIRMATION_REQUIRED_TITLE"|tu }}

    +

    + {% if context %} + {{ "PLUGIN_ADMIN.PAGE"|tu }}: {{ context.title }} + {% endif %} +

    +

    + {{ "PLUGIN_ADMIN.MODAL_DELETE_PAGE_CONFIRMATION_REQUIRED_DESC"|tu }} +

    +
    +
    + + {{ "PLUGIN_ADMIN.CONTINUE"|tu }} +
    +
    +
    +{% endblock %} diff --git a/user/plugins/flex-objects/admin/templates/flex-objects/types/pages/list/list.html.twig b/user/plugins/flex-objects/admin/templates/flex-objects/types/pages/list/list.html.twig new file mode 100644 index 0000000..12ac6ad --- /dev/null +++ b/user/plugins/flex-objects/admin/templates/flex-objects/types/pages/list/list.html.twig @@ -0,0 +1,41 @@ +{% extends 'flex-objects/types/default/list/list.html.twig' %} + +{% block modals %} +
    + {% include 'partials/blueprints-new.html.twig' with { blueprints: admin.blueprints('admin/pages/new'), data: obj_data, form_id: 'new-page' } %} +
    + +
    + {% include 'partials/blueprints-new-folder.html.twig' with { blueprints: admin.blueprints('admin/pages/new_folder'), data: obj_data, form_id: 'new-folder' } %} +
    + +
    + {% include 'partials/blueprints-new.html.twig' with { blueprints: admin.blueprints('admin/pages/modular_new'), data: obj_data, form_id: 'new-module' } %} +
    + + {% for key, add_modal in config.plugins.admin.add_modals %} +
    + {% include add_modal.template|defined('partials/blueprints-new.html.twig') with { + blueprints: admin.blueprints(add_modal.blueprint), + data: obj_data, + form_id: 'add-modal' + }|merge(add_modal.with|defined({})) %} +
    + {% endfor %} + +
    + {% include 'partials/blueprints-copy.html.twig' with { blueprints: admin.blueprints('admin/pages/copy'), data: obj_data, form_id: 'copy' } %} +
    + +
    +
    +

    Parents

    +
    {{ 'PLUGIN_FLEX_OBJECTS.STATE.LOADING'|tu }}
    +
    + +
    +
    +{% endblock %} diff --git a/user/plugins/flex-objects/admin/templates/flex-objects/types/pages/preview.html.twig b/user/plugins/flex-objects/admin/templates/flex-objects/types/pages/preview.html.twig new file mode 100644 index 0000000..61499ee --- /dev/null +++ b/user/plugins/flex-objects/admin/templates/flex-objects/types/pages/preview.html.twig @@ -0,0 +1,16 @@ +{% extends 'flex-objects/types/default/preview.html.twig' %} + +{% set can_translate = can_translate ?? (admin.multilang and object.hasFlexFeature('page-translate')) %} + +{% block back_button %} + {% include ['flex-objects/types/' ~ target ~ '/buttons/back.html.twig', 'flex-objects/types/pages/buttons/back.html.twig'] + with { back_url: back_url } %} +{% endblock back_button %} + +{% block body %} + {% set parent = object.parent %} + + {% set preview_url = preview_url ?: (object.home ? '/' : '') %} + + {{ parent() }} +{% endblock body %} diff --git a/user/plugins/flex-objects/admin/templates/flex-objects/types/user-accounts/configure.html.twig b/user/plugins/flex-objects/admin/templates/flex-objects/types/user-accounts/configure.html.twig new file mode 100644 index 0000000..2348417 --- /dev/null +++ b/user/plugins/flex-objects/admin/templates/flex-objects/types/user-accounts/configure.html.twig @@ -0,0 +1,9 @@ +{% extends 'flex-objects/types/default/configure.html.twig' %} + +{% set back_route = back_route ?? ('/' ~ route.getRoute(1, -1)) %} + +{% block content_top %} + {% include 'flex-objects/layouts/accounts/partials/top.html.twig' %} + + {{ parent() }} +{% endblock %} diff --git a/user/plugins/flex-objects/admin/templates/flex-objects/types/user-accounts/edit.html.twig b/user/plugins/flex-objects/admin/templates/flex-objects/types/user-accounts/edit.html.twig new file mode 100644 index 0000000..85fe5fd --- /dev/null +++ b/user/plugins/flex-objects/admin/templates/flex-objects/types/user-accounts/edit.html.twig @@ -0,0 +1,9 @@ +{% extends 'flex-objects/types/default/edit.html.twig' %} + +{% if not directory.isAuthorized('list', 'admin', user) %} + {% set back_route = '/' %} +{% endif %} + +{% if not object.exists %} + {% do object.onPrepareRegistration() %} +{% endif %} \ No newline at end of file diff --git a/user/plugins/flex-objects/admin/templates/flex-objects/types/user-accounts/list.html.twig b/user/plugins/flex-objects/admin/templates/flex-objects/types/user-accounts/list.html.twig new file mode 100644 index 0000000..0cefbb8 --- /dev/null +++ b/user/plugins/flex-objects/admin/templates/flex-objects/types/user-accounts/list.html.twig @@ -0,0 +1,7 @@ +{% extends 'flex-objects/types/default/list.html.twig' %} + +{% block content_top %} + {% include 'flex-objects/layouts/accounts/partials/top.html.twig' %} + + {{ parent() }} +{% endblock %} diff --git a/user/plugins/flex-objects/admin/templates/flex-objects/types/user-groups/configure.html.twig b/user/plugins/flex-objects/admin/templates/flex-objects/types/user-groups/configure.html.twig new file mode 100644 index 0000000..2348417 --- /dev/null +++ b/user/plugins/flex-objects/admin/templates/flex-objects/types/user-groups/configure.html.twig @@ -0,0 +1,9 @@ +{% extends 'flex-objects/types/default/configure.html.twig' %} + +{% set back_route = back_route ?? ('/' ~ route.getRoute(1, -1)) %} + +{% block content_top %} + {% include 'flex-objects/layouts/accounts/partials/top.html.twig' %} + + {{ parent() }} +{% endblock %} diff --git a/user/plugins/flex-objects/admin/templates/flex-objects/types/user-groups/list.html.twig b/user/plugins/flex-objects/admin/templates/flex-objects/types/user-groups/list.html.twig new file mode 100644 index 0000000..0cefbb8 --- /dev/null +++ b/user/plugins/flex-objects/admin/templates/flex-objects/types/user-groups/list.html.twig @@ -0,0 +1,7 @@ +{% extends 'flex-objects/types/default/list.html.twig' %} + +{% block content_top %} + {% include 'flex-objects/layouts/accounts/partials/top.html.twig' %} + + {{ parent() }} +{% endblock %} diff --git a/user/plugins/flex-objects/admin/templates/forms/fields/flex-objects/flex-objects.html.twig b/user/plugins/flex-objects/admin/templates/forms/fields/flex-objects/flex-objects.html.twig new file mode 100644 index 0000000..ea0ad6a --- /dev/null +++ b/user/plugins/flex-objects/admin/templates/forms/fields/flex-objects/flex-objects.html.twig @@ -0,0 +1,69 @@ +{% extends "forms/field.html.twig" %} + +{% macro spanToggle(input, length) %} + {% set space = repeat('  ', (length - input|length) / 2) %} + {{ (space ~ input ~ space)|raw }} +{% endmacro %} + +{% import _self as macro %} + +{% set value = (value is null ? field.default : value) %} + +{% block global_attributes %} + {{ parent() }} + data-grav-field-name="{{ (scope ~ field.name)|fieldName }}" +{% endblock %} + +{% block input %} + {% set flex = grav['flex_objects'] %} + {% set all = flex.blueprints %} + {% if all|count %} + {% set legacy = flex.getLegacyBlueprintMap() %} + {% for label, directory in all %} + {% set url = directory.blueprintFile %} + {% set found = url in value %} + {% if not found and legacy[url] is defined %} + {% set found = legacy[url] in value %} + {% endif %} + +
    +
    + {% set maxLen = 0 %} + {% for text in ['PLUGIN_ADMIN.ENABLED', 'PLUGIN_ADMIN.DISABLED'] %} + {% set translation = grav.twig.twig.filters['tu'] is defined ? text|tu : text|t %} + {% set maxLen = max(translation|length, maxLen) %} + {% endfor %} + + {% set id = "toggle_" ~ field.name ~ '_' ~ label %} + + + {% set text = 'PLUGIN_ADMIN.ENABLED' %} + {% set translation = (grav.twig.twig.filters['tu'] is defined ? text|tu : text|t)|trim %} + + + {% set text = 'PLUGIN_ADMIN.DISABLED' %} + {% set translation = (grav.twig.twig.filters['tu'] is defined ? text|tu : text|t)|trim %} + +
    + {{ directory.title|tu }} +
    + {% endfor %} + {% else %} +
    {{ 'PLUGIN_FLEX_OBJECTS.ERROR.NO_FLEX_DIRECTORIES'|tu }}
    + {% endif %} +{% endblock %} \ No newline at end of file diff --git a/user/plugins/flex-objects/admin/templates/forms/fields/save-redirect/save-redirect.html.twig b/user/plugins/flex-objects/admin/templates/forms/fields/save-redirect/save-redirect.html.twig new file mode 100644 index 0000000..2541a3f --- /dev/null +++ b/user/plugins/flex-objects/admin/templates/forms/fields/save-redirect/save-redirect.html.twig @@ -0,0 +1,37 @@ +{% extends "forms/field.html.twig" %} + +{% set originalValue = value %} +{% set value = (value is null ? field.default : value) %} +{% set isNew = key ? false : true %} +{% set savedOption = grav.session.post_entries_save|default('create-new') %} + +{% if isNew %} + {% set options = {'create-new':'PLUGIN_FLEX_OBJECTS.ACTION.CREATE_NEW', 'edit':'PLUGIN_FLEX_OBJECTS.ACTION.EDIT_ITEM', 'list':'PLUGIN_FLEX_OBJECTS.ACTION.LIST_ITEMS'} %} +{% else %} + {% set options = {'edit':'PLUGIN_FLEX_OBJECTS.ACTION.EDIT_ITEM', 'list':'PLUGIN_FLEX_OBJECTS.ACTION.LIST_ITEMS'} %} +{% endif %} + +{% block input %} + {% set savedOption = not isNew and savedOption == 'create-new' ? 'edit' : savedOption %} + {% for key, text in options %} + {% set id = field.id|default(field.name) ~ '-' ~ key %} + + {% if savedOption == key %} + {% set value = savedOption %} + {% endif %} + + + + + + + + {% endfor %} +{% endblock %} \ No newline at end of file diff --git a/user/plugins/flex-objects/app/columns/finder.js b/user/plugins/flex-objects/app/columns/finder.js new file mode 100644 index 0000000..ac623b2 --- /dev/null +++ b/user/plugins/flex-objects/app/columns/finder.js @@ -0,0 +1,425 @@ +import $ from 'jquery'; +import Finder from '../utils/finder'; +import { getInitialRoute, getStore, setInitialRoute } from './index'; +// import getFilters from '../utils/get-filters'; + +let XHRUUID = 0; +const GRAV_CONFIG = typeof global.GravConfig !== 'undefined' ? global.GravConfig : global.GravAdmin.config; + +export const Instances = {}; + +const isInViewport = (elem) => { + const bounding = elem.getBoundingClientRect(); + const titlebar = document.querySelector('#titlebar'); + const offset = titlebar ? titlebar.getBoundingClientRect().height : 0; + return ( + bounding.top >= offset && + bounding.left >= 0 && + bounding.bottom <= (window.innerHeight || document.documentElement.clientHeight) && + bounding.right <= (window.innerWidth || document.documentElement.clientWidth) + ); +}; + +export class FlexPages { + constructor(container, data) { + this.container = $(container); + this.data = data; + const dataLoad = this.dataLoad; + + this.finder = new Finder( + this.container, + (parent, callback) => { + return dataLoad.call(this, parent, callback); + }, + { + labelKey: 'title', + defaultPath: getInitialRoute(), + itemTrigger: '[data-flexpages-expand]', + createItem: function(item) { + return FlexPages.createItem(this.config, item, this); + }, + createItemContent: function(item) { + return FlexPages.createItemContent(this.config, item, this); + } + } + ); + + this.finder.$emitter.on('leaf-selected', (item) => { + setInitialRoute({ + route: item.route.raw + }); + }); + + this.finder.$emitter.on('interior-selected', (item) => { + setInitialRoute({ + route: item.route.raw + }); + }); + + /* + this.finder.$emitter.on('leaf-selected', (item) => { + console.log('selected', item); + this.finder.emit('create-column', () => this.createSimpleColumn(item)); + }); + + this.finder.$emitter.on('item-selected', (selected) => { + console.log('selected', selected); + // for future use only - create column-card creation for file with details like in macOS finder + // this.finder.$emitter('create-column', () => this.createSimpleColumn(selected)); + }); */ + + this.finder.$emitter.on('column-created', () => { + this.container[0].scrollLeft = this.container[0].scrollWidth - this.container[0].clientWidth; + }); + } + + static createItem(config, item, finder) { + const listItem = $('
  9. '); + const listItemClasses = [config.className.item]; + // const href = `${GRAV_CONFIG.current_url}/${item.route.raw}`.replace('//', '/'); + const link = $('
    '); + const createItemContent = config.createItemContent || finder.createItemContent; + const fragment = createItemContent.call(this, item); + link.append(fragment) + // .attr('href', href) + .attr('tabindex', -1); + + if (item.url) { + link.attr('href', item.url); + listItemClasses.push(item.className); + } + + if (item[config.childKey]) { + listItemClasses.push(config.className[config.childKey]); + } + + if (item.filters_hit) { + listItemClasses.push('filters-hit'); + } + + listItem.addClass(listItemClasses.join(' ')); + listItem.append(link) + .attr('data-fjs-item', item[config.itemKey]); + + listItem[0]._item = item; + + return listItem; + } + + static createItemContent(config, item) { + const frag = document.createDocumentFragment(); + const route = `${GRAV_CONFIG.current_url}/${item.route.raw}`.replace('//', '/'); + const title = $('
    '); + const link = $(``); + const icon = $(``); + + if (item.extras && item.extras.lang) { + let status = ''; + if (item.extras.translated) { + status = 'translated'; + } + + if (item.extras.lang === 'n/a') { + status = 'not-available'; + } + + const lang = $(`${item.extras.lang}`); + lang.appendTo(icon); + } + + if (item.extras && item.extras && (item.extras.published_date || item.extras.unpublished_date)) { + const clock = $(''); + clock.appendTo(icon); + } + + const info = $(`${item.title} ${item.route.display}`); + const actions = $(''); + + let dotdotdot = null; + if (item.extras) { + const LANG_URL = $('[data-lang-url]').data('langUrl'); + dotdotdot = $('
    '); + dotdotdot.on('click', (event) => { + if (!dotdotdot.find('.dropdown-menu').length) { + let tags = ''; + let langs = ''; + + item.extras.tags.forEach((tag) => { + tags += `${tag}`; + }); + + const translations = item.extras.langs || {}; + Object.keys(translations).forEach((lang) => { + const translated = translations[lang]; + langs += `
    ${lang ? lang : 'default'}`; + }); + + const canPreview = item.extras.actions.includes('preview') && (!(item.extras.tags.includes('non-routable') || item.extras.tags.includes('unpublished'))); + const canEdit = item.extras.actions.includes('edit'); + const canCopy = item.extras.actions.includes('copy'); + const canMove = false; // item.extras.actions.includes('move'); + const canDelete = item.extras.actions.includes('delete'); + const ul = $(``); + ul.appendTo(dotdotdot); + } + + return true; + }); + } + + if (item.child_count) { + const button = $('