Deprecated: Creation of dynamic property plgSystemFoundryRest::$input is deprecated in /var/www/vhosts/oghf.org.uk/httpdocs/plugins/system/foundryrest/foundryrest.php on line 32
Crikey! There was an error...
Twig \ Error \ RuntimeError
An exception has been thrown during the rendering of a template ("String could not be parsed as XML").
Previous exceptions
  • String could not be parsed as XML (0)
  • An exception has been thrown during the rendering of a template ("String could not be parsed as XML"). (0)
  • String could not be parsed as XML (0)
Twig\Error\RuntimeError thrown with message "An exception has been thrown during the rendering of a template ("String could not be parsed as XML")." Stacktrace: #150 Twig\Error\RuntimeError in /var/www/vhosts/oghf.org.uk/httpdocs/media/gantry5/engines/nucleus/particles/module.html.twig:4 #149 Twig\Template:displayBlock in /var/www/vhosts/oghf.org.uk/httpdocs/cache/gantry5/rt_horizon/twig/e8/e851ec3df02dacae07242db4121c274c858c603c102e6c17b5fa4e31d77fcbc9.php:73 #148 __TwigTemplate_edefafb2b689b1307146d5be38acfa374dc5255ada353e391580febb2b0fb1f3:doDisplay in /var/www/vhosts/oghf.org.uk/httpdocs/libraries/gantry5/compat/vendor/twig/twig/src/Template.php:453 #147 Twig\Template:displayWithErrorHandling in /var/www/vhosts/oghf.org.uk/httpdocs/libraries/gantry5/compat/vendor/twig/twig/src/Template.php:420 #146 Twig\Template:display in /var/www/vhosts/oghf.org.uk/httpdocs/cache/gantry5/rt_horizon/twig/79/79a5167f5d66bc96f5ef9b12528a5ae066ad303a993c57ef0f426052954a6431.php:35 #145 __TwigTemplate_d067f28330ac896912ca35a14c06be82e080eb6da475964abc229dcf2bc37cea:doDisplay in /var/www/vhosts/oghf.org.uk/httpdocs/libraries/gantry5/compat/vendor/twig/twig/src/Template.php:453 #144 Twig\Template:displayWithErrorHandling in /var/www/vhosts/oghf.org.uk/httpdocs/libraries/gantry5/compat/vendor/twig/twig/src/Template.php:420 #143 Twig\Template:display in /var/www/vhosts/oghf.org.uk/httpdocs/cache/gantry5/rt_horizon/twig/52/526386002388b8071705529846872eb0de7a2009005506def4a21afb99d32dd3.php:53 #142 __TwigTemplate_039af0a1edba79b8c06742d03b62ea0b5cb540798c2dbe318bd140c0ef52d050:doDisplay in /var/www/vhosts/oghf.org.uk/httpdocs/libraries/gantry5/compat/vendor/twig/twig/src/Template.php:453 #141 Twig\Template:displayWithErrorHandling in /var/www/vhosts/oghf.org.uk/httpdocs/libraries/gantry5/compat/vendor/twig/twig/src/Template.php:420 #140 Twig\Template:display in /var/www/vhosts/oghf.org.uk/httpdocs/cache/gantry5/rt_horizon/twig/a5/a529cb8df2a83c500f645bf833c40dc61261a5549dee1422eb94a3248cf04fd7.php:75 #139 __TwigTemplate_97a40f3cd3f8d75e987d4f5b0c52680913a479d17c349c0213aa9226ae8d4dbf:doDisplay in /var/www/vhosts/oghf.org.uk/httpdocs/libraries/gantry5/compat/vendor/twig/twig/src/Template.php:453 #138 Twig\Template:displayWithErrorHandling in /var/www/vhosts/oghf.org.uk/httpdocs/libraries/gantry5/compat/vendor/twig/twig/src/Template.php:420 #137 Twig\Template:display in /var/www/vhosts/oghf.org.uk/httpdocs/cache/gantry5/rt_horizon/twig/d6/d6a81f5d9dcfe5e8695c3da57abaeb338168213b5ba9ef1a3454976212d8cb09.php:58 #136 __TwigTemplate_d403cb7e8d8e4b00def9ef2c1ab349850037dba1e8d2dcc539b085e05ed6abb3:doDisplay in /var/www/vhosts/oghf.org.uk/httpdocs/libraries/gantry5/compat/vendor/twig/twig/src/Template.php:453 #135 Twig\Template:displayWithErrorHandling in /var/www/vhosts/oghf.org.uk/httpdocs/libraries/gantry5/compat/vendor/twig/twig/src/Template.php:420 #134 Twig\Template:display in /var/www/vhosts/oghf.org.uk/httpdocs/cache/gantry5/rt_horizon/twig/be/bed85df323a8c1b522876954d1ff2475ee12f50cac56bf034667564472da43ba.php:71 #133 __TwigTemplate_b27c545e4680bef7485c043af81e68d8b681f8e84af74dcc1af131e23c7aad15:doDisplay in /var/www/vhosts/oghf.org.uk/httpdocs/libraries/gantry5/compat/vendor/twig/twig/src/Template.php:453 #132 Twig\Template:displayWithErrorHandling in /var/www/vhosts/oghf.org.uk/httpdocs/libraries/gantry5/compat/vendor/twig/twig/src/Template.php:420 #131 Twig\Template:display in /var/www/vhosts/oghf.org.uk/httpdocs/cache/gantry5/rt_horizon/twig/cf/cf258eb9b695c360fdfe3046762233859471d9c18b902e5b38ade5c1881d0a22.php:212 #130 __TwigTemplate_5d75b7df8ef41aeb0e51a4653b1b43a6ee49861466cc215f1c29b7a5812c1ef8:block_page_layout in /var/www/vhosts/oghf.org.uk/httpdocs/libraries/gantry5/compat/vendor/twig/twig/src/Template.php:214 #129 Twig\Template:displayBlock in /var/www/vhosts/oghf.org.uk/httpdocs/cache/gantry5/rt_horizon/twig/cf/cf258eb9b695c360fdfe3046762233859471d9c18b902e5b38ade5c1881d0a22.php:90 #128 __TwigTemplate_5d75b7df8ef41aeb0e51a4653b1b43a6ee49861466cc215f1c29b7a5812c1ef8:doDisplay in /var/www/vhosts/oghf.org.uk/httpdocs/libraries/gantry5/compat/vendor/twig/twig/src/Template.php:453 #127 Twig\Template:displayWithErrorHandling in /var/www/vhosts/oghf.org.uk/httpdocs/libraries/gantry5/compat/vendor/twig/twig/src/Template.php:420 #126 Twig\Template:display in /var/www/vhosts/oghf.org.uk/httpdocs/cache/gantry5/rt_horizon/twig/c2/c2e6947d8bbea143d371ccf0d7e4b738bb989f377b67a04daa24ceee2f5e7dc5.php:35 #125 Twig\Template:display in /var/www/vhosts/oghf.org.uk/httpdocs/cache/gantry5/rt_horizon/twig/0a/0a6e8bab3fbb5eba73c21f5643c3a76610adf14b9ede7b26fd5f3f9fd4d9aecd.php:36 #124 Twig\Template:display in /var/www/vhosts/oghf.org.uk/httpdocs/libraries/gantry5/compat/vendor/twig/twig/src/Template.php:432 #123 Twig\Template:render in /var/www/vhosts/oghf.org.uk/httpdocs/libraries/gantry5/compat/vendor/twig/twig/src/TemplateWrapper.php:47 #122 Twig\TemplateWrapper:render in /var/www/vhosts/oghf.org.uk/httpdocs/libraries/gantry5/compat/vendor/twig/twig/src/Environment.php:384 #121 Twig\Environment:render in /var/www/vhosts/oghf.org.uk/httpdocs/libraries/gantry5/src/classes/Gantry/Component/Theme/AbstractTheme.php:176 #120 Gantry\Component\Theme\AbstractTheme:render in /var/www/vhosts/oghf.org.uk/httpdocs/templates/rt_horizon/error.php:41 #119 require in /var/www/vhosts/oghf.org.uk/httpdocs/libraries/src/Document/HtmlDocument.php:721 #118 Joomla\CMS\Document\HtmlDocument:_loadTemplate in /var/www/vhosts/oghf.org.uk/httpdocs/libraries/src/Document/HtmlDocument.php:776 #117 Joomla\CMS\Document\HtmlDocument:_fetchTemplate in /var/www/vhosts/oghf.org.uk/httpdocs/libraries/src/Document/HtmlDocument.php:612 #116 Joomla\CMS\Document\HtmlDocument:parse in /var/www/vhosts/oghf.org.uk/httpdocs/libraries/src/Document/HtmlDocument.php:630 #115 Joomla\CMS\Document\HtmlDocument:render in /var/www/vhosts/oghf.org.uk/httpdocs/libraries/src/Document/ErrorDocument.php:139 #114 Joomla\CMS\Document\ErrorDocument:render in /var/www/vhosts/oghf.org.uk/httpdocs/libraries/src/Error/Renderer/HtmlRenderer.php:70 #113 Joomla\CMS\Error\Renderer\HtmlRenderer:render in /var/www/vhosts/oghf.org.uk/httpdocs/libraries/src/Exception/ExceptionHandler.php:126 #112 Joomla\CMS\Exception\ExceptionHandler:render in /var/www/vhosts/oghf.org.uk/httpdocs/libraries/src/Exception/ExceptionHandler.php:72 #111 Joomla\CMS\Exception\ExceptionHandler:handleException in /var/www/vhosts/oghf.org.uk/httpdocs/libraries/src/Application/CMSApplication.php:322 #110 Exception in /var/www/vhosts/oghf.org.uk/httpdocs/libraries/src/Feed/FeedParser.php:89 #109 SimpleXMLElement:__construct in /var/www/vhosts/oghf.org.uk/httpdocs/libraries/src/Feed/FeedParser.php:89 #108 Joomla\CMS\Feed\FeedParser:parse in /var/www/vhosts/oghf.org.uk/httpdocs/libraries/src/Feed/FeedFactory.php:86 #107 Joomla\CMS\Feed\FeedFactory:getFeed in /var/www/vhosts/oghf.org.uk/httpdocs/modules/mod_rss_marquee/Helper/RssMarqueeHelper.php:33 #106 Joomla\Module\RssMarquee\Site\Helper\RssMarqueeHelper:getFeed in /var/www/vhosts/oghf.org.uk/httpdocs/modules/mod_rss_marquee/mod_rss_marquee.php:20 #105 include in /var/www/vhosts/oghf.org.uk/httpdocs/libraries/src/Dispatcher/ModuleDispatcher.php:52 #104 Joomla\CMS\Dispatcher\ModuleDispatcher:Joomla\CMS\Dispatcher\{closure} in /var/www/vhosts/oghf.org.uk/httpdocs/libraries/src/Dispatcher/ModuleDispatcher.php:55 #103 Joomla\CMS\Dispatcher\ModuleDispatcher:dispatch in /var/www/vhosts/oghf.org.uk/httpdocs/libraries/src/Helper/ModuleHelper.php:281 #102 Joomla\CMS\Helper\ModuleHelper:renderRawModule in /var/www/vhosts/oghf.org.uk/httpdocs/libraries/src/Helper/ModuleHelper.php:161 #101 Joomla\CMS\Helper\ModuleHelper:renderModule in /var/www/vhosts/oghf.org.uk/httpdocs/libraries/src/Document/Renderer/Html/ModuleRenderer.php:99 #100 Joomla\CMS\Document\Renderer\Html\ModuleRenderer:render in /var/www/vhosts/oghf.org.uk/httpdocs/libraries/gantry5/src/classes/Gantry/Framework/Platform.php:294 #99 Gantry\Framework\Platform:displayModule in /var/www/vhosts/oghf.org.uk/httpdocs/libraries/gantry5/compat/vendor/twig/twig/src/Template.php:702 #98 Twig\Template:getAttribute in /var/www/vhosts/oghf.org.uk/httpdocs/cache/gantry5/rt_horizon/twig/79/79a5167f5d66bc96f5ef9b12528a5ae066ad303a993c57ef0f426052954a6431.php:43 #97 __TwigTemplate_d067f28330ac896912ca35a14c06be82e080eb6da475964abc229dcf2bc37cea:block_particle in /var/www/vhosts/oghf.org.uk/httpdocs/libraries/gantry5/compat/vendor/twig/twig/src/Template.php:214 #96 Twig\Template:displayBlock in /var/www/vhosts/oghf.org.uk/httpdocs/cache/gantry5/rt_horizon/twig/e8/e851ec3df02dacae07242db4121c274c858c603c102e6c17b5fa4e31d77fcbc9.php:73 #95 __TwigTemplate_edefafb2b689b1307146d5be38acfa374dc5255ada353e391580febb2b0fb1f3:doDisplay in /var/www/vhosts/oghf.org.uk/httpdocs/libraries/gantry5/compat/vendor/twig/twig/src/Template.php:453 #94 Twig\Template:displayWithErrorHandling in /var/www/vhosts/oghf.org.uk/httpdocs/libraries/gantry5/compat/vendor/twig/twig/src/Template.php:420 #93 Twig\Template:display in /var/www/vhosts/oghf.org.uk/httpdocs/cache/gantry5/rt_horizon/twig/79/79a5167f5d66bc96f5ef9b12528a5ae066ad303a993c57ef0f426052954a6431.php:35 #92 __TwigTemplate_d067f28330ac896912ca35a14c06be82e080eb6da475964abc229dcf2bc37cea:doDisplay in /var/www/vhosts/oghf.org.uk/httpdocs/libraries/gantry5/compat/vendor/twig/twig/src/Template.php:453 #91 Twig\Template:displayWithErrorHandling in /var/www/vhosts/oghf.org.uk/httpdocs/libraries/gantry5/compat/vendor/twig/twig/src/Template.php:420 #90 Twig\Template:display in /var/www/vhosts/oghf.org.uk/httpdocs/cache/gantry5/rt_horizon/twig/52/526386002388b8071705529846872eb0de7a2009005506def4a21afb99d32dd3.php:53 #89 __TwigTemplate_039af0a1edba79b8c06742d03b62ea0b5cb540798c2dbe318bd140c0ef52d050:doDisplay in /var/www/vhosts/oghf.org.uk/httpdocs/libraries/gantry5/compat/vendor/twig/twig/src/Template.php:453 #88 Twig\Template:displayWithErrorHandling in /var/www/vhosts/oghf.org.uk/httpdocs/libraries/gantry5/compat/vendor/twig/twig/src/Template.php:420 #87 Twig\Template:display in /var/www/vhosts/oghf.org.uk/httpdocs/cache/gantry5/rt_horizon/twig/a5/a529cb8df2a83c500f645bf833c40dc61261a5549dee1422eb94a3248cf04fd7.php:75 #86 __TwigTemplate_97a40f3cd3f8d75e987d4f5b0c52680913a479d17c349c0213aa9226ae8d4dbf:doDisplay in /var/www/vhosts/oghf.org.uk/httpdocs/libraries/gantry5/compat/vendor/twig/twig/src/Template.php:453 #85 Twig\Template:displayWithErrorHandling in /var/www/vhosts/oghf.org.uk/httpdocs/libraries/gantry5/compat/vendor/twig/twig/src/Template.php:420 #84 Twig\Template:display in /var/www/vhosts/oghf.org.uk/httpdocs/cache/gantry5/rt_horizon/twig/d6/d6a81f5d9dcfe5e8695c3da57abaeb338168213b5ba9ef1a3454976212d8cb09.php:58 #83 __TwigTemplate_d403cb7e8d8e4b00def9ef2c1ab349850037dba1e8d2dcc539b085e05ed6abb3:doDisplay in /var/www/vhosts/oghf.org.uk/httpdocs/libraries/gantry5/compat/vendor/twig/twig/src/Template.php:453 #82 Twig\Template:displayWithErrorHandling in /var/www/vhosts/oghf.org.uk/httpdocs/libraries/gantry5/compat/vendor/twig/twig/src/Template.php:420 #81 Twig\Template:display in /var/www/vhosts/oghf.org.uk/httpdocs/cache/gantry5/rt_horizon/twig/be/bed85df323a8c1b522876954d1ff2475ee12f50cac56bf034667564472da43ba.php:71 #80 __TwigTemplate_b27c545e4680bef7485c043af81e68d8b681f8e84af74dcc1af131e23c7aad15:doDisplay in /var/www/vhosts/oghf.org.uk/httpdocs/libraries/gantry5/compat/vendor/twig/twig/src/Template.php:453 #79 Twig\Template:displayWithErrorHandling in /var/www/vhosts/oghf.org.uk/httpdocs/libraries/gantry5/compat/vendor/twig/twig/src/Template.php:420 #78 Twig\Template:display in /var/www/vhosts/oghf.org.uk/httpdocs/cache/gantry5/rt_horizon/twig/cf/cf258eb9b695c360fdfe3046762233859471d9c18b902e5b38ade5c1881d0a22.php:212 #77 __TwigTemplate_5d75b7df8ef41aeb0e51a4653b1b43a6ee49861466cc215f1c29b7a5812c1ef8:block_page_layout in /var/www/vhosts/oghf.org.uk/httpdocs/libraries/gantry5/compat/vendor/twig/twig/src/Template.php:214 #76 Twig\Template:displayBlock in /var/www/vhosts/oghf.org.uk/httpdocs/cache/gantry5/rt_horizon/twig/cf/cf258eb9b695c360fdfe3046762233859471d9c18b902e5b38ade5c1881d0a22.php:90 #75 __TwigTemplate_5d75b7df8ef41aeb0e51a4653b1b43a6ee49861466cc215f1c29b7a5812c1ef8:doDisplay in /var/www/vhosts/oghf.org.uk/httpdocs/libraries/gantry5/compat/vendor/twig/twig/src/Template.php:453 #74 Twig\Template:displayWithErrorHandling in /var/www/vhosts/oghf.org.uk/httpdocs/libraries/gantry5/compat/vendor/twig/twig/src/Template.php:420 #73 Twig\Template:display in /var/www/vhosts/oghf.org.uk/httpdocs/cache/gantry5/rt_horizon/twig/c2/c2e6947d8bbea143d371ccf0d7e4b738bb989f377b67a04daa24ceee2f5e7dc5.php:35 #72 Twig\Template:display in /var/www/vhosts/oghf.org.uk/httpdocs/cache/gantry5/rt_horizon/twig/0a/0a6e8bab3fbb5eba73c21f5643c3a76610adf14b9ede7b26fd5f3f9fd4d9aecd.php:36 #71 Twig\Template:display in /var/www/vhosts/oghf.org.uk/httpdocs/libraries/gantry5/compat/vendor/twig/twig/src/Template.php:432 #70 Twig\Template:render in /var/www/vhosts/oghf.org.uk/httpdocs/libraries/gantry5/compat/vendor/twig/twig/src/TemplateWrapper.php:47 #69 Twig\TemplateWrapper:render in /var/www/vhosts/oghf.org.uk/httpdocs/libraries/gantry5/compat/vendor/twig/twig/src/Environment.php:384 #68 Twig\Environment:render in /var/www/vhosts/oghf.org.uk/httpdocs/libraries/gantry5/src/classes/Gantry/Component/Theme/AbstractTheme.php:176 #67 Gantry\Component\Theme\AbstractTheme:render in /var/www/vhosts/oghf.org.uk/httpdocs/templates/rt_horizon/error.php:41 #66 require in /var/www/vhosts/oghf.org.uk/httpdocs/libraries/src/Document/HtmlDocument.php:721 #65 Joomla\CMS\Document\HtmlDocument:_loadTemplate in /var/www/vhosts/oghf.org.uk/httpdocs/libraries/src/Document/HtmlDocument.php:776 #64 Joomla\CMS\Document\HtmlDocument:_fetchTemplate in /var/www/vhosts/oghf.org.uk/httpdocs/libraries/src/Document/HtmlDocument.php:612 #63 Joomla\CMS\Document\HtmlDocument:parse in /var/www/vhosts/oghf.org.uk/httpdocs/libraries/src/Document/HtmlDocument.php:630 #62 Joomla\CMS\Document\HtmlDocument:render in /var/www/vhosts/oghf.org.uk/httpdocs/libraries/src/Document/ErrorDocument.php:139 #61 Joomla\CMS\Document\ErrorDocument:render in /var/www/vhosts/oghf.org.uk/httpdocs/libraries/src/Error/Renderer/HtmlRenderer.php:70 #60 Joomla\CMS\Error\Renderer\HtmlRenderer:render in /var/www/vhosts/oghf.org.uk/httpdocs/libraries/src/Exception/ExceptionHandler.php:126 #59 Joomla\CMS\Exception\ExceptionHandler:render in /var/www/vhosts/oghf.org.uk/httpdocs/libraries/src/Exception/ExceptionHandler.php:72 #58 Joomla\CMS\Exception\ExceptionHandler:handleException in /var/www/vhosts/oghf.org.uk/httpdocs/libraries/src/Application/CMSApplication.php:322 #57 Twig\Error\RuntimeError in /var/www/vhosts/oghf.org.uk/httpdocs/media/gantry5/engines/nucleus/particles/module.html.twig:4 #56 Exception in /var/www/vhosts/oghf.org.uk/httpdocs/libraries/src/Feed/FeedParser.php:89 #55 SimpleXMLElement:__construct in /var/www/vhosts/oghf.org.uk/httpdocs/libraries/src/Feed/FeedParser.php:89 #54 Joomla\CMS\Feed\FeedParser:parse in /var/www/vhosts/oghf.org.uk/httpdocs/libraries/src/Feed/FeedFactory.php:86 #53 Joomla\CMS\Feed\FeedFactory:getFeed in /var/www/vhosts/oghf.org.uk/httpdocs/modules/mod_rss_marquee/Helper/RssMarqueeHelper.php:33 #52 Joomla\Module\RssMarquee\Site\Helper\RssMarqueeHelper:getFeed in /var/www/vhosts/oghf.org.uk/httpdocs/modules/mod_rss_marquee/mod_rss_marquee.php:20 #51 include in /var/www/vhosts/oghf.org.uk/httpdocs/libraries/src/Dispatcher/ModuleDispatcher.php:52 #50 Joomla\CMS\Dispatcher\ModuleDispatcher:Joomla\CMS\Dispatcher\{closure} in /var/www/vhosts/oghf.org.uk/httpdocs/libraries/src/Dispatcher/ModuleDispatcher.php:55 #49 Joomla\CMS\Dispatcher\ModuleDispatcher:dispatch in /var/www/vhosts/oghf.org.uk/httpdocs/libraries/src/Helper/ModuleHelper.php:281 #48 Joomla\CMS\Helper\ModuleHelper:renderRawModule in /var/www/vhosts/oghf.org.uk/httpdocs/libraries/src/Helper/ModuleHelper.php:161 #47 Joomla\CMS\Helper\ModuleHelper:renderModule in /var/www/vhosts/oghf.org.uk/httpdocs/libraries/src/Document/Renderer/Html/ModuleRenderer.php:99 #46 Joomla\CMS\Document\Renderer\Html\ModuleRenderer:render in /var/www/vhosts/oghf.org.uk/httpdocs/libraries/gantry5/src/classes/Gantry/Framework/Platform.php:294 #45 Gantry\Framework\Platform:displayModule in /var/www/vhosts/oghf.org.uk/httpdocs/libraries/gantry5/compat/vendor/twig/twig/src/Template.php:702 #44 Twig\Template:getAttribute in /var/www/vhosts/oghf.org.uk/httpdocs/cache/gantry5/rt_horizon/twig/79/79a5167f5d66bc96f5ef9b12528a5ae066ad303a993c57ef0f426052954a6431.php:43 #43 __TwigTemplate_d067f28330ac896912ca35a14c06be82e080eb6da475964abc229dcf2bc37cea:block_particle in /var/www/vhosts/oghf.org.uk/httpdocs/libraries/gantry5/compat/vendor/twig/twig/src/Template.php:214 #42 Twig\Template:displayBlock in /var/www/vhosts/oghf.org.uk/httpdocs/cache/gantry5/rt_horizon/twig/e8/e851ec3df02dacae07242db4121c274c858c603c102e6c17b5fa4e31d77fcbc9.php:73 #41 __TwigTemplate_edefafb2b689b1307146d5be38acfa374dc5255ada353e391580febb2b0fb1f3:doDisplay in /var/www/vhosts/oghf.org.uk/httpdocs/libraries/gantry5/compat/vendor/twig/twig/src/Template.php:453 #40 Twig\Template:displayWithErrorHandling in /var/www/vhosts/oghf.org.uk/httpdocs/libraries/gantry5/compat/vendor/twig/twig/src/Template.php:420 #39 Twig\Template:display in /var/www/vhosts/oghf.org.uk/httpdocs/cache/gantry5/rt_horizon/twig/79/79a5167f5d66bc96f5ef9b12528a5ae066ad303a993c57ef0f426052954a6431.php:35 #38 __TwigTemplate_d067f28330ac896912ca35a14c06be82e080eb6da475964abc229dcf2bc37cea:doDisplay in /var/www/vhosts/oghf.org.uk/httpdocs/libraries/gantry5/compat/vendor/twig/twig/src/Template.php:453 #37 Twig\Template:displayWithErrorHandling in /var/www/vhosts/oghf.org.uk/httpdocs/libraries/gantry5/compat/vendor/twig/twig/src/Template.php:420 #36 Twig\Template:display in /var/www/vhosts/oghf.org.uk/httpdocs/cache/gantry5/rt_horizon/twig/52/526386002388b8071705529846872eb0de7a2009005506def4a21afb99d32dd3.php:53 #35 __TwigTemplate_039af0a1edba79b8c06742d03b62ea0b5cb540798c2dbe318bd140c0ef52d050:doDisplay in /var/www/vhosts/oghf.org.uk/httpdocs/libraries/gantry5/compat/vendor/twig/twig/src/Template.php:453 #34 Twig\Template:displayWithErrorHandling in /var/www/vhosts/oghf.org.uk/httpdocs/libraries/gantry5/compat/vendor/twig/twig/src/Template.php:420 #33 Twig\Template:display in /var/www/vhosts/oghf.org.uk/httpdocs/libraries/gantry5/compat/vendor/twig/twig/src/Template.php:432 #32 Twig\Template:render in /var/www/vhosts/oghf.org.uk/httpdocs/libraries/gantry5/compat/vendor/twig/twig/src/TemplateWrapper.php:47 #31 Twig\TemplateWrapper:render in /var/www/vhosts/oghf.org.uk/httpdocs/libraries/gantry5/compat/vendor/twig/twig/src/Environment.php:384 #30 Twig\Environment:render in /var/www/vhosts/oghf.org.uk/httpdocs/libraries/gantry5/src/classes/Gantry/Component/Theme/AbstractTheme.php:176 #29 Gantry\Component\Theme\AbstractTheme:render in /var/www/vhosts/oghf.org.uk/httpdocs/libraries/gantry5/src/classes/Gantry/Component/Theme/ThemeTrait.php:825 #28 Gantry\Framework\Theme:getContent in /var/www/vhosts/oghf.org.uk/httpdocs/libraries/gantry5/src/classes/Gantry/Component/Theme/ThemeTrait.php:718 #27 Gantry\Framework\Theme:renderContent in /var/www/vhosts/oghf.org.uk/httpdocs/libraries/gantry5/src/classes/Gantry/Component/Theme/ThemeTrait.php:643 #26 Gantry\Framework\Theme:prepareLayout in /var/www/vhosts/oghf.org.uk/httpdocs/libraries/gantry5/src/classes/Gantry/Component/Theme/ThemeTrait.php:627 #25 Gantry\Framework\Theme:prepareLayout in /var/www/vhosts/oghf.org.uk/httpdocs/libraries/gantry5/src/classes/Gantry/Component/Theme/ThemeTrait.php:627 #24 Gantry\Framework\Theme:prepareLayout in /var/www/vhosts/oghf.org.uk/httpdocs/libraries/gantry5/src/classes/Gantry/Component/Theme/ThemeTrait.php:627 #23 Gantry\Framework\Theme:prepareLayout in /var/www/vhosts/oghf.org.uk/httpdocs/libraries/gantry5/src/classes/Gantry/Component/Theme/ThemeTrait.php:468 #22 Gantry\Framework\Theme:segments in /var/www/vhosts/oghf.org.uk/httpdocs/libraries/gantry5/compat/vendor/twig/twig/src/Template.php:700 #21 Twig\Template:getAttribute in /var/www/vhosts/oghf.org.uk/httpdocs/cache/gantry5/rt_horizon/twig/cf/cf258eb9b695c360fdfe3046762233859471d9c18b902e5b38ade5c1881d0a22.php:47 #20 __TwigTemplate_5d75b7df8ef41aeb0e51a4653b1b43a6ee49861466cc215f1c29b7a5812c1ef8:doDisplay in /var/www/vhosts/oghf.org.uk/httpdocs/libraries/gantry5/compat/vendor/twig/twig/src/Template.php:453 #19 Twig\Template:displayWithErrorHandling in /var/www/vhosts/oghf.org.uk/httpdocs/libraries/gantry5/compat/vendor/twig/twig/src/Template.php:420 #18 Twig\Template:display in /var/www/vhosts/oghf.org.uk/httpdocs/cache/gantry5/rt_horizon/twig/c2/c2e6947d8bbea143d371ccf0d7e4b738bb989f377b67a04daa24ceee2f5e7dc5.php:35 #17 __TwigTemplate_89ba2da846ceafe4dd030deb530892963a60a954ab3a562ee08d769d566f394d:doDisplay in /var/www/vhosts/oghf.org.uk/httpdocs/libraries/gantry5/compat/vendor/twig/twig/src/Template.php:453 #16 Twig\Template:displayWithErrorHandling in /var/www/vhosts/oghf.org.uk/httpdocs/libraries/gantry5/compat/vendor/twig/twig/src/Template.php:420 #15 Twig\Template:display in /var/www/vhosts/oghf.org.uk/httpdocs/cache/gantry5/rt_horizon/twig/96/96818510ed595801ae7ea4bd2cdce8313de31a81eccb37e19de1fb212e8419c0.php:35 #14 __TwigTemplate_36e671e6ad3c7e2fea0aa8447c1ddcffe58edd257952717d84f5b82c1a63366a:doDisplay in /var/www/vhosts/oghf.org.uk/httpdocs/libraries/gantry5/compat/vendor/twig/twig/src/Template.php:453 #13 Twig\Template:displayWithErrorHandling in /var/www/vhosts/oghf.org.uk/httpdocs/libraries/gantry5/compat/vendor/twig/twig/src/Template.php:420 #12 Twig\Template:display in /var/www/vhosts/oghf.org.uk/httpdocs/libraries/gantry5/compat/vendor/twig/twig/src/Template.php:432 #11 Twig\Template:render in /var/www/vhosts/oghf.org.uk/httpdocs/libraries/gantry5/compat/vendor/twig/twig/src/TemplateWrapper.php:47 #10 Twig\TemplateWrapper:render in /var/www/vhosts/oghf.org.uk/httpdocs/libraries/gantry5/compat/vendor/twig/twig/src/Environment.php:384 #9 Twig\Environment:render in /var/www/vhosts/oghf.org.uk/httpdocs/libraries/gantry5/src/classes/Gantry/Component/Theme/AbstractTheme.php:176 #8 Gantry\Component\Theme\AbstractTheme:render in /var/www/vhosts/oghf.org.uk/httpdocs/templates/rt_horizon/index.php:30 #7 require in /var/www/vhosts/oghf.org.uk/httpdocs/libraries/src/Document/HtmlDocument.php:721 #6 Joomla\CMS\Document\HtmlDocument:_loadTemplate in /var/www/vhosts/oghf.org.uk/httpdocs/libraries/src/Document/HtmlDocument.php:776 #5 Joomla\CMS\Document\HtmlDocument:_fetchTemplate in /var/www/vhosts/oghf.org.uk/httpdocs/libraries/src/Document/HtmlDocument.php:612 #4 Joomla\CMS\Document\HtmlDocument:parse in /var/www/vhosts/oghf.org.uk/httpdocs/libraries/src/Application/CMSApplication.php:1012 #3 Joomla\CMS\Application\CMSApplication:render in /var/www/vhosts/oghf.org.uk/httpdocs/libraries/src/Application/SiteApplication.php:724 #2 Joomla\CMS\Application\SiteApplication:render in /var/www/vhosts/oghf.org.uk/httpdocs/libraries/src/Application/CMSApplication.php:298 #1 Joomla\CMS\Application\CMSApplication:execute in /var/www/vhosts/oghf.org.uk/httpdocs/includes/app.php:61 #0 require_once in /var/www/vhosts/oghf.org.uk/httpdocs/index.php:32
Stack frames (151)
150
Twig\Error\RuntimeError
/var/www/vhosts/oghf.org.uk/httpdocs/media/gantry5/engines/nucleus/particles/module.html.twig4
149
Twig\Template displayBlock
/var/www/vhosts/oghf.org.uk/httpdocs/cache/gantry5/rt_horizon/twig/e8/e851ec3df02dacae07242db4121c274c858c603c102e6c17b5fa4e31d77fcbc9.php73
148
__TwigTemplate_edefafb2b689b1307146d5be38acfa374dc5255ada353e391580febb2b0fb1f3 doDisplay
/compat/vendor/twig/twig/src/Template.php453
147
Twig\Template displayWithErrorHandling
/compat/vendor/twig/twig/src/Template.php420
146
Twig\Template display
/var/www/vhosts/oghf.org.uk/httpdocs/cache/gantry5/rt_horizon/twig/79/79a5167f5d66bc96f5ef9b12528a5ae066ad303a993c57ef0f426052954a6431.php35
145
__TwigTemplate_d067f28330ac896912ca35a14c06be82e080eb6da475964abc229dcf2bc37cea doDisplay
/compat/vendor/twig/twig/src/Template.php453
144
Twig\Template displayWithErrorHandling
/compat/vendor/twig/twig/src/Template.php420
143
Twig\Template display
/var/www/vhosts/oghf.org.uk/httpdocs/cache/gantry5/rt_horizon/twig/52/526386002388b8071705529846872eb0de7a2009005506def4a21afb99d32dd3.php53
142
__TwigTemplate_039af0a1edba79b8c06742d03b62ea0b5cb540798c2dbe318bd140c0ef52d050 doDisplay
/compat/vendor/twig/twig/src/Template.php453
141
Twig\Template displayWithErrorHandling
/compat/vendor/twig/twig/src/Template.php420
140
Twig\Template display
/var/www/vhosts/oghf.org.uk/httpdocs/cache/gantry5/rt_horizon/twig/a5/a529cb8df2a83c500f645bf833c40dc61261a5549dee1422eb94a3248cf04fd7.php75
139
__TwigTemplate_97a40f3cd3f8d75e987d4f5b0c52680913a479d17c349c0213aa9226ae8d4dbf doDisplay
/compat/vendor/twig/twig/src/Template.php453
138
Twig\Template displayWithErrorHandling
/compat/vendor/twig/twig/src/Template.php420
137
Twig\Template display
/var/www/vhosts/oghf.org.uk/httpdocs/cache/gantry5/rt_horizon/twig/d6/d6a81f5d9dcfe5e8695c3da57abaeb338168213b5ba9ef1a3454976212d8cb09.php58
136
__TwigTemplate_d403cb7e8d8e4b00def9ef2c1ab349850037dba1e8d2dcc539b085e05ed6abb3 doDisplay
/compat/vendor/twig/twig/src/Template.php453
135
Twig\Template displayWithErrorHandling
/compat/vendor/twig/twig/src/Template.php420
134
Twig\Template display
/var/www/vhosts/oghf.org.uk/httpdocs/cache/gantry5/rt_horizon/twig/be/bed85df323a8c1b522876954d1ff2475ee12f50cac56bf034667564472da43ba.php71
133
__TwigTemplate_b27c545e4680bef7485c043af81e68d8b681f8e84af74dcc1af131e23c7aad15 doDisplay
/compat/vendor/twig/twig/src/Template.php453
132
Twig\Template displayWithErrorHandling
/compat/vendor/twig/twig/src/Template.php420
131
Twig\Template display
/var/www/vhosts/oghf.org.uk/httpdocs/cache/gantry5/rt_horizon/twig/cf/cf258eb9b695c360fdfe3046762233859471d9c18b902e5b38ade5c1881d0a22.php212
130
__TwigTemplate_5d75b7df8ef41aeb0e51a4653b1b43a6ee49861466cc215f1c29b7a5812c1ef8 block_page_layout
/compat/vendor/twig/twig/src/Template.php214
129
Twig\Template displayBlock
/var/www/vhosts/oghf.org.uk/httpdocs/cache/gantry5/rt_horizon/twig/cf/cf258eb9b695c360fdfe3046762233859471d9c18b902e5b38ade5c1881d0a22.php90
128
__TwigTemplate_5d75b7df8ef41aeb0e51a4653b1b43a6ee49861466cc215f1c29b7a5812c1ef8 doDisplay
/compat/vendor/twig/twig/src/Template.php453
127
Twig\Template displayWithErrorHandling
/compat/vendor/twig/twig/src/Template.php420
126
Twig\Template display
/var/www/vhosts/oghf.org.uk/httpdocs/cache/gantry5/rt_horizon/twig/c2/c2e6947d8bbea143d371ccf0d7e4b738bb989f377b67a04daa24ceee2f5e7dc5.php35
125
Twig\Template display
/var/www/vhosts/oghf.org.uk/httpdocs/cache/gantry5/rt_horizon/twig/0a/0a6e8bab3fbb5eba73c21f5643c3a76610adf14b9ede7b26fd5f3f9fd4d9aecd.php36
124
Twig\Template display
/compat/vendor/twig/twig/src/Template.php432
123
Twig\Template render
/compat/vendor/twig/twig/src/TemplateWrapper.php47
122
Twig\TemplateWrapper render
/compat/vendor/twig/twig/src/Environment.php384
121
Twig\Environment render
/src/classes/Gantry/Component/Theme/AbstractTheme.php176
120
Gantry\Component\Theme\AbstractTheme render
/var/www/vhosts/oghf.org.uk/httpdocs/templates/rt_horizon/error.php41
119
require
/var/www/vhosts/oghf.org.uk/httpdocs/libraries/src/Document/HtmlDocument.php721
118
Joomla\CMS\Document\HtmlDocument _loadTemplate
/var/www/vhosts/oghf.org.uk/httpdocs/libraries/src/Document/HtmlDocument.php776
117
Joomla\CMS\Document\HtmlDocument _fetchTemplate
/var/www/vhosts/oghf.org.uk/httpdocs/libraries/src/Document/HtmlDocument.php612
116
Joomla\CMS\Document\HtmlDocument parse
/var/www/vhosts/oghf.org.uk/httpdocs/libraries/src/Document/HtmlDocument.php630
115
Joomla\CMS\Document\HtmlDocument render
/var/www/vhosts/oghf.org.uk/httpdocs/libraries/src/Document/ErrorDocument.php139
114
Joomla\CMS\Document\ErrorDocument render
/var/www/vhosts/oghf.org.uk/httpdocs/libraries/src/Error/Renderer/HtmlRenderer.php70
113
Joomla\CMS\Error\Renderer\HtmlRenderer render
/var/www/vhosts/oghf.org.uk/httpdocs/libraries/src/Exception/ExceptionHandler.php126
112
Joomla\CMS\Exception\ExceptionHandler render
/var/www/vhosts/oghf.org.uk/httpdocs/libraries/src/Exception/ExceptionHandler.php72
111
Joomla\CMS\Exception\ExceptionHandler handleException
/var/www/vhosts/oghf.org.uk/httpdocs/libraries/src/Application/CMSApplication.php322
110
Exception
/var/www/vhosts/oghf.org.uk/httpdocs/libraries/src/Feed/FeedParser.php89
109
SimpleXMLElement __construct
/var/www/vhosts/oghf.org.uk/httpdocs/libraries/src/Feed/FeedParser.php89
108
Joomla\CMS\Feed\FeedParser parse
/var/www/vhosts/oghf.org.uk/httpdocs/libraries/src/Feed/FeedFactory.php86
107
Joomla\CMS\Feed\FeedFactory getFeed
/var/www/vhosts/oghf.org.uk/httpdocs/modules/mod_rss_marquee/Helper/RssMarqueeHelper.php33
106
Joomla\Module\RssMarquee\Site\Helper\RssMarqueeHelper getFeed
/var/www/vhosts/oghf.org.uk/httpdocs/modules/mod_rss_marquee/mod_rss_marquee.php20
105
include
/var/www/vhosts/oghf.org.uk/httpdocs/libraries/src/Dispatcher/ModuleDispatcher.php52
104
Joomla\CMS\Dispatcher\ModuleDispatcher Joomla\CMS\Dispatcher\{closure}
/var/www/vhosts/oghf.org.uk/httpdocs/libraries/src/Dispatcher/ModuleDispatcher.php55
103
Joomla\CMS\Dispatcher\ModuleDispatcher dispatch
/var/www/vhosts/oghf.org.uk/httpdocs/libraries/src/Helper/ModuleHelper.php281
102
Joomla\CMS\Helper\ModuleHelper renderRawModule
/var/www/vhosts/oghf.org.uk/httpdocs/libraries/src/Helper/ModuleHelper.php161
101
Joomla\CMS\Helper\ModuleHelper renderModule
/var/www/vhosts/oghf.org.uk/httpdocs/libraries/src/Document/Renderer/Html/ModuleRenderer.php99
100
Joomla\CMS\Document\Renderer\Html\ModuleRenderer render
/src/classes/Gantry/Framework/Platform.php294
99
Gantry\Framework\Platform displayModule
/compat/vendor/twig/twig/src/Template.php702
98
Twig\Template getAttribute
/var/www/vhosts/oghf.org.uk/httpdocs/cache/gantry5/rt_horizon/twig/79/79a5167f5d66bc96f5ef9b12528a5ae066ad303a993c57ef0f426052954a6431.php43
97
__TwigTemplate_d067f28330ac896912ca35a14c06be82e080eb6da475964abc229dcf2bc37cea block_particle
/compat/vendor/twig/twig/src/Template.php214
96
Twig\Template displayBlock
/var/www/vhosts/oghf.org.uk/httpdocs/cache/gantry5/rt_horizon/twig/e8/e851ec3df02dacae07242db4121c274c858c603c102e6c17b5fa4e31d77fcbc9.php73
95
__TwigTemplate_edefafb2b689b1307146d5be38acfa374dc5255ada353e391580febb2b0fb1f3 doDisplay
/compat/vendor/twig/twig/src/Template.php453
94
Twig\Template displayWithErrorHandling
/compat/vendor/twig/twig/src/Template.php420
93
Twig\Template display
/var/www/vhosts/oghf.org.uk/httpdocs/cache/gantry5/rt_horizon/twig/79/79a5167f5d66bc96f5ef9b12528a5ae066ad303a993c57ef0f426052954a6431.php35
92
__TwigTemplate_d067f28330ac896912ca35a14c06be82e080eb6da475964abc229dcf2bc37cea doDisplay
/compat/vendor/twig/twig/src/Template.php453
91
Twig\Template displayWithErrorHandling
/compat/vendor/twig/twig/src/Template.php420
90
Twig\Template display
/var/www/vhosts/oghf.org.uk/httpdocs/cache/gantry5/rt_horizon/twig/52/526386002388b8071705529846872eb0de7a2009005506def4a21afb99d32dd3.php53
89
__TwigTemplate_039af0a1edba79b8c06742d03b62ea0b5cb540798c2dbe318bd140c0ef52d050 doDisplay
/compat/vendor/twig/twig/src/Template.php453
88
Twig\Template displayWithErrorHandling
/compat/vendor/twig/twig/src/Template.php420
87
Twig\Template display
/var/www/vhosts/oghf.org.uk/httpdocs/cache/gantry5/rt_horizon/twig/a5/a529cb8df2a83c500f645bf833c40dc61261a5549dee1422eb94a3248cf04fd7.php75
86
__TwigTemplate_97a40f3cd3f8d75e987d4f5b0c52680913a479d17c349c0213aa9226ae8d4dbf doDisplay
/compat/vendor/twig/twig/src/Template.php453
85
Twig\Template displayWithErrorHandling
/compat/vendor/twig/twig/src/Template.php420
84
Twig\Template display
/var/www/vhosts/oghf.org.uk/httpdocs/cache/gantry5/rt_horizon/twig/d6/d6a81f5d9dcfe5e8695c3da57abaeb338168213b5ba9ef1a3454976212d8cb09.php58
83
__TwigTemplate_d403cb7e8d8e4b00def9ef2c1ab349850037dba1e8d2dcc539b085e05ed6abb3 doDisplay
/compat/vendor/twig/twig/src/Template.php453
82
Twig\Template displayWithErrorHandling
/compat/vendor/twig/twig/src/Template.php420
81
Twig\Template display
/var/www/vhosts/oghf.org.uk/httpdocs/cache/gantry5/rt_horizon/twig/be/bed85df323a8c1b522876954d1ff2475ee12f50cac56bf034667564472da43ba.php71
80
__TwigTemplate_b27c545e4680bef7485c043af81e68d8b681f8e84af74dcc1af131e23c7aad15 doDisplay
/compat/vendor/twig/twig/src/Template.php453
79
Twig\Template displayWithErrorHandling
/compat/vendor/twig/twig/src/Template.php420
78
Twig\Template display
/var/www/vhosts/oghf.org.uk/httpdocs/cache/gantry5/rt_horizon/twig/cf/cf258eb9b695c360fdfe3046762233859471d9c18b902e5b38ade5c1881d0a22.php212
77
__TwigTemplate_5d75b7df8ef41aeb0e51a4653b1b43a6ee49861466cc215f1c29b7a5812c1ef8 block_page_layout
/compat/vendor/twig/twig/src/Template.php214
76
Twig\Template displayBlock
/var/www/vhosts/oghf.org.uk/httpdocs/cache/gantry5/rt_horizon/twig/cf/cf258eb9b695c360fdfe3046762233859471d9c18b902e5b38ade5c1881d0a22.php90
75
__TwigTemplate_5d75b7df8ef41aeb0e51a4653b1b43a6ee49861466cc215f1c29b7a5812c1ef8 doDisplay
/compat/vendor/twig/twig/src/Template.php453
74
Twig\Template displayWithErrorHandling
/compat/vendor/twig/twig/src/Template.php420
73
Twig\Template display
/var/www/vhosts/oghf.org.uk/httpdocs/cache/gantry5/rt_horizon/twig/c2/c2e6947d8bbea143d371ccf0d7e4b738bb989f377b67a04daa24ceee2f5e7dc5.php35
72
Twig\Template display
/var/www/vhosts/oghf.org.uk/httpdocs/cache/gantry5/rt_horizon/twig/0a/0a6e8bab3fbb5eba73c21f5643c3a76610adf14b9ede7b26fd5f3f9fd4d9aecd.php36
71
Twig\Template display
/compat/vendor/twig/twig/src/Template.php432
70
Twig\Template render
/compat/vendor/twig/twig/src/TemplateWrapper.php47
69
Twig\TemplateWrapper render
/compat/vendor/twig/twig/src/Environment.php384
68
Twig\Environment render
/src/classes/Gantry/Component/Theme/AbstractTheme.php176
67
Gantry\Component\Theme\AbstractTheme render
/var/www/vhosts/oghf.org.uk/httpdocs/templates/rt_horizon/error.php41
66
require
/var/www/vhosts/oghf.org.uk/httpdocs/libraries/src/Document/HtmlDocument.php721
65
Joomla\CMS\Document\HtmlDocument _loadTemplate
/var/www/vhosts/oghf.org.uk/httpdocs/libraries/src/Document/HtmlDocument.php776
64
Joomla\CMS\Document\HtmlDocument _fetchTemplate
/var/www/vhosts/oghf.org.uk/httpdocs/libraries/src/Document/HtmlDocument.php612
63
Joomla\CMS\Document\HtmlDocument parse
/var/www/vhosts/oghf.org.uk/httpdocs/libraries/src/Document/HtmlDocument.php630
62
Joomla\CMS\Document\HtmlDocument render
/var/www/vhosts/oghf.org.uk/httpdocs/libraries/src/Document/ErrorDocument.php139
61
Joomla\CMS\Document\ErrorDocument render
/var/www/vhosts/oghf.org.uk/httpdocs/libraries/src/Error/Renderer/HtmlRenderer.php70
60
Joomla\CMS\Error\Renderer\HtmlRenderer render
/var/www/vhosts/oghf.org.uk/httpdocs/libraries/src/Exception/ExceptionHandler.php126
59
Joomla\CMS\Exception\ExceptionHandler render
/var/www/vhosts/oghf.org.uk/httpdocs/libraries/src/Exception/ExceptionHandler.php72
58
Joomla\CMS\Exception\ExceptionHandler handleException
/var/www/vhosts/oghf.org.uk/httpdocs/libraries/src/Application/CMSApplication.php322
57
Twig\Error\RuntimeError
/var/www/vhosts/oghf.org.uk/httpdocs/media/gantry5/engines/nucleus/particles/module.html.twig4
56
Exception
/var/www/vhosts/oghf.org.uk/httpdocs/libraries/src/Feed/FeedParser.php89
55
SimpleXMLElement __construct
/var/www/vhosts/oghf.org.uk/httpdocs/libraries/src/Feed/FeedParser.php89
54
Joomla\CMS\Feed\FeedParser parse
/var/www/vhosts/oghf.org.uk/httpdocs/libraries/src/Feed/FeedFactory.php86
53
Joomla\CMS\Feed\FeedFactory getFeed
/var/www/vhosts/oghf.org.uk/httpdocs/modules/mod_rss_marquee/Helper/RssMarqueeHelper.php33
52
Joomla\Module\RssMarquee\Site\Helper\RssMarqueeHelper getFeed
/var/www/vhosts/oghf.org.uk/httpdocs/modules/mod_rss_marquee/mod_rss_marquee.php20
51
include
/var/www/vhosts/oghf.org.uk/httpdocs/libraries/src/Dispatcher/ModuleDispatcher.php52
50
Joomla\CMS\Dispatcher\ModuleDispatcher Joomla\CMS\Dispatcher\{closure}
/var/www/vhosts/oghf.org.uk/httpdocs/libraries/src/Dispatcher/ModuleDispatcher.php55
49
Joomla\CMS\Dispatcher\ModuleDispatcher dispatch
/var/www/vhosts/oghf.org.uk/httpdocs/libraries/src/Helper/ModuleHelper.php281
48
Joomla\CMS\Helper\ModuleHelper renderRawModule
/var/www/vhosts/oghf.org.uk/httpdocs/libraries/src/Helper/ModuleHelper.php161
47
Joomla\CMS\Helper\ModuleHelper renderModule
/var/www/vhosts/oghf.org.uk/httpdocs/libraries/src/Document/Renderer/Html/ModuleRenderer.php99
46
Joomla\CMS\Document\Renderer\Html\ModuleRenderer render
/src/classes/Gantry/Framework/Platform.php294
45
Gantry\Framework\Platform displayModule
/compat/vendor/twig/twig/src/Template.php702
44
Twig\Template getAttribute
/var/www/vhosts/oghf.org.uk/httpdocs/cache/gantry5/rt_horizon/twig/79/79a5167f5d66bc96f5ef9b12528a5ae066ad303a993c57ef0f426052954a6431.php43
43
__TwigTemplate_d067f28330ac896912ca35a14c06be82e080eb6da475964abc229dcf2bc37cea block_particle
/compat/vendor/twig/twig/src/Template.php214
42
Twig\Template displayBlock
/var/www/vhosts/oghf.org.uk/httpdocs/cache/gantry5/rt_horizon/twig/e8/e851ec3df02dacae07242db4121c274c858c603c102e6c17b5fa4e31d77fcbc9.php73
41
__TwigTemplate_edefafb2b689b1307146d5be38acfa374dc5255ada353e391580febb2b0fb1f3 doDisplay
/compat/vendor/twig/twig/src/Template.php453
40
Twig\Template displayWithErrorHandling
/compat/vendor/twig/twig/src/Template.php420
39
Twig\Template display
/var/www/vhosts/oghf.org.uk/httpdocs/cache/gantry5/rt_horizon/twig/79/79a5167f5d66bc96f5ef9b12528a5ae066ad303a993c57ef0f426052954a6431.php35
38
__TwigTemplate_d067f28330ac896912ca35a14c06be82e080eb6da475964abc229dcf2bc37cea doDisplay
/compat/vendor/twig/twig/src/Template.php453
37
Twig\Template displayWithErrorHandling
/compat/vendor/twig/twig/src/Template.php420
36
Twig\Template display
/var/www/vhosts/oghf.org.uk/httpdocs/cache/gantry5/rt_horizon/twig/52/526386002388b8071705529846872eb0de7a2009005506def4a21afb99d32dd3.php53
35
__TwigTemplate_039af0a1edba79b8c06742d03b62ea0b5cb540798c2dbe318bd140c0ef52d050 doDisplay
/compat/vendor/twig/twig/src/Template.php453
34
Twig\Template displayWithErrorHandling
/compat/vendor/twig/twig/src/Template.php420
33
Twig\Template display
/compat/vendor/twig/twig/src/Template.php432
32
Twig\Template render
/compat/vendor/twig/twig/src/TemplateWrapper.php47
31
Twig\TemplateWrapper render
/compat/vendor/twig/twig/src/Environment.php384
30
Twig\Environment render
/src/classes/Gantry/Component/Theme/AbstractTheme.php176
29
Gantry\Component\Theme\AbstractTheme render
/src/classes/Gantry/Component/Theme/ThemeTrait.php825
28
Gantry\Framework\Theme getContent
/src/classes/Gantry/Component/Theme/ThemeTrait.php718
27
Gantry\Framework\Theme renderContent
/src/classes/Gantry/Component/Theme/ThemeTrait.php643
26
Gantry\Framework\Theme prepareLayout
/src/classes/Gantry/Component/Theme/ThemeTrait.php627
25
Gantry\Framework\Theme prepareLayout
/src/classes/Gantry/Component/Theme/ThemeTrait.php627
24
Gantry\Framework\Theme prepareLayout
/src/classes/Gantry/Component/Theme/ThemeTrait.php627
23
Gantry\Framework\Theme prepareLayout
/src/classes/Gantry/Component/Theme/ThemeTrait.php468
22
Gantry\Framework\Theme segments
/compat/vendor/twig/twig/src/Template.php700
21
Twig\Template getAttribute
/var/www/vhosts/oghf.org.uk/httpdocs/cache/gantry5/rt_horizon/twig/cf/cf258eb9b695c360fdfe3046762233859471d9c18b902e5b38ade5c1881d0a22.php47
20
__TwigTemplate_5d75b7df8ef41aeb0e51a4653b1b43a6ee49861466cc215f1c29b7a5812c1ef8 doDisplay
/compat/vendor/twig/twig/src/Template.php453
19
Twig\Template displayWithErrorHandling
/compat/vendor/twig/twig/src/Template.php420
18
Twig\Template display
/var/www/vhosts/oghf.org.uk/httpdocs/cache/gantry5/rt_horizon/twig/c2/c2e6947d8bbea143d371ccf0d7e4b738bb989f377b67a04daa24ceee2f5e7dc5.php35
17
__TwigTemplate_89ba2da846ceafe4dd030deb530892963a60a954ab3a562ee08d769d566f394d doDisplay
/compat/vendor/twig/twig/src/Template.php453
16
Twig\Template displayWithErrorHandling
/compat/vendor/twig/twig/src/Template.php420
15
Twig\Template display
/var/www/vhosts/oghf.org.uk/httpdocs/cache/gantry5/rt_horizon/twig/96/96818510ed595801ae7ea4bd2cdce8313de31a81eccb37e19de1fb212e8419c0.php35
14
__TwigTemplate_36e671e6ad3c7e2fea0aa8447c1ddcffe58edd257952717d84f5b82c1a63366a doDisplay
/compat/vendor/twig/twig/src/Template.php453
13
Twig\Template displayWithErrorHandling
/compat/vendor/twig/twig/src/Template.php420
12
Twig\Template display
/compat/vendor/twig/twig/src/Template.php432
11
Twig\Template render
/compat/vendor/twig/twig/src/TemplateWrapper.php47
10
Twig\TemplateWrapper render
/compat/vendor/twig/twig/src/Environment.php384
9
Twig\Environment render
/src/classes/Gantry/Component/Theme/AbstractTheme.php176
8
Gantry\Component\Theme\AbstractTheme render
/var/www/vhosts/oghf.org.uk/httpdocs/templates/rt_horizon/index.php30
7
require
/var/www/vhosts/oghf.org.uk/httpdocs/libraries/src/Document/HtmlDocument.php721
6
Joomla\CMS\Document\HtmlDocument _loadTemplate
/var/www/vhosts/oghf.org.uk/httpdocs/libraries/src/Document/HtmlDocument.php776
5
Joomla\CMS\Document\HtmlDocument _fetchTemplate
/var/www/vhosts/oghf.org.uk/httpdocs/libraries/src/Document/HtmlDocument.php612
4
Joomla\CMS\Document\HtmlDocument parse
/var/www/vhosts/oghf.org.uk/httpdocs/libraries/src/Application/CMSApplication.php1012
3
Joomla\CMS\Application\CMSApplication render
/var/www/vhosts/oghf.org.uk/httpdocs/libraries/src/Application/SiteApplication.php724
2
Joomla\CMS\Application\SiteApplication render
/var/www/vhosts/oghf.org.uk/httpdocs/libraries/src/Application/CMSApplication.php298
1
Joomla\CMS\Application\CMSApplication execute
/var/www/vhosts/oghf.org.uk/httpdocs/includes/app.php61
0
require_once
/var/www/vhosts/oghf.org.uk/httpdocs/index.php32
{% extends '@nucleus/partials/particle.html.twig' %}
 
{% block particle %}
    {{ gantry.platform.displayModule(particle.module_id, {'style': particle.chrome|default('gantry'), 'position': 'particle'})|raw }}
{% endblock %}
 
Arguments
  1. "An exception has been thrown during the rendering of a template ("String could not be parsed as XML")."
    
        $assetFunction($content, $location, $priority);
        // line 9
        $assetFunction = $this->env->getFunction('parse_assets')->getCallable();
        $assetVariables = [];
        if ($assetVariables && !is_array($assetVariables)) {
            throw new UnexpectedValueException('{% scripts with x %}: x is not an array');
        }
        $location = "footer";
        if ($location && !is_string($location)) {
            throw new UnexpectedValueException('{% scripts in x %}: x is not a string');
        }
        $priority = isset($assetVariables['priority']) ? $assetVariables['priority'] : 0;
        ob_start();
        // line 10
        echo "    ";
        $this->displayBlock('javascript_footer', $context, $blocks);
        $content = ob_get_clean();
        $assetFunction($content, $location, $priority);
        // line 14
        $this->displayBlock('particle', $context, $blocks);
    }
 
    // line 2
    public function block_stylesheets($context, array $blocks = [])
    {
        // line 3
        echo "    ";
    }
 
    // line 5
    public function block_javascript($context, array $blocks = [])
    {
        // line 6
        echo "    ";
    }
 
    // line 10
    public function block_javascript_footer($context, array $blocks = [])
    {
        // line 11
            while (ob_get_level() > $level) {
                ob_end_clean();
            }
 
            throw $e;
        } catch (\Throwable $e) {
            while (ob_get_level() > $level) {
                ob_end_clean();
            }
 
            throw $e;
        }
 
        return ob_get_clean();
    }
 
    protected function displayWithErrorHandling(array $context, array $blocks = [])
    {
        try {
            $this->doDisplay($context, $blocks);
        } catch (Error $e) {
            if (!$e->getSourceContext()) {
                $e->setSourceContext($this->getSourceContext());
            }
 
            // this is mostly useful for \Twig\Error\LoaderError exceptions
            // see \Twig\Error\LoaderError
            if (-1 === $e->getTemplateLine()) {
                $e->guess();
            }
 
            throw $e;
        } catch (\Exception $e) {
            $e = new RuntimeError(sprintf('An exception has been thrown during the rendering of a template ("%s").', $e->getMessage()), -1, $this->getSourceContext(), $e);
            $e->guess();
 
            throw $e;
        }
    }
 
    {
        return $this;
    }
 
    /**
     * Returns all blocks.
     *
     * This method is for internal use only and should never be called
     * directly.
     *
     * @return array An array of blocks
     */
    public function getBlocks()
    {
        return $this->blocks;
    }
 
    public function display(array $context, array $blocks = [])
    {
        $this->displayWithErrorHandling($this->env->mergeGlobals($context), array_merge($this->blocks, $blocks));
    }
 
    public function render(array $context)
    {
        $level = ob_get_level();
        if ($this->env->isDebug()) {
            ob_start();
        } else {
            ob_start(function () { return ''; });
        }
        try {
            $this->display($context);
        } catch (\Exception $e) {
            while (ob_get_level() > $level) {
                ob_end_clean();
            }
 
            throw $e;
        } catch (\Throwable $e) {
            while (ob_get_level() > $level) {
{
    public function __construct(Environment $env)
    {
        parent::__construct($env);
 
        $this->blocks = [
            'particle' => [$this, 'block_particle'],
        ];
    }
 
    protected function doGetParent(array $context)
    {
        // line 1
        return "@nucleus/partials/particle.html.twig";
    }
 
    protected function doDisplay(array $context, array $blocks = [])
    {
        $this->parent = $this->loadTemplate("@nucleus/partials/particle.html.twig", "@particles/module.html.twig", 1);
        $this->parent->display($context, array_merge($this->blocks, $blocks));
    }
 
    // line 3
    public function block_particle($context, array $blocks = [])
    {
        // line 4
        echo "    ";
        echo $this->getAttribute($this->getAttribute(($context["gantry"] ?? null), "platform", []), "displayModule", [0 => $this->getAttribute(($context["particle"] ?? null), "module_id", []), 1 => ["style" => (($this->getAttribute(($context["particle"] ?? null), "chrome", [], "any", true, true)) ? (_twig_default_filter($this->getAttribute(($context["particle"] ?? null), "chrome", []), "gantry")) : ("gantry")), "position" => "particle"]], "method");
        echo "
";
    }
 
    public function getTemplateName()
    {
        return "@particles/module.html.twig";
    }
 
    public function isTraitable()
    {
        return false;
            while (ob_get_level() > $level) {
                ob_end_clean();
            }
 
            throw $e;
        } catch (\Throwable $e) {
            while (ob_get_level() > $level) {
                ob_end_clean();
            }
 
            throw $e;
        }
 
        return ob_get_clean();
    }
 
    protected function displayWithErrorHandling(array $context, array $blocks = [])
    {
        try {
            $this->doDisplay($context, $blocks);
        } catch (Error $e) {
            if (!$e->getSourceContext()) {
                $e->setSourceContext($this->getSourceContext());
            }
 
            // this is mostly useful for \Twig\Error\LoaderError exceptions
            // see \Twig\Error\LoaderError
            if (-1 === $e->getTemplateLine()) {
                $e->guess();
            }
 
            throw $e;
        } catch (\Exception $e) {
            $e = new RuntimeError(sprintf('An exception has been thrown during the rendering of a template ("%s").', $e->getMessage()), -1, $this->getSourceContext(), $e);
            $e->guess();
 
            throw $e;
        }
    }
 
    {
        return $this;
    }
 
    /**
     * Returns all blocks.
     *
     * This method is for internal use only and should never be called
     * directly.
     *
     * @return array An array of blocks
     */
    public function getBlocks()
    {
        return $this->blocks;
    }
 
    public function display(array $context, array $blocks = [])
    {
        $this->displayWithErrorHandling($this->env->mergeGlobals($context), array_merge($this->blocks, $blocks));
    }
 
    public function render(array $context)
    {
        $level = ob_get_level();
        if ($this->env->isDebug()) {
            ob_start();
        } else {
            ob_start(function () { return ''; });
        }
        try {
            $this->display($context);
        } catch (\Exception $e) {
            while (ob_get_level() > $level) {
                ob_end_clean();
            }
 
            throw $e;
        } catch (\Throwable $e) {
            while (ob_get_level() > $level) {
                echo "        ";
                $context["enabled"] = $this->getAttribute($this->getAttribute(($context["gantry"] ?? null), "config", []), "get", [0 => (("particles." . $this->getAttribute(($context["segment"] ?? null), "type", [])) . ".enabled"), 1 => 1], "method");
                // line 4
                echo "        ";
                $context["particle"] = $this->getAttribute($this->getAttribute(($context["gantry"] ?? null), "config", []), "getJoined", [0 => ("particles." . $this->getAttribute(($context["segment"] ?? null), "type", [])), 1 => $this->getAttribute(($context["segment"] ?? null), "attributes", [])], "method");
                // line 5
                echo "    ";
            }
            // line 6
            echo "
    ";
            // line 7
            ob_start();
            // line 8
            echo "        ";
            if ((($context["enabled"] ?? null) && ((null === $this->getAttribute($this->getAttribute(($context["segment"] ?? null), "attributes", []), "enabled", [])) || $this->getAttribute($this->getAttribute(($context["segment"] ?? null), "attributes", []), "enabled", [])))) {
                // line 9
                echo "            ";
                $this->loadTemplate([0 => (("particles/" . (($this->getAttribute(($context["segment"] ?? null), "subtype", [], "any", true, true)) ? (_twig_default_filter($this->getAttribute(($context["segment"] ?? null), "subtype", []), "position")) : ("position"))) . ".html.twig"), 1 => (("@particles/" . (($this->getAttribute(                // line 10
($context["segment"] ?? null), "subtype", [], "any", true, true)) ? (_twig_default_filter($this->getAttribute(($context["segment"] ?? null), "subtype", []), "position")) : ("position"))) . ".html.twig")], "@nucleus/content/position.html.twig", 9)->display($context);
                // line 11
                echo "        ";
            }
            // line 12
            echo "    ";
            $context["html"] = ('' === $tmp = ob_get_clean()) ? '' : new Markup($tmp, $this->env->getCharset());
            // line 14
            if (twig_trim_filter(($context["html"] ?? null))) {
                // line 15
                echo "        ";
                if (($this->getAttribute(($context["gantry"] ?? null), "debug", []) && $this->getAttribute($this->getAttribute(($context["segment"] ?? null), "attributes", []), "key", []))) {
                    echo "<!-- START POSITION ";
                    echo twig_escape_filter($this->env, $this->getAttribute($this->getAttribute(($context["segment"] ?? null), "attributes", []), "key", []), "html", null, true);
                    echo " -->";
                }
                // line 16
                echo "
        <div class=\"g-content";
                // line 17
                (($this->getAttribute(($context["segment"] ?? null), "classes", [])) ? (print (twig_escape_filter($this->env, (" " . twig_escape_filter($this->env, twig_join_filter($this->getAttribute(($context["segment"] ?? null), "classes", []), " "))), "html", null, true))) : (print ("")));
            while (ob_get_level() > $level) {
                ob_end_clean();
            }
 
            throw $e;
        } catch (\Throwable $e) {
            while (ob_get_level() > $level) {
                ob_end_clean();
            }
 
            throw $e;
        }
 
        return ob_get_clean();
    }
 
    protected function displayWithErrorHandling(array $context, array $blocks = [])
    {
        try {
            $this->doDisplay($context, $blocks);
        } catch (Error $e) {
            if (!$e->getSourceContext()) {
                $e->setSourceContext($this->getSourceContext());
            }
 
            // this is mostly useful for \Twig\Error\LoaderError exceptions
            // see \Twig\Error\LoaderError
            if (-1 === $e->getTemplateLine()) {
                $e->guess();
            }
 
            throw $e;
        } catch (\Exception $e) {
            $e = new RuntimeError(sprintf('An exception has been thrown during the rendering of a template ("%s").', $e->getMessage()), -1, $this->getSourceContext(), $e);
            $e->guess();
 
            throw $e;
        }
    }
 
    {
        return $this;
    }
 
    /**
     * Returns all blocks.
     *
     * This method is for internal use only and should never be called
     * directly.
     *
     * @return array An array of blocks
     */
    public function getBlocks()
    {
        return $this->blocks;
    }
 
    public function display(array $context, array $blocks = [])
    {
        $this->displayWithErrorHandling($this->env->mergeGlobals($context), array_merge($this->blocks, $blocks));
    }
 
    public function render(array $context)
    {
        $level = ob_get_level();
        if ($this->env->isDebug()) {
            ob_start();
        } else {
            ob_start(function () { return ''; });
        }
        try {
            $this->display($context);
        } catch (\Exception $e) {
            while (ob_get_level() > $level) {
                ob_end_clean();
            }
 
            throw $e;
        } catch (\Throwable $e) {
            while (ob_get_level() > $level) {
            if (is_array($context['_seq']) || (is_object($context['_seq']) && $context['_seq'] instanceof \Countable)) {
                $length = count($context['_seq']);
                $context['loop']['revindex0'] = $length - 1;
                $context['loop']['revindex'] = $length;
                $context['loop']['length'] = $length;
                $context['loop']['last'] = 1 === $length;
            }
            foreach ($context['_seq'] as $context["_key"] => $context["segment"]) {
                // line 10
                echo "            ";
                if ($this->getAttribute($context["segment"], "content", [])) {
                    // line 11
                    echo "                ";
                    echo $this->getAttribute($context["segment"], "content", []);
                    echo "
            ";
                } else {
                    // line 13
                    echo "                ";
                    $this->loadTemplate([0 => (("@nucleus/content/" . $this->getAttribute($context["segment"], "type", [])) . ".html.twig"), 1 => (("@nucleus/layout/" . $this->getAttribute($context["segment"], "type", [])) . ".html.twig")], "@nucleus/layout/block.html.twig", 13)->display(twig_array_merge($context, ["segments" => $this->getAttribute($context["segment"], "children", [])]));
                    // line 14
                    echo "            ";
                }
                // line 15
                echo "        ";
                ++$context['loop']['index0'];
                ++$context['loop']['index'];
                $context['loop']['first'] = false;
                if (isset($context['loop']['length'])) {
                    --$context['loop']['revindex0'];
                    --$context['loop']['revindex'];
                    $context['loop']['last'] = 0 === $context['loop']['revindex0'];
                }
            }
            $_parent = $context['_parent'];
            unset($context['_seq'], $context['_iterated'], $context['_key'], $context['segment'], $context['_parent'], $context['loop']);
            $context = array_intersect_key($context, $_parent) + $_parent;
            // line 16
            echo "    ";
        }
            while (ob_get_level() > $level) {
                ob_end_clean();
            }
 
            throw $e;
        } catch (\Throwable $e) {
            while (ob_get_level() > $level) {
                ob_end_clean();
            }
 
            throw $e;
        }
 
        return ob_get_clean();
    }
 
    protected function displayWithErrorHandling(array $context, array $blocks = [])
    {
        try {
            $this->doDisplay($context, $blocks);
        } catch (Error $e) {
            if (!$e->getSourceContext()) {
                $e->setSourceContext($this->getSourceContext());
            }
 
            // this is mostly useful for \Twig\Error\LoaderError exceptions
            // see \Twig\Error\LoaderError
            if (-1 === $e->getTemplateLine()) {
                $e->guess();
            }
 
            throw $e;
        } catch (\Exception $e) {
            $e = new RuntimeError(sprintf('An exception has been thrown during the rendering of a template ("%s").', $e->getMessage()), -1, $this->getSourceContext(), $e);
            $e->guess();
 
            throw $e;
        }
    }
 
    {
        return $this;
    }
 
    /**
     * Returns all blocks.
     *
     * This method is for internal use only and should never be called
     * directly.
     *
     * @return array An array of blocks
     */
    public function getBlocks()
    {
        return $this->blocks;
    }
 
    public function display(array $context, array $blocks = [])
    {
        $this->displayWithErrorHandling($this->env->mergeGlobals($context), array_merge($this->blocks, $blocks));
    }
 
    public function render(array $context)
    {
        $level = ob_get_level();
        if ($this->env->isDebug()) {
            ob_start();
        } else {
            ob_start(function () { return ''; });
        }
        try {
            $this->display($context);
        } catch (\Exception $e) {
            while (ob_get_level() > $level) {
                ob_end_clean();
            }
 
            throw $e;
        } catch (\Throwable $e) {
            while (ob_get_level() > $level) {
            echo "        ";
            $context['_parent'] = $context;
            $context['_seq'] = twig_ensure_traversable(($context["segments"] ?? null));
            $context['loop'] = [
              'parent' => $context['_parent'],
              'index0' => 0,
              'index'  => 1,
              'first'  => true,
            ];
            if (is_array($context['_seq']) || (is_object($context['_seq']) && $context['_seq'] instanceof \Countable)) {
                $length = count($context['_seq']);
                $context['loop']['revindex0'] = $length - 1;
                $context['loop']['revindex'] = $length;
                $context['loop']['length'] = $length;
                $context['loop']['last'] = 1 === $length;
            }
            foreach ($context['_seq'] as $context["_key"] => $context["segment"]) {
                // line 7
                echo "            ";
                $this->loadTemplate((("@nucleus/layout/" . $this->getAttribute($context["segment"], "type", [])) . ".html.twig"), "@nucleus/layout/grid.html.twig", 7)->display(twig_array_merge($context, ["segments" => $this->getAttribute($context["segment"], "children", [])]));
                // line 8
                echo "        ";
                ++$context['loop']['index0'];
                ++$context['loop']['index'];
                $context['loop']['first'] = false;
                if (isset($context['loop']['length'])) {
                    --$context['loop']['revindex0'];
                    --$context['loop']['revindex'];
                    $context['loop']['last'] = 0 === $context['loop']['revindex0'];
                }
            }
            $_parent = $context['_parent'];
            unset($context['_seq'], $context['_iterated'], $context['_key'], $context['segment'], $context['_parent'], $context['loop']);
            $context = array_intersect_key($context, $_parent) + $_parent;
            // line 9
            echo "    ";
        }
        $context["html"] = ('' === $tmp = ob_get_clean()) ? '' : new Markup($tmp, $this->env->getCharset());
        // line 12
        if (twig_trim_filter(($context["html"] ?? null))) {
            while (ob_get_level() > $level) {
                ob_end_clean();
            }
 
            throw $e;
        } catch (\Throwable $e) {
            while (ob_get_level() > $level) {
                ob_end_clean();
            }
 
            throw $e;
        }
 
        return ob_get_clean();
    }
 
    protected function displayWithErrorHandling(array $context, array $blocks = [])
    {
        try {
            $this->doDisplay($context, $blocks);
        } catch (Error $e) {
            if (!$e->getSourceContext()) {
                $e->setSourceContext($this->getSourceContext());
            }
 
            // this is mostly useful for \Twig\Error\LoaderError exceptions
            // see \Twig\Error\LoaderError
            if (-1 === $e->getTemplateLine()) {
                $e->guess();
            }
 
            throw $e;
        } catch (\Exception $e) {
            $e = new RuntimeError(sprintf('An exception has been thrown during the rendering of a template ("%s").', $e->getMessage()), -1, $this->getSourceContext(), $e);
            $e->guess();
 
            throw $e;
        }
    }
 
    {
        return $this;
    }
 
    /**
     * Returns all blocks.
     *
     * This method is for internal use only and should never be called
     * directly.
     *
     * @return array An array of blocks
     */
    public function getBlocks()
    {
        return $this->blocks;
    }
 
    public function display(array $context, array $blocks = [])
    {
        $this->displayWithErrorHandling($this->env->mergeGlobals($context), array_merge($this->blocks, $blocks));
    }
 
    public function render(array $context)
    {
        $level = ob_get_level();
        if ($this->env->isDebug()) {
            ob_start();
        } else {
            ob_start(function () { return ''; });
        }
        try {
            $this->display($context);
        } catch (\Exception $e) {
            while (ob_get_level() > $level) {
                ob_end_clean();
            }
 
            throw $e;
        } catch (\Throwable $e) {
            while (ob_get_level() > $level) {
            echo "        ";
            $context['_parent'] = $context;
            $context['_seq'] = twig_ensure_traversable(($context["segments"] ?? null));
            $context['loop'] = [
              'parent' => $context['_parent'],
              'index0' => 0,
              'index'  => 1,
              'first'  => true,
            ];
            if (is_array($context['_seq']) || (is_object($context['_seq']) && $context['_seq'] instanceof \Countable)) {
                $length = count($context['_seq']);
                $context['loop']['revindex0'] = $length - 1;
                $context['loop']['revindex'] = $length;
                $context['loop']['length'] = $length;
                $context['loop']['last'] = 1 === $length;
            }
            foreach ($context['_seq'] as $context["_key"] => $context["segment"]) {
                // line 14
                echo "            ";
                $this->loadTemplate((("@nucleus/layout/" . $this->getAttribute($context["segment"], "type", [])) . ".html.twig"), "@nucleus/layout/section.html.twig", 14)->display(twig_array_merge($context, ["segments" => $this->getAttribute($context["segment"], "children", [])]));
                // line 15
                echo "        ";
                ++$context['loop']['index0'];
                ++$context['loop']['index'];
                $context['loop']['first'] = false;
                if (isset($context['loop']['length'])) {
                    --$context['loop']['revindex0'];
                    --$context['loop']['revindex'];
                    $context['loop']['last'] = 0 === $context['loop']['revindex0'];
                }
            }
            $_parent = $context['_parent'];
            unset($context['_seq'], $context['_iterated'], $context['_key'], $context['segment'], $context['_parent'], $context['loop']);
            $context = array_intersect_key($context, $_parent) + $_parent;
            // line 16
            echo "    ";
        }
        $context["html"] = ('' === $tmp = ob_get_clean()) ? '' : new Markup($tmp, $this->env->getCharset());
        // line 19
        if (($this->getAttribute($this->getAttribute(($context["segment"] ?? null), "attributes", []), "sticky", []) || twig_trim_filter(($context["html"] ?? null)))) {
            while (ob_get_level() > $level) {
                ob_end_clean();
            }
 
            throw $e;
        } catch (\Throwable $e) {
            while (ob_get_level() > $level) {
                ob_end_clean();
            }
 
            throw $e;
        }
 
        return ob_get_clean();
    }
 
    protected function displayWithErrorHandling(array $context, array $blocks = [])
    {
        try {
            $this->doDisplay($context, $blocks);
        } catch (Error $e) {
            if (!$e->getSourceContext()) {
                $e->setSourceContext($this->getSourceContext());
            }
 
            // this is mostly useful for \Twig\Error\LoaderError exceptions
            // see \Twig\Error\LoaderError
            if (-1 === $e->getTemplateLine()) {
                $e->guess();
            }
 
            throw $e;
        } catch (\Exception $e) {
            $e = new RuntimeError(sprintf('An exception has been thrown during the rendering of a template ("%s").', $e->getMessage()), -1, $this->getSourceContext(), $e);
            $e->guess();
 
            throw $e;
        }
    }
 
    {
        return $this;
    }
 
    /**
     * Returns all blocks.
     *
     * This method is for internal use only and should never be called
     * directly.
     *
     * @return array An array of blocks
     */
    public function getBlocks()
    {
        return $this->blocks;
    }
 
    public function display(array $context, array $blocks = [])
    {
        $this->displayWithErrorHandling($this->env->mergeGlobals($context), array_merge($this->blocks, $blocks));
    }
 
    public function render(array $context)
    {
        $level = ob_get_level();
        if ($this->env->isDebug()) {
            ob_start();
        } else {
            ob_start(function () { return ''; });
        }
        try {
            $this->display($context);
        } catch (\Exception $e) {
            while (ob_get_level() > $level) {
                ob_end_clean();
            }
 
            throw $e;
        } catch (\Throwable $e) {
            while (ob_get_level() > $level) {
        $context['loop'] = [
          'parent' => $context['_parent'],
          'index0' => 0,
          'index'  => 1,
          'first'  => true,
        ];
        if (is_array($context['_seq']) || (is_object($context['_seq']) && $context['_seq'] instanceof \Countable)) {
            $length = count($context['_seq']);
            $context['loop']['revindex0'] = $length - 1;
            $context['loop']['revindex'] = $length;
            $context['loop']['length'] = $length;
            $context['loop']['last'] = 1 === $length;
        }
        foreach ($context['_seq'] as $context["_key"] => $context["segment"]) {
            // line 34
            echo "        ";
            if (($this->getAttribute($context["segment"], "type", []) != "offcanvas")) {
                // line 35
                echo "            ";
                $this->loadTemplate((("@nucleus/layout/" . $this->getAttribute($context["segment"], "type", [])) . ".html.twig"), "@nucleus/page.html.twig", 35)->display(twig_array_merge($context, ["segments" => $this->getAttribute($context["segment"], "children", [])]));
                // line 36
                echo "        ";
            }
            // line 37
            echo "    ";
            ++$context['loop']['index0'];
            ++$context['loop']['index'];
            $context['loop']['first'] = false;
            if (isset($context['loop']['length'])) {
                --$context['loop']['revindex0'];
                --$context['loop']['revindex'];
                $context['loop']['last'] = 0 === $context['loop']['revindex0'];
            }
        }
        $_parent = $context['_parent'];
        unset($context['_seq'], $context['_iterated'], $context['_key'], $context['segment'], $context['_parent'], $context['loop']);
        $context = array_intersect_key($context, $_parent) + $_parent;
        // line 38
        echo "    ";
    }
 
        if ($useBlocks && isset($blocks[$name])) {
            $template = $blocks[$name][0];
            $block = $blocks[$name][1];
        } elseif (isset($this->blocks[$name])) {
            $template = $this->blocks[$name][0];
            $block = $this->blocks[$name][1];
        } else {
            $template = null;
            $block = null;
        }
 
        // avoid RCEs when sandbox is enabled
        if (null !== $template && !$template instanceof self) {
            throw new \LogicException('A block must be a method on a \Twig\Template instance.');
        }
 
        if (null !== $template) {
            try {
                $template->$block($context, $blocks);
            } catch (Error $e) {
                if (!$e->getSourceContext()) {
                    $e->setSourceContext($template->getSourceContext());
                }
 
                // this is mostly useful for \Twig\Error\LoaderError exceptions
                // see \Twig\Error\LoaderError
                if (-1 === $e->getTemplateLine()) {
                    $e->guess();
                }
 
                throw $e;
            } catch (\Exception $e) {
                $e = new RuntimeError(sprintf('An exception has been thrown during the rendering of a template ("%s").', $e->getMessage()), -1, $template->getSourceContext(), $e);
                $e->guess();
 
                throw $e;
            }
        } elseif (false !== $parent = $this->getParent($context)) {
            $parent->displayBlock($name, $context, array_merge($this->blocks, $blocks), false);
            }
        }
        $_parent = $context['_parent'];
        unset($context['_seq'], $context['_iterated'], $context['_key'], $context['segment'], $context['_parent'], $context['loop']);
        $context = array_intersect_key($context, $_parent) + $_parent;
        // line 20
        ob_start();
        // line 21
        echo "    ";
        $this->displayBlock('page_offcanvas', $context, $blocks);
        $context["page_offcanvas"] = ('' === $tmp = ob_get_clean()) ? '' : new Markup($tmp, $this->env->getCharset());
        // line 28
        $context["page_offcanvas"] = ((twig_trim_filter(($context["page_offcanvas"] ?? null))) ? (twig_trim_filter(($context["page_offcanvas"] ?? null))) : (""));
        // line 29
        $context["offcanvas_position"] = ((($context["page_offcanvas"] ?? null)) ? ((($this->getAttribute($this->getAttribute(($context["offcanvas"] ?? null), "attributes", [], "any", false, true), "position", [], "any", true, true)) ? (_twig_default_filter($this->getAttribute($this->getAttribute(($context["offcanvas"] ?? null), "attributes", [], "any", false, true), "position", []), "g-offcanvas-left")) : ("g-offcanvas-left"))) : (""));
        // line 31
        ob_start();
        // line 32
        echo "    ";
        $this->displayBlock('page_layout', $context, $blocks);
        $context["page_layout"] = ('' === $tmp = ob_get_clean()) ? '' : new Markup($tmp, $this->env->getCharset());
        // line 41
        ob_start();
        // line 42
        echo "    ";
        $this->displayBlock('page_top', $context, $blocks);
        // line 44
        echo "    ";
        echo twig_join_filter($this->getAttribute($this->getAttribute(($context["gantry"] ?? null), "document", []), "getHtml", [0 => "top"], "method"), "
    ");
        echo "
";
        $context["page_top"] = ('' === $tmp = ob_get_clean()) ? '' : new Markup($tmp, $this->env->getCharset());
        // line 47
        ob_start();
        // line 48
        echo "    ";
        $this->displayBlock('page_bottom', $context, $blocks);
        // line 50
        echo "    ";
            while (ob_get_level() > $level) {
                ob_end_clean();
            }
 
            throw $e;
        } catch (\Throwable $e) {
            while (ob_get_level() > $level) {
                ob_end_clean();
            }
 
            throw $e;
        }
 
        return ob_get_clean();
    }
 
    protected function displayWithErrorHandling(array $context, array $blocks = [])
    {
        try {
            $this->doDisplay($context, $blocks);
        } catch (Error $e) {
            if (!$e->getSourceContext()) {
                $e->setSourceContext($this->getSourceContext());
            }
 
            // this is mostly useful for \Twig\Error\LoaderError exceptions
            // see \Twig\Error\LoaderError
            if (-1 === $e->getTemplateLine()) {
                $e->guess();
            }
 
            throw $e;
        } catch (\Exception $e) {
            $e = new RuntimeError(sprintf('An exception has been thrown during the rendering of a template ("%s").', $e->getMessage()), -1, $this->getSourceContext(), $e);
            $e->guess();
 
            throw $e;
        }
    }
 
    {
        return $this;
    }
 
    /**
     * Returns all blocks.
     *
     * This method is for internal use only and should never be called
     * directly.
     *
     * @return array An array of blocks
     */
    public function getBlocks()
    {
        return $this->blocks;
    }
 
    public function display(array $context, array $blocks = [])
    {
        $this->displayWithErrorHandling($this->env->mergeGlobals($context), array_merge($this->blocks, $blocks));
    }
 
    public function render(array $context)
    {
        $level = ob_get_level();
        if ($this->env->isDebug()) {
            ob_start();
        } else {
            ob_start(function () { return ''; });
        }
        try {
            $this->display($context);
        } catch (\Exception $e) {
            while (ob_get_level() > $level) {
                ob_end_clean();
            }
 
            throw $e;
        } catch (\Throwable $e) {
            while (ob_get_level() > $level) {
{
    public function __construct(Environment $env)
    {
        parent::__construct($env);
 
        $this->blocks = [
            'page_footer' => [$this, 'block_page_footer'],
        ];
    }
 
    protected function doGetParent(array $context)
    {
        // line 1
        return "@nucleus/page.html.twig";
    }
 
    protected function doDisplay(array $context, array $blocks = [])
    {
        $this->parent = $this->loadTemplate("@nucleus/page.html.twig", "partials/page.html.twig", 1);
        $this->parent->display($context, array_merge($this->blocks, $blocks));
    }
 
    // line 3
    public function block_page_footer($context, array $blocks = [])
    {
        // line 4
        echo "    ";
        $this->displayParentBlock("page_footer", $context, $blocks);
        echo "
    <jdoc:include type=\"modules\" name=\"debug\" />
";
    }
 
    public function getTemplateName()
    {
        return "partials/page.html.twig";
    }
 
    public function isTraitable()
    {
    public function __construct(Environment $env)
    {
        parent::__construct($env);
 
        $this->blocks = [
            'page_head' => [$this, 'block_page_head'],
            'content' => [$this, 'block_content'],
        ];
    }
 
    protected function doGetParent(array $context)
    {
        // line 1
        return "partials/page.html.twig";
    }
 
    protected function doDisplay(array $context, array $blocks = [])
    {
        $this->parent = $this->loadTemplate("partials/page.html.twig", "error.html.twig", 1);
        $this->parent->display($context, array_merge($this->blocks, $blocks));
    }
 
    // line 3
    public function block_page_head($context, array $blocks = [])
    {
        // line 4
        $this->loadTemplate("partials/error_head.html.twig", "error.html.twig", 4)->display($context);
    }
 
    // line 7
    public function block_content($context, array $blocks = [])
    {
        // line 8
        echo "    <h1>";
        echo twig_escape_filter($this->env, ((array_key_exists("errorcode", $context)) ? (_twig_default_filter(($context["errorcode"] ?? null), 500)) : (500)), "html", null, true);
        echo " ";
        echo twig_escape_filter($this->env, ((array_key_exists("error", $context)) ? (_twig_default_filter(($context["error"] ?? null), "Unknown Error")) : ("Unknown Error")), "html", null, true);
        echo "</h1>
    ";
        // line 9
    public function getBlocks()
    {
        return $this->blocks;
    }
 
    public function display(array $context, array $blocks = [])
    {
        $this->displayWithErrorHandling($this->env->mergeGlobals($context), array_merge($this->blocks, $blocks));
    }
 
    public function render(array $context)
    {
        $level = ob_get_level();
        if ($this->env->isDebug()) {
            ob_start();
        } else {
            ob_start(function () { return ''; });
        }
        try {
            $this->display($context);
        } catch (\Exception $e) {
            while (ob_get_level() > $level) {
                ob_end_clean();
            }
 
            throw $e;
        } catch (\Throwable $e) {
            while (ob_get_level() > $level) {
                ob_end_clean();
            }
 
            throw $e;
        }
 
        return ob_get_clean();
    }
 
    protected function displayWithErrorHandling(array $context, array $blocks = [])
    {
        try {
     * @internal
     */
    public function __construct(Environment $env, Template $template)
    {
        $this->env = $env;
        $this->template = $template;
    }
 
    /**
     * Renders the template.
     *
     * @param array $context An array of parameters to pass to the template
     *
     * @return string The rendered template
     */
    public function render($context = [])
    {
        // using func_get_args() allows to not expose the blocks argument
        // as it should only be used by internal code
        return $this->template->render($context, \func_num_args() > 1 ? func_get_arg(1) : []);
    }
 
    /**
     * Displays the template.
     *
     * @param array $context An array of parameters to pass to the template
     */
    public function display($context = [])
    {
        // using func_get_args() allows to not expose the blocks argument
        // as it should only be used by internal code
        $this->template->display($context, \func_num_args() > 1 ? func_get_arg(1) : []);
    }
 
    /**
     * Checks if a block is defined.
     *
     * @param string $name    The block name
     * @param array  $context An array of parameters to pass to the template
     *
        @trigger_error(sprintf('The %s method is deprecated since version 1.22 and will be removed in Twig 2.0.', __METHOD__), \E_USER_DEPRECATED);
 
        return $this->templateClassPrefix;
    }
 
    /**
     * Renders a template.
     *
     * @param string|TemplateWrapper $name    The template name
     * @param array                  $context An array of parameters to pass to the template
     *
     * @return string The rendered template
     *
     * @throws LoaderError  When the template cannot be found
     * @throws SyntaxError  When an error occurred during compilation
     * @throws RuntimeError When an error occurred during rendering
     */
    public function render($name, array $context = [])
    {
        return $this->load($name)->render($context);
    }
 
    /**
     * Displays a template.
     *
     * @param string|TemplateWrapper $name    The template name
     * @param array                  $context An array of parameters to pass to the template
     *
     * @throws LoaderError  When the template cannot be found
     * @throws SyntaxError  When an error occurred during compilation
     * @throws RuntimeError When an error occurred during rendering
     */
    public function display($name, array $context = [])
    {
        $this->load($name)->display($context);
    }
 
    /**
     * Loads a template.
     *
 
            $this->renderer = $this->extendTwig($twig, $loader);
        }
 
        return $this->renderer;
    }
 
    /**
     * Render a template file by using given context.
     *
     * @param string $file
     * @param array $context
     * @return string
     */
    public function render($file, array $context = [])
    {
        // Include Gantry specific things to the context.
        $context = $this->getContext($context);
 
        return $this->renderer()->render($file, $context);
    }
 
    /**
     * Compile and render twig string.
     *
     * @param string $string
     * @param array $context
     * @return string
     */
    public function compile($string, array $context = [])
    {
        $renderer = $this->renderer();
        $template = $renderer->createTemplate($string);
 
        // Include Gantry specific things to the context.
        $context = $this->getContext($context);
 
        return $template->render($context);
    }
 
$gantry = include $className;
 
/** @var Theme $theme */
$theme = $gantry['theme'];
$app = Factory::getApplication();
 
$context = array(
    'errorcode' => isset($this->error) ? $this->error->getCode() : null,
    'error' => isset($this->error) ? $this->error->getMessage() : null,
    'debug' => $app->get('debug_lang', '0') == '1' || $app->get('debug', '0') == '1',
    'backtrace' => $this->debug ? $this->renderBacktrace() : null
);
 
// Reset used outline configuration.
unset($gantry['configuration']);
 
// Render the page.
echo $theme
    ->setLayout('_error', true)
    ->render('error.html.twig', $context);
 
     *
     * @param   string  $directory  The name of the template
     * @param   string  $filename   The actual filename
     *
     * @return  string  The contents of the template
     *
     * @since   1.7.0
     */
    protected function _loadTemplate($directory, $filename)
    {
        $contents = '';
 
        // Check to see if we have a valid template file
        if (is_file($directory . '/' . $filename)) {
            // Store the file path
            $this->_file = $directory . '/' . $filename;
 
            // Get the file content
            ob_start();
            require $directory . '/' . $filename;
            $contents = ob_get_contents();
            ob_end_clean();
        }
 
        return $contents;
    }
 
    /**
     * Fetch the template, and initialise the params
     *
     * @param   array  $params  Parameters to determine the template
     *
     * @return  HtmlDocument instance of $this to allow chaining
     *
     * @since   1.7.0
     */
    protected function _fetchTemplate($params = [])
    {
        // Check
        $directory = $params['directory'] ?? 'templates';
Arguments
  1. "/var/www/vhosts/oghf.org.uk/httpdocs/templates/rt_horizon/error.php"
    
                }
            }
        }
 
        // Load the language file for the template
        $lang = CmsFactory::getLanguage();
 
        // 1.5 or core then 1.6
        $lang->load('tpl_' . $template, JPATH_BASE)
            || ($inherits !== '' && $lang->load('tpl_' . $inherits, JPATH_BASE))
            || $lang->load('tpl_' . $template, $directory . '/' . $template)
            || ($inherits !== '' && $lang->load('tpl_' . $inherits, $directory . '/' . $inherits));
 
        // Assign the variables
        $this->baseurl  = Uri::base(true);
        $this->params   = $params['params'] ?? new Registry();
        $this->template = $template;
 
        // Load
        $this->_template = $this->_loadTemplate($baseDir, $file);
 
        return $this;
    }
 
    /**
     * Parse a document template
     *
     * @return  HtmlDocument  instance of $this to allow chaining
     *
     * @since   1.7.0
     */
    protected function _parseTemplate()
    {
        $matches = [];
 
        if (preg_match_all('#<jdoc:include\ type="([^"]+)"(.*)\/>#iU', $this->_template, $matches)) {
            $messages            = [];
            $template_tags_first = [];
            $template_tags_last  = [];
 
        $name  = $options['name'] ?? '';
        $title = $options['title'] ?? '';
 
        parent::$_buffer[$type][$name][$title] = $content;
 
        return $this;
    }
 
    /**
     * Parses the template and populates the buffer
     *
     * @param   array  $params  Parameters for fetching the template
     *
     * @return  HtmlDocument instance of $this to allow chaining
     *
     * @since   1.7.0
     */
    public function parse($params = [])
    {
        return $this->_fetchTemplate($params)->_parseTemplate();
    }
 
    /**
     * Outputs the template to the browser.
     *
     * @param   boolean  $caching  If true, cache the output
     * @param   array    $params   Associative array of attributes
     *
     * @return  string The rendered data
     *
     * @since   1.7.0
     */
    public function render($caching = false, $params = [])
    {
        $this->_caching = $caching;
 
        if (empty($this->_template)) {
            $this->parse($params);
        }
 
    {
        return $this->_fetchTemplate($params)->_parseTemplate();
    }
 
    /**
     * Outputs the template to the browser.
     *
     * @param   boolean  $caching  If true, cache the output
     * @param   array    $params   Associative array of attributes
     *
     * @return  string The rendered data
     *
     * @since   1.7.0
     */
    public function render($caching = false, $params = [])
    {
        $this->_caching = $caching;
 
        if (empty($this->_template)) {
            $this->parse($params);
        }
 
        if (\array_key_exists('csp_nonce', $params) && $params['csp_nonce'] !== null) {
            $this->cspNonce = $params['csp_nonce'];
        }
 
        $data = $this->_renderTemplate();
        parent::render($caching, $params);
 
        return $data;
    }
 
    /**
     * Count the modules in the given position
     *
     * @param   string   $positionName     The position to use
     * @param   boolean  $withContentOnly  Count only a modules which actually has a content
     *
     * @return  integer  Number of modules found
     *
 
        if ($status < 400 || $status > 599) {
            $status = 500;
        }
 
        $errorReporting = CmsFactory::getApplication()->get('error_reporting');
 
        if ($errorReporting === "development" || $errorReporting === "maximum") {
            $status .= ' ' . str_replace("\n", ' ', $this->_error->getMessage());
        }
 
        CmsFactory::getApplication()->setHeader('status', $status);
 
        // Set variables
        $this->debug = $params['debug'] ?? false;
        $this->error = $this->_error;
 
        $params['file'] = 'error.php';
 
        return parent::render($cache, $params);
    }
 
    /**
     * Render the backtrace
     *
     * @return  string  The contents of the backtrace
     *
     * @since   1.7.0
     */
    public function renderBacktrace()
    {
        // If no error object is set return null
        if (!isset($this->_error)) {
            return;
        }
 
        // The back trace
        $backtrace = $this->_error->getTrace();
 
        // Add the position of the actual file
 
        // Push the error object into the document
        $this->getDocument()->setError($error);
 
        // Add registry file for the template asset
        $wa = $this->getDocument()->getWebAssetManager()->getRegistry();
 
        $wa->addTemplateRegistryFile($template->template, $app->getClientId());
 
        if (!empty($template->parent)) {
            $wa->addTemplateRegistryFile($template->parent, $app->getClientId());
        }
 
        if (ob_get_contents()) {
            ob_end_clean();
        }
 
        $this->getDocument()->setTitle(Text::_('Error') . ': ' . $error->getCode());
 
        return $this->getDocument()->render(
            false,
            [
                'template'         => $template->template,
                'directory'        => JPATH_THEMES,
                'debug'            => JDEBUG,
                'csp_nonce'        => $app->get('csp_nonce'),
                'templateInherits' => $template->parent,
                'params'           => $template->params,
            ]
        );
    }
}
 
             * Lastly, if all else fails, we default onto the HTML format to at least render something
             */
            if (Factory::$document) {
                $format = Factory::$document->getType();
            } else {
                $format = $app->getInput()->getString('format', 'html');
            }
 
            try {
                $renderer = AbstractRenderer::getRenderer($format);
            } catch (\InvalidArgumentException $e) {
                // Default to the HTML renderer
                $renderer = AbstractRenderer::getRenderer('html');
            }
 
            // Reset the document object in the factory, this gives us a clean slate and lets everything render properly
            Factory::$document = $renderer->getDocument();
            Factory::getApplication()->loadDocument(Factory::$document);
 
            $data = $renderer->render($error);
 
            // If nothing was rendered, just use the message from the Exception
            if (empty($data)) {
                $data = $error->getMessage();
            }
 
            if ($isCli) {
                echo $data;
            } else {
                /** @var CMSApplication $app */
 
                // Do not allow cache
                $app->allowCache(false);
 
                $app->setBody($data);
            }
 
            // This return is needed to ensure the test suite does not trigger the non-Exception handling below
            return;
        } catch (\Throwable $errorRendererError) {
            }
        }
 
        // Always return false, this will tell PHP to handle the error internally
        return false;
    }
 
    /**
     * Handles exceptions: logs errors and renders error page.
     *
     * @param   \Exception|\Throwable  $error  An Exception or Throwable (PHP 7+) object for which to render the error page.
     *
     * @return  void
     *
     * @since   3.10.0
     */
    public static function handleException(\Throwable $error)
    {
        static::logException($error);
        static::render($error);
    }
 
    /**
     * Render the error page based on an exception.
     *
     * @param   \Throwable  $error  An Exception or Throwable (PHP 7+) object for which to render the error page.
     *
     * @return  void
     *
     * @since   3.0
     */
    public static function render(\Throwable $error)
    {
        try {
            $app = Factory::getApplication();
 
            // Flag if we are on cli
            $isCli = $app->isClient('cli');
 
            // If site is offline and it's a 404 error, just go to index (to see offline message, instead of 404)
                $this->compress();
 
                // Trigger the onAfterCompress event.
                $this->triggerEvent('onAfterCompress');
            }
        } catch (\Throwable $throwable) {
            /** @var ErrorEvent $event */
            $event = AbstractEvent::create(
                'onError',
                [
                    'subject'     => $throwable,
                    'eventClass'  => ErrorEvent::class,
                    'application' => $this,
                ]
            );
 
            // Trigger the onError event.
            $this->triggerEvent('onError', $event);
 
            ExceptionHandler::handleException($event->getError());
        }
 
        // Trigger the onBeforeRespond event.
        $this->getDispatcher()->dispatch('onBeforeRespond');
 
        // Send the application response.
        $this->respond();
 
        // Trigger the onAfterRespond event.
        $this->getDispatcher()->dispatch('onAfterRespond');
    }
 
    /**
     * Check if the user is required to reset their password.
     *
     * If the user is required to reset their password will be redirected to the page that manage the password reset.
     *
     * @param   string  $option  The option that manage the password reset
     * @param   string  $view    The view that manage the password reset
     * @param   string  $layout  The layout of the view that manage the password reset
    }
 
    /**
     * Method to parse the feed into a JFeed object.
     *
     * @return  Feed
     *
     * @since   3.1.4
     */
    public function parse()
    {
        $feed = new Feed();
 
        // Detect the feed version.
        $this->initialise();
 
        // Let's get this party started...
        do {
            // Expand the element for processing.
            $el = new \SimpleXMLElement($this->stream->readOuterXml());
 
            // Get the list of namespaces used within this element.
            $ns = $el->getNamespaces(true);
 
            // Get an array of available namespace objects for the element.
            $namespaces = [];
 
            foreach ($ns as $prefix => $uri) {
                // Ignore the empty namespace prefix.
                if (empty($prefix)) {
                    continue;
                }
 
                // Get the necessary namespace objects for the element.
                $namespace = $this->fetchNamespace($prefix);
 
                if ($namespace) {
                    $namespaces[] = $namespace;
                }
            }
Arguments
  1. "String could not be parsed as XML"
    
Exception message: String could not be parsed as XML
    }
 
    /**
     * Method to parse the feed into a JFeed object.
     *
     * @return  Feed
     *
     * @since   3.1.4
     */
    public function parse()
    {
        $feed = new Feed();
 
        // Detect the feed version.
        $this->initialise();
 
        // Let's get this party started...
        do {
            // Expand the element for processing.
            $el = new \SimpleXMLElement($this->stream->readOuterXml());
 
            // Get the list of namespaces used within this element.
            $ns = $el->getNamespaces(true);
 
            // Get an array of available namespace objects for the element.
            $namespaces = [];
 
            foreach ($ns as $prefix => $uri) {
                // Ignore the empty namespace prefix.
                if (empty($prefix)) {
                    continue;
                }
 
                // Get the necessary namespace objects for the element.
                $namespace = $this->fetchNamespace($prefix);
 
                if ($namespace) {
                    $namespaces[] = $namespace;
                }
            }
            if (!$reader->XML($response->body, null, LIBXML_NOERROR | LIBXML_ERR_NONE | LIBXML_NOWARNING)) {
                throw new \RuntimeException('Unable to parse the feed.');
            }
        }
 
        try {
            // Skip ahead to the root node.
            while ($reader->read()) {
                if ($reader->nodeType == \XMLReader::ELEMENT) {
                    break;
                }
            }
        } catch (\Exception $e) {
            throw new \RuntimeException('Error reading feed.', $e->getCode(), $e);
        }
 
        // Setup the appropriate feed parser for the feed.
        $parser = $this->_fetchFeedParser($reader->name, $reader);
 
        return $parser->parse();
    }
 
    /**
     * Method to register a FeedParser class for a given root tag name.
     *
     * @param   string   $tagName    The root tag name for which to register the parser class.
     * @param   string   $className  The FeedParser class name to register for a root tag name.
     * @param   boolean  $overwrite  True to overwrite the parser class if one is already registered.
     *
     * @return  FeedFactory
     *
     * @since   3.1.4
     * @throws  \InvalidArgumentException
     */
    public function registerParser($tagName, $className, $overwrite = false)
    {
        // Verify that the class exists.
        if (!class_exists($className)) {
            throw new \InvalidArgumentException('The feed parser class ' . $className . ' does not exist.');
        }
 
namespace Joomla\Module\RssMarquee\Site\Helper;

defined('_JEXEC') or die;

abstract class RssMarqueeHelper
{
    public static function getFeed(&$params)
    {
        $url = $params->get('marquee_rss');
        
        if($url == "")
        {
            return \JText::_('RSSMARQUEE_ERR1');
        }
        
        try
        {
            $feed   = new \JFeedFactory;
            $rssDoc = $feed->getFeed($url);
        }
        catch (Exception $e)
        {
            return \JText::_('RSSMARQUEE_ERR2');
        }
        
        if (empty($rssDoc))
        {
            return \JText::_('RSSMARQUEE_ERR3');
        }

        if ($rssDoc)
        {
            return $rssDoc;
        }
    }
}
<?php
/**
 * RSS Marquee
 *
 * @package     RSS Marquee
 * @subpackage  mod_rss_title_slider
 * @version       4.0
 * @author        Gopi Ramasamy
 * @copyright   Copyright (C) 2010 - 2021 www.gopiplus.com. All rights reserved.
 * @license     GNU General Public License version 2 or later; see LICENSE.txt
 *
 * http://www.gopiplus.com/extensions/2012/03/scrolling-rss-marquee-joomla-module/
 */

defined('_JEXEC') or die;

use Joomla\CMS\Helper\ModuleHelper;
use Joomla\Module\RssMarquee\Site\Helper\RssMarqueeHelper;

$feed = RssMarqueeHelper::getFeed($params);

require ModuleHelper::getLayoutPath('mod_rss_marquee', $params->get('layout', 'default'));
    {
        $path = JPATH_BASE . '/modules/' . $this->module->module . '/' . $this->module->module . '.php';
 
        if (!is_file($path)) {
            return;
        }
 
        $this->loadLanguage();
 
        // Execute the layout without the module context
        $loader = static function ($path, array $displayData) {
            // If $displayData doesn't exist in extracted data, unset the variable.
            if (!\array_key_exists('displayData', $displayData)) {
                extract($displayData);
                unset($displayData);
            } else {
                extract($displayData);
            }
 
            include $path;
        };
 
        $loader($path, $this->getLayoutData());
    }
}
 
Arguments
  1. "/var/www/vhosts/oghf.org.uk/httpdocs/modules/mod_rss_marquee/mod_rss_marquee.php"
    
        if (!is_file($path)) {
            return;
        }
 
        $this->loadLanguage();
 
        // Execute the layout without the module context
        $loader = static function ($path, array $displayData) {
            // If $displayData doesn't exist in extracted data, unset the variable.
            if (!\array_key_exists('displayData', $displayData)) {
                extract($displayData);
                unset($displayData);
            } else {
                extract($displayData);
            }
 
            include $path;
        };
 
        $loader($path, $this->getLayoutData());
    }
}
 
            Profiler::getInstance('Application')->mark('beforeRenderRawModule ' . $module->module . ' (' . $module->title . ')');
        }
 
        $app = Factory::getApplication();
 
        // Record the scope.
        $scope = $app->scope;
 
        // Set scope to component name
        $app->scope = $module->module;
 
        // Get module path
        $module->module = preg_replace('/[^A-Z0-9_\.-]/i', '', $module->module);
 
        $dispatcher = $app->bootModule($module->module, $app->getName())->getDispatcher($module, $app);
 
        // Check if we have a dispatcher
        if ($dispatcher) {
            ob_start();
            $dispatcher->dispatch();
            $module->content = ob_get_clean();
        }
 
        // Add the flag that the module content has been rendered
        $module->contentRendered = true;
 
        // Revert the scope
        $app->scope = $scope;
 
        if (JDEBUG) {
            Profiler::getInstance('Application')->mark('afterRenderRawModule ' . $module->module . ' (' . $module->title . ')');
        }
 
        return $module->content;
    }
 
    /**
     * Get the path to a layout for a module
     *
     * @param   string  $module  The name of the module
        $app = Factory::getApplication();
 
        // Check that $module is a valid module object
        if (!\is_object($module) || !isset($module->module) || !isset($module->params)) {
            if (JDEBUG) {
                Log::addLogger(['text_file' => 'jmodulehelper.log.php'], Log::ALL, ['modulehelper']);
                $app->getLogger()->debug(
                    __METHOD__ . '() - The $module parameter should be a module object.',
                    ['category' => 'modulehelper']
                );
            }
 
            return '';
        }
 
        // Get module parameters
        $params = new Registry($module->params);
 
        // Render the module content
        static::renderRawModule($module, $params, $attribs);
 
        // Return early if only the content is required
        if (!empty($attribs['contentOnly'])) {
            return $module->content;
        }
 
        if (JDEBUG) {
            Profiler::getInstance('Application')->mark('beforeRenderModule ' . $module->module . ' (' . $module->title . ')');
        }
 
        // Record the scope.
        $scope = $app->scope;
 
        // Set scope to component name
        $app->scope = $module->module;
 
        // Get the template
        $template = $app->getTemplate();
 
        // Check if the current module has a style param to override template module style
        // Set cachemode parameter or use JModuleHelper::moduleCache from within the module instead
        $cachemode = $params->get('cachemode', 'static');
 
        if ($params->get('cache', 0) == 1 && Factory::getApplication()->get('caching') >= 1 && $cachemode !== 'id' && $cachemode !== 'safeuri') {
            // Default to itemid creating method and workarounds on
            $cacheparams               = new \stdClass();
            $cacheparams->cachemode    = $cachemode;
            $cacheparams->class        = ModuleHelper::class;
            $cacheparams->method       = 'renderModule';
            $cacheparams->methodparams = [$module, $attribs];
            $cacheparams->cachesuffix  = $attribs['contentOnly'] ?? false;
 
            // It need to be done here because the cache controller does not keep reference to the module object
            $module->content         = ModuleHelper::moduleCache($module, $params, $cacheparams);
            $module->contentRendered = true;
 
            return $module->content;
        }
 
        return ModuleHelper::renderModule($module, $attribs);
    }
}
 
    {
        /** @var CMSApplication $application */
        $application = Factory::getApplication();
 
        $module = is_object($id) ? $id : $this->getModule($id);
 
        // Make sure that module really exists.
        if (!is_object($module)) {
            return '';
        }
 
        if (empty($module->contentRendered)) {
            $document = $application->getDocument();
            if (!$document instanceof HtmlDocument) {
                return '';
            }
 
            $renderer = $document->loadRenderer('module');
 
            $html = trim($renderer->render($module, $attribs));
        } else {
            $html = trim($module->content);
        }
 
        // Add frontend editing feature as it has only been defined for module positions.
        $user = $application->getIdentity();
 
        $frontEditing = ($application->isClient('site') && $application->get('frontediting', 1) && $user && !$user->guest);
        $menusEditing = ($application->get('frontediting', 1) == 2) && $user && $user->authorise('core.edit', 'com_menus');
 
        $isGantry = \strpos($module->module, 'gantry5') !== false;
        if (!$isGantry && $frontEditing && $html && $user && $user->authorise('module.edit.frontend', 'com_modules.module.' . $module->id)) {
            $displayData = [
                'moduleHtml' => &$html,
                'module' => $module,
                'position' => isset($attribs['position']) ? $attribs['position'] : $module->position,
                'menusediting' => $menusEditing
            ];
            LayoutHelper::render('joomla.edit.frontediting_modules', $displayData);
        }
            }
 
            throw new RuntimeError(sprintf('Neither the property "%1$s" nor one of the methods "%1$s()", "get%1$s()"/"is%1$s()" or "__call()" exist and have public access in class "%2$s".', $item, $class), -1, $this->getSourceContext());
        }
 
        if ($isDefinedTest) {
            return true;
        }
 
        if ($this->env->hasExtension('\Twig\Extension\SandboxExtension')) {
            $this->env->getExtension('\Twig\Extension\SandboxExtension')->checkMethodAllowed($object, $method);
        }
 
        // Some objects throw exceptions when they have __call, and the method we try
        // to call is not supported. If ignoreStrictCheck is true, we should return null.
        try {
            if (!$arguments) {
                $ret = $object->$method();
            } else {
                $ret = \call_user_func_array([$object, $method], $arguments);
            }
        } catch (\BadMethodCallException $e) {
            if ($call && ($ignoreStrictCheck || !$this->env->isStrictVariables())) {
                return;
            }
            throw $e;
        }
 
        // @deprecated in 1.28
        if ($object instanceof \Twig_TemplateInterface) {
            $self = $object->getTemplateName() === $this->getTemplateName();
            $message = sprintf('Calling "%s" on template "%s" from template "%s" is deprecated since version 1.28 and won\'t be supported anymore in 2.0.', $item, $object->getTemplateName(), $this->getTemplateName());
            if ('renderBlock' === $method || 'displayBlock' === $method) {
                $message .= sprintf(' Use block("%s"%s) instead).', $arguments[0], $self ? '' : ', template');
            } elseif ('hasBlock' === $method) {
                $message .= sprintf(' Use "block("%s"%s) is defined" instead).', $arguments[0], $self ? '' : ', template');
            } elseif ('render' === $method || 'display' === $method) {
                $message .= sprintf(' Use include("%s") instead).', $object->getTemplateName());
            }
            @trigger_error($message, \E_USER_DEPRECATED);
    }
 
    protected function doGetParent(array $context)
    {
        // line 1
        return "@nucleus/partials/particle.html.twig";
    }
 
    protected function doDisplay(array $context, array $blocks = [])
    {
        $this->parent = $this->loadTemplate("@nucleus/partials/particle.html.twig", "@particles/module.html.twig", 1);
        $this->parent->display($context, array_merge($this->blocks, $blocks));
    }
 
    // line 3
    public function block_particle($context, array $blocks = [])
    {
        // line 4
        echo "    ";
        echo $this->getAttribute($this->getAttribute(($context["gantry"] ?? null), "platform", []), "displayModule", [0 => $this->getAttribute(($context["particle"] ?? null), "module_id", []), 1 => ["style" => (($this->getAttribute(($context["particle"] ?? null), "chrome", [], "any", true, true)) ? (_twig_default_filter($this->getAttribute(($context["particle"] ?? null), "chrome", []), "gantry")) : ("gantry")), "position" => "particle"]], "method");
        echo "
";
    }
 
    public function getTemplateName()
    {
        return "@particles/module.html.twig";
    }
 
    public function isTraitable()
    {
        return false;
    }
 
    public function getDebugInfo()
    {
        return array (  42 => 4,  39 => 3,  29 => 1,);
    }
 
    /** @deprecated since 1.27 (to be removed in 2.0). Use getSourceContext() instead */
 
        if ($useBlocks && isset($blocks[$name])) {
            $template = $blocks[$name][0];
            $block = $blocks[$name][1];
        } elseif (isset($this->blocks[$name])) {
            $template = $this->blocks[$name][0];
            $block = $this->blocks[$name][1];
        } else {
            $template = null;
            $block = null;
        }
 
        // avoid RCEs when sandbox is enabled
        if (null !== $template && !$template instanceof self) {
            throw new \LogicException('A block must be a method on a \Twig\Template instance.');
        }
 
        if (null !== $template) {
            try {
                $template->$block($context, $blocks);
            } catch (Error $e) {
                if (!$e->getSourceContext()) {
                    $e->setSourceContext($template->getSourceContext());
                }
 
                // this is mostly useful for \Twig\Error\LoaderError exceptions
                // see \Twig\Error\LoaderError
                if (-1 === $e->getTemplateLine()) {
                    $e->guess();
                }
 
                throw $e;
            } catch (\Exception $e) {
                $e = new RuntimeError(sprintf('An exception has been thrown during the rendering of a template ("%s").', $e->getMessage()), -1, $template->getSourceContext(), $e);
                $e->guess();
 
                throw $e;
            }
        } elseif (false !== $parent = $this->getParent($context)) {
            $parent->displayBlock($name, $context, array_merge($this->blocks, $blocks), false);
        $assetFunction($content, $location, $priority);
        // line 9
        $assetFunction = $this->env->getFunction('parse_assets')->getCallable();
        $assetVariables = [];
        if ($assetVariables && !is_array($assetVariables)) {
            throw new UnexpectedValueException('{% scripts with x %}: x is not an array');
        }
        $location = "footer";
        if ($location && !is_string($location)) {
            throw new UnexpectedValueException('{% scripts in x %}: x is not a string');
        }
        $priority = isset($assetVariables['priority']) ? $assetVariables['priority'] : 0;
        ob_start();
        // line 10
        echo "    ";
        $this->displayBlock('javascript_footer', $context, $blocks);
        $content = ob_get_clean();
        $assetFunction($content, $location, $priority);
        // line 14
        $this->displayBlock('particle', $context, $blocks);
    }
 
    // line 2
    public function block_stylesheets($context, array $blocks = [])
    {
        // line 3
        echo "    ";
    }
 
    // line 5
    public function block_javascript($context, array $blocks = [])
    {
        // line 6
        echo "    ";
    }
 
    // line 10
    public function block_javascript_footer($context, array $blocks = [])
    {
        // line 11
            while (ob_get_level() > $level) {
                ob_end_clean();
            }
 
            throw $e;
        } catch (\Throwable $e) {
            while (ob_get_level() > $level) {
                ob_end_clean();
            }
 
            throw $e;
        }
 
        return ob_get_clean();
    }
 
    protected function displayWithErrorHandling(array $context, array $blocks = [])
    {
        try {
            $this->doDisplay($context, $blocks);
        } catch (Error $e) {
            if (!$e->getSourceContext()) {
                $e->setSourceContext($this->getSourceContext());
            }
 
            // this is mostly useful for \Twig\Error\LoaderError exceptions
            // see \Twig\Error\LoaderError
            if (-1 === $e->getTemplateLine()) {
                $e->guess();
            }
 
            throw $e;
        } catch (\Exception $e) {
            $e = new RuntimeError(sprintf('An exception has been thrown during the rendering of a template ("%s").', $e->getMessage()), -1, $this->getSourceContext(), $e);
            $e->guess();
 
            throw $e;
        }
    }
 
    {
        return $this;
    }
 
    /**
     * Returns all blocks.
     *
     * This method is for internal use only and should never be called
     * directly.
     *
     * @return array An array of blocks
     */
    public function getBlocks()
    {
        return $this->blocks;
    }
 
    public function display(array $context, array $blocks = [])
    {
        $this->displayWithErrorHandling($this->env->mergeGlobals($context), array_merge($this->blocks, $blocks));
    }
 
    public function render(array $context)
    {
        $level = ob_get_level();
        if ($this->env->isDebug()) {
            ob_start();
        } else {
            ob_start(function () { return ''; });
        }
        try {
            $this->display($context);
        } catch (\Exception $e) {
            while (ob_get_level() > $level) {
                ob_end_clean();
            }
 
            throw $e;
        } catch (\Throwable $e) {
            while (ob_get_level() > $level) {
{
    public function __construct(Environment $env)
    {
        parent::__construct($env);
 
        $this->blocks = [
            'particle' => [$this, 'block_particle'],
        ];
    }
 
    protected function doGetParent(array $context)
    {
        // line 1
        return "@nucleus/partials/particle.html.twig";
    }
 
    protected function doDisplay(array $context, array $blocks = [])
    {
        $this->parent = $this->loadTemplate("@nucleus/partials/particle.html.twig", "@particles/module.html.twig", 1);
        $this->parent->display($context, array_merge($this->blocks, $blocks));
    }
 
    // line 3
    public function block_particle($context, array $blocks = [])
    {
        // line 4
        echo "    ";
        echo $this->getAttribute($this->getAttribute(($context["gantry"] ?? null), "platform", []), "displayModule", [0 => $this->getAttribute(($context["particle"] ?? null), "module_id", []), 1 => ["style" => (($this->getAttribute(($context["particle"] ?? null), "chrome", [], "any", true, true)) ? (_twig_default_filter($this->getAttribute(($context["particle"] ?? null), "chrome", []), "gantry")) : ("gantry")), "position" => "particle"]], "method");
        echo "
";
    }
 
    public function getTemplateName()
    {
        return "@particles/module.html.twig";
    }
 
    public function isTraitable()
    {
        return false;
            while (ob_get_level() > $level) {
                ob_end_clean();
            }
 
            throw $e;
        } catch (\Throwable $e) {
            while (ob_get_level() > $level) {
                ob_end_clean();
            }
 
            throw $e;
        }
 
        return ob_get_clean();
    }
 
    protected function displayWithErrorHandling(array $context, array $blocks = [])
    {
        try {
            $this->doDisplay($context, $blocks);
        } catch (Error $e) {
            if (!$e->getSourceContext()) {
                $e->setSourceContext($this->getSourceContext());
            }
 
            // this is mostly useful for \Twig\Error\LoaderError exceptions
            // see \Twig\Error\LoaderError
            if (-1 === $e->getTemplateLine()) {
                $e->guess();
            }
 
            throw $e;
        } catch (\Exception $e) {
            $e = new RuntimeError(sprintf('An exception has been thrown during the rendering of a template ("%s").', $e->getMessage()), -1, $this->getSourceContext(), $e);
            $e->guess();
 
            throw $e;
        }
    }
 
    {
        return $this;
    }
 
    /**
     * Returns all blocks.
     *
     * This method is for internal use only and should never be called
     * directly.
     *
     * @return array An array of blocks
     */
    public function getBlocks()
    {
        return $this->blocks;
    }
 
    public function display(array $context, array $blocks = [])
    {
        $this->displayWithErrorHandling($this->env->mergeGlobals($context), array_merge($this->blocks, $blocks));
    }
 
    public function render(array $context)
    {
        $level = ob_get_level();
        if ($this->env->isDebug()) {
            ob_start();
        } else {
            ob_start(function () { return ''; });
        }
        try {
            $this->display($context);
        } catch (\Exception $e) {
            while (ob_get_level() > $level) {
                ob_end_clean();
            }
 
            throw $e;
        } catch (\Throwable $e) {
            while (ob_get_level() > $level) {
                echo "        ";
                $context["enabled"] = $this->getAttribute($this->getAttribute(($context["gantry"] ?? null), "config", []), "get", [0 => (("particles." . $this->getAttribute(($context["segment"] ?? null), "type", [])) . ".enabled"), 1 => 1], "method");
                // line 4
                echo "        ";
                $context["particle"] = $this->getAttribute($this->getAttribute(($context["gantry"] ?? null), "config", []), "getJoined", [0 => ("particles." . $this->getAttribute(($context["segment"] ?? null), "type", [])), 1 => $this->getAttribute(($context["segment"] ?? null), "attributes", [])], "method");
                // line 5
                echo "    ";
            }
            // line 6
            echo "
    ";
            // line 7
            ob_start();
            // line 8
            echo "        ";
            if ((($context["enabled"] ?? null) && ((null === $this->getAttribute($this->getAttribute(($context["segment"] ?? null), "attributes", []), "enabled", [])) || $this->getAttribute($this->getAttribute(($context["segment"] ?? null), "attributes", []), "enabled", [])))) {
                // line 9
                echo "            ";
                $this->loadTemplate([0 => (("particles/" . (($this->getAttribute(($context["segment"] ?? null), "subtype", [], "any", true, true)) ? (_twig_default_filter($this->getAttribute(($context["segment"] ?? null), "subtype", []), "position")) : ("position"))) . ".html.twig"), 1 => (("@particles/" . (($this->getAttribute(                // line 10
($context["segment"] ?? null), "subtype", [], "any", true, true)) ? (_twig_default_filter($this->getAttribute(($context["segment"] ?? null), "subtype", []), "position")) : ("position"))) . ".html.twig")], "@nucleus/content/position.html.twig", 9)->display($context);
                // line 11
                echo "        ";
            }
            // line 12
            echo "    ";
            $context["html"] = ('' === $tmp = ob_get_clean()) ? '' : new Markup($tmp, $this->env->getCharset());
            // line 14
            if (twig_trim_filter(($context["html"] ?? null))) {
                // line 15
                echo "        ";
                if (($this->getAttribute(($context["gantry"] ?? null), "debug", []) && $this->getAttribute($this->getAttribute(($context["segment"] ?? null), "attributes", []), "key", []))) {
                    echo "<!-- START POSITION ";
                    echo twig_escape_filter($this->env, $this->getAttribute($this->getAttribute(($context["segment"] ?? null), "attributes", []), "key", []), "html", null, true);
                    echo " -->";
                }
                // line 16
                echo "
        <div class=\"g-content";
                // line 17
                (($this->getAttribute(($context["segment"] ?? null), "classes", [])) ? (print (twig_escape_filter($this->env, (" " . twig_escape_filter($this->env, twig_join_filter($this->getAttribute(($context["segment"] ?? null), "classes", []), " "))), "html", null, true))) : (print ("")));
            while (ob_get_level() > $level) {
                ob_end_clean();
            }
 
            throw $e;
        } catch (\Throwable $e) {
            while (ob_get_level() > $level) {
                ob_end_clean();
            }
 
            throw $e;
        }
 
        return ob_get_clean();
    }
 
    protected function displayWithErrorHandling(array $context, array $blocks = [])
    {
        try {
            $this->doDisplay($context, $blocks);
        } catch (Error $e) {
            if (!$e->getSourceContext()) {
                $e->setSourceContext($this->getSourceContext());
            }
 
            // this is mostly useful for \Twig\Error\LoaderError exceptions
            // see \Twig\Error\LoaderError
            if (-1 === $e->getTemplateLine()) {
                $e->guess();
            }
 
            throw $e;
        } catch (\Exception $e) {
            $e = new RuntimeError(sprintf('An exception has been thrown during the rendering of a template ("%s").', $e->getMessage()), -1, $this->getSourceContext(), $e);
            $e->guess();
 
            throw $e;
        }
    }
 
    {
        return $this;
    }
 
    /**
     * Returns all blocks.
     *
     * This method is for internal use only and should never be called
     * directly.
     *
     * @return array An array of blocks
     */
    public function getBlocks()
    {
        return $this->blocks;
    }
 
    public function display(array $context, array $blocks = [])
    {
        $this->displayWithErrorHandling($this->env->mergeGlobals($context), array_merge($this->blocks, $blocks));
    }
 
    public function render(array $context)
    {
        $level = ob_get_level();
        if ($this->env->isDebug()) {
            ob_start();
        } else {
            ob_start(function () { return ''; });
        }
        try {
            $this->display($context);
        } catch (\Exception $e) {
            while (ob_get_level() > $level) {
                ob_end_clean();
            }
 
            throw $e;
        } catch (\Throwable $e) {
            while (ob_get_level() > $level) {
            if (is_array($context['_seq']) || (is_object($context['_seq']) && $context['_seq'] instanceof \Countable)) {
                $length = count($context['_seq']);
                $context['loop']['revindex0'] = $length - 1;
                $context['loop']['revindex'] = $length;
                $context['loop']['length'] = $length;
                $context['loop']['last'] = 1 === $length;
            }
            foreach ($context['_seq'] as $context["_key"] => $context["segment"]) {
                // line 10
                echo "            ";
                if ($this->getAttribute($context["segment"], "content", [])) {
                    // line 11
                    echo "                ";
                    echo $this->getAttribute($context["segment"], "content", []);
                    echo "
            ";
                } else {
                    // line 13
                    echo "                ";
                    $this->loadTemplate([0 => (("@nucleus/content/" . $this->getAttribute($context["segment"], "type", [])) . ".html.twig"), 1 => (("@nucleus/layout/" . $this->getAttribute($context["segment"], "type", [])) . ".html.twig")], "@nucleus/layout/block.html.twig", 13)->display(twig_array_merge($context, ["segments" => $this->getAttribute($context["segment"], "children", [])]));
                    // line 14
                    echo "            ";
                }
                // line 15
                echo "        ";
                ++$context['loop']['index0'];
                ++$context['loop']['index'];
                $context['loop']['first'] = false;
                if (isset($context['loop']['length'])) {
                    --$context['loop']['revindex0'];
                    --$context['loop']['revindex'];
                    $context['loop']['last'] = 0 === $context['loop']['revindex0'];
                }
            }
            $_parent = $context['_parent'];
            unset($context['_seq'], $context['_iterated'], $context['_key'], $context['segment'], $context['_parent'], $context['loop']);
            $context = array_intersect_key($context, $_parent) + $_parent;
            // line 16
            echo "    ";
        }
            while (ob_get_level() > $level) {
                ob_end_clean();
            }
 
            throw $e;
        } catch (\Throwable $e) {
            while (ob_get_level() > $level) {
                ob_end_clean();
            }
 
            throw $e;
        }
 
        return ob_get_clean();
    }
 
    protected function displayWithErrorHandling(array $context, array $blocks = [])
    {
        try {
            $this->doDisplay($context, $blocks);
        } catch (Error $e) {
            if (!$e->getSourceContext()) {
                $e->setSourceContext($this->getSourceContext());
            }
 
            // this is mostly useful for \Twig\Error\LoaderError exceptions
            // see \Twig\Error\LoaderError
            if (-1 === $e->getTemplateLine()) {
                $e->guess();
            }
 
            throw $e;
        } catch (\Exception $e) {
            $e = new RuntimeError(sprintf('An exception has been thrown during the rendering of a template ("%s").', $e->getMessage()), -1, $this->getSourceContext(), $e);
            $e->guess();
 
            throw $e;
        }
    }
 
    {
        return $this;
    }
 
    /**
     * Returns all blocks.
     *
     * This method is for internal use only and should never be called
     * directly.
     *
     * @return array An array of blocks
     */
    public function getBlocks()
    {
        return $this->blocks;
    }
 
    public function display(array $context, array $blocks = [])
    {
        $this->displayWithErrorHandling($this->env->mergeGlobals($context), array_merge($this->blocks, $blocks));
    }
 
    public function render(array $context)
    {
        $level = ob_get_level();
        if ($this->env->isDebug()) {
            ob_start();
        } else {
            ob_start(function () { return ''; });
        }
        try {
            $this->display($context);
        } catch (\Exception $e) {
            while (ob_get_level() > $level) {
                ob_end_clean();
            }
 
            throw $e;
        } catch (\Throwable $e) {
            while (ob_get_level() > $level) {
            echo "        ";
            $context['_parent'] = $context;
            $context['_seq'] = twig_ensure_traversable(($context["segments"] ?? null));
            $context['loop'] = [
              'parent' => $context['_parent'],
              'index0' => 0,
              'index'  => 1,
              'first'  => true,
            ];
            if (is_array($context['_seq']) || (is_object($context['_seq']) && $context['_seq'] instanceof \Countable)) {
                $length = count($context['_seq']);
                $context['loop']['revindex0'] = $length - 1;
                $context['loop']['revindex'] = $length;
                $context['loop']['length'] = $length;
                $context['loop']['last'] = 1 === $length;
            }
            foreach ($context['_seq'] as $context["_key"] => $context["segment"]) {
                // line 7
                echo "            ";
                $this->loadTemplate((("@nucleus/layout/" . $this->getAttribute($context["segment"], "type", [])) . ".html.twig"), "@nucleus/layout/grid.html.twig", 7)->display(twig_array_merge($context, ["segments" => $this->getAttribute($context["segment"], "children", [])]));
                // line 8
                echo "        ";
                ++$context['loop']['index0'];
                ++$context['loop']['index'];
                $context['loop']['first'] = false;
                if (isset($context['loop']['length'])) {
                    --$context['loop']['revindex0'];
                    --$context['loop']['revindex'];
                    $context['loop']['last'] = 0 === $context['loop']['revindex0'];
                }
            }
            $_parent = $context['_parent'];
            unset($context['_seq'], $context['_iterated'], $context['_key'], $context['segment'], $context['_parent'], $context['loop']);
            $context = array_intersect_key($context, $_parent) + $_parent;
            // line 9
            echo "    ";
        }
        $context["html"] = ('' === $tmp = ob_get_clean()) ? '' : new Markup($tmp, $this->env->getCharset());
        // line 12
        if (twig_trim_filter(($context["html"] ?? null))) {
            while (ob_get_level() > $level) {
                ob_end_clean();
            }
 
            throw $e;
        } catch (\Throwable $e) {
            while (ob_get_level() > $level) {
                ob_end_clean();
            }
 
            throw $e;
        }
 
        return ob_get_clean();
    }
 
    protected function displayWithErrorHandling(array $context, array $blocks = [])
    {
        try {
            $this->doDisplay($context, $blocks);
        } catch (Error $e) {
            if (!$e->getSourceContext()) {
                $e->setSourceContext($this->getSourceContext());
            }
 
            // this is mostly useful for \Twig\Error\LoaderError exceptions
            // see \Twig\Error\LoaderError
            if (-1 === $e->getTemplateLine()) {
                $e->guess();
            }
 
            throw $e;
        } catch (\Exception $e) {
            $e = new RuntimeError(sprintf('An exception has been thrown during the rendering of a template ("%s").', $e->getMessage()), -1, $this->getSourceContext(), $e);
            $e->guess();
 
            throw $e;
        }
    }
 
    {
        return $this;
    }
 
    /**
     * Returns all blocks.
     *
     * This method is for internal use only and should never be called
     * directly.
     *
     * @return array An array of blocks
     */
    public function getBlocks()
    {
        return $this->blocks;
    }
 
    public function display(array $context, array $blocks = [])
    {
        $this->displayWithErrorHandling($this->env->mergeGlobals($context), array_merge($this->blocks, $blocks));
    }
 
    public function render(array $context)
    {
        $level = ob_get_level();
        if ($this->env->isDebug()) {
            ob_start();
        } else {
            ob_start(function () { return ''; });
        }
        try {
            $this->display($context);
        } catch (\Exception $e) {
            while (ob_get_level() > $level) {
                ob_end_clean();
            }
 
            throw $e;
        } catch (\Throwable $e) {
            while (ob_get_level() > $level) {
            echo "        ";
            $context['_parent'] = $context;
            $context['_seq'] = twig_ensure_traversable(($context["segments"] ?? null));
            $context['loop'] = [
              'parent' => $context['_parent'],
              'index0' => 0,
              'index'  => 1,
              'first'  => true,
            ];
            if (is_array($context['_seq']) || (is_object($context['_seq']) && $context['_seq'] instanceof \Countable)) {
                $length = count($context['_seq']);
                $context['loop']['revindex0'] = $length - 1;
                $context['loop']['revindex'] = $length;
                $context['loop']['length'] = $length;
                $context['loop']['last'] = 1 === $length;
            }
            foreach ($context['_seq'] as $context["_key"] => $context["segment"]) {
                // line 14
                echo "            ";
                $this->loadTemplate((("@nucleus/layout/" . $this->getAttribute($context["segment"], "type", [])) . ".html.twig"), "@nucleus/layout/section.html.twig", 14)->display(twig_array_merge($context, ["segments" => $this->getAttribute($context["segment"], "children", [])]));
                // line 15
                echo "        ";
                ++$context['loop']['index0'];
                ++$context['loop']['index'];
                $context['loop']['first'] = false;
                if (isset($context['loop']['length'])) {
                    --$context['loop']['revindex0'];
                    --$context['loop']['revindex'];
                    $context['loop']['last'] = 0 === $context['loop']['revindex0'];
                }
            }
            $_parent = $context['_parent'];
            unset($context['_seq'], $context['_iterated'], $context['_key'], $context['segment'], $context['_parent'], $context['loop']);
            $context = array_intersect_key($context, $_parent) + $_parent;
            // line 16
            echo "    ";
        }
        $context["html"] = ('' === $tmp = ob_get_clean()) ? '' : new Markup($tmp, $this->env->getCharset());
        // line 19
        if (($this->getAttribute($this->getAttribute(($context["segment"] ?? null), "attributes", []), "sticky", []) || twig_trim_filter(($context["html"] ?? null)))) {
            while (ob_get_level() > $level) {
                ob_end_clean();
            }
 
            throw $e;
        } catch (\Throwable $e) {
            while (ob_get_level() > $level) {
                ob_end_clean();
            }
 
            throw $e;
        }
 
        return ob_get_clean();
    }
 
    protected function displayWithErrorHandling(array $context, array $blocks = [])
    {
        try {
            $this->doDisplay($context, $blocks);
        } catch (Error $e) {
            if (!$e->getSourceContext()) {
                $e->setSourceContext($this->getSourceContext());
            }
 
            // this is mostly useful for \Twig\Error\LoaderError exceptions
            // see \Twig\Error\LoaderError
            if (-1 === $e->getTemplateLine()) {
                $e->guess();
            }
 
            throw $e;
        } catch (\Exception $e) {
            $e = new RuntimeError(sprintf('An exception has been thrown during the rendering of a template ("%s").', $e->getMessage()), -1, $this->getSourceContext(), $e);
            $e->guess();
 
            throw $e;
        }
    }
 
    {
        return $this;
    }
 
    /**
     * Returns all blocks.
     *
     * This method is for internal use only and should never be called
     * directly.
     *
     * @return array An array of blocks
     */
    public function getBlocks()
    {
        return $this->blocks;
    }
 
    public function display(array $context, array $blocks = [])
    {
        $this->displayWithErrorHandling($this->env->mergeGlobals($context), array_merge($this->blocks, $blocks));
    }
 
    public function render(array $context)
    {
        $level = ob_get_level();
        if ($this->env->isDebug()) {
            ob_start();
        } else {
            ob_start(function () { return ''; });
        }
        try {
            $this->display($context);
        } catch (\Exception $e) {
            while (ob_get_level() > $level) {
                ob_end_clean();
            }
 
            throw $e;
        } catch (\Throwable $e) {
            while (ob_get_level() > $level) {
        $context['loop'] = [
          'parent' => $context['_parent'],
          'index0' => 0,
          'index'  => 1,
          'first'  => true,
        ];
        if (is_array($context['_seq']) || (is_object($context['_seq']) && $context['_seq'] instanceof \Countable)) {
            $length = count($context['_seq']);
            $context['loop']['revindex0'] = $length - 1;
            $context['loop']['revindex'] = $length;
            $context['loop']['length'] = $length;
            $context['loop']['last'] = 1 === $length;
        }
        foreach ($context['_seq'] as $context["_key"] => $context["segment"]) {
            // line 34
            echo "        ";
            if (($this->getAttribute($context["segment"], "type", []) != "offcanvas")) {
                // line 35
                echo "            ";
                $this->loadTemplate((("@nucleus/layout/" . $this->getAttribute($context["segment"], "type", [])) . ".html.twig"), "@nucleus/page.html.twig", 35)->display(twig_array_merge($context, ["segments" => $this->getAttribute($context["segment"], "children", [])]));
                // line 36
                echo "        ";
            }
            // line 37
            echo "    ";
            ++$context['loop']['index0'];
            ++$context['loop']['index'];
            $context['loop']['first'] = false;
            if (isset($context['loop']['length'])) {
                --$context['loop']['revindex0'];
                --$context['loop']['revindex'];
                $context['loop']['last'] = 0 === $context['loop']['revindex0'];
            }
        }
        $_parent = $context['_parent'];
        unset($context['_seq'], $context['_iterated'], $context['_key'], $context['segment'], $context['_parent'], $context['loop']);
        $context = array_intersect_key($context, $_parent) + $_parent;
        // line 38
        echo "    ";
    }
 
        if ($useBlocks && isset($blocks[$name])) {
            $template = $blocks[$name][0];
            $block = $blocks[$name][1];
        } elseif (isset($this->blocks[$name])) {
            $template = $this->blocks[$name][0];
            $block = $this->blocks[$name][1];
        } else {
            $template = null;
            $block = null;
        }
 
        // avoid RCEs when sandbox is enabled
        if (null !== $template && !$template instanceof self) {
            throw new \LogicException('A block must be a method on a \Twig\Template instance.');
        }
 
        if (null !== $template) {
            try {
                $template->$block($context, $blocks);
            } catch (Error $e) {
                if (!$e->getSourceContext()) {
                    $e->setSourceContext($template->getSourceContext());
                }
 
                // this is mostly useful for \Twig\Error\LoaderError exceptions
                // see \Twig\Error\LoaderError
                if (-1 === $e->getTemplateLine()) {
                    $e->guess();
                }
 
                throw $e;
            } catch (\Exception $e) {
                $e = new RuntimeError(sprintf('An exception has been thrown during the rendering of a template ("%s").', $e->getMessage()), -1, $template->getSourceContext(), $e);
                $e->guess();
 
                throw $e;
            }
        } elseif (false !== $parent = $this->getParent($context)) {
            $parent->displayBlock($name, $context, array_merge($this->blocks, $blocks), false);
            }
        }
        $_parent = $context['_parent'];
        unset($context['_seq'], $context['_iterated'], $context['_key'], $context['segment'], $context['_parent'], $context['loop']);
        $context = array_intersect_key($context, $_parent) + $_parent;
        // line 20
        ob_start();
        // line 21
        echo "    ";
        $this->displayBlock('page_offcanvas', $context, $blocks);
        $context["page_offcanvas"] = ('' === $tmp = ob_get_clean()) ? '' : new Markup($tmp, $this->env->getCharset());
        // line 28
        $context["page_offcanvas"] = ((twig_trim_filter(($context["page_offcanvas"] ?? null))) ? (twig_trim_filter(($context["page_offcanvas"] ?? null))) : (""));
        // line 29
        $context["offcanvas_position"] = ((($context["page_offcanvas"] ?? null)) ? ((($this->getAttribute($this->getAttribute(($context["offcanvas"] ?? null), "attributes", [], "any", false, true), "position", [], "any", true, true)) ? (_twig_default_filter($this->getAttribute($this->getAttribute(($context["offcanvas"] ?? null), "attributes", [], "any", false, true), "position", []), "g-offcanvas-left")) : ("g-offcanvas-left"))) : (""));
        // line 31
        ob_start();
        // line 32
        echo "    ";
        $this->displayBlock('page_layout', $context, $blocks);
        $context["page_layout"] = ('' === $tmp = ob_get_clean()) ? '' : new Markup($tmp, $this->env->getCharset());
        // line 41
        ob_start();
        // line 42
        echo "    ";
        $this->displayBlock('page_top', $context, $blocks);
        // line 44
        echo "    ";
        echo twig_join_filter($this->getAttribute($this->getAttribute(($context["gantry"] ?? null), "document", []), "getHtml", [0 => "top"], "method"), "
    ");
        echo "
";
        $context["page_top"] = ('' === $tmp = ob_get_clean()) ? '' : new Markup($tmp, $this->env->getCharset());
        // line 47
        ob_start();
        // line 48
        echo "    ";
        $this->displayBlock('page_bottom', $context, $blocks);
        // line 50
        echo "    ";
            while (ob_get_level() > $level) {
                ob_end_clean();
            }
 
            throw $e;
        } catch (\Throwable $e) {
            while (ob_get_level() > $level) {
                ob_end_clean();
            }
 
            throw $e;
        }
 
        return ob_get_clean();
    }
 
    protected function displayWithErrorHandling(array $context, array $blocks = [])
    {
        try {
            $this->doDisplay($context, $blocks);
        } catch (Error $e) {
            if (!$e->getSourceContext()) {
                $e->setSourceContext($this->getSourceContext());
            }
 
            // this is mostly useful for \Twig\Error\LoaderError exceptions
            // see \Twig\Error\LoaderError
            if (-1 === $e->getTemplateLine()) {
                $e->guess();
            }
 
            throw $e;
        } catch (\Exception $e) {
            $e = new RuntimeError(sprintf('An exception has been thrown during the rendering of a template ("%s").', $e->getMessage()), -1, $this->getSourceContext(), $e);
            $e->guess();
 
            throw $e;
        }
    }
 
    {
        return $this;
    }
 
    /**
     * Returns all blocks.
     *
     * This method is for internal use only and should never be called
     * directly.
     *
     * @return array An array of blocks
     */
    public function getBlocks()
    {
        return $this->blocks;
    }
 
    public function display(array $context, array $blocks = [])
    {
        $this->displayWithErrorHandling($this->env->mergeGlobals($context), array_merge($this->blocks, $blocks));
    }
 
    public function render(array $context)
    {
        $level = ob_get_level();
        if ($this->env->isDebug()) {
            ob_start();
        } else {
            ob_start(function () { return ''; });
        }
        try {
            $this->display($context);
        } catch (\Exception $e) {
            while (ob_get_level() > $level) {
                ob_end_clean();
            }
 
            throw $e;
        } catch (\Throwable $e) {
            while (ob_get_level() > $level) {
{
    public function __construct(Environment $env)
    {
        parent::__construct($env);
 
        $this->blocks = [
            'page_footer' => [$this, 'block_page_footer'],
        ];
    }
 
    protected function doGetParent(array $context)
    {
        // line 1
        return "@nucleus/page.html.twig";
    }
 
    protected function doDisplay(array $context, array $blocks = [])
    {
        $this->parent = $this->loadTemplate("@nucleus/page.html.twig", "partials/page.html.twig", 1);
        $this->parent->display($context, array_merge($this->blocks, $blocks));
    }
 
    // line 3
    public function block_page_footer($context, array $blocks = [])
    {
        // line 4
        echo "    ";
        $this->displayParentBlock("page_footer", $context, $blocks);
        echo "
    <jdoc:include type=\"modules\" name=\"debug\" />
";
    }
 
    public function getTemplateName()
    {
        return "partials/page.html.twig";
    }
 
    public function isTraitable()
    {
    public function __construct(Environment $env)
    {
        parent::__construct($env);
 
        $this->blocks = [
            'page_head' => [$this, 'block_page_head'],
            'content' => [$this, 'block_content'],
        ];
    }
 
    protected function doGetParent(array $context)
    {
        // line 1
        return "partials/page.html.twig";
    }
 
    protected function doDisplay(array $context, array $blocks = [])
    {
        $this->parent = $this->loadTemplate("partials/page.html.twig", "error.html.twig", 1);
        $this->parent->display($context, array_merge($this->blocks, $blocks));
    }
 
    // line 3
    public function block_page_head($context, array $blocks = [])
    {
        // line 4
        $this->loadTemplate("partials/error_head.html.twig", "error.html.twig", 4)->display($context);
    }
 
    // line 7
    public function block_content($context, array $blocks = [])
    {
        // line 8
        echo "    <h1>";
        echo twig_escape_filter($this->env, ((array_key_exists("errorcode", $context)) ? (_twig_default_filter(($context["errorcode"] ?? null), 500)) : (500)), "html", null, true);
        echo " ";
        echo twig_escape_filter($this->env, ((array_key_exists("error", $context)) ? (_twig_default_filter(($context["error"] ?? null), "Unknown Error")) : ("Unknown Error")), "html", null, true);
        echo "</h1>
    ";
        // line 9
    public function getBlocks()
    {
        return $this->blocks;
    }
 
    public function display(array $context, array $blocks = [])
    {
        $this->displayWithErrorHandling($this->env->mergeGlobals($context), array_merge($this->blocks, $blocks));
    }
 
    public function render(array $context)
    {
        $level = ob_get_level();
        if ($this->env->isDebug()) {
            ob_start();
        } else {
            ob_start(function () { return ''; });
        }
        try {
            $this->display($context);
        } catch (\Exception $e) {
            while (ob_get_level() > $level) {
                ob_end_clean();
            }
 
            throw $e;
        } catch (\Throwable $e) {
            while (ob_get_level() > $level) {
                ob_end_clean();
            }
 
            throw $e;
        }
 
        return ob_get_clean();
    }
 
    protected function displayWithErrorHandling(array $context, array $blocks = [])
    {
        try {
     * @internal
     */
    public function __construct(Environment $env, Template $template)
    {
        $this->env = $env;
        $this->template = $template;
    }
 
    /**
     * Renders the template.
     *
     * @param array $context An array of parameters to pass to the template
     *
     * @return string The rendered template
     */
    public function render($context = [])
    {
        // using func_get_args() allows to not expose the blocks argument
        // as it should only be used by internal code
        return $this->template->render($context, \func_num_args() > 1 ? func_get_arg(1) : []);
    }
 
    /**
     * Displays the template.
     *
     * @param array $context An array of parameters to pass to the template
     */
    public function display($context = [])
    {
        // using func_get_args() allows to not expose the blocks argument
        // as it should only be used by internal code
        $this->template->display($context, \func_num_args() > 1 ? func_get_arg(1) : []);
    }
 
    /**
     * Checks if a block is defined.
     *
     * @param string $name    The block name
     * @param array  $context An array of parameters to pass to the template
     *
        @trigger_error(sprintf('The %s method is deprecated since version 1.22 and will be removed in Twig 2.0.', __METHOD__), \E_USER_DEPRECATED);
 
        return $this->templateClassPrefix;
    }
 
    /**
     * Renders a template.
     *
     * @param string|TemplateWrapper $name    The template name
     * @param array                  $context An array of parameters to pass to the template
     *
     * @return string The rendered template
     *
     * @throws LoaderError  When the template cannot be found
     * @throws SyntaxError  When an error occurred during compilation
     * @throws RuntimeError When an error occurred during rendering
     */
    public function render($name, array $context = [])
    {
        return $this->load($name)->render($context);
    }
 
    /**
     * Displays a template.
     *
     * @param string|TemplateWrapper $name    The template name
     * @param array                  $context An array of parameters to pass to the template
     *
     * @throws LoaderError  When the template cannot be found
     * @throws SyntaxError  When an error occurred during compilation
     * @throws RuntimeError When an error occurred during rendering
     */
    public function display($name, array $context = [])
    {
        $this->load($name)->display($context);
    }
 
    /**
     * Loads a template.
     *
 
            $this->renderer = $this->extendTwig($twig, $loader);
        }
 
        return $this->renderer;
    }
 
    /**
     * Render a template file by using given context.
     *
     * @param string $file
     * @param array $context
     * @return string
     */
    public function render($file, array $context = [])
    {
        // Include Gantry specific things to the context.
        $context = $this->getContext($context);
 
        return $this->renderer()->render($file, $context);
    }
 
    /**
     * Compile and render twig string.
     *
     * @param string $string
     * @param array $context
     * @return string
     */
    public function compile($string, array $context = [])
    {
        $renderer = $this->renderer();
        $template = $renderer->createTemplate($string);
 
        // Include Gantry specific things to the context.
        $context = $this->getContext($context);
 
        return $template->render($context);
    }
 
$gantry = include $className;
 
/** @var Theme $theme */
$theme = $gantry['theme'];
$app = Factory::getApplication();
 
$context = array(
    'errorcode' => isset($this->error) ? $this->error->getCode() : null,
    'error' => isset($this->error) ? $this->error->getMessage() : null,
    'debug' => $app->get('debug_lang', '0') == '1' || $app->get('debug', '0') == '1',
    'backtrace' => $this->debug ? $this->renderBacktrace() : null
);
 
// Reset used outline configuration.
unset($gantry['configuration']);
 
// Render the page.
echo $theme
    ->setLayout('_error', true)
    ->render('error.html.twig', $context);
 
     *
     * @param   string  $directory  The name of the template
     * @param   string  $filename   The actual filename
     *
     * @return  string  The contents of the template
     *
     * @since   1.7.0
     */
    protected function _loadTemplate($directory, $filename)
    {
        $contents = '';
 
        // Check to see if we have a valid template file
        if (is_file($directory . '/' . $filename)) {
            // Store the file path
            $this->_file = $directory . '/' . $filename;
 
            // Get the file content
            ob_start();
            require $directory . '/' . $filename;
            $contents = ob_get_contents();
            ob_end_clean();
        }
 
        return $contents;
    }
 
    /**
     * Fetch the template, and initialise the params
     *
     * @param   array  $params  Parameters to determine the template
     *
     * @return  HtmlDocument instance of $this to allow chaining
     *
     * @since   1.7.0
     */
    protected function _fetchTemplate($params = [])
    {
        // Check
        $directory = $params['directory'] ?? 'templates';
Arguments
  1. "/var/www/vhosts/oghf.org.uk/httpdocs/templates/rt_horizon/error.php"
    
                }
            }
        }
 
        // Load the language file for the template
        $lang = CmsFactory::getLanguage();
 
        // 1.5 or core then 1.6
        $lang->load('tpl_' . $template, JPATH_BASE)
            || ($inherits !== '' && $lang->load('tpl_' . $inherits, JPATH_BASE))
            || $lang->load('tpl_' . $template, $directory . '/' . $template)
            || ($inherits !== '' && $lang->load('tpl_' . $inherits, $directory . '/' . $inherits));
 
        // Assign the variables
        $this->baseurl  = Uri::base(true);
        $this->params   = $params['params'] ?? new Registry();
        $this->template = $template;
 
        // Load
        $this->_template = $this->_loadTemplate($baseDir, $file);
 
        return $this;
    }
 
    /**
     * Parse a document template
     *
     * @return  HtmlDocument  instance of $this to allow chaining
     *
     * @since   1.7.0
     */
    protected function _parseTemplate()
    {
        $matches = [];
 
        if (preg_match_all('#<jdoc:include\ type="([^"]+)"(.*)\/>#iU', $this->_template, $matches)) {
            $messages            = [];
            $template_tags_first = [];
            $template_tags_last  = [];
 
        $name  = $options['name'] ?? '';
        $title = $options['title'] ?? '';
 
        parent::$_buffer[$type][$name][$title] = $content;
 
        return $this;
    }
 
    /**
     * Parses the template and populates the buffer
     *
     * @param   array  $params  Parameters for fetching the template
     *
     * @return  HtmlDocument instance of $this to allow chaining
     *
     * @since   1.7.0
     */
    public function parse($params = [])
    {
        return $this->_fetchTemplate($params)->_parseTemplate();
    }
 
    /**
     * Outputs the template to the browser.
     *
     * @param   boolean  $caching  If true, cache the output
     * @param   array    $params   Associative array of attributes
     *
     * @return  string The rendered data
     *
     * @since   1.7.0
     */
    public function render($caching = false, $params = [])
    {
        $this->_caching = $caching;
 
        if (empty($this->_template)) {
            $this->parse($params);
        }
 
    {
        return $this->_fetchTemplate($params)->_parseTemplate();
    }
 
    /**
     * Outputs the template to the browser.
     *
     * @param   boolean  $caching  If true, cache the output
     * @param   array    $params   Associative array of attributes
     *
     * @return  string The rendered data
     *
     * @since   1.7.0
     */
    public function render($caching = false, $params = [])
    {
        $this->_caching = $caching;
 
        if (empty($this->_template)) {
            $this->parse($params);
        }
 
        if (\array_key_exists('csp_nonce', $params) && $params['csp_nonce'] !== null) {
            $this->cspNonce = $params['csp_nonce'];
        }
 
        $data = $this->_renderTemplate();
        parent::render($caching, $params);
 
        return $data;
    }
 
    /**
     * Count the modules in the given position
     *
     * @param   string   $positionName     The position to use
     * @param   boolean  $withContentOnly  Count only a modules which actually has a content
     *
     * @return  integer  Number of modules found
     *
 
        if ($status < 400 || $status > 599) {
            $status = 500;
        }
 
        $errorReporting = CmsFactory::getApplication()->get('error_reporting');
 
        if ($errorReporting === "development" || $errorReporting === "maximum") {
            $status .= ' ' . str_replace("\n", ' ', $this->_error->getMessage());
        }
 
        CmsFactory::getApplication()->setHeader('status', $status);
 
        // Set variables
        $this->debug = $params['debug'] ?? false;
        $this->error = $this->_error;
 
        $params['file'] = 'error.php';
 
        return parent::render($cache, $params);
    }
 
    /**
     * Render the backtrace
     *
     * @return  string  The contents of the backtrace
     *
     * @since   1.7.0
     */
    public function renderBacktrace()
    {
        // If no error object is set return null
        if (!isset($this->_error)) {
            return;
        }
 
        // The back trace
        $backtrace = $this->_error->getTrace();
 
        // Add the position of the actual file
 
        // Push the error object into the document
        $this->getDocument()->setError($error);
 
        // Add registry file for the template asset
        $wa = $this->getDocument()->getWebAssetManager()->getRegistry();
 
        $wa->addTemplateRegistryFile($template->template, $app->getClientId());
 
        if (!empty($template->parent)) {
            $wa->addTemplateRegistryFile($template->parent, $app->getClientId());
        }
 
        if (ob_get_contents()) {
            ob_end_clean();
        }
 
        $this->getDocument()->setTitle(Text::_('Error') . ': ' . $error->getCode());
 
        return $this->getDocument()->render(
            false,
            [
                'template'         => $template->template,
                'directory'        => JPATH_THEMES,
                'debug'            => JDEBUG,
                'csp_nonce'        => $app->get('csp_nonce'),
                'templateInherits' => $template->parent,
                'params'           => $template->params,
            ]
        );
    }
}
 
             * Lastly, if all else fails, we default onto the HTML format to at least render something
             */
            if (Factory::$document) {
                $format = Factory::$document->getType();
            } else {
                $format = $app->getInput()->getString('format', 'html');
            }
 
            try {
                $renderer = AbstractRenderer::getRenderer($format);
            } catch (\InvalidArgumentException $e) {
                // Default to the HTML renderer
                $renderer = AbstractRenderer::getRenderer('html');
            }
 
            // Reset the document object in the factory, this gives us a clean slate and lets everything render properly
            Factory::$document = $renderer->getDocument();
            Factory::getApplication()->loadDocument(Factory::$document);
 
            $data = $renderer->render($error);
 
            // If nothing was rendered, just use the message from the Exception
            if (empty($data)) {
                $data = $error->getMessage();
            }
 
            if ($isCli) {
                echo $data;
            } else {
                /** @var CMSApplication $app */
 
                // Do not allow cache
                $app->allowCache(false);
 
                $app->setBody($data);
            }
 
            // This return is needed to ensure the test suite does not trigger the non-Exception handling below
            return;
        } catch (\Throwable $errorRendererError) {
            }
        }
 
        // Always return false, this will tell PHP to handle the error internally
        return false;
    }
 
    /**
     * Handles exceptions: logs errors and renders error page.
     *
     * @param   \Exception|\Throwable  $error  An Exception or Throwable (PHP 7+) object for which to render the error page.
     *
     * @return  void
     *
     * @since   3.10.0
     */
    public static function handleException(\Throwable $error)
    {
        static::logException($error);
        static::render($error);
    }
 
    /**
     * Render the error page based on an exception.
     *
     * @param   \Throwable  $error  An Exception or Throwable (PHP 7+) object for which to render the error page.
     *
     * @return  void
     *
     * @since   3.0
     */
    public static function render(\Throwable $error)
    {
        try {
            $app = Factory::getApplication();
 
            // Flag if we are on cli
            $isCli = $app->isClient('cli');
 
            // If site is offline and it's a 404 error, just go to index (to see offline message, instead of 404)
                $this->compress();
 
                // Trigger the onAfterCompress event.
                $this->triggerEvent('onAfterCompress');
            }
        } catch (\Throwable $throwable) {
            /** @var ErrorEvent $event */
            $event = AbstractEvent::create(
                'onError',
                [
                    'subject'     => $throwable,
                    'eventClass'  => ErrorEvent::class,
                    'application' => $this,
                ]
            );
 
            // Trigger the onError event.
            $this->triggerEvent('onError', $event);
 
            ExceptionHandler::handleException($event->getError());
        }
 
        // Trigger the onBeforeRespond event.
        $this->getDispatcher()->dispatch('onBeforeRespond');
 
        // Send the application response.
        $this->respond();
 
        // Trigger the onAfterRespond event.
        $this->getDispatcher()->dispatch('onAfterRespond');
    }
 
    /**
     * Check if the user is required to reset their password.
     *
     * If the user is required to reset their password will be redirected to the page that manage the password reset.
     *
     * @param   string  $option  The option that manage the password reset
     * @param   string  $view    The view that manage the password reset
     * @param   string  $layout  The layout of the view that manage the password reset
{% extends '@nucleus/partials/particle.html.twig' %}
 
{% block particle %}
    {{ gantry.platform.displayModule(particle.module_id, {'style': particle.chrome|default('gantry'), 'position': 'particle'})|raw }}
{% endblock %}
 
Arguments
  1. "An exception has been thrown during the rendering of a template ("String could not be parsed as XML")."
    
Exception message: An exception has been thrown during the rendering of a template ("String could not be parsed as XML").
    }
 
    /**
     * Method to parse the feed into a JFeed object.
     *
     * @return  Feed
     *
     * @since   3.1.4
     */
    public function parse()
    {
        $feed = new Feed();
 
        // Detect the feed version.
        $this->initialise();
 
        // Let's get this party started...
        do {
            // Expand the element for processing.
            $el = new \SimpleXMLElement($this->stream->readOuterXml());
 
            // Get the list of namespaces used within this element.
            $ns = $el->getNamespaces(true);
 
            // Get an array of available namespace objects for the element.
            $namespaces = [];
 
            foreach ($ns as $prefix => $uri) {
                // Ignore the empty namespace prefix.
                if (empty($prefix)) {
                    continue;
                }
 
                // Get the necessary namespace objects for the element.
                $namespace = $this->fetchNamespace($prefix);
 
                if ($namespace) {
                    $namespaces[] = $namespace;
                }
            }
Arguments
  1. "String could not be parsed as XML"
    
Exception message: String could not be parsed as XML
    }
 
    /**
     * Method to parse the feed into a JFeed object.
     *
     * @return  Feed
     *
     * @since   3.1.4
     */
    public function parse()
    {
        $feed = new Feed();
 
        // Detect the feed version.
        $this->initialise();
 
        // Let's get this party started...
        do {
            // Expand the element for processing.
            $el = new \SimpleXMLElement($this->stream->readOuterXml());
 
            // Get the list of namespaces used within this element.
            $ns = $el->getNamespaces(true);
 
            // Get an array of available namespace objects for the element.
            $namespaces = [];
 
            foreach ($ns as $prefix => $uri) {
                // Ignore the empty namespace prefix.
                if (empty($prefix)) {
                    continue;
                }
 
                // Get the necessary namespace objects for the element.
                $namespace = $this->fetchNamespace($prefix);
 
                if ($namespace) {
                    $namespaces[] = $namespace;
                }
            }
            if (!$reader->XML($response->body, null, LIBXML_NOERROR | LIBXML_ERR_NONE | LIBXML_NOWARNING)) {
                throw new \RuntimeException('Unable to parse the feed.');
            }
        }
 
        try {
            // Skip ahead to the root node.
            while ($reader->read()) {
                if ($reader->nodeType == \XMLReader::ELEMENT) {
                    break;
                }
            }
        } catch (\Exception $e) {
            throw new \RuntimeException('Error reading feed.', $e->getCode(), $e);
        }
 
        // Setup the appropriate feed parser for the feed.
        $parser = $this->_fetchFeedParser($reader->name, $reader);
 
        return $parser->parse();
    }
 
    /**
     * Method to register a FeedParser class for a given root tag name.
     *
     * @param   string   $tagName    The root tag name for which to register the parser class.
     * @param   string   $className  The FeedParser class name to register for a root tag name.
     * @param   boolean  $overwrite  True to overwrite the parser class if one is already registered.
     *
     * @return  FeedFactory
     *
     * @since   3.1.4
     * @throws  \InvalidArgumentException
     */
    public function registerParser($tagName, $className, $overwrite = false)
    {
        // Verify that the class exists.
        if (!class_exists($className)) {
            throw new \InvalidArgumentException('The feed parser class ' . $className . ' does not exist.');
        }
 
namespace Joomla\Module\RssMarquee\Site\Helper;

defined('_JEXEC') or die;

abstract class RssMarqueeHelper
{
    public static function getFeed(&$params)
    {
        $url = $params->get('marquee_rss');
        
        if($url == "")
        {
            return \JText::_('RSSMARQUEE_ERR1');
        }
        
        try
        {
            $feed   = new \JFeedFactory;
            $rssDoc = $feed->getFeed($url);
        }
        catch (Exception $e)
        {
            return \JText::_('RSSMARQUEE_ERR2');
        }
        
        if (empty($rssDoc))
        {
            return \JText::_('RSSMARQUEE_ERR3');
        }

        if ($rssDoc)
        {
            return $rssDoc;
        }
    }
}
<?php
/**
 * RSS Marquee
 *
 * @package     RSS Marquee
 * @subpackage  mod_rss_title_slider
 * @version       4.0
 * @author        Gopi Ramasamy
 * @copyright   Copyright (C) 2010 - 2021 www.gopiplus.com. All rights reserved.
 * @license     GNU General Public License version 2 or later; see LICENSE.txt
 *
 * http://www.gopiplus.com/extensions/2012/03/scrolling-rss-marquee-joomla-module/
 */

defined('_JEXEC') or die;

use Joomla\CMS\Helper\ModuleHelper;
use Joomla\Module\RssMarquee\Site\Helper\RssMarqueeHelper;

$feed = RssMarqueeHelper::getFeed($params);

require ModuleHelper::getLayoutPath('mod_rss_marquee', $params->get('layout', 'default'));
    {
        $path = JPATH_BASE . '/modules/' . $this->module->module . '/' . $this->module->module . '.php';
 
        if (!is_file($path)) {
            return;
        }
 
        $this->loadLanguage();
 
        // Execute the layout without the module context
        $loader = static function ($path, array $displayData) {
            // If $displayData doesn't exist in extracted data, unset the variable.
            if (!\array_key_exists('displayData', $displayData)) {
                extract($displayData);
                unset($displayData);
            } else {
                extract($displayData);
            }
 
            include $path;
        };
 
        $loader($path, $this->getLayoutData());
    }
}
 
Arguments
  1. "/var/www/vhosts/oghf.org.uk/httpdocs/modules/mod_rss_marquee/mod_rss_marquee.php"
    
        if (!is_file($path)) {
            return;
        }
 
        $this->loadLanguage();
 
        // Execute the layout without the module context
        $loader = static function ($path, array $displayData) {
            // If $displayData doesn't exist in extracted data, unset the variable.
            if (!\array_key_exists('displayData', $displayData)) {
                extract($displayData);
                unset($displayData);
            } else {
                extract($displayData);
            }
 
            include $path;
        };
 
        $loader($path, $this->getLayoutData());
    }
}
 
            Profiler::getInstance('Application')->mark('beforeRenderRawModule ' . $module->module . ' (' . $module->title . ')');
        }
 
        $app = Factory::getApplication();
 
        // Record the scope.
        $scope = $app->scope;
 
        // Set scope to component name
        $app->scope = $module->module;
 
        // Get module path
        $module->module = preg_replace('/[^A-Z0-9_\.-]/i', '', $module->module);
 
        $dispatcher = $app->bootModule($module->module, $app->getName())->getDispatcher($module, $app);
 
        // Check if we have a dispatcher
        if ($dispatcher) {
            ob_start();
            $dispatcher->dispatch();
            $module->content = ob_get_clean();
        }
 
        // Add the flag that the module content has been rendered
        $module->contentRendered = true;
 
        // Revert the scope
        $app->scope = $scope;
 
        if (JDEBUG) {
            Profiler::getInstance('Application')->mark('afterRenderRawModule ' . $module->module . ' (' . $module->title . ')');
        }
 
        return $module->content;
    }
 
    /**
     * Get the path to a layout for a module
     *
     * @param   string  $module  The name of the module
        $app = Factory::getApplication();
 
        // Check that $module is a valid module object
        if (!\is_object($module) || !isset($module->module) || !isset($module->params)) {
            if (JDEBUG) {
                Log::addLogger(['text_file' => 'jmodulehelper.log.php'], Log::ALL, ['modulehelper']);
                $app->getLogger()->debug(
                    __METHOD__ . '() - The $module parameter should be a module object.',
                    ['category' => 'modulehelper']
                );
            }
 
            return '';
        }
 
        // Get module parameters
        $params = new Registry($module->params);
 
        // Render the module content
        static::renderRawModule($module, $params, $attribs);
 
        // Return early if only the content is required
        if (!empty($attribs['contentOnly'])) {
            return $module->content;
        }
 
        if (JDEBUG) {
            Profiler::getInstance('Application')->mark('beforeRenderModule ' . $module->module . ' (' . $module->title . ')');
        }
 
        // Record the scope.
        $scope = $app->scope;
 
        // Set scope to component name
        $app->scope = $module->module;
 
        // Get the template
        $template = $app->getTemplate();
 
        // Check if the current module has a style param to override template module style
        // Set cachemode parameter or use JModuleHelper::moduleCache from within the module instead
        $cachemode = $params->get('cachemode', 'static');
 
        if ($params->get('cache', 0) == 1 && Factory::getApplication()->get('caching') >= 1 && $cachemode !== 'id' && $cachemode !== 'safeuri') {
            // Default to itemid creating method and workarounds on
            $cacheparams               = new \stdClass();
            $cacheparams->cachemode    = $cachemode;
            $cacheparams->class        = ModuleHelper::class;
            $cacheparams->method       = 'renderModule';
            $cacheparams->methodparams = [$module, $attribs];
            $cacheparams->cachesuffix  = $attribs['contentOnly'] ?? false;
 
            // It need to be done here because the cache controller does not keep reference to the module object
            $module->content         = ModuleHelper::moduleCache($module, $params, $cacheparams);
            $module->contentRendered = true;
 
            return $module->content;
        }
 
        return ModuleHelper::renderModule($module, $attribs);
    }
}
 
    {
        /** @var CMSApplication $application */
        $application = Factory::getApplication();
 
        $module = is_object($id) ? $id : $this->getModule($id);
 
        // Make sure that module really exists.
        if (!is_object($module)) {
            return '';
        }
 
        if (empty($module->contentRendered)) {
            $document = $application->getDocument();
            if (!$document instanceof HtmlDocument) {
                return '';
            }
 
            $renderer = $document->loadRenderer('module');
 
            $html = trim($renderer->render($module, $attribs));
        } else {
            $html = trim($module->content);
        }
 
        // Add frontend editing feature as it has only been defined for module positions.
        $user = $application->getIdentity();
 
        $frontEditing = ($application->isClient('site') && $application->get('frontediting', 1) && $user && !$user->guest);
        $menusEditing = ($application->get('frontediting', 1) == 2) && $user && $user->authorise('core.edit', 'com_menus');
 
        $isGantry = \strpos($module->module, 'gantry5') !== false;
        if (!$isGantry && $frontEditing && $html && $user && $user->authorise('module.edit.frontend', 'com_modules.module.' . $module->id)) {
            $displayData = [
                'moduleHtml' => &$html,
                'module' => $module,
                'position' => isset($attribs['position']) ? $attribs['position'] : $module->position,
                'menusediting' => $menusEditing
            ];
            LayoutHelper::render('joomla.edit.frontediting_modules', $displayData);
        }
            }
 
            throw new RuntimeError(sprintf('Neither the property "%1$s" nor one of the methods "%1$s()", "get%1$s()"/"is%1$s()" or "__call()" exist and have public access in class "%2$s".', $item, $class), -1, $this->getSourceContext());
        }
 
        if ($isDefinedTest) {
            return true;
        }
 
        if ($this->env->hasExtension('\Twig\Extension\SandboxExtension')) {
            $this->env->getExtension('\Twig\Extension\SandboxExtension')->checkMethodAllowed($object, $method);
        }
 
        // Some objects throw exceptions when they have __call, and the method we try
        // to call is not supported. If ignoreStrictCheck is true, we should return null.
        try {
            if (!$arguments) {
                $ret = $object->$method();
            } else {
                $ret = \call_user_func_array([$object, $method], $arguments);
            }
        } catch (\BadMethodCallException $e) {
            if ($call && ($ignoreStrictCheck || !$this->env->isStrictVariables())) {
                return;
            }
            throw $e;
        }
 
        // @deprecated in 1.28
        if ($object instanceof \Twig_TemplateInterface) {
            $self = $object->getTemplateName() === $this->getTemplateName();
            $message = sprintf('Calling "%s" on template "%s" from template "%s" is deprecated since version 1.28 and won\'t be supported anymore in 2.0.', $item, $object->getTemplateName(), $this->getTemplateName());
            if ('renderBlock' === $method || 'displayBlock' === $method) {
                $message .= sprintf(' Use block("%s"%s) instead).', $arguments[0], $self ? '' : ', template');
            } elseif ('hasBlock' === $method) {
                $message .= sprintf(' Use "block("%s"%s) is defined" instead).', $arguments[0], $self ? '' : ', template');
            } elseif ('render' === $method || 'display' === $method) {
                $message .= sprintf(' Use include("%s") instead).', $object->getTemplateName());
            }
            @trigger_error($message, \E_USER_DEPRECATED);
    }
 
    protected function doGetParent(array $context)
    {
        // line 1
        return "@nucleus/partials/particle.html.twig";
    }
 
    protected function doDisplay(array $context, array $blocks = [])
    {
        $this->parent = $this->loadTemplate("@nucleus/partials/particle.html.twig", "@particles/module.html.twig", 1);
        $this->parent->display($context, array_merge($this->blocks, $blocks));
    }
 
    // line 3
    public function block_particle($context, array $blocks = [])
    {
        // line 4
        echo "    ";
        echo $this->getAttribute($this->getAttribute(($context["gantry"] ?? null), "platform", []), "displayModule", [0 => $this->getAttribute(($context["particle"] ?? null), "module_id", []), 1 => ["style" => (($this->getAttribute(($context["particle"] ?? null), "chrome", [], "any", true, true)) ? (_twig_default_filter($this->getAttribute(($context["particle"] ?? null), "chrome", []), "gantry")) : ("gantry")), "position" => "particle"]], "method");
        echo "
";
    }
 
    public function getTemplateName()
    {
        return "@particles/module.html.twig";
    }
 
    public function isTraitable()
    {
        return false;
    }
 
    public function getDebugInfo()
    {
        return array (  42 => 4,  39 => 3,  29 => 1,);
    }
 
    /** @deprecated since 1.27 (to be removed in 2.0). Use getSourceContext() instead */
 
        if ($useBlocks && isset($blocks[$name])) {
            $template = $blocks[$name][0];
            $block = $blocks[$name][1];
        } elseif (isset($this->blocks[$name])) {
            $template = $this->blocks[$name][0];
            $block = $this->blocks[$name][1];
        } else {
            $template = null;
            $block = null;
        }
 
        // avoid RCEs when sandbox is enabled
        if (null !== $template && !$template instanceof self) {
            throw new \LogicException('A block must be a method on a \Twig\Template instance.');
        }
 
        if (null !== $template) {
            try {
                $template->$block($context, $blocks);
            } catch (Error $e) {
                if (!$e->getSourceContext()) {
                    $e->setSourceContext($template->getSourceContext());
                }
 
                // this is mostly useful for \Twig\Error\LoaderError exceptions
                // see \Twig\Error\LoaderError
                if (-1 === $e->getTemplateLine()) {
                    $e->guess();
                }
 
                throw $e;
            } catch (\Exception $e) {
                $e = new RuntimeError(sprintf('An exception has been thrown during the rendering of a template ("%s").', $e->getMessage()), -1, $template->getSourceContext(), $e);
                $e->guess();
 
                throw $e;
            }
        } elseif (false !== $parent = $this->getParent($context)) {
            $parent->displayBlock($name, $context, array_merge($this->blocks, $blocks), false);
        $assetFunction($content, $location, $priority);
        // line 9
        $assetFunction = $this->env->getFunction('parse_assets')->getCallable();
        $assetVariables = [];
        if ($assetVariables && !is_array($assetVariables)) {
            throw new UnexpectedValueException('{% scripts with x %}: x is not an array');
        }
        $location = "footer";
        if ($location && !is_string($location)) {
            throw new UnexpectedValueException('{% scripts in x %}: x is not a string');
        }
        $priority = isset($assetVariables['priority']) ? $assetVariables['priority'] : 0;
        ob_start();
        // line 10
        echo "    ";
        $this->displayBlock('javascript_footer', $context, $blocks);
        $content = ob_get_clean();
        $assetFunction($content, $location, $priority);
        // line 14
        $this->displayBlock('particle', $context, $blocks);
    }
 
    // line 2
    public function block_stylesheets($context, array $blocks = [])
    {
        // line 3
        echo "    ";
    }
 
    // line 5
    public function block_javascript($context, array $blocks = [])
    {
        // line 6
        echo "    ";
    }
 
    // line 10
    public function block_javascript_footer($context, array $blocks = [])
    {
        // line 11
            while (ob_get_level() > $level) {
                ob_end_clean();
            }
 
            throw $e;
        } catch (\Throwable $e) {
            while (ob_get_level() > $level) {
                ob_end_clean();
            }
 
            throw $e;
        }
 
        return ob_get_clean();
    }
 
    protected function displayWithErrorHandling(array $context, array $blocks = [])
    {
        try {
            $this->doDisplay($context, $blocks);
        } catch (Error $e) {
            if (!$e->getSourceContext()) {
                $e->setSourceContext($this->getSourceContext());
            }
 
            // this is mostly useful for \Twig\Error\LoaderError exceptions
            // see \Twig\Error\LoaderError
            if (-1 === $e->getTemplateLine()) {
                $e->guess();
            }
 
            throw $e;
        } catch (\Exception $e) {
            $e = new RuntimeError(sprintf('An exception has been thrown during the rendering of a template ("%s").', $e->getMessage()), -1, $this->getSourceContext(), $e);
            $e->guess();
 
            throw $e;
        }
    }
 
    {
        return $this;
    }
 
    /**
     * Returns all blocks.
     *
     * This method is for internal use only and should never be called
     * directly.
     *
     * @return array An array of blocks
     */
    public function getBlocks()
    {
        return $this->blocks;
    }
 
    public function display(array $context, array $blocks = [])
    {
        $this->displayWithErrorHandling($this->env->mergeGlobals($context), array_merge($this->blocks, $blocks));
    }
 
    public function render(array $context)
    {
        $level = ob_get_level();
        if ($this->env->isDebug()) {
            ob_start();
        } else {
            ob_start(function () { return ''; });
        }
        try {
            $this->display($context);
        } catch (\Exception $e) {
            while (ob_get_level() > $level) {
                ob_end_clean();
            }
 
            throw $e;
        } catch (\Throwable $e) {
            while (ob_get_level() > $level) {
{
    public function __construct(Environment $env)
    {
        parent::__construct($env);
 
        $this->blocks = [
            'particle' => [$this, 'block_particle'],
        ];
    }
 
    protected function doGetParent(array $context)
    {
        // line 1
        return "@nucleus/partials/particle.html.twig";
    }
 
    protected function doDisplay(array $context, array $blocks = [])
    {
        $this->parent = $this->loadTemplate("@nucleus/partials/particle.html.twig", "@particles/module.html.twig", 1);
        $this->parent->display($context, array_merge($this->blocks, $blocks));
    }
 
    // line 3
    public function block_particle($context, array $blocks = [])
    {
        // line 4
        echo "    ";
        echo $this->getAttribute($this->getAttribute(($context["gantry"] ?? null), "platform", []), "displayModule", [0 => $this->getAttribute(($context["particle"] ?? null), "module_id", []), 1 => ["style" => (($this->getAttribute(($context["particle"] ?? null), "chrome", [], "any", true, true)) ? (_twig_default_filter($this->getAttribute(($context["particle"] ?? null), "chrome", []), "gantry")) : ("gantry")), "position" => "particle"]], "method");
        echo "
";
    }
 
    public function getTemplateName()
    {
        return "@particles/module.html.twig";
    }
 
    public function isTraitable()
    {
        return false;
            while (ob_get_level() > $level) {
                ob_end_clean();
            }
 
            throw $e;
        } catch (\Throwable $e) {
            while (ob_get_level() > $level) {
                ob_end_clean();
            }
 
            throw $e;
        }
 
        return ob_get_clean();
    }
 
    protected function displayWithErrorHandling(array $context, array $blocks = [])
    {
        try {
            $this->doDisplay($context, $blocks);
        } catch (Error $e) {
            if (!$e->getSourceContext()) {
                $e->setSourceContext($this->getSourceContext());
            }
 
            // this is mostly useful for \Twig\Error\LoaderError exceptions
            // see \Twig\Error\LoaderError
            if (-1 === $e->getTemplateLine()) {
                $e->guess();
            }
 
            throw $e;
        } catch (\Exception $e) {
            $e = new RuntimeError(sprintf('An exception has been thrown during the rendering of a template ("%s").', $e->getMessage()), -1, $this->getSourceContext(), $e);
            $e->guess();
 
            throw $e;
        }
    }
 
    {
        return $this;
    }
 
    /**
     * Returns all blocks.
     *
     * This method is for internal use only and should never be called
     * directly.
     *
     * @return array An array of blocks
     */
    public function getBlocks()
    {
        return $this->blocks;
    }
 
    public function display(array $context, array $blocks = [])
    {
        $this->displayWithErrorHandling($this->env->mergeGlobals($context), array_merge($this->blocks, $blocks));
    }
 
    public function render(array $context)
    {
        $level = ob_get_level();
        if ($this->env->isDebug()) {
            ob_start();
        } else {
            ob_start(function () { return ''; });
        }
        try {
            $this->display($context);
        } catch (\Exception $e) {
            while (ob_get_level() > $level) {
                ob_end_clean();
            }
 
            throw $e;
        } catch (\Throwable $e) {
            while (ob_get_level() > $level) {
                echo "        ";
                $context["enabled"] = $this->getAttribute($this->getAttribute(($context["gantry"] ?? null), "config", []), "get", [0 => (("particles." . $this->getAttribute(($context["segment"] ?? null), "type", [])) . ".enabled"), 1 => 1], "method");
                // line 4
                echo "        ";
                $context["particle"] = $this->getAttribute($this->getAttribute(($context["gantry"] ?? null), "config", []), "getJoined", [0 => ("particles." . $this->getAttribute(($context["segment"] ?? null), "type", [])), 1 => $this->getAttribute(($context["segment"] ?? null), "attributes", [])], "method");
                // line 5
                echo "    ";
            }
            // line 6
            echo "
    ";
            // line 7
            ob_start();
            // line 8
            echo "        ";
            if ((($context["enabled"] ?? null) && ((null === $this->getAttribute($this->getAttribute(($context["segment"] ?? null), "attributes", []), "enabled", [])) || $this->getAttribute($this->getAttribute(($context["segment"] ?? null), "attributes", []), "enabled", [])))) {
                // line 9
                echo "            ";
                $this->loadTemplate([0 => (("particles/" . (($this->getAttribute(($context["segment"] ?? null), "subtype", [], "any", true, true)) ? (_twig_default_filter($this->getAttribute(($context["segment"] ?? null), "subtype", []), "position")) : ("position"))) . ".html.twig"), 1 => (("@particles/" . (($this->getAttribute(                // line 10
($context["segment"] ?? null), "subtype", [], "any", true, true)) ? (_twig_default_filter($this->getAttribute(($context["segment"] ?? null), "subtype", []), "position")) : ("position"))) . ".html.twig")], "@nucleus/content/position.html.twig", 9)->display($context);
                // line 11
                echo "        ";
            }
            // line 12
            echo "    ";
            $context["html"] = ('' === $tmp = ob_get_clean()) ? '' : new Markup($tmp, $this->env->getCharset());
            // line 14
            if (twig_trim_filter(($context["html"] ?? null))) {
                // line 15
                echo "        ";
                if (($this->getAttribute(($context["gantry"] ?? null), "debug", []) && $this->getAttribute($this->getAttribute(($context["segment"] ?? null), "attributes", []), "key", []))) {
                    echo "<!-- START POSITION ";
                    echo twig_escape_filter($this->env, $this->getAttribute($this->getAttribute(($context["segment"] ?? null), "attributes", []), "key", []), "html", null, true);
                    echo " -->";
                }
                // line 16
                echo "
        <div class=\"g-content";
                // line 17
                (($this->getAttribute(($context["segment"] ?? null), "classes", [])) ? (print (twig_escape_filter($this->env, (" " . twig_escape_filter($this->env, twig_join_filter($this->getAttribute(($context["segment"] ?? null), "classes", []), " "))), "html", null, true))) : (print ("")));
            while (ob_get_level() > $level) {
                ob_end_clean();
            }
 
            throw $e;
        } catch (\Throwable $e) {
            while (ob_get_level() > $level) {
                ob_end_clean();
            }
 
            throw $e;
        }
 
        return ob_get_clean();
    }
 
    protected function displayWithErrorHandling(array $context, array $blocks = [])
    {
        try {
            $this->doDisplay($context, $blocks);
        } catch (Error $e) {
            if (!$e->getSourceContext()) {
                $e->setSourceContext($this->getSourceContext());
            }
 
            // this is mostly useful for \Twig\Error\LoaderError exceptions
            // see \Twig\Error\LoaderError
            if (-1 === $e->getTemplateLine()) {
                $e->guess();
            }
 
            throw $e;
        } catch (\Exception $e) {
            $e = new RuntimeError(sprintf('An exception has been thrown during the rendering of a template ("%s").', $e->getMessage()), -1, $this->getSourceContext(), $e);
            $e->guess();
 
            throw $e;
        }
    }
 
    {
        return $this;
    }
 
    /**
     * Returns all blocks.
     *
     * This method is for internal use only and should never be called
     * directly.
     *
     * @return array An array of blocks
     */
    public function getBlocks()
    {
        return $this->blocks;
    }
 
    public function display(array $context, array $blocks = [])
    {
        $this->displayWithErrorHandling($this->env->mergeGlobals($context), array_merge($this->blocks, $blocks));
    }
 
    public function render(array $context)
    {
        $level = ob_get_level();
        if ($this->env->isDebug()) {
            ob_start();
        } else {
            ob_start(function () { return ''; });
        }
        try {
            $this->display($context);
        } catch (\Exception $e) {
            while (ob_get_level() > $level) {
                ob_end_clean();
            }
 
            throw $e;
        } catch (\Throwable $e) {
            while (ob_get_level() > $level) {
    public function getBlocks()
    {
        return $this->blocks;
    }
 
    public function display(array $context, array $blocks = [])
    {
        $this->displayWithErrorHandling($this->env->mergeGlobals($context), array_merge($this->blocks, $blocks));
    }
 
    public function render(array $context)
    {
        $level = ob_get_level();
        if ($this->env->isDebug()) {
            ob_start();
        } else {
            ob_start(function () { return ''; });
        }
        try {
            $this->display($context);
        } catch (\Exception $e) {
            while (ob_get_level() > $level) {
                ob_end_clean();
            }
 
            throw $e;
        } catch (\Throwable $e) {
            while (ob_get_level() > $level) {
                ob_end_clean();
            }
 
            throw $e;
        }
 
        return ob_get_clean();
    }
 
    protected function displayWithErrorHandling(array $context, array $blocks = [])
    {
        try {
     * @internal
     */
    public function __construct(Environment $env, Template $template)
    {
        $this->env = $env;
        $this->template = $template;
    }
 
    /**
     * Renders the template.
     *
     * @param array $context An array of parameters to pass to the template
     *
     * @return string The rendered template
     */
    public function render($context = [])
    {
        // using func_get_args() allows to not expose the blocks argument
        // as it should only be used by internal code
        return $this->template->render($context, \func_num_args() > 1 ? func_get_arg(1) : []);
    }
 
    /**
     * Displays the template.
     *
     * @param array $context An array of parameters to pass to the template
     */
    public function display($context = [])
    {
        // using func_get_args() allows to not expose the blocks argument
        // as it should only be used by internal code
        $this->template->display($context, \func_num_args() > 1 ? func_get_arg(1) : []);
    }
 
    /**
     * Checks if a block is defined.
     *
     * @param string $name    The block name
     * @param array  $context An array of parameters to pass to the template
     *
        @trigger_error(sprintf('The %s method is deprecated since version 1.22 and will be removed in Twig 2.0.', __METHOD__), \E_USER_DEPRECATED);
 
        return $this->templateClassPrefix;
    }
 
    /**
     * Renders a template.
     *
     * @param string|TemplateWrapper $name    The template name
     * @param array                  $context An array of parameters to pass to the template
     *
     * @return string The rendered template
     *
     * @throws LoaderError  When the template cannot be found
     * @throws SyntaxError  When an error occurred during compilation
     * @throws RuntimeError When an error occurred during rendering
     */
    public function render($name, array $context = [])
    {
        return $this->load($name)->render($context);
    }
 
    /**
     * Displays a template.
     *
     * @param string|TemplateWrapper $name    The template name
     * @param array                  $context An array of parameters to pass to the template
     *
     * @throws LoaderError  When the template cannot be found
     * @throws SyntaxError  When an error occurred during compilation
     * @throws RuntimeError When an error occurred during rendering
     */
    public function display($name, array $context = [])
    {
        $this->load($name)->display($context);
    }
 
    /**
     * Loads a template.
     *
 
            $this->renderer = $this->extendTwig($twig, $loader);
        }
 
        return $this->renderer;
    }
 
    /**
     * Render a template file by using given context.
     *
     * @param string $file
     * @param array $context
     * @return string
     */
    public function render($file, array $context = [])
    {
        // Include Gantry specific things to the context.
        $context = $this->getContext($context);
 
        return $this->renderer()->render($file, $context);
    }
 
    /**
     * Compile and render twig string.
     *
     * @param string $string
     * @param array $context
     * @return string
     */
    public function compile($string, array $context = [])
    {
        $renderer = $this->renderer();
        $template = $renderer->createTemplate($string);
 
        // Include Gantry specific things to the context.
        $context = $this->getContext($context);
 
        return $template->render($context);
    }
 
            $file = PhpFile::instance($filename);
            if ($file->exists()) {
                try {
                    return ContentBlock::fromArray((array) $file->content());
                } catch (\Exception $e) {
                    // Invalid cache, continue to rendering.
                    if (\GANTRY_DEBUGGER) {
                        Debugger::addMessage(sprintf('Failed to load %s %s cache', $item->type, $item->id), 'debug');
                    }
                }
            }
        }
 
        // Create new document context for assets.
        $context = $this->getContext(['segment' => $item, 'enabled' => 1, 'particle' => $particle] + $options);
 
        /** @var Document $document */
        $document = $gantry['document'];
        $document::push();
        $html = trim($this->render("@nucleus/content/{$item->type}.html.twig", $context));
        $content = $document::pop()->setContent($html);
 
        if (isset($file)) {
            // Save HTML and assets into the cache.
            if (\GANTRY_DEBUGGER) {
                Debugger::addMessage(sprintf('Caching %s %s', $item->type, $item->id), 'debug');
            }
 
            $file->save($content->toArray());
        }
 
        return $content;
    }
}
 
                        }
                    }
            }
        }
    }
 
    /**
     * Renders individual content block, like particle or position.
     *
     * Function is used to pre-render content.
     *
     * @param object|array $item
     * @param array $options
     * @return string|null
     */
    public function renderContent($item, $options = [])
    {
        $gantry = static::gantry();
 
        $content = $this->getContent($item, $options);
 
        /** @var Document $document */
        $document = $gantry['document'];
        $document->addBlock($content);
 
        $html = $content->toString();
 
        return false === strpos($html, '@@DEFERRED@@') ? $html : null;
    }
 
    /**
     * Renders individual content block, like particle or position.
     *
     * Function is used to pre-render content.
     *
     * @param object|array $item
     * @param array $options
     * @return ContentBlock|ContentBlockInterface
     * @since 5.4.3
     */
                    $fixed &= !empty($child->attributes->fixed);
                }
 
                $this->prepareLayout($item->children, $fixed, $temporary);
            }
 
            // TODO: remove hard coded types.
            switch ($item->type) {
                case 'system':
                    break;
 
                case 'atom':
                case 'particle':
                case 'position':
                case 'spacer':
                    if (\GANTRY_DEBUGGER) {
                        Debugger::startTimer($item->id, "Rendering {$item->id}");
                    }
 
                    $item->content = $this->renderContent($item, ['prepare_layout' => true]);
                    // Note that content can also be null (postpone rendering).
                    if ($item->content === '') {
                        unset($items[$i]);
                    }
 
                    if (\GANTRY_DEBUGGER) {
                        Debugger::stopTimer($item->id);
                    }
 
                    break;
 
                default:
                    if ($sticky) {
                        $item->attributes->sticky = 1;
                        break;
                    }
 
                    if (empty($item->children)) {
                        unset($items[$i]);
                        break;
     * @param array $items
     * @param bool  $temporary
     * @param bool  $sticky
     * @internal
     */
    protected function prepareLayout(array &$items, $temporary = false, $sticky = false)
    {
        foreach ($items as $i => &$item) {
            // Non-numeric items are meta-data which should be ignored.
            if (((string)(int) $i !== (string) $i) || !is_object($item)) {
                continue;
            }
 
            if (!empty($item->children)) {
                $fixed = true;
                foreach ($item->children as $child) {
                    $fixed &= !empty($child->attributes->fixed);
                }
 
                $this->prepareLayout($item->children, $fixed, $temporary);
            }
 
            // TODO: remove hard coded types.
            switch ($item->type) {
                case 'system':
                    break;
 
                case 'atom':
                case 'particle':
                case 'position':
                case 'spacer':
                    if (\GANTRY_DEBUGGER) {
                        Debugger::startTimer($item->id, "Rendering {$item->id}");
                    }
 
                    $item->content = $this->renderContent($item, ['prepare_layout' => true]);
                    // Note that content can also be null (postpone rendering).
                    if ($item->content === '') {
                        unset($items[$i]);
                    }
     * @param array $items
     * @param bool  $temporary
     * @param bool  $sticky
     * @internal
     */
    protected function prepareLayout(array &$items, $temporary = false, $sticky = false)
    {
        foreach ($items as $i => &$item) {
            // Non-numeric items are meta-data which should be ignored.
            if (((string)(int) $i !== (string) $i) || !is_object($item)) {
                continue;
            }
 
            if (!empty($item->children)) {
                $fixed = true;
                foreach ($item->children as $child) {
                    $fixed &= !empty($child->attributes->fixed);
                }
 
                $this->prepareLayout($item->children, $fixed, $temporary);
            }
 
            // TODO: remove hard coded types.
            switch ($item->type) {
                case 'system':
                    break;
 
                case 'atom':
                case 'particle':
                case 'position':
                case 'spacer':
                    if (\GANTRY_DEBUGGER) {
                        Debugger::startTimer($item->id, "Rendering {$item->id}");
                    }
 
                    $item->content = $this->renderContent($item, ['prepare_layout' => true]);
                    // Note that content can also be null (postpone rendering).
                    if ($item->content === '') {
                        unset($items[$i]);
                    }
     * @param array $items
     * @param bool  $temporary
     * @param bool  $sticky
     * @internal
     */
    protected function prepareLayout(array &$items, $temporary = false, $sticky = false)
    {
        foreach ($items as $i => &$item) {
            // Non-numeric items are meta-data which should be ignored.
            if (((string)(int) $i !== (string) $i) || !is_object($item)) {
                continue;
            }
 
            if (!empty($item->children)) {
                $fixed = true;
                foreach ($item->children as $child) {
                    $fixed &= !empty($child->attributes->fixed);
                }
 
                $this->prepareLayout($item->children, $fixed, $temporary);
            }
 
            // TODO: remove hard coded types.
            switch ($item->type) {
                case 'system':
                    break;
 
                case 'atom':
                case 'particle':
                case 'position':
                case 'spacer':
                    if (\GANTRY_DEBUGGER) {
                        Debugger::startTimer($item->id, "Rendering {$item->id}");
                    }
 
                    $item->content = $this->renderContent($item, ['prepare_layout' => true]);
                    // Note that content can also be null (postpone rendering).
                    if ($item->content === '') {
                        unset($items[$i]);
                    }
                Debugger::stopTimer('atoms');
            }
        }
    }
 
    /**
     * Returns all non-empty segments from the layout.
     *
     * @return array
     */
    public function segments()
    {
        if (!isset($this->segments)) {
            $this->segments = $this->loadLayout()->toArray();
 
            if (\GANTRY_DEBUGGER) {
                Debugger::startTimer('segments', 'Preparing layout');
            }
 
            $this->prepareLayout($this->segments);
 
            if (\GANTRY_DEBUGGER) {
                Debugger::stopTimer('segments');
            }
        }
 
        return $this->segments;
    }
 
    /**
     * Prepare layout for rendering. Initializes all CSS/JS in particles.
     */
    public function prepare()
    {
        $this->segments();
    }
 
    /**
     * Returns details of the theme.
     *
            if ($ignoreStrictCheck || !$this->env->isStrictVariables()) {
                return;
            }
 
            throw new RuntimeError(sprintf('Neither the property "%1$s" nor one of the methods "%1$s()", "get%1$s()"/"is%1$s()" or "__call()" exist and have public access in class "%2$s".', $item, $class), -1, $this->getSourceContext());
        }
 
        if ($isDefinedTest) {
            return true;
        }
 
        if ($this->env->hasExtension('\Twig\Extension\SandboxExtension')) {
            $this->env->getExtension('\Twig\Extension\SandboxExtension')->checkMethodAllowed($object, $method);
        }
 
        // Some objects throw exceptions when they have __call, and the method we try
        // to call is not supported. If ignoreStrictCheck is true, we should return null.
        try {
            if (!$arguments) {
                $ret = $object->$method();
            } else {
                $ret = \call_user_func_array([$object, $method], $arguments);
            }
        } catch (\BadMethodCallException $e) {
            if ($call && ($ignoreStrictCheck || !$this->env->isStrictVariables())) {
                return;
            }
            throw $e;
        }
 
        // @deprecated in 1.28
        if ($object instanceof \Twig_TemplateInterface) {
            $self = $object->getTemplateName() === $this->getTemplateName();
            $message = sprintf('Calling "%s" on template "%s" from template "%s" is deprecated since version 1.28 and won\'t be supported anymore in 2.0.', $item, $object->getTemplateName(), $this->getTemplateName());
            if ('renderBlock' === $method || 'displayBlock' === $method) {
                $message .= sprintf(' Use block("%s"%s) instead).', $arguments[0], $self ? '' : ', template');
            } elseif ('hasBlock' === $method) {
                $message .= sprintf(' Use "block("%s"%s) is defined" instead).', $arguments[0], $self ? '' : ', template');
            } elseif ('render' === $method || 'display' === $method) {
                $message .= sprintf(' Use include("%s") instead).', $object->getTemplateName());
            'page_bottom' => [$this, 'block_page_bottom'],
            'body_top' => [$this, 'block_body_top'],
            'body_bottom' => [$this, 'block_body_bottom'],
            'page_head' => [$this, 'block_page_head'],
            'page_footer' => [$this, 'block_page_footer'],
            'page' => [$this, 'block_page'],
            'page_body' => [$this, 'block_page_body'],
        ];
    }
 
    protected function doDisplay(array $context, array $blocks = [])
    {
        // line 1
        $this->getAttribute($this->getAttribute(($context["gantry"] ?? null), "debugger", []), "startTimer", [0 => "render", 1 => "Rendering page"], "method");
        // line 2
        $this->getAttribute($this->getAttribute(($context["gantry"] ?? null), "theme", []), "setLayout", [], "method");
        // line 3
        $this->getAttribute($this->getAttribute(($context["gantry"] ?? null), "theme", []), "loadAtoms", [], "method");
        // line 4
        $context["segments"] = $this->getAttribute($this->getAttribute(($context["gantry"] ?? null), "theme", []), "segments", [], "method");
        // line 6
        ob_start();
        // line 7
        echo "    ";
        if ($this->getAttribute($this->getAttribute(($context["gantry"] ?? null), "theme", []), "hasContent", [], "method")) {
            // line 8
            echo "        ";
            $this->displayBlock('content', $context, $blocks);
            // line 10
            echo "    ";
        }
        $context["content"] = ('' === $tmp = ob_get_clean()) ? '' : new Markup($tmp, $this->env->getCharset());
        // line 13
        $context["offcanvas"] = null;
        // line 14
        $context['_parent'] = $context;
        $context['_seq'] = twig_ensure_traversable(($context["segments"] ?? null));
        foreach ($context['_seq'] as $context["_key"] => $context["segment"]) {
            // line 15
            echo "    ";
            while (ob_get_level() > $level) {
                ob_end_clean();
            }
 
            throw $e;
        } catch (\Throwable $e) {
            while (ob_get_level() > $level) {
                ob_end_clean();
            }
 
            throw $e;
        }
 
        return ob_get_clean();
    }
 
    protected function displayWithErrorHandling(array $context, array $blocks = [])
    {
        try {
            $this->doDisplay($context, $blocks);
        } catch (Error $e) {
            if (!$e->getSourceContext()) {
                $e->setSourceContext($this->getSourceContext());
            }
 
            // this is mostly useful for \Twig\Error\LoaderError exceptions
            // see \Twig\Error\LoaderError
            if (-1 === $e->getTemplateLine()) {
                $e->guess();
            }
 
            throw $e;
        } catch (\Exception $e) {
            $e = new RuntimeError(sprintf('An exception has been thrown during the rendering of a template ("%s").', $e->getMessage()), -1, $this->getSourceContext(), $e);
            $e->guess();
 
            throw $e;
        }
    }
 
    {
        return $this;
    }
 
    /**
     * Returns all blocks.
     *
     * This method is for internal use only and should never be called
     * directly.
     *
     * @return array An array of blocks
     */
    public function getBlocks()
    {
        return $this->blocks;
    }
 
    public function display(array $context, array $blocks = [])
    {
        $this->displayWithErrorHandling($this->env->mergeGlobals($context), array_merge($this->blocks, $blocks));
    }
 
    public function render(array $context)
    {
        $level = ob_get_level();
        if ($this->env->isDebug()) {
            ob_start();
        } else {
            ob_start(function () { return ''; });
        }
        try {
            $this->display($context);
        } catch (\Exception $e) {
            while (ob_get_level() > $level) {
                ob_end_clean();
            }
 
            throw $e;
        } catch (\Throwable $e) {
            while (ob_get_level() > $level) {
{
    public function __construct(Environment $env)
    {
        parent::__construct($env);
 
        $this->blocks = [
            'page_footer' => [$this, 'block_page_footer'],
        ];
    }
 
    protected function doGetParent(array $context)
    {
        // line 1
        return "@nucleus/page.html.twig";
    }
 
    protected function doDisplay(array $context, array $blocks = [])
    {
        $this->parent = $this->loadTemplate("@nucleus/page.html.twig", "partials/page.html.twig", 1);
        $this->parent->display($context, array_merge($this->blocks, $blocks));
    }
 
    // line 3
    public function block_page_footer($context, array $blocks = [])
    {
        // line 4
        echo "    ";
        $this->displayParentBlock("page_footer", $context, $blocks);
        echo "
    <jdoc:include type=\"modules\" name=\"debug\" />
";
    }
 
    public function getTemplateName()
    {
        return "partials/page.html.twig";
    }
 
    public function isTraitable()
    {
            while (ob_get_level() > $level) {
                ob_end_clean();
            }
 
            throw $e;
        } catch (\Throwable $e) {
            while (ob_get_level() > $level) {
                ob_end_clean();
            }
 
            throw $e;
        }
 
        return ob_get_clean();
    }
 
    protected function displayWithErrorHandling(array $context, array $blocks = [])
    {
        try {
            $this->doDisplay($context, $blocks);
        } catch (Error $e) {
            if (!$e->getSourceContext()) {
                $e->setSourceContext($this->getSourceContext());
            }
 
            // this is mostly useful for \Twig\Error\LoaderError exceptions
            // see \Twig\Error\LoaderError
            if (-1 === $e->getTemplateLine()) {
                $e->guess();
            }
 
            throw $e;
        } catch (\Exception $e) {
            $e = new RuntimeError(sprintf('An exception has been thrown during the rendering of a template ("%s").', $e->getMessage()), -1, $this->getSourceContext(), $e);
            $e->guess();
 
            throw $e;
        }
    }
 
    {
        return $this;
    }
 
    /**
     * Returns all blocks.
     *
     * This method is for internal use only and should never be called
     * directly.
     *
     * @return array An array of blocks
     */
    public function getBlocks()
    {
        return $this->blocks;
    }
 
    public function display(array $context, array $blocks = [])
    {
        $this->displayWithErrorHandling($this->env->mergeGlobals($context), array_merge($this->blocks, $blocks));
    }
 
    public function render(array $context)
    {
        $level = ob_get_level();
        if ($this->env->isDebug()) {
            ob_start();
        } else {
            ob_start(function () { return ''; });
        }
        try {
            $this->display($context);
        } catch (\Exception $e) {
            while (ob_get_level() > $level) {
                ob_end_clean();
            }
 
            throw $e;
        } catch (\Throwable $e) {
            while (ob_get_level() > $level) {
{
    public function __construct(Environment $env)
    {
        parent::__construct($env);
 
        $this->blocks = [
            'content' => [$this, 'block_content'],
        ];
    }
 
    protected function doGetParent(array $context)
    {
        // line 1
        return "partials/page.html.twig";
    }
 
    protected function doDisplay(array $context, array $blocks = [])
    {
        $this->parent = $this->loadTemplate("partials/page.html.twig", "index.html.twig", 1);
        $this->parent->display($context, array_merge($this->blocks, $blocks));
    }
 
    // line 3
    public function block_content($context, array $blocks = [])
    {
        // line 4
        echo "    ";
        echo $this->getAttribute($this->getAttribute(($context["gantry"] ?? null), "platform", []), "displayContent", [0 => ($context["content"] ?? null)], "method");
        echo "
";
    }
 
    public function getTemplateName()
    {
        return "index.html.twig";
    }
 
    public function isTraitable()
    {
        return false;
            while (ob_get_level() > $level) {
                ob_end_clean();
            }
 
            throw $e;
        } catch (\Throwable $e) {
            while (ob_get_level() > $level) {
                ob_end_clean();
            }
 
            throw $e;
        }
 
        return ob_get_clean();
    }
 
    protected function displayWithErrorHandling(array $context, array $blocks = [])
    {
        try {
            $this->doDisplay($context, $blocks);
        } catch (Error $e) {
            if (!$e->getSourceContext()) {
                $e->setSourceContext($this->getSourceContext());
            }
 
            // this is mostly useful for \Twig\Error\LoaderError exceptions
            // see \Twig\Error\LoaderError
            if (-1 === $e->getTemplateLine()) {
                $e->guess();
            }
 
            throw $e;
        } catch (\Exception $e) {
            $e = new RuntimeError(sprintf('An exception has been thrown during the rendering of a template ("%s").', $e->getMessage()), -1, $this->getSourceContext(), $e);
            $e->guess();
 
            throw $e;
        }
    }
 
    {
        return $this;
    }
 
    /**
     * Returns all blocks.
     *
     * This method is for internal use only and should never be called
     * directly.
     *
     * @return array An array of blocks
     */
    public function getBlocks()
    {
        return $this->blocks;
    }
 
    public function display(array $context, array $blocks = [])
    {
        $this->displayWithErrorHandling($this->env->mergeGlobals($context), array_merge($this->blocks, $blocks));
    }
 
    public function render(array $context)
    {
        $level = ob_get_level();
        if ($this->env->isDebug()) {
            ob_start();
        } else {
            ob_start(function () { return ''; });
        }
        try {
            $this->display($context);
        } catch (\Exception $e) {
            while (ob_get_level() > $level) {
                ob_end_clean();
            }
 
            throw $e;
        } catch (\Throwable $e) {
            while (ob_get_level() > $level) {
    public function getBlocks()
    {
        return $this->blocks;
    }
 
    public function display(array $context, array $blocks = [])
    {
        $this->displayWithErrorHandling($this->env->mergeGlobals($context), array_merge($this->blocks, $blocks));
    }
 
    public function render(array $context)
    {
        $level = ob_get_level();
        if ($this->env->isDebug()) {
            ob_start();
        } else {
            ob_start(function () { return ''; });
        }
        try {
            $this->display($context);
        } catch (\Exception $e) {
            while (ob_get_level() > $level) {
                ob_end_clean();
            }
 
            throw $e;
        } catch (\Throwable $e) {
            while (ob_get_level() > $level) {
                ob_end_clean();
            }
 
            throw $e;
        }
 
        return ob_get_clean();
    }
 
    protected function displayWithErrorHandling(array $context, array $blocks = [])
    {
        try {
     * @internal
     */
    public function __construct(Environment $env, Template $template)
    {
        $this->env = $env;
        $this->template = $template;
    }
 
    /**
     * Renders the template.
     *
     * @param array $context An array of parameters to pass to the template
     *
     * @return string The rendered template
     */
    public function render($context = [])
    {
        // using func_get_args() allows to not expose the blocks argument
        // as it should only be used by internal code
        return $this->template->render($context, \func_num_args() > 1 ? func_get_arg(1) : []);
    }
 
    /**
     * Displays the template.
     *
     * @param array $context An array of parameters to pass to the template
     */
    public function display($context = [])
    {
        // using func_get_args() allows to not expose the blocks argument
        // as it should only be used by internal code
        $this->template->display($context, \func_num_args() > 1 ? func_get_arg(1) : []);
    }
 
    /**
     * Checks if a block is defined.
     *
     * @param string $name    The block name
     * @param array  $context An array of parameters to pass to the template
     *
        @trigger_error(sprintf('The %s method is deprecated since version 1.22 and will be removed in Twig 2.0.', __METHOD__), \E_USER_DEPRECATED);
 
        return $this->templateClassPrefix;
    }
 
    /**
     * Renders a template.
     *
     * @param string|TemplateWrapper $name    The template name
     * @param array                  $context An array of parameters to pass to the template
     *
     * @return string The rendered template
     *
     * @throws LoaderError  When the template cannot be found
     * @throws SyntaxError  When an error occurred during compilation
     * @throws RuntimeError When an error occurred during rendering
     */
    public function render($name, array $context = [])
    {
        return $this->load($name)->render($context);
    }
 
    /**
     * Displays a template.
     *
     * @param string|TemplateWrapper $name    The template name
     * @param array                  $context An array of parameters to pass to the template
     *
     * @throws LoaderError  When the template cannot be found
     * @throws SyntaxError  When an error occurred during compilation
     * @throws RuntimeError When an error occurred during rendering
     */
    public function display($name, array $context = [])
    {
        $this->load($name)->display($context);
    }
 
    /**
     * Loads a template.
     *
 
            $this->renderer = $this->extendTwig($twig, $loader);
        }
 
        return $this->renderer;
    }
 
    /**
     * Render a template file by using given context.
     *
     * @param string $file
     * @param array $context
     * @return string
     */
    public function render($file, array $context = [])
    {
        // Include Gantry specific things to the context.
        $context = $this->getContext($context);
 
        return $this->renderer()->render($file, $context);
    }
 
    /**
     * Compile and render twig string.
     *
     * @param string $string
     * @param array $context
     * @return string
     */
    public function compile($string, array $context = [])
    {
        $renderer = $this->renderer();
        $template = $renderer->createTemplate($string);
 
        // Include Gantry specific things to the context.
        $context = $this->getContext($context);
 
        return $template->render($context);
    }
 
 
defined('_JEXEC') or die;
 
use Gantry\Framework\Theme;
 
// Bootstrap Gantry framework or fail gracefully (inside included file).
$className = __DIR__ . '/custom/includes/gantry.php';
if (!is_file($className)) {
    $className = __DIR__ . '/includes/gantry.php';
}
$gantry = include $className;
 
/** @var Theme $theme */
$theme = $gantry['theme'];
 
// All the custom twig variables can be defined in here:
$context = array();
 
// Render the page.
echo $theme->render('index.html.twig', $context);
 
     *
     * @param   string  $directory  The name of the template
     * @param   string  $filename   The actual filename
     *
     * @return  string  The contents of the template
     *
     * @since   1.7.0
     */
    protected function _loadTemplate($directory, $filename)
    {
        $contents = '';
 
        // Check to see if we have a valid template file
        if (is_file($directory . '/' . $filename)) {
            // Store the file path
            $this->_file = $directory . '/' . $filename;
 
            // Get the file content
            ob_start();
            require $directory . '/' . $filename;
            $contents = ob_get_contents();
            ob_end_clean();
        }
 
        return $contents;
    }
 
    /**
     * Fetch the template, and initialise the params
     *
     * @param   array  $params  Parameters to determine the template
     *
     * @return  HtmlDocument instance of $this to allow chaining
     *
     * @since   1.7.0
     */
    protected function _fetchTemplate($params = [])
    {
        // Check
        $directory = $params['directory'] ?? 'templates';
Arguments
  1. "/var/www/vhosts/oghf.org.uk/httpdocs/templates/rt_horizon/index.php"
    
                }
            }
        }
 
        // Load the language file for the template
        $lang = CmsFactory::getLanguage();
 
        // 1.5 or core then 1.6
        $lang->load('tpl_' . $template, JPATH_BASE)
            || ($inherits !== '' && $lang->load('tpl_' . $inherits, JPATH_BASE))
            || $lang->load('tpl_' . $template, $directory . '/' . $template)
            || ($inherits !== '' && $lang->load('tpl_' . $inherits, $directory . '/' . $inherits));
 
        // Assign the variables
        $this->baseurl  = Uri::base(true);
        $this->params   = $params['params'] ?? new Registry();
        $this->template = $template;
 
        // Load
        $this->_template = $this->_loadTemplate($baseDir, $file);
 
        return $this;
    }
 
    /**
     * Parse a document template
     *
     * @return  HtmlDocument  instance of $this to allow chaining
     *
     * @since   1.7.0
     */
    protected function _parseTemplate()
    {
        $matches = [];
 
        if (preg_match_all('#<jdoc:include\ type="([^"]+)"(.*)\/>#iU', $this->_template, $matches)) {
            $messages            = [];
            $template_tags_first = [];
            $template_tags_last  = [];
 
        $name  = $options['name'] ?? '';
        $title = $options['title'] ?? '';
 
        parent::$_buffer[$type][$name][$title] = $content;
 
        return $this;
    }
 
    /**
     * Parses the template and populates the buffer
     *
     * @param   array  $params  Parameters for fetching the template
     *
     * @return  HtmlDocument instance of $this to allow chaining
     *
     * @since   1.7.0
     */
    public function parse($params = [])
    {
        return $this->_fetchTemplate($params)->_parseTemplate();
    }
 
    /**
     * Outputs the template to the browser.
     *
     * @param   boolean  $caching  If true, cache the output
     * @param   array    $params   Associative array of attributes
     *
     * @return  string The rendered data
     *
     * @since   1.7.0
     */
    public function render($caching = false, $params = [])
    {
        $this->_caching = $caching;
 
        if (empty($this->_template)) {
            $this->parse($params);
        }
 
     * @since   3.2
     */
    protected function render()
    {
        // Setup the document options.
        $this->docOptions['template']         = $this->get('theme');
        $this->docOptions['file']             = $this->get('themeFile', 'index.php');
        $this->docOptions['params']           = $this->get('themeParams');
        $this->docOptions['csp_nonce']        = $this->get('csp_nonce');
        $this->docOptions['templateInherits'] = $this->get('themeInherits');
 
        if ($this->get('themes.base')) {
            $this->docOptions['directory'] = $this->get('themes.base');
        } else {
            // Fall back to constants.
            $this->docOptions['directory'] = \defined('JPATH_THEMES') ? JPATH_THEMES : (\defined('JPATH_BASE') ? JPATH_BASE : __DIR__) . '/themes';
        }
 
        // Parse the document.
        $this->document->parse($this->docOptions);
 
        // Trigger the onBeforeRender event.
        PluginHelper::importPlugin('system');
        $this->triggerEvent('onBeforeRender');
 
        $caching = false;
 
        if ($this->isClient('site') && $this->get('caching') && $this->get('caching', 2) == 2 && !Factory::getUser()->get('id')) {
            $caching = true;
        }
 
        // Render the document.
        $data = $this->document->render($caching, $this->docOptions);
 
        // Set the application output data.
        $this->setBody($data);
 
        // Trigger the onAfterRender event.
        $this->triggerEvent('onAfterRender');
 
                    $this->set('themeFile', 'offline.php');
                    $this->setHeader('Status', '503 Service Temporarily Unavailable', 'true');
                }
 
                if (!is_dir(JPATH_THEMES . '/' . $template->template) && !$this->get('offline')) {
                    $this->set('themeFile', 'component.php');
                }
 
                // Ensure themeFile is set by now
                if ($this->get('themeFile') == '') {
                    $this->set('themeFile', $file . '.php');
                }
 
                // Pass the parent template to the state
                $this->set('themeInherits', $template->parent);
 
                break;
        }
 
        parent::render();
    }
 
    /**
     * Route the application.
     *
     * Routing is the process of examining the request environment to determine which
     * component should receive the request. The component optional parameters
     * are then set in the request object to be processed when the application is being
     * dispatched.
     *
     * @return  void
     *
     * @since   3.2
     */
    protected function route()
    {
        // Get the full request URI.
        $uri = clone Uri::getInstance();
 
        // It is not possible to inject the SiteRouter as it requires a SiteApplication
     * Execute the application.
     *
     * @return  void
     *
     * @since   3.2
     */
    public function execute()
    {
        try {
            $this->sanityCheckSystemVariables();
            $this->setupLogging();
            $this->createExtensionNamespaceMap();
 
            // Perform application routines.
            $this->doExecute();
 
            // If we have an application document object, render it.
            if ($this->document instanceof \Joomla\CMS\Document\Document) {
                // Render the application output.
                $this->render();
            }
 
            // If gzip compression is enabled in configuration and the server is compliant, compress the output.
            if ($this->get('gzip') && !ini_get('zlib.output_compression') && ini_get('output_handler') !== 'ob_gzhandler') {
                $this->compress();
 
                // Trigger the onAfterCompress event.
                $this->triggerEvent('onAfterCompress');
            }
        } catch (\Throwable $throwable) {
            /** @var ErrorEvent $event */
            $event = AbstractEvent::create(
                'onError',
                [
                    'subject'     => $throwable,
                    'eventClass'  => ErrorEvent::class,
                    'application' => $this,
                ]
            );
 
 *
 * In addition to aliasing "common" service keys, we also create aliases for the PHP classes to ensure autowiring objects
 * is supported.  This includes aliases for aliased class names, and the keys for aliased class names should be considered
 * deprecated to be removed when the class name alias is removed as well.
 */
$container->alias('session.web', 'session.web.site')
    ->alias('session', 'session.web.site')
    ->alias('JSession', 'session.web.site')
    ->alias(\Joomla\CMS\Session\Session::class, 'session.web.site')
    ->alias(\Joomla\Session\Session::class, 'session.web.site')
    ->alias(\Joomla\Session\SessionInterface::class, 'session.web.site');
 
// Instantiate the application.
$app = $container->get(\Joomla\CMS\Application\SiteApplication::class);
 
// Set the application as global app
\Joomla\CMS\Factory::$application = $app;
 
// Execute the application.
$app->execute();
 
define('JOOMLA_MINIMUM_PHP', '7.2.5');
 
if (version_compare(PHP_VERSION, JOOMLA_MINIMUM_PHP, '<')) {
    die(
        str_replace(
            '{{phpversion}}',
            JOOMLA_MINIMUM_PHP,
            file_get_contents(dirname(__FILE__) . '/templates/system/incompatible.html')
        )
    );
}
 
/**
 * Constant that is checked in included files to prevent direct access.
 * define() is used rather than "const" to not error for PHP 5.2 and lower
 */
define('_JEXEC', 1);
 
// Run the application - All executable code should be triggered through this file
require_once dirname(__FILE__) . '/includes/app.php';
 
Arguments
  1. "/var/www/vhosts/oghf.org.uk/httpdocs/includes/app.php"
    

Environment & details:

Key Value
type
"everyone"
start
"40"
empty
empty
empty
empty
Key Value
USER
"oghf.org.uk_g1dd6j0plzk"
HOME
"/var/www/vhosts/oghf.org.uk"
SCRIPT_NAME
"/index.php"
REQUEST_URI
"/community/users/verified/latest?type=everyone&start=40"
QUERY_STRING
"type=everyone&start=40"
REQUEST_METHOD
"GET"
SERVER_PROTOCOL
"HTTP/1.0"
GATEWAY_INTERFACE
"CGI/1.1"
REDIRECT_QUERY_STRING
"type=everyone&start=40"
REDIRECT_URL
"/community/users/verified/latest"
REMOTE_PORT
"51950"
SCRIPT_FILENAME
"/var/www/vhosts/oghf.org.uk/httpdocs/index.php"
SERVER_ADMIN
"root@localhost"
CONTEXT_DOCUMENT_ROOT
"/var/www/vhosts/oghf.org.uk/httpdocs"
CONTEXT_PREFIX
""
REQUEST_SCHEME
"https"
DOCUMENT_ROOT
"/var/www/vhosts/oghf.org.uk/httpdocs"
REMOTE_ADDR
"18.221.161.79"
SERVER_PORT
"443"
SERVER_ADDR
"51.195.155.220"
SERVER_NAME
"www.oghf.org.uk"
SERVER_SOFTWARE
"Apache"
SERVER_SIGNATURE
""
PATH
"/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin"
HTTP_ACCEPT_ENCODING
"gzip, br, zstd, deflate"
HTTP_USER_AGENT
"Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)"
HTTP_ACCEPT
"*/*"
HTTP_CONNECTION
"close"
HTTP_X_ACCEL_INTERNAL
"/internal-nginx-static-location"
HTTP_X_REAL_IP
"18.221.161.79"
HTTP_HOST
"www.oghf.org.uk"
proxy-nokeepalive
"1"
HTTPS
"on"
HTTP_AUTHORIZATION
""
PASSENGER_DOWNLOAD_NATIVE_SUPPORT_BINARY
"0"
PASSENGER_COMPILE_NATIVE_SUPPORT_BINARY
"0"
PERL5LIB
"/usr/share/awstats/lib:/usr/share/awstats/plugins"
SCRIPT_URI
"https://www.oghf.org.uk/community/users/verified/latest"
SCRIPT_URL
"/community/users/verified/latest"
UNIQUE_ID
"ZkOtdFudihRFLjuwrSU6SwAAAMQ"
REDIRECT_STATUS
"200"
REDIRECT_HTTPS
"on"
REDIRECT_HTTP_AUTHORIZATION
""
REDIRECT_PASSENGER_DOWNLOAD_NATIVE_SUPPORT_BINARY
"0"
REDIRECT_PASSENGER_COMPILE_NATIVE_SUPPORT_BINARY
"0"
REDIRECT_PERL5LIB
"/usr/share/awstats/lib:/usr/share/awstats/plugins"
REDIRECT_SCRIPT_URI
"https://www.oghf.org.uk/community/users/verified/latest"
REDIRECT_SCRIPT_URL
"/community/users/verified/latest"
REDIRECT_UNIQUE_ID
"ZkOtdFudihRFLjuwrSU6SwAAAMQ"
FCGI_ROLE
"RESPONDER"
PHP_SELF
"/index.php"
REQUEST_TIME_FLOAT
1715711348.5954
REQUEST_TIME
1715711348
empty
0. Whoops\Handler\PrettyPageHandler