From c3f3e2d6ba0ee7f672b332cc1c523c27ffc916fb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Daniel=20Jahnsm=C3=BCller?= Date: Sat, 30 May 2020 21:16:00 +0200 Subject: [PATCH] initial commit --- ContaoManager/Plugin.php | 38 ++++ Controller/ImageCopyrightListController.php | 111 ++++++++++++ ...aturberufContaoImageCopyrightExtension.php | 39 +++++ EventListener/DcaFilesListener.php | 91 ++++++++++ EventListener/DcaModuleListener.php | 41 +++++ LICENSE | 165 ++++++++++++++++++ README.md | 36 ++++ Resources/config/services.yaml | 17 ++ Resources/contao/languages/de/default.php | 23 +++ Resources/contao/languages/de/modules.php | 20 +++ Resources/contao/languages/de/tl_files.php | 24 +++ Resources/contao/languages/en/default.php | 23 +++ Resources/contao/languages/en/modules.php | 20 +++ Resources/contao/languages/en/tl_files.php | 24 +++ Resources/contao/languages/fr/default.php | 23 +++ Resources/contao/languages/fr/modules.php | 20 +++ Resources/contao/languages/fr/tl_files.php | 24 +++ .../templates/mod_image_copyright_list.html5 | 24 +++ .../docs/screenshots/backend_tl_files_dca.jpg | Bin 0 -> 22101 bytes .../docs/screenshots/frontend_module.jpg | Bin 0 -> 88483 bytes TastaturberufContaoImageCopyrightBundle.php | 23 +++ composer.json | 23 +++ 22 files changed, 809 insertions(+) create mode 100644 ContaoManager/Plugin.php create mode 100644 Controller/ImageCopyrightListController.php create mode 100644 DependencyInjection/TastaturberufContaoImageCopyrightExtension.php create mode 100644 EventListener/DcaFilesListener.php create mode 100644 EventListener/DcaModuleListener.php create mode 100644 LICENSE create mode 100644 README.md create mode 100644 Resources/config/services.yaml create mode 100644 Resources/contao/languages/de/default.php create mode 100644 Resources/contao/languages/de/modules.php create mode 100644 Resources/contao/languages/de/tl_files.php create mode 100644 Resources/contao/languages/en/default.php create mode 100644 Resources/contao/languages/en/modules.php create mode 100644 Resources/contao/languages/en/tl_files.php create mode 100644 Resources/contao/languages/fr/default.php create mode 100644 Resources/contao/languages/fr/modules.php create mode 100644 Resources/contao/languages/fr/tl_files.php create mode 100644 Resources/contao/templates/mod_image_copyright_list.html5 create mode 100644 Resources/docs/screenshots/backend_tl_files_dca.jpg create mode 100644 Resources/docs/screenshots/frontend_module.jpg create mode 100644 TastaturberufContaoImageCopyrightBundle.php create mode 100644 composer.json diff --git a/ContaoManager/Plugin.php b/ContaoManager/Plugin.php new file mode 100644 index 0000000..c2491dc --- /dev/null +++ b/ContaoManager/Plugin.php @@ -0,0 +1,38 @@ + + * @author Daniel Jahnsmüller + * @license LGPL-3.0-or-later + */ + +declare(strict_types=1); + + +namespace Tastaturberuf\ContaoImageCopyrightBundle\ContaoManager; + + +use Contao\CoreBundle\ContaoCoreBundle; +use Contao\ManagerPlugin\Bundle\BundlePluginInterface; +use Contao\ManagerPlugin\Bundle\Config\BundleConfig; +use Contao\ManagerPlugin\Bundle\Parser\ParserInterface; +use Tastaturberuf\ContaoImageCopyrightBundle\TastaturberufContaoImageCopyrightBundle; + + +class Plugin implements BundlePluginInterface +{ + + /** + * @inheritDoc + */ + public function getBundles(ParserInterface $parser) + { + return [ + BundleConfig::create(TastaturberufContaoImageCopyrightBundle::class) + ->setLoadAfter([ContaoCoreBundle::class]) + ]; + } + +} diff --git a/Controller/ImageCopyrightListController.php b/Controller/ImageCopyrightListController.php new file mode 100644 index 0000000..4e7f785 --- /dev/null +++ b/Controller/ImageCopyrightListController.php @@ -0,0 +1,111 @@ + + * @author Daniel Jahnsmüller + * @license LGPL-3.0-or-later + */ + +declare(strict_types=1); + + +namespace Tastaturberuf\ContaoImageCopyrightBundle\Controller; + + +use Contao\Config; +use Contao\CoreBundle\Controller\FrontendModule\AbstractFrontendModuleController; +use Contao\CoreBundle\Image\ImageFactoryInterface; +use Contao\CoreBundle\ServiceAnnotation\FrontendModule; +use Contao\FilesModel; +use Contao\Model\Collection; +use Contao\ModuleModel; +use Contao\StringUtil; +use Contao\Template; +use Symfony\Component\HttpFoundation\Request; +use Symfony\Component\HttpFoundation\Response; + + +/** + * @FrontendModule(category="miscellaneous") + */ +class ImageCopyrightListController extends AbstractFrontendModuleController +{ + + public const TYPE = 'image_copyright_list'; + + + /** + * @var ImageFactoryInterface + */ + private $imageFactory; + + /** + * @var string + */ + private $rootDir; + + /** + * @var array + */ + private $validImageExtensions; + + + public function __construct(ImageFactoryInterface $imageFactory, string $rootDir, array $validImageExtensions) + { + $this->imageFactory = $imageFactory; + $this->rootDir = $rootDir; + $this->validImageExtensions = $validImageExtensions; + } + + + protected function getResponse(Template $template, ModuleModel $model, Request $request): ?Response + { + if ( null !== $files = $this->getImages() ) + { + $imgSize = StringUtil::deserialize($model->imgSize); + + foreach ($files as $file) + { + $image = $this->imageFactory->create($this->rootDir.DIRECTORY_SEPARATOR.$file->path, $imgSize); + + $file->src = $image->getUrl($this->rootDir); + $file->dimensions = $image->getDimensions(); + } + + $template->files = $files; + } + + return $template->getResponse(); + } + + + private function getImages(): ?Collection + { + // mask all strings to e.g. 'jpeg', 'webp', ... + $extensions = array_map(function (string $extension): string { + return "'$extension'"; + }, $this->validImageExtensions); + + + + $options = + [ + 'column' => + [ + // text is set + "ic_copyright != ''", + // type is file + "type = 'file'", + // is not hidden + "ic_hide = ''", + // is valid image type + sprintf("extension IN (%s)", join(',', $extensions)) + ] + ]; + + return FilesModel::findAll($options); + } + +} diff --git a/DependencyInjection/TastaturberufContaoImageCopyrightExtension.php b/DependencyInjection/TastaturberufContaoImageCopyrightExtension.php new file mode 100644 index 0000000..3954ac6 --- /dev/null +++ b/DependencyInjection/TastaturberufContaoImageCopyrightExtension.php @@ -0,0 +1,39 @@ + + * @author Daniel Jahnsmüller + * @license LGPL-3.0-or-later + */ + +declare(strict_types=1); + + +namespace Tastaturberuf\ContaoImageCopyrightBundle\DependencyInjection; + + +use Symfony\Component\Config\FileLocator; +use Symfony\Component\DependencyInjection\ContainerBuilder; +use Symfony\Component\DependencyInjection\Loader\YamlFileLoader; +use Symfony\Component\HttpKernel\DependencyInjection\Extension; + + +class TastaturberufContaoImageCopyrightExtension extends Extension +{ + + /** + * @inheritdoc + */ + public function load(array $configs, ContainerBuilder $container): void + { + $loader = new YamlFileLoader( + $container, + new FileLocator(__DIR__.'/../Resources/config') + ); + + $loader->load('services.yaml'); + } + +} diff --git a/EventListener/DcaFilesListener.php b/EventListener/DcaFilesListener.php new file mode 100644 index 0000000..cd1e33c --- /dev/null +++ b/EventListener/DcaFilesListener.php @@ -0,0 +1,91 @@ + + * @author Daniel Jahnsmüller + * @license LGPL-3.0-or-later + */ + +declare(strict_types=1); + + +namespace Tastaturberuf\ContaoImageCopyrightBundle\EventListener; + + +use Contao\CoreBundle\DataContainer\PaletteManipulator; +use Contao\CoreBundle\ServiceAnnotation\Hook; +use Terminal42\ServiceAnnotationBundle\ServiceAnnotationInterface; + + +class DcaFilesListener implements ServiceAnnotationInterface +{ + + /** + * @Hook("loadDataContainer", priority=1) + */ + public function onLoadCallback(string $table): void + { + if ( 'tl_files' !== $table ) + { + return; + } + + $this->extendPalette($table); + $this->addFields($table); + } + + + private function extendPalette(string $table): void + { + PaletteManipulator::create() + ->addLegend('tastaturberuf_image_copyright_legend', 'meta') + ->addField(['ic_copyright', 'ic_href', 'ic_hide'], 'tastaturberuf_image_copyright_legend') + ->applyToPalette('default', $table) + ; + } + + + private function addFields(string $table): void + { + $GLOBALS['TL_DCA'][$table]['fields'] = array_replace_recursive($GLOBALS['TL_DCA'][$table]['fields'], + [ + 'ic_copyright' => + [ + 'exclude' => true, + 'inputType' => 'text', + 'eval' => + [ + 'maxlength' => 128, + 'tl_class' => 'w50' + ], + 'sql' => "varchar(128) NOT NULL default ''" + ], + 'ic_href' => + [ + 'exclude' => true, + 'inputType' => 'text', + 'eval' => + [ + 'rgxp' => 'url', + 'maxlength' => 255, + 'tl_class' => 'w50' + ], + 'sql' => "varchar(255) NOT NULL default ''" + ], + 'ic_hide' => + [ + 'exclude' => true, + 'inputType' => 'checkbox', + 'eval' => + [ + 'tl_class' => 'clear m12 w50' + ], + 'sql' => "char(1) NOT NULL default ''" + ], + + ]); + } + +} diff --git a/EventListener/DcaModuleListener.php b/EventListener/DcaModuleListener.php new file mode 100644 index 0000000..96b5eac --- /dev/null +++ b/EventListener/DcaModuleListener.php @@ -0,0 +1,41 @@ + + * @author Daniel Jahnsmüller + * @license LGPL-3.0-or-later + */ + +declare(strict_types=1); + + +namespace Tastaturberuf\ContaoImageCopyrightBundle\EventListener; + + +use Contao\CoreBundle\ServiceAnnotation\Callback; +use Contao\DataContainer; +use Tastaturberuf\ContaoImageCopyrightBundle\Controller\ImageCopyrightListController; +use Terminal42\ServiceAnnotationBundle\ServiceAnnotationInterface; + + +class DcaModuleListener implements ServiceAnnotationInterface +{ + + /** + * @Callback(table="tl_module", target="config.onload") + */ + public function onLoadCallback(DataContainer $dc): void + { + $GLOBALS['TL_DCA'][$dc->table]['palettes'][ImageCopyrightListController::TYPE] = + ' + {title_legend},name,headline,type; + {config_legend},imgSize; + {template_legend:hide},customTpl; + {protected_legend:hide},protected; + {expert_legend:hide},guests,cssID + '; + } + +} diff --git a/LICENSE b/LICENSE new file mode 100644 index 0000000..65c5ca8 --- /dev/null +++ b/LICENSE @@ -0,0 +1,165 @@ + GNU LESSER GENERAL PUBLIC LICENSE + Version 3, 29 June 2007 + + Copyright (C) 2007 Free Software Foundation, Inc. + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + + + This version of the GNU Lesser General Public License incorporates +the terms and conditions of version 3 of the GNU General Public +License, supplemented by the additional permissions listed below. + + 0. Additional Definitions. + + As used herein, "this License" refers to version 3 of the GNU Lesser +General Public License, and the "GNU GPL" refers to version 3 of the GNU +General Public License. + + "The Library" refers to a covered work governed by this License, +other than an Application or a Combined Work as defined below. + + An "Application" is any work that makes use of an interface provided +by the Library, but which is not otherwise based on the Library. +Defining a subclass of a class defined by the Library is deemed a mode +of using an interface provided by the Library. + + A "Combined Work" is a work produced by combining or linking an +Application with the Library. The particular version of the Library +with which the Combined Work was made is also called the "Linked +Version". + + The "Minimal Corresponding Source" for a Combined Work means the +Corresponding Source for the Combined Work, excluding any source code +for portions of the Combined Work that, considered in isolation, are +based on the Application, and not on the Linked Version. + + The "Corresponding Application Code" for a Combined Work means the +object code and/or source code for the Application, including any data +and utility programs needed for reproducing the Combined Work from the +Application, but excluding the System Libraries of the Combined Work. + + 1. Exception to Section 3 of the GNU GPL. + + You may convey a covered work under sections 3 and 4 of this License +without being bound by section 3 of the GNU GPL. + + 2. Conveying Modified Versions. + + If you modify a copy of the Library, and, in your modifications, a +facility refers to a function or data to be supplied by an Application +that uses the facility (other than as an argument passed when the +facility is invoked), then you may convey a copy of the modified +version: + + a) under this License, provided that you make a good faith effort to + ensure that, in the event an Application does not supply the + function or data, the facility still operates, and performs + whatever part of its purpose remains meaningful, or + + b) under the GNU GPL, with none of the additional permissions of + this License applicable to that copy. + + 3. Object Code Incorporating Material from Library Header Files. + + The object code form of an Application may incorporate material from +a header file that is part of the Library. You may convey such object +code under terms of your choice, provided that, if the incorporated +material is not limited to numerical parameters, data structure +layouts and accessors, or small macros, inline functions and templates +(ten or fewer lines in length), you do both of the following: + + a) Give prominent notice with each copy of the object code that the + Library is used in it and that the Library and its use are + covered by this License. + + b) Accompany the object code with a copy of the GNU GPL and this license + document. + + 4. Combined Works. + + You may convey a Combined Work under terms of your choice that, +taken together, effectively do not restrict modification of the +portions of the Library contained in the Combined Work and reverse +engineering for debugging such modifications, if you also do each of +the following: + + a) Give prominent notice with each copy of the Combined Work that + the Library is used in it and that the Library and its use are + covered by this License. + + b) Accompany the Combined Work with a copy of the GNU GPL and this license + document. + + c) For a Combined Work that displays copyright notices during + execution, include the copyright notice for the Library among + these notices, as well as a reference directing the user to the + copies of the GNU GPL and this license document. + + d) Do one of the following: + + 0) Convey the Minimal Corresponding Source under the terms of this + License, and the Corresponding Application Code in a form + suitable for, and under terms that permit, the user to + recombine or relink the Application with a modified version of + the Linked Version to produce a modified Combined Work, in the + manner specified by section 6 of the GNU GPL for conveying + Corresponding Source. + + 1) Use a suitable shared library mechanism for linking with the + Library. A suitable mechanism is one that (a) uses at run time + a copy of the Library already present on the user's computer + system, and (b) will operate properly with a modified version + of the Library that is interface-compatible with the Linked + Version. + + e) Provide Installation Information, but only if you would otherwise + be required to provide such information under section 6 of the + GNU GPL, and only to the extent that such information is + necessary to install and execute a modified version of the + Combined Work produced by recombining or relinking the + Application with a modified version of the Linked Version. (If + you use option 4d0, the Installation Information must accompany + the Minimal Corresponding Source and Corresponding Application + Code. If you use option 4d1, you must provide the Installation + Information in the manner specified by section 6 of the GNU GPL + for conveying Corresponding Source.) + + 5. Combined Libraries. + + You may place library facilities that are a work based on the +Library side by side in a single library together with other library +facilities that are not Applications and are not covered by this +License, and convey such a combined library under terms of your +choice, if you do both of the following: + + a) Accompany the combined library with a copy of the same work based + on the Library, uncombined with any other library facilities, + conveyed under the terms of this License. + + b) Give prominent notice with the combined library that part of it + is a work based on the Library, and explaining where to find the + accompanying uncombined form of the same work. + + 6. Revised Versions of the GNU Lesser General Public License. + + The Free Software Foundation may publish revised and/or new versions +of the GNU Lesser General Public License from time to time. Such new +versions will be similar in spirit to the present version, but may +differ in detail to address new problems or concerns. + + Each version is given a distinguishing version number. If the +Library as you received it specifies that a certain numbered version +of the GNU Lesser General Public License "or any later version" +applies to it, you have the option of following the terms and +conditions either of that published version or of any later version +published by the Free Software Foundation. If the Library as you +received it does not specify a version number of the GNU Lesser +General Public License, you may choose any version of the GNU Lesser +General Public License ever published by the Free Software Foundation. + + If the Library as you received it specifies that a proxy can decide +whether future versions of the GNU Lesser General Public License shall +apply, that proxy's public statement of acceptance of any version is +permanent authorization for you to choose that version for the +Library. diff --git a/README.md b/README.md new file mode 100644 index 0000000..9365219 --- /dev/null +++ b/README.md @@ -0,0 +1,36 @@ +# :framed_picture: Contao Image Copyright Bundle + +With this Contao bundle you can easily add a copyright notice to all images and then display them in a module or content element. + +[sreenshot] + +You can add the copyright notice directly to the image in the file manager. + +[sreenshot] + +## Install + +### via Composer +`composer require tastaturberuf/contao-image-copyright-bundle` + +### via Contao Manager +search for `tastaturberuf/contao-image-copyright-bundle` + + +## Translations + +- [] Chinese - 中文(简体) +- [] Czech - Čeština +- [] Dutch - Nederlands +- [x] English - English +- [x] French - Français +- [x] German - Deutsch +- [] Italian - Italiano +- [] Japanese - 日本語 +- [] Latvian - Latviešu +- [] Persian - فارسی +- [] Polish - Polski +- [] Portuguese - Português +- [] Russian - Русский +- [] Serbian - Српски +- [] Spanish - Español \ No newline at end of file diff --git a/Resources/config/services.yaml b/Resources/config/services.yaml new file mode 100644 index 0000000..f7a7dc5 --- /dev/null +++ b/Resources/config/services.yaml @@ -0,0 +1,17 @@ +services: + + _defaults: + autowire: true + autoconfigure: true + + + Tastaturberuf\ContaoImageCopyrightBundle\EventListener\DcaModuleListener: ~ + + + Tastaturberuf\ContaoImageCopyrightBundle\EventListener\DcaFilesListener: ~ + + + Tastaturberuf\ContaoImageCopyrightBundle\Controller\ImageCopyrightListController: + arguments: + $rootDir: '%kernel.project_dir%' + $validImageExtensions: '%contao.image.valid_extensions%' diff --git a/Resources/contao/languages/de/default.php b/Resources/contao/languages/de/default.php new file mode 100644 index 0000000..cf50e67 --- /dev/null +++ b/Resources/contao/languages/de/default.php @@ -0,0 +1,23 @@ + + * @author Daniel Jahnsmüller + * @license LGPL-3.0-or-later + */ + +declare(strict_types=1); + + +namespace Tastaturberuf\ContaoImageCopyrightBundle\Contao\Translation; + + +use Tastaturberuf\ContaoImageCopyrightBundle\Controller\ImageCopyrightListController; + + +$GLOBALS['TL_LANG'][ImageCopyrightListController::TYPE] = +[ + 'ic_no_files_found' => 'Keine Bilder mit Copyright-Vermerken gefunden.' +]; diff --git a/Resources/contao/languages/de/modules.php b/Resources/contao/languages/de/modules.php new file mode 100644 index 0000000..a9b3da0 --- /dev/null +++ b/Resources/contao/languages/de/modules.php @@ -0,0 +1,20 @@ + + * @author Daniel Jahnsmüller + * @license LGPL-3.0-or-later + */ + +declare(strict_types=1); + + +namespace Tastaturberuf\ContaoImageCopyrightBundle\Contao\Translation; + + +use Tastaturberuf\ContaoImageCopyrightBundle\Controller\ImageCopyrightListController; + + +$GLOBALS['TL_LANG']['FMD'][ImageCopyrightListController::TYPE] = ['Copyright-Liste', 'Generiert eine Liste von Bildern mit Copyright-Hinweis.']; \ No newline at end of file diff --git a/Resources/contao/languages/de/tl_files.php b/Resources/contao/languages/de/tl_files.php new file mode 100644 index 0000000..c17e78e --- /dev/null +++ b/Resources/contao/languages/de/tl_files.php @@ -0,0 +1,24 @@ + + * @author Daniel Jahnsmüller + * @license LGPL-3.0-or-later + */ + +declare(strict_types=1); + + +namespace Tastaturberuf\ContaoImageCopyrightBundle\Contao\Translation; + + +$GLOBALS['TL_LANG']['tl_files'] = array_replace_recursive($GLOBALS['TL_LANG']['tl_files'], +[ + 'tastaturberuf_image_copyright_legend' => 'Copyright-Einstellungen', + + 'ic_copyright' => ['Copyright-Hinweis', 'Geben Sie einen Copyright-Hinweis an.'], + 'ic_href' => ['Link', 'Linkziel für den Copyright Hinweis.'], + 'ic_hide' => ['In Liste verstecken', 'Zeigen Sie diese Datei im Copyright-Modul nicht an.'] +]); diff --git a/Resources/contao/languages/en/default.php b/Resources/contao/languages/en/default.php new file mode 100644 index 0000000..0b21c40 --- /dev/null +++ b/Resources/contao/languages/en/default.php @@ -0,0 +1,23 @@ + + * @author Daniel Jahnsmüller + * @license LGPL-3.0-or-later + */ + +declare(strict_types=1); + + +namespace Tastaturberuf\ContaoImageCopyrightBundle\Contao\Translation; + + +use Tastaturberuf\ContaoImageCopyrightBundle\Controller\ImageCopyrightListController; + + +$GLOBALS['TL_LANG'][ImageCopyrightListController::TYPE] = +[ + 'ic_no_files_found' => 'No images with copyright notices found.' +]; diff --git a/Resources/contao/languages/en/modules.php b/Resources/contao/languages/en/modules.php new file mode 100644 index 0000000..64aa776 --- /dev/null +++ b/Resources/contao/languages/en/modules.php @@ -0,0 +1,20 @@ + + * @author Daniel Jahnsmüller + * @license LGPL-3.0-or-later + */ + +declare(strict_types=1); + + +namespace Tastaturberuf\ContaoImageCopyrightBundle\Contao\Translation; + + +use Tastaturberuf\ContaoImageCopyrightBundle\Controller\ImageCopyrightListController; + + +$GLOBALS['TL_LANG']['FMD'][ImageCopyrightListController::TYPE] = ['Copyright list', 'Generates a list from images with copyright hints.']; \ No newline at end of file diff --git a/Resources/contao/languages/en/tl_files.php b/Resources/contao/languages/en/tl_files.php new file mode 100644 index 0000000..fed4773 --- /dev/null +++ b/Resources/contao/languages/en/tl_files.php @@ -0,0 +1,24 @@ + + * @author Daniel Jahnsmüller + * @license LGPL-3.0-or-later + */ + +declare(strict_types=1); + + +namespace Tastaturberuf\ContaoImageCopyrightBundle\Contao\Translation; + + +$GLOBALS['TL_LANG']['tl_files'] = array_replace_recursive($GLOBALS['TL_LANG']['tl_files'], +[ + 'tastaturberuf_image_copyright_legend' => 'Copyright settings', + + 'ic_copyright' => ['Copyright notice', 'Insert a copyright hint.'], + 'ic_href' => ['Link', 'Link target for the copyright notice.'], + 'ic_hide' => ['Hide in list', 'Don’t show this file in the copyright module.'] +]); diff --git a/Resources/contao/languages/fr/default.php b/Resources/contao/languages/fr/default.php new file mode 100644 index 0000000..5c974b2 --- /dev/null +++ b/Resources/contao/languages/fr/default.php @@ -0,0 +1,23 @@ + + * @author Daniel Jahnsmüller + * @license LGPL-3.0-or-later + */ + +declare(strict_types=1); + + +namespace Tastaturberuf\ContaoImageCopyrightBundle\Contao\Translation; + + +use Tastaturberuf\ContaoImageCopyrightBundle\Controller\ImageCopyrightListController; + + +$GLOBALS['TL_LANG'][ImageCopyrightListController::TYPE] = +[ + 'ic_no_files_found' => "Aucune image avec mention de copyright n'a été trouvée." +]; diff --git a/Resources/contao/languages/fr/modules.php b/Resources/contao/languages/fr/modules.php new file mode 100644 index 0000000..e5ec199 --- /dev/null +++ b/Resources/contao/languages/fr/modules.php @@ -0,0 +1,20 @@ + + * @author Daniel Jahnsmüller + * @license LGPL-3.0-or-later + */ + +declare(strict_types=1); + + +namespace Tastaturberuf\ContaoImageCopyrightBundle\Contao\Translation; + + +use Tastaturberuf\ContaoImageCopyrightBundle\Controller\ImageCopyrightListController; + + +$GLOBALS['TL_LANG']['FMD'][ImageCopyrightListController::TYPE] = ["Liste des droits d'auteur", "Génère une liste d'images avec mention des droits d'auteur."]; \ No newline at end of file diff --git a/Resources/contao/languages/fr/tl_files.php b/Resources/contao/languages/fr/tl_files.php new file mode 100644 index 0000000..b8ba36f --- /dev/null +++ b/Resources/contao/languages/fr/tl_files.php @@ -0,0 +1,24 @@ + + * @author Daniel Jahnsmüller + * @license LGPL-3.0-or-later + */ + +declare(strict_types=1); + + +namespace Tastaturberuf\ContaoImageCopyrightBundle\Contao\Translation; + + +$GLOBALS['TL_LANG']['tl_files'] = array_replace_recursive($GLOBALS['TL_LANG']['tl_files'], +[ + 'tastaturberuf_image_copyright_legend' => "Paramètres des droits d'auteur", + + 'ic_copyright' => ["Avis de droit d'auteur", "Fournir un avis de droit d'auteur."], + 'ic_href' => ['Lien', "Lien cible pour l'avis de droit d'auteur"], + 'ic_hide' => ["Cacher dans la liste", "N'affichez pas ce fichier dans le module Droits d'auteur."] +]); diff --git a/Resources/contao/templates/mod_image_copyright_list.html5 b/Resources/contao/templates/mod_image_copyright_list.html5 new file mode 100644 index 0000000..c2b38a2 --- /dev/null +++ b/Resources/contao/templates/mod_image_copyright_list.html5 @@ -0,0 +1,24 @@ +extend('block_unsearchable') ?> + +block('content') ?> + +files ): ?> +
+ files as $file ): ?> +
+ <?=$file->ic_copyright?> + +
+ +
+ +

{{label::image_copyright_list:ic_no_files_found}}

+ + +endblock() ?> diff --git a/Resources/docs/screenshots/backend_tl_files_dca.jpg b/Resources/docs/screenshots/backend_tl_files_dca.jpg new file mode 100644 index 0000000000000000000000000000000000000000..190033878779f9d3d7462a0c78f8de56b203e952 GIT binary patch literal 22101 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 R{vHE=kAeTuV*rAk{xA7ZbFlyb literal 0 HcmV?d00001 diff --git a/Resources/docs/screenshots/frontend_module.jpg b/Resources/docs/screenshots/frontend_module.jpg new file mode 100644 index 0000000000000000000000000000000000000000..0e154d3aa1fa57488e54f11ad8dbedb61fbc8d12 GIT binary patch literal 88483 zcmeFYcTihR(=R9t7-PVgoWUlVWO5ENV3IL8=Nv^aU_eCKV8CRPF$M$%Oa_y4#^fAL z&KUtB3J_xTyzlPa?|%1>dv|NAZf(_fq^Z);nb6(yJ3ZY!Jr92$)&S4nDJUxdFfcFx z7U&P)VG$q)z1`xFmdq4qi85e6paBP`5+s7BWgL_Y^$ z5n&U*qJlWb)tnbyQ9vw)RHFz!=w3Q8(!7FM=b>>PqZ!Xlz# z;&N~06%>_}-)ZaU>ggL88d=-e+SxleI(dHd^7aAy`h|Q64GaGo5t)#fl$?^9_C5V) zZeIScg2JNWs_L5By84F3rmpUuKfQhZ1A~)O(=)Skf9Dt0H#WDncXs#o58!9#7nfJp zh@0Dg_`(2S{+q4;#@T=3iwMovBP=XTES!J%!g%C^E|^4E*f04W6U%7gSh|xi@_&9p zDjT0u*@?>}pmj=SFKsRFp4^XSR|JBlI`S!&*RILgg{V`ODLsjcX1o?0`|+g#%o`X2JW&@E#~x z3;Vj1^2NQjo&k@hPYY2u^Kb~&kh6B|6Up0|Ku`RlJ9|CJ%;U1_BlT(c>w-$1{E>yx z2Y~mkp}h5;G~YykdTv|EFDDI?efaS?+vo)SL}H8Z(>2dg(VfN!loXhJS*5KZAbSTW z4$M%R#pK--gAEwhTS5@+RAc0 zUy~#%LZLD6SiPz#%=xNA45lLqgnM>LznV_yR-3g>Ig?3SPho$_gF3!6?fa_@9_CN7 zI#4)U)U7CR=VE2))zaB^ILV!wtDKvVcVA&dbgn%Bo*t-M7J=NmeHm6GU*)A0R6A>j z9Ql@k^z*~xq#O&&Vfi=THFNZdUcck@2uyH0lc45=(gRN)07%CD4dI!Waq{2jQnenx z`O9qaNQC5@0$&!Vhzz0|-7~S1rhx&-y>+YMY$F{_Rn}*p;;pO>uhJ|50t(8e_?EgE zP+-~8j0K!uE1`f>F_1oG-F|`V>)>zxzbW_h?qohJTz&| zp7|7qu>|b1G54iKzlZ?%9?ke=m>#ZG0(p?YS-9?!`zVeRy#Ri(KbxN9qS3)M%)&rY zr2wYO?s4KTVca^}6xn@x5>sPNZt5hwV7j~TT5w;oq%fT==BIOfFrA{8YgV$}$%cN| zk(Z0M>JQC7$EmKa6-)*!miQKr41Q}7;^>xJjT1m+er;=A~%EoDSm?&(=N+si!sCrU@B0+4e`FdLsc5mgz zhNQX3S3SJ;td))VY*XM);w!2K%U*t7X?4FY(OWVO1=3&n{;*g3wt*EsXYD>YEx(2K zr;-jjduLbpXO9;bhIU;Svp&mz5MiK05`cCn=0p@}!$xG|%uOv&f?L#3GA}qk5k6R{ zTOymZww4F;PFHNuG+{QUZ6Ofa^6oZ|FjM?nrHo%hB-VG^mBV+Ep{MvqJ%$fVXf#pN zEQ3EsVp6d9e!Rbn#xpv3F}f0miE4i;-e`LG^kb3uXtBGV+K80dB9-(|8f+9_m!~lcSydVY_CsRXe{70BRPL>K7IA` z)Bm;t=ZS%y=}A*U=B`mQk*#%&ZlnR?Qvs$MbT|erSqBnj)aK&LFT9?NG#c+>D>HG3 z6RotAjuC2;gthsj977+jw6hc*6f=mD~)%Ar@~HSQ@C*(Kqg=UjXT9oPw-dK)NhQa%94dAc9y*9i}#^Xx`iXILl=g* z!4@I?0vu(ij=R4g6$`cG4fcoWD4nTwe0yTheD21g?-_^+R8|Ncf_yNys%kHGp$+v~|5b z$_Qk(IN!nO~;n@xbY!$US8cP`GTGTRuD+P8{%6u_5{u;O!M@>MBS@uHTiWnHp) z5)_c|MA8rHv@dD7jtBg_`Yb@xcfG;BN&I^(Rcz;MB`+g! zKQJN4eq8b`AMM{rqavL+mW|a`O6EmPP+6Jx+_wOaDc2fP~RCdF#Q3)AD9tcES?XqV|P6$mJJjt>)%U7WC=?S~wi5B@FhHTv*;I z`gM>#7yg>(*`oe{>Y`rb;ZUa3>HlrNI6rnkiIe_ ziDT(4+Xr!jP}U}c-IJ}}NV#_aPl-%>i%#q1=OmeM!fO>;rn5g)_xXB>`R98mukQFE z`|9{UM~>7Y*m55LPKM@AO@KmQpqIh~moU(fTKi zUT*7E$``YXB|$hPVZ*%BZ53k5sNElL+c@jyOnIu?H+*+{l(e-F6Q|2UU#Dy8et+ML zSHS=A7shmt#Mg_1angD>r3P2P-l#gdU3Km89%UExHQ?(roG=&_z;os5;XHkWIF6|< z95SAu%5;jqhv!N%+JA#FkeuT+&=7H{@ULaH%`iDV__JImocXQU*I&AbpUG&DdJszP zX8E0);NcmQahXwP=;n*wjlgUv>dkqCeOh#Bxjv+&C-_9O9Ot(#rQAy*#)+KidbABr#jB% zPdE~w*AAmAag=^Nc>yHc7cf3pxcqbbm3UUy^LeMm$8rh3BJCf(RrqmzF9vuEQF?Ki+dU#;&0AWBk% zu=C_GV#;iM*8gro zJ2Hh|G+Kd`H|Ww)G35cUscK#qj<JcMwg@XPtsPv zu|RZY_U>GFzJe~=+|#W+7)?+ys7U~+64%{|K(rT2j0E`@j9QCiOI(bU>!#-P%NO!N z-hvPZZu&7*1h-Tk`QA4}siwv9iMtl@3i@!YxSlx%IHN+s*ji#E*RTawUnApU`qc>y zSbV52i>_h93)enu)?2~8&Q_nsfVa~^QFGr=ni-+~6I{?Ot`-HJQ>IUe&(B}t56zN_ zq!8=nmyL$s=(ncXCYMZ?aIhQp;(nYJ*r{Iv8wS}b5~?MXE>HhjHD#eUzTY;FTqQV` z1gA^wWCo>(x5bGy)C%;qQ8*WM#})I4N+HBb9{>c%_cM&}+KMko^Pk<8rDHV8j{df+ zcfK9?Y8cxd&o9L`zj0c&QKn38Ry_c|H2=X!@P@+VH0eEUUj0=YCZ+M9pi{og?QX}d zDZ}YesZb9r2Bo(+Sce_zHJ%%hy$B`&V06iYFP-UHx9!us)v5gf%);t~n+m`>IwO%sWGjiF< zbt^P+ysBPZjF$6aemdDJwr&s|TToDD_CFVVz6u>ptpfD}06jTpRT&@ntGo&dt|=Y> zToQD^E`d;r91 z{^yaBlcXEf*K$<-RMAzcm0Rf4V_Ovu|4rl1mfin^@mK!?i0A$z=z;d1&=9UhLzwAb zO#ZKQAoUA~3Y2>QV5U9*I0^r&ga4Ajf8pT2-i80t2mhrL|7%_N|J~ZinR^Q9ZYKoe zz#xCcA%BDBsz>iH5?mLX-BzumU0t(k%h)$*Cri{gq^1`kK8(oW;_fHe%Nz+FM{5ap zH>+D8KWfVR(7u!>OZMH!+p~ zR2W_t#X#U2cV~k(xKu^KQwp5WIQGt+zx0`Ga0FrmZ_Hy!` zMR2?~iN~wEsK4k4W6w+yJT~qHwwu5MzH z)KR1mbPv$~z6WXENgU&UH%E7b8y5cn077nX(St=vcQ{WNte&RrJpj(H|B)#YZR36E zR{C$_$wMvB64Tz~riBdcqGZuDLTMaw%TCZgQLO0Zu9_MKt1?AK`G2Z!zO{MRJsEvQ zh_j?~5k{(^M5lz@&+;JLAQO>gkbhyZ{G`C;0U(z9-3Q~(fP_iFrs#!D9R5KtpA)z8DViy5a5CqL4KN~=CF{r1tE>$37V^pghaDW4dFk5*%3am$adKKvY5s_IA*W6l# zS5bGdSCQw}i0d__USm@3c>tJEu-z!Cf9L)?!x87u-f(fi z*=KiOAx*sa04RkUn%{-3K;XqiY_R-OC*f{zN5})fqInf1pbdMuOmXSA+K<}tcOly- zy0b&lCLSZYf!FvgXg@;8wjEUQrGz0Z!0^oP0bsX`26J(^S&~os-H?Ig`?><2#;k66 zaMEgBYGwB857DdGOP5{s+? zy5evo3$;D+9 zEYW;Z*XZe^NihF638Vv(rg?Aq=fDh?BWPg9*-LlAUM~IpS*hRaCvm@smc}Cbh1qaK zW8INXdhXv)zw$)s(NEG%RLWa3P&#aup?Cb+(KJtOs!~FR{(<;u!O;PP^DbmTu1R>W zR2`uz=yrnyUZXv9M7jrJNYOPFlA#97=dlNF|3eaupdJsB)d+}0LAFHD%z(g)@@DlN zki~y)q|p9#a(GSnIg>|ZhqUB)II?|rp9FfJ5{FR#`0@e3Q-DJLgUhLZQ^hbGbIS=e zXK+xTygLs=L!@dFO79?7cKxq6FV0r`#(aqfq<)jS;x=J&7$AFkdpXUA)+_%)vi`>7 zPfIax82+u{=m!hV+8dEdy?8c3fU=!o+(L8$O&WdHboj@@t$2N(jRxmp4|ydisdW|=06Uvpz>hZ0u( z(b5^0moRz1Yx6~cUtTYufvMJMiLq);*StEmD^~0Mp0k{^(oV(AQyf894!Cf~joUMQ z1~&#w)HEBE!*ATXWKUNNsbiwG-zjAv9;up-+-24^NrcWysy()|y%g1WVO zs%+!e;qciw-rFhU?`8Hd4!z$dAHIE_&2{|Yvy#sjXJi?*5(aRkrLPGrmbqWhBy4?I zKcX~6ITv?7Be+@*yp|U$i!0|4a0;p+m4J=xYjK|*x6F7ttw75d?3@6Z<>A*(tPKoH zc@Dr`2bVP7MOf=@cWbUE<5|#USUX~M#-e|mO3tZ@CEK4Ts&>=Db)^@s zVBf&E6F+lTd2!;6ug%DaQ8`1 zxf|S4M|RHm`gnySyx-!|;>xVGyhyg~O)OQ*ZDJ%!dJ<$8i(~#Az(zlSUY0W-t7^8j z*_zdUvFoEzwDyxS6274+D3dER>Gph*e`D9UTzRZ1wA_**)%+mW|=H4Pd$-g znS5++CD3_0rP)m4E$+%I<7@+uG!%x3aeto6&`&@NT_v3=e)(8ks8V6Pte}YJ+@%0~ z1I+x;$nWe8?aA`n1Y?sB=f<(J45f_E_S-P&I*83xT zcJ`v8^oTMSPl?|k=&^$PF^6ti@m4S4oum$NgbG3G6PyAv8utEWcj&cKl3ZHtefG@) z<6Ei5^3?U?^NqzvM+Nuxn85Rql32Z9a-7Esm!qH}gqPP2cu38hJ5}0V6up(@VmKR9 zG&GSuk$S>(5a*0eGT0%^`yVn4)>^bhpK0ry`YkVUav6&CcN~raGu`&u7#ix&i|mdn}blIN-@b0BDUS!AOxqUHg>;B;m7swz%>yuzlrwtAY|d^a#bWd0}KeBPU} ztUMT9ac||Fk^valU3VfBvyw|2$3@hl(rEvk(UVWJfq~^IfAC}eXZ#pKA*J(G`8oU4 zKD{FhX7z1%r1~T)2GJunl|dKp9%V*l5Q_-BlERh6V5UC0P&HPcyC^&U~`A8 zB=69OB|5BYVTX#x*^bqbN!oSZ){#cSnl|Iu`r3WYTb*4u-9IF_av#s%^=fh{7pwkj zRikyx7vV|5HYdGH+F<@Cd!Qk~D4JyAWtzoiQ+_E$7>n7f88!@`<47SZVqtHt;oTse z1m6m|@crPo#0J9R~uJQXsJ2jyJ!1rN0ZUj;a8s%i`F3 zjFm(f&SXGyrLZ{1$HZS4HG`uYH9;rN7JYR}jGc@PY!u$e{!X>5xXvdR}*0S|y%z7oHN z?PeikdVS}4SKqQH^YT`Tyn4M(%5E(!$iEdyF-m=&`91B0{IH91IlT-8%8<|62U(0t z+FAleYDOcc}h&GE%U&ec&oo0 zXDL?ROJr7$a#D09`exzG*bHW-;-RjW|7e=(noS4%UGR`Pbaew?@WOXy75%Qw9il}{ zF3LIoAjHjbD7VYDl`*bFwUM1=E({u=_WL@uKTPM+hXn#kxHCea8u_2^u|KjK zdz!o#v$oDWt*hMXZ)9wJ1SC?pYN-SFk*%fZ`>?LbgGdvV{J5Ny?>URAPAj5?9J>0P zEab-f-H|c=2xqNm@5Xa4#}%Wh-Kbin-S3rSlMS4``ah26^5jnyOz?*riSz)5*}ws(4ah;B?ey^~6y{&6EAkx`2j;gDH%S%AP?O+&<+s=@ z>{6hLIj$6s_coX&Kjc_S7nMs~c$Is` zjj@~FlMPhN-y+Rx8aV68?qp0G%xl0@-6)2!3%(Ys#Q+g+$Uh2nwq@>v?btFa zbYvZP1la?bndMa;%v_|If4+s1L?Y&L9Bmh4f5mS}1zB)loAYFu|DBYeZx%)g{dGSl zJg>X9a3q)Q`!-(~LN|Yim~OLMk0wHlzqUM_YYQA5*?zxiEjqVHUU|vrRH+D2NOZQ>a=dZ|UY((*I>Z5Xkv%CGV5ib!SBmwOp*^Z_W(3 zwldk5Gua^;4q^lRbg~mqG2tMs080d@H~?t;!$F8adTi7neb!bNy!1_AZwNK(2{RKY z1*cz_mqYPKKJ16mJSO`f_Q&78SDn}#-2P{7C7^V`Mc{c}+zM=9;Bs9V$+;WRGBcBB zkfz8zB~X*L&mbAdDW;}Omy}EX?l$R=@0`ZJsLy1RE|#;fa>lL9I@15gSJZ`c3ngtFwZz%L{T=V?*l?lE20VW!8eMFN7{DKDSAmA%!L^l)3dB z%5%?u>Y4c3i@M&Ad^~4&7&VkRj%(X#;Ir8fl5XfbG{+5Eh2nWp%zmu+>L+-nC{)R9@ zE*VLJ`HMq@-o<+ViRUxJr3>i1{#8mdybVeihE#U1HmWzRTzZzufzuAxpE~ry2gONv z(r4ET-EjXr&=)7Tpsq_qtJ;OPDQxB~Po#j!K_N&0BKrYA8bIP!q)vQaX3)nE|90Pb zds$MV#%;!Uo!fX=Cg>k@b>ciNz{Qal4ITZu_`*u?)-DSsqFPvDKuuNrT*+YZn66Q* zs9r?Ey?W3us_k;2G`|_O;BKDERvu8Kox&O!&`9@)2 zgg(8;9S`g+EnpJDZdMEwo@1kw#JmSRn;bRVVOb~yclRWK^`5MAy1U_3eCIwWCXK@9 z|00GZ5Q{;zf8gjpq*3)6)W#7f-;|*QUp6rAvW=Ie08?_}Sdnf8M`vePU`u9fwAmoG zH(Be$hK$AUhc!p;=0ENgu&~5v>h|__KKtaG9XNZIueSgeHxq`FQrmy>svvc2nz^8^ zD!;?EYl?)hUx_U+Qrh$zk{*xZH;T$zwfTqyvmio#E;&+XWiK#9>`ZaLOj#XpV`tH` z(bF=>cydBVNeif;9KcK0N_6TSkBn+CM#OG*!q&}+4;SRPW3tlHdA^gHH-rqt=Mu6r zJ(VnqOc7mD;h7AND6fG~DE~VAC12e->GC>SBn4-S!9FTLei32r{JYUC+<{J+EH~Tm zAnWBc_r^5O8k{9tPgS97RAZvGr~apd{nI{>!o)JG&X$E3AlWER3*l3={~NTR+ZXO? ztd<4mwl)>|?7JH*=9)kyCi*#wWXGoREI1>JGks2|iDAtUy4m;TVuW?mtl{+N*0thw z&Q;QPg8{nwRFY6;`ykf$Hpr5O3k#ZYNs>}y(*X9m=Ghkd)aI=eCaby_&XSl)IpVOJ zt@ur)@la-BX{!Qe-^_|nm%vA02IDy-6aR>PiBjdF>@_NM31XoZLCw$Fx}?#u{Da?=_oXr3!_a zypXP@z!Yc!!smV6?@)4OoA{K4*+m>oqC!2_5B$6sFKBJ_d8~8h5mE0{KzGL0{=XJW zh0{Yz`IN7~{r%D=&K2KUX`JnGK8I+Snj1Kx7^{L&y<76szT*e%19_`c+D?U*2L+Y9#{Gnf{5o2WrY_h!3!%d7-hyeEz^#r8YPL0=g5O(dcjhn zee02DF*uuq;apyMp`uvf3u{H-R0wub*rA69qU$2yVYE4tJ zR}4GpC;4SfJ2G;PIH`^_plXwai;X`U+_n{Jd*h6lOs~955tcg4R7qRb-j<-MmF0+X zTKw_2;RdP9l|jz|z3Q1C^}U@_759i&%z2$h7IdkPnl_{<`%n#z)M%j&TQo`jk!V&X z{(b=ZCP1oz1Z>>n!rd9k9a&r!YxbM`)R!v{#yPFCO7PJ||4-JV8Oy5oPmXib2BPg3 zsxDa)Ry9=QL${jP@FQ_~E((Tt94n74tkvfSRWsW^AJdZu>Um6bK1CK}v+chR@8vyM zVXYS^GzNW_ETX%`X2Q8B50OE*6dknDMlNcY9}US0FovW$rK^Y0Q%%6mt}$9#OC|dT zM!akG`&K0nW^~`BL^U3^Q6VgI_Pi$o(-(O2>|fw--XH8g`vG#uW@)ex*N^#&v~BpE z%ssmc(~L{{CrTgc;|`uwl^x|jRT7C#WWds|4*#QB!r;LcqD`O&?H!G`q3U>xxvyE5 z;~Y+~jY{4XN2ZreJAb^F_q-pFHrhG*NT=l(`sb>t|M}+7<8p(DUcK#c_Z%t(&^bdgFHi>Vi zOhy6}>=Fc$V;c{3B4$EzwDN8=2LhBPBr(?ml|zgl0FDQIbwS-uC=;yPegz18Y3}=h zIeCkPPeS2g%<%S-Bq}5fltWWC3EEMFfMxlFd?PZ_TCA8z7O{5!R!lLW}=&-GS0tSwKEjfF8D#NyYv}zeDEl(JN?*NnlECGS~y9u zXKB{YR1y)Wn+Sj?2g-vT|TW#_bgQ>z>acxqZqt2K1%ECKMtw1eq${|bt zIcF=2oiFumyvku~Pw(q0x?SF_aShA-3EG;=4@2h@idDC>ja`VXe$@_yc3z)Be1;wX z6H#W0ao-<;)GrIcDEbyk*|gU&9oRz;OU?|{V{P!bm=jv__F+qD_70~ zUcsfJI&_#T{?uTv=Z7)bdP>KSQU8>Eqf=t%iT9VE56EuRVM(`vuscnBaXg0)L6GliaH)_Ax=Xl zM#rP0S_u8C)lIO%iGktG*X1_;nPoyeVWub!|T{7?kncr2oQwo;=keu^1; zR0=zw8cw1N*DK&l?^X#nonl_5LlS3}cWk<)sK3FL^rs#yQT51u=hC+#O*a)FQ)sl7 z>JrIMDojbt`ynXVs;}p$jnPzL!!eEjoE2I3=0@h0R(}GWHC%;g2)~oP42$P#WVdS< z?`>QoF}a^R+V*!VdIH1u?CJad#DrnC!PwtqUn_PuW6w{zVzYusx|;4wnJekbc%8NS zLiGM%kducTctDem>p_3Fpm$)tnc38TQHI{!R12#09@;2U_ z7ID`@9adjvYN9r;XSFK8&Y76uRo<_ds?EaVaKvxw35!o#G2y?T9nlX%Z3xeEHENH? zg3Gqu=uPeZD9xyQE5V&X{-miNKO=T?6LSk2Sd zy%q@G*N>>1(#*u892FMkgZ8$)ub*bJL$M@M-Kc)_6Z!fwcxO^sF_la08LIEllqmko zrk7pN$o{p$!HSq=JT)toR;%w$1?O?^CR989yggW&G0GU>^>f+xbDo2ah`CzrK2gp4 z_E(yRYIO22O6i-9W$X@8$#TZ!8tsv**PPb`L zB(3Z%tx%~-J6Tn?6xZCy;V|{;rAG!XLcbO% z6^Fav?UA{see*Ljm4YSI#hW{JF8~r*O8bXq@^H>SldH@cG-blG3vY%b6P5Os=rxV8 z5-9L>lZpspzmL^|yX7ipN+-`Oa$vaW6r+>n7*sgZ(Q$pNOl#%~z@GH*ub&fClo{jH zTT*y!Qy~jX7QBn$?>$cvvk>J@Q`_Dm1@!jb-fg^y!kGL+y%oB;DK9BKBHAYj#z*ni z_VZ!N&jy(6yr1fS(02b+;69cF>2lwcD>HLSw;|Z&kav_${@`KzsT=ESd7c+L=_Z@# zf^fFA0?VuX=}aSic)nVyaH&gsZ_(yNh3jjWo3ocA zQz)#UcKBUoCr4>zY_T;r)k4F~Gf4Q0OHJgv*^g1lO0}tzLibjKG$nReQNGz{-D>fo zV<$aX{+Q8F!Bfg2dU>Z*@n_K2sYRxe9fYF29}a2%DBK9ghhZ-%zF>P+5iHuDs6JEn zTGDVWQ_Fvhf1yv)@LB2($(04YB;|7Wt3`^Cb9~xMtR9dL_k?1ZBZ_;r<#pFkpC*BR zmv<9(l1L@vwsl>k9PO*(FRrY1x`4!Ff~}@TjQKC|xNf1$r-OS+j& z)w#Ci*1eIE*h4OoE}g^D7hXxSle6}D+Svp~hOwW`EuC1DtRtUKkxc=t9vv^`zR z7M(9ZcD7|Mcm6rP?;RYb-Rm7BiW-t;J*_MGiSUHMRb5K+it=ytF&Twj&Qeo-XiUY{ z8xL@Fa}eo+dhOHpf$H)qkfniN3oA@`FB^jCf^?#J#jrCH6l6v{-TB=m8oWUX+($-l z!^jj2c2bne0_Jr-M>BlSqZIp4j5AcjC$tu`j}ItPNzA>*ynG)Pd%WL`SoVj z{Y?c+!qA&>=DN@5{1(PZo9XK%NSB71RpN)G=3{uR35|5=k@Sc*?dTaPxgPSS!0B(lEp+a; zUxb|WmFc6iTT*7)W7^3o-tHVYG=JbQxU;L$H>>>-!nUv7SM+9?c_VFvsXm`~h6naa z#CpW!-jM()-;k`n`G!1CZ#Ob7<8HkE)n)`Kv@q}WGckrtKKlAK^BXef_BF^YjULPr zOzCo3`|SaMPQjORTK>oM*X!%oUS(fP|1*8eU+}otiDHq4>1LL$x3bxz-U#`5R!cg8 zkMrP@1U)FN{R{GM**+Vw2y0bElBbcjkXS)l-&s~I?cBSXyESra1Ccpf8@sV}vt`n+ zNh(ujuboCys?ANlt|=ssofhsi4v{rZpD@mU zv(bUM+n6xk>!c~B1i>zhM2g%aZIu1)XC!}TDPoY8^grz2e3VuSGs(JN>5tx2XbI{*Iak+< zlUP*C-3p6H3NYMcHZ-Dq^c#mZ{rv8P)TxS`aj?Uf$9Fs!BHsRM$+791f0%)Mp1E(! zTA%2c252;hEkNdUv^q~6WJ}weBZ{AULVbgjD`G!a-v4`9sIBZ#(Xy9=NX~Jbi;rq$ zrL;X@4Gnn#e0L%V+{6{SjJ2{5_vp`Ou5F}pv#Us!WXs#nVs50MxYnnB|H4K2HRJuf z+xxj{2O=oejm+%ip>hL;id?tnc(l8zD0uKk)i~!=bZ+ZdKtnaCK(%`D2`y$s;?C}p zF1K+9`87HEV3=kWfA4ZN@-X@II#MB7QjcWG_bTB zP9^|R?_^Litf?e%MKbiA$pSqd9COpFKJ217jjKFARr3Lm;@Z6}li|VHy)X!h;n>vv z7UAj&4X6T&xoH|eYJR19aXH|h$CJ9ShDm-4J8h%p0`KJcf@By2@rp&A>|jThbZtSPwa3(R_|3a) zNLh?B^4WpHDN?;oC%W-qXcxx&#~7&qSItAH+9_K0&c~|-Wz23v|EQC9 z@;=^~m5J{;#U2A1?c`4hHf+U|ht{Er+gvwqsherN^|v0^f9rknv`ZR@sdY3HIeiku zjkrDULSan&JxoE{hV*1FE#+$Kk%N$h1J2#3v555RXh~htDU;ff(UktdVHgp2v^{EGRS}eiR@I?DE$SM<+*B|Il))94K4tN~D`I z={chN`<(O{uYT+nJ!s4GiB$pX@20vyY)Kb!N;RDdrs*2<=u|VoxmrSmk|0b(r|N8y zM#Z=ySyLCjQw?~RfGbK9M*{|sfHv&APB3FQHQ)?k$JBpdmalJ}hnZuN6<^}f=YZ)r zznq?Q!PL9`j;>I)rPSgbHpT^9qgx*_-iY;&P1bNe)sy|G^ODy21`p!ba*s0jb1vf{9tV3 z7c_fMg7}8Ht~NY^X>fqag&;+(aiKfT-JByp0byLUCqf;auA^nLpPEQzUAxrL>j^dY zywS;`ubSrG3Nt5O>LfYl=gYhjv$GwzxGUB_heb9XTv%SI=P|>#7V@0V{(M{7Eyro) z^V%ytyWuDqP}n5fMIWoVY?dfvhrupM0={)2fn`(eGi5O@W~v=9*X>UDWRhibF7Q|R(Sp_32e z!G`jD+OadtRq3j@K9R7x)OdcgcbfpoHraf06jL;%Ih}p``l&-hGu;nn;yS`Lbk(8v7@?!j!zaA)~7r&!>P!uR@R2Z zkHr@Jtnxu3Daz&KQl;}ttv4r;`#~h&cj$GZs+S_Br7rE&OR%%Y(#6^%$kXG3);Q^0 zJ?Fc-D@R1K^-m=5cV&CyonU2QNBlc@T)uxYwCA2$sT<++DCY(yY;Hr~s^@AEMAP(O*+Mb={SouMPq-dk-P(2VgHJqlX9ajx85;#)N{|%ToOr%*lK&#mN2GK zl|HGy{<;-37ht~GFUgiY0$%*#a3lOkEhsrJh^AUh+dZIgd{*djeN7g|K)jOPH{wtC zoLdzU^q6h4Jg(a*2CgoqR5oT$q_gp33PQIa-mTW%K+;-u;vw;|0@IjHz5z)Yoj|^^ z9rpSoH(QGdo;1IbSkIF`AM~21_X>{b2~Jnn-V^O#Kf09&4_3rBl1Qka8pAKEp*@wj zozwk^8lwi!RIF@xHQ)KyBo6S6UcCtJNId(E-Q>08q4=oP%Q{^`P_JG|X5EOtfkBHP z;5&SA^Ex7k0;w^T^SjBwMV5*=^37;XU zUI)&X56P?Zi)D#$4Ig*E>{Tfa#C)#UP|mQyc64;BmgwbW?IVce=$)m{YWU-R?b*`p zN9mtG=YXIX^hwW6q0}(JS1;mJjb~~z)Ovj z^9hJJRGX_e7($y=$3ncKV$`*&nw!t8$5LJ2x{@%9>0z{4;qHoEFt&~7TCS7X`kWyz>^hdm;QWqDx>k!3Hz~>iMc*8ttGTVAVA!uCry#(y-->RZH z@oS2Ed#c<*MOEI2yy0y8n<--`;XrUslJmloCI0O6WrWZA)LL`%*NquB#?#A4=uu(C zvwjz-B>Q(8cP`u5k$i)`u_ZCg;Y~!0qobga%V@GEXan|4>BxR6_d8=G{DT1T`@I8^ zBCTRW9~hG-`QK%>FgKnWW0GPpL}U8m1P>b`(v{x&(Z2N74 zPOP9axX`wd_(J;Z`SqSyRg3fSPDw?4t;W=ebCr=2vmq@NPvE)q)3xyf#h>4jVU-dG z&r`J;xtpU{&eZ(j_4+2xlKMq%%wlao8}|lc#TN3$kHkh_HaxmYmPA-i1p7ZXhM%Mb z595Zlv13?A(WcKkmfS%F%dlPwoU@|bUlT+i+mwAd&+IhjK_rZ(OI5?1}dK{ z^#^6S0KCo4Fg~N6UB;CF?8?^huwSNZX4sccr=Wv<3(kv`Zrwa6bi19B^zA3~s|xPV z=3}PO1~pw80!ikoKII#7v5A6Fl!;H}Mmab@o1i+7tX8`=cZIp2J>zrza<#b6Ly3Go zk(Fb-H~t9HfKtVls$%Rgz%H)LhW_08GL3hLhds#x*QeLRZE5tiIolvWpT7B7bY!s5@l+{|_KlK1Orn@$@+NNIcRoJI zVL49G*TrlUEM5cqj;&hUB)T2zDXAZaNZo44-Ez`o@66r>eeU01(h{*cI5LzL`cVf{ z&;Af|ysW!n*OkJiyS!XRXUoi-zLS+Gz?86yDaxX&SMt}!d$Ol{USYZ=2zm_tviU2H zITASb!ReA>Io77RKaH0y9NUY_cGpe%D~hE6>f@4p=UO*@!7e8m#Bl3)*86wWzx*|L5b1!}fDPWW~{VB&8Y0gJdcmi(A+oy@5-RINXy!30%w_ z&XOH>p!+j9&j#yDr%P!U@@S;e$jzit%E7?Mbq=O|uGJ^$dbYbEzh+Ztk*5>H%hl^i ze$h|^SMpp2`GhD@H@H*9V2NH=7kc<_3SLx@4*s@A|BkAqCoFZ?o|{-HoMY~^Kx%r# z#Gbf|bF11|R#o~<3B>5RDf*vs=(|3oGV&ef)m=UKur)uz9Su-|DGXokb;Jp-+fw)< zLz;cgs<0(gRX4K8um48siTkWLIc+Od1wRxjSRFe!!@1S&c->c}mmjkrJRLY^kl!Z3 zkA>yvTqx{*d6Yb}`fd=-9s5nw*}w$E>1H9ExtU9eq5i5u`gQu+*2?nGn!#suBFh6a zu?I(v(Vqw28D2w1EiMa%nkCr;A04 z$OET7or+bDi*fIuDv*|}&FjpAuw7U4TtL0t>}*a~5b3CO*)8XdM)YtK-RgTHz}dQcA>c% zevT!30{#=&>Ec_UfSJ8#xzFzd$f_B;LB1ByTRcqTg*$46l*>0!a1o<%=W6dQ-vT*E z*>X!>^#jYv9>Zd_x_mr=)x=?aOeeA7&$@!o@oQkHcTslB4=_{R&c zh+~ghJH&O=ZLX9?SZi^8Z~H?*W$Cb8$D7~g6b@6M`A*yExmVkbDTNuX&+*~VZ*Tsg z1zS~bmU$)O zD*OUfyt2M6fAu3v!l~z0gBvG=3p+f=1ghpW z4_KVdhinVTZ5qFUG;k3_#UIQN7DT*Cy(qcSY|2vN=5h1B zDs*Rbh9>$q>$QzNt<~g+ex+|^f2>|66eM_;dW}t@%8SpC<>RpckvB)BRccnaykDi6 z;;}D_OH*1n~U=op$2*$ot4uCXeXxmkTe_;?wQ@8kg1Z z>FKup(;*V079z9LtW_b#nX~DzrZZy}A?YxfBW%}MyHX9g@vDS0>f_@!=Db{ z`)Kl*kQ<5ta*Xf_+Av_htk!=_{!1Jv3Rb| zQeSel9%=ORrEeniO)d1^I#aiQe#SK;yyULsaA{aA&DvPEt`(a7gQ;o_gd$x%@UH|j z;nRsQ&TGTtgrz_RwXGD6q+&^Urk}$zitF>37D_e5ts2#p8@^xh=xUiP*Tzmgy|VXC zq-FW=DJon;-0Q?3eeD5nbJt0+aGO78&#;4=hSX=kc#-!zqiD9ABS(k(jOW&GX;!4i zSyj^K#~%apsR>2II$v>b?5(CKpdGz1h#-}*kC{)q4p|yH)pq{?-%aBB-NUt@Yr{bf zm2gcA;xlvD?T9GIE3NjqI>P&t*CTkg&P9atyxR@!E*y~Q+UFhkvTa6E=F|L%q*L7; zh!32~TwM>TfrH7-5Q+U_b&GQQV~e?8zbv~ZeDl{2IKzYK-+1erJI5T0t1rOPQ_FHG zEZ`uFR-gyrs)+tayEi=czuU`=%9x zUOWwzO*FiN?+`#?LYJ`cKwf*7u|ri;dNnd?U-vkk{=do5z(#qamC3 zVhJw7nec?`s&b|C58j035*1uMoYH?2KN5arKtDl&Ez9~jMs|}$xRpCeB#Fu$mi()} z)kH!N&QG&UQEzK4fo51S%uDrwnPZDeQYo0NtA>uo&_d3b^y+|;;%?5ikxFj|C#!F(fx5vpBVKX)SJnQT+joI>TynpK5A8L(e~uk-nrYiuGP z$}w!rzxa8TZmFou&Nw^wH7^$5Es`vjXijS4FOrBK}Kep0bHA$4WFYw}Sbti4gRu|-woy%RJt_dM(m$F_?f4l zBYlw^46aY3(n46pJF>#FjIp?A*MR3JqG%23%nJjBuU=~8B>KZe+e7ieO*-h2pxmvw zu=O?av?&fb`iJW2MGN5BAjcv44Hh zn>BRjZVC(Ta>OP`nZ^l6t9Mib>wSj*!8J(#N~GRYiz1?&%4LBGP8f>i$oEZRm5}%4 zedY11oGk`Ob;34M7tbWVR6K}xUZa%w-zWj==aruD=BsHE1lP4)3#2A$p zN4|%u#=Ua>5H~N>jYwQM`iF+u_HOPW^t5rg79&TXNIeh~f|x8bTQf6}_2Qo!am}$z zpFcxNvrItfZ?x%BE>@Y;pSvU*4u$r-vijn(+`^FEHcyWwj%XHys_AU16Og-ypW8-C z@|}&1p;sF5MoDVpGl{X!=#Vu$9X^MH{yDj|lY7=4pj9>Kf(^`fy z#YE~K?W}_9Qc2nBK2KZMLUYCR@5Hf7W_8Ba81qLbQ-$Zkp;(b^yx@w1lNNsuZ5GfV zaIJ!ss$Xy4OM90Osd>(;GoO{Xi&AT*!eU=86zBJ4Iu-OOBJg+exyq+v`YClHg-#PHBFe3RtIL7C}>Y4Q@<=&?6cCdZxudRYpsiI zhL5@RPPs|={Pap@0i3&hRKD8DEdYhEN}6D!Gt?E5=0M)@Tv6mWpV$28IaN; z$2NvZwbPqDNBIhbH|S_(^J$bLuD9Mo;kBtVTx$l|tlJzdOm93_j5Dg{47RE!RaKUX zB??=^n7P(%{H}6?8u>Dc8Yw>CiLmJ(?jiD|&yA~c#!ai@8=nZOH8TW6CyuZ$F5|Cv zOK6rNV?Rk@uqwy-yh(Kyv?j)92LZ;q?+_)!6DPWDt z3OdxO6l90jH~mC>RNLx^>(n3ENc;t8gb3|5lZqZw9GK%~djFFu1Hb1`V6LN_=ZW-b#P=p2^Jsi&gCCaN z>9Ge$Hk|F?RJAG*P_J01Y>ACKYR{NJBb2ESLIlIBsYZHaCV3cZ$EN*D`5N#AX3_4T z8=Nz)8n@Z7j1yLWruisI_RpJXCzdl1`U2B66J$gGoLh(e02*XdUow6xFQz|r>G||~ z!K+CgTV1}Ty2$-tbo7q*i!1_Gs}8BLZQNUt4Qof~aTRkePKqa$g~@Adjv?Osu|e4I zY*5C8G+=mZr*)R6-Z;f)M-l$^wVc)qUoJv}?2fei`2qdD%TL)PRVlMTW>)q${(A*J z5-?&TMf?W$l@-;e-&^3$M897aZ}|?CwxDq|HW_6~wqT+qTdhDld8KQ(7&6Sw+_Cj+ zx0r?0o^q+MDd9^?_*rmctP7Rvd`X{r5k%!|G&YYwdXCoW6(^TH_9tUtZ&&7{Z*@_z z8gX>ZRA&o6Ff#k~9PiEp1=Q8uj&z&AIRy?p;bUh$E9%<>5Ti5|Te6BmKl84~c3EFq zNgwB@PeZq05!S)6x80cd8h2^$0@J#LQp+KhXDMGZ3T7zYP<{Rsr*dt~Lz|*T7^vq+UIg3xOXOpu+uC~8_qbAFAUTiClX~dV6TMgTm|N#B zWJ#+=D3HjH-S21BRK>3KSUhzeE$76d*xXa`h0crWS#dfxNs?6mI7;$@OP9H+1F9Am zC>K}JaKaFg`T9Qknm0_u$TnV5-G+_2gy%RS{6D5sk*0f4sQ#5<={u%JrUK(dCjzg?@sPT1{ZH5E1M zf(?8EKny$6pV=$(b7o?-P5`y$&IFUZXPf$nc1%c51w=!Ul~mTXBjGEB#j?vCD5cb<22;*0%DC&aN{<1n2i26Q?$ON8Mkb`$*rG>MKM}dr zONZI7Rh1~mFHQJm@tz$kJtumqhaADxM`RDZj`{!iY9(yE;dzDqv1o9 z_au4GIp0r7suVaJkp*dfBopd*FLQ(z{LT_U8UI( ztp(VQvM`~UWm44V~R>Ah4Ld- zQeoGq%T9#ur(X0aR3gJ$y|A#zo!t(`7k&!^g9*kyRz<%x(m?O=-m3Q$YoLL;J_$}= zs}n8%0d0bDWL+Jm1O_=pB_bv1EA%h={D_X#t9`oRH`!+<;>BSW(_E~eN$x33{HB^F z<}Wa6MnVO@i@nJ}b_M>Gh4q6*VPr~-e+gL4@CD}*(280Twb3GYvk5>bdi-S@d|IGT z@rr}L=h}N1y^Z$^6dE^s8Zv`k2o@xj0(1g%CgsR46s9oAG~fMS51-;*?5(7JqsDAY z_3J?6#yK8lxOsf4 zFX~{6AdU;7$Q<%|B7CDe&6F6;rsu}pCB9OFa5VHIQ?}+x)x1@^Db^k?`9t|6DdEbt z0#spa(`)pcxsSI}EyMBTlAz_}&jJo(&TW)nW^-MX$6TW=hA^~(CrRpLEpJlrSOrGs zV2oA%Ou=M6$){XlqPif#nPrB4fv6pqA?t!Fh~wV8pGLA#cvG@6GT#o?NDilgh1l36 zsE=lUB?N`Hi#htu=&+VcO6Z;e!_x|M+ne9_(&tgog?@7rK#^575bk+OEY**tp|6|? zm8d1JF@BL>Y5QQVhm_W0Fj#E6p3K$qKG9OA-gX#Jjen#I)E#OsFpKz@i{s$Kn%aXn zS?uW9B6<_QL2kl}h4BqA5m@gwu0Ds^o9=%2q+7ssacb|&c)BTbG>GC~6}cY8odx2B zYbc^la|vDPCAHT_?m6@EFU|)?Z^BXT#fyL zdX6&QQc#~-xehD~@T?D0R|I^`Xl~n4GbfDrzEB-^WuMn%N^V5%G`iE_eTxRD284MB zo&9P9IRwKeY~((#vIvkidWniL1Cssdv%|_1XcVMYXAXn*3Qz#^_d%6l1BBP(8FLC> zd`3c0i4X{f&Albc&SlBGA55iEymaR$fWz$gmdCBlZD{o=XT;Sk;U`k#oUQPgI+?j; zn`!4;lc;ysaH@V86RT>|b=FqX7rO@u&Z*+zyP6tb$_ z33b6_*zcxf71|JFm}iyWFaSpqR!>GkV13js=0-}k>)xrClS%%`hT?;@Gpmamm9-mZ zah0L-C?WaAT@%Jdp5pU_WDbtnLy~xWABK7}mGZRC*<>Sx;!M$%;_aPbT&a)r+LpYR z&Um|w)!Eb3q3Sew{HmIn{08n!I{kaKLm;sUun!!YBF>XhynleMW6x~AXq?Ge0^6dz zF2*&mQ<^EIWwzz0bknx|b=1K!1;N?8IHceN`P_bPvAUmwJaL2{^?*vc4)y$9SwNZ2 z&#h_hGPbb#Pe}Xj!=4hV%zSB7FCMGdrlxleXM#1#;UJfBcaMGKL}x#Nh@%?z{d$% zYSS|yRV6v72;>j9Mhogv*fWuvi>O=?6#gw=6OgTX;-JVH`B3&gDc1kGa`eTA2(#L> zn^dJxUW~u!uqUZeKePICZX>FyB=tthX>tMX8T74Bofnf-!kW+>vsf$K;q3ec$VE}} zCn#0j8BZ~Ux>|DBj#!O>YB&s|bO2yJaId!(zkU{Z2>cXBa^I~eIg?1z#q+oAMc_F@ z@<_IN0(KG=6=Q_9?bEL8$f3C6hkT6Q+fIJo`s` zQDi7>`uRv}a`V*nQT6eG!SYD9wR1Z??cEK$n0c3&2Qc`&j{6T;`eeI zxk0aOq{rf`C*r4pr{W3iHtv?E1Bz=h1zIP|vEzA(vMrA?4)q^Fp@F2MTX;=NpV7TN z!OFLz0-M=cxr-I^Xl*V^fONJ z`WjBf2m8FGM*%(G`Ny{ZdNZEvbw>E_nc_ zUj)pi&yqIm&R=Awwq#Vagmpbn+5d9yr$3U;8w1dt&)0qxzDo4t?>hJvw0gB3LunKd zY&`{$5d4KmIlPxj{jkXt9EjMPzOF)%wIcU!688htiy?TOXYrwebDam8g1*b~$r~Cz zmvYmR2Ic-VvaT2#;dFZwP;-YHiO!`)83g#OQ~%<+xc!`rLe3&>MX|`DlSe@|$uNjY z8UPVREOGN7MM@6*c%e+cA9QC+IPpa~Td}Zml2OEKPVpx4VV@rpu$eFweIv?a={I)w zy$&^lw1C?qJt+zGd9q|Vma9M2$w>NYd!vA^Xr}`vI^y{2EAKCDD#a`PrL@0uTut~w zZELj(^xNWU&x)21JDNKB>p~ZV837GaU3^CO_wBKQzRr+9C*7It&YXRp;*+e+qrc>V zqaEB+b<4ZcU>=%Y)~Q5%3$v~fAI8TC1t3XOT2qQW*It{a@05x|p7*1ZJ+qh^_zZJ(DKqvvV?jSlOx!|X@wLuSw zB8~(WOViAkL|iM`c^%W7N>hQIdD2*KJL^z8QjZ(eP2lsTG^aXFf9m(n>*Qse!dL(i zZe3h--I}f3e*Jp&XkI)b?3$hevAi0k zC+g&kYc;CGs*A6F8!UB)k>1i!dtjkdbTH>c_UePzPJ$M><**l*x@5M$elp^3?-IdU zuAQT4)$|GW1$~DxGp9w#1_c(b)C;LD?)eTL`#|bxV!=De@IZ)f%H+th=(Hyu5I|YGu-Dw-JsBQdz{-b9ef24pXhb251TVovO7y8;k$d z)w23nVOP};iYd@D$^JvFgcQGbHzUY*2;@0`@gvdR%P*FfnObsP09R>XC056Y-BncY zJ_M9E^@M>y$w}eV2dI&Ah@ed?PL&7wA`bmL|C-C3kk#4Mt7*)VKe745{NXG^37D_Z zKCLCI?aYuDHELk#>aerGrSpE(nTN9X;WknjRnUC?o!xzF*)&CKlJvSaVymTmKYp^o$8MyzW$#SX_3|`J$X~3jl6GqRIY5tNtvgs zv1ml(hk^9x$@R05l(z{*$DfUyhI&d^@bS+NjNT6t^Xy*(X`d$D5itt0Tuv3NvRoT- zl0(G!#=fEtJvol^-+IdL=2Zy#GLyPW!{180=8o_C{*+g}2J(}ff0vrLsdG+8jGz5D zt{#}I45qcORgsi^->!HI`OTES4KE@uJB=N{e>w7V*onT*p#tBH=`%=Gk4Ac^Cy$CU(8^P-En18t1W`;9Gk?K9oApU zJ`{itLW5(yOOiD8Kj&lg0`Qg|)RP`Wbka#1+4%98UrP-fAm(wb2&;?N<)e>NmK$O+ z+$z4t#!{^IE5fAfC(J-bInjj%BxlAjMwUKY{(+y?^uzt95k;=iS3qzxEqqWr}l!D*tEK~t+$D8 z;$NumnPvvkCc;&lC+8Mc-?g%&>qqj1r8Vi|VjugVM_*S8Y@Wn8gBq6c3lt+89#|xN zsX2PkzHxR;AD>)#Hl%k`S^hS-8L7$3mvBM?o=_*?vtrVYmNV+YKo2|^y6o+5MeF6%DBvg_=VFZ+|Qo2$Dc!$RsucabNs+Hs_ zW5*@IF*J^DAClyAbHYql1z>6s>9>GI+P(&(Mi>$P^85Eg{oBV%J6#(h7xc~xYnv9#$>bPi)R_lo+K=a-b1t1*+$p60p((%4(!u55;k!}iwPF%0CxA)@| z(Vn@ie)l>9O3lg$xP;LUB&r)HkQUr-(5_T+qfo!D7SGb<}O z{HLF+6XmySNfSZ89Gw~QY1T5C>E(BdIYcY96)26POi-Fyp6WQKNiIWB8MAhwW-f0+ zDTml4zwudlOr4*FxvphfK5f~kI@vRvXAjyeXVWGjA2~BEgvIr%q@$Zz&^3gkJ8YCU z{B<5!;vSoK-uiqLln~}XDR%hjd_%|?bM!D~>p+jp3Lm2>vwmD}6+|e+k_@$Fw`qAy zJT`YNA;80*mx?*~>HsO#Mn3k2p=3*o{q9q(Uni$IBkw&+r`2?^b~bME7t5(1yxiU* zJauQtdI;m@>YR|$`Ya{zV)AL8>{j_nF!fsOmZlq!4fq5aF?Bp~n(E4mZ6UvLvmh63Yj9?~4-QHYUb3^#Jxmq2%gm1zb4n_mP z`)U4-8q4^?TGd3S(iAP@b)g&Dk>gCs z-GKzgK_MRS*r1A&e`u;^Ee`OM<5>nn!GyO<`Owpp@r#m_?d4y(+B7+ve$k?9fFDhO z<1cR@`xaV8YR2(|uIA}7?bFgZ-y4LmK1-y!&`%fdnR#w?ewC&;_k^Q*5mF`&`Gqxe z6vv{t%6~^^c&TjoO6Y0c8|3r^>yGY(@@X8Zx9I0JJMb9AmN{rbCKVD^1IGe!X9}z{ zl+qSXmOC~Fo;>;<)7$XuPzgDZPW#1x=O_J(_4Mnss&Cf)8@$dAbxXOr4`U~fTZpIR zXQ5hkRKlZ;$c=^9T%}_!|A=5|Lx#{jz~=(>#Vw^(&JJ2=u4BM ztviE&5pz%DJni#T%Xd%Y`#|NZH+tXoxf1x}r1yH}?$x6b7p`$n7b@Y6QHx%k$cD13tFmHJ=$-hXHugWymg z2~QgI#^Y!9(>tn1&=niE+n79IO(K?zrU_`29lgOnRJ&M(oWZs&i1a^MUz<*vb>WA0 z{w*aP`0WqaWl_$edhhK=EmaC7zI`|#E8y=<6c70~7D()=<8={Fl7IzXnAN%%o}rSC zzd)Hl^eP}nA6Szb#lx7WJ9WwkZh^$v+;E*o60iW4UKSCJFtBV~li!o`hHrmQ zqp?t;`vR-pGi+p_X-e|298Z0mf&s>$YqtPtK%Tif5XcL(0+J3C;aI20NqA#$$pU_q zTiw{sA3IAf$1JC$4qx093^r0R172TYv9Q@Q2F^uEGqiWzSudYrsvh0a zCKJ^`zk2|1*rG(z+<$Tp%BJuu2O*-b@PJXFat2fD-6>uV{&xkom*mG6KF_v>_u`T> z9)A)BiI2COt=_lPgi|mKP~OwH#D9NxBErXJP*Q!X_)p3A?B?jx)$MoWSL{|By^^T$#ngz{c;bSQ?KN9zxBi79+@b)o4);xzY5Kxmv zr{WCo-QG(SSh?4qvCuzVRK-eQK}Q8nr{{*Z8xGDPVZ zt@}JuiRyN@;H>z|iN|sX#TK}R%XTDD$eM5?;Wo+≻&05DO=tIT*X$wPmt*guXrl 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 P`@d^T{J-`b{?7jwf^G6l literal 0 HcmV?d00001 diff --git a/TastaturberufContaoImageCopyrightBundle.php b/TastaturberufContaoImageCopyrightBundle.php new file mode 100644 index 0000000..e390ac1 --- /dev/null +++ b/TastaturberufContaoImageCopyrightBundle.php @@ -0,0 +1,23 @@ + + * @author Daniel Jahnsmüller + * @license LGPL-3.0-or-later + */ + +declare(strict_types=1); + + +namespace Tastaturberuf\ContaoImageCopyrightBundle; + + +use Symfony\Component\HttpKernel\Bundle\Bundle; + + +class TastaturberufContaoImageCopyrightBundle extends Bundle +{ + +} diff --git a/composer.json b/composer.json new file mode 100644 index 0000000..77b50d0 --- /dev/null +++ b/composer.json @@ -0,0 +1,23 @@ +{ + "name": "tastaturberuf/contao-image-copyright-bundle", + "type": "contao-bundle", + "license": "LGPL-3.0-or-later", + "authors": [ + { + "name": "Daniel Jahnsmüller", + "homepage": "https://tastaturberuf.de", + "role": "developer" + } + ], + "require": { + "contao/core-bundle": "^4.9" + }, + "autoload": { + "psr-4": { + "Tastaturberuf\\ContaoImageCopyrightBundle\\": "" + } + }, + "extra": { + "contao-manager-plugin": "Tastaturberuf\\ContaoImageCopyrightBundle\\ContaoManager\\Plugin" + } +}