Illuminate \ View \ ViewException (E_ERROR)
Unable to locate a class or view for component [link]. (View: /home/forge/dev.londonpacific.staging.poundandgrain.ca/releases/20250825173551/web/app/themes/londonpacific/resources/views/partials/page-header.blade.php)
Previous exceptions
  • Unable to locate a class or view for component [link]. (0)
Illuminate\View\ViewException thrown with message "Unable to locate a class or view for component [link]. (View: /home/forge/dev.londonpacific.staging.poundandgrain.ca/releases/20250825173551/web/app/themes/londonpacific/resources/views/partials/page-header.blade.php)" Stacktrace: #25 Illuminate\View\ViewException in /home/forge/dev.londonpacific.staging.poundandgrain.ca/releases/20250825173551/web/app/themes/londonpacific/vendor/illuminate/view/Compilers/ComponentTagCompiler.php:245 #24 Illuminate\View\Engines\CompilerEngine:handleViewException in /home/forge/dev.londonpacific.staging.poundandgrain.ca/releases/20250825173551/web/app/themes/londonpacific/vendor/illuminate/view/Engines/PhpEngine.php:43 #23 InvalidArgumentException in /home/forge/dev.londonpacific.staging.poundandgrain.ca/releases/20250825173551/web/app/themes/londonpacific/vendor/illuminate/view/Compilers/ComponentTagCompiler.php:245 #22 Illuminate\View\Compilers\ComponentTagCompiler:componentClass in /home/forge/dev.londonpacific.staging.poundandgrain.ca/releases/20250825173551/web/app/themes/londonpacific/vendor/illuminate/view/Compilers/ComponentTagCompiler.php:185 #21 Illuminate\View\Compilers\ComponentTagCompiler:componentString in /home/forge/dev.londonpacific.staging.poundandgrain.ca/releases/20250825173551/web/app/themes/londonpacific/vendor/illuminate/view/Compilers/ComponentTagCompiler.php:170 #20 Illuminate\View\Compilers\ComponentTagCompiler:Illuminate\View\Compilers\{closure} in [internal]:0 #19 preg_replace_callback in /home/forge/dev.londonpacific.staging.poundandgrain.ca/releases/20250825173551/web/app/themes/londonpacific/vendor/illuminate/view/Compilers/ComponentTagCompiler.php:165 #18 Illuminate\View\Compilers\ComponentTagCompiler:compileSelfClosingTags in /home/forge/dev.londonpacific.staging.poundandgrain.ca/releases/20250825173551/web/app/themes/londonpacific/vendor/illuminate/view/Compilers/ComponentTagCompiler.php:79 #17 Illuminate\View\Compilers\ComponentTagCompiler:compileTags in /home/forge/dev.londonpacific.staging.poundandgrain.ca/releases/20250825173551/web/app/themes/londonpacific/vendor/illuminate/view/Compilers/ComponentTagCompiler.php:66 #16 Illuminate\View\Compilers\ComponentTagCompiler:compile in /home/forge/dev.londonpacific.staging.poundandgrain.ca/releases/20250825173551/web/app/themes/londonpacific/vendor/illuminate/view/Compilers/BladeCompiler.php:322 #15 Illuminate\View\Compilers\BladeCompiler:compileComponentTags in /home/forge/dev.londonpacific.staging.poundandgrain.ca/releases/20250825173551/web/app/themes/londonpacific/vendor/illuminate/view/Compilers/BladeCompiler.php:222 #14 Illuminate\View\Compilers\BladeCompiler:compileString in /home/forge/dev.londonpacific.staging.poundandgrain.ca/releases/20250825173551/web/app/themes/londonpacific/vendor/illuminate/view/Compilers/BladeCompiler.php:143 #13 Illuminate\View\Compilers\BladeCompiler:compile in /home/forge/dev.londonpacific.staging.poundandgrain.ca/releases/20250825173551/web/app/themes/londonpacific/vendor/illuminate/view/Engines/CompilerEngine.php:51 #12 Illuminate\View\Engines\CompilerEngine:get in /home/forge/dev.londonpacific.staging.poundandgrain.ca/releases/20250825173551/web/app/themes/londonpacific/vendor/illuminate/view/View.php:139 #11 Illuminate\View\View:getContents in /home/forge/dev.londonpacific.staging.poundandgrain.ca/releases/20250825173551/web/app/themes/londonpacific/vendor/illuminate/view/View.php:122 #10 Illuminate\View\View:renderContents in /home/forge/dev.londonpacific.staging.poundandgrain.ca/releases/20250825173551/web/app/themes/londonpacific/vendor/illuminate/view/View.php:91 #9 Illuminate\View\View:render in /home/forge/dev.londonpacific.staging.poundandgrain.ca/releases/20250825173551/web/app/themes/londonpacific/storage/framework/views/92e2d4bf47572d239234139856f46ba279d075ed.php:2 #8 include in /home/forge/dev.londonpacific.staging.poundandgrain.ca/releases/20250825173551/web/app/themes/londonpacific/vendor/illuminate/view/Engines/PhpEngine.php:41 #7 Illuminate\View\Engines\PhpEngine:evaluatePath in /home/forge/dev.londonpacific.staging.poundandgrain.ca/releases/20250825173551/web/app/themes/londonpacific/vendor/illuminate/view/Engines/CompilerEngine.php:57 #6 Illuminate\View\Engines\CompilerEngine:get in /home/forge/dev.londonpacific.staging.poundandgrain.ca/releases/20250825173551/web/app/themes/londonpacific/vendor/illuminate/view/View.php:139 #5 Illuminate\View\View:getContents in /home/forge/dev.londonpacific.staging.poundandgrain.ca/releases/20250825173551/web/app/themes/londonpacific/vendor/illuminate/view/View.php:122 #4 Illuminate\View\View:renderContents in /home/forge/dev.londonpacific.staging.poundandgrain.ca/releases/20250825173551/web/app/themes/londonpacific/vendor/illuminate/view/View.php:91 #3 Illuminate\View\View:render in /home/forge/dev.londonpacific.staging.poundandgrain.ca/releases/20250825173551/web/app/themes/londonpacific/index.php:4 #2 include in /home/forge/dev.londonpacific.staging.poundandgrain.ca/releases/20250825173551/web/wp/wp-includes/template-loader.php:106 #1 require_once in /home/forge/dev.londonpacific.staging.poundandgrain.ca/releases/20250825173551/web/wp/wp-blog-header.php:19 #0 require in /home/forge/dev.londonpacific.staging.poundandgrain.ca/releases/20250825173551/web/index.php:6
25
Illuminate\View\ViewException
/vendor/illuminate/view/Compilers/ComponentTagCompiler.php245
24
Illuminate\View\Engines\CompilerEngine handleViewException
/vendor/illuminate/view/Engines/PhpEngine.php43
23
InvalidArgumentException
/vendor/illuminate/view/Compilers/ComponentTagCompiler.php245
22
Illuminate\View\Compilers\ComponentTagCompiler componentClass
/vendor/illuminate/view/Compilers/ComponentTagCompiler.php185
21
Illuminate\View\Compilers\ComponentTagCompiler componentString
/vendor/illuminate/view/Compilers/ComponentTagCompiler.php170
20
Illuminate\View\Compilers\ComponentTagCompiler Illuminate\View\Compilers\{closure}
[internal]0
19
preg_replace_callback
/vendor/illuminate/view/Compilers/ComponentTagCompiler.php165
18
Illuminate\View\Compilers\ComponentTagCompiler compileSelfClosingTags
/vendor/illuminate/view/Compilers/ComponentTagCompiler.php79
17
Illuminate\View\Compilers\ComponentTagCompiler compileTags
/vendor/illuminate/view/Compilers/ComponentTagCompiler.php66
16
Illuminate\View\Compilers\ComponentTagCompiler compile
/vendor/illuminate/view/Compilers/BladeCompiler.php322
15
Illuminate\View\Compilers\BladeCompiler compileComponentTags
/vendor/illuminate/view/Compilers/BladeCompiler.php222
14
Illuminate\View\Compilers\BladeCompiler compileString
/vendor/illuminate/view/Compilers/BladeCompiler.php143
13
Illuminate\View\Compilers\BladeCompiler compile
/vendor/illuminate/view/Engines/CompilerEngine.php51
12
Illuminate\View\Engines\CompilerEngine get
/vendor/illuminate/view/View.php139
11
Illuminate\View\View getContents
/vendor/illuminate/view/View.php122
10
Illuminate\View\View renderContents
/vendor/illuminate/view/View.php91
9
Illuminate\View\View render
/storage/framework/views/92e2d4bf47572d239234139856f46ba279d075ed.php2
8
include
/vendor/illuminate/view/Engines/PhpEngine.php41
7
Illuminate\View\Engines\PhpEngine evaluatePath
/vendor/illuminate/view/Engines/CompilerEngine.php57
6
Illuminate\View\Engines\CompilerEngine get
/vendor/illuminate/view/View.php139
5
Illuminate\View\View getContents
/vendor/illuminate/view/View.php122
4
Illuminate\View\View renderContents
/vendor/illuminate/view/View.php91
3
Illuminate\View\View render
/index.php4
2
include
/home/forge/dev.londonpacific.staging.poundandgrain.ca/releases/20250825173551/web/wp/wp-includes/template-loader.php106
1
require_once
/home/forge/dev.londonpacific.staging.poundandgrain.ca/releases/20250825173551/web/wp/wp-blog-header.php19
0
require
/home/forge/dev.londonpacific.staging.poundandgrain.ca/releases/20250825173551/web/index.php6
/home/forge/dev.londonpacific.staging.poundandgrain.ca/releases/20250825173551/web/app/themes/londonpacific/vendor/illuminate/view/Compilers/ComponentTagCompiler.php
            }
 
            if ($viewFactory->exists($alias)) {
                return $alias;
            }
 
            throw new InvalidArgumentException(
                "Unable to locate class or view [{$alias}] for component [{$component}]."
            );
        }
 
        if (class_exists($class = $this->guessClassName($component))) {
            return $class;
        }
 
        if ($viewFactory->exists($view = $this->guessViewName($component))) {
            return $view;
        }
 
        throw new InvalidArgumentException(
            "Unable to locate a class or view for component [{$component}]."
        );
    }
 
    /**
     * Guess the class name for the given component.
     *
     * @param  string  $component
     * @return string
     */
    public function guessClassName(string $component)
    {
        $namespace = Container::getInstance()
                    ->make(Application::class)
                    ->getNamespace();
 
        $componentPieces = array_map(function ($componentPiece) {
            return ucfirst(Str::camel($componentPiece));
        }, explode('.', $component));
 
Arguments
  1. "Unable to locate a class or view for component [link]. (View: /home/forge/dev.londonpacific.staging.poundandgrain.ca/releases/20250825173551/web/app/themes/londonpacific/resources/views/partials/page-header.blade.php)"
    
/home/forge/dev.londonpacific.staging.poundandgrain.ca/releases/20250825173551/web/app/themes/londonpacific/vendor/illuminate/view/Engines/PhpEngine.php
     *
     * @param  string  $__path
     * @param  array  $__data
     * @return string
     */
    protected function evaluatePath($__path, $__data)
    {
        $obLevel = ob_get_level();
 
        ob_start();
 
        extract($__data, EXTR_SKIP);
 
        // We'll evaluate the contents of the view inside a try/catch block so we can
        // flush out any stray output that might get out before an error occurs or
        // an exception is thrown. This prevents any partial views from leaking.
        try {
            include $__path;
        } catch (Throwable $e) {
            $this->handleViewException($e, $obLevel);
        }
 
        return ltrim(ob_get_clean());
    }
 
    /**
     * Handle a view exception.
     *
     * @param  \Throwable  $e
     * @param  int  $obLevel
     * @return void
     *
     * @throws \Throwable
     */
    protected function handleViewException(Throwable $e, $obLevel)
    {
        while (ob_get_level() > $obLevel) {
            ob_end_clean();
        }
 
/home/forge/dev.londonpacific.staging.poundandgrain.ca/releases/20250825173551/web/app/themes/londonpacific/vendor/illuminate/view/Compilers/ComponentTagCompiler.php
            }
 
            if ($viewFactory->exists($alias)) {
                return $alias;
            }
 
            throw new InvalidArgumentException(
                "Unable to locate class or view [{$alias}] for component [{$component}]."
            );
        }
 
        if (class_exists($class = $this->guessClassName($component))) {
            return $class;
        }
 
        if ($viewFactory->exists($view = $this->guessViewName($component))) {
            return $view;
        }
 
        throw new InvalidArgumentException(
            "Unable to locate a class or view for component [{$component}]."
        );
    }
 
    /**
     * Guess the class name for the given component.
     *
     * @param  string  $component
     * @return string
     */
    public function guessClassName(string $component)
    {
        $namespace = Container::getInstance()
                    ->make(Application::class)
                    ->getNamespace();
 
        $componentPieces = array_map(function ($componentPiece) {
            return ucfirst(Str::camel($componentPiece));
        }, explode('.', $component));
 
Arguments
  1. "Unable to locate a class or view for component [link]."
    
Exception message: Unable to locate a class or view for component [link].
/home/forge/dev.londonpacific.staging.poundandgrain.ca/releases/20250825173551/web/app/themes/londonpacific/vendor/illuminate/view/Compilers/ComponentTagCompiler.php
            $this->boundAttributes = [];
 
            $attributes = $this->getAttributesFromAttributeString($matches['attributes']);
 
            return $this->componentString($matches[1], $attributes)."\n@endcomponentClass ";
        }, $value);
    }
 
    /**
     * Compile the Blade component string for the given component and attributes.
     *
     * @param  string  $component
     * @param  array  $attributes
     * @return string
     *
     * @throws \InvalidArgumentException
     */
    protected function componentString(string $component, array $attributes)
    {
        $class = $this->componentClass($component);
 
        [$data, $attributes] = $this->partitionDataAndAttributes($class, $attributes);
 
        $data = $data->mapWithKeys(function ($value, $key) {
            return [Str::camel($key) => $value];
        });
 
        // If the component doesn't exists as a class we'll assume it's a class-less
        // component and pass the component as a view parameter to the data so it
        // can be accessed within the component and we can render out the view.
        if (! class_exists($class)) {
            $parameters = [
                'view' => "'$class'",
                'data' => '['.$this->attributesToString($data->all(), $escapeBound = false).']',
            ];
 
            $class = AnonymousComponent::class;
        } else {
            $parameters = $data->all();
        }
/home/forge/dev.londonpacific.staging.poundandgrain.ca/releases/20250825173551/web/app/themes/londonpacific/vendor/illuminate/view/Compilers/ComponentTagCompiler.php
                            (?:
                                \\\"[^\\\"]*\\\"
                                |
                                \'[^\']*\'
                                |
                                [^\'\\\"=<>]+
                            )
                        )?
                    )*
                    \s*
                )
            \/>
        /x";
 
        return preg_replace_callback($pattern, function (array $matches) {
            $this->boundAttributes = [];
 
            $attributes = $this->getAttributesFromAttributeString($matches['attributes']);
 
            return $this->componentString($matches[1], $attributes)."\n@endcomponentClass ";
        }, $value);
    }
 
    /**
     * Compile the Blade component string for the given component and attributes.
     *
     * @param  string  $component
     * @param  array  $attributes
     * @return string
     *
     * @throws \InvalidArgumentException
     */
    protected function componentString(string $component, array $attributes)
    {
        $class = $this->componentClass($component);
 
        [$data, $attributes] = $this->partitionDataAndAttributes($class, $attributes);
 
        $data = $data->mapWithKeys(function ($value, $key) {
            return [Str::camel($key) => $value];
[internal]
/home/forge/dev.londonpacific.staging.poundandgrain.ca/releases/20250825173551/web/app/themes/londonpacific/vendor/illuminate/view/Compilers/ComponentTagCompiler.php
                    (?:
                        \s+
                        [\w\-:.@]+
                        (
                            =
                            (?:
                                \\\"[^\\\"]*\\\"
                                |
                                \'[^\']*\'
                                |
                                [^\'\\\"=<>]+
                            )
                        )?
                    )*
                    \s*
                )
            \/>
        /x";
 
        return preg_replace_callback($pattern, function (array $matches) {
            $this->boundAttributes = [];
 
            $attributes = $this->getAttributesFromAttributeString($matches['attributes']);
 
            return $this->componentString($matches[1], $attributes)."\n@endcomponentClass ";
        }, $value);
    }
 
    /**
     * Compile the Blade component string for the given component and attributes.
     *
     * @param  string  $component
     * @param  array  $attributes
     * @return string
     *
     * @throws \InvalidArgumentException
     */
    protected function componentString(string $component, array $attributes)
    {
        $class = $this->componentClass($component);
/home/forge/dev.londonpacific.staging.poundandgrain.ca/releases/20250825173551/web/app/themes/londonpacific/vendor/illuminate/view/Compilers/ComponentTagCompiler.php
     * @return string
     */
    public function compile(string $value)
    {
        $value = $this->compileSlots($value);
 
        return $this->compileTags($value);
    }
 
    /**
     * Compile the tags within the given string.
     *
     * @param  string  $value
     * @return string
     *
     * @throws \InvalidArgumentException
     */
    public function compileTags(string $value)
    {
        $value = $this->compileSelfClosingTags($value);
        $value = $this->compileOpeningTags($value);
        $value = $this->compileClosingTags($value);
 
        return $value;
    }
 
    /**
     * Compile the opening tags within the given string.
     *
     * @param  string  $value
     * @return string
     *
     * @throws \InvalidArgumentException
     */
    protected function compileOpeningTags(string $value)
    {
        $pattern = "/
            <
                \s*
                x[-\:]([\w\-\:\.]*)
/home/forge/dev.londonpacific.staging.poundandgrain.ca/releases/20250825173551/web/app/themes/londonpacific/vendor/illuminate/view/Compilers/ComponentTagCompiler.php
     * @return void
     */
    public function __construct(array $aliases = [], ?BladeCompiler $blade = null)
    {
        $this->aliases = $aliases;
 
        $this->blade = $blade ?: new BladeCompiler(new Filesystem, sys_get_temp_dir());
    }
 
    /**
     * Compile the component and slot tags within the given string.
     *
     * @param  string  $value
     * @return string
     */
    public function compile(string $value)
    {
        $value = $this->compileSlots($value);
 
        return $this->compileTags($value);
    }
 
    /**
     * Compile the tags within the given string.
     *
     * @param  string  $value
     * @return string
     *
     * @throws \InvalidArgumentException
     */
    public function compileTags(string $value)
    {
        $value = $this->compileSelfClosingTags($value);
        $value = $this->compileOpeningTags($value);
        $value = $this->compileClosingTags($value);
 
        return $value;
    }
 
    /**
/home/forge/dev.londonpacific.staging.poundandgrain.ca/releases/20250825173551/web/app/themes/londonpacific/vendor/illuminate/view/Compilers/BladeCompiler.php
        return $this->getRawPlaceholder(
            array_push($this->rawBlocks, $value) - 1
        );
    }
 
    /**
     * Compile the component tags.
     *
     * @param  string  $value
     * @return string
     */
    protected function compileComponentTags($value)
    {
        if (! $this->compilesComponentTags) {
            return $value;
        }
 
        return (new ComponentTagCompiler(
            $this->classComponentAliases, $this
        ))->compile($value);
    }
 
    /**
     * Replace the raw placeholders with the original code stored in the raw blocks.
     *
     * @param  string  $result
     * @return string
     */
    protected function restoreRawContent($result)
    {
        $result = preg_replace_callback('/'.$this->getRawPlaceholder('(\d+)').'/', function ($matches) {
            return $this->rawBlocks[$matches[1]];
        }, $result);
 
        $this->rawBlocks = [];
 
        return $result;
    }
 
    /**
/home/forge/dev.londonpacific.staging.poundandgrain.ca/releases/20250825173551/web/app/themes/londonpacific/vendor/illuminate/view/Compilers/BladeCompiler.php
    public function setPath($path)
    {
        $this->path = $path;
    }
 
    /**
     * Compile the given Blade template contents.
     *
     * @param  string  $value
     * @return string
     */
    public function compileString($value)
    {
        [$this->footer, $result] = [[], ''];
 
        // First we will compile the Blade component tags. This is a precompile style
        // step which compiles the component Blade tags into @component directives
        // that may be used by Blade. Then we should call any other precompilers.
        $value = $this->compileComponentTags(
            $this->compileComments($this->storeUncompiledBlocks($value))
        );
 
        foreach ($this->precompilers as $precompiler) {
            $value = call_user_func($precompiler, $value);
        }
 
        // Here we will loop through all of the tokens returned by the Zend lexer and
        // parse each one into the corresponding valid PHP. We will then have this
        // template as the correctly rendered PHP that can be rendered natively.
        foreach (token_get_all($value) as $token) {
            $result .= is_array($token) ? $this->parseToken($token) : $token;
        }
 
        if (! empty($this->rawBlocks)) {
            $result = $this->restoreRawContent($result);
        }
 
        // If there are any footer lines that need to get added to a template we will
        // add them here at the end of the template. This gets used mainly for the
        // template inheritance via the extends keyword that should be appended.
/home/forge/dev.londonpacific.staging.poundandgrain.ca/releases/20250825173551/web/app/themes/londonpacific/vendor/illuminate/view/Compilers/BladeCompiler.php
     * Indicates if component tags should be compiled.
     *
     * @var bool
     */
    protected $compilesComponentTags = true;
 
    /**
     * Compile the view at the given path.
     *
     * @param  string|null  $path
     * @return void
     */
    public function compile($path = null)
    {
        if ($path) {
            $this->setPath($path);
        }
 
        if (! is_null($this->cachePath)) {
            $contents = $this->compileString($this->files->get($this->getPath()));
 
            if (! empty($this->getPath())) {
                $contents = $this->appendFilePath($contents);
            }
 
            $this->files->put(
                $this->getCompiledPath($this->getPath()), $contents
            );
        }
    }
 
    /**
     * Append the file path to the compiled string.
     *
     * @param  string  $contents
     * @return string
     */
    protected function appendFilePath($contents)
    {
        $tokens = $this->getOpenAndClosingPhpTokens($contents);
/home/forge/dev.londonpacific.staging.poundandgrain.ca/releases/20250825173551/web/app/themes/londonpacific/vendor/illuminate/view/Engines/CompilerEngine.php
    {
        $this->compiler = $compiler;
    }
 
    /**
     * Get the evaluated contents of the view.
     *
     * @param  string  $path
     * @param  array  $data
     * @return string
     */
    public function get($path, array $data = [])
    {
        $this->lastCompiled[] = $path;
 
        // If this given view has expired, which means it has simply been edited since
        // it was last compiled, we will re-compile the views so we can evaluate a
        // fresh copy of the view. We'll pass the compiler the path of the view.
        if ($this->compiler->isExpired($path)) {
            $this->compiler->compile($path);
        }
 
        // Once we have the path to the compiled file, we will evaluate the paths with
        // typical PHP just like any other templates. We also keep a stack of views
        // which have been rendered for right exception messages to be generated.
        $results = $this->evaluatePath($this->compiler->getCompiledPath($path), $data);
 
        array_pop($this->lastCompiled);
 
        return $results;
    }
 
    /**
     * Handle a view exception.
     *
     * @param  \Throwable  $e
     * @param  int  $obLevel
     * @return void
     *
     * @throws \Throwable
/home/forge/dev.londonpacific.staging.poundandgrain.ca/releases/20250825173551/web/app/themes/londonpacific/vendor/illuminate/view/View.php
        $this->factory->callComposer($this);
 
        $contents = $this->getContents();
 
        // Once we've finished rendering the view, we'll decrement the render count
        // so that each sections get flushed out next time a view is created and
        // no old sections are staying around in the memory of an environment.
        $this->factory->decrementRender();
 
        return $contents;
    }
 
    /**
     * Get the evaluated contents of the view.
     *
     * @return string
     */
    protected function getContents()
    {
        return $this->engine->get($this->path, $this->gatherData());
    }
 
    /**
     * Get the data bound to the view instance.
     *
     * @return array
     */
    public function gatherData()
    {
        $data = array_merge($this->factory->getShared(), $this->data);
 
        foreach ($data as $key => $value) {
            if ($value instanceof Renderable) {
                $data[$key] = $value->render();
            }
        }
 
        return $data;
    }
 
/home/forge/dev.londonpacific.staging.poundandgrain.ca/releases/20250825173551/web/app/themes/londonpacific/vendor/illuminate/view/View.php
 
            throw $e;
        }
    }
 
    /**
     * Get the contents of the view instance.
     *
     * @return string
     */
    protected function renderContents()
    {
        // We will keep track of the amount of views being rendered so we can flush
        // the section after the complete rendering operation is done. This will
        // clear out the sections for any separate views that may be rendered.
        $this->factory->incrementRender();
 
        $this->factory->callComposer($this);
 
        $contents = $this->getContents();
 
        // Once we've finished rendering the view, we'll decrement the render count
        // so that each sections get flushed out next time a view is created and
        // no old sections are staying around in the memory of an environment.
        $this->factory->decrementRender();
 
        return $contents;
    }
 
    /**
     * Get the evaluated contents of the view.
     *
     * @return string
     */
    protected function getContents()
    {
        return $this->engine->get($this->path, $this->gatherData());
    }
 
    /**
/home/forge/dev.londonpacific.staging.poundandgrain.ca/releases/20250825173551/web/app/themes/londonpacific/vendor/illuminate/view/View.php
        $this->view = $view;
        $this->path = $path;
        $this->engine = $engine;
        $this->factory = $factory;
 
        $this->data = $data instanceof Arrayable ? $data->toArray() : (array) $data;
    }
 
    /**
     * Get the string contents of the view.
     *
     * @param  callable|null  $callback
     * @return array|string
     *
     * @throws \Throwable
     */
    public function render(callable $callback = null)
    {
        try {
            $contents = $this->renderContents();
 
            $response = isset($callback) ? $callback($this, $contents) : null;
 
            // Once we have the contents of the view, we will flush the sections if we are
            // done rendering all views so that there is nothing left hanging over when
            // another view gets rendered in the future by the application developer.
            $this->factory->flushStateIfDoneRendering();
 
            return ! is_null($response) ? $response : $contents;
        } catch (Throwable $e) {
            $this->factory->flushState();
 
            throw $e;
        }
    }
 
    /**
     * Get the contents of the view instance.
     *
     * @return string
/home/forge/dev.londonpacific.staging.poundandgrain.ca/releases/20250825173551/web/app/themes/londonpacific/storage/framework/views/92e2d4bf47572d239234139856f46ba279d075ed.php
<?php $__env->startSection('content'); ?>
  <?php echo $__env->make('partials.page-header', \Illuminate\Support\Arr::except(get_defined_vars(), ['__data', '__path']))->render(); ?>
 
  <?php if(! have_posts()): ?>
     <?php if (isset($component)) { $__componentOriginald4c8f106e1e33ab85c5d037c2504e2574c1b0975 = $component; } ?>
<?php $component = $__env->getContainer()->make(App\View\Components\Alert::class, ['type' => 'warning']); ?>
<?php $component->withName('alert'); ?>
<?php if ($component->shouldRender()): ?>
<?php $__env->startComponent($component->resolveView(), $component->data()); ?>
<?php $component->withAttributes([]); ?>
      <?php echo __('Sorry, no results were found.', 'sage'); ?>
 
     <?php if (isset($__componentOriginald4c8f106e1e33ab85c5d037c2504e2574c1b0975)): ?>
<?php $component = $__componentOriginald4c8f106e1e33ab85c5d037c2504e2574c1b0975; ?>
<?php unset($__componentOriginald4c8f106e1e33ab85c5d037c2504e2574c1b0975); ?>
<?php endif; ?>
<?php echo $__env->renderComponent(); ?>
<?php endif; ?> 
 
    <?php echo get_search_form(false); ?>
 
  <?php endif; ?>
 
  <?php while(have_posts()): ?> <?php (the_post()); ?>
    <?php echo $__env->first(['partials.content-' . get_post_type(), 'partials.content'], \Illuminate\Support\Arr::except(get_defined_vars(), ['__data', '__path']))->render(); ?>
  <?php endwhile; ?>
 
  <?php echo get_the_posts_navigation(); ?>
 
<?php $__env->stopSection(); ?>
 
<?php $__env->startSection('sidebar'); ?>
  <?php echo $__env->make('partials.sidebar', \Illuminate\Support\Arr::except(get_defined_vars(), ['__data', '__path']))->render(); ?>
<?php $__env->stopSection(); ?>
 
<?php echo $__env->make('layouts.app', \Illuminate\Support\Arr::except(get_defined_vars(), ['__data', '__path']))->render(); ?><?php /**PATH /home/forge/dev.londonpacific.staging.poundandgrain.ca/releases/20250825173551/web/app/themes/londonpacific/resources/views/index.blade.php ENDPATH**/ ?>
/home/forge/dev.londonpacific.staging.poundandgrain.ca/releases/20250825173551/web/app/themes/londonpacific/vendor/illuminate/view/Engines/PhpEngine.php
    /**
     * Get the evaluated contents of the view at the given path.
     *
     * @param  string  $__path
     * @param  array  $__data
     * @return string
     */
    protected function evaluatePath($__path, $__data)
    {
        $obLevel = ob_get_level();
 
        ob_start();
 
        extract($__data, EXTR_SKIP);
 
        // We'll evaluate the contents of the view inside a try/catch block so we can
        // flush out any stray output that might get out before an error occurs or
        // an exception is thrown. This prevents any partial views from leaking.
        try {
            include $__path;
        } catch (Throwable $e) {
            $this->handleViewException($e, $obLevel);
        }
 
        return ltrim(ob_get_clean());
    }
 
    /**
     * Handle a view exception.
     *
     * @param  \Throwable  $e
     * @param  int  $obLevel
     * @return void
     *
     * @throws \Throwable
     */
    protected function handleViewException(Throwable $e, $obLevel)
    {
        while (ob_get_level() > $obLevel) {
            ob_end_clean();
Arguments
  1. "/home/forge/dev.londonpacific.staging.poundandgrain.ca/releases/20250825173551/web/app/themes/londonpacific/storage/framework/views/92e2d4bf47572d239234139856f46ba279d075ed.php"
    
/home/forge/dev.londonpacific.staging.poundandgrain.ca/releases/20250825173551/web/app/themes/londonpacific/vendor/illuminate/view/Engines/CompilerEngine.php
     *
     * @param  string  $path
     * @param  array  $data
     * @return string
     */
    public function get($path, array $data = [])
    {
        $this->lastCompiled[] = $path;
 
        // If this given view has expired, which means it has simply been edited since
        // it was last compiled, we will re-compile the views so we can evaluate a
        // fresh copy of the view. We'll pass the compiler the path of the view.
        if ($this->compiler->isExpired($path)) {
            $this->compiler->compile($path);
        }
 
        // Once we have the path to the compiled file, we will evaluate the paths with
        // typical PHP just like any other templates. We also keep a stack of views
        // which have been rendered for right exception messages to be generated.
        $results = $this->evaluatePath($this->compiler->getCompiledPath($path), $data);
 
        array_pop($this->lastCompiled);
 
        return $results;
    }
 
    /**
     * Handle a view exception.
     *
     * @param  \Throwable  $e
     * @param  int  $obLevel
     * @return void
     *
     * @throws \Throwable
     */
    protected function handleViewException(Throwable $e, $obLevel)
    {
        $e = new ViewException($this->getMessage($e), 0, 1, $e->getFile(), $e->getLine(), $e);
 
        parent::handleViewException($e, $obLevel);
/home/forge/dev.londonpacific.staging.poundandgrain.ca/releases/20250825173551/web/app/themes/londonpacific/vendor/illuminate/view/View.php
        $this->factory->callComposer($this);
 
        $contents = $this->getContents();
 
        // Once we've finished rendering the view, we'll decrement the render count
        // so that each sections get flushed out next time a view is created and
        // no old sections are staying around in the memory of an environment.
        $this->factory->decrementRender();
 
        return $contents;
    }
 
    /**
     * Get the evaluated contents of the view.
     *
     * @return string
     */
    protected function getContents()
    {
        return $this->engine->get($this->path, $this->gatherData());
    }
 
    /**
     * Get the data bound to the view instance.
     *
     * @return array
     */
    public function gatherData()
    {
        $data = array_merge($this->factory->getShared(), $this->data);
 
        foreach ($data as $key => $value) {
            if ($value instanceof Renderable) {
                $data[$key] = $value->render();
            }
        }
 
        return $data;
    }
 
/home/forge/dev.londonpacific.staging.poundandgrain.ca/releases/20250825173551/web/app/themes/londonpacific/vendor/illuminate/view/View.php
 
            throw $e;
        }
    }
 
    /**
     * Get the contents of the view instance.
     *
     * @return string
     */
    protected function renderContents()
    {
        // We will keep track of the amount of views being rendered so we can flush
        // the section after the complete rendering operation is done. This will
        // clear out the sections for any separate views that may be rendered.
        $this->factory->incrementRender();
 
        $this->factory->callComposer($this);
 
        $contents = $this->getContents();
 
        // Once we've finished rendering the view, we'll decrement the render count
        // so that each sections get flushed out next time a view is created and
        // no old sections are staying around in the memory of an environment.
        $this->factory->decrementRender();
 
        return $contents;
    }
 
    /**
     * Get the evaluated contents of the view.
     *
     * @return string
     */
    protected function getContents()
    {
        return $this->engine->get($this->path, $this->gatherData());
    }
 
    /**
/home/forge/dev.londonpacific.staging.poundandgrain.ca/releases/20250825173551/web/app/themes/londonpacific/vendor/illuminate/view/View.php
        $this->view = $view;
        $this->path = $path;
        $this->engine = $engine;
        $this->factory = $factory;
 
        $this->data = $data instanceof Arrayable ? $data->toArray() : (array) $data;
    }
 
    /**
     * Get the string contents of the view.
     *
     * @param  callable|null  $callback
     * @return array|string
     *
     * @throws \Throwable
     */
    public function render(callable $callback = null)
    {
        try {
            $contents = $this->renderContents();
 
            $response = isset($callback) ? $callback($this, $contents) : null;
 
            // Once we have the contents of the view, we will flush the sections if we are
            // done rendering all views so that there is nothing left hanging over when
            // another view gets rendered in the future by the application developer.
            $this->factory->flushStateIfDoneRendering();
 
            return ! is_null($response) ? $response : $contents;
        } catch (Throwable $e) {
            $this->factory->flushState();
 
            throw $e;
        }
    }
 
    /**
     * Get the contents of the view instance.
     *
     * @return string
/home/forge/dev.londonpacific.staging.poundandgrain.ca/releases/20250825173551/web/app/themes/londonpacific/index.php
<!doctype html>
<html <?php language_attributes(); ?>>
 
    <?php echo \Roots\view(\Roots\app('sage.view'), \Roots\app('sage.data'))->render(); ?>
 
</html>
 
/home/forge/dev.londonpacific.staging.poundandgrain.ca/releases/20250825173551/web/wp/wp-includes/template-loader.php
            }
 
            break;
        }
    }
 
    if ( ! $template ) {
        $template = get_index_template();
    }
 
    /**
     * Filters the path of the current template before including it.
     *
     * @since 3.0.0
     *
     * @param string $template The path of the template to include.
     */
    $template = apply_filters( 'template_include', $template );
    if ( $template ) {
        include $template;
    } elseif ( current_user_can( 'switch_themes' ) ) {
        $theme = wp_get_theme();
        if ( $theme->errors() ) {
            wp_die( $theme->errors() );
        }
    }
    return;
}
 
Arguments
  1. "/home/forge/dev.londonpacific.staging.poundandgrain.ca/releases/20250825173551/web/app/themes/londonpacific/index.php"
    
/home/forge/dev.londonpacific.staging.poundandgrain.ca/releases/20250825173551/web/wp/wp-blog-header.php
<?php
/**
 * Loads the WordPress environment and template.
 *
 * @package WordPress
 */
 
if ( ! isset( $wp_did_header ) ) {
 
    $wp_did_header = true;
 
    // Load the WordPress library.
    require_once __DIR__ . '/wp-load.php';
 
    // Set up the WordPress query.
    wp();
 
    // Load the theme template.
    require_once ABSPATH . WPINC . '/template-loader.php';
 
}
 
Arguments
  1. "/home/forge/dev.londonpacific.staging.poundandgrain.ca/releases/20250825173551/web/wp/wp-includes/template-loader.php"
    
/home/forge/dev.londonpacific.staging.poundandgrain.ca/releases/20250825173551/web/index.php
<?php
/**
 * WordPress View Bootstrapper
 */
define('WP_USE_THEMES', true);
require __DIR__ . '/wp/wp-blog-header.php';
 
Arguments
  1. "/home/forge/dev.londonpacific.staging.poundandgrain.ca/releases/20250825173551/web/wp/wp-blog-header.php"
    

Environment & details:

Key Value
query_vars
array:1 [
  "category_name" => "toa-update"
]
query_string
"category_name=toa-update"
request
"category/toa-update"
matched_rule
"category/(.+?)/?$"
matched_query
"category_name=toa-update"
did_permalink
true
Key Value
query
array:1 [
  "category_name" => "toa-update"
]
query_vars
array:65 [
  "category_name" => "toa-update"
  "error" => ""
  "m" => ""
  "p" => 0
  "post_parent" => ""
  "subpost" => ""
  "subpost_id" => ""
  "attachment" => ""
  "attachment_id" => 0
  "name" => ""
  "pagename" => ""
  "page_id" => 0
  "second" => ""
  "minute" => ""
  "hour" => ""
  "day" => 0
  "monthnum" => 0
  "year" => 0
  "w" => 0
  "tag" => ""
  "cat" => 52
  "tag_id" => ""
  "author" => ""
  "author_name" => ""
  "feed" => ""
  "tb" => ""
  "paged" => 0
  "meta_key" => ""
  "meta_value" => ""
  "preview" => ""
  "s" => ""
  "sentence" => ""
  "title" => ""
  "fields" => ""
  "menu_order" => ""
  "embed" => ""
  "category__in" => []
  "category__not_in" => []
  "category__and" => []
  "post__in" => []
  "post__not_in" => []
  "post_name__in" => []
  "tag__in" => []
  "tag__not_in" => []
  "tag__and" => []
  "tag_slug__in" => []
  "tag_slug__and" => []
  "post_parent__in" => []
  "post_parent__not_in" => []
  "author__in" => []
  "author__not_in" => []
  "search_columns" => []
  "ignore_sticky_posts" => false
  "suppress_filters" => false
  "cache_results" => true
  "update_post_term_cache" => true
  "update_menu_item_cache" => false
  "lazy_load_term_meta" => true
  "update_post_meta_cache" => true
  "post_type" => ""
  "posts_per_page" => 10
  "nopaging" => false
  "comments_per_page" => "50"
  "no_found_rows" => false
  "order" => "DESC"
]
tax_query
WP_Tax_Query {#4026}
meta_query
WP_Meta_Query {#4025}
queried_object
WP_Term {#4031}
queried_object_id
52
request
"""
SELECT SQL_CALC_FOUND_ROWS  wp_posts.ID\n
\t\t\t\t\t FROM wp_posts  LEFT JOIN wp_term_relationships ON (wp_posts.ID = wp_term_relationships.object_id)\n
\t\t\t\t\t WHERE 1=1  AND ( \n
  wp_term_relationships.term_taxonomy_id IN (52)\n
) AND ((wp_posts.post_type = 'post' AND (wp_posts.post_status = 'publish' OR wp_posts.post_status = 'acf-disabled')))\n
\t\t\t\t\t GROUP BY wp_posts.ID\n
\t\t\t\t\t ORDER BY wp_posts.post_date DESC\n
\t\t\t\t\t LIMIT 0, 10
"""
post_count
4
current_post
-1
before_loop
true
current_comment
-1
found_posts
4
max_num_pages
1
is_archive
true
is_category
true
Key Value
ID
3417
post_author
"8"
post_date
"2025-03-31 14:30:47"
post_date_gmt
"2025-03-31 21:30:47"
post_content
"""
<!-- wp:paragraph {"style":{"typography":{"fontSize":"30px"}}} -->\n
<p style="font-size:30px">EXECUTIVE SUMMARY </p>\n
<!-- /wp:paragraph -->\n
\n
<!-- wp:spacer {"height":"25px"} -->\n
<div style="height:25px" aria-hidden="true" class="wp-block-spacer"></div>\n
<!-- /wp:spacer -->\n
\n
<!-- wp:paragraph {"align":"left","style":{"typography":{"fontSize":"16px"}}} -->\n
<p class="has-text-align-left" style="font-size:16px"><em><em>The province’s push for Transit-Oriented Areas (TOAs) or&nbsp;<strong>“urban planning with a sledgehammer”</strong>&nbsp;as I call it, continues to reshape policy in Metro Vancouver and the Fraser Valley. Municipalities are responding to the province’s timeline for taller, denser, transit-integrated communities with varying success. Some are proactive; others resist their legislated obligations.</em></em></p>\n
<!-- /wp:paragraph -->\n
\n
<!-- wp:spacer {"height":"25px"} -->\n
<div style="height:25px" aria-hidden="true" class="wp-block-spacer"></div>\n
<!-- /wp:spacer -->\n
\n
<!-- wp:paragraph {"style":{"typography":{"fontSize":"16px"}}} -->\n
<p style="font-size:16px"><em>Vancouver leads in policy implementation, with clear frameworks for CACs, DCLs, inclusionary zoning, and TOA integration. Yet, these policies are unlikely to spur development. Tower heights and wood-frame density are too low, and condominium homeownership opportunities are scarce. Our analysis suggests Vancouver must nearly double allowable density to unlock viable land assemblies.</em></p>\n
<!-- /wp:paragraph -->\n
\n
<!-- wp:spacer {"height":"25px"} -->\n
<div style="height:25px" aria-hidden="true" class="wp-block-spacer"></div>\n
<!-- /wp:spacer -->\n
\n
<!-- wp:paragraph {"style":{"typography":{"fontSize":"16px"}}} -->\n
<p style="font-size:16px"><em>Burnaby has made impressive strides, earning an A- in my book. A complete overhaul of its OCP and land-use policies, shifting from density to height-based zoning, promises more development opportunities. Streamlined application processes further encourage progress. However, high DCCs, ACCs, &amp; inclusionary housing mandates temper enthusiasm. Without a resurgence in presale values, delivering high-density projects will remain challenging</em></p>\n
<!-- /wp:paragraph -->\n
\n
<!-- wp:spacer {"height":"25px"} -->\n
<div style="height:25px" aria-hidden="true" class="wp-block-spacer"></div>\n
<!-- /wp:spacer -->\n
\n
<!-- wp:paragraph {"style":{"typography":{"fontSize":"16px"}}} -->\n
<p style="font-size:16px">- <strong>BEN WILLIAMS, </strong>Personal Real Estate Corporation &amp; Executive Vice <strong>President</strong></p>\n
<!-- /wp:paragraph -->\n
\n
<!-- wp:spacer {"height":"50px"} -->\n
<div style="height:50px" aria-hidden="true" class="wp-block-spacer"></div>\n
<!-- /wp:spacer -->\n
\n
<!-- wp:paragraph {"style":{"typography":{"fontSize":"30px"}}} -->\n
<p style="font-size:30px">POLICY DEBRIEF</p>\n
<!-- /wp:paragraph -->\n
\n
<!-- wp:spacer {"height":"25px"} -->\n
<div style="height:25px" aria-hidden="true" class="wp-block-spacer"></div>\n
<!-- /wp:spacer -->\n
\n
<!-- wp:paragraph {"style":{"typography":{"fontSize":"16px"}}} -->\n
<p style="font-size:16px"><strong>March 7, 2025 </strong>the province released its <strong>Comprehensive Guidance on Inclusionary Zoning and Bonus Density</strong>. This Best Practices Guide was created in collaboration with the province, municipal governments and representatives of the development community. <strong>Goal:</strong> That municipalities mirror this guide in the creation and implementation of their inclusionary zoning and bonus density policy so that transparency and clarity is created for the development community.</p>\n
<!-- /wp:paragraph -->\n
\n
<!-- wp:spacer {"height":"25px"} -->\n
<div style="height:25px" aria-hidden="true" class="wp-block-spacer"></div>\n
<!-- /wp:spacer -->\n
\n
<!-- wp:image {"id":3421,"sizeSlug":"full","linkDestination":"none"} -->\n
<figure class="wp-block-image size-full"><img src="https://dev.londonpacific.staging.poundandgrain.ca/app/uploads/2025/03/image.png" alt="" class="wp-image-3421"/></figure>\n
<!-- /wp:image -->\n
\n
<!-- wp:spacer {"height":"25px"} -->\n
<div style="height:25px" aria-hidden="true" class="wp-block-spacer"></div>\n
<!-- /wp:spacer -->\n
\n
<!-- wp:paragraph {"style":{"typography":{"fontSize":"16px"}}} -->\n
<p style="font-size:16px">Download the <strong>FULL REPORT </strong>below to find our city by city GUIDE revealing which cities are leading the pack in developing and updating inclusionary policy, DCCs and ACCs.</p>\n
<!-- /wp:paragraph -->\n
\n
<!-- wp:paragraph -->\n
<p></p>\n
<!-- /wp:paragraph -->
"""
post_title
"Q1 | 2025 City X City TOA UPDATE"
post_excerpt
""
post_status
"publish"
comment_status
"open"
ping_status
"open"
post_password
""
post_name
"q1-2025-transit-oriented-city-update"
to_ping
""
pinged
""
post_modified
"2025-06-25 13:54:10"
post_modified_gmt
"2025-06-25 20:54:10"
post_content_filtered
""
post_parent
0
guid
"https://dev.londonpacific.staging.poundandgrain.ca/?p=3417"
menu_order
0
post_type
"post"
post_mime_type
""
comment_count
"0"
filter
"raw"
empty
empty
empty
empty
empty
Key Value
SERVER_SOFTWARE
"nginx/1.18.0"
REQUEST_URI
"/category/toa-update/"
USER
"forge"
HOME
"/home/forge"
HTTP_REFERER
"https://dev.londonpacific.staging.poundandgrain.ca/category/toa-update"
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_HOST
"dev.londonpacific.staging.poundandgrain.ca"
REDIRECT_STATUS
"200"
HTTPS
"on"
SERVER_NAME
"dev.londonpacific.staging.poundandgrain.ca"
SERVER_PORT
"443"
SERVER_ADDR
"10.0.1.36"
REMOTE_PORT
"9587"
REMOTE_ADDR
"216.73.216.116"
GATEWAY_INTERFACE
"CGI/1.1"
SERVER_PROTOCOL
"HTTP/2.0"
DOCUMENT_ROOT
"/home/forge/dev.londonpacific.staging.poundandgrain.ca/current/web"
DOCUMENT_URI
"/index.php"
SCRIPT_NAME
"/index.php"
SCRIPT_FILENAME
"/home/forge/dev.londonpacific.staging.poundandgrain.ca/current/web/index.php"
CONTENT_LENGTH
""
CONTENT_TYPE
""
REQUEST_METHOD
"GET"
QUERY_STRING
""
FCGI_ROLE
"RESPONDER"
PHP_SELF
"/index.php"
REQUEST_TIME_FLOAT
1758089427.9369
REQUEST_TIME
1758089427
DB_NAME
"LONDONPACIFIC_STAGING"
DB_USER
"***********************"
DB_PASSWORD
"*********************"
DB_HOST
"localhost"
DB_PORT
"3306"
WP_ENV
"development"
WP_HOME
"https://dev.londonpacific.staging.poundandgrain.ca"
WP_SITEURL
"https://dev.londonpacific.staging.poundandgrain.ca/wp"
WP_DEBUG_LOG
"/storage/debug.log"
AUTH_KEY
"****************************************************************"
SECURE_AUTH_KEY
"****************************************************************"
LOGGED_IN_KEY
"****************************************************************"
NONCE_KEY
"****************************************************************"
AUTH_SALT
"****************************************************************"
SECURE_AUTH_SALT
"****************************************************************"
LOGGED_IN_SALT
"****************************************************************"
NONCE_SALT
"****************************************************************"
ACF_PRO_KEY
"b3JkZXJfaWQ9NDQxMjV8dHlwZT1kZXZlbG9wZXJ8ZGF0ZT0yMDE0LTExLTEyIDA2OjA0OjE3"
CHIMPMATIC_KEY
"lGZ0btIYSt4dk8op&hexpires=1622579217"
Key Value
DB_NAME
"LONDONPACIFIC_STAGING"
DB_USER
"***********************"
DB_PASSWORD
"*********************"
DB_HOST
"localhost"
DB_PORT
"3306"
WP_ENV
"development"
WP_HOME
"https://dev.londonpacific.staging.poundandgrain.ca"
WP_SITEURL
"https://dev.londonpacific.staging.poundandgrain.ca/wp"
WP_DEBUG_LOG
"/storage/debug.log"
AUTH_KEY
"****************************************************************"
SECURE_AUTH_KEY
"****************************************************************"
LOGGED_IN_KEY
"****************************************************************"
NONCE_KEY
"****************************************************************"
AUTH_SALT
"****************************************************************"
SECURE_AUTH_SALT
"****************************************************************"
LOGGED_IN_SALT
"****************************************************************"
NONCE_SALT
"****************************************************************"
ACF_PRO_KEY
"b3JkZXJfaWQ9NDQxMjV8dHlwZT1kZXZlbG9wZXJ8ZGF0ZT0yMDE0LTExLTEyIDA2OjA0OjE3"
CHIMPMATIC_KEY
"lGZ0btIYSt4dk8op&hexpires=1622579217"
0. Roots\Acorn\Exceptions\Handler\PrettyPageHandler