<?php

namespace {
/*
 * This file is part of Contao.
 *
 * (c) Leo Feyer
 *
 * @license LGPL-3.0-or-later
 */
// Back end modules
$GLOBALS['BE_MOD'] = array(
    // Content modules
    'content' => array('article' => array('tables' => array('tl_article', 'tl_content'), 'table' => array('Contao\\CoreBundle\\Controller\\BackendCsvImportController', 'importTableWizardAction'), 'list' => array('Contao\\CoreBundle\\Controller\\BackendCsvImportController', 'importListWizardAction')), 'form' => array('tables' => array('tl_form', 'tl_form_field'), 'option' => array('Contao\\CoreBundle\\Controller\\BackendCsvImportController', 'importOptionWizardAction'))),
    // Design modules
    'design' => array('themes' => array('tables' => array('tl_theme', 'tl_module', 'tl_style_sheet', 'tl_style', 'tl_layout', 'tl_image_size', 'tl_image_size_item'), 'importTheme' => array('Contao\\Theme', 'importTheme'), 'exportTheme' => array('Contao\\Theme', 'exportTheme'), 'import' => array('Contao\\StyleSheets', 'importStyleSheet'), 'export' => array('Contao\\StyleSheets', 'exportStyleSheet')), 'page' => array('tables' => array('tl_page')), 'tpl_editor' => array('tables' => array('tl_templates'), 'new_tpl' => array('tl_templates', 'addNewTemplate'), 'compare' => array('tl_templates', 'compareTemplate'))),
    // Account modules
    'accounts' => array('member' => array('tables' => array('tl_member')), 'mgroup' => array('tables' => array('tl_member_group')), 'user' => array('tables' => array('tl_user')), 'group' => array('tables' => array('tl_user_group')), 'login' => array('tables' => array('tl_user'), 'hideInNavigation' => \true, 'disablePermissionChecks' => \true), 'security' => array('callback' => 'Contao\\ModuleTwoFactor', 'hideInNavigation' => \true, 'disablePermissionChecks' => \true)),
    // System modules
    'system' => array('files' => array('tables' => array('tl_files')), 'settings' => array('tables' => array('tl_settings')), 'maintenance' => array('callback' => 'Contao\\ModuleMaintenance'), 'log' => array('tables' => array('tl_log')), 'opt_in' => array('tables' => array('tl_opt_in'), 'resend' => array('tl_opt_in', 'resendToken')), 'undo' => array('tables' => array('tl_undo'), 'disablePermissionChecks' => \true)),
);
// Front end modules
$GLOBALS['FE_MOD'] = array('navigationMenu' => array('navigation' => 'Contao\\ModuleNavigation', 'customnav' => 'Contao\\ModuleCustomnav', 'breadcrumb' => 'Contao\\ModuleBreadcrumb', 'quicknav' => 'Contao\\ModuleQuicknav', 'quicklink' => 'Contao\\ModuleQuicklink', 'booknav' => 'Contao\\ModuleBooknav', 'articlenav' => 'Contao\\ModuleArticlenav', 'sitemap' => 'Contao\\ModuleSitemap'), 'user' => array('login' => 'Contao\\ModuleLogin', 'logout' => 'Contao\\ModuleLogout', 'personalData' => 'Contao\\ModulePersonalData', 'registration' => 'Contao\\ModuleRegistration', 'changePassword' => 'Contao\\ModuleChangePassword', 'lostPassword' => 'Contao\\ModulePassword', 'closeAccount' => 'Contao\\ModuleCloseAccount'), 'application' => array('form' => 'Contao\\Form', 'search' => 'Contao\\ModuleSearch'), 'miscellaneous' => array('articlelist' => 'Contao\\ModuleArticleList', 'randomImage' => 'Contao\\ModuleRandomImage', 'html' => 'Contao\\ModuleHtml', 'rssReader' => 'Contao\\ModuleRssReader'));
// Content elements
$GLOBALS['TL_CTE'] = array('texts' => array('headline' => 'Contao\\ContentHeadline', 'text' => 'Contao\\ContentText', 'html' => 'Contao\\ContentHtml', 'list' => 'Contao\\ContentList', 'table' => 'Contao\\ContentTable', 'code' => 'Contao\\ContentCode', 'markdown' => 'Contao\\ContentMarkdown'), 'accordion' => array('accordionSingle' => 'Contao\\ContentAccordion', 'accordionStart' => 'Contao\\ContentAccordionStart', 'accordionStop' => 'Contao\\ContentAccordionStop'), 'slider' => array('sliderStart' => 'Contao\\ContentSliderStart', 'sliderStop' => 'Contao\\ContentSliderStop'), 'links' => array('hyperlink' => 'Contao\\ContentHyperlink', 'toplink' => 'Contao\\ContentToplink'), 'media' => array('image' => 'Contao\\ContentImage', 'gallery' => 'Contao\\ContentGallery', 'player' => 'Contao\\ContentMedia', 'youtube' => 'Contao\\ContentYouTube', 'vimeo' => 'Contao\\ContentVimeo'), 'files' => array('download' => 'Contao\\ContentDownload', 'downloads' => 'Contao\\ContentDownloads'), 'includes' => array('article' => 'Contao\\ContentArticle', 'alias' => 'Contao\\ContentAlias', 'form' => 'Contao\\Form', 'module' => 'Contao\\ContentModule', 'teaser' => 'Contao\\ContentTeaser'));
// Back end form fields
$GLOBALS['BE_FFL'] = array('text' => 'Contao\\TextField', 'password' => 'Contao\\Password', 'textStore' => 'Contao\\TextStore', 'textarea' => 'Contao\\TextArea', 'select' => 'Contao\\SelectMenu', 'checkbox' => 'Contao\\CheckBox', 'checkboxWizard' => 'Contao\\CheckBoxWizard', 'radio' => 'Contao\\RadioButton', 'radioTable' => 'Contao\\RadioTable', 'inputUnit' => 'Contao\\InputUnit', 'trbl' => 'Contao\\TrblField', 'chmod' => 'Contao\\ChmodTable', 'picker' => 'Contao\\Picker', 'pageTree' => 'Contao\\PageTree', 'pageSelector' => 'Contao\\PageSelector', 'fileTree' => 'Contao\\FileTree', 'fileSelector' => 'Contao\\FileSelector', 'fileUpload' => 'Contao\\Upload', 'tableWizard' => 'Contao\\TableWizard', 'listWizard' => 'Contao\\ListWizard', 'optionWizard' => 'Contao\\OptionWizard', 'moduleWizard' => 'Contao\\ModuleWizard', 'keyValueWizard' => 'Contao\\KeyValueWizard', 'imageSize' => 'Contao\\ImageSize', 'timePeriod' => 'Contao\\TimePeriod', 'metaWizard' => 'Contao\\MetaWizard', 'sectionWizard' => 'Contao\\SectionWizard', 'serpPreview' => 'Contao\\SerpPreview');
// Front end form fields
$GLOBALS['TL_FFL'] = array('explanation' => 'Contao\\FormExplanation', 'html' => 'Contao\\FormHtml', 'fieldsetStart' => 'Contao\\FormFieldsetStart', 'fieldsetStop' => 'Contao\\FormFieldsetStop', 'text' => 'Contao\\FormTextField', 'password' => 'Contao\\FormPassword', 'textarea' => 'Contao\\FormTextArea', 'select' => 'Contao\\FormSelectMenu', 'radio' => 'Contao\\FormRadioButton', 'checkbox' => 'Contao\\FormCheckBox', 'upload' => 'Contao\\FormFileUpload', 'range' => 'Contao\\FormRange', 'hidden' => 'Contao\\FormHidden', 'captcha' => 'Contao\\FormCaptcha', 'submit' => 'Contao\\FormSubmit');
// Page types
$GLOBALS['TL_PTY'] = array('regular' => 'Contao\\PageRegular', 'forward' => 'Contao\\PageForward', 'redirect' => 'Contao\\PageRedirect', 'root' => 'Contao\\PageRoot', 'logout' => 'Contao\\PageLogout', 'error_401' => 'Contao\\PageError401', 'error_403' => 'Contao\\PageError403', 'error_404' => 'Contao\\PageError404');
// Maintenance
$GLOBALS['TL_MAINTENANCE'] = array('Contao\\Maintenance', 'Contao\\Crawl', 'Contao\\PurgeData');
// Purge jobs
$GLOBALS['TL_PURGE'] = array('tables' => array('index' => array('callback' => array('Contao\\Automator', 'purgeSearchTables'), 'affected' => array('tl_search', 'tl_search_index')), 'undo' => array('callback' => array('Contao\\Automator', 'purgeUndoTable'), 'affected' => array('tl_undo')), 'versions' => array('callback' => array('Contao\\Automator', 'purgeVersionTable'), 'affected' => array('tl_version')), 'log' => array('callback' => array('Contao\\Automator', 'purgeSystemLog'), 'affected' => array('tl_log')), 'crawl_queue' => array('callback' => array('Contao\\Automator', 'purgeCrawlQueue'), 'affected' => array('tl_crawl_queue'))), 'folders' => array('images' => array('callback' => array('Contao\\Automator', 'purgeImageCache'), 'affected' => array(\Contao\StringUtil::stripRootDir(\Contao\System::getContainer()->getParameter('contao.image.target_dir')))), 'scripts' => array('callback' => array('Contao\\Automator', 'purgeScriptCache'), 'affected' => array('assets/js', 'assets/css')), 'search' => array('callback' => array('Contao\\Automator', 'purgeSearchCache'), 'affected' => array('%s/contao/search')), 'temp' => array('callback' => array('Contao\\Automator', 'purgeTempFolder'), 'affected' => array('system/tmp'))), 'custom' => array('pages' => array('callback' => array('Contao\\Automator', 'purgePageCache')), 'xml' => array('callback' => array('Contao\\Automator', 'generateXmlFiles')), 'symlinks' => array('callback' => array('Contao\\Automator', 'generateSymlinks'))));
// Image crop modes
$GLOBALS['TL_CROP'] = array('image_sizes' => array(), 'relative' => array('proportional', 'box'), 'exact' => array('crop', 'left_top', 'center_top', 'right_top', 'left_center', 'center_center', 'right_center', 'left_bottom', 'center_bottom', 'right_bottom'));
// Cron jobs
$GLOBALS['TL_CRON'] = array('monthly' => array(), 'weekly' => array(), 'daily' => array('purgeTempFolder' => array('Contao\\Automator', 'purgeTempFolder'), 'purgeSearchCache' => array('Contao\\Automator', 'purgeSearchCache'), 'generateSitemap' => array('Contao\\Automator', 'generateSitemap'), 'purgeRegistrations' => array('Contao\\Automator', 'purgeRegistrations'), 'purgeOptInTokens' => array('Contao\\Automator', 'purgeOptInTokens')), 'hourly' => array(), 'minutely' => array());
// Hooks
$GLOBALS['TL_HOOKS'] = array('getSystemMessages' => array(array('Contao\\Messages', 'maintenanceCheck'), array('Contao\\Messages', 'languageFallback')));
// Register the auto_item keywords
$GLOBALS['TL_AUTO_ITEM'] = array('items', 'events');
// Do not index a page if one of the following parameters is set
$GLOBALS['TL_NOINDEX_KEYS'] = array('id', 'file', 'token', 'day', 'month', 'year', 'page', 'page_.*', 'keywords', 'PHPSESSID');
// Register the supported CSS units
$GLOBALS['TL_CSS_UNITS'] = array('px', '%', 'em', 'rem', 'vw', 'vh', 'vmin', 'vmax', 'ex', 'pt', 'pc', 'in', 'cm', 'mm');
// Wrapper elements
$GLOBALS['TL_WRAPPERS'] = array('start' => array('accordionStart', 'sliderStart', 'fieldsetStart'), 'stop' => array('accordionStop', 'sliderStop', 'fieldsetStop'), 'single' => array('accordionSingle'), 'separator' => array());
// Other global arrays
$GLOBALS['TL_MODELS'] = array();
$GLOBALS['TL_PERMISSIONS'] = array();
}

namespace {
/**
 * MetaPalettes for the Contao Open Source CMS
 *
 * @package   MetaPalettes
 * @author    Tristan Lins <tristan.lins@infinitysoft.de>
 * @author    Christian Schiffler <c.schiffler@cyberspectrum.de>
 * @author    David Molineus <david.molineus@netzmacht.de>
 * @author    Sven Baumann <baumann.sv@gmail.com>
 * @copyright 2013-2014 bit3 UG
 * @copyright 2015-2018 Contao Community Alliance
 * @license   LGPL-3.0+ https://github.com/contao-community-alliance/meta-palettes/license
 * @link      https://github.com/bit3/contao-meta-palettes
 */
/**
 * Hooks
 */
$GLOBALS['TL_HOOKS']['loadDataContainer'][] = ['cca.meta_palettes.listener.build_palettes_listener', 'onLoadDataContainer'];
}

namespace {
/*
 * This file is part of Contao.
 *
 * (c) Leo Feyer
 *
 * @license LGPL-3.0-or-later
 */
// Back end modules
$GLOBALS['BE_MOD']['accounts']['debug'] = array('enable' => array('Contao\\ManagerBundle\\Controller\\DebugController', 'enableAction'), 'disable' => array('Contao\\ManagerBundle\\Controller\\DebugController', 'disableAction'), 'hideInNavigation' => \true, 'disablePermissionChecks' => \true);
}

namespace {
/**
 *    This file is part of the bundle DalleyItPhotoSwipe.
 *
 *    The bundle DalleyItPhotoSwipe is free software: you can redistribute it and/or modify
 *    it under the terms of the GNU General Public License as published by
 *    the Free Software Foundation, either version 3 of the License, or
 *    (at your option) any later version.
 *
 *    The bundle DalleyItPhotoSwipe is distributed in the hope that it will be useful,
 *    but WITHOUT ANY WARRANTY; without even the implied warranty of
 *    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 *    GNU General Public License for more details.
 *
 * 
 *    @link        https://www.dalley-it.com
 *    @author      Oliver Dalley - Dalley IT, June 2020
 *    @version     V 1.0.4
 *
 *    @license     http://www.gnu.org/licenses/gpl-3.0.html GPL v3 or later
 *    @copyright   (C) Oliver Dalley - Dalley IT 2020
 *
 */
$GLOBALS['BE_MOD']['content']['dait_photoswipe'] = array('tables' => array('tl_dait_photoswipe'));
$GLOBALS['FE_MOD']['dait_photoswipe'] = array('dait_photoswipe' => 'Dait\\DalleyItPhotoSwipeModule');
}

namespace {
/**
 * This file is part of menatwork/contao-multicolumnwizard-bundle.
 *
 * (c) 2012-2019 MEN AT WORK.
 *
 * For the full copyright and license information, please view the LICENSE
 * file that was distributed with this source code.
 *
 * This project is provided in good faith and hope to be usable by anyone.
 *
 * @package    menatwork/contao-multicolumnwizard-bundle
 * @author     Andreas Isaak <info@andreas-isaak.de>
 * @author     Andreas Schempp <andreas.schempp@terminal42.ch>
 * @author     Christian Schiffler <c.schiffler@cyberspectrum.de>
 * @author     David Maack <david.maack@arcor.de>
 * @author     fritzmg <email@spikx.net>
 * @author     Stefan Heimes <stefan_heimes@hotmail.com>
 * @author     Tristan Lins <tristan.lins@bit3.de>
 * @author     Yanick Witschi <yanick.witschi@certo-net.ch>
 * @copyright  2011 Andreas Schempp
 * @copyright  2011 certo web & design GmbH
 * @copyright  2013-2019 MEN AT WORK
 * @license    https://github.com/menatwork/contao-multicolumnwizard-bundle/blob/master/LICENSE LGPL-3.0-or-later
 * @filesource
 */
$GLOBALS['BE_FFL']['multiColumnWizard'] = '\\MenAtWork\\MultiColumnWizardBundle\\Contao\\Widgets\\MultiColumnWizard';
$GLOBALS['TL_HOOKS']['loadDataContainer'][] = array('MenAtWork\\MultiColumnWizardBundle\\EventListener\\Contao\\LoadDataContainer', 'supportModalSelector');
$GLOBALS['TL_HOOKS']['initializeSystem'][] = array('MenAtWork\\MultiColumnWizardBundle\\EventListener\\Contao\\InitializeSystem', 'changeAjaxPostActions');
$GLOBALS['TL_HOOKS']['executePostActions'][] = array('MenAtWork\\MultiColumnWizardBundle\\EventListener\\Contao\\ExecutePostActions', 'executePostActions');
$GLOBALS['TL_HOOKS']['executePostActions'][] = array('MenAtWork\\MultiColumnWizardBundle\\EventListener\\Contao\\ExecutePostActions', 'handleRowCreation');
if (\TL_MODE == 'BE') {
    $GLOBALS['TL_HOOKS']['parseTemplate'][] = array('MenAtWork\\MultiColumnWizardBundle\\EventListener\\Contao\\ParseTemplate', 'addVersion');
    // Add the JS.
    $GLOBALS['TL_JAVASCRIPT']['multicolumnwizard'] = $GLOBALS['TL_CONFIG']['debugMode'] ? 'bundles/multicolumnwizard/js/multicolumnwizard_be_src.js' : 'bundles/multicolumnwizard/js/multicolumnwizard_be.js';
    // Add the css.
    $GLOBALS['TL_CSS']['multicolumnwizard'] = $GLOBALS['TL_CONFIG']['debugMode'] ? 'bundles/multicolumnwizard/css/multicolumnwizard_src.css' : 'bundles/multicolumnwizard/css/multicolumnwizard.css';
}
}

namespace {
/**
 * Haste utilities for Contao Open Source CMS
 *
 * Copyright (C) 2012-2013 Codefog & terminal42 gmbh
 *
 * @package    Haste
 * @link       http://github.com/codefog/contao-haste/
 * @license    http://opensource.org/licenses/lgpl-3.0.html LGPL
 */
/**
 * Add the "haste_undo" operation to "undo" module
 */
$GLOBALS['BE_MOD']['system']['undo']['haste_undo'] = array('Haste\\Util\\Undo', 'callback');
/**
 * Backend widgets
 */
$GLOBALS['BE_FFL']['numberField'] = 'Haste\\Number\\BackendWidget';
/**
 * Hooks
 */
$GLOBALS['TL_HOOKS']['executePostActions'][] = array('Haste\\Dca\\AjaxOperations', 'executePostActions');
$GLOBALS['TL_HOOKS']['getContentElement'][] = ['Haste\\EventListener\\AjaxReloadListener', 'onGetContentElement'];
$GLOBALS['TL_HOOKS']['getFrontendModule'][] = ['Haste\\EventListener\\AjaxReloadListener', 'onGetFrontendModule'];
$GLOBALS['TL_HOOKS']['loadDataContainer'][] = array('Haste\\Dca\\DateRangeFilter', 'addCallbacks');
$GLOBALS['TL_HOOKS']['loadDataContainer'][] = array('Haste\\Dca\\AjaxOperations', 'modifyDca');
$GLOBALS['TL_HOOKS']['loadDataContainer'][] = array('Haste\\Model\\Relations', 'addRelationCallbacks');
$GLOBALS['TL_HOOKS']['modifyFrontendPage'][] = ['Haste\\EventListener\\AjaxReloadListener', 'onModifyFrontendPage'];
$GLOBALS['TL_HOOKS']['replaceInsertTags'][] = array('Haste\\Util\\InsertTag', 'replaceHasteInsertTags');
$GLOBALS['TL_HOOKS']['reviseTable'][] = array('Haste\\Model\\Relations', 'reviseRelatedRecords');
if (\TL_MODE !== 'FE') {
    $GLOBALS['TL_HOOKS']['sqlGetFromFile'][] = ['Haste\\Model\\Relations', 'addRelationTables'];
}
/**
 * Haste hooks
 */
$GLOBALS['HASTE_HOOKS']['undoData'] = array(array('Haste\\Model\\Relations', 'undoRelations'));
}

namespace {
// Backend modules
$GLOBALS['BE_MOD']['design']['themes']['tables'][] = 'tl_form_layout';
// Models
$GLOBALS['TL_MODELS']['tl_form_layout'] = \Netzmacht\Contao\FormDesigner\Model\FormLayout\FormLayoutModel::class;
// Hooks
$GLOBALS['TL_HOOKS']['isVisibleElement'][] = ['netzmacht.contao_form_designer.listener.contextual_form_layout', 'onIsVisibleElement'];
$GLOBALS['TL_HOOKS']['getContentElement'][] = ['netzmacht.contao_form_designer.listener.contextual_form_layout', 'onPostGenerateElement'];
$GLOBALS['TL_HOOKS']['getFrontendModule'][] = ['netzmacht.contao_form_designer.listener.contextual_form_layout', 'onPostGenerateElement'];
$GLOBALS['TL_HOOKS']['getPageLayout'][] = ['netzmacht.contao_form_designer.listener.theme_form_layout', 'onPageLayout'];
$GLOBALS['TL_HOOKS']['exportTheme'][] = ['netzmacht.contao_form_designer.listener.theme_export', 'onExportTheme'];
$GLOBALS['TL_HOOKS']['extractThemeFiles'][] = ['netzmacht.contao_form_designer.listener.theme_import', 'onExtractThemeFiles'];
// Easy themes
$GLOBALS['TL_EASY_THEMES_MODULES']['form_layout'] = ['href_fragment' => 'table=tl_form_layout'];
}

namespace {
$GLOBALS['TL_FFL']['captcha'] = \DieSchittigs\RecaptchaBundle\Form\FormRecaptcha::class;
$GLOBALS['TL_HOOKS']['addCustomRegexp'][] = [\Contao\RecaptchaHooks::class, 'addRecaptchaActionRegexp'];
\array_insert($GLOBALS['TL_CTE']['miscellaneous'], 0, ['backgroundrecaptcha' => \Contao\ContentBackgroundRecaptcha::class]);
}

namespace {
$GLOBALS['con4gis']['version'] = "6.3";
$GLOBALS['con4gis']['core']['installed'] = \true;
$GLOBALS['con4gis']['bundles'] = array('core' => 'CoreBundle', 'documents' => 'DocumentsBundle', 'editor' => 'EditorBundle', 'export' => 'ExportBundle', 'firefighter' => 'FirefighterBundle', 'forum' => 'ForumBundle', 'groups' => 'GroupsBundle', 'import' => 'ImportBundle', 'maps' => 'MapsBundle', 'routing' => 'RoutingBundle', 'projects' => 'ProjectsBundle', 'pwa' => 'PwaBundle', 'queue' => 'QueueBundle', 'tracking' => 'TrackingBundle', 'visualization' => 'VisualizationBundle', 'io-travel-costs' => 'IOTravelCostsBundle');
// API-Registration
$GLOBALS['TL_API'] = array();
$GLOBALS['TL_API']['fileUpload'] = 'con4gis\\CoreBundle\\Classes\\C4GFileUpload';
$GLOBALS['TL_API']['imageUpload'] = 'con4gis\\CoreBundle\\Resources\\contao\\classes\\C4GImageUpload';
$GLOBALS['TL_API']['deliver'] = 'con4gis\\CoreBundle\\Resources\\contao\\classes\\C4GDeliverFileApi';
\array_insert($GLOBALS['BE_MOD'], \array_search('content', \array_keys($GLOBALS['BE_MOD'])) + 1, array('con4gis_core' => array()));
if (\TL_MODE == "BE") {
    $GLOBALS['TL_CSS'][] = '/bundles/con4giscore/css/con4gis.css';
}
$GLOBALS['con4gis']['stringClass'] = '\\Contao\\StringUtil';
/**
 * Backend Modules
 */
\array_insert($GLOBALS['BE_MOD'], \array_search('content', \array_keys($GLOBALS['BE_MOD'])) + 1, array('con4gis_core' => array('c4g_core' => array('callback' => 'con4gis\\CoreBundle\\Resources\\contao\\classes\\C4GInfo'), 'c4g_settings' => array('tables' => array('tl_c4g_settings')), 'c4g_log' => array('tables' => array('tl_c4g_log')))));
if (\TL_MODE == "FE") {
    // TODO replace with symfony csrf token
    $rq = \Contao\RequestToken::get();
    $GLOBALS['TL_HEAD'][] = "<script>var c4g_rq = '" . $rq . "';</script>";
}
$apiBaseUrl = 'con4gis/api';
$GLOBALS['TL_HEAD'][] = "<script>var apiBaseUrl = '" . $apiBaseUrl . "';</script>";
$GLOBALS['TL_HEAD'][] = "<script>window.FontAwesomeConfig = {searchPseudoElements: true}</script>";
/**
 * Content Elements
 */
\array_insert($GLOBALS['TL_CTE']['con4gis'], 2, array('c4g_activationpage' => 'con4gis\\CoreBundle\\Resources\\contao\\modules\\ContentC4gActivationpage'));
$GLOBALS['TL_MODELS']['tl_c4g_activationkey'] = 'con4gis\\CoreBundle\\Resources\\contao\\models\\C4gActivationkeyModel';
$GLOBALS['TL_MODELS']['tl_c4g_settings'] = 'con4gis\\CoreBundle\\Resources\\contao\\models\\C4gSettingsModel';
/**
 * Purge jobs
 */
$GLOBALS['TL_PURGE']['folders']['con4gis'] = array('callback' => array('con4gis\\CoreBundle\\Resources\\contao\\classes\\C4GAutomator', 'purgeApiCache'), 'affected' => array('var/cache/prod/con4gis'));
/**
 * Con4Gis Caching
 *
 * caching is not auto-enabled. To register a service to be cached, insert it in the GLOBALS-Array
 * eg: $GLOBALS['CON4GIS']['USE_CACHE']['SERVICES'][] = "layerService"; => layerService requests are cached
 *
 * it is also possible to enable caching while existence of defined get parameters and values
 * eg: $GLOBALS['CON4GIS']['USE_CACHE']['PARAMS']['method'] = array('getLive'); => request with method=getLive will be cached
 *
 */
if (!$GLOBALS['CON4GIS']['USE_CACHE']) {
    $GLOBALS['CON4GIS']['USE_CACHE'] = array();
    $GLOBALS['CON4GIS']['USE_CACHE']['SERVICES'] = array();
    $GLOBALS['CON4GIS']['USE_CACHE']['PARAMS'] = array();
}
/**
 * replace con4gis insertTags
 */
$GLOBALS['TL_HOOKS']['replaceInsertTags'][] = array('\\con4gis\\CoreBundle\\Classes\\Contao\\Hooks\\con4gisInsertTags', 'replaceTag');
}

namespace {
/*
 * This file is part of Contao.
 *
 * (c) Leo Feyer
 *
 * @license LGPL-3.0-or-later
 */
// Back end modules
$GLOBALS['BE_MOD']['content']['calendar'] = array('tables' => array('tl_calendar', 'tl_calendar_events', 'tl_calendar_feed', 'tl_content'), 'table' => array('Contao\\TableWizard', 'importTable'), 'list' => array('Contao\\ListWizard', 'importList'));
// Front end modules
$GLOBALS['FE_MOD']['events'] = array('calendar' => 'Contao\\ModuleCalendar', 'eventreader' => 'Contao\\ModuleEventReader', 'eventlist' => 'Contao\\ModuleEventlist', 'eventmenu' => 'Contao\\ModuleEventMenu');
// Cron jobs
$GLOBALS['TL_CRON']['daily']['generateCalendarFeeds'] = array('Contao\\Calendar', 'generateFeeds');
// Style sheet
if (\defined('TL_MODE') && \TL_MODE == 'BE') {
    $GLOBALS['TL_CSS'][] = 'bundles/contaocalendar/calendar.min.css|static';
}
// Register hooks
$GLOBALS['TL_HOOKS']['removeOldFeeds'][] = array('Contao\\Calendar', 'purgeOldFeeds');
$GLOBALS['TL_HOOKS']['getSearchablePages'][] = array('Contao\\Calendar', 'getSearchablePages');
$GLOBALS['TL_HOOKS']['generateXmlFiles'][] = array('Contao\\Calendar', 'generateFeeds');
// Add permissions
$GLOBALS['TL_PERMISSIONS'][] = 'calendars';
$GLOBALS['TL_PERMISSIONS'][] = 'calendarp';
$GLOBALS['TL_PERMISSIONS'][] = 'calendarfeeds';
$GLOBALS['TL_PERMISSIONS'][] = 'calendarfeedp';
}

namespace {
/**
 * Contao Open Source CMS, Copyright (C) 2005-2018 Leo Feyer
 *
 * @copyright  Glen Langer 2018 <http://contao.ninja>
 * @author     Glen Langer (BugBuster)
 * @package    Mobiledetection
 * @license    LGPL
 * @filesource
 * @see	       https://github.com/BugBuster1701/contao-mobiledetection-bundle
 */
/**
 * -------------------------------------------------------------------------
 * FRONT END MODULES
 * -------------------------------------------------------------------------
 *
 * List all fontend modules and their class names.
 *
 *   $GLOBALS['FE_MOD'] = array
 *   (
 *       'group_1' => array
 *       (
 *           'module_1' => 'Contentlass',
 *           'module_2' => 'Contentlass'
 *       )
 *   );
 *
 * Use function array_insert() to modify an existing CTE array.
 */
$GLOBALS['FE_MOD']['MobileDetectionDemo'] = array('mobiledeviceinfo' => 'BugBuster\\MobileDetection\\ModuleDeviceInfo');
/**
 * -------------------------------------------------------------------------
 * HOOKS
 * -------------------------------------------------------------------------
 */
$GLOBALS['TL_HOOKS']['generatePage'][] = array('BugBuster\\MobileDetection\\Mobile_Detection_Hooks', 'insertInsertTagMD');
$GLOBALS['TL_HOOKS']['replaceInsertTags'][] = array('BugBuster\\MobileDetection\\Mobile_Detection_Hooks', 'mobiledetectionReplaceInsertTags');
}

namespace {
/**
 * dcawizard extension for Contao Open Source CMS
 *
 * @copyright  Copyright (c) 2014, terminal42 gmbh
 * @author     terminal42 gmbh <info@terminal42.ch>
 * @license    http://opensource.org/licenses/lgpl-3.0.html LGPL
 * @link       https://github.com/terminal42/contao-dcawizard
 */
/**
 * Backend form fields
 */
$GLOBALS['BE_FFL']['dcaWizard'] = 'DcaWizard';
$GLOBALS['BE_FFL']['dcaWizardMultilingual'] = 'DcaWizardMultilingual';
/**
 * Hooks
 */
$GLOBALS['TL_HOOKS']['executePostActions'][] = array('DcaWizardHelper', 'handleAjaxActions');
$GLOBALS['TL_HOOKS']['loadDataContainer'][] = array('DcaWizardHelper', 'loadDataContainer');
}

namespace {
/*
 * This file is part of con4gis,
 * the gis-kit for Contao CMS.
 *
 * @package    con4gis
 * @version    6
 * @author     con4gis contributors (see "authors.txt")
 * @license    LGPL-3.0-or-later
 * @copyright  Küstenschmiede GmbH Software & Design
 * @link       https://www.con4gis.org
 */
$GLOBALS['con4gis']['maps']['installed'] = \true;
\array_insert($GLOBALS['BE_MOD'], \array_search('con4gis_core', \array_keys($GLOBALS['BE_MOD'])) + 1, ['con4gis_maps' => ['c4g_map_baselayers' => ['tables' => ['tl_c4g_map_baselayers', 'tl_c4g_map_overlays'], 'icon' => 'bundles/con4gismaps/images/be-icons/baselayers.png', 'javascript' => 'bundles/con4gismaps/js/c4g-maps-backend.js'], 'c4g_map_locstyles' => ['tables' => ['tl_c4g_map_locstyles'], 'icon' => 'bundles/con4gismaps/images/be-icons/locstyles.png'], 'c4g_map_themes' => ['tables' => ['tl_c4g_map_themes'], 'icon' => 'bundles/con4gismaps/images/be-icons/themes.png'], 'c4g_map_profiles' => ['tables' => ['tl_c4g_map_profiles'], 'icon' => 'bundles/con4gismaps/images/be-icons/profiles.png'], 'c4g_maps' => ['tables' => ['tl_c4g_maps'], 'icon' => 'bundles/con4gismaps/images/be-icons/mapstructure.png', 'javascript' => 'bundles/con4gismaps/js/c4g-maps-backend.js'], 'c4g_map_tables' => ['tables' => ['tl_c4g_map_tables'], 'icon' => 'bundles/con4gismaps/images/be-icons/mapstructure.png']]]);
if (\TL_MODE == "BE") {
    $GLOBALS['TL_CSS'][] = '/bundles/con4gismaps/css/backend.css';
}
/**
 * Frontend modules
 */
\array_insert($GLOBALS['FE_MOD']['con4gis'], 1, ['c4g_maps' => 'con4gis\\MapsBundle\\Resources\\contao\\modules\\ModuleC4gMaps']);
/**
 * Content elements
 */
\array_insert($GLOBALS['TL_CTE']['con4gis'], 1, ['c4g_maps' => 'con4gis\\MapsBundle\\Resources\\contao\\modules\\ContentC4gMaps']);
$apiBaseUrl = 'con4gis';
$GLOBALS['con4gis']['maps']['api']['baselayer'] = $apiBaseUrl . '/baseLayerService';
$GLOBALS['con4gis']['maps']['api']['layer'] = $apiBaseUrl . '/layerService';
$GLOBALS['con4gis']['maps']['api']['layercontent'] = $apiBaseUrl . '/layerContentService';
$GLOBALS['con4gis']['maps']['api']['editor'] = $apiBaseUrl . '/editorService';
$GLOBALS['con4gis']['maps']['api']['locstyle'] = $apiBaseUrl . '/locationStyleService/';
$GLOBALS['con4gis']['maps']['api']['infowindow'] = $apiBaseUrl . '/infoWindowService';
$GLOBALS['con4gis']['maps']['api']['geosearch'] = $apiBaseUrl . '/searchService';
$GLOBALS['con4gis']['maps']['api']['geosearch_reverse'] = $apiBaseUrl . '/reverseSearchService';
$GLOBALS['con4gis']['maps']['api']['routing'] = $apiBaseUrl . '/routingService';
$GLOBALS['con4gis']['maps']['api']['geopicker'] = $apiBaseUrl . '/geopickerService/';
$GLOBALS['con4gis']['api-caching'] = ['baseLayerService', 'layerService', 'layerContentService', 'locationStyleService'];
$GLOBALS['con4gis']['dafaultData'] = ['Table' => 'Table'];
/**
 * Specialized Widgets for Text Input and Image Sizes
 */
// @TODO maybe move to core
$GLOBALS['BE_FFL']['c4g_text'] = '\\TextField';
$GLOBALS['BE_FFL']['c4g_imageSize'] = 'con4gis\\MapsBundle\\Resources\\contao\\classes\\ImageSize';
$GLOBALS['TL_MODELS']['tl_c4g_maps'] = 'con4gis\\MapsBundle\\Resources\\contao\\models\\C4gMapsModel';
$GLOBALS['TL_MODELS']['tl_c4g_map_profiles'] = 'con4gis\\MapsBundle\\Resources\\contao\\models\\C4gMapProfilesModel';
$GLOBALS['TL_MODELS']['tl_c4g_map_baselayers'] = 'con4gis\\MapsBundle\\Resources\\contao\\models\\C4gMapBaselayersModel';
$GLOBALS['TL_MODELS']['tl_c4g_map_themes'] = 'con4gis\\MapsBundle\\Resources\\contao\\models\\C4gMapThemesModel';
$GLOBALS['TL_MODELS']['tl_c4g_map_locstyles'] = 'con4gis\\MapsBundle\\Resources\\contao\\models\\C4gMapLocstylesModel';
$GLOBALS['TL_MODELS']['tl_c4g_map_overlays'] = 'con4gis\\MapsBundle\\Resources\\contao\\models\\C4gMapOverlaysModel';
$GLOBALS['TL_MODELS']['tl_c4g_map_tables'] = 'con4gis\\MapsBundle\\Resources\\contao\\models\\C4gMapTablesModel';
/**
 * Purge entries for cache clearing.
 */
$GLOBALS['TL_PURGE']['folders']['con4gis_layer'] = ['callback' => ['\\con4gis\\MapsBundle\\Classes\\Caches\\C4GMapsAutomator', 'purgeLayerApiCache'], 'affected' => ['var/cache/prod/con4gis_layerService']];
$GLOBALS['TL_PURGE']['folders']['con4gis_baselayer'] = ['callback' => ['\\con4gis\\MapsBundle\\Classes\\Caches\\C4GMapsAutomator', 'purgeBaselayerApiCache'], 'affected' => ['var/cache/prod/con4gis_baselayerService']];
$GLOBALS['TL_PURGE']['folders']['con4gis_locationstyle'] = ['callback' => ['\\con4gis\\MapsBundle\\Classes\\Caches\\C4GMapsAutomator', 'purgeLocationstyleApiCache'], 'affected' => ['var/cache/prod/con4gis_locationstyleService']];
}

namespace {
/**
 * notification_center extension for Contao Open Source CMS
 *
 * @copyright  Copyright (c) 2008-2015, terminal42
 * @author     terminal42 gmbh <info@terminal42.ch>
 * @license    LGPL
 */
/**
 * Back end modules
 */
\array_insert($GLOBALS['BE_MOD'], 1, array('notification_center' => array('nc_notifications' => array('tables' => array('tl_nc_notification', 'tl_nc_message', 'tl_nc_language')), 'nc_queue' => array('tables' => array('tl_nc_queue'), 're-queue' => array('NotificationCenter\\tl_nc_queue', 'reQueue')), 'nc_gateways' => array('tables' => array('tl_nc_gateway')))));
// Load icon in Contao 4.2 backend
if ('BE' === \TL_MODE) {
    $GLOBALS['TL_CSS'][] = 'system/modules/notification_center/assets/backend.css';
}
/**
 * Front end modules
 */
$GLOBALS['FE_MOD']['user']['lostPasswordNotificationCenter'] = 'ModulePasswordNotificationCenter';
if (\in_array('newsletter', \ModuleLoader::getActive(), \true)) {
    $GLOBALS['FE_MOD']['newsletter']['newsletterSubscribeNotificationCenter'] = 'ModuleNewsletterSubscribeNotificationCenter';
    $GLOBALS['FE_MOD']['newsletter']['newsletterActivateNotificationCenter'] = 'ModuleNewsletterActivateNotificationCenter';
    $GLOBALS['FE_MOD']['newsletter']['newsletterUnsubscribeNotificationCenter'] = 'ModuleNewsletterUnsubscribeNotificationCenter';
}
/**
 * Models
 */
$GLOBALS['TL_MODELS']['tl_nc_notification'] = 'NotificationCenter\\Model\\Notification';
$GLOBALS['TL_MODELS']['tl_nc_gateway'] = 'NotificationCenter\\Model\\Gateway';
$GLOBALS['TL_MODELS']['tl_nc_language'] = 'NotificationCenter\\Model\\Language';
$GLOBALS['TL_MODELS']['tl_nc_message'] = 'NotificationCenter\\Model\\Message';
$GLOBALS['TL_MODELS']['tl_nc_queue'] = 'NotificationCenter\\Model\\QueuedMessage';
/**
 * Cron jobs
 */
$GLOBALS['TL_CRON']['minutely'][] = array('NotificationCenter\\Frontend\\PoorMansCron', 'minutely');
$GLOBALS['TL_CRON']['hourly'][] = array('NotificationCenter\\Frontend\\PoorMansCron', 'hourly');
$GLOBALS['TL_CRON']['daily'][] = array('NotificationCenter\\Frontend\\PoorMansCron', 'daily');
$GLOBALS['TL_CRON']['weekly'][] = array('NotificationCenter\\Frontend\\PoorMansCron', 'weekly');
$GLOBALS['TL_CRON']['monthly'][] = array('NotificationCenter\\Frontend\\PoorMansCron', 'monthly');
/**
 * Hooks
 */
$GLOBALS['TL_HOOKS']['addCustomRegexp'][] = array('NotificationCenter\\AutoSuggester', 'verifyTokens');
$GLOBALS['TL_HOOKS']['processFormData'][] = array('NotificationCenter\\tl_form', 'sendFormNotification');
$GLOBALS['TL_HOOKS']['createNewUser'][] = array('NotificationCenter\\ContaoHelper', 'sendRegistrationEmail');
$GLOBALS['TL_HOOKS']['updatePersonalData'][] = array('NotificationCenter\\ContaoHelper', 'sendPersonalDataEmail');
$GLOBALS['TL_HOOKS']['getUserNavigation'][] = array('NotificationCenter\\ContaoHelper', 'addQueueToUserNavigation');
$GLOBALS['TL_HOOKS']['activateAccount'][] = array('NotificationCenter\\ContaoHelper', 'sendActivationEmail');
$GLOBALS['TL_HOOKS']['getSystemMessages'][] = array('NotificationCenter\\ContaoHelper', 'alertLegacySmtpSetting');
/**
 * Queue manager
 */
$GLOBALS['NOTIFICATION_CENTER']['QUEUE_MANAGER'] = new \NotificationCenter\Queue\QueueManager();
/**
 * Notification Center Gateways
 */
$GLOBALS['NOTIFICATION_CENTER']['GATEWAY'] = \array_merge((array) ($GLOBALS['NOTIFICATION_CENTER']['GATEWAY'] ?? []), array('queue' => 'NotificationCenter\\Gateway\\Queue', 'email' => 'NotificationCenter\\Gateway\\Email', 'file' => 'NotificationCenter\\Gateway\\File', 'postmark' => 'NotificationCenter\\Gateway\\Postmark'));
/**
 * Notification Center Notification Types
 */
$GLOBALS['NOTIFICATION_CENTER']['NOTIFICATION_TYPE'] = \array_merge_recursive((array) ($GLOBALS['NOTIFICATION_CENTER']['NOTIFICATION_TYPE'] ?? []), array('contao' => array('core_form' => array('recipients' => array('admin_email', 'form_*', 'formconfig_*'), 'email_subject' => array('form_*', 'formconfig_*', 'admin_email'), 'email_text' => array('form_*', 'formconfig_*', 'formlabel_*', 'raw_data', 'raw_data_filled', 'admin_email'), 'email_html' => array('form_*', 'formconfig_*', 'formlabel_*', 'raw_data', 'raw_data_filled', 'admin_email'), 'file_name' => array('form_*', 'formconfig_*', 'admin_email'), 'file_content' => array('form_*', 'formconfig_*', 'formlabel_*', 'raw_data', 'raw_data_filled', 'admin_email'), 'email_sender_name' => array('admin_email', 'form_*', 'formconfig_*'), 'email_sender_address' => array('admin_email', 'form_*', 'formconfig_*'), 'email_recipient_cc' => array('admin_email', 'form_*', 'formconfig_*'), 'email_recipient_bcc' => array('admin_email', 'form_*', 'formconfig_*'), 'email_replyTo' => array('admin_email', 'form_*', 'formconfig_*'), 'attachment_tokens' => array('form_*', 'formconfig_*')), 'member_activation' => array('recipients' => array('member_email', 'admin_email'), 'email_subject' => array('domain', 'member_*', 'admin_email'), 'email_text' => array('domain', 'member_*', 'admin_email'), 'email_html' => array('domain', 'member_*', 'admin_email'), 'file_name' => array('domain', 'member_*', 'admin_email'), 'file_content' => array('domain', 'member_*', 'admin_email'), 'email_sender_name' => array('admin_email', 'form_*'), 'email_sender_address' => array('admin_email', 'form_*'), 'email_recipient_cc' => array('admin_email', 'member_*'), 'email_recipient_bcc' => array('admin_email', 'member_*'), 'email_replyTo' => array('admin_email', 'member_*')), 'member_registration' => array('recipients' => array('member_email', 'admin_email'), 'email_subject' => array('domain', 'link', 'member_*', 'admin_email'), 'email_text' => array('domain', 'link', 'member_*', 'admin_email'), 'email_html' => array('domain', 'link', 'member_*', 'admin_email'), 'file_name' => array('domain', 'link', 'member_*', 'admin_email'), 'file_content' => array('domain', 'link', 'member_*', 'admin_email'), 'email_sender_name' => array('admin_email', 'member_*'), 'email_sender_address' => array('admin_email', 'member_*'), 'email_recipient_cc' => array('admin_email', 'member_*'), 'email_recipient_bcc' => array('admin_email', 'member_*'), 'email_replyTo' => array('admin_email', 'member_*')), 'member_personaldata' => array('recipients' => array('member_email', 'admin_email'), 'email_subject' => array('domain', 'member_*', 'member_old_*', 'changed_*', 'admin_email'), 'email_text' => array('domain', 'member_*', 'member_old_*', 'changed_*', 'admin_email'), 'email_html' => array('domain', 'member_*', 'member_old_*', 'changed_*', 'admin_email'), 'email_sender_name' => array('member_*'), 'email_sender_address' => array('member_email', 'admin_email'), 'email_recipient_cc' => array('member_email', 'admin_email'), 'email_recipient_bcc' => array('member_email', 'admin_email'), 'email_replyTo' => array('member_email', 'admin_email')), 'member_password' => array('recipients' => array('recipient_email'), 'email_subject' => array('domain', 'link', 'member_*', 'recipient_email'), 'email_text' => array('domain', 'link', 'member_*', 'recipient_email'), 'email_html' => array('domain', 'link', 'member_*', 'recipient_email'), 'file_name' => array('domain', 'link', 'member_*', 'recipient_email'), 'file_content' => array('domain', 'link', 'member_*', 'recipient_email'), 'email_sender_name' => array('recipient_email'), 'email_sender_address' => array('recipient_email'), 'email_recipient_cc' => array('recipient_email'), 'email_recipient_bcc' => array('recipient_email'), 'email_replyTo' => array('recipient_email')))));
// Add the newsletter tokens only if the extension is active
if (\in_array('newsletter', \Contao\ModuleLoader::getActive(), \true)) {
    $GLOBALS['NOTIFICATION_CENTER']['NOTIFICATION_TYPE']['contao']['newsletter_subscribe'] = array('recipients' => array('recipient_email', 'admin_email'), 'email_subject' => array('domain', 'link', 'recipient_email', 'admin_email', 'channels', 'channel_ids', 'subject'), 'email_text' => array('domain', 'link', 'recipient_email', 'admin_email', 'channels', 'channel_ids', 'token'), 'email_html' => array('domain', 'link', 'recipient_email', 'admin_email', 'channels', 'channel_ids', 'token'), 'file_name' => array('domain', 'link', 'recipient_email', 'admin_email', 'channels', 'channel_ids'), 'file_content' => array('domain', 'link', 'recipient_email', 'admin_email', 'channels', 'channel_ids', 'token'), 'email_sender_name' => array('recipient_email', 'admin_email', 'admin_name'), 'email_sender_address' => array('recipient_email', 'admin_email'), 'email_recipient_cc' => array('recipient_email', 'admin_email'), 'email_recipient_bcc' => array('recipient_email', 'admin_email'), 'email_replyTo' => array('recipient_email', 'admin_email'));
    $GLOBALS['NOTIFICATION_CENTER']['NOTIFICATION_TYPE']['contao']['newsletter_activate'] = array('recipients' => array('recipient_email', 'admin_email'), 'email_subject' => array('domain', 'recipient_email', 'admin_email', 'channels', 'channel_ids', 'subject'), 'email_text' => array('domain', 'recipient_email', 'admin_email', 'channels', 'channel_ids'), 'email_html' => array('domain', 'recipient_email', 'admin_email', 'channels', 'channel_ids'), 'file_name' => array('domain', 'recipient_email', 'admin_email', 'channels', 'channel_ids'), 'file_content' => array('domain', 'recipient_email', 'admin_email', 'channels', 'channel_ids'), 'email_sender_name' => array('recipient_email', 'admin_email', 'admin_name'), 'email_sender_address' => array('recipient_email', 'admin_email'), 'email_recipient_cc' => array('recipient_email', 'admin_email'), 'email_recipient_bcc' => array('recipient_email', 'admin_email'), 'email_replyTo' => array('recipient_email', 'admin_email'));
    $GLOBALS['NOTIFICATION_CENTER']['NOTIFICATION_TYPE']['contao']['newsletter_unsubscribe'] = array('recipients' => array('recipient_email', 'admin_email'), 'email_subject' => array('domain', 'recipient_email', 'admin_email', 'channels', 'channel_ids', 'subject'), 'email_text' => array('domain', 'recipient_email', 'admin_email', 'channels', 'channel_ids'), 'email_html' => array('domain', 'recipient_email', 'admin_email', 'channels', 'channel_ids'), 'file_name' => array('domain', 'recipient_email', 'admin_email', 'channels', 'channel_ids'), 'file_content' => array('domain', 'recipient_email', 'admin_email', 'channels', 'channel_ids'), 'email_sender_name' => array('recipient_email', 'admin_email', 'admin_name'), 'email_sender_address' => array('recipient_email', 'admin_email'), 'email_recipient_cc' => array('recipient_email', 'admin_email'), 'email_recipient_bcc' => array('recipient_email', 'admin_email'), 'email_replyTo' => array('recipient_email', 'admin_email'));
}
}
