diff --git a/client/simple/package-lock.json b/client/simple/package-lock.json index 032e38a15..e1f183493 100644 --- a/client/simple/package-lock.json +++ b/client/simple/package-lock.json @@ -7,9 +7,6 @@ "": { "name": "simple", "version": "1.0.0", - "dependencies": { - "autocomplete-js": "^2.7.1" - }, "devDependencies": { "@eslint/js": "^9.26.0", "copy-webpack-plugin": "^13.0.0", @@ -2526,12 +2523,6 @@ "dev": true, "license": "MIT" }, - "node_modules/autocomplete-js": { - "version": "2.7.1", - "resolved": "https://registry.npmjs.org/autocomplete-js/-/autocomplete-js-2.7.1.tgz", - "integrity": "sha512-F+1Sj13zbfpbkprKjtyYiaHgBo6YODzNzWgJjgo/p312AeiZVEn3W+NaRRzVZYqMI0Bm7/W36uanp995eNDy+A==", - "license": "MIT" - }, "node_modules/balanced-match": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", diff --git a/searx/static/themes/simple/css/searxng-rtl.min.css b/searx/static/themes/simple/css/searxng-rtl.min.css index 5ddce2b5c..7e2f294f2 100644 --- a/searx/static/themes/simple/css/searxng-rtl.min.css +++ b/searx/static/themes/simple/css/searxng-rtl.min.css @@ -1 +1 @@ -/*! normalize.css v8.0.1 | MIT License | github.com/necolas/normalize.css */html{line-height:1.15;-webkit-text-size-adjust:100%}body{margin:0}main{display:block}h1{font-size:2em;margin:.67em 0}hr{box-sizing:content-box;height:0;overflow:visible}pre{font-family:monospace,monospace;font-size:1em}a{background-color:transparent}abbr[title]{border-bottom:none;text-decoration:underline;text-decoration:underline dotted}b,strong{font-weight:bolder}code,kbd,samp{font-family:monospace,monospace;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}img{border-style:none}button,input,optgroup,select,textarea{font-family:inherit;font-size:100%;line-height:1.15;margin:0}button,input{overflow:visible}button,select{text-transform:none}button,[type=button],[type=reset],[type=submit]{-webkit-appearance:button}button::-moz-focus-inner,[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner{border-style:none;padding:0}button:-moz-focusring,[type=button]:-moz-focusring,[type=reset]:-moz-focusring,[type=submit]:-moz-focusring{outline:1px dotted ButtonText}fieldset{padding:.35em .75em .625em}legend{box-sizing:border-box;color:inherit;display:table;max-width:100%;padding:0;white-space:normal}progress{vertical-align:baseline}textarea{overflow:auto}[type=checkbox],[type=radio]{box-sizing:border-box;padding:0}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}details{display:block}summary{display:list-item}template{display:none}[hidden]{display:none}:root{--color-base-font: #444;--color-base-font-rgb: 68, 68, 68;--color-base-background: #fff;--color-base-background-mobile: #f2f5f8;--color-url-font: #334999;--color-url-visited-font: #9822c3;--color-header-background: #fdfbff;--color-header-border: #ddd;--color-footer-background: #fdfbff;--color-footer-border: #ddd;--color-sidebar-border: #ddd;--color-sidebar-font: #000;--color-sidebar-background: #fff;--color-backtotop-font: #444;--color-backtotop-border: #ddd;--color-backtotop-background: #fff;--color-btn-background: #3050ff;--color-btn-font: #fff;--color-show-btn-background: #bbb;--color-show-btn-font: #000;--color-search-border: #bbb;--color-search-shadow: 0 2px 8px rgba(34, 38, 46, .25);--color-search-background: #fff;--color-search-font: #222;--color-search-background-hover: #3050ff;--color-error: #db3434;--color-error-background: #fae1e1;--color-warning: #dbba34;--color-warning-background: #faf5e1;--color-success: #42db34;--color-success-background: #e3fae1;--color-categories-item-selected-font: #3050ff;--color-categories-item-border-selected: #3050ff;--color-autocomplete-font: #000;--color-autocomplete-border: #bbb;--color-autocomplete-shadow: 0 2px 8px rgba(34, 38, 46, .25);--color-autocomplete-background: #fff;--color-autocomplete-background-hover: #e3e3e3;--color-answer-font: #444;--color-answer-background: #fff;--color-result-keyvalue-col-table: #fdfbff;--color-result-keyvalue-odd: #fdfbff;--color-result-keyvalue-even: #fff;--color-result-background: #fff;--color-result-border: #ddd;--color-result-url-font: #000;--color-result-vim-selected: #f7f7f7;--color-result-vim-arrow: #000bbb;--color-result-description-highlight-font: #000;--color-result-link-font: #000bbb;--color-result-link-font-highlight: #000bbb;--color-result-link-visited-font: #9822c3;--color-result-publishdate-font: #777;--color-result-engines-font: #545454;--color-result-search-url-border: #ddd;--color-result-search-url-font: #000;--color-result-image-span-font: #444;--color-result-image-span-font-selected: #fff;--color-result-image-background: #fff;--color-settings-tr-hover: #ebebeb;--color-settings-engine-description-font: #545454;--color-settings-table-group-background: #0001;--color-result-detail-font: #fff;--color-result-detail-label-font: lightgray;--color-result-detail-background: #242424;--color-result-detail-hr: #555;--color-result-detail-link: #8af;--color-result-detail-loader-border: rgba(255, 255, 255, .2);--color-result-detail-loader-borderleft: rgba(0, 0, 0, 0);--color-toolkit-badge-font: #fff;--color-toolkit-badge-background: #545454;--color-toolkit-kbd-font: #fff;--color-toolkit-kbd-background: #000;--color-toolkit-dialog-border: #ddd;--color-toolkit-dialog-background: #fff;--color-toolkit-tabs-label-border: #fff;--color-toolkit-tabs-section-border: #ddd;--color-toolkit-select-background: #e1e1e1;--color-toolkit-select-border: #ddd;--color-toolkit-select-background-hover: #bbb;--color-toolkit-input-text-font: #222;--color-toolkit-checkbox-onoff-off-background: #ddd;--color-toolkit-checkbox-onoff-on-background: #ddd;--color-toolkit-checkbox-onoff-on-mark-background: #3050ff;--color-toolkit-checkbox-onoff-on-mark-color: #fff;--color-toolkit-checkbox-onoff-off-mark-background: #aaa;--color-toolkit-checkbox-onoff-off-mark-color: #fff;--color-toolkit-checkbox-label-background: #ddd;--color-toolkit-checkbox-label-border: #ddd;--color-toolkit-checkbox-input-border: #3050ff;--color-toolkit-engine-tooltip-border: #ddd;--color-toolkit-engine-tooltip-background: #fff;--color-toolkit-loader-border: rgba(0, 0, 0, .2);--color-toolkit-loader-borderleft: rgba(255, 255, 255, 0);--color-doc-code: #003;--color-doc-code-background: #ddeaff;--color-bar-chart-primary: #5bc0de;--color-bar-chart-secondary: #deb15b;--color-image-resolution-background: rgba(0, 0, 0, .5);--color-image-resolution-font: #fff;--color-loading-indicator: rgba(255, 255, 255, .2);--color-loading-indicator-gap: #fff;--color-line-number: #64708d;--color-favicon-background-color: #ddd;--color-favicon-border-color: #ccc}@media (prefers-color-scheme: dark){:root.theme-auto{--color-base-font: #bbb;--color-base-font-rgb: 187, 187, 187;--color-base-background: #222428;--color-base-background-mobile: #222428;--color-url-font: #8af;--color-url-visited-font: #c09cd9;--color-header-background: #1e1e22;--color-header-border: #333;--color-footer-background: #1e1e22;--color-footer-border: #333;--color-sidebar-border: #555;--color-sidebar-font: #fff;--color-sidebar-background: #292c34;--color-backtotop-font: #bbb;--color-backtotop-border: #333;--color-backtotop-background: #2b2e36;--color-btn-background: #58f;--color-btn-font: #222;--color-show-btn-background: #555;--color-show-btn-font: #fff;--color-search-border: #555;--color-search-shadow: 0 2px 8px rgba(34, 38, 46, .25);--color-search-background: #2b2e36;--color-search-font: #fff;--color-search-background-hover: #58f;--color-error: #f55b5b;--color-error-background: #390a0a;--color-warning: #f1d561;--color-warning-background: #39300a;--color-success: #79f56e;--color-success-background: #0e390a;--color-categories-item-selected-font: #58f;--color-categories-item-border-selected: #58f;--color-autocomplete-font: #fff;--color-autocomplete-border: #555;--color-autocomplete-shadow: 0 2px 8px rgba(34, 38, 46, .25);--color-autocomplete-background: #2b2e36;--color-autocomplete-background-hover: #1e1e22;--color-answer-font: #bbb;--color-answer-background: #26292f;--color-result-keyvalue-col-table: #1e1e22;--color-result-keyvalue-odd: #1e1e22;--color-result-keyvalue-even: #26292f;--color-result-background: #26292f;--color-result-border: #333;--color-result-url-font: #fff;--color-result-vim-selected: #1f1f23cc;--color-result-vim-arrow: #8af;--color-result-description-highlight-font: #fff;--color-result-link-font: #8af;--color-result-link-font-highlight: #8af;--color-result-link-visited-font: #c09cd9;--color-result-publishdate-font: #888;--color-result-engines-font: #a4a4a4;--color-result-search-url-border: #555;--color-result-search-url-font: #fff;--color-result-detail-font: #fff;--color-result-detail-label-font: lightgray;--color-result-detail-background: #1a1a1c;--color-result-detail-hr: #555;--color-result-detail-link: #8af;--color-result-detail-loader-border: rgba(255, 255, 255, .2);--color-result-detail-loader-borderleft: rgba(0, 0, 0, 0);--color-result-image-span-font: #bbb;--color-result-image-span-font-selected: #222;--color-result-image-background: #222;--color-settings-tr-hover: #2c2c32;--color-settings-engine-description-font: #909090;--color-settings-table-group-background: #1b1b21;--color-toolkit-badge-font: #fff;--color-toolkit-badge-background: #555;--color-toolkit-kbd-font: #000;--color-toolkit-kbd-background: #fff;--color-toolkit-dialog-border: #555;--color-toolkit-dialog-background: #1e1e22;--color-toolkit-tabs-label-border: #222;--color-toolkit-tabs-section-border: #555;--color-toolkit-select-background: #313338;--color-toolkit-select-border: #555;--color-toolkit-select-background-hover: #373b49;--color-toolkit-input-text-font: #fff;--color-toolkit-checkbox-onoff-off-background: #313338;--color-toolkit-checkbox-onoff-on-background: #313338;--color-toolkit-checkbox-onoff-on-mark-background: #58f;--color-toolkit-checkbox-onoff-on-mark-color: #222;--color-toolkit-checkbox-onoff-off-mark-background: #ddd;--color-toolkit-checkbox-onoff-off-mark-color: #222;--color-toolkit-checkbox-label-background: #222;--color-toolkit-checkbox-label-border: #333;--color-toolkit-checkbox-input-border: #58f;--color-toolkit-engine-tooltip-border: #333;--color-toolkit-engine-tooltip-background: #222;--color-toolkit-loader-border: rgba(255, 255, 255, .2);--color-toolkit-loader-borderleft: rgba(0, 0, 0, 0);--color-doc-code: #ddd;--color-doc-code-background: #4d5a6f;--color-favicon-background-color: #ddd;--color-favicon-border-color: #ccc}}:root.theme-dark{--color-base-font: #bbb;--color-base-font-rgb: 187, 187, 187;--color-base-background: #222428;--color-base-background-mobile: #222428;--color-url-font: #8af;--color-url-visited-font: #c09cd9;--color-header-background: #1e1e22;--color-header-border: #333;--color-footer-background: #1e1e22;--color-footer-border: #333;--color-sidebar-border: #555;--color-sidebar-font: #fff;--color-sidebar-background: #292c34;--color-backtotop-font: #bbb;--color-backtotop-border: #333;--color-backtotop-background: #2b2e36;--color-btn-background: #58f;--color-btn-font: #222;--color-show-btn-background: #555;--color-show-btn-font: #fff;--color-search-border: #555;--color-search-shadow: 0 2px 8px rgba(34, 38, 46, .25);--color-search-background: #2b2e36;--color-search-font: #fff;--color-search-background-hover: #58f;--color-error: #f55b5b;--color-error-background: #390a0a;--color-warning: #f1d561;--color-warning-background: #39300a;--color-success: #79f56e;--color-success-background: #0e390a;--color-categories-item-selected-font: #58f;--color-categories-item-border-selected: #58f;--color-autocomplete-font: #fff;--color-autocomplete-border: #555;--color-autocomplete-shadow: 0 2px 8px rgba(34, 38, 46, .25);--color-autocomplete-background: #2b2e36;--color-autocomplete-background-hover: #1e1e22;--color-answer-font: #bbb;--color-answer-background: #26292f;--color-result-keyvalue-col-table: #1e1e22;--color-result-keyvalue-odd: #1e1e22;--color-result-keyvalue-even: #26292f;--color-result-background: #26292f;--color-result-border: #333;--color-result-url-font: #fff;--color-result-vim-selected: #1f1f23cc;--color-result-vim-arrow: #8af;--color-result-description-highlight-font: #fff;--color-result-link-font: #8af;--color-result-link-font-highlight: #8af;--color-result-link-visited-font: #c09cd9;--color-result-publishdate-font: #888;--color-result-engines-font: #a4a4a4;--color-result-search-url-border: #555;--color-result-search-url-font: #fff;--color-result-detail-font: #fff;--color-result-detail-label-font: lightgray;--color-result-detail-background: #1a1a1c;--color-result-detail-hr: #555;--color-result-detail-link: #8af;--color-result-detail-loader-border: rgba(255, 255, 255, .2);--color-result-detail-loader-borderleft: rgba(0, 0, 0, 0);--color-result-image-span-font: #bbb;--color-result-image-span-font-selected: #222;--color-result-image-background: #222;--color-settings-tr-hover: #2c2c32;--color-settings-engine-description-font: #909090;--color-settings-table-group-background: #1b1b21;--color-toolkit-badge-font: #fff;--color-toolkit-badge-background: #555;--color-toolkit-kbd-font: #000;--color-toolkit-kbd-background: #fff;--color-toolkit-dialog-border: #555;--color-toolkit-dialog-background: #1e1e22;--color-toolkit-tabs-label-border: #222;--color-toolkit-tabs-section-border: #555;--color-toolkit-select-background: #313338;--color-toolkit-select-border: #555;--color-toolkit-select-background-hover: #373b49;--color-toolkit-input-text-font: #fff;--color-toolkit-checkbox-onoff-off-background: #313338;--color-toolkit-checkbox-onoff-on-background: #313338;--color-toolkit-checkbox-onoff-on-mark-background: #58f;--color-toolkit-checkbox-onoff-on-mark-color: #222;--color-toolkit-checkbox-onoff-off-mark-background: #ddd;--color-toolkit-checkbox-onoff-off-mark-color: #222;--color-toolkit-checkbox-label-background: #222;--color-toolkit-checkbox-label-border: #333;--color-toolkit-checkbox-input-border: #58f;--color-toolkit-engine-tooltip-border: #333;--color-toolkit-engine-tooltip-background: #222;--color-toolkit-loader-border: rgba(255, 255, 255, .2);--color-toolkit-loader-borderleft: rgba(0, 0, 0, 0);--color-doc-code: #ddd;--color-doc-code-background: #4d5a6f;--color-favicon-background-color: #ddd;--color-favicon-border-color: #ccc}:root.theme-black{--color-base-font: #bbb;--color-base-font-rgb: 187, 187, 187;--color-base-background: #222428;--color-base-background-mobile: #222428;--color-url-font: #8af;--color-url-visited-font: #c09cd9;--color-header-background: #1e1e22;--color-header-border: #333;--color-footer-background: #1e1e22;--color-footer-border: #333;--color-sidebar-border: #555;--color-sidebar-font: #fff;--color-sidebar-background: #292c34;--color-backtotop-font: #bbb;--color-backtotop-border: #333;--color-backtotop-background: #2b2e36;--color-btn-background: #58f;--color-btn-font: #222;--color-show-btn-background: #555;--color-show-btn-font: #fff;--color-search-border: #555;--color-search-shadow: 0 2px 8px rgba(34, 38, 46, .25);--color-search-background: #2b2e36;--color-search-font: #fff;--color-search-background-hover: #58f;--color-error: #f55b5b;--color-error-background: #390a0a;--color-warning: #f1d561;--color-warning-background: #39300a;--color-success: #79f56e;--color-success-background: #0e390a;--color-categories-item-selected-font: #58f;--color-categories-item-border-selected: #58f;--color-autocomplete-font: #fff;--color-autocomplete-border: #555;--color-autocomplete-shadow: 0 2px 8px rgba(34, 38, 46, .25);--color-autocomplete-background: #2b2e36;--color-autocomplete-background-hover: #1e1e22;--color-answer-font: #bbb;--color-answer-background: #26292f;--color-result-keyvalue-col-table: #1e1e22;--color-result-keyvalue-odd: #1e1e22;--color-result-keyvalue-even: #26292f;--color-result-background: #26292f;--color-result-border: #333;--color-result-url-font: #fff;--color-result-vim-selected: #1f1f23cc;--color-result-vim-arrow: #8af;--color-result-description-highlight-font: #fff;--color-result-link-font: #8af;--color-result-link-font-highlight: #8af;--color-result-link-visited-font: #c09cd9;--color-result-publishdate-font: #888;--color-result-engines-font: #a4a4a4;--color-result-search-url-border: #555;--color-result-search-url-font: #fff;--color-result-detail-font: #fff;--color-result-detail-label-font: lightgray;--color-result-detail-background: #1a1a1c;--color-result-detail-hr: #555;--color-result-detail-link: #8af;--color-result-detail-loader-border: rgba(255, 255, 255, .2);--color-result-detail-loader-borderleft: rgba(0, 0, 0, 0);--color-result-image-span-font: #bbb;--color-result-image-span-font-selected: #222;--color-result-image-background: #222;--color-settings-tr-hover: #2c2c32;--color-settings-engine-description-font: #909090;--color-settings-table-group-background: #1b1b21;--color-toolkit-badge-font: #fff;--color-toolkit-badge-background: #555;--color-toolkit-kbd-font: #000;--color-toolkit-kbd-background: #fff;--color-toolkit-dialog-border: #555;--color-toolkit-dialog-background: #1e1e22;--color-toolkit-tabs-label-border: #222;--color-toolkit-tabs-section-border: #555;--color-toolkit-select-background: #313338;--color-toolkit-select-border: #555;--color-toolkit-select-background-hover: #373b49;--color-toolkit-input-text-font: #fff;--color-toolkit-checkbox-onoff-off-background: #313338;--color-toolkit-checkbox-onoff-on-background: #313338;--color-toolkit-checkbox-onoff-on-mark-background: #58f;--color-toolkit-checkbox-onoff-on-mark-color: #222;--color-toolkit-checkbox-onoff-off-mark-background: #ddd;--color-toolkit-checkbox-onoff-off-mark-color: #222;--color-toolkit-checkbox-label-background: #222;--color-toolkit-checkbox-label-border: #333;--color-toolkit-checkbox-input-border: #58f;--color-toolkit-engine-tooltip-border: #333;--color-toolkit-engine-tooltip-background: #222;--color-toolkit-loader-border: rgba(255, 255, 255, .2);--color-toolkit-loader-borderleft: rgba(0, 0, 0, 0);--color-doc-code: #ddd;--color-doc-code-background: #4d5a6f;--color-favicon-background-color: #ddd;--color-favicon-border-color: #ccc;--color-base-background: #000;--color-base-background-mobile: #000;--color-header-background: #000;--color-footer-background: #000;--color-sidebar-background: #000}.code-highlight pre{line-height:100%}.code-highlight td.linenos .normal,.code-highlight span.linenos{color:inherit;background-color:transparent;padding-left:5px;padding-right:5px}.code-highlight td.linenos .special,.code-highlight span.linenos.special{color:#000;background-color:#ffffc0;padding-left:5px;padding-right:5px}.code-highlight .hll{background-color:#ffc}.code-highlight .c{color:#3d7b7b;font-style:italic}.code-highlight .err{border:1px solid #F00}.code-highlight .k{color:green;font-weight:700}.code-highlight .o{color:#666}.code-highlight .ch,.code-highlight .cm{color:#3d7b7b;font-style:italic}.code-highlight .cp{color:#9c6500}.code-highlight .cpf,.code-highlight .c1,.code-highlight .cs{color:#3d7b7b;font-style:italic}.code-highlight .gd{color:#a00000}.code-highlight .ge{font-style:italic}.code-highlight .ges{font-weight:700;font-style:italic}.code-highlight .gr{color:#e40000}.code-highlight .gh{color:navy;font-weight:700}.code-highlight .gi{color:#008400}.code-highlight .go{color:#717171}.code-highlight .gp{color:navy;font-weight:700}.code-highlight .gs{font-weight:700}.code-highlight .gu{color:purple;font-weight:700}.code-highlight .gt{color:#04d}.code-highlight .kc,.code-highlight .kd,.code-highlight .kn{color:green;font-weight:700}.code-highlight .kp{color:green}.code-highlight .kr{color:green;font-weight:700}.code-highlight .kt{color:#b00040}.code-highlight .m{color:#666}.code-highlight .s{color:#ba2121}.code-highlight .na{color:#687822}.code-highlight .nb{color:green}.code-highlight .nc{color:#00f;font-weight:700}.code-highlight .no{color:#800}.code-highlight .nd{color:#a2f}.code-highlight .ni{color:#717171;font-weight:700}.code-highlight .ne{color:#cb3f38;font-weight:700}.code-highlight .nf{color:#00f}.code-highlight .nl{color:#767600}.code-highlight .nn{color:#00f;font-weight:700}.code-highlight .nt{color:green;font-weight:700}.code-highlight .nv{color:#19177c}.code-highlight .ow{color:#a2f;font-weight:700}.code-highlight .w{color:#bbb}.code-highlight .mb,.code-highlight .mf,.code-highlight .mh,.code-highlight .mi,.code-highlight .mo{color:#666}.code-highlight .sa,.code-highlight .sb,.code-highlight .sc,.code-highlight .dl{color:#ba2121}.code-highlight .sd{color:#ba2121;font-style:italic}.code-highlight .s2{color:#ba2121}.code-highlight .se{color:#aa5d1f;font-weight:700}.code-highlight .sh{color:#ba2121}.code-highlight .si{color:#a45a77;font-weight:700}.code-highlight .sx{color:green}.code-highlight .sr{color:#a45a77}.code-highlight .s1{color:#ba2121}.code-highlight .ss{color:#19177c}.code-highlight .bp{color:green}.code-highlight .fm{color:#00f}.code-highlight .vc,.code-highlight .vg,.code-highlight .vi,.code-highlight .vm{color:#19177c}.code-highlight .il{color:#666}.codelines{margin:.125rem 0 0;padding:1rem 0 0}.code-highlight pre{overflow:auto;margin:0;padding:0 0 .75rem}.code-highlight .linenos{-webkit-user-select:none;user-select:none;cursor:default;margin-right:8px;text-align:right}.code-highlight .linenos::selection{background:transparent}.code-highlight .linenos::-moz-selection{background:transparent}.code-highlight span.linenos{color:var(--color-line-number)}@media (prefers-color-scheme: dark){:root.theme-auto .code-highlight pre{line-height:100%}:root.theme-auto .code-highlight td.linenos .normal{color:#3c4354;background-color:transparent;padding-left:5px;padding-right:5px}:root.theme-auto .code-highlight span.linenos{color:#3c4354;background-color:transparent;padding-left:5px;padding-right:5px}:root.theme-auto .code-highlight td.linenos .special{color:#3c4354;background-color:#ffffc0;padding-left:5px;padding-right:5px}:root.theme-auto .code-highlight span.linenos.special{color:#3c4354;background-color:#ffffc0;padding-left:5px;padding-right:5px}:root.theme-auto .code-highlight .hll{background-color:#6e7681}:root.theme-auto .code-highlight .c{color:#7e8aa1}:root.theme-auto .code-highlight .err{color:#f88f7f}:root.theme-auto .code-highlight .esc{color:#d4d2c8}:root.theme-auto .code-highlight .g{color:#d4d2c8}:root.theme-auto .code-highlight .k{color:#ffad66}:root.theme-auto .code-highlight .l{color:#d5ff80}:root.theme-auto .code-highlight .n{color:#d4d2c8}:root.theme-auto .code-highlight .o{color:#ffad66}:root.theme-auto .code-highlight .x{color:#d4d2c8}:root.theme-auto .code-highlight .p{color:#d4d2c8}:root.theme-auto .code-highlight .ch{color:#f88f7f;font-style:italic}:root.theme-auto .code-highlight .cm{color:#7e8aa1}:root.theme-auto .code-highlight .cp{color:#ffad66;font-weight:700}:root.theme-auto .code-highlight .cpf{color:#7e8aa1}:root.theme-auto .code-highlight .c1{color:#7e8aa1}:root.theme-auto .code-highlight .cs{color:#7e8aa1;font-style:italic}:root.theme-auto .code-highlight .gd{color:#f88f7f;background-color:#3d1e20}:root.theme-auto .code-highlight .ge{color:#d4d2c8;font-style:italic}:root.theme-auto .code-highlight .ges{color:#d4d2c8}:root.theme-auto .code-highlight .gr{color:#f88f7f}:root.theme-auto .code-highlight .gh{color:#d4d2c8}:root.theme-auto .code-highlight .gi{color:#6ad4af;background-color:#19362c}:root.theme-auto .code-highlight .go{color:#7e8aa1}:root.theme-auto .code-highlight .gp{color:#d4d2c8}:root.theme-auto .code-highlight .gs{color:#d4d2c8;font-weight:700}:root.theme-auto .code-highlight .gu{color:#d4d2c8}:root.theme-auto .code-highlight .gt{color:#f88f7f}:root.theme-auto .code-highlight .kc{color:#ffad66}:root.theme-auto .code-highlight .kd{color:#ffad66}:root.theme-auto .code-highlight .kn{color:#ffad66}:root.theme-auto .code-highlight .kp{color:#ffad66}:root.theme-auto .code-highlight .kr{color:#ffad66}:root.theme-auto .code-highlight .kt{color:#73d0ff}:root.theme-auto .code-highlight .ld{color:#d5ff80}:root.theme-auto .code-highlight .m{color:#dfbfff}:root.theme-auto .code-highlight .s{color:#d5ff80}:root.theme-auto .code-highlight .na{color:#ffd173}:root.theme-auto .code-highlight .nb{color:#ffd173}:root.theme-auto .code-highlight .nc{color:#73d0ff}:root.theme-auto .code-highlight .no{color:#ffd173}:root.theme-auto .code-highlight .nd{color:#7e8aa1;font-weight:700;font-style:italic}:root.theme-auto .code-highlight .ni{color:#95e6cb}:root.theme-auto .code-highlight .ne{color:#73d0ff}:root.theme-auto .code-highlight .nf{color:#ffd173}:root.theme-auto .code-highlight .nl{color:#d4d2c8}:root.theme-auto .code-highlight .nn{color:#d4d2c8}:root.theme-auto .code-highlight .nx{color:#d4d2c8}:root.theme-auto .code-highlight .py{color:#ffd173}:root.theme-auto .code-highlight .nt{color:#5ccfe6}:root.theme-auto .code-highlight .nv{color:#d4d2c8}:root.theme-auto .code-highlight .ow{color:#ffad66}:root.theme-auto .code-highlight .pm{color:#d4d2c8}:root.theme-auto .code-highlight .w{color:#d4d2c8}:root.theme-auto .code-highlight .mb{color:#dfbfff}:root.theme-auto .code-highlight .mf{color:#dfbfff}:root.theme-auto .code-highlight .mh{color:#dfbfff}:root.theme-auto .code-highlight .mi{color:#dfbfff}:root.theme-auto .code-highlight .mo{color:#dfbfff}:root.theme-auto .code-highlight .sa{color:#f29e74}:root.theme-auto .code-highlight .sb{color:#d5ff80}:root.theme-auto .code-highlight .sc{color:#d5ff80}:root.theme-auto .code-highlight .dl{color:#d5ff80}:root.theme-auto .code-highlight .sd{color:#7e8aa1}:root.theme-auto .code-highlight .s2{color:#d5ff80}:root.theme-auto .code-highlight .se{color:#95e6cb}:root.theme-auto .code-highlight .sh{color:#d5ff80}:root.theme-auto .code-highlight .si{color:#95e6cb}:root.theme-auto .code-highlight .sx{color:#95e6cb}:root.theme-auto .code-highlight .sr{color:#95e6cb}:root.theme-auto .code-highlight .s1{color:#d5ff80}:root.theme-auto .code-highlight .ss{color:#dfbfff}:root.theme-auto .code-highlight .bp{color:#5ccfe6}:root.theme-auto .code-highlight .fm{color:#ffd173}:root.theme-auto .code-highlight .vc{color:#d4d2c8}:root.theme-auto .code-highlight .vg{color:#d4d2c8}:root.theme-auto .code-highlight .vi{color:#d4d2c8}:root.theme-auto .code-highlight .vm{color:#d4d2c8}:root.theme-auto .code-highlight .il{color:#dfbfff}:root.theme-auto .code-highlight pre{overflow:auto;margin:0;padding:0 0 .75rem}:root.theme-auto .code-highlight .linenos{-webkit-user-select:none;user-select:none;cursor:default;margin-right:8px;text-align:right}:root.theme-auto .code-highlight .linenos::selection{background:transparent}:root.theme-auto .code-highlight .linenos::-moz-selection{background:transparent}:root.theme-auto .code-highlight span.linenos{color:var(--color-line-number)}}:root.theme-dark .code-highlight pre{line-height:100%}:root.theme-dark .code-highlight td.linenos .normal{color:#3c4354;background-color:transparent;padding-left:5px;padding-right:5px}:root.theme-dark .code-highlight span.linenos{color:#3c4354;background-color:transparent;padding-left:5px;padding-right:5px}:root.theme-dark .code-highlight td.linenos .special{color:#3c4354;background-color:#ffffc0;padding-left:5px;padding-right:5px}:root.theme-dark .code-highlight span.linenos.special{color:#3c4354;background-color:#ffffc0;padding-left:5px;padding-right:5px}:root.theme-dark .code-highlight .hll{background-color:#6e7681}:root.theme-dark .code-highlight .c{color:#7e8aa1}:root.theme-dark .code-highlight .err{color:#f88f7f}:root.theme-dark .code-highlight .esc{color:#d4d2c8}:root.theme-dark .code-highlight .g{color:#d4d2c8}:root.theme-dark .code-highlight .k{color:#ffad66}:root.theme-dark .code-highlight .l{color:#d5ff80}:root.theme-dark .code-highlight .n{color:#d4d2c8}:root.theme-dark .code-highlight .o{color:#ffad66}:root.theme-dark .code-highlight .x{color:#d4d2c8}:root.theme-dark .code-highlight .p{color:#d4d2c8}:root.theme-dark .code-highlight .ch{color:#f88f7f;font-style:italic}:root.theme-dark .code-highlight .cm{color:#7e8aa1}:root.theme-dark .code-highlight .cp{color:#ffad66;font-weight:700}:root.theme-dark .code-highlight .cpf{color:#7e8aa1}:root.theme-dark .code-highlight .c1{color:#7e8aa1}:root.theme-dark .code-highlight .cs{color:#7e8aa1;font-style:italic}:root.theme-dark .code-highlight .gd{color:#f88f7f;background-color:#3d1e20}:root.theme-dark .code-highlight .ge{color:#d4d2c8;font-style:italic}:root.theme-dark .code-highlight .ges{color:#d4d2c8}:root.theme-dark .code-highlight .gr{color:#f88f7f}:root.theme-dark .code-highlight .gh{color:#d4d2c8}:root.theme-dark .code-highlight .gi{color:#6ad4af;background-color:#19362c}:root.theme-dark .code-highlight .go{color:#7e8aa1}:root.theme-dark .code-highlight .gp{color:#d4d2c8}:root.theme-dark .code-highlight .gs{color:#d4d2c8;font-weight:700}:root.theme-dark .code-highlight .gu{color:#d4d2c8}:root.theme-dark .code-highlight .gt{color:#f88f7f}:root.theme-dark .code-highlight .kc{color:#ffad66}:root.theme-dark .code-highlight .kd{color:#ffad66}:root.theme-dark .code-highlight .kn{color:#ffad66}:root.theme-dark .code-highlight .kp{color:#ffad66}:root.theme-dark .code-highlight .kr{color:#ffad66}:root.theme-dark .code-highlight .kt{color:#73d0ff}:root.theme-dark .code-highlight .ld{color:#d5ff80}:root.theme-dark .code-highlight .m{color:#dfbfff}:root.theme-dark .code-highlight .s{color:#d5ff80}:root.theme-dark .code-highlight .na{color:#ffd173}:root.theme-dark .code-highlight .nb{color:#ffd173}:root.theme-dark .code-highlight .nc{color:#73d0ff}:root.theme-dark .code-highlight .no{color:#ffd173}:root.theme-dark .code-highlight .nd{color:#7e8aa1;font-weight:700;font-style:italic}:root.theme-dark .code-highlight .ni{color:#95e6cb}:root.theme-dark .code-highlight .ne{color:#73d0ff}:root.theme-dark .code-highlight .nf{color:#ffd173}:root.theme-dark .code-highlight .nl{color:#d4d2c8}:root.theme-dark .code-highlight .nn{color:#d4d2c8}:root.theme-dark .code-highlight .nx{color:#d4d2c8}:root.theme-dark .code-highlight .py{color:#ffd173}:root.theme-dark .code-highlight .nt{color:#5ccfe6}:root.theme-dark .code-highlight .nv{color:#d4d2c8}:root.theme-dark .code-highlight .ow{color:#ffad66}:root.theme-dark .code-highlight .pm{color:#d4d2c8}:root.theme-dark .code-highlight .w{color:#d4d2c8}:root.theme-dark .code-highlight .mb{color:#dfbfff}:root.theme-dark .code-highlight .mf{color:#dfbfff}:root.theme-dark .code-highlight .mh{color:#dfbfff}:root.theme-dark .code-highlight .mi{color:#dfbfff}:root.theme-dark .code-highlight .mo{color:#dfbfff}:root.theme-dark .code-highlight .sa{color:#f29e74}:root.theme-dark .code-highlight .sb{color:#d5ff80}:root.theme-dark .code-highlight .sc{color:#d5ff80}:root.theme-dark .code-highlight .dl{color:#d5ff80}:root.theme-dark .code-highlight .sd{color:#7e8aa1}:root.theme-dark .code-highlight .s2{color:#d5ff80}:root.theme-dark .code-highlight .se{color:#95e6cb}:root.theme-dark .code-highlight .sh{color:#d5ff80}:root.theme-dark .code-highlight .si{color:#95e6cb}:root.theme-dark .code-highlight .sx{color:#95e6cb}:root.theme-dark .code-highlight .sr{color:#95e6cb}:root.theme-dark .code-highlight .s1{color:#d5ff80}:root.theme-dark .code-highlight .ss{color:#dfbfff}:root.theme-dark .code-highlight .bp{color:#5ccfe6}:root.theme-dark .code-highlight .fm{color:#ffd173}:root.theme-dark .code-highlight .vc{color:#d4d2c8}:root.theme-dark .code-highlight .vg{color:#d4d2c8}:root.theme-dark .code-highlight .vi{color:#d4d2c8}:root.theme-dark .code-highlight .vm{color:#d4d2c8}:root.theme-dark .code-highlight .il{color:#dfbfff}:root.theme-dark .code-highlight pre{overflow:auto;margin:0;padding:0 0 .75rem}:root.theme-dark .code-highlight .linenos{-webkit-user-select:none;user-select:none;cursor:default;margin-right:8px;text-align:right}:root.theme-dark .code-highlight .linenos::selection{background:transparent}:root.theme-dark .code-highlight .linenos::-moz-selection{background:transparent}:root.theme-dark .code-highlight span.linenos{color:var(--color-line-number)}html.no-js .hide_if_nojs,html.js .show_if_nojs{display:none}.center{text-align:center}.right{float:right}.left{float:left}.invisible{display:none!important}.list-unstyled{list-style-type:none}.list-unstyled li{margin-top:4px;margin-bottom:4px}.danger{background-color:var(--color-error-background)}.warning{background:var(--color-warning-background)}.success{background:var(--color-success-background)}.badge{display:inline-block;color:var(--color-toolkit-badge-font);background-color:var(--color-toolkit-badge-background);text-align:center;white-space:nowrap;vertical-align:baseline;min-width:10px;padding:1px 5px;border-radius:5px}kbd{padding:2px 4px;margin:1px;font-size:90%;color:var(--color-toolkit-kbd-font);background:var(--color-toolkit-kbd-background)}table{width:100%}table.striped tr{border-bottom:1px solid var(--color-settings-tr-hover)}th{padding:.4em}td{padding:0 4px}tr:hover{background:var(--color-settings-tr-hover)!important}div.selectable_url{display:block;border:1px solid var(--color-result-search-url-border);padding:4px;color:var(--color-result-search-url-font);margin:.1em;overflow:hidden;height:1.2em;line-height:1.2em;border-radius:5px}div.selectable_url pre{display:block;font-size:.8em;word-break:break-all;margin:.1em;-webkit-user-select:all;user-select:all}.dialog-error{position:relative;display:flex;padding:1rem;margin:0 0 1em;border:1px solid var(--color-toolkit-dialog-border);text-align:right;border-radius:10px;color:var(--color-error);background:var(--color-error-background);border-color:var(--color-error)}.dialog-error .close{float:left;position:relative;top:-3px;color:inherit;font-size:1.5em}.dialog-error ul,.dialog-error ol,.dialog-error p{margin:1px 0 0}.dialog-error table{width:auto}.dialog-error tr{vertical-align:text-top}.dialog-error tr:hover{background:transparent!important}.dialog-error td{padding:0 1em 0 0;padding-left:1rem;padding-bottom:0;padding-right:0}.dialog-error h4{margin-top:.3em;margin-bottom:.3em}.dialog-error-block{position:relative;display:flex;padding:1rem;margin:0 0 1em;border:1px solid var(--color-toolkit-dialog-border);text-align:right;border-radius:10px;display:block;color:var(--color-error);background:var(--color-error-background);border-color:var(--color-error)}.dialog-error-block .close{float:left;position:relative;top:-3px;color:inherit;font-size:1.5em}.dialog-error-block ul,.dialog-error-block ol,.dialog-error-block p{margin:1px 0 0}.dialog-error-block table{width:auto}.dialog-error-block tr{vertical-align:text-top}.dialog-error-block tr:hover{background:transparent!important}.dialog-error-block td{padding:0 1em 0 0;padding-left:1rem;padding-bottom:0;padding-right:0}.dialog-error-block h4{margin-top:.3em;margin-bottom:.3em}.dialog-warning{position:relative;display:flex;padding:1rem;margin:0 0 1em;border:1px solid var(--color-toolkit-dialog-border);text-align:right;border-radius:10px;color:var(--color-warning);background:var(--color-warning-background);border-color:var(--color-warning)}.dialog-warning .close{float:left;position:relative;top:-3px;color:inherit;font-size:1.5em}.dialog-warning ul,.dialog-warning ol,.dialog-warning p{margin:1px 0 0}.dialog-warning table{width:auto}.dialog-warning tr{vertical-align:text-top}.dialog-warning tr:hover{background:transparent!important}.dialog-warning td{padding:0 1em 0 0;padding-left:1rem;padding-bottom:0;padding-right:0}.dialog-warning h4{margin-top:.3em;margin-bottom:.3em}.dialog-modal{position:relative;display:flex;padding:1rem;border:1px solid var(--color-toolkit-dialog-border);text-align:right;border-radius:10px;display:block;background:var(--color-toolkit-dialog-background);position:fixed;top:50%;left:50%;margin:0 auto;transform:translate(-50%,-50%);z-index:5000}.dialog-modal .close{float:left;position:relative;top:-3px;color:inherit;font-size:1.5em}.dialog-modal ul,.dialog-modal ol,.dialog-modal p{margin:1px 0 0}.dialog-modal table{width:auto}.dialog-modal tr{vertical-align:text-top}.dialog-modal tr:hover{background:transparent!important}.dialog-modal td{padding:0 1em 0 0;padding-left:1rem;padding-bottom:0;padding-right:0}.dialog-modal h4{margin-top:.3em;margin-bottom:.3em}.dialog-modal h3{margin-top:0}.btn-collapse{cursor:pointer}.scrollx{overflow:auto hidden;display:block;padding:0;margin:0;border:none}.tabs .tabs>label{font-size:90%}ul.tabs{border-bottom:1px solid var(--color-toolkit-tabs-section-border);list-style:none;padding-left:0}ul.tabs li{display:flex}.tabs{display:flex;flex-wrap:wrap;width:100%;min-width:100%}.tabs>*{order:2}.tabs>input[type=radio]{display:none}.tabs>label,.tabs>li>a{order:1;padding:.7em;margin:0 .7em;letter-spacing:.5px;text-transform:uppercase;border:solid var(--color-toolkit-tabs-label-border);border-width:0 0 2px 0;color:unset;-webkit-touch-callout:none;-webkit-user-select:none;user-select:none;cursor:pointer}.tabs>label.active,.tabs>li>a.active{border-bottom:2px solid var(--color-categories-item-border-selected);background:var(--color-categories-item-selected);color:var(--color-categories-item-selected-font)}.tabs>label:hover,.tabs>li>a:hover{border-bottom:2px solid var(--color-categories-item-border-selected)}.tabs>section{min-width:100%;padding:.7rem 0;box-sizing:border-box;border-top:1px solid var(--color-toolkit-tabs-section-border);display:none}.tabs>label:last-of-type{border-bottom:2px solid var(--color-categories-item-border-selected);background:var(--color-categories-item-selected);color:var(--color-categories-item-selected-font);letter-spacing:-.1px}.tabs>section:last-of-type{display:block}html body .tabs>input:checked~section{display:none}html body .tabs>input:checked~label{position:inherited;background:inherit;border-bottom:2px solid transparent;font-weight:400;color:inherit}html body .tabs>input:checked~label:hover{border-bottom:2px solid var(--color-categories-item-border-selected)}html body .tabs>input:checked+label{border-bottom:2px solid var(--color-categories-item-border-selected);background:var(--color-categories-item-selected);color:var(--color-categories-item-selected-font)}html body .tabs>input:checked+label+section{display:block}select{height:2.4rem;margin-top:0;margin-left:1rem;margin-bottom:0;margin-right:0;padding:.2rem!important;color:var(--color-search-font);font-size:.9rem;z-index:100}select:hover,select:focus{cursor:pointer}@supports ((background-position-x: 100%) and ((appearance: none) or (-webkit-appearance: none) or (-moz-appearance: none))){select{appearance:none;-webkit-appearance:none;-moz-appearance:none;border-width:0 2rem 0 0;border-color:transparent;background:url(data:image/svg+xml;charset=UTF-8,%3C%3Fxml%20version%3D%221.0%22%20encoding%3D%22utf-8%22%3F%3E%0A%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%22512%22%20height%3D%22512%22%20viewBox%3D%220%200%20512%20512%22%3E%0A%3Cg%3E%3Cpolygon%20points%3D%22128%2C192%20256%2C320%20384%2C192%22%2F%3E%3C%2Fg%3E%0A%3C%2Fsvg%3E) no-repeat;background-position-x:calc(100% + 2rem);background-size:2rem;background-origin:content-box;background-color:var(--color-toolkit-select-background);outline:medium none;text-overflow:ellipsis;border-radius:5px}select:hover,select:focus{background-color:var(--color-toolkit-select-background-hover)}select option{background-color:var(--color-base-background)}@media (prefers-color-scheme: dark){html.theme-auto select,html.theme-dark select{background-image:url(data:image/svg+xml;charset=UTF-8,%3C%3Fxml%20version%3D%221.0%22%20encoding%3D%22utf-8%22%3F%3E%0A%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%22512%22%20height%3D%22512%22%20viewBox%3D%220%200%20512%20512%22%3E%0A%3Cg%3E%3Cpolygon%20fill%3D%22%23ddd%22%20points%3D%22128%2C192%20256%2C320%20384%2C192%22%2F%3E%3C%2Fg%3E%0A%3C%2Fsvg%3E)}}html.theme-dark select{background-image:url(data:image/svg+xml;charset=UTF-8,%3C%3Fxml%20version%3D%221.0%22%20encoding%3D%22utf-8%22%3F%3E%0A%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%22512%22%20height%3D%22512%22%20viewBox%3D%220%200%20512%20512%22%3E%0A%3Cg%3E%3Cpolygon%20fill%3D%22%23ddd%22%20points%3D%22128%2C192%20256%2C320%20384%2C192%22%2F%3E%3C%2Fg%3E%0A%3C%2Fsvg%3E)}}input.checkbox-onoff[type=checkbox]{-webkit-appearance:none;-moz-appearance:none;appearance:none;cursor:pointer;display:inline-block;width:2.5em;height:.7em;box-shadow:none!important;margin:0 16px;border-radius:10px;position:relative}input.checkbox-onoff[type=checkbox]:focus,input.checkbox-onoff[type=checkbox]:hover{outline:none}input.checkbox-onoff[type=checkbox]:focus:after{content:"";position:absolute;width:3.5em;height:1.65em;border:1px solid var(--color-btn-background);border-radius:12px;box-shadow:var(--color-btn-background) 0 0 3px;z-index:1200;top:-.55em;left:-.6em}input.checkbox-onoff[type=checkbox]:before{position:absolute;top:-.5em;display:flex;justify-content:center;align-items:center;font-size:.75em;width:1.875em;height:1.875em;border-radius:50%}input.checkbox-onoff[type=checkbox],input.checkbox-onoff.reversed-checkbox[type=checkbox]:checked{background:var(--color-toolkit-checkbox-onoff-off-background)}input.checkbox-onoff[type=checkbox]:before,input.checkbox-onoff.reversed-checkbox[type=checkbox]:checked:before{left:-.5em;content:"✕";color:var(--color-toolkit-checkbox-onoff-off-mark-color);background:var(--color-toolkit-checkbox-onoff-off-mark-background)}input.checkbox-onoff[type=checkbox]:checked,input.checkbox-onoff.reversed-checkbox[type=checkbox]{background:var(--color-toolkit-checkbox-onoff-on-background)}input.checkbox-onoff[type=checkbox]:checked:before,input.checkbox-onoff.reversed-checkbox[type=checkbox]:before{left:calc(100% - 1.5em);content:"✓";color:var(--color-toolkit-checkbox-onoff-on-mark-color);background:var(--color-toolkit-checkbox-onoff-on-mark-background)}@supports (transform: rotate(-45deg)){input[type=checkbox]:not(.checkbox-onoff){-webkit-appearance:none;-moz-appearance:none;appearance:none;width:20px;height:20px;cursor:pointer;position:relative;top:0;left:0;border:2px solid var(--color-toolkit-checkbox-input-border);border-radius:.3em}input[type=checkbox]:not(.checkbox-onoff):after{content:"";width:9px;height:5px;position:absolute;top:3px;left:2px;border:3px solid var(--color-toolkit-checkbox-label-border);border-top:none;border-right:none;background:transparent;opacity:0;transform:rotate(-45deg)}input[type=checkbox]:not(.checkbox-onoff):checked:after{border-color:var(--color-toolkit-checkbox-input-border);opacity:1}input[type=checkbox][disabled]:not(.checkbox-onoff){border:inherit;background-color:transparent!important;cursor:inherit}input.checkbox[type=checkbox]:not(:checked,[disabled],.checkbox-onoff):hover:after{opacity:.5}}@media screen and (max-width: 50em){.tabs>label{width:100%}}.loader,.loader:after{border-radius:50%;width:2em;height:2em}.loader{margin:1em auto;font-size:10px;position:relative;text-indent:-9999em;border-top:.5em solid var(--color-toolkit-loader-border);border-right:.5em solid var(--color-toolkit-loader-border);border-bottom:.5em solid var(--color-toolkit-loader-border);border-left:.5em solid var(--color-toolkit-loader-borderleft);-webkit-transform:translateZ(0);-ms-transform:translateZ(0);transform:translateZ(0);-webkit-animation:load8 1.2s infinite linear;animation:load8 1.2s infinite linear}@-webkit-keyframes load8{0%{-webkit-transform:rotate(0deg);transform:rotate(0)}to{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}@keyframes load8{0%{-webkit-transform:rotate(0deg);transform:rotate(0)}to{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}.engine-tooltip{display:none;position:absolute;padding:.5rem 1rem;margin:0 0 0 2rem;border:1px solid var(--color-toolkit-engine-tooltip-border);background:var(--color-toolkit-engine-tooltip-background);font-size:14px;font-weight:400;z-index:5000;text-align:left;border-radius:10px}th:hover .engine-tooltip,td:hover .engine-tooltip,.engine-tooltip:hover{display:inline-block}.stacked-bar-chart{margin:0;padding:0 .125rem 0 4rem;width:100%;width:-moz-available;width:-webkit-fill-available;width:fill;flex-flow:row nowrap;align-items:center;display:inline-flex}.stacked-bar-chart-value{width:3rem;display:inline-block;position:absolute;padding:0 .5rem;text-align:right}.stacked-bar-chart-base{display:flex;flex-shrink:0;flex-grow:0;flex-basis:unset}.stacked-bar-chart-median{display:flex;flex-shrink:0;flex-grow:0;flex-basis:unset;background:var(--color-base-font);border:1px solid rgba(var(--color-base-font-rgb),.9);padding:.3rem 0}.stacked-bar-chart-rate80{display:flex;flex-shrink:0;flex-grow:0;flex-basis:unset;background:transparent;border:1px solid rgba(var(--color-base-font-rgb),.3);padding:.3rem 0}.stacked-bar-chart-rate95{display:flex;flex-shrink:0;flex-grow:0;flex-basis:unset;background:transparent;border-bottom:1px dotted rgba(var(--color-base-font-rgb),.5);padding:0}.stacked-bar-chart-rate100{display:flex;flex-shrink:0;flex-grow:0;flex-basis:unset;background:transparent;border-left:1px solid rgba(var(--color-base-font-rgb),.9);padding:.4rem 0;width:1px}/*! Autocomplete.js v2.6.3 | license MIT | (c) 2017, Baptiste Donaux | http://autocomplete-js.com */.autocomplete{position:absolute;width:44rem;max-height:0;overflow-y:hidden;text-align:right;border-radius:10px}.autocomplete:active,.autocomplete:focus,.autocomplete:hover{background-color:var(--color-autocomplete-background)}.autocomplete:empty{display:none}.autocomplete>ul{list-style-type:none;margin:0;padding:0}.autocomplete>ul>li{cursor:pointer;padding:.5rem 1rem}.autocomplete>ul>li.active,.autocomplete>ul>li:active,.autocomplete>ul>li:focus,.autocomplete>ul>li:hover{background-color:var(--color-autocomplete-background-hover)}.autocomplete>ul>li.active a:active,.autocomplete>ul>li:active a:active,.autocomplete>ul>li:focus a:active,.autocomplete>ul>li:hover a:active,.autocomplete>ul>li.active a:focus,.autocomplete>ul>li:active a:focus,.autocomplete>ul>li:focus a:focus,.autocomplete>ul>li:hover a:focus,.autocomplete>ul>li.active a:hover,.autocomplete>ul>li:active a:hover,.autocomplete>ul>li:focus a:hover,.autocomplete>ul>li:hover a:hover{text-decoration:none}.autocomplete>ul>li.locked{cursor:inherit}.autocomplete.open{display:block;background-color:var(--color-autocomplete-background);color:var(--color-autocomplete-font);max-height:32rem;overflow-y:auto;z-index:5000;margin-top:3.5rem;border-radius:.8rem}.autocomplete.open:empty{display:none}@media screen and (max-width: 50em){.autocomplete{width:100%}.autocomplete>ul>li{padding:1rem}}#main_results #results.image-detail-open.only_template_images{width:min(98%,59.25rem)!important}#main_results #results.only_template_images.image-detail-open #backToTop{right:56.75rem!important;left:inherit}article.result-images .detail{display:none}#results.image-detail-open article.result-images[data-vim-selected] .detail{display:flex;flex-direction:column;position:fixed;right:60rem;left:0;top:13rem;transition:top 64ms ease-in 0s;bottom:0;background:var(--color-result-detail-background);border:1px solid var(--color-result-detail-background);z-index:1000;padding:4rem 3rem 3rem;overflow-y:scroll}#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-images-source{display:block;flex:1;text-align:left;width:100%;border:none;text-decoration:none}#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-images-source img{padding:0;margin:0;border:none;object-fit:contain;width:inherit;height:inherit;max-width:100%;min-height:inherit;max-height:calc(100vh - 42rem);background:inherit}#results.image-detail-open article.result-images[data-vim-selected] .detail .result-images-labels{color:var(--color-result-detail-font);height:19rem}#results.image-detail-open article.result-images[data-vim-selected] .detail .result-images-labels hr{border-top:1px solid var(--color-result-detail-hr);border-bottom:none}#results.image-detail-open article.result-images[data-vim-selected] .detail .result-images-labels h4{height:2rem;overflow:hidden;text-overflow:ellipsis;font-size:.9rem;margin-bottom:0}#results.image-detail-open article.result-images[data-vim-selected] .detail .result-images-labels p{color:var(--color-result-detail-label-font);font-size:.9rem;white-space:nowrap;text-overflow:ellipsis;overflow:hidden;margin:.8rem 0}#results.image-detail-open article.result-images[data-vim-selected] .detail .result-images-labels p span{display:inline-block;width:12rem}#results.image-detail-open article.result-images[data-vim-selected] .detail .result-images-labels h4,#results.image-detail-open article.result-images[data-vim-selected] .detail .result-images-labels p,#results.image-detail-open article.result-images[data-vim-selected] .detail .result-images-labels a{text-align:right}#results.image-detail-open article.result-images[data-vim-selected] .detail .result-images-labels p.result-content{height:2rem;line-height:unset;overflow:hidden;text-overflow:ellipsis}#results.image-detail-open article.result-images[data-vim-selected] .detail .result-images-labels p.result-url{white-space:nowrap;overflow:hidden hidden;text-overflow:ellipsis}#results.image-detail-open article.result-images[data-vim-selected] .detail .result-images-labels p.result-content:hover,#results.image-detail-open article.result-images[data-vim-selected] .detail .result-images-labels p.result-url:hover{position:relative;overflow:inherit!important;background:var(--color-result-detail-background);text-overflow:inherit!important}#results.image-detail-open article.result-images[data-vim-selected] .detail .result-images-labels a,#results.image-detail-open article.result-images[data-vim-selected] .detail .result-images-labels a:visited,#results.image-detail-open article.result-images[data-vim-selected] .detail .result-images-labels a:hover,#results.image-detail-open article.result-images[data-vim-selected] .detail .result-images-labels a:active{color:var(--color-result-detail-link)}#results.image-detail-open article.result-images[data-vim-selected] .detail .result-images-labels a:hover{text-decoration:underline}#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-close{top:1rem;right:1rem;padding:.4rem}#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-previous{top:1rem;left:6rem;padding:.4rem .3rem .4rem .5rem}#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-next{top:1rem;left:2rem;padding:.4rem}#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-close,#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-next,#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-previous{border-radius:50%;display:block;width:1.5rem;height:1.5rem;position:absolute;filter:opacity(40%);z-index:1200}#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-close span,#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-next span,#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-previous span{display:block;width:1.5rem;height:1.5rem;text-align:center}#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-next span:before,#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-previous span:before{vertical-align:sub}#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-close,#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-close:visited,#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-close:hover,#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-close:active,#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-previous,#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-previous:visited,#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-previous:hover,#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-previous:active,#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-next,#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-next:visited,#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-next:hover,#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-next:active{color:var(--color-result-detail-font);background:var(--color-result-detail-background);border:1px solid var(--color-result-detail-font)}#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-close:focus,#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-close:hover,#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-previous:focus,#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-previous:hover,#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-next:focus,#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-next:hover{filter:opacity(80%)}#results.image-detail-open article.result-images[data-vim-selected] .detail .loader{position:absolute;top:1rem;left:50%;border-top:.5em solid var(--color-result-detail-loader-border);border-right:.5em solid var(--color-result-detail-loader-border);border-bottom:.5em solid var(--color-result-detail-loader-border);border-left:.5em solid var(--color-result-detail-loader-borderleft)}#results.image-detail-open.scrolling article.result-images[data-vim-selected] .detail{top:0}#results.image-detail-open.scrolling article.result-images[data-vim-selected] .detail a.result-images-source img{max-height:calc(100vh - 25rem)}@media screen and (max-width: 79.75em){#results.image-detail-open article.result-images[data-vim-selected] .detail{top:0;right:0}#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-images-source{display:flex;flex-direction:column;justify-content:center}#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-images-source img{width:100%;max-height:calc(100vh - 24rem)}#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-next{left:1rem}}@media screen and (max-width: 50em){#results.image-detail-open article.result-images[data-vim-selected] .detail{top:0;right:0;padding:1rem}#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-images-source img{width:100%;max-height:calc(100vh - 20rem);margin:0}#results.image-detail-open article.result-images[data-vim-selected] .detail .result-images-labels p span{width:inherit;margin-left:1rem}}.dialog-modal{animation-name:dialogmodal;animation-duration:.13s}@keyframes dialogmodal{0%{opacity:0}50%{opacity:.5;transform:translate(-50%,-50%) scale(1.05)}}input.checkbox-onoff[type=checkbox]:before{transition:left .25s}iframe[src^="https://w.soundcloud.com"]{height:120px}iframe[src^="https://www.deezer.com"]{height:94px}iframe[src^="https://www.mixcloud.com"]{height:250px}iframe[src^="https://bandcamp.com/EmbeddedPlayer"]{height:350px}iframe[src^="https://bandcamp.com/EmbeddedPlayer/track"]{height:120px}iframe[src^="https://genius.com/songs"]{height:65px}.info-page code{font-family:monospace;border-radius:5px;background-color:var(--color-doc-code-background);color:var(--color-doc-code);padding:.2rem;border:0 none}.stats_endpoint .github-issue-button{display:block;font-size:16px}.stats_endpoint .issue-hide{display:none}.stats_endpoint input[type=checked]{position:absolute}.stats_endpoint label{margin:1rem 1rem 1rem 0}.stats_endpoint .step_content{margin:1rem 1rem 1rem 2rem}.stats_endpoint .step1,.stats_endpoint .step2{visibility:hidden}.stats_endpoint .step1_delay{transition:visibility 0s linear 4s}.stats_endpoint #step1:checked~.step1,.stats_endpoint #step2:checked~.step2{visibility:visible}.engine-stats{border-spacing:0;border-collapse:collapse}.engine-stats tr td,.engine-stats tr th{border-bottom:1px solid var(--color-result-border);padding:.25rem}.engine-stats table.engine-tooltip{border-spacing:0;border-collapse:collapse}.engine-stats table.engine-tooltip td,.engine-stats table.engine-tooltip th{border:none}.engine-stats .engine-name{width:20rem}.engine-stats .engine-score{width:7rem;text-align:right}.engine-stats .engine-reliability{text-align:right}table.engine-error th.engine-error-type,table.engine-error td.engine-error-type,failed-test{width:10rem}.engine-errors{margin-top:3rem}.engine-errors table.engine-error{max-width:1280px;margin:1rem 0 3rem;border:1px solid var(--color-result-border);text-align:right}.engine-errors table.engine-error tr th,.engine-errors table.engine-error tr td{padding:.5rem}.engine-errors table.engine-error span.log_parameters{border-right:1px solid solid var(--color-result-border);padding:0 1rem 0 0;margin:0 0 0 .5rem}.bar-chart-value{width:3em;display:inline-block;text-align:right;padding-right:.5rem}.bar-chart-graph{width:calc(100% - 5rem);display:inline-block}.bar-chart-bar{border:3px solid var(--color-bar-chart-primary);margin:1px 0}.bar-chart-serie1{border:3px solid var(--color-bar-chart-primary);margin:1px 0;float:left}.bar-chart-serie2{border:3px solid var(--color-bar-chart-secondary);margin:1px 0;float:left}.bar0{width:0;border:0}.bar1{width:1%}.bar2{width:2%}.bar3{width:3%}.bar4{width:4%}.bar5{width:5%}.bar6{width:6%}.bar7{width:7%}.bar8{width:8%}.bar9{width:9%}.bar10{width:10%}.bar11{width:11%}.bar12{width:12%}.bar13{width:13%}.bar14{width:14%}.bar15{width:15%}.bar16{width:16%}.bar17{width:17%}.bar18{width:18%}.bar19{width:19%}.bar20{width:20%}.bar21{width:21%}.bar22{width:22%}.bar23{width:23%}.bar24{width:24%}.bar25{width:25%}.bar26{width:26%}.bar27{width:27%}.bar28{width:28%}.bar29{width:29%}.bar30{width:30%}.bar31{width:31%}.bar32{width:32%}.bar33{width:33%}.bar34{width:34%}.bar35{width:35%}.bar36{width:36%}.bar37{width:37%}.bar38{width:38%}.bar39{width:39%}.bar40{width:40%}.bar41{width:41%}.bar42{width:42%}.bar43{width:43%}.bar44{width:44%}.bar45{width:45%}.bar46{width:46%}.bar47{width:47%}.bar48{width:48%}.bar49{width:49%}.bar50{width:50%}.bar51{width:51%}.bar52{width:52%}.bar53{width:53%}.bar54{width:54%}.bar55{width:55%}.bar56{width:56%}.bar57{width:57%}.bar58{width:58%}.bar59{width:59%}.bar60{width:60%}.bar61{width:61%}.bar62{width:62%}.bar63{width:63%}.bar64{width:64%}.bar65{width:65%}.bar66{width:66%}.bar67{width:67%}.bar68{width:68%}.bar69{width:69%}.bar70{width:70%}.bar71{width:71%}.bar72{width:72%}.bar73{width:73%}.bar74{width:74%}.bar75{width:75%}.bar76{width:76%}.bar77{width:77%}.bar78{width:78%}.bar79{width:79%}.bar80{width:80%}.bar81{width:81%}.bar82{width:82%}.bar83{width:83%}.bar84{width:84%}.bar85{width:85%}.bar86{width:86%}.bar87{width:87%}.bar88{width:88%}.bar89{width:89%}.bar90{width:90%}.bar91{width:91%}.bar92{width:92%}.bar93{width:93%}.bar94{width:94%}.bar95{width:95%}.bar96{width:96%}.bar97{width:97%}.bar98{width:98%}.bar99{width:99%}.bar100{width:100%}.osm-map-box{height:300px;width:100%;margin:10px 0}#main_index{margin-top:26vh}.index{text-align:center}.index .title{background:url(../img/searxng.png) no-repeat;min-height:4rem;margin:4rem auto;background-position:center;background-size:contain}.index h1{font-size:4em;visibility:hidden}.index #search,.index #search_header{margin:0 auto;background:inherit;border:inherit;padding:0;display:block}.index .search_filters{display:block;margin:1em 0}.index .category label{padding:6px 10px;border-bottom:initial!important}@media screen and (max-width: 79.75em){div.title h1{font-size:1em}#main_index{margin-top:6em}}table{border-collapse:collapse}table th,table td{text-align:center;padding:1rem .5rem;text-align:right}table tr.pref-group th{font-weight:400;text-align:right;background:var(--color-settings-table-group-background)}#main_preferences form{width:100%}#main_preferences fieldset{margin:8px;border:none}#main_preferences legend{margin:0;padding:5px 0 0;display:block;float:right;width:300px}#main_preferences input[type=text]{width:13.25rem;color:var(--color-toolkit-input-text-font);border:none;background:none repeat scroll 0 0 var(--color-toolkit-select-background);padding:.2rem .4rem;height:2rem;border-radius:5px}#main_preferences input[type=text]:hover,#main_preferences input[type=text]:focus{background-color:var(--color-toolkit-select-background-hover)}#main_preferences div.pref-group{width:100%;font-weight:400;padding:1rem .5rem;text-align:right;background:var(--color-settings-table-group-background)}#main_preferences .value{margin:0;padding:0;float:right;width:15em}#main_preferences .value select,#main_preferences .value input[type=text]{font-size:inherit!important;margin-top:0;margin-left:1rem;margin-bottom:0;margin-right:0}#main_preferences .value select{width:14rem}#main_preferences .value select:focus,#main_preferences .value input:focus{outline:none;box-shadow:0 0 1px 1px var(--color-btn-background)}#main_preferences .description{margin:0;padding:5px 0 0;float:left;width:50%;color:var(--color-settings-engine-description-font);font-size:90%}#main_preferences .bang{text-align:right;border-radius:5px;background-color:var(--color-doc-code-background);color:var(--color-doc-code);padding:.2rem;border:0 none}#main_preferences .category{margin-left:.5rem}#main_preferences .category label{border:2px solid transparent;padding:.2rem .4rem;border-radius:5px}#main_preferences .category input[type=checkbox]:checked+label{border:2px solid var(--color-categories-item-border-selected)}#main_preferences table.table_engines th.name label{cursor:pointer}#main_preferences table.table_engines th.name .engine-tooltip{margin-top:1.8rem;right:calc((100% - 85em)/2 + 10em);max-width:40rem}#main_preferences table.table_engines th.name .engine-tooltip .engine-description{margin-top:.5rem}#main_preferences table.table_engines th.name .engine-tooltip .bang{margin:.3rem}#main_preferences table.table_engines .checkbox-col,#main_preferences table.table_engines .name,#main_preferences table.table_engines .shortcut{text-align:right}#main_preferences table.cookies{width:100%;direction:ltr}#main_preferences table.cookies th,#main_preferences table.cookies td{text-align:left;font-family:monospace;font-size:1rem;padding:.5em;vertical-align:top}#main_preferences table.cookies td:first-child{word-break:keep-all;width:14rem;padding-right:1rem}#main_preferences table.cookies td:last-child{word-break:break-all}#main_preferences table.cookies>tbody>tr:nth-child(2n)>th,#main_preferences table.cookies>tbody>tr:nth-child(2n)>td{background-color:var(--color-settings-tr-hover)}#main_preferences .preferences_back{background:none repeat scroll 0 0 var(--color-btn-background);color:var(--color-btn-font);border:0 none;border-radius:10px;cursor:pointer;display:inline-block;margin:2px 4px;padding:.7em}#main_preferences .preferences_back a{color:var(--color-settings-return-font)}#main_preferences .preferences_back a:first-letter{text-transform:uppercase}#main_preferences #toggle-all-engines-container{width:max-content;margin-left:auto}#main_preferences div.selectable_url pre{width:100%}#main_preferences #copy-hash-container{display:flex;align-items:center;gap:.5rem}#main_preferences #copy-hash-container div.selectable_url pre{width:auto;flex-grow:1}#main_preferences #pref-hash-input{width:100%}@media screen and (max-width: 79.75em){.preferences_back{clear:both}.engine-tooltip{right:10em!important}}#search{padding:0;margin:0}#search_header{padding-top:1.5em;padding-left:2em;padding-right:7rem;margin:0;background:var(--color-header-background);border-bottom:1px solid var(--color-header-border);display:grid;gap:1rem 1.2rem;grid-template-columns:3rem 1fr;grid-template-areas:"logo search" "spacer categories"}.category_checkbox,.category_button{display:inline-block;position:relative;margin-left:1rem;padding:0}.category_checkbox input{display:none}.category_checkbox label{cursor:pointer;padding:.2rem 0;display:inline-flex;text-transform:capitalize;font-size:.9em;border-bottom:2px solid transparent;-webkit-touch-callout:none;-webkit-user-select:none;user-select:none}.category_checkbox label svg{padding-right:.2rem}.category_checkbox label div.category_name{margin:auto 0}.category_checkbox input[type=checkbox]:checked+label{color:var(--color-categories-item-selected-font);border-bottom:2px solid var(--color-categories-item-border-selected)}button.category_button{background-color:inherit;color:var(--color-base-font);cursor:pointer;padding:.2rem 0;display:inline-flex;align-items:center;text-transform:capitalize;font-size:.9em;border:none;border-bottom:2px solid transparent}button.category_button svg{padding-right:.2rem}button.category_button.selected,button.category_button:active{color:var(--color-categories-item-selected-font);border-bottom:2px solid var(--color-categories-item-border-selected)}.no-js #categories_container:has(button.category_button:focus-within) button.category_button.selected{color:var(--color-base-font);border-bottom:none}.no-js #categories_container:has(button.category_button:focus-within) button.category_button:focus-within{color:var(--color-categories-item-selected-font);border-bottom:2px solid var(--color-categories-item-border-selected)}#search_logo{padding:.5rem 10px 0;grid-area:logo;display:flex;align-items:center;justify-content:center}#search_logo svg{flex:1;width:30px;height:30px;margin:.5rem 0 auto}.search_categories{grid-area:categories}.search_categories .help{display:none}.search_categories:hover .help{display:block;position:absolute;background:var(--color-base-background);padding:1rem .6rem .6rem 0;z-index:1000;width:100%;left:-.1rem}#search_view{padding:.5rem .3rem 0 .5rem;grid-area:search}body.results_endpoint #search_view{padding:.5rem 2.8rem 0 0}.search_box{border-radius:.8rem;width:44rem;display:inline-flex;flex-direction:row;white-space:nowrap;box-shadow:var(--color-search-shadow)}#clear_search{display:block;border-collapse:separate;box-sizing:border-box;width:1.8rem;margin:0;padding:.8rem .2rem;background:none repeat scroll 0 0 var(--color-search-background);border:none;outline:none;color:var(--color-search-font);font-size:1.1rem;z-index:1000}#clear_search:hover{color:var(--color-search-background-hover)}#clear_search.empty *,html.no-js #clear_search.hide_if_nojs{display:none}#q,#send_search{display:block;margin:0;padding:.8rem;background:none repeat scroll 0 0 var(--color-search-background);border:none;outline:none;color:var(--color-search-font);font-size:1.1rem;z-index:100}#q{width:100%;padding-right:1rem;padding-left:0!important;border-radius:0 .8rem .8rem 0}#q::-ms-clear,#q::-webkit-search-cancel-button{display:none}#send_search{border-radius:.8rem 0 0 .8rem}#send_search:hover{cursor:pointer;background-color:var(--color-search-background-hover);color:var(--color-search-background)}.no-js #clear_search,.no-js #send_search{width:auto!important;border-right:1px solid var(--color-search-border)}.search_filters{margin-top:.6rem;margin-left:0;margin-bottom:0;margin-right:10.6rem;display:flex;overflow-x:auto;overscroll-behavior-inline:contain}.search_filters select{background-color:inherit}.search_filters select:hover,.search_filters select:focus{color:var(--color-base-font)}@media screen and (max-width: 79.75em){#search_header{padding:1.5em .5rem 0;column-gap:.5rem}.search_filters{margin-top:.6rem;margin-left:0;margin-bottom:0;margin-right:3.5rem}#categories{font-size:90%;clear:both}}@media screen and (max-width: 79.75em) and (hover: none){#main_index #categories_container,#main_results #categories_container{width:max-content}#main_index #categories_container .category_checkbox,#main_results #categories_container .category_checkbox{display:inline-block;width:auto}#main_index #categories,#main_results #categories{width:100%;text-align:right;overflow:scroll hidden;-webkit-overflow-scrolling:touch}}@media screen and (max-width: 50em){#search_header{width:100%;margin:0;padding:.1rem 0 0;gap:0 0;grid-template-areas:"logo search" "categories categories"}.search_logo{padding:0}.search_box{width:98%;display:flex}#q{width:100%;flex:1}.search_filters{margin:0 10px;padding:.5rem 0}.category{display:inline-block;width:auto;margin:0}.category svg{display:none}.category_checkbox label,.category_button{padding:1rem!important;margin:0!important}#search_view:focus-within{display:block;background-color:var(--color-search-background);position:absolute;top:0;height:100%;width:100%;z-index:2000}#search_view:focus-within .search_box{border-bottom:1px solid var(--color-search-border);width:100%;border-radius:0;box-shadow:none}#search_view:focus-within .search_box #send_search{margin-left:0!important}#search_view:focus-within .search_box *{border:none;border-radius:0;box-shadow:none}#main_results #q:placeholder-shown~#send_search{margin-left:2.6rem;transition:margin .1s}}@media screen and (max-width: 20rem){#search_header{grid-template-areas:"search search" "categories categories"}#search_logo{display:none}}#categories{-webkit-touch-callout:none;-webkit-user-select:none;user-select:none}#categories::-webkit-scrollbar{width:0;height:0}#categories_container{position:relative}.favicon img{height:1.5rem;width:1.5rem;border-radius:10%;background-color:var(--color-favicon-background-color);border:1px solid var(--color-favicon-border-color);display:flex}@media screen and (min-width: 50em){.center-alignment-yes #main_results{--center-page-width: 48rem}}@media screen and (width >= 62rem){.center-alignment-yes #main_results{--center-page-width: 60rem}}@media screen and (min-width: 79.75em){.center-alignment-yes #main_results{--center-page-width: 73rem}}@media screen and (min-width: 50em) and (max-width: 79.75em){.center-alignment-yes #main_results #results{grid-template-columns:60% calc(40% - 5rem);margin-left:0;margin-right:0}.center-alignment-yes #main_results #urls{margin-right:3rem}.center-alignment-yes #main_results #sidebar{margin-left:1rem}.center-alignment-yes #main_results #backToTop{right:calc(60% + 1rem)}}@media screen and (min-width: 79.75em){.center-alignment-yes #main_results{display:flex;flex-direction:column;align-items:center}.center-alignment-yes #main_results #search{width:100%;display:flex;flex-direction:column;align-items:center}.center-alignment-yes #main_results #search_header{grid-template-columns:calc(50% - 4.5rem - var(--center-page-width) / 2) 3rem var(--center-page-width);grid-template-areas:"na logo search" "na spacer categories";column-gap:1.2rem;width:100%;padding-left:0;padding-right:0}.center-alignment-yes #main_results .search_filters{margin-right:.5rem;width:var(--center-page-width)}.center-alignment-yes #main_results #results{margin-left:2rem;margin-right:10rem}.center-alignment-yes #main_results #results.only_template_images,.center-alignment-yes #main_results #results.image-detail-open{align-self:flex-start}.center-alignment-yes #main_results #results:not(.only_template_images,.image-detail-open){margin-right:1.5rem;grid-template-columns:calc(var(--center-page-width) - 5rem - 25rem) 25rem}.center-alignment-yes #main_results #results:not(.only_template_images,.image-detail-open) #backToTop{right:calc(50% - 25rem - 5rem + 1rem + var(--center-page-width) / 2)}.center-alignment-yes #main_results #results .result .content{max-width:inherit}.center-alignment-yes #main_results #urls{margin-right:0}.center-alignment-yes #main_results #sidebar{margin-left:0}}.sxng-icon-set{display:inline-block;vertical-align:bottom;line-height:1;text-decoration:inherit;transform:scaleX(-1)}.sxng-icon-set-small{width:1rem;height:1rem;display:inline-block;vertical-align:bottom;line-height:1;text-decoration:inherit;transform:scaleX(-1)}.sxng-icon-set-big{width:1.5rem;height:1.5rem;display:inline-block;vertical-align:bottom;line-height:1;text-decoration:inherit;transform:scaleX(-1)}html{font-family:sans-serif;font-size:.9em;-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%;-moz-text-size-adjust:100%;text-size-adjust:100%;color:var(--color-base-font);background-color:var(--color-base-background);padding:0;margin:0;scroll-behavior:smooth}body,main{padding:0;margin:0}body{display:flex;flex-direction:column;height:100vh;margin:0}@supports (height: 100dvh){body{height:100dvh}}main{width:100%;margin-bottom:2rem;flex:1}.page_with_header{margin:2em auto;width:85em}footer{clear:both;min-height:4rem;padding:1rem 0;width:100%;text-align:center;background-color:var(--color-footer-background);border-top:1px solid var(--color-footer-border);overflow:hidden}footer p{font-size:.9em}.page_with_header .logo{height:40px}input[type=submit],#results button[type=submit],.button{padding:.7rem;display:inline-block;background:var(--color-btn-background);color:var(--color-btn-font);border-radius:10px;border:0;cursor:pointer}a{text-decoration:none;color:var(--color-url-font)}a:visited,a:visited .highlight{color:var(--color-url-visited-font)}article[data-vim-selected]{background:var(--color-result-vim-selected);border-right:.2rem solid var(--color-result-vim-arrow);border-radius:10px 0 0 10px}article.result-images[data-vim-selected]{background:var(--color-result-vim-arrow);border:none;border-radius:10px}article.result-images[data-vim-selected] .image_thumbnail{filter:opacity(60%)}article.result-images[data-vim-selected] span.title,article.result-images[data-vim-selected] span.source{color:var(--color-result-image-span-font-selected)}article[data-vim-selected].category-videos,article[data-vim-selected].category-news,article[data-vim-selected].category-map,article[data-vim-selected].category-music,article[data-vim-selected].category-files,article[data-vim-selected].category-social{border:1px solid var(--color-result-vim-arrow);border-radius:10px}.result{margin:.125rem 0;padding:1rem;box-sizing:border-box;width:100%;border-right:.2rem solid transparent}.result h3{font-size:1.2rem;word-wrap:break-word;margin:.4rem 0;padding:0}.result h3 a{color:var(--color-result-link-font);font-weight:400;font-size:1.1em}.result h3 a:visited{color:var(--color-result-link-visited-font)}.result h3 a:focus,.result h3 a:hover{text-decoration:underline;border:none;outline:none}.result .cache_link,.result .proxyfied_link{font-size:smaller!important;margin-left:.5rem}.result .content,.result .stat{font-size:.9em;margin:0;padding:0;max-width:54em;word-wrap:break-word;line-height:1.24}.result .content .highlight,.result .stat .highlight{color:var(--color-result-description-highlight-font);background:inherit;font-weight:700}.result .altlink a{font-size:.9em;margin:0 10px 0 0;padding:5px 10px;border-radius:5px;background:var(--color-show-btn-background);color:var(--color-show-btn-font);cursor:pointer}.result .altlink a:hover{background:var(--color-btn-background);color:var(--color-btn-font)}.result .codelines .highlight{color:inherit;background:inherit;font-weight:400}.result .url_header{display:flex;gap:.5rem}.result .url_wrapper{display:flex;align-items:center;font-size:1rem;color:var(--color-result-url-font);flex-flow:row nowrap;overflow:hidden;margin:0;padding:0}.result .url_wrapper .url_o1{white-space:nowrap;flex-shrink:1;padding-bottom:1px}.result .url_wrapper .url_o1 .url_i1{unicode-bidi:plaintext}.result .url_wrapper .url_o1:after{content:" ";width:1ch;display:inline-block}.result .url_wrapper .url_o2{overflow:hidden;white-space:nowrap;flex:0 1 content;text-align:right;padding-bottom:1px}.result .url_wrapper .url_o2 .url_i2{float:right}.result .published_date,.result .result_length,.result .result_views,.result .result_author,.result .result_shipping,.result .result_source_country{font-size:.8em;color:var(--color-result-publishdate-font)}.result .result_price{font-size:1.2em;color:var(--color-result-description-highlight-font)}.result img.thumbnail{float:right;padding-top:.6rem;padding-left:1rem;width:7rem;height:unset}.result .break{clear:both}.result-paper .attributes,.result-packages .attributes{display:table;border-spacing:.125rem}.result-paper .attributes div,.result-packages .attributes div{display:table-row}.result-paper .attributes div span,.result-packages .attributes div span{font-size:.9rem;margin-top:.25rem;display:table-cell}.result-paper .attributes div span time,.result-packages .attributes div span time{font-size:.9rem}.result-paper .attributes div span:first-child,.result-packages .attributes div span:first-child{color:var(--color-base-font);min-width:10rem}.result-paper .attributes div span:nth-child(2),.result-packages .attributes div span:nth-child(2){color:var(--color-result-publishdate-font)}.result-paper .content,.result-packages .content{margin-top:.25rem}.result-paper .comments,.result-packages .comments{font-size:.9rem;margin:.25rem 0 0;padding:0;word-wrap:break-word;line-height:1.24;font-style:italic}.result-packages .attributes{margin-top:.3rem}.template_group_images{display:flex;flex-wrap:wrap}.template_group_images:after{flex-grow:10;content:""}.category-videos,.category-news,.category-map,.category-music,.category-files,.category-social{border:1px solid var(--color-result-border);margin:0 .5rem 1rem!important;border-radius:10px}.category-social .image{width:auto!important;min-width:48px;min-height:48px;padding:0 5px 25px 0!important}.audio-control audio{width:100%;padding:10px 0 0}.embedded-content iframe{width:100%;padding:10px 0 0}.result-videos img.thumbnail{float:right;padding-top:.6rem;padding-left:1rem;width:20rem;height:unset}.result-videos .content{overflow:hidden}.result-videos .embedded-video iframe{width:100%;aspect-ratio:16 / 9;padding:10px 0 0}@supports not (aspect-ratio: 1 / 1){.result-videos .embedded-video iframe{height:25.3125rem}}.engines{float:left;display:flex;flex-wrap:wrap;justify-content:flex-end;color:var(--color-result-engines-font)}.engines span{font-size:smaller;margin-top:0;margin-bottom:0;margin-left:.5rem;margin-right:0}.small_font{font-size:.8em}.highlight{color:var(--color-result-link-font-highlight);background:inherit}.empty_element{font-style:italic}.result-images{flex-grow:1;padding:.5rem .5rem 3rem;margin:.25rem;border:none!important;height:12rem;width:unset}.result-images>a{position:relative;outline:none}.result-images img{margin:0;padding:0;border:none;height:100%;width:auto;object-fit:cover;vertical-align:bottom;background:var(--color-result-image-background)}.result-images .image_resolution{position:absolute;right:0;bottom:0;background:var(--color-image-resolution-background);padding:.3rem .5rem;font-size:.9rem;color:var(--color-image-resolution-font);border-top-left-radius:.3rem}.result-images span.title,.result-images span.source{display:block;position:absolute;width:100%;font-size:.9rem;color:var(--color-result-image-span-font);padding:.5rem 0 0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.result-images span.source{padding:1.8rem 0 0;font-size:.7rem}.result-map img.image{float:left!important;height:100px!important;width:auto!important}.result-map table{font-size:.9em;width:auto;border-collapse:separate;border-spacing:0 .35rem}.result-map table th{font-weight:inherit;width:17rem;vertical-align:top;text-align:right}.result-map table td{vertical-align:top;text-align:right}.hidden{display:none!important}#results{margin-top:1rem;margin-left:2rem;margin-bottom:0;margin-right:10rem;display:grid;grid-template:"corrections sidebar" min-content "answers sidebar" min-content "urls sidebar" 1fr "pagination sidebar" min-content / 45rem 25rem;gap:0 5rem}#results #sidebar *:first-child{margin-top:0}#urls{padding:0;grid-area:urls}#apis .wrapper{display:flex}#suggestions .wrapper{display:flex;flex-flow:column;justify-content:flex-end}#suggestions .wrapper form{display:inline-block;flex:1 1 50%}#suggestions input,#infoboxes input{padding:0;margin:3px;font-size:.9em;display:inline-block;background:transparent;color:var(--color-result-search-url-font);cursor:pointer;width:100%;text-overflow:ellipsis;overflow:hidden;text-align:left}#suggestions input[type=submit],#infoboxes input[type=submit],#suggestions .infobox .url a,#infoboxes .infobox .url a{color:var(--color-result-link-font);text-decoration:none;font-size:.9rem}#suggestions input[type=submit]:hover,#infoboxes input[type=submit]:hover,#suggestions .infobox .url a:hover,#infoboxes .infobox .url a:hover{text-decoration:underline}#corrections{grid-area:corrections;display:flex;flex-flow:row wrap;margin:0 0 1em}#corrections h4,#corrections input[type=submit]{display:inline-block;padding:.5rem;margin:.5rem}#corrections input[type=submit]{font-size:.8rem;border-radius:5px}#infoboxes .title,#suggestions .title,#search_url .title,#engines_msg .title,#apis .title{margin:2em 0 .5em;color:var(--color-base-font)}summary.title{cursor:pointer;padding-top:1em}.sidebar-collapsible{border-top:1px solid var(--color-sidebar-border);padding-bottom:.5em}#sidebar-end-collapsible{border-bottom:1px solid var(--color-sidebar-border);width:100%}#answers{grid-area:answers;background:var(--color-answer-background);padding:1rem;margin:1rem 0;margin-top:0;color:var(--color-answer-font);border-radius:10px}#answers h4{display:none}#answers span{overflow-wrap:anywhere}#answers .answer{display:flex;flex-direction:column}#answers .answer-url{margin:5px 10px 10px auto}#infoboxes form{min-width:210px}#sidebar{grid-area:sidebar;word-wrap:break-word;color:var(--color-sidebar-font)}#sidebar .infobox{margin:10px 0;border:1px solid var(--color-sidebar-border);padding:1rem;font-size:.9em;border-radius:10px}#sidebar .infobox h2{margin:0 0 .5em}#sidebar .infobox img{max-width:100%;max-height:12em;display:block;margin:0 auto;padding:0}#sidebar .infobox dt{font-weight:700}#sidebar .infobox .attributes dl{margin:.5em 0}#sidebar .infobox .attributes dt{display:inline;margin:.5em 0 .5em .25em;padding:0}#sidebar .infobox .attributes dd{display:inline;margin:.5em 0;padding:0}#sidebar .infobox input{font-size:1em}#sidebar .infobox br,#sidebar .infobox .attributes,#sidebar .infobox .urls{clear:both}#apis input{font-size:.9em;margin:0 10px 0 0;padding:5px 10px;border-radius:5px;background:var(--color-show-btn-background);color:var(--color-show-btn-font);cursor:pointer}#apis input:hover{background:var(--color-btn-background);color:var(--color-btn-font)}#engines_msg .engine-name{width:10rem}#engines_msg .response-error{color:var(--color-error)}#engines_msg .bar-chart-value{width:auto}#search_url div.selectable_url pre{float:left;width:200em}#search_url button#copy_url{float:right;padding:.4rem;margin-left:.5rem;border-radius:.3rem;display:none}#links_on_top{position:absolute;left:1rem;text-align:left;top:2.7rem;padding:0;border:0;display:flex;align-items:center;font-size:1em;color:var(--color-search-font)}#links_on_top a{display:flex;align-items:center;margin-left:1em}#links_on_top a svg{font-size:1.2em;margin-left:.125em}#links_on_top a,#links_on_top a:link *,#links_on_top a:hover *,#links_on_top a:visited *,#links_on_top a:active *{color:var(--color-search-font)}#pagination{grid-area:pagination}#pagination br{clear:both}.numbered_pagination{display:flex;flex-direction:row;justify-content:center;align-items:center;overflow:hidden}.page_number{background:transparent!important;color:var(--color-result-link-font)!important;text-decoration:underline}.page_number_current{background:transparent;color:var(--color-result-link-visited-font);border:none}#backToTop{border:1px solid var(--color-backtotop-border);margin:0;padding:0;font-size:1em;background:var(--color-backtotop-background);position:fixed;bottom:8rem;right:56.3rem;transition:opacity .5s;opacity:0;pointer-events:none;border-radius:10px}#backToTop a{display:block;margin:0;padding:.7em}#backToTop a,#backToTop a:visited,#backToTop a:hover,#backToTop a:active{color:var(--color-backtotop-font)}#results.scrolling #backToTop{opacity:1;pointer-events:all}@media screen and (width <= calc(79.75em - .5px)){#links_on_top span{display:none}}@media screen and (width <= 52rem){body.results_endpoint #links_on_top .link_on_top_about,body.results_endpoint #links_on_top .link_on_top_donate{display:none}}@media screen and (min-width: 50em) and (max-width: 79.75em){.center-alignment-no #links_on_top span{display:none}.center-alignment-no .page_with_header{margin:2rem .5rem;width:auto}.center-alignment-no #infoboxes{position:inherit;max-width:inherit}.center-alignment-no #infoboxes .infobox{clear:both}.center-alignment-no #infoboxes .infobox img{float:right;max-width:10em;margin:.5em 0 .5em .5em}.center-alignment-no #sidebar{margin:0 .5rem .125rem;padding:0;float:none;border:none;width:auto}.center-alignment-no #sidebar input{border:0}.center-alignment-no .result .thumbnail{max-width:98%}.center-alignment-no .result .url span.url{display:block;white-space:nowrap;text-overflow:ellipsis;overflow:hidden;width:100%}.center-alignment-no .result .engines{float:left;display:flex;flex-wrap:wrap;justify-content:flex-end;padding:3px 0 0}.center-alignment-no .result-images{border-bottom:none!important}.center-alignment-no .image_result,.center-alignment-no .image_result img{max-width:98%}.center-alignment-no #backToTop{display:none}.center-alignment-no #pagination{margin:2rem 0 0!important}.center-alignment-no #main_results div#results{margin:0 auto;justify-content:center;display:grid;grid-template:"corrections" min-content "answers" min-content "sidebar" min-content "urls" 1fr "pagination" min-content / 45rem;gap:0}}#main_results div#results.only_template_images{margin:1rem .5rem 0;display:grid;grid-template:"corrections" min-content "answers" min-content "sidebar" min-content "urls" 1fr "pagination" min-content / 100%;gap:0}#main_results div#results.only_template_images #sidebar{display:none}#main_results div#results.only_template_images #urls{margin:0;display:flex;flex-wrap:wrap}#main_results div#results.only_template_images #urls:after{flex-grow:10;content:""}#main_results div#results.only_template_images #backToTop{right:auto;left:1rem}#main_results div#results.only_template_images #pagination{margin-left:4rem}@media screen and (max-width: 50em){#links_on_top span{display:none}.page_with_header{margin:2rem .5rem;width:auto}#infoboxes{position:inherit;max-width:inherit}#infoboxes .infobox{clear:both}#infoboxes .infobox img{float:right;max-width:10em;margin:.5em 0 .5em .5em}#sidebar{margin:0 .5rem .125rem;padding:0;float:none;border:none;width:auto}#sidebar input{border:0}.result .thumbnail{max-width:98%}.result .url span.url{display:block;white-space:nowrap;text-overflow:ellipsis;overflow:hidden;width:100%}.result .engines{float:left;display:flex;flex-wrap:wrap;justify-content:flex-end;padding:3px 0 0}.result-images{border-bottom:none!important}.image_result,.image_result img{max-width:98%}#backToTop{display:none}#pagination{margin:2rem 0 0!important}#main_results div#results{margin:0 auto;justify-content:center;display:grid;grid-template:"corrections" min-content "answers" min-content "sidebar" min-content "urls" 1fr "pagination" min-content / 45rem;gap:0}html{background-color:var(--color-base-background-mobile)}#main_results div#results{grid-template-columns:100%;margin:0 auto}#links_on_top{top:1.4rem;left:10px}#main_index #links_on_top{top:.5rem;left:.5rem}#results{margin:0;padding:0}#pagination{margin:2rem 1rem 0!important}article[data-vim-selected]{border:1px solid var(--color-result-vim-arrow);border-radius:10px}.result{background:var(--color-result-background);border:1px solid var(--color-result-background);margin:1rem 2%;width:96%;border-radius:10px}.result-images{margin:0;height:10rem;background:var(--color-base-background-mobile);width:unset}.infobox{border:none!important;background-color:var(--color-sidebar-background)}.numbered_pagination{display:none}.result-paper .attributes,.result-packages .attributes,.result-paper .attributes div,.result-packages .attributes div{display:block}.result-paper .attributes div span,.result-packages .attributes div span{display:inline}.result-paper .attributes div span:first-child,.result-packages .attributes div span:first-child{font-weight:700}.result-paper .attributes div span:nth-child(2),.result-packages .attributes div span:nth-child(2){margin-right:.5rem}}@media screen and (max-width: 35em){.result-videos img.thumbnail{float:none!important}.result-videos .content{overflow:inherit}}pre code{white-space:pre-wrap}#main_results .result-keyvalue caption{padding:.8rem .5rem;font-style:italic;caption-side:bottom;background-color:var(--color-result-keyvalue-table)}#main_results .result-keyvalue .col-key{width:25%}#main_results .result-keyvalue table{word-break:break-word;table-layout:fixed;width:100%;background-color:var(--color-result-keyvalue-table)}#main_results .result-keyvalue tr.odd{background-color:var(--color-result-keyvalue-odd)}#main_results .result-keyvalue tr.even{background-color:var(--color-result-keyvalue-even)}#main_results .result-keyvalue th,#main_results .result-keyvalue td{padding:.3rem .5rem}#q,#sidebar .infobox dt bdi{direction:rtl}#urls{direction:initial;text-align:right}#urls .result .url_header{direction:rtl}#urls .result .url_wrapper{justify-content:end}#main_results div#results.only_template_images #urls{direction:rtl}#results.image-detail-open article.result-images[data-vim-selected] .detail .result-images-labels p{direction:rtl}#results.image-detail-open article.result-images[data-vim-selected] .detail .result-images-labels p.result-url{direction:ltr}#results.image-detail-open article.result-images[data-vim-selected] .detail .result-images-labels p.result-url span{direction:rtl;float:right}@supports ((background-position-x: 100%) and ((appearance: none) or (-webkit-appearance: none) or (-moz-appearance: none))){select{border-width:0 0 0 2rem;background-position-x:-2rem}}#vim-hotkeys-help table{direction:ltr;text-align:left}#main_preferences h1,#main_stats h1{background-position-x:100%}.bar-chart-serie1,.bar-chart-serie2{float:right}.engine-stats .engine-name,.engine-stats .engine-score,.engine-stats .result-count,.engine-stats .response-time,.engine-stats .engine-reliability{text-align:right} +/*! normalize.css v8.0.1 | MIT License | github.com/necolas/normalize.css */html{line-height:1.15;-webkit-text-size-adjust:100%}body{margin:0}main{display:block}h1{font-size:2em;margin:.67em 0}hr{box-sizing:content-box;height:0;overflow:visible}pre{font-family:monospace,monospace;font-size:1em}a{background-color:transparent}abbr[title]{border-bottom:none;text-decoration:underline;text-decoration:underline dotted}b,strong{font-weight:bolder}code,kbd,samp{font-family:monospace,monospace;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}img{border-style:none}button,input,optgroup,select,textarea{font-family:inherit;font-size:100%;line-height:1.15;margin:0}button,input{overflow:visible}button,select{text-transform:none}button,[type=button],[type=reset],[type=submit]{-webkit-appearance:button}button::-moz-focus-inner,[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner{border-style:none;padding:0}button:-moz-focusring,[type=button]:-moz-focusring,[type=reset]:-moz-focusring,[type=submit]:-moz-focusring{outline:1px dotted ButtonText}fieldset{padding:.35em .75em .625em}legend{box-sizing:border-box;color:inherit;display:table;max-width:100%;padding:0;white-space:normal}progress{vertical-align:baseline}textarea{overflow:auto}[type=checkbox],[type=radio]{box-sizing:border-box;padding:0}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}details{display:block}summary{display:list-item}template{display:none}[hidden]{display:none}:root{--color-base-font: #444;--color-base-font-rgb: 68, 68, 68;--color-base-background: #fff;--color-base-background-mobile: #f2f5f8;--color-url-font: #334999;--color-url-visited-font: #9822c3;--color-header-background: #fdfbff;--color-header-border: #ddd;--color-footer-background: #fdfbff;--color-footer-border: #ddd;--color-sidebar-border: #ddd;--color-sidebar-font: #000;--color-sidebar-background: #fff;--color-backtotop-font: #444;--color-backtotop-border: #ddd;--color-backtotop-background: #fff;--color-btn-background: #3050ff;--color-btn-font: #fff;--color-show-btn-background: #bbb;--color-show-btn-font: #000;--color-search-border: #bbb;--color-search-shadow: 0 2px 8px rgba(34, 38, 46, .25);--color-search-background: #fff;--color-search-font: #222;--color-search-background-hover: #3050ff;--color-error: #db3434;--color-error-background: #fae1e1;--color-warning: #dbba34;--color-warning-background: #faf5e1;--color-success: #42db34;--color-success-background: #e3fae1;--color-categories-item-selected-font: #3050ff;--color-categories-item-border-selected: #3050ff;--color-autocomplete-font: #000;--color-autocomplete-border: #bbb;--color-autocomplete-shadow: 0 2px 8px rgba(34, 38, 46, .25);--color-autocomplete-background: #fff;--color-autocomplete-background-hover: #e3e3e3;--color-answer-font: #444;--color-answer-background: #fff;--color-result-keyvalue-col-table: #fdfbff;--color-result-keyvalue-odd: #fdfbff;--color-result-keyvalue-even: #fff;--color-result-background: #fff;--color-result-border: #ddd;--color-result-url-font: #000;--color-result-vim-selected: #f7f7f7;--color-result-vim-arrow: #000bbb;--color-result-description-highlight-font: #000;--color-result-link-font: #000bbb;--color-result-link-font-highlight: #000bbb;--color-result-link-visited-font: #9822c3;--color-result-publishdate-font: #777;--color-result-engines-font: #545454;--color-result-search-url-border: #ddd;--color-result-search-url-font: #000;--color-result-image-span-font: #444;--color-result-image-span-font-selected: #fff;--color-result-image-background: #fff;--color-settings-tr-hover: #ebebeb;--color-settings-engine-description-font: #545454;--color-settings-table-group-background: #0001;--color-result-detail-font: #fff;--color-result-detail-label-font: lightgray;--color-result-detail-background: #242424;--color-result-detail-hr: #555;--color-result-detail-link: #8af;--color-result-detail-loader-border: rgba(255, 255, 255, .2);--color-result-detail-loader-borderleft: rgba(0, 0, 0, 0);--color-toolkit-badge-font: #fff;--color-toolkit-badge-background: #545454;--color-toolkit-kbd-font: #fff;--color-toolkit-kbd-background: #000;--color-toolkit-dialog-border: #ddd;--color-toolkit-dialog-background: #fff;--color-toolkit-tabs-label-border: #fff;--color-toolkit-tabs-section-border: #ddd;--color-toolkit-select-background: #e1e1e1;--color-toolkit-select-border: #ddd;--color-toolkit-select-background-hover: #bbb;--color-toolkit-input-text-font: #222;--color-toolkit-checkbox-onoff-off-background: #ddd;--color-toolkit-checkbox-onoff-on-background: #ddd;--color-toolkit-checkbox-onoff-on-mark-background: #3050ff;--color-toolkit-checkbox-onoff-on-mark-color: #fff;--color-toolkit-checkbox-onoff-off-mark-background: #aaa;--color-toolkit-checkbox-onoff-off-mark-color: #fff;--color-toolkit-checkbox-label-background: #ddd;--color-toolkit-checkbox-label-border: #ddd;--color-toolkit-checkbox-input-border: #3050ff;--color-toolkit-engine-tooltip-border: #ddd;--color-toolkit-engine-tooltip-background: #fff;--color-toolkit-loader-border: rgba(0, 0, 0, .2);--color-toolkit-loader-borderleft: rgba(255, 255, 255, 0);--color-doc-code: #003;--color-doc-code-background: #ddeaff;--color-bar-chart-primary: #5bc0de;--color-bar-chart-secondary: #deb15b;--color-image-resolution-background: rgba(0, 0, 0, .5);--color-image-resolution-font: #fff;--color-loading-indicator: rgba(255, 255, 255, .2);--color-loading-indicator-gap: #fff;--color-line-number: #64708d;--color-favicon-background-color: #ddd;--color-favicon-border-color: #ccc}@media (prefers-color-scheme: dark){:root.theme-auto{--color-base-font: #bbb;--color-base-font-rgb: 187, 187, 187;--color-base-background: #222428;--color-base-background-mobile: #222428;--color-url-font: #8af;--color-url-visited-font: #c09cd9;--color-header-background: #1e1e22;--color-header-border: #333;--color-footer-background: #1e1e22;--color-footer-border: #333;--color-sidebar-border: #555;--color-sidebar-font: #fff;--color-sidebar-background: #292c34;--color-backtotop-font: #bbb;--color-backtotop-border: #333;--color-backtotop-background: #2b2e36;--color-btn-background: #58f;--color-btn-font: #222;--color-show-btn-background: #555;--color-show-btn-font: #fff;--color-search-border: #555;--color-search-shadow: 0 2px 8px rgba(34, 38, 46, .25);--color-search-background: #2b2e36;--color-search-font: #fff;--color-search-background-hover: #58f;--color-error: #f55b5b;--color-error-background: #390a0a;--color-warning: #f1d561;--color-warning-background: #39300a;--color-success: #79f56e;--color-success-background: #0e390a;--color-categories-item-selected-font: #58f;--color-categories-item-border-selected: #58f;--color-autocomplete-font: #fff;--color-autocomplete-border: #555;--color-autocomplete-shadow: 0 2px 8px rgba(34, 38, 46, .25);--color-autocomplete-background: #2b2e36;--color-autocomplete-background-hover: #1e1e22;--color-answer-font: #bbb;--color-answer-background: #26292f;--color-result-keyvalue-col-table: #1e1e22;--color-result-keyvalue-odd: #1e1e22;--color-result-keyvalue-even: #26292f;--color-result-background: #26292f;--color-result-border: #333;--color-result-url-font: #fff;--color-result-vim-selected: #1f1f23cc;--color-result-vim-arrow: #8af;--color-result-description-highlight-font: #fff;--color-result-link-font: #8af;--color-result-link-font-highlight: #8af;--color-result-link-visited-font: #c09cd9;--color-result-publishdate-font: #888;--color-result-engines-font: #a4a4a4;--color-result-search-url-border: #555;--color-result-search-url-font: #fff;--color-result-detail-font: #fff;--color-result-detail-label-font: lightgray;--color-result-detail-background: #1a1a1c;--color-result-detail-hr: #555;--color-result-detail-link: #8af;--color-result-detail-loader-border: rgba(255, 255, 255, .2);--color-result-detail-loader-borderleft: rgba(0, 0, 0, 0);--color-result-image-span-font: #bbb;--color-result-image-span-font-selected: #222;--color-result-image-background: #222;--color-settings-tr-hover: #2c2c32;--color-settings-engine-description-font: #909090;--color-settings-table-group-background: #1b1b21;--color-toolkit-badge-font: #fff;--color-toolkit-badge-background: #555;--color-toolkit-kbd-font: #000;--color-toolkit-kbd-background: #fff;--color-toolkit-dialog-border: #555;--color-toolkit-dialog-background: #1e1e22;--color-toolkit-tabs-label-border: #222;--color-toolkit-tabs-section-border: #555;--color-toolkit-select-background: #313338;--color-toolkit-select-border: #555;--color-toolkit-select-background-hover: #373b49;--color-toolkit-input-text-font: #fff;--color-toolkit-checkbox-onoff-off-background: #313338;--color-toolkit-checkbox-onoff-on-background: #313338;--color-toolkit-checkbox-onoff-on-mark-background: #58f;--color-toolkit-checkbox-onoff-on-mark-color: #222;--color-toolkit-checkbox-onoff-off-mark-background: #ddd;--color-toolkit-checkbox-onoff-off-mark-color: #222;--color-toolkit-checkbox-label-background: #222;--color-toolkit-checkbox-label-border: #333;--color-toolkit-checkbox-input-border: #58f;--color-toolkit-engine-tooltip-border: #333;--color-toolkit-engine-tooltip-background: #222;--color-toolkit-loader-border: rgba(255, 255, 255, .2);--color-toolkit-loader-borderleft: rgba(0, 0, 0, 0);--color-doc-code: #ddd;--color-doc-code-background: #4d5a6f;--color-favicon-background-color: #ddd;--color-favicon-border-color: #ccc}}:root.theme-dark{--color-base-font: #bbb;--color-base-font-rgb: 187, 187, 187;--color-base-background: #222428;--color-base-background-mobile: #222428;--color-url-font: #8af;--color-url-visited-font: #c09cd9;--color-header-background: #1e1e22;--color-header-border: #333;--color-footer-background: #1e1e22;--color-footer-border: #333;--color-sidebar-border: #555;--color-sidebar-font: #fff;--color-sidebar-background: #292c34;--color-backtotop-font: #bbb;--color-backtotop-border: #333;--color-backtotop-background: #2b2e36;--color-btn-background: #58f;--color-btn-font: #222;--color-show-btn-background: #555;--color-show-btn-font: #fff;--color-search-border: #555;--color-search-shadow: 0 2px 8px rgba(34, 38, 46, .25);--color-search-background: #2b2e36;--color-search-font: #fff;--color-search-background-hover: #58f;--color-error: #f55b5b;--color-error-background: #390a0a;--color-warning: #f1d561;--color-warning-background: #39300a;--color-success: #79f56e;--color-success-background: #0e390a;--color-categories-item-selected-font: #58f;--color-categories-item-border-selected: #58f;--color-autocomplete-font: #fff;--color-autocomplete-border: #555;--color-autocomplete-shadow: 0 2px 8px rgba(34, 38, 46, .25);--color-autocomplete-background: #2b2e36;--color-autocomplete-background-hover: #1e1e22;--color-answer-font: #bbb;--color-answer-background: #26292f;--color-result-keyvalue-col-table: #1e1e22;--color-result-keyvalue-odd: #1e1e22;--color-result-keyvalue-even: #26292f;--color-result-background: #26292f;--color-result-border: #333;--color-result-url-font: #fff;--color-result-vim-selected: #1f1f23cc;--color-result-vim-arrow: #8af;--color-result-description-highlight-font: #fff;--color-result-link-font: #8af;--color-result-link-font-highlight: #8af;--color-result-link-visited-font: #c09cd9;--color-result-publishdate-font: #888;--color-result-engines-font: #a4a4a4;--color-result-search-url-border: #555;--color-result-search-url-font: #fff;--color-result-detail-font: #fff;--color-result-detail-label-font: lightgray;--color-result-detail-background: #1a1a1c;--color-result-detail-hr: #555;--color-result-detail-link: #8af;--color-result-detail-loader-border: rgba(255, 255, 255, .2);--color-result-detail-loader-borderleft: rgba(0, 0, 0, 0);--color-result-image-span-font: #bbb;--color-result-image-span-font-selected: #222;--color-result-image-background: #222;--color-settings-tr-hover: #2c2c32;--color-settings-engine-description-font: #909090;--color-settings-table-group-background: #1b1b21;--color-toolkit-badge-font: #fff;--color-toolkit-badge-background: #555;--color-toolkit-kbd-font: #000;--color-toolkit-kbd-background: #fff;--color-toolkit-dialog-border: #555;--color-toolkit-dialog-background: #1e1e22;--color-toolkit-tabs-label-border: #222;--color-toolkit-tabs-section-border: #555;--color-toolkit-select-background: #313338;--color-toolkit-select-border: #555;--color-toolkit-select-background-hover: #373b49;--color-toolkit-input-text-font: #fff;--color-toolkit-checkbox-onoff-off-background: #313338;--color-toolkit-checkbox-onoff-on-background: #313338;--color-toolkit-checkbox-onoff-on-mark-background: #58f;--color-toolkit-checkbox-onoff-on-mark-color: #222;--color-toolkit-checkbox-onoff-off-mark-background: #ddd;--color-toolkit-checkbox-onoff-off-mark-color: #222;--color-toolkit-checkbox-label-background: #222;--color-toolkit-checkbox-label-border: #333;--color-toolkit-checkbox-input-border: #58f;--color-toolkit-engine-tooltip-border: #333;--color-toolkit-engine-tooltip-background: #222;--color-toolkit-loader-border: rgba(255, 255, 255, .2);--color-toolkit-loader-borderleft: rgba(0, 0, 0, 0);--color-doc-code: #ddd;--color-doc-code-background: #4d5a6f;--color-favicon-background-color: #ddd;--color-favicon-border-color: #ccc}:root.theme-black{--color-base-font: #bbb;--color-base-font-rgb: 187, 187, 187;--color-base-background: #222428;--color-base-background-mobile: #222428;--color-url-font: #8af;--color-url-visited-font: #c09cd9;--color-header-background: #1e1e22;--color-header-border: #333;--color-footer-background: #1e1e22;--color-footer-border: #333;--color-sidebar-border: #555;--color-sidebar-font: #fff;--color-sidebar-background: #292c34;--color-backtotop-font: #bbb;--color-backtotop-border: #333;--color-backtotop-background: #2b2e36;--color-btn-background: #58f;--color-btn-font: #222;--color-show-btn-background: #555;--color-show-btn-font: #fff;--color-search-border: #555;--color-search-shadow: 0 2px 8px rgba(34, 38, 46, .25);--color-search-background: #2b2e36;--color-search-font: #fff;--color-search-background-hover: #58f;--color-error: #f55b5b;--color-error-background: #390a0a;--color-warning: #f1d561;--color-warning-background: #39300a;--color-success: #79f56e;--color-success-background: #0e390a;--color-categories-item-selected-font: #58f;--color-categories-item-border-selected: #58f;--color-autocomplete-font: #fff;--color-autocomplete-border: #555;--color-autocomplete-shadow: 0 2px 8px rgba(34, 38, 46, .25);--color-autocomplete-background: #2b2e36;--color-autocomplete-background-hover: #1e1e22;--color-answer-font: #bbb;--color-answer-background: #26292f;--color-result-keyvalue-col-table: #1e1e22;--color-result-keyvalue-odd: #1e1e22;--color-result-keyvalue-even: #26292f;--color-result-background: #26292f;--color-result-border: #333;--color-result-url-font: #fff;--color-result-vim-selected: #1f1f23cc;--color-result-vim-arrow: #8af;--color-result-description-highlight-font: #fff;--color-result-link-font: #8af;--color-result-link-font-highlight: #8af;--color-result-link-visited-font: #c09cd9;--color-result-publishdate-font: #888;--color-result-engines-font: #a4a4a4;--color-result-search-url-border: #555;--color-result-search-url-font: #fff;--color-result-detail-font: #fff;--color-result-detail-label-font: lightgray;--color-result-detail-background: #1a1a1c;--color-result-detail-hr: #555;--color-result-detail-link: #8af;--color-result-detail-loader-border: rgba(255, 255, 255, .2);--color-result-detail-loader-borderleft: rgba(0, 0, 0, 0);--color-result-image-span-font: #bbb;--color-result-image-span-font-selected: #222;--color-result-image-background: #222;--color-settings-tr-hover: #2c2c32;--color-settings-engine-description-font: #909090;--color-settings-table-group-background: #1b1b21;--color-toolkit-badge-font: #fff;--color-toolkit-badge-background: #555;--color-toolkit-kbd-font: #000;--color-toolkit-kbd-background: #fff;--color-toolkit-dialog-border: #555;--color-toolkit-dialog-background: #1e1e22;--color-toolkit-tabs-label-border: #222;--color-toolkit-tabs-section-border: #555;--color-toolkit-select-background: #313338;--color-toolkit-select-border: #555;--color-toolkit-select-background-hover: #373b49;--color-toolkit-input-text-font: #fff;--color-toolkit-checkbox-onoff-off-background: #313338;--color-toolkit-checkbox-onoff-on-background: #313338;--color-toolkit-checkbox-onoff-on-mark-background: #58f;--color-toolkit-checkbox-onoff-on-mark-color: #222;--color-toolkit-checkbox-onoff-off-mark-background: #ddd;--color-toolkit-checkbox-onoff-off-mark-color: #222;--color-toolkit-checkbox-label-background: #222;--color-toolkit-checkbox-label-border: #333;--color-toolkit-checkbox-input-border: #58f;--color-toolkit-engine-tooltip-border: #333;--color-toolkit-engine-tooltip-background: #222;--color-toolkit-loader-border: rgba(255, 255, 255, .2);--color-toolkit-loader-borderleft: rgba(0, 0, 0, 0);--color-doc-code: #ddd;--color-doc-code-background: #4d5a6f;--color-favicon-background-color: #ddd;--color-favicon-border-color: #ccc;--color-base-background: #000;--color-base-background-mobile: #000;--color-header-background: #000;--color-footer-background: #000;--color-sidebar-background: #000}.code-highlight pre{line-height:100%}.code-highlight td.linenos .normal,.code-highlight span.linenos{color:inherit;background-color:transparent;padding-left:5px;padding-right:5px}.code-highlight td.linenos .special,.code-highlight span.linenos.special{color:#000;background-color:#ffffc0;padding-left:5px;padding-right:5px}.code-highlight .hll{background-color:#ffc}.code-highlight .c{color:#3d7b7b;font-style:italic}.code-highlight .err{border:1px solid #F00}.code-highlight .k{color:green;font-weight:700}.code-highlight .o{color:#666}.code-highlight .ch,.code-highlight .cm{color:#3d7b7b;font-style:italic}.code-highlight .cp{color:#9c6500}.code-highlight .cpf,.code-highlight .c1,.code-highlight .cs{color:#3d7b7b;font-style:italic}.code-highlight .gd{color:#a00000}.code-highlight .ge{font-style:italic}.code-highlight .ges{font-weight:700;font-style:italic}.code-highlight .gr{color:#e40000}.code-highlight .gh{color:navy;font-weight:700}.code-highlight .gi{color:#008400}.code-highlight .go{color:#717171}.code-highlight .gp{color:navy;font-weight:700}.code-highlight .gs{font-weight:700}.code-highlight .gu{color:purple;font-weight:700}.code-highlight .gt{color:#04d}.code-highlight .kc,.code-highlight .kd,.code-highlight .kn{color:green;font-weight:700}.code-highlight .kp{color:green}.code-highlight .kr{color:green;font-weight:700}.code-highlight .kt{color:#b00040}.code-highlight .m{color:#666}.code-highlight .s{color:#ba2121}.code-highlight .na{color:#687822}.code-highlight .nb{color:green}.code-highlight .nc{color:#00f;font-weight:700}.code-highlight .no{color:#800}.code-highlight .nd{color:#a2f}.code-highlight .ni{color:#717171;font-weight:700}.code-highlight .ne{color:#cb3f38;font-weight:700}.code-highlight .nf{color:#00f}.code-highlight .nl{color:#767600}.code-highlight .nn{color:#00f;font-weight:700}.code-highlight .nt{color:green;font-weight:700}.code-highlight .nv{color:#19177c}.code-highlight .ow{color:#a2f;font-weight:700}.code-highlight .w{color:#bbb}.code-highlight .mb,.code-highlight .mf,.code-highlight .mh,.code-highlight .mi,.code-highlight .mo{color:#666}.code-highlight .sa,.code-highlight .sb,.code-highlight .sc,.code-highlight .dl{color:#ba2121}.code-highlight .sd{color:#ba2121;font-style:italic}.code-highlight .s2{color:#ba2121}.code-highlight .se{color:#aa5d1f;font-weight:700}.code-highlight .sh{color:#ba2121}.code-highlight .si{color:#a45a77;font-weight:700}.code-highlight .sx{color:green}.code-highlight .sr{color:#a45a77}.code-highlight .s1{color:#ba2121}.code-highlight .ss{color:#19177c}.code-highlight .bp{color:green}.code-highlight .fm{color:#00f}.code-highlight .vc,.code-highlight .vg,.code-highlight .vi,.code-highlight .vm{color:#19177c}.code-highlight .il{color:#666}.codelines{margin:.125rem 0 0;padding:1rem 0 0}.code-highlight pre{overflow:auto;margin:0;padding:0 0 .75rem}.code-highlight .linenos{-webkit-user-select:none;user-select:none;cursor:default;margin-right:8px;text-align:right}.code-highlight .linenos::selection{background:transparent}.code-highlight .linenos::-moz-selection{background:transparent}.code-highlight span.linenos{color:var(--color-line-number)}@media (prefers-color-scheme: dark){:root.theme-auto .code-highlight pre{line-height:100%}:root.theme-auto .code-highlight td.linenos .normal{color:#3c4354;background-color:transparent;padding-left:5px;padding-right:5px}:root.theme-auto .code-highlight span.linenos{color:#3c4354;background-color:transparent;padding-left:5px;padding-right:5px}:root.theme-auto .code-highlight td.linenos .special{color:#3c4354;background-color:#ffffc0;padding-left:5px;padding-right:5px}:root.theme-auto .code-highlight span.linenos.special{color:#3c4354;background-color:#ffffc0;padding-left:5px;padding-right:5px}:root.theme-auto .code-highlight .hll{background-color:#6e7681}:root.theme-auto .code-highlight .c{color:#7e8aa1}:root.theme-auto .code-highlight .err{color:#f88f7f}:root.theme-auto .code-highlight .esc{color:#d4d2c8}:root.theme-auto .code-highlight .g{color:#d4d2c8}:root.theme-auto .code-highlight .k{color:#ffad66}:root.theme-auto .code-highlight .l{color:#d5ff80}:root.theme-auto .code-highlight .n{color:#d4d2c8}:root.theme-auto .code-highlight .o{color:#ffad66}:root.theme-auto .code-highlight .x{color:#d4d2c8}:root.theme-auto .code-highlight .p{color:#d4d2c8}:root.theme-auto .code-highlight .ch{color:#f88f7f;font-style:italic}:root.theme-auto .code-highlight .cm{color:#7e8aa1}:root.theme-auto .code-highlight .cp{color:#ffad66;font-weight:700}:root.theme-auto .code-highlight .cpf{color:#7e8aa1}:root.theme-auto .code-highlight .c1{color:#7e8aa1}:root.theme-auto .code-highlight .cs{color:#7e8aa1;font-style:italic}:root.theme-auto .code-highlight .gd{color:#f88f7f;background-color:#3d1e20}:root.theme-auto .code-highlight .ge{color:#d4d2c8;font-style:italic}:root.theme-auto .code-highlight .ges{color:#d4d2c8}:root.theme-auto .code-highlight .gr{color:#f88f7f}:root.theme-auto .code-highlight .gh{color:#d4d2c8}:root.theme-auto .code-highlight .gi{color:#6ad4af;background-color:#19362c}:root.theme-auto .code-highlight .go{color:#7e8aa1}:root.theme-auto .code-highlight .gp{color:#d4d2c8}:root.theme-auto .code-highlight .gs{color:#d4d2c8;font-weight:700}:root.theme-auto .code-highlight .gu{color:#d4d2c8}:root.theme-auto .code-highlight .gt{color:#f88f7f}:root.theme-auto .code-highlight .kc{color:#ffad66}:root.theme-auto .code-highlight .kd{color:#ffad66}:root.theme-auto .code-highlight .kn{color:#ffad66}:root.theme-auto .code-highlight .kp{color:#ffad66}:root.theme-auto .code-highlight .kr{color:#ffad66}:root.theme-auto .code-highlight .kt{color:#73d0ff}:root.theme-auto .code-highlight .ld{color:#d5ff80}:root.theme-auto .code-highlight .m{color:#dfbfff}:root.theme-auto .code-highlight .s{color:#d5ff80}:root.theme-auto .code-highlight .na{color:#ffd173}:root.theme-auto .code-highlight .nb{color:#ffd173}:root.theme-auto .code-highlight .nc{color:#73d0ff}:root.theme-auto .code-highlight .no{color:#ffd173}:root.theme-auto .code-highlight .nd{color:#7e8aa1;font-weight:700;font-style:italic}:root.theme-auto .code-highlight .ni{color:#95e6cb}:root.theme-auto .code-highlight .ne{color:#73d0ff}:root.theme-auto .code-highlight .nf{color:#ffd173}:root.theme-auto .code-highlight .nl{color:#d4d2c8}:root.theme-auto .code-highlight .nn{color:#d4d2c8}:root.theme-auto .code-highlight .nx{color:#d4d2c8}:root.theme-auto .code-highlight .py{color:#ffd173}:root.theme-auto .code-highlight .nt{color:#5ccfe6}:root.theme-auto .code-highlight .nv{color:#d4d2c8}:root.theme-auto .code-highlight .ow{color:#ffad66}:root.theme-auto .code-highlight .pm{color:#d4d2c8}:root.theme-auto .code-highlight .w{color:#d4d2c8}:root.theme-auto .code-highlight .mb{color:#dfbfff}:root.theme-auto .code-highlight .mf{color:#dfbfff}:root.theme-auto .code-highlight .mh{color:#dfbfff}:root.theme-auto .code-highlight .mi{color:#dfbfff}:root.theme-auto .code-highlight .mo{color:#dfbfff}:root.theme-auto .code-highlight .sa{color:#f29e74}:root.theme-auto .code-highlight .sb{color:#d5ff80}:root.theme-auto .code-highlight .sc{color:#d5ff80}:root.theme-auto .code-highlight .dl{color:#d5ff80}:root.theme-auto .code-highlight .sd{color:#7e8aa1}:root.theme-auto .code-highlight .s2{color:#d5ff80}:root.theme-auto .code-highlight .se{color:#95e6cb}:root.theme-auto .code-highlight .sh{color:#d5ff80}:root.theme-auto .code-highlight .si{color:#95e6cb}:root.theme-auto .code-highlight .sx{color:#95e6cb}:root.theme-auto .code-highlight .sr{color:#95e6cb}:root.theme-auto .code-highlight .s1{color:#d5ff80}:root.theme-auto .code-highlight .ss{color:#dfbfff}:root.theme-auto .code-highlight .bp{color:#5ccfe6}:root.theme-auto .code-highlight .fm{color:#ffd173}:root.theme-auto .code-highlight .vc{color:#d4d2c8}:root.theme-auto .code-highlight .vg{color:#d4d2c8}:root.theme-auto .code-highlight .vi{color:#d4d2c8}:root.theme-auto .code-highlight .vm{color:#d4d2c8}:root.theme-auto .code-highlight .il{color:#dfbfff}:root.theme-auto .code-highlight pre{overflow:auto;margin:0;padding:0 0 .75rem}:root.theme-auto .code-highlight .linenos{-webkit-user-select:none;user-select:none;cursor:default;margin-right:8px;text-align:right}:root.theme-auto .code-highlight .linenos::selection{background:transparent}:root.theme-auto .code-highlight .linenos::-moz-selection{background:transparent}:root.theme-auto .code-highlight span.linenos{color:var(--color-line-number)}}:root.theme-dark .code-highlight pre{line-height:100%}:root.theme-dark .code-highlight td.linenos .normal{color:#3c4354;background-color:transparent;padding-left:5px;padding-right:5px}:root.theme-dark .code-highlight span.linenos{color:#3c4354;background-color:transparent;padding-left:5px;padding-right:5px}:root.theme-dark .code-highlight td.linenos .special{color:#3c4354;background-color:#ffffc0;padding-left:5px;padding-right:5px}:root.theme-dark .code-highlight span.linenos.special{color:#3c4354;background-color:#ffffc0;padding-left:5px;padding-right:5px}:root.theme-dark .code-highlight .hll{background-color:#6e7681}:root.theme-dark .code-highlight .c{color:#7e8aa1}:root.theme-dark .code-highlight .err{color:#f88f7f}:root.theme-dark .code-highlight .esc{color:#d4d2c8}:root.theme-dark .code-highlight .g{color:#d4d2c8}:root.theme-dark .code-highlight .k{color:#ffad66}:root.theme-dark .code-highlight .l{color:#d5ff80}:root.theme-dark .code-highlight .n{color:#d4d2c8}:root.theme-dark .code-highlight .o{color:#ffad66}:root.theme-dark .code-highlight .x{color:#d4d2c8}:root.theme-dark .code-highlight .p{color:#d4d2c8}:root.theme-dark .code-highlight .ch{color:#f88f7f;font-style:italic}:root.theme-dark .code-highlight .cm{color:#7e8aa1}:root.theme-dark .code-highlight .cp{color:#ffad66;font-weight:700}:root.theme-dark .code-highlight .cpf{color:#7e8aa1}:root.theme-dark .code-highlight .c1{color:#7e8aa1}:root.theme-dark .code-highlight .cs{color:#7e8aa1;font-style:italic}:root.theme-dark .code-highlight .gd{color:#f88f7f;background-color:#3d1e20}:root.theme-dark .code-highlight .ge{color:#d4d2c8;font-style:italic}:root.theme-dark .code-highlight .ges{color:#d4d2c8}:root.theme-dark .code-highlight .gr{color:#f88f7f}:root.theme-dark .code-highlight .gh{color:#d4d2c8}:root.theme-dark .code-highlight .gi{color:#6ad4af;background-color:#19362c}:root.theme-dark .code-highlight .go{color:#7e8aa1}:root.theme-dark .code-highlight .gp{color:#d4d2c8}:root.theme-dark .code-highlight .gs{color:#d4d2c8;font-weight:700}:root.theme-dark .code-highlight .gu{color:#d4d2c8}:root.theme-dark .code-highlight .gt{color:#f88f7f}:root.theme-dark .code-highlight .kc{color:#ffad66}:root.theme-dark .code-highlight .kd{color:#ffad66}:root.theme-dark .code-highlight .kn{color:#ffad66}:root.theme-dark .code-highlight .kp{color:#ffad66}:root.theme-dark .code-highlight .kr{color:#ffad66}:root.theme-dark .code-highlight .kt{color:#73d0ff}:root.theme-dark .code-highlight .ld{color:#d5ff80}:root.theme-dark .code-highlight .m{color:#dfbfff}:root.theme-dark .code-highlight .s{color:#d5ff80}:root.theme-dark .code-highlight .na{color:#ffd173}:root.theme-dark .code-highlight .nb{color:#ffd173}:root.theme-dark .code-highlight .nc{color:#73d0ff}:root.theme-dark .code-highlight .no{color:#ffd173}:root.theme-dark .code-highlight .nd{color:#7e8aa1;font-weight:700;font-style:italic}:root.theme-dark .code-highlight .ni{color:#95e6cb}:root.theme-dark .code-highlight .ne{color:#73d0ff}:root.theme-dark .code-highlight .nf{color:#ffd173}:root.theme-dark .code-highlight .nl{color:#d4d2c8}:root.theme-dark .code-highlight .nn{color:#d4d2c8}:root.theme-dark .code-highlight .nx{color:#d4d2c8}:root.theme-dark .code-highlight .py{color:#ffd173}:root.theme-dark .code-highlight .nt{color:#5ccfe6}:root.theme-dark .code-highlight .nv{color:#d4d2c8}:root.theme-dark .code-highlight .ow{color:#ffad66}:root.theme-dark .code-highlight .pm{color:#d4d2c8}:root.theme-dark .code-highlight .w{color:#d4d2c8}:root.theme-dark .code-highlight .mb{color:#dfbfff}:root.theme-dark .code-highlight .mf{color:#dfbfff}:root.theme-dark .code-highlight .mh{color:#dfbfff}:root.theme-dark .code-highlight .mi{color:#dfbfff}:root.theme-dark .code-highlight .mo{color:#dfbfff}:root.theme-dark .code-highlight .sa{color:#f29e74}:root.theme-dark .code-highlight .sb{color:#d5ff80}:root.theme-dark .code-highlight .sc{color:#d5ff80}:root.theme-dark .code-highlight .dl{color:#d5ff80}:root.theme-dark .code-highlight .sd{color:#7e8aa1}:root.theme-dark .code-highlight .s2{color:#d5ff80}:root.theme-dark .code-highlight .se{color:#95e6cb}:root.theme-dark .code-highlight .sh{color:#d5ff80}:root.theme-dark .code-highlight .si{color:#95e6cb}:root.theme-dark .code-highlight .sx{color:#95e6cb}:root.theme-dark .code-highlight .sr{color:#95e6cb}:root.theme-dark .code-highlight .s1{color:#d5ff80}:root.theme-dark .code-highlight .ss{color:#dfbfff}:root.theme-dark .code-highlight .bp{color:#5ccfe6}:root.theme-dark .code-highlight .fm{color:#ffd173}:root.theme-dark .code-highlight .vc{color:#d4d2c8}:root.theme-dark .code-highlight .vg{color:#d4d2c8}:root.theme-dark .code-highlight .vi{color:#d4d2c8}:root.theme-dark .code-highlight .vm{color:#d4d2c8}:root.theme-dark .code-highlight .il{color:#dfbfff}:root.theme-dark .code-highlight pre{overflow:auto;margin:0;padding:0 0 .75rem}:root.theme-dark .code-highlight .linenos{-webkit-user-select:none;user-select:none;cursor:default;margin-right:8px;text-align:right}:root.theme-dark .code-highlight .linenos::selection{background:transparent}:root.theme-dark .code-highlight .linenos::-moz-selection{background:transparent}:root.theme-dark .code-highlight span.linenos{color:var(--color-line-number)}html.no-js .hide_if_nojs,html.js .show_if_nojs{display:none}.center{text-align:center}.right{float:right}.left{float:left}.invisible{display:none!important}.list-unstyled{list-style-type:none}.list-unstyled li{margin-top:4px;margin-bottom:4px}.danger{background-color:var(--color-error-background)}.warning{background:var(--color-warning-background)}.success{background:var(--color-success-background)}.badge{display:inline-block;color:var(--color-toolkit-badge-font);background-color:var(--color-toolkit-badge-background);text-align:center;white-space:nowrap;vertical-align:baseline;min-width:10px;padding:1px 5px;border-radius:5px}kbd{padding:2px 4px;margin:1px;font-size:90%;color:var(--color-toolkit-kbd-font);background:var(--color-toolkit-kbd-background)}table{width:100%}table.striped tr{border-bottom:1px solid var(--color-settings-tr-hover)}th{padding:.4em}td{padding:0 4px}tr:hover{background:var(--color-settings-tr-hover)!important}div.selectable_url{display:block;border:1px solid var(--color-result-search-url-border);padding:4px;color:var(--color-result-search-url-font);margin:.1em;overflow:hidden;height:1.2em;line-height:1.2em;border-radius:5px}div.selectable_url pre{display:block;font-size:.8em;word-break:break-all;margin:.1em;-webkit-user-select:all;user-select:all}.dialog-error{position:relative;display:flex;padding:1rem;margin:0 0 1em;border:1px solid var(--color-toolkit-dialog-border);text-align:right;border-radius:10px;color:var(--color-error);background:var(--color-error-background);border-color:var(--color-error)}.dialog-error .close{float:left;position:relative;top:-3px;color:inherit;font-size:1.5em}.dialog-error ul,.dialog-error ol,.dialog-error p{margin:1px 0 0}.dialog-error table{width:auto}.dialog-error tr{vertical-align:text-top}.dialog-error tr:hover{background:transparent!important}.dialog-error td{padding:0 1em 0 0;padding-left:1rem;padding-bottom:0;padding-right:0}.dialog-error h4{margin-top:.3em;margin-bottom:.3em}.dialog-error-block{position:relative;display:flex;padding:1rem;margin:0 0 1em;border:1px solid var(--color-toolkit-dialog-border);text-align:right;border-radius:10px;display:block;color:var(--color-error);background:var(--color-error-background);border-color:var(--color-error)}.dialog-error-block .close{float:left;position:relative;top:-3px;color:inherit;font-size:1.5em}.dialog-error-block ul,.dialog-error-block ol,.dialog-error-block p{margin:1px 0 0}.dialog-error-block table{width:auto}.dialog-error-block tr{vertical-align:text-top}.dialog-error-block tr:hover{background:transparent!important}.dialog-error-block td{padding:0 1em 0 0;padding-left:1rem;padding-bottom:0;padding-right:0}.dialog-error-block h4{margin-top:.3em;margin-bottom:.3em}.dialog-warning{position:relative;display:flex;padding:1rem;margin:0 0 1em;border:1px solid var(--color-toolkit-dialog-border);text-align:right;border-radius:10px;color:var(--color-warning);background:var(--color-warning-background);border-color:var(--color-warning)}.dialog-warning .close{float:left;position:relative;top:-3px;color:inherit;font-size:1.5em}.dialog-warning ul,.dialog-warning ol,.dialog-warning p{margin:1px 0 0}.dialog-warning table{width:auto}.dialog-warning tr{vertical-align:text-top}.dialog-warning tr:hover{background:transparent!important}.dialog-warning td{padding:0 1em 0 0;padding-left:1rem;padding-bottom:0;padding-right:0}.dialog-warning h4{margin-top:.3em;margin-bottom:.3em}.dialog-modal{position:relative;display:flex;padding:1rem;border:1px solid var(--color-toolkit-dialog-border);text-align:right;border-radius:10px;display:block;background:var(--color-toolkit-dialog-background);position:fixed;top:50%;left:50%;margin:0 auto;transform:translate(-50%,-50%);z-index:5000}.dialog-modal .close{float:left;position:relative;top:-3px;color:inherit;font-size:1.5em}.dialog-modal ul,.dialog-modal ol,.dialog-modal p{margin:1px 0 0}.dialog-modal table{width:auto}.dialog-modal tr{vertical-align:text-top}.dialog-modal tr:hover{background:transparent!important}.dialog-modal td{padding:0 1em 0 0;padding-left:1rem;padding-bottom:0;padding-right:0}.dialog-modal h4{margin-top:.3em;margin-bottom:.3em}.dialog-modal h3{margin-top:0}.btn-collapse{cursor:pointer}.scrollx{overflow:auto hidden;display:block;padding:0;margin:0;border:none}.tabs .tabs>label{font-size:90%}ul.tabs{border-bottom:1px solid var(--color-toolkit-tabs-section-border);list-style:none;padding-left:0}ul.tabs li{display:flex}.tabs{display:flex;flex-wrap:wrap;width:100%;min-width:100%}.tabs>*{order:2}.tabs>input[type=radio]{display:none}.tabs>label,.tabs>li>a{order:1;padding:.7em;margin:0 .7em;letter-spacing:.5px;text-transform:uppercase;border:solid var(--color-toolkit-tabs-label-border);border-width:0 0 2px 0;color:unset;-webkit-touch-callout:none;-webkit-user-select:none;user-select:none;cursor:pointer}.tabs>label.active,.tabs>li>a.active{border-bottom:2px solid var(--color-categories-item-border-selected);background:var(--color-categories-item-selected);color:var(--color-categories-item-selected-font)}.tabs>label:hover,.tabs>li>a:hover{border-bottom:2px solid var(--color-categories-item-border-selected)}.tabs>section{min-width:100%;padding:.7rem 0;box-sizing:border-box;border-top:1px solid var(--color-toolkit-tabs-section-border);display:none}.tabs>label:last-of-type{border-bottom:2px solid var(--color-categories-item-border-selected);background:var(--color-categories-item-selected);color:var(--color-categories-item-selected-font);letter-spacing:-.1px}.tabs>section:last-of-type{display:block}html body .tabs>input:checked~section{display:none}html body .tabs>input:checked~label{position:inherited;background:inherit;border-bottom:2px solid transparent;font-weight:400;color:inherit}html body .tabs>input:checked~label:hover{border-bottom:2px solid var(--color-categories-item-border-selected)}html body .tabs>input:checked+label{border-bottom:2px solid var(--color-categories-item-border-selected);background:var(--color-categories-item-selected);color:var(--color-categories-item-selected-font)}html body .tabs>input:checked+label+section{display:block}select{height:2.4rem;margin-top:0;margin-left:1rem;margin-bottom:0;margin-right:0;padding:.2rem!important;color:var(--color-search-font);font-size:.9rem;z-index:100}select:hover,select:focus{cursor:pointer}@supports ((background-position-x: 100%) and ((appearance: none) or (-webkit-appearance: none) or (-moz-appearance: none))){select{appearance:none;-webkit-appearance:none;-moz-appearance:none;border-width:0 2rem 0 0;border-color:transparent;background:url(data:image/svg+xml;charset=UTF-8,%3C%3Fxml%20version%3D%221.0%22%20encoding%3D%22utf-8%22%3F%3E%0A%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%22512%22%20height%3D%22512%22%20viewBox%3D%220%200%20512%20512%22%3E%0A%3Cg%3E%3Cpolygon%20points%3D%22128%2C192%20256%2C320%20384%2C192%22%2F%3E%3C%2Fg%3E%0A%3C%2Fsvg%3E) no-repeat;background-position-x:calc(100% + 2rem);background-size:2rem;background-origin:content-box;background-color:var(--color-toolkit-select-background);outline:medium none;text-overflow:ellipsis;border-radius:5px}select:hover,select:focus{background-color:var(--color-toolkit-select-background-hover)}select option{background-color:var(--color-base-background)}@media (prefers-color-scheme: dark){html.theme-auto select,html.theme-dark select{background-image:url(data:image/svg+xml;charset=UTF-8,%3C%3Fxml%20version%3D%221.0%22%20encoding%3D%22utf-8%22%3F%3E%0A%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%22512%22%20height%3D%22512%22%20viewBox%3D%220%200%20512%20512%22%3E%0A%3Cg%3E%3Cpolygon%20fill%3D%22%23ddd%22%20points%3D%22128%2C192%20256%2C320%20384%2C192%22%2F%3E%3C%2Fg%3E%0A%3C%2Fsvg%3E)}}html.theme-dark select{background-image:url(data:image/svg+xml;charset=UTF-8,%3C%3Fxml%20version%3D%221.0%22%20encoding%3D%22utf-8%22%3F%3E%0A%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%22512%22%20height%3D%22512%22%20viewBox%3D%220%200%20512%20512%22%3E%0A%3Cg%3E%3Cpolygon%20fill%3D%22%23ddd%22%20points%3D%22128%2C192%20256%2C320%20384%2C192%22%2F%3E%3C%2Fg%3E%0A%3C%2Fsvg%3E)}}input.checkbox-onoff[type=checkbox]{-webkit-appearance:none;-moz-appearance:none;appearance:none;cursor:pointer;display:inline-block;width:2.5em;height:.7em;box-shadow:none!important;margin:0 16px;border-radius:10px;position:relative}input.checkbox-onoff[type=checkbox]:focus,input.checkbox-onoff[type=checkbox]:hover{outline:none}input.checkbox-onoff[type=checkbox]:focus:after{content:"";position:absolute;width:3.5em;height:1.65em;border:1px solid var(--color-btn-background);border-radius:12px;box-shadow:var(--color-btn-background) 0 0 3px;z-index:1200;top:-.55em;left:-.6em}input.checkbox-onoff[type=checkbox]:before{position:absolute;top:-.5em;display:flex;justify-content:center;align-items:center;font-size:.75em;width:1.875em;height:1.875em;border-radius:50%}input.checkbox-onoff[type=checkbox],input.checkbox-onoff.reversed-checkbox[type=checkbox]:checked{background:var(--color-toolkit-checkbox-onoff-off-background)}input.checkbox-onoff[type=checkbox]:before,input.checkbox-onoff.reversed-checkbox[type=checkbox]:checked:before{left:-.5em;content:"✕";color:var(--color-toolkit-checkbox-onoff-off-mark-color);background:var(--color-toolkit-checkbox-onoff-off-mark-background)}input.checkbox-onoff[type=checkbox]:checked,input.checkbox-onoff.reversed-checkbox[type=checkbox]{background:var(--color-toolkit-checkbox-onoff-on-background)}input.checkbox-onoff[type=checkbox]:checked:before,input.checkbox-onoff.reversed-checkbox[type=checkbox]:before{left:calc(100% - 1.5em);content:"✓";color:var(--color-toolkit-checkbox-onoff-on-mark-color);background:var(--color-toolkit-checkbox-onoff-on-mark-background)}@supports (transform: rotate(-45deg)){input[type=checkbox]:not(.checkbox-onoff){-webkit-appearance:none;-moz-appearance:none;appearance:none;width:20px;height:20px;cursor:pointer;position:relative;top:0;left:0;border:2px solid var(--color-toolkit-checkbox-input-border);border-radius:.3em}input[type=checkbox]:not(.checkbox-onoff):after{content:"";width:9px;height:5px;position:absolute;top:3px;left:2px;border:3px solid var(--color-toolkit-checkbox-label-border);border-top:none;border-right:none;background:transparent;opacity:0;transform:rotate(-45deg)}input[type=checkbox]:not(.checkbox-onoff):checked:after{border-color:var(--color-toolkit-checkbox-input-border);opacity:1}input[type=checkbox][disabled]:not(.checkbox-onoff){border:inherit;background-color:transparent!important;cursor:inherit}input.checkbox[type=checkbox]:not(:checked,[disabled],.checkbox-onoff):hover:after{opacity:.5}}@media screen and (max-width: 50em){.tabs>label{width:100%}}.loader,.loader:after{border-radius:50%;width:2em;height:2em}.loader{margin:1em auto;font-size:10px;position:relative;text-indent:-9999em;border-top:.5em solid var(--color-toolkit-loader-border);border-right:.5em solid var(--color-toolkit-loader-border);border-bottom:.5em solid var(--color-toolkit-loader-border);border-left:.5em solid var(--color-toolkit-loader-borderleft);-webkit-transform:translateZ(0);-ms-transform:translateZ(0);transform:translateZ(0);-webkit-animation:load8 1.2s infinite linear;animation:load8 1.2s infinite linear}@-webkit-keyframes load8{0%{-webkit-transform:rotate(0deg);transform:rotate(0)}to{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}@keyframes load8{0%{-webkit-transform:rotate(0deg);transform:rotate(0)}to{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}.engine-tooltip{display:none;position:absolute;padding:.5rem 1rem;margin:0 0 0 2rem;border:1px solid var(--color-toolkit-engine-tooltip-border);background:var(--color-toolkit-engine-tooltip-background);font-size:14px;font-weight:400;z-index:5000;text-align:left;border-radius:10px}th:hover .engine-tooltip,td:hover .engine-tooltip,.engine-tooltip:hover{display:inline-block}.stacked-bar-chart{margin:0;padding:0 .125rem 0 4rem;width:100%;width:-moz-available;width:-webkit-fill-available;width:fill;flex-flow:row nowrap;align-items:center;display:inline-flex}.stacked-bar-chart-value{width:3rem;display:inline-block;position:absolute;padding:0 .5rem;text-align:right}.stacked-bar-chart-base{display:flex;flex-shrink:0;flex-grow:0;flex-basis:unset}.stacked-bar-chart-median{display:flex;flex-shrink:0;flex-grow:0;flex-basis:unset;background:var(--color-base-font);border:1px solid rgba(var(--color-base-font-rgb),.9);padding:.3rem 0}.stacked-bar-chart-rate80{display:flex;flex-shrink:0;flex-grow:0;flex-basis:unset;background:transparent;border:1px solid rgba(var(--color-base-font-rgb),.3);padding:.3rem 0}.stacked-bar-chart-rate95{display:flex;flex-shrink:0;flex-grow:0;flex-basis:unset;background:transparent;border-bottom:1px dotted rgba(var(--color-base-font-rgb),.5);padding:0}.stacked-bar-chart-rate100{display:flex;flex-shrink:0;flex-grow:0;flex-basis:unset;background:transparent;border-left:1px solid rgba(var(--color-base-font-rgb),.9);padding:.4rem 0;width:1px}/*! Autocomplete.js v2.6.3 | license MIT | (c) 2017, Baptiste Donaux | http://autocomplete-js.com */.autocomplete{position:absolute;width:44rem;max-width:calc(100% - 1rem);max-height:0;overflow-y:hidden;text-align:right;border-radius:10px}.autocomplete:active,.autocomplete:focus,.autocomplete:hover{background-color:var(--color-autocomplete-background)}.autocomplete:empty{display:none}.autocomplete>ul{list-style-type:none;margin:0;padding:0}.autocomplete>ul>li{cursor:pointer;padding:.5rem 1rem}.autocomplete>ul>li.active,.autocomplete>ul>li:active,.autocomplete>ul>li:focus,.autocomplete>ul>li:hover{background-color:var(--color-autocomplete-background-hover)}.autocomplete>ul>li.active a:active,.autocomplete>ul>li:active a:active,.autocomplete>ul>li:focus a:active,.autocomplete>ul>li:hover a:active,.autocomplete>ul>li.active a:focus,.autocomplete>ul>li:active a:focus,.autocomplete>ul>li:focus a:focus,.autocomplete>ul>li:hover a:focus,.autocomplete>ul>li.active a:hover,.autocomplete>ul>li:active a:hover,.autocomplete>ul>li:focus a:hover,.autocomplete>ul>li:hover a:hover{text-decoration:none}.autocomplete>ul>li.locked{cursor:inherit}.autocomplete.open{display:block;background-color:var(--color-autocomplete-background);color:var(--color-autocomplete-font);max-height:32rem;overflow-y:auto;z-index:5000;margin-top:3.5rem;border-radius:.8rem}.autocomplete.open:empty{display:none}@media screen and (max-width: 50em){.autocomplete>ul>li{padding:1rem}}#main_results #results.image-detail-open.only_template_images{width:min(98%,59.25rem)!important}#main_results #results.only_template_images.image-detail-open #backToTop{right:56.75rem!important;left:inherit}article.result-images .detail{display:none}#results.image-detail-open article.result-images[data-vim-selected] .detail{display:flex;flex-direction:column;position:fixed;right:60rem;left:0;top:13rem;transition:top 64ms ease-in 0s;bottom:0;background:var(--color-result-detail-background);border:1px solid var(--color-result-detail-background);z-index:1000;padding:4rem 3rem 3rem;overflow-y:scroll}#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-images-source{display:block;flex:1;text-align:left;width:100%;border:none;text-decoration:none}#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-images-source img{padding:0;margin:0;border:none;object-fit:contain;width:inherit;height:inherit;max-width:100%;min-height:inherit;max-height:calc(100vh - 42rem);background:inherit}#results.image-detail-open article.result-images[data-vim-selected] .detail .result-images-labels{color:var(--color-result-detail-font);height:19rem}#results.image-detail-open article.result-images[data-vim-selected] .detail .result-images-labels hr{border-top:1px solid var(--color-result-detail-hr);border-bottom:none}#results.image-detail-open article.result-images[data-vim-selected] .detail .result-images-labels h4{height:2rem;overflow:hidden;text-overflow:ellipsis;font-size:.9rem;margin-bottom:0}#results.image-detail-open article.result-images[data-vim-selected] .detail .result-images-labels p{color:var(--color-result-detail-label-font);font-size:.9rem;white-space:nowrap;text-overflow:ellipsis;overflow:hidden;margin:.8rem 0}#results.image-detail-open article.result-images[data-vim-selected] .detail .result-images-labels p span{display:inline-block;width:12rem}#results.image-detail-open article.result-images[data-vim-selected] .detail .result-images-labels h4,#results.image-detail-open article.result-images[data-vim-selected] .detail .result-images-labels p,#results.image-detail-open article.result-images[data-vim-selected] .detail .result-images-labels a{text-align:right}#results.image-detail-open article.result-images[data-vim-selected] .detail .result-images-labels p.result-content{height:2rem;line-height:unset;overflow:hidden;text-overflow:ellipsis}#results.image-detail-open article.result-images[data-vim-selected] .detail .result-images-labels p.result-url{white-space:nowrap;overflow:hidden hidden;text-overflow:ellipsis}#results.image-detail-open article.result-images[data-vim-selected] .detail .result-images-labels p.result-content:hover,#results.image-detail-open article.result-images[data-vim-selected] .detail .result-images-labels p.result-url:hover{position:relative;overflow:inherit!important;background:var(--color-result-detail-background);text-overflow:inherit!important}#results.image-detail-open article.result-images[data-vim-selected] .detail .result-images-labels a,#results.image-detail-open article.result-images[data-vim-selected] .detail .result-images-labels a:visited,#results.image-detail-open article.result-images[data-vim-selected] .detail .result-images-labels a:hover,#results.image-detail-open article.result-images[data-vim-selected] .detail .result-images-labels a:active{color:var(--color-result-detail-link)}#results.image-detail-open article.result-images[data-vim-selected] .detail .result-images-labels a:hover{text-decoration:underline}#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-close{top:1rem;right:1rem;padding:.4rem}#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-previous{top:1rem;left:6rem;padding:.4rem .3rem .4rem .5rem}#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-next{top:1rem;left:2rem;padding:.4rem}#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-close,#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-next,#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-previous{border-radius:50%;display:block;width:1.5rem;height:1.5rem;position:absolute;filter:opacity(40%);z-index:1200}#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-close span,#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-next span,#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-previous span{display:block;width:1.5rem;height:1.5rem;text-align:center}#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-next span:before,#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-previous span:before{vertical-align:sub}#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-close,#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-close:visited,#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-close:hover,#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-close:active,#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-previous,#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-previous:visited,#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-previous:hover,#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-previous:active,#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-next,#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-next:visited,#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-next:hover,#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-next:active{color:var(--color-result-detail-font);background:var(--color-result-detail-background);border:1px solid var(--color-result-detail-font)}#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-close:focus,#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-close:hover,#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-previous:focus,#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-previous:hover,#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-next:focus,#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-next:hover{filter:opacity(80%)}#results.image-detail-open article.result-images[data-vim-selected] .detail .loader{position:absolute;top:1rem;left:50%;border-top:.5em solid var(--color-result-detail-loader-border);border-right:.5em solid var(--color-result-detail-loader-border);border-bottom:.5em solid var(--color-result-detail-loader-border);border-left:.5em solid var(--color-result-detail-loader-borderleft)}#results.image-detail-open.scrolling article.result-images[data-vim-selected] .detail{top:0}#results.image-detail-open.scrolling article.result-images[data-vim-selected] .detail a.result-images-source img{max-height:calc(100vh - 25rem)}@media screen and (max-width: 79.75em){#results.image-detail-open article.result-images[data-vim-selected] .detail{top:0;right:0}#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-images-source{display:flex;flex-direction:column;justify-content:center}#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-images-source img{width:100%;max-height:calc(100vh - 24rem)}#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-next{left:1rem}}@media screen and (max-width: 50em){#results.image-detail-open article.result-images[data-vim-selected] .detail{top:0;right:0;padding:1rem}#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-images-source img{width:100%;max-height:calc(100vh - 20rem);margin:0}#results.image-detail-open article.result-images[data-vim-selected] .detail .result-images-labels p span{width:inherit;margin-left:1rem}}.dialog-modal{animation-name:dialogmodal;animation-duration:.13s}@keyframes dialogmodal{0%{opacity:0}50%{opacity:.5;transform:translate(-50%,-50%) scale(1.05)}}input.checkbox-onoff[type=checkbox]:before{transition:left .25s}iframe[src^="https://w.soundcloud.com"]{height:120px}iframe[src^="https://www.deezer.com"]{height:94px}iframe[src^="https://www.mixcloud.com"]{height:250px}iframe[src^="https://bandcamp.com/EmbeddedPlayer"]{height:350px}iframe[src^="https://bandcamp.com/EmbeddedPlayer/track"]{height:120px}iframe[src^="https://genius.com/songs"]{height:65px}.info-page code{font-family:monospace;border-radius:5px;background-color:var(--color-doc-code-background);color:var(--color-doc-code);padding:.2rem;border:0 none}.stats_endpoint .github-issue-button{display:block;font-size:16px}.stats_endpoint .issue-hide{display:none}.stats_endpoint input[type=checked]{position:absolute}.stats_endpoint label{margin:1rem 1rem 1rem 0}.stats_endpoint .step_content{margin:1rem 1rem 1rem 2rem}.stats_endpoint .step1,.stats_endpoint .step2{visibility:hidden}.stats_endpoint .step1_delay{transition:visibility 0s linear 4s}.stats_endpoint #step1:checked~.step1,.stats_endpoint #step2:checked~.step2{visibility:visible}.engine-stats{border-spacing:0;border-collapse:collapse}.engine-stats tr td,.engine-stats tr th{border-bottom:1px solid var(--color-result-border);padding:.25rem}.engine-stats table.engine-tooltip{border-spacing:0;border-collapse:collapse}.engine-stats table.engine-tooltip td,.engine-stats table.engine-tooltip th{border:none}.engine-stats .engine-name{width:20rem}.engine-stats .engine-score{width:7rem;text-align:right}.engine-stats .engine-reliability{text-align:right}table.engine-error th.engine-error-type,table.engine-error td.engine-error-type,failed-test{width:10rem}.engine-errors{margin-top:3rem}.engine-errors table.engine-error{max-width:1280px;margin:1rem 0 3rem;border:1px solid var(--color-result-border);text-align:right}.engine-errors table.engine-error tr th,.engine-errors table.engine-error tr td{padding:.5rem}.engine-errors table.engine-error span.log_parameters{border-right:1px solid solid var(--color-result-border);padding:0 1rem 0 0;margin:0 0 0 .5rem}.bar-chart-value{width:3em;display:inline-block;text-align:right;padding-right:.5rem}.bar-chart-graph{width:calc(100% - 5rem);display:inline-block}.bar-chart-bar{border:3px solid var(--color-bar-chart-primary);margin:1px 0}.bar-chart-serie1{border:3px solid var(--color-bar-chart-primary);margin:1px 0;float:left}.bar-chart-serie2{border:3px solid var(--color-bar-chart-secondary);margin:1px 0;float:left}.bar0{width:0;border:0}.bar1{width:1%}.bar2{width:2%}.bar3{width:3%}.bar4{width:4%}.bar5{width:5%}.bar6{width:6%}.bar7{width:7%}.bar8{width:8%}.bar9{width:9%}.bar10{width:10%}.bar11{width:11%}.bar12{width:12%}.bar13{width:13%}.bar14{width:14%}.bar15{width:15%}.bar16{width:16%}.bar17{width:17%}.bar18{width:18%}.bar19{width:19%}.bar20{width:20%}.bar21{width:21%}.bar22{width:22%}.bar23{width:23%}.bar24{width:24%}.bar25{width:25%}.bar26{width:26%}.bar27{width:27%}.bar28{width:28%}.bar29{width:29%}.bar30{width:30%}.bar31{width:31%}.bar32{width:32%}.bar33{width:33%}.bar34{width:34%}.bar35{width:35%}.bar36{width:36%}.bar37{width:37%}.bar38{width:38%}.bar39{width:39%}.bar40{width:40%}.bar41{width:41%}.bar42{width:42%}.bar43{width:43%}.bar44{width:44%}.bar45{width:45%}.bar46{width:46%}.bar47{width:47%}.bar48{width:48%}.bar49{width:49%}.bar50{width:50%}.bar51{width:51%}.bar52{width:52%}.bar53{width:53%}.bar54{width:54%}.bar55{width:55%}.bar56{width:56%}.bar57{width:57%}.bar58{width:58%}.bar59{width:59%}.bar60{width:60%}.bar61{width:61%}.bar62{width:62%}.bar63{width:63%}.bar64{width:64%}.bar65{width:65%}.bar66{width:66%}.bar67{width:67%}.bar68{width:68%}.bar69{width:69%}.bar70{width:70%}.bar71{width:71%}.bar72{width:72%}.bar73{width:73%}.bar74{width:74%}.bar75{width:75%}.bar76{width:76%}.bar77{width:77%}.bar78{width:78%}.bar79{width:79%}.bar80{width:80%}.bar81{width:81%}.bar82{width:82%}.bar83{width:83%}.bar84{width:84%}.bar85{width:85%}.bar86{width:86%}.bar87{width:87%}.bar88{width:88%}.bar89{width:89%}.bar90{width:90%}.bar91{width:91%}.bar92{width:92%}.bar93{width:93%}.bar94{width:94%}.bar95{width:95%}.bar96{width:96%}.bar97{width:97%}.bar98{width:98%}.bar99{width:99%}.bar100{width:100%}.osm-map-box{height:300px;width:100%;margin:10px 0}#main_index{margin-top:26vh}.index{text-align:center}.index .title{background:url(../img/searxng.png) no-repeat;min-height:4rem;margin:4rem auto;background-position:center;background-size:contain}.index h1{font-size:4em;visibility:hidden}.index #search,.index #search_header{margin:0 auto;background:inherit;border:inherit;padding:0;display:block}.index .search_filters{display:block;margin:1em 0}.index .category label{padding:6px 10px;border-bottom:initial!important}@media screen and (max-width: 79.75em){div.title h1{font-size:1em}#main_index{margin-top:6em}}table{border-collapse:collapse}table th,table td{text-align:center;padding:1rem .5rem;text-align:right}table tr.pref-group th{font-weight:400;text-align:right;background:var(--color-settings-table-group-background)}#main_preferences form{width:100%}#main_preferences fieldset{margin:8px;border:none}#main_preferences legend{margin:0;padding:5px 0 0;display:block;float:right;width:300px}#main_preferences input[type=text]{width:13.25rem;color:var(--color-toolkit-input-text-font);border:none;background:none repeat scroll 0 0 var(--color-toolkit-select-background);padding:.2rem .4rem;height:2rem;border-radius:5px}#main_preferences input[type=text]:hover,#main_preferences input[type=text]:focus{background-color:var(--color-toolkit-select-background-hover)}#main_preferences div.pref-group{width:100%;font-weight:400;padding:1rem .5rem;text-align:right;background:var(--color-settings-table-group-background)}#main_preferences .value{margin:0;padding:0;float:right;width:15em}#main_preferences .value select,#main_preferences .value input[type=text]{font-size:inherit!important;margin-top:0;margin-left:1rem;margin-bottom:0;margin-right:0}#main_preferences .value select{width:14rem}#main_preferences .value select:focus,#main_preferences .value input:focus{outline:none;box-shadow:0 0 1px 1px var(--color-btn-background)}#main_preferences .description{margin:0;padding:5px 0 0;float:left;width:50%;color:var(--color-settings-engine-description-font);font-size:90%}#main_preferences .bang{text-align:right;border-radius:5px;background-color:var(--color-doc-code-background);color:var(--color-doc-code);padding:.2rem;border:0 none}#main_preferences .category{margin-left:.5rem}#main_preferences .category label{border:2px solid transparent;padding:.2rem .4rem;border-radius:5px}#main_preferences .category input[type=checkbox]:checked+label{border:2px solid var(--color-categories-item-border-selected)}#main_preferences table.table_engines th.name label{cursor:pointer}#main_preferences table.table_engines th.name .engine-tooltip{margin-top:1.8rem;right:calc((100% - 85em)/2 + 10em);max-width:40rem}#main_preferences table.table_engines th.name .engine-tooltip .engine-description{margin-top:.5rem}#main_preferences table.table_engines th.name .engine-tooltip .bang{margin:.3rem}#main_preferences table.table_engines .checkbox-col,#main_preferences table.table_engines .name,#main_preferences table.table_engines .shortcut{text-align:right}#main_preferences table.cookies{width:100%;direction:ltr}#main_preferences table.cookies th,#main_preferences table.cookies td{text-align:left;font-family:monospace;font-size:1rem;padding:.5em;vertical-align:top}#main_preferences table.cookies td:first-child{word-break:keep-all;width:14rem;padding-right:1rem}#main_preferences table.cookies td:last-child{word-break:break-all}#main_preferences table.cookies>tbody>tr:nth-child(2n)>th,#main_preferences table.cookies>tbody>tr:nth-child(2n)>td{background-color:var(--color-settings-tr-hover)}#main_preferences .preferences_back{background:none repeat scroll 0 0 var(--color-btn-background);color:var(--color-btn-font);border:0 none;border-radius:10px;cursor:pointer;display:inline-block;margin:2px 4px;padding:.7em}#main_preferences .preferences_back a{color:var(--color-settings-return-font)}#main_preferences .preferences_back a:first-letter{text-transform:uppercase}#main_preferences #toggle-all-engines-container{width:max-content;margin-left:auto}#main_preferences div.selectable_url pre{width:100%}#main_preferences #copy-hash-container{display:flex;align-items:center;gap:.5rem}#main_preferences #copy-hash-container div.selectable_url pre{width:auto;flex-grow:1}#main_preferences #pref-hash-input{width:100%}@media screen and (max-width: 79.75em){.preferences_back{clear:both}.engine-tooltip{right:10em!important}}#search{padding:0;margin:0}#search_header{padding-top:1.5em;padding-left:2em;padding-right:7rem;margin:0;background:var(--color-header-background);border-bottom:1px solid var(--color-header-border);display:grid;gap:1rem 1.2rem;grid-template-columns:3rem 1fr;grid-template-areas:"logo search" "spacer categories"}.category_checkbox,.category_button{display:inline-block;position:relative;margin-left:1rem;padding:0}.category_checkbox input{display:none}.category_checkbox label{cursor:pointer;padding:.2rem 0;display:inline-flex;text-transform:capitalize;font-size:.9em;border-bottom:2px solid transparent;-webkit-touch-callout:none;-webkit-user-select:none;user-select:none}.category_checkbox label svg{padding-right:.2rem}.category_checkbox label div.category_name{margin:auto 0}.category_checkbox input[type=checkbox]:checked+label{color:var(--color-categories-item-selected-font);border-bottom:2px solid var(--color-categories-item-border-selected)}button.category_button{background-color:inherit;color:var(--color-base-font);cursor:pointer;padding:.2rem 0;display:inline-flex;align-items:center;text-transform:capitalize;font-size:.9em;border:none;border-bottom:2px solid transparent}button.category_button svg{padding-right:.2rem}button.category_button.selected,button.category_button:active{color:var(--color-categories-item-selected-font);border-bottom:2px solid var(--color-categories-item-border-selected)}.no-js #categories_container:has(button.category_button:focus-within) button.category_button.selected{color:var(--color-base-font);border-bottom:none}.no-js #categories_container:has(button.category_button:focus-within) button.category_button:focus-within{color:var(--color-categories-item-selected-font);border-bottom:2px solid var(--color-categories-item-border-selected)}#search_logo{padding:.5rem 10px 0;grid-area:logo;display:flex;align-items:center;justify-content:center}#search_logo svg{flex:1;width:30px;height:30px;margin:.5rem 0 auto}.search_categories{grid-area:categories}.search_categories .help{display:none}.search_categories:hover .help{display:block;position:absolute;background:var(--color-base-background);padding:1rem .6rem .6rem 0;z-index:1000;width:100%;left:-.1rem}#search_view{padding:.5rem .5rem 0;grid-area:search}body.results_endpoint #search_view{padding:.5rem 2.8rem 0 0}.search_box{border-radius:.8rem;width:100%;max-width:44rem;display:inline-flex;flex-direction:row;white-space:nowrap;box-shadow:var(--color-search-shadow)}#clear_search{display:block;border-collapse:separate;box-sizing:border-box;width:1.8rem;margin:0;padding:.8rem .2rem;background:none repeat scroll 0 0 var(--color-search-background);border:none;outline:none;color:var(--color-search-font);font-size:1.1rem;z-index:1000}#clear_search:hover{color:var(--color-search-background-hover)}#clear_search.empty *,html.no-js #clear_search.hide_if_nojs{display:none}#q,#send_search{display:block;margin:0;padding:.8rem;background:none repeat scroll 0 0 var(--color-search-background);border:none;outline:none;color:var(--color-search-font);font-size:1.1rem;z-index:100}#q{width:100%;padding-right:1rem;padding-left:0!important;border-radius:0 .8rem .8rem 0}#q::-ms-clear,#q::-webkit-search-cancel-button{display:none}#send_search{border-radius:.8rem 0 0 .8rem}#send_search:hover{cursor:pointer;background-color:var(--color-search-background-hover);color:var(--color-search-background)}.no-js #clear_search,.no-js #send_search{width:auto!important;border-right:1px solid var(--color-search-border)}.search_filters{margin-top:.6rem;margin-left:0;margin-bottom:0;margin-right:10.6rem;display:flex;overflow-x:auto;overscroll-behavior-inline:contain}.search_filters select{background-color:inherit}.search_filters select:hover,.search_filters select:focus{color:var(--color-base-font)}@media screen and (max-width: 79.75em){#search_header{padding:1.5em .5rem 0;column-gap:.5rem}.search_filters{margin-top:.6rem;margin-left:0;margin-bottom:0;margin-right:3.5rem}#categories{font-size:90%;clear:both}}@media screen and (max-width: 79.75em) and (hover: none){#main_index #categories_container,#main_results #categories_container{width:max-content}#main_index #categories_container .category_checkbox,#main_results #categories_container .category_checkbox{display:inline-block;width:auto}#main_index #categories,#main_results #categories{width:100%;text-align:right;overflow:scroll hidden;-webkit-overflow-scrolling:touch}}@media screen and (max-width: 50em){#search_header{width:100%;margin:0;padding:.1rem 0 0;gap:0 0;grid-template-areas:"logo search" "categories categories"}.search_logo{padding:0}.search_box{width:100%}#q{width:100%;flex:1}.search_filters{margin:0 10px;padding:.5rem 0}.category{display:inline-block;width:auto;margin:0}.category svg{display:none}.category_checkbox label,.category_button{padding:1rem!important;margin:0!important}#search_view:focus-within{display:block;background-color:var(--color-search-background);position:absolute;top:0;height:100%;width:100%;z-index:2000}#search_view:focus-within .search_box{border-bottom:1px solid var(--color-search-border);width:100%;border-radius:0;box-shadow:none}#search_view:focus-within .search_box #send_search{margin-left:0!important}#search_view:focus-within .search_box *{border:none;border-radius:0;box-shadow:none}#main_results #q:placeholder-shown~#send_search{margin-left:2.6rem;transition:margin .1s}}@media screen and (max-width: 20rem){#search_header{grid-template-areas:"search search" "categories categories"}#search_logo{display:none}}#categories{-webkit-touch-callout:none;-webkit-user-select:none;user-select:none}#categories::-webkit-scrollbar{width:0;height:0}#categories_container{position:relative}.favicon img{height:1.5rem;width:1.5rem;border-radius:10%;background-color:var(--color-favicon-background-color);border:1px solid var(--color-favicon-border-color);display:flex}@media screen and (min-width: 50em){.center-alignment-yes #main_results{--center-page-width: 48rem}}@media screen and (width >= 62rem){.center-alignment-yes #main_results{--center-page-width: 60rem}}@media screen and (min-width: 79.75em){.center-alignment-yes #main_results{--center-page-width: 73rem}}@media screen and (min-width: 50em) and (max-width: 79.75em){.center-alignment-yes #main_results #results{grid-template-columns:60% calc(40% - 5rem);margin-left:0;margin-right:0}.center-alignment-yes #main_results #urls{margin-right:3rem}.center-alignment-yes #main_results #sidebar{margin-left:1rem}.center-alignment-yes #main_results #backToTop{right:calc(60% + 1rem)}}@media screen and (min-width: 79.75em){.center-alignment-yes #main_results{display:flex;flex-direction:column;align-items:center}.center-alignment-yes #main_results #search{width:100%;display:flex;flex-direction:column;align-items:center}.center-alignment-yes #main_results #search_header{grid-template-columns:calc(50% - 4.5rem - var(--center-page-width) / 2) 3rem var(--center-page-width);grid-template-areas:"na logo search" "na spacer categories";column-gap:1.2rem;width:100%;padding-left:0;padding-right:0}.center-alignment-yes #main_results .search_filters{margin-right:.5rem;width:var(--center-page-width)}.center-alignment-yes #main_results #results{margin-left:2rem;margin-right:10rem}.center-alignment-yes #main_results #results.only_template_images,.center-alignment-yes #main_results #results.image-detail-open{align-self:flex-start}.center-alignment-yes #main_results #results:not(.only_template_images,.image-detail-open){margin-right:1.5rem;grid-template-columns:calc(var(--center-page-width) - 5rem - 25rem) 25rem}.center-alignment-yes #main_results #results:not(.only_template_images,.image-detail-open) #backToTop{right:calc(50% - 25rem - 5rem + 1rem + var(--center-page-width) / 2)}.center-alignment-yes #main_results #results .result .content{max-width:inherit}.center-alignment-yes #main_results #urls{margin-right:0}.center-alignment-yes #main_results #sidebar{margin-left:0}}.sxng-icon-set{display:inline-block;vertical-align:bottom;line-height:1;text-decoration:inherit;transform:scaleX(-1)}.sxng-icon-set-small{width:1rem;height:1rem;display:inline-block;vertical-align:bottom;line-height:1;text-decoration:inherit;transform:scaleX(-1)}.sxng-icon-set-big{width:1.5rem;height:1.5rem;display:inline-block;vertical-align:bottom;line-height:1;text-decoration:inherit;transform:scaleX(-1)}html{font-family:sans-serif;font-size:.9em;-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%;-moz-text-size-adjust:100%;text-size-adjust:100%;color:var(--color-base-font);background-color:var(--color-base-background);padding:0;margin:0;scroll-behavior:smooth}body,main{padding:0;margin:0}body{display:flex;flex-direction:column;height:100vh;margin:0}@supports (height: 100dvh){body{height:100dvh}}main{width:100%;margin-bottom:2rem;flex:1}.page_with_header{margin:2em auto;width:85em}footer{clear:both;min-height:4rem;padding:1rem 0;width:100%;text-align:center;background-color:var(--color-footer-background);border-top:1px solid var(--color-footer-border);overflow:hidden}footer p{font-size:.9em}.page_with_header .logo{height:40px}input[type=submit],#results button[type=submit],.button{padding:.7rem;display:inline-block;background:var(--color-btn-background);color:var(--color-btn-font);border-radius:10px;border:0;cursor:pointer}a{text-decoration:none;color:var(--color-url-font)}a:visited,a:visited .highlight{color:var(--color-url-visited-font)}article[data-vim-selected]{background:var(--color-result-vim-selected);border-right:.2rem solid var(--color-result-vim-arrow);border-radius:10px 0 0 10px}article.result-images[data-vim-selected]{background:var(--color-result-vim-arrow);border:none;border-radius:10px}article.result-images[data-vim-selected] .image_thumbnail{filter:opacity(60%)}article.result-images[data-vim-selected] span.title,article.result-images[data-vim-selected] span.source{color:var(--color-result-image-span-font-selected)}article[data-vim-selected].category-videos,article[data-vim-selected].category-news,article[data-vim-selected].category-map,article[data-vim-selected].category-music,article[data-vim-selected].category-files,article[data-vim-selected].category-social{border:1px solid var(--color-result-vim-arrow);border-radius:10px}.result{margin:.125rem 0;padding:1rem;box-sizing:border-box;width:100%;border-right:.2rem solid transparent}.result h3{font-size:1.2rem;word-wrap:break-word;margin:.4rem 0;padding:0}.result h3 a{color:var(--color-result-link-font);font-weight:400;font-size:1.1em}.result h3 a:visited{color:var(--color-result-link-visited-font)}.result h3 a:focus,.result h3 a:hover{text-decoration:underline;border:none;outline:none}.result .cache_link,.result .proxyfied_link{font-size:smaller!important;margin-left:.5rem}.result .content,.result .stat{font-size:.9em;margin:0;padding:0;max-width:54em;word-wrap:break-word;line-height:1.24}.result .content .highlight,.result .stat .highlight{color:var(--color-result-description-highlight-font);background:inherit;font-weight:700}.result .altlink a{font-size:.9em;margin:0 10px 0 0;padding:5px 10px;border-radius:5px;background:var(--color-show-btn-background);color:var(--color-show-btn-font);cursor:pointer}.result .altlink a:hover{background:var(--color-btn-background);color:var(--color-btn-font)}.result .codelines .highlight{color:inherit;background:inherit;font-weight:400}.result .url_header{display:flex;gap:.5rem}.result .url_wrapper{display:flex;align-items:center;font-size:1rem;color:var(--color-result-url-font);flex-flow:row nowrap;overflow:hidden;margin:0;padding:0}.result .url_wrapper .url_o1{white-space:nowrap;flex-shrink:1;padding-bottom:1px}.result .url_wrapper .url_o1 .url_i1{unicode-bidi:plaintext}.result .url_wrapper .url_o1:after{content:" ";width:1ch;display:inline-block}.result .url_wrapper .url_o2{overflow:hidden;white-space:nowrap;flex:0 1 content;text-align:right;padding-bottom:1px}.result .url_wrapper .url_o2 .url_i2{float:right}.result .published_date,.result .result_length,.result .result_views,.result .result_author,.result .result_shipping,.result .result_source_country{font-size:.8em;color:var(--color-result-publishdate-font)}.result .result_price{font-size:1.2em;color:var(--color-result-description-highlight-font)}.result img.thumbnail{float:right;padding-top:.6rem;padding-left:1rem;width:7rem;height:unset}.result .break{clear:both}.result-paper .attributes,.result-packages .attributes{display:table;border-spacing:.125rem}.result-paper .attributes div,.result-packages .attributes div{display:table-row}.result-paper .attributes div span,.result-packages .attributes div span{font-size:.9rem;margin-top:.25rem;display:table-cell}.result-paper .attributes div span time,.result-packages .attributes div span time{font-size:.9rem}.result-paper .attributes div span:first-child,.result-packages .attributes div span:first-child{color:var(--color-base-font);min-width:10rem}.result-paper .attributes div span:nth-child(2),.result-packages .attributes div span:nth-child(2){color:var(--color-result-publishdate-font)}.result-paper .content,.result-packages .content{margin-top:.25rem}.result-paper .comments,.result-packages .comments{font-size:.9rem;margin:.25rem 0 0;padding:0;word-wrap:break-word;line-height:1.24;font-style:italic}.result-packages .attributes{margin-top:.3rem}.template_group_images{display:flex;flex-wrap:wrap}.template_group_images:after{flex-grow:10;content:""}.category-videos,.category-news,.category-map,.category-music,.category-files,.category-social{border:1px solid var(--color-result-border);margin:0 .5rem 1rem!important;border-radius:10px}.category-social .image{width:auto!important;min-width:48px;min-height:48px;padding:0 5px 25px 0!important}.audio-control audio{width:100%;padding:10px 0 0}.embedded-content iframe{width:100%;padding:10px 0 0}.result-videos img.thumbnail{float:right;padding-top:.6rem;padding-left:1rem;width:20rem;height:unset}.result-videos .content{overflow:hidden}.result-videos .embedded-video iframe{width:100%;aspect-ratio:16 / 9;padding:10px 0 0}@supports not (aspect-ratio: 1 / 1){.result-videos .embedded-video iframe{height:25.3125rem}}.engines{float:left;display:flex;flex-wrap:wrap;justify-content:flex-end;color:var(--color-result-engines-font)}.engines span{font-size:smaller;margin-top:0;margin-bottom:0;margin-left:.5rem;margin-right:0}.small_font{font-size:.8em}.highlight{color:var(--color-result-link-font-highlight);background:inherit}.empty_element{font-style:italic}.result-images{flex-grow:1;padding:.5rem .5rem 3rem;margin:.25rem;border:none!important;height:12rem;width:unset}.result-images>a{position:relative;outline:none}.result-images img{margin:0;padding:0;border:none;height:100%;width:auto;object-fit:cover;vertical-align:bottom;background:var(--color-result-image-background)}.result-images .image_resolution{position:absolute;right:0;bottom:0;background:var(--color-image-resolution-background);padding:.3rem .5rem;font-size:.9rem;color:var(--color-image-resolution-font);border-top-left-radius:.3rem}.result-images span.title,.result-images span.source{display:block;position:absolute;width:100%;font-size:.9rem;color:var(--color-result-image-span-font);padding:.5rem 0 0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.result-images span.source{padding:1.8rem 0 0;font-size:.7rem}.result-map img.image{float:left!important;height:100px!important;width:auto!important}.result-map table{font-size:.9em;width:auto;border-collapse:separate;border-spacing:0 .35rem}.result-map table th{font-weight:inherit;width:17rem;vertical-align:top;text-align:right}.result-map table td{vertical-align:top;text-align:right}.hidden{display:none!important}#results{margin-top:1rem;margin-left:2rem;margin-bottom:0;margin-right:10rem;display:grid;grid-template:"corrections sidebar" min-content "answers sidebar" min-content "urls sidebar" 1fr "pagination sidebar" min-content / 45rem 25rem;gap:0 5rem}#results #sidebar *:first-child{margin-top:0}#urls{padding:0;grid-area:urls}#apis .wrapper{display:flex}#suggestions .wrapper{display:flex;flex-flow:column;justify-content:flex-end}#suggestions .wrapper form{display:inline-block;flex:1 1 50%}#suggestions input,#infoboxes input{padding:0;margin:3px;font-size:.9em;display:inline-block;background:transparent;color:var(--color-result-search-url-font);cursor:pointer;width:100%;text-overflow:ellipsis;overflow:hidden;text-align:left}#suggestions input[type=submit],#infoboxes input[type=submit],#suggestions .infobox .url a,#infoboxes .infobox .url a{color:var(--color-result-link-font);text-decoration:none;font-size:.9rem}#suggestions input[type=submit]:hover,#infoboxes input[type=submit]:hover,#suggestions .infobox .url a:hover,#infoboxes .infobox .url a:hover{text-decoration:underline}#corrections{grid-area:corrections;display:flex;flex-flow:row wrap;margin:0 0 1em}#corrections h4,#corrections input[type=submit]{display:inline-block;padding:.5rem;margin:.5rem}#corrections input[type=submit]{font-size:.8rem;border-radius:5px}#infoboxes .title,#suggestions .title,#search_url .title,#engines_msg .title,#apis .title{margin:2em 0 .5em;color:var(--color-base-font)}summary.title{cursor:pointer;padding-top:1em}.sidebar-collapsible{border-top:1px solid var(--color-sidebar-border);padding-bottom:.5em}#sidebar-end-collapsible{border-bottom:1px solid var(--color-sidebar-border);width:100%}#answers{grid-area:answers;background:var(--color-answer-background);padding:1rem;margin:1rem 0;margin-top:0;color:var(--color-answer-font);border-radius:10px}#answers h4{display:none}#answers span{overflow-wrap:anywhere}#answers .answer{display:flex;flex-direction:column}#answers .answer-url{margin:5px 10px 10px auto}#infoboxes form{min-width:210px}#sidebar{grid-area:sidebar;word-wrap:break-word;color:var(--color-sidebar-font)}#sidebar .infobox{margin:10px 0;border:1px solid var(--color-sidebar-border);padding:1rem;font-size:.9em;border-radius:10px}#sidebar .infobox h2{margin:0 0 .5em}#sidebar .infobox img{max-width:100%;max-height:12em;display:block;margin:0 auto;padding:0}#sidebar .infobox dt{font-weight:700}#sidebar .infobox .attributes dl{margin:.5em 0}#sidebar .infobox .attributes dt{display:inline;margin:.5em 0 .5em .25em;padding:0}#sidebar .infobox .attributes dd{display:inline;margin:.5em 0;padding:0}#sidebar .infobox input{font-size:1em}#sidebar .infobox br,#sidebar .infobox .attributes,#sidebar .infobox .urls{clear:both}#apis input{font-size:.9em;margin:0 10px 0 0;padding:5px 10px;border-radius:5px;background:var(--color-show-btn-background);color:var(--color-show-btn-font);cursor:pointer}#apis input:hover{background:var(--color-btn-background);color:var(--color-btn-font)}#engines_msg .engine-name{width:10rem}#engines_msg .response-error{color:var(--color-error)}#engines_msg .bar-chart-value{width:auto}#search_url div.selectable_url pre{float:left;width:200em}#search_url button#copy_url{float:right;padding:.4rem;margin-left:.5rem;border-radius:.3rem;display:none}#links_on_top{position:absolute;left:1rem;text-align:left;top:2.7rem;padding:0;border:0;display:flex;align-items:center;font-size:1em;color:var(--color-search-font)}#links_on_top a{display:flex;align-items:center;margin-left:1em}#links_on_top a svg{font-size:1.2em;margin-left:.125em}#links_on_top a,#links_on_top a:link *,#links_on_top a:hover *,#links_on_top a:visited *,#links_on_top a:active *{color:var(--color-search-font)}#pagination{grid-area:pagination}#pagination br{clear:both}.numbered_pagination{display:flex;flex-direction:row;justify-content:center;align-items:center;overflow:hidden}.page_number{background:transparent!important;color:var(--color-result-link-font)!important;text-decoration:underline}.page_number_current{background:transparent;color:var(--color-result-link-visited-font);border:none}#backToTop{border:1px solid var(--color-backtotop-border);margin:0;padding:0;font-size:1em;background:var(--color-backtotop-background);position:fixed;bottom:8rem;right:56.3rem;transition:opacity .5s;opacity:0;pointer-events:none;border-radius:10px}#backToTop a{display:block;margin:0;padding:.7em}#backToTop a,#backToTop a:visited,#backToTop a:hover,#backToTop a:active{color:var(--color-backtotop-font)}#results.scrolling #backToTop{opacity:1;pointer-events:all}@media screen and (width <= calc(79.75em - .5px)){#links_on_top span{display:none}}@media screen and (width <= 52rem){body.results_endpoint #links_on_top .link_on_top_about,body.results_endpoint #links_on_top .link_on_top_donate{display:none}}@media screen and (min-width: 50em) and (max-width: 79.75em){.center-alignment-no #links_on_top span{display:none}.center-alignment-no .page_with_header{margin:2rem .5rem;width:auto}.center-alignment-no #infoboxes{position:inherit;max-width:inherit}.center-alignment-no #infoboxes .infobox{clear:both}.center-alignment-no #infoboxes .infobox img{float:right;max-width:10em;margin:.5em 0 .5em .5em}.center-alignment-no #sidebar{margin:0 .5rem .125rem;padding:0;float:none;border:none;width:auto}.center-alignment-no #sidebar input{border:0}.center-alignment-no .result .thumbnail{max-width:98%}.center-alignment-no .result .url span.url{display:block;white-space:nowrap;text-overflow:ellipsis;overflow:hidden;width:100%}.center-alignment-no .result .engines{float:left;display:flex;flex-wrap:wrap;justify-content:flex-end;padding:3px 0 0}.center-alignment-no .result-images{border-bottom:none!important}.center-alignment-no .image_result,.center-alignment-no .image_result img{max-width:98%}.center-alignment-no #backToTop{display:none}.center-alignment-no #pagination{margin:2rem 0 0!important}.center-alignment-no #main_results div#results{margin:0 auto;justify-content:center;display:grid;grid-template:"corrections" min-content "answers" min-content "sidebar" min-content "urls" 1fr "pagination" min-content / 45rem;gap:0}}#main_results div#results.only_template_images{margin:1rem .5rem 0;display:grid;grid-template:"corrections" min-content "answers" min-content "sidebar" min-content "urls" 1fr "pagination" min-content / 100%;gap:0}#main_results div#results.only_template_images #sidebar{display:none}#main_results div#results.only_template_images #urls{margin:0;display:flex;flex-wrap:wrap}#main_results div#results.only_template_images #urls:after{flex-grow:10;content:""}#main_results div#results.only_template_images #backToTop{right:auto;left:1rem}#main_results div#results.only_template_images #pagination{margin-left:4rem}@media screen and (max-width: 50em){#links_on_top span{display:none}.page_with_header{margin:2rem .5rem;width:auto}#infoboxes{position:inherit;max-width:inherit}#infoboxes .infobox{clear:both}#infoboxes .infobox img{float:right;max-width:10em;margin:.5em 0 .5em .5em}#sidebar{margin:0 .5rem .125rem;padding:0;float:none;border:none;width:auto}#sidebar input{border:0}.result .thumbnail{max-width:98%}.result .url span.url{display:block;white-space:nowrap;text-overflow:ellipsis;overflow:hidden;width:100%}.result .engines{float:left;display:flex;flex-wrap:wrap;justify-content:flex-end;padding:3px 0 0}.result-images{border-bottom:none!important}.image_result,.image_result img{max-width:98%}#backToTop{display:none}#pagination{margin:2rem 0 0!important}#main_results div#results{margin:0 auto;justify-content:center;display:grid;grid-template:"corrections" min-content "answers" min-content "sidebar" min-content "urls" 1fr "pagination" min-content / 45rem;gap:0}html{background-color:var(--color-base-background-mobile)}#main_results div#results{grid-template-columns:100%;margin:0 auto}#links_on_top{top:1.4rem;left:10px}#main_index #links_on_top{top:.5rem;left:.5rem}#results{margin:0;padding:0}#pagination{margin:2rem 1rem 0!important}article[data-vim-selected]{border:1px solid var(--color-result-vim-arrow);border-radius:10px}.result{background:var(--color-result-background);border:1px solid var(--color-result-background);margin:1rem 2%;width:96%;border-radius:10px}.result-images{margin:0;height:10rem;background:var(--color-base-background-mobile);width:unset}.infobox{border:none!important;background-color:var(--color-sidebar-background)}.numbered_pagination{display:none}.result-paper .attributes,.result-packages .attributes,.result-paper .attributes div,.result-packages .attributes div{display:block}.result-paper .attributes div span,.result-packages .attributes div span{display:inline}.result-paper .attributes div span:first-child,.result-packages .attributes div span:first-child{font-weight:700}.result-paper .attributes div span:nth-child(2),.result-packages .attributes div span:nth-child(2){margin-right:.5rem}}@media screen and (max-width: 35em){.result-videos img.thumbnail{float:none!important}.result-videos .content{overflow:inherit}}pre code{white-space:pre-wrap}#main_results .result-keyvalue caption{padding:.8rem .5rem;font-style:italic;caption-side:bottom;background-color:var(--color-result-keyvalue-table)}#main_results .result-keyvalue .col-key{width:25%}#main_results .result-keyvalue table{word-break:break-word;table-layout:fixed;width:100%;background-color:var(--color-result-keyvalue-table)}#main_results .result-keyvalue tr.odd{background-color:var(--color-result-keyvalue-odd)}#main_results .result-keyvalue tr.even{background-color:var(--color-result-keyvalue-even)}#main_results .result-keyvalue th,#main_results .result-keyvalue td{padding:.3rem .5rem}#q,#sidebar .infobox dt bdi{direction:rtl}#urls{direction:initial;text-align:right}#urls .result .url_header{direction:rtl}#urls .result .url_wrapper{justify-content:end}#main_results div#results.only_template_images #urls{direction:rtl}#results.image-detail-open article.result-images[data-vim-selected] .detail .result-images-labels p{direction:rtl}#results.image-detail-open article.result-images[data-vim-selected] .detail .result-images-labels p.result-url{direction:ltr}#results.image-detail-open article.result-images[data-vim-selected] .detail .result-images-labels p.result-url span{direction:rtl;float:right}@supports ((background-position-x: 100%) and ((appearance: none) or (-webkit-appearance: none) or (-moz-appearance: none))){select{border-width:0 0 0 2rem;background-position-x:-2rem}}#vim-hotkeys-help table{direction:ltr;text-align:left}#main_preferences h1,#main_stats h1{background-position-x:100%}.bar-chart-serie1,.bar-chart-serie2{float:right}.engine-stats .engine-name,.engine-stats .engine-score,.engine-stats .result-count,.engine-stats .response-time,.engine-stats .engine-reliability{text-align:right} diff --git a/searx/static/themes/simple/css/searxng.min.css b/searx/static/themes/simple/css/searxng.min.css index 3721b0120..6ca440aad 100644 --- a/searx/static/themes/simple/css/searxng.min.css +++ b/searx/static/themes/simple/css/searxng.min.css @@ -1 +1 @@ -/*! normalize.css v8.0.1 | MIT License | github.com/necolas/normalize.css */html{line-height:1.15;-webkit-text-size-adjust:100%}body{margin:0}main{display:block}h1{font-size:2em;margin:.67em 0}hr{box-sizing:content-box;height:0;overflow:visible}pre{font-family:monospace,monospace;font-size:1em}a{background-color:transparent}abbr[title]{border-bottom:none;text-decoration:underline;text-decoration:underline dotted}b,strong{font-weight:bolder}code,kbd,samp{font-family:monospace,monospace;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}img{border-style:none}button,input,optgroup,select,textarea{font-family:inherit;font-size:100%;line-height:1.15;margin:0}button,input{overflow:visible}button,select{text-transform:none}button,[type=button],[type=reset],[type=submit]{-webkit-appearance:button}button::-moz-focus-inner,[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner{border-style:none;padding:0}button:-moz-focusring,[type=button]:-moz-focusring,[type=reset]:-moz-focusring,[type=submit]:-moz-focusring{outline:1px dotted ButtonText}fieldset{padding:.35em .75em .625em}legend{box-sizing:border-box;color:inherit;display:table;max-width:100%;padding:0;white-space:normal}progress{vertical-align:baseline}textarea{overflow:auto}[type=checkbox],[type=radio]{box-sizing:border-box;padding:0}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}details{display:block}summary{display:list-item}template{display:none}[hidden]{display:none}:root{--color-base-font: #444;--color-base-font-rgb: 68, 68, 68;--color-base-background: #fff;--color-base-background-mobile: #f2f5f8;--color-url-font: #334999;--color-url-visited-font: #9822c3;--color-header-background: #fdfbff;--color-header-border: #ddd;--color-footer-background: #fdfbff;--color-footer-border: #ddd;--color-sidebar-border: #ddd;--color-sidebar-font: #000;--color-sidebar-background: #fff;--color-backtotop-font: #444;--color-backtotop-border: #ddd;--color-backtotop-background: #fff;--color-btn-background: #3050ff;--color-btn-font: #fff;--color-show-btn-background: #bbb;--color-show-btn-font: #000;--color-search-border: #bbb;--color-search-shadow: 0 2px 8px rgba(34, 38, 46, .25);--color-search-background: #fff;--color-search-font: #222;--color-search-background-hover: #3050ff;--color-error: #db3434;--color-error-background: #fae1e1;--color-warning: #dbba34;--color-warning-background: #faf5e1;--color-success: #42db34;--color-success-background: #e3fae1;--color-categories-item-selected-font: #3050ff;--color-categories-item-border-selected: #3050ff;--color-autocomplete-font: #000;--color-autocomplete-border: #bbb;--color-autocomplete-shadow: 0 2px 8px rgba(34, 38, 46, .25);--color-autocomplete-background: #fff;--color-autocomplete-background-hover: #e3e3e3;--color-answer-font: #444;--color-answer-background: #fff;--color-result-keyvalue-col-table: #fdfbff;--color-result-keyvalue-odd: #fdfbff;--color-result-keyvalue-even: #fff;--color-result-background: #fff;--color-result-border: #ddd;--color-result-url-font: #000;--color-result-vim-selected: #f7f7f7;--color-result-vim-arrow: #000bbb;--color-result-description-highlight-font: #000;--color-result-link-font: #000bbb;--color-result-link-font-highlight: #000bbb;--color-result-link-visited-font: #9822c3;--color-result-publishdate-font: #777;--color-result-engines-font: #545454;--color-result-search-url-border: #ddd;--color-result-search-url-font: #000;--color-result-image-span-font: #444;--color-result-image-span-font-selected: #fff;--color-result-image-background: #fff;--color-settings-tr-hover: #ebebeb;--color-settings-engine-description-font: #545454;--color-settings-table-group-background: #0001;--color-result-detail-font: #fff;--color-result-detail-label-font: lightgray;--color-result-detail-background: #242424;--color-result-detail-hr: #555;--color-result-detail-link: #8af;--color-result-detail-loader-border: rgba(255, 255, 255, .2);--color-result-detail-loader-borderleft: rgba(0, 0, 0, 0);--color-toolkit-badge-font: #fff;--color-toolkit-badge-background: #545454;--color-toolkit-kbd-font: #fff;--color-toolkit-kbd-background: #000;--color-toolkit-dialog-border: #ddd;--color-toolkit-dialog-background: #fff;--color-toolkit-tabs-label-border: #fff;--color-toolkit-tabs-section-border: #ddd;--color-toolkit-select-background: #e1e1e1;--color-toolkit-select-border: #ddd;--color-toolkit-select-background-hover: #bbb;--color-toolkit-input-text-font: #222;--color-toolkit-checkbox-onoff-off-background: #ddd;--color-toolkit-checkbox-onoff-on-background: #ddd;--color-toolkit-checkbox-onoff-on-mark-background: #3050ff;--color-toolkit-checkbox-onoff-on-mark-color: #fff;--color-toolkit-checkbox-onoff-off-mark-background: #aaa;--color-toolkit-checkbox-onoff-off-mark-color: #fff;--color-toolkit-checkbox-label-background: #ddd;--color-toolkit-checkbox-label-border: #ddd;--color-toolkit-checkbox-input-border: #3050ff;--color-toolkit-engine-tooltip-border: #ddd;--color-toolkit-engine-tooltip-background: #fff;--color-toolkit-loader-border: rgba(0, 0, 0, .2);--color-toolkit-loader-borderleft: rgba(255, 255, 255, 0);--color-doc-code: #003;--color-doc-code-background: #ddeaff;--color-bar-chart-primary: #5bc0de;--color-bar-chart-secondary: #deb15b;--color-image-resolution-background: rgba(0, 0, 0, .5);--color-image-resolution-font: #fff;--color-loading-indicator: rgba(255, 255, 255, .2);--color-loading-indicator-gap: #fff;--color-line-number: #64708d;--color-favicon-background-color: #ddd;--color-favicon-border-color: #ccc}@media (prefers-color-scheme: dark){:root.theme-auto{--color-base-font: #bbb;--color-base-font-rgb: 187, 187, 187;--color-base-background: #222428;--color-base-background-mobile: #222428;--color-url-font: #8af;--color-url-visited-font: #c09cd9;--color-header-background: #1e1e22;--color-header-border: #333;--color-footer-background: #1e1e22;--color-footer-border: #333;--color-sidebar-border: #555;--color-sidebar-font: #fff;--color-sidebar-background: #292c34;--color-backtotop-font: #bbb;--color-backtotop-border: #333;--color-backtotop-background: #2b2e36;--color-btn-background: #58f;--color-btn-font: #222;--color-show-btn-background: #555;--color-show-btn-font: #fff;--color-search-border: #555;--color-search-shadow: 0 2px 8px rgba(34, 38, 46, .25);--color-search-background: #2b2e36;--color-search-font: #fff;--color-search-background-hover: #58f;--color-error: #f55b5b;--color-error-background: #390a0a;--color-warning: #f1d561;--color-warning-background: #39300a;--color-success: #79f56e;--color-success-background: #0e390a;--color-categories-item-selected-font: #58f;--color-categories-item-border-selected: #58f;--color-autocomplete-font: #fff;--color-autocomplete-border: #555;--color-autocomplete-shadow: 0 2px 8px rgba(34, 38, 46, .25);--color-autocomplete-background: #2b2e36;--color-autocomplete-background-hover: #1e1e22;--color-answer-font: #bbb;--color-answer-background: #26292f;--color-result-keyvalue-col-table: #1e1e22;--color-result-keyvalue-odd: #1e1e22;--color-result-keyvalue-even: #26292f;--color-result-background: #26292f;--color-result-border: #333;--color-result-url-font: #fff;--color-result-vim-selected: #1f1f23cc;--color-result-vim-arrow: #8af;--color-result-description-highlight-font: #fff;--color-result-link-font: #8af;--color-result-link-font-highlight: #8af;--color-result-link-visited-font: #c09cd9;--color-result-publishdate-font: #888;--color-result-engines-font: #a4a4a4;--color-result-search-url-border: #555;--color-result-search-url-font: #fff;--color-result-detail-font: #fff;--color-result-detail-label-font: lightgray;--color-result-detail-background: #1a1a1c;--color-result-detail-hr: #555;--color-result-detail-link: #8af;--color-result-detail-loader-border: rgba(255, 255, 255, .2);--color-result-detail-loader-borderleft: rgba(0, 0, 0, 0);--color-result-image-span-font: #bbb;--color-result-image-span-font-selected: #222;--color-result-image-background: #222;--color-settings-tr-hover: #2c2c32;--color-settings-engine-description-font: #909090;--color-settings-table-group-background: #1b1b21;--color-toolkit-badge-font: #fff;--color-toolkit-badge-background: #555;--color-toolkit-kbd-font: #000;--color-toolkit-kbd-background: #fff;--color-toolkit-dialog-border: #555;--color-toolkit-dialog-background: #1e1e22;--color-toolkit-tabs-label-border: #222;--color-toolkit-tabs-section-border: #555;--color-toolkit-select-background: #313338;--color-toolkit-select-border: #555;--color-toolkit-select-background-hover: #373b49;--color-toolkit-input-text-font: #fff;--color-toolkit-checkbox-onoff-off-background: #313338;--color-toolkit-checkbox-onoff-on-background: #313338;--color-toolkit-checkbox-onoff-on-mark-background: #58f;--color-toolkit-checkbox-onoff-on-mark-color: #222;--color-toolkit-checkbox-onoff-off-mark-background: #ddd;--color-toolkit-checkbox-onoff-off-mark-color: #222;--color-toolkit-checkbox-label-background: #222;--color-toolkit-checkbox-label-border: #333;--color-toolkit-checkbox-input-border: #58f;--color-toolkit-engine-tooltip-border: #333;--color-toolkit-engine-tooltip-background: #222;--color-toolkit-loader-border: rgba(255, 255, 255, .2);--color-toolkit-loader-borderleft: rgba(0, 0, 0, 0);--color-doc-code: #ddd;--color-doc-code-background: #4d5a6f;--color-favicon-background-color: #ddd;--color-favicon-border-color: #ccc}}:root.theme-dark{--color-base-font: #bbb;--color-base-font-rgb: 187, 187, 187;--color-base-background: #222428;--color-base-background-mobile: #222428;--color-url-font: #8af;--color-url-visited-font: #c09cd9;--color-header-background: #1e1e22;--color-header-border: #333;--color-footer-background: #1e1e22;--color-footer-border: #333;--color-sidebar-border: #555;--color-sidebar-font: #fff;--color-sidebar-background: #292c34;--color-backtotop-font: #bbb;--color-backtotop-border: #333;--color-backtotop-background: #2b2e36;--color-btn-background: #58f;--color-btn-font: #222;--color-show-btn-background: #555;--color-show-btn-font: #fff;--color-search-border: #555;--color-search-shadow: 0 2px 8px rgba(34, 38, 46, .25);--color-search-background: #2b2e36;--color-search-font: #fff;--color-search-background-hover: #58f;--color-error: #f55b5b;--color-error-background: #390a0a;--color-warning: #f1d561;--color-warning-background: #39300a;--color-success: #79f56e;--color-success-background: #0e390a;--color-categories-item-selected-font: #58f;--color-categories-item-border-selected: #58f;--color-autocomplete-font: #fff;--color-autocomplete-border: #555;--color-autocomplete-shadow: 0 2px 8px rgba(34, 38, 46, .25);--color-autocomplete-background: #2b2e36;--color-autocomplete-background-hover: #1e1e22;--color-answer-font: #bbb;--color-answer-background: #26292f;--color-result-keyvalue-col-table: #1e1e22;--color-result-keyvalue-odd: #1e1e22;--color-result-keyvalue-even: #26292f;--color-result-background: #26292f;--color-result-border: #333;--color-result-url-font: #fff;--color-result-vim-selected: #1f1f23cc;--color-result-vim-arrow: #8af;--color-result-description-highlight-font: #fff;--color-result-link-font: #8af;--color-result-link-font-highlight: #8af;--color-result-link-visited-font: #c09cd9;--color-result-publishdate-font: #888;--color-result-engines-font: #a4a4a4;--color-result-search-url-border: #555;--color-result-search-url-font: #fff;--color-result-detail-font: #fff;--color-result-detail-label-font: lightgray;--color-result-detail-background: #1a1a1c;--color-result-detail-hr: #555;--color-result-detail-link: #8af;--color-result-detail-loader-border: rgba(255, 255, 255, .2);--color-result-detail-loader-borderleft: rgba(0, 0, 0, 0);--color-result-image-span-font: #bbb;--color-result-image-span-font-selected: #222;--color-result-image-background: #222;--color-settings-tr-hover: #2c2c32;--color-settings-engine-description-font: #909090;--color-settings-table-group-background: #1b1b21;--color-toolkit-badge-font: #fff;--color-toolkit-badge-background: #555;--color-toolkit-kbd-font: #000;--color-toolkit-kbd-background: #fff;--color-toolkit-dialog-border: #555;--color-toolkit-dialog-background: #1e1e22;--color-toolkit-tabs-label-border: #222;--color-toolkit-tabs-section-border: #555;--color-toolkit-select-background: #313338;--color-toolkit-select-border: #555;--color-toolkit-select-background-hover: #373b49;--color-toolkit-input-text-font: #fff;--color-toolkit-checkbox-onoff-off-background: #313338;--color-toolkit-checkbox-onoff-on-background: #313338;--color-toolkit-checkbox-onoff-on-mark-background: #58f;--color-toolkit-checkbox-onoff-on-mark-color: #222;--color-toolkit-checkbox-onoff-off-mark-background: #ddd;--color-toolkit-checkbox-onoff-off-mark-color: #222;--color-toolkit-checkbox-label-background: #222;--color-toolkit-checkbox-label-border: #333;--color-toolkit-checkbox-input-border: #58f;--color-toolkit-engine-tooltip-border: #333;--color-toolkit-engine-tooltip-background: #222;--color-toolkit-loader-border: rgba(255, 255, 255, .2);--color-toolkit-loader-borderleft: rgba(0, 0, 0, 0);--color-doc-code: #ddd;--color-doc-code-background: #4d5a6f;--color-favicon-background-color: #ddd;--color-favicon-border-color: #ccc}:root.theme-black{--color-base-font: #bbb;--color-base-font-rgb: 187, 187, 187;--color-base-background: #222428;--color-base-background-mobile: #222428;--color-url-font: #8af;--color-url-visited-font: #c09cd9;--color-header-background: #1e1e22;--color-header-border: #333;--color-footer-background: #1e1e22;--color-footer-border: #333;--color-sidebar-border: #555;--color-sidebar-font: #fff;--color-sidebar-background: #292c34;--color-backtotop-font: #bbb;--color-backtotop-border: #333;--color-backtotop-background: #2b2e36;--color-btn-background: #58f;--color-btn-font: #222;--color-show-btn-background: #555;--color-show-btn-font: #fff;--color-search-border: #555;--color-search-shadow: 0 2px 8px rgba(34, 38, 46, .25);--color-search-background: #2b2e36;--color-search-font: #fff;--color-search-background-hover: #58f;--color-error: #f55b5b;--color-error-background: #390a0a;--color-warning: #f1d561;--color-warning-background: #39300a;--color-success: #79f56e;--color-success-background: #0e390a;--color-categories-item-selected-font: #58f;--color-categories-item-border-selected: #58f;--color-autocomplete-font: #fff;--color-autocomplete-border: #555;--color-autocomplete-shadow: 0 2px 8px rgba(34, 38, 46, .25);--color-autocomplete-background: #2b2e36;--color-autocomplete-background-hover: #1e1e22;--color-answer-font: #bbb;--color-answer-background: #26292f;--color-result-keyvalue-col-table: #1e1e22;--color-result-keyvalue-odd: #1e1e22;--color-result-keyvalue-even: #26292f;--color-result-background: #26292f;--color-result-border: #333;--color-result-url-font: #fff;--color-result-vim-selected: #1f1f23cc;--color-result-vim-arrow: #8af;--color-result-description-highlight-font: #fff;--color-result-link-font: #8af;--color-result-link-font-highlight: #8af;--color-result-link-visited-font: #c09cd9;--color-result-publishdate-font: #888;--color-result-engines-font: #a4a4a4;--color-result-search-url-border: #555;--color-result-search-url-font: #fff;--color-result-detail-font: #fff;--color-result-detail-label-font: lightgray;--color-result-detail-background: #1a1a1c;--color-result-detail-hr: #555;--color-result-detail-link: #8af;--color-result-detail-loader-border: rgba(255, 255, 255, .2);--color-result-detail-loader-borderleft: rgba(0, 0, 0, 0);--color-result-image-span-font: #bbb;--color-result-image-span-font-selected: #222;--color-result-image-background: #222;--color-settings-tr-hover: #2c2c32;--color-settings-engine-description-font: #909090;--color-settings-table-group-background: #1b1b21;--color-toolkit-badge-font: #fff;--color-toolkit-badge-background: #555;--color-toolkit-kbd-font: #000;--color-toolkit-kbd-background: #fff;--color-toolkit-dialog-border: #555;--color-toolkit-dialog-background: #1e1e22;--color-toolkit-tabs-label-border: #222;--color-toolkit-tabs-section-border: #555;--color-toolkit-select-background: #313338;--color-toolkit-select-border: #555;--color-toolkit-select-background-hover: #373b49;--color-toolkit-input-text-font: #fff;--color-toolkit-checkbox-onoff-off-background: #313338;--color-toolkit-checkbox-onoff-on-background: #313338;--color-toolkit-checkbox-onoff-on-mark-background: #58f;--color-toolkit-checkbox-onoff-on-mark-color: #222;--color-toolkit-checkbox-onoff-off-mark-background: #ddd;--color-toolkit-checkbox-onoff-off-mark-color: #222;--color-toolkit-checkbox-label-background: #222;--color-toolkit-checkbox-label-border: #333;--color-toolkit-checkbox-input-border: #58f;--color-toolkit-engine-tooltip-border: #333;--color-toolkit-engine-tooltip-background: #222;--color-toolkit-loader-border: rgba(255, 255, 255, .2);--color-toolkit-loader-borderleft: rgba(0, 0, 0, 0);--color-doc-code: #ddd;--color-doc-code-background: #4d5a6f;--color-favicon-background-color: #ddd;--color-favicon-border-color: #ccc;--color-base-background: #000;--color-base-background-mobile: #000;--color-header-background: #000;--color-footer-background: #000;--color-sidebar-background: #000}.code-highlight pre{line-height:100%}.code-highlight td.linenos .normal,.code-highlight span.linenos{color:inherit;background-color:transparent;padding-left:5px;padding-right:5px}.code-highlight td.linenos .special,.code-highlight span.linenos.special{color:#000;background-color:#ffffc0;padding-left:5px;padding-right:5px}.code-highlight .hll{background-color:#ffc}.code-highlight .c{color:#3d7b7b;font-style:italic}.code-highlight .err{border:1px solid #F00}.code-highlight .k{color:green;font-weight:700}.code-highlight .o{color:#666}.code-highlight .ch,.code-highlight .cm{color:#3d7b7b;font-style:italic}.code-highlight .cp{color:#9c6500}.code-highlight .cpf,.code-highlight .c1,.code-highlight .cs{color:#3d7b7b;font-style:italic}.code-highlight .gd{color:#a00000}.code-highlight .ge{font-style:italic}.code-highlight .ges{font-weight:700;font-style:italic}.code-highlight .gr{color:#e40000}.code-highlight .gh{color:navy;font-weight:700}.code-highlight .gi{color:#008400}.code-highlight .go{color:#717171}.code-highlight .gp{color:navy;font-weight:700}.code-highlight .gs{font-weight:700}.code-highlight .gu{color:purple;font-weight:700}.code-highlight .gt{color:#04d}.code-highlight .kc,.code-highlight .kd,.code-highlight .kn{color:green;font-weight:700}.code-highlight .kp{color:green}.code-highlight .kr{color:green;font-weight:700}.code-highlight .kt{color:#b00040}.code-highlight .m{color:#666}.code-highlight .s{color:#ba2121}.code-highlight .na{color:#687822}.code-highlight .nb{color:green}.code-highlight .nc{color:#00f;font-weight:700}.code-highlight .no{color:#800}.code-highlight .nd{color:#a2f}.code-highlight .ni{color:#717171;font-weight:700}.code-highlight .ne{color:#cb3f38;font-weight:700}.code-highlight .nf{color:#00f}.code-highlight .nl{color:#767600}.code-highlight .nn{color:#00f;font-weight:700}.code-highlight .nt{color:green;font-weight:700}.code-highlight .nv{color:#19177c}.code-highlight .ow{color:#a2f;font-weight:700}.code-highlight .w{color:#bbb}.code-highlight .mb,.code-highlight .mf,.code-highlight .mh,.code-highlight .mi,.code-highlight .mo{color:#666}.code-highlight .sa,.code-highlight .sb,.code-highlight .sc,.code-highlight .dl{color:#ba2121}.code-highlight .sd{color:#ba2121;font-style:italic}.code-highlight .s2{color:#ba2121}.code-highlight .se{color:#aa5d1f;font-weight:700}.code-highlight .sh{color:#ba2121}.code-highlight .si{color:#a45a77;font-weight:700}.code-highlight .sx{color:green}.code-highlight .sr{color:#a45a77}.code-highlight .s1{color:#ba2121}.code-highlight .ss{color:#19177c}.code-highlight .bp{color:green}.code-highlight .fm{color:#00f}.code-highlight .vc,.code-highlight .vg,.code-highlight .vi,.code-highlight .vm{color:#19177c}.code-highlight .il{color:#666}.codelines{margin:.125rem 0 0;padding:1rem 0 0}.code-highlight pre{overflow:auto;margin:0;padding:0 0 .75rem}.code-highlight .linenos{-webkit-user-select:none;user-select:none;cursor:default;margin-right:8px;text-align:right}.code-highlight .linenos::selection{background:transparent}.code-highlight .linenos::-moz-selection{background:transparent}.code-highlight span.linenos{color:var(--color-line-number)}@media (prefers-color-scheme: dark){:root.theme-auto .code-highlight pre{line-height:100%}:root.theme-auto .code-highlight td.linenos .normal{color:#3c4354;background-color:transparent;padding-left:5px;padding-right:5px}:root.theme-auto .code-highlight span.linenos{color:#3c4354;background-color:transparent;padding-left:5px;padding-right:5px}:root.theme-auto .code-highlight td.linenos .special{color:#3c4354;background-color:#ffffc0;padding-left:5px;padding-right:5px}:root.theme-auto .code-highlight span.linenos.special{color:#3c4354;background-color:#ffffc0;padding-left:5px;padding-right:5px}:root.theme-auto .code-highlight .hll{background-color:#6e7681}:root.theme-auto .code-highlight .c{color:#7e8aa1}:root.theme-auto .code-highlight .err{color:#f88f7f}:root.theme-auto .code-highlight .esc{color:#d4d2c8}:root.theme-auto .code-highlight .g{color:#d4d2c8}:root.theme-auto .code-highlight .k{color:#ffad66}:root.theme-auto .code-highlight .l{color:#d5ff80}:root.theme-auto .code-highlight .n{color:#d4d2c8}:root.theme-auto .code-highlight .o{color:#ffad66}:root.theme-auto .code-highlight .x{color:#d4d2c8}:root.theme-auto .code-highlight .p{color:#d4d2c8}:root.theme-auto .code-highlight .ch{color:#f88f7f;font-style:italic}:root.theme-auto .code-highlight .cm{color:#7e8aa1}:root.theme-auto .code-highlight .cp{color:#ffad66;font-weight:700}:root.theme-auto .code-highlight .cpf{color:#7e8aa1}:root.theme-auto .code-highlight .c1{color:#7e8aa1}:root.theme-auto .code-highlight .cs{color:#7e8aa1;font-style:italic}:root.theme-auto .code-highlight .gd{color:#f88f7f;background-color:#3d1e20}:root.theme-auto .code-highlight .ge{color:#d4d2c8;font-style:italic}:root.theme-auto .code-highlight .ges{color:#d4d2c8}:root.theme-auto .code-highlight .gr{color:#f88f7f}:root.theme-auto .code-highlight .gh{color:#d4d2c8}:root.theme-auto .code-highlight .gi{color:#6ad4af;background-color:#19362c}:root.theme-auto .code-highlight .go{color:#7e8aa1}:root.theme-auto .code-highlight .gp{color:#d4d2c8}:root.theme-auto .code-highlight .gs{color:#d4d2c8;font-weight:700}:root.theme-auto .code-highlight .gu{color:#d4d2c8}:root.theme-auto .code-highlight .gt{color:#f88f7f}:root.theme-auto .code-highlight .kc{color:#ffad66}:root.theme-auto .code-highlight .kd{color:#ffad66}:root.theme-auto .code-highlight .kn{color:#ffad66}:root.theme-auto .code-highlight .kp{color:#ffad66}:root.theme-auto .code-highlight .kr{color:#ffad66}:root.theme-auto .code-highlight .kt{color:#73d0ff}:root.theme-auto .code-highlight .ld{color:#d5ff80}:root.theme-auto .code-highlight .m{color:#dfbfff}:root.theme-auto .code-highlight .s{color:#d5ff80}:root.theme-auto .code-highlight .na{color:#ffd173}:root.theme-auto .code-highlight .nb{color:#ffd173}:root.theme-auto .code-highlight .nc{color:#73d0ff}:root.theme-auto .code-highlight .no{color:#ffd173}:root.theme-auto .code-highlight .nd{color:#7e8aa1;font-weight:700;font-style:italic}:root.theme-auto .code-highlight .ni{color:#95e6cb}:root.theme-auto .code-highlight .ne{color:#73d0ff}:root.theme-auto .code-highlight .nf{color:#ffd173}:root.theme-auto .code-highlight .nl{color:#d4d2c8}:root.theme-auto .code-highlight .nn{color:#d4d2c8}:root.theme-auto .code-highlight .nx{color:#d4d2c8}:root.theme-auto .code-highlight .py{color:#ffd173}:root.theme-auto .code-highlight .nt{color:#5ccfe6}:root.theme-auto .code-highlight .nv{color:#d4d2c8}:root.theme-auto .code-highlight .ow{color:#ffad66}:root.theme-auto .code-highlight .pm{color:#d4d2c8}:root.theme-auto .code-highlight .w{color:#d4d2c8}:root.theme-auto .code-highlight .mb{color:#dfbfff}:root.theme-auto .code-highlight .mf{color:#dfbfff}:root.theme-auto .code-highlight .mh{color:#dfbfff}:root.theme-auto .code-highlight .mi{color:#dfbfff}:root.theme-auto .code-highlight .mo{color:#dfbfff}:root.theme-auto .code-highlight .sa{color:#f29e74}:root.theme-auto .code-highlight .sb{color:#d5ff80}:root.theme-auto .code-highlight .sc{color:#d5ff80}:root.theme-auto .code-highlight .dl{color:#d5ff80}:root.theme-auto .code-highlight .sd{color:#7e8aa1}:root.theme-auto .code-highlight .s2{color:#d5ff80}:root.theme-auto .code-highlight .se{color:#95e6cb}:root.theme-auto .code-highlight .sh{color:#d5ff80}:root.theme-auto .code-highlight .si{color:#95e6cb}:root.theme-auto .code-highlight .sx{color:#95e6cb}:root.theme-auto .code-highlight .sr{color:#95e6cb}:root.theme-auto .code-highlight .s1{color:#d5ff80}:root.theme-auto .code-highlight .ss{color:#dfbfff}:root.theme-auto .code-highlight .bp{color:#5ccfe6}:root.theme-auto .code-highlight .fm{color:#ffd173}:root.theme-auto .code-highlight .vc{color:#d4d2c8}:root.theme-auto .code-highlight .vg{color:#d4d2c8}:root.theme-auto .code-highlight .vi{color:#d4d2c8}:root.theme-auto .code-highlight .vm{color:#d4d2c8}:root.theme-auto .code-highlight .il{color:#dfbfff}:root.theme-auto .code-highlight pre{overflow:auto;margin:0;padding:0 0 .75rem}:root.theme-auto .code-highlight .linenos{-webkit-user-select:none;user-select:none;cursor:default;margin-right:8px;text-align:right}:root.theme-auto .code-highlight .linenos::selection{background:transparent}:root.theme-auto .code-highlight .linenos::-moz-selection{background:transparent}:root.theme-auto .code-highlight span.linenos{color:var(--color-line-number)}}:root.theme-dark .code-highlight pre{line-height:100%}:root.theme-dark .code-highlight td.linenos .normal{color:#3c4354;background-color:transparent;padding-left:5px;padding-right:5px}:root.theme-dark .code-highlight span.linenos{color:#3c4354;background-color:transparent;padding-left:5px;padding-right:5px}:root.theme-dark .code-highlight td.linenos .special{color:#3c4354;background-color:#ffffc0;padding-left:5px;padding-right:5px}:root.theme-dark .code-highlight span.linenos.special{color:#3c4354;background-color:#ffffc0;padding-left:5px;padding-right:5px}:root.theme-dark .code-highlight .hll{background-color:#6e7681}:root.theme-dark .code-highlight .c{color:#7e8aa1}:root.theme-dark .code-highlight .err{color:#f88f7f}:root.theme-dark .code-highlight .esc{color:#d4d2c8}:root.theme-dark .code-highlight .g{color:#d4d2c8}:root.theme-dark .code-highlight .k{color:#ffad66}:root.theme-dark .code-highlight .l{color:#d5ff80}:root.theme-dark .code-highlight .n{color:#d4d2c8}:root.theme-dark .code-highlight .o{color:#ffad66}:root.theme-dark .code-highlight .x{color:#d4d2c8}:root.theme-dark .code-highlight .p{color:#d4d2c8}:root.theme-dark .code-highlight .ch{color:#f88f7f;font-style:italic}:root.theme-dark .code-highlight .cm{color:#7e8aa1}:root.theme-dark .code-highlight .cp{color:#ffad66;font-weight:700}:root.theme-dark .code-highlight .cpf{color:#7e8aa1}:root.theme-dark .code-highlight .c1{color:#7e8aa1}:root.theme-dark .code-highlight .cs{color:#7e8aa1;font-style:italic}:root.theme-dark .code-highlight .gd{color:#f88f7f;background-color:#3d1e20}:root.theme-dark .code-highlight .ge{color:#d4d2c8;font-style:italic}:root.theme-dark .code-highlight .ges{color:#d4d2c8}:root.theme-dark .code-highlight .gr{color:#f88f7f}:root.theme-dark .code-highlight .gh{color:#d4d2c8}:root.theme-dark .code-highlight .gi{color:#6ad4af;background-color:#19362c}:root.theme-dark .code-highlight .go{color:#7e8aa1}:root.theme-dark .code-highlight .gp{color:#d4d2c8}:root.theme-dark .code-highlight .gs{color:#d4d2c8;font-weight:700}:root.theme-dark .code-highlight .gu{color:#d4d2c8}:root.theme-dark .code-highlight .gt{color:#f88f7f}:root.theme-dark .code-highlight .kc{color:#ffad66}:root.theme-dark .code-highlight .kd{color:#ffad66}:root.theme-dark .code-highlight .kn{color:#ffad66}:root.theme-dark .code-highlight .kp{color:#ffad66}:root.theme-dark .code-highlight .kr{color:#ffad66}:root.theme-dark .code-highlight .kt{color:#73d0ff}:root.theme-dark .code-highlight .ld{color:#d5ff80}:root.theme-dark .code-highlight .m{color:#dfbfff}:root.theme-dark .code-highlight .s{color:#d5ff80}:root.theme-dark .code-highlight .na{color:#ffd173}:root.theme-dark .code-highlight .nb{color:#ffd173}:root.theme-dark .code-highlight .nc{color:#73d0ff}:root.theme-dark .code-highlight .no{color:#ffd173}:root.theme-dark .code-highlight .nd{color:#7e8aa1;font-weight:700;font-style:italic}:root.theme-dark .code-highlight .ni{color:#95e6cb}:root.theme-dark .code-highlight .ne{color:#73d0ff}:root.theme-dark .code-highlight .nf{color:#ffd173}:root.theme-dark .code-highlight .nl{color:#d4d2c8}:root.theme-dark .code-highlight .nn{color:#d4d2c8}:root.theme-dark .code-highlight .nx{color:#d4d2c8}:root.theme-dark .code-highlight .py{color:#ffd173}:root.theme-dark .code-highlight .nt{color:#5ccfe6}:root.theme-dark .code-highlight .nv{color:#d4d2c8}:root.theme-dark .code-highlight .ow{color:#ffad66}:root.theme-dark .code-highlight .pm{color:#d4d2c8}:root.theme-dark .code-highlight .w{color:#d4d2c8}:root.theme-dark .code-highlight .mb{color:#dfbfff}:root.theme-dark .code-highlight .mf{color:#dfbfff}:root.theme-dark .code-highlight .mh{color:#dfbfff}:root.theme-dark .code-highlight .mi{color:#dfbfff}:root.theme-dark .code-highlight .mo{color:#dfbfff}:root.theme-dark .code-highlight .sa{color:#f29e74}:root.theme-dark .code-highlight .sb{color:#d5ff80}:root.theme-dark .code-highlight .sc{color:#d5ff80}:root.theme-dark .code-highlight .dl{color:#d5ff80}:root.theme-dark .code-highlight .sd{color:#7e8aa1}:root.theme-dark .code-highlight .s2{color:#d5ff80}:root.theme-dark .code-highlight .se{color:#95e6cb}:root.theme-dark .code-highlight .sh{color:#d5ff80}:root.theme-dark .code-highlight .si{color:#95e6cb}:root.theme-dark .code-highlight .sx{color:#95e6cb}:root.theme-dark .code-highlight .sr{color:#95e6cb}:root.theme-dark .code-highlight .s1{color:#d5ff80}:root.theme-dark .code-highlight .ss{color:#dfbfff}:root.theme-dark .code-highlight .bp{color:#5ccfe6}:root.theme-dark .code-highlight .fm{color:#ffd173}:root.theme-dark .code-highlight .vc{color:#d4d2c8}:root.theme-dark .code-highlight .vg{color:#d4d2c8}:root.theme-dark .code-highlight .vi{color:#d4d2c8}:root.theme-dark .code-highlight .vm{color:#d4d2c8}:root.theme-dark .code-highlight .il{color:#dfbfff}:root.theme-dark .code-highlight pre{overflow:auto;margin:0;padding:0 0 .75rem}:root.theme-dark .code-highlight .linenos{-webkit-user-select:none;user-select:none;cursor:default;margin-right:8px;text-align:right}:root.theme-dark .code-highlight .linenos::selection{background:transparent}:root.theme-dark .code-highlight .linenos::-moz-selection{background:transparent}:root.theme-dark .code-highlight span.linenos{color:var(--color-line-number)}html.no-js .hide_if_nojs,html.js .show_if_nojs{display:none}.center{text-align:center}.right{float:right}.left{float:left}.invisible{display:none!important}.list-unstyled{list-style-type:none}.list-unstyled li{margin-top:4px;margin-bottom:4px}.danger{background-color:var(--color-error-background)}.warning{background:var(--color-warning-background)}.success{background:var(--color-success-background)}.badge{display:inline-block;color:var(--color-toolkit-badge-font);background-color:var(--color-toolkit-badge-background);text-align:center;white-space:nowrap;vertical-align:baseline;min-width:10px;padding:1px 5px;border-radius:5px}kbd{padding:2px 4px;margin:1px;font-size:90%;color:var(--color-toolkit-kbd-font);background:var(--color-toolkit-kbd-background)}table{width:100%}table.striped tr{border-bottom:1px solid var(--color-settings-tr-hover)}th{padding:.4em}td{padding:0 4px}tr:hover{background:var(--color-settings-tr-hover)!important}div.selectable_url{display:block;border:1px solid var(--color-result-search-url-border);padding:4px;color:var(--color-result-search-url-font);margin:.1em;overflow:hidden;height:1.2em;line-height:1.2em;border-radius:5px}div.selectable_url pre{display:block;font-size:.8em;word-break:break-all;margin:.1em;-webkit-user-select:all;user-select:all}.dialog-error{position:relative;display:flex;padding:1rem;margin:0 0 1em;border:1px solid var(--color-toolkit-dialog-border);text-align:left;border-radius:10px;color:var(--color-error);background:var(--color-error-background);border-color:var(--color-error)}.dialog-error .close{float:right;position:relative;top:-3px;color:inherit;font-size:1.5em}.dialog-error ul,.dialog-error ol,.dialog-error p{margin:1px 0 0}.dialog-error table{width:auto}.dialog-error tr{vertical-align:text-top}.dialog-error tr:hover{background:transparent!important}.dialog-error td{padding:0 1em 0 0;padding-right:1rem;padding-bottom:0;padding-left:0}.dialog-error h4{margin-top:.3em;margin-bottom:.3em}.dialog-error-block{position:relative;display:flex;padding:1rem;margin:0 0 1em;border:1px solid var(--color-toolkit-dialog-border);text-align:left;border-radius:10px;display:block;color:var(--color-error);background:var(--color-error-background);border-color:var(--color-error)}.dialog-error-block .close{float:right;position:relative;top:-3px;color:inherit;font-size:1.5em}.dialog-error-block ul,.dialog-error-block ol,.dialog-error-block p{margin:1px 0 0}.dialog-error-block table{width:auto}.dialog-error-block tr{vertical-align:text-top}.dialog-error-block tr:hover{background:transparent!important}.dialog-error-block td{padding:0 1em 0 0;padding-right:1rem;padding-bottom:0;padding-left:0}.dialog-error-block h4{margin-top:.3em;margin-bottom:.3em}.dialog-warning{position:relative;display:flex;padding:1rem;margin:0 0 1em;border:1px solid var(--color-toolkit-dialog-border);text-align:left;border-radius:10px;color:var(--color-warning);background:var(--color-warning-background);border-color:var(--color-warning)}.dialog-warning .close{float:right;position:relative;top:-3px;color:inherit;font-size:1.5em}.dialog-warning ul,.dialog-warning ol,.dialog-warning p{margin:1px 0 0}.dialog-warning table{width:auto}.dialog-warning tr{vertical-align:text-top}.dialog-warning tr:hover{background:transparent!important}.dialog-warning td{padding:0 1em 0 0;padding-right:1rem;padding-bottom:0;padding-left:0}.dialog-warning h4{margin-top:.3em;margin-bottom:.3em}.dialog-modal{position:relative;display:flex;padding:1rem;border:1px solid var(--color-toolkit-dialog-border);text-align:left;border-radius:10px;display:block;background:var(--color-toolkit-dialog-background);position:fixed;top:50%;left:50%;margin:0 auto;transform:translate(-50%,-50%);z-index:5000}.dialog-modal .close{float:right;position:relative;top:-3px;color:inherit;font-size:1.5em}.dialog-modal ul,.dialog-modal ol,.dialog-modal p{margin:1px 0 0}.dialog-modal table{width:auto}.dialog-modal tr{vertical-align:text-top}.dialog-modal tr:hover{background:transparent!important}.dialog-modal td{padding:0 1em 0 0;padding-right:1rem;padding-bottom:0;padding-left:0}.dialog-modal h4{margin-top:.3em;margin-bottom:.3em}.dialog-modal h3{margin-top:0}.btn-collapse{cursor:pointer}.scrollx{overflow:auto hidden;display:block;padding:0;margin:0;border:none}.tabs .tabs>label{font-size:90%}ul.tabs{border-bottom:1px solid var(--color-toolkit-tabs-section-border);list-style:none;padding-left:0}ul.tabs li{display:flex}.tabs{display:flex;flex-wrap:wrap;width:100%;min-width:100%}.tabs>*{order:2}.tabs>input[type=radio]{display:none}.tabs>label,.tabs>li>a{order:1;padding:.7em;margin:0 .7em;letter-spacing:.5px;text-transform:uppercase;border:solid var(--color-toolkit-tabs-label-border);border-width:0 0 2px 0;color:unset;-webkit-touch-callout:none;-webkit-user-select:none;user-select:none;cursor:pointer}.tabs>label.active,.tabs>li>a.active{border-bottom:2px solid var(--color-categories-item-border-selected);background:var(--color-categories-item-selected);color:var(--color-categories-item-selected-font)}.tabs>label:hover,.tabs>li>a:hover{border-bottom:2px solid var(--color-categories-item-border-selected)}.tabs>section{min-width:100%;padding:.7rem 0;box-sizing:border-box;border-top:1px solid var(--color-toolkit-tabs-section-border);display:none}.tabs>label:last-of-type{border-bottom:2px solid var(--color-categories-item-border-selected);background:var(--color-categories-item-selected);color:var(--color-categories-item-selected-font);letter-spacing:-.1px}.tabs>section:last-of-type{display:block}html body .tabs>input:checked~section{display:none}html body .tabs>input:checked~label{position:inherited;background:inherit;border-bottom:2px solid transparent;font-weight:400;color:inherit}html body .tabs>input:checked~label:hover{border-bottom:2px solid var(--color-categories-item-border-selected)}html body .tabs>input:checked+label{border-bottom:2px solid var(--color-categories-item-border-selected);background:var(--color-categories-item-selected);color:var(--color-categories-item-selected-font)}html body .tabs>input:checked+label+section{display:block}select{height:2.4rem;margin-top:0;margin-right:1rem;margin-bottom:0;margin-left:0;padding:.2rem!important;color:var(--color-search-font);font-size:.9rem;z-index:100}select:hover,select:focus{cursor:pointer}@supports ((background-position-x: 100%) and ((appearance: none) or (-webkit-appearance: none) or (-moz-appearance: none))){select{appearance:none;-webkit-appearance:none;-moz-appearance:none;border-width:0 2rem 0 0;border-color:transparent;background:url(data:image/svg+xml;charset=UTF-8,%3C%3Fxml%20version%3D%221.0%22%20encoding%3D%22utf-8%22%3F%3E%0A%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%22512%22%20height%3D%22512%22%20viewBox%3D%220%200%20512%20512%22%3E%0A%3Cg%3E%3Cpolygon%20points%3D%22128%2C192%20256%2C320%20384%2C192%22%2F%3E%3C%2Fg%3E%0A%3C%2Fsvg%3E) no-repeat;background-position-x:calc(100% + 2rem);background-size:2rem;background-origin:content-box;background-color:var(--color-toolkit-select-background);outline:medium none;text-overflow:ellipsis;border-radius:5px}select:hover,select:focus{background-color:var(--color-toolkit-select-background-hover)}select option{background-color:var(--color-base-background)}@media (prefers-color-scheme: dark){html.theme-auto select,html.theme-dark select{background-image:url(data:image/svg+xml;charset=UTF-8,%3C%3Fxml%20version%3D%221.0%22%20encoding%3D%22utf-8%22%3F%3E%0A%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%22512%22%20height%3D%22512%22%20viewBox%3D%220%200%20512%20512%22%3E%0A%3Cg%3E%3Cpolygon%20fill%3D%22%23ddd%22%20points%3D%22128%2C192%20256%2C320%20384%2C192%22%2F%3E%3C%2Fg%3E%0A%3C%2Fsvg%3E)}}html.theme-dark select{background-image:url(data:image/svg+xml;charset=UTF-8,%3C%3Fxml%20version%3D%221.0%22%20encoding%3D%22utf-8%22%3F%3E%0A%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%22512%22%20height%3D%22512%22%20viewBox%3D%220%200%20512%20512%22%3E%0A%3Cg%3E%3Cpolygon%20fill%3D%22%23ddd%22%20points%3D%22128%2C192%20256%2C320%20384%2C192%22%2F%3E%3C%2Fg%3E%0A%3C%2Fsvg%3E)}}input.checkbox-onoff[type=checkbox]{-webkit-appearance:none;-moz-appearance:none;appearance:none;cursor:pointer;display:inline-block;width:2.5em;height:.7em;box-shadow:none!important;margin:0 16px;border-radius:10px;position:relative}input.checkbox-onoff[type=checkbox]:focus,input.checkbox-onoff[type=checkbox]:hover{outline:none}input.checkbox-onoff[type=checkbox]:focus:after{content:"";position:absolute;width:3.5em;height:1.65em;border:1px solid var(--color-btn-background);border-radius:12px;box-shadow:var(--color-btn-background) 0 0 3px;z-index:1200;top:-.55em;left:-.6em}input.checkbox-onoff[type=checkbox]:before{position:absolute;top:-.5em;display:flex;justify-content:center;align-items:center;font-size:.75em;width:1.875em;height:1.875em;border-radius:50%}input.checkbox-onoff[type=checkbox],input.checkbox-onoff.reversed-checkbox[type=checkbox]:checked{background:var(--color-toolkit-checkbox-onoff-off-background)}input.checkbox-onoff[type=checkbox]:before,input.checkbox-onoff.reversed-checkbox[type=checkbox]:checked:before{left:-.5em;content:"✕";color:var(--color-toolkit-checkbox-onoff-off-mark-color);background:var(--color-toolkit-checkbox-onoff-off-mark-background)}input.checkbox-onoff[type=checkbox]:checked,input.checkbox-onoff.reversed-checkbox[type=checkbox]{background:var(--color-toolkit-checkbox-onoff-on-background)}input.checkbox-onoff[type=checkbox]:checked:before,input.checkbox-onoff.reversed-checkbox[type=checkbox]:before{left:calc(100% - 1.5em);content:"✓";color:var(--color-toolkit-checkbox-onoff-on-mark-color);background:var(--color-toolkit-checkbox-onoff-on-mark-background)}@supports (transform: rotate(-45deg)){input[type=checkbox]:not(.checkbox-onoff){-webkit-appearance:none;-moz-appearance:none;appearance:none;width:20px;height:20px;cursor:pointer;position:relative;top:0;left:0;border:2px solid var(--color-toolkit-checkbox-input-border);border-radius:.3em}input[type=checkbox]:not(.checkbox-onoff):after{content:"";width:9px;height:5px;position:absolute;top:3px;left:2px;border:3px solid var(--color-toolkit-checkbox-label-border);border-top:none;border-right:none;background:transparent;opacity:0;transform:rotate(-45deg)}input[type=checkbox]:not(.checkbox-onoff):checked:after{border-color:var(--color-toolkit-checkbox-input-border);opacity:1}input[type=checkbox][disabled]:not(.checkbox-onoff){border:inherit;background-color:transparent!important;cursor:inherit}input.checkbox[type=checkbox]:not(:checked,[disabled],.checkbox-onoff):hover:after{opacity:.5}}@media screen and (max-width: 50em){.tabs>label{width:100%}}.loader,.loader:after{border-radius:50%;width:2em;height:2em}.loader{margin:1em auto;font-size:10px;position:relative;text-indent:-9999em;border-top:.5em solid var(--color-toolkit-loader-border);border-right:.5em solid var(--color-toolkit-loader-border);border-bottom:.5em solid var(--color-toolkit-loader-border);border-left:.5em solid var(--color-toolkit-loader-borderleft);-webkit-transform:translateZ(0);-ms-transform:translateZ(0);transform:translateZ(0);-webkit-animation:load8 1.2s infinite linear;animation:load8 1.2s infinite linear}@-webkit-keyframes load8{0%{-webkit-transform:rotate(0deg);transform:rotate(0)}to{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}@keyframes load8{0%{-webkit-transform:rotate(0deg);transform:rotate(0)}to{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}.engine-tooltip{display:none;position:absolute;padding:.5rem 1rem;margin:0 0 0 2rem;border:1px solid var(--color-toolkit-engine-tooltip-border);background:var(--color-toolkit-engine-tooltip-background);font-size:14px;font-weight:400;z-index:5000;text-align:left;border-radius:10px}th:hover .engine-tooltip,td:hover .engine-tooltip,.engine-tooltip:hover{display:inline-block}.stacked-bar-chart{margin:0;padding:0 .125rem 0 4rem;width:100%;width:-moz-available;width:-webkit-fill-available;width:fill;flex-flow:row nowrap;align-items:center;display:inline-flex}.stacked-bar-chart-value{width:3rem;display:inline-block;position:absolute;padding:0 .5rem;text-align:right}.stacked-bar-chart-base{display:flex;flex-shrink:0;flex-grow:0;flex-basis:unset}.stacked-bar-chart-median{display:flex;flex-shrink:0;flex-grow:0;flex-basis:unset;background:var(--color-base-font);border:1px solid rgba(var(--color-base-font-rgb),.9);padding:.3rem 0}.stacked-bar-chart-rate80{display:flex;flex-shrink:0;flex-grow:0;flex-basis:unset;background:transparent;border:1px solid rgba(var(--color-base-font-rgb),.3);padding:.3rem 0}.stacked-bar-chart-rate95{display:flex;flex-shrink:0;flex-grow:0;flex-basis:unset;background:transparent;border-bottom:1px dotted rgba(var(--color-base-font-rgb),.5);padding:0}.stacked-bar-chart-rate100{display:flex;flex-shrink:0;flex-grow:0;flex-basis:unset;background:transparent;border-left:1px solid rgba(var(--color-base-font-rgb),.9);padding:.4rem 0;width:1px}/*! Autocomplete.js v2.6.3 | license MIT | (c) 2017, Baptiste Donaux | http://autocomplete-js.com */.autocomplete{position:absolute;width:44rem;max-height:0;overflow-y:hidden;text-align:left;border-radius:10px}.autocomplete:active,.autocomplete:focus,.autocomplete:hover{background-color:var(--color-autocomplete-background)}.autocomplete:empty{display:none}.autocomplete>ul{list-style-type:none;margin:0;padding:0}.autocomplete>ul>li{cursor:pointer;padding:.5rem 1rem}.autocomplete>ul>li.active,.autocomplete>ul>li:active,.autocomplete>ul>li:focus,.autocomplete>ul>li:hover{background-color:var(--color-autocomplete-background-hover)}.autocomplete>ul>li.active a:active,.autocomplete>ul>li:active a:active,.autocomplete>ul>li:focus a:active,.autocomplete>ul>li:hover a:active,.autocomplete>ul>li.active a:focus,.autocomplete>ul>li:active a:focus,.autocomplete>ul>li:focus a:focus,.autocomplete>ul>li:hover a:focus,.autocomplete>ul>li.active a:hover,.autocomplete>ul>li:active a:hover,.autocomplete>ul>li:focus a:hover,.autocomplete>ul>li:hover a:hover{text-decoration:none}.autocomplete>ul>li.locked{cursor:inherit}.autocomplete.open{display:block;background-color:var(--color-autocomplete-background);color:var(--color-autocomplete-font);max-height:32rem;overflow-y:auto;z-index:5000;margin-top:3.5rem;border-radius:.8rem}.autocomplete.open:empty{display:none}@media screen and (max-width: 50em){.autocomplete{width:100%}.autocomplete>ul>li{padding:1rem}}#main_results #results.image-detail-open.only_template_images{width:min(98%,59.25rem)!important}#main_results #results.only_template_images.image-detail-open #backToTop{left:56.75rem!important;right:inherit}article.result-images .detail{display:none}#results.image-detail-open article.result-images[data-vim-selected] .detail{display:flex;flex-direction:column;position:fixed;left:60rem;right:0;top:13rem;transition:top 64ms ease-in 0s;bottom:0;background:var(--color-result-detail-background);border:1px solid var(--color-result-detail-background);z-index:1000;padding:4rem 3rem 3rem;overflow-y:scroll}#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-images-source{display:block;flex:1;text-align:left;width:100%;border:none;text-decoration:none}#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-images-source img{padding:0;margin:0;border:none;object-fit:contain;width:inherit;height:inherit;max-width:100%;min-height:inherit;max-height:calc(100vh - 42rem);background:inherit}#results.image-detail-open article.result-images[data-vim-selected] .detail .result-images-labels{color:var(--color-result-detail-font);height:19rem}#results.image-detail-open article.result-images[data-vim-selected] .detail .result-images-labels hr{border-top:1px solid var(--color-result-detail-hr);border-bottom:none}#results.image-detail-open article.result-images[data-vim-selected] .detail .result-images-labels h4{height:2rem;overflow:hidden;text-overflow:ellipsis;font-size:.9rem;margin-bottom:0}#results.image-detail-open article.result-images[data-vim-selected] .detail .result-images-labels p{color:var(--color-result-detail-label-font);font-size:.9rem;white-space:nowrap;text-overflow:ellipsis;overflow:hidden;margin:.8rem 0}#results.image-detail-open article.result-images[data-vim-selected] .detail .result-images-labels p span{display:inline-block;width:12rem}#results.image-detail-open article.result-images[data-vim-selected] .detail .result-images-labels h4,#results.image-detail-open article.result-images[data-vim-selected] .detail .result-images-labels p,#results.image-detail-open article.result-images[data-vim-selected] .detail .result-images-labels a{text-align:left}#results.image-detail-open article.result-images[data-vim-selected] .detail .result-images-labels p.result-content{height:2rem;line-height:unset;overflow:hidden;text-overflow:ellipsis}#results.image-detail-open article.result-images[data-vim-selected] .detail .result-images-labels p.result-url{white-space:nowrap;overflow:hidden hidden;text-overflow:ellipsis}#results.image-detail-open article.result-images[data-vim-selected] .detail .result-images-labels p.result-content:hover,#results.image-detail-open article.result-images[data-vim-selected] .detail .result-images-labels p.result-url:hover{position:relative;overflow:inherit!important;background:var(--color-result-detail-background);text-overflow:inherit!important}#results.image-detail-open article.result-images[data-vim-selected] .detail .result-images-labels a,#results.image-detail-open article.result-images[data-vim-selected] .detail .result-images-labels a:visited,#results.image-detail-open article.result-images[data-vim-selected] .detail .result-images-labels a:hover,#results.image-detail-open article.result-images[data-vim-selected] .detail .result-images-labels a:active{color:var(--color-result-detail-link)}#results.image-detail-open article.result-images[data-vim-selected] .detail .result-images-labels a:hover{text-decoration:underline}#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-close{top:1rem;left:1rem;padding:.4rem}#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-previous{top:1rem;right:6rem;padding:.4rem .5rem .4rem .3rem}#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-next{top:1rem;right:2rem;padding:.4rem}#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-close,#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-next,#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-previous{border-radius:50%;display:block;width:1.5rem;height:1.5rem;position:absolute;filter:opacity(40%);z-index:1200}#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-close span,#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-next span,#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-previous span{display:block;width:1.5rem;height:1.5rem;text-align:center}#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-next span:before,#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-previous span:before{vertical-align:sub}#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-close,#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-close:visited,#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-close:hover,#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-close:active,#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-previous,#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-previous:visited,#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-previous:hover,#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-previous:active,#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-next,#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-next:visited,#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-next:hover,#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-next:active{color:var(--color-result-detail-font);background:var(--color-result-detail-background);border:1px solid var(--color-result-detail-font)}#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-close:focus,#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-close:hover,#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-previous:focus,#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-previous:hover,#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-next:focus,#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-next:hover{filter:opacity(80%)}#results.image-detail-open article.result-images[data-vim-selected] .detail .loader{position:absolute;top:1rem;right:50%;border-top:.5em solid var(--color-result-detail-loader-border);border-right:.5em solid var(--color-result-detail-loader-border);border-bottom:.5em solid var(--color-result-detail-loader-border);border-left:.5em solid var(--color-result-detail-loader-borderleft)}#results.image-detail-open.scrolling article.result-images[data-vim-selected] .detail{top:0}#results.image-detail-open.scrolling article.result-images[data-vim-selected] .detail a.result-images-source img{max-height:calc(100vh - 25rem)}@media screen and (max-width: 79.75em){#results.image-detail-open article.result-images[data-vim-selected] .detail{top:0;left:0}#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-images-source{display:flex;flex-direction:column;justify-content:center}#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-images-source img{width:100%;max-height:calc(100vh - 24rem)}#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-next{right:1rem}}@media screen and (max-width: 50em){#results.image-detail-open article.result-images[data-vim-selected] .detail{top:0;left:0;padding:1rem}#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-images-source img{width:100%;max-height:calc(100vh - 20rem);margin:0}#results.image-detail-open article.result-images[data-vim-selected] .detail .result-images-labels p span{width:inherit;margin-right:1rem}}.dialog-modal{animation-name:dialogmodal;animation-duration:.13s}@keyframes dialogmodal{0%{opacity:0}50%{opacity:.5;transform:translate(-50%,-50%) scale(1.05)}}input.checkbox-onoff[type=checkbox]:before{transition:left .25s}iframe[src^="https://w.soundcloud.com"]{height:120px}iframe[src^="https://www.deezer.com"]{height:94px}iframe[src^="https://www.mixcloud.com"]{height:250px}iframe[src^="https://bandcamp.com/EmbeddedPlayer"]{height:350px}iframe[src^="https://bandcamp.com/EmbeddedPlayer/track"]{height:120px}iframe[src^="https://genius.com/songs"]{height:65px}.info-page code{font-family:monospace;border-radius:5px;background-color:var(--color-doc-code-background);color:var(--color-doc-code);padding:.2rem;border:0 none}.stats_endpoint .github-issue-button{display:block;font-size:16px}.stats_endpoint .issue-hide{display:none}.stats_endpoint input[type=checked]{position:absolute}.stats_endpoint label{margin:1rem 1rem 1rem 0}.stats_endpoint .step_content{margin:1rem 1rem 1rem 2rem}.stats_endpoint .step1,.stats_endpoint .step2{visibility:hidden}.stats_endpoint .step1_delay{transition:visibility 0s linear 4s}.stats_endpoint #step1:checked~.step1,.stats_endpoint #step2:checked~.step2{visibility:visible}.engine-stats{border-spacing:0;border-collapse:collapse}.engine-stats tr td,.engine-stats tr th{border-bottom:1px solid var(--color-result-border);padding:.25rem}.engine-stats table.engine-tooltip{border-spacing:0;border-collapse:collapse}.engine-stats table.engine-tooltip td,.engine-stats table.engine-tooltip th{border:none}.engine-stats .engine-name{width:20rem}.engine-stats .engine-score{width:7rem;text-align:right}.engine-stats .engine-reliability{text-align:right}table.engine-error th.engine-error-type,table.engine-error td.engine-error-type,failed-test{width:10rem}.engine-errors{margin-top:3rem}.engine-errors table.engine-error{max-width:1280px;margin:1rem 0 3rem;border:1px solid var(--color-result-border);text-align:left}.engine-errors table.engine-error tr th,.engine-errors table.engine-error tr td{padding:.5rem}.engine-errors table.engine-error span.log_parameters{border-right:1px solid solid var(--color-result-border);padding:0 1rem 0 0;margin:0 0 0 .5rem}.bar-chart-value{width:3em;display:inline-block;text-align:right;padding-right:.5rem}.bar-chart-graph{width:calc(100% - 5rem);display:inline-block}.bar-chart-bar{border:3px solid var(--color-bar-chart-primary);margin:1px 0}.bar-chart-serie1{border:3px solid var(--color-bar-chart-primary);margin:1px 0;float:left}.bar-chart-serie2{border:3px solid var(--color-bar-chart-secondary);margin:1px 0;float:left}.bar0{width:0;border:0}.bar1{width:1%}.bar2{width:2%}.bar3{width:3%}.bar4{width:4%}.bar5{width:5%}.bar6{width:6%}.bar7{width:7%}.bar8{width:8%}.bar9{width:9%}.bar10{width:10%}.bar11{width:11%}.bar12{width:12%}.bar13{width:13%}.bar14{width:14%}.bar15{width:15%}.bar16{width:16%}.bar17{width:17%}.bar18{width:18%}.bar19{width:19%}.bar20{width:20%}.bar21{width:21%}.bar22{width:22%}.bar23{width:23%}.bar24{width:24%}.bar25{width:25%}.bar26{width:26%}.bar27{width:27%}.bar28{width:28%}.bar29{width:29%}.bar30{width:30%}.bar31{width:31%}.bar32{width:32%}.bar33{width:33%}.bar34{width:34%}.bar35{width:35%}.bar36{width:36%}.bar37{width:37%}.bar38{width:38%}.bar39{width:39%}.bar40{width:40%}.bar41{width:41%}.bar42{width:42%}.bar43{width:43%}.bar44{width:44%}.bar45{width:45%}.bar46{width:46%}.bar47{width:47%}.bar48{width:48%}.bar49{width:49%}.bar50{width:50%}.bar51{width:51%}.bar52{width:52%}.bar53{width:53%}.bar54{width:54%}.bar55{width:55%}.bar56{width:56%}.bar57{width:57%}.bar58{width:58%}.bar59{width:59%}.bar60{width:60%}.bar61{width:61%}.bar62{width:62%}.bar63{width:63%}.bar64{width:64%}.bar65{width:65%}.bar66{width:66%}.bar67{width:67%}.bar68{width:68%}.bar69{width:69%}.bar70{width:70%}.bar71{width:71%}.bar72{width:72%}.bar73{width:73%}.bar74{width:74%}.bar75{width:75%}.bar76{width:76%}.bar77{width:77%}.bar78{width:78%}.bar79{width:79%}.bar80{width:80%}.bar81{width:81%}.bar82{width:82%}.bar83{width:83%}.bar84{width:84%}.bar85{width:85%}.bar86{width:86%}.bar87{width:87%}.bar88{width:88%}.bar89{width:89%}.bar90{width:90%}.bar91{width:91%}.bar92{width:92%}.bar93{width:93%}.bar94{width:94%}.bar95{width:95%}.bar96{width:96%}.bar97{width:97%}.bar98{width:98%}.bar99{width:99%}.bar100{width:100%}.osm-map-box{height:300px;width:100%;margin:10px 0}#main_index{margin-top:26vh}.index{text-align:center}.index .title{background:url(../img/searxng.png) no-repeat;min-height:4rem;margin:4rem auto;background-position:center;background-size:contain}.index h1{font-size:4em;visibility:hidden}.index #search,.index #search_header{margin:0 auto;background:inherit;border:inherit;padding:0;display:block}.index .search_filters{display:block;margin:1em 0}.index .category label{padding:6px 10px;border-bottom:initial!important}@media screen and (max-width: 79.75em){div.title h1{font-size:1em}#main_index{margin-top:6em}}table{border-collapse:collapse}table th,table td{text-align:center;padding:1rem .5rem;text-align:left}table tr.pref-group th{font-weight:400;text-align:left;background:var(--color-settings-table-group-background)}#main_preferences form{width:100%}#main_preferences fieldset{margin:8px;border:none}#main_preferences legend{margin:0;padding:5px 0 0;display:block;float:left;width:300px}#main_preferences input[type=text]{width:13.25rem;color:var(--color-toolkit-input-text-font);border:none;background:none repeat scroll 0 0 var(--color-toolkit-select-background);padding:.2rem .4rem;height:2rem;border-radius:5px}#main_preferences input[type=text]:hover,#main_preferences input[type=text]:focus{background-color:var(--color-toolkit-select-background-hover)}#main_preferences div.pref-group{width:100%;font-weight:400;padding:1rem .5rem;text-align:left;background:var(--color-settings-table-group-background)}#main_preferences .value{margin:0;padding:0;float:left;width:15em}#main_preferences .value select,#main_preferences .value input[type=text]{font-size:inherit!important;margin-top:0;margin-right:1rem;margin-bottom:0;margin-left:0}#main_preferences .value select{width:14rem}#main_preferences .value select:focus,#main_preferences .value input:focus{outline:none;box-shadow:0 0 1px 1px var(--color-btn-background)}#main_preferences .description{margin:0;padding:5px 0 0;float:right;width:50%;color:var(--color-settings-engine-description-font);font-size:90%}#main_preferences .bang{text-align:left;border-radius:5px;background-color:var(--color-doc-code-background);color:var(--color-doc-code);padding:.2rem;border:0 none}#main_preferences .category{margin-right:.5rem}#main_preferences .category label{border:2px solid transparent;padding:.2rem .4rem;border-radius:5px}#main_preferences .category input[type=checkbox]:checked+label{border:2px solid var(--color-categories-item-border-selected)}#main_preferences table.table_engines th.name label{cursor:pointer}#main_preferences table.table_engines th.name .engine-tooltip{margin-top:1.8rem;left:calc((100% - 85em)/2 + 10em);max-width:40rem}#main_preferences table.table_engines th.name .engine-tooltip .engine-description{margin-top:.5rem}#main_preferences table.table_engines th.name .engine-tooltip .bang{margin:.3rem}#main_preferences table.table_engines .checkbox-col,#main_preferences table.table_engines .name,#main_preferences table.table_engines .shortcut{text-align:left}#main_preferences table.cookies{width:100%;direction:ltr}#main_preferences table.cookies th,#main_preferences table.cookies td{text-align:left;font-family:monospace;font-size:1rem;padding:.5em;vertical-align:top}#main_preferences table.cookies td:first-child{word-break:keep-all;width:14rem;padding-right:1rem}#main_preferences table.cookies td:last-child{word-break:break-all}#main_preferences table.cookies>tbody>tr:nth-child(2n)>th,#main_preferences table.cookies>tbody>tr:nth-child(2n)>td{background-color:var(--color-settings-tr-hover)}#main_preferences .preferences_back{background:none repeat scroll 0 0 var(--color-btn-background);color:var(--color-btn-font);border:0 none;border-radius:10px;cursor:pointer;display:inline-block;margin:2px 4px;padding:.7em}#main_preferences .preferences_back a{color:var(--color-settings-return-font)}#main_preferences .preferences_back a:first-letter{text-transform:uppercase}#main_preferences #toggle-all-engines-container{width:max-content;margin-left:auto}#main_preferences div.selectable_url pre{width:100%}#main_preferences #copy-hash-container{display:flex;align-items:center;gap:.5rem}#main_preferences #copy-hash-container div.selectable_url pre{width:auto;flex-grow:1}#main_preferences #pref-hash-input{width:100%}@media screen and (max-width: 79.75em){.preferences_back{clear:both}.engine-tooltip{left:10em!important}}#search{padding:0;margin:0}#search_header{padding-top:1.5em;padding-right:2em;padding-left:7rem;margin:0;background:var(--color-header-background);border-bottom:1px solid var(--color-header-border);display:grid;gap:1rem 1.2rem;grid-template-columns:3rem 1fr;grid-template-areas:"logo search" "spacer categories"}.category_checkbox,.category_button{display:inline-block;position:relative;margin-right:1rem;padding:0}.category_checkbox input{display:none}.category_checkbox label{cursor:pointer;padding:.2rem 0;display:inline-flex;text-transform:capitalize;font-size:.9em;border-bottom:2px solid transparent;-webkit-touch-callout:none;-webkit-user-select:none;user-select:none}.category_checkbox label svg{padding-right:.2rem}.category_checkbox label div.category_name{margin:auto 0}.category_checkbox input[type=checkbox]:checked+label{color:var(--color-categories-item-selected-font);border-bottom:2px solid var(--color-categories-item-border-selected)}button.category_button{background-color:inherit;color:var(--color-base-font);cursor:pointer;padding:.2rem 0;display:inline-flex;align-items:center;text-transform:capitalize;font-size:.9em;border:none;border-bottom:2px solid transparent}button.category_button svg{padding-right:.2rem}button.category_button.selected,button.category_button:active{color:var(--color-categories-item-selected-font);border-bottom:2px solid var(--color-categories-item-border-selected)}.no-js #categories_container:has(button.category_button:focus-within) button.category_button.selected{color:var(--color-base-font);border-bottom:none}.no-js #categories_container:has(button.category_button:focus-within) button.category_button:focus-within{color:var(--color-categories-item-selected-font);border-bottom:2px solid var(--color-categories-item-border-selected)}#search_logo{padding:.5rem 10px 0;grid-area:logo;display:flex;align-items:center;justify-content:center}#search_logo svg{flex:1;width:30px;height:30px;margin:.5rem 0 auto}.search_categories{grid-area:categories}.search_categories .help{display:none}.search_categories:hover .help{display:block;position:absolute;background:var(--color-base-background);padding:1rem .6rem .6rem 0;z-index:1000;width:100%;left:-.1rem}#search_view{padding:.5rem .3rem 0 .5rem;grid-area:search}body.results_endpoint #search_view{padding:.5rem 2.8rem 0 0}.search_box{border-radius:.8rem;width:44rem;display:inline-flex;flex-direction:row;white-space:nowrap;box-shadow:var(--color-search-shadow)}#clear_search{display:block;border-collapse:separate;box-sizing:border-box;width:1.8rem;margin:0;padding:.8rem .2rem;background:none repeat scroll 0 0 var(--color-search-background);border:none;outline:none;color:var(--color-search-font);font-size:1.1rem;z-index:1000}#clear_search:hover{color:var(--color-search-background-hover)}#clear_search.empty *,html.no-js #clear_search.hide_if_nojs{display:none}#q,#send_search{display:block;margin:0;padding:.8rem;background:none repeat scroll 0 0 var(--color-search-background);border:none;outline:none;color:var(--color-search-font);font-size:1.1rem;z-index:100}#q{width:100%;padding-left:1rem;padding-right:0!important;border-radius:.8rem 0 0 .8rem}#q::-ms-clear,#q::-webkit-search-cancel-button{display:none}#send_search{border-radius:0 .8rem .8rem 0}#send_search:hover{cursor:pointer;background-color:var(--color-search-background-hover);color:var(--color-search-background)}.no-js #clear_search,.no-js #send_search{width:auto!important;border-left:1px solid var(--color-search-border)}.search_filters{margin-top:.6rem;margin-right:0;margin-bottom:0;margin-left:10.6rem;display:flex;overflow-x:auto;overscroll-behavior-inline:contain}.search_filters select{background-color:inherit}.search_filters select:hover,.search_filters select:focus{color:var(--color-base-font)}@media screen and (max-width: 79.75em){#search_header{padding:1.5em .5rem 0;column-gap:.5rem}.search_filters{margin-top:.6rem;margin-right:0;margin-bottom:0;margin-left:3.5rem}#categories{font-size:90%;clear:both}}@media screen and (max-width: 79.75em) and (hover: none){#main_index #categories_container,#main_results #categories_container{width:max-content}#main_index #categories_container .category_checkbox,#main_results #categories_container .category_checkbox{display:inline-block;width:auto}#main_index #categories,#main_results #categories{width:100%;text-align:left;overflow:scroll hidden;-webkit-overflow-scrolling:touch}}@media screen and (max-width: 50em){#search_header{width:100%;margin:0;padding:.1rem 0 0;gap:0 0;grid-template-areas:"logo search" "categories categories"}.search_logo{padding:0}.search_box{width:98%;display:flex}#q{width:100%;flex:1}.search_filters{margin:0 10px;padding:.5rem 0}.category{display:inline-block;width:auto;margin:0}.category svg{display:none}.category_checkbox label,.category_button{padding:1rem!important;margin:0!important}#search_view:focus-within{display:block;background-color:var(--color-search-background);position:absolute;top:0;height:100%;width:100%;z-index:2000}#search_view:focus-within .search_box{border-bottom:1px solid var(--color-search-border);width:100%;border-radius:0;box-shadow:none}#search_view:focus-within .search_box #send_search{margin-right:0!important}#search_view:focus-within .search_box *{border:none;border-radius:0;box-shadow:none}#main_results #q:placeholder-shown~#send_search{margin-right:2.6rem;transition:margin .1s}}@media screen and (max-width: 20rem){#search_header{grid-template-areas:"search search" "categories categories"}#search_logo{display:none}}#categories{-webkit-touch-callout:none;-webkit-user-select:none;user-select:none}#categories::-webkit-scrollbar{width:0;height:0}#categories_container{position:relative}.favicon img{height:1.5rem;width:1.5rem;border-radius:10%;background-color:var(--color-favicon-background-color);border:1px solid var(--color-favicon-border-color);display:flex}@media screen and (min-width: 50em){.center-alignment-yes #main_results{--center-page-width: 48rem}}@media screen and (width >= 62rem){.center-alignment-yes #main_results{--center-page-width: 60rem}}@media screen and (min-width: 79.75em){.center-alignment-yes #main_results{--center-page-width: 73rem}}@media screen and (min-width: 50em) and (max-width: 79.75em){.center-alignment-yes #main_results #results{grid-template-columns:60% calc(40% - 5rem);margin-left:0;margin-right:0}.center-alignment-yes #main_results #urls{margin-left:3rem}.center-alignment-yes #main_results #sidebar{margin-right:1rem}.center-alignment-yes #main_results #backToTop{left:calc(60% + 1rem)}}@media screen and (min-width: 79.75em){.center-alignment-yes #main_results{display:flex;flex-direction:column;align-items:center}.center-alignment-yes #main_results #search{width:100%;display:flex;flex-direction:column;align-items:center}.center-alignment-yes #main_results #search_header{grid-template-columns:calc(50% - 4.5rem - var(--center-page-width) / 2) 3rem var(--center-page-width);grid-template-areas:"na logo search" "na spacer categories";column-gap:1.2rem;width:100%;padding-left:0;padding-right:0}.center-alignment-yes #main_results .search_filters{margin-left:.5rem;width:var(--center-page-width)}.center-alignment-yes #main_results #results{margin-right:2rem;margin-left:10rem}.center-alignment-yes #main_results #results.only_template_images,.center-alignment-yes #main_results #results.image-detail-open{align-self:flex-start}.center-alignment-yes #main_results #results:not(.only_template_images,.image-detail-open){margin-left:1.5rem;grid-template-columns:calc(var(--center-page-width) - 5rem - 25rem) 25rem}.center-alignment-yes #main_results #results:not(.only_template_images,.image-detail-open) #backToTop{left:calc(50% - 25rem - 5rem + 1rem + var(--center-page-width) / 2)}.center-alignment-yes #main_results #results .result .content{max-width:inherit}.center-alignment-yes #main_results #urls{margin-left:0}.center-alignment-yes #main_results #sidebar{margin-right:0}}.sxng-icon-set{display:inline-block;vertical-align:bottom;line-height:1;text-decoration:inherit;transform:scale(1)}.sxng-icon-set-small{width:1rem;height:1rem;display:inline-block;vertical-align:bottom;line-height:1;text-decoration:inherit;transform:scale(1)}.sxng-icon-set-big{width:1.5rem;height:1.5rem;display:inline-block;vertical-align:bottom;line-height:1;text-decoration:inherit;transform:scale(1)}html{font-family:sans-serif;font-size:.9em;-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%;-moz-text-size-adjust:100%;text-size-adjust:100%;color:var(--color-base-font);background-color:var(--color-base-background);padding:0;margin:0;scroll-behavior:smooth}body,main{padding:0;margin:0}body{display:flex;flex-direction:column;height:100vh;margin:0}@supports (height: 100dvh){body{height:100dvh}}main{width:100%;margin-bottom:2rem;flex:1}.page_with_header{margin:2em auto;width:85em}footer{clear:both;min-height:4rem;padding:1rem 0;width:100%;text-align:center;background-color:var(--color-footer-background);border-top:1px solid var(--color-footer-border);overflow:hidden}footer p{font-size:.9em}.page_with_header .logo{height:40px}input[type=submit],#results button[type=submit],.button{padding:.7rem;display:inline-block;background:var(--color-btn-background);color:var(--color-btn-font);border-radius:10px;border:0;cursor:pointer}a{text-decoration:none;color:var(--color-url-font)}a:visited,a:visited .highlight{color:var(--color-url-visited-font)}article[data-vim-selected]{background:var(--color-result-vim-selected);border-left:.2rem solid var(--color-result-vim-arrow);border-radius:0 10px 10px 0}article.result-images[data-vim-selected]{background:var(--color-result-vim-arrow);border:none;border-radius:10px}article.result-images[data-vim-selected] .image_thumbnail{filter:opacity(60%)}article.result-images[data-vim-selected] span.title,article.result-images[data-vim-selected] span.source{color:var(--color-result-image-span-font-selected)}article[data-vim-selected].category-videos,article[data-vim-selected].category-news,article[data-vim-selected].category-map,article[data-vim-selected].category-music,article[data-vim-selected].category-files,article[data-vim-selected].category-social{border:1px solid var(--color-result-vim-arrow);border-radius:10px}.result{margin:.125rem 0;padding:1rem;box-sizing:border-box;width:100%;border-left:.2rem solid transparent}.result h3{font-size:1.2rem;word-wrap:break-word;margin:.4rem 0;padding:0}.result h3 a{color:var(--color-result-link-font);font-weight:400;font-size:1.1em}.result h3 a:visited{color:var(--color-result-link-visited-font)}.result h3 a:focus,.result h3 a:hover{text-decoration:underline;border:none;outline:none}.result .cache_link,.result .proxyfied_link{font-size:smaller!important;margin-left:.5rem}.result .content,.result .stat{font-size:.9em;margin:0;padding:0;max-width:54em;word-wrap:break-word;line-height:1.24}.result .content .highlight,.result .stat .highlight{color:var(--color-result-description-highlight-font);background:inherit;font-weight:700}.result .altlink a{font-size:.9em;margin:0 10px 0 0;padding:5px 10px;border-radius:5px;background:var(--color-show-btn-background);color:var(--color-show-btn-font);cursor:pointer}.result .altlink a:hover{background:var(--color-btn-background);color:var(--color-btn-font)}.result .codelines .highlight{color:inherit;background:inherit;font-weight:400}.result .url_header{display:flex;gap:.5rem}.result .url_wrapper{display:flex;align-items:center;font-size:1rem;color:var(--color-result-url-font);flex-flow:row nowrap;overflow:hidden;margin:0;padding:0}.result .url_wrapper .url_o1{white-space:nowrap;flex-shrink:1;padding-bottom:1px}.result .url_wrapper .url_o1 .url_i1{unicode-bidi:plaintext}.result .url_wrapper .url_o1:after{content:" ";width:1ch;display:inline-block}.result .url_wrapper .url_o2{overflow:hidden;white-space:nowrap;flex:0 1 content;text-align:right;padding-bottom:1px}.result .url_wrapper .url_o2 .url_i2{float:right}.result .published_date,.result .result_length,.result .result_views,.result .result_author,.result .result_shipping,.result .result_source_country{font-size:.8em;color:var(--color-result-publishdate-font)}.result .result_price{font-size:1.2em;color:var(--color-result-description-highlight-font)}.result img.thumbnail{float:left;padding-top:.6rem;padding-right:1rem;width:7rem;height:unset}.result .break{clear:both}.result-paper .attributes,.result-packages .attributes{display:table;border-spacing:.125rem}.result-paper .attributes div,.result-packages .attributes div{display:table-row}.result-paper .attributes div span,.result-packages .attributes div span{font-size:.9rem;margin-top:.25rem;display:table-cell}.result-paper .attributes div span time,.result-packages .attributes div span time{font-size:.9rem}.result-paper .attributes div span:first-child,.result-packages .attributes div span:first-child{color:var(--color-base-font);min-width:10rem}.result-paper .attributes div span:nth-child(2),.result-packages .attributes div span:nth-child(2){color:var(--color-result-publishdate-font)}.result-paper .content,.result-packages .content{margin-top:.25rem}.result-paper .comments,.result-packages .comments{font-size:.9rem;margin:.25rem 0 0;padding:0;word-wrap:break-word;line-height:1.24;font-style:italic}.result-packages .attributes{margin-top:.3rem}.template_group_images{display:flex;flex-wrap:wrap}.template_group_images:after{flex-grow:10;content:""}.category-videos,.category-news,.category-map,.category-music,.category-files,.category-social{border:1px solid var(--color-result-border);margin:0 .5rem 1rem!important;border-radius:10px}.category-social .image{width:auto!important;min-width:48px;min-height:48px;padding:0 5px 25px 0!important}.audio-control audio{width:100%;padding:10px 0 0}.embedded-content iframe{width:100%;padding:10px 0 0}.result-videos img.thumbnail{float:left;padding-top:.6rem;padding-right:1rem;width:20rem;height:unset}.result-videos .content{overflow:hidden}.result-videos .embedded-video iframe{width:100%;aspect-ratio:16 / 9;padding:10px 0 0}@supports not (aspect-ratio: 1 / 1){.result-videos .embedded-video iframe{height:25.3125rem}}.engines{float:right;display:flex;flex-wrap:wrap;justify-content:flex-end;color:var(--color-result-engines-font)}.engines span{font-size:smaller;margin-top:0;margin-bottom:0;margin-right:.5rem;margin-left:0}.small_font{font-size:.8em}.highlight{color:var(--color-result-link-font-highlight);background:inherit}.empty_element{font-style:italic}.result-images{flex-grow:1;padding:.5rem .5rem 3rem;margin:.25rem;border:none!important;height:12rem;width:unset}.result-images>a{position:relative;outline:none}.result-images img{margin:0;padding:0;border:none;height:100%;width:auto;object-fit:cover;vertical-align:bottom;background:var(--color-result-image-background)}.result-images .image_resolution{position:absolute;right:0;bottom:0;background:var(--color-image-resolution-background);padding:.3rem .5rem;font-size:.9rem;color:var(--color-image-resolution-font);border-top-left-radius:.3rem}.result-images span.title,.result-images span.source{display:block;position:absolute;width:100%;font-size:.9rem;color:var(--color-result-image-span-font);padding:.5rem 0 0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.result-images span.source{padding:1.8rem 0 0;font-size:.7rem}.result-map img.image{float:right!important;height:100px!important;width:auto!important}.result-map table{font-size:.9em;width:auto;border-collapse:separate;border-spacing:0 .35rem}.result-map table th{font-weight:inherit;width:17rem;vertical-align:top;text-align:left}.result-map table td{vertical-align:top;text-align:left}.hidden{display:none!important}#results{margin-top:1rem;margin-right:2rem;margin-bottom:0;margin-left:10rem;display:grid;grid-template:"corrections sidebar" min-content "answers sidebar" min-content "urls sidebar" 1fr "pagination sidebar" min-content / 45rem 25rem;gap:0 5rem}#results #sidebar *:first-child{margin-top:0}#urls{padding:0;grid-area:urls}#apis .wrapper{display:flex}#suggestions .wrapper{display:flex;flex-flow:column;justify-content:flex-end}#suggestions .wrapper form{display:inline-block;flex:1 1 50%}#suggestions input,#infoboxes input{padding:0;margin:3px;font-size:.9em;display:inline-block;background:transparent;color:var(--color-result-search-url-font);cursor:pointer;width:100%;text-overflow:ellipsis;overflow:hidden;text-align:left}#suggestions input[type=submit],#infoboxes input[type=submit],#suggestions .infobox .url a,#infoboxes .infobox .url a{color:var(--color-result-link-font);text-decoration:none;font-size:.9rem}#suggestions input[type=submit]:hover,#infoboxes input[type=submit]:hover,#suggestions .infobox .url a:hover,#infoboxes .infobox .url a:hover{text-decoration:underline}#corrections{grid-area:corrections;display:flex;flex-flow:row wrap;margin:0 0 1em}#corrections h4,#corrections input[type=submit]{display:inline-block;padding:.5rem;margin:.5rem}#corrections input[type=submit]{font-size:.8rem;border-radius:5px}#infoboxes .title,#suggestions .title,#search_url .title,#engines_msg .title,#apis .title{margin:2em 0 .5em;color:var(--color-base-font)}summary.title{cursor:pointer;padding-top:1em}.sidebar-collapsible{border-top:1px solid var(--color-sidebar-border);padding-bottom:.5em}#sidebar-end-collapsible{border-bottom:1px solid var(--color-sidebar-border);width:100%}#answers{grid-area:answers;background:var(--color-answer-background);padding:1rem;margin:1rem 0;margin-top:0;color:var(--color-answer-font);border-radius:10px}#answers h4{display:none}#answers span{overflow-wrap:anywhere}#answers .answer{display:flex;flex-direction:column}#answers .answer-url{margin:5px 10px 10px auto}#infoboxes form{min-width:210px}#sidebar{grid-area:sidebar;word-wrap:break-word;color:var(--color-sidebar-font)}#sidebar .infobox{margin:10px 0;border:1px solid var(--color-sidebar-border);padding:1rem;font-size:.9em;border-radius:10px}#sidebar .infobox h2{margin:0 0 .5em}#sidebar .infobox img{max-width:100%;max-height:12em;display:block;margin:0 auto;padding:0}#sidebar .infobox dt{font-weight:700}#sidebar .infobox .attributes dl{margin:.5em 0}#sidebar .infobox .attributes dt{display:inline;margin:.5em .25em .5em 0;padding:0}#sidebar .infobox .attributes dd{display:inline;margin:.5em 0;padding:0}#sidebar .infobox input{font-size:1em}#sidebar .infobox br,#sidebar .infobox .attributes,#sidebar .infobox .urls{clear:both}#apis input{font-size:.9em;margin:0 10px 0 0;padding:5px 10px;border-radius:5px;background:var(--color-show-btn-background);color:var(--color-show-btn-font);cursor:pointer}#apis input:hover{background:var(--color-btn-background);color:var(--color-btn-font)}#engines_msg .engine-name{width:10rem}#engines_msg .response-error{color:var(--color-error)}#engines_msg .bar-chart-value{width:auto}#search_url div.selectable_url pre{float:left;width:200em}#search_url button#copy_url{float:right;padding:.4rem;margin-left:.5rem;border-radius:.3rem;display:none}#links_on_top{position:absolute;right:1rem;text-align:right;top:2.7rem;padding:0;border:0;display:flex;align-items:center;font-size:1em;color:var(--color-search-font)}#links_on_top a{display:flex;align-items:center;margin-left:1em}#links_on_top a svg{font-size:1.2em;margin-right:.125em}#links_on_top a,#links_on_top a:link *,#links_on_top a:hover *,#links_on_top a:visited *,#links_on_top a:active *{color:var(--color-search-font)}#pagination{grid-area:pagination}#pagination br{clear:both}.numbered_pagination{display:flex;flex-direction:row;justify-content:center;align-items:center;overflow:hidden}.page_number{background:transparent!important;color:var(--color-result-link-font)!important;text-decoration:underline}.page_number_current{background:transparent;color:var(--color-result-link-visited-font);border:none}#backToTop{border:1px solid var(--color-backtotop-border);margin:0;padding:0;font-size:1em;background:var(--color-backtotop-background);position:fixed;bottom:8rem;left:56.3rem;transition:opacity .5s;opacity:0;pointer-events:none;border-radius:10px}#backToTop a{display:block;margin:0;padding:.7em}#backToTop a,#backToTop a:visited,#backToTop a:hover,#backToTop a:active{color:var(--color-backtotop-font)}#results.scrolling #backToTop{opacity:1;pointer-events:all}@media screen and (width <= calc(79.75em - .5px)){#links_on_top span{display:none}}@media screen and (width <= 52rem){body.results_endpoint #links_on_top .link_on_top_about,body.results_endpoint #links_on_top .link_on_top_donate{display:none}}@media screen and (min-width: 50em) and (max-width: 79.75em){.center-alignment-no #links_on_top span{display:none}.center-alignment-no .page_with_header{margin:2rem .5rem;width:auto}.center-alignment-no #infoboxes{position:inherit;max-width:inherit}.center-alignment-no #infoboxes .infobox{clear:both}.center-alignment-no #infoboxes .infobox img{float:left;max-width:10em;margin:.5em .5em .5em 0}.center-alignment-no #sidebar{margin:0 .5rem .125rem;padding:0;float:none;border:none;width:auto}.center-alignment-no #sidebar input{border:0}.center-alignment-no .result .thumbnail{max-width:98%}.center-alignment-no .result .url span.url{display:block;white-space:nowrap;text-overflow:ellipsis;overflow:hidden;width:100%}.center-alignment-no .result .engines{float:right;display:flex;flex-wrap:wrap;justify-content:flex-end;padding:3px 0 0}.center-alignment-no .result-images{border-bottom:none!important}.center-alignment-no .image_result,.center-alignment-no .image_result img{max-width:98%}.center-alignment-no #backToTop{display:none}.center-alignment-no #pagination{margin:2rem 0 0!important}.center-alignment-no #main_results div#results{margin:0 auto;justify-content:center;display:grid;grid-template:"corrections" min-content "answers" min-content "sidebar" min-content "urls" 1fr "pagination" min-content / 45rem;gap:0}}#main_results div#results.only_template_images{margin:1rem .5rem 0;display:grid;grid-template:"corrections" min-content "answers" min-content "sidebar" min-content "urls" 1fr "pagination" min-content / 100%;gap:0}#main_results div#results.only_template_images #sidebar{display:none}#main_results div#results.only_template_images #urls{margin:0;display:flex;flex-wrap:wrap}#main_results div#results.only_template_images #urls:after{flex-grow:10;content:""}#main_results div#results.only_template_images #backToTop{left:auto;right:1rem}#main_results div#results.only_template_images #pagination{margin-right:4rem}@media screen and (max-width: 50em){#links_on_top span{display:none}.page_with_header{margin:2rem .5rem;width:auto}#infoboxes{position:inherit;max-width:inherit}#infoboxes .infobox{clear:both}#infoboxes .infobox img{float:left;max-width:10em;margin:.5em .5em .5em 0}#sidebar{margin:0 .5rem .125rem;padding:0;float:none;border:none;width:auto}#sidebar input{border:0}.result .thumbnail{max-width:98%}.result .url span.url{display:block;white-space:nowrap;text-overflow:ellipsis;overflow:hidden;width:100%}.result .engines{float:right;display:flex;flex-wrap:wrap;justify-content:flex-end;padding:3px 0 0}.result-images{border-bottom:none!important}.image_result,.image_result img{max-width:98%}#backToTop{display:none}#pagination{margin:2rem 0 0!important}#main_results div#results{margin:0 auto;justify-content:center;display:grid;grid-template:"corrections" min-content "answers" min-content "sidebar" min-content "urls" 1fr "pagination" min-content / 45rem;gap:0}html{background-color:var(--color-base-background-mobile)}#main_results div#results{grid-template-columns:100%;margin:0 auto}#links_on_top{top:1.4rem;right:10px}#main_index #links_on_top{top:.5rem;right:.5rem}#results{margin:0;padding:0}#pagination{margin:2rem 1rem 0!important}article[data-vim-selected]{border:1px solid var(--color-result-vim-arrow);border-radius:10px}.result{background:var(--color-result-background);border:1px solid var(--color-result-background);margin:1rem 2%;width:96%;border-radius:10px}.result-images{margin:0;height:10rem;background:var(--color-base-background-mobile);width:unset}.infobox{border:none!important;background-color:var(--color-sidebar-background)}.numbered_pagination{display:none}.result-paper .attributes,.result-packages .attributes,.result-paper .attributes div,.result-packages .attributes div{display:block}.result-paper .attributes div span,.result-packages .attributes div span{display:inline}.result-paper .attributes div span:first-child,.result-packages .attributes div span:first-child{font-weight:700}.result-paper .attributes div span:nth-child(2),.result-packages .attributes div span:nth-child(2){margin-left:.5rem}}@media screen and (max-width: 35em){.result-videos img.thumbnail{float:none!important}.result-videos .content{overflow:inherit}}pre code{white-space:pre-wrap}#main_results .result-keyvalue caption{padding:.8rem .5rem;font-style:italic;caption-side:bottom;background-color:var(--color-result-keyvalue-table)}#main_results .result-keyvalue .col-key{width:25%}#main_results .result-keyvalue table{word-break:break-word;table-layout:fixed;width:100%;background-color:var(--color-result-keyvalue-table)}#main_results .result-keyvalue tr.odd{background-color:var(--color-result-keyvalue-odd)}#main_results .result-keyvalue tr.even{background-color:var(--color-result-keyvalue-even)}#main_results .result-keyvalue th,#main_results .result-keyvalue td{padding:.3rem .5rem} +/*! normalize.css v8.0.1 | MIT License | github.com/necolas/normalize.css */html{line-height:1.15;-webkit-text-size-adjust:100%}body{margin:0}main{display:block}h1{font-size:2em;margin:.67em 0}hr{box-sizing:content-box;height:0;overflow:visible}pre{font-family:monospace,monospace;font-size:1em}a{background-color:transparent}abbr[title]{border-bottom:none;text-decoration:underline;text-decoration:underline dotted}b,strong{font-weight:bolder}code,kbd,samp{font-family:monospace,monospace;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}img{border-style:none}button,input,optgroup,select,textarea{font-family:inherit;font-size:100%;line-height:1.15;margin:0}button,input{overflow:visible}button,select{text-transform:none}button,[type=button],[type=reset],[type=submit]{-webkit-appearance:button}button::-moz-focus-inner,[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner{border-style:none;padding:0}button:-moz-focusring,[type=button]:-moz-focusring,[type=reset]:-moz-focusring,[type=submit]:-moz-focusring{outline:1px dotted ButtonText}fieldset{padding:.35em .75em .625em}legend{box-sizing:border-box;color:inherit;display:table;max-width:100%;padding:0;white-space:normal}progress{vertical-align:baseline}textarea{overflow:auto}[type=checkbox],[type=radio]{box-sizing:border-box;padding:0}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}details{display:block}summary{display:list-item}template{display:none}[hidden]{display:none}:root{--color-base-font: #444;--color-base-font-rgb: 68, 68, 68;--color-base-background: #fff;--color-base-background-mobile: #f2f5f8;--color-url-font: #334999;--color-url-visited-font: #9822c3;--color-header-background: #fdfbff;--color-header-border: #ddd;--color-footer-background: #fdfbff;--color-footer-border: #ddd;--color-sidebar-border: #ddd;--color-sidebar-font: #000;--color-sidebar-background: #fff;--color-backtotop-font: #444;--color-backtotop-border: #ddd;--color-backtotop-background: #fff;--color-btn-background: #3050ff;--color-btn-font: #fff;--color-show-btn-background: #bbb;--color-show-btn-font: #000;--color-search-border: #bbb;--color-search-shadow: 0 2px 8px rgba(34, 38, 46, .25);--color-search-background: #fff;--color-search-font: #222;--color-search-background-hover: #3050ff;--color-error: #db3434;--color-error-background: #fae1e1;--color-warning: #dbba34;--color-warning-background: #faf5e1;--color-success: #42db34;--color-success-background: #e3fae1;--color-categories-item-selected-font: #3050ff;--color-categories-item-border-selected: #3050ff;--color-autocomplete-font: #000;--color-autocomplete-border: #bbb;--color-autocomplete-shadow: 0 2px 8px rgba(34, 38, 46, .25);--color-autocomplete-background: #fff;--color-autocomplete-background-hover: #e3e3e3;--color-answer-font: #444;--color-answer-background: #fff;--color-result-keyvalue-col-table: #fdfbff;--color-result-keyvalue-odd: #fdfbff;--color-result-keyvalue-even: #fff;--color-result-background: #fff;--color-result-border: #ddd;--color-result-url-font: #000;--color-result-vim-selected: #f7f7f7;--color-result-vim-arrow: #000bbb;--color-result-description-highlight-font: #000;--color-result-link-font: #000bbb;--color-result-link-font-highlight: #000bbb;--color-result-link-visited-font: #9822c3;--color-result-publishdate-font: #777;--color-result-engines-font: #545454;--color-result-search-url-border: #ddd;--color-result-search-url-font: #000;--color-result-image-span-font: #444;--color-result-image-span-font-selected: #fff;--color-result-image-background: #fff;--color-settings-tr-hover: #ebebeb;--color-settings-engine-description-font: #545454;--color-settings-table-group-background: #0001;--color-result-detail-font: #fff;--color-result-detail-label-font: lightgray;--color-result-detail-background: #242424;--color-result-detail-hr: #555;--color-result-detail-link: #8af;--color-result-detail-loader-border: rgba(255, 255, 255, .2);--color-result-detail-loader-borderleft: rgba(0, 0, 0, 0);--color-toolkit-badge-font: #fff;--color-toolkit-badge-background: #545454;--color-toolkit-kbd-font: #fff;--color-toolkit-kbd-background: #000;--color-toolkit-dialog-border: #ddd;--color-toolkit-dialog-background: #fff;--color-toolkit-tabs-label-border: #fff;--color-toolkit-tabs-section-border: #ddd;--color-toolkit-select-background: #e1e1e1;--color-toolkit-select-border: #ddd;--color-toolkit-select-background-hover: #bbb;--color-toolkit-input-text-font: #222;--color-toolkit-checkbox-onoff-off-background: #ddd;--color-toolkit-checkbox-onoff-on-background: #ddd;--color-toolkit-checkbox-onoff-on-mark-background: #3050ff;--color-toolkit-checkbox-onoff-on-mark-color: #fff;--color-toolkit-checkbox-onoff-off-mark-background: #aaa;--color-toolkit-checkbox-onoff-off-mark-color: #fff;--color-toolkit-checkbox-label-background: #ddd;--color-toolkit-checkbox-label-border: #ddd;--color-toolkit-checkbox-input-border: #3050ff;--color-toolkit-engine-tooltip-border: #ddd;--color-toolkit-engine-tooltip-background: #fff;--color-toolkit-loader-border: rgba(0, 0, 0, .2);--color-toolkit-loader-borderleft: rgba(255, 255, 255, 0);--color-doc-code: #003;--color-doc-code-background: #ddeaff;--color-bar-chart-primary: #5bc0de;--color-bar-chart-secondary: #deb15b;--color-image-resolution-background: rgba(0, 0, 0, .5);--color-image-resolution-font: #fff;--color-loading-indicator: rgba(255, 255, 255, .2);--color-loading-indicator-gap: #fff;--color-line-number: #64708d;--color-favicon-background-color: #ddd;--color-favicon-border-color: #ccc}@media (prefers-color-scheme: dark){:root.theme-auto{--color-base-font: #bbb;--color-base-font-rgb: 187, 187, 187;--color-base-background: #222428;--color-base-background-mobile: #222428;--color-url-font: #8af;--color-url-visited-font: #c09cd9;--color-header-background: #1e1e22;--color-header-border: #333;--color-footer-background: #1e1e22;--color-footer-border: #333;--color-sidebar-border: #555;--color-sidebar-font: #fff;--color-sidebar-background: #292c34;--color-backtotop-font: #bbb;--color-backtotop-border: #333;--color-backtotop-background: #2b2e36;--color-btn-background: #58f;--color-btn-font: #222;--color-show-btn-background: #555;--color-show-btn-font: #fff;--color-search-border: #555;--color-search-shadow: 0 2px 8px rgba(34, 38, 46, .25);--color-search-background: #2b2e36;--color-search-font: #fff;--color-search-background-hover: #58f;--color-error: #f55b5b;--color-error-background: #390a0a;--color-warning: #f1d561;--color-warning-background: #39300a;--color-success: #79f56e;--color-success-background: #0e390a;--color-categories-item-selected-font: #58f;--color-categories-item-border-selected: #58f;--color-autocomplete-font: #fff;--color-autocomplete-border: #555;--color-autocomplete-shadow: 0 2px 8px rgba(34, 38, 46, .25);--color-autocomplete-background: #2b2e36;--color-autocomplete-background-hover: #1e1e22;--color-answer-font: #bbb;--color-answer-background: #26292f;--color-result-keyvalue-col-table: #1e1e22;--color-result-keyvalue-odd: #1e1e22;--color-result-keyvalue-even: #26292f;--color-result-background: #26292f;--color-result-border: #333;--color-result-url-font: #fff;--color-result-vim-selected: #1f1f23cc;--color-result-vim-arrow: #8af;--color-result-description-highlight-font: #fff;--color-result-link-font: #8af;--color-result-link-font-highlight: #8af;--color-result-link-visited-font: #c09cd9;--color-result-publishdate-font: #888;--color-result-engines-font: #a4a4a4;--color-result-search-url-border: #555;--color-result-search-url-font: #fff;--color-result-detail-font: #fff;--color-result-detail-label-font: lightgray;--color-result-detail-background: #1a1a1c;--color-result-detail-hr: #555;--color-result-detail-link: #8af;--color-result-detail-loader-border: rgba(255, 255, 255, .2);--color-result-detail-loader-borderleft: rgba(0, 0, 0, 0);--color-result-image-span-font: #bbb;--color-result-image-span-font-selected: #222;--color-result-image-background: #222;--color-settings-tr-hover: #2c2c32;--color-settings-engine-description-font: #909090;--color-settings-table-group-background: #1b1b21;--color-toolkit-badge-font: #fff;--color-toolkit-badge-background: #555;--color-toolkit-kbd-font: #000;--color-toolkit-kbd-background: #fff;--color-toolkit-dialog-border: #555;--color-toolkit-dialog-background: #1e1e22;--color-toolkit-tabs-label-border: #222;--color-toolkit-tabs-section-border: #555;--color-toolkit-select-background: #313338;--color-toolkit-select-border: #555;--color-toolkit-select-background-hover: #373b49;--color-toolkit-input-text-font: #fff;--color-toolkit-checkbox-onoff-off-background: #313338;--color-toolkit-checkbox-onoff-on-background: #313338;--color-toolkit-checkbox-onoff-on-mark-background: #58f;--color-toolkit-checkbox-onoff-on-mark-color: #222;--color-toolkit-checkbox-onoff-off-mark-background: #ddd;--color-toolkit-checkbox-onoff-off-mark-color: #222;--color-toolkit-checkbox-label-background: #222;--color-toolkit-checkbox-label-border: #333;--color-toolkit-checkbox-input-border: #58f;--color-toolkit-engine-tooltip-border: #333;--color-toolkit-engine-tooltip-background: #222;--color-toolkit-loader-border: rgba(255, 255, 255, .2);--color-toolkit-loader-borderleft: rgba(0, 0, 0, 0);--color-doc-code: #ddd;--color-doc-code-background: #4d5a6f;--color-favicon-background-color: #ddd;--color-favicon-border-color: #ccc}}:root.theme-dark{--color-base-font: #bbb;--color-base-font-rgb: 187, 187, 187;--color-base-background: #222428;--color-base-background-mobile: #222428;--color-url-font: #8af;--color-url-visited-font: #c09cd9;--color-header-background: #1e1e22;--color-header-border: #333;--color-footer-background: #1e1e22;--color-footer-border: #333;--color-sidebar-border: #555;--color-sidebar-font: #fff;--color-sidebar-background: #292c34;--color-backtotop-font: #bbb;--color-backtotop-border: #333;--color-backtotop-background: #2b2e36;--color-btn-background: #58f;--color-btn-font: #222;--color-show-btn-background: #555;--color-show-btn-font: #fff;--color-search-border: #555;--color-search-shadow: 0 2px 8px rgba(34, 38, 46, .25);--color-search-background: #2b2e36;--color-search-font: #fff;--color-search-background-hover: #58f;--color-error: #f55b5b;--color-error-background: #390a0a;--color-warning: #f1d561;--color-warning-background: #39300a;--color-success: #79f56e;--color-success-background: #0e390a;--color-categories-item-selected-font: #58f;--color-categories-item-border-selected: #58f;--color-autocomplete-font: #fff;--color-autocomplete-border: #555;--color-autocomplete-shadow: 0 2px 8px rgba(34, 38, 46, .25);--color-autocomplete-background: #2b2e36;--color-autocomplete-background-hover: #1e1e22;--color-answer-font: #bbb;--color-answer-background: #26292f;--color-result-keyvalue-col-table: #1e1e22;--color-result-keyvalue-odd: #1e1e22;--color-result-keyvalue-even: #26292f;--color-result-background: #26292f;--color-result-border: #333;--color-result-url-font: #fff;--color-result-vim-selected: #1f1f23cc;--color-result-vim-arrow: #8af;--color-result-description-highlight-font: #fff;--color-result-link-font: #8af;--color-result-link-font-highlight: #8af;--color-result-link-visited-font: #c09cd9;--color-result-publishdate-font: #888;--color-result-engines-font: #a4a4a4;--color-result-search-url-border: #555;--color-result-search-url-font: #fff;--color-result-detail-font: #fff;--color-result-detail-label-font: lightgray;--color-result-detail-background: #1a1a1c;--color-result-detail-hr: #555;--color-result-detail-link: #8af;--color-result-detail-loader-border: rgba(255, 255, 255, .2);--color-result-detail-loader-borderleft: rgba(0, 0, 0, 0);--color-result-image-span-font: #bbb;--color-result-image-span-font-selected: #222;--color-result-image-background: #222;--color-settings-tr-hover: #2c2c32;--color-settings-engine-description-font: #909090;--color-settings-table-group-background: #1b1b21;--color-toolkit-badge-font: #fff;--color-toolkit-badge-background: #555;--color-toolkit-kbd-font: #000;--color-toolkit-kbd-background: #fff;--color-toolkit-dialog-border: #555;--color-toolkit-dialog-background: #1e1e22;--color-toolkit-tabs-label-border: #222;--color-toolkit-tabs-section-border: #555;--color-toolkit-select-background: #313338;--color-toolkit-select-border: #555;--color-toolkit-select-background-hover: #373b49;--color-toolkit-input-text-font: #fff;--color-toolkit-checkbox-onoff-off-background: #313338;--color-toolkit-checkbox-onoff-on-background: #313338;--color-toolkit-checkbox-onoff-on-mark-background: #58f;--color-toolkit-checkbox-onoff-on-mark-color: #222;--color-toolkit-checkbox-onoff-off-mark-background: #ddd;--color-toolkit-checkbox-onoff-off-mark-color: #222;--color-toolkit-checkbox-label-background: #222;--color-toolkit-checkbox-label-border: #333;--color-toolkit-checkbox-input-border: #58f;--color-toolkit-engine-tooltip-border: #333;--color-toolkit-engine-tooltip-background: #222;--color-toolkit-loader-border: rgba(255, 255, 255, .2);--color-toolkit-loader-borderleft: rgba(0, 0, 0, 0);--color-doc-code: #ddd;--color-doc-code-background: #4d5a6f;--color-favicon-background-color: #ddd;--color-favicon-border-color: #ccc}:root.theme-black{--color-base-font: #bbb;--color-base-font-rgb: 187, 187, 187;--color-base-background: #222428;--color-base-background-mobile: #222428;--color-url-font: #8af;--color-url-visited-font: #c09cd9;--color-header-background: #1e1e22;--color-header-border: #333;--color-footer-background: #1e1e22;--color-footer-border: #333;--color-sidebar-border: #555;--color-sidebar-font: #fff;--color-sidebar-background: #292c34;--color-backtotop-font: #bbb;--color-backtotop-border: #333;--color-backtotop-background: #2b2e36;--color-btn-background: #58f;--color-btn-font: #222;--color-show-btn-background: #555;--color-show-btn-font: #fff;--color-search-border: #555;--color-search-shadow: 0 2px 8px rgba(34, 38, 46, .25);--color-search-background: #2b2e36;--color-search-font: #fff;--color-search-background-hover: #58f;--color-error: #f55b5b;--color-error-background: #390a0a;--color-warning: #f1d561;--color-warning-background: #39300a;--color-success: #79f56e;--color-success-background: #0e390a;--color-categories-item-selected-font: #58f;--color-categories-item-border-selected: #58f;--color-autocomplete-font: #fff;--color-autocomplete-border: #555;--color-autocomplete-shadow: 0 2px 8px rgba(34, 38, 46, .25);--color-autocomplete-background: #2b2e36;--color-autocomplete-background-hover: #1e1e22;--color-answer-font: #bbb;--color-answer-background: #26292f;--color-result-keyvalue-col-table: #1e1e22;--color-result-keyvalue-odd: #1e1e22;--color-result-keyvalue-even: #26292f;--color-result-background: #26292f;--color-result-border: #333;--color-result-url-font: #fff;--color-result-vim-selected: #1f1f23cc;--color-result-vim-arrow: #8af;--color-result-description-highlight-font: #fff;--color-result-link-font: #8af;--color-result-link-font-highlight: #8af;--color-result-link-visited-font: #c09cd9;--color-result-publishdate-font: #888;--color-result-engines-font: #a4a4a4;--color-result-search-url-border: #555;--color-result-search-url-font: #fff;--color-result-detail-font: #fff;--color-result-detail-label-font: lightgray;--color-result-detail-background: #1a1a1c;--color-result-detail-hr: #555;--color-result-detail-link: #8af;--color-result-detail-loader-border: rgba(255, 255, 255, .2);--color-result-detail-loader-borderleft: rgba(0, 0, 0, 0);--color-result-image-span-font: #bbb;--color-result-image-span-font-selected: #222;--color-result-image-background: #222;--color-settings-tr-hover: #2c2c32;--color-settings-engine-description-font: #909090;--color-settings-table-group-background: #1b1b21;--color-toolkit-badge-font: #fff;--color-toolkit-badge-background: #555;--color-toolkit-kbd-font: #000;--color-toolkit-kbd-background: #fff;--color-toolkit-dialog-border: #555;--color-toolkit-dialog-background: #1e1e22;--color-toolkit-tabs-label-border: #222;--color-toolkit-tabs-section-border: #555;--color-toolkit-select-background: #313338;--color-toolkit-select-border: #555;--color-toolkit-select-background-hover: #373b49;--color-toolkit-input-text-font: #fff;--color-toolkit-checkbox-onoff-off-background: #313338;--color-toolkit-checkbox-onoff-on-background: #313338;--color-toolkit-checkbox-onoff-on-mark-background: #58f;--color-toolkit-checkbox-onoff-on-mark-color: #222;--color-toolkit-checkbox-onoff-off-mark-background: #ddd;--color-toolkit-checkbox-onoff-off-mark-color: #222;--color-toolkit-checkbox-label-background: #222;--color-toolkit-checkbox-label-border: #333;--color-toolkit-checkbox-input-border: #58f;--color-toolkit-engine-tooltip-border: #333;--color-toolkit-engine-tooltip-background: #222;--color-toolkit-loader-border: rgba(255, 255, 255, .2);--color-toolkit-loader-borderleft: rgba(0, 0, 0, 0);--color-doc-code: #ddd;--color-doc-code-background: #4d5a6f;--color-favicon-background-color: #ddd;--color-favicon-border-color: #ccc;--color-base-background: #000;--color-base-background-mobile: #000;--color-header-background: #000;--color-footer-background: #000;--color-sidebar-background: #000}.code-highlight pre{line-height:100%}.code-highlight td.linenos .normal,.code-highlight span.linenos{color:inherit;background-color:transparent;padding-left:5px;padding-right:5px}.code-highlight td.linenos .special,.code-highlight span.linenos.special{color:#000;background-color:#ffffc0;padding-left:5px;padding-right:5px}.code-highlight .hll{background-color:#ffc}.code-highlight .c{color:#3d7b7b;font-style:italic}.code-highlight .err{border:1px solid #F00}.code-highlight .k{color:green;font-weight:700}.code-highlight .o{color:#666}.code-highlight .ch,.code-highlight .cm{color:#3d7b7b;font-style:italic}.code-highlight .cp{color:#9c6500}.code-highlight .cpf,.code-highlight .c1,.code-highlight .cs{color:#3d7b7b;font-style:italic}.code-highlight .gd{color:#a00000}.code-highlight .ge{font-style:italic}.code-highlight .ges{font-weight:700;font-style:italic}.code-highlight .gr{color:#e40000}.code-highlight .gh{color:navy;font-weight:700}.code-highlight .gi{color:#008400}.code-highlight .go{color:#717171}.code-highlight .gp{color:navy;font-weight:700}.code-highlight .gs{font-weight:700}.code-highlight .gu{color:purple;font-weight:700}.code-highlight .gt{color:#04d}.code-highlight .kc,.code-highlight .kd,.code-highlight .kn{color:green;font-weight:700}.code-highlight .kp{color:green}.code-highlight .kr{color:green;font-weight:700}.code-highlight .kt{color:#b00040}.code-highlight .m{color:#666}.code-highlight .s{color:#ba2121}.code-highlight .na{color:#687822}.code-highlight .nb{color:green}.code-highlight .nc{color:#00f;font-weight:700}.code-highlight .no{color:#800}.code-highlight .nd{color:#a2f}.code-highlight .ni{color:#717171;font-weight:700}.code-highlight .ne{color:#cb3f38;font-weight:700}.code-highlight .nf{color:#00f}.code-highlight .nl{color:#767600}.code-highlight .nn{color:#00f;font-weight:700}.code-highlight .nt{color:green;font-weight:700}.code-highlight .nv{color:#19177c}.code-highlight .ow{color:#a2f;font-weight:700}.code-highlight .w{color:#bbb}.code-highlight .mb,.code-highlight .mf,.code-highlight .mh,.code-highlight .mi,.code-highlight .mo{color:#666}.code-highlight .sa,.code-highlight .sb,.code-highlight .sc,.code-highlight .dl{color:#ba2121}.code-highlight .sd{color:#ba2121;font-style:italic}.code-highlight .s2{color:#ba2121}.code-highlight .se{color:#aa5d1f;font-weight:700}.code-highlight .sh{color:#ba2121}.code-highlight .si{color:#a45a77;font-weight:700}.code-highlight .sx{color:green}.code-highlight .sr{color:#a45a77}.code-highlight .s1{color:#ba2121}.code-highlight .ss{color:#19177c}.code-highlight .bp{color:green}.code-highlight .fm{color:#00f}.code-highlight .vc,.code-highlight .vg,.code-highlight .vi,.code-highlight .vm{color:#19177c}.code-highlight .il{color:#666}.codelines{margin:.125rem 0 0;padding:1rem 0 0}.code-highlight pre{overflow:auto;margin:0;padding:0 0 .75rem}.code-highlight .linenos{-webkit-user-select:none;user-select:none;cursor:default;margin-right:8px;text-align:right}.code-highlight .linenos::selection{background:transparent}.code-highlight .linenos::-moz-selection{background:transparent}.code-highlight span.linenos{color:var(--color-line-number)}@media (prefers-color-scheme: dark){:root.theme-auto .code-highlight pre{line-height:100%}:root.theme-auto .code-highlight td.linenos .normal{color:#3c4354;background-color:transparent;padding-left:5px;padding-right:5px}:root.theme-auto .code-highlight span.linenos{color:#3c4354;background-color:transparent;padding-left:5px;padding-right:5px}:root.theme-auto .code-highlight td.linenos .special{color:#3c4354;background-color:#ffffc0;padding-left:5px;padding-right:5px}:root.theme-auto .code-highlight span.linenos.special{color:#3c4354;background-color:#ffffc0;padding-left:5px;padding-right:5px}:root.theme-auto .code-highlight .hll{background-color:#6e7681}:root.theme-auto .code-highlight .c{color:#7e8aa1}:root.theme-auto .code-highlight .err{color:#f88f7f}:root.theme-auto .code-highlight .esc{color:#d4d2c8}:root.theme-auto .code-highlight .g{color:#d4d2c8}:root.theme-auto .code-highlight .k{color:#ffad66}:root.theme-auto .code-highlight .l{color:#d5ff80}:root.theme-auto .code-highlight .n{color:#d4d2c8}:root.theme-auto .code-highlight .o{color:#ffad66}:root.theme-auto .code-highlight .x{color:#d4d2c8}:root.theme-auto .code-highlight .p{color:#d4d2c8}:root.theme-auto .code-highlight .ch{color:#f88f7f;font-style:italic}:root.theme-auto .code-highlight .cm{color:#7e8aa1}:root.theme-auto .code-highlight .cp{color:#ffad66;font-weight:700}:root.theme-auto .code-highlight .cpf{color:#7e8aa1}:root.theme-auto .code-highlight .c1{color:#7e8aa1}:root.theme-auto .code-highlight .cs{color:#7e8aa1;font-style:italic}:root.theme-auto .code-highlight .gd{color:#f88f7f;background-color:#3d1e20}:root.theme-auto .code-highlight .ge{color:#d4d2c8;font-style:italic}:root.theme-auto .code-highlight .ges{color:#d4d2c8}:root.theme-auto .code-highlight .gr{color:#f88f7f}:root.theme-auto .code-highlight .gh{color:#d4d2c8}:root.theme-auto .code-highlight .gi{color:#6ad4af;background-color:#19362c}:root.theme-auto .code-highlight .go{color:#7e8aa1}:root.theme-auto .code-highlight .gp{color:#d4d2c8}:root.theme-auto .code-highlight .gs{color:#d4d2c8;font-weight:700}:root.theme-auto .code-highlight .gu{color:#d4d2c8}:root.theme-auto .code-highlight .gt{color:#f88f7f}:root.theme-auto .code-highlight .kc{color:#ffad66}:root.theme-auto .code-highlight .kd{color:#ffad66}:root.theme-auto .code-highlight .kn{color:#ffad66}:root.theme-auto .code-highlight .kp{color:#ffad66}:root.theme-auto .code-highlight .kr{color:#ffad66}:root.theme-auto .code-highlight .kt{color:#73d0ff}:root.theme-auto .code-highlight .ld{color:#d5ff80}:root.theme-auto .code-highlight .m{color:#dfbfff}:root.theme-auto .code-highlight .s{color:#d5ff80}:root.theme-auto .code-highlight .na{color:#ffd173}:root.theme-auto .code-highlight .nb{color:#ffd173}:root.theme-auto .code-highlight .nc{color:#73d0ff}:root.theme-auto .code-highlight .no{color:#ffd173}:root.theme-auto .code-highlight .nd{color:#7e8aa1;font-weight:700;font-style:italic}:root.theme-auto .code-highlight .ni{color:#95e6cb}:root.theme-auto .code-highlight .ne{color:#73d0ff}:root.theme-auto .code-highlight .nf{color:#ffd173}:root.theme-auto .code-highlight .nl{color:#d4d2c8}:root.theme-auto .code-highlight .nn{color:#d4d2c8}:root.theme-auto .code-highlight .nx{color:#d4d2c8}:root.theme-auto .code-highlight .py{color:#ffd173}:root.theme-auto .code-highlight .nt{color:#5ccfe6}:root.theme-auto .code-highlight .nv{color:#d4d2c8}:root.theme-auto .code-highlight .ow{color:#ffad66}:root.theme-auto .code-highlight .pm{color:#d4d2c8}:root.theme-auto .code-highlight .w{color:#d4d2c8}:root.theme-auto .code-highlight .mb{color:#dfbfff}:root.theme-auto .code-highlight .mf{color:#dfbfff}:root.theme-auto .code-highlight .mh{color:#dfbfff}:root.theme-auto .code-highlight .mi{color:#dfbfff}:root.theme-auto .code-highlight .mo{color:#dfbfff}:root.theme-auto .code-highlight .sa{color:#f29e74}:root.theme-auto .code-highlight .sb{color:#d5ff80}:root.theme-auto .code-highlight .sc{color:#d5ff80}:root.theme-auto .code-highlight .dl{color:#d5ff80}:root.theme-auto .code-highlight .sd{color:#7e8aa1}:root.theme-auto .code-highlight .s2{color:#d5ff80}:root.theme-auto .code-highlight .se{color:#95e6cb}:root.theme-auto .code-highlight .sh{color:#d5ff80}:root.theme-auto .code-highlight .si{color:#95e6cb}:root.theme-auto .code-highlight .sx{color:#95e6cb}:root.theme-auto .code-highlight .sr{color:#95e6cb}:root.theme-auto .code-highlight .s1{color:#d5ff80}:root.theme-auto .code-highlight .ss{color:#dfbfff}:root.theme-auto .code-highlight .bp{color:#5ccfe6}:root.theme-auto .code-highlight .fm{color:#ffd173}:root.theme-auto .code-highlight .vc{color:#d4d2c8}:root.theme-auto .code-highlight .vg{color:#d4d2c8}:root.theme-auto .code-highlight .vi{color:#d4d2c8}:root.theme-auto .code-highlight .vm{color:#d4d2c8}:root.theme-auto .code-highlight .il{color:#dfbfff}:root.theme-auto .code-highlight pre{overflow:auto;margin:0;padding:0 0 .75rem}:root.theme-auto .code-highlight .linenos{-webkit-user-select:none;user-select:none;cursor:default;margin-right:8px;text-align:right}:root.theme-auto .code-highlight .linenos::selection{background:transparent}:root.theme-auto .code-highlight .linenos::-moz-selection{background:transparent}:root.theme-auto .code-highlight span.linenos{color:var(--color-line-number)}}:root.theme-dark .code-highlight pre{line-height:100%}:root.theme-dark .code-highlight td.linenos .normal{color:#3c4354;background-color:transparent;padding-left:5px;padding-right:5px}:root.theme-dark .code-highlight span.linenos{color:#3c4354;background-color:transparent;padding-left:5px;padding-right:5px}:root.theme-dark .code-highlight td.linenos .special{color:#3c4354;background-color:#ffffc0;padding-left:5px;padding-right:5px}:root.theme-dark .code-highlight span.linenos.special{color:#3c4354;background-color:#ffffc0;padding-left:5px;padding-right:5px}:root.theme-dark .code-highlight .hll{background-color:#6e7681}:root.theme-dark .code-highlight .c{color:#7e8aa1}:root.theme-dark .code-highlight .err{color:#f88f7f}:root.theme-dark .code-highlight .esc{color:#d4d2c8}:root.theme-dark .code-highlight .g{color:#d4d2c8}:root.theme-dark .code-highlight .k{color:#ffad66}:root.theme-dark .code-highlight .l{color:#d5ff80}:root.theme-dark .code-highlight .n{color:#d4d2c8}:root.theme-dark .code-highlight .o{color:#ffad66}:root.theme-dark .code-highlight .x{color:#d4d2c8}:root.theme-dark .code-highlight .p{color:#d4d2c8}:root.theme-dark .code-highlight .ch{color:#f88f7f;font-style:italic}:root.theme-dark .code-highlight .cm{color:#7e8aa1}:root.theme-dark .code-highlight .cp{color:#ffad66;font-weight:700}:root.theme-dark .code-highlight .cpf{color:#7e8aa1}:root.theme-dark .code-highlight .c1{color:#7e8aa1}:root.theme-dark .code-highlight .cs{color:#7e8aa1;font-style:italic}:root.theme-dark .code-highlight .gd{color:#f88f7f;background-color:#3d1e20}:root.theme-dark .code-highlight .ge{color:#d4d2c8;font-style:italic}:root.theme-dark .code-highlight .ges{color:#d4d2c8}:root.theme-dark .code-highlight .gr{color:#f88f7f}:root.theme-dark .code-highlight .gh{color:#d4d2c8}:root.theme-dark .code-highlight .gi{color:#6ad4af;background-color:#19362c}:root.theme-dark .code-highlight .go{color:#7e8aa1}:root.theme-dark .code-highlight .gp{color:#d4d2c8}:root.theme-dark .code-highlight .gs{color:#d4d2c8;font-weight:700}:root.theme-dark .code-highlight .gu{color:#d4d2c8}:root.theme-dark .code-highlight .gt{color:#f88f7f}:root.theme-dark .code-highlight .kc{color:#ffad66}:root.theme-dark .code-highlight .kd{color:#ffad66}:root.theme-dark .code-highlight .kn{color:#ffad66}:root.theme-dark .code-highlight .kp{color:#ffad66}:root.theme-dark .code-highlight .kr{color:#ffad66}:root.theme-dark .code-highlight .kt{color:#73d0ff}:root.theme-dark .code-highlight .ld{color:#d5ff80}:root.theme-dark .code-highlight .m{color:#dfbfff}:root.theme-dark .code-highlight .s{color:#d5ff80}:root.theme-dark .code-highlight .na{color:#ffd173}:root.theme-dark .code-highlight .nb{color:#ffd173}:root.theme-dark .code-highlight .nc{color:#73d0ff}:root.theme-dark .code-highlight .no{color:#ffd173}:root.theme-dark .code-highlight .nd{color:#7e8aa1;font-weight:700;font-style:italic}:root.theme-dark .code-highlight .ni{color:#95e6cb}:root.theme-dark .code-highlight .ne{color:#73d0ff}:root.theme-dark .code-highlight .nf{color:#ffd173}:root.theme-dark .code-highlight .nl{color:#d4d2c8}:root.theme-dark .code-highlight .nn{color:#d4d2c8}:root.theme-dark .code-highlight .nx{color:#d4d2c8}:root.theme-dark .code-highlight .py{color:#ffd173}:root.theme-dark .code-highlight .nt{color:#5ccfe6}:root.theme-dark .code-highlight .nv{color:#d4d2c8}:root.theme-dark .code-highlight .ow{color:#ffad66}:root.theme-dark .code-highlight .pm{color:#d4d2c8}:root.theme-dark .code-highlight .w{color:#d4d2c8}:root.theme-dark .code-highlight .mb{color:#dfbfff}:root.theme-dark .code-highlight .mf{color:#dfbfff}:root.theme-dark .code-highlight .mh{color:#dfbfff}:root.theme-dark .code-highlight .mi{color:#dfbfff}:root.theme-dark .code-highlight .mo{color:#dfbfff}:root.theme-dark .code-highlight .sa{color:#f29e74}:root.theme-dark .code-highlight .sb{color:#d5ff80}:root.theme-dark .code-highlight .sc{color:#d5ff80}:root.theme-dark .code-highlight .dl{color:#d5ff80}:root.theme-dark .code-highlight .sd{color:#7e8aa1}:root.theme-dark .code-highlight .s2{color:#d5ff80}:root.theme-dark .code-highlight .se{color:#95e6cb}:root.theme-dark .code-highlight .sh{color:#d5ff80}:root.theme-dark .code-highlight .si{color:#95e6cb}:root.theme-dark .code-highlight .sx{color:#95e6cb}:root.theme-dark .code-highlight .sr{color:#95e6cb}:root.theme-dark .code-highlight .s1{color:#d5ff80}:root.theme-dark .code-highlight .ss{color:#dfbfff}:root.theme-dark .code-highlight .bp{color:#5ccfe6}:root.theme-dark .code-highlight .fm{color:#ffd173}:root.theme-dark .code-highlight .vc{color:#d4d2c8}:root.theme-dark .code-highlight .vg{color:#d4d2c8}:root.theme-dark .code-highlight .vi{color:#d4d2c8}:root.theme-dark .code-highlight .vm{color:#d4d2c8}:root.theme-dark .code-highlight .il{color:#dfbfff}:root.theme-dark .code-highlight pre{overflow:auto;margin:0;padding:0 0 .75rem}:root.theme-dark .code-highlight .linenos{-webkit-user-select:none;user-select:none;cursor:default;margin-right:8px;text-align:right}:root.theme-dark .code-highlight .linenos::selection{background:transparent}:root.theme-dark .code-highlight .linenos::-moz-selection{background:transparent}:root.theme-dark .code-highlight span.linenos{color:var(--color-line-number)}html.no-js .hide_if_nojs,html.js .show_if_nojs{display:none}.center{text-align:center}.right{float:right}.left{float:left}.invisible{display:none!important}.list-unstyled{list-style-type:none}.list-unstyled li{margin-top:4px;margin-bottom:4px}.danger{background-color:var(--color-error-background)}.warning{background:var(--color-warning-background)}.success{background:var(--color-success-background)}.badge{display:inline-block;color:var(--color-toolkit-badge-font);background-color:var(--color-toolkit-badge-background);text-align:center;white-space:nowrap;vertical-align:baseline;min-width:10px;padding:1px 5px;border-radius:5px}kbd{padding:2px 4px;margin:1px;font-size:90%;color:var(--color-toolkit-kbd-font);background:var(--color-toolkit-kbd-background)}table{width:100%}table.striped tr{border-bottom:1px solid var(--color-settings-tr-hover)}th{padding:.4em}td{padding:0 4px}tr:hover{background:var(--color-settings-tr-hover)!important}div.selectable_url{display:block;border:1px solid var(--color-result-search-url-border);padding:4px;color:var(--color-result-search-url-font);margin:.1em;overflow:hidden;height:1.2em;line-height:1.2em;border-radius:5px}div.selectable_url pre{display:block;font-size:.8em;word-break:break-all;margin:.1em;-webkit-user-select:all;user-select:all}.dialog-error{position:relative;display:flex;padding:1rem;margin:0 0 1em;border:1px solid var(--color-toolkit-dialog-border);text-align:left;border-radius:10px;color:var(--color-error);background:var(--color-error-background);border-color:var(--color-error)}.dialog-error .close{float:right;position:relative;top:-3px;color:inherit;font-size:1.5em}.dialog-error ul,.dialog-error ol,.dialog-error p{margin:1px 0 0}.dialog-error table{width:auto}.dialog-error tr{vertical-align:text-top}.dialog-error tr:hover{background:transparent!important}.dialog-error td{padding:0 1em 0 0;padding-right:1rem;padding-bottom:0;padding-left:0}.dialog-error h4{margin-top:.3em;margin-bottom:.3em}.dialog-error-block{position:relative;display:flex;padding:1rem;margin:0 0 1em;border:1px solid var(--color-toolkit-dialog-border);text-align:left;border-radius:10px;display:block;color:var(--color-error);background:var(--color-error-background);border-color:var(--color-error)}.dialog-error-block .close{float:right;position:relative;top:-3px;color:inherit;font-size:1.5em}.dialog-error-block ul,.dialog-error-block ol,.dialog-error-block p{margin:1px 0 0}.dialog-error-block table{width:auto}.dialog-error-block tr{vertical-align:text-top}.dialog-error-block tr:hover{background:transparent!important}.dialog-error-block td{padding:0 1em 0 0;padding-right:1rem;padding-bottom:0;padding-left:0}.dialog-error-block h4{margin-top:.3em;margin-bottom:.3em}.dialog-warning{position:relative;display:flex;padding:1rem;margin:0 0 1em;border:1px solid var(--color-toolkit-dialog-border);text-align:left;border-radius:10px;color:var(--color-warning);background:var(--color-warning-background);border-color:var(--color-warning)}.dialog-warning .close{float:right;position:relative;top:-3px;color:inherit;font-size:1.5em}.dialog-warning ul,.dialog-warning ol,.dialog-warning p{margin:1px 0 0}.dialog-warning table{width:auto}.dialog-warning tr{vertical-align:text-top}.dialog-warning tr:hover{background:transparent!important}.dialog-warning td{padding:0 1em 0 0;padding-right:1rem;padding-bottom:0;padding-left:0}.dialog-warning h4{margin-top:.3em;margin-bottom:.3em}.dialog-modal{position:relative;display:flex;padding:1rem;border:1px solid var(--color-toolkit-dialog-border);text-align:left;border-radius:10px;display:block;background:var(--color-toolkit-dialog-background);position:fixed;top:50%;left:50%;margin:0 auto;transform:translate(-50%,-50%);z-index:5000}.dialog-modal .close{float:right;position:relative;top:-3px;color:inherit;font-size:1.5em}.dialog-modal ul,.dialog-modal ol,.dialog-modal p{margin:1px 0 0}.dialog-modal table{width:auto}.dialog-modal tr{vertical-align:text-top}.dialog-modal tr:hover{background:transparent!important}.dialog-modal td{padding:0 1em 0 0;padding-right:1rem;padding-bottom:0;padding-left:0}.dialog-modal h4{margin-top:.3em;margin-bottom:.3em}.dialog-modal h3{margin-top:0}.btn-collapse{cursor:pointer}.scrollx{overflow:auto hidden;display:block;padding:0;margin:0;border:none}.tabs .tabs>label{font-size:90%}ul.tabs{border-bottom:1px solid var(--color-toolkit-tabs-section-border);list-style:none;padding-left:0}ul.tabs li{display:flex}.tabs{display:flex;flex-wrap:wrap;width:100%;min-width:100%}.tabs>*{order:2}.tabs>input[type=radio]{display:none}.tabs>label,.tabs>li>a{order:1;padding:.7em;margin:0 .7em;letter-spacing:.5px;text-transform:uppercase;border:solid var(--color-toolkit-tabs-label-border);border-width:0 0 2px 0;color:unset;-webkit-touch-callout:none;-webkit-user-select:none;user-select:none;cursor:pointer}.tabs>label.active,.tabs>li>a.active{border-bottom:2px solid var(--color-categories-item-border-selected);background:var(--color-categories-item-selected);color:var(--color-categories-item-selected-font)}.tabs>label:hover,.tabs>li>a:hover{border-bottom:2px solid var(--color-categories-item-border-selected)}.tabs>section{min-width:100%;padding:.7rem 0;box-sizing:border-box;border-top:1px solid var(--color-toolkit-tabs-section-border);display:none}.tabs>label:last-of-type{border-bottom:2px solid var(--color-categories-item-border-selected);background:var(--color-categories-item-selected);color:var(--color-categories-item-selected-font);letter-spacing:-.1px}.tabs>section:last-of-type{display:block}html body .tabs>input:checked~section{display:none}html body .tabs>input:checked~label{position:inherited;background:inherit;border-bottom:2px solid transparent;font-weight:400;color:inherit}html body .tabs>input:checked~label:hover{border-bottom:2px solid var(--color-categories-item-border-selected)}html body .tabs>input:checked+label{border-bottom:2px solid var(--color-categories-item-border-selected);background:var(--color-categories-item-selected);color:var(--color-categories-item-selected-font)}html body .tabs>input:checked+label+section{display:block}select{height:2.4rem;margin-top:0;margin-right:1rem;margin-bottom:0;margin-left:0;padding:.2rem!important;color:var(--color-search-font);font-size:.9rem;z-index:100}select:hover,select:focus{cursor:pointer}@supports ((background-position-x: 100%) and ((appearance: none) or (-webkit-appearance: none) or (-moz-appearance: none))){select{appearance:none;-webkit-appearance:none;-moz-appearance:none;border-width:0 2rem 0 0;border-color:transparent;background:url(data:image/svg+xml;charset=UTF-8,%3C%3Fxml%20version%3D%221.0%22%20encoding%3D%22utf-8%22%3F%3E%0A%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%22512%22%20height%3D%22512%22%20viewBox%3D%220%200%20512%20512%22%3E%0A%3Cg%3E%3Cpolygon%20points%3D%22128%2C192%20256%2C320%20384%2C192%22%2F%3E%3C%2Fg%3E%0A%3C%2Fsvg%3E) no-repeat;background-position-x:calc(100% + 2rem);background-size:2rem;background-origin:content-box;background-color:var(--color-toolkit-select-background);outline:medium none;text-overflow:ellipsis;border-radius:5px}select:hover,select:focus{background-color:var(--color-toolkit-select-background-hover)}select option{background-color:var(--color-base-background)}@media (prefers-color-scheme: dark){html.theme-auto select,html.theme-dark select{background-image:url(data:image/svg+xml;charset=UTF-8,%3C%3Fxml%20version%3D%221.0%22%20encoding%3D%22utf-8%22%3F%3E%0A%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%22512%22%20height%3D%22512%22%20viewBox%3D%220%200%20512%20512%22%3E%0A%3Cg%3E%3Cpolygon%20fill%3D%22%23ddd%22%20points%3D%22128%2C192%20256%2C320%20384%2C192%22%2F%3E%3C%2Fg%3E%0A%3C%2Fsvg%3E)}}html.theme-dark select{background-image:url(data:image/svg+xml;charset=UTF-8,%3C%3Fxml%20version%3D%221.0%22%20encoding%3D%22utf-8%22%3F%3E%0A%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%22512%22%20height%3D%22512%22%20viewBox%3D%220%200%20512%20512%22%3E%0A%3Cg%3E%3Cpolygon%20fill%3D%22%23ddd%22%20points%3D%22128%2C192%20256%2C320%20384%2C192%22%2F%3E%3C%2Fg%3E%0A%3C%2Fsvg%3E)}}input.checkbox-onoff[type=checkbox]{-webkit-appearance:none;-moz-appearance:none;appearance:none;cursor:pointer;display:inline-block;width:2.5em;height:.7em;box-shadow:none!important;margin:0 16px;border-radius:10px;position:relative}input.checkbox-onoff[type=checkbox]:focus,input.checkbox-onoff[type=checkbox]:hover{outline:none}input.checkbox-onoff[type=checkbox]:focus:after{content:"";position:absolute;width:3.5em;height:1.65em;border:1px solid var(--color-btn-background);border-radius:12px;box-shadow:var(--color-btn-background) 0 0 3px;z-index:1200;top:-.55em;left:-.6em}input.checkbox-onoff[type=checkbox]:before{position:absolute;top:-.5em;display:flex;justify-content:center;align-items:center;font-size:.75em;width:1.875em;height:1.875em;border-radius:50%}input.checkbox-onoff[type=checkbox],input.checkbox-onoff.reversed-checkbox[type=checkbox]:checked{background:var(--color-toolkit-checkbox-onoff-off-background)}input.checkbox-onoff[type=checkbox]:before,input.checkbox-onoff.reversed-checkbox[type=checkbox]:checked:before{left:-.5em;content:"✕";color:var(--color-toolkit-checkbox-onoff-off-mark-color);background:var(--color-toolkit-checkbox-onoff-off-mark-background)}input.checkbox-onoff[type=checkbox]:checked,input.checkbox-onoff.reversed-checkbox[type=checkbox]{background:var(--color-toolkit-checkbox-onoff-on-background)}input.checkbox-onoff[type=checkbox]:checked:before,input.checkbox-onoff.reversed-checkbox[type=checkbox]:before{left:calc(100% - 1.5em);content:"✓";color:var(--color-toolkit-checkbox-onoff-on-mark-color);background:var(--color-toolkit-checkbox-onoff-on-mark-background)}@supports (transform: rotate(-45deg)){input[type=checkbox]:not(.checkbox-onoff){-webkit-appearance:none;-moz-appearance:none;appearance:none;width:20px;height:20px;cursor:pointer;position:relative;top:0;left:0;border:2px solid var(--color-toolkit-checkbox-input-border);border-radius:.3em}input[type=checkbox]:not(.checkbox-onoff):after{content:"";width:9px;height:5px;position:absolute;top:3px;left:2px;border:3px solid var(--color-toolkit-checkbox-label-border);border-top:none;border-right:none;background:transparent;opacity:0;transform:rotate(-45deg)}input[type=checkbox]:not(.checkbox-onoff):checked:after{border-color:var(--color-toolkit-checkbox-input-border);opacity:1}input[type=checkbox][disabled]:not(.checkbox-onoff){border:inherit;background-color:transparent!important;cursor:inherit}input.checkbox[type=checkbox]:not(:checked,[disabled],.checkbox-onoff):hover:after{opacity:.5}}@media screen and (max-width: 50em){.tabs>label{width:100%}}.loader,.loader:after{border-radius:50%;width:2em;height:2em}.loader{margin:1em auto;font-size:10px;position:relative;text-indent:-9999em;border-top:.5em solid var(--color-toolkit-loader-border);border-right:.5em solid var(--color-toolkit-loader-border);border-bottom:.5em solid var(--color-toolkit-loader-border);border-left:.5em solid var(--color-toolkit-loader-borderleft);-webkit-transform:translateZ(0);-ms-transform:translateZ(0);transform:translateZ(0);-webkit-animation:load8 1.2s infinite linear;animation:load8 1.2s infinite linear}@-webkit-keyframes load8{0%{-webkit-transform:rotate(0deg);transform:rotate(0)}to{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}@keyframes load8{0%{-webkit-transform:rotate(0deg);transform:rotate(0)}to{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}.engine-tooltip{display:none;position:absolute;padding:.5rem 1rem;margin:0 0 0 2rem;border:1px solid var(--color-toolkit-engine-tooltip-border);background:var(--color-toolkit-engine-tooltip-background);font-size:14px;font-weight:400;z-index:5000;text-align:left;border-radius:10px}th:hover .engine-tooltip,td:hover .engine-tooltip,.engine-tooltip:hover{display:inline-block}.stacked-bar-chart{margin:0;padding:0 .125rem 0 4rem;width:100%;width:-moz-available;width:-webkit-fill-available;width:fill;flex-flow:row nowrap;align-items:center;display:inline-flex}.stacked-bar-chart-value{width:3rem;display:inline-block;position:absolute;padding:0 .5rem;text-align:right}.stacked-bar-chart-base{display:flex;flex-shrink:0;flex-grow:0;flex-basis:unset}.stacked-bar-chart-median{display:flex;flex-shrink:0;flex-grow:0;flex-basis:unset;background:var(--color-base-font);border:1px solid rgba(var(--color-base-font-rgb),.9);padding:.3rem 0}.stacked-bar-chart-rate80{display:flex;flex-shrink:0;flex-grow:0;flex-basis:unset;background:transparent;border:1px solid rgba(var(--color-base-font-rgb),.3);padding:.3rem 0}.stacked-bar-chart-rate95{display:flex;flex-shrink:0;flex-grow:0;flex-basis:unset;background:transparent;border-bottom:1px dotted rgba(var(--color-base-font-rgb),.5);padding:0}.stacked-bar-chart-rate100{display:flex;flex-shrink:0;flex-grow:0;flex-basis:unset;background:transparent;border-left:1px solid rgba(var(--color-base-font-rgb),.9);padding:.4rem 0;width:1px}/*! Autocomplete.js v2.6.3 | license MIT | (c) 2017, Baptiste Donaux | http://autocomplete-js.com */.autocomplete{position:absolute;width:44rem;max-width:calc(100% - 1rem);max-height:0;overflow-y:hidden;text-align:left;border-radius:10px}.autocomplete:active,.autocomplete:focus,.autocomplete:hover{background-color:var(--color-autocomplete-background)}.autocomplete:empty{display:none}.autocomplete>ul{list-style-type:none;margin:0;padding:0}.autocomplete>ul>li{cursor:pointer;padding:.5rem 1rem}.autocomplete>ul>li.active,.autocomplete>ul>li:active,.autocomplete>ul>li:focus,.autocomplete>ul>li:hover{background-color:var(--color-autocomplete-background-hover)}.autocomplete>ul>li.active a:active,.autocomplete>ul>li:active a:active,.autocomplete>ul>li:focus a:active,.autocomplete>ul>li:hover a:active,.autocomplete>ul>li.active a:focus,.autocomplete>ul>li:active a:focus,.autocomplete>ul>li:focus a:focus,.autocomplete>ul>li:hover a:focus,.autocomplete>ul>li.active a:hover,.autocomplete>ul>li:active a:hover,.autocomplete>ul>li:focus a:hover,.autocomplete>ul>li:hover a:hover{text-decoration:none}.autocomplete>ul>li.locked{cursor:inherit}.autocomplete.open{display:block;background-color:var(--color-autocomplete-background);color:var(--color-autocomplete-font);max-height:32rem;overflow-y:auto;z-index:5000;margin-top:3.5rem;border-radius:.8rem}.autocomplete.open:empty{display:none}@media screen and (max-width: 50em){.autocomplete>ul>li{padding:1rem}}#main_results #results.image-detail-open.only_template_images{width:min(98%,59.25rem)!important}#main_results #results.only_template_images.image-detail-open #backToTop{left:56.75rem!important;right:inherit}article.result-images .detail{display:none}#results.image-detail-open article.result-images[data-vim-selected] .detail{display:flex;flex-direction:column;position:fixed;left:60rem;right:0;top:13rem;transition:top 64ms ease-in 0s;bottom:0;background:var(--color-result-detail-background);border:1px solid var(--color-result-detail-background);z-index:1000;padding:4rem 3rem 3rem;overflow-y:scroll}#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-images-source{display:block;flex:1;text-align:left;width:100%;border:none;text-decoration:none}#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-images-source img{padding:0;margin:0;border:none;object-fit:contain;width:inherit;height:inherit;max-width:100%;min-height:inherit;max-height:calc(100vh - 42rem);background:inherit}#results.image-detail-open article.result-images[data-vim-selected] .detail .result-images-labels{color:var(--color-result-detail-font);height:19rem}#results.image-detail-open article.result-images[data-vim-selected] .detail .result-images-labels hr{border-top:1px solid var(--color-result-detail-hr);border-bottom:none}#results.image-detail-open article.result-images[data-vim-selected] .detail .result-images-labels h4{height:2rem;overflow:hidden;text-overflow:ellipsis;font-size:.9rem;margin-bottom:0}#results.image-detail-open article.result-images[data-vim-selected] .detail .result-images-labels p{color:var(--color-result-detail-label-font);font-size:.9rem;white-space:nowrap;text-overflow:ellipsis;overflow:hidden;margin:.8rem 0}#results.image-detail-open article.result-images[data-vim-selected] .detail .result-images-labels p span{display:inline-block;width:12rem}#results.image-detail-open article.result-images[data-vim-selected] .detail .result-images-labels h4,#results.image-detail-open article.result-images[data-vim-selected] .detail .result-images-labels p,#results.image-detail-open article.result-images[data-vim-selected] .detail .result-images-labels a{text-align:left}#results.image-detail-open article.result-images[data-vim-selected] .detail .result-images-labels p.result-content{height:2rem;line-height:unset;overflow:hidden;text-overflow:ellipsis}#results.image-detail-open article.result-images[data-vim-selected] .detail .result-images-labels p.result-url{white-space:nowrap;overflow:hidden hidden;text-overflow:ellipsis}#results.image-detail-open article.result-images[data-vim-selected] .detail .result-images-labels p.result-content:hover,#results.image-detail-open article.result-images[data-vim-selected] .detail .result-images-labels p.result-url:hover{position:relative;overflow:inherit!important;background:var(--color-result-detail-background);text-overflow:inherit!important}#results.image-detail-open article.result-images[data-vim-selected] .detail .result-images-labels a,#results.image-detail-open article.result-images[data-vim-selected] .detail .result-images-labels a:visited,#results.image-detail-open article.result-images[data-vim-selected] .detail .result-images-labels a:hover,#results.image-detail-open article.result-images[data-vim-selected] .detail .result-images-labels a:active{color:var(--color-result-detail-link)}#results.image-detail-open article.result-images[data-vim-selected] .detail .result-images-labels a:hover{text-decoration:underline}#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-close{top:1rem;left:1rem;padding:.4rem}#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-previous{top:1rem;right:6rem;padding:.4rem .5rem .4rem .3rem}#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-next{top:1rem;right:2rem;padding:.4rem}#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-close,#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-next,#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-previous{border-radius:50%;display:block;width:1.5rem;height:1.5rem;position:absolute;filter:opacity(40%);z-index:1200}#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-close span,#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-next span,#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-previous span{display:block;width:1.5rem;height:1.5rem;text-align:center}#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-next span:before,#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-previous span:before{vertical-align:sub}#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-close,#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-close:visited,#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-close:hover,#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-close:active,#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-previous,#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-previous:visited,#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-previous:hover,#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-previous:active,#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-next,#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-next:visited,#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-next:hover,#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-next:active{color:var(--color-result-detail-font);background:var(--color-result-detail-background);border:1px solid var(--color-result-detail-font)}#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-close:focus,#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-close:hover,#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-previous:focus,#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-previous:hover,#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-next:focus,#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-next:hover{filter:opacity(80%)}#results.image-detail-open article.result-images[data-vim-selected] .detail .loader{position:absolute;top:1rem;right:50%;border-top:.5em solid var(--color-result-detail-loader-border);border-right:.5em solid var(--color-result-detail-loader-border);border-bottom:.5em solid var(--color-result-detail-loader-border);border-left:.5em solid var(--color-result-detail-loader-borderleft)}#results.image-detail-open.scrolling article.result-images[data-vim-selected] .detail{top:0}#results.image-detail-open.scrolling article.result-images[data-vim-selected] .detail a.result-images-source img{max-height:calc(100vh - 25rem)}@media screen and (max-width: 79.75em){#results.image-detail-open article.result-images[data-vim-selected] .detail{top:0;left:0}#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-images-source{display:flex;flex-direction:column;justify-content:center}#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-images-source img{width:100%;max-height:calc(100vh - 24rem)}#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-next{right:1rem}}@media screen and (max-width: 50em){#results.image-detail-open article.result-images[data-vim-selected] .detail{top:0;left:0;padding:1rem}#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-images-source img{width:100%;max-height:calc(100vh - 20rem);margin:0}#results.image-detail-open article.result-images[data-vim-selected] .detail .result-images-labels p span{width:inherit;margin-right:1rem}}.dialog-modal{animation-name:dialogmodal;animation-duration:.13s}@keyframes dialogmodal{0%{opacity:0}50%{opacity:.5;transform:translate(-50%,-50%) scale(1.05)}}input.checkbox-onoff[type=checkbox]:before{transition:left .25s}iframe[src^="https://w.soundcloud.com"]{height:120px}iframe[src^="https://www.deezer.com"]{height:94px}iframe[src^="https://www.mixcloud.com"]{height:250px}iframe[src^="https://bandcamp.com/EmbeddedPlayer"]{height:350px}iframe[src^="https://bandcamp.com/EmbeddedPlayer/track"]{height:120px}iframe[src^="https://genius.com/songs"]{height:65px}.info-page code{font-family:monospace;border-radius:5px;background-color:var(--color-doc-code-background);color:var(--color-doc-code);padding:.2rem;border:0 none}.stats_endpoint .github-issue-button{display:block;font-size:16px}.stats_endpoint .issue-hide{display:none}.stats_endpoint input[type=checked]{position:absolute}.stats_endpoint label{margin:1rem 1rem 1rem 0}.stats_endpoint .step_content{margin:1rem 1rem 1rem 2rem}.stats_endpoint .step1,.stats_endpoint .step2{visibility:hidden}.stats_endpoint .step1_delay{transition:visibility 0s linear 4s}.stats_endpoint #step1:checked~.step1,.stats_endpoint #step2:checked~.step2{visibility:visible}.engine-stats{border-spacing:0;border-collapse:collapse}.engine-stats tr td,.engine-stats tr th{border-bottom:1px solid var(--color-result-border);padding:.25rem}.engine-stats table.engine-tooltip{border-spacing:0;border-collapse:collapse}.engine-stats table.engine-tooltip td,.engine-stats table.engine-tooltip th{border:none}.engine-stats .engine-name{width:20rem}.engine-stats .engine-score{width:7rem;text-align:right}.engine-stats .engine-reliability{text-align:right}table.engine-error th.engine-error-type,table.engine-error td.engine-error-type,failed-test{width:10rem}.engine-errors{margin-top:3rem}.engine-errors table.engine-error{max-width:1280px;margin:1rem 0 3rem;border:1px solid var(--color-result-border);text-align:left}.engine-errors table.engine-error tr th,.engine-errors table.engine-error tr td{padding:.5rem}.engine-errors table.engine-error span.log_parameters{border-right:1px solid solid var(--color-result-border);padding:0 1rem 0 0;margin:0 0 0 .5rem}.bar-chart-value{width:3em;display:inline-block;text-align:right;padding-right:.5rem}.bar-chart-graph{width:calc(100% - 5rem);display:inline-block}.bar-chart-bar{border:3px solid var(--color-bar-chart-primary);margin:1px 0}.bar-chart-serie1{border:3px solid var(--color-bar-chart-primary);margin:1px 0;float:left}.bar-chart-serie2{border:3px solid var(--color-bar-chart-secondary);margin:1px 0;float:left}.bar0{width:0;border:0}.bar1{width:1%}.bar2{width:2%}.bar3{width:3%}.bar4{width:4%}.bar5{width:5%}.bar6{width:6%}.bar7{width:7%}.bar8{width:8%}.bar9{width:9%}.bar10{width:10%}.bar11{width:11%}.bar12{width:12%}.bar13{width:13%}.bar14{width:14%}.bar15{width:15%}.bar16{width:16%}.bar17{width:17%}.bar18{width:18%}.bar19{width:19%}.bar20{width:20%}.bar21{width:21%}.bar22{width:22%}.bar23{width:23%}.bar24{width:24%}.bar25{width:25%}.bar26{width:26%}.bar27{width:27%}.bar28{width:28%}.bar29{width:29%}.bar30{width:30%}.bar31{width:31%}.bar32{width:32%}.bar33{width:33%}.bar34{width:34%}.bar35{width:35%}.bar36{width:36%}.bar37{width:37%}.bar38{width:38%}.bar39{width:39%}.bar40{width:40%}.bar41{width:41%}.bar42{width:42%}.bar43{width:43%}.bar44{width:44%}.bar45{width:45%}.bar46{width:46%}.bar47{width:47%}.bar48{width:48%}.bar49{width:49%}.bar50{width:50%}.bar51{width:51%}.bar52{width:52%}.bar53{width:53%}.bar54{width:54%}.bar55{width:55%}.bar56{width:56%}.bar57{width:57%}.bar58{width:58%}.bar59{width:59%}.bar60{width:60%}.bar61{width:61%}.bar62{width:62%}.bar63{width:63%}.bar64{width:64%}.bar65{width:65%}.bar66{width:66%}.bar67{width:67%}.bar68{width:68%}.bar69{width:69%}.bar70{width:70%}.bar71{width:71%}.bar72{width:72%}.bar73{width:73%}.bar74{width:74%}.bar75{width:75%}.bar76{width:76%}.bar77{width:77%}.bar78{width:78%}.bar79{width:79%}.bar80{width:80%}.bar81{width:81%}.bar82{width:82%}.bar83{width:83%}.bar84{width:84%}.bar85{width:85%}.bar86{width:86%}.bar87{width:87%}.bar88{width:88%}.bar89{width:89%}.bar90{width:90%}.bar91{width:91%}.bar92{width:92%}.bar93{width:93%}.bar94{width:94%}.bar95{width:95%}.bar96{width:96%}.bar97{width:97%}.bar98{width:98%}.bar99{width:99%}.bar100{width:100%}.osm-map-box{height:300px;width:100%;margin:10px 0}#main_index{margin-top:26vh}.index{text-align:center}.index .title{background:url(../img/searxng.png) no-repeat;min-height:4rem;margin:4rem auto;background-position:center;background-size:contain}.index h1{font-size:4em;visibility:hidden}.index #search,.index #search_header{margin:0 auto;background:inherit;border:inherit;padding:0;display:block}.index .search_filters{display:block;margin:1em 0}.index .category label{padding:6px 10px;border-bottom:initial!important}@media screen and (max-width: 79.75em){div.title h1{font-size:1em}#main_index{margin-top:6em}}table{border-collapse:collapse}table th,table td{text-align:center;padding:1rem .5rem;text-align:left}table tr.pref-group th{font-weight:400;text-align:left;background:var(--color-settings-table-group-background)}#main_preferences form{width:100%}#main_preferences fieldset{margin:8px;border:none}#main_preferences legend{margin:0;padding:5px 0 0;display:block;float:left;width:300px}#main_preferences input[type=text]{width:13.25rem;color:var(--color-toolkit-input-text-font);border:none;background:none repeat scroll 0 0 var(--color-toolkit-select-background);padding:.2rem .4rem;height:2rem;border-radius:5px}#main_preferences input[type=text]:hover,#main_preferences input[type=text]:focus{background-color:var(--color-toolkit-select-background-hover)}#main_preferences div.pref-group{width:100%;font-weight:400;padding:1rem .5rem;text-align:left;background:var(--color-settings-table-group-background)}#main_preferences .value{margin:0;padding:0;float:left;width:15em}#main_preferences .value select,#main_preferences .value input[type=text]{font-size:inherit!important;margin-top:0;margin-right:1rem;margin-bottom:0;margin-left:0}#main_preferences .value select{width:14rem}#main_preferences .value select:focus,#main_preferences .value input:focus{outline:none;box-shadow:0 0 1px 1px var(--color-btn-background)}#main_preferences .description{margin:0;padding:5px 0 0;float:right;width:50%;color:var(--color-settings-engine-description-font);font-size:90%}#main_preferences .bang{text-align:left;border-radius:5px;background-color:var(--color-doc-code-background);color:var(--color-doc-code);padding:.2rem;border:0 none}#main_preferences .category{margin-right:.5rem}#main_preferences .category label{border:2px solid transparent;padding:.2rem .4rem;border-radius:5px}#main_preferences .category input[type=checkbox]:checked+label{border:2px solid var(--color-categories-item-border-selected)}#main_preferences table.table_engines th.name label{cursor:pointer}#main_preferences table.table_engines th.name .engine-tooltip{margin-top:1.8rem;left:calc((100% - 85em)/2 + 10em);max-width:40rem}#main_preferences table.table_engines th.name .engine-tooltip .engine-description{margin-top:.5rem}#main_preferences table.table_engines th.name .engine-tooltip .bang{margin:.3rem}#main_preferences table.table_engines .checkbox-col,#main_preferences table.table_engines .name,#main_preferences table.table_engines .shortcut{text-align:left}#main_preferences table.cookies{width:100%;direction:ltr}#main_preferences table.cookies th,#main_preferences table.cookies td{text-align:left;font-family:monospace;font-size:1rem;padding:.5em;vertical-align:top}#main_preferences table.cookies td:first-child{word-break:keep-all;width:14rem;padding-right:1rem}#main_preferences table.cookies td:last-child{word-break:break-all}#main_preferences table.cookies>tbody>tr:nth-child(2n)>th,#main_preferences table.cookies>tbody>tr:nth-child(2n)>td{background-color:var(--color-settings-tr-hover)}#main_preferences .preferences_back{background:none repeat scroll 0 0 var(--color-btn-background);color:var(--color-btn-font);border:0 none;border-radius:10px;cursor:pointer;display:inline-block;margin:2px 4px;padding:.7em}#main_preferences .preferences_back a{color:var(--color-settings-return-font)}#main_preferences .preferences_back a:first-letter{text-transform:uppercase}#main_preferences #toggle-all-engines-container{width:max-content;margin-left:auto}#main_preferences div.selectable_url pre{width:100%}#main_preferences #copy-hash-container{display:flex;align-items:center;gap:.5rem}#main_preferences #copy-hash-container div.selectable_url pre{width:auto;flex-grow:1}#main_preferences #pref-hash-input{width:100%}@media screen and (max-width: 79.75em){.preferences_back{clear:both}.engine-tooltip{left:10em!important}}#search{padding:0;margin:0}#search_header{padding-top:1.5em;padding-right:2em;padding-left:7rem;margin:0;background:var(--color-header-background);border-bottom:1px solid var(--color-header-border);display:grid;gap:1rem 1.2rem;grid-template-columns:3rem 1fr;grid-template-areas:"logo search" "spacer categories"}.category_checkbox,.category_button{display:inline-block;position:relative;margin-right:1rem;padding:0}.category_checkbox input{display:none}.category_checkbox label{cursor:pointer;padding:.2rem 0;display:inline-flex;text-transform:capitalize;font-size:.9em;border-bottom:2px solid transparent;-webkit-touch-callout:none;-webkit-user-select:none;user-select:none}.category_checkbox label svg{padding-right:.2rem}.category_checkbox label div.category_name{margin:auto 0}.category_checkbox input[type=checkbox]:checked+label{color:var(--color-categories-item-selected-font);border-bottom:2px solid var(--color-categories-item-border-selected)}button.category_button{background-color:inherit;color:var(--color-base-font);cursor:pointer;padding:.2rem 0;display:inline-flex;align-items:center;text-transform:capitalize;font-size:.9em;border:none;border-bottom:2px solid transparent}button.category_button svg{padding-right:.2rem}button.category_button.selected,button.category_button:active{color:var(--color-categories-item-selected-font);border-bottom:2px solid var(--color-categories-item-border-selected)}.no-js #categories_container:has(button.category_button:focus-within) button.category_button.selected{color:var(--color-base-font);border-bottom:none}.no-js #categories_container:has(button.category_button:focus-within) button.category_button:focus-within{color:var(--color-categories-item-selected-font);border-bottom:2px solid var(--color-categories-item-border-selected)}#search_logo{padding:.5rem 10px 0;grid-area:logo;display:flex;align-items:center;justify-content:center}#search_logo svg{flex:1;width:30px;height:30px;margin:.5rem 0 auto}.search_categories{grid-area:categories}.search_categories .help{display:none}.search_categories:hover .help{display:block;position:absolute;background:var(--color-base-background);padding:1rem .6rem .6rem 0;z-index:1000;width:100%;left:-.1rem}#search_view{padding:.5rem .5rem 0;grid-area:search}body.results_endpoint #search_view{padding:.5rem 2.8rem 0 0}.search_box{border-radius:.8rem;width:100%;max-width:44rem;display:inline-flex;flex-direction:row;white-space:nowrap;box-shadow:var(--color-search-shadow)}#clear_search{display:block;border-collapse:separate;box-sizing:border-box;width:1.8rem;margin:0;padding:.8rem .2rem;background:none repeat scroll 0 0 var(--color-search-background);border:none;outline:none;color:var(--color-search-font);font-size:1.1rem;z-index:1000}#clear_search:hover{color:var(--color-search-background-hover)}#clear_search.empty *,html.no-js #clear_search.hide_if_nojs{display:none}#q,#send_search{display:block;margin:0;padding:.8rem;background:none repeat scroll 0 0 var(--color-search-background);border:none;outline:none;color:var(--color-search-font);font-size:1.1rem;z-index:100}#q{width:100%;padding-left:1rem;padding-right:0!important;border-radius:.8rem 0 0 .8rem}#q::-ms-clear,#q::-webkit-search-cancel-button{display:none}#send_search{border-radius:0 .8rem .8rem 0}#send_search:hover{cursor:pointer;background-color:var(--color-search-background-hover);color:var(--color-search-background)}.no-js #clear_search,.no-js #send_search{width:auto!important;border-left:1px solid var(--color-search-border)}.search_filters{margin-top:.6rem;margin-right:0;margin-bottom:0;margin-left:10.6rem;display:flex;overflow-x:auto;overscroll-behavior-inline:contain}.search_filters select{background-color:inherit}.search_filters select:hover,.search_filters select:focus{color:var(--color-base-font)}@media screen and (max-width: 79.75em){#search_header{padding:1.5em .5rem 0;column-gap:.5rem}.search_filters{margin-top:.6rem;margin-right:0;margin-bottom:0;margin-left:3.5rem}#categories{font-size:90%;clear:both}}@media screen and (max-width: 79.75em) and (hover: none){#main_index #categories_container,#main_results #categories_container{width:max-content}#main_index #categories_container .category_checkbox,#main_results #categories_container .category_checkbox{display:inline-block;width:auto}#main_index #categories,#main_results #categories{width:100%;text-align:left;overflow:scroll hidden;-webkit-overflow-scrolling:touch}}@media screen and (max-width: 50em){#search_header{width:100%;margin:0;padding:.1rem 0 0;gap:0 0;grid-template-areas:"logo search" "categories categories"}.search_logo{padding:0}.search_box{width:100%}#q{width:100%;flex:1}.search_filters{margin:0 10px;padding:.5rem 0}.category{display:inline-block;width:auto;margin:0}.category svg{display:none}.category_checkbox label,.category_button{padding:1rem!important;margin:0!important}#search_view:focus-within{display:block;background-color:var(--color-search-background);position:absolute;top:0;height:100%;width:100%;z-index:2000}#search_view:focus-within .search_box{border-bottom:1px solid var(--color-search-border);width:100%;border-radius:0;box-shadow:none}#search_view:focus-within .search_box #send_search{margin-right:0!important}#search_view:focus-within .search_box *{border:none;border-radius:0;box-shadow:none}#main_results #q:placeholder-shown~#send_search{margin-right:2.6rem;transition:margin .1s}}@media screen and (max-width: 20rem){#search_header{grid-template-areas:"search search" "categories categories"}#search_logo{display:none}}#categories{-webkit-touch-callout:none;-webkit-user-select:none;user-select:none}#categories::-webkit-scrollbar{width:0;height:0}#categories_container{position:relative}.favicon img{height:1.5rem;width:1.5rem;border-radius:10%;background-color:var(--color-favicon-background-color);border:1px solid var(--color-favicon-border-color);display:flex}@media screen and (min-width: 50em){.center-alignment-yes #main_results{--center-page-width: 48rem}}@media screen and (width >= 62rem){.center-alignment-yes #main_results{--center-page-width: 60rem}}@media screen and (min-width: 79.75em){.center-alignment-yes #main_results{--center-page-width: 73rem}}@media screen and (min-width: 50em) and (max-width: 79.75em){.center-alignment-yes #main_results #results{grid-template-columns:60% calc(40% - 5rem);margin-left:0;margin-right:0}.center-alignment-yes #main_results #urls{margin-left:3rem}.center-alignment-yes #main_results #sidebar{margin-right:1rem}.center-alignment-yes #main_results #backToTop{left:calc(60% + 1rem)}}@media screen and (min-width: 79.75em){.center-alignment-yes #main_results{display:flex;flex-direction:column;align-items:center}.center-alignment-yes #main_results #search{width:100%;display:flex;flex-direction:column;align-items:center}.center-alignment-yes #main_results #search_header{grid-template-columns:calc(50% - 4.5rem - var(--center-page-width) / 2) 3rem var(--center-page-width);grid-template-areas:"na logo search" "na spacer categories";column-gap:1.2rem;width:100%;padding-left:0;padding-right:0}.center-alignment-yes #main_results .search_filters{margin-left:.5rem;width:var(--center-page-width)}.center-alignment-yes #main_results #results{margin-right:2rem;margin-left:10rem}.center-alignment-yes #main_results #results.only_template_images,.center-alignment-yes #main_results #results.image-detail-open{align-self:flex-start}.center-alignment-yes #main_results #results:not(.only_template_images,.image-detail-open){margin-left:1.5rem;grid-template-columns:calc(var(--center-page-width) - 5rem - 25rem) 25rem}.center-alignment-yes #main_results #results:not(.only_template_images,.image-detail-open) #backToTop{left:calc(50% - 25rem - 5rem + 1rem + var(--center-page-width) / 2)}.center-alignment-yes #main_results #results .result .content{max-width:inherit}.center-alignment-yes #main_results #urls{margin-left:0}.center-alignment-yes #main_results #sidebar{margin-right:0}}.sxng-icon-set{display:inline-block;vertical-align:bottom;line-height:1;text-decoration:inherit;transform:scale(1)}.sxng-icon-set-small{width:1rem;height:1rem;display:inline-block;vertical-align:bottom;line-height:1;text-decoration:inherit;transform:scale(1)}.sxng-icon-set-big{width:1.5rem;height:1.5rem;display:inline-block;vertical-align:bottom;line-height:1;text-decoration:inherit;transform:scale(1)}html{font-family:sans-serif;font-size:.9em;-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%;-moz-text-size-adjust:100%;text-size-adjust:100%;color:var(--color-base-font);background-color:var(--color-base-background);padding:0;margin:0;scroll-behavior:smooth}body,main{padding:0;margin:0}body{display:flex;flex-direction:column;height:100vh;margin:0}@supports (height: 100dvh){body{height:100dvh}}main{width:100%;margin-bottom:2rem;flex:1}.page_with_header{margin:2em auto;width:85em}footer{clear:both;min-height:4rem;padding:1rem 0;width:100%;text-align:center;background-color:var(--color-footer-background);border-top:1px solid var(--color-footer-border);overflow:hidden}footer p{font-size:.9em}.page_with_header .logo{height:40px}input[type=submit],#results button[type=submit],.button{padding:.7rem;display:inline-block;background:var(--color-btn-background);color:var(--color-btn-font);border-radius:10px;border:0;cursor:pointer}a{text-decoration:none;color:var(--color-url-font)}a:visited,a:visited .highlight{color:var(--color-url-visited-font)}article[data-vim-selected]{background:var(--color-result-vim-selected);border-left:.2rem solid var(--color-result-vim-arrow);border-radius:0 10px 10px 0}article.result-images[data-vim-selected]{background:var(--color-result-vim-arrow);border:none;border-radius:10px}article.result-images[data-vim-selected] .image_thumbnail{filter:opacity(60%)}article.result-images[data-vim-selected] span.title,article.result-images[data-vim-selected] span.source{color:var(--color-result-image-span-font-selected)}article[data-vim-selected].category-videos,article[data-vim-selected].category-news,article[data-vim-selected].category-map,article[data-vim-selected].category-music,article[data-vim-selected].category-files,article[data-vim-selected].category-social{border:1px solid var(--color-result-vim-arrow);border-radius:10px}.result{margin:.125rem 0;padding:1rem;box-sizing:border-box;width:100%;border-left:.2rem solid transparent}.result h3{font-size:1.2rem;word-wrap:break-word;margin:.4rem 0;padding:0}.result h3 a{color:var(--color-result-link-font);font-weight:400;font-size:1.1em}.result h3 a:visited{color:var(--color-result-link-visited-font)}.result h3 a:focus,.result h3 a:hover{text-decoration:underline;border:none;outline:none}.result .cache_link,.result .proxyfied_link{font-size:smaller!important;margin-left:.5rem}.result .content,.result .stat{font-size:.9em;margin:0;padding:0;max-width:54em;word-wrap:break-word;line-height:1.24}.result .content .highlight,.result .stat .highlight{color:var(--color-result-description-highlight-font);background:inherit;font-weight:700}.result .altlink a{font-size:.9em;margin:0 10px 0 0;padding:5px 10px;border-radius:5px;background:var(--color-show-btn-background);color:var(--color-show-btn-font);cursor:pointer}.result .altlink a:hover{background:var(--color-btn-background);color:var(--color-btn-font)}.result .codelines .highlight{color:inherit;background:inherit;font-weight:400}.result .url_header{display:flex;gap:.5rem}.result .url_wrapper{display:flex;align-items:center;font-size:1rem;color:var(--color-result-url-font);flex-flow:row nowrap;overflow:hidden;margin:0;padding:0}.result .url_wrapper .url_o1{white-space:nowrap;flex-shrink:1;padding-bottom:1px}.result .url_wrapper .url_o1 .url_i1{unicode-bidi:plaintext}.result .url_wrapper .url_o1:after{content:" ";width:1ch;display:inline-block}.result .url_wrapper .url_o2{overflow:hidden;white-space:nowrap;flex:0 1 content;text-align:right;padding-bottom:1px}.result .url_wrapper .url_o2 .url_i2{float:right}.result .published_date,.result .result_length,.result .result_views,.result .result_author,.result .result_shipping,.result .result_source_country{font-size:.8em;color:var(--color-result-publishdate-font)}.result .result_price{font-size:1.2em;color:var(--color-result-description-highlight-font)}.result img.thumbnail{float:left;padding-top:.6rem;padding-right:1rem;width:7rem;height:unset}.result .break{clear:both}.result-paper .attributes,.result-packages .attributes{display:table;border-spacing:.125rem}.result-paper .attributes div,.result-packages .attributes div{display:table-row}.result-paper .attributes div span,.result-packages .attributes div span{font-size:.9rem;margin-top:.25rem;display:table-cell}.result-paper .attributes div span time,.result-packages .attributes div span time{font-size:.9rem}.result-paper .attributes div span:first-child,.result-packages .attributes div span:first-child{color:var(--color-base-font);min-width:10rem}.result-paper .attributes div span:nth-child(2),.result-packages .attributes div span:nth-child(2){color:var(--color-result-publishdate-font)}.result-paper .content,.result-packages .content{margin-top:.25rem}.result-paper .comments,.result-packages .comments{font-size:.9rem;margin:.25rem 0 0;padding:0;word-wrap:break-word;line-height:1.24;font-style:italic}.result-packages .attributes{margin-top:.3rem}.template_group_images{display:flex;flex-wrap:wrap}.template_group_images:after{flex-grow:10;content:""}.category-videos,.category-news,.category-map,.category-music,.category-files,.category-social{border:1px solid var(--color-result-border);margin:0 .5rem 1rem!important;border-radius:10px}.category-social .image{width:auto!important;min-width:48px;min-height:48px;padding:0 5px 25px 0!important}.audio-control audio{width:100%;padding:10px 0 0}.embedded-content iframe{width:100%;padding:10px 0 0}.result-videos img.thumbnail{float:left;padding-top:.6rem;padding-right:1rem;width:20rem;height:unset}.result-videos .content{overflow:hidden}.result-videos .embedded-video iframe{width:100%;aspect-ratio:16 / 9;padding:10px 0 0}@supports not (aspect-ratio: 1 / 1){.result-videos .embedded-video iframe{height:25.3125rem}}.engines{float:right;display:flex;flex-wrap:wrap;justify-content:flex-end;color:var(--color-result-engines-font)}.engines span{font-size:smaller;margin-top:0;margin-bottom:0;margin-right:.5rem;margin-left:0}.small_font{font-size:.8em}.highlight{color:var(--color-result-link-font-highlight);background:inherit}.empty_element{font-style:italic}.result-images{flex-grow:1;padding:.5rem .5rem 3rem;margin:.25rem;border:none!important;height:12rem;width:unset}.result-images>a{position:relative;outline:none}.result-images img{margin:0;padding:0;border:none;height:100%;width:auto;object-fit:cover;vertical-align:bottom;background:var(--color-result-image-background)}.result-images .image_resolution{position:absolute;right:0;bottom:0;background:var(--color-image-resolution-background);padding:.3rem .5rem;font-size:.9rem;color:var(--color-image-resolution-font);border-top-left-radius:.3rem}.result-images span.title,.result-images span.source{display:block;position:absolute;width:100%;font-size:.9rem;color:var(--color-result-image-span-font);padding:.5rem 0 0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.result-images span.source{padding:1.8rem 0 0;font-size:.7rem}.result-map img.image{float:right!important;height:100px!important;width:auto!important}.result-map table{font-size:.9em;width:auto;border-collapse:separate;border-spacing:0 .35rem}.result-map table th{font-weight:inherit;width:17rem;vertical-align:top;text-align:left}.result-map table td{vertical-align:top;text-align:left}.hidden{display:none!important}#results{margin-top:1rem;margin-right:2rem;margin-bottom:0;margin-left:10rem;display:grid;grid-template:"corrections sidebar" min-content "answers sidebar" min-content "urls sidebar" 1fr "pagination sidebar" min-content / 45rem 25rem;gap:0 5rem}#results #sidebar *:first-child{margin-top:0}#urls{padding:0;grid-area:urls}#apis .wrapper{display:flex}#suggestions .wrapper{display:flex;flex-flow:column;justify-content:flex-end}#suggestions .wrapper form{display:inline-block;flex:1 1 50%}#suggestions input,#infoboxes input{padding:0;margin:3px;font-size:.9em;display:inline-block;background:transparent;color:var(--color-result-search-url-font);cursor:pointer;width:100%;text-overflow:ellipsis;overflow:hidden;text-align:left}#suggestions input[type=submit],#infoboxes input[type=submit],#suggestions .infobox .url a,#infoboxes .infobox .url a{color:var(--color-result-link-font);text-decoration:none;font-size:.9rem}#suggestions input[type=submit]:hover,#infoboxes input[type=submit]:hover,#suggestions .infobox .url a:hover,#infoboxes .infobox .url a:hover{text-decoration:underline}#corrections{grid-area:corrections;display:flex;flex-flow:row wrap;margin:0 0 1em}#corrections h4,#corrections input[type=submit]{display:inline-block;padding:.5rem;margin:.5rem}#corrections input[type=submit]{font-size:.8rem;border-radius:5px}#infoboxes .title,#suggestions .title,#search_url .title,#engines_msg .title,#apis .title{margin:2em 0 .5em;color:var(--color-base-font)}summary.title{cursor:pointer;padding-top:1em}.sidebar-collapsible{border-top:1px solid var(--color-sidebar-border);padding-bottom:.5em}#sidebar-end-collapsible{border-bottom:1px solid var(--color-sidebar-border);width:100%}#answers{grid-area:answers;background:var(--color-answer-background);padding:1rem;margin:1rem 0;margin-top:0;color:var(--color-answer-font);border-radius:10px}#answers h4{display:none}#answers span{overflow-wrap:anywhere}#answers .answer{display:flex;flex-direction:column}#answers .answer-url{margin:5px 10px 10px auto}#infoboxes form{min-width:210px}#sidebar{grid-area:sidebar;word-wrap:break-word;color:var(--color-sidebar-font)}#sidebar .infobox{margin:10px 0;border:1px solid var(--color-sidebar-border);padding:1rem;font-size:.9em;border-radius:10px}#sidebar .infobox h2{margin:0 0 .5em}#sidebar .infobox img{max-width:100%;max-height:12em;display:block;margin:0 auto;padding:0}#sidebar .infobox dt{font-weight:700}#sidebar .infobox .attributes dl{margin:.5em 0}#sidebar .infobox .attributes dt{display:inline;margin:.5em .25em .5em 0;padding:0}#sidebar .infobox .attributes dd{display:inline;margin:.5em 0;padding:0}#sidebar .infobox input{font-size:1em}#sidebar .infobox br,#sidebar .infobox .attributes,#sidebar .infobox .urls{clear:both}#apis input{font-size:.9em;margin:0 10px 0 0;padding:5px 10px;border-radius:5px;background:var(--color-show-btn-background);color:var(--color-show-btn-font);cursor:pointer}#apis input:hover{background:var(--color-btn-background);color:var(--color-btn-font)}#engines_msg .engine-name{width:10rem}#engines_msg .response-error{color:var(--color-error)}#engines_msg .bar-chart-value{width:auto}#search_url div.selectable_url pre{float:left;width:200em}#search_url button#copy_url{float:right;padding:.4rem;margin-left:.5rem;border-radius:.3rem;display:none}#links_on_top{position:absolute;right:1rem;text-align:right;top:2.7rem;padding:0;border:0;display:flex;align-items:center;font-size:1em;color:var(--color-search-font)}#links_on_top a{display:flex;align-items:center;margin-left:1em}#links_on_top a svg{font-size:1.2em;margin-right:.125em}#links_on_top a,#links_on_top a:link *,#links_on_top a:hover *,#links_on_top a:visited *,#links_on_top a:active *{color:var(--color-search-font)}#pagination{grid-area:pagination}#pagination br{clear:both}.numbered_pagination{display:flex;flex-direction:row;justify-content:center;align-items:center;overflow:hidden}.page_number{background:transparent!important;color:var(--color-result-link-font)!important;text-decoration:underline}.page_number_current{background:transparent;color:var(--color-result-link-visited-font);border:none}#backToTop{border:1px solid var(--color-backtotop-border);margin:0;padding:0;font-size:1em;background:var(--color-backtotop-background);position:fixed;bottom:8rem;left:56.3rem;transition:opacity .5s;opacity:0;pointer-events:none;border-radius:10px}#backToTop a{display:block;margin:0;padding:.7em}#backToTop a,#backToTop a:visited,#backToTop a:hover,#backToTop a:active{color:var(--color-backtotop-font)}#results.scrolling #backToTop{opacity:1;pointer-events:all}@media screen and (width <= calc(79.75em - .5px)){#links_on_top span{display:none}}@media screen and (width <= 52rem){body.results_endpoint #links_on_top .link_on_top_about,body.results_endpoint #links_on_top .link_on_top_donate{display:none}}@media screen and (min-width: 50em) and (max-width: 79.75em){.center-alignment-no #links_on_top span{display:none}.center-alignment-no .page_with_header{margin:2rem .5rem;width:auto}.center-alignment-no #infoboxes{position:inherit;max-width:inherit}.center-alignment-no #infoboxes .infobox{clear:both}.center-alignment-no #infoboxes .infobox img{float:left;max-width:10em;margin:.5em .5em .5em 0}.center-alignment-no #sidebar{margin:0 .5rem .125rem;padding:0;float:none;border:none;width:auto}.center-alignment-no #sidebar input{border:0}.center-alignment-no .result .thumbnail{max-width:98%}.center-alignment-no .result .url span.url{display:block;white-space:nowrap;text-overflow:ellipsis;overflow:hidden;width:100%}.center-alignment-no .result .engines{float:right;display:flex;flex-wrap:wrap;justify-content:flex-end;padding:3px 0 0}.center-alignment-no .result-images{border-bottom:none!important}.center-alignment-no .image_result,.center-alignment-no .image_result img{max-width:98%}.center-alignment-no #backToTop{display:none}.center-alignment-no #pagination{margin:2rem 0 0!important}.center-alignment-no #main_results div#results{margin:0 auto;justify-content:center;display:grid;grid-template:"corrections" min-content "answers" min-content "sidebar" min-content "urls" 1fr "pagination" min-content / 45rem;gap:0}}#main_results div#results.only_template_images{margin:1rem .5rem 0;display:grid;grid-template:"corrections" min-content "answers" min-content "sidebar" min-content "urls" 1fr "pagination" min-content / 100%;gap:0}#main_results div#results.only_template_images #sidebar{display:none}#main_results div#results.only_template_images #urls{margin:0;display:flex;flex-wrap:wrap}#main_results div#results.only_template_images #urls:after{flex-grow:10;content:""}#main_results div#results.only_template_images #backToTop{left:auto;right:1rem}#main_results div#results.only_template_images #pagination{margin-right:4rem}@media screen and (max-width: 50em){#links_on_top span{display:none}.page_with_header{margin:2rem .5rem;width:auto}#infoboxes{position:inherit;max-width:inherit}#infoboxes .infobox{clear:both}#infoboxes .infobox img{float:left;max-width:10em;margin:.5em .5em .5em 0}#sidebar{margin:0 .5rem .125rem;padding:0;float:none;border:none;width:auto}#sidebar input{border:0}.result .thumbnail{max-width:98%}.result .url span.url{display:block;white-space:nowrap;text-overflow:ellipsis;overflow:hidden;width:100%}.result .engines{float:right;display:flex;flex-wrap:wrap;justify-content:flex-end;padding:3px 0 0}.result-images{border-bottom:none!important}.image_result,.image_result img{max-width:98%}#backToTop{display:none}#pagination{margin:2rem 0 0!important}#main_results div#results{margin:0 auto;justify-content:center;display:grid;grid-template:"corrections" min-content "answers" min-content "sidebar" min-content "urls" 1fr "pagination" min-content / 45rem;gap:0}html{background-color:var(--color-base-background-mobile)}#main_results div#results{grid-template-columns:100%;margin:0 auto}#links_on_top{top:1.4rem;right:10px}#main_index #links_on_top{top:.5rem;right:.5rem}#results{margin:0;padding:0}#pagination{margin:2rem 1rem 0!important}article[data-vim-selected]{border:1px solid var(--color-result-vim-arrow);border-radius:10px}.result{background:var(--color-result-background);border:1px solid var(--color-result-background);margin:1rem 2%;width:96%;border-radius:10px}.result-images{margin:0;height:10rem;background:var(--color-base-background-mobile);width:unset}.infobox{border:none!important;background-color:var(--color-sidebar-background)}.numbered_pagination{display:none}.result-paper .attributes,.result-packages .attributes,.result-paper .attributes div,.result-packages .attributes div{display:block}.result-paper .attributes div span,.result-packages .attributes div span{display:inline}.result-paper .attributes div span:first-child,.result-packages .attributes div span:first-child{font-weight:700}.result-paper .attributes div span:nth-child(2),.result-packages .attributes div span:nth-child(2){margin-left:.5rem}}@media screen and (max-width: 35em){.result-videos img.thumbnail{float:none!important}.result-videos .content{overflow:inherit}}pre code{white-space:pre-wrap}#main_results .result-keyvalue caption{padding:.8rem .5rem;font-style:italic;caption-side:bottom;background-color:var(--color-result-keyvalue-table)}#main_results .result-keyvalue .col-key{width:25%}#main_results .result-keyvalue table{word-break:break-word;table-layout:fixed;width:100%;background-color:var(--color-result-keyvalue-table)}#main_results .result-keyvalue tr.odd{background-color:var(--color-result-keyvalue-odd)}#main_results .result-keyvalue tr.even{background-color:var(--color-result-keyvalue-even)}#main_results .result-keyvalue th,#main_results .result-keyvalue td{padding:.3rem .5rem} diff --git a/searx/static/themes/simple/js/searxng.min.js b/searx/static/themes/simple/js/searxng.min.js index f2c49fb32..ce8fd6aa7 100644 --- a/searx/static/themes/simple/js/searxng.min.js +++ b/searx/static/themes/simple/js/searxng.min.js @@ -3,12 +3,12 @@ * (C) Copyright Contributors to the SearXNG project. * (C) Copyright Contributors to the searx project (2014 - 2021). * SPDX-License-Identifier: AGPL-3.0-or-later - */window.searxng=function(h,d){h.Element&&function(r){r.matches=r.matches||r.matchesSelector||r.webkitMatchesSelector||r.msMatchesSelector||function(a){for(var l=this,n=(l.parentNode||l.document).querySelectorAll(a),e=-1;n[++e]&&n[e]!=l;);return!!n[e]}}(Element.prototype);function u(r,a,l){try{r.call(a,l)}catch(n){console.log(n)}}var p=window.searxng||{};p.on=function(r,a,l,n){n=n||!1,typeof r!="string"?r.addEventListener(a,l,n):d.addEventListener(a,function(e){for(var t=e.target||e.srcElement,o=!1;t&&t.matches&&t!==d&&!(o=t.matches(r));)t=t.parentElement;o&&u(l,t,e)},n)},p.ready=function(r){document.readyState!="loading"?r.call(h):h.addEventListener("DOMContentLoaded",r.bind(h))},p.http=function(r,a,l=null){return new Promise(function(n,e){try{var t=new XMLHttpRequest;t.open(r,a,!0),t.timeout=2e4,t.onload=function(){t.status==200?n(t.response,t.responseType):e(Error(t.statusText))},t.onerror=function(){e(Error("Network Error"))},t.onabort=function(){e(Error("Transaction is aborted"))},t.ontimeout=function(){e(Error("Timeout"))},l?t.send(l):t.send()}catch(o){e(o)}})},p.loadStyle=function(r){var a=p.settings.theme_static_path+"/"+r,l="style_"+r.replace(".","_"),n=d.getElementById(l);n===null&&(n=d.createElement("link"),n.setAttribute("id",l),n.setAttribute("rel","stylesheet"),n.setAttribute("type","text/css"),n.setAttribute("href",a),d.body.appendChild(n))},p.loadScript=function(r,a){var l=p.settings.theme_static_path+"/"+r,n="script_"+r.replace(".","_"),e=d.getElementById(n);if(e===null)e=d.createElement("script"),e.setAttribute("id",n),e.setAttribute("src",l),e.onload=a,e.onerror=function(){e.setAttribute("error","1")},d.body.appendChild(e);else if(e.hasAttribute("error"))console.log("callback not executed : script '"+l+"' not loaded.");else try{a.apply(e,[])}catch(t){console.log(t)}},p.insertBefore=function(r,a){a.parentNode.insertBefore(r,a)},p.insertAfter=function(r,a){a.parentNode.insertAfter(r,a.nextSibling)},p.on(".close","click",function(){this.parentNode.classList.add("invisible")});function m(){for(var r of d.getElementsByTagName("body")[0].classList.values())if(r.endsWith("_endpoint"))return r.split("_")[0];return""}return p.endpoint=m(),p}(window,document);searxng.ready(function(){if(searxng.infinite_scroll_supported="IntersectionObserver"in window&&"IntersectionObserverEntry"in window&&"intersectionRatio"in window.IntersectionObserverEntry.prototype,searxng.endpoint!=="results")return;if(!searxng.infinite_scroll_supported){console.log("IntersectionObserver not supported");return}let h=document;var d=h.getElementById("results").classList.contains("only_template_images");function u(){var r=h.createElement("div");return r.classList.add("loader"),r}function p(r,a){r.textContent="",a.forEach(l=>r.appendChild(l))}function m(r){var a=h.querySelector("#pagination form.next_page");if(a){p(h.querySelector("#pagination"),[u()]);var l=new FormData(a);searxng.http("POST",h.querySelector("#search").getAttribute("action"),l).then(function(n){var e=new DOMParser().parseFromString(n,"text/html"),t=e.querySelectorAll("#urls article"),o=e.querySelector("#pagination");h.querySelector("#pagination").remove(),t.length>0&&!d&&h.querySelector("#urls").appendChild(h.createElement("hr")),t.forEach(c=>{h.querySelector("#urls").appendChild(c)}),o&&(h.querySelector("#results").appendChild(o),r())}).catch(function(n){console.log(n);var e=h.createElement("div");e.textContent=searxng.settings.translations.error_loading_next_page,e.classList.add("dialog-error"),e.setAttribute("role","alert"),p(h.querySelector("#pagination"),[e])})}}if(searxng.settings.infinite_scroll&&searxng.infinite_scroll_supported){const r={rootMargin:"20rem"},a="article.result:last-child",l=new IntersectionObserver(n=>{const e=n[0];e.isIntersecting&&(l.unobserve(e.target),m(()=>l.observe(h.querySelector(a),r)))});l.observe(h.querySelector(a),r)}});searxng.ready(function(){function h(i){for(;i!==void 0;){if(i.classList.contains("detail"))return!0;if(i.classList.contains("result"))return!1;i=i.parentNode}return!1}function d(i){for(;i!==void 0;){if(i.classList.contains("result"))return i;i=i.parentNode}}function u(i){return i&&i.classList.contains("result-images")}searxng.on(".result","click",function(i){if(!h(i.target)){a(this)(!0,!0);let f=d(i.target);u(f)&&(i.preventDefault(),searxng.selectImage(f))}}),searxng.on(".result a","focus",function(i){if(!h(i.target)){let f=d(i.target);f&&f.getAttribute("data-vim-selected")===null&&a(f)(!0),u(f)&&searxng.selectImage(f)}},!0);var p={Escape:{key:"ESC",fun:n,des:"remove focus from the focused input",cat:"Control"},c:{key:"c",fun:O,des:"copy url of the selected result to the clipboard",cat:"Results"},h:{key:"h",fun:_,des:"toggle help window",cat:"Other"},i:{key:"i",fun:v,des:"focus on the search input",cat:"Control"},n:{key:"n",fun:t(),des:"go to next page",cat:"Results"},o:{key:"o",fun:b(!1),des:"open search result",cat:"Results"},p:{key:"p",fun:o(),des:"go to previous page",cat:"Results"},r:{key:"r",fun:l,des:"reload page from the server",cat:"Control"},t:{key:"t",fun:b(!0),des:"open the result in a new tab",cat:"Results"}},m={default:Object.assign({ArrowLeft:{key:"←",fun:a("up"),des:"select previous search result",cat:"Results"},ArrowRight:{key:"→",fun:a("down"),des:"select next search result",cat:"Results"}},p),vim:Object.assign({b:{key:"b",fun:s(-window.innerHeight),des:"scroll one page up",cat:"Navigation"},f:{key:"f",fun:s(window.innerHeight),des:"scroll one page down",cat:"Navigation"},u:{key:"u",fun:s(-window.innerHeight/2),des:"scroll half a page up",cat:"Navigation"},d:{key:"d",fun:s(window.innerHeight/2),des:"scroll half a page down",cat:"Navigation"},g:{key:"g",fun:g(-document.body.scrollHeight,"top"),des:"scroll to the top of the page",cat:"Navigation"},v:{key:"v",fun:g(document.body.scrollHeight,"bottom"),des:"scroll to the bottom of the page",cat:"Navigation"},k:{key:"k",fun:a("up"),des:"select previous search result",cat:"Results"},j:{key:"j",fun:a("down"),des:"select next search result",cat:"Results"},y:{key:"y",fun:O,des:"copy url of the selected result to the clipboard",cat:"Results"}},p)},r=m[searxng.settings.hotkeys]||m.default;searxng.on(document,"keydown",function(i){if(Object.prototype.hasOwnProperty.call(r,i.key)&&!i.ctrlKey&&!i.altKey&&!i.shiftKey&&!i.metaKey){var f=i.target.tagName.toLowerCase();i.key==="Escape"?r[i.key].fun(i):(i.target===document.body||f==="a"||f==="button")&&(i.preventDefault(),r[i.key].fun())}});function a(i){return function(f,M){var E=document.querySelector(".result[data-vim-selected]"),A=i;if(E===null){if(E=document.querySelector(".result"),E===null)return;(i==="down"||i==="up")&&(A=E)}var y,w=document.querySelectorAll(".result");if(w=Array.from(w),typeof A!="string")y=A;else switch(A){case"visible":for(var T=document.documentElement.scrollTop||document.body.scrollTop,x=T+document.documentElement.clientHeight,I=0;IT)break}break;case"down":y=w[w.indexOf(E)+1]||E;break;case"up":y=w[w.indexOf(E)-1]||E;break;case"bottom":y=w[w.length-1];break;case"top":default:y=w[0]}if(y){if(E.removeAttribute("data-vim-selected"),y.setAttribute("data-vim-selected","true"),!M){var D=y.querySelector("h3 a")||y.querySelector("a");D!==null&&D.focus()}f||c()}}}function l(){document.location.reload(!0)}function n(i){const f=i.target.tagName.toLowerCase();document.activeElement&&(f==="input"||f==="select"||f==="textarea")?document.activeElement.blur():searxng.closeDetail()}function e(i){return function(){var f=document.querySelector(i);f&&f.click()}}function t(){return e('nav#pagination .next_page button[type="submit"]')}function o(){return e('nav#pagination .previous_page button[type="submit"]')}function c(){var i=document.querySelector(".result[data-vim-selected]");if(i!==null){var f=document.documentElement.scrollTop||document.body.scrollTop,M=document.documentElement.clientHeight,E=i.offsetTop,A=E+i.clientHeight,y=120;if(i.previousElementSibling===null&&AE-y)window.scroll(window.scrollX,E-y);else{var w=f+M;w a")),f!==null){var M=f.getAttribute("href");i?window.open(M):window.location.href=M}}}function k(i){var f={};for(var M in r){var E=r[M];f[E.cat]=f[E.cat]||[],f[E.cat].push(E)}var A=Object.keys(f).sort(function(N,D){return f[D].length-f[N].length});if(A.length!==0){var y='×';y+="

How to navigate SearXNG with hotkeys

",y+="";for(var w=0;w"),y+="",(!I||x)&&(y+="")}y+="
",y+="

"+T[0].cat+"

",y+='
    ';for(var R in T)y+="
  • "+T[R].key+" "+T[R].des+"
  • ";y+="
",y+="
",i.innerHTML=y}}function _(){var i=document.querySelector("#vim-hotkeys-help");if(i==null){i=document.createElement("div"),i.id="vim-hotkeys-help",i.className="dialog-modal",k(i);var f=document.getElementsByTagName("body")[0];f.appendChild(i)}else{i.classList.toggle("invisible");return}}function O(){var i=document.querySelector(".result[data-vim-selected] h3 a");if(i===null)return;const f=i.getAttribute("href");navigator.clipboard.writeText(f)}searxng.scrollPageToSelected=c,searxng.selectNext=a("down"),searxng.selectPrevious=a("up")});(function(h,d,u){u.ready(function(){u.on(".searxng_init_map","click",function(p){this.classList.remove("searxng_init_map");var m=this.dataset.leafletTarget,r=parseFloat(this.dataset.mapLon),a=parseFloat(this.dataset.mapLat),l=parseFloat(this.dataset.mapZoom),n=JSON.parse(this.dataset.mapBoundingbox),e=JSON.parse(this.dataset.mapGeojson);u.loadStyle("css/leaflet.css"),u.loadScript("js/leaflet.js",function(){var t=null;if(n){var o=L.latLng(n[0],n[2]),c=L.latLng(n[1],n[3]);t=L.latLngBounds(o,c)}var s=L.map(m),g="https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png",v='Map data © OpenStreetMap contributors',b=new L.TileLayer(g,{minZoom:1,maxZoom:19,attribution:v}),k="https://maps.wikimedia.org/osm-intl/{z}/{x}/{y}.png",_='Wikimedia maps | Maps data © OpenStreetMap contributors',O=new L.TileLayer(k,{minZoom:1,maxZoom:19,attribution:_});t?setTimeout(function(){s.fitBounds(t,{maxZoom:17})},0):r&&a&&(l?s.setView(new L.latLng(a,r),l):s.setView(new L.latLng(a,r),8)),s.addLayer(b);var i={"OSM Mapnik":b,"OSM Wikimedia":O};L.control.layers(i).addTo(s),e&&L.geoJson(e).addTo(s)}),p.preventDefault()})})})(window,document,window.searxng);(function(h,d,u){u.endpoint==="preferences"&&u.ready(function(){let p=null;function m(){p==null&&u.http("GET","engine_descriptions.json").then(function(t){p=JSON.parse(t);for(const[o,c]of Object.entries(p)){let s=d.querySelectorAll('[data-engine-name="'+o+'"] .engine-description');for(const g of s){let v=" ("+u.settings.translations.Source+": "+c[1]+")";g.innerHTML=c[0]+v}}})}for(const t of d.querySelectorAll("[data-engine-name]"))u.on(t,"mouseenter",m);const r=d.querySelectorAll(".enable-all-engines"),a=d.querySelectorAll(".disable-all-engines"),l=d.querySelectorAll("tbody input[type=checkbox][class~=checkbox-onoff]"),n=t=>{for(const o of l)o.offsetParent!==null&&(o.checked=!t)};for(const t of r)u.on(t,"click",()=>n(!0));for(const t of a)u.on(t,"click",()=>n(!1));const e=d.querySelector("#copy-hash");u.on(e,"click",t=>{t.preventDefault(),navigator.clipboard.writeText(e.dataset.hash),e.innerText=e.dataset.copiedText})})})(window,document,window.searxng);/*! + */window.searxng=function(h,s){h.Element&&function(o){o.matches=o.matches||o.matchesSelector||o.webkitMatchesSelector||o.msMatchesSelector||function(l){for(var n=this,r=(n.parentNode||n.document).querySelectorAll(l),t=-1;r[++t]&&r[t]!=n;);return!!r[t]}}(Element.prototype);function i(o,l,n){try{o.call(l,n)}catch(r){console.log(r)}}var p=window.searxng||{};p.on=function(o,l,n,r){r=r||!1,typeof o!="string"?o.addEventListener(l,n,r):s.addEventListener(l,function(t){for(var a=t.target||t.srcElement,f=!1;a&&a.matches&&a!==s&&!(f=a.matches(o));)a=a.parentElement;f&&i(n,a,t)},r)},p.ready=function(o){document.readyState!="loading"?o.call(h):h.addEventListener("DOMContentLoaded",o.bind(h))},p.http=function(o,l,n=null){return new Promise(function(r,t){try{var a=new XMLHttpRequest;a.open(o,l,!0),a.timeout=2e4,a.onload=function(){a.status==200?r(a.response,a.responseType):t(Error(a.statusText))},a.onerror=function(){t(Error("Network Error"))},a.onabort=function(){t(Error("Transaction is aborted"))},a.ontimeout=function(){t(Error("Timeout"))},n?a.send(n):a.send()}catch(f){t(f)}})},p.loadStyle=function(o){var l=p.settings.theme_static_path+"/"+o,n="style_"+o.replace(".","_"),r=s.getElementById(n);r===null&&(r=s.createElement("link"),r.setAttribute("id",n),r.setAttribute("rel","stylesheet"),r.setAttribute("type","text/css"),r.setAttribute("href",l),s.body.appendChild(r))},p.loadScript=function(o,l){var n=p.settings.theme_static_path+"/"+o,r="script_"+o.replace(".","_"),t=s.getElementById(r);if(t===null)t=s.createElement("script"),t.setAttribute("id",r),t.setAttribute("src",n),t.onload=l,t.onerror=function(){t.setAttribute("error","1")},s.body.appendChild(t);else if(t.hasAttribute("error"))console.log("callback not executed : script '"+n+"' not loaded.");else try{l.apply(t,[])}catch(a){console.log(a)}},p.insertBefore=function(o,l){l.parentNode.insertBefore(o,l)},p.insertAfter=function(o,l){l.parentNode.insertAfter(o,l.nextSibling)},p.on(".close","click",function(){this.parentNode.classList.add("invisible")});function g(){for(var o of s.getElementsByTagName("body")[0].classList.values())if(o.endsWith("_endpoint"))return o.split("_")[0];return""}return p.endpoint=g(),p}(window,document);searxng.ready(function(){if(searxng.infinite_scroll_supported="IntersectionObserver"in window&&"IntersectionObserverEntry"in window&&"intersectionRatio"in window.IntersectionObserverEntry.prototype,searxng.endpoint!=="results")return;if(!searxng.infinite_scroll_supported){console.log("IntersectionObserver not supported");return}let h=document;var s=h.getElementById("results").classList.contains("only_template_images");function i(){var o=h.createElement("div");return o.classList.add("loader"),o}function p(o,l){o.textContent="",l.forEach(n=>o.appendChild(n))}function g(o){var l=h.querySelector("#pagination form.next_page");if(l){p(h.querySelector("#pagination"),[i()]);var n=new FormData(l);searxng.http("POST",h.querySelector("#search").getAttribute("action"),n).then(function(r){var t=new DOMParser().parseFromString(r,"text/html"),a=t.querySelectorAll("#urls article"),f=t.querySelector("#pagination");h.querySelector("#pagination").remove(),a.length>0&&!s&&h.querySelector("#urls").appendChild(h.createElement("hr")),a.forEach(b=>{h.querySelector("#urls").appendChild(b)}),f&&(h.querySelector("#results").appendChild(f),o())}).catch(function(r){console.log(r);var t=h.createElement("div");t.textContent=searxng.settings.translations.error_loading_next_page,t.classList.add("dialog-error"),t.setAttribute("role","alert"),p(h.querySelector("#pagination"),[t])})}}if(searxng.settings.infinite_scroll&&searxng.infinite_scroll_supported){const o={rootMargin:"20rem"},l="article.result:last-child",n=new IntersectionObserver(r=>{const t=r[0];t.isIntersecting&&(n.unobserve(t.target),g(()=>n.observe(h.querySelector(l),o)))});n.observe(h.querySelector(l),o)}});searxng.ready(function(){function h(e){for(;e!==void 0;){if(e.classList.contains("detail"))return!0;if(e.classList.contains("result"))return!1;e=e.parentNode}return!1}function s(e){for(;e!==void 0;){if(e.classList.contains("result"))return e;e=e.parentNode}}function i(e){return e&&e.classList.contains("result-images")}searxng.on(".result","click",function(e){if(!h(e.target)){l(this)(!0,!0);let u=s(e.target);i(u)&&(e.preventDefault(),searxng.selectImage(u))}}),searxng.on(".result a","focus",function(e){if(!h(e.target)){let u=s(e.target);u&&u.getAttribute("data-vim-selected")===null&&l(u)(!0),i(u)&&searxng.selectImage(u)}},!0);var p={Escape:{key:"ESC",fun:r,des:"remove focus from the focused input",cat:"Control"},c:{key:"c",fun:A,des:"copy url of the selected result to the clipboard",cat:"Results"},h:{key:"h",fun:T,des:"toggle help window",cat:"Other"},i:{key:"i",fun:m,des:"focus on the search input",cat:"Control"},n:{key:"n",fun:a(),des:"go to next page",cat:"Results"},o:{key:"o",fun:y(!1),des:"open search result",cat:"Results"},p:{key:"p",fun:f(),des:"go to previous page",cat:"Results"},r:{key:"r",fun:n,des:"reload page from the server",cat:"Control"},t:{key:"t",fun:y(!0),des:"open the result in a new tab",cat:"Results"}},g={default:Object.assign({ArrowLeft:{key:"←",fun:l("up"),des:"select previous search result",cat:"Results"},ArrowRight:{key:"→",fun:l("down"),des:"select next search result",cat:"Results"}},p),vim:Object.assign({b:{key:"b",fun:c(-window.innerHeight),des:"scroll one page up",cat:"Navigation"},f:{key:"f",fun:c(window.innerHeight),des:"scroll one page down",cat:"Navigation"},u:{key:"u",fun:c(-window.innerHeight/2),des:"scroll half a page up",cat:"Navigation"},d:{key:"d",fun:c(window.innerHeight/2),des:"scroll half a page down",cat:"Navigation"},g:{key:"g",fun:d(-document.body.scrollHeight,"top"),des:"scroll to the top of the page",cat:"Navigation"},v:{key:"v",fun:d(document.body.scrollHeight,"bottom"),des:"scroll to the bottom of the page",cat:"Navigation"},k:{key:"k",fun:l("up"),des:"select previous search result",cat:"Results"},j:{key:"j",fun:l("down"),des:"select next search result",cat:"Results"},y:{key:"y",fun:A,des:"copy url of the selected result to the clipboard",cat:"Results"}},p)},o=g[searxng.settings.hotkeys]||g.default;searxng.on(document,"keydown",function(e){if(Object.prototype.hasOwnProperty.call(o,e.key)&&!e.ctrlKey&&!e.altKey&&!e.shiftKey&&!e.metaKey){var u=e.target.tagName.toLowerCase();e.key==="Escape"?o[e.key].fun(e):(e.target===document.body||u==="a"||u==="button")&&(e.preventDefault(),o[e.key].fun())}});function l(e){return function(u,_){var E=document.querySelector(".result[data-vim-selected]"),k=e;if(E===null){if(E=document.querySelector(".result"),E===null)return;(e==="down"||e==="up")&&(k=E)}var v,w=document.querySelectorAll(".result");if(w=Array.from(w),typeof k!="string")v=k;else switch(k){case"visible":for(var q=document.documentElement.scrollTop||document.body.scrollTop,B=q+document.documentElement.clientHeight,x=0;xq)break}break;case"down":v=w[w.indexOf(E)+1]||E;break;case"up":v=w[w.indexOf(E)-1]||E;break;case"bottom":v=w[w.length-1];break;case"top":default:v=w[0]}if(v){if(E.removeAttribute("data-vim-selected"),v.setAttribute("data-vim-selected","true"),!_){var C=v.querySelector("h3 a")||v.querySelector("a");C!==null&&C.focus()}u||b()}}}function n(){document.location.reload(!0)}function r(e){const u=e.target.tagName.toLowerCase();document.activeElement&&(u==="input"||u==="select"||u==="textarea")?document.activeElement.blur():searxng.closeDetail()}function t(e){return function(){var u=document.querySelector(e);u&&u.click()}}function a(){return t('nav#pagination .next_page button[type="submit"]')}function f(){return t('nav#pagination .previous_page button[type="submit"]')}function b(){var e=document.querySelector(".result[data-vim-selected]");if(e!==null){var u=document.documentElement.scrollTop||document.body.scrollTop,_=document.documentElement.clientHeight,E=e.offsetTop,k=E+e.clientHeight,v=120;if(e.previousElementSibling===null&&k<_){window.scroll(window.scrollX,0);return}if(u>E-v)window.scroll(window.scrollX,E-v);else{var w=u+_;w a")),u!==null){var _=u.getAttribute("href");e?window.open(_):window.location.href=_}}}function S(e){var u={};for(var _ in o){var E=o[_];u[E.cat]=u[E.cat]||[],u[E.cat].push(E)}var k=Object.keys(u).sort(function(M,C){return u[C].length-u[M].length});if(k.length!==0){var v='×';v+="

How to navigate SearXNG with hotkeys

",v+="";for(var w=0;w"),v+="",(!x||B)&&(v+="")}v+="
",v+="

"+q[0].cat+"

",v+='
    ';for(var I in q)v+="
  • "+q[I].key+" "+q[I].des+"
  • ";v+="
",v+="
",e.innerHTML=v}}function T(){var e=document.querySelector("#vim-hotkeys-help");if(e==null){e=document.createElement("div"),e.id="vim-hotkeys-help",e.className="dialog-modal",S(e);var u=document.getElementsByTagName("body")[0];u.appendChild(e)}else{e.classList.toggle("invisible");return}}function A(){var e=document.querySelector(".result[data-vim-selected] h3 a");if(e===null)return;const u=e.getAttribute("href");navigator.clipboard.writeText(u)}searxng.scrollPageToSelected=b,searxng.selectNext=l("down"),searxng.selectPrevious=l("up")});(function(h,s,i){i.ready(function(){i.on(".searxng_init_map","click",function(p){this.classList.remove("searxng_init_map");var g=this.dataset.leafletTarget,o=parseFloat(this.dataset.mapLon),l=parseFloat(this.dataset.mapLat),n=parseFloat(this.dataset.mapZoom),r=JSON.parse(this.dataset.mapBoundingbox),t=JSON.parse(this.dataset.mapGeojson);i.loadStyle("css/leaflet.css"),i.loadScript("js/leaflet.js",function(){var a=null;if(r){var f=L.latLng(r[0],r[2]),b=L.latLng(r[1],r[3]);a=L.latLngBounds(f,b)}var c=L.map(g),d="https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png",m='Map data © OpenStreetMap contributors',y=new L.TileLayer(d,{minZoom:1,maxZoom:19,attribution:m}),S="https://maps.wikimedia.org/osm-intl/{z}/{x}/{y}.png",T='Wikimedia maps | Maps data © OpenStreetMap contributors',A=new L.TileLayer(S,{minZoom:1,maxZoom:19,attribution:T});a?setTimeout(function(){c.fitBounds(a,{maxZoom:17})},0):o&&l&&(n?c.setView(new L.latLng(l,o),n):c.setView(new L.latLng(l,o),8)),c.addLayer(y);var e={"OSM Mapnik":y,"OSM Wikimedia":A};L.control.layers(e).addTo(c),t&&L.geoJson(t).addTo(c)}),p.preventDefault()})})})(window,document,window.searxng);(function(h,s,i){i.endpoint==="preferences"&&i.ready(function(){let p=null;function g(){p==null&&i.http("GET","engine_descriptions.json").then(function(a){p=JSON.parse(a);for(const[f,b]of Object.entries(p)){let c=s.querySelectorAll('[data-engine-name="'+f+'"] .engine-description');for(const d of c){let m=" ("+i.settings.translations.Source+": "+b[1]+")";d.innerHTML=b[0]+m}}})}for(const a of s.querySelectorAll("[data-engine-name]"))i.on(a,"mouseenter",g);const o=s.querySelectorAll(".enable-all-engines"),l=s.querySelectorAll(".disable-all-engines"),n=s.querySelectorAll("tbody input[type=checkbox][class~=checkbox-onoff]"),r=a=>{for(const f of n)f.offsetParent!==null&&(f.checked=!a)};for(const a of o)i.on(a,"click",()=>r(!0));for(const a of l)i.on(a,"click",()=>r(!1));const t=s.querySelector("#copy-hash");i.on(t,"click",a=>{a.preventDefault(),navigator.clipboard.writeText(t.dataset.hash),t.innerText=t.dataset.copiedText})})})(window,document,window.searxng);/*! * swiped-events.js - v@version@ * Pure JavaScript swipe events * https://github.com/john-doherty/swiped-events * @inspiration https://stackoverflow.com/questions/16348031/disable-scrolling-when-touch-moving-certain-element * @author John Doherty * @license MIT - */(function(h,d){typeof h.CustomEvent!="function"&&(h.CustomEvent=function(s,g){g=g||{bubbles:!1,cancelable:!1,detail:void 0};var v=d.createEvent("CustomEvent");return v.initCustomEvent(s,g.bubbles,g.cancelable,g.detail),v},h.CustomEvent.prototype=h.Event.prototype),d.addEventListener("touchstart",t,!1),d.addEventListener("touchmove",o,!1),d.addEventListener("touchend",e,!1);var u=null,p=null,m=null,r=null,a=null,l=null,n=0;function e(s){if(l===s.target){var g=parseInt(c(l,"data-swipe-threshold","20"),10),v=c(l,"data-swipe-unit","px"),b=parseInt(c(l,"data-swipe-timeout","500"),10),k=Date.now()-a,_="",O=s.changedTouches||s.touches||[];if(v==="vh"&&(g=Math.round(g/100*d.documentElement.clientHeight)),v==="vw"&&(g=Math.round(g/100*d.documentElement.clientWidth)),Math.abs(m)>Math.abs(r)?Math.abs(m)>g&&k0?_="swiped-left":_="swiped-right"):Math.abs(r)>g&&k0?_="swiped-up":_="swiped-down"),_!==""){var i={dir:_.replace(/swiped-/,""),touchType:(O[0]||{}).touchType||"direct",fingers:n,xStart:parseInt(u,10),xEnd:parseInt((O[0]||{}).clientX||-1,10),yStart:parseInt(p,10),yEnd:parseInt((O[0]||{}).clientY||-1,10)};l.dispatchEvent(new CustomEvent("swiped",{bubbles:!0,cancelable:!0,detail:i})),l.dispatchEvent(new CustomEvent(_,{bubbles:!0,cancelable:!0,detail:i}))}u=null,p=null,a=null}}function t(s){s.target.getAttribute("data-swipe-ignore")!=="true"&&(l=s.target,a=Date.now(),u=s.touches[0].clientX,p=s.touches[0].clientY,m=0,r=0,n=s.touches.length)}function o(s){if(!(!u||!p)){var g=s.touches[0].clientX,v=s.touches[0].clientY;m=u-g,r=p-v}}function c(s,g,v){for(;s&&s!==d.documentElement;){var b=s.getAttribute(g);if(b)return b;s=s.parentNode}return v}})(window,document);(function(h,d,u){u.endpoint==="results"&&u.ready(function(){d.querySelectorAll("#urls img").forEach(l=>l.addEventListener("error",()=>{l.src=window.searxng.settings.theme_static_path+"/img/img_load_error.svg"},{once:!0})),d.querySelector("#search_url button#copy_url")&&(d.querySelector("#search_url button#copy_url").style.display="block"),u.on(".btn-collapse","click",function(){var l=this.getAttribute("data-btn-text-collapsed"),n=this.getAttribute("data-btn-text-not-collapsed"),e=this.getAttribute("data-target"),t=d.querySelector(e),o=this.innerHTML;this.classList.contains("collapsed")?o=o.replace(l,n):o=o.replace(n,l),this.innerHTML=o,this.classList.toggle("collapsed"),t.classList.toggle("invisible")}),u.on(".media-loader","click",function(){var l=this.getAttribute("data-target"),n=d.querySelector(l+" > iframe"),e=n.getAttribute("src");(e==null||e===!1)&&n.setAttribute("src",n.getAttribute("data-src"))}),u.on("#copy_url","click",function(){var l=this.parentElement.querySelector("pre");navigator.clipboard.writeText(l.innerText),this.innerText=this.dataset.copiedText});let p;const m=d.createElement("div");m.classList.add("loader");const r=new Image,a=(l,n)=>{p&&clearTimeout(p),p=setTimeout(()=>{r.src=l},1e3),r.onload=()=>{n(),m.remove()},r.onerror=()=>{m.remove()}};u.selectImage=l=>{if(d.getElementById("results").classList.add("image-detail-open"),window.location.hash="#image-viewer",u.scrollPageToSelected(),!l)return;const n=l.querySelector(".result-images-source img");if(!n)return;const e=n.getAttribute("data-src");if(!e)return;const t=l.querySelector(".image_thumbnail");n.src=t.src,l.querySelector(".detail").appendChild(m),a(e,()=>{n.src=e,n.removeAttribute("data-src")})},u.closeDetail=function(){d.getElementById("results").classList.remove("image-detail-open"),window.location.hash=="#image-viewer"&&window.history.back(),u.scrollPageToSelected()},u.on(".result-detail-close","click",l=>{l.preventDefault(),u.closeDetail()}),u.on(".result-detail-previous","click",l=>{l.preventDefault(),u.selectPrevious(!1)}),u.on(".result-detail-next","click",l=>{l.preventDefault(),u.selectNext(!1)}),window.addEventListener("hashchange",()=>{window.location.hash!="#image-viewer"&&u.closeDetail()}),d.querySelectorAll(".swipe-horizontal").forEach(l=>{l.addEventListener("swiped-left",function(){u.selectNext(!1)}),l.addEventListener("swiped-right",function(){u.selectPrevious(!1)})}),h.addEventListener("scroll",function(){var l=d.getElementById("backToTop"),n=document.documentElement.scrollTop||document.body.scrollTop,e=d.getElementById("results");l!==null&&(n>=100?e.classList.add("scrolling"):e.classList.remove("scrolling"))},!0)})})(window,document,window.searxng);function P(h){return h&&h.__esModule&&Object.prototype.hasOwnProperty.call(h,"default")?h.default:h}function C(h){throw new Error('Could not dynamically require "'+h+'". Please configure the dynamicRequireTargets or/and ignoreDynamicRequires option of @rollup/plugin-commonjs appropriately for this require call to work.')}var q={exports:{}},H;function B(){return H||(H=1,function(h,d){(function(u){h.exports=u()})(function(){return function(){function u(p,m,r){function a(e,t){if(!m[e]){if(!p[e]){var o=typeof C=="function"&&C;if(!t&&o)return o(e,!0);if(l)return l(e,!0);var c=new Error("Cannot find module '"+e+"'");throw c.code="MODULE_NOT_FOUND",c}var s=m[e]={exports:{}};p[e][0].call(s.exports,function(g){var v=p[e][1][g];return a(v||g)},s,s.exports,u,p,m,r)}return m[e].exports}for(var l=typeof C=="function"&&C,n=0;n=b.From&&o.keyCode<=b.To?v=!b.Not:v=b.Not))};for(var s in n.prototype.getEventsByType(e,t)){var g=n.merge({Operator:r.AND},e.KeyboardMappings[s]),v=r.AND==g.Operator;g.Conditions.forEach(c),v===!0&&g.Callback.call(e,o)}},n.prototype.makeRequest=function(e,t,o){var c=Object.getOwnPropertyNames(e.HttpHeaders),s=new XMLHttpRequest,g=e._HttpMethod(),v=e._Url(),b=e._Pre(),k=encodeURIComponent(e._QueryArg())+"="+encodeURIComponent(b);g.match(/^GET$/i)&&(v.indexOf("?")!==-1?v+="&"+k:v+="?"+k),s.open(g,v,!0);for(var _=c.length-1;_>=0;_--)s.setRequestHeader(c[_],e.HttpHeaders[c[_]]);return s.onreadystatechange=function(){s.readyState==4&&s.status==200?(e.$Cache[b]=s.response,t(s.response)):s.status>=400&&o()},s},n.prototype.ajax=function(e,t,o){o===void 0&&(o=!0),e.$AjaxTimer&&window.clearTimeout(e.$AjaxTimer),o===!0?e.$AjaxTimer=window.setTimeout(n.prototype.ajax.bind(null,e,t,!1),e.Delay):(e.Request&&e.Request.abort(),e.Request=t,e.Request.send(e._QueryArg()+"="+e._Pre()))},n.prototype.cache=function(e,t,o){var c=e._Cache(e._Pre());if(c===void 0){var s=n.prototype.makeRequest(e,t,o);n.prototype.ajax(e,s)}else t(c)},n.prototype.destroy=function(e){for(var t in e.$Listeners)e.Input.removeEventListener(t,e.$Listeners[t]);e.DOMResults.parentNode.removeChild(e.DOMResults)},n.merge=function(){for(var e={},t,o=0;o"+e+""}},HttpHeaders:{"Content-type":"application/x-www-form-urlencoded"},Limit:0,MinChars:0,HttpMethod:"GET",QueryArg:"q",Url:null,KeyboardMappings:{Enter:{Conditions:[{Is:13,Not:!1}],Callback:function(e){if(this.DOMResults.getAttribute("class").indexOf("open")!=-1){var t=this.DOMResults.querySelector("li.active");t!==null&&(e.preventDefault(),this._Select(t),this.DOMResults.setAttribute("class","autocomplete"))}},Operator:r.AND,Event:a.KEYDOWN},KeyUpAndDown_down:{Conditions:[{Is:38,Not:!1},{Is:40,Not:!1}],Callback:function(e){e.preventDefault()},Operator:r.OR,Event:a.KEYDOWN},KeyUpAndDown_up:{Conditions:[{Is:38,Not:!1},{Is:40,Not:!1}],Callback:function(e){e.preventDefault();var t=this.DOMResults.querySelector("li:first-child:not(.locked)"),o=this.DOMResults.querySelector("li:last-child:not(.locked)"),c=this.DOMResults.querySelector("li.active");if(c){var s=Array.prototype.indexOf.call(c.parentNode.children,c),g=s+(e.keyCode-39),v=this.DOMResults.getElementsByTagName("li").length;g<0?g=v-1:g>=v&&(g=0),c.classList.remove("active"),c.parentElement.children.item(g).classList.add("active")}else o&&e.keyCode==38?o.classList.add("active"):t&&t.classList.add("active")},Operator:r.OR,Event:a.KEYUP},AlphaNum:{Conditions:[{Is:13,Not:!0},{From:35,To:40,Not:!0}],Callback:function(){var e=this.Input.getAttribute("data-autocomplete-old-value"),t=this._Pre();t!==""&&t.length>=this._MinChars()?((!e||t!=e)&&this.DOMResults.setAttribute("class","autocomplete open"),n.prototype.cache(this,(function(o){this._Render(this._Post(o)),this._Open()}).bind(this),this._Error)):this._Close()},Operator:r.AND,Event:a.KEYUP}},DOMResults:null,Request:null,Input:null,_EmptyMessage:function(){var e="";return this.Input.hasAttribute("data-autocomplete-empty-message")?e=this.Input.getAttribute("data-autocomplete-empty-message"):this.EmptyMessage!==!1?e=this.EmptyMessage:e="",e},_Limit:function(){var e=this.Input.getAttribute("data-autocomplete-limit");return isNaN(e)||e===null?this.Limit:parseInt(e,10)},_MinChars:function(){var e=this.Input.getAttribute("data-autocomplete-minchars");return isNaN(e)||e===null?this.MinChars:parseInt(e,10)},_Highlight:function(e){return e.replace(this.Highlight.getRegex(this._Pre()),this.Highlight.transform)},_HttpMethod:function(){return this.Input.hasAttribute("data-autocomplete-method")?this.Input.getAttribute("data-autocomplete-method"):this.HttpMethod},_QueryArg:function(){return this.Input.hasAttribute("data-autocomplete-param-name")?this.Input.getAttribute("data-autocomplete-param-name"):this.QueryArg},_Url:function(){return this.Input.hasAttribute("data-autocomplete")?this.Input.getAttribute("data-autocomplete"):this.Url},_Blur:function(e){if(e===void 0&&(e=!1),e)this._Close();else{var t=this;setTimeout(function(){t._Blur(!0)},150)}},_Cache:function(e){return this.$Cache[e]},_Focus:function(){var e=this.Input.getAttribute("data-autocomplete-old-value");(!e||this.Input.value!=e)&&this._MinChars()<=this.Input.value.length&&this.DOMResults.setAttribute("class","autocomplete open")},_Open:function(){var e=this;Array.prototype.forEach.call(this.DOMResults.getElementsByTagName("li"),function(t){t.getAttribute("class")!="locked"&&(t.onclick=function(){e._Select(t)})})},_Close:function(){this.DOMResults.setAttribute("class","autocomplete")},_Position:function(){this.DOMResults.setAttribute("class","autocomplete"),this.DOMResults.setAttribute("style","top:"+(this.Input.offsetTop+this.Input.offsetHeight)+"px;left:"+this.Input.offsetLeft+"px;width:"+this.Input.clientWidth+"px;")},_Render:function(e){var t;typeof e=="string"?t=this._RenderRaw(e):t=this._RenderResponseItems(e),this.DOMResults.hasChildNodes()&&this.DOMResults.removeChild(this.DOMResults.childNodes[0]),this.DOMResults.appendChild(t)},_RenderResponseItems:function(e){var t=document.createElement("ul"),o=document.createElement("li"),c=this._Limit();c<0?e=e.reverse():c===0&&(c=e.length);for(var s=0;s0)this.DOMResults.innerHTML=e;else{var c=this._EmptyMessage();c!==""&&(o.innerHTML=c,o.setAttribute("class","locked"),t.appendChild(o))}return t},_Post:function(e){try{var t=[],o=JSON.parse(e);if(Object.keys(o).length===0)return"";if(Array.isArray(o))for(var c=0;c0){var n=document.getElementById("search");setTimeout(n.submit.bind(n),0)}}function l(n){var e=document.getElementById("clear_search"),t=function(){n.value.length===0?e.classList.add("empty"):e.classList.remove("empty")};t(),e.addEventListener("click",function(o){n.value="",n.focus(),t(),o.preventDefault()}),n.addEventListener("input",t,!1)}u.ready(function(){m=d.getElementById(p),m!==null&&(l(m),u.settings.autocomplete&&(u.autocomplete=S.call(h,{Url:"./autocompleter",EmptyMessage:u.settings.translations.no_item_found,HttpMethod:u.settings.method,HttpHeaders:{"Content-type":"application/x-www-form-urlencoded","X-Requested-With":"XMLHttpRequest"},MinChars:u.settings.autocomplete_min,Delay:300,_Position:function(){},_Open:function(){var t=this;Array.prototype.forEach.call(this.DOMResults.getElementsByTagName("li"),function(o){o.getAttribute("class")!="locked"&&(o.onmousedown=function(){t._Select(o)})})},_Select:function(t){S.defaults._Select.call(this,t);var o=t.closest("form");o&&o.submit()},_MinChars:function(){return this.Input.value.indexOf("!")>-1?0:S.defaults._MinChars.call(this)},KeyboardMappings:Object.assign({},S.defaults.KeyboardMappings,{KeyUpAndDown_up:Object.assign({},S.defaults.KeyboardMappings.KeyUpAndDown_up,{Callback:function(t){S.defaults.KeyboardMappings.KeyUpAndDown_up.Callback.call(this,t);var o=this.DOMResults.querySelector("li.active");o&&S.defaults._Select.call(this,o)}}),Tab:Object.assign({},S.defaults.KeyboardMappings.Enter,{Conditions:[{Is:9,Not:!1}],Callback:function(t){if(this.DOMResults.getAttribute("class").indexOf("open")!=-1){var o=this.DOMResults.querySelector("li.active");o!==null&&(S.defaults._Select.call(this,o),t.preventDefault())}}})})},"#"+p)),S.prototype.ajax=function(t,o,c){c===void 0&&(c=!0),t.$AjaxTimer&&window.clearTimeout(t.$AjaxTimer),c===!0?t.$AjaxTimer=window.setTimeout(S.prototype.ajax.bind(null,t,o,!1),t.Delay):(t.Request&&t.Request.abort(),t.Request=o,t.Request.send(encodeURIComponent(t._QueryArg())+"="+encodeURIComponent(t._Pre())))},!r&&document.querySelector(".index_endpoint")&&m.focus()),m!==null&&u.settings.search_on_category_select&&d.querySelector(".search_filters")!=null&&(u.on(d.getElementById("safesearch"),"change",a),u.on(d.getElementById("time_range"),"change",a),u.on(d.getElementById("language"),"change",a));const n=d.querySelectorAll("button.category_button");for(let t of n)u.on(t,"click",o=>{if(o.shiftKey){o.preventDefault(),t.classList.toggle("selected");return}const c=d.querySelectorAll("button.category_button.selected");for(let s of c)s.classList.remove("selected");t.classList.add("selected")});const e=d.querySelector("#search");e!=null&&u.on(e,"submit",t=>{t.preventDefault();const o=d.querySelector("#selected-categories");if(o){let c=[];for(let s of n)s.classList.contains("selected")&&c.push(s.name.replace("category_",""));o.value=c.join(",")}e.submit()})})})(window,document,window.searxng); + */(function(h,s){typeof h.CustomEvent!="function"&&(h.CustomEvent=function(c,d){d=d||{bubbles:!1,cancelable:!1,detail:void 0};var m=s.createEvent("CustomEvent");return m.initCustomEvent(c,d.bubbles,d.cancelable,d.detail),m},h.CustomEvent.prototype=h.Event.prototype),s.addEventListener("touchstart",a,!1),s.addEventListener("touchmove",f,!1),s.addEventListener("touchend",t,!1);var i=null,p=null,g=null,o=null,l=null,n=null,r=0;function t(c){if(n===c.target){var d=parseInt(b(n,"data-swipe-threshold","20"),10),m=b(n,"data-swipe-unit","px"),y=parseInt(b(n,"data-swipe-timeout","500"),10),S=Date.now()-l,T="",A=c.changedTouches||c.touches||[];if(m==="vh"&&(d=Math.round(d/100*s.documentElement.clientHeight)),m==="vw"&&(d=Math.round(d/100*s.documentElement.clientWidth)),Math.abs(g)>Math.abs(o)?Math.abs(g)>d&&S0?T="swiped-left":T="swiped-right"):Math.abs(o)>d&&S0?T="swiped-up":T="swiped-down"),T!==""){var e={dir:T.replace(/swiped-/,""),touchType:(A[0]||{}).touchType||"direct",fingers:r,xStart:parseInt(i,10),xEnd:parseInt((A[0]||{}).clientX||-1,10),yStart:parseInt(p,10),yEnd:parseInt((A[0]||{}).clientY||-1,10)};n.dispatchEvent(new CustomEvent("swiped",{bubbles:!0,cancelable:!0,detail:e})),n.dispatchEvent(new CustomEvent(T,{bubbles:!0,cancelable:!0,detail:e}))}i=null,p=null,l=null}}function a(c){c.target.getAttribute("data-swipe-ignore")!=="true"&&(n=c.target,l=Date.now(),i=c.touches[0].clientX,p=c.touches[0].clientY,g=0,o=0,r=c.touches.length)}function f(c){if(!(!i||!p)){var d=c.touches[0].clientX,m=c.touches[0].clientY;g=i-d,o=p-m}}function b(c,d,m){for(;c&&c!==s.documentElement;){var y=c.getAttribute(d);if(y)return y;c=c.parentNode}return m}})(window,document);(function(h,s,i){i.endpoint==="results"&&i.ready(function(){s.querySelectorAll("#urls img").forEach(n=>n.addEventListener("error",()=>{n.src=window.searxng.settings.theme_static_path+"/img/img_load_error.svg"},{once:!0})),s.querySelector("#search_url button#copy_url")&&(s.querySelector("#search_url button#copy_url").style.display="block"),i.on(".btn-collapse","click",function(){var n=this.getAttribute("data-btn-text-collapsed"),r=this.getAttribute("data-btn-text-not-collapsed"),t=this.getAttribute("data-target"),a=s.querySelector(t),f=this.innerHTML;this.classList.contains("collapsed")?f=f.replace(n,r):f=f.replace(r,n),this.innerHTML=f,this.classList.toggle("collapsed"),a.classList.toggle("invisible")}),i.on(".media-loader","click",function(){var n=this.getAttribute("data-target"),r=s.querySelector(n+" > iframe"),t=r.getAttribute("src");(t==null||t===!1)&&r.setAttribute("src",r.getAttribute("data-src"))}),i.on("#copy_url","click",function(){var n=this.parentElement.querySelector("pre");navigator.clipboard.writeText(n.innerText),this.innerText=this.dataset.copiedText});let p;const g=s.createElement("div");g.classList.add("loader");const o=new Image,l=(n,r)=>{p&&clearTimeout(p),p=setTimeout(()=>{o.src=n},1e3),o.onload=()=>{r(),g.remove()},o.onerror=()=>{g.remove()}};i.selectImage=n=>{if(s.getElementById("results").classList.add("image-detail-open"),window.location.hash="#image-viewer",i.scrollPageToSelected(),!n)return;const r=n.querySelector(".result-images-source img");if(!r)return;const t=r.getAttribute("data-src");if(!t)return;const a=n.querySelector(".image_thumbnail");r.src=a.src,n.querySelector(".detail").appendChild(g),l(t,()=>{r.src=t,r.removeAttribute("data-src")})},i.closeDetail=function(){s.getElementById("results").classList.remove("image-detail-open"),window.location.hash=="#image-viewer"&&window.history.back(),i.scrollPageToSelected()},i.on(".result-detail-close","click",n=>{n.preventDefault(),i.closeDetail()}),i.on(".result-detail-previous","click",n=>{n.preventDefault(),i.selectPrevious(!1)}),i.on(".result-detail-next","click",n=>{n.preventDefault(),i.selectNext(!1)}),window.addEventListener("hashchange",()=>{window.location.hash!="#image-viewer"&&i.closeDetail()}),s.querySelectorAll(".swipe-horizontal").forEach(n=>{n.addEventListener("swiped-left",function(){i.selectNext(!1)}),n.addEventListener("swiped-right",function(){i.selectPrevious(!1)})}),h.addEventListener("scroll",function(){var n=s.getElementById("backToTop"),r=document.documentElement.scrollTop||document.body.scrollTop,t=s.getElementById("results");n!==null&&(r>=100?t.classList.add("scrolling"):t.classList.remove("scrolling"))},!0)})})(window,document,window.searxng);(function(h,s,i){var p="q",g;const o=window.matchMedia("only screen and (max-width: 50em)").matches;function l(){if(g.value.length>0){var t=document.getElementById("search");setTimeout(t.submit.bind(t),0)}}function n(t){var a=document.getElementById("clear_search"),f=function(){t.value.length===0?a.classList.add("empty"):a.classList.remove("empty")};f(),a.addEventListener("click",function(b){t.value="",t.focus(),f(),b.preventDefault()}),t.addEventListener("input",f,!1)}const r=async t=>{let a;if(i.settings.method==="GET"){const f=new URLSearchParams;f.append("q",t),a=fetch("./autocompleter?"+f.toString())}else{const f=new FormData;f.append("q",t),a=fetch("./autocompleter",{method:"POST",body:f})}a.then(async function(f){const b=await f.json();if(!b)return;const c=s.querySelector(".autocomplete"),d=s.querySelector(".autocomplete ul");if(c.classList.add("open"),d.innerHTML="",!b[1]||b[1].length==0){const m=document.createElement("li");m.classList.add("no-item-found"),m.innerHTML=i.settings.translations.no_item_found,d.appendChild(m);return}for(let m of b[1]){const y=document.createElement("li");y.innerText=m,i.on(y,"mousedown",()=>{g.value=m,s.querySelector("#search").submit(),c.classList.remove("open")}),d.appendChild(y)}})};i.ready(function(){o||document.getElementById("q").focus(),g=s.getElementById(p);const t=s.querySelector(".autocomplete"),a=s.querySelector(".autocomplete ul");g!==null&&(n(g),i.settings.autocomplete&&(i.on(g,"input",()=>{const c=g.value;c.length{c==g.value&&r(c)},300)}),i.on(g,"keyup",c=>{let d=-1;const m=a.children;for(let S=0;S=0&&m[d].classList.remove("active"),y=(d-1+m.length)%m.length):c.key==="ArrowDown"?(d>=0&&m[d].classList.remove("active"),y=(d+1)%m.length):(c.key==="Tab"||c.key==="Enter")&&t.classList.remove("open"),y!=-1){const S=m[y];S.classList.add("active"),S.classList.contains("no-item-found")||(g.value=S.innerText)}}))),g!==null&&i.settings.search_on_category_select&&s.querySelector(".search_filters")!=null&&(i.on(s.getElementById("safesearch"),"change",l),i.on(s.getElementById("time_range"),"change",l),i.on(s.getElementById("language"),"change",l));const f=s.querySelectorAll("button.category_button");for(let c of f)i.on(c,"click",d=>{if(d.shiftKey){d.preventDefault(),c.classList.toggle("selected");return}const m=s.querySelectorAll("button.category_button.selected");for(let y of m)y.classList.remove("selected");c.classList.add("selected")});const b=s.querySelector("#search");b!=null&&i.on(b,"submit",c=>{c.preventDefault();const d=s.querySelector("#selected-categories");if(d){let m=[];for(let y of f)y.classList.contains("selected")&&m.push(y.name.replace("category_",""));d.value=m.join(",")}b.submit()})})})(window,document,window.searxng); //# sourceMappingURL=searxng.min.js.map diff --git a/searx/static/themes/simple/js/searxng.min.js.map b/searx/static/themes/simple/js/searxng.min.js.map index ded00532a..f454d84c0 100644 --- a/searx/static/themes/simple/js/searxng.min.js.map +++ b/searx/static/themes/simple/js/searxng.min.js.map @@ -1 +1 @@ -{"version":3,"file":"searxng.min.js","sources":["../../../../../client/simple/src/js/main/00_toolkit.js","../../../../../client/simple/src/js/main/infinite_scroll.js","../../../../../client/simple/src/js/main/keyboard.js","../../../../../client/simple/src/js/main/mapresult.js","../../../../../client/simple/src/js/main/preferences.js","../../../../../client/simple/node_modules/swiped-events/src/swiped-events.js","../../../../../client/simple/src/js/main/results.js","../../../../../client/simple/node_modules/autocomplete-js/dist/autocomplete.js","../../../../../client/simple/src/js/main/search.js"],"sourcesContent":["/**\n * @license\n * (C) Copyright Contributors to the SearXNG project.\n * (C) Copyright Contributors to the searx project (2014 - 2021).\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nwindow.searxng = (function (w, d) {\n\n 'use strict';\n\n // not invented here toolkit with bugs fixed elsewhere\n // purposes : be just good enough and as small as possible\n\n // from https://plainjs.com/javascript/events/live-binding-event-handlers-14/\n if (w.Element) {\n (function (ElementPrototype) {\n ElementPrototype.matches = ElementPrototype.matches ||\n ElementPrototype.matchesSelector ||\n ElementPrototype.webkitMatchesSelector ||\n ElementPrototype.msMatchesSelector ||\n function (selector) {\n var node = this, nodes = (node.parentNode || node.document).querySelectorAll(selector), i = -1;\n while (nodes[++i] && nodes[i] != node);\n return !!nodes[i];\n };\n })(Element.prototype);\n }\n\n function callbackSafe (callback, el, e) {\n try {\n callback.call(el, e);\n } catch (exception) {\n console.log(exception);\n }\n }\n\n var searxng = window.searxng || {};\n\n searxng.on = function (obj, eventType, callback, useCapture) {\n useCapture = useCapture || false;\n if (typeof obj !== 'string') {\n // obj HTMLElement, HTMLDocument\n obj.addEventListener(eventType, callback, useCapture);\n } else {\n // obj is a selector\n d.addEventListener(eventType, function (e) {\n var el = e.target || e.srcElement, found = false;\n while (el && el.matches && el !== d && !(found = el.matches(obj))) el = el.parentElement;\n if (found) callbackSafe(callback, el, e);\n }, useCapture);\n }\n };\n\n searxng.ready = function (callback) {\n if (document.readyState != 'loading') {\n callback.call(w);\n } else {\n w.addEventListener('DOMContentLoaded', callback.bind(w));\n }\n };\n\n searxng.http = function (method, url, data = null) {\n return new Promise(function (resolve, reject) {\n try {\n var req = new XMLHttpRequest();\n req.open(method, url, true);\n req.timeout = 20000;\n\n // On load\n req.onload = function () {\n if (req.status == 200) {\n resolve(req.response, req.responseType);\n } else {\n reject(Error(req.statusText));\n }\n };\n\n // Handle network errors\n req.onerror = function () {\n reject(Error(\"Network Error\"));\n };\n\n req.onabort = function () {\n reject(Error(\"Transaction is aborted\"));\n };\n\n req.ontimeout = function () {\n reject(Error(\"Timeout\"));\n }\n\n // Make the request\n if (data) {\n req.send(data)\n } else {\n req.send();\n }\n } catch (ex) {\n reject(ex);\n }\n });\n };\n\n searxng.loadStyle = function (src) {\n var path = searxng.settings.theme_static_path + \"/\" + src,\n id = \"style_\" + src.replace('.', '_'),\n s = d.getElementById(id);\n if (s === null) {\n s = d.createElement('link');\n s.setAttribute('id', id);\n s.setAttribute('rel', 'stylesheet');\n s.setAttribute('type', 'text/css');\n s.setAttribute('href', path);\n d.body.appendChild(s);\n }\n };\n\n searxng.loadScript = function (src, callback) {\n var path = searxng.settings.theme_static_path + \"/\" + src,\n id = \"script_\" + src.replace('.', '_'),\n s = d.getElementById(id);\n if (s === null) {\n s = d.createElement('script');\n s.setAttribute('id', id);\n s.setAttribute('src', path);\n s.onload = callback;\n s.onerror = function () {\n s.setAttribute('error', '1');\n };\n d.body.appendChild(s);\n } else if (!s.hasAttribute('error')) {\n try {\n callback.apply(s, []);\n } catch (exception) {\n console.log(exception);\n }\n } else {\n console.log(\"callback not executed : script '\" + path + \"' not loaded.\");\n }\n };\n\n searxng.insertBefore = function (newNode, referenceNode) {\n referenceNode.parentNode.insertBefore(newNode, referenceNode);\n };\n\n searxng.insertAfter = function (newNode, referenceNode) {\n referenceNode.parentNode.insertAfter(newNode, referenceNode.nextSibling);\n };\n\n searxng.on('.close', 'click', function () {\n this.parentNode.classList.add('invisible');\n });\n\n function getEndpoint () {\n for (var className of d.getElementsByTagName('body')[0].classList.values()) {\n if (className.endsWith('_endpoint')) {\n return className.split('_')[0];\n }\n }\n return '';\n }\n\n searxng.endpoint = getEndpoint();\n\n return searxng;\n})(window, document);\n","// SPDX-License-Identifier: AGPL-3.0-or-later\n\n/* global searxng */\n\nsearxng.ready(function () {\n 'use strict';\n\n searxng.infinite_scroll_supported = (\n 'IntersectionObserver' in window &&\n 'IntersectionObserverEntry' in window &&\n 'intersectionRatio' in window.IntersectionObserverEntry.prototype);\n\n if (searxng.endpoint !== 'results') {\n return;\n }\n\n if (!searxng.infinite_scroll_supported) {\n console.log('IntersectionObserver not supported');\n return;\n }\n\n let d = document;\n var onlyImages = d.getElementById('results').classList.contains('only_template_images');\n\n function newLoadSpinner () {\n var loader = d.createElement('div');\n loader.classList.add('loader');\n return loader;\n }\n\n function replaceChildrenWith (element, children) {\n element.textContent = '';\n children.forEach(child => element.appendChild(child));\n }\n\n function loadNextPage (callback) {\n var form = d.querySelector('#pagination form.next_page');\n if (!form) {\n return\n }\n replaceChildrenWith(d.querySelector('#pagination'), [ newLoadSpinner() ]);\n var formData = new FormData(form);\n searxng.http('POST', d.querySelector('#search').getAttribute('action'), formData).then(\n function (response) {\n var nextPageDoc = new DOMParser().parseFromString(response, 'text/html');\n var articleList = nextPageDoc.querySelectorAll('#urls article');\n var paginationElement = nextPageDoc.querySelector('#pagination');\n d.querySelector('#pagination').remove();\n if (articleList.length > 0 && !onlyImages) {\n // do not add
element when there are only images\n d.querySelector('#urls').appendChild(d.createElement('hr'));\n }\n articleList.forEach(articleElement => {\n d.querySelector('#urls').appendChild(articleElement);\n });\n if (paginationElement) {\n d.querySelector('#results').appendChild(paginationElement);\n callback();\n }\n }\n ).catch(\n function (err) {\n console.log(err);\n var e = d.createElement('div');\n e.textContent = searxng.settings.translations.error_loading_next_page;\n e.classList.add('dialog-error');\n e.setAttribute('role', 'alert');\n replaceChildrenWith(d.querySelector('#pagination'), [ e ]);\n }\n )\n }\n\n if (searxng.settings.infinite_scroll && searxng.infinite_scroll_supported) {\n const intersectionObserveOptions = {\n rootMargin: \"20rem\",\n };\n const observedSelector = 'article.result:last-child';\n const observer = new IntersectionObserver(entries => {\n const paginationEntry = entries[0];\n if (paginationEntry.isIntersecting) {\n observer.unobserve(paginationEntry.target);\n loadNextPage(() => observer.observe(d.querySelector(observedSelector), intersectionObserveOptions));\n }\n });\n observer.observe(d.querySelector(observedSelector), intersectionObserveOptions);\n }\n\n});\n","/* SPDX-License-Identifier: AGPL-3.0-or-later */\n/* global searxng */\n\nsearxng.ready(function () {\n\n function isElementInDetail (el) {\n while (el !== undefined) {\n if (el.classList.contains('detail')) {\n return true;\n }\n if (el.classList.contains('result')) {\n // we found a result, no need to go to the root of the document:\n // el is not inside a
element\n return false;\n }\n el = el.parentNode;\n }\n return false;\n }\n\n function getResultElement (el) {\n while (el !== undefined) {\n if (el.classList.contains('result')) {\n return el;\n }\n el = el.parentNode;\n }\n return undefined;\n }\n\n function isImageResult (resultElement) {\n return resultElement && resultElement.classList.contains('result-images');\n }\n\n searxng.on('.result', 'click', function (e) {\n if (!isElementInDetail(e.target)) {\n highlightResult(this)(true, true);\n let resultElement = getResultElement(e.target);\n if (isImageResult(resultElement)) {\n e.preventDefault();\n searxng.selectImage(resultElement);\n }\n }\n });\n\n searxng.on('.result a', 'focus', function (e) {\n if (!isElementInDetail(e.target)) {\n let resultElement = getResultElement(e.target);\n if (resultElement && resultElement.getAttribute(\"data-vim-selected\") === null) {\n highlightResult(resultElement)(true);\n }\n if (isImageResult(resultElement)) {\n searxng.selectImage(resultElement);\n }\n }\n }, true);\n\n /* common base for layouts */\n var baseKeyBinding = {\n 'Escape': {\n key: 'ESC',\n fun: removeFocus,\n des: 'remove focus from the focused input',\n cat: 'Control'\n },\n 'c': {\n key: 'c',\n fun: copyURLToClipboard,\n des: 'copy url of the selected result to the clipboard',\n cat: 'Results'\n },\n 'h': {\n key: 'h',\n fun: toggleHelp,\n des: 'toggle help window',\n cat: 'Other'\n },\n 'i': {\n key: 'i',\n fun: searchInputFocus,\n des: 'focus on the search input',\n cat: 'Control'\n },\n 'n': {\n key: 'n',\n fun: GoToNextPage(),\n des: 'go to next page',\n cat: 'Results'\n },\n 'o': {\n key: 'o',\n fun: openResult(false),\n des: 'open search result',\n cat: 'Results'\n },\n 'p': {\n key: 'p',\n fun: GoToPreviousPage(),\n des: 'go to previous page',\n cat: 'Results'\n },\n 'r': {\n key: 'r',\n fun: reloadPage,\n des: 'reload page from the server',\n cat: 'Control'\n },\n 't': {\n key: 't',\n fun: openResult(true),\n des: 'open the result in a new tab',\n cat: 'Results'\n },\n };\n var keyBindingLayouts = {\n\n \"default\": Object.assign(\n { /* SearXNG layout */\n 'ArrowLeft': {\n key: '←',\n fun: highlightResult('up'),\n des: 'select previous search result',\n cat: 'Results'\n },\n 'ArrowRight': {\n key: '→',\n fun: highlightResult('down'),\n des: 'select next search result',\n cat: 'Results'\n },\n }, baseKeyBinding),\n\n 'vim': Object.assign(\n { /* Vim-like Key Layout. */\n 'b': {\n key: 'b',\n fun: scrollPage(-window.innerHeight),\n des: 'scroll one page up',\n cat: 'Navigation'\n },\n 'f': {\n key: 'f',\n fun: scrollPage(window.innerHeight),\n des: 'scroll one page down',\n cat: 'Navigation'\n },\n 'u': {\n key: 'u',\n fun: scrollPage(-window.innerHeight / 2),\n des: 'scroll half a page up',\n cat: 'Navigation'\n },\n 'd': {\n key: 'd',\n fun: scrollPage(window.innerHeight / 2),\n des: 'scroll half a page down',\n cat: 'Navigation'\n },\n 'g': {\n key: 'g',\n fun: scrollPageTo(-document.body.scrollHeight, 'top'),\n des: 'scroll to the top of the page',\n cat: 'Navigation'\n },\n 'v': {\n key: 'v',\n fun: scrollPageTo(document.body.scrollHeight, 'bottom'),\n des: 'scroll to the bottom of the page',\n cat: 'Navigation'\n },\n 'k': {\n key: 'k',\n fun: highlightResult('up'),\n des: 'select previous search result',\n cat: 'Results'\n },\n 'j': {\n key: 'j',\n fun: highlightResult('down'),\n des: 'select next search result',\n cat: 'Results'\n },\n 'y': {\n key: 'y',\n fun: copyURLToClipboard,\n des: 'copy url of the selected result to the clipboard',\n cat: 'Results'\n },\n }, baseKeyBinding)\n }\n\n var keyBindings = keyBindingLayouts[searxng.settings.hotkeys] || keyBindingLayouts.default;\n\n searxng.on(document, \"keydown\", function (e) {\n // check for modifiers so we don't break browser's hotkeys\n if (\n Object.prototype.hasOwnProperty.call(keyBindings, e.key)\n && !e.ctrlKey && !e.altKey\n && !e.shiftKey && !e.metaKey\n ) {\n var tagName = e.target.tagName.toLowerCase();\n if (e.key === 'Escape') {\n keyBindings[e.key].fun(e);\n } else {\n if (e.target === document.body || tagName === 'a' || tagName === 'button') {\n e.preventDefault();\n keyBindings[e.key].fun();\n }\n }\n }\n });\n\n function highlightResult (which) {\n return function (noScroll, keepFocus) {\n var current = document.querySelector('.result[data-vim-selected]'),\n effectiveWhich = which;\n if (current === null) {\n // no selection : choose the first one\n current = document.querySelector('.result');\n if (current === null) {\n // no first one : there are no results\n return;\n }\n // replace up/down actions by selecting first one\n if (which === \"down\" || which === \"up\") {\n effectiveWhich = current;\n }\n }\n\n var next, results = document.querySelectorAll('.result');\n results = Array.from(results); // convert NodeList to Array for further use\n\n if (typeof effectiveWhich !== 'string') {\n next = effectiveWhich;\n } else {\n switch (effectiveWhich) {\n case 'visible':\n var top = document.documentElement.scrollTop || document.body.scrollTop;\n var bot = top + document.documentElement.clientHeight;\n\n for (var i = 0; i < results.length; i++) {\n next = results[i];\n var etop = next.offsetTop;\n var ebot = etop + next.clientHeight;\n\n if ((ebot <= bot) && (etop > top)) {\n break;\n }\n }\n break;\n case 'down':\n next = results[results.indexOf(current) + 1] || current;\n break;\n case 'up':\n next = results[results.indexOf(current) - 1] || current;\n break;\n case 'bottom':\n next = results[results.length - 1];\n break;\n case 'top':\n /* falls through */\n default:\n next = results[0];\n }\n }\n\n if (next) {\n current.removeAttribute('data-vim-selected');\n next.setAttribute('data-vim-selected', 'true');\n if (!keepFocus) {\n var link = next.querySelector('h3 a') || next.querySelector('a');\n if (link !== null) {\n link.focus();\n }\n }\n if (!noScroll) {\n scrollPageToSelected();\n }\n }\n };\n }\n\n function reloadPage () {\n document.location.reload(true);\n }\n\n function removeFocus (e) {\n const tagName = e.target.tagName.toLowerCase();\n if (document.activeElement && (tagName === 'input' || tagName === 'select' || tagName === 'textarea')) {\n document.activeElement.blur();\n } else {\n searxng.closeDetail();\n }\n }\n\n function pageButtonClick (css_selector) {\n return function () {\n var button = document.querySelector(css_selector);\n if (button) {\n button.click();\n }\n };\n }\n\n function GoToNextPage () {\n return pageButtonClick('nav#pagination .next_page button[type=\"submit\"]');\n }\n\n function GoToPreviousPage () {\n return pageButtonClick('nav#pagination .previous_page button[type=\"submit\"]');\n }\n\n function scrollPageToSelected () {\n var sel = document.querySelector('.result[data-vim-selected]');\n if (sel === null) {\n return;\n }\n var wtop = document.documentElement.scrollTop || document.body.scrollTop,\n wheight = document.documentElement.clientHeight,\n etop = sel.offsetTop,\n ebot = etop + sel.clientHeight,\n offset = 120;\n // first element ?\n if ((sel.previousElementSibling === null) && (ebot < wheight)) {\n // set to the top of page if the first element\n // is fully included in the viewport\n window.scroll(window.scrollX, 0);\n return;\n }\n if (wtop > (etop - offset)) {\n window.scroll(window.scrollX, etop - offset);\n } else {\n var wbot = wtop + wheight;\n if (wbot < (ebot + offset)) {\n window.scroll(window.scrollX, ebot - wheight + offset);\n }\n }\n }\n\n function scrollPage (amount) {\n return function () {\n window.scrollBy(0, amount);\n highlightResult('visible')();\n };\n }\n\n function scrollPageTo (position, nav) {\n return function () {\n window.scrollTo(0, position);\n highlightResult(nav)();\n };\n }\n\n function searchInputFocus () {\n window.scrollTo(0, 0);\n var q = document.querySelector('#q');\n q.focus();\n if (q.setSelectionRange) {\n var len = q.value.length;\n q.setSelectionRange(len, len);\n }\n }\n\n function openResult (newTab) {\n return function () {\n var link = document.querySelector('.result[data-vim-selected] h3 a');\n if (link === null) {\n link = document.querySelector('.result[data-vim-selected] > a');\n }\n if (link !== null) {\n var url = link.getAttribute('href');\n if (newTab) {\n window.open(url);\n } else {\n window.location.href = url;\n }\n }\n };\n }\n\n function initHelpContent (divElement) {\n var categories = {};\n\n for (var k in keyBindings) {\n var key = keyBindings[k];\n categories[key.cat] = categories[key.cat] || [];\n categories[key.cat].push(key);\n }\n\n var sorted = Object.keys(categories).sort(function (a, b) {\n return categories[b].length - categories[a].length;\n });\n\n if (sorted.length === 0) {\n return;\n }\n\n var html = '×';\n html += '

How to navigate SearXNG with hotkeys

';\n html += '';\n\n for (var i = 0; i < sorted.length; i++) {\n var cat = categories[sorted[i]];\n\n var lastCategory = i === (sorted.length - 1);\n var first = i % 2 === 0;\n\n if (first) {\n html += '';\n }\n html += ''; // col-sm-*\n\n if (!first || lastCategory) {\n html += ''; // row\n }\n }\n\n html += '
';\n\n html += '

' + cat[0].cat + '

';\n html += '
    ';\n\n for (var cj in cat) {\n html += '
  • ' + cat[cj].key + ' ' + cat[cj].des + '
  • ';\n }\n\n html += '
';\n html += '
';\n\n divElement.innerHTML = html;\n }\n\n function toggleHelp () {\n var helpPanel = document.querySelector('#vim-hotkeys-help');\n if (helpPanel === undefined || helpPanel === null) {\n // first call\n helpPanel = document.createElement('div');\n helpPanel.id = 'vim-hotkeys-help';\n helpPanel.className = 'dialog-modal';\n initHelpContent(helpPanel);\n var body = document.getElementsByTagName('body')[0];\n body.appendChild(helpPanel);\n } else {\n // toggle hidden\n helpPanel.classList.toggle('invisible');\n return;\n }\n }\n\n function copyURLToClipboard () {\n var currentUrlElement = document.querySelector('.result[data-vim-selected] h3 a');\n if (currentUrlElement === null) return;\n\n const url = currentUrlElement.getAttribute('href');\n navigator.clipboard.writeText(url);\n }\n\n searxng.scrollPageToSelected = scrollPageToSelected;\n searxng.selectNext = highlightResult('down');\n searxng.selectPrevious = highlightResult('up');\n});\n","/* SPDX-License-Identifier: AGPL-3.0-or-later */\n/* global L */\n(function (w, d, searxng) {\n 'use strict';\n\n searxng.ready(function () {\n searxng.on('.searxng_init_map', 'click', function (event) {\n // no more request\n this.classList.remove(\"searxng_init_map\");\n\n //\n var leaflet_target = this.dataset.leafletTarget;\n var map_lon = parseFloat(this.dataset.mapLon);\n var map_lat = parseFloat(this.dataset.mapLat);\n var map_zoom = parseFloat(this.dataset.mapZoom);\n var map_boundingbox = JSON.parse(this.dataset.mapBoundingbox);\n var map_geojson = JSON.parse(this.dataset.mapGeojson);\n\n searxng.loadStyle('css/leaflet.css');\n searxng.loadScript('js/leaflet.js', function () {\n var map_bounds = null;\n if (map_boundingbox) {\n var southWest = L.latLng(map_boundingbox[0], map_boundingbox[2]);\n var northEast = L.latLng(map_boundingbox[1], map_boundingbox[3]);\n map_bounds = L.latLngBounds(southWest, northEast);\n }\n\n // init map\n var map = L.map(leaflet_target);\n // create the tile layer with correct attribution\n var osmMapnikUrl = 'https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png';\n var osmMapnikAttrib = 'Map data © OpenStreetMap contributors';\n var osmMapnik = new L.TileLayer(osmMapnikUrl, {minZoom: 1, maxZoom: 19, attribution: osmMapnikAttrib});\n var osmWikimediaUrl = 'https://maps.wikimedia.org/osm-intl/{z}/{x}/{y}.png';\n var osmWikimediaAttrib = 'Wikimedia maps | Maps data © OpenStreetMap contributors';\n var osmWikimedia = new L.TileLayer(osmWikimediaUrl, {minZoom: 1, maxZoom: 19, attribution: osmWikimediaAttrib});\n // init map view\n if (map_bounds) {\n // TODO hack: https://github.com/Leaflet/Leaflet/issues/2021\n // Still useful ?\n setTimeout(function () {\n map.fitBounds(map_bounds, {\n maxZoom: 17\n });\n }, 0);\n } else if (map_lon && map_lat) {\n if (map_zoom) {\n map.setView(new L.latLng(map_lat, map_lon), map_zoom);\n } else {\n map.setView(new L.latLng(map_lat, map_lon), 8);\n }\n }\n\n map.addLayer(osmMapnik);\n\n var baseLayers = {\n \"OSM Mapnik\": osmMapnik,\n \"OSM Wikimedia\": osmWikimedia,\n };\n\n L.control.layers(baseLayers).addTo(map);\n\n if (map_geojson) {\n L.geoJson(map_geojson).addTo(map);\n } /* else if(map_bounds) {\n L.rectangle(map_bounds, {color: \"#ff7800\", weight: 3, fill:false}).addTo(map);\n } */\n });\n\n // this event occur only once per element\n event.preventDefault();\n });\n });\n})(window, document, window.searxng);\n","/* SPDX-License-Identifier: AGPL-3.0-or-later */\n(function (w, d, searxng) {\n 'use strict';\n\n if (searxng.endpoint !== 'preferences') {\n return;\n }\n\n searxng.ready(function () {\n let engine_descriptions = null;\n function load_engine_descriptions () {\n if (engine_descriptions == null) {\n searxng.http(\"GET\", \"engine_descriptions.json\").then(function (content) {\n engine_descriptions = JSON.parse(content);\n for (const [engine_name, description] of Object.entries(engine_descriptions)) {\n let elements = d.querySelectorAll('[data-engine-name=\"' + engine_name + '\"] .engine-description');\n for (const element of elements) {\n let source = ' (' + searxng.settings.translations.Source + ': ' + description[1] + ')';\n element.innerHTML = description[0] + source;\n }\n }\n });\n }\n }\n\n for (const el of d.querySelectorAll('[data-engine-name]')) {\n searxng.on(el, 'mouseenter', load_engine_descriptions);\n }\n\n const enableAllEngines = d.querySelectorAll(\".enable-all-engines\");\n const disableAllEngines = d.querySelectorAll(\".disable-all-engines\");\n const engineToggles = d.querySelectorAll('tbody input[type=checkbox][class~=checkbox-onoff]');\n const toggleEngines = (enable) => {\n for (const el of engineToggles) {\n // check if element visible, so that only engines of the current category are modified\n if (el.offsetParent !== null) el.checked = !enable;\n }\n };\n for (const el of enableAllEngines) {\n searxng.on(el, 'click', () => toggleEngines(true));\n }\n for (const el of disableAllEngines) {\n searxng.on(el, 'click', () => toggleEngines(false));\n }\n\n const copyHashButton = d.querySelector(\"#copy-hash\");\n searxng.on(copyHashButton, 'click', (e) => {\n e.preventDefault();\n navigator.clipboard.writeText(copyHashButton.dataset.hash);\n copyHashButton.innerText = copyHashButton.dataset.copiedText;\n });\n });\n})(window, document, window.searxng);\n","/*!\n * swiped-events.js - v@version@\n * Pure JavaScript swipe events\n * https://github.com/john-doherty/swiped-events\n * @inspiration https://stackoverflow.com/questions/16348031/disable-scrolling-when-touch-moving-certain-element\n * @author John Doherty \n * @license MIT\n */\n(function (window, document) {\n\n 'use strict';\n\n // patch CustomEvent to allow constructor creation (IE/Chrome)\n if (typeof window.CustomEvent !== 'function') {\n\n window.CustomEvent = function (event, params) {\n\n params = params || { bubbles: false, cancelable: false, detail: undefined };\n\n var evt = document.createEvent('CustomEvent');\n evt.initCustomEvent(event, params.bubbles, params.cancelable, params.detail);\n return evt;\n };\n\n window.CustomEvent.prototype = window.Event.prototype;\n }\n\n document.addEventListener('touchstart', handleTouchStart, false);\n document.addEventListener('touchmove', handleTouchMove, false);\n document.addEventListener('touchend', handleTouchEnd, false);\n\n var xDown = null;\n var yDown = null;\n var xDiff = null;\n var yDiff = null;\n var timeDown = null;\n var startEl = null;\n var touchCount = 0;\n\n /**\n * Fires swiped event if swipe detected on touchend\n * @param {object} e - browser event object\n * @returns {void}\n */\n function handleTouchEnd(e) {\n\n // if the user released on a different target, cancel!\n if (startEl !== e.target) return;\n\n var swipeThreshold = parseInt(getNearestAttribute(startEl, 'data-swipe-threshold', '20'), 10); // default 20 units\n var swipeUnit = getNearestAttribute(startEl, 'data-swipe-unit', 'px'); // default px\n var swipeTimeout = parseInt(getNearestAttribute(startEl, 'data-swipe-timeout', '500'), 10); // default 500ms\n var timeDiff = Date.now() - timeDown;\n var eventType = '';\n var changedTouches = e.changedTouches || e.touches || [];\n\n if (swipeUnit === 'vh') {\n swipeThreshold = Math.round((swipeThreshold / 100) * document.documentElement.clientHeight); // get percentage of viewport height in pixels\n }\n if (swipeUnit === 'vw') {\n swipeThreshold = Math.round((swipeThreshold / 100) * document.documentElement.clientWidth); // get percentage of viewport height in pixels\n }\n\n if (Math.abs(xDiff) > Math.abs(yDiff)) { // most significant\n if (Math.abs(xDiff) > swipeThreshold && timeDiff < swipeTimeout) {\n if (xDiff > 0) {\n eventType = 'swiped-left';\n }\n else {\n eventType = 'swiped-right';\n }\n }\n }\n else if (Math.abs(yDiff) > swipeThreshold && timeDiff < swipeTimeout) {\n if (yDiff > 0) {\n eventType = 'swiped-up';\n }\n else {\n eventType = 'swiped-down';\n }\n }\n\n if (eventType !== '') {\n\n var eventData = {\n dir: eventType.replace(/swiped-/, ''),\n touchType: (changedTouches[0] || {}).touchType || 'direct',\n fingers: touchCount, // Number of fingers used\n xStart: parseInt(xDown, 10),\n xEnd: parseInt((changedTouches[0] || {}).clientX || -1, 10),\n yStart: parseInt(yDown, 10),\n yEnd: parseInt((changedTouches[0] || {}).clientY || -1, 10)\n };\n\n // fire `swiped` event event on the element that started the swipe\n startEl.dispatchEvent(new CustomEvent('swiped', { bubbles: true, cancelable: true, detail: eventData }));\n\n // fire `swiped-dir` event on the element that started the swipe\n startEl.dispatchEvent(new CustomEvent(eventType, { bubbles: true, cancelable: true, detail: eventData }));\n }\n\n // reset values\n xDown = null;\n yDown = null;\n timeDown = null;\n }\n /**\n * Records current location on touchstart event\n * @param {object} e - browser event object\n * @returns {void}\n */\n function handleTouchStart(e) {\n\n // if the element has data-swipe-ignore=\"true\" we stop listening for swipe events\n if (e.target.getAttribute('data-swipe-ignore') === 'true') return;\n\n startEl = e.target;\n\n timeDown = Date.now();\n xDown = e.touches[0].clientX;\n yDown = e.touches[0].clientY;\n xDiff = 0;\n yDiff = 0;\n touchCount = e.touches.length;\n }\n\n /**\n * Records location diff in px on touchmove event\n * @param {object} e - browser event object\n * @returns {void}\n */\n function handleTouchMove(e) {\n\n if (!xDown || !yDown) return;\n\n var xUp = e.touches[0].clientX;\n var yUp = e.touches[0].clientY;\n\n xDiff = xDown - xUp;\n yDiff = yDown - yUp;\n }\n\n /**\n * Gets attribute off HTML element or nearest parent\n * @param {object} el - HTML element to retrieve attribute from\n * @param {string} attributeName - name of the attribute\n * @param {any} defaultValue - default value to return if no match found\n * @returns {any} attribute value or defaultValue\n */\n function getNearestAttribute(el, attributeName, defaultValue) {\n\n // walk up the dom tree looking for attributeName\n while (el && el !== document.documentElement) {\n\n var attributeValue = el.getAttribute(attributeName);\n\n if (attributeValue) {\n return attributeValue;\n }\n\n el = el.parentNode;\n }\n\n return defaultValue;\n }\n\n}(window, document));\n","/* SPDX-License-Identifier: AGPL-3.0-or-later */\n\nimport \"../../../node_modules/swiped-events/src/swiped-events.js\";\n\n(function (w, d, searxng) {\n 'use strict';\n\n if (searxng.endpoint !== 'results') {\n return;\n }\n\n searxng.ready(function () {\n d.querySelectorAll('#urls img').forEach(\n img =>\n img.addEventListener(\n 'error', () => {\n // console.log(\"ERROR can't load: \" + img.src);\n img.src = window.searxng.settings.theme_static_path + \"/img/img_load_error.svg\";\n },\n {once: true}\n ));\n\n if (d.querySelector('#search_url button#copy_url')) {\n d.querySelector('#search_url button#copy_url').style.display = \"block\";\n }\n\n searxng.on('.btn-collapse', 'click', function () {\n var btnLabelCollapsed = this.getAttribute('data-btn-text-collapsed');\n var btnLabelNotCollapsed = this.getAttribute('data-btn-text-not-collapsed');\n var target = this.getAttribute('data-target');\n var targetElement = d.querySelector(target);\n var html = this.innerHTML;\n if (this.classList.contains('collapsed')) {\n html = html.replace(btnLabelCollapsed, btnLabelNotCollapsed);\n } else {\n html = html.replace(btnLabelNotCollapsed, btnLabelCollapsed);\n }\n this.innerHTML = html;\n this.classList.toggle('collapsed');\n targetElement.classList.toggle('invisible');\n });\n\n searxng.on('.media-loader', 'click', function () {\n var target = this.getAttribute('data-target');\n var iframe_load = d.querySelector(target + ' > iframe');\n var srctest = iframe_load.getAttribute('src');\n if (srctest === null || srctest === undefined || srctest === false) {\n iframe_load.setAttribute('src', iframe_load.getAttribute('data-src'));\n }\n });\n\n searxng.on('#copy_url', 'click', function () {\n var target = this.parentElement.querySelector('pre');\n navigator.clipboard.writeText(target.innerText);\n this.innerText = this.dataset.copiedText;\n });\n\n // searxng.selectImage (gallery)\n // -----------------------------\n\n // setTimeout() ID, needed to cancel *last* loadImage\n let imgTimeoutID;\n\n // progress spinner, while an image is loading\n const imgLoaderSpinner = d.createElement('div');\n imgLoaderSpinner.classList.add('loader');\n\n // singleton image object, which is used for all loading processes of a\n // detailed image\n const imgLoader = new Image();\n\n const loadImage = (imgSrc, onSuccess) => {\n // if defered image load exists, stop defered task.\n if (imgTimeoutID) clearTimeout(imgTimeoutID);\n\n // defer load of the detail image for 1 sec\n imgTimeoutID = setTimeout(() => {\n imgLoader.src = imgSrc;\n }, 1000);\n\n // set handlers in the on-properties\n imgLoader.onload = () => {\n onSuccess();\n imgLoaderSpinner.remove();\n };\n imgLoader.onerror = () => {\n imgLoaderSpinner.remove();\n };\n };\n\n searxng.selectImage = (resultElement) => {\n\n // add a class that can be evaluated in the CSS and indicates that the\n // detail view is open\n d.getElementById('results').classList.add('image-detail-open');\n\n // add a hash to the browser history so that pressing back doesn't return\n // to the previous page this allows us to dismiss the image details on\n // pressing the back button on mobile devices\n window.location.hash = '#image-viewer';\n\n searxng.scrollPageToSelected();\n\n // if there is none element given by the caller, stop here\n if (!resultElement) return;\n\n // find object in the element, if there is none, stop here.\n const img = resultElement.querySelector('.result-images-source img');\n if (!img) return;\n\n // \n const src = img.getAttribute('data-src');\n\n // already loaded high-res image or no high-res image available\n if (!src) return;\n\n // use the image thumbnail until the image is fully loaded\n const thumbnail = resultElement.querySelector('.image_thumbnail');\n img.src = thumbnail.src;\n\n // show a progress spinner\n const detailElement = resultElement.querySelector('.detail');\n detailElement.appendChild(imgLoaderSpinner);\n\n // load full size image in background\n loadImage(src, () => {\n // after the singelton loadImage has loaded the detail image into the\n // cache, it can be used in the origin as src property.\n img.src = src;\n img.removeAttribute('data-src');\n });\n };\n\n searxng.closeDetail = function () {\n d.getElementById('results').classList.remove('image-detail-open');\n // remove #image-viewer hash from url by navigating back\n if (window.location.hash == '#image-viewer') window.history.back();\n searxng.scrollPageToSelected();\n };\n searxng.on('.result-detail-close', 'click', e => {\n e.preventDefault();\n searxng.closeDetail();\n });\n searxng.on('.result-detail-previous', 'click', e => {\n e.preventDefault();\n searxng.selectPrevious(false);\n });\n searxng.on('.result-detail-next', 'click', e => {\n e.preventDefault();\n searxng.selectNext(false);\n });\n\n // listen for the back button to be pressed and dismiss the image details when called\n window.addEventListener('hashchange', () => {\n if (window.location.hash != '#image-viewer') searxng.closeDetail();\n });\n\n d.querySelectorAll('.swipe-horizontal').forEach(\n obj => {\n obj.addEventListener('swiped-left', function () {\n searxng.selectNext(false);\n });\n obj.addEventListener('swiped-right', function () {\n searxng.selectPrevious(false);\n });\n }\n );\n\n w.addEventListener('scroll', function () {\n var e = d.getElementById('backToTop'),\n scrollTop = document.documentElement.scrollTop || document.body.scrollTop,\n results = d.getElementById('results');\n if (e !== null) {\n if (scrollTop >= 100) {\n results.classList.add('scrolling');\n } else {\n results.classList.remove('scrolling');\n }\n }\n }, true);\n\n });\n\n})(window, document, window.searxng);\n","(function(f){if(typeof exports===\"object\"&&typeof module!==\"undefined\"){module.exports=f()}else if(typeof define===\"function\"&&define.amd){define([],f)}else{var g;if(typeof window!==\"undefined\"){g=window}else if(typeof global!==\"undefined\"){g=global}else if(typeof self!==\"undefined\"){g=self}else{g=this}g.AutoComplete = f()}})(function(){var define,module,exports;return (function(){function r(e,n,t){function o(i,f){if(!n[i]){if(!e[i]){var c=\"function\"==typeof require&&require;if(!f&&c)return c(i,!0);if(u)return u(i,!0);var a=new Error(\"Cannot find module '\"+i+\"'\");throw a.code=\"MODULE_NOT_FOUND\",a}var p=n[i]={exports:{}};e[i][0].call(p.exports,function(r){var n=e[i][1][r];return o(n||r)},p,p.exports,r,e,n,t)}return n[i].exports}for(var u=\"function\"==typeof require&&require,i=0;i @baptistedonaux\n */\nvar AutoComplete = /** @class */ (function () {\n // Constructor\n function AutoComplete(params, selector) {\n if (params === void 0) { params = {}; }\n if (selector === void 0) { selector = \"[data-autocomplete]\"; }\n if (Array.isArray(selector)) {\n selector.forEach(function (s) {\n new AutoComplete(params, s);\n });\n }\n else if (typeof selector == \"string\") {\n var elements = document.querySelectorAll(selector);\n Array.prototype.forEach.call(elements, function (input) {\n new AutoComplete(params, input);\n });\n }\n else {\n var specificParams = AutoComplete.merge(AutoComplete.defaults, params, {\n DOMResults: document.createElement(\"div\")\n });\n AutoComplete.prototype.create(specificParams, selector);\n return specificParams;\n }\n }\n AutoComplete.prototype.create = function (params, element) {\n params.Input = element;\n if (params.Input.nodeName.match(/^INPUT$/i) && (params.Input.hasAttribute(\"type\") === false || params.Input.getAttribute(\"type\").match(/^TEXT|SEARCH$/i))) {\n params.Input.setAttribute(\"autocomplete\", \"off\");\n params._Position(params);\n params.Input.parentNode.appendChild(params.DOMResults);\n params.$Listeners = {\n blur: params._Blur.bind(params),\n destroy: AutoComplete.prototype.destroy.bind(null, params),\n focus: params._Focus.bind(params),\n keyup: AutoComplete.prototype.event.bind(null, params, EventType.KEYUP),\n keydown: AutoComplete.prototype.event.bind(null, params, EventType.KEYDOWN),\n position: params._Position.bind(params)\n };\n for (var event in params.$Listeners) {\n params.Input.addEventListener(event, params.$Listeners[event]);\n }\n }\n };\n AutoComplete.prototype.getEventsByType = function (params, type) {\n var mappings = {};\n for (var key in params.KeyboardMappings) {\n var event = EventType.KEYUP;\n if (params.KeyboardMappings[key].Event !== undefined) {\n event = params.KeyboardMappings[key].Event;\n }\n if (event == type) {\n mappings[key] = params.KeyboardMappings[key];\n }\n }\n return mappings;\n };\n AutoComplete.prototype.event = function (params, type, event) {\n var eventIdentifier = function (condition) {\n if ((match === true && mapping.Operator == ConditionOperator.AND) || (match === false && mapping.Operator == ConditionOperator.OR)) {\n condition = AutoComplete.merge({\n Not: false\n }, condition);\n if (condition.hasOwnProperty(\"Is\")) {\n if (condition.Is == event.keyCode) {\n match = !condition.Not;\n }\n else {\n match = condition.Not;\n }\n }\n else if (condition.hasOwnProperty(\"From\") && condition.hasOwnProperty(\"To\")) {\n if (event.keyCode >= condition.From && event.keyCode <= condition.To) {\n match = !condition.Not;\n }\n else {\n match = condition.Not;\n }\n }\n }\n };\n for (var name in AutoComplete.prototype.getEventsByType(params, type)) {\n var mapping = AutoComplete.merge({\n Operator: ConditionOperator.AND\n }, params.KeyboardMappings[name]), match = ConditionOperator.AND == mapping.Operator;\n mapping.Conditions.forEach(eventIdentifier);\n if (match === true) {\n mapping.Callback.call(params, event);\n }\n }\n };\n AutoComplete.prototype.makeRequest = function (params, callback, callbackErr) {\n var propertyHttpHeaders = Object.getOwnPropertyNames(params.HttpHeaders), request = new XMLHttpRequest(), method = params._HttpMethod(), url = params._Url(), queryParams = params._Pre(), queryParamsStringify = encodeURIComponent(params._QueryArg()) + \"=\" + encodeURIComponent(queryParams);\n if (method.match(/^GET$/i)) {\n if (url.indexOf(\"?\") !== -1) {\n url += \"&\" + queryParamsStringify;\n }\n else {\n url += \"?\" + queryParamsStringify;\n }\n }\n request.open(method, url, true);\n for (var i = propertyHttpHeaders.length - 1; i >= 0; i--) {\n request.setRequestHeader(propertyHttpHeaders[i], params.HttpHeaders[propertyHttpHeaders[i]]);\n }\n request.onreadystatechange = function () {\n if (request.readyState == 4 && request.status == 200) {\n params.$Cache[queryParams] = request.response;\n callback(request.response);\n }\n else if (request.status >= 400) {\n callbackErr();\n }\n };\n return request;\n };\n AutoComplete.prototype.ajax = function (params, request, timeout) {\n if (timeout === void 0) { timeout = true; }\n if (params.$AjaxTimer) {\n window.clearTimeout(params.$AjaxTimer);\n }\n if (timeout === true) {\n params.$AjaxTimer = window.setTimeout(AutoComplete.prototype.ajax.bind(null, params, request, false), params.Delay);\n }\n else {\n if (params.Request) {\n params.Request.abort();\n }\n params.Request = request;\n params.Request.send(params._QueryArg() + \"=\" + params._Pre());\n }\n };\n AutoComplete.prototype.cache = function (params, callback, callbackErr) {\n var response = params._Cache(params._Pre());\n if (response === undefined) {\n var request = AutoComplete.prototype.makeRequest(params, callback, callbackErr);\n AutoComplete.prototype.ajax(params, request);\n }\n else {\n callback(response);\n }\n };\n AutoComplete.prototype.destroy = function (params) {\n for (var event in params.$Listeners) {\n params.Input.removeEventListener(event, params.$Listeners[event]);\n }\n params.DOMResults.parentNode.removeChild(params.DOMResults);\n };\n AutoComplete.merge = function () {\n var merge = {}, tmp;\n for (var i = 0; i < arguments.length; i++) {\n for (tmp in arguments[i]) {\n merge[tmp] = arguments[i][tmp];\n }\n }\n return merge;\n };\n AutoComplete.defaults = {\n Delay: 150,\n EmptyMessage: \"No result here\",\n Highlight: {\n getRegex: function (value) {\n return new RegExp(value, \"ig\");\n },\n transform: function (value) {\n return \"\" + value + \"\";\n }\n },\n HttpHeaders: {\n \"Content-type\": \"application/x-www-form-urlencoded\"\n },\n Limit: 0,\n MinChars: 0,\n HttpMethod: \"GET\",\n QueryArg: \"q\",\n Url: null,\n KeyboardMappings: {\n \"Enter\": {\n Conditions: [{\n Is: 13,\n Not: false\n }],\n Callback: function (event) {\n if (this.DOMResults.getAttribute(\"class\").indexOf(\"open\") != -1) {\n var liActive = this.DOMResults.querySelector(\"li.active\");\n if (liActive !== null) {\n event.preventDefault();\n this._Select(liActive);\n this.DOMResults.setAttribute(\"class\", \"autocomplete\");\n }\n }\n },\n Operator: ConditionOperator.AND,\n Event: EventType.KEYDOWN\n },\n \"KeyUpAndDown_down\": {\n Conditions: [{\n Is: 38,\n Not: false\n },\n {\n Is: 40,\n Not: false\n }],\n Callback: function (event) {\n event.preventDefault();\n },\n Operator: ConditionOperator.OR,\n Event: EventType.KEYDOWN\n },\n \"KeyUpAndDown_up\": {\n Conditions: [{\n Is: 38,\n Not: false\n },\n {\n Is: 40,\n Not: false\n }],\n Callback: function (event) {\n event.preventDefault();\n var first = this.DOMResults.querySelector(\"li:first-child:not(.locked)\"), last = this.DOMResults.querySelector(\"li:last-child:not(.locked)\"), active = this.DOMResults.querySelector(\"li.active\");\n if (active) {\n var currentIndex = Array.prototype.indexOf.call(active.parentNode.children, active), position = currentIndex + (event.keyCode - 39), lisCount = this.DOMResults.getElementsByTagName(\"li\").length;\n if (position < 0) {\n position = lisCount - 1;\n }\n else if (position >= lisCount) {\n position = 0;\n }\n active.classList.remove(\"active\");\n active.parentElement.children.item(position).classList.add(\"active\");\n }\n else if (last && event.keyCode == 38) {\n last.classList.add(\"active\");\n }\n else if (first) {\n first.classList.add(\"active\");\n }\n },\n Operator: ConditionOperator.OR,\n Event: EventType.KEYUP\n },\n \"AlphaNum\": {\n Conditions: [{\n Is: 13,\n Not: true\n }, {\n From: 35,\n To: 40,\n Not: true\n }],\n Callback: function () {\n var oldValue = this.Input.getAttribute(\"data-autocomplete-old-value\"), currentValue = this._Pre();\n if (currentValue !== \"\" && currentValue.length >= this._MinChars()) {\n if (!oldValue || currentValue != oldValue) {\n this.DOMResults.setAttribute(\"class\", \"autocomplete open\");\n }\n AutoComplete.prototype.cache(this, function (response) {\n this._Render(this._Post(response));\n this._Open();\n }.bind(this), this._Error);\n }\n else {\n this._Close();\n }\n },\n Operator: ConditionOperator.AND,\n Event: EventType.KEYUP\n }\n },\n DOMResults: null,\n Request: null,\n Input: null,\n /**\n * Return the message when no result returns\n */\n _EmptyMessage: function () {\n var emptyMessage = \"\";\n if (this.Input.hasAttribute(\"data-autocomplete-empty-message\")) {\n emptyMessage = this.Input.getAttribute(\"data-autocomplete-empty-message\");\n }\n else if (this.EmptyMessage !== false) {\n emptyMessage = this.EmptyMessage;\n }\n else {\n emptyMessage = \"\";\n }\n return emptyMessage;\n },\n /**\n * Returns the maximum number of results\n */\n _Limit: function () {\n var limit = this.Input.getAttribute(\"data-autocomplete-limit\");\n if (isNaN(limit) || limit === null) {\n return this.Limit;\n }\n return parseInt(limit, 10);\n },\n /**\n * Returns the minimum number of characters entered before firing ajax\n */\n _MinChars: function () {\n var minchars = this.Input.getAttribute(\"data-autocomplete-minchars\");\n if (isNaN(minchars) || minchars === null) {\n return this.MinChars;\n }\n return parseInt(minchars, 10);\n },\n /**\n * Apply transformation on labels response\n */\n _Highlight: function (label) {\n return label.replace(this.Highlight.getRegex(this._Pre()), this.Highlight.transform);\n },\n /**\n * Returns the HHTP method to use\n */\n _HttpMethod: function () {\n if (this.Input.hasAttribute(\"data-autocomplete-method\")) {\n return this.Input.getAttribute(\"data-autocomplete-method\");\n }\n return this.HttpMethod;\n },\n /**\n * Returns the query param to use\n */\n _QueryArg: function () {\n if (this.Input.hasAttribute(\"data-autocomplete-param-name\")) {\n return this.Input.getAttribute(\"data-autocomplete-param-name\");\n }\n return this.QueryArg;\n },\n /**\n * Returns the URL to use for AJAX request\n */\n _Url: function () {\n if (this.Input.hasAttribute(\"data-autocomplete\")) {\n return this.Input.getAttribute(\"data-autocomplete\");\n }\n return this.Url;\n },\n /**\n * Manage the close\n */\n _Blur: function (now) {\n if (now === void 0) { now = false; }\n if (now) {\n this._Close();\n }\n else {\n var params = this;\n setTimeout(function () {\n params._Blur(true);\n }, 150);\n }\n },\n /**\n * Manage the cache\n */\n _Cache: function (value) {\n return this.$Cache[value];\n },\n /**\n * Manage the open\n */\n _Focus: function () {\n var oldValue = this.Input.getAttribute(\"data-autocomplete-old-value\");\n if ((!oldValue || this.Input.value != oldValue) && this._MinChars() <= this.Input.value.length) {\n this.DOMResults.setAttribute(\"class\", \"autocomplete open\");\n }\n },\n /**\n * Bind all results item if one result is opened\n */\n _Open: function () {\n var params = this;\n Array.prototype.forEach.call(this.DOMResults.getElementsByTagName(\"li\"), function (li) {\n if (li.getAttribute(\"class\") != \"locked\") {\n li.onclick = function () {\n params._Select(li);\n };\n }\n });\n },\n _Close: function () {\n this.DOMResults.setAttribute(\"class\", \"autocomplete\");\n },\n /**\n * Position the results HTML element\n */\n _Position: function () {\n this.DOMResults.setAttribute(\"class\", \"autocomplete\");\n this.DOMResults.setAttribute(\"style\", \"top:\" + (this.Input.offsetTop + this.Input.offsetHeight) + \"px;left:\" + this.Input.offsetLeft + \"px;width:\" + this.Input.clientWidth + \"px;\");\n },\n /**\n * Execute the render of results DOM element\n */\n _Render: function (response) {\n var ul;\n if (typeof response == \"string\") {\n ul = this._RenderRaw(response);\n }\n else {\n ul = this._RenderResponseItems(response);\n }\n if (this.DOMResults.hasChildNodes()) {\n this.DOMResults.removeChild(this.DOMResults.childNodes[0]);\n }\n this.DOMResults.appendChild(ul);\n },\n /**\n * ResponseItems[] rendering\n */\n _RenderResponseItems: function (response) {\n var ul = document.createElement(\"ul\"), li = document.createElement(\"li\"), limit = this._Limit();\n // Order\n if (limit < 0) {\n response = response.reverse();\n }\n else if (limit === 0) {\n limit = response.length;\n }\n for (var item = 0; item < Math.min(Math.abs(limit), response.length); item++) {\n li.innerHTML = response[item].Label;\n li.setAttribute(\"data-autocomplete-value\", response[item].Value);\n ul.appendChild(li);\n li = document.createElement(\"li\");\n }\n return ul;\n },\n /**\n * string response rendering (RAW HTML)\n */\n _RenderRaw: function (response) {\n var ul = document.createElement(\"ul\"), li = document.createElement(\"li\");\n if (response.length > 0) {\n this.DOMResults.innerHTML = response;\n }\n else {\n var emptyMessage = this._EmptyMessage();\n if (emptyMessage !== \"\") {\n li.innerHTML = emptyMessage;\n li.setAttribute(\"class\", \"locked\");\n ul.appendChild(li);\n }\n }\n return ul;\n },\n /**\n * Deal with request response\n */\n _Post: function (response) {\n try {\n var returnResponse = [];\n //JSON return\n var json = JSON.parse(response);\n if (Object.keys(json).length === 0) {\n return \"\";\n }\n if (Array.isArray(json)) {\n for (var i = 0; i < Object.keys(json).length; i++) {\n returnResponse[returnResponse.length] = { \"Value\": json[i], \"Label\": this._Highlight(json[i]) };\n }\n }\n else {\n for (var value in json) {\n returnResponse.push({\n \"Value\": value,\n \"Label\": this._Highlight(json[value])\n });\n }\n }\n return returnResponse;\n }\n catch (event) {\n //HTML return\n return response;\n }\n },\n /**\n * Return the autocomplete value to send (before request)\n */\n _Pre: function () {\n return this.Input.value;\n },\n /**\n * Choice one result item\n */\n _Select: function (item) {\n if (item.hasAttribute(\"data-autocomplete-value\")) {\n this.Input.value = item.getAttribute(\"data-autocomplete-value\");\n }\n else {\n this.Input.value = item.innerHTML;\n }\n this.Input.setAttribute(\"data-autocomplete-old-value\", this.Input.value);\n },\n /**\n * Handle HTTP error on the request\n */\n _Error: function () {\n },\n $AjaxTimer: null,\n $Cache: {},\n $Listeners: {}\n };\n return AutoComplete;\n}());\nmodule.exports = AutoComplete;\n\n},{}]},{},[1])(1)\n});\n","/* SPDX-License-Identifier: AGPL-3.0-or-later */\n/* exported AutoComplete */\n\nimport AutoComplete from \"../../../node_modules/autocomplete-js/dist/autocomplete.js\";\n\n(function (w, d, searxng) {\n 'use strict';\n\n var qinput_id = \"q\", qinput;\n\n const isMobile = window.matchMedia(\"only screen and (max-width: 50em)\").matches;\n\n function submitIfQuery () {\n if (qinput.value.length > 0) {\n var search = document.getElementById('search');\n setTimeout(search.submit.bind(search), 0);\n }\n }\n\n function createClearButton (qinput) {\n var cs = document.getElementById('clear_search');\n var updateClearButton = function () {\n if (qinput.value.length === 0) {\n cs.classList.add(\"empty\");\n } else {\n cs.classList.remove(\"empty\");\n }\n };\n\n // update status, event listener\n updateClearButton();\n cs.addEventListener('click', function (ev) {\n qinput.value = '';\n qinput.focus();\n updateClearButton();\n ev.preventDefault();\n });\n qinput.addEventListener('input', updateClearButton, false);\n }\n\n searxng.ready(function () {\n qinput = d.getElementById(qinput_id);\n\n if (qinput !== null) {\n // clear button\n createClearButton(qinput);\n\n // autocompleter\n if (searxng.settings.autocomplete) {\n searxng.autocomplete = AutoComplete.call(w, {\n Url: \"./autocompleter\",\n EmptyMessage: searxng.settings.translations.no_item_found,\n HttpMethod: searxng.settings.method,\n HttpHeaders: {\n \"Content-type\": \"application/x-www-form-urlencoded\",\n \"X-Requested-With\": \"XMLHttpRequest\"\n },\n MinChars: searxng.settings.autocomplete_min,\n Delay: 300,\n _Position: function () {},\n _Open: function () {\n var params = this;\n Array.prototype.forEach.call(this.DOMResults.getElementsByTagName(\"li\"), function (li) {\n if (li.getAttribute(\"class\") != \"locked\") {\n li.onmousedown = function () {\n params._Select(li);\n };\n }\n });\n },\n _Select: function (item) {\n AutoComplete.defaults._Select.call(this, item);\n var form = item.closest('form');\n if (form) {\n form.submit();\n }\n },\n _MinChars: function () {\n if (this.Input.value.indexOf('!') > -1) {\n return 0;\n } else {\n return AutoComplete.defaults._MinChars.call(this);\n }\n },\n KeyboardMappings: Object.assign({}, AutoComplete.defaults.KeyboardMappings, {\n \"KeyUpAndDown_up\": Object.assign({}, AutoComplete.defaults.KeyboardMappings.KeyUpAndDown_up, {\n Callback: function (event) {\n AutoComplete.defaults.KeyboardMappings.KeyUpAndDown_up.Callback.call(this, event);\n var liActive = this.DOMResults.querySelector(\"li.active\");\n if (liActive) {\n AutoComplete.defaults._Select.call(this, liActive);\n }\n },\n }),\n \"Tab\": Object.assign({}, AutoComplete.defaults.KeyboardMappings.Enter, {\n Conditions: [{\n Is: 9,\n Not: false\n }],\n Callback: function (event) {\n if (this.DOMResults.getAttribute(\"class\").indexOf(\"open\") != -1) {\n var liActive = this.DOMResults.querySelector(\"li.active\");\n if (liActive !== null) {\n AutoComplete.defaults._Select.call(this, liActive);\n event.preventDefault();\n }\n }\n },\n })\n }),\n }, \"#\" + qinput_id);\n }\n\n /*\n Monkey patch autocomplete.js to fix a bug\n With the POST method, the values are not URL encoded: query like \"1 + 1\" are sent as \"1 1\" since space are URL encoded as plus.\n See HTML specifications:\n * HTML5: https://url.spec.whatwg.org/#concept-urlencoded-serializer\n * HTML4: https://www.w3.org/TR/html401/interact/forms.html#h-17.13.4.1\n\n autocomplete.js does not URL encode the name and values:\n https://github.com/autocompletejs/autocomplete.js/blob/87069524f3b95e68f1b54d8976868e0eac1b2c83/src/autocomplete.ts#L665\n\n The monkey patch overrides the compiled version of the ajax function.\n See https://github.com/autocompletejs/autocomplete.js/blob/87069524f3b95e68f1b54d8976868e0eac1b2c83/dist/autocomplete.js#L143-L158\n The patch changes only the line 156 from\n params.Request.send(params._QueryArg() + \"=\" + params._Pre());\n to\n params.Request.send(encodeURIComponent(params._QueryArg()) + \"=\" + encodeURIComponent(params._Pre()));\n\n Related to:\n * https://github.com/autocompletejs/autocomplete.js/issues/78\n * https://github.com/searxng/searxng/issues/1695\n */\n AutoComplete.prototype.ajax = function (params, request, timeout) {\n if (timeout === void 0) { timeout = true; }\n if (params.$AjaxTimer) {\n window.clearTimeout(params.$AjaxTimer);\n }\n if (timeout === true) {\n params.$AjaxTimer = window.setTimeout(AutoComplete.prototype.ajax.bind(null, params, request, false), params.Delay);\n } else {\n if (params.Request) {\n params.Request.abort();\n }\n params.Request = request;\n params.Request.send(encodeURIComponent(params._QueryArg()) + \"=\" + encodeURIComponent(params._Pre()));\n }\n };\n\n if (!isMobile && document.querySelector('.index_endpoint')) {\n qinput.focus();\n }\n }\n\n // Additionally to searching when selecting a new category, we also\n // automatically start a new search request when the user changes a search\n // filter (safesearch, time range or language) (this requires JavaScript\n // though)\n if (\n qinput !== null\n && searxng.settings.search_on_category_select\n // If .search_filters is undefined (invisible) we are on the homepage and\n // hence don't have to set any listeners\n && d.querySelector(\".search_filters\") != null\n ) {\n searxng.on(d.getElementById('safesearch'), 'change', submitIfQuery);\n searxng.on(d.getElementById('time_range'), 'change', submitIfQuery);\n searxng.on(d.getElementById('language'), 'change', submitIfQuery);\n }\n\n const categoryButtons = d.querySelectorAll(\"button.category_button\");\n for (let button of categoryButtons) {\n searxng.on(button, 'click', (event) => {\n if (event.shiftKey) {\n event.preventDefault();\n button.classList.toggle(\"selected\");\n return;\n }\n\n // manually deselect the old selection when a new category is selected\n const selectedCategories = d.querySelectorAll(\"button.category_button.selected\");\n for (let categoryButton of selectedCategories) {\n categoryButton.classList.remove(\"selected\");\n }\n button.classList.add(\"selected\");\n })\n }\n\n // override form submit action to update the actually selected categories\n const form = d.querySelector(\"#search\");\n if (form != null) {\n searxng.on(form, 'submit', (event) => {\n event.preventDefault();\n const categoryValuesInput = d.querySelector(\"#selected-categories\");\n if (categoryValuesInput) {\n let categoryValues = [];\n for (let categoryButton of categoryButtons) {\n if (categoryButton.classList.contains(\"selected\")) {\n categoryValues.push(categoryButton.name.replace(\"category_\", \"\"));\n }\n }\n categoryValuesInput.value = categoryValues.join(\",\");\n }\n form.submit();\n });\n }\n });\n\n})(window, document, window.searxng);\n"],"names":["w","ElementPrototype","selector","node","nodes","i","callbackSafe","callback","el","e","exception","searxng","obj","eventType","useCapture","found","method","url","data","resolve","reject","req","ex","src","path","id","s","newNode","referenceNode","getEndpoint","className","d","onlyImages","newLoadSpinner","loader","replaceChildrenWith","element","children","child","loadNextPage","form","formData","response","nextPageDoc","articleList","paginationElement","articleElement","err","intersectionObserveOptions","observedSelector","observer","entries","paginationEntry","isElementInDetail","getResultElement","isImageResult","resultElement","highlightResult","baseKeyBinding","removeFocus","copyURLToClipboard","toggleHelp","searchInputFocus","GoToNextPage","openResult","GoToPreviousPage","reloadPage","keyBindingLayouts","scrollPage","scrollPageTo","keyBindings","tagName","which","noScroll","keepFocus","current","effectiveWhich","next","results","top","bot","etop","ebot","link","scrollPageToSelected","pageButtonClick","css_selector","button","sel","wtop","wheight","offset","wbot","amount","position","nav","q","len","newTab","initHelpContent","divElement","categories","k","key","sorted","a","b","html","cat","lastCategory","first","cj","helpPanel","body","currentUrlElement","event","leaflet_target","map_lon","map_lat","map_zoom","map_boundingbox","map_geojson","map_bounds","southWest","northEast","map","osmMapnikUrl","osmMapnikAttrib","osmMapnik","osmWikimediaUrl","osmWikimediaAttrib","osmWikimedia","baseLayers","engine_descriptions","load_engine_descriptions","content","engine_name","description","elements","source","enableAllEngines","disableAllEngines","engineToggles","toggleEngines","enable","copyHashButton","window","document","params","evt","handleTouchStart","handleTouchMove","handleTouchEnd","xDown","yDown","xDiff","yDiff","timeDown","startEl","touchCount","swipeThreshold","getNearestAttribute","swipeUnit","swipeTimeout","timeDiff","changedTouches","eventData","xUp","yUp","attributeName","defaultValue","attributeValue","img","btnLabelCollapsed","btnLabelNotCollapsed","target","targetElement","iframe_load","srctest","imgTimeoutID","imgLoaderSpinner","imgLoader","loadImage","imgSrc","onSuccess","thumbnail","scrollTop","f","module","r","n","t","o","c","require","u","p","exports","ConditionOperator","EventType","AutoComplete","input","specificParams","type","mappings","eventIdentifier","condition","match","mapping","name","callbackErr","propertyHttpHeaders","request","queryParams","queryParamsStringify","timeout","merge","tmp","value","liActive","last","active","currentIndex","lisCount","oldValue","currentValue","emptyMessage","limit","minchars","label","now","li","ul","item","returnResponse","json","qinput_id","qinput","isMobile","submitIfQuery","search","createClearButton","cs","updateClearButton","ev","categoryButtons","selectedCategories","categoryButton","categoryValuesInput","categoryValues"],"mappings":"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","x_google_ignoreList":[5,7]} \ No newline at end of file +{"version":3,"file":"searxng.min.js","sources":["../../../../../client/simple/src/js/main/00_toolkit.js","../../../../../client/simple/src/js/main/infinite_scroll.js","../../../../../client/simple/src/js/main/keyboard.js","../../../../../client/simple/src/js/main/mapresult.js","../../../../../client/simple/src/js/main/preferences.js","../../../../../client/simple/node_modules/swiped-events/src/swiped-events.js","../../../../../client/simple/src/js/main/results.js","../../../../../client/simple/src/js/main/search.js"],"sourcesContent":["/**\n * @license\n * (C) Copyright Contributors to the SearXNG project.\n * (C) Copyright Contributors to the searx project (2014 - 2021).\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nwindow.searxng = (function (w, d) {\n\n 'use strict';\n\n // not invented here toolkit with bugs fixed elsewhere\n // purposes : be just good enough and as small as possible\n\n // from https://plainjs.com/javascript/events/live-binding-event-handlers-14/\n if (w.Element) {\n (function (ElementPrototype) {\n ElementPrototype.matches = ElementPrototype.matches ||\n ElementPrototype.matchesSelector ||\n ElementPrototype.webkitMatchesSelector ||\n ElementPrototype.msMatchesSelector ||\n function (selector) {\n var node = this, nodes = (node.parentNode || node.document).querySelectorAll(selector), i = -1;\n while (nodes[++i] && nodes[i] != node);\n return !!nodes[i];\n };\n })(Element.prototype);\n }\n\n function callbackSafe (callback, el, e) {\n try {\n callback.call(el, e);\n } catch (exception) {\n console.log(exception);\n }\n }\n\n var searxng = window.searxng || {};\n\n searxng.on = function (obj, eventType, callback, useCapture) {\n useCapture = useCapture || false;\n if (typeof obj !== 'string') {\n // obj HTMLElement, HTMLDocument\n obj.addEventListener(eventType, callback, useCapture);\n } else {\n // obj is a selector\n d.addEventListener(eventType, function (e) {\n var el = e.target || e.srcElement, found = false;\n while (el && el.matches && el !== d && !(found = el.matches(obj))) el = el.parentElement;\n if (found) callbackSafe(callback, el, e);\n }, useCapture);\n }\n };\n\n searxng.ready = function (callback) {\n if (document.readyState != 'loading') {\n callback.call(w);\n } else {\n w.addEventListener('DOMContentLoaded', callback.bind(w));\n }\n };\n\n searxng.http = function (method, url, data = null) {\n return new Promise(function (resolve, reject) {\n try {\n var req = new XMLHttpRequest();\n req.open(method, url, true);\n req.timeout = 20000;\n\n // On load\n req.onload = function () {\n if (req.status == 200) {\n resolve(req.response, req.responseType);\n } else {\n reject(Error(req.statusText));\n }\n };\n\n // Handle network errors\n req.onerror = function () {\n reject(Error(\"Network Error\"));\n };\n\n req.onabort = function () {\n reject(Error(\"Transaction is aborted\"));\n };\n\n req.ontimeout = function () {\n reject(Error(\"Timeout\"));\n }\n\n // Make the request\n if (data) {\n req.send(data)\n } else {\n req.send();\n }\n } catch (ex) {\n reject(ex);\n }\n });\n };\n\n searxng.loadStyle = function (src) {\n var path = searxng.settings.theme_static_path + \"/\" + src,\n id = \"style_\" + src.replace('.', '_'),\n s = d.getElementById(id);\n if (s === null) {\n s = d.createElement('link');\n s.setAttribute('id', id);\n s.setAttribute('rel', 'stylesheet');\n s.setAttribute('type', 'text/css');\n s.setAttribute('href', path);\n d.body.appendChild(s);\n }\n };\n\n searxng.loadScript = function (src, callback) {\n var path = searxng.settings.theme_static_path + \"/\" + src,\n id = \"script_\" + src.replace('.', '_'),\n s = d.getElementById(id);\n if (s === null) {\n s = d.createElement('script');\n s.setAttribute('id', id);\n s.setAttribute('src', path);\n s.onload = callback;\n s.onerror = function () {\n s.setAttribute('error', '1');\n };\n d.body.appendChild(s);\n } else if (!s.hasAttribute('error')) {\n try {\n callback.apply(s, []);\n } catch (exception) {\n console.log(exception);\n }\n } else {\n console.log(\"callback not executed : script '\" + path + \"' not loaded.\");\n }\n };\n\n searxng.insertBefore = function (newNode, referenceNode) {\n referenceNode.parentNode.insertBefore(newNode, referenceNode);\n };\n\n searxng.insertAfter = function (newNode, referenceNode) {\n referenceNode.parentNode.insertAfter(newNode, referenceNode.nextSibling);\n };\n\n searxng.on('.close', 'click', function () {\n this.parentNode.classList.add('invisible');\n });\n\n function getEndpoint () {\n for (var className of d.getElementsByTagName('body')[0].classList.values()) {\n if (className.endsWith('_endpoint')) {\n return className.split('_')[0];\n }\n }\n return '';\n }\n\n searxng.endpoint = getEndpoint();\n\n return searxng;\n})(window, document);\n","// SPDX-License-Identifier: AGPL-3.0-or-later\n\n/* global searxng */\n\nsearxng.ready(function () {\n 'use strict';\n\n searxng.infinite_scroll_supported = (\n 'IntersectionObserver' in window &&\n 'IntersectionObserverEntry' in window &&\n 'intersectionRatio' in window.IntersectionObserverEntry.prototype);\n\n if (searxng.endpoint !== 'results') {\n return;\n }\n\n if (!searxng.infinite_scroll_supported) {\n console.log('IntersectionObserver not supported');\n return;\n }\n\n let d = document;\n var onlyImages = d.getElementById('results').classList.contains('only_template_images');\n\n function newLoadSpinner () {\n var loader = d.createElement('div');\n loader.classList.add('loader');\n return loader;\n }\n\n function replaceChildrenWith (element, children) {\n element.textContent = '';\n children.forEach(child => element.appendChild(child));\n }\n\n function loadNextPage (callback) {\n var form = d.querySelector('#pagination form.next_page');\n if (!form) {\n return\n }\n replaceChildrenWith(d.querySelector('#pagination'), [ newLoadSpinner() ]);\n var formData = new FormData(form);\n searxng.http('POST', d.querySelector('#search').getAttribute('action'), formData).then(\n function (response) {\n var nextPageDoc = new DOMParser().parseFromString(response, 'text/html');\n var articleList = nextPageDoc.querySelectorAll('#urls article');\n var paginationElement = nextPageDoc.querySelector('#pagination');\n d.querySelector('#pagination').remove();\n if (articleList.length > 0 && !onlyImages) {\n // do not add
element when there are only images\n d.querySelector('#urls').appendChild(d.createElement('hr'));\n }\n articleList.forEach(articleElement => {\n d.querySelector('#urls').appendChild(articleElement);\n });\n if (paginationElement) {\n d.querySelector('#results').appendChild(paginationElement);\n callback();\n }\n }\n ).catch(\n function (err) {\n console.log(err);\n var e = d.createElement('div');\n e.textContent = searxng.settings.translations.error_loading_next_page;\n e.classList.add('dialog-error');\n e.setAttribute('role', 'alert');\n replaceChildrenWith(d.querySelector('#pagination'), [ e ]);\n }\n )\n }\n\n if (searxng.settings.infinite_scroll && searxng.infinite_scroll_supported) {\n const intersectionObserveOptions = {\n rootMargin: \"20rem\",\n };\n const observedSelector = 'article.result:last-child';\n const observer = new IntersectionObserver(entries => {\n const paginationEntry = entries[0];\n if (paginationEntry.isIntersecting) {\n observer.unobserve(paginationEntry.target);\n loadNextPage(() => observer.observe(d.querySelector(observedSelector), intersectionObserveOptions));\n }\n });\n observer.observe(d.querySelector(observedSelector), intersectionObserveOptions);\n }\n\n});\n","/* SPDX-License-Identifier: AGPL-3.0-or-later */\n/* global searxng */\n\nsearxng.ready(function () {\n\n function isElementInDetail (el) {\n while (el !== undefined) {\n if (el.classList.contains('detail')) {\n return true;\n }\n if (el.classList.contains('result')) {\n // we found a result, no need to go to the root of the document:\n // el is not inside a
element\n return false;\n }\n el = el.parentNode;\n }\n return false;\n }\n\n function getResultElement (el) {\n while (el !== undefined) {\n if (el.classList.contains('result')) {\n return el;\n }\n el = el.parentNode;\n }\n return undefined;\n }\n\n function isImageResult (resultElement) {\n return resultElement && resultElement.classList.contains('result-images');\n }\n\n searxng.on('.result', 'click', function (e) {\n if (!isElementInDetail(e.target)) {\n highlightResult(this)(true, true);\n let resultElement = getResultElement(e.target);\n if (isImageResult(resultElement)) {\n e.preventDefault();\n searxng.selectImage(resultElement);\n }\n }\n });\n\n searxng.on('.result a', 'focus', function (e) {\n if (!isElementInDetail(e.target)) {\n let resultElement = getResultElement(e.target);\n if (resultElement && resultElement.getAttribute(\"data-vim-selected\") === null) {\n highlightResult(resultElement)(true);\n }\n if (isImageResult(resultElement)) {\n searxng.selectImage(resultElement);\n }\n }\n }, true);\n\n /* common base for layouts */\n var baseKeyBinding = {\n 'Escape': {\n key: 'ESC',\n fun: removeFocus,\n des: 'remove focus from the focused input',\n cat: 'Control'\n },\n 'c': {\n key: 'c',\n fun: copyURLToClipboard,\n des: 'copy url of the selected result to the clipboard',\n cat: 'Results'\n },\n 'h': {\n key: 'h',\n fun: toggleHelp,\n des: 'toggle help window',\n cat: 'Other'\n },\n 'i': {\n key: 'i',\n fun: searchInputFocus,\n des: 'focus on the search input',\n cat: 'Control'\n },\n 'n': {\n key: 'n',\n fun: GoToNextPage(),\n des: 'go to next page',\n cat: 'Results'\n },\n 'o': {\n key: 'o',\n fun: openResult(false),\n des: 'open search result',\n cat: 'Results'\n },\n 'p': {\n key: 'p',\n fun: GoToPreviousPage(),\n des: 'go to previous page',\n cat: 'Results'\n },\n 'r': {\n key: 'r',\n fun: reloadPage,\n des: 'reload page from the server',\n cat: 'Control'\n },\n 't': {\n key: 't',\n fun: openResult(true),\n des: 'open the result in a new tab',\n cat: 'Results'\n },\n };\n var keyBindingLayouts = {\n\n \"default\": Object.assign(\n { /* SearXNG layout */\n 'ArrowLeft': {\n key: '←',\n fun: highlightResult('up'),\n des: 'select previous search result',\n cat: 'Results'\n },\n 'ArrowRight': {\n key: '→',\n fun: highlightResult('down'),\n des: 'select next search result',\n cat: 'Results'\n },\n }, baseKeyBinding),\n\n 'vim': Object.assign(\n { /* Vim-like Key Layout. */\n 'b': {\n key: 'b',\n fun: scrollPage(-window.innerHeight),\n des: 'scroll one page up',\n cat: 'Navigation'\n },\n 'f': {\n key: 'f',\n fun: scrollPage(window.innerHeight),\n des: 'scroll one page down',\n cat: 'Navigation'\n },\n 'u': {\n key: 'u',\n fun: scrollPage(-window.innerHeight / 2),\n des: 'scroll half a page up',\n cat: 'Navigation'\n },\n 'd': {\n key: 'd',\n fun: scrollPage(window.innerHeight / 2),\n des: 'scroll half a page down',\n cat: 'Navigation'\n },\n 'g': {\n key: 'g',\n fun: scrollPageTo(-document.body.scrollHeight, 'top'),\n des: 'scroll to the top of the page',\n cat: 'Navigation'\n },\n 'v': {\n key: 'v',\n fun: scrollPageTo(document.body.scrollHeight, 'bottom'),\n des: 'scroll to the bottom of the page',\n cat: 'Navigation'\n },\n 'k': {\n key: 'k',\n fun: highlightResult('up'),\n des: 'select previous search result',\n cat: 'Results'\n },\n 'j': {\n key: 'j',\n fun: highlightResult('down'),\n des: 'select next search result',\n cat: 'Results'\n },\n 'y': {\n key: 'y',\n fun: copyURLToClipboard,\n des: 'copy url of the selected result to the clipboard',\n cat: 'Results'\n },\n }, baseKeyBinding)\n }\n\n var keyBindings = keyBindingLayouts[searxng.settings.hotkeys] || keyBindingLayouts.default;\n\n searxng.on(document, \"keydown\", function (e) {\n // check for modifiers so we don't break browser's hotkeys\n if (\n Object.prototype.hasOwnProperty.call(keyBindings, e.key)\n && !e.ctrlKey && !e.altKey\n && !e.shiftKey && !e.metaKey\n ) {\n var tagName = e.target.tagName.toLowerCase();\n if (e.key === 'Escape') {\n keyBindings[e.key].fun(e);\n } else {\n if (e.target === document.body || tagName === 'a' || tagName === 'button') {\n e.preventDefault();\n keyBindings[e.key].fun();\n }\n }\n }\n });\n\n function highlightResult (which) {\n return function (noScroll, keepFocus) {\n var current = document.querySelector('.result[data-vim-selected]'),\n effectiveWhich = which;\n if (current === null) {\n // no selection : choose the first one\n current = document.querySelector('.result');\n if (current === null) {\n // no first one : there are no results\n return;\n }\n // replace up/down actions by selecting first one\n if (which === \"down\" || which === \"up\") {\n effectiveWhich = current;\n }\n }\n\n var next, results = document.querySelectorAll('.result');\n results = Array.from(results); // convert NodeList to Array for further use\n\n if (typeof effectiveWhich !== 'string') {\n next = effectiveWhich;\n } else {\n switch (effectiveWhich) {\n case 'visible':\n var top = document.documentElement.scrollTop || document.body.scrollTop;\n var bot = top + document.documentElement.clientHeight;\n\n for (var i = 0; i < results.length; i++) {\n next = results[i];\n var etop = next.offsetTop;\n var ebot = etop + next.clientHeight;\n\n if ((ebot <= bot) && (etop > top)) {\n break;\n }\n }\n break;\n case 'down':\n next = results[results.indexOf(current) + 1] || current;\n break;\n case 'up':\n next = results[results.indexOf(current) - 1] || current;\n break;\n case 'bottom':\n next = results[results.length - 1];\n break;\n case 'top':\n /* falls through */\n default:\n next = results[0];\n }\n }\n\n if (next) {\n current.removeAttribute('data-vim-selected');\n next.setAttribute('data-vim-selected', 'true');\n if (!keepFocus) {\n var link = next.querySelector('h3 a') || next.querySelector('a');\n if (link !== null) {\n link.focus();\n }\n }\n if (!noScroll) {\n scrollPageToSelected();\n }\n }\n };\n }\n\n function reloadPage () {\n document.location.reload(true);\n }\n\n function removeFocus (e) {\n const tagName = e.target.tagName.toLowerCase();\n if (document.activeElement && (tagName === 'input' || tagName === 'select' || tagName === 'textarea')) {\n document.activeElement.blur();\n } else {\n searxng.closeDetail();\n }\n }\n\n function pageButtonClick (css_selector) {\n return function () {\n var button = document.querySelector(css_selector);\n if (button) {\n button.click();\n }\n };\n }\n\n function GoToNextPage () {\n return pageButtonClick('nav#pagination .next_page button[type=\"submit\"]');\n }\n\n function GoToPreviousPage () {\n return pageButtonClick('nav#pagination .previous_page button[type=\"submit\"]');\n }\n\n function scrollPageToSelected () {\n var sel = document.querySelector('.result[data-vim-selected]');\n if (sel === null) {\n return;\n }\n var wtop = document.documentElement.scrollTop || document.body.scrollTop,\n wheight = document.documentElement.clientHeight,\n etop = sel.offsetTop,\n ebot = etop + sel.clientHeight,\n offset = 120;\n // first element ?\n if ((sel.previousElementSibling === null) && (ebot < wheight)) {\n // set to the top of page if the first element\n // is fully included in the viewport\n window.scroll(window.scrollX, 0);\n return;\n }\n if (wtop > (etop - offset)) {\n window.scroll(window.scrollX, etop - offset);\n } else {\n var wbot = wtop + wheight;\n if (wbot < (ebot + offset)) {\n window.scroll(window.scrollX, ebot - wheight + offset);\n }\n }\n }\n\n function scrollPage (amount) {\n return function () {\n window.scrollBy(0, amount);\n highlightResult('visible')();\n };\n }\n\n function scrollPageTo (position, nav) {\n return function () {\n window.scrollTo(0, position);\n highlightResult(nav)();\n };\n }\n\n function searchInputFocus () {\n window.scrollTo(0, 0);\n var q = document.querySelector('#q');\n q.focus();\n if (q.setSelectionRange) {\n var len = q.value.length;\n q.setSelectionRange(len, len);\n }\n }\n\n function openResult (newTab) {\n return function () {\n var link = document.querySelector('.result[data-vim-selected] h3 a');\n if (link === null) {\n link = document.querySelector('.result[data-vim-selected] > a');\n }\n if (link !== null) {\n var url = link.getAttribute('href');\n if (newTab) {\n window.open(url);\n } else {\n window.location.href = url;\n }\n }\n };\n }\n\n function initHelpContent (divElement) {\n var categories = {};\n\n for (var k in keyBindings) {\n var key = keyBindings[k];\n categories[key.cat] = categories[key.cat] || [];\n categories[key.cat].push(key);\n }\n\n var sorted = Object.keys(categories).sort(function (a, b) {\n return categories[b].length - categories[a].length;\n });\n\n if (sorted.length === 0) {\n return;\n }\n\n var html = '×';\n html += '

How to navigate SearXNG with hotkeys

';\n html += '';\n\n for (var i = 0; i < sorted.length; i++) {\n var cat = categories[sorted[i]];\n\n var lastCategory = i === (sorted.length - 1);\n var first = i % 2 === 0;\n\n if (first) {\n html += '';\n }\n html += ''; // col-sm-*\n\n if (!first || lastCategory) {\n html += ''; // row\n }\n }\n\n html += '
';\n\n html += '

' + cat[0].cat + '

';\n html += '
    ';\n\n for (var cj in cat) {\n html += '
  • ' + cat[cj].key + ' ' + cat[cj].des + '
  • ';\n }\n\n html += '
';\n html += '
';\n\n divElement.innerHTML = html;\n }\n\n function toggleHelp () {\n var helpPanel = document.querySelector('#vim-hotkeys-help');\n if (helpPanel === undefined || helpPanel === null) {\n // first call\n helpPanel = document.createElement('div');\n helpPanel.id = 'vim-hotkeys-help';\n helpPanel.className = 'dialog-modal';\n initHelpContent(helpPanel);\n var body = document.getElementsByTagName('body')[0];\n body.appendChild(helpPanel);\n } else {\n // toggle hidden\n helpPanel.classList.toggle('invisible');\n return;\n }\n }\n\n function copyURLToClipboard () {\n var currentUrlElement = document.querySelector('.result[data-vim-selected] h3 a');\n if (currentUrlElement === null) return;\n\n const url = currentUrlElement.getAttribute('href');\n navigator.clipboard.writeText(url);\n }\n\n searxng.scrollPageToSelected = scrollPageToSelected;\n searxng.selectNext = highlightResult('down');\n searxng.selectPrevious = highlightResult('up');\n});\n","/* SPDX-License-Identifier: AGPL-3.0-or-later */\n/* global L */\n(function (w, d, searxng) {\n 'use strict';\n\n searxng.ready(function () {\n searxng.on('.searxng_init_map', 'click', function (event) {\n // no more request\n this.classList.remove(\"searxng_init_map\");\n\n //\n var leaflet_target = this.dataset.leafletTarget;\n var map_lon = parseFloat(this.dataset.mapLon);\n var map_lat = parseFloat(this.dataset.mapLat);\n var map_zoom = parseFloat(this.dataset.mapZoom);\n var map_boundingbox = JSON.parse(this.dataset.mapBoundingbox);\n var map_geojson = JSON.parse(this.dataset.mapGeojson);\n\n searxng.loadStyle('css/leaflet.css');\n searxng.loadScript('js/leaflet.js', function () {\n var map_bounds = null;\n if (map_boundingbox) {\n var southWest = L.latLng(map_boundingbox[0], map_boundingbox[2]);\n var northEast = L.latLng(map_boundingbox[1], map_boundingbox[3]);\n map_bounds = L.latLngBounds(southWest, northEast);\n }\n\n // init map\n var map = L.map(leaflet_target);\n // create the tile layer with correct attribution\n var osmMapnikUrl = 'https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png';\n var osmMapnikAttrib = 'Map data © OpenStreetMap contributors';\n var osmMapnik = new L.TileLayer(osmMapnikUrl, {minZoom: 1, maxZoom: 19, attribution: osmMapnikAttrib});\n var osmWikimediaUrl = 'https://maps.wikimedia.org/osm-intl/{z}/{x}/{y}.png';\n var osmWikimediaAttrib = 'Wikimedia maps | Maps data © OpenStreetMap contributors';\n var osmWikimedia = new L.TileLayer(osmWikimediaUrl, {minZoom: 1, maxZoom: 19, attribution: osmWikimediaAttrib});\n // init map view\n if (map_bounds) {\n // TODO hack: https://github.com/Leaflet/Leaflet/issues/2021\n // Still useful ?\n setTimeout(function () {\n map.fitBounds(map_bounds, {\n maxZoom: 17\n });\n }, 0);\n } else if (map_lon && map_lat) {\n if (map_zoom) {\n map.setView(new L.latLng(map_lat, map_lon), map_zoom);\n } else {\n map.setView(new L.latLng(map_lat, map_lon), 8);\n }\n }\n\n map.addLayer(osmMapnik);\n\n var baseLayers = {\n \"OSM Mapnik\": osmMapnik,\n \"OSM Wikimedia\": osmWikimedia,\n };\n\n L.control.layers(baseLayers).addTo(map);\n\n if (map_geojson) {\n L.geoJson(map_geojson).addTo(map);\n } /* else if(map_bounds) {\n L.rectangle(map_bounds, {color: \"#ff7800\", weight: 3, fill:false}).addTo(map);\n } */\n });\n\n // this event occur only once per element\n event.preventDefault();\n });\n });\n})(window, document, window.searxng);\n","/* SPDX-License-Identifier: AGPL-3.0-or-later */\n(function (w, d, searxng) {\n 'use strict';\n\n if (searxng.endpoint !== 'preferences') {\n return;\n }\n\n searxng.ready(function () {\n let engine_descriptions = null;\n function load_engine_descriptions () {\n if (engine_descriptions == null) {\n searxng.http(\"GET\", \"engine_descriptions.json\").then(function (content) {\n engine_descriptions = JSON.parse(content);\n for (const [engine_name, description] of Object.entries(engine_descriptions)) {\n let elements = d.querySelectorAll('[data-engine-name=\"' + engine_name + '\"] .engine-description');\n for (const element of elements) {\n let source = ' (' + searxng.settings.translations.Source + ': ' + description[1] + ')';\n element.innerHTML = description[0] + source;\n }\n }\n });\n }\n }\n\n for (const el of d.querySelectorAll('[data-engine-name]')) {\n searxng.on(el, 'mouseenter', load_engine_descriptions);\n }\n\n const enableAllEngines = d.querySelectorAll(\".enable-all-engines\");\n const disableAllEngines = d.querySelectorAll(\".disable-all-engines\");\n const engineToggles = d.querySelectorAll('tbody input[type=checkbox][class~=checkbox-onoff]');\n const toggleEngines = (enable) => {\n for (const el of engineToggles) {\n // check if element visible, so that only engines of the current category are modified\n if (el.offsetParent !== null) el.checked = !enable;\n }\n };\n for (const el of enableAllEngines) {\n searxng.on(el, 'click', () => toggleEngines(true));\n }\n for (const el of disableAllEngines) {\n searxng.on(el, 'click', () => toggleEngines(false));\n }\n\n const copyHashButton = d.querySelector(\"#copy-hash\");\n searxng.on(copyHashButton, 'click', (e) => {\n e.preventDefault();\n navigator.clipboard.writeText(copyHashButton.dataset.hash);\n copyHashButton.innerText = copyHashButton.dataset.copiedText;\n });\n });\n})(window, document, window.searxng);\n","/*!\n * swiped-events.js - v@version@\n * Pure JavaScript swipe events\n * https://github.com/john-doherty/swiped-events\n * @inspiration https://stackoverflow.com/questions/16348031/disable-scrolling-when-touch-moving-certain-element\n * @author John Doherty \n * @license MIT\n */\n(function (window, document) {\n\n 'use strict';\n\n // patch CustomEvent to allow constructor creation (IE/Chrome)\n if (typeof window.CustomEvent !== 'function') {\n\n window.CustomEvent = function (event, params) {\n\n params = params || { bubbles: false, cancelable: false, detail: undefined };\n\n var evt = document.createEvent('CustomEvent');\n evt.initCustomEvent(event, params.bubbles, params.cancelable, params.detail);\n return evt;\n };\n\n window.CustomEvent.prototype = window.Event.prototype;\n }\n\n document.addEventListener('touchstart', handleTouchStart, false);\n document.addEventListener('touchmove', handleTouchMove, false);\n document.addEventListener('touchend', handleTouchEnd, false);\n\n var xDown = null;\n var yDown = null;\n var xDiff = null;\n var yDiff = null;\n var timeDown = null;\n var startEl = null;\n var touchCount = 0;\n\n /**\n * Fires swiped event if swipe detected on touchend\n * @param {object} e - browser event object\n * @returns {void}\n */\n function handleTouchEnd(e) {\n\n // if the user released on a different target, cancel!\n if (startEl !== e.target) return;\n\n var swipeThreshold = parseInt(getNearestAttribute(startEl, 'data-swipe-threshold', '20'), 10); // default 20 units\n var swipeUnit = getNearestAttribute(startEl, 'data-swipe-unit', 'px'); // default px\n var swipeTimeout = parseInt(getNearestAttribute(startEl, 'data-swipe-timeout', '500'), 10); // default 500ms\n var timeDiff = Date.now() - timeDown;\n var eventType = '';\n var changedTouches = e.changedTouches || e.touches || [];\n\n if (swipeUnit === 'vh') {\n swipeThreshold = Math.round((swipeThreshold / 100) * document.documentElement.clientHeight); // get percentage of viewport height in pixels\n }\n if (swipeUnit === 'vw') {\n swipeThreshold = Math.round((swipeThreshold / 100) * document.documentElement.clientWidth); // get percentage of viewport height in pixels\n }\n\n if (Math.abs(xDiff) > Math.abs(yDiff)) { // most significant\n if (Math.abs(xDiff) > swipeThreshold && timeDiff < swipeTimeout) {\n if (xDiff > 0) {\n eventType = 'swiped-left';\n }\n else {\n eventType = 'swiped-right';\n }\n }\n }\n else if (Math.abs(yDiff) > swipeThreshold && timeDiff < swipeTimeout) {\n if (yDiff > 0) {\n eventType = 'swiped-up';\n }\n else {\n eventType = 'swiped-down';\n }\n }\n\n if (eventType !== '') {\n\n var eventData = {\n dir: eventType.replace(/swiped-/, ''),\n touchType: (changedTouches[0] || {}).touchType || 'direct',\n fingers: touchCount, // Number of fingers used\n xStart: parseInt(xDown, 10),\n xEnd: parseInt((changedTouches[0] || {}).clientX || -1, 10),\n yStart: parseInt(yDown, 10),\n yEnd: parseInt((changedTouches[0] || {}).clientY || -1, 10)\n };\n\n // fire `swiped` event event on the element that started the swipe\n startEl.dispatchEvent(new CustomEvent('swiped', { bubbles: true, cancelable: true, detail: eventData }));\n\n // fire `swiped-dir` event on the element that started the swipe\n startEl.dispatchEvent(new CustomEvent(eventType, { bubbles: true, cancelable: true, detail: eventData }));\n }\n\n // reset values\n xDown = null;\n yDown = null;\n timeDown = null;\n }\n /**\n * Records current location on touchstart event\n * @param {object} e - browser event object\n * @returns {void}\n */\n function handleTouchStart(e) {\n\n // if the element has data-swipe-ignore=\"true\" we stop listening for swipe events\n if (e.target.getAttribute('data-swipe-ignore') === 'true') return;\n\n startEl = e.target;\n\n timeDown = Date.now();\n xDown = e.touches[0].clientX;\n yDown = e.touches[0].clientY;\n xDiff = 0;\n yDiff = 0;\n touchCount = e.touches.length;\n }\n\n /**\n * Records location diff in px on touchmove event\n * @param {object} e - browser event object\n * @returns {void}\n */\n function handleTouchMove(e) {\n\n if (!xDown || !yDown) return;\n\n var xUp = e.touches[0].clientX;\n var yUp = e.touches[0].clientY;\n\n xDiff = xDown - xUp;\n yDiff = yDown - yUp;\n }\n\n /**\n * Gets attribute off HTML element or nearest parent\n * @param {object} el - HTML element to retrieve attribute from\n * @param {string} attributeName - name of the attribute\n * @param {any} defaultValue - default value to return if no match found\n * @returns {any} attribute value or defaultValue\n */\n function getNearestAttribute(el, attributeName, defaultValue) {\n\n // walk up the dom tree looking for attributeName\n while (el && el !== document.documentElement) {\n\n var attributeValue = el.getAttribute(attributeName);\n\n if (attributeValue) {\n return attributeValue;\n }\n\n el = el.parentNode;\n }\n\n return defaultValue;\n }\n\n}(window, document));\n","/* SPDX-License-Identifier: AGPL-3.0-or-later */\n\nimport \"../../../node_modules/swiped-events/src/swiped-events.js\";\n\n(function (w, d, searxng) {\n 'use strict';\n\n if (searxng.endpoint !== 'results') {\n return;\n }\n\n searxng.ready(function () {\n d.querySelectorAll('#urls img').forEach(\n img =>\n img.addEventListener(\n 'error', () => {\n // console.log(\"ERROR can't load: \" + img.src);\n img.src = window.searxng.settings.theme_static_path + \"/img/img_load_error.svg\";\n },\n {once: true}\n ));\n\n if (d.querySelector('#search_url button#copy_url')) {\n d.querySelector('#search_url button#copy_url').style.display = \"block\";\n }\n\n searxng.on('.btn-collapse', 'click', function () {\n var btnLabelCollapsed = this.getAttribute('data-btn-text-collapsed');\n var btnLabelNotCollapsed = this.getAttribute('data-btn-text-not-collapsed');\n var target = this.getAttribute('data-target');\n var targetElement = d.querySelector(target);\n var html = this.innerHTML;\n if (this.classList.contains('collapsed')) {\n html = html.replace(btnLabelCollapsed, btnLabelNotCollapsed);\n } else {\n html = html.replace(btnLabelNotCollapsed, btnLabelCollapsed);\n }\n this.innerHTML = html;\n this.classList.toggle('collapsed');\n targetElement.classList.toggle('invisible');\n });\n\n searxng.on('.media-loader', 'click', function () {\n var target = this.getAttribute('data-target');\n var iframe_load = d.querySelector(target + ' > iframe');\n var srctest = iframe_load.getAttribute('src');\n if (srctest === null || srctest === undefined || srctest === false) {\n iframe_load.setAttribute('src', iframe_load.getAttribute('data-src'));\n }\n });\n\n searxng.on('#copy_url', 'click', function () {\n var target = this.parentElement.querySelector('pre');\n navigator.clipboard.writeText(target.innerText);\n this.innerText = this.dataset.copiedText;\n });\n\n // searxng.selectImage (gallery)\n // -----------------------------\n\n // setTimeout() ID, needed to cancel *last* loadImage\n let imgTimeoutID;\n\n // progress spinner, while an image is loading\n const imgLoaderSpinner = d.createElement('div');\n imgLoaderSpinner.classList.add('loader');\n\n // singleton image object, which is used for all loading processes of a\n // detailed image\n const imgLoader = new Image();\n\n const loadImage = (imgSrc, onSuccess) => {\n // if defered image load exists, stop defered task.\n if (imgTimeoutID) clearTimeout(imgTimeoutID);\n\n // defer load of the detail image for 1 sec\n imgTimeoutID = setTimeout(() => {\n imgLoader.src = imgSrc;\n }, 1000);\n\n // set handlers in the on-properties\n imgLoader.onload = () => {\n onSuccess();\n imgLoaderSpinner.remove();\n };\n imgLoader.onerror = () => {\n imgLoaderSpinner.remove();\n };\n };\n\n searxng.selectImage = (resultElement) => {\n\n // add a class that can be evaluated in the CSS and indicates that the\n // detail view is open\n d.getElementById('results').classList.add('image-detail-open');\n\n // add a hash to the browser history so that pressing back doesn't return\n // to the previous page this allows us to dismiss the image details on\n // pressing the back button on mobile devices\n window.location.hash = '#image-viewer';\n\n searxng.scrollPageToSelected();\n\n // if there is none element given by the caller, stop here\n if (!resultElement) return;\n\n // find object in the element, if there is none, stop here.\n const img = resultElement.querySelector('.result-images-source img');\n if (!img) return;\n\n // \n const src = img.getAttribute('data-src');\n\n // already loaded high-res image or no high-res image available\n if (!src) return;\n\n // use the image thumbnail until the image is fully loaded\n const thumbnail = resultElement.querySelector('.image_thumbnail');\n img.src = thumbnail.src;\n\n // show a progress spinner\n const detailElement = resultElement.querySelector('.detail');\n detailElement.appendChild(imgLoaderSpinner);\n\n // load full size image in background\n loadImage(src, () => {\n // after the singelton loadImage has loaded the detail image into the\n // cache, it can be used in the origin as src property.\n img.src = src;\n img.removeAttribute('data-src');\n });\n };\n\n searxng.closeDetail = function () {\n d.getElementById('results').classList.remove('image-detail-open');\n // remove #image-viewer hash from url by navigating back\n if (window.location.hash == '#image-viewer') window.history.back();\n searxng.scrollPageToSelected();\n };\n searxng.on('.result-detail-close', 'click', e => {\n e.preventDefault();\n searxng.closeDetail();\n });\n searxng.on('.result-detail-previous', 'click', e => {\n e.preventDefault();\n searxng.selectPrevious(false);\n });\n searxng.on('.result-detail-next', 'click', e => {\n e.preventDefault();\n searxng.selectNext(false);\n });\n\n // listen for the back button to be pressed and dismiss the image details when called\n window.addEventListener('hashchange', () => {\n if (window.location.hash != '#image-viewer') searxng.closeDetail();\n });\n\n d.querySelectorAll('.swipe-horizontal').forEach(\n obj => {\n obj.addEventListener('swiped-left', function () {\n searxng.selectNext(false);\n });\n obj.addEventListener('swiped-right', function () {\n searxng.selectPrevious(false);\n });\n }\n );\n\n w.addEventListener('scroll', function () {\n var e = d.getElementById('backToTop'),\n scrollTop = document.documentElement.scrollTop || document.body.scrollTop,\n results = d.getElementById('results');\n if (e !== null) {\n if (scrollTop >= 100) {\n results.classList.add('scrolling');\n } else {\n results.classList.remove('scrolling');\n }\n }\n }, true);\n\n });\n\n})(window, document, window.searxng);\n","/* SPDX-License-Identifier: AGPL-3.0-or-later */\n/* exported AutoComplete */\n\n(function (w, d, searxng) {\n 'use strict';\n\n var qinput_id = \"q\", qinput;\n\n const isMobile = window.matchMedia(\"only screen and (max-width: 50em)\").matches;\n\n function submitIfQuery () {\n if (qinput.value.length > 0) {\n var search = document.getElementById('search');\n setTimeout(search.submit.bind(search), 0);\n }\n }\n\n function createClearButton (qinput) {\n var cs = document.getElementById('clear_search');\n var updateClearButton = function () {\n if (qinput.value.length === 0) {\n cs.classList.add(\"empty\");\n } else {\n cs.classList.remove(\"empty\");\n }\n };\n\n // update status, event listener\n updateClearButton();\n cs.addEventListener('click', function (ev) {\n qinput.value = '';\n qinput.focus();\n updateClearButton();\n ev.preventDefault();\n });\n qinput.addEventListener('input', updateClearButton, false);\n }\n\n const fetchResults = async (query) => {\n let request;\n if (searxng.settings.method === 'GET') {\n const reqParams = new URLSearchParams();\n reqParams.append(\"q\", query);\n request = fetch(\"./autocompleter?\" + reqParams.toString());\n } else {\n const formData = new FormData();\n formData.append(\"q\", query);\n request = fetch(\"./autocompleter\", {\n method: 'POST',\n body: formData,\n });\n }\n\n request.then(async function (response) {\n const results = await response.json();\n\n if (!results) return;\n\n const autocomplete = d.querySelector(\".autocomplete\");\n const autocompleteList = d.querySelector(\".autocomplete ul\");\n autocomplete.classList.add(\"open\");\n autocompleteList.innerHTML = \"\";\n\n // show an error message that no result was found\n if (!results[1] || results[1].length == 0) {\n const noItemFoundMessage = document.createElement(\"li\");\n noItemFoundMessage.classList.add('no-item-found');\n noItemFoundMessage.innerHTML = searxng.settings.translations.no_item_found;\n autocompleteList.appendChild(noItemFoundMessage);\n return;\n }\n\n for (let result of results[1]) {\n const li = document.createElement(\"li\");\n li.innerText = result;\n\n searxng.on(li, 'mousedown', () => {\n qinput.value = result;\n const form = d.querySelector(\"#search\");\n form.submit();\n autocomplete.classList.remove('open');\n });\n autocompleteList.appendChild(li);\n }\n });\n };\n\n searxng.ready(function () {\n // focus search input on large screens\n if (!isMobile) document.getElementById(\"q\").focus();\n\n qinput = d.getElementById(qinput_id);\n const autocomplete = d.querySelector(\".autocomplete\");\n const autocompleteList = d.querySelector(\".autocomplete ul\");\n\n if (qinput !== null) {\n // clear button\n createClearButton(qinput);\n\n // autocompleter\n if (searxng.settings.autocomplete) {\n searxng.on(qinput, 'input', () => {\n const query = qinput.value;\n if (query.length < searxng.settings.autocomplete_min) return;\n\n setTimeout(() => {\n if (query == qinput.value) fetchResults(query);\n }, 300);\n });\n\n searxng.on(qinput, 'keyup', (e) => {\n let currentIndex = -1;\n const listItems = autocompleteList.children;\n for (let i = 0; i < listItems.length; i++) {\n if (listItems[i].classList.contains('active')) {\n currentIndex = i;\n break;\n }\n }\n\n let newCurrentIndex = -1;\n if (e.key === \"ArrowUp\") {\n if (currentIndex >= 0) listItems[currentIndex].classList.remove('active');\n // we need to add listItems.length to the index calculation here because the JavaScript modulos\n // operator doesn't work with negative numbers\n newCurrentIndex = (currentIndex - 1 + listItems.length) % listItems.length;\n } else if (e.key === \"ArrowDown\") {\n if (currentIndex >= 0) listItems[currentIndex].classList.remove('active');\n newCurrentIndex = (currentIndex + 1) % listItems.length;\n } else if (e.key === \"Tab\" || e.key === \"Enter\") {\n autocomplete.classList.remove('open');\n }\n\n if (newCurrentIndex != -1) {\n const selectedItem = listItems[newCurrentIndex];\n selectedItem.classList.add('active');\n\n if (!selectedItem.classList.contains('no-item-found')) qinput.value = selectedItem.innerText;\n }\n });\n }\n }\n\n // Additionally to searching when selecting a new category, we also\n // automatically start a new search request when the user changes a search\n // filter (safesearch, time range or language) (this requires JavaScript\n // though)\n if (\n qinput !== null\n && searxng.settings.search_on_category_select\n // If .search_filters is undefined (invisible) we are on the homepage and\n // hence don't have to set any listeners\n && d.querySelector(\".search_filters\") != null\n ) {\n searxng.on(d.getElementById('safesearch'), 'change', submitIfQuery);\n searxng.on(d.getElementById('time_range'), 'change', submitIfQuery);\n searxng.on(d.getElementById('language'), 'change', submitIfQuery);\n }\n\n const categoryButtons = d.querySelectorAll(\"button.category_button\");\n for (let button of categoryButtons) {\n searxng.on(button, 'click', (event) => {\n if (event.shiftKey) {\n event.preventDefault();\n button.classList.toggle(\"selected\");\n return;\n }\n\n // manually deselect the old selection when a new category is selected\n const selectedCategories = d.querySelectorAll(\"button.category_button.selected\");\n for (let categoryButton of selectedCategories) {\n categoryButton.classList.remove(\"selected\");\n }\n button.classList.add(\"selected\");\n });\n }\n\n // override form submit action to update the actually selected categories\n const form = d.querySelector(\"#search\");\n if (form != null) {\n searxng.on(form, 'submit', (event) => {\n event.preventDefault();\n const categoryValuesInput = d.querySelector(\"#selected-categories\");\n if (categoryValuesInput) {\n let categoryValues = [];\n for (let categoryButton of categoryButtons) {\n if (categoryButton.classList.contains(\"selected\")) {\n categoryValues.push(categoryButton.name.replace(\"category_\", \"\"));\n }\n }\n categoryValuesInput.value = categoryValues.join(\",\");\n }\n form.submit();\n });\n }\n });\n\n})(window, document, window.searxng);\n"],"names":["w","d","ElementPrototype","selector","node","nodes","i","callbackSafe","callback","el","e","exception","searxng","obj","eventType","useCapture","found","method","url","data","resolve","reject","req","ex","src","path","id","s","newNode","referenceNode","getEndpoint","className","onlyImages","newLoadSpinner","loader","replaceChildrenWith","element","children","child","loadNextPage","form","formData","response","nextPageDoc","articleList","paginationElement","articleElement","err","intersectionObserveOptions","observedSelector","observer","entries","paginationEntry","isElementInDetail","getResultElement","isImageResult","resultElement","highlightResult","baseKeyBinding","removeFocus","copyURLToClipboard","toggleHelp","searchInputFocus","GoToNextPage","openResult","GoToPreviousPage","reloadPage","keyBindingLayouts","scrollPage","scrollPageTo","keyBindings","tagName","which","noScroll","keepFocus","current","effectiveWhich","next","results","top","bot","etop","ebot","link","scrollPageToSelected","pageButtonClick","css_selector","button","sel","wtop","wheight","offset","wbot","amount","position","nav","q","len","newTab","initHelpContent","divElement","categories","k","key","sorted","a","b","html","cat","lastCategory","first","cj","helpPanel","body","currentUrlElement","event","leaflet_target","map_lon","map_lat","map_zoom","map_boundingbox","map_geojson","map_bounds","southWest","northEast","map","osmMapnikUrl","osmMapnikAttrib","osmMapnik","osmWikimediaUrl","osmWikimediaAttrib","osmWikimedia","baseLayers","engine_descriptions","load_engine_descriptions","content","engine_name","description","elements","source","enableAllEngines","disableAllEngines","engineToggles","toggleEngines","enable","copyHashButton","window","document","params","evt","handleTouchStart","handleTouchMove","handleTouchEnd","xDown","yDown","xDiff","yDiff","timeDown","startEl","touchCount","swipeThreshold","getNearestAttribute","swipeUnit","swipeTimeout","timeDiff","changedTouches","eventData","xUp","yUp","attributeName","defaultValue","attributeValue","img","btnLabelCollapsed","btnLabelNotCollapsed","target","targetElement","iframe_load","srctest","imgTimeoutID","imgLoaderSpinner","imgLoader","loadImage","imgSrc","onSuccess","thumbnail","scrollTop","qinput_id","qinput","isMobile","submitIfQuery","search","createClearButton","cs","updateClearButton","ev","fetchResults","query","request","reqParams","autocomplete","autocompleteList","noItemFoundMessage","result","li","currentIndex","listItems","newCurrentIndex","selectedItem","categoryButtons","selectedCategories","categoryButton","categoryValuesInput","categoryValues"],"mappings":"AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,GAMA,OAAO,QAAW,SAAUA,EAAGC,EAAG,CAQ5BD,EAAE,SACH,SAAUE,EAAkB,CAC3BA,EAAiB,QAAUA,EAAiB,SAC5CA,EAAiB,iBACjBA,EAAiB,uBACjBA,EAAiB,mBACjB,SAAUC,EAAU,CAElB,QADIC,EAAO,KAAMC,GAASD,EAAK,YAAcA,EAAK,UAAU,iBAAiBD,CAAQ,EAAGG,EAAI,GACrFD,EAAM,EAAEC,CAAC,GAAKD,EAAMC,CAAC,GAAKF,GAAK,CACtC,MAAO,CAAC,CAACC,EAAMC,CAAC,CACjB,CACP,EAAO,QAAQ,SAAS,EAGtB,SAASC,EAAcC,EAAUC,EAAIC,EAAG,CACtC,GAAI,CACFF,EAAS,KAAKC,EAAIC,CAAC,CACpB,OAAQC,EAAW,CAClB,QAAQ,IAAIA,CAAS,CAC3B,CACA,CAEE,IAAIC,EAAU,OAAO,SAAW,CAAE,EAElCA,EAAQ,GAAK,SAAUC,EAAKC,EAAWN,EAAUO,EAAY,CAC3DA,EAAaA,GAAc,GACvB,OAAOF,GAAQ,SAEjBA,EAAI,iBAAiBC,EAAWN,EAAUO,CAAU,EAGpDd,EAAE,iBAAiBa,EAAW,SAAUJ,EAAG,CAEzC,QADID,EAAKC,EAAE,QAAUA,EAAE,WAAYM,EAAQ,GACpCP,GAAMA,EAAG,SAAWA,IAAOR,GAAK,EAAEe,EAAQP,EAAG,QAAQI,CAAG,IAAIJ,EAAKA,EAAG,cACvEO,GAAOT,EAAaC,EAAUC,EAAIC,CAAC,CACxC,EAAEK,CAAU,CAEhB,EAEDH,EAAQ,MAAQ,SAAUJ,EAAU,CAC9B,SAAS,YAAc,UACzBA,EAAS,KAAKR,CAAC,EAEfA,EAAE,iBAAiB,mBAAoBQ,EAAS,KAAKR,CAAC,CAAC,CAE1D,EAEDY,EAAQ,KAAO,SAAUK,EAAQC,EAAKC,EAAO,KAAM,CACjD,OAAO,IAAI,QAAQ,SAAUC,EAASC,EAAQ,CAC5C,GAAI,CACF,IAAIC,EAAM,IAAI,eACdA,EAAI,KAAKL,EAAQC,EAAK,EAAI,EAC1BI,EAAI,QAAU,IAGdA,EAAI,OAAS,UAAY,CACnBA,EAAI,QAAU,IAChBF,EAAQE,EAAI,SAAUA,EAAI,YAAY,EAEtCD,EAAO,MAAMC,EAAI,UAAU,CAAC,CAE/B,EAGDA,EAAI,QAAU,UAAY,CACxBD,EAAO,MAAM,eAAe,CAAC,CAC9B,EAEDC,EAAI,QAAU,UAAY,CACxBD,EAAO,MAAM,wBAAwB,CAAC,CACvC,EAEDC,EAAI,UAAY,UAAY,CAC1BD,EAAO,MAAM,SAAS,CAAC,CACjC,EAGYF,EACFG,EAAI,KAAKH,CAAI,EAEbG,EAAI,KAAM,CAEb,OAAQC,EAAI,CACXF,EAAOE,CAAE,CACjB,CACA,CAAK,CACF,EAEDX,EAAQ,UAAY,SAAUY,EAAK,CACjC,IAAIC,EAAOb,EAAQ,SAAS,kBAAoB,IAAMY,EACpDE,EAAK,SAAWF,EAAI,QAAQ,IAAK,GAAG,EACpCG,EAAI1B,EAAE,eAAeyB,CAAE,EACrBC,IAAM,OACRA,EAAI1B,EAAE,cAAc,MAAM,EAC1B0B,EAAE,aAAa,KAAMD,CAAE,EACvBC,EAAE,aAAa,MAAO,YAAY,EAClCA,EAAE,aAAa,OAAQ,UAAU,EACjCA,EAAE,aAAa,OAAQF,CAAI,EAC3BxB,EAAE,KAAK,YAAY0B,CAAC,EAEvB,EAEDf,EAAQ,WAAa,SAAUY,EAAKhB,EAAU,CAC5C,IAAIiB,EAAOb,EAAQ,SAAS,kBAAoB,IAAMY,EACpDE,EAAK,UAAYF,EAAI,QAAQ,IAAK,GAAG,EACrCG,EAAI1B,EAAE,eAAeyB,CAAE,EACzB,GAAIC,IAAM,KACRA,EAAI1B,EAAE,cAAc,QAAQ,EAC5B0B,EAAE,aAAa,KAAMD,CAAE,EACvBC,EAAE,aAAa,MAAOF,CAAI,EAC1BE,EAAE,OAASnB,EACXmB,EAAE,QAAU,UAAY,CACtBA,EAAE,aAAa,QAAS,GAAG,CAC5B,EACD1B,EAAE,KAAK,YAAY0B,CAAC,UACVA,EAAE,aAAa,OAAO,EAOhC,QAAQ,IAAI,mCAAqCF,EAAO,eAAe,MANvE,IAAI,CACFjB,EAAS,MAAMmB,EAAG,EAAE,CACrB,OAAQhB,EAAW,CAClB,QAAQ,IAAIA,CAAS,CAC7B,CAIG,EAEDC,EAAQ,aAAe,SAAUgB,EAASC,EAAe,CACvDA,EAAc,WAAW,aAAaD,EAASC,CAAa,CAC7D,EAEDjB,EAAQ,YAAc,SAAUgB,EAASC,EAAe,CACtDA,EAAc,WAAW,YAAYD,EAASC,EAAc,WAAW,CACxE,EAEDjB,EAAQ,GAAG,SAAU,QAAS,UAAY,CACxC,KAAK,WAAW,UAAU,IAAI,WAAW,CAC7C,CAAG,EAED,SAASkB,GAAe,CACtB,QAASC,KAAa9B,EAAE,qBAAqB,MAAM,EAAE,CAAC,EAAE,UAAU,SAChE,GAAI8B,EAAU,SAAS,WAAW,EAChC,OAAOA,EAAU,MAAM,GAAG,EAAE,CAAC,EAGjC,MAAO,EACX,CAEE,OAAAnB,EAAQ,SAAWkB,EAAa,EAEzBlB,CACT,EAAG,OAAQ,QAAQ,EChKnB,QAAQ,MAAM,UAAY,CAQxB,GALA,QAAQ,0BACN,yBAA0B,QAC1B,8BAA+B,QAC/B,sBAAuB,OAAO,0BAA0B,UAEtD,QAAQ,WAAa,UACvB,OAGF,GAAI,CAAC,QAAQ,0BAA2B,CACtC,QAAQ,IAAI,oCAAoC,EAChD,MACJ,CAEE,IAAIX,EAAI,SACR,IAAI+B,EAAa/B,EAAE,eAAe,SAAS,EAAE,UAAU,SAAS,sBAAsB,EAEtF,SAASgC,GAAkB,CACzB,IAAIC,EAASjC,EAAE,cAAc,KAAK,EAClC,OAAAiC,EAAO,UAAU,IAAI,QAAQ,EACtBA,CACX,CAEE,SAASC,EAAqBC,EAASC,EAAU,CAC/CD,EAAQ,YAAc,GACtBC,EAAS,QAAQC,GAASF,EAAQ,YAAYE,CAAK,CAAC,CACxD,CAEE,SAASC,EAAc/B,EAAU,CAC/B,IAAIgC,EAAOvC,EAAE,cAAc,4BAA4B,EACvD,GAAKuC,EAGL,CAAAL,EAAoBlC,EAAE,cAAc,aAAa,EAAG,CAAEgC,EAAc,EAAI,EACxE,IAAIQ,EAAW,IAAI,SAASD,CAAI,EAChC,QAAQ,KAAK,OAAQvC,EAAE,cAAc,SAAS,EAAE,aAAa,QAAQ,EAAGwC,CAAQ,EAAE,KAChF,SAAUC,EAAU,CAClB,IAAIC,EAAc,IAAI,UAAS,EAAG,gBAAgBD,EAAU,WAAW,EACnEE,EAAcD,EAAY,iBAAiB,eAAe,EAC1DE,EAAoBF,EAAY,cAAc,aAAa,EAC/D1C,EAAE,cAAc,aAAa,EAAE,OAAQ,EACnC2C,EAAY,OAAS,GAAK,CAACZ,GAE7B/B,EAAE,cAAc,OAAO,EAAE,YAAYA,EAAE,cAAc,IAAI,CAAC,EAE5D2C,EAAY,QAAQE,GAAkB,CACpC7C,EAAE,cAAc,OAAO,EAAE,YAAY6C,CAAc,CAC7D,CAAS,EACGD,IACF5C,EAAE,cAAc,UAAU,EAAE,YAAY4C,CAAiB,EACzDrC,EAAU,EAEpB,CACA,EAAM,MACA,SAAUuC,EAAK,CACb,QAAQ,IAAIA,CAAG,EACf,IAAIrC,EAAIT,EAAE,cAAc,KAAK,EAC7BS,EAAE,YAAc,QAAQ,SAAS,aAAa,wBAC9CA,EAAE,UAAU,IAAI,cAAc,EAC9BA,EAAE,aAAa,OAAQ,OAAO,EAC9ByB,EAAoBlC,EAAE,cAAc,aAAa,EAAG,CAAES,CAAC,CAAE,CACjE,CACA,EACA,CAEE,GAAI,QAAQ,SAAS,iBAAmB,QAAQ,0BAA2B,CACzE,MAAMsC,EAA6B,CACjC,WAAY,OACb,EACKC,EAAmB,4BACnBC,EAAW,IAAI,qBAAqBC,GAAW,CACnD,MAAMC,EAAkBD,EAAQ,CAAC,EAC7BC,EAAgB,iBAClBF,EAAS,UAAUE,EAAgB,MAAM,EACzCb,EAAa,IAAMW,EAAS,QAAQjD,EAAE,cAAcgD,CAAgB,EAAGD,CAA0B,CAAC,EAE1G,CAAK,EACDE,EAAS,QAAQjD,EAAE,cAAcgD,CAAgB,EAAGD,CAA0B,CAClF,CAEA,CAAC,ECpFD,QAAQ,MAAM,UAAY,CAExB,SAASK,EAAmB5C,EAAI,CAC9B,KAAOA,IAAO,QAAW,CACvB,GAAIA,EAAG,UAAU,SAAS,QAAQ,EAChC,MAAO,GAET,GAAIA,EAAG,UAAU,SAAS,QAAQ,EAGhC,MAAO,GAETA,EAAKA,EAAG,UACd,CACI,MAAO,EACX,CAEE,SAAS6C,EAAkB7C,EAAI,CAC7B,KAAOA,IAAO,QAAW,CACvB,GAAIA,EAAG,UAAU,SAAS,QAAQ,EAChC,OAAOA,EAETA,EAAKA,EAAG,UACd,CAEA,CAEE,SAAS8C,EAAeC,EAAe,CACrC,OAAOA,GAAiBA,EAAc,UAAU,SAAS,eAAe,CAC5E,CAEE,QAAQ,GAAG,UAAW,QAAS,SAAU,EAAG,CAC1C,GAAI,CAACH,EAAkB,EAAE,MAAM,EAAG,CAChCI,EAAgB,IAAI,EAAE,GAAM,EAAI,EAChC,IAAID,EAAgBF,EAAiB,EAAE,MAAM,EACzCC,EAAcC,CAAa,IAC7B,EAAE,eAAgB,EAClB,QAAQ,YAAYA,CAAa,EAEzC,CACA,CAAG,EAED,QAAQ,GAAG,YAAa,QAAS,SAAU,EAAG,CAC5C,GAAI,CAACH,EAAkB,EAAE,MAAM,EAAG,CAChC,IAAIG,EAAgBF,EAAiB,EAAE,MAAM,EACzCE,GAAiBA,EAAc,aAAa,mBAAmB,IAAM,MACvEC,EAAgBD,CAAa,EAAE,EAAI,EAEjCD,EAAcC,CAAa,GAC7B,QAAQ,YAAYA,CAAa,CAEzC,CACG,EAAE,EAAI,EAGP,IAAIE,EAAiB,CACnB,OAAU,CACR,IAAK,MACL,IAAKC,EACL,IAAK,sCACL,IAAK,SACN,EACD,EAAK,CACH,IAAK,IACL,IAAKC,EACL,IAAK,mDACL,IAAK,SACN,EACD,EAAK,CACH,IAAK,IACL,IAAKC,EACL,IAAK,qBACL,IAAK,OACN,EACD,EAAK,CACH,IAAK,IACL,IAAKC,EACL,IAAK,4BACL,IAAK,SACN,EACD,EAAK,CACH,IAAK,IACL,IAAKC,EAAc,EACnB,IAAK,kBACL,IAAK,SACN,EACD,EAAK,CACH,IAAK,IACL,IAAKC,EAAW,EAAK,EACrB,IAAK,qBACL,IAAK,SACN,EACD,EAAK,CACH,IAAK,IACL,IAAKC,EAAkB,EACvB,IAAK,sBACL,IAAK,SACN,EACD,EAAK,CACH,IAAK,IACL,IAAKC,EACL,IAAK,8BACL,IAAK,SACN,EACD,EAAK,CACH,IAAK,IACL,IAAKF,EAAW,EAAI,EACpB,IAAK,+BACL,IAAK,SACN,CACF,EACGG,EAAoB,CAEtB,QAAW,OAAO,OAChB,CACE,UAAa,CACX,IAAK,IACL,IAAKV,EAAgB,IAAI,EACzB,IAAK,gCACL,IAAK,SACN,EACD,WAAc,CACZ,IAAK,IACL,IAAKA,EAAgB,MAAM,EAC3B,IAAK,4BACL,IAAK,SACN,CACF,EAAEC,CAAc,EAEnB,IAAO,OAAO,OACZ,CACE,EAAK,CACH,IAAK,IACL,IAAKU,EAAW,CAAC,OAAO,WAAW,EACnC,IAAK,qBACL,IAAK,YACN,EACD,EAAK,CACH,IAAK,IACL,IAAKA,EAAW,OAAO,WAAW,EAClC,IAAK,uBACL,IAAK,YACN,EACD,EAAK,CACH,IAAK,IACL,IAAKA,EAAW,CAAC,OAAO,YAAc,CAAC,EACvC,IAAK,wBACL,IAAK,YACN,EACD,EAAK,CACH,IAAK,IACL,IAAKA,EAAW,OAAO,YAAc,CAAC,EACtC,IAAK,0BACL,IAAK,YACN,EACD,EAAK,CACH,IAAK,IACL,IAAKC,EAAa,CAAC,SAAS,KAAK,aAAc,KAAK,EACpD,IAAK,gCACL,IAAK,YACN,EACD,EAAK,CACH,IAAK,IACL,IAAKA,EAAa,SAAS,KAAK,aAAc,QAAQ,EACtD,IAAK,mCACL,IAAK,YACN,EACD,EAAK,CACH,IAAK,IACL,IAAKZ,EAAgB,IAAI,EACzB,IAAK,gCACL,IAAK,SACN,EACD,EAAK,CACH,IAAK,IACL,IAAKA,EAAgB,MAAM,EAC3B,IAAK,4BACL,IAAK,SACN,EACD,EAAK,CACH,IAAK,IACL,IAAKG,EACL,IAAK,mDACL,IAAK,SACN,CACT,EAASF,CAAc,CACvB,EAEMY,EAAcH,EAAkB,QAAQ,SAAS,OAAO,GAAKA,EAAkB,QAEnF,QAAQ,GAAG,SAAU,UAAW,SAAU,EAAG,CAE3C,GACE,OAAO,UAAU,eAAe,KAAKG,EAAa,EAAE,GAAG,GAClD,CAAC,EAAE,SAAW,CAAC,EAAE,QACjB,CAAC,EAAE,UAAY,CAAC,EAAE,QACvB,CACA,IAAIC,EAAU,EAAE,OAAO,QAAQ,YAAa,EACxC,EAAE,MAAQ,SACZD,EAAY,EAAE,GAAG,EAAE,IAAI,CAAC,GAEpB,EAAE,SAAW,SAAS,MAAQC,IAAY,KAAOA,IAAY,YAC/D,EAAE,eAAgB,EAClBD,EAAY,EAAE,GAAG,EAAE,IAAK,EAGlC,CACA,CAAG,EAED,SAASb,EAAiBe,EAAO,CAC/B,OAAO,SAAUC,EAAUC,EAAW,CACpC,IAAIC,EAAU,SAAS,cAAc,4BAA4B,EAC/DC,EAAiBJ,EACnB,GAAIG,IAAY,KAAM,CAGpB,GADAA,EAAU,SAAS,cAAc,SAAS,EACtCA,IAAY,KAEd,QAGEH,IAAU,QAAUA,IAAU,QAChCI,EAAiBD,EAE3B,CAEM,IAAIE,EAAMC,EAAU,SAAS,iBAAiB,SAAS,EAGvD,GAFAA,EAAU,MAAM,KAAKA,CAAO,EAExB,OAAOF,GAAmB,SAC5BC,EAAOD,MAEP,QAAQA,EAAc,CACtB,IAAK,UAIH,QAHIG,EAAM,SAAS,gBAAgB,WAAa,SAAS,KAAK,UAC1DC,EAAMD,EAAM,SAAS,gBAAgB,aAEhCzE,EAAI,EAAGA,EAAIwE,EAAQ,OAAQxE,IAAK,CACvCuE,EAAOC,EAAQxE,CAAC,EAChB,IAAI2E,EAAOJ,EAAK,UACZK,EAAOD,EAAOJ,EAAK,aAEvB,GAAKK,GAAQF,GAASC,EAAOF,EAC3B,KAEd,CACU,MACF,IAAK,OACHF,EAAOC,EAAQA,EAAQ,QAAQH,CAAO,EAAI,CAAC,GAAKA,EAChD,MACF,IAAK,KACHE,EAAOC,EAAQA,EAAQ,QAAQH,CAAO,EAAI,CAAC,GAAKA,EAChD,MACF,IAAK,SACHE,EAAOC,EAAQA,EAAQ,OAAS,CAAC,EACjC,MACF,IAAK,MAEL,QACED,EAAOC,EAAQ,CAAC,CAC1B,CAGM,GAAID,EAAM,CAGR,GAFAF,EAAQ,gBAAgB,mBAAmB,EAC3CE,EAAK,aAAa,oBAAqB,MAAM,EACzC,CAACH,EAAW,CACd,IAAIS,EAAON,EAAK,cAAc,MAAM,GAAKA,EAAK,cAAc,GAAG,EAC3DM,IAAS,MACXA,EAAK,MAAO,CAExB,CACaV,GACHW,EAAsB,CAEhC,CACK,CACL,CAEE,SAASlB,GAAc,CACrB,SAAS,SAAS,OAAO,EAAI,CACjC,CAEE,SAASP,EAAa,EAAG,CACvB,MAAMY,EAAU,EAAE,OAAO,QAAQ,YAAa,EAC1C,SAAS,gBAAkBA,IAAY,SAAWA,IAAY,UAAYA,IAAY,YACxF,SAAS,cAAc,KAAM,EAE7B,QAAQ,YAAa,CAE3B,CAEE,SAASc,EAAiBC,EAAc,CACtC,OAAO,UAAY,CACjB,IAAIC,EAAS,SAAS,cAAcD,CAAY,EAC5CC,GACFA,EAAO,MAAO,CAEjB,CACL,CAEE,SAASxB,GAAgB,CACvB,OAAOsB,EAAgB,iDAAiD,CAC5E,CAEE,SAASpB,GAAoB,CAC3B,OAAOoB,EAAgB,qDAAqD,CAChF,CAEE,SAASD,GAAwB,CAC/B,IAAII,EAAM,SAAS,cAAc,4BAA4B,EAC7D,GAAIA,IAAQ,KAGZ,KAAIC,EAAO,SAAS,gBAAgB,WAAa,SAAS,KAAK,UAC7DC,EAAU,SAAS,gBAAgB,aACnCT,EAAOO,EAAI,UACXN,EAAOD,EAAOO,EAAI,aAClBG,EAAS,IAEX,GAAKH,EAAI,yBAA2B,MAAUN,EAAOQ,EAAU,CAG7D,OAAO,OAAO,OAAO,QAAS,CAAC,EAC/B,MACN,CACI,GAAID,EAAQR,EAAOU,EACjB,OAAO,OAAO,OAAO,QAASV,EAAOU,CAAM,MACtC,CACL,IAAIC,EAAOH,EAAOC,EACdE,EAAQV,EAAOS,GACjB,OAAO,OAAO,OAAO,QAAST,EAAOQ,EAAUC,CAAM,CAE7D,EACA,CAEE,SAASvB,EAAYyB,EAAQ,CAC3B,OAAO,UAAY,CACjB,OAAO,SAAS,EAAGA,CAAM,EACzBpC,EAAgB,SAAS,EAAG,CAC7B,CACL,CAEE,SAASY,EAAcyB,EAAUC,EAAK,CACpC,OAAO,UAAY,CACjB,OAAO,SAAS,EAAGD,CAAQ,EAC3BrC,EAAgBsC,CAAG,EAAG,CACvB,CACL,CAEE,SAASjC,GAAoB,CAC3B,OAAO,SAAS,EAAG,CAAC,EACpB,IAAIkC,EAAI,SAAS,cAAc,IAAI,EAEnC,GADAA,EAAE,MAAO,EACLA,EAAE,kBAAmB,CACvB,IAAIC,EAAMD,EAAE,MAAM,OAClBA,EAAE,kBAAkBC,EAAKA,CAAG,CAClC,CACA,CAEE,SAASjC,EAAYkC,EAAQ,CAC3B,OAAO,UAAY,CACjB,IAAIf,EAAO,SAAS,cAAc,iCAAiC,EAInE,GAHIA,IAAS,OACXA,EAAO,SAAS,cAAc,gCAAgC,GAE5DA,IAAS,KAAM,CACjB,IAAIjE,EAAMiE,EAAK,aAAa,MAAM,EAC9Be,EACF,OAAO,KAAKhF,CAAG,EAEf,OAAO,SAAS,KAAOA,CAEjC,CACK,CACL,CAEE,SAASiF,EAAiBC,EAAY,CACpC,IAAIC,EAAa,CAAE,EAEnB,QAASC,KAAKhC,EAAa,CACzB,IAAIiC,EAAMjC,EAAYgC,CAAC,EACvBD,EAAWE,EAAI,GAAG,EAAIF,EAAWE,EAAI,GAAG,GAAK,CAAE,EAC/CF,EAAWE,EAAI,GAAG,EAAE,KAAKA,CAAG,CAClC,CAEI,IAAIC,EAAS,OAAO,KAAKH,CAAU,EAAE,KAAK,SAAUI,EAAGC,EAAG,CACxD,OAAOL,EAAWK,CAAC,EAAE,OAASL,EAAWI,CAAC,EAAE,MAClD,CAAK,EAED,GAAID,EAAO,SAAW,EAItB,KAAIG,EAAO,mEACXA,GAAQ,gDACRA,GAAQ,UAER,QAASrG,EAAI,EAAGA,EAAIkG,EAAO,OAAQlG,IAAK,CACtC,IAAIsG,EAAMP,EAAWG,EAAOlG,CAAC,CAAC,EAE1BuG,EAAevG,IAAOkG,EAAO,OAAS,EACtCM,EAAQxG,EAAI,IAAM,EAElBwG,IACFH,GAAQ,QAEVA,GAAQ,OAERA,GAAQ,OAASC,EAAI,CAAC,EAAE,IAAM,QAC9BD,GAAQ,6BAER,QAASI,KAAMH,EACbD,GAAQ,YAAcC,EAAIG,CAAE,EAAE,IAAM,UAAYH,EAAIG,CAAE,EAAE,IAAM,QAGhEJ,GAAQ,QACRA,GAAQ,SAEJ,CAACG,GAASD,KACZF,GAAQ,QAEhB,CAEIA,GAAQ,WAERP,EAAW,UAAYO,EAC3B,CAEE,SAAS9C,GAAc,CACrB,IAAImD,EAAY,SAAS,cAAc,mBAAmB,EAC1D,GAA+BA,GAAc,KAAM,CAEjDA,EAAY,SAAS,cAAc,KAAK,EACxCA,EAAU,GAAK,mBACfA,EAAU,UAAY,eACtBb,EAAgBa,CAAS,EACzB,IAAIC,EAAO,SAAS,qBAAqB,MAAM,EAAE,CAAC,EAClDA,EAAK,YAAYD,CAAS,CAChC,KAAW,CAELA,EAAU,UAAU,OAAO,WAAW,EACtC,MACN,CACA,CAEE,SAASpD,GAAsB,CAC7B,IAAIsD,EAAoB,SAAS,cAAc,iCAAiC,EAChF,GAAIA,IAAsB,KAAM,OAEhC,MAAMhG,EAAMgG,EAAkB,aAAa,MAAM,EACjD,UAAU,UAAU,UAAUhG,CAAG,CACrC,CAEE,QAAQ,qBAAuBkE,EAC/B,QAAQ,WAAa3B,EAAgB,MAAM,EAC3C,QAAQ,eAAiBA,EAAgB,IAAI,CAC/C,CAAC,GC1cA,SAAUzD,EAAGC,EAAGW,EAAS,CAGxBA,EAAQ,MAAM,UAAY,CACxBA,EAAQ,GAAG,oBAAqB,QAAS,SAAUuG,EAAO,CAExD,KAAK,UAAU,OAAO,kBAAkB,EAGxC,IAAIC,EAAiB,KAAK,QAAQ,cAC9BC,EAAU,WAAW,KAAK,QAAQ,MAAM,EACxCC,EAAU,WAAW,KAAK,QAAQ,MAAM,EACxCC,EAAW,WAAW,KAAK,QAAQ,OAAO,EAC1CC,EAAkB,KAAK,MAAM,KAAK,QAAQ,cAAc,EACxDC,EAAc,KAAK,MAAM,KAAK,QAAQ,UAAU,EAEpD7G,EAAQ,UAAU,iBAAiB,EACnCA,EAAQ,WAAW,gBAAiB,UAAY,CAC9C,IAAI8G,EAAa,KACjB,GAAIF,EAAiB,CACnB,IAAIG,EAAY,EAAE,OAAOH,EAAgB,CAAC,EAAGA,EAAgB,CAAC,CAAC,EAC3DI,EAAY,EAAE,OAAOJ,EAAgB,CAAC,EAAGA,EAAgB,CAAC,CAAC,EAC/DE,EAAa,EAAE,aAAaC,EAAWC,CAAS,CAC1D,CAGQ,IAAIC,EAAM,EAAE,IAAIT,CAAc,EAE1BU,EAAe,qDACfC,EAAkB,gFAClBC,EAAY,IAAI,EAAE,UAAUF,EAAc,CAAC,QAAS,EAAG,QAAS,GAAI,YAAaC,CAAe,CAAC,EACjGE,EAAkB,sDAClBC,EAAqB,kGACrBC,EAAe,IAAI,EAAE,UAAUF,EAAiB,CAAC,QAAS,EAAG,QAAS,GAAI,YAAaC,CAAkB,CAAC,EAE1GR,EAGF,WAAW,UAAY,CACrBG,EAAI,UAAUH,EAAY,CACxB,QAAS,EACvB,CAAa,CACF,EAAE,CAAC,EACKL,GAAWC,IAChBC,EACFM,EAAI,QAAQ,IAAI,EAAE,OAAOP,EAASD,CAAO,EAAGE,CAAQ,EAEpDM,EAAI,QAAQ,IAAI,EAAE,OAAOP,EAASD,CAAO,EAAG,CAAC,GAIjDQ,EAAI,SAASG,CAAS,EAEtB,IAAII,EAAa,CACf,aAAcJ,EACd,gBAAiBG,CAClB,EAED,EAAE,QAAQ,OAAOC,CAAU,EAAE,MAAMP,CAAG,EAElCJ,GACF,EAAE,QAAQA,CAAW,EAAE,MAAMI,CAAG,CAI1C,CAAO,EAGDV,EAAM,eAAgB,CAC5B,CAAK,CACL,CAAG,CACH,GAAG,OAAQ,SAAU,OAAO,OAAO,GCxElC,SAAUnH,EAAGC,EAAGW,EAAS,CAGpBA,EAAQ,WAAa,eAIzBA,EAAQ,MAAM,UAAY,CACxB,IAAIyH,EAAsB,KAC1B,SAASC,GAA4B,CAC/BD,GAAuB,MACzBzH,EAAQ,KAAK,MAAO,0BAA0B,EAAE,KAAK,SAAU2H,EAAS,CACtEF,EAAsB,KAAK,MAAME,CAAO,EACxC,SAAW,CAACC,EAAaC,CAAW,IAAK,OAAO,QAAQJ,CAAmB,EAAG,CAC5E,IAAIK,EAAWzI,EAAE,iBAAiB,sBAAwBuI,EAAc,wBAAwB,EAChG,UAAWpG,KAAWsG,EAAU,CAC9B,IAAIC,EAAS,QAAU/H,EAAQ,SAAS,aAAa,OAAS,UAAY6H,EAAY,CAAC,EAAI,QAC3FrG,EAAQ,UAAYqG,EAAY,CAAC,EAAIE,CACnD,CACA,CACA,CAAS,CAET,CAEI,UAAWlI,KAAMR,EAAE,iBAAiB,oBAAoB,EACtDW,EAAQ,GAAGH,EAAI,aAAc6H,CAAwB,EAGvD,MAAMM,EAAmB3I,EAAE,iBAAiB,qBAAqB,EAC3D4I,EAAoB5I,EAAE,iBAAiB,sBAAsB,EAC7D6I,EAAgB7I,EAAE,iBAAiB,mDAAmD,EACtF8I,EAAiBC,GAAW,CAChC,UAAWvI,KAAMqI,EAEXrI,EAAG,eAAiB,OAAMA,EAAG,QAAU,CAACuI,EAE/C,EACD,UAAWvI,KAAMmI,EACfhI,EAAQ,GAAGH,EAAI,QAAS,IAAMsI,EAAc,EAAI,CAAC,EAEnD,UAAWtI,KAAMoI,EACfjI,EAAQ,GAAGH,EAAI,QAAS,IAAMsI,EAAc,EAAK,CAAC,EAGpD,MAAME,EAAiBhJ,EAAE,cAAc,YAAY,EACnDW,EAAQ,GAAGqI,EAAgB,QAAUvI,GAAM,CACzCA,EAAE,eAAgB,EAClB,UAAU,UAAU,UAAUuI,EAAe,QAAQ,IAAI,EACzDA,EAAe,UAAYA,EAAe,QAAQ,UACxD,CAAK,CACL,CAAG,CACH,GAAG,OAAQ,SAAU,OAAO,OAAO,ECpDnC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAQC,SAAUC,EAAQC,EAAU,CAKrB,OAAOD,EAAO,aAAgB,aAE9BA,EAAO,YAAc,SAAU/B,EAAOiC,EAAQ,CAE1CA,EAASA,GAAU,CAAE,QAAS,GAAO,WAAY,GAAO,OAAQ,MAAW,EAE3E,IAAIC,EAAMF,EAAS,YAAY,aAAa,EAC5C,OAAAE,EAAI,gBAAgBlC,EAAOiC,EAAO,QAASA,EAAO,WAAYA,EAAO,MAAM,EACpEC,CACV,EAEDH,EAAO,YAAY,UAAYA,EAAO,MAAM,WAGhDC,EAAS,iBAAiB,aAAcG,EAAkB,EAAK,EAC/DH,EAAS,iBAAiB,YAAaI,EAAiB,EAAK,EAC7DJ,EAAS,iBAAiB,WAAYK,EAAgB,EAAK,EAE3D,IAAIC,EAAQ,KACRC,EAAQ,KACRC,EAAQ,KACRC,EAAQ,KACRC,EAAW,KACXC,EAAU,KACVC,EAAa,EAOjB,SAASP,EAAe9I,EAAG,CAGvB,GAAIoJ,IAAYpJ,EAAE,OAElB,KAAIsJ,EAAiB,SAASC,EAAoBH,EAAS,uBAAwB,IAAI,EAAG,EAAE,EACxFI,EAAYD,EAAoBH,EAAS,kBAAmB,IAAI,EAChEK,EAAe,SAASF,EAAoBH,EAAS,qBAAsB,KAAK,EAAG,EAAE,EACrFM,EAAW,KAAK,IAAG,EAAKP,EACxB/I,EAAY,GACZuJ,EAAiB3J,EAAE,gBAAkBA,EAAE,SAAW,CAAE,EA4BxD,GA1BIwJ,IAAc,OACdF,EAAiB,KAAK,MAAOA,EAAiB,IAAOb,EAAS,gBAAgB,YAAY,GAE1Fe,IAAc,OACdF,EAAiB,KAAK,MAAOA,EAAiB,IAAOb,EAAS,gBAAgB,WAAW,GAGzF,KAAK,IAAIQ,CAAK,EAAI,KAAK,IAAIC,CAAK,EAC5B,KAAK,IAAID,CAAK,EAAIK,GAAkBI,EAAWD,IAC3CR,EAAQ,EACR7I,EAAY,cAGZA,EAAY,gBAIf,KAAK,IAAI8I,CAAK,EAAII,GAAkBI,EAAWD,IAChDP,EAAQ,EACR9I,EAAY,YAGZA,EAAY,eAIhBA,IAAc,GAAI,CAElB,IAAIwJ,EAAY,CACZ,IAAKxJ,EAAU,QAAQ,UAAW,EAAE,EACpC,WAAYuJ,EAAe,CAAC,GAAK,CAAE,GAAE,WAAa,SAClD,QAASN,EACT,OAAQ,SAASN,EAAO,EAAE,EAC1B,KAAM,UAAUY,EAAe,CAAC,GAAK,IAAI,SAAW,GAAI,EAAE,EAC1D,OAAQ,SAASX,EAAO,EAAE,EAC1B,KAAM,UAAUW,EAAe,CAAC,GAAK,IAAI,SAAW,GAAI,EAAE,CAC7D,EAGDP,EAAQ,cAAc,IAAI,YAAY,SAAU,CAAE,QAAS,GAAM,WAAY,GAAM,OAAQQ,CAAW,CAAA,CAAC,EAGvGR,EAAQ,cAAc,IAAI,YAAYhJ,EAAW,CAAE,QAAS,GAAM,WAAY,GAAM,OAAQwJ,CAAW,CAAA,CAAC,CACpH,CAGQb,EAAQ,KACRC,EAAQ,KACRG,EAAW,KACnB,CAMI,SAASP,EAAiB5I,EAAG,CAGrBA,EAAE,OAAO,aAAa,mBAAmB,IAAM,SAEnDoJ,EAAUpJ,EAAE,OAEZmJ,EAAW,KAAK,IAAK,EACrBJ,EAAQ/I,EAAE,QAAQ,CAAC,EAAE,QACrBgJ,EAAQhJ,EAAE,QAAQ,CAAC,EAAE,QACrBiJ,EAAQ,EACRC,EAAQ,EACRG,EAAarJ,EAAE,QAAQ,OAC/B,CAOI,SAAS6I,EAAgB7I,EAAG,CAExB,GAAI,GAAC+I,GAAS,CAACC,GAEf,KAAIa,EAAM7J,EAAE,QAAQ,CAAC,EAAE,QACnB8J,EAAM9J,EAAE,QAAQ,CAAC,EAAE,QAEvBiJ,EAAQF,EAAQc,EAChBX,EAAQF,EAAQc,EACxB,CASI,SAASP,EAAoBxJ,EAAIgK,EAAeC,EAAc,CAG1D,KAAOjK,GAAMA,IAAO0I,EAAS,iBAAiB,CAE1C,IAAIwB,EAAiBlK,EAAG,aAAagK,CAAa,EAElD,GAAIE,EACA,OAAOA,EAGXlK,EAAKA,EAAG,UACpB,CAEQ,OAAOiK,CACf,CAEA,GAAE,OAAQ,QAAQ,GClKjB,SAAU1K,EAAGC,EAAGW,EAAS,CAGpBA,EAAQ,WAAa,WAIzBA,EAAQ,MAAM,UAAY,CACxBX,EAAE,iBAAiB,WAAW,EAAE,QAC9B2K,GACEA,EAAI,iBACF,QAAS,IAAM,CAEbA,EAAI,IAAM,OAAO,QAAQ,SAAS,kBAAoB,yBACvD,EACD,CAAC,KAAM,EAAI,CACrB,CAAS,EAED3K,EAAE,cAAc,6BAA6B,IAC/CA,EAAE,cAAc,6BAA6B,EAAE,MAAM,QAAU,SAGjEW,EAAQ,GAAG,gBAAiB,QAAS,UAAY,CAC/C,IAAIiK,EAAoB,KAAK,aAAa,yBAAyB,EAC/DC,EAAuB,KAAK,aAAa,6BAA6B,EACtEC,EAAS,KAAK,aAAa,aAAa,EACxCC,EAAgB/K,EAAE,cAAc8K,CAAM,EACtCpE,EAAO,KAAK,UACZ,KAAK,UAAU,SAAS,WAAW,EACrCA,EAAOA,EAAK,QAAQkE,EAAmBC,CAAoB,EAE3DnE,EAAOA,EAAK,QAAQmE,EAAsBD,CAAiB,EAE7D,KAAK,UAAYlE,EACjB,KAAK,UAAU,OAAO,WAAW,EACjCqE,EAAc,UAAU,OAAO,WAAW,CAChD,CAAK,EAEDpK,EAAQ,GAAG,gBAAiB,QAAS,UAAY,CAC/C,IAAImK,EAAS,KAAK,aAAa,aAAa,EACxCE,EAAchL,EAAE,cAAc8K,EAAS,WAAW,EAClDG,EAAUD,EAAY,aAAa,KAAK,GACxCC,GAAY,MAAiCA,IAAY,KAC3DD,EAAY,aAAa,MAAOA,EAAY,aAAa,UAAU,CAAC,CAE5E,CAAK,EAEDrK,EAAQ,GAAG,YAAa,QAAS,UAAY,CAC3C,IAAImK,EAAS,KAAK,cAAc,cAAc,KAAK,EACnD,UAAU,UAAU,UAAUA,EAAO,SAAS,EAC9C,KAAK,UAAY,KAAK,QAAQ,UACpC,CAAK,EAMD,IAAII,EAGJ,MAAMC,EAAmBnL,EAAE,cAAc,KAAK,EAC9CmL,EAAiB,UAAU,IAAI,QAAQ,EAIvC,MAAMC,EAAY,IAAI,MAEhBC,EAAY,CAACC,EAAQC,IAAc,CAEnCL,GAAc,aAAaA,CAAY,EAG3CA,EAAe,WAAW,IAAM,CAC9BE,EAAU,IAAME,CACjB,EAAE,GAAI,EAGPF,EAAU,OAAS,IAAM,CACvBG,EAAW,EACXJ,EAAiB,OAAQ,CAC1B,EACDC,EAAU,QAAU,IAAM,CACxBD,EAAiB,OAAQ,CAC1B,CACF,EAEDxK,EAAQ,YAAe4C,GAAkB,CAcvC,GAVAvD,EAAE,eAAe,SAAS,EAAE,UAAU,IAAI,mBAAmB,EAK7D,OAAO,SAAS,KAAO,gBAEvBW,EAAQ,qBAAsB,EAG1B,CAAC4C,EAAe,OAGpB,MAAMoH,EAAMpH,EAAc,cAAc,2BAA2B,EACnE,GAAI,CAACoH,EAAK,OAGV,MAAMpJ,EAAMoJ,EAAI,aAAa,UAAU,EAGvC,GAAI,CAACpJ,EAAK,OAGV,MAAMiK,EAAYjI,EAAc,cAAc,kBAAkB,EAChEoH,EAAI,IAAMa,EAAU,IAGEjI,EAAc,cAAc,SAAS,EAC7C,YAAY4H,CAAgB,EAG1CE,EAAU9J,EAAK,IAAM,CAGnBoJ,EAAI,IAAMpJ,EACVoJ,EAAI,gBAAgB,UAAU,CACtC,CAAO,CACF,EAEDhK,EAAQ,YAAc,UAAY,CAChCX,EAAE,eAAe,SAAS,EAAE,UAAU,OAAO,mBAAmB,EAE5D,OAAO,SAAS,MAAQ,iBAAiB,OAAO,QAAQ,KAAM,EAClEW,EAAQ,qBAAsB,CAC/B,EACDA,EAAQ,GAAG,uBAAwB,QAASF,GAAK,CAC/CA,EAAE,eAAgB,EAClBE,EAAQ,YAAa,CAC3B,CAAK,EACDA,EAAQ,GAAG,0BAA2B,QAASF,GAAK,CAClDA,EAAE,eAAgB,EAClBE,EAAQ,eAAe,EAAK,CAClC,CAAK,EACDA,EAAQ,GAAG,sBAAuB,QAASF,GAAK,CAC9CA,EAAE,eAAgB,EAClBE,EAAQ,WAAW,EAAK,CAC9B,CAAK,EAGD,OAAO,iBAAiB,aAAc,IAAM,CACtC,OAAO,SAAS,MAAQ,iBAAiBA,EAAQ,YAAa,CACxE,CAAK,EAEDX,EAAE,iBAAiB,mBAAmB,EAAE,QACtCY,GAAO,CACLA,EAAI,iBAAiB,cAAe,UAAY,CAC9CD,EAAQ,WAAW,EAAK,CAClC,CAAS,EACDC,EAAI,iBAAiB,eAAgB,UAAY,CAC/CD,EAAQ,eAAe,EAAK,CACtC,CAAS,CACT,CACK,EAEDZ,EAAE,iBAAiB,SAAU,UAAY,CACvC,IAAIU,EAAIT,EAAE,eAAe,WAAW,EAClCyL,EAAY,SAAS,gBAAgB,WAAa,SAAS,KAAK,UAChE5G,EAAU7E,EAAE,eAAe,SAAS,EAClCS,IAAM,OACJgL,GAAa,IACf5G,EAAQ,UAAU,IAAI,WAAW,EAEjCA,EAAQ,UAAU,OAAO,WAAW,EAGzC,EAAE,EAAI,CAEX,CAAG,CAEH,GAAG,OAAQ,SAAU,OAAO,OAAO,GCpLlC,SAAU9E,EAAGC,EAAGW,EAAS,CAGxB,IAAI+K,EAAY,IAAKC,EAErB,MAAMC,EAAW,OAAO,WAAW,mCAAmC,EAAE,QAExE,SAASC,GAAiB,CACxB,GAAIF,EAAO,MAAM,OAAU,EAAG,CAC5B,IAAIG,EAAS,SAAS,eAAe,QAAQ,EAC7C,WAAWA,EAAO,OAAO,KAAKA,CAAM,EAAG,CAAC,CAC9C,CACA,CAEE,SAASC,EAAmBJ,EAAQ,CAClC,IAAIK,EAAK,SAAS,eAAe,cAAc,EAC3CC,EAAoB,UAAY,CAC9BN,EAAO,MAAM,SAAW,EAC1BK,EAAG,UAAU,IAAI,OAAO,EAExBA,EAAG,UAAU,OAAO,OAAO,CAE9B,EAGDC,EAAmB,EACnBD,EAAG,iBAAiB,QAAS,SAAUE,EAAI,CACzCP,EAAO,MAAQ,GACfA,EAAO,MAAO,EACdM,EAAmB,EACnBC,EAAG,eAAgB,CACzB,CAAK,EACDP,EAAO,iBAAiB,QAASM,EAAmB,EAAK,CAC7D,CAEE,MAAME,EAAe,MAAOC,GAAU,CACpC,IAAIC,EACJ,GAAI1L,EAAQ,SAAS,SAAW,MAAO,CACrC,MAAM2L,EAAY,IAAI,gBACtBA,EAAU,OAAO,IAAKF,CAAK,EAC3BC,EAAU,MAAM,mBAAqBC,EAAU,SAAQ,CAAE,CAC/D,KAAW,CACL,MAAM9J,EAAW,IAAI,SACrBA,EAAS,OAAO,IAAK4J,CAAK,EAC1BC,EAAU,MAAM,kBAAmB,CACjC,OAAQ,OACR,KAAM7J,CACd,CAAO,CACP,CAEI6J,EAAQ,KAAK,eAAgB5J,EAAU,CACrC,MAAMoC,EAAU,MAAMpC,EAAS,KAAM,EAErC,GAAI,CAACoC,EAAS,OAEd,MAAM0H,EAAevM,EAAE,cAAc,eAAe,EAC9CwM,EAAmBxM,EAAE,cAAc,kBAAkB,EAK3D,GAJAuM,EAAa,UAAU,IAAI,MAAM,EACjCC,EAAiB,UAAY,GAGzB,CAAC3H,EAAQ,CAAC,GAAKA,EAAQ,CAAC,EAAE,QAAU,EAAG,CACzC,MAAM4H,EAAqB,SAAS,cAAc,IAAI,EACtDA,EAAmB,UAAU,IAAI,eAAe,EAChDA,EAAmB,UAAY9L,EAAQ,SAAS,aAAa,cAC7D6L,EAAiB,YAAYC,CAAkB,EAC/C,MACR,CAEM,QAASC,KAAU7H,EAAQ,CAAC,EAAG,CAC7B,MAAM8H,EAAK,SAAS,cAAc,IAAI,EACtCA,EAAG,UAAYD,EAEf/L,EAAQ,GAAGgM,EAAI,YAAa,IAAM,CAChChB,EAAO,MAAQe,EACF1M,EAAE,cAAc,SAAS,EACjC,OAAQ,EACbuM,EAAa,UAAU,OAAO,MAAM,CAC9C,CAAS,EACDC,EAAiB,YAAYG,CAAE,CACvC,CACA,CAAK,CACF,EAEDhM,EAAQ,MAAM,UAAY,CAEnBiL,GAAU,SAAS,eAAe,GAAG,EAAE,MAAO,EAEnDD,EAAS3L,EAAE,eAAe0L,CAAS,EACnC,MAAMa,EAAevM,EAAE,cAAc,eAAe,EAC9CwM,EAAmBxM,EAAE,cAAc,kBAAkB,EAEvD2L,IAAW,OAEbI,EAAkBJ,CAAM,EAGpBhL,EAAQ,SAAS,eACnBA,EAAQ,GAAGgL,EAAQ,QAAS,IAAM,CAChC,MAAMS,EAAQT,EAAO,MACjBS,EAAM,OAASzL,EAAQ,SAAS,kBAEpC,WAAW,IAAM,CACXyL,GAAST,EAAO,OAAOQ,EAAaC,CAAK,CAC9C,EAAE,GAAG,CAChB,CAAS,EAEDzL,EAAQ,GAAGgL,EAAQ,QAAUlL,GAAM,CACjC,IAAImM,EAAe,GACnB,MAAMC,EAAYL,EAAiB,SACnC,QAASnM,EAAI,EAAGA,EAAIwM,EAAU,OAAQxM,IACpC,GAAIwM,EAAUxM,CAAC,EAAE,UAAU,SAAS,QAAQ,EAAG,CAC7CuM,EAAevM,EACf,KACd,CAGU,IAAIyM,EAAkB,GAatB,GAZIrM,EAAE,MAAQ,WACRmM,GAAgB,GAAGC,EAAUD,CAAY,EAAE,UAAU,OAAO,QAAQ,EAGxEE,GAAmBF,EAAe,EAAIC,EAAU,QAAUA,EAAU,QAC3DpM,EAAE,MAAQ,aACfmM,GAAgB,GAAGC,EAAUD,CAAY,EAAE,UAAU,OAAO,QAAQ,EACxEE,GAAmBF,EAAe,GAAKC,EAAU,SACxCpM,EAAE,MAAQ,OAASA,EAAE,MAAQ,UACtC8L,EAAa,UAAU,OAAO,MAAM,EAGlCO,GAAmB,GAAI,CACzB,MAAMC,EAAeF,EAAUC,CAAe,EAC9CC,EAAa,UAAU,IAAI,QAAQ,EAE9BA,EAAa,UAAU,SAAS,eAAe,IAAGpB,EAAO,MAAQoB,EAAa,UAC/F,CACA,CAAS,IASHpB,IAAW,MACNhL,EAAQ,SAAS,2BAGjBX,EAAE,cAAc,iBAAiB,GAAK,OAE3CW,EAAQ,GAAGX,EAAE,eAAe,YAAY,EAAG,SAAU6L,CAAa,EAClElL,EAAQ,GAAGX,EAAE,eAAe,YAAY,EAAG,SAAU6L,CAAa,EAClElL,EAAQ,GAAGX,EAAE,eAAe,UAAU,EAAG,SAAU6L,CAAa,GAGlE,MAAMmB,EAAkBhN,EAAE,iBAAiB,wBAAwB,EACnE,QAASsF,KAAU0H,EACjBrM,EAAQ,GAAG2E,EAAQ,QAAU4B,GAAU,CACrC,GAAIA,EAAM,SAAU,CAClBA,EAAM,eAAgB,EACtB5B,EAAO,UAAU,OAAO,UAAU,EAClC,MACV,CAGQ,MAAM2H,EAAqBjN,EAAE,iBAAiB,iCAAiC,EAC/E,QAASkN,KAAkBD,EACzBC,EAAe,UAAU,OAAO,UAAU,EAE5C5H,EAAO,UAAU,IAAI,UAAU,CACvC,CAAO,EAIH,MAAM/C,EAAOvC,EAAE,cAAc,SAAS,EAClCuC,GAAQ,MACV5B,EAAQ,GAAG4B,EAAM,SAAW2E,GAAU,CACpCA,EAAM,eAAgB,EACtB,MAAMiG,EAAsBnN,EAAE,cAAc,sBAAsB,EAClE,GAAImN,EAAqB,CACvB,IAAIC,EAAiB,CAAE,EACvB,QAASF,KAAkBF,EACrBE,EAAe,UAAU,SAAS,UAAU,GAC9CE,EAAe,KAAKF,EAAe,KAAK,QAAQ,YAAa,EAAE,CAAC,EAGpEC,EAAoB,MAAQC,EAAe,KAAK,GAAG,CAC7D,CACQ7K,EAAK,OAAQ,CACrB,CAAO,CAEP,CAAG,CAEH,GAAG,OAAQ,SAAU,OAAO,OAAO","x_google_ignoreList":[5]} \ No newline at end of file