CVE-2020-11094: Insertion of Sensitive Information into Log File (CWE-532)
value: The October CMS debugbar plugin before version 3.1.0 contains a feature where it will log all requests (and all information pertaining to each request including session data) whenever it is enabled. This presents a problem if the plugin is ever enabled on a system that is open to untrusted users as the potential exists for them to use this feature to view all requests being made to the application and obtain sensitive information from those requests. There even exists the potential for account takeovers of authenticated users by non-authenticated public users, which would then lead to a number of other potential issues as an attacker could theoretically get full access to the system if the required conditions existed. Issue has been patched in v3.1.0 by locking down access to the debugbar to all users; it now requires an authenticated backend user with a specifically enabled permission before it is even usable, and the feature that allows access to stored request information is restricted behind a different permission that's more restrictive.
CWE description: Information written to log files can be of a sensitive nature and give valuable guidance to an attacker or expose sensitive user information.
CVSS v3 base score: 9.8
Published: 2020-06-04T00:15Z
Repository: https://github.com/rainlab/debugbar-plugin
Language: PHP
Files changed: Plugin.php, README.md, assets/css/debugbar.css, assets/css/debugbar.less, classes/ServiceProvider.php, composer.json, config/config.php, lang/en/lang.php, middleware/InjectDebugbar.php, middleware/InterpretsAjaxExceptions.php, updates/version.yaml
Commit date: 2020-05-31 15:13:58 -0600
Commit message: 3.1.1 styling improvements and security fix

Diff: diff --git a/Plugin.php b/Plugin.php
index b388327..82d77c4 100644
--- a/Plugin.php
+++ b/Plugin.php
@@ -1,17 +1,21 @@
 <?php namespace RainLab\Debugbar;
 
 use App;
 use Event;
 use Config;
-use Debugbar;
 use BackendAuth;
+use Backend\Models\UserRole;
 use System\Classes\PluginBase;
+use System\Classes\CombineAssets;
 use Illuminate\Foundation\AliasLoader;
 
 /**
  * Debugbar Plugin Information File
+ *
+ * TODO:
+ * - Fix styling by scoping a html reset to phpdebugbar-openhandler and phpdebugbar
  */
 class Plugin extends PluginBase
 {
     /**
      * @var boolean Determine if this plugin should have elevated privileges.
@@ -24,14 +28,14 @@ class Plugin extends PluginBase
      * @return array
      */
     public function pluginDetails()
     {
         return [
-            'name'        => 'Debugbar',
-            'description' => 'Debugbar integration for OctoberCMS.',
+            'name'        => 'rainlab.debugbar::lang.plugin.name',
+            'description' => 'rainlab.debugbar::lang.plugin.description',
             'author'      => 'RainLab',
-            'icon'        => 'icon-cog',
+            'icon'        => 'icon-bug',
             'homepage'    => 'https://github.com/rainlab/debugbar-plugin'
         ];
     }
 
     /**
@@ -41,31 +45,70 @@ class Plugin extends PluginBase
     {
         // Configure the debugbar
         Config::set('debugbar', Config::get('rainlab.debugbar::config'));
 
         // Service provider
-        App::register('\Barryvdh\Debugbar\ServiceProvider');
+        App::register(\RainLab\Debugbar\Classes\ServiceProvider::class);
 
         // Register alias
         $alias = AliasLoader::getInstance();
         $alias->alias('Debugbar', '\Barryvdh\Debugbar\Facade');
 
         // Register middleware
         if (Config::get('app.debugAjax', false)) {
-            $this->app['Illuminate\Contracts\Http\Kernel']->pushMiddleware('\RainLab\Debugbar\Middleware\Debugbar');
+            $this->app['Illuminate\Contracts\Http\Kernel']->pushMiddleware('\RainLab\Debugbar\Middleware\InterpretsAjaxExceptions');
         }
 
-        Event::listen('cms.page.beforeDisplay', function ($controller, $url, $page) {
-            // Only show for authenticated backend users
-            if (!BackendAuth::check()) {
-                Debugbar::disable();
+        // Add styling
+        $addResources = function ($controller) {
+            $debugBar = $this->app->make('Barryvdh\Debugbar\LaravelDebugbar');
+            if ($debugBar->isEnabled()) {
+                $controller->addCss(url(Config::get('cms.pluginsPath', '/plugins') . '/rainlab/debugbar/assets/css/debugbar.css'));
             }
+        };
+        Event::listen('backend.page.beforeDisplay', $addResources, PHP_INT_MAX);
+        Event::listen('cms.page.beforeDisplay', $addResources, PHP_INT_MAX);
 
+        Event::listen('cms.page.beforeDisplay', function ($controller, $url, $page) {
             // Twig extensions
             $twig = $controller->getTwig();
             if (!$twig->hasExtension(\Barryvdh\Debugbar\Twig\Extension\Debug::class)) {
                 $twig->addExtension(new \Barryvdh\Debugbar\Twig\Extension\Debug($this->app));
                 $twig->addExtension(new \Barryvdh\Debugbar\Twig\Extension\Stopwatch($this->app));
             }
         });
     }
+
+    /**
+     * Register the
+     */
+    public function register()
+    {
+        /*
+         * Register asset bundles
+         */
+        CombineAssets::registerCallback(function ($combiner) {
+            $combiner->registerBundle('$/rainlab/debugbar/assets/css/debugbar.less');
+        });
+    }
+
+    /**
+     * Register the permissions used by the plugin
+     *
+     * @return array
+     */
+    public function registerPermissions()
+    {
+        return [
+            'rainlab.debugbar.access_debugbar' => [
+                'tab' => 'rainlab.debugbar::lang.plugin.name',
+                'label' => 'rainlab.debugbar::lang.plugin.access_debugbar',
+                'roles' => UserRole::CODE_DEVELOPER,
+            ],
+            'rainlab.debugbar.access_stored_requests' => [
+                'tab' => 'rainlab.debugbar::lang.plugin.name',
+                'label' => 'rainlab.debugbar::lang.plugin.access_stored_requests',
+                'roles' => UserRole::CODE_DEVELOPER,
+            ],
+        ];
+    }
 }
diff --git a/README.md b/README.md
index 46e64f6..afb638e 100644
--- a/README.md
+++ b/README.md
@@ -12,8 +12,10 @@ To install from [the repository](https://github.com/rainlab/debugbar-plugin), cl
 
 To install it with Composer, run `composer require rainlab/debugbar-plugin` from your project root.
 
 ### Usage
 
-Set `debug` to `true` in `config/app.php`, and the debugbar should appear in your backend. See [barryvdh/laravel-debugbar](https://github.com/barryvdh/laravel-debugbar) for more usage instructions and documentation.
+Set `debug` to `true` in `config/app.php`, and the debugbar should appear on your site to all authenticated backend users with the `rainlab.debugbar.access_debugbar` permission. If you would like to make the debugbar accessible to all users regardless of authentication & permissions, then set `allow_public_access` to `true` in `config/rainlab/debugbar/config.php`.
+
+See [barryvdh/laravel-debugbar](https://github.com/barryvdh/laravel-debugbar) for more usage instructions and documentation.
 
 To include exceptions in the response header of ajax calls set `debugAjax` to `true` in `config/app.php`.
\ No newline at end of file
diff --git a/assets/css/debugbar.css b/assets/css/debugbar.css
new file mode 100755
index 0000000..e9c8e7a
--- /dev/null
+++ b/assets/css/debugbar.css
@@ -0,0 +1,544 @@
+div.phpdebugbar-openhandler .phpdebugbar-openhandler-header a {line-height:1}
+.phpdebugbar {}
+.phpdebugbar dl.phpdebugbar-widgets-kvlist dt {width:350px}
+.phpdebugbar dl.phpdebugbar-widgets-kvlist dd {margin-left:360px}
+.phpdebugbar,
+.phpdebugbar-openhandler {}
+.phpdebugbar p,
+.phpdebugbar-openhandler p {display:block;-webkit-margin-before:1__qem;-webkit-margin-after:1__qem;-webkit-margin-start:0;-webkit-margin-end:0}
+.phpdebugbar div,
+.phpdebugbar-openhandler div {display:block}
+.phpdebugbar layer,
+.phpdebugbar-openhandler layer {display:block}
+.phpdebugbar article,
+.phpdebugbar-openhandler article,
+.phpdebugbar aside,
+.phpdebugbar-openhandler aside,
+.phpdebugbar footer,
+.phpdebugbar-openhandler footer,
+.phpdebugbar header,
+.phpdebugbar-openhandler header,
+.phpdebugbar hgroup,
+.phpdebugbar-openhandler hgroup,
+.phpdebugbar main,
+.phpdebugbar-openhandler main,
+.phpdebugbar nav,
+.phpdebugbar-openhandler nav,
+.phpdebugbar section,
+.phpdebugbar-openhandler section {display:block}
+.phpdebugbar marquee,
+.phpdebugbar-openhandler marquee {display:inline-block}
+.phpdebugbar address,
+.phpdebugbar-openhandler address {display:block}
+.phpdebugbar blockquote,
+.phpdebugbar-openhandler blockquote {display:block;-webkit-margin-before:1__qem;-webkit-margin-after:1em;-webkit-margin-start:40px;-webkit-margin-end:40px}
+.phpdebugbar figcaption,
+.phpdebugbar-openhandler figcaption {display:block}
+.phpdebugbar figure,
+.phpdebugbar-openhandler figure {display:block;-webkit-margin-before:1em;-webkit-margin-after:1em;-webkit-margin-start:40px;-webkit-margin-end:40px}
+.phpdebugbar q,
+.phpdebugbar-openhandler q {display:inline}
+.phpdebugbar q:before,
+.phpdebugbar-openhandler q:before {content:open-quote}
+.phpdebugbar q:after,
+.phpdebugbar-openhandler q:after {content:close-quote}
+.phpdebugbar center,
+.phpdebugbar-openhandler center {display:block;text-align:-webkit-center}
+.phpdebugbar hr,
+.phpdebugbar-openhandler hr {display:block;-webkit-margin-before:0.5em;-webkit-margin-after:0.5em;-webkit-margin-start:auto;-webkit-margin-end:auto;border-style:inset;border-width:1px}
+.phpdebugbar map,
+.phpdebugbar-openhandler map {display:inline}
+.phpdebugbar video,
+.phpdebugbar-openhandler video {object-fit:contain}
+.phpdebugbar h1,
+.phpdebugbar-openhandler h1 {display:block;font-size:2em;-webkit-margin-before:0.67__qem;-webkit-margin-after:0.67em;-webkit-margin-start:0;-webkit-margin-end:0;font-weight:bold}
+.phpdebugbar :-webkit-any(article,aside,nav,section) h1,
+.phpdebugbar-openhandler :-webkit-any(article,aside,nav,section) h1 {font-size:1.5em;-webkit-margin-before:0.83__qem;-webkit-margin-after:0.83em}
+.phpdebugbar :-webkit-any(article,aside,nav,section) :-webkit-any(article,aside,nav,section) h1,
+.phpdebugbar-openhandler :-webkit-any(article,aside,nav,section) :-webkit-any(article,aside,nav,section) h1 {font-size:1.17em;-webkit-margin-before:1__qem;-webkit-margin-after:1em}
+.phpdebugbar :-webkit-any(article,aside,nav,section) :-webkit-any(article,aside,nav,section) :-webkit-any(article,aside,nav,section) h1,
+.phpdebugbar-openhandler :-webkit-any(article,aside,nav,section) :-webkit-any(article,aside,nav,section) :-webkit-any(article,aside,nav,section) h1 {font-size:1.0em;-webkit-margin-before:1.33__qem;-webkit-margin-after:1.33em}
+.phpdebugbar :-webkit-any(article,aside,nav,section) :-webkit-any(article,aside,nav,section) :-webkit-any(article,aside,nav,section) :-webkit-any(article,aside,nav,section) h1,
+.phpdebugbar-openhandler :-webkit-any(article,aside,nav,section) :-webkit-any(article,aside,nav,section) :-webkit-any(article,aside,nav,section) :-webkit-any(article,aside,nav,section) h1 {font-size:.83em;-webkit-margin-before:1.67__qem;-webkit-margin-after:1.67em}
+.phpdebugbar :-webkit-any(article,aside,nav,section) :-webkit-any(article,aside,nav,section) :-webkit-any(article,aside,nav,section) :-webkit-any(article,aside,nav,section) :-webkit-any(article,aside,nav,section) h1,
+.phpdebugbar-openhandler :-webkit-any(article,aside,nav,section) :-webkit-any(article,aside,nav,section) :-webkit-any(article,aside,nav,section) :-webkit-any(article,aside,nav,section) :-webkit-any(article,aside,nav,section) h1 {font-size:.67em;-webkit-margin-before:2.33__qem;-webkit-margin-after:2.33em}
+.phpdebugbar h2,
+.phpdebugbar-openhandler h2 {display:block;font-size:1.5em;-webkit-margin-before:0.83__qem;-webkit-margin-after:0.83em;-webkit-margin-start:0;-webkit-margin-end:0;font-weight:bold}
+.phpdebugbar h3,
+.phpdebugbar-openhandler h3 {display:block;font-size:1.17em;-webkit-margin-before:1__qem;-webkit-margin-after:1em;-webkit-margin-start:0;-webkit-margin-end:0;font-weight:bold}
+.phpdebugbar h4,
+.phpdebugbar-openhandler h4 {display:block;-webkit-margin-before:1.33__qem;-webkit-margin-after:1.33em;-webkit-margin-start:0;-webkit-margin-end:0;font-weight:bold}
+.phpdebugbar h5,
+.phpdebugbar-openhandler h5 {display:block;font-size:.83em;-webkit-margin-before:1.67__qem;-webkit-margin-after:1.67em;-webkit-margin-start:0;-webkit-margin-end:0;font-weight:bold}
+.phpdebugbar h6,
+.phpdebugbar-openhandler h6 {display:block;font-size:.67em;-webkit-margin-before:2.33__qem;-webkit-margin-after:2.33em;-webkit-margin-start:0;-webkit-margin-end:0;font-weight:bold}
+.phpdebugbar table,
+.phpdebugbar-openhandler table {display:table;border-collapse:separate;border-spacing:2px;border-color:gray}
+.phpdebugbar thead,
+.phpdebugbar-openhandler thead {display:table-header-group;vertical-align:middle;border-color:inherit}
+.phpdebugbar tbody,
+.phpdebugbar-openhandler tbody {display:table-row-group;vertical-align:middle;border-color:inherit}
+.phpdebugbar tfoot,
+.phpdebugbar-openhandler tfoot {display:table-footer-group;vertical-align:middle;border-color:inherit}
+.phpdebugbar table >tr,
+.phpdebugbar-openhandler table >tr {vertical-align:middle}
+.phpdebugbar col,
+.phpdebugbar-openhandler col {display:table-column}
+.phpdebugbar colgroup,
+.phpdebugbar-openhandler colgroup {display:table-column-group}
+.phpdebugbar tr,
+.phpdebugbar-openhandler tr {display:table-row;vertical-align:inherit;border-color:inherit}
+.phpdebugbar td,
+.phpdebugbar-openhandler td,
+.phpdebugbar th,
+.phpdebugbar-openhandler th {display:table-cell;vertical-align:inherit}
+.phpdebugbar th,
+.phpdebugbar-openhandler th {font-weight:bold}
+.phpdebugbar caption,
+.phpdebugbar-openhandler caption {display:table-caption;text-align:-webkit-center}
+.phpdebugbar ul,
+.phpdebugbar-openhandler ul,
+.phpdebugbar ol,
+.phpdebugbar-openhandler ol,
+.phpdebugbar dl,
+.phpdebugbar-openhandler dl {font-size:1em}
+.phpdebugbar ul,
+.phpdebugbar-openhandler ul,
+.phpdebugbar menu,
+.phpdebugbar-openhandler menu,
+.phpdebugbar dir,
+.phpdebugbar-openhandler dir {display:block;list-style-type:disc;-webkit-margin-before:1__qem;-webkit-margin-after:1em;-webkit-margin-start:0;-webkit-margin-end:0;-webkit-padding-start:40px}
+.phpdebugbar ol,
+.phpdebugbar-openhandler ol {display:block;list-style-type:decimal;-webkit-margin-before:1__qem;-webkit-margin-after:1em;-webkit-margin-start:0;-webkit-margin-end:0;-webkit-padding-start:40px}
+.phpdebugbar li,
+.phpdebugbar-openhandler li {display:list-item;text-align:-webkit-match-parent}
+.phpdebugbar ul ul,
+.phpdebugbar-openhandler ul ul,
+.phpdebugbar ol ul,
+.phpdebugbar-openhandler ol ul {list-style-type:circle}
+.phpdebugbar ol ol ul,
+.phpdebugbar-openhandler ol ol ul,
+.phpdebugbar ol ul ul,
+.phpdebugbar-openhandler ol ul ul,
+.phpdebugbar ul ol ul,
+.phpdebugbar-openhandler ul ol ul,
+.phpdebugbar ul ul ul,
+.phpdebugbar-openhandler ul ul ul {list-style-type:square}
+.phpdebugbar dd,
+.phpdebugbar-openhandler dd {display:block;-webkit-margin-start:40px}
+.phpdebugbar dl,
+.phpdebugbar-openhandler dl {display:block;-webkit-margin-before:1__qem;-webkit-margin-after:1em;-webkit-margin-start:0;-webkit-margin-end:0}
+.phpdebugbar dt,
+.phpdebugbar-openhandler dt {display:block}
+.phpdebugbar ol ul,
+.phpdebugbar-openhandler ol ul,
+.phpdebugbar ul ol,
+.phpdebugbar-openhandler ul ol,
+.phpdebugbar ul ul,
+.phpdebugbar-openhandler ul ul,
+.phpdebugbar ol ol,
+.phpdebugbar-openhandler ol ol {-webkit-margin-before:0;-webkit-margin-after:0}
+.phpdebugbar form,
+.phpdebugbar-openhandler form {display:block;margin-top:0__qem}
+.phpdebugbar label,
+.phpdebugbar-openhandler label {cursor:default}
+.phpdebugbar legend,
+.phpdebugbar-openhandler legend {display:block;-webkit-padding-start:2px;-webkit-padding-end:2px;border:none}
+.phpdebugbar fieldset,
+.phpdebugbar-openhandler fieldset {display:block;-webkit-margin-start:2px;-webkit-margin-end:2px;-webkit-padding-before:0.35em;-webkit-padding-start:0.75em;-webkit-padding-end:0.75em;-webkit-padding-after:0.625em;border:2px groove ThreeDFace;min-width:-webkit-min-content}
+.phpdebugbar button,
+.phpdebugbar-openhandler button {-webkit-appearance:button}
+.phpdebugbar input,
+.phpdebugbar-openhandler input,
+.phpdebugbar textarea,
+.phpdebugbar-openhandler textarea,
+.phpdebugbar keygen,
+.phpdebugbar-openhandler keygen,
+.phpdebugbar select,
+.phpdebugbar-openhandler select,
+.phpdebugbar button,
+.phpdebugbar-openhandler button,
+.phpdebugbar meter,
+.phpdebugbar-openhandler meter,
+.phpdebugbar progress,
+.phpdebugbar-openhandler progress {-webkit-writing-mode:horizontal-tb !important}
+.phpdebugbar input,
+.phpdebugbar-openhandler input,
+.phpdebugbar textarea,
+.phpdebugbar-openhandler textarea,
+.phpdebugbar keygen,
+.phpdebugbar-openhandler keygen,
+.phpdebugbar select,
+.phpdebugbar-openhandler select,
+.phpdebugbar button,
+.phpdebugbar-openhandler button {margin:0__qem;font:-webkit-small-control;color:initial;letter-spacing:normal;word-spacing:normal;line-height:normal;text-transform:none;text-indent:0;text-shadow:none;display:inline-block;text-align:start;width:initial;height:initial}
+.phpdebugbar input[type="hidden"],
+.phpdebugbar-openhandler input[type="hidden"] {display:none}
+.phpdebugbar input,
+.phpdebugbar-openhandler input,
+.phpdebugbar input[type="password"],
+.phpdebugbar-openhandler input[type="password"],
+.phpdebugbar input[type="search"],
+.phpdebugbar-openhandler input[type="search"] {-webkit-appearance:textfield;padding:1px;background-color:white;border:2px inset;-webkit-rtl-ordering:logical;-webkit-user-select:text;cursor:auto}
+.phpdebugbar input[type="search"],
+.phpdebugbar-openhandler input[type="search"] {-webkit-appearance:searchfield;box-sizing:border-box}
+.phpdebugbar input::-webkit-textfield-decoration-container,
+.phpdebugbar-openhandler input::-webkit-textfield-decoration-container {display:flex;align-items:center;-webkit-user-modify:read-only !important;content:none !important}
+.phpdebugbar input[type="search"]::-webkit-textfield-decoration-container,
+.phpdebugbar-openhandler input[type="search"]::-webkit-textfield-decoration-container {direction:ltr}
+.phpdebugbar input::-webkit-clear-button,
+.phpdebugbar-openhandler input::-webkit-clear-button {-webkit-appearance:searchfield-cancel-button;display:inline-block;flex:none;-webkit-user-modify:read-only !important;-webkit-margin-start:2px;opacity:0;pionter-events:none}
+.phpdebugbar input:enabled:read-write:-webkit-any(:focus,:hover)::-webkit-clear-button,
+.phpdebugbar-openhandler input:enabled:read-write:-webkit-any(:focus,:hover)::-webkit-clear-button {opacity:1;pointer-events:auto}
+.phpdebugbar input[type="search"]::-webkit-search-cancel-button,
+.phpdebugbar-openhandler input[type="search"]::-webkit-search-cancel-button {-webkit-appearance:searchfield-cancel-button;display:block;flex:none;-webkit-user-modify:read-only !important;-webkit-margin-start:1px;opacity:0;pointer-events:none}
+.phpdebugbar input[type="search"]:enabled:read-write:-webkit-any(:focus,:hover)::-webkit-search-cancel-button,
+.phpdebugbar-openhandler input[type="search"]:enabled:read-write:-webkit-any(:focus,:hover)::-webkit-search-cancel-button {opacity:1;pointer-events:auto}
+.phpdebugbar input[type="search"]::-webkit-search-decoration,
+.phpdebugbar-openhandler input[type="search"]::-webkit-search-decoration {-webkit-appearance:searchfield-decoration;display:block;flex:none;-webkit-user-modify:read-only !important;-webkit-align-self:flex-start;margin:auto 0}
+.phpdebugbar input[type="search"]::-webkit-search-results-decoration,
+.phpdebugbar-openhandler input[type="search"]::-webkit-search-results-decoration {-webkit-appearance:searchfield-results-decoration;display:block;flex:none;-webkit-user-modify:read-only !important;-webkit-align-self:flex-start;margin:auto 0}
+.phpdebugbar input::-webkit-inner-spin-button,
+.phpdebugbar-openhandler input::-webkit-inner-spin-button {-webkit-appearance:inner-spin-button;display:inline-block;cursor:default;flex:none;align-self:stretch;-webkit-user-select:none;-webkit-user-modify:read-only !important;opacity:0;pointer-events:none}
+.phpdebugbar input:enabled:read-write:-webkit-any(:focus,:hover)::-webkit-inner-spin-button,
+.phpdebugbar-openhandler input:enabled:read-write:-webkit-any(:focus,:hover)::-webkit-inner-spin-button {opacity:1;pointer-events:auto}
+.phpdebugbar keygen,
+.phpdebugbar-openhandler keygen,
+.phpdebugbar select,
+.phpdebugbar-openhandler select {border-radius:5px}
+.phpdebugbar keygen::-webkit-keygen-select,
+.phpdebugbar-openhandler keygen::-webkit-keygen-select {margin:0}
+.phpdebugbar textarea,
+.phpdebugbar-openhandler textarea {-webkit-appearance:textarea;background-color:white;border:1px solid;-webkit-rtl-ordering:logical;-webkit-user-select:text;flex-direction:column;resize:auto;cursor:auto;padding:2px;white-space:pre-wrap;word-wrap:break-word}
+.phpdebugbar ::-webkit-input-placeholder,
+.phpdebugbar-openhandler ::-webkit-input-placeholder {-webkit-text-security:none;color:darkGray;display:block !important;pointer-events:none !important}
+.phpdebugbar input::-webkit-input-placeholder,
+.phpdebugbar-openhandler input::-webkit-input-placeholder {white-space:pre;word-wrap:normal;overflow:hidden;-webkit-user-modify:read-only !important}
+.phpdebugbar input[type="password"],
+.phpdebugbar-openhandler input[type="password"] {-webkit-text-security:disc !important}
+.phpdebugbar input[type="hidden"],
+.phpdebugbar-openhandler input[type="hidden"],
+.phpdebugbar input[type="image"],
+.phpdebugbar-openhandler input[type="image"],
+.phpdebugbar input[type="file"],
+.phpdebugbar-openhandler input[type="file"] {-webkit-appearance:initial;padding:initial;background-color:initial;border:initial}
+.phpdebugbar input[type="file"],
+.phpdebugbar-openhandler input[type="file"] {align-items:baseline;color:inherit;text-align:start !important}
+.phpdebugbar input:-webkit-autofill,
+.phpdebugbar-openhandler input:-webkit-autofill,
+.phpdebugbar textarea:-webkit-autofill,
+.phpdebugbar-openhandler textarea:-webkit-autofill,
+.phpdebugbar select:-webkit-autofill,
+.phpdebugbar-openhandler select:-webkit-autofill {background-color:#FAFFBD !important;background-image:none !important;color:#000 !important}
+.phpdebugbar input[type="radio"],
+.phpdebugbar-openhandler input[type="radio"],
+.phpdebugbar input[type="checkbox"],
+.phpdebugbar-openhandler input[type="checkbox"] {margin:3px 0.5ex;padding:initial;background-color:initial;border:initial}
+.phpdebugbar input[type="button"],
+.phpdebugbar-openhandler input[type="button"],
+.phpdebugbar input[type="submit"],
+.phpdebugbar-openhandler input[type="submit"],
+.phpdebugbar input[type="reset"],
+.phpdebugbar-openhandler input[type="reset"] {-webkit-appearance:push-button;-webkit-user-select:none;white-space:pre}
+.phpdebugbar input[type="file"]::-webkit-file-upload-button,
+.phpdebugbar-openhandler input[type="file"]::-webkit-file-upload-button {-webkit-appearance:push-button;-webkit-user-modify:read-only !important;white-space:nowrap;margin:0;font-size:inherit}
+.phpdebugbar input[type="button"],
+.phpdebugbar-openhandler input[type="button"],
+.phpdebugbar input[type="submit"],
+.phpdebugbar-openhandler input[type="submit"],
+.phpdebugbar input[type="reset"],
+.phpdebugbar-openhandler input[type="reset"],
+.phpdebugbar input[type="file"]::-webkit-file-upload-button,
+.phpdebugbar-openhandler input[type="file"]::-webkit-file-upload-button,
+.phpdebugbar button,
+.phpdebugbar-openhandler button {align-items:flex-start;text-align:center;cursor:default;color:ButtonText;padding:2px 6px 3px 6px;border:2px outset ButtonFace;background-color:ButtonFace;box-sizing:border-box}
+.phpdebugbar input[type="range"],
+.phpdebugbar-openhandler input[type="range"] {-webkit-appearance:slider-horizontal;padding:initial;border:initial;margin:2px;color:#909090}
+.phpdebugbar input[type="range"]::-webkit-slider-container,
+.phpdebugbar-openhandler input[type="range"]::-webkit-slider-container,
+.phpdebugbar input[type="range"]::-webkit-media-slider-container,
+.phpdebugbar-openhandler input[type="range"]::-webkit-media-slider-container {flex:1;box-sizing:border-box;-webkit-user-modify:read-only !important;display:flex;-webkit-align-contents:center}
+.phpdebugbar input[type="range"]::-webkit-slider-runnable-track,
+.phpdebugbar-openhandler input[type="range"]::-webkit-slider-runnable-track {flex:1;-webkit-align-self:center;box-sizing:border-box;-webkit-user-modify:read-only !important;display:block}
+.phpdebugbar input[type="range"]::-webkit-slider-thumb,
+.phpdebugbar-openhandler input[type="range"]::-webkit-slider-thumb,
+.phpdebugbar input[type="range"]::-webkit-media-slider-thumb,
+.phpdebugbar-openhandler input[type="range"]::-webkit-media-slider-thumb {-webkit-appearance:sliderthumb-horizontal;box-sizing:border-box;-webkit-user-modify:read-only !important;display:block}
+.phpdebugbar input[type="button"]:disabled,
+.phpdebugbar-openhandler input[type="button"]:disabled,
+.phpdebugbar input[type="submit"]:disabled,
+.phpdebugbar-openhandler input[type="submit"]:disabled,
+.phpdebugbar input[type="reset"]:disabled,
+.phpdebugbar-openhandler input[type="reset"]:disabled,
+.phpdebugbar input[type="file"]:disabled::-webkit-file-upload-button,
+.phpdebugbar-openhandler input[type="file"]:disabled::-webkit-file-upload-button,
+.phpdebugbar button:disabled,
+.phpdebugbar-openhandler button:disabled,
+.phpdebugbar select:disabled,
+.phpdebugbar-openhandler select:disabled,
+.phpdebugbar keygen:disabled,
+.phpdebugbar-openhandler keygen:disabled,
+.phpdebugbar optgroup:disabled,
+.phpdebugbar-openhandler optgroup:disabled,
+.phpdebugbar option:disabled,
+.phpdebugbar-openhandler option:disabled,
+.phpdebugbar select[disabled] >option,
+.phpdebugbar-openhandler select[disabled] >option {color:GrayText}
+.phpdebugbar input[type="button"]:active,
+.phpdebugbar-openhandler input[type="button"]:active,
+.phpdebugbar input[type="submit"]:active,
+.phpdebugbar-openhandler input[type="submit"]:active,
+.phpdebugbar input[type="reset"]:active,
+.phpdebugbar-openhandler input[type="reset"]:active,
+.phpdebugbar input[type="file"]:active::-webkit-file-upload-button,
+.phpdebugbar-openhandler input[type="file"]:active::-webkit-file-upload-button,
+.phpdebugbar button:active,
+.phpdebugbar-openhandler button:active {border-style:inset}
+.phpdebugbar input[type="button"]:active:disabled,
+.phpdebugbar-openhandler input[type="button"]:active:disabled,
+.phpdebugbar input[type="submit"]:active:disabled,
+.phpdebugbar-openhandler input[type="submit"]:active:disabled,
+.phpdebugbar input[type="reset"]:active:disabled,
+.phpdebugbar-openhandler input[type="reset"]:active:disabled,
+.phpdebugbar input[type="file"]:active:disabled::-webkit-file-upload-button,
+.phpdebugbar-openhandler input[type="file"]:active:disabled::-webkit-file-upload-button,
+.phpdebugbar button:active:disabled,
+.phpdebugbar-openhandler button:active:disabled {border-style:outset}
+.phpdebugbar option:-internal-spatial-navigation-focus,
+.phpdebugbar-openhandler option:-internal-spatial-navigation-focus {outline:black dashed 1px;outline-offset:-1px}
+.phpdebugbar datalist,
+.phpdebugbar-openhandler datalist {display:none}
+.phpdebugbar area,
+.phpdebugbar-openhandler area {display:inline}
+.phpdebugbar param,
+.phpdebugbar-openhandler param {display:none}
+.phpdebugbar input[type="checkbox"],
+.phpdebugbar-openhandler input[type="checkbox"] {-webkit-appearance:checkbox;box-sizing:border-box}
+.phpdebugbar input[type="radio"],
+.phpdebugbar-openhandler input[type="radio"] {-webkit-appearance:radio;box-sizing:border-box}
+.phpdebugbar input[type="color"],
+.phpdebugbar-openhandler input[type="color"] {-webkit-appearance:square-button;width:44px;height:23px;background-color:ButtonFace;border:1px #a9a9a9 solid;padding:1px 2px}
+.phpdebugbar input[type="color"]::-webkit-color-swatch-wrapper,
+.phpdebugbar-openhandler input[type="color"]::-webkit-color-swatch-wrapper {display:flex;padding:4px 2px;box-sizing:border-box;-webkit-user-modify:read-only !important;width:100%;height:100%}
+.phpdebugbar input[type="color"]::-webkit-color-swatch,
+.phpdebugbar-openhandler input[type="color"]::-webkit-color-swatch {background-color:#000;border:1px solid #777;flex:1;-webkit-user-modify:read-only !important}
+.phpdebugbar input[type="color"][list],
+.phpdebugbar-openhandler input[type="color"][list] {-webkit-appearance:menulist;width:88px;height:23px}
+.phpdebugbar input[type="color"][list]::-webkit-color-swatch-wrapper,
+.phpdebugbar-openhandler input[type="color"][list]::-webkit-color-swatch-wrapper {padding-left:8px;padding-right:24px}
+.phpdebugbar input[type="color"][list]::-webkit-color-swatch,
+.phpdebugbar-openhandler input[type="color"][list]::-webkit-color-swatch {border-color:#000}
+.phpdebugbar input::-webkit-calendar-picker-indicator,
+.phpdebugbar-openhandler input::-webkit-calendar-picker-indicator {display:inline-block;width:0.66em;height:0.66em;padding:0.17em 0.34em;-webkit-user-modify:read-only !important;opacity:0;pointer-events:none}
+.phpdebugbar input::-webkit-calendar-picker-indicator:hover,
+.phpdebugbar-openhandler input::-webkit-calendar-picker-indicator:hover {background-color:#eee}
+.phpdebugbar input:enabled:read-write:-webkit-any(:focus,:hover)::-webkit-calendar-picker-indicator,
+.phpdebugbar-openhandler input:enabled:read-write:-webkit-any(:focus,:hover)::-webkit-calendar-picker-indicator,
+.phpdebugbar input::-webkit-calendar-picker-indicator:focus,
+.phpdebugbar-openhandler input::-webkit-calendar-picker-indicator:focus {opacity:1;pointer-events:auto}
+.phpdebugbar input[type="date"]:disabled::-webkit-clear-button,
+.phpdebugbar-openhandler input[type="date"]:disabled::-webkit-clear-button,
+.phpdebugbar input[type="date"]:disabled::-webkit-inner-spin-button,
+.phpdebugbar-openhandler input[type="date"]:disabled::-webkit-inner-spin-button,
+.phpdebugbar input[type="datetime-local"]:disabled::-webkit-clear-button,
+.phpdebugbar-openhandler input[type="datetime-local"]:disabled::-webkit-clear-button,
+.phpdebugbar input[type="datetime-local"]:disabled::-webkit-inner-spin-button,
+.phpdebugbar-openhandler input[type="datetime-local"]:disabled::-webkit-inner-spin-button,
+.phpdebugbar input[type="month"]:disabled::-webkit-clear-button,
+.phpdebugbar-openhandler input[type="month"]:disabled::-webkit-clear-button,
+.phpdebugbar input[type="month"]:disabled::-webkit-inner-spin-button,
+.phpdebugbar-openhandler input[type="month"]:disabled::-webkit-inner-spin-button,
+.phpdebugbar input[type="week"]:disabled::-webkit-clear-button,
+.phpdebugbar-openhandler input[type="week"]:disabled::-webkit-clear-button,
+.phpdebugbar input[type="week"]:disabled::-webkit-inner-spin-button,
+.phpdebugbar-openhandler input[type="week"]:disabled::-webkit-inner-spin-button,
+.phpdebugbar input:disabled::-webkit-calendar-picker-indicator,
+.phpdebugbar-openhandler input:disabled::-webkit-calendar-picker-indicator,
+.phpdebugbar input[type="date"][readonly]::-webkit-clear-button,
+.phpdebugbar-openhandler input[type="date"][readonly]::-webkit-clear-button,
+.phpdebugbar input[type="date"][readonly]::-webkit-inner-spin-button,
+.phpdebugbar-openhandler input[type="date"][readonly]::-webkit-inner-spin-button,
+.phpdebugbar input[type="datetime-local"][readonly]::-webkit-clear-button,
+.phpdebugbar-openhandler input[type="datetime-local"][readonly]::-webkit-clear-button,
+.phpdebugbar input[type="datetime-local"][readonly]::-webkit-inner-spin-button,
+.phpdebugbar-openhandler input[type="datetime-local"][readonly]::-webkit-inner-spin-button,
+.phpdebugbar input[type="month"][readonly]::-webkit-clear-button,
+.phpdebugbar-openhandler input[type="month"][readonly]::-webkit-clear-button,
+.phpdebugbar input[type="month"][readonly]::-webkit-inner-spin-button,
+.phpdebugbar-openhandler input[type="month"][readonly]::-webkit-inner-spin-button,
+.phpdebugbar input[type="week"][readonly]::-webkit-clear-button,
+.phpdebugbar-openhandler input[type="week"][readonly]::-webkit-clear-button,
+.phpdebugbar input[type="week"][readonly]::-webkit-inner-spin-button,
+.phpdebugbar-openhandler input[type="week"][readonly]::-webkit-inner-spin-button,
+.phpdebugbar input[readonly]::-webkit-calendar-picker-indicator,
+.phpdebugbar-openhandler input[readonly]::-webkit-calendar-picker-indicator {visibility:hidden}
+.phpdebugbar select,
+.phpdebugbar-openhandler select {-webkit-appearance:menulist;box-sizing:border-box;align-items:center;border:1px solid;white-space:pre;-webkit-rtl-ordering:logical;color:black;background-color:white;cursor:default}
+.phpdebugbar select:-internal-list-box,
+.phpdebugbar-openhandler select:-internal-list-box {-webkit-appearance:listbox;align-items:flex-start;border:1px inset gray;border-radius:initial;overflow-x:hidden;overflow-y:scroll;vertical-align:text-bottom;-webkit-user-select:none;white-space:nowrap}
+.phpdebugbar optgroup,
+.phpdebugbar-openhandler optgroup {font-weight:bolder;display:block}
+.phpdebugbar option,
+.phpdebugbar-openhandler option {font-weight:normal;display:block;padding:0 2px 1px 2px;white-space:pre;min-height:1.2em}
+.phpdebugbar select:-internal-list-box option,
+.phpdebugbar-openhandler select:-internal-list-box option,
+.phpdebugbar select:-internal-list-box optgroup,
+.phpdebugbar-openhandler select:-internal-list-box optgroup {line-height:initial !important}
+.phpdebugbar select:-internal-list-box:focus option:checked,
+.phpdebugbar-openhandler select:-internal-list-box:focus option:checked {background-color:-internal-active-list-box-selection !important;color:-internal-active-list-box-selection-text !important}
+.phpdebugbar select:-internal-list-box option:checked,
+.phpdebugbar-openhandler select:-internal-list-box option:checked {background-color:-internal-inactive-list-box-selection !important;color:-internal-inactive-list-box-selection-text !important}
+.phpdebugbar select:-internal-list-box:disabled option:checked,
+.phpdebugbar-openhandler select:-internal-list-box:disabled option:checked,
+.phpdebugbar select:-internal-list-box option:checked:disabled,
+.phpdebugbar-openhandler select:-internal-list-box option:checked:disabled {color:gray !important}
+.phpdebugbar output,
+.phpdebugbar-openhandler output {display:inline}
+.phpdebugbar meter,
+.phpdebugbar-openhandler meter {-webkit-appearance:meter;box-sizing:border-box;display:inline-block;height:1em;width:5em;vertical-align:-0.2em}
+.phpdebugbar meter::-webkit-meter-inner-element,
+.phpdebugbar-openhandler meter::-webkit-meter-inner-element {-webkit-appearance:inherit;box-sizing:inherit;-webkit-user-modify:read-only !important;height:100%;width:100%}
+.phpdebugbar meter::-webkit-meter-bar,
+.phpdebugbar-openhandler meter::-webkit-meter-bar {background:linear-gradient(to bottom,#ddd,#eee 20%,#ccc 45%,#ccc 55%,#ddd);height:100%;width:100%;-webkit-user-modify:read-only !important;box-sizing:border-box}
+.phpdebugbar meter::-webkit-meter-optimum-value,
+.phpdebugbar-openhandler meter::-webkit-meter-optimum-value {background:linear-gradient(to bottom,#ad7,#cea 20%,#7a3 45%,#7a3 55%,#ad7);height:100%;-webkit-user-modify:read-only !important;box-sizing:border-box}
+.phpdebugbar meter::-webkit-meter-suboptimum-value,
+.phpdebugbar-openhandler meter::-webkit-meter-suboptimum-value {background:linear-gradient(to bottom,#fe7,#ffc 20%,#db3 45%,#db3 55%,#fe7);height:100%;-webkit-user-modify:read-only !important;box-sizing:border-box}
+.phpdebugbar meter::-webkit-meter-even-less-good-value,
+.phpdebugbar-openhandler meter::-webkit-meter-even-less-good-value {background:linear-gradient(to bottom,#f77,#fcc 20%,#d44 45%,#d44 55%,#f77);height:100%;-webkit-user-modify:read-only !important;box-sizing:border-box}
+.phpdebugbar progress,
+.phpdebugbar-openhandler progress {-webkit-appearance:progress-bar;box-sizing:border-box;display:inline-block;height:1em;width:10em;vertical-align:-0.2em}
+.phpdebugbar progress::-webkit-progress-inner-element,
+.phpdebugbar-openhandler progress::-webkit-progress-inner-element {-webkit-appearance:inherit;box-sizing:inherit;-webkit-user-modify:read-only;height:100%;width:100%}
+.phpdebugbar progress::-webkit-progress-bar,
+.phpdebugbar-openhandler progress::-webkit-progress-bar {background-color:gray;height:100%;width:100%;-webkit-user-modify:read-only !important;box-sizing:border-box}
+.phpdebugbar progress::-webkit-progress-value,
+.phpdebugbar-openhandler progress::-webkit-progress-value {background-color:green;height:100%;width:50%;-webkit-user-modify:read-only !important;box-sizing:border-box}
+.phpdebugbar u,
+.phpdebugbar-openhandler u,
+.phpdebugbar ins,
+.phpdebugbar-openhandler ins {text-decoration:underline}
+.phpdebugbar strong,
+.phpdebugbar-openhandler strong,
+.phpdebugbar b,
+.phpdebugbar-openhandler b {font-weight:bold}
+.phpdebugbar cite,
+.phpdebugbar-openhandler cite,
+.phpdebugbar em,
+.phpdebugbar-openhandler em,
+.phpdebugbar var,
+.phpdebugbar-openhandler var,
+.phpdebugbar address,
+.phpdebugbar-openhandler address,
+.phpdebugbar dfn,
+.phpdebugbar-openhandler dfn {font-style:italic}
+.phpdebugbar tt,
+.phpdebugbar-openhandler tt,
+.phpdebugbar code,
+.phpdebugbar-openhandler code,
+.phpdebugbar kbd,
+.phpdebugbar-openhandler kbd,
+.phpdebugbar samp,
+.phpdebugbar-openhandler samp {font-family:monospace}
+.phpdebugbar pre,
+.phpdebugbar-openhandler pre,
+.phpdebugbar xmp,
+.phpdebugbar-openhandler xmp,
+.phpdebugbar plaintext,
+.phpdebugbar-openhandler plaintext,
+.phpdebugbar listing,
+.phpdebugbar-openhandler listing {display:block;font-family:monospace;white-space:pre;margin:1 __qem 0}
+.phpdebugbar mark,
+.phpdebugbar-openhandler mark {background-color:yellow;color:black}
+.phpdebugbar big,
+.phpdebugbar-openhandler big {font-size:larger}
+.phpdebugbar small,
+.phpdebugbar-openhandler small {font-size:smaller}
+.phpdebugbar s,
+.phpdebugbar-openhandler s,
+.phpdebugbar strike,
+.phpdebugbar-openhandler strike,
+.phpdebugbar del,
+.phpdebugbar-openhandler del {text-decoration:line-through}
+.phpdebugbar sub,
+.phpdebugbar-openhandler sub {vertical-align:sub;font-size:smaller}
+.phpdebugbar sup,
+.phpdebugbar-openhandler sup {vertical-align:super;font-size:smaller}
+.phpdebugbar nobr,
+.phpdebugbar-openhandler nobr {white-space:nowrap}
+.phpdebugbar :focus,
+.phpdebugbar-openhandler :focus {outline:auto 5px -webkit-focus-ring-color}
+.phpdebugbar html:focus,
+.phpdebugbar-openhandler html:focus,
+.phpdebugbar body:focus,
+.phpdebugbar-openhandler body:focus,
+.phpdebugbar input[readonly]:focus,
+.phpdebugbar-openhandler input[readonly]:focus {outline:none}
+.phpdebugbar applet:focus,
+.phpdebugbar-openhandler applet:focus,
+.phpdebugbar embed:focus,
+.phpdebugbar-openhandler embed:focus,
+.phpdebugbar iframe:focus,
+.phpdebugbar-openhandler iframe:focus,
+.phpdebugbar object:focus,
+.phpdebugbar-openhandler object:focus {outline:none}
+.phpdebugbar input:focus,
+.phpdebugbar-openhandler input:focus,
+.phpdebugbar textarea:focus,
+.phpdebugbar-openhandler textarea:focus,
+.phpdebugbar keygen:focus,
+.phpdebugbar-openhandler keygen:focus,
+.phpdebugbar select:focus,
+.phpdebugbar-openhandler select:focus {outline-offset:-2px}
+.phpdebugbar input[type="button"]:focus,
+.phpdebugbar-openhandler input[type="button"]:focus,
+.phpdebugbar input[type="checkbox"]:focus,
+.phpdebugbar-openhandler input[type="checkbox"]:focus,
+.phpdebugbar input[type="file"]:focus,
+.phpdebugbar-openhandler input[type="file"]:focus,
+.phpdebugbar input[type="hidden"]:focus,
+.phpdebugbar-openhandler input[type="hidden"]:focus,
+.phpdebugbar input[type="image"]:focus,
+.phpdebugbar-openhandler input[type="image"]:focus,
+.phpdebugbar input[type="radio"]:focus,
+.phpdebugbar-openhandler input[type="radio"]:focus,
+.phpdebugbar input[type="reset"]:focus,
+.phpdebugbar-openhandler input[type="reset"]:focus,
+.phpdebugbar input[type="search"]:focus,
+.phpdebugbar-openhandler input[type="search"]:focus,
+.phpdebugbar input[type="submit"]:focus,
+.phpdebugbar-openhandler input[type="submit"]:focus,
+.phpdebugbar input[type="file"]:focus::-webkit-file-upload-button,
+.phpdebugbar-openhandler input[type="file"]:focus::-webkit-file-upload-button {outline-offset:0}
+.phpdebugbar a:-webkit-any-link,
+.phpdebugbar-openhandler a:-webkit-any-link {color:-webkit-link;text-decoration:underline;cursor:auto}
+.phpdebugbar a:-webkit-any-link:active,
+.phpdebugbar-openhandler a:-webkit-any-link:active {color:-webkit-activelink}
+.phpdebugbar ruby,
+.phpdebugbar-openhandler ruby,
+.phpdebugbar rt,
+.phpdebugbar-openhandler rt {text-indent:0}
+.phpdebugbar rt,
+.phpdebugbar-openhandler rt {line-height:normal;-webkit-text-emphasis:none}
+.phpdebugbar ruby >rt,
+.phpdebugbar-openhandler ruby >rt {display:block;font-size:50%;text-align:start}
+.phpdebugbar ruby >rp,
+.phpdebugbar-openhandler ruby >rp {display:none}
+.phpdebugbar noframes,
+.phpdebugbar-openhandler noframes {display:none}
+.phpdebugbar frameset,
+.phpdebugbar-openhandler frameset,
+.phpdebugbar frame,
+.phpdebugbar-openhandler frame {display:block}
+.phpdebugbar frameset,
+.phpdebugbar-openhandler frameset {border-color:inherit}
+.phpdebugbar iframe,
+.phpdebugbar-openhandler iframe {border:2px inset}
+.phpdebugbar details,
+.phpdebugbar-openhandler details {display:block}
+.phpdebugbar summary,
+.phpdebugbar-openhandler summary {display:block}
+.phpdebugbar summary::-webkit-details-marker,
+.phpdebugbar-openhandler summary::-webkit-details-marker {display:inline-block;width:0.66em;height:0.66em;-webkit-margin-end:0.4em}
+.phpdebugbar textarea[dir=auto],
+.phpdebugbar-openhandler textarea[dir=auto] {unicode-bidi:-webkit-plaintext}
\ No newline at end of file
diff --git a/assets/css/debugbar.less b/assets/css/debugbar.less
new file mode 100644
index 0000000..abd5e65
--- /dev/null
+++ b/assets/css/debugbar.less
@@ -0,0 +1,1036 @@
+/* Fix the close icon in the open handler popup */
+div.phpdebugbar-openhandler .phpdebugbar-openhandler-header a {
+    line-height: 1;
+}
+
+.phpdebugbar {
+    /* Better styling for model collector */
+    dl.phpdebugbar-widgets-kvlist dt {
+        width: 350px;
+    }
+    dl.phpdebugbar-widgets-kvlist dd {
+        margin-left: 360px;
+    }
+}
+
+.phpdebugbar,
+.phpdebugbar-openhandler {
+    /*
+    * The default style sheet used to render HTML.
+    *
+    * Copyright (C) 2000 Lars Knoll (knoll@kde.org)
+    * Copyright (C) 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Apple Inc. All rights reserved.
+    *
+    * This library is free software; you can redistribute it and/or
+    * modify it under the terms of the GNU Library General Public
+    * License as published by the Free Software Foundation; either
+    * version 2 of the License, or (at your option) any later version.
+    *
+    * This library is distributed in the hope that it will be useful,
+    * but WITHOUT ANY WARRANTY; without even the implied warranty of
+    * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+    * Library General Public License for more details.
+    *
+    * You should have received a copy of the GNU Library General Public License
+    * along with this library; see the file COPYING.LIB.  If not, write to
+    * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+    * Boston, MA 02110-1301, USA.
+    *
+    */
+
+    /* generic block-level elements */
+
+    p {
+        display: block;
+        -webkit-margin-before: 1__qem;
+        -webkit-margin-after: 1__qem;
+        -webkit-margin-start: 0;
+        -webkit-margin-end: 0;
+    }
+
+    div {
+        display: block
+    }
+
+    layer {
+        display: block
+    }
+
+    article, aside, footer, header, hgroup, main, nav, section {
+        display: block
+    }
+
+    marquee {
+        display: inline-block;
+    }
+
+    address {
+        display: block
+    }
+
+    blockquote {
+        display: block;
+        -webkit-margin-before: 1__qem;
+        -webkit-margin-after: 1em;
+        -webkit-margin-start: 40px;
+        -webkit-margin-end: 40px;
+    }
+
+    figcaption {
+        display: block
+    }
+
+    figure {
+        display: block;
+        -webkit-margin-before: 1em;
+        -webkit-margin-after: 1em;
+        -webkit-margin-start: 40px;
+        -webkit-margin-end: 40px;
+    }
+
+    q {
+        display: inline
+    }
+
+    q:before {
+        content: open-quote;
+    }
+
+    q:after {
+        content: close-quote;
+    }
+
+    center {
+        display: block;
+        /* special centering to be able to emulate the html4/netscape behaviour */
+        text-align: -webkit-center
+    }
+
+    hr {
+        display: block;
+        -webkit-margin-before: 0.5em;
+        -webkit-margin-after: 0.5em;
+        -webkit-margin-start: auto;
+        -webkit-margin-end: auto;
+        border-style: inset;
+        border-width: 1px
+    }
+
+    map {
+        display: inline
+    }
+
+    video {
+        object-fit: contain;
+    }
+
+    /* heading elements */
+
+    h1 {
+        display: block;
+        font-size: 2em;
+        -webkit-margin-before: 0.67__qem;
+        -webkit-margin-after: 0.67em;
+        -webkit-margin-start: 0;
+        -webkit-margin-end: 0;
+        font-weight: bold
+    }
+
+    :-webkit-any(article,aside,nav,section) h1 {
+        font-size: 1.5em;
+        -webkit-margin-before: 0.83__qem;
+        -webkit-margin-after: 0.83em;
+    }
+
+    :-webkit-any(article,aside,nav,section) :-webkit-any(article,aside,nav,section) h1 {
+        font-size: 1.17em;
+        -webkit-margin-before: 1__qem;
+        -webkit-margin-after: 1em;
+    }
+
+    :-webkit-any(article,aside,nav,section) :-webkit-any(article,aside,nav,section) :-webkit-any(article,aside,nav,section) h1 {
+        font-size: 1.00em;
+        -webkit-margin-before: 1.33__qem;
+        -webkit-margin-after: 1.33em;
+    }
+
+    :-webkit-any(article,aside,nav,section) :-webkit-any(article,aside,nav,section) :-webkit-any(article,aside,nav,section) :-webkit-any(article,aside,nav,section) h1 {
+        font-size: .83em;
+        -webkit-margin-before: 1.67__qem;
+        -webkit-margin-after: 1.67em;
+    }
+
+    :-webkit-any(article,aside,nav,section) :-webkit-any(article,aside,nav,section) :-webkit-any(article,aside,nav,section) :-webkit-any(article,aside,nav,section) :-webkit-any(article,aside,nav,section) h1 {
+        font-size: .67em;
+        -webkit-margin-before: 2.33__qem;
+        -webkit-margin-after: 2.33em;
+    }
+
+    h2 {
+        display: block;
+        font-size: 1.5em;
+        -webkit-margin-before: 0.83__qem;
+        -webkit-margin-after: 0.83em;
+        -webkit-margin-start: 0;
+        -webkit-margin-end: 0;
+        font-weight: bold
+    }
+
+    h3 {
+        display: block;
+        font-size: 1.17em;
+        -webkit-margin-before: 1__qem;
+        -webkit-margin-after: 1em;
+        -webkit-margin-start: 0;
+        -webkit-margin-end: 0;
+        font-weight: bold
+    }
+
+    h4 {
+        display: block;
+        -webkit-margin-before: 1.33__qem;
+        -webkit-margin-after: 1.33em;
+        -webkit-margin-start: 0;
+        -webkit-margin-end: 0;
+        font-weight: bold
+    }
+
+    h5 {
+        display: block;
+        font-size: .83em;
+        -webkit-margin-before: 1.67__qem;
+        -webkit-margin-after: 1.67em;
+        -webkit-margin-start: 0;
+        -webkit-margin-end: 0;
+        font-weight: bold
+    }
+
+    h6 {
+        display: block;
+        font-size: .67em;
+        -webkit-margin-before: 2.33__qem;
+        -webkit-margin-after: 2.33em;
+        -webkit-margin-start: 0;
+        -webkit-margin-end: 0;
+        font-weight: bold
+    }
+
+    /* tables */
+
+    table {
+        display: table;
+        border-collapse: separate;
+        border-spacing: 2px;
+        border-color: gray
+    }
+
+    thead {
+        display: table-header-group;
+        vertical-align: middle;
+        border-color: inherit
+    }
+
+    tbody {
+        display: table-row-group;
+        vertical-align: middle;
+        border-color: inherit
+    }
+
+    tfoot {
+        display: table-footer-group;
+        vertical-align: middle;
+        border-color: inherit
+    }
+
+    /* for tables without table section elements (can happen with XHTML or dynamically created tables) */
+    table > tr {
+        vertical-align: middle;
+    }
+
+    col {
+        display: table-column
+    }
+
+    colgroup {
+        display: table-column-group
+    }
+
+    tr {
+        display: table-row;
+        vertical-align: inherit;
+        border-color: inherit
+    }
+
+    td, th {
+        display: table-cell;
+        vertical-align: inherit
+    }
+
+    th {
+        font-weight: bold
+    }
+
+    caption {
+        display: table-caption;
+        text-align: -webkit-center
+    }
+
+    /* lists */
+
+    ul, ol, dl {
+        font-size: 1em;
+    }
+
+    ul, menu, dir {
+        display: block;
+        list-style-type: disc;
+        -webkit-margin-before: 1__qem;
+        -webkit-margin-after: 1em;
+        -webkit-margin-start: 0;
+        -webkit-margin-end: 0;
+        -webkit-padding-start: 40px
+    }
+
+    ol {
+        display: block;
+        list-style-type: decimal;
+        -webkit-margin-before: 1__qem;
+        -webkit-margin-after: 1em;
+        -webkit-margin-start: 0;
+        -webkit-margin-end: 0;
+        -webkit-padding-start: 40px
+    }
+
+    li {
+        display: list-item;
+        text-align: -webkit-match-parent;
+    }
+
+    ul ul, ol ul {
+        list-style-type: circle
+    }
+
+    ol ol ul, ol ul ul, ul ol ul, ul ul ul {
+        list-style-type: square
+    }
+
+    dd {
+        display: block;
+        -webkit-margin-start: 40px
+    }
+
+    dl {
+        display: block;
+        -webkit-margin-before: 1__qem;
+        -webkit-margin-after: 1em;
+        -webkit-margin-start: 0;
+        -webkit-margin-end: 0;
+    }
+
+    dt {
+        display: block
+    }
+
+    ol ul, ul ol, ul ul, ol ol {
+        -webkit-margin-before: 0;
+        -webkit-margin-after: 0
+    }
+
+    /* form elements */
+
+    form {
+        display: block;
+        margin-top: 0__qem;
+    }
+
+    label {
+        cursor: default;
+    }
+
+    legend {
+        display: block;
+        -webkit-padding-start: 2px;
+        -webkit-padding-end: 2px;
+        border: none
+    }
+
+    fieldset {
+        display: block;
+        -webkit-margin-start: 2px;
+        -webkit-margin-end: 2px;
+        -webkit-padding-before: 0.35em;
+        -webkit-padding-start: 0.75em;
+        -webkit-padding-end: 0.75em;
+        -webkit-padding-after: 0.625em;
+        border: 2px groove ThreeDFace;
+        min-width: -webkit-min-content;
+    }
+
+    button {
+        -webkit-appearance: button;
+    }
+
+    /* Form controls don't go vertical. */
+    input, textarea, keygen, select, button, meter, progress {
+        -webkit-writing-mode: horizontal-tb !important;
+    }
+
+    input, textarea, keygen, select, button {
+        margin: 0__qem;
+        font: -webkit-small-control;
+        color: initial;
+        letter-spacing: normal;
+        word-spacing: normal;
+        line-height: normal;
+        text-transform: none;
+        text-indent: 0;
+        text-shadow: none;
+        display: inline-block;
+        text-align: start;
+        width: initial;
+        height: initial;
+    }
+
+    input[type="hidden"] {
+        display: none
+    }
+
+    input, input[type="password"], input[type="search"] {
+        -webkit-appearance: textfield;
+        padding: 1px;
+        background-color: white;
+        border: 2px inset;
+        -webkit-rtl-ordering: logical;
+        -webkit-user-select: text;
+        cursor: auto;
+    }
+
+    input[type="search"] {
+        -webkit-appearance: searchfield;
+        box-sizing: border-box;
+    }
+
+    input::-webkit-textfield-decoration-container {
+        display: flex;
+        align-items: center;
+        -webkit-user-modify: read-only !important;
+        content: none !important;
+    }
+
+    input[type="search"]::-webkit-textfield-decoration-container {
+        direction: ltr;
+    }
+
+    input::-webkit-clear-button {
+        -webkit-appearance: searchfield-cancel-button;
+        display: inline-block;
+        flex: none;
+        -webkit-user-modify: read-only !important;
+        -webkit-margin-start: 2px;
+        opacity: 0;
+        pionter-events: none;
+    }
+
+    input:enabled:read-write:-webkit-any(:focus,:hover)::-webkit-clear-button {
+        opacity: 1;
+        pointer-events: auto;
+    }
+
+    input[type="search"]::-webkit-search-cancel-button {
+        -webkit-appearance: searchfield-cancel-button;
+        display: block;
+        flex: none;
+        -webkit-user-modify: read-only !important;
+        -webkit-margin-start: 1px;
+        opacity: 0;
+        pointer-events: none;
+    }
+
+    input[type="search"]:enabled:read-write:-webkit-any(:focus,:hover)::-webkit-search-cancel-button {
+        opacity: 1;
+        pointer-events: auto;
+    }
+
+    input[type="search"]::-webkit-search-decoration {
+        -webkit-appearance: searchfield-decoration;
+        display: block;
+        flex: none;
+        -webkit-user-modify: read-only !important;
+        -webkit-align-self: flex-start;
+        margin: auto 0;
+    }
+
+    input[type="search"]::-webkit-search-results-decoration {
+        -webkit-appearance: searchfield-results-decoration;
+        display: block;
+        flex: none;
+        -webkit-user-modify: read-only !important;
+        -webkit-align-self: flex-start;
+        margin: auto 0;
+    }
+
+    input::-webkit-inner-spin-button {
+        -webkit-appearance: inner-spin-button;
+        display: inline-block;
+        cursor: default;
+        flex: none;
+        align-self: stretch;
+        -webkit-user-select: none;
+        -webkit-user-modify: read-only !important;
+        opacity: 0;
+        pointer-events: none;
+    }
+
+    input:enabled:read-write:-webkit-any(:focus,:hover)::-webkit-inner-spin-button {
+        opacity: 1;
+        pointer-events: auto;
+    }
+
+    keygen, select {
+        border-radius: 5px;
+    }
+
+    keygen::-webkit-keygen-select {
+        margin: 0px;
+    }
+
+    textarea {
+        -webkit-appearance: textarea;
+        background-color: white;
+        border: 1px solid;
+        -webkit-rtl-ordering: logical;
+        -webkit-user-select: text;
+        flex-direction: column;
+        resize: auto;
+        cursor: auto;
+        padding: 2px;
+        white-space: pre-wrap;
+        word-wrap: break-word;
+    }
+
+    ::-webkit-input-placeholder {
+        -webkit-text-security: none;
+        color: darkGray;
+        display: block !important;
+        pointer-events: none !important;
+    }
+
+    input::-webkit-input-placeholder {
+        white-space: pre;
+        word-wrap: normal;
+        overflow: hidden;
+        -webkit-user-modify: read-only !important;
+    }
+
+    input[type="password"] {
+        -webkit-text-security: disc !important;
+    }
+
+    input[type="hidden"], input[type="image"], input[type="file"] {
+        -webkit-appearance: initial;
+        padding: initial;
+        background-color: initial;
+        border: initial;
+    }
+
+    input[type="file"] {
+        align-items: baseline;
+        color: inherit;
+        text-align: start !important;
+    }
+
+    input:-webkit-autofill, textarea:-webkit-autofill, select:-webkit-autofill {
+        background-color: #FAFFBD !important;
+        background-image:none !important;
+        color: #000000 !important;
+    }
+
+    input[type="radio"], input[type="checkbox"] {
+        margin: 3px 0.5ex;
+        padding: initial;
+        background-color: initial;
+        border: initial;
+    }
+
+    input[type="button"], input[type="submit"], input[type="reset"] {
+        -webkit-appearance: push-button;
+        -webkit-user-select: none;
+        white-space: pre
+    }
+
+    input[type="file"]::-webkit-file-upload-button {
+        -webkit-appearance: push-button;
+        -webkit-user-modify: read-only !important;
+        white-space: nowrap;
+        margin: 0;
+        font-size: inherit;
+    }
+
+    input[type="button"], input[type="submit"], input[type="reset"], input[type="file"]::-webkit-file-upload-button, button {
+        align-items: flex-start;
+        text-align: center;
+        cursor: default;
+        color: ButtonText;
+        padding: 2px 6px 3px 6px;
+        border: 2px outset ButtonFace;
+        background-color: ButtonFace;
+        box-sizing: border-box
+    }
+
+    input[type="range"] {
+        -webkit-appearance: slider-horizontal;
+        padding: initial;
+        border: initial;
+        margin: 2px;
+        color: #909090;
+    }
+
+    input[type="range"]::-webkit-slider-container, input[type="range"]::-webkit-media-slider-container {
+        flex: 1;
+        box-sizing: border-box;
+        -webkit-user-modify: read-only !important;
+        display: flex;
+        -webkit-align-contents: center;
+    }
+
+    input[type="range"]::-webkit-slider-runnable-track {
+        flex: 1;
+        -webkit-align-self: center;
+
+        box-sizing: border-box;
+        -webkit-user-modify: read-only !important;
+        display: block;
+    }
+
+    input[type="range"]::-webkit-slider-thumb, input[type="range"]::-webkit-media-slider-thumb {
+        -webkit-appearance: sliderthumb-horizontal;
+        box-sizing: border-box;
+        -webkit-user-modify: read-only !important;
+        display: block;
+    }
+
+    input[type="button"]:disabled, input[type="submit"]:disabled, input[type="reset"]:disabled,
+    input[type="file"]:disabled::-webkit-file-upload-button, button:disabled,
+    select:disabled, keygen:disabled, optgroup:disabled, option:disabled,
+    select[disabled]>option {
+        color: GrayText
+    }
+
+    input[type="button"]:active, input[type="submit"]:active, input[type="reset"]:active, input[type="file"]:active::-webkit-file-upload-button, button:active {
+        border-style: inset
+    }
+
+    input[type="button"]:active:disabled, input[type="submit"]:active:disabled, input[type="reset"]:active:disabled, input[type="file"]:active:disabled::-webkit-file-upload-button, button:active:disabled {
+        border-style: outset
+    }
+
+    option:-internal-spatial-navigation-focus {
+        outline: black dashed 1px;
+        outline-offset: -1px;
+    }
+
+    datalist {
+        display: none
+    }
+
+    area {
+        display: inline
+    }
+
+    param {
+        display: none
+    }
+
+    input[type="checkbox"] {
+        -webkit-appearance: checkbox;
+        box-sizing: border-box;
+    }
+
+    input[type="radio"] {
+        -webkit-appearance: radio;
+        box-sizing: border-box;
+    }
+
+    input[type="color"] {
+        -webkit-appearance: square-button;
+        width: 44px;
+        height: 23px;
+        background-color: ButtonFace;
+        /* Same as native_theme_base. */
+        border: 1px #a9a9a9 solid;
+        padding: 1px 2px;
+    }
+
+    input[type="color"]::-webkit-color-swatch-wrapper {
+        display:flex;
+        padding: 4px 2px;
+        box-sizing: border-box;
+        -webkit-user-modify: read-only !important;
+        width: 100%;
+        height: 100%
+    }
+
+    input[type="color"]::-webkit-color-swatch {
+        background-color: #000000;
+        border: 1px solid #777777;
+        flex: 1;
+        -webkit-user-modify: read-only !important;
+    }
+
+    input[type="color"][list] {
+        -webkit-appearance: menulist;
+        width: 88px;
+        height: 23px
+    }
+
+    input[type="color"][list]::-webkit-color-swatch-wrapper {
+        padding-left: 8px;
+        padding-right: 24px;
+    }
+
+    input[type="color"][list]::-webkit-color-swatch {
+        border-color: #000000;
+    }
+
+    input::-webkit-calendar-picker-indicator {
+        display: inline-block;
+        width: 0.66em;
+        height: 0.66em;
+        padding: 0.17em 0.34em;
+        -webkit-user-modify: read-only !important;
+        opacity: 0;
+        pointer-events: none;
+    }
+
+    input::-webkit-calendar-picker-indicator:hover {
+        background-color: #eee;
+    }
+
+    input:enabled:read-write:-webkit-any(:focus,:hover)::-webkit-calendar-picker-indicator,
+    input::-webkit-calendar-picker-indicator:focus {
+        opacity: 1;
+        pointer-events: auto;
+    }
+
+    input[type="date"]:disabled::-webkit-clear-button,
+    input[type="date"]:disabled::-webkit-inner-spin-button,
+    input[type="datetime-local"]:disabled::-webkit-clear-button,
+    input[type="datetime-local"]:disabled::-webkit-inner-spin-button,
+    input[type="month"]:disabled::-webkit-clear-button,
+    input[type="month"]:disabled::-webkit-inner-spin-button,
+    input[type="week"]:disabled::-webkit-clear-button,
+    input[type="week"]:disabled::-webkit-inner-spin-button,
+    input:disabled::-webkit-calendar-picker-indicator,
+    input[type="date"][readonly]::-webkit-clear-button,
+    input[type="date"][readonly]::-webkit-inner-spin-button,
+    input[type="datetime-local"][readonly]::-webkit-clear-button,
+    input[type="datetime-local"][readonly]::-webkit-inner-spin-button,
+    input[type="month"][readonly]::-webkit-clear-button,
+    input[type="month"][readonly]::-webkit-inner-spin-button,
+    input[type="week"][readonly]::-webkit-clear-button,
+    input[type="week"][readonly]::-webkit-inner-spin-button,
+    input[readonly]::-webkit-calendar-picker-indicator {
+        visibility: hidden;
+    }
+
+    select {
+        -webkit-appearance: menulist;
+        box-sizing: border-box;
+        align-items: center;
+        border: 1px solid;
+        white-space: pre;
+        -webkit-rtl-ordering: logical;
+        color: black;
+        background-color: white;
+        cursor: default;
+    }
+
+    select:-internal-list-box {
+        -webkit-appearance: listbox;
+        align-items: flex-start;
+        border: 1px inset gray;
+        border-radius: initial;
+        overflow-x: hidden;
+        overflow-y: scroll;
+        vertical-align: text-bottom;
+        -webkit-user-select: none;
+        white-space: nowrap;
+    }
+
+    optgroup {
+        font-weight: bolder;
+        display: block;
+    }
+
+    option {
+        font-weight: normal;
+        display: block;
+        padding: 0 2px 1px 2px;
+        white-space: pre;
+        min-height: 1.2em;
+    }
+
+    select:-internal-list-box option,
+    select:-internal-list-box optgroup {
+        line-height: initial !important;
+    }
+
+    select:-internal-list-box:focus option:checked {
+        background-color: -internal-active-list-box-selection !important;
+        color: -internal-active-list-box-selection-text !important;
+    }
+
+    select:-internal-list-box option:checked {
+        background-color: -internal-inactive-list-box-selection !important;
+        color: -internal-inactive-list-box-selection-text !important;
+    }
+
+    select:-internal-list-box:disabled option:checked,
+    select:-internal-list-box option:checked:disabled {
+        color: gray !important;
+    }
+
+
+    output {
+        display: inline;
+    }
+
+    /* meter */
+
+    meter {
+        -webkit-appearance: meter;
+        box-sizing: border-box;
+        display: inline-block;
+        height: 1em;
+        width: 5em;
+        vertical-align: -0.2em;
+    }
+
+    meter::-webkit-meter-inner-element {
+        -webkit-appearance: inherit;
+        box-sizing: inherit;
+        -webkit-user-modify: read-only !important;
+        height: 100%;
+        width: 100%;
+    }
+
+    meter::-webkit-meter-bar {
+        background: linear-gradient(to bottom, #ddd, #eee 20%, #ccc 45%, #ccc 55%, #ddd);
+        height: 100%;
+        width: 100%;
+        -webkit-user-modify: read-only !important;
+        box-sizing: border-box;
+    }
+
+    meter::-webkit-meter-optimum-value {
+        background: linear-gradient(to bottom, #ad7, #cea 20%, #7a3 45%, #7a3 55%, #ad7);
+        height: 100%;
+        -webkit-user-modify: read-only !important;
+        box-sizing: border-box;
+    }
+
+    meter::-webkit-meter-suboptimum-value {
+        background: linear-gradient(to bottom, #fe7, #ffc 20%, #db3 45%, #db3 55%, #fe7);
+        height: 100%;
+        -webkit-user-modify: read-only !important;
+        box-sizing: border-box;
+    }
+
+    meter::-webkit-meter-even-less-good-value {
+        background: linear-gradient(to bottom, #f77, #fcc 20%, #d44 45%, #d44 55%, #f77);
+        height: 100%;
+        -webkit-user-modify: read-only !important;
+        box-sizing: border-box;
+    }
+
+    /* progress */
+
+    progress {
+        -webkit-appearance: progress-bar;
+        box-sizing: border-box;
+        display: inline-block;
+        height: 1em;
+        width: 10em;
+        vertical-align: -0.2em;
+    }
+
+    progress::-webkit-progress-inner-element {
+        -webkit-appearance: inherit;
+        box-sizing: inherit;
+        -webkit-user-modify: read-only;
+        height: 100%;
+        width: 100%;
+    }
+
+    progress::-webkit-progress-bar {
+        background-color: gray;
+        height: 100%;
+        width: 100%;
+        -webkit-user-modify: read-only !important;
+        box-sizing: border-box;
+    }
+
+    progress::-webkit-progress-value {
+        background-color: green;
+        height: 100%;
+        width: 50%; /* should be removed later */
+        -webkit-user-modify: read-only !important;
+        box-sizing: border-box;
+    }
+
+    /* inline elements */
+
+    u, ins {
+        text-decoration: underline
+    }
+
+    strong, b {
+        font-weight: bold
+    }
+
+    cite, em, var, address, dfn {
+        font-style: italic
+    }
+
+    tt, code, kbd, samp {
+        font-family: monospace
+    }
+
+    pre, xmp, plaintext, listing {
+        display: block;
+        font-family: monospace;
+        white-space: pre;
+        margin: 1__qem 0
+    }
+
+    mark {
+        background-color: yellow;
+        color: black
+    }
+
+    big {
+        font-size: larger
+    }
+
+    small {
+        font-size: smaller
+    }
+
+    s, strike, del {
+        text-decoration: line-through
+    }
+
+    sub {
+        vertical-align: sub;
+        font-size: smaller
+    }
+
+    sup {
+        vertical-align: super;
+        font-size: smaller
+    }
+
+    nobr {
+        white-space: nowrap
+    }
+
+    /* states */
+
+    :focus {
+        outline: auto 5px -webkit-focus-ring-color
+    }
+
+    /* Read-only text fields do not show a focus ring but do still receive focus */
+    html:focus, body:focus, input[readonly]:focus {
+        outline: none
+    }
+
+    applet:focus, embed:focus, iframe:focus, object:focus {
+        outline: none
+    }
+
+    input:focus, textarea:focus, keygen:focus, select:focus {
+        outline-offset: -2px
+    }
+
+    input[type="button"]:focus,
+    input[type="checkbox"]:focus,
+    input[type="file"]:focus,
+    input[type="hidden"]:focus,
+    input[type="image"]:focus,
+    input[type="radio"]:focus,
+    input[type="reset"]:focus,
+    input[type="search"]:focus,
+    input[type="submit"]:focus,
+    input[type="file"]:focus::-webkit-file-upload-button {
+        outline-offset: 0
+    }
+
+    a:-webkit-any-link {
+        color: -webkit-link;
+        text-decoration: underline;
+        cursor: auto;
+    }
+
+    a:-webkit-any-link:active {
+        color: -webkit-activelink
+    }
+
+    /* HTML5 ruby elements */
+
+    ruby, rt {
+        text-indent: 0; /* blocks used for ruby rendering should not trigger this */
+    }
+
+    rt {
+        line-height: normal;
+        -webkit-text-emphasis: none;
+    }
+
+    ruby > rt {
+        display: block;
+        font-size: 50%;
+        text-align: start;
+    }
+
+    ruby > rp {
+        display: none;
+    }
+
+    /* other elements */
+
+    noframes {
+        display: none
+    }
+
+    frameset, frame {
+        display: block
+    }
+
+    frameset {
+        border-color: inherit
+    }
+
+    iframe {
+        border: 2px inset
+    }
+
+    details {
+        display: block
+    }
+
+    summary {
+        display: block
+    }
+
+    summary::-webkit-details-marker {
+        display: inline-block;
+        width: 0.66em;
+        height: 0.66em;
+        -webkit-margin-end: 0.4em;
+    }
+
+    textarea[dir=auto] {
+        unicode-bidi: -webkit-plaintext;
+    }
+}
\ No newline at end of file
diff --git a/classes/ServiceProvider.php b/classes/ServiceProvider.php
new file mode 100644
index 0000000..6af9418
--- /dev/null
+++ b/classes/ServiceProvider.php
@@ -0,0 +1,20 @@
+<?php namespace RainLab\Debugbar\Classes;
+
+use Illuminate\Contracts\Http\Kernel;
+use Barryvdh\Debugbar\ServiceProvider as BaseServiceProvider;
+
+use RainLab\Debugbar\Middleware\InjectDebugbar;
+
+class ServiceProvider extends BaseServiceProvider
+{
+    /**
+     * Register the Debugbar Middleware
+     *
+     * @param  string $middleware
+     */
+    protected function registerMiddleware($middleware)
+    {
+        $kernel = $this->app[Kernel::class];
+        $kernel->pushMiddleware(InjectDebugbar::class);
+    }
+}
\ No newline at end of file
diff --git a/composer.json b/composer.json
index fb19260..11c993c 100644
--- a/composer.json
+++ b/composer.json
@@ -17,9 +17,15 @@
             "homepage": "https://luketowers.ca",
             "role": "Maintainer"
         }
     ],
     "require": {
-        "php": ">=7.0.0",
         "barryvdh/laravel-debugbar": "~3.0"
+    },
+    "extra": {
+        "laravel": {
+            "dont-discover": [
+                "barryvdh/laravel-debugbar"
+            ]
+        }
     }
 }
diff --git a/config/config.php b/config/config.php
index f0a941d..1c1470a 100644
--- a/config/config.php
+++ b/config/config.php
@@ -2,19 +2,47 @@
 
 return [
 
     /*
      |--------------------------------------------------------------------------
-     | Debugbar Settings
+     | Debugbar Status
      |--------------------------------------------------------------------------
      |
      | Debugbar is enabled by default, when debug is set to true in app.php.
      | You can override the value by setting enable to true or false instead of null.
      |
      */
 
     'enabled' => env('DEBUGBAR_ENABLED', null),
+
+    /*
+     |--------------------------------------------------------------------------
+     | Allow public access
+     |--------------------------------------------------------------------------
+     |
+     | By default the debugbar requires an authenticated backend user with the
+     | rainlab.debugbar.access_debugbar permission in order to view the debugbar
+     |
+     | Set this to true to bypass that authentication check.
+     |
+     | >**NOTE**: There is no way to bypass the permission check that controls
+     | access to viewing stored requests (rainlab.debugbar.access_stored_requests)
+     | as that can be abused to takeover accounts and steal sensitive information.
+     |
+     */
+
+    'allow_public_access' => false,
+
+    /*
+     |--------------------------------------------------------------------------
+     | Routes to exclude
+     |--------------------------------------------------------------------------
+     |
+     | Specify the routes that the debugbar is not to be included on
+     |
+     */
+
     'except' => [
         'telescope*'
     ],
 
     /*
@@ -115,17 +143,17 @@ return [
         'gate'            => true, // Display Laravel Gate checks
         'session'         => true,  // Display session data
         'symfony_request' => true,  // Only one can be enabled..
         'mail'            => true,  // Catch mail messages
         'laravel'         => false, // Laravel version and environment
-        'events'          => false, // All events fired
+        'events'          => true, // All events fired
         'default_request' => false, // Regular or special Symfony request logger
         'logs'            => false, // Add the latest log messages
         'files'           => false, // Show the included files
         'config'          => false, // Display config settings
         'cache'           => false, // Display cache events
-        'models'          => false, // Display models
+        'models'          => true, // Display models
     ],
 
     /*
      |--------------------------------------------------------------------------
      | Extra options
diff --git a/lang/en/lang.php b/lang/en/lang.php
new file mode 100644
index 0000000..47df6bb
--- /dev/null
+++ b/lang/en/lang.php
@@ -0,0 +1,8 @@
+<?php return [
+    'plugin' => [
+        'name'                   => 'Debugbar',
+        'description'            => 'Integrates the PHP Debugbar with October CMS',
+        'access_debugbar'        => 'Access the debugbar',
+        'access_stored_requests' => 'Access stored requests (dangerous)'
+    ],
+];
\ No newline at end of file
diff --git a/middleware/InjectDebugbar.php b/middleware/InjectDebugbar.php
new file mode 100644
index 0000000..a0868db
--- /dev/null
+++ b/middleware/InjectDebugbar.php
@@ -0,0 +1,58 @@
+<?php namespace RainLab\Debugbar\Middleware;
+
+use Config;
+use Request;
+use Closure;
+use Exception;
+use BackendAuth;
+use Symfony\Component\Debug\Exception\FatalThrowableError;
+use Barryvdh\Debugbar\Middleware\InjectDebugbar as BaseMiddleware;
+
+class InjectDebugbar extends BaseMiddleware
+{
+    /**
+     * Handle an incoming request.
+     *
+     * @param  Request  $request
+     * @param  Closure  $next
+     * @return mixed
+     */
+    public function handle($request, Closure $next)
+    {
+        if (!$this->debugbar->isEnabled() || $this->inExceptArray($request)) {
+            return $next($request);
+        }
+
+        $this->debugbar->boot();
+
+        try {
+            /** @var \Illuminate\Http\Response $response */
+            $response = $next($request);
+        } catch (Exception $e) {
+            $response = $this->handleException($request, $e);
+        } catch (Error $error) {
+            $e = new FatalThrowableError($error);
+            $response = $this->handleException($request, $e);
+        }
+
+        $user = BackendAuth::getUser();
+
+        if (!$user || !$user->hasAccess('rainlab.debugbar.access_stored_requests')) {
+            // Disable stored requests
+            // Note: this will completely disable storing requests from any users
+            // without the required permission. If that functionality is desired again
+            // in the future then we can look at overriding the OpenHandler controller
+            $this->debugbar->setStorage(null);
+        }
+
+        // Modify the response to add the Debugbar if allowed
+        if (
+            ($user && $user->hasAccess('rainlab.debugbar.access_debugbar')) ||
+            Config::get('rainlab.debugbar::allow_public_access', false)
+        ) {
+            $this->debugbar->modifyResponse($request, $response);
+        }
+
+        return $response;
+    }
+}
diff --git a/middleware/debugbar.php b/middleware/InterpretsAjaxExceptions.php
similarity index 72%
rename from middleware/debugbar.php
rename to middleware/InterpretsAjaxExceptions.php
index dfe43b8..8b3677f 100644
--- a/middleware/debugbar.php
+++ b/middleware/InterpretsAjaxExceptions.php
@@ -1,17 +1,18 @@
 <?php namespace RainLab\Debugbar\Middleware;
 
+use Request;
 use Closure;
+use Response;
+use Exception;
 use Illuminate\Foundation\Application;
-use Illuminate\Contracts\Routing\Middleware;
-use Illuminate\Http\Response;
+use October\Rain\Exception\ErrorHandler;
 use October\Rain\Exception\AjaxException;
 use Symfony\Component\HttpKernel\Exception\HttpExceptionInterface;
 
-class Debugbar implements Middleware
+class InterpretsAjaxExceptions
 {
-
     /**
      * The Laravel Application
      *
      * @var Application
      */
@@ -37,23 +38,23 @@ class Debugbar implements Middleware
      */
     public function handle($request, Closure $next)
     {
         /** @var \Barryvdh\Debugbar\LaravelDebugbar $debugbar */
         $debugbar = $this->app['debugbar'];
+
         try {
             return $next($request);
-        } catch (\Exception $ex) {
-            if (!\Request::ajax()) {
+        } catch (Exception $ex) {
+            if (!Request::ajax()) {
                 throw $ex;
             }
             $debugbar->addException($ex);
             $message = $ex instanceof AjaxException
-                ? $ex->getContents() : \October\Rain\Exception\ErrorHandler::getDetailedMessage($ex);
+                ? $ex->getContents() : ErrorHandler::getDetailedMessage($ex);
 
-            return \Response::make($message, $this->getStatusCode($ex), $debugbar->getDataAsHeaders());
+            return Response::make($message, $this->getStatusCode($ex), $debugbar->getDataAsHeaders());
         }
-
     }
 
     /**
      * Checks if the exception implements the HttpExceptionInterface, or returns
      * as generic 500 error code for a server side error.
@@ -61,17 +62,14 @@ class Debugbar implements Middleware
      */
     protected function getStatusCode($exception)
     {
         if ($exception instanceof HttpExceptionInterface) {
             $code = $exception->getStatusCode();
-        }
-        elseif ($exception instanceof AjaxException) {
+        } elseif ($exception instanceof AjaxException) {
             $code = 406;
-        }
-        else {
+        } else {
             $code = 500;
         }
 
         return $code;
     }
-
 }
diff --git a/updates/version.yaml b/updates/version.yaml
index e02b489..a5086ae 100644
--- a/updates/version.yaml
+++ b/updates/version.yaml
@@ -7,6 +7,7 @@
 1.0.7: Allow plugin to be installed via Composer (tim0991)
 1.0.8: Fix debugbar dependency
 2.0.0: !!! Upgrade for compatibility with Laravel 5.5 (PHP 7+, October 420+)
 2.0.1: Add config file to prevent exceptions from being thrown (credit alxy)
 3.0.0: Switched vendor to RainLab from Bedard, upgraded for compatibility with Laravel 6.x
-3.0.1: Fixed bug that caused 502 errors on AJAX requests
\ No newline at end of file
+3.0.1: Fixed bug that caused 502 errors on AJAX requests
+3.1.0: Important security update and improved styling.
\ No newline at end of file

Vulnerable code: use Debugbar;
            'name'        => 'Debugbar',
            'description' => 'Debugbar integration for OctoberCMS.',
            'icon'        => 'icon-cog',
        App::register('\Barryvdh\Debugbar\ServiceProvider');
            $this->app['Illuminate\Contracts\Http\Kernel']->pushMiddleware('\RainLab\Debugbar\Middleware\Debugbar');
        Event::listen('cms.page.beforeDisplay', function ($controller, $url, $page) {
            // Only show for authenticated backend users
            if (!BackendAuth::check()) {
                Debugbar::disable();
Set `debug` to `true` in `config/app.php`, and the debugbar should appear in your backend. See [barryvdh/laravel-debugbar](https://github.com/barryvdh/laravel-debugbar) for more usage instructions and documentation.
        "php": ">=7.0.0",
     | Debugbar Settings
        'events'          => false, // All events fired
        'models'          => false, // Display models
use Illuminate\Contracts\Routing\Middleware;
use Illuminate\Http\Response;
class Debugbar implements Middleware

        } catch (\Exception $ex) {
            if (!\Request::ajax()) {
                ? $ex->getContents() : \October\Rain\Exception\ErrorHandler::getDetailedMessage($ex);
            return \Response::make($message, $this->getStatusCode($ex), $debugbar->getDataAsHeaders());

        }
        elseif ($exception instanceof AjaxException) {
        }
        else {

3.0.1: Fixed bug that caused 502 errors on AJAX requests
Fixed code: use Backend\Models\UserRole;
use System\Classes\CombineAssets;
 *
 * TODO:
 * - Fix styling by scoping a html reset to phpdebugbar-openhandler and phpdebugbar
            'name'        => 'rainlab.debugbar::lang.plugin.name',
            'description' => 'rainlab.debugbar::lang.plugin.description',
            'icon'        => 'icon-bug',
        App::register(\RainLab\Debugbar\Classes\ServiceProvider::class);
            $this->app['Illuminate\Contracts\Http\Kernel']->pushMiddleware('\RainLab\Debugbar\Middleware\InterpretsAjaxExceptions');
        // Add styling
        $addResources = function ($controller) {
            $debugBar = $this->app->make('Barryvdh\Debugbar\LaravelDebugbar');
            if ($debugBar->isEnabled()) {
                $controller->addCss(url(Config::get('cms.pluginsPath', '/plugins') . '/rainlab/debugbar/assets/css/debugbar.css'));
        };
        Event::listen('backend.page.beforeDisplay', $addResources, PHP_INT_MAX);
        Event::listen('cms.page.beforeDisplay', $addResources, PHP_INT_MAX);
        Event::listen('cms.page.beforeDisplay', function ($controller, $url, $page) {

    /**
     * Register the
     */
    public function register()
    {
        /*
         * Register asset bundles
         */
        CombineAssets::registerCallback(function ($combiner) {
            $combiner->registerBundle('$/rainlab/debugbar/assets/css/debugbar.less');
        });
    }

    /**
     * Register the permissions used by the plugin
     *
     * @return array
     */
    public function registerPermissions()
    {
        return [
            'rainlab.debugbar.access_debugbar' => [
                'tab' => 'rainlab.debugbar::lang.plugin.name',
                'label' => 'rainlab.debugbar::lang.plugin.access_debugbar',
                'roles' => UserRole::CODE_DEVELOPER,
            ],
            'rainlab.debugbar.access_stored_requests' => [
                'tab' => 'rainlab.debugbar::lang.plugin.name',
                'label' => 'rainlab.debugbar::lang.plugin.access_stored_requests',
                'roles' => UserRole::CODE_DEVELOPER,
            ],
        ];
    }
Set `debug` to `true` in `config/app.php`, and the debugbar should appear on your site to all authenticated backend users with the `rainlab.debugbar.access_debugbar` permission. If you would like to make the debugbar accessible to all users regardless of authentication & permissions, then set `allow_public_access` to `true` in `config/rainlab/debugbar/config.php`.

See [barryvdh/laravel-debugbar](https://github.com/barryvdh/laravel-debugbar) for more usage instructions and documentation.
div.phpdebugbar-openhandler .phpdebugbar-openhandler-header a {line-height:1}
.phpdebugbar {}
.phpdebugbar dl.phpdebugbar-widgets-kvlist dt {width:350px}
.phpdebugbar dl.phpdebugbar-widgets-kvlist dd {margin-left:360px}
.phpdebugbar,
.phpdebugbar-openhandler {}
.phpdebugbar p,
.phpdebugbar-openhandler p {display:block;-webkit-margin-before:1__qem;-webkit-margin-after:1__qem;-webkit-margin-start:0;-webkit-margin-end:0}
.phpdebugbar div,
.phpdebugbar-openhandler div {display:block}
.phpdebugbar layer,
.phpdebugbar-openhandler layer {display:block}
.phpdebugbar article,
.phpdebugbar-openhandler article,
.phpdebugbar aside,
.phpdebugbar-openhandler aside,
.phpdebugbar footer,
.phpdebugbar-openhandler footer,
.phpdebugbar header,
.phpdebugbar-openhandler header,
.phpdebugbar hgroup,
.phpdebugbar-openhandler hgroup,
.phpdebugbar main,
.phpdebugbar-openhandler main,
.phpdebugbar nav,
.phpdebugbar-openhandler nav,
.phpdebugbar section,
.phpdebugbar-openhandler section {display:block}
.phpdebugbar marquee,
.phpdebugbar-openhandler marquee {display:inline-block}
.phpdebugbar address,
.phpdebugbar-openhandler address {display:block}
.phpdebugbar blockquote,
.phpdebugbar-openhandler blockquote {display:block;-webkit-margin-before:1__qem;-webkit-margin-after:1em;-webkit-margin-start:40px;-webkit-margin-end:40px}
.phpdebugbar figcaption,
.phpdebugbar-openhandler figcaption {display:block}
.phpdebugbar figure,
.phpdebugbar-openhandler figure {display:block;-webkit-margin-before:1em;-webkit-margin-after:1em;-webkit-margin-start:40px;-webkit-margin-end:40px}
.phpdebugbar q,
.phpdebugbar-openhandler q {display:inline}
.phpdebugbar q:before,
.phpdebugbar-openhandler q:before {content:open-quote}
.phpdebugbar q:after,
.phpdebugbar-openhandler q:after {content:close-quote}
.phpdebugbar center,
.phpdebugbar-openhandler center {display:block;text-align:-webkit-center}
.phpdebugbar hr,
.phpdebugbar-openhandler hr {display:block;-webkit-margin-before:0.5em;-webkit-margin-after:0.5em;-webkit-margin-start:auto;-webkit-margin-end:auto;border-style:inset;border-width:1px}
.phpdebugbar map,
.phpdebugbar-openhandler map {display:inline}
.phpdebugbar video,
.phpdebugbar-openhandler video {object-fit:contain}
.phpdebugbar h1,
.phpdebugbar-openhandler h1 {display:block;font-size:2em;-webkit-margin-before:0.67__qem;-webkit-margin-after:0.67em;-webkit-margin-start:0;-webkit-margin-end:0;font-weight:bold}
.phpdebugbar :-webkit-any(article,aside,nav,section) h1,
.phpdebugbar-openhandler :-webkit-any(article,aside,nav,section) h1 {font-size:1.5em;-webkit-margin-before:0.83__qem;-webkit-margin-after:0.83em}
.phpdebugbar :-webkit-any(article,aside,nav,section) :-webkit-any(article,aside,nav,section) h1,
.phpdebugbar-openhandler :-webkit-any(article,aside,nav,section) :-webkit-any(article,aside,nav,section) h1 {font-size:1.17em;-webkit-margin-before:1__qem;-webkit-margin-after:1em}
.phpdebugbar :-webkit-any(article,aside,nav,section) :-webkit-any(article,aside,nav,section) :-webkit-any(article,aside,nav,section) h1,
.phpdebugbar-openhandler :-webkit-any(article,aside,nav,section) :-webkit-any(article,aside,nav,section) :-webkit-any(article,aside,nav,section) h1 {font-size:1.0em;-webkit-margin-before:1.33__qem;-webkit-margin-after:1.33em}
.phpdebugbar :-webkit-any(article,aside,nav,section) :-webkit-any(article,aside,nav,section) :-webkit-any(article,aside,nav,section) :-webkit-any(article,aside,nav,section) h1,
.phpdebugbar-openhandler :-webkit-any(article,aside,nav,section) :-webkit-any(article,aside,nav,section) :-webkit-any(article,aside,nav,section) :-webkit-any(article,aside,nav,section) h1 {font-size:.83em;-webkit-margin-before:1.67__qem;-webkit-margin-after:1.67em}
.phpdebugbar :-webkit-any(article,aside,nav,section) :-webkit-any(article,aside,nav,section) :-webkit-any(article,aside,nav,section) :-webkit-any(article,aside,nav,section) :-webkit-any(article,aside,nav,section) h1,
.phpdebugbar-openhandler :-webkit-any(article,aside,nav,section) :-webkit-any(article,aside,nav,section) :-webkit-any(article,aside,nav,section) :-webkit-any(article,aside,nav,section) :-webkit-any(article,aside,nav,section) h1 {font-size:.67em;-webkit-margin-before:2.33__qem;-webkit-margin-after:2.33em}
.phpdebugbar h2,
.phpdebugbar-openhandler h2 {display:block;font-size:1.5em;-webkit-margin-before:0.83__qem;-webkit-margin-after:0.83em;-webkit-margin-start:0;-webkit-margin-end:0;font-weight:bold}
.phpdebugbar h3,
.phpdebugbar-openhandler h3 {display:block;font-size:1.17em;-webkit-margin-before:1__qem;-webkit-margin-after:1em;-webkit-margin-start:0;-webkit-margin-end:0;font-weight:bold}
.phpdebugbar h4,
.phpdebugbar-openhandler h4 {display:block;-webkit-margin-before:1.33__qem;-webkit-margin-after:1.33em;-webkit-margin-start:0;-webkit-margin-end:0;font-weight:bold}
.phpdebugbar h5,
.phpdebugbar-openhandler h5 {display:block;font-size:.83em;-webkit-margin-before:1.67__qem;-webkit-margin-after:1.67em;-webkit-margin-start:0;-webkit-margin-end:0;font-weight:bold}
.phpdebugbar h6,
.phpdebugbar-openhandler h6 {display:block;font-size:.67em;-webkit-margin-before:2.33__qem;-webkit-margin-after:2.33em;-webkit-margin-start:0;-webkit-margin-end:0;font-weight:bold}
.phpdebugbar table,
.phpdebugbar-openhandler table {display:table;border-collapse:separate;border-spacing:2px;border-color:gray}
.phpdebugbar thead,
.phpdebugbar-openhandler thead {display:table-header-group;vertical-align:middle;border-color:inherit}
.phpdebugbar tbody,
.phpdebugbar-openhandler tbody {display:table-row-group;vertical-align:middle;border-color:inherit}
.phpdebugbar tfoot,
.phpdebugbar-openhandler tfoot {display:table-footer-group;vertical-align:middle;border-color:inherit}
.phpdebugbar table >tr,
.phpdebugbar-openhandler table >tr {vertical-align:middle}
.phpdebugbar col,
.phpdebugbar-openhandler col {display:table-column}
.phpdebugbar colgroup,
.phpdebugbar-openhandler colgroup {display:table-column-group}
.phpdebugbar tr,
.phpdebugbar-openhandler tr {display:table-row;vertical-align:inherit;border-color:inherit}
.phpdebugbar td,
.phpdebugbar-openhandler td,
.phpdebugbar th,
.phpdebugbar-openhandler th {display:table-cell;vertical-align:inherit}
.phpdebugbar th,
.phpdebugbar-openhandler th {font-weight:bold}
.phpdebugbar caption,
.phpdebugbar-openhandler caption {display:table-caption;text-align:-webkit-center}
.phpdebugbar ul,
.phpdebugbar-openhandler ul,
.phpdebugbar ol,
.phpdebugbar-openhandler ol,
.phpdebugbar dl,
.phpdebugbar-openhandler dl {font-size:1em}
.phpdebugbar ul,
.phpdebugbar-openhandler ul,
.phpdebugbar menu,
.phpdebugbar-openhandler menu,
.phpdebugbar dir,
.phpdebugbar-openhandler dir {display:block;list-style-type:disc;-webkit-margin-before:1__qem;-webkit-margin-after:1em;-webkit-margin-start:0;-webkit-margin-end:0;-webkit-padding-start:40px}
.phpdebugbar ol,
.phpdebugbar-openhandler ol {display:block;list-style-type:decimal;-webkit-margin-before:1__qem;-webkit-margin-after:1em;-webkit-margin-start:0;-webkit-margin-end:0;-webkit-padding-start:40px}
.phpdebugbar li,
.phpdebugbar-openhandler li {display:list-item;text-align:-webkit-match-parent}
.phpdebugbar ul ul,
.phpdebugbar-openhandler ul ul,
.phpdebugbar ol ul,
.phpdebugbar-openhandler ol ul {list-style-type:circle}
.phpdebugbar ol ol ul,
.phpdebugbar-openhandler ol ol ul,
.phpdebugbar ol ul ul,
.phpdebugbar-openhandler ol ul ul,
.phpdebugbar ul ol ul,
.phpdebugbar-openhandler ul ol ul,
.phpdebugbar ul ul ul,
.phpdebugbar-openhandler ul ul ul {list-style-type:square}
.phpdebugbar dd,
.phpdebugbar-openhandler dd {display:block;-webkit-margin-start:40px}
.phpdebugbar dl,
.phpdebugbar-openhandler dl {display:block;-webkit-margin-before:1__qem;-webkit-margin-after:1em;-webkit-margin-start:0;-webkit-margin-end:0}
.phpdebugbar dt,
.phpdebugbar-openhandler dt {display:block}
.phpdebugbar ol ul,
.phpdebugbar-openhandler ol ul,
.phpdebugbar ul ol,
.phpdebugbar-openhandler ul ol,
.phpdebugbar ul ul,
.phpdebugbar-openhandler ul ul,
.phpdebugbar ol ol,
.phpdebugbar-openhandler ol ol {-webkit-margin-before:0;-webkit-margin-after:0}
.phpdebugbar form,
.phpdebugbar-openhandler form {display:block;margin-top:0__qem}
.phpdebugbar label,
.phpdebugbar-openhandler label {cursor:default}
.phpdebugbar legend,
.phpdebugbar-openhandler legend {display:block;-webkit-padding-start:2px;-webkit-padding-end:2px;border:none}
.phpdebugbar fieldset,
.phpdebugbar-openhandler fieldset {display:block;-webkit-margin-start:2px;-webkit-margin-end:2px;-webkit-padding-before:0.35em;-webkit-padding-start:0.75em;-webkit-padding-end:0.75em;-webkit-padding-after:0.625em;border:2px groove ThreeDFace;min-width:-webkit-min-content}
.phpdebugbar button,
.phpdebugbar-openhandler button {-webkit-appearance:button}
.phpdebugbar input,
.phpdebugbar-openhandler input,
.phpdebugbar textarea,
.phpdebugbar-openhandler textarea,
.phpdebugbar keygen,
.phpdebugbar-openhandler keygen,
.phpdebugbar select,
.phpdebugbar-openhandler select,
.phpdebugbar button,
.phpdebugbar-openhandler button,
.phpdebugbar meter,
.phpdebugbar-openhandler meter,
.phpdebugbar progress,
.phpdebugbar-openhandler progress {-webkit-writing-mode:horizontal-tb !important}
.phpdebugbar input,
.phpdebugbar-openhandler input,
.phpdebugbar textarea,
.phpdebugbar-openhandler textarea,
.phpdebugbar keygen,
.phpdebugbar-openhandler keygen,
.phpdebugbar select,
.phpdebugbar-openhandler select,
.phpdebugbar button,
.phpdebugbar-openhandler button {margin:0__qem;font:-webkit-small-control;color:initial;letter-spacing:normal;word-spacing:normal;line-height:normal;text-transform:none;text-indent:0;text-shadow:none;display:inline-block;text-align:start;width:initial;height:initial}
.phpdebugbar input[type="hidden"],
.phpdebugbar-openhandler input[type="hidden"] {display:none}
.phpdebugbar input,
.phpdebugbar-openhandler input,
.phpdebugbar input[type="password"],
.phpdebugbar-openhandler input[type="password"],
.phpdebugbar input[type="search"],
.phpdebugbar-openhandler input[type="search"] {-webkit-appearance:textfield;padding:1px;background-color:white;border:2px inset;-webkit-rtl-ordering:logical;-webkit-user-select:text;cursor:auto}
.phpdebugbar input[type="search"],
.phpdebugbar-openhandler input[type="search"] {-webkit-appearance:searchfield;box-sizing:border-box}
.phpdebugbar input::-webkit-textfield-decoration-container,
.phpdebugbar-openhandler input::-webkit-textfield-decoration-container {display:flex;align-items:center;-webkit-user-modify:read-only !important;content:none !important}
.phpdebugbar input[type="search"]::-webkit-textfield-decoration-container,
.phpdebugbar-openhandler input[type="search"]::-webkit-textfield-decoration-container {direction:ltr}
.phpdebugbar input::-webkit-clear-button,
.phpdebugbar-openhandler input::-webkit-clear-button {-webkit-appearance:searchfield-cancel-button;display:inline-block;flex:none;-webkit-user-modify:read-only !important;-webkit-margin-start:2px;opacity:0;pionter-events:none}
.phpdebugbar input:enabled:read-write:-webkit-any(:focus,:hover)::-webkit-clear-button,
.phpdebugbar-openhandler input:enabled:read-write:-webkit-any(:focus,:hover)::-webkit-clear-button {opacity:1;pointer-events:auto}
.phpdebugbar input[type="search"]::-webkit-search-cancel-button,
.phpdebugbar-openhandler input[type="search"]::-webkit-search-cancel-button {-webkit-appearance:searchfield-cancel-button;display:block;flex:none;-webkit-user-modify:read-only !important;-webkit-margin-start:1px;opacity:0;pointer-events:none}
.phpdebugbar input[type="search"]:enabled:read-write:-webkit-any(:focus,:hover)::-webkit-search-cancel-button,
.phpdebugbar-openhandler input[type="search"]:enabled:read-write:-webkit-any(:focus,:hover)::-webkit-search-cancel-button {opacity:1;pointer-events:auto}
.phpdebugbar input[type="search"]::-webkit-search-decoration,
.phpdebugbar-openhandler input[type="search"]::-webkit-search-decoration {-webkit-appearance:searchfield-decoration;display:block;flex:none;-webkit-user-modify:read-only !important;-webkit-align-self:flex-start;margin:auto 0}
.phpdebugbar input[type="search"]::-webkit-search-results-decoration,
.phpdebugbar-openhandler input[type="search"]::-webkit-search-results-decoration {-webkit-appearance:searchfield-results-decoration;display:block;flex:none;-webkit-user-modify:read-only !important;-webkit-align-self:flex-start;margin:auto 0}
.phpdebugbar input::-webkit-inner-spin-button,
.phpdebugbar-openhandler input::-webkit-inner-spin-button {-webkit-appearance:inner-spin-button;display:inline-block;cursor:default;flex:none;align-self:stretch;-webkit-user-select:none;-webkit-user-modify:read-only !important;opacity:0;pointer-events:none}
.phpdebugbar input:enabled:read-write:-webkit-any(:focus,:hover)::-webkit-inner-spin-button,
.phpdebugbar-openhandler input:enabled:read-write:-webkit-any(:focus,:hover)::-webkit-inner-spin-button {opacity:1;pointer-events:auto}
.phpdebugbar keygen,
.phpdebugbar-openhandler keygen,
.phpdebugbar select,
.phpdebugbar-openhandler select {border-radius:5px}
.phpdebugbar keygen::-webkit-keygen-select,
.phpdebugbar-openhandler keygen::-webkit-keygen-select {margin:0}
.phpdebugbar textarea,
.phpdebugbar-openhandler textarea {-webkit-appearance:textarea;background-color:white;border:1px solid;-webkit-rtl-ordering:logical;-webkit-user-select:text;flex-direction:column;resize:auto;cursor:auto;padding:2px;white-space:pre-wrap;word-wrap:break-word}
.phpdebugbar ::-webkit-input-placeholder,
.phpdebugbar-openhandler ::-webkit-input-placeholder {-webkit-text-security:none;color:darkGray;display:block !important;pointer-events:none !important}
.phpdebugbar input::-webkit-input-placeholder,
.phpdebugbar-openhandler input::-webkit-input-placeholder {white-space:pre;word-wrap:normal;overflow:hidden;-webkit-user-modify:read-only !important}
.phpdebugbar input[type="password"],
.phpdebugbar-openhandler input[type="password"] {-webkit-text-security:disc !important}
.phpdebugbar input[type="hidden"],
.phpdebugbar-openhandler input[type="hidden"],
.phpdebugbar input[type="image"],
.phpdebugbar-openhandler input[type="image"],
.phpdebugbar input[type="file"],
.phpdebugbar-openhandler input[type="file"] {-webkit-appearance:initial;padding:initial;background-color:initial;border:initial}
.phpdebugbar input[type="file"],
.phpdebugbar-openhandler input[type="file"] {align-items:baseline;color:inherit;text-align:start !important}
.phpdebugbar input:-webkit-autofill,
.phpdebugbar-openhandler input:-webkit-autofill,
.phpdebugbar textarea:-webkit-autofill,
.phpdebugbar-openhandler textarea:-webkit-autofill,
.phpdebugbar select:-webkit-autofill,
.phpdebugbar-openhandler select:-webkit-autofill {background-color:#FAFFBD !important;background-image:none !important;color:#000 !important}
.phpdebugbar input[type="radio"],
.phpdebugbar-openhandler input[type="radio"],
.phpdebugbar input[type="checkbox"],
.phpdebugbar-openhandler input[type="checkbox"] {margin:3px 0.5ex;padding:initial;background-color:initial;border:initial}
.phpdebugbar input[type="button"],
.phpdebugbar-openhandler input[type="button"],
.phpdebugbar input[type="submit"],
.phpdebugbar-openhandler input[type="submit"],
.phpdebugbar input[type="reset"],
.phpdebugbar-openhandler input[type="reset"] {-webkit-appearance:push-button;-webkit-user-select:none;white-space:pre}
.phpdebugbar input[type="file"]::-webkit-file-upload-button,
.phpdebugbar-openhandler input[type="file"]::-webkit-file-upload-button {-webkit-appearance:push-button;-webkit-user-modify:read-only !important;white-space:nowrap;margin:0;font-size:inherit}
.phpdebugbar input[type="button"],
.phpdebugbar-openhandler input[type="button"],
.phpdebugbar input[type="submit"],
.phpdebugbar-openhandler input[type="submit"],
.phpdebugbar input[type="reset"],
.phpdebugbar-openhandler input[type="reset"],
.phpdebugbar input[type="file"]::-webkit-file-upload-button,
.phpdebugbar-openhandler input[type="file"]::-webkit-file-upload-button,
.phpdebugbar button,
.phpdebugbar-openhandler button {align-items:flex-start;text-align:center;cursor:default;color:ButtonText;padding:2px 6px 3px 6px;border:2px outset ButtonFace;background-color:ButtonFace;box-sizing:border-box}
.phpdebugbar input[type="range"],
.phpdebugbar-openhandler input[type="range"] {-webkit-appearance:slider-horizontal;padding:initial;border:initial;margin:2px;color:#909090}
.phpdebugbar input[type="range"]::-webkit-slider-container,
.phpdebugbar-openhandler input[type="range"]::-webkit-slider-container,
.phpdebugbar input[type="range"]::-webkit-media-slider-container,
.phpdebugbar-openhandler input[type="range"]::-webkit-media-slider-container {flex:1;box-sizing:border-box;-webkit-user-modify:read-only !important;display:flex;-webkit-align-contents:center}
.phpdebugbar input[type="range"]::-webkit-slider-runnable-track,
.phpdebugbar-openhandler input[type="range"]::-webkit-slider-runnable-track {flex:1;-webkit-align-self:center;box-sizing:border-box;-webkit-user-modify:read-only !important;display:block}
.phpdebugbar input[type="range"]::-webkit-slider-thumb,
.phpdebugbar-openhandler input[type="range"]::-webkit-slider-thumb,
.phpdebugbar input[type="range"]::-webkit-media-slider-thumb,
.phpdebugbar-openhandler input[type="range"]::-webkit-media-slider-thumb {-webkit-appearance:sliderthumb-horizontal;box-sizing:border-box;-webkit-user-modify:read-only !important;display:block}
.phpdebugbar input[type="button"]:disabled,
.phpdebugbar-openhandler input[type="button"]:disabled,
.phpdebugbar input[type="submit"]:disabled,
.phpdebugbar-openhandler input[type="submit"]:disabled,
.phpdebugbar input[type="reset"]:disabled,
.phpdebugbar-openhandler input[type="reset"]:disabled,
.phpdebugbar input[type="file"]:disabled::-webkit-file-upload-button,
.phpdebugbar-openhandler input[type="file"]:disabled::-webkit-file-upload-button,
.phpdebugbar button:disabled,
.phpdebugbar-openhandler button:disabled,
.phpdebugbar select:disabled,
.phpdebugbar-openhandler select:disabled,
.phpdebugbar keygen:disabled,
.phpdebugbar-openhandler keygen:disabled,
.phpdebugbar optgroup:disabled,
.phpdebugbar-openhandler optgroup:disabled,
.phpdebugbar option:disabled,
.phpdebugbar-openhandler option:disabled,
.phpdebugbar select[disabled] >option,
.phpdebugbar-openhandler select[disabled] >option {color:GrayText}
.phpdebugbar input[type="button"]:active,
.phpdebugbar-openhandler input[type="button"]:active,
.phpdebugbar input[type="submit"]:active,
.phpdebugbar-openhandler input[type="submit"]:active,
.phpdebugbar input[type="reset"]:active,
.phpdebugbar-openhandler input[type="reset"]:active,
.phpdebugbar input[type="file"]:active::-webkit-file-upload-button,
.phpdebugbar-openhandler input[type="file"]:active::-webkit-file-upload-button,
.phpdebugbar button:active,
.phpdebugbar-openhandler button:active {border-style:inset}
.phpdebugbar input[type="button"]:active:disabled,
.phpdebugbar-openhandler input[type="button"]:active:disabled,
.phpdebugbar input[type="submit"]:active:disabled,
.phpdebugbar-openhandler input[type="submit"]:active:disabled,
.phpdebugbar input[type="reset"]:active:disabled,
.phpdebugbar-openhandler input[type="reset"]:active:disabled,
.phpdebugbar input[type="file"]:active:disabled::-webkit-file-upload-button,
.phpdebugbar-openhandler input[type="file"]:active:disabled::-webkit-file-upload-button,
.phpdebugbar button:active:disabled,
.phpdebugbar-openhandler button:active:disabled {border-style:outset}
.phpdebugbar option:-internal-spatial-navigation-focus,
.phpdebugbar-openhandler option:-internal-spatial-navigation-focus {outline:black dashed 1px;outline-offset:-1px}
.phpdebugbar datalist,
.phpdebugbar-openhandler datalist {display:none}
.phpdebugbar area,
.phpdebugbar-openhandler area {display:inline}
.phpdebugbar param,
.phpdebugbar-openhandler param {display:none}
.phpdebugbar input[type="checkbox"],
.phpdebugbar-openhandler input[type="checkbox"] {-webkit-appearance:checkbox;box-sizing:border-box}
.phpdebugbar input[type="radio"],
.phpdebugbar-openhandler input[type="radio"] {-webkit-appearance:radio;box-sizing:border-box}
.phpdebugbar input[type="color"],
.phpdebugbar-openhandler input[type="color"] {-webkit-appearance:square-button;width:44px;height:23px;background-color:ButtonFace;border:1px #a9a9a9 solid;padding:1px 2px}
.phpdebugbar input[type="color"]::-webkit-color-swatch-wrapper,
.phpdebugbar-openhandler input[type="color"]::-webkit-color-swatch-wrapper {display:flex;padding:4px 2px;box-sizing:border-box;-webkit-user-modify:read-only !important;width:100%;height:100%}
.phpdebugbar input[type="color"]::-webkit-color-swatch,
.phpdebugbar-openhandler input[type="color"]::-webkit-color-swatch {background-color:#000;border:1px solid #777;flex:1;-webkit-user-modify:read-only !important}
.phpdebugbar input[type="color"][list],
.phpdebugbar-openhandler input[type="color"][list] {-webkit-appearance:menulist;width:88px;height:23px}
.phpdebugbar input[type="color"][list]::-webkit-color-swatch-wrapper,
.phpdebugbar-openhandler input[type="color"][list]::-webkit-color-swatch-wrapper {padding-left:8px;padding-right:24px}
.phpdebugbar input[type="color"][list]::-webkit-color-swatch,
.phpdebugbar-openhandler input[type="color"][list]::-webkit-color-swatch {border-color:#000}
.phpdebugbar input::-webkit-calendar-picker-indicator,
.phpdebugbar-openhandler input::-webkit-calendar-picker-indicator {display:inline-block;width:0.66em;height:0.66em;padding:0.17em 0.34em;-webkit-user-modify:read-only !important;opacity:0;pointer-events:none}
.phpdebugbar input::-webkit-calendar-picker-indicator:hover,
.phpdebugbar-openhandler input::-webkit-calendar-picker-indicator:hover {background-color:#eee}
.phpdebugbar input:enabled:read-write:-webkit-any(:focus,:hover)::-webkit-calendar-picker-indicator,
.phpdebugbar-openhandler input:enabled:read-write:-webkit-any(:focus,:hover)::-webkit-calendar-picker-indicator,
.phpdebugbar input::-webkit-calendar-picker-indicator:focus,
.phpdebugbar-openhandler input::-webkit-calendar-picker-indicator:focus {opacity:1;pointer-events:auto}
.phpdebugbar input[type="date"]:disabled::-webkit-clear-button,
.phpdebugbar-openhandler input[type="date"]:disabled::-webkit-clear-button,
.phpdebugbar input[type="date"]:disabled::-webkit-inner-spin-button,
.phpdebugbar-openhandler input[type="date"]:disabled::-webkit-inner-spin-button,
.phpdebugbar input[type="datetime-local"]:disabled::-webkit-clear-button,
.phpdebugbar-openhandler input[type="datetime-local"]:disabled::-webkit-clear-button,
.phpdebugbar input[type="datetime-local"]:disabled::-webkit-inner-spin-button,
.phpdebugbar-openhandler input[type="datetime-local"]:disabled::-webkit-inner-spin-button,
.phpdebugbar input[type="month"]:disabled::-webkit-clear-button,
.phpdebugbar-openhandler input[type="month"]:disabled::-webkit-clear-button,
.phpdebugbar input[type="month"]:disabled::-webkit-inner-spin-button,
.phpdebugbar-openhandler input[type="month"]:disabled::-webkit-inner-spin-button,
.phpdebugbar input[type="week"]:disabled::-webkit-clear-button,
.phpdebugbar-openhandler input[type="week"]:disabled::-webkit-clear-button,
.phpdebugbar input[type="week"]:disabled::-webkit-inner-spin-button,
.phpdebugbar-openhandler input[type="week"]:disabled::-webkit-inner-spin-button,
.phpdebugbar input:disabled::-webkit-calendar-picker-indicator,
.phpdebugbar-openhandler input:disabled::-webkit-calendar-picker-indicator,
.phpdebugbar input[type="date"][readonly]::-webkit-clear-button,
.phpdebugbar-openhandler input[type="date"][readonly]::-webkit-clear-button,
.phpdebugbar input[type="date"][readonly]::-webkit-inner-spin-button,
.phpdebugbar-openhandler input[type="date"][readonly]::-webkit-inner-spin-button,
.phpdebugbar input[type="datetime-local"][readonly]::-webkit-clear-button,
.phpdebugbar-openhandler input[type="datetime-local"][readonly]::-webkit-clear-button,
.phpdebugbar input[type="datetime-local"][readonly]::-webkit-inner-spin-button,
.phpdebugbar-openhandler input[type="datetime-local"][readonly]::-webkit-inner-spin-button,
.phpdebugbar input[type="month"][readonly]::-webkit-clear-button,
.phpdebugbar-openhandler input[type="month"][readonly]::-webkit-clear-button,
.phpdebugbar input[type="month"][readonly]::-webkit-inner-spin-button,
.phpdebugbar-openhandler input[type="month"][readonly]::-webkit-inner-spin-button,
.phpdebugbar input[type="week"][readonly]::-webkit-clear-button,
.phpdebugbar-openhandler input[type="week"][readonly]::-webkit-clear-button,
.phpdebugbar input[type="week"][readonly]::-webkit-inner-spin-button,
.phpdebugbar-openhandler input[type="week"][readonly]::-webkit-inner-spin-button,
.phpdebugbar input[readonly]::-webkit-calendar-picker-indicator,
.phpdebugbar-openhandler input[readonly]::-webkit-calendar-picker-indicator {visibility:hidden}
.phpdebugbar select,
.phpdebugbar-openhandler select {-webkit-appearance:menulist;box-sizing:border-box;align-items:center;border:1px solid;white-space:pre;-webkit-rtl-ordering:logical;color:black;background-color:white;cursor:default}
.phpdebugbar select:-internal-list-box,
.phpdebugbar-openhandler select:-internal-list-box {-webkit-appearance:listbox;align-items:flex-start;border:1px inset gray;border-radius:initial;overflow-x:hidden;overflow-y:scroll;vertical-align:text-bottom;-webkit-user-select:none;white-space:nowrap}
.phpdebugbar optgroup,
.phpdebugbar-openhandler optgroup {font-weight:bolder;display:block}
.phpdebugbar option,
.phpdebugbar-openhandler option {font-weight:normal;display:block;padding:0 2px 1px 2px;white-space:pre;min-height:1.2em}
.phpdebugbar select:-internal-list-box option,
.phpdebugbar-openhandler select:-internal-list-box option,
.phpdebugbar select:-internal-list-box optgroup,
.phpdebugbar-openhandler select:-internal-list-box optgroup {line-height:initial !important}
.phpdebugbar select:-internal-list-box:focus option:checked,
.phpdebugbar-openhandler select:-internal-list-box:focus option:checked {background-color:-internal-active-list-box-selection !important;color:-internal-active-list-box-selection-text !important}
.phpdebugbar select:-internal-list-box option:checked,
.phpdebugbar-openhandler select:-internal-list-box option:checked {background-color:-internal-inactive-list-box-selection !important;color:-internal-inactive-list-box-selection-text !important}
.phpdebugbar select:-internal-list-box:disabled option:checked,
.phpdebugbar-openhandler select:-internal-list-box:disabled option:checked,
.phpdebugbar select:-internal-list-box option:checked:disabled,
.phpdebugbar-openhandler select:-internal-list-box option:checked:disabled {color:gray !important}
.phpdebugbar output,
.phpdebugbar-openhandler output {display:inline}
.phpdebugbar meter,
.phpdebugbar-openhandler meter {-webkit-appearance:meter;box-sizing:border-box;display:inline-block;height:1em;width:5em;vertical-align:-0.2em}
.phpdebugbar meter::-webkit-meter-inner-element,
.phpdebugbar-openhandler meter::-webkit-meter-inner-element {-webkit-appearance:inherit;box-sizing:inherit;-webkit-user-modify:read-only !important;height:100%;width:100%}
.phpdebugbar meter::-webkit-meter-bar,
.phpdebugbar-openhandler meter::-webkit-meter-bar {background:linear-gradient(to bottom,#ddd,#eee 20%,#ccc 45%,#ccc 55%,#ddd);height:100%;width:100%;-webkit-user-modify:read-only !important;box-sizing:border-box}
.phpdebugbar meter::-webkit-meter-optimum-value,
.phpdebugbar-openhandler meter::-webkit-meter-optimum-value {background:linear-gradient(to bottom,#ad7,#cea 20%,#7a3 45%,#7a3 55%,#ad7);height:100%;-webkit-user-modify:read-only !important;box-sizing:border-box}
.phpdebugbar meter::-webkit-meter-suboptimum-value,
.phpdebugbar-openhandler meter::-webkit-meter-suboptimum-value {background:linear-gradient(to bottom,#fe7,#ffc 20%,#db3 45%,#db3 55%,#fe7);height:100%;-webkit-user-modify:read-only !important;box-sizing:border-box}
.phpdebugbar meter::-webkit-meter-even-less-good-value,
.phpdebugbar-openhandler meter::-webkit-meter-even-less-good-value {background:linear-gradient(to bottom,#f77,#fcc 20%,#d44 45%,#d44 55%,#f77);height:100%;-webkit-user-modify:read-only !important;box-sizing:border-box}
.phpdebugbar progress,
.phpdebugbar-openhandler progress {-webkit-appearance:progress-bar;box-sizing:border-box;display:inline-block;height:1em;width:10em;vertical-align:-0.2em}
.phpdebugbar progress::-webkit-progress-inner-element,
.phpdebugbar-openhandler progress::-webkit-progress-inner-element {-webkit-appearance:inherit;box-sizing:inherit;-webkit-user-modify:read-only;height:100%;width:100%}
.phpdebugbar progress::-webkit-progress-bar,
.phpdebugbar-openhandler progress::-webkit-progress-bar {background-color:gray;height:100%;width:100%;-webkit-user-modify:read-only !important;box-sizing:border-box}
.phpdebugbar progress::-webkit-progress-value,
.phpdebugbar-openhandler progress::-webkit-progress-value {background-color:green;height:100%;width:50%;-webkit-user-modify:read-only !important;box-sizing:border-box}
.phpdebugbar u,
.phpdebugbar-openhandler u,
.phpdebugbar ins,
.phpdebugbar-openhandler ins {text-decoration:underline}
.phpdebugbar strong,
.phpdebugbar-openhandler strong,
.phpdebugbar b,
.phpdebugbar-openhandler b {font-weight:bold}
.phpdebugbar cite,
.phpdebugbar-openhandler cite,
.phpdebugbar em,
.phpdebugbar-openhandler em,
.phpdebugbar var,
.phpdebugbar-openhandler var,
.phpdebugbar address,
.phpdebugbar-openhandler address,
.phpdebugbar dfn,
.phpdebugbar-openhandler dfn {font-style:italic}
.phpdebugbar tt,
.phpdebugbar-openhandler tt,
.phpdebugbar code,
.phpdebugbar-openhandler code,
.phpdebugbar kbd,
.phpdebugbar-openhandler kbd,
.phpdebugbar samp,
.phpdebugbar-openhandler samp {font-family:monospace}
.phpdebugbar pre,
.phpdebugbar-openhandler pre,
.phpdebugbar xmp,
.phpdebugbar-openhandler xmp,
.phpdebugbar plaintext,
.phpdebugbar-openhandler plaintext,
.phpdebugbar listing,
.phpdebugbar-openhandler listing {display:block;font-family:monospace;white-space:pre;margin:1 __qem 0}
.phpdebugbar mark,
.phpdebugbar-openhandler mark {background-color:yellow;color:black}
.phpdebugbar big,
.phpdebugbar-openhandler big {font-size:larger}
.phpdebugbar small,
.phpdebugbar-openhandler small {font-size:smaller}
.phpdebugbar s,
.phpdebugbar-openhandler s,
.phpdebugbar strike,
.phpdebugbar-openhandler strike,
.phpdebugbar del,
.phpdebugbar-openhandler del {text-decoration:line-through}
.phpdebugbar sub,
.phpdebugbar-openhandler sub {vertical-align:sub;font-size:smaller}
.phpdebugbar sup,
.phpdebugbar-openhandler sup {vertical-align:super;font-size:smaller}
.phpdebugbar nobr,
.phpdebugbar-openhandler nobr {white-space:nowrap}
.phpdebugbar :focus,
.phpdebugbar-openhandler :focus {outline:auto 5px -webkit-focus-ring-color}
.phpdebugbar html:focus,
.phpdebugbar-openhandler html:focus,
.phpdebugbar body:focus,
.phpdebugbar-openhandler body:focus,
.phpdebugbar input[readonly]:focus,
.phpdebugbar-openhandler input[readonly]:focus {outline:none}
.phpdebugbar applet:focus,
.phpdebugbar-openhandler applet:focus,
.phpdebugbar embed:focus,
.phpdebugbar-openhandler embed:focus,
.phpdebugbar iframe:focus,
.phpdebugbar-openhandler iframe:focus,
.phpdebugbar object:focus,
.phpdebugbar-openhandler object:focus {outline:none}
.phpdebugbar input:focus,
.phpdebugbar-openhandler input:focus,
.phpdebugbar textarea:focus,
.phpdebugbar-openhandler textarea:focus,
.phpdebugbar keygen:focus,
.phpdebugbar-openhandler keygen:focus,
.phpdebugbar select:focus,
.phpdebugbar-openhandler select:focus {outline-offset:-2px}
.phpdebugbar input[type="button"]:focus,
.phpdebugbar-openhandler input[type="button"]:focus,
.phpdebugbar input[type="checkbox"]:focus,
.phpdebugbar-openhandler input[type="checkbox"]:focus,
.phpdebugbar input[type="file"]:focus,
.phpdebugbar-openhandler input[type="file"]:focus,
.phpdebugbar input[type="hidden"]:focus,
.phpdebugbar-openhandler input[type="hidden"]:focus,
.phpdebugbar input[type="image"]:focus,
.phpdebugbar-openhandler input[type="image"]:focus,
.phpdebugbar input[type="radio"]:focus,
.phpdebugbar-openhandler input[type="radio"]:focus,
.phpdebugbar input[type="reset"]:focus,
.phpdebugbar-openhandler input[type="reset"]:focus,
.phpdebugbar input[type="search"]:focus,
.phpdebugbar-openhandler input[type="search"]:focus,
.phpdebugbar input[type="submit"]:focus,
.phpdebugbar-openhandler input[type="submit"]:focus,
.phpdebugbar input[type="file"]:focus::-webkit-file-upload-button,
.phpdebugbar-openhandler input[type="file"]:focus::-webkit-file-upload-button {outline-offset:0}
.phpdebugbar a:-webkit-any-link,
.phpdebugbar-openhandler a:-webkit-any-link {color:-webkit-link;text-decoration:underline;cursor:auto}
.phpdebugbar a:-webkit-any-link:active,
.phpdebugbar-openhandler a:-webkit-any-link:active {color:-webkit-activelink}
.phpdebugbar ruby,
.phpdebugbar-openhandler ruby,
.phpdebugbar rt,
.phpdebugbar-openhandler rt {text-indent:0}
.phpdebugbar rt,
.phpdebugbar-openhandler rt {line-height:normal;-webkit-text-emphasis:none}
.phpdebugbar ruby >rt,
.phpdebugbar-openhandler ruby >rt {display:block;font-size:50%;text-align:start}
.phpdebugbar ruby >rp,
.phpdebugbar-openhandler ruby >rp {display:none}
.phpdebugbar noframes,
.phpdebugbar-openhandler noframes {display:none}
.phpdebugbar frameset,
.phpdebugbar-openhandler frameset,
.phpdebugbar frame,
.phpdebugbar-openhandler frame {display:block}
.phpdebugbar frameset,
.phpdebugbar-openhandler frameset {border-color:inherit}
.phpdebugbar iframe,
.phpdebugbar-openhandler iframe {border:2px inset}
.phpdebugbar details,
.phpdebugbar-openhandler details {display:block}
.phpdebugbar summary,
.phpdebugbar-openhandler summary {display:block}
.phpdebugbar summary::-webkit-details-marker,
.phpdebugbar-openhandler summary::-webkit-details-marker {display:inline-block;width:0.66em;height:0.66em;-webkit-margin-end:0.4em}
.phpdebugbar textarea[dir=auto],
.phpdebugbar-openhandler textarea[dir=auto] {unicode-bidi:-webkit-plaintext}
/* Fix the close icon in the open handler popup */
div.phpdebugbar-openhandler .phpdebugbar-openhandler-header a {
    line-height: 1;
}

.phpdebugbar {
    /* Better styling for model collector */
    dl.phpdebugbar-widgets-kvlist dt {
        width: 350px;
    }
    dl.phpdebugbar-widgets-kvlist dd {
        margin-left: 360px;
    }
}

.phpdebugbar,
.phpdebugbar-openhandler {
    /*
    * The default style sheet used to render HTML.
    *
    * Copyright (C) 2000 Lars Knoll (knoll@kde.org)
    * Copyright (C) 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Apple Inc. All rights reserved.
    *
    * This library is free software; you can redistribute it and/or
    * modify it under the terms of the GNU Library General Public
    * License as published by the Free Software Foundation; either
    * version 2 of the License, or (at your option) any later version.
    *
    * This library is distributed in the hope that it will be useful,
    * but WITHOUT ANY WARRANTY; without even the implied warranty of
    * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
    * Library General Public License for more details.
    *
    * You should have received a copy of the GNU Library General Public License
    * along with this library; see the file COPYING.LIB.  If not, write to
    * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
    * Boston, MA 02110-1301, USA.
    *
    */

    /* generic block-level elements */

    p {
        display: block;
        -webkit-margin-before: 1__qem;
        -webkit-margin-after: 1__qem;
        -webkit-margin-start: 0;
        -webkit-margin-end: 0;
    }

    div {
        display: block
    }

    layer {
        display: block
    }

    article, aside, footer, header, hgroup, main, nav, section {
        display: block
    }

    marquee {
        display: inline-block;
    }

    address {
        display: block
    }

    blockquote {
        display: block;
        -webkit-margin-before: 1__qem;
        -webkit-margin-after: 1em;
        -webkit-margin-start: 40px;
        -webkit-margin-end: 40px;
    }

    figcaption {
        display: block
    }

    figure {
        display: block;
        -webkit-margin-before: 1em;
        -webkit-margin-after: 1em;
        -webkit-margin-start: 40px;
        -webkit-margin-end: 40px;
    }

    q {
        display: inline
    }

    q:before {
        content: open-quote;
    }

    q:after {
        content: close-quote;
    }

    center {
        display: block;
        /* special centering to be able to emulate the html4/netscape behaviour */
        text-align: -webkit-center
    }

    hr {
        display: block;
        -webkit-margin-before: 0.5em;
        -webkit-margin-after: 0.5em;
        -webkit-margin-start: auto;
        -webkit-margin-end: auto;
        border-style: inset;
        border-width: 1px
    }

    map {
        display: inline
    }

    video {
        object-fit: contain;
    }

    /* heading elements */

    h1 {
        display: block;
        font-size: 2em;
        -webkit-margin-before: 0.67__qem;
        -webkit-margin-after: 0.67em;
        -webkit-margin-start: 0;
        -webkit-margin-end: 0;
        font-weight: bold
    }

    :-webkit-any(article,aside,nav,section) h1 {
        font-size: 1.5em;
        -webkit-margin-before: 0.83__qem;
        -webkit-margin-after: 0.83em;
    }

    :-webkit-any(article,aside,nav,section) :-webkit-any(article,aside,nav,section) h1 {
        font-size: 1.17em;
        -webkit-margin-before: 1__qem;
        -webkit-margin-after: 1em;
    }

    :-webkit-any(article,aside,nav,section) :-webkit-any(article,aside,nav,section) :-webkit-any(article,aside,nav,section) h1 {
        font-size: 1.00em;
        -webkit-margin-before: 1.33__qem;
        -webkit-margin-after: 1.33em;
    }

    :-webkit-any(article,aside,nav,section) :-webkit-any(article,aside,nav,section) :-webkit-any(article,aside,nav,section) :-webkit-any(article,aside,nav,section) h1 {
        font-size: .83em;
        -webkit-margin-before: 1.67__qem;
        -webkit-margin-after: 1.67em;
    }

    :-webkit-any(article,aside,nav,section) :-webkit-any(article,aside,nav,section) :-webkit-any(article,aside,nav,section) :-webkit-any(article,aside,nav,section) :-webkit-any(article,aside,nav,section) h1 {
        font-size: .67em;
        -webkit-margin-before: 2.33__qem;
        -webkit-margin-after: 2.33em;
    }

    h2 {
        display: block;
        font-size: 1.5em;
        -webkit-margin-before: 0.83__qem;
        -webkit-margin-after: 0.83em;
        -webkit-margin-start: 0;
        -webkit-margin-end: 0;
        font-weight: bold
    }

    h3 {
        display: block;
        font-size: 1.17em;
        -webkit-margin-before: 1__qem;
        -webkit-margin-after: 1em;
        -webkit-margin-start: 0;
        -webkit-margin-end: 0;
        font-weight: bold
    }

    h4 {
        display: block;
        -webkit-margin-before: 1.33__qem;
        -webkit-margin-after: 1.33em;
        -webkit-margin-start: 0;
        -webkit-margin-end: 0;
        font-weight: bold
    }

    h5 {
        display: block;
        font-size: .83em;
        -webkit-margin-before: 1.67__qem;
        -webkit-margin-after: 1.67em;
        -webkit-margin-start: 0;
        -webkit-margin-end: 0;
        font-weight: bold
    }

    h6 {
        display: block;
        font-size: .67em;
        -webkit-margin-before: 2.33__qem;
        -webkit-margin-after: 2.33em;
        -webkit-margin-start: 0;
        -webkit-margin-end: 0;
        font-weight: bold
    }

    /* tables */

    table {
        display: table;
        border-collapse: separate;
        border-spacing: 2px;
        border-color: gray
    }

    thead {
        display: table-header-group;
        vertical-align: middle;
        border-color: inherit
    }

    tbody {
        display: table-row-group;
        vertical-align: middle;
        border-color: inherit
    }

    tfoot {
        display: table-footer-group;
        vertical-align: middle;
        border-color: inherit
    }

    /* for tables without table section elements (can happen with XHTML or dynamically created tables) */
    table > tr {
        vertical-align: middle;
    }

    col {
        display: table-column
    }

    colgroup {
        display: table-column-group
    }

    tr {
        display: table-row;
        vertical-align: inherit;
        border-color: inherit
    }

    td, th {
        display: table-cell;
        vertical-align: inherit
    }

    th {
        font-weight: bold
    }

    caption {
        display: table-caption;
        text-align: -webkit-center
    }

    /* lists */

    ul, ol, dl {
        font-size: 1em;
    }

    ul, menu, dir {
        display: block;
        list-style-type: disc;
        -webkit-margin-before: 1__qem;
        -webkit-margin-after: 1em;
        -webkit-margin-start: 0;
        -webkit-margin-end: 0;
        -webkit-padding-start: 40px
    }

    ol {
        display: block;
        list-style-type: decimal;
        -webkit-margin-before: 1__qem;
        -webkit-margin-after: 1em;
        -webkit-margin-start: 0;
        -webkit-margin-end: 0;
        -webkit-padding-start: 40px
    }

    li {
        display: list-item;
        text-align: -webkit-match-parent;
    }

    ul ul, ol ul {
        list-style-type: circle
    }

    ol ol ul, ol ul ul, ul ol ul, ul ul ul {
        list-style-type: square
    }

    dd {
        display: block;
        -webkit-margin-start: 40px
    }

    dl {
        display: block;
        -webkit-margin-before: 1__qem;
        -webkit-margin-after: 1em;
        -webkit-margin-start: 0;
        -webkit-margin-end: 0;
    }

    dt {
        display: block
    }

    ol ul, ul ol, ul ul, ol ol {
        -webkit-margin-before: 0;
        -webkit-margin-after: 0
    }

    /* form elements */

    form {
        display: block;
        margin-top: 0__qem;
    }

    label {
        cursor: default;
    }

    legend {
        display: block;
        -webkit-padding-start: 2px;
        -webkit-padding-end: 2px;
        border: none
    }

    fieldset {
        display: block;
        -webkit-margin-start: 2px;
        -webkit-margin-end: 2px;
        -webkit-padding-before: 0.35em;
        -webkit-padding-start: 0.75em;
        -webkit-padding-end: 0.75em;
        -webkit-padding-after: 0.625em;
        border: 2px groove ThreeDFace;
        min-width: -webkit-min-content;
    }

    button {
        -webkit-appearance: button;
    }

    /* Form controls don't go vertical. */
    input, textarea, keygen, select, button, meter, progress {
        -webkit-writing-mode: horizontal-tb !important;
    }

    input, textarea, keygen, select, button {
        margin: 0__qem;
        font: -webkit-small-control;
        color: initial;
        letter-spacing: normal;
        word-spacing: normal;
        line-height: normal;
        text-transform: none;
        text-indent: 0;
        text-shadow: none;
        display: inline-block;
        text-align: start;
        width: initial;
        height: initial;
    }

    input[type="hidden"] {
        display: none
    }

    input, input[type="password"], input[type="search"] {
        -webkit-appearance: textfield;
        padding: 1px;
        background-color: white;
        border: 2px inset;
        -webkit-rtl-ordering: logical;
        -webkit-user-select: text;
        cursor: auto;
    }

    input[type="search"] {
        -webkit-appearance: searchfield;
        box-sizing: border-box;
    }

    input::-webkit-textfield-decoration-container {
        display: flex;
        align-items: center;
        -webkit-user-modify: read-only !important;
        content: none !important;
    }

    input[type="search"]::-webkit-textfield-decoration-container {
        direction: ltr;
    }

    input::-webkit-clear-button {
        -webkit-appearance: searchfield-cancel-button;
        display: inline-block;
        flex: none;
        -webkit-user-modify: read-only !important;
        -webkit-margin-start: 2px;
        opacity: 0;
        pionter-events: none;
    }

    input:enabled:read-write:-webkit-any(:focus,:hover)::-webkit-clear-button {
        opacity: 1;
        pointer-events: auto;
    }

    input[type="search"]::-webkit-search-cancel-button {
        -webkit-appearance: searchfield-cancel-button;
        display: block;
        flex: none;
        -webkit-user-modify: read-only !important;
        -webkit-margin-start: 1px;
        opacity: 0;
        pointer-events: none;
    }

    input[type="search"]:enabled:read-write:-webkit-any(:focus,:hover)::-webkit-search-cancel-button {
        opacity: 1;
        pointer-events: auto;
    }

    input[type="search"]::-webkit-search-decoration {
        -webkit-appearance: searchfield-decoration;
        display: block;
        flex: none;
        -webkit-user-modify: read-only !important;
        -webkit-align-self: flex-start;
        margin: auto 0;
    }

    input[type="search"]::-webkit-search-results-decoration {
        -webkit-appearance: searchfield-results-decoration;
        display: block;
        flex: none;
        -webkit-user-modify: read-only !important;
        -webkit-align-self: flex-start;
        margin: auto 0;
    }

    input::-webkit-inner-spin-button {
        -webkit-appearance: inner-spin-button;
        display: inline-block;
        cursor: default;
        flex: none;
        align-self: stretch;
        -webkit-user-select: none;
        -webkit-user-modify: read-only !important;
        opacity: 0;
        pointer-events: none;
    }

    input:enabled:read-write:-webkit-any(:focus,:hover)::-webkit-inner-spin-button {
        opacity: 1;
        pointer-events: auto;
    }

    keygen, select {
        border-radius: 5px;
    }

    keygen::-webkit-keygen-select {
        margin: 0px;
    }

    textarea {
        -webkit-appearance: textarea;
        background-color: white;
        border: 1px solid;
        -webkit-rtl-ordering: logical;
        -webkit-user-select: text;
        flex-direction: column;
        resize: auto;
        cursor: auto;
        padding: 2px;
        white-space: pre-wrap;
        word-wrap: break-word;
    }

    ::-webkit-input-placeholder {
        -webkit-text-security: none;
        color: darkGray;
        display: block !important;
        pointer-events: none !important;
    }

    input::-webkit-input-placeholder {
        white-space: pre;
        word-wrap: normal;
        overflow: hidden;
        -webkit-user-modify: read-only !important;
    }

    input[type="password"] {
        -webkit-text-security: disc !important;
    }

    input[type="hidden"], input[type="image"], input[type="file"] {
        -webkit-appearance: initial;
        padding: initial;
        background-color: initial;
        border: initial;
    }

    input[type="file"] {
        align-items: baseline;
        color: inherit;
        text-align: start !important;
    }

    input:-webkit-autofill, textarea:-webkit-autofill, select:-webkit-autofill {
        background-color: #FAFFBD !important;
        background-image:none !important;
        color: #000000 !important;
    }

    input[type="radio"], input[type="checkbox"] {
        margin: 3px 0.5ex;
        padding: initial;
        background-color: initial;
        border: initial;
    }

    input[type="button"], input[type="submit"], input[type="reset"] {
        -webkit-appearance: push-button;
        -webkit-user-select: none;
        white-space: pre
    }

    input[type="file"]::-webkit-file-upload-button {
        -webkit-appearance: push-button;
        -webkit-user-modify: read-only !important;
        white-space: nowrap;
        margin: 0;
        font-size: inherit;
    }

    input[type="button"], input[type="submit"], input[type="reset"], input[type="file"]::-webkit-file-upload-button, button {
        align-items: flex-start;
        text-align: center;
        cursor: default;
        color: ButtonText;
        padding: 2px 6px 3px 6px;
        border: 2px outset ButtonFace;
        background-color: ButtonFace;
        box-sizing: border-box
    }

    input[type="range"] {
        -webkit-appearance: slider-horizontal;
        padding: initial;
        border: initial;
        margin: 2px;
        color: #909090;
    }

    input[type="range"]::-webkit-slider-container, input[type="range"]::-webkit-media-slider-container {
        flex: 1;
        box-sizing: border-box;
        -webkit-user-modify: read-only !important;
        display: flex;
        -webkit-align-contents: center;
    }

    input[type="range"]::-webkit-slider-runnable-track {
        flex: 1;
        -webkit-align-self: center;

        box-sizing: border-box;
        -webkit-user-modify: read-only !important;
        display: block;
    }

    input[type="range"]::-webkit-slider-thumb, input[type="range"]::-webkit-media-slider-thumb {
        -webkit-appearance: sliderthumb-horizontal;
        box-sizing: border-box;
        -webkit-user-modify: read-only !important;
        display: block;
    }

    input[type="button"]:disabled, input[type="submit"]:disabled, input[type="reset"]:disabled,
    input[type="file"]:disabled::-webkit-file-upload-button, button:disabled,
    select:disabled, keygen:disabled, optgroup:disabled, option:disabled,
    select[disabled]>option {
        color: GrayText
    }

    input[type="button"]:active, input[type="submit"]:active, input[type="reset"]:active, input[type="file"]:active::-webkit-file-upload-button, button:active {
        border-style: inset
    }

    input[type="button"]:active:disabled, input[type="submit"]:active:disabled, input[type="reset"]:active:disabled, input[type="file"]:active:disabled::-webkit-file-upload-button, button:active:disabled {
        border-style: outset
    }

    option:-internal-spatial-navigation-focus {
        outline: black dashed 1px;
        outline-offset: -1px;
    }

    datalist {
        display: none
    }

    area {
        display: inline
    }

    param {
        display: none
    }

    input[type="checkbox"] {
        -webkit-appearance: checkbox;
        box-sizing: border-box;
    }

    input[type="radio"] {
        -webkit-appearance: radio;
        box-sizing: border-box;
    }

    input[type="color"] {
        -webkit-appearance: square-button;
        width: 44px;
        height: 23px;
        background-color: ButtonFace;
        /* Same as native_theme_base. */
        border: 1px #a9a9a9 solid;
        padding: 1px 2px;
    }

    input[type="color"]::-webkit-color-swatch-wrapper {
        display:flex;
        padding: 4px 2px;
        box-sizing: border-box;
        -webkit-user-modify: read-only !important;
        width: 100%;
        height: 100%
    }

    input[type="color"]::-webkit-color-swatch {
        background-color: #000000;
        border: 1px solid #777777;
        flex: 1;
        -webkit-user-modify: read-only !important;
    }

    input[type="color"][list] {
        -webkit-appearance: menulist;
        width: 88px;
        height: 23px
    }

    input[type="color"][list]::-webkit-color-swatch-wrapper {
        padding-left: 8px;
        padding-right: 24px;
    }

    input[type="color"][list]::-webkit-color-swatch {
        border-color: #000000;
    }

    input::-webkit-calendar-picker-indicator {
        display: inline-block;
        width: 0.66em;
        height: 0.66em;
        padding: 0.17em 0.34em;
        -webkit-user-modify: read-only !important;
        opacity: 0;
        pointer-events: none;
    }

    input::-webkit-calendar-picker-indicator:hover {
        background-color: #eee;
    }

    input:enabled:read-write:-webkit-any(:focus,:hover)::-webkit-calendar-picker-indicator,
    input::-webkit-calendar-picker-indicator:focus {
        opacity: 1;
        pointer-events: auto;
    }

    input[type="date"]:disabled::-webkit-clear-button,
    input[type="date"]:disabled::-webkit-inner-spin-button,
    input[type="datetime-local"]:disabled::-webkit-clear-button,
    input[type="datetime-local"]:disabled::-webkit-inner-spin-button,
    input[type="month"]:disabled::-webkit-clear-button,
    input[type="month"]:disabled::-webkit-inner-spin-button,
    input[type="week"]:disabled::-webkit-clear-button,
    input[type="week"]:disabled::-webkit-inner-spin-button,
    input:disabled::-webkit-calendar-picker-indicator,
    input[type="date"][readonly]::-webkit-clear-button,
    input[type="date"][readonly]::-webkit-inner-spin-button,
    input[type="datetime-local"][readonly]::-webkit-clear-button,
    input[type="datetime-local"][readonly]::-webkit-inner-spin-button,
    input[type="month"][readonly]::-webkit-clear-button,
    input[type="month"][readonly]::-webkit-inner-spin-button,
    input[type="week"][readonly]::-webkit-clear-button,
    input[type="week"][readonly]::-webkit-inner-spin-button,
    input[readonly]::-webkit-calendar-picker-indicator {
        visibility: hidden;
    }

    select {
        -webkit-appearance: menulist;
        box-sizing: border-box;
        align-items: center;
        border: 1px solid;
        white-space: pre;
        -webkit-rtl-ordering: logical;
        color: black;
        background-color: white;
        cursor: default;
    }

    select:-internal-list-box {
        -webkit-appearance: listbox;
        align-items: flex-start;
        border: 1px inset gray;
        border-radius: initial;
        overflow-x: hidden;
        overflow-y: scroll;
        vertical-align: text-bottom;
        -webkit-user-select: none;
        white-space: nowrap;
    }

    optgroup {
        font-weight: bolder;
        display: block;
    }

    option {
        font-weight: normal;
        display: block;
        padding: 0 2px 1px 2px;
        white-space: pre;
        min-height: 1.2em;
    }

    select:-internal-list-box option,
    select:-internal-list-box optgroup {
        line-height: initial !important;
    }

    select:-internal-list-box:focus option:checked {
        background-color: -internal-active-list-box-selection !important;
        color: -internal-active-list-box-selection-text !important;
    }

    select:-internal-list-box option:checked {
        background-color: -internal-inactive-list-box-selection !important;
        color: -internal-inactive-list-box-selection-text !important;
    }

    select:-internal-list-box:disabled option:checked,
    select:-internal-list-box option:checked:disabled {
        color: gray !important;
    }


    output {
        display: inline;
    }

    /* meter */

    meter {
        -webkit-appearance: meter;
        box-sizing: border-box;
        display: inline-block;
        height: 1em;
        width: 5em;
        vertical-align: -0.2em;
    }

    meter::-webkit-meter-inner-element {
        -webkit-appearance: inherit;
        box-sizing: inherit;
        -webkit-user-modify: read-only !important;
        height: 100%;
        width: 100%;
    }

    meter::-webkit-meter-bar {
        background: linear-gradient(to bottom, #ddd, #eee 20%, #ccc 45%, #ccc 55%, #ddd);
        height: 100%;
        width: 100%;
        -webkit-user-modify: read-only !important;
        box-sizing: border-box;
    }

    meter::-webkit-meter-optimum-value {
        background: linear-gradient(to bottom, #ad7, #cea 20%, #7a3 45%, #7a3 55%, #ad7);
        height: 100%;
        -webkit-user-modify: read-only !important;
        box-sizing: border-box;
    }

    meter::-webkit-meter-suboptimum-value {
        background: linear-gradient(to bottom, #fe7, #ffc 20%, #db3 45%, #db3 55%, #fe7);
        height: 100%;
        -webkit-user-modify: read-only !important;
        box-sizing: border-box;
    }

    meter::-webkit-meter-even-less-good-value {
        background: linear-gradient(to bottom, #f77, #fcc 20%, #d44 45%, #d44 55%, #f77);
        height: 100%;
        -webkit-user-modify: read-only !important;
        box-sizing: border-box;
    }

    /* progress */

    progress {
        -webkit-appearance: progress-bar;
        box-sizing: border-box;
        display: inline-block;
        height: 1em;
        width: 10em;
        vertical-align: -0.2em;
    }

    progress::-webkit-progress-inner-element {
        -webkit-appearance: inherit;
        box-sizing: inherit;
        -webkit-user-modify: read-only;
        height: 100%;
        width: 100%;
    }

    progress::-webkit-progress-bar {
        background-color: gray;
        height: 100%;
        width: 100%;
        -webkit-user-modify: read-only !important;
        box-sizing: border-box;
    }

    progress::-webkit-progress-value {
        background-color: green;
        height: 100%;
        width: 50%; /* should be removed later */
        -webkit-user-modify: read-only !important;
        box-sizing: border-box;
    }

    /* inline elements */

    u, ins {
        text-decoration: underline
    }

    strong, b {
        font-weight: bold
    }

    cite, em, var, address, dfn {
        font-style: italic
    }

    tt, code, kbd, samp {
        font-family: monospace
    }

    pre, xmp, plaintext, listing {
        display: block;
        font-family: monospace;
        white-space: pre;
        margin: 1__qem 0
    }

    mark {
        background-color: yellow;
        color: black
    }

    big {
        font-size: larger
    }

    small {
        font-size: smaller
    }

    s, strike, del {
        text-decoration: line-through
    }

    sub {
        vertical-align: sub;
        font-size: smaller
    }

    sup {
        vertical-align: super;
        font-size: smaller
    }

    nobr {
        white-space: nowrap
    }

    /* states */

    :focus {
        outline: auto 5px -webkit-focus-ring-color
    }

    /* Read-only text fields do not show a focus ring but do still receive focus */
    html:focus, body:focus, input[readonly]:focus {
        outline: none
    }

    applet:focus, embed:focus, iframe:focus, object:focus {
        outline: none
    }

    input:focus, textarea:focus, keygen:focus, select:focus {
        outline-offset: -2px
    }

    input[type="button"]:focus,
    input[type="checkbox"]:focus,
    input[type="file"]:focus,
    input[type="hidden"]:focus,
    input[type="image"]:focus,
    input[type="radio"]:focus,
    input[type="reset"]:focus,
    input[type="search"]:focus,
    input[type="submit"]:focus,
    input[type="file"]:focus::-webkit-file-upload-button {
        outline-offset: 0
    }

    a:-webkit-any-link {
        color: -webkit-link;
        text-decoration: underline;
        cursor: auto;
    }

    a:-webkit-any-link:active {
        color: -webkit-activelink
    }

    /* HTML5 ruby elements */

    ruby, rt {
        text-indent: 0; /* blocks used for ruby rendering should not trigger this */
    }

    rt {
        line-height: normal;
        -webkit-text-emphasis: none;
    }

    ruby > rt {
        display: block;
        font-size: 50%;
        text-align: start;
    }

    ruby > rp {
        display: none;
    }

    /* other elements */

    noframes {
        display: none
    }

    frameset, frame {
        display: block
    }

    frameset {
        border-color: inherit
    }

    iframe {
        border: 2px inset
    }

    details {
        display: block
    }

    summary {
        display: block
    }

    summary::-webkit-details-marker {
        display: inline-block;
        width: 0.66em;
        height: 0.66em;
        -webkit-margin-end: 0.4em;
    }

    textarea[dir=auto] {
        unicode-bidi: -webkit-plaintext;
    }
}
<?php namespace RainLab\Debugbar\Classes;

use Illuminate\Contracts\Http\Kernel;
use Barryvdh\Debugbar\ServiceProvider as BaseServiceProvider;

use RainLab\Debugbar\Middleware\InjectDebugbar;

class ServiceProvider extends BaseServiceProvider
{
    /**
     * Register the Debugbar Middleware
     *
     * @param  string $middleware
     */
    protected function registerMiddleware($middleware)
    {
        $kernel = $this->app[Kernel::class];
        $kernel->pushMiddleware(InjectDebugbar::class);
    }
}
    },
    "extra": {
        "laravel": {
            "dont-discover": [
                "barryvdh/laravel-debugbar"
            ]
        }
     | Debugbar Status

    /*
     |--------------------------------------------------------------------------
     | Allow public access
     |--------------------------------------------------------------------------
     |
     | By default the debugbar requires an authenticated backend user with the
     | rainlab.debugbar.access_debugbar permission in order to view the debugbar
     |
     | Set this to true to bypass that authentication check.
     |
     | >**NOTE**: There is no way to bypass the permission check that controls
     | access to viewing stored requests (rainlab.debugbar.access_stored_requests)
     | as that can be abused to takeover accounts and steal sensitive information.
     |
     */

    'allow_public_access' => false,

    /*
     |--------------------------------------------------------------------------
     | Routes to exclude
     |--------------------------------------------------------------------------
     |
     | Specify the routes that the debugbar is not to be included on
     |
     */

        'events'          => true, // All events fired
        'models'          => true, // Display models
<?php return [
    'plugin' => [
        'name'                   => 'Debugbar',
        'description'            => 'Integrates the PHP Debugbar with October CMS',
        'access_debugbar'        => 'Access the debugbar',
        'access_stored_requests' => 'Access stored requests (dangerous)'
    ],
];
<?php namespace RainLab\Debugbar\Middleware;

use Config;
use Request;
use Closure;
use Exception;
use BackendAuth;
use Symfony\Component\Debug\Exception\FatalThrowableError;
use Barryvdh\Debugbar\Middleware\InjectDebugbar as BaseMiddleware;

class InjectDebugbar extends BaseMiddleware
{
    /**
     * Handle an incoming request.
     *
     * @param  Request  $request
     * @param  Closure  $next
     * @return mixed
     */
    public function handle($request, Closure $next)
    {
        if (!$this->debugbar->isEnabled() || $this->inExceptArray($request)) {
            return $next($request);
        }

        $this->debugbar->boot();

        try {
            /** @var \Illuminate\Http\Response $response */
            $response = $next($request);
        } catch (Exception $e) {
            $response = $this->handleException($request, $e);
        } catch (Error $error) {
            $e = new FatalThrowableError($error);
            $response = $this->handleException($request, $e);
        }

        $user = BackendAuth::getUser();

        if (!$user || !$user->hasAccess('rainlab.debugbar.access_stored_requests')) {
            // Disable stored requests
            // Note: this will completely disable storing requests from any users
            // without the required permission. If that functionality is desired again
            // in the future then we can look at overriding the OpenHandler controller
            $this->debugbar->setStorage(null);
        }

        // Modify the response to add the Debugbar if allowed
        if (
            ($user && $user->hasAccess('rainlab.debugbar.access_debugbar')) ||
            Config::get('rainlab.debugbar::allow_public_access', false)
        ) {
            $this->debugbar->modifyResponse($request, $response);
        }

        return $response;
    }
}
use Request;
use Response;
use Exception;
use October\Rain\Exception\ErrorHandler;
class InterpretsAjaxExceptions

        } catch (Exception $ex) {
            if (!Request::ajax()) {
                ? $ex->getContents() : ErrorHandler::getDetailedMessage($ex);
            return Response::make($message, $this->getStatusCode($ex), $debugbar->getDataAsHeaders());
        } elseif ($exception instanceof AjaxException) {
        } else {
3.0.1: Fixed bug that caused 502 errors on AJAX requests
3.1.0: Important security update and improved styling.