diff --git a/searx/static/themes/oscar/css/logicodev-dark.css b/searx/static/themes/oscar/css/logicodev-dark.css
index 8d5e16be2..2a344c14f 100644
--- a/searx/static/themes/oscar/css/logicodev-dark.css
+++ b/searx/static/themes/oscar/css/logicodev-dark.css
@@ -382,6 +382,29 @@
.col-stat {
width: 10rem;
}
+@keyframes rotate-forever {
+ 0% {
+ transform: rotate(0deg);
+ }
+ 100% {
+ transform: rotate(360deg);
+ }
+}
+.loading-spinner {
+ animation-duration: 0.75s;
+ animation-iteration-count: infinite;
+ animation-name: rotate-forever;
+ animation-timing-function: linear;
+ height: 30px;
+ width: 30px;
+ border: 8px solid #666;
+ border-right-color: transparent;
+ border-radius: 50% !important;
+ margin: 0 auto;
+}
+html.infinite_scroll #pagination button {
+ visibility: hidden;
+}
/*
this file is generated automatically by searxng_extra/update/update_pygments.py
using pygments version 2.11.2
diff --git a/searx/static/themes/oscar/css/logicodev-dark.min.css b/searx/static/themes/oscar/css/logicodev-dark.min.css
index 9d62caf44..e2051038a 100644
--- a/searx/static/themes/oscar/css/logicodev-dark.min.css
+++ b/searx/static/themes/oscar/css/logicodev-dark.min.css
@@ -1 +1 @@
-.github-issue-button{display:block;padding:8px 16px;font-family:sans-serif;font-size:16px;color:#fff;background-color:#238636!important;border:#2ea043;border-radius:10px!important;box-shadow:transparent 0 0 0 0}.github-issue-button:hover{background-color:#2ea043}.issue-hide{display:none}.engine-stats .engine-name{width:20rem}.engine-stats .engine-score{width:7rem;text-align:right}.engine-stats .engine-reliability{text-align:right}.engine-stats table.engine-error{max-width:1280px;margin:1rem;border:1px solid gray}.engine-stats failed-test,.engine-stats table.engine-error td.engine-error-type,.engine-stats table.engine-error th.engine-error-type{width:10rem}.engine-stats table.engine-error span.log_parameters{border-right:1px solid gray;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 #5bc0de;margin:1px 0}.bar-chart-serie1{border:3px solid #5bc0de;margin:1px 0;float:left}.bar-chart-serie2{border:3px solid #deb15b;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}.default-image-style{width:auto;max-height:60px;min-height:60px}.col-stat{width:10rem}.code-highlight .linenos{-webkit-touch-callout:none;-webkit-user-select:none;-khtml-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;cursor:default;margin-right:8px;text-align:right}.code-highlight .linenos::selection{background:0 0}.code-highlight .linenos::-moz-selection{background:0 0}.code-highlight pre{line-height:125%}.code-highlight td.linenos .normal{color:inherit;background-color:transparent;padding-left:5px;padding-right:5px}.code-highlight span.linenos{color:inherit;background-color:transparent;padding-left:5px;padding-right:5px}.code-highlight td.linenos .special{color:#000;background-color:#ffffc0;padding-left:5px;padding-right:5px}.code-highlight span.linenos.special{color:#000;background-color:#ffffc0;padding-left:5px;padding-right:5px}.code-highlight .hll{background-color:#ffc}.code-highlight{background:#282C34}.code-highlight .c{color:#556366;font-style:italic}.code-highlight .err{border:1px solid red}.code-highlight .k{color:#BE74D5;font-weight:700}.code-highlight .o{color:#D19A66}.code-highlight .ch{color:#556366;font-style:italic}.code-highlight .cm{color:#556366;font-style:italic}.code-highlight .cp{color:#BC7A00;font-style:italic}.code-highlight .cpf{color:#556366;font-style:italic}.code-highlight .c1{color:#556366;font-style:italic}.code-highlight .cs{color:#556366;font-style:italic}.code-highlight .gd{color:#A00000}.code-highlight .ge{font-style:italic}.code-highlight .gr{color:red}.code-highlight .gh{color:navy;font-weight:700}.code-highlight .gi{color:#00A000}.code-highlight .go{color:#888}.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{color:#BE74D5;font-weight:700}.code-highlight .kd{color:#BE74D5;font-weight:700}.code-highlight .kn{color:#BE74D5;font-weight:700}.code-highlight .kp{color:#BE74D5;font-weight:700}.code-highlight .kr{color:#BE74D5;font-weight:700}.code-highlight .kt{color:#D46C72;font-weight:700}.code-highlight .m{color:#D19A66}.code-highlight .s{color:#86C372}.code-highlight .na{color:#7D9029}.code-highlight .nb{color:#BE74D5}.code-highlight .nc{color:#61AFEF;font-weight:700}.code-highlight .no{color:#D19A66}.code-highlight .nd{color:#A2F}.code-highlight .ni{color:#999;font-weight:700}.code-highlight .ne{color:#D2413A;font-weight:700}.code-highlight .nf{color:#61AFEF}.code-highlight .nl{color:#A0A000}.code-highlight .nn{color:#61AFEF;font-weight:700}.code-highlight .nt{color:#BE74D5;font-weight:700}.code-highlight .nv{color:#DFC06F}.code-highlight .ow{color:#A2F;font-weight:700}.code-highlight .w{color:#D7DAE0}.code-highlight .mb{color:#D19A66}.code-highlight .mf{color:#D19A66}.code-highlight .mh{color:#D19A66}.code-highlight .mi{color:#D19A66}.code-highlight .mo{color:#D19A66}.code-highlight .sa{color:#86C372}.code-highlight .sb{color:#86C372}.code-highlight .sc{color:#86C372}.code-highlight .dl{color:#86C372}.code-highlight .sd{color:#86C372;font-style:italic}.code-highlight .s2{color:#86C372}.code-highlight .se{color:#B62;font-weight:700}.code-highlight .sh{color:#86C372}.code-highlight .si{color:#B68;font-weight:700}.code-highlight .sx{color:#BE74D5}.code-highlight .sr{color:#B68}.code-highlight .s1{color:#86C372}.code-highlight .ss{color:#DFC06F}.code-highlight .bp{color:#BE74D5}.code-highlight .fm{color:#61AFEF}.code-highlight .vc{color:#DFC06F}.code-highlight .vg{color:#DFC06F}.code-highlight .vi{color:#DFC06F}.code-highlight .vm{color:#DFC06F}.code-highlight .il{color:#D19A66}*{border-radius:0!important}html{position:relative;min-height:100%;color:#29314D}body{font-family:Roboto,Helvetica,Arial,sans-serif;margin-bottom:80px;background-color:#fff}body a{color:#08C}.footer{position:absolute;bottom:0;width:100%;height:60px;text-align:center;color:#999}input[type=checkbox]:checked+.label_hide_if_checked,input[type=checkbox]:checked+.label_hide_if_not_checked+.label_hide_if_checked{display:none}input[type=checkbox]:not(:checked)+.label_hide_if_checked+.label_hide_if_not_checked,input[type=checkbox]:not(:checked)+.label_hide_if_not_checked{display:none}.onoff-checkbox{width:15%}.onoffswitch{position:relative;width:110px;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none}.onoffswitch-checkbox{opacity:0;position:absolute}.onoffswitch-checkbox:before{content:"";display:inline-block;width:16px;height:16px;margin-right:10px;position:absolute;left:0;bottom:1px;background-color:#fff;border:1px solid #ccc;border-radius:0}.onoffswitch-label{display:block;overflow:hidden;cursor:pointer;border:2px solid #FFF!important;border-radius:50px!important}.onoffswitch-inner{display:block;transition:margin .3s ease-in 0s}.onoffswitch-inner:after,.onoffswitch-inner:before{display:block;float:left;width:50%;height:30px;padding:0;line-height:40px;font-size:20px;box-sizing:border-box;content:"";background-color:#EEE}.onoffswitch-switch{display:block;width:37px;background-color:#01D7D4;position:absolute;top:0;bottom:0;right:0;border:2px solid #FFF;border-radius:50px!important;transition:all .3s ease-in 0s}.onoffswitch-checkbox:checked+.onoffswitch-label .onoffswitch-inner{margin-right:0}.onoffswitch-checkbox:checked+.onoffswitch-label .onoffswitch-switch{right:71px;background-color:#A1A1A1}.onoffswitch-checkbox:focus+.onoffswitch-label .onoffswitch-switch{border:3px solid #444}.result_header{margin-top:0;margin-bottom:2px;font-size:16px}.result_header .favicon{margin-bottom:-3px}.result_header a{color:#29314D;text-decoration:none}.result_header a:hover{color:#08C}.result_header a:visited{color:#684898}.result_header a .highlight{background-color:#F6F9FA}.result-content,.result-format,.result-source{margin-top:2px;margin-bottom:0;word-wrap:break-word;color:#666;font-size:13px}.result .highlight{font-weight:700}.result-source{font-size:10px;float:left}.result-format{font-size:10px;float:right}.result-abstract{margin-top:.5em;margin-bottom:.8em}.external-link{color:#068922;font-size:12px;margin-bottom:15px}.external-link a{margin-right:3px}.result-code,.result-default,.result-map,.result-torrent,.result-videos{clear:both;padding:.5em 4px}.result-code:hover,.result-default:hover,.result-map:hover,.result-torrent:hover,.result-videos:hover{background-color:#F6F9FA}.result-images{float:left!important;margin:0;padding:0}.result-images a{display:block;width:100%;background-size:cover}.result-images a .img-thumbnail{border:none!important;padding:0}.result-images a:focus,.result-images a:hover{outline:0}.result-images a:focus .img-thumbnail,.result-images a:hover .img-thumbnail{box-shadow:5px 5px 15px 0 #000}.result-images.js a .img-thumbnail{max-height:inherit;min-height:inherit}.result-images:not(.js){width:25%;padding:3px 13px 13px 3px}.result-images:not(.js) a .img-thumbnail{margin:0;max-height:128px;min-height:128px}.img-thumbnail{margin:5px;max-height:128px;min-height:128px}.result-videos{clear:both}.result-videos hr{margin:5px 0 15px 0}.result-videos .collapse{width:100%}.result-videos .in{margin-bottom:8px}.result-torrent{clear:both}.result-torrent b{margin-right:5px;margin-left:5px}.result-torrent .seeders{color:#2ecc71}.result-torrent .leechers{color:#F35E77}.result-metadata{clear:both;margin:1em}.result-metadata td{padding-right:1em;color:#A4A4A4}.result-metadata td:first-of-type{color:#666}.result-map{clear:both}.result-map .img-thumbnail{float:right;width:auto;height:120px;border:0;background:inherit}.result-map .img-type{width:20px;max-height:20px}.result-map .result-map-details{font-size:13px;border-collapse:separate;border-spacing:0 .35rem}.result-map .result-map-details th{font-weight:inherit;width:20rem;vertical-align:top}.result-map .result-map-details td{vertical-align:top}.result-code{clear:both}.result-code .code-fork,.result-code .code-fork a{color:#666}.suggestion_item{margin:2px 5px;max-width:100%}.suggestion_item .btn{max-width:100%;white-space:normal;word-wrap:break-word;text-align:left}.result_download{margin-right:5px}#pagination{margin-top:30px;padding-bottom:60px}.label-default{color:#666;background:0 0}.result .text-muted small{word-wrap:break-word}.modal-wrapper{box-shadow:0 5px 15px rgba(0,0,0,.5)}.modal-wrapper{background-clip:padding-box;background-color:#fff;border:1px solid rgba(0,0,0,.2);border-radius:6px;box-shadow:0 3px 9px rgba(0,0,0,.5);outline:0 none;position:relative}@media screen and (max-width:75em){.img-thumbnail{object-fit:cover}}.infobox .panel-heading{background-color:#F6F9FA}.infobox .panel-heading .panel-title{font-weight:700}.infobox .header_url{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block}.infobox p{font-family:"DejaVu Serif",Georgia,Cambria,"Times New Roman",Times,serif!important;font-style:italic}.infobox img{max-height:"250px"}.infobox .btn{background-color:#007AB8;border:none}.infobox .btn a{color:#fff;margin:5px}.infobox .infobox_part{margin-bottom:20px;word-wrap:break-word;table-layout:fixed}.infobox .infobox_part:last-child{margin-bottom:0}.infobox .infobox_toggle{width:100%;text-align:center;margin-bottom:0;cursor:pointer}.infobox .infobox_toggle:hover{background:#DDD}.infobox .infobox_checkbox~.infobox_body{max-height:300px;overflow:hidden}.infobox .infobox_checkbox:checked~.infobox_body{max-height:none}.infobox .infobox_checkbox~.infobox_toggle .infobox_label_down{display:block}.infobox .infobox_checkbox~.infobox_toggle .infobox_label_up{display:none}.infobox .infobox_checkbox:checked~.infobox_toggle .infobox_label_up{display:block}.infobox .infobox_checkbox:checked~.infobox_toggle .infobox_label_down{display:none}.infobox .infobox_checkbox~.infobox_body img.infobox_part{display:none}.infobox .infobox_checkbox:checked~.infobox_body img.infobox_part{display:block}#categories,.search_categories{text-transform:capitalize;margin-bottom:.5rem;display:flex;flex-wrap:wrap;flex-flow:row wrap;align-content:stretch}#categories .input-group-addon,#categories label,.search_categories .input-group-addon,.search_categories label{flex-grow:1;flex-basis:auto;font-size:1.2rem;font-weight:400;background-color:#fff;border:#DDD 1px solid;border-right:none;color:#666;padding-bottom:.4rem;padding-top:.4rem;text-align:center;min-width:50px}#categories .input-group-addon:last-child,#categories label:last-child,.search_categories .input-group-addon:last-child,.search_categories label:last-child{border-right:#DDD 1px solid}#categories input[type=checkbox]:checked+label,.search_categories input[type=checkbox]:checked+label{color:#29314D;font-weight:700;border-bottom:#01D7D4 5px solid}#main-logo{margin-top:24vh;margin-bottom:25px}#main-logo>img{max-width:350px;width:80%}#q{box-shadow:none;border-right:none;border-color:#888}#search_form .input-group-btn .btn{border-color:#888}#search_form .input-group-btn .btn:hover{background-color:#068922;color:#fff}.custom-select,.custom-select-rtl{appearance:none;-webkit-appearance:none;-moz-appearance:none;font-size:1.2rem;font-weight:400;background-color:#fff;border:#888 1px solid;color:#666;background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAA8AAAAPCAQAAACR313BAAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAAAmJLR0QA/4ePzL8AAAAJcEhZcwAABFkAAARZAVnbJUkAAAAHdElNRQfgBxgLDwB20OFsAAAAbElEQVQY073OsQ3CMAAEwJMYwJGnsAehpoXJItltBkmcdZBYgIIiQoLglnz3ui+eP+bk5uneteTMZJa6OJuIqvYzSJoqwqBq8gdmTTW86/dghxAUq4xsVYT9laBYXCw93Aajh7GPEF23t4fkBYevGFTANkPRAAAAJXRFWHRkYXRlOmNyZWF0ZQAyMDE2LTA3LTI0VDExOjU1OjU4KzAyOjAwRFqFOQAAACV0RVh0ZGF0ZTptb2RpZnkAMjAxNi0wNy0yNFQxMToxNTowMCswMjowMP7RDgQAAAAZdEVYdFNvZnR3YXJlAHd3dy5pbmtzY2FwZS5vcmeb7jwaAAAAAElFTkSuQmCC) 96% no-repeat}.custom-select-rtl{background-position-x:4%}.search-margin{margin-bottom:.6em}.visually-hidden{position:absolute!important;height:1px;width:1px;overflow:hidden;clip:rect(1px,1px,1px,1px);white-space:nowrap}.btn-danger,.label-danger{background:#c9432f}.btn-success,.label-success{background:#068922}select.form-control{border-color:#888!important}#advanced-search-container{display:none;text-align:left;margin-bottom:1rem;clear:both}#advanced-search-container .input-group-addon,#advanced-search-container label{font-size:1.2rem;font-weight:400;background-color:#fff;border:#DDD 1px solid;border-right:none;color:#666;padding-bottom:.4rem;padding-right:.7rem;padding-left:.7rem}#advanced-search-container .input-group-addon:last-child,#advanced-search-container label:last-child{border-right:#DDD 1px solid}#advanced-search-container input[type=radio]{display:none}#advanced-search-container input[type=radio]:checked+label{color:#29314D;font-weight:700;border-bottom:#01D7D4 5px solid}#check-advanced:focus+label{text-decoration:underline}#check-advanced:checked~#advanced-search-container{display:block}.advanced{padding:0;margin-top:.3rem;text-align:right}.advanced label,.advanced select{cursor:pointer}.cursor-text{cursor:text!important}.cursor-pointer{cursor:pointer!important}code,pre{font-family:'Ubuntu Mono','Courier New','Lucida Console',monospace!important}.code-highlight pre{margin-bottom:25px;padding:20px 10px;background-color:inherit;color:inherit;border:inherit;color:#D7DAE0}.table>tbody>tr>td,.table>tbody>tr>th{vertical-align:middle!important}.nav-tabs.nav-justified{margin-bottom:20px}p{margin:10px 0}input.cursor-text{margin:10px 0}.engine-tooltip{display:none;position:absolute;padding:.5rem 1rem;margin:0 0 0 2rem;border:1px solid #ddd;box-shadow:2px 2px 2px 0 rgba(0,0,0,.1);background:#fff;font-size:14px;font-weight:400;z-index:1000000;max-width:40rem}.engine-tooltip:hover,td:hover .engine-tooltip,th:hover .engine-tooltip{display:inline-block}.stacked-bar-chart{margin:0;padding:0 .125rem 0 3rem;width:100%;width:-moz-available;width:-webkit-fill-available;width:fill;flex-direction:row;flex-wrap:nowrap;flex-grow:1;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:#d5d8d7;border:1px solid rgba(213,216,215,.9);padding:.3rem 0}.stacked-bar-chart-rate80{display:flex;flex-shrink:0;flex-grow:0;flex-basis:unset;background:0 0;border:1px solid rgba(213,216,215,.3);padding:.3rem 0}.stacked-bar-chart-rate95{display:flex;flex-shrink:0;flex-grow:0;flex-basis:unset;background:0 0;border-bottom:1px dotted rgba(213,216,215,.5);padding:0}.stacked-bar-chart-rate100{display:flex;flex-shrink:0;flex-grow:0;flex-basis:unset;background:0 0;border-left:1px solid rgba(213,216,215,.9);padding:.4rem 0;width:1px}@supports (-webkit-marquee-repetition:infinite) and (object-fit:fill){.twitter-typeahead .tt-input:focus{z-index:2}.input-group-btn:last-child>.btn,.input-group-btn:last-child>.btn-group{margin-left:inherit!important}}body{background:#1d1f21 none!important;color:#D5D8D7!important}a{color:#41a2ce!important;text-decoration:none!important}a:hover{color:#5F89AC!important}button,input,select,textarea{border:1px solid #282a2e!important;background-color:#444!important;color:#BBB!important}button:focus,input:focus,select:focus,textarea:focus{border:1px solid #C5C8C6!important;box-shadow:initial!important}div#advanced-search-container div#categories label{background:0 0;border:1px solid #282a2e}ul.nav li a{border:0!important;border-bottom:1px solid #4d3f43!important}#categories *,.modal-wrapper *{background:#1d1f21 none!important;color:#D5D8D7!important}#categories *{border:1px solid #3d3f43!important}#categories :checked+label{border-bottom:4px solid #3d9f94!important}.result-content,.result-format,.result-source{color:#B5B8B7!important}.external-link{color:#35B887!important}.table-striped tr td,.table-striped tr th{border-color:#4d3f43!important}.navbar{background:#1d1f21 none;border:none}.menu,.navbar .active{background:0 0!important}.label-default{background:0 0;color:#BBB}.nav-tabs.nav-justified>.active>a,.navbar-default .navbar-nav>.active>a,.navbar-default .navbar-nav>.active>a:focus,.navbar-default .navbar-nav>.active>a:hover{background-color:#282a2e!important}.result-code:hover,.result-default:hover,.result-map:hover,.result-torrent:hover,.result-videos:hover{background-color:#222426}.btn{color:#BBB;background-color:#444;border:1px solid #282a2e}.btn:hover{color:#444!important;background-color:#BBB!important}.btn-primary.active{color:#C5C8C6;background-color:#5F89AC;border-color:#5F89AC}.panel{border:1px solid #111;background:0 0}.panel-heading{color:#C5C8C6!important;background:#282a2e!important;border-bottom:none}.panel-body{color:#C5C8C6!important;background:#1d1f21!important;border-color:#111!important}.panel-footer{color:#C5C8C6!important;background:#282a2e!important;border-top:1px solid #111!important}.infobox_toggle:hover{background:#3d3f43!important}p.btn.btn-default{background:0 0}.table-striped>tbody>tr:nth-child(odd)>td,.table-striped>tbody>tr:nth-child(odd)>th,.table-striped>thead>tr:nth-child(odd)>th{background:#2d2f32 none!important;color:#D5D8D7!important}.label-success{background:#1d6f42 none!important}.label-danger{background:#ad1f12 none!important}.searxng-navbar{background:#333334;height:2.3rem;font-size:1.3rem;line-height:1.3rem;padding:.5rem;font-weight:700;margin-bottom:.8rem}.searxng-navbar a,.searxng-navbar a:hover{margin-right:2rem;color:#fff;text-decoration:none}.searxng-navbar .instance a{color:#01D7D4;margin-left:2rem}#main-logo{margin-top:20vh;margin-bottom:25px}#main-logo>img{max-width:350px;width:80%}.onoffswitch-inner:after,.onoffswitch-inner:before{background:#1d1f21 none!important}.onoffswitch-label,.onoffswitch-switch{border:2px solid #3d3f43!important}.nav>li>a:focus,.nav>li>a:hover{background-color:#3d3f43!important}.img-thumbnail,.thumbnail{padding:0;line-height:1.42857143;background:0 0;border:none}.modal-content{background:#1d1f21 none!important}.table>tbody>tr.danger>td,.table>tbody>tr.danger>th,.table>tbody>tr>td.danger,.table>tbody>tr>th.danger,.table>tfoot>tr.danger>td,.table>tfoot>tr.danger>th,.table>tfoot>tr>td.danger,.table>tfoot>tr>th.danger,.table>thead>tr.danger>td,.table>thead>tr.danger>th,.table>thead>tr>td.danger,.table>thead>tr>th.danger{background:rgba(240,0,0,.56)!important;color:#C5C8C6!important}.table-hover>tbody>tr.danger:hover>td,.table-hover>tbody>tr.danger:hover>th,.table-hover>tbody>tr:hover>.danger,.table-hover>tbody>tr>td.danger:hover,.table-hover>tbody>tr>th.danger:hover{background:rgba(237,59,59,.61)!important;color:#C5C8C6!important}.table-hover>tbody>tr:hover>td,.table-hover>tbody>tr:hover>th{background:#66696e!important}.btn-success{color:#C5C8C6;background:#449d44}.btn-danger{color:#C5C8C6;background:#d9534f}.well{background:#444;border-color:#282a2e}.highlight{background-color:transparent!important}.engine-tooltip{border:1px solid #3d3f43;background:#1d1f21}/*# sourceMappingURL=logicodev-dark.min.css.map */
\ No newline at end of file
+.github-issue-button{display:block;padding:8px 16px;font-family:sans-serif;font-size:16px;color:#fff;background-color:#238636!important;border:#2ea043;border-radius:10px!important;box-shadow:transparent 0 0 0 0}.github-issue-button:hover{background-color:#2ea043}.issue-hide{display:none}.engine-stats .engine-name{width:20rem}.engine-stats .engine-score{width:7rem;text-align:right}.engine-stats .engine-reliability{text-align:right}.engine-stats table.engine-error{max-width:1280px;margin:1rem;border:1px solid gray}.engine-stats failed-test,.engine-stats table.engine-error td.engine-error-type,.engine-stats table.engine-error th.engine-error-type{width:10rem}.engine-stats table.engine-error span.log_parameters{border-right:1px solid gray;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 #5bc0de;margin:1px 0}.bar-chart-serie1{border:3px solid #5bc0de;margin:1px 0;float:left}.bar-chart-serie2{border:3px solid #deb15b;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}.default-image-style{width:auto;max-height:60px;min-height:60px}.col-stat{width:10rem}@keyframes rotate-forever{0%{transform:rotate(0)}100%{transform:rotate(360deg)}}.loading-spinner{animation-duration:.75s;animation-iteration-count:infinite;animation-name:rotate-forever;animation-timing-function:linear;height:30px;width:30px;border:8px solid #666;border-right-color:transparent;border-radius:50%!important;margin:0 auto}html.infinite_scroll #pagination button{visibility:hidden}.code-highlight .linenos{-webkit-touch-callout:none;-webkit-user-select:none;-khtml-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;cursor:default;margin-right:8px;text-align:right}.code-highlight .linenos::selection{background:0 0}.code-highlight .linenos::-moz-selection{background:0 0}.code-highlight pre{line-height:125%}.code-highlight td.linenos .normal{color:inherit;background-color:transparent;padding-left:5px;padding-right:5px}.code-highlight span.linenos{color:inherit;background-color:transparent;padding-left:5px;padding-right:5px}.code-highlight td.linenos .special{color:#000;background-color:#ffffc0;padding-left:5px;padding-right:5px}.code-highlight span.linenos.special{color:#000;background-color:#ffffc0;padding-left:5px;padding-right:5px}.code-highlight .hll{background-color:#ffc}.code-highlight{background:#282C34}.code-highlight .c{color:#556366;font-style:italic}.code-highlight .err{border:1px solid red}.code-highlight .k{color:#BE74D5;font-weight:700}.code-highlight .o{color:#D19A66}.code-highlight .ch{color:#556366;font-style:italic}.code-highlight .cm{color:#556366;font-style:italic}.code-highlight .cp{color:#BC7A00;font-style:italic}.code-highlight .cpf{color:#556366;font-style:italic}.code-highlight .c1{color:#556366;font-style:italic}.code-highlight .cs{color:#556366;font-style:italic}.code-highlight .gd{color:#A00000}.code-highlight .ge{font-style:italic}.code-highlight .gr{color:red}.code-highlight .gh{color:navy;font-weight:700}.code-highlight .gi{color:#00A000}.code-highlight .go{color:#888}.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{color:#BE74D5;font-weight:700}.code-highlight .kd{color:#BE74D5;font-weight:700}.code-highlight .kn{color:#BE74D5;font-weight:700}.code-highlight .kp{color:#BE74D5;font-weight:700}.code-highlight .kr{color:#BE74D5;font-weight:700}.code-highlight .kt{color:#D46C72;font-weight:700}.code-highlight .m{color:#D19A66}.code-highlight .s{color:#86C372}.code-highlight .na{color:#7D9029}.code-highlight .nb{color:#BE74D5}.code-highlight .nc{color:#61AFEF;font-weight:700}.code-highlight .no{color:#D19A66}.code-highlight .nd{color:#A2F}.code-highlight .ni{color:#999;font-weight:700}.code-highlight .ne{color:#D2413A;font-weight:700}.code-highlight .nf{color:#61AFEF}.code-highlight .nl{color:#A0A000}.code-highlight .nn{color:#61AFEF;font-weight:700}.code-highlight .nt{color:#BE74D5;font-weight:700}.code-highlight .nv{color:#DFC06F}.code-highlight .ow{color:#A2F;font-weight:700}.code-highlight .w{color:#D7DAE0}.code-highlight .mb{color:#D19A66}.code-highlight .mf{color:#D19A66}.code-highlight .mh{color:#D19A66}.code-highlight .mi{color:#D19A66}.code-highlight .mo{color:#D19A66}.code-highlight .sa{color:#86C372}.code-highlight .sb{color:#86C372}.code-highlight .sc{color:#86C372}.code-highlight .dl{color:#86C372}.code-highlight .sd{color:#86C372;font-style:italic}.code-highlight .s2{color:#86C372}.code-highlight .se{color:#B62;font-weight:700}.code-highlight .sh{color:#86C372}.code-highlight .si{color:#B68;font-weight:700}.code-highlight .sx{color:#BE74D5}.code-highlight .sr{color:#B68}.code-highlight .s1{color:#86C372}.code-highlight .ss{color:#DFC06F}.code-highlight .bp{color:#BE74D5}.code-highlight .fm{color:#61AFEF}.code-highlight .vc{color:#DFC06F}.code-highlight .vg{color:#DFC06F}.code-highlight .vi{color:#DFC06F}.code-highlight .vm{color:#DFC06F}.code-highlight .il{color:#D19A66}*{border-radius:0!important}html{position:relative;min-height:100%;color:#29314D}body{font-family:Roboto,Helvetica,Arial,sans-serif;margin-bottom:80px;background-color:#fff}body a{color:#08C}.footer{position:absolute;bottom:0;width:100%;height:60px;text-align:center;color:#999}input[type=checkbox]:checked+.label_hide_if_checked,input[type=checkbox]:checked+.label_hide_if_not_checked+.label_hide_if_checked{display:none}input[type=checkbox]:not(:checked)+.label_hide_if_checked+.label_hide_if_not_checked,input[type=checkbox]:not(:checked)+.label_hide_if_not_checked{display:none}.onoff-checkbox{width:15%}.onoffswitch{position:relative;width:110px;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none}.onoffswitch-checkbox{opacity:0;position:absolute}.onoffswitch-checkbox:before{content:"";display:inline-block;width:16px;height:16px;margin-right:10px;position:absolute;left:0;bottom:1px;background-color:#fff;border:1px solid #ccc;border-radius:0}.onoffswitch-label{display:block;overflow:hidden;cursor:pointer;border:2px solid #FFF!important;border-radius:50px!important}.onoffswitch-inner{display:block;transition:margin .3s ease-in 0s}.onoffswitch-inner:after,.onoffswitch-inner:before{display:block;float:left;width:50%;height:30px;padding:0;line-height:40px;font-size:20px;box-sizing:border-box;content:"";background-color:#EEE}.onoffswitch-switch{display:block;width:37px;background-color:#01D7D4;position:absolute;top:0;bottom:0;right:0;border:2px solid #FFF;border-radius:50px!important;transition:all .3s ease-in 0s}.onoffswitch-checkbox:checked+.onoffswitch-label .onoffswitch-inner{margin-right:0}.onoffswitch-checkbox:checked+.onoffswitch-label .onoffswitch-switch{right:71px;background-color:#A1A1A1}.onoffswitch-checkbox:focus+.onoffswitch-label .onoffswitch-switch{border:3px solid #444}.result_header{margin-top:0;margin-bottom:2px;font-size:16px}.result_header .favicon{margin-bottom:-3px}.result_header a{color:#29314D;text-decoration:none}.result_header a:hover{color:#08C}.result_header a:visited{color:#684898}.result_header a .highlight{background-color:#F6F9FA}.result-content,.result-format,.result-source{margin-top:2px;margin-bottom:0;word-wrap:break-word;color:#666;font-size:13px}.result .highlight{font-weight:700}.result-source{font-size:10px;float:left}.result-format{font-size:10px;float:right}.result-abstract{margin-top:.5em;margin-bottom:.8em}.external-link{color:#068922;font-size:12px;margin-bottom:15px}.external-link a{margin-right:3px}.result-code,.result-default,.result-map,.result-torrent,.result-videos{clear:both;padding:.5em 4px}.result-code:hover,.result-default:hover,.result-map:hover,.result-torrent:hover,.result-videos:hover{background-color:#F6F9FA}.result-images{float:left!important;margin:0;padding:0}.result-images a{display:block;width:100%;background-size:cover}.result-images a .img-thumbnail{border:none!important;padding:0}.result-images a:focus,.result-images a:hover{outline:0}.result-images a:focus .img-thumbnail,.result-images a:hover .img-thumbnail{box-shadow:5px 5px 15px 0 #000}.result-images.js a .img-thumbnail{max-height:inherit;min-height:inherit}.result-images:not(.js){width:25%;padding:3px 13px 13px 3px}.result-images:not(.js) a .img-thumbnail{margin:0;max-height:128px;min-height:128px}.img-thumbnail{margin:5px;max-height:128px;min-height:128px}.result-videos{clear:both}.result-videos hr{margin:5px 0 15px 0}.result-videos .collapse{width:100%}.result-videos .in{margin-bottom:8px}.result-torrent{clear:both}.result-torrent b{margin-right:5px;margin-left:5px}.result-torrent .seeders{color:#2ecc71}.result-torrent .leechers{color:#F35E77}.result-metadata{clear:both;margin:1em}.result-metadata td{padding-right:1em;color:#A4A4A4}.result-metadata td:first-of-type{color:#666}.result-map{clear:both}.result-map .img-thumbnail{float:right;width:auto;height:120px;border:0;background:inherit}.result-map .img-type{width:20px;max-height:20px}.result-map .result-map-details{font-size:13px;border-collapse:separate;border-spacing:0 .35rem}.result-map .result-map-details th{font-weight:inherit;width:20rem;vertical-align:top}.result-map .result-map-details td{vertical-align:top}.result-code{clear:both}.result-code .code-fork,.result-code .code-fork a{color:#666}.suggestion_item{margin:2px 5px;max-width:100%}.suggestion_item .btn{max-width:100%;white-space:normal;word-wrap:break-word;text-align:left}.result_download{margin-right:5px}#pagination{margin-top:30px;padding-bottom:60px}.label-default{color:#666;background:0 0}.result .text-muted small{word-wrap:break-word}.modal-wrapper{box-shadow:0 5px 15px rgba(0,0,0,.5)}.modal-wrapper{background-clip:padding-box;background-color:#fff;border:1px solid rgba(0,0,0,.2);border-radius:6px;box-shadow:0 3px 9px rgba(0,0,0,.5);outline:0 none;position:relative}@media screen and (max-width:75em){.img-thumbnail{object-fit:cover}}.infobox .panel-heading{background-color:#F6F9FA}.infobox .panel-heading .panel-title{font-weight:700}.infobox .header_url{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block}.infobox p{font-family:"DejaVu Serif",Georgia,Cambria,"Times New Roman",Times,serif!important;font-style:italic}.infobox img{max-height:"250px"}.infobox .btn{background-color:#007AB8;border:none}.infobox .btn a{color:#fff;margin:5px}.infobox .infobox_part{margin-bottom:20px;word-wrap:break-word;table-layout:fixed}.infobox .infobox_part:last-child{margin-bottom:0}.infobox .infobox_toggle{width:100%;text-align:center;margin-bottom:0;cursor:pointer}.infobox .infobox_toggle:hover{background:#DDD}.infobox .infobox_checkbox~.infobox_body{max-height:300px;overflow:hidden}.infobox .infobox_checkbox:checked~.infobox_body{max-height:none}.infobox .infobox_checkbox~.infobox_toggle .infobox_label_down{display:block}.infobox .infobox_checkbox~.infobox_toggle .infobox_label_up{display:none}.infobox .infobox_checkbox:checked~.infobox_toggle .infobox_label_up{display:block}.infobox .infobox_checkbox:checked~.infobox_toggle .infobox_label_down{display:none}.infobox .infobox_checkbox~.infobox_body img.infobox_part{display:none}.infobox .infobox_checkbox:checked~.infobox_body img.infobox_part{display:block}#categories,.search_categories{text-transform:capitalize;margin-bottom:.5rem;display:flex;flex-wrap:wrap;flex-flow:row wrap;align-content:stretch}#categories .input-group-addon,#categories label,.search_categories .input-group-addon,.search_categories label{flex-grow:1;flex-basis:auto;font-size:1.2rem;font-weight:400;background-color:#fff;border:#DDD 1px solid;border-right:none;color:#666;padding-bottom:.4rem;padding-top:.4rem;text-align:center;min-width:50px}#categories .input-group-addon:last-child,#categories label:last-child,.search_categories .input-group-addon:last-child,.search_categories label:last-child{border-right:#DDD 1px solid}#categories input[type=checkbox]:checked+label,.search_categories input[type=checkbox]:checked+label{color:#29314D;font-weight:700;border-bottom:#01D7D4 5px solid}#main-logo{margin-top:24vh;margin-bottom:25px}#main-logo>img{max-width:350px;width:80%}#q{box-shadow:none;border-right:none;border-color:#888}#search_form .input-group-btn .btn{border-color:#888}#search_form .input-group-btn .btn:hover{background-color:#068922;color:#fff}.custom-select,.custom-select-rtl{appearance:none;-webkit-appearance:none;-moz-appearance:none;font-size:1.2rem;font-weight:400;background-color:#fff;border:#888 1px solid;color:#666;background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAA8AAAAPCAQAAACR313BAAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAAAmJLR0QA/4ePzL8AAAAJcEhZcwAABFkAAARZAVnbJUkAAAAHdElNRQfgBxgLDwB20OFsAAAAbElEQVQY073OsQ3CMAAEwJMYwJGnsAehpoXJItltBkmcdZBYgIIiQoLglnz3ui+eP+bk5uneteTMZJa6OJuIqvYzSJoqwqBq8gdmTTW86/dghxAUq4xsVYT9laBYXCw93Aajh7GPEF23t4fkBYevGFTANkPRAAAAJXRFWHRkYXRlOmNyZWF0ZQAyMDE2LTA3LTI0VDExOjU1OjU4KzAyOjAwRFqFOQAAACV0RVh0ZGF0ZTptb2RpZnkAMjAxNi0wNy0yNFQxMToxNTowMCswMjowMP7RDgQAAAAZdEVYdFNvZnR3YXJlAHd3dy5pbmtzY2FwZS5vcmeb7jwaAAAAAElFTkSuQmCC) 96% no-repeat}.custom-select-rtl{background-position-x:4%}.search-margin{margin-bottom:.6em}.visually-hidden{position:absolute!important;height:1px;width:1px;overflow:hidden;clip:rect(1px,1px,1px,1px);white-space:nowrap}.btn-danger,.label-danger{background:#c9432f}.btn-success,.label-success{background:#068922}select.form-control{border-color:#888!important}#advanced-search-container{display:none;text-align:left;margin-bottom:1rem;clear:both}#advanced-search-container .input-group-addon,#advanced-search-container label{font-size:1.2rem;font-weight:400;background-color:#fff;border:#DDD 1px solid;border-right:none;color:#666;padding-bottom:.4rem;padding-right:.7rem;padding-left:.7rem}#advanced-search-container .input-group-addon:last-child,#advanced-search-container label:last-child{border-right:#DDD 1px solid}#advanced-search-container input[type=radio]{display:none}#advanced-search-container input[type=radio]:checked+label{color:#29314D;font-weight:700;border-bottom:#01D7D4 5px solid}#check-advanced:focus+label{text-decoration:underline}#check-advanced:checked~#advanced-search-container{display:block}.advanced{padding:0;margin-top:.3rem;text-align:right}.advanced label,.advanced select{cursor:pointer}.cursor-text{cursor:text!important}.cursor-pointer{cursor:pointer!important}code,pre{font-family:'Ubuntu Mono','Courier New','Lucida Console',monospace!important}.code-highlight pre{margin-bottom:25px;padding:20px 10px;background-color:inherit;color:inherit;border:inherit;color:#D7DAE0}.table>tbody>tr>td,.table>tbody>tr>th{vertical-align:middle!important}.nav-tabs.nav-justified{margin-bottom:20px}p{margin:10px 0}input.cursor-text{margin:10px 0}.engine-tooltip{display:none;position:absolute;padding:.5rem 1rem;margin:0 0 0 2rem;border:1px solid #ddd;box-shadow:2px 2px 2px 0 rgba(0,0,0,.1);background:#fff;font-size:14px;font-weight:400;z-index:1000000;max-width:40rem}.engine-tooltip:hover,td:hover .engine-tooltip,th:hover .engine-tooltip{display:inline-block}.stacked-bar-chart{margin:0;padding:0 .125rem 0 3rem;width:100%;width:-moz-available;width:-webkit-fill-available;width:fill;flex-direction:row;flex-wrap:nowrap;flex-grow:1;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:#d5d8d7;border:1px solid rgba(213,216,215,.9);padding:.3rem 0}.stacked-bar-chart-rate80{display:flex;flex-shrink:0;flex-grow:0;flex-basis:unset;background:0 0;border:1px solid rgba(213,216,215,.3);padding:.3rem 0}.stacked-bar-chart-rate95{display:flex;flex-shrink:0;flex-grow:0;flex-basis:unset;background:0 0;border-bottom:1px dotted rgba(213,216,215,.5);padding:0}.stacked-bar-chart-rate100{display:flex;flex-shrink:0;flex-grow:0;flex-basis:unset;background:0 0;border-left:1px solid rgba(213,216,215,.9);padding:.4rem 0;width:1px}@supports (-webkit-marquee-repetition:infinite) and (object-fit:fill){.twitter-typeahead .tt-input:focus{z-index:2}.input-group-btn:last-child>.btn,.input-group-btn:last-child>.btn-group{margin-left:inherit!important}}body{background:#1d1f21 none!important;color:#D5D8D7!important}a{color:#41a2ce!important;text-decoration:none!important}a:hover{color:#5F89AC!important}button,input,select,textarea{border:1px solid #282a2e!important;background-color:#444!important;color:#BBB!important}button:focus,input:focus,select:focus,textarea:focus{border:1px solid #C5C8C6!important;box-shadow:initial!important}div#advanced-search-container div#categories label{background:0 0;border:1px solid #282a2e}ul.nav li a{border:0!important;border-bottom:1px solid #4d3f43!important}#categories *,.modal-wrapper *{background:#1d1f21 none!important;color:#D5D8D7!important}#categories *{border:1px solid #3d3f43!important}#categories :checked+label{border-bottom:4px solid #3d9f94!important}.result-content,.result-format,.result-source{color:#B5B8B7!important}.external-link{color:#35B887!important}.table-striped tr td,.table-striped tr th{border-color:#4d3f43!important}.navbar{background:#1d1f21 none;border:none}.menu,.navbar .active{background:0 0!important}.label-default{background:0 0;color:#BBB}.nav-tabs.nav-justified>.active>a,.navbar-default .navbar-nav>.active>a,.navbar-default .navbar-nav>.active>a:focus,.navbar-default .navbar-nav>.active>a:hover{background-color:#282a2e!important}.result-code:hover,.result-default:hover,.result-map:hover,.result-torrent:hover,.result-videos:hover{background-color:#222426}.btn{color:#BBB;background-color:#444;border:1px solid #282a2e}.btn:hover{color:#444!important;background-color:#BBB!important}.btn-primary.active{color:#C5C8C6;background-color:#5F89AC;border-color:#5F89AC}.panel{border:1px solid #111;background:0 0}.panel-heading{color:#C5C8C6!important;background:#282a2e!important;border-bottom:none}.panel-body{color:#C5C8C6!important;background:#1d1f21!important;border-color:#111!important}.panel-footer{color:#C5C8C6!important;background:#282a2e!important;border-top:1px solid #111!important}.infobox_toggle:hover{background:#3d3f43!important}p.btn.btn-default{background:0 0}.table-striped>tbody>tr:nth-child(odd)>td,.table-striped>tbody>tr:nth-child(odd)>th,.table-striped>thead>tr:nth-child(odd)>th{background:#2d2f32 none!important;color:#D5D8D7!important}.label-success{background:#1d6f42 none!important}.label-danger{background:#ad1f12 none!important}.searxng-navbar{background:#333334;height:2.3rem;font-size:1.3rem;line-height:1.3rem;padding:.5rem;font-weight:700;margin-bottom:.8rem}.searxng-navbar a,.searxng-navbar a:hover{margin-right:2rem;color:#fff;text-decoration:none}.searxng-navbar .instance a{color:#01D7D4;margin-left:2rem}#main-logo{margin-top:20vh;margin-bottom:25px}#main-logo>img{max-width:350px;width:80%}.onoffswitch-inner:after,.onoffswitch-inner:before{background:#1d1f21 none!important}.onoffswitch-label,.onoffswitch-switch{border:2px solid #3d3f43!important}.nav>li>a:focus,.nav>li>a:hover{background-color:#3d3f43!important}.img-thumbnail,.thumbnail{padding:0;line-height:1.42857143;background:0 0;border:none}.modal-content{background:#1d1f21 none!important}.table>tbody>tr.danger>td,.table>tbody>tr.danger>th,.table>tbody>tr>td.danger,.table>tbody>tr>th.danger,.table>tfoot>tr.danger>td,.table>tfoot>tr.danger>th,.table>tfoot>tr>td.danger,.table>tfoot>tr>th.danger,.table>thead>tr.danger>td,.table>thead>tr.danger>th,.table>thead>tr>td.danger,.table>thead>tr>th.danger{background:rgba(240,0,0,.56)!important;color:#C5C8C6!important}.table-hover>tbody>tr.danger:hover>td,.table-hover>tbody>tr.danger:hover>th,.table-hover>tbody>tr:hover>.danger,.table-hover>tbody>tr>td.danger:hover,.table-hover>tbody>tr>th.danger:hover{background:rgba(237,59,59,.61)!important;color:#C5C8C6!important}.table-hover>tbody>tr:hover>td,.table-hover>tbody>tr:hover>th{background:#66696e!important}.btn-success{color:#C5C8C6;background:#449d44}.btn-danger{color:#C5C8C6;background:#d9534f}.well{background:#444;border-color:#282a2e}.highlight{background-color:transparent!important}.engine-tooltip{border:1px solid #3d3f43;background:#1d1f21}/*# sourceMappingURL=logicodev-dark.min.css.map */
\ No newline at end of file
diff --git a/searx/static/themes/oscar/css/logicodev-dark.min.css.map b/searx/static/themes/oscar/css/logicodev-dark.min.css.map
index 32293f3a4..e9928c467 100644
--- a/searx/static/themes/oscar/css/logicodev-dark.min.css.map
+++ b/searx/static/themes/oscar/css/logicodev-dark.min.css.map
@@ -1 +1 @@
-{"version":3,"sources":["../../__common__/less/new_issue.less","../../__common__/less/stats.less","../src/less/logicodev/preferences.less","../../__common__/less/result_templates.less","../src/less/result_templates.less","../src/less/preferences.less","../src/generated/pygments-logicodev.less","../src/less/logicodev/footer.less","../src/less/logicodev/checkbox.less","../src/less/logicodev/onoff.less","../src/less/logicodev/results.less","../src/less/logicodev/infobox.less","../src/less/logicodev/search.less","../src/less/logicodev/advanced.less","../src/less/logicodev/cursor.less","../src/less/logicodev/code.less","../src/less/safari.css","../src/less/logicodev-dark/oscar.less"],"names":[],"mappings":"AAAA,qBACI,QAAA,MACA,QAAA,IAAA,KACA,YAAA,WACA,UAAA,KACA,MAAA,KACA,iBAAA,kBACA,OAAA,QACA,cAAA,eACA,WAAA,YAAA,EAAA,EAAA,EAAA,EAGgB,2BAChB,iBAAA,QAGJ,YACI,QAAA,KCfA,2BACI,MAAA,MAGJ,4BACI,MAAA,KACA,WAAA,MASJ,kCACI,WAAA,MAGC,iCACD,UAAA,OACA,OAAA,KACA,OAAA,IAAA,MAAA,KAKJ,0BADqB,sDADA,sDAGjB,MAAA,MAGmB,qDAEnB,aAAA,IAAA,MAAA,KACA,QAAA,EAAA,KAAA,EAAA,EACA,OAAA,EAAA,EAAA,EAAA,MAIR,iBACI,MAAA,IACA,QAAA,aACA,WAAA,MACA,cAAA,MAGJ,iBACI,MAAO,kBACP,QAAA,aAGJ,eACI,OAAA,IAAA,MAAA,QACA,OAAA,IAAA,EAGJ,kBACI,OAAA,IAAA,MAAA,QACA,OAAA,IAAA,EACA,MAAA,KAGJ,kBACI,OAAA,IAAA,MAAA,QACA,OAAA,IAAA,EACA,MAAA,KAGJ,MACI,MAAA,EACA,OAAA,ECxEH,MD+EO,MAAA,GC/EP,MD+EO,MAAA,GC/EP,MD+EO,MAAA,GC/EP,MD+EO,MAAA,GC/EP,MD+EO,MAAA,GC/EP,MD+EO,MAAA,GC/EP,MD+EO,MAAA,GC/EP,MD+EO,MAAA,GC/EP,MD+EO,MAAA,GC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,QD+EO,MAAA,KE/ER,aACI,OAAA,MACA,MAAA,KACA,OAAA,KAAA,ECHJ,qBACI,MAAA,KACA,WAAA,KACA,WAAA,KCHJ,UACI,MAAA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"}
\ No newline at end of file
+{"version":3,"sources":["../../__common__/less/new_issue.less","../../__common__/less/stats.less","../src/less/logicodev/code.less","../../__common__/less/result_templates.less","../src/less/result_templates.less","../src/less/preferences.less","../src/less/infinite_scroll.less","../src/generated/pygments-logicodev.less","../src/less/logicodev/footer.less","../src/less/logicodev/checkbox.less","../src/less/logicodev/onoff.less","../src/less/logicodev/results.less","../src/less/logicodev/infobox.less","../src/less/logicodev/search.less","../src/less/logicodev/advanced.less","../src/less/logicodev/cursor.less","../src/less/logicodev/preferences.less","../src/less/safari.css","../src/less/logicodev-dark/oscar.less"],"names":[],"mappings":"AAAA,qBACI,QAAA,MACA,QAAA,IAAA,KACA,YAAA,WACA,UAAA,KACA,MAAA,KACA,iBAAA,kBACA,OAAA,QACA,cAAA,eACA,WAAA,YAAA,EAAA,EAAA,EAAA,EAGgB,2BAChB,iBAAA,QAGJ,YACI,QAAA,KCfA,2BACI,MAAA,MAGJ,4BACI,MAAA,KACA,WAAA,MASJ,kCACI,WAAA,MAGC,iCACD,UAAA,OACA,OAAA,KACA,OAAA,IAAA,MAAA,KAKJ,0BADqB,sDADA,sDAGjB,MAAA,MAGmB,qDAEnB,aAAA,IAAA,MAAA,KACA,QAAA,EAAA,KAAA,EAAA,EACA,OAAA,EAAA,EAAA,EAAA,MAIR,iBACI,MAAA,IACA,QAAA,aACA,WAAA,MACA,cAAA,MAGJ,iBACI,MAAO,kBACP,QAAA,aAGJ,eACI,OAAA,IAAA,MAAA,QACA,OAAA,IAAA,EAGJ,kBACI,OAAA,IAAA,MAAA,QACA,OAAA,IAAA,EACA,MAAA,KAGJ,kBACI,OAAA,IAAA,MAAA,QACA,OAAA,IAAA,EACA,MAAA,KAGJ,MACI,MAAA,EACA,OAAA,ECxEH,MD+EO,MAAA,GC/EP,MD+EO,MAAA,GC/EP,MD+EO,MAAA,GC/EP,MD+EO,MAAA,GC/EP,MD+EO,MAAA,GC/EP,MD+EO,MAAA,GC/EP,MD+EO,MAAA,GC/EP,MD+EO,MAAA,GC/EP,MD+EO,MAAA,GC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,QD+EO,MAAA,KE/ER,aACI,OAAA,MACA,MAAA,KACA,OAAA,KAAA,ECHJ,qBACI,MAAA,KACA,WAAA,KACA,WAAA,KCHJ,UACI,MAAA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"}
\ No newline at end of file
diff --git a/searx/static/themes/oscar/css/logicodev.css b/searx/static/themes/oscar/css/logicodev.css
index dcfcd2b8c..08cf93703 100644
--- a/searx/static/themes/oscar/css/logicodev.css
+++ b/searx/static/themes/oscar/css/logicodev.css
@@ -382,6 +382,29 @@
.col-stat {
width: 10rem;
}
+@keyframes rotate-forever {
+ 0% {
+ transform: rotate(0deg);
+ }
+ 100% {
+ transform: rotate(360deg);
+ }
+}
+.loading-spinner {
+ animation-duration: 0.75s;
+ animation-iteration-count: infinite;
+ animation-name: rotate-forever;
+ animation-timing-function: linear;
+ height: 30px;
+ width: 30px;
+ border: 8px solid #666;
+ border-right-color: transparent;
+ border-radius: 50% !important;
+ margin: 0 auto;
+}
+html.infinite_scroll #pagination button {
+ visibility: hidden;
+}
/*
this file is generated automatically by searxng_extra/update/update_pygments.py
using pygments version 2.11.2
diff --git a/searx/static/themes/oscar/css/logicodev.min.css b/searx/static/themes/oscar/css/logicodev.min.css
index be5f3f2af..efccb4d0a 100644
--- a/searx/static/themes/oscar/css/logicodev.min.css
+++ b/searx/static/themes/oscar/css/logicodev.min.css
@@ -1 +1 @@
-.github-issue-button{display:block;padding:8px 16px;font-family:sans-serif;font-size:16px;color:#fff;background-color:#238636!important;border:#2ea043;border-radius:10px!important;box-shadow:transparent 0 0 0 0}.github-issue-button:hover{background-color:#2ea043}.issue-hide{display:none}.engine-stats .engine-name{width:20rem}.engine-stats .engine-score{width:7rem;text-align:right}.engine-stats .engine-reliability{text-align:right}.engine-stats table.engine-error{max-width:1280px;margin:1rem;border:1px solid gray}.engine-stats failed-test,.engine-stats table.engine-error td.engine-error-type,.engine-stats table.engine-error th.engine-error-type{width:10rem}.engine-stats table.engine-error span.log_parameters{border-right:1px solid gray;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 #5bc0de;margin:1px 0}.bar-chart-serie1{border:3px solid #5bc0de;margin:1px 0;float:left}.bar-chart-serie2{border:3px solid #deb15b;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}.default-image-style{width:auto;max-height:60px;min-height:60px}.col-stat{width:10rem}.code-highlight .linenos{-webkit-touch-callout:none;-webkit-user-select:none;-khtml-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;cursor:default;margin-right:8px;text-align:right}.code-highlight .linenos::selection{background:0 0}.code-highlight .linenos::-moz-selection{background:0 0}.code-highlight pre{line-height:125%}.code-highlight td.linenos .normal{color:inherit;background-color:transparent;padding-left:5px;padding-right:5px}.code-highlight span.linenos{color:inherit;background-color:transparent;padding-left:5px;padding-right:5px}.code-highlight td.linenos .special{color:#000;background-color:#ffffc0;padding-left:5px;padding-right:5px}.code-highlight span.linenos.special{color:#000;background-color:#ffffc0;padding-left:5px;padding-right:5px}.code-highlight .hll{background-color:#ffc}.code-highlight{background:#282C34}.code-highlight .c{color:#556366;font-style:italic}.code-highlight .err{border:1px solid red}.code-highlight .k{color:#BE74D5;font-weight:700}.code-highlight .o{color:#D19A66}.code-highlight .ch{color:#556366;font-style:italic}.code-highlight .cm{color:#556366;font-style:italic}.code-highlight .cp{color:#BC7A00;font-style:italic}.code-highlight .cpf{color:#556366;font-style:italic}.code-highlight .c1{color:#556366;font-style:italic}.code-highlight .cs{color:#556366;font-style:italic}.code-highlight .gd{color:#A00000}.code-highlight .ge{font-style:italic}.code-highlight .gr{color:red}.code-highlight .gh{color:navy;font-weight:700}.code-highlight .gi{color:#00A000}.code-highlight .go{color:#888}.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{color:#BE74D5;font-weight:700}.code-highlight .kd{color:#BE74D5;font-weight:700}.code-highlight .kn{color:#BE74D5;font-weight:700}.code-highlight .kp{color:#BE74D5;font-weight:700}.code-highlight .kr{color:#BE74D5;font-weight:700}.code-highlight .kt{color:#D46C72;font-weight:700}.code-highlight .m{color:#D19A66}.code-highlight .s{color:#86C372}.code-highlight .na{color:#7D9029}.code-highlight .nb{color:#BE74D5}.code-highlight .nc{color:#61AFEF;font-weight:700}.code-highlight .no{color:#D19A66}.code-highlight .nd{color:#A2F}.code-highlight .ni{color:#999;font-weight:700}.code-highlight .ne{color:#D2413A;font-weight:700}.code-highlight .nf{color:#61AFEF}.code-highlight .nl{color:#A0A000}.code-highlight .nn{color:#61AFEF;font-weight:700}.code-highlight .nt{color:#BE74D5;font-weight:700}.code-highlight .nv{color:#DFC06F}.code-highlight .ow{color:#A2F;font-weight:700}.code-highlight .w{color:#D7DAE0}.code-highlight .mb{color:#D19A66}.code-highlight .mf{color:#D19A66}.code-highlight .mh{color:#D19A66}.code-highlight .mi{color:#D19A66}.code-highlight .mo{color:#D19A66}.code-highlight .sa{color:#86C372}.code-highlight .sb{color:#86C372}.code-highlight .sc{color:#86C372}.code-highlight .dl{color:#86C372}.code-highlight .sd{color:#86C372;font-style:italic}.code-highlight .s2{color:#86C372}.code-highlight .se{color:#B62;font-weight:700}.code-highlight .sh{color:#86C372}.code-highlight .si{color:#B68;font-weight:700}.code-highlight .sx{color:#BE74D5}.code-highlight .sr{color:#B68}.code-highlight .s1{color:#86C372}.code-highlight .ss{color:#DFC06F}.code-highlight .bp{color:#BE74D5}.code-highlight .fm{color:#61AFEF}.code-highlight .vc{color:#DFC06F}.code-highlight .vg{color:#DFC06F}.code-highlight .vi{color:#DFC06F}.code-highlight .vm{color:#DFC06F}.code-highlight .il{color:#D19A66}.searxng-navbar{background:#29314D;height:2.3rem;font-size:1.3rem;line-height:1.3rem;padding:.5rem;font-weight:700;margin-bottom:.8rem}.searxng-navbar a,.searxng-navbar a:hover{margin-right:2rem;color:#fff;text-decoration:none}.searxng-navbar .instance a{color:#01D7D4;margin-left:2rem}#main-logo{margin-top:20vh;margin-bottom:25px}#main-logo>img{max-width:350px;width:80%}*{border-radius:0!important}html{position:relative;min-height:100%;color:#29314D}body{font-family:Roboto,Helvetica,Arial,sans-serif;margin-bottom:80px;background-color:#fff}body a{color:#08C}.footer{position:absolute;bottom:0;width:100%;height:60px;text-align:center;color:#999}input[type=checkbox]:checked+.label_hide_if_checked,input[type=checkbox]:checked+.label_hide_if_not_checked+.label_hide_if_checked{display:none}input[type=checkbox]:not(:checked)+.label_hide_if_checked+.label_hide_if_not_checked,input[type=checkbox]:not(:checked)+.label_hide_if_not_checked{display:none}.onoff-checkbox{width:15%}.onoffswitch{position:relative;width:110px;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none}.onoffswitch-checkbox{opacity:0;position:absolute}.onoffswitch-checkbox:before{content:"";display:inline-block;width:16px;height:16px;margin-right:10px;position:absolute;left:0;bottom:1px;background-color:#fff;border:1px solid #ccc;border-radius:0}.onoffswitch-label{display:block;overflow:hidden;cursor:pointer;border:2px solid #FFF!important;border-radius:50px!important}.onoffswitch-inner{display:block;transition:margin .3s ease-in 0s}.onoffswitch-inner:after,.onoffswitch-inner:before{display:block;float:left;width:50%;height:30px;padding:0;line-height:40px;font-size:20px;box-sizing:border-box;content:"";background-color:#EEE}.onoffswitch-switch{display:block;width:37px;background-color:#01D7D4;position:absolute;top:0;bottom:0;right:0;border:2px solid #FFF;border-radius:50px!important;transition:all .3s ease-in 0s}.onoffswitch-checkbox:checked+.onoffswitch-label .onoffswitch-inner{margin-right:0}.onoffswitch-checkbox:checked+.onoffswitch-label .onoffswitch-switch{right:71px;background-color:#A1A1A1}.onoffswitch-checkbox:focus+.onoffswitch-label .onoffswitch-switch{border:3px solid #444}.result_header{margin-top:0;margin-bottom:2px;font-size:16px}.result_header .favicon{margin-bottom:-3px}.result_header a{color:#29314D;text-decoration:none}.result_header a:hover{color:#08C}.result_header a:visited{color:#684898}.result_header a .highlight{background-color:#F6F9FA}.result-content,.result-format,.result-source{margin-top:2px;margin-bottom:0;word-wrap:break-word;color:#666;font-size:13px}.result .highlight{font-weight:700}.result-source{font-size:10px;float:left}.result-format{font-size:10px;float:right}.result-abstract{margin-top:.5em;margin-bottom:.8em}.external-link{color:#068922;font-size:12px;margin-bottom:15px}.external-link a{margin-right:3px}.result-code,.result-default,.result-map,.result-torrent,.result-videos{clear:both;padding:.5em 4px}.result-code:hover,.result-default:hover,.result-map:hover,.result-torrent:hover,.result-videos:hover{background-color:#F6F9FA}.result-images{float:left!important;margin:0;padding:0}.result-images a{display:block;width:100%;background-size:cover}.result-images a .img-thumbnail{border:none!important;padding:0}.result-images a:focus,.result-images a:hover{outline:0}.result-images a:focus .img-thumbnail,.result-images a:hover .img-thumbnail{box-shadow:5px 5px 15px 0 #000}.result-images.js a .img-thumbnail{max-height:inherit;min-height:inherit}.result-images:not(.js){width:25%;padding:3px 13px 13px 3px}.result-images:not(.js) a .img-thumbnail{margin:0;max-height:128px;min-height:128px}.img-thumbnail{margin:5px;max-height:128px;min-height:128px}.result-videos{clear:both}.result-videos hr{margin:5px 0 15px 0}.result-videos .collapse{width:100%}.result-videos .in{margin-bottom:8px}.result-torrent{clear:both}.result-torrent b{margin-right:5px;margin-left:5px}.result-torrent .seeders{color:#2ecc71}.result-torrent .leechers{color:#F35E77}.result-metadata{clear:both;margin:1em}.result-metadata td{padding-right:1em;color:#A4A4A4}.result-metadata td:first-of-type{color:#666}.result-map{clear:both}.result-map .img-thumbnail{float:right;width:auto;height:120px;border:0;background:inherit}.result-map .img-type{width:20px;max-height:20px}.result-map .result-map-details{font-size:13px;border-collapse:separate;border-spacing:0 .35rem}.result-map .result-map-details th{font-weight:inherit;width:20rem;vertical-align:top}.result-map .result-map-details td{vertical-align:top}.result-code{clear:both}.result-code .code-fork,.result-code .code-fork a{color:#666}.suggestion_item{margin:2px 5px;max-width:100%}.suggestion_item .btn{max-width:100%;white-space:normal;word-wrap:break-word;text-align:left}.result_download{margin-right:5px}#pagination{margin-top:30px;padding-bottom:60px}.label-default{color:#666;background:0 0}.result .text-muted small{word-wrap:break-word}.modal-wrapper{box-shadow:0 5px 15px rgba(0,0,0,.5)}.modal-wrapper{background-clip:padding-box;background-color:#fff;border:1px solid rgba(0,0,0,.2);border-radius:6px;box-shadow:0 3px 9px rgba(0,0,0,.5);outline:0 none;position:relative}@media screen and (max-width:75em){.img-thumbnail{object-fit:cover}}.infobox .panel-heading{background-color:#F6F9FA}.infobox .panel-heading .panel-title{font-weight:700}.infobox .header_url{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block}.infobox p{font-family:"DejaVu Serif",Georgia,Cambria,"Times New Roman",Times,serif!important;font-style:italic}.infobox img{max-height:"250px"}.infobox .btn{background-color:#007AB8;border:none}.infobox .btn a{color:#fff;margin:5px}.infobox .infobox_part{margin-bottom:20px;word-wrap:break-word;table-layout:fixed}.infobox .infobox_part:last-child{margin-bottom:0}.infobox .infobox_toggle{width:100%;text-align:center;margin-bottom:0;cursor:pointer}.infobox .infobox_toggle:hover{background:#DDD}.infobox .infobox_checkbox~.infobox_body{max-height:300px;overflow:hidden}.infobox .infobox_checkbox:checked~.infobox_body{max-height:none}.infobox .infobox_checkbox~.infobox_toggle .infobox_label_down{display:block}.infobox .infobox_checkbox~.infobox_toggle .infobox_label_up{display:none}.infobox .infobox_checkbox:checked~.infobox_toggle .infobox_label_up{display:block}.infobox .infobox_checkbox:checked~.infobox_toggle .infobox_label_down{display:none}.infobox .infobox_checkbox~.infobox_body img.infobox_part{display:none}.infobox .infobox_checkbox:checked~.infobox_body img.infobox_part{display:block}#categories,.search_categories{text-transform:capitalize;margin-bottom:.5rem;display:flex;flex-wrap:wrap;flex-flow:row wrap;align-content:stretch}#categories .input-group-addon,#categories label,.search_categories .input-group-addon,.search_categories label{flex-grow:1;flex-basis:auto;font-size:1.2rem;font-weight:400;background-color:#fff;border:#DDD 1px solid;border-right:none;color:#666;padding-bottom:.4rem;padding-top:.4rem;text-align:center;min-width:50px}#categories .input-group-addon:last-child,#categories label:last-child,.search_categories .input-group-addon:last-child,.search_categories label:last-child{border-right:#DDD 1px solid}#categories input[type=checkbox]:checked+label,.search_categories input[type=checkbox]:checked+label{color:#29314D;font-weight:700;border-bottom:#01D7D4 5px solid}#main-logo{margin-top:24vh;margin-bottom:25px}#main-logo>img{max-width:350px;width:80%}#q{box-shadow:none;border-right:none;border-color:#888}#search_form .input-group-btn .btn{border-color:#888}#search_form .input-group-btn .btn:hover{background-color:#068922;color:#fff}.custom-select,.custom-select-rtl{appearance:none;-webkit-appearance:none;-moz-appearance:none;font-size:1.2rem;font-weight:400;background-color:#fff;border:#888 1px solid;color:#666;background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAA8AAAAPCAQAAACR313BAAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAAAmJLR0QA/4ePzL8AAAAJcEhZcwAABFkAAARZAVnbJUkAAAAHdElNRQfgBxgLDwB20OFsAAAAbElEQVQY073OsQ3CMAAEwJMYwJGnsAehpoXJItltBkmcdZBYgIIiQoLglnz3ui+eP+bk5uneteTMZJa6OJuIqvYzSJoqwqBq8gdmTTW86/dghxAUq4xsVYT9laBYXCw93Aajh7GPEF23t4fkBYevGFTANkPRAAAAJXRFWHRkYXRlOmNyZWF0ZQAyMDE2LTA3LTI0VDExOjU1OjU4KzAyOjAwRFqFOQAAACV0RVh0ZGF0ZTptb2RpZnkAMjAxNi0wNy0yNFQxMToxNTowMCswMjowMP7RDgQAAAAZdEVYdFNvZnR3YXJlAHd3dy5pbmtzY2FwZS5vcmeb7jwaAAAAAElFTkSuQmCC) 96% no-repeat}.custom-select-rtl{background-position-x:4%}.search-margin{margin-bottom:.6em}.visually-hidden{position:absolute!important;height:1px;width:1px;overflow:hidden;clip:rect(1px,1px,1px,1px);white-space:nowrap}.btn-danger,.label-danger{background:#c9432f}.btn-success,.label-success{background:#068922}select.form-control{border-color:#888!important}#advanced-search-container{display:none;text-align:left;margin-bottom:1rem;clear:both}#advanced-search-container .input-group-addon,#advanced-search-container label{font-size:1.2rem;font-weight:400;background-color:#fff;border:#DDD 1px solid;border-right:none;color:#666;padding-bottom:.4rem;padding-right:.7rem;padding-left:.7rem}#advanced-search-container .input-group-addon:last-child,#advanced-search-container label:last-child{border-right:#DDD 1px solid}#advanced-search-container input[type=radio]{display:none}#advanced-search-container input[type=radio]:checked+label{color:#29314D;font-weight:700;border-bottom:#01D7D4 5px solid}#check-advanced:focus+label{text-decoration:underline}#check-advanced:checked~#advanced-search-container{display:block}.advanced{padding:0;margin-top:.3rem;text-align:right}.advanced label,.advanced select{cursor:pointer}.cursor-text{cursor:text!important}.cursor-pointer{cursor:pointer!important}code,pre{font-family:'Ubuntu Mono','Courier New','Lucida Console',monospace!important}.code-highlight pre{margin-bottom:25px;padding:20px 10px;background-color:inherit;color:inherit;border:inherit;color:#D7DAE0}.table>tbody>tr>td,.table>tbody>tr>th{vertical-align:middle!important}.nav-tabs.nav-justified{margin-bottom:20px}p{margin:10px 0}input.cursor-text{margin:10px 0}.engine-tooltip{display:none;position:absolute;padding:.5rem 1rem;margin:0 0 0 2rem;border:1px solid #ddd;box-shadow:2px 2px 2px 0 rgba(0,0,0,.1);background:#fff;font-size:14px;font-weight:400;z-index:1000000;max-width:40rem}.engine-tooltip:hover,td:hover .engine-tooltip,th:hover .engine-tooltip{display:inline-block}.stacked-bar-chart{margin:0;padding:0 .125rem 0 3rem;width:100%;width:-moz-available;width:-webkit-fill-available;width:fill;flex-direction:row;flex-wrap:nowrap;flex-grow:1;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:#000;border:1px solid rgba(0,0,0,.9);padding:.3rem 0}.stacked-bar-chart-rate80{display:flex;flex-shrink:0;flex-grow:0;flex-basis:unset;background:0 0;border:1px solid rgba(0,0,0,.3);padding:.3rem 0}.stacked-bar-chart-rate95{display:flex;flex-shrink:0;flex-grow:0;flex-basis:unset;background:0 0;border-bottom:1px dotted rgba(0,0,0,.5);padding:0}.stacked-bar-chart-rate100{display:flex;flex-shrink:0;flex-grow:0;flex-basis:unset;background:0 0;border-left:1px solid rgba(0,0,0,.9);padding:.4rem 0;width:1px}@supports (-webkit-marquee-repetition:infinite) and (object-fit:fill){.twitter-typeahead .tt-input:focus{z-index:2}.input-group-btn:last-child>.btn,.input-group-btn:last-child>.btn-group{margin-left:inherit!important}}/*# sourceMappingURL=logicodev.min.css.map */
\ No newline at end of file
+.github-issue-button{display:block;padding:8px 16px;font-family:sans-serif;font-size:16px;color:#fff;background-color:#238636!important;border:#2ea043;border-radius:10px!important;box-shadow:transparent 0 0 0 0}.github-issue-button:hover{background-color:#2ea043}.issue-hide{display:none}.engine-stats .engine-name{width:20rem}.engine-stats .engine-score{width:7rem;text-align:right}.engine-stats .engine-reliability{text-align:right}.engine-stats table.engine-error{max-width:1280px;margin:1rem;border:1px solid gray}.engine-stats failed-test,.engine-stats table.engine-error td.engine-error-type,.engine-stats table.engine-error th.engine-error-type{width:10rem}.engine-stats table.engine-error span.log_parameters{border-right:1px solid gray;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 #5bc0de;margin:1px 0}.bar-chart-serie1{border:3px solid #5bc0de;margin:1px 0;float:left}.bar-chart-serie2{border:3px solid #deb15b;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}.default-image-style{width:auto;max-height:60px;min-height:60px}.col-stat{width:10rem}@keyframes rotate-forever{0%{transform:rotate(0)}100%{transform:rotate(360deg)}}.loading-spinner{animation-duration:.75s;animation-iteration-count:infinite;animation-name:rotate-forever;animation-timing-function:linear;height:30px;width:30px;border:8px solid #666;border-right-color:transparent;border-radius:50%!important;margin:0 auto}html.infinite_scroll #pagination button{visibility:hidden}.code-highlight .linenos{-webkit-touch-callout:none;-webkit-user-select:none;-khtml-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;cursor:default;margin-right:8px;text-align:right}.code-highlight .linenos::selection{background:0 0}.code-highlight .linenos::-moz-selection{background:0 0}.code-highlight pre{line-height:125%}.code-highlight td.linenos .normal{color:inherit;background-color:transparent;padding-left:5px;padding-right:5px}.code-highlight span.linenos{color:inherit;background-color:transparent;padding-left:5px;padding-right:5px}.code-highlight td.linenos .special{color:#000;background-color:#ffffc0;padding-left:5px;padding-right:5px}.code-highlight span.linenos.special{color:#000;background-color:#ffffc0;padding-left:5px;padding-right:5px}.code-highlight .hll{background-color:#ffc}.code-highlight{background:#282C34}.code-highlight .c{color:#556366;font-style:italic}.code-highlight .err{border:1px solid red}.code-highlight .k{color:#BE74D5;font-weight:700}.code-highlight .o{color:#D19A66}.code-highlight .ch{color:#556366;font-style:italic}.code-highlight .cm{color:#556366;font-style:italic}.code-highlight .cp{color:#BC7A00;font-style:italic}.code-highlight .cpf{color:#556366;font-style:italic}.code-highlight .c1{color:#556366;font-style:italic}.code-highlight .cs{color:#556366;font-style:italic}.code-highlight .gd{color:#A00000}.code-highlight .ge{font-style:italic}.code-highlight .gr{color:red}.code-highlight .gh{color:navy;font-weight:700}.code-highlight .gi{color:#00A000}.code-highlight .go{color:#888}.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{color:#BE74D5;font-weight:700}.code-highlight .kd{color:#BE74D5;font-weight:700}.code-highlight .kn{color:#BE74D5;font-weight:700}.code-highlight .kp{color:#BE74D5;font-weight:700}.code-highlight .kr{color:#BE74D5;font-weight:700}.code-highlight .kt{color:#D46C72;font-weight:700}.code-highlight .m{color:#D19A66}.code-highlight .s{color:#86C372}.code-highlight .na{color:#7D9029}.code-highlight .nb{color:#BE74D5}.code-highlight .nc{color:#61AFEF;font-weight:700}.code-highlight .no{color:#D19A66}.code-highlight .nd{color:#A2F}.code-highlight .ni{color:#999;font-weight:700}.code-highlight .ne{color:#D2413A;font-weight:700}.code-highlight .nf{color:#61AFEF}.code-highlight .nl{color:#A0A000}.code-highlight .nn{color:#61AFEF;font-weight:700}.code-highlight .nt{color:#BE74D5;font-weight:700}.code-highlight .nv{color:#DFC06F}.code-highlight .ow{color:#A2F;font-weight:700}.code-highlight .w{color:#D7DAE0}.code-highlight .mb{color:#D19A66}.code-highlight .mf{color:#D19A66}.code-highlight .mh{color:#D19A66}.code-highlight .mi{color:#D19A66}.code-highlight .mo{color:#D19A66}.code-highlight .sa{color:#86C372}.code-highlight .sb{color:#86C372}.code-highlight .sc{color:#86C372}.code-highlight .dl{color:#86C372}.code-highlight .sd{color:#86C372;font-style:italic}.code-highlight .s2{color:#86C372}.code-highlight .se{color:#B62;font-weight:700}.code-highlight .sh{color:#86C372}.code-highlight .si{color:#B68;font-weight:700}.code-highlight .sx{color:#BE74D5}.code-highlight .sr{color:#B68}.code-highlight .s1{color:#86C372}.code-highlight .ss{color:#DFC06F}.code-highlight .bp{color:#BE74D5}.code-highlight .fm{color:#61AFEF}.code-highlight .vc{color:#DFC06F}.code-highlight .vg{color:#DFC06F}.code-highlight .vi{color:#DFC06F}.code-highlight .vm{color:#DFC06F}.code-highlight .il{color:#D19A66}.searxng-navbar{background:#29314D;height:2.3rem;font-size:1.3rem;line-height:1.3rem;padding:.5rem;font-weight:700;margin-bottom:.8rem}.searxng-navbar a,.searxng-navbar a:hover{margin-right:2rem;color:#fff;text-decoration:none}.searxng-navbar .instance a{color:#01D7D4;margin-left:2rem}#main-logo{margin-top:20vh;margin-bottom:25px}#main-logo>img{max-width:350px;width:80%}*{border-radius:0!important}html{position:relative;min-height:100%;color:#29314D}body{font-family:Roboto,Helvetica,Arial,sans-serif;margin-bottom:80px;background-color:#fff}body a{color:#08C}.footer{position:absolute;bottom:0;width:100%;height:60px;text-align:center;color:#999}input[type=checkbox]:checked+.label_hide_if_checked,input[type=checkbox]:checked+.label_hide_if_not_checked+.label_hide_if_checked{display:none}input[type=checkbox]:not(:checked)+.label_hide_if_checked+.label_hide_if_not_checked,input[type=checkbox]:not(:checked)+.label_hide_if_not_checked{display:none}.onoff-checkbox{width:15%}.onoffswitch{position:relative;width:110px;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none}.onoffswitch-checkbox{opacity:0;position:absolute}.onoffswitch-checkbox:before{content:"";display:inline-block;width:16px;height:16px;margin-right:10px;position:absolute;left:0;bottom:1px;background-color:#fff;border:1px solid #ccc;border-radius:0}.onoffswitch-label{display:block;overflow:hidden;cursor:pointer;border:2px solid #FFF!important;border-radius:50px!important}.onoffswitch-inner{display:block;transition:margin .3s ease-in 0s}.onoffswitch-inner:after,.onoffswitch-inner:before{display:block;float:left;width:50%;height:30px;padding:0;line-height:40px;font-size:20px;box-sizing:border-box;content:"";background-color:#EEE}.onoffswitch-switch{display:block;width:37px;background-color:#01D7D4;position:absolute;top:0;bottom:0;right:0;border:2px solid #FFF;border-radius:50px!important;transition:all .3s ease-in 0s}.onoffswitch-checkbox:checked+.onoffswitch-label .onoffswitch-inner{margin-right:0}.onoffswitch-checkbox:checked+.onoffswitch-label .onoffswitch-switch{right:71px;background-color:#A1A1A1}.onoffswitch-checkbox:focus+.onoffswitch-label .onoffswitch-switch{border:3px solid #444}.result_header{margin-top:0;margin-bottom:2px;font-size:16px}.result_header .favicon{margin-bottom:-3px}.result_header a{color:#29314D;text-decoration:none}.result_header a:hover{color:#08C}.result_header a:visited{color:#684898}.result_header a .highlight{background-color:#F6F9FA}.result-content,.result-format,.result-source{margin-top:2px;margin-bottom:0;word-wrap:break-word;color:#666;font-size:13px}.result .highlight{font-weight:700}.result-source{font-size:10px;float:left}.result-format{font-size:10px;float:right}.result-abstract{margin-top:.5em;margin-bottom:.8em}.external-link{color:#068922;font-size:12px;margin-bottom:15px}.external-link a{margin-right:3px}.result-code,.result-default,.result-map,.result-torrent,.result-videos{clear:both;padding:.5em 4px}.result-code:hover,.result-default:hover,.result-map:hover,.result-torrent:hover,.result-videos:hover{background-color:#F6F9FA}.result-images{float:left!important;margin:0;padding:0}.result-images a{display:block;width:100%;background-size:cover}.result-images a .img-thumbnail{border:none!important;padding:0}.result-images a:focus,.result-images a:hover{outline:0}.result-images a:focus .img-thumbnail,.result-images a:hover .img-thumbnail{box-shadow:5px 5px 15px 0 #000}.result-images.js a .img-thumbnail{max-height:inherit;min-height:inherit}.result-images:not(.js){width:25%;padding:3px 13px 13px 3px}.result-images:not(.js) a .img-thumbnail{margin:0;max-height:128px;min-height:128px}.img-thumbnail{margin:5px;max-height:128px;min-height:128px}.result-videos{clear:both}.result-videos hr{margin:5px 0 15px 0}.result-videos .collapse{width:100%}.result-videos .in{margin-bottom:8px}.result-torrent{clear:both}.result-torrent b{margin-right:5px;margin-left:5px}.result-torrent .seeders{color:#2ecc71}.result-torrent .leechers{color:#F35E77}.result-metadata{clear:both;margin:1em}.result-metadata td{padding-right:1em;color:#A4A4A4}.result-metadata td:first-of-type{color:#666}.result-map{clear:both}.result-map .img-thumbnail{float:right;width:auto;height:120px;border:0;background:inherit}.result-map .img-type{width:20px;max-height:20px}.result-map .result-map-details{font-size:13px;border-collapse:separate;border-spacing:0 .35rem}.result-map .result-map-details th{font-weight:inherit;width:20rem;vertical-align:top}.result-map .result-map-details td{vertical-align:top}.result-code{clear:both}.result-code .code-fork,.result-code .code-fork a{color:#666}.suggestion_item{margin:2px 5px;max-width:100%}.suggestion_item .btn{max-width:100%;white-space:normal;word-wrap:break-word;text-align:left}.result_download{margin-right:5px}#pagination{margin-top:30px;padding-bottom:60px}.label-default{color:#666;background:0 0}.result .text-muted small{word-wrap:break-word}.modal-wrapper{box-shadow:0 5px 15px rgba(0,0,0,.5)}.modal-wrapper{background-clip:padding-box;background-color:#fff;border:1px solid rgba(0,0,0,.2);border-radius:6px;box-shadow:0 3px 9px rgba(0,0,0,.5);outline:0 none;position:relative}@media screen and (max-width:75em){.img-thumbnail{object-fit:cover}}.infobox .panel-heading{background-color:#F6F9FA}.infobox .panel-heading .panel-title{font-weight:700}.infobox .header_url{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block}.infobox p{font-family:"DejaVu Serif",Georgia,Cambria,"Times New Roman",Times,serif!important;font-style:italic}.infobox img{max-height:"250px"}.infobox .btn{background-color:#007AB8;border:none}.infobox .btn a{color:#fff;margin:5px}.infobox .infobox_part{margin-bottom:20px;word-wrap:break-word;table-layout:fixed}.infobox .infobox_part:last-child{margin-bottom:0}.infobox .infobox_toggle{width:100%;text-align:center;margin-bottom:0;cursor:pointer}.infobox .infobox_toggle:hover{background:#DDD}.infobox .infobox_checkbox~.infobox_body{max-height:300px;overflow:hidden}.infobox .infobox_checkbox:checked~.infobox_body{max-height:none}.infobox .infobox_checkbox~.infobox_toggle .infobox_label_down{display:block}.infobox .infobox_checkbox~.infobox_toggle .infobox_label_up{display:none}.infobox .infobox_checkbox:checked~.infobox_toggle .infobox_label_up{display:block}.infobox .infobox_checkbox:checked~.infobox_toggle .infobox_label_down{display:none}.infobox .infobox_checkbox~.infobox_body img.infobox_part{display:none}.infobox .infobox_checkbox:checked~.infobox_body img.infobox_part{display:block}#categories,.search_categories{text-transform:capitalize;margin-bottom:.5rem;display:flex;flex-wrap:wrap;flex-flow:row wrap;align-content:stretch}#categories .input-group-addon,#categories label,.search_categories .input-group-addon,.search_categories label{flex-grow:1;flex-basis:auto;font-size:1.2rem;font-weight:400;background-color:#fff;border:#DDD 1px solid;border-right:none;color:#666;padding-bottom:.4rem;padding-top:.4rem;text-align:center;min-width:50px}#categories .input-group-addon:last-child,#categories label:last-child,.search_categories .input-group-addon:last-child,.search_categories label:last-child{border-right:#DDD 1px solid}#categories input[type=checkbox]:checked+label,.search_categories input[type=checkbox]:checked+label{color:#29314D;font-weight:700;border-bottom:#01D7D4 5px solid}#main-logo{margin-top:24vh;margin-bottom:25px}#main-logo>img{max-width:350px;width:80%}#q{box-shadow:none;border-right:none;border-color:#888}#search_form .input-group-btn .btn{border-color:#888}#search_form .input-group-btn .btn:hover{background-color:#068922;color:#fff}.custom-select,.custom-select-rtl{appearance:none;-webkit-appearance:none;-moz-appearance:none;font-size:1.2rem;font-weight:400;background-color:#fff;border:#888 1px solid;color:#666;background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAA8AAAAPCAQAAACR313BAAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAAAmJLR0QA/4ePzL8AAAAJcEhZcwAABFkAAARZAVnbJUkAAAAHdElNRQfgBxgLDwB20OFsAAAAbElEQVQY073OsQ3CMAAEwJMYwJGnsAehpoXJItltBkmcdZBYgIIiQoLglnz3ui+eP+bk5uneteTMZJa6OJuIqvYzSJoqwqBq8gdmTTW86/dghxAUq4xsVYT9laBYXCw93Aajh7GPEF23t4fkBYevGFTANkPRAAAAJXRFWHRkYXRlOmNyZWF0ZQAyMDE2LTA3LTI0VDExOjU1OjU4KzAyOjAwRFqFOQAAACV0RVh0ZGF0ZTptb2RpZnkAMjAxNi0wNy0yNFQxMToxNTowMCswMjowMP7RDgQAAAAZdEVYdFNvZnR3YXJlAHd3dy5pbmtzY2FwZS5vcmeb7jwaAAAAAElFTkSuQmCC) 96% no-repeat}.custom-select-rtl{background-position-x:4%}.search-margin{margin-bottom:.6em}.visually-hidden{position:absolute!important;height:1px;width:1px;overflow:hidden;clip:rect(1px,1px,1px,1px);white-space:nowrap}.btn-danger,.label-danger{background:#c9432f}.btn-success,.label-success{background:#068922}select.form-control{border-color:#888!important}#advanced-search-container{display:none;text-align:left;margin-bottom:1rem;clear:both}#advanced-search-container .input-group-addon,#advanced-search-container label{font-size:1.2rem;font-weight:400;background-color:#fff;border:#DDD 1px solid;border-right:none;color:#666;padding-bottom:.4rem;padding-right:.7rem;padding-left:.7rem}#advanced-search-container .input-group-addon:last-child,#advanced-search-container label:last-child{border-right:#DDD 1px solid}#advanced-search-container input[type=radio]{display:none}#advanced-search-container input[type=radio]:checked+label{color:#29314D;font-weight:700;border-bottom:#01D7D4 5px solid}#check-advanced:focus+label{text-decoration:underline}#check-advanced:checked~#advanced-search-container{display:block}.advanced{padding:0;margin-top:.3rem;text-align:right}.advanced label,.advanced select{cursor:pointer}.cursor-text{cursor:text!important}.cursor-pointer{cursor:pointer!important}code,pre{font-family:'Ubuntu Mono','Courier New','Lucida Console',monospace!important}.code-highlight pre{margin-bottom:25px;padding:20px 10px;background-color:inherit;color:inherit;border:inherit;color:#D7DAE0}.table>tbody>tr>td,.table>tbody>tr>th{vertical-align:middle!important}.nav-tabs.nav-justified{margin-bottom:20px}p{margin:10px 0}input.cursor-text{margin:10px 0}.engine-tooltip{display:none;position:absolute;padding:.5rem 1rem;margin:0 0 0 2rem;border:1px solid #ddd;box-shadow:2px 2px 2px 0 rgba(0,0,0,.1);background:#fff;font-size:14px;font-weight:400;z-index:1000000;max-width:40rem}.engine-tooltip:hover,td:hover .engine-tooltip,th:hover .engine-tooltip{display:inline-block}.stacked-bar-chart{margin:0;padding:0 .125rem 0 3rem;width:100%;width:-moz-available;width:-webkit-fill-available;width:fill;flex-direction:row;flex-wrap:nowrap;flex-grow:1;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:#000;border:1px solid rgba(0,0,0,.9);padding:.3rem 0}.stacked-bar-chart-rate80{display:flex;flex-shrink:0;flex-grow:0;flex-basis:unset;background:0 0;border:1px solid rgba(0,0,0,.3);padding:.3rem 0}.stacked-bar-chart-rate95{display:flex;flex-shrink:0;flex-grow:0;flex-basis:unset;background:0 0;border-bottom:1px dotted rgba(0,0,0,.5);padding:0}.stacked-bar-chart-rate100{display:flex;flex-shrink:0;flex-grow:0;flex-basis:unset;background:0 0;border-left:1px solid rgba(0,0,0,.9);padding:.4rem 0;width:1px}@supports (-webkit-marquee-repetition:infinite) and (object-fit:fill){.twitter-typeahead .tt-input:focus{z-index:2}.input-group-btn:last-child>.btn,.input-group-btn:last-child>.btn-group{margin-left:inherit!important}}/*# sourceMappingURL=logicodev.min.css.map */
\ No newline at end of file
diff --git a/searx/static/themes/oscar/css/logicodev.min.css.map b/searx/static/themes/oscar/css/logicodev.min.css.map
index 52840b8ad..346ecbc4f 100644
--- a/searx/static/themes/oscar/css/logicodev.min.css.map
+++ b/searx/static/themes/oscar/css/logicodev.min.css.map
@@ -1 +1 @@
-{"version":3,"sources":["../../__common__/less/new_issue.less","../../__common__/less/stats.less","../src/less/logicodev/preferences.less","../../__common__/less/result_templates.less","../src/less/result_templates.less","../src/less/preferences.less","../src/generated/pygments-logicodev.less","../src/less/logicodev/navbar.less","../src/less/logicodev/footer.less","../src/less/logicodev/checkbox.less","../src/less/logicodev/onoff.less","../src/less/logicodev/results.less","../src/less/logicodev/infobox.less","../src/less/logicodev/search.less","../src/less/logicodev/advanced.less","../src/less/logicodev/cursor.less","../src/less/logicodev/code.less","../src/less/safari.css"],"names":[],"mappings":"AAAA,qBACI,QAAA,MACA,QAAA,IAAA,KACA,YAAA,WACA,UAAA,KACA,MAAA,KACA,iBAAA,kBACA,OAAA,QACA,cAAA,eACA,WAAA,YAAA,EAAA,EAAA,EAAA,EAGgB,2BAChB,iBAAA,QAGJ,YACI,QAAA,KCfA,2BACI,MAAA,MAGJ,4BACI,MAAA,KACA,WAAA,MASJ,kCACI,WAAA,MAGC,iCACD,UAAA,OACA,OAAA,KACA,OAAA,IAAA,MAAA,KAKJ,0BADqB,sDADA,sDAGjB,MAAA,MAGmB,qDAEnB,aAAA,IAAA,MAAA,KACA,QAAA,EAAA,KAAA,EAAA,EACA,OAAA,EAAA,EAAA,EAAA,MAIR,iBACI,MAAA,IACA,QAAA,aACA,WAAA,MACA,cAAA,MAGJ,iBACI,MAAO,kBACP,QAAA,aAGJ,eACI,OAAA,IAAA,MAAA,QACA,OAAA,IAAA,EAGJ,kBACI,OAAA,IAAA,MAAA,QACA,OAAA,IAAA,EACA,MAAA,KAGJ,kBACI,OAAA,IAAA,MAAA,QACA,OAAA,IAAA,EACA,MAAA,KAGJ,MACI,MAAA,EACA,OAAA,ECxEH,MD+EO,MAAA,GC/EP,MD+EO,MAAA,GC/EP,MD+EO,MAAA,GC/EP,MD+EO,MAAA,GC/EP,MD+EO,MAAA,GC/EP,MD+EO,MAAA,GC/EP,MD+EO,MAAA,GC/EP,MD+EO,MAAA,GC/EP,MD+EO,MAAA,GC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,QD+EO,MAAA,KE/ER,aACI,OAAA,MACA,MAAA,KACA,OAAA,KAAA,ECHJ,qBACI,MAAA,KACA,WAAA,KACA,WAAA,KCHJ,UACI,MAAA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"}
\ No newline at end of file
+{"version":3,"sources":["../../__common__/less/new_issue.less","../../__common__/less/stats.less","../src/less/logicodev/search.less","../../__common__/less/result_templates.less","../src/less/result_templates.less","../src/less/preferences.less","../src/less/infinite_scroll.less","../src/generated/pygments-logicodev.less","../src/less/logicodev/navbar.less","../src/less/logicodev/footer.less","../src/less/logicodev/checkbox.less","../src/less/logicodev/onoff.less","../src/less/logicodev/results.less","../src/less/logicodev/infobox.less","../src/less/logicodev/advanced.less","../src/less/logicodev/cursor.less","../src/less/logicodev/code.less","../src/less/logicodev/preferences.less","../src/less/safari.css"],"names":[],"mappings":"AAAA,qBACI,QAAA,MACA,QAAA,IAAA,KACA,YAAA,WACA,UAAA,KACA,MAAA,KACA,iBAAA,kBACA,OAAA,QACA,cAAA,eACA,WAAA,YAAA,EAAA,EAAA,EAAA,EAGgB,2BAChB,iBAAA,QAGJ,YACI,QAAA,KCfA,2BACI,MAAA,MAGJ,4BACI,MAAA,KACA,WAAA,MASJ,kCACI,WAAA,MAGC,iCACD,UAAA,OACA,OAAA,KACA,OAAA,IAAA,MAAA,KAKJ,0BADqB,sDADA,sDAGjB,MAAA,MAGmB,qDAEnB,aAAA,IAAA,MAAA,KACA,QAAA,EAAA,KAAA,EAAA,EACA,OAAA,EAAA,EAAA,EAAA,MAIR,iBACI,MAAA,IACA,QAAA,aACA,WAAA,MACA,cAAA,MAGJ,iBACI,MAAO,kBACP,QAAA,aAGJ,eACI,OAAA,IAAA,MAAA,QACA,OAAA,IAAA,EAGJ,kBACI,OAAA,IAAA,MAAA,QACA,OAAA,IAAA,EACA,MAAA,KAGJ,kBACI,OAAA,IAAA,MAAA,QACA,OAAA,IAAA,EACA,MAAA,KAGJ,MACI,MAAA,EACA,OAAA,ECxEH,MD+EO,MAAA,GC/EP,MD+EO,MAAA,GC/EP,MD+EO,MAAA,GC/EP,MD+EO,MAAA,GC/EP,MD+EO,MAAA,GC/EP,MD+EO,MAAA,GC/EP,MD+EO,MAAA,GC/EP,MD+EO,MAAA,GC/EP,MD+EO,MAAA,GC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,QD+EO,MAAA,KE/ER,aACI,OAAA,MACA,MAAA,KACA,OAAA,KAAA,ECHJ,qBACI,MAAA,KACA,WAAA,KACA,WAAA,KCHJ,UACI,MAAA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"}
\ No newline at end of file
diff --git a/searx/static/themes/oscar/css/pointhi.css b/searx/static/themes/oscar/css/pointhi.css
index 26eaa17e6..909119a90 100644
--- a/searx/static/themes/oscar/css/pointhi.css
+++ b/searx/static/themes/oscar/css/pointhi.css
@@ -382,6 +382,29 @@
.col-stat {
width: 10rem;
}
+@keyframes rotate-forever {
+ 0% {
+ transform: rotate(0deg);
+ }
+ 100% {
+ transform: rotate(360deg);
+ }
+}
+.loading-spinner {
+ animation-duration: 0.75s;
+ animation-iteration-count: infinite;
+ animation-name: rotate-forever;
+ animation-timing-function: linear;
+ height: 30px;
+ width: 30px;
+ border: 8px solid #666;
+ border-right-color: transparent;
+ border-radius: 50% !important;
+ margin: 0 auto;
+}
+html.infinite_scroll #pagination button {
+ visibility: hidden;
+}
/*
this file is generated automatically by searxng_extra/update/update_pygments.py
using pygments version 2.11.2
diff --git a/searx/static/themes/oscar/css/pointhi.min.css b/searx/static/themes/oscar/css/pointhi.min.css
index 362739639..a13205013 100644
--- a/searx/static/themes/oscar/css/pointhi.min.css
+++ b/searx/static/themes/oscar/css/pointhi.min.css
@@ -1 +1 @@
-.github-issue-button{display:block;padding:8px 16px;font-family:sans-serif;font-size:16px;color:#fff;background-color:#238636!important;border:#2ea043;border-radius:10px!important;box-shadow:transparent 0 0 0 0}.github-issue-button:hover{background-color:#2ea043}.issue-hide{display:none}.engine-stats .engine-name{width:20rem}.engine-stats .engine-score{width:7rem;text-align:right}.engine-stats .engine-reliability{text-align:right}.engine-stats table.engine-error{max-width:1280px;margin:1rem;border:1px solid gray}.engine-stats failed-test,.engine-stats table.engine-error td.engine-error-type,.engine-stats table.engine-error th.engine-error-type{width:10rem}.engine-stats table.engine-error span.log_parameters{border-right:1px solid gray;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 #5bc0de;margin:1px 0}.bar-chart-serie1{border:3px solid #5bc0de;margin:1px 0;float:left}.bar-chart-serie2{border:3px solid #deb15b;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}.default-image-style{width:auto;max-height:60px;min-height:60px}.col-stat{width:10rem}.code-highlight .linenos{-webkit-touch-callout:none;-webkit-user-select:none;-khtml-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;cursor:default;margin-right:8px;text-align:right}.code-highlight .linenos::selection{background:0 0}.code-highlight .linenos::-moz-selection{background:0 0}.code-highlight pre{line-height:125%}.code-highlight td.linenos .normal{color:inherit;background-color:transparent;padding-left:5px;padding-right:5px}.code-highlight span.linenos{color:inherit;background-color:transparent;padding-left:5px;padding-right:5px}.code-highlight td.linenos .special{color:#000;background-color:#ffffc0;padding-left:5px;padding-right:5px}.code-highlight span.linenos.special{color:#000;background-color:#ffffc0;padding-left:5px;padding-right:5px}.code-highlight .hll{background-color:#ffc}.code-highlight{background:#f8f8f8}.code-highlight .c{color:#3D7B7B;font-style:italic}.code-highlight .err{border:1px solid red}.code-highlight .k{color:green;font-weight:700}.code-highlight .o{color:#666}.code-highlight .ch{color:#3D7B7B;font-style:italic}.code-highlight .cm{color:#3D7B7B;font-style:italic}.code-highlight .cp{color:#9C6500}.code-highlight .cpf{color:#3D7B7B;font-style:italic}.code-highlight .c1{color:#3D7B7B;font-style:italic}.code-highlight .cs{color:#3D7B7B;font-style:italic}.code-highlight .gd{color:#A00000}.code-highlight .ge{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{color:green;font-weight:700}.code-highlight .kd{color:green;font-weight:700}.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{color:#666}.code-highlight .mf{color:#666}.code-highlight .mh{color:#666}.code-highlight .mi{color:#666}.code-highlight .mo{color:#666}.code-highlight .sa{color:#BA2121}.code-highlight .sb{color:#BA2121}.code-highlight .sc{color:#BA2121}.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{color:#19177C}.code-highlight .vg{color:#19177C}.code-highlight .vi{color:#19177C}.code-highlight .vm{color:#19177C}.code-highlight .il{color:#666}html{position:relative;min-height:100%}body{margin-bottom:80px}.footer{position:absolute;bottom:0;width:100%;height:60px}input[type=checkbox]:checked+.label_hide_if_checked,input[type=checkbox]:checked+.label_hide_if_not_checked+.label_hide_if_checked{display:none}input[type=checkbox]:not(:checked)+.label_hide_if_checked+.label_hide_if_not_checked,input[type=checkbox]:not(:checked)+.label_hide_if_not_checked{display:none}.onoff-checkbox{width:15%}.onoffswitch{position:relative;width:110px;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none}.onoffswitch-checkbox{display:none}.onoffswitch-label{display:block;overflow:hidden;cursor:pointer;border:2px solid #FFF!important;border-radius:50px!important}.onoffswitch-inner{display:block;transition:margin .3s ease-in 0s}.onoffswitch-inner:after,.onoffswitch-inner:before{display:block;float:left;width:50%;height:30px;padding:0;line-height:40px;font-size:20px;box-sizing:border-box;content:"";background-color:#EEE}.onoffswitch-switch{display:block;width:37px;background-color:#0C0;position:absolute;top:0;bottom:0;right:0;border:2px solid #FFF!important;border-radius:50px!important;transition:all .3s ease-in 0s}.onoffswitch-checkbox:checked+.onoffswitch-label .onoffswitch-inner{margin-right:0}.onoffswitch-checkbox:checked+.onoffswitch-label .onoffswitch-switch{right:71px;background-color:#A1A1A1}.result_header{margin-bottom:5px;margin-top:20px}.result_header .favicon{margin-bottom:-3px}.result_header a{vertical-align:bottom}.result_header a .highlight{font-weight:700}.result-content{margin-top:5px;word-wrap:break-word}.result-content .highlight{font-weight:700}.result-default{clear:both}.result-images{float:left!important;height:138px}.img-thumbnail{margin:5px;max-height:128px}.result-videos{clear:both}.result-torrents{clear:both}.result-map{clear:both}.result-code{clear:both}.suggestion_item{margin:2px 5px;max-width:100%}.suggestion_item .btn{max-width:100%;white-space:normal;word-wrap:break-word;text-align:left}.result_download{margin-right:5px}#pagination{margin-top:30px;padding-bottom:50px}.label-default{color:#AAA;background:#FFF}.result .text-muted small{word-wrap:break-word}.modal-wrapper{box-shadow:0 5px 15px rgba(0,0,0,.5)}.modal-wrapper{background-clip:padding-box;background-color:#fff;border:1px solid rgba(0,0,0,.2);border-radius:6px;box-shadow:0 3px 9px rgba(0,0,0,.5);outline:0 none;position:relative}.highlight{font-weight:700}.infobox img{max-height:250px}.infobox .infobox_part{margin-bottom:20px;word-wrap:break-word;table-layout:fixed}.infobox .infobox_part:last-child{margin-bottom:0}.infobox .header_url{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block}.infobox .infobox_toggle{width:100%;text-align:center;margin-bottom:0}.infobox .infobox_checkbox~.infobox_body{max-height:300px;overflow:hidden}.infobox .infobox_checkbox:checked~.infobox_body{max-height:none}.infobox .infobox_checkbox~.infobox_toggle .infobox_label_down{display:block}.infobox .infobox_checkbox~.infobox_toggle .infobox_label_up{display:none}.infobox .infobox_checkbox:checked~.infobox_toggle .infobox_label_up{display:block}.infobox .infobox_checkbox:checked~.infobox_toggle .infobox_label_down{display:none}.infobox .infobox_checkbox~.infobox_body img.infobox_part{display:none}.infobox .infobox_checkbox:checked~.infobox_body img.infobox_part{display:block}#categories,.search_categories{text-transform:capitalize;margin-bottom:1.5rem;margin-top:1.5rem;display:flex;flex-wrap:wrap;align-content:stretch}#categories .input-group-addon,#categories label,.search_categories .input-group-addon,.search_categories label{flex-grow:1;flex-basis:auto;font-size:1.3rem;font-weight:400;background-color:#fff;border:#DDD 1px solid;border-right:none;color:#333;padding-bottom:.8rem;padding-top:.8rem;text-align:center;min-width:50px}#categories .input-group-addon:last-child,#categories label:last-child,.search_categories .input-group-addon:last-child,.search_categories label:last-child{border-right:#DDD 1px solid}#categories input[type=checkbox]:checked+label,.search_categories input[type=checkbox]:checked+label{color:#000;font-weight:700;background-color:#EEE}.visually-hidden{position:absolute!important;height:1px;width:1px;overflow:hidden;clip:rect(1px 1px 1px 1px);clip:rect(1px,1px,1px,1px);white-space:nowrap}#advanced-search-container{display:none;text-align:center;margin-bottom:1rem;clear:both}#advanced-search-container .input-group-addon,#advanced-search-container label{font-size:1.3rem;font-weight:400;background-color:#fff;border:#DDD 1px solid;border-right:none;color:#333;padding-bottom:.8rem;padding-left:1.2rem;padding-right:1.2rem}#advanced-search-container .input-group-addon:last-child,#advanced-search-container label:last-child{border-right:#DDD 1px solid}#advanced-search-container input[type=radio]{display:none}#advanced-search-container input[type=radio]:checked+label{color:#000;font-weight:700;background-color:#EEE}#check-advanced{display:none}#check-advanced:checked~#advanced-search-container{display:block}.advanced{padding:0;margin-top:.3rem;text-align:right}.advanced label,.advanced select{cursor:pointer}.cursor-text{cursor:text!important}.cursor-pointer{cursor:pointer!important}.searxng-navbar{background:#eee;color:#aaa;height:2.3rem;font-size:1.3rem;line-height:1.3rem;padding:.5rem;font-weight:700;margin-bottom:1.3rem}.searxng-navbar a,.searxng-navbar a:hover{margin-right:2rem;text-decoration:none}.searxng-navbar .instance a{color:#444;margin-left:2rem}.table>tbody>tr>td,.table>tbody>tr>th{vertical-align:middle!important}.engine-tooltip{display:none;position:absolute;padding:.5rem 1rem;margin:0 0 0 2rem;border:1px solid #ddd;box-shadow:2px 2px 2px 0 rgba(0,0,0,.1);background:#fff;font-size:14px;font-weight:400;z-index:1000000}.engine-tooltip:hover,td:hover .engine-tooltip,th:hover .engine-tooltip{display:inline-block}.stacked-bar-chart{margin:0;padding:0 .125rem 0 3rem;width:100%;width:-moz-available;width:-webkit-fill-available;width:fill;flex-direction:row;flex-wrap:nowrap;flex-grow:1;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:#000;border:1px solid rgba(0,0,0,.9);padding:.3rem 0}.stacked-bar-chart-rate80{display:flex;flex-shrink:0;flex-grow:0;flex-basis:unset;background:0 0;border:1px solid rgba(0,0,0,.3);padding:.3rem 0}.stacked-bar-chart-rate95{display:flex;flex-shrink:0;flex-grow:0;flex-basis:unset;background:0 0;border-bottom:1px dotted rgba(0,0,0,.5);padding:0}.stacked-bar-chart-rate100{display:flex;flex-shrink:0;flex-grow:0;flex-basis:unset;background:0 0;border-left:1px solid rgba(0,0,0,.9);padding:.4rem 0;width:1px}@supports (-webkit-marquee-repetition:infinite) and (object-fit:fill){.twitter-typeahead .tt-input:focus{z-index:2}.input-group-btn:last-child>.btn,.input-group-btn:last-child>.btn-group{margin-left:inherit!important}}/*# sourceMappingURL=pointhi.min.css.map */
\ No newline at end of file
+.github-issue-button{display:block;padding:8px 16px;font-family:sans-serif;font-size:16px;color:#fff;background-color:#238636!important;border:#2ea043;border-radius:10px!important;box-shadow:transparent 0 0 0 0}.github-issue-button:hover{background-color:#2ea043}.issue-hide{display:none}.engine-stats .engine-name{width:20rem}.engine-stats .engine-score{width:7rem;text-align:right}.engine-stats .engine-reliability{text-align:right}.engine-stats table.engine-error{max-width:1280px;margin:1rem;border:1px solid gray}.engine-stats failed-test,.engine-stats table.engine-error td.engine-error-type,.engine-stats table.engine-error th.engine-error-type{width:10rem}.engine-stats table.engine-error span.log_parameters{border-right:1px solid gray;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 #5bc0de;margin:1px 0}.bar-chart-serie1{border:3px solid #5bc0de;margin:1px 0;float:left}.bar-chart-serie2{border:3px solid #deb15b;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}.default-image-style{width:auto;max-height:60px;min-height:60px}.col-stat{width:10rem}@keyframes rotate-forever{0%{transform:rotate(0)}100%{transform:rotate(360deg)}}.loading-spinner{animation-duration:.75s;animation-iteration-count:infinite;animation-name:rotate-forever;animation-timing-function:linear;height:30px;width:30px;border:8px solid #666;border-right-color:transparent;border-radius:50%!important;margin:0 auto}html.infinite_scroll #pagination button{visibility:hidden}.code-highlight .linenos{-webkit-touch-callout:none;-webkit-user-select:none;-khtml-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;cursor:default;margin-right:8px;text-align:right}.code-highlight .linenos::selection{background:0 0}.code-highlight .linenos::-moz-selection{background:0 0}.code-highlight pre{line-height:125%}.code-highlight td.linenos .normal{color:inherit;background-color:transparent;padding-left:5px;padding-right:5px}.code-highlight span.linenos{color:inherit;background-color:transparent;padding-left:5px;padding-right:5px}.code-highlight td.linenos .special{color:#000;background-color:#ffffc0;padding-left:5px;padding-right:5px}.code-highlight span.linenos.special{color:#000;background-color:#ffffc0;padding-left:5px;padding-right:5px}.code-highlight .hll{background-color:#ffc}.code-highlight{background:#f8f8f8}.code-highlight .c{color:#3D7B7B;font-style:italic}.code-highlight .err{border:1px solid red}.code-highlight .k{color:green;font-weight:700}.code-highlight .o{color:#666}.code-highlight .ch{color:#3D7B7B;font-style:italic}.code-highlight .cm{color:#3D7B7B;font-style:italic}.code-highlight .cp{color:#9C6500}.code-highlight .cpf{color:#3D7B7B;font-style:italic}.code-highlight .c1{color:#3D7B7B;font-style:italic}.code-highlight .cs{color:#3D7B7B;font-style:italic}.code-highlight .gd{color:#A00000}.code-highlight .ge{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{color:green;font-weight:700}.code-highlight .kd{color:green;font-weight:700}.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{color:#666}.code-highlight .mf{color:#666}.code-highlight .mh{color:#666}.code-highlight .mi{color:#666}.code-highlight .mo{color:#666}.code-highlight .sa{color:#BA2121}.code-highlight .sb{color:#BA2121}.code-highlight .sc{color:#BA2121}.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{color:#19177C}.code-highlight .vg{color:#19177C}.code-highlight .vi{color:#19177C}.code-highlight .vm{color:#19177C}.code-highlight .il{color:#666}html{position:relative;min-height:100%}body{margin-bottom:80px}.footer{position:absolute;bottom:0;width:100%;height:60px}input[type=checkbox]:checked+.label_hide_if_checked,input[type=checkbox]:checked+.label_hide_if_not_checked+.label_hide_if_checked{display:none}input[type=checkbox]:not(:checked)+.label_hide_if_checked+.label_hide_if_not_checked,input[type=checkbox]:not(:checked)+.label_hide_if_not_checked{display:none}.onoff-checkbox{width:15%}.onoffswitch{position:relative;width:110px;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none}.onoffswitch-checkbox{display:none}.onoffswitch-label{display:block;overflow:hidden;cursor:pointer;border:2px solid #FFF!important;border-radius:50px!important}.onoffswitch-inner{display:block;transition:margin .3s ease-in 0s}.onoffswitch-inner:after,.onoffswitch-inner:before{display:block;float:left;width:50%;height:30px;padding:0;line-height:40px;font-size:20px;box-sizing:border-box;content:"";background-color:#EEE}.onoffswitch-switch{display:block;width:37px;background-color:#0C0;position:absolute;top:0;bottom:0;right:0;border:2px solid #FFF!important;border-radius:50px!important;transition:all .3s ease-in 0s}.onoffswitch-checkbox:checked+.onoffswitch-label .onoffswitch-inner{margin-right:0}.onoffswitch-checkbox:checked+.onoffswitch-label .onoffswitch-switch{right:71px;background-color:#A1A1A1}.result_header{margin-bottom:5px;margin-top:20px}.result_header .favicon{margin-bottom:-3px}.result_header a{vertical-align:bottom}.result_header a .highlight{font-weight:700}.result-content{margin-top:5px;word-wrap:break-word}.result-content .highlight{font-weight:700}.result-default{clear:both}.result-images{float:left!important;height:138px}.img-thumbnail{margin:5px;max-height:128px}.result-videos{clear:both}.result-torrents{clear:both}.result-map{clear:both}.result-code{clear:both}.suggestion_item{margin:2px 5px;max-width:100%}.suggestion_item .btn{max-width:100%;white-space:normal;word-wrap:break-word;text-align:left}.result_download{margin-right:5px}#pagination{margin-top:30px;padding-bottom:50px}.label-default{color:#AAA;background:#FFF}.result .text-muted small{word-wrap:break-word}.modal-wrapper{box-shadow:0 5px 15px rgba(0,0,0,.5)}.modal-wrapper{background-clip:padding-box;background-color:#fff;border:1px solid rgba(0,0,0,.2);border-radius:6px;box-shadow:0 3px 9px rgba(0,0,0,.5);outline:0 none;position:relative}.highlight{font-weight:700}.infobox img{max-height:250px}.infobox .infobox_part{margin-bottom:20px;word-wrap:break-word;table-layout:fixed}.infobox .infobox_part:last-child{margin-bottom:0}.infobox .header_url{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block}.infobox .infobox_toggle{width:100%;text-align:center;margin-bottom:0}.infobox .infobox_checkbox~.infobox_body{max-height:300px;overflow:hidden}.infobox .infobox_checkbox:checked~.infobox_body{max-height:none}.infobox .infobox_checkbox~.infobox_toggle .infobox_label_down{display:block}.infobox .infobox_checkbox~.infobox_toggle .infobox_label_up{display:none}.infobox .infobox_checkbox:checked~.infobox_toggle .infobox_label_up{display:block}.infobox .infobox_checkbox:checked~.infobox_toggle .infobox_label_down{display:none}.infobox .infobox_checkbox~.infobox_body img.infobox_part{display:none}.infobox .infobox_checkbox:checked~.infobox_body img.infobox_part{display:block}#categories,.search_categories{text-transform:capitalize;margin-bottom:1.5rem;margin-top:1.5rem;display:flex;flex-wrap:wrap;align-content:stretch}#categories .input-group-addon,#categories label,.search_categories .input-group-addon,.search_categories label{flex-grow:1;flex-basis:auto;font-size:1.3rem;font-weight:400;background-color:#fff;border:#DDD 1px solid;border-right:none;color:#333;padding-bottom:.8rem;padding-top:.8rem;text-align:center;min-width:50px}#categories .input-group-addon:last-child,#categories label:last-child,.search_categories .input-group-addon:last-child,.search_categories label:last-child{border-right:#DDD 1px solid}#categories input[type=checkbox]:checked+label,.search_categories input[type=checkbox]:checked+label{color:#000;font-weight:700;background-color:#EEE}.visually-hidden{position:absolute!important;height:1px;width:1px;overflow:hidden;clip:rect(1px 1px 1px 1px);clip:rect(1px,1px,1px,1px);white-space:nowrap}#advanced-search-container{display:none;text-align:center;margin-bottom:1rem;clear:both}#advanced-search-container .input-group-addon,#advanced-search-container label{font-size:1.3rem;font-weight:400;background-color:#fff;border:#DDD 1px solid;border-right:none;color:#333;padding-bottom:.8rem;padding-left:1.2rem;padding-right:1.2rem}#advanced-search-container .input-group-addon:last-child,#advanced-search-container label:last-child{border-right:#DDD 1px solid}#advanced-search-container input[type=radio]{display:none}#advanced-search-container input[type=radio]:checked+label{color:#000;font-weight:700;background-color:#EEE}#check-advanced{display:none}#check-advanced:checked~#advanced-search-container{display:block}.advanced{padding:0;margin-top:.3rem;text-align:right}.advanced label,.advanced select{cursor:pointer}.cursor-text{cursor:text!important}.cursor-pointer{cursor:pointer!important}.searxng-navbar{background:#eee;color:#aaa;height:2.3rem;font-size:1.3rem;line-height:1.3rem;padding:.5rem;font-weight:700;margin-bottom:1.3rem}.searxng-navbar a,.searxng-navbar a:hover{margin-right:2rem;text-decoration:none}.searxng-navbar .instance a{color:#444;margin-left:2rem}.table>tbody>tr>td,.table>tbody>tr>th{vertical-align:middle!important}.engine-tooltip{display:none;position:absolute;padding:.5rem 1rem;margin:0 0 0 2rem;border:1px solid #ddd;box-shadow:2px 2px 2px 0 rgba(0,0,0,.1);background:#fff;font-size:14px;font-weight:400;z-index:1000000}.engine-tooltip:hover,td:hover .engine-tooltip,th:hover .engine-tooltip{display:inline-block}.stacked-bar-chart{margin:0;padding:0 .125rem 0 3rem;width:100%;width:-moz-available;width:-webkit-fill-available;width:fill;flex-direction:row;flex-wrap:nowrap;flex-grow:1;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:#000;border:1px solid rgba(0,0,0,.9);padding:.3rem 0}.stacked-bar-chart-rate80{display:flex;flex-shrink:0;flex-grow:0;flex-basis:unset;background:0 0;border:1px solid rgba(0,0,0,.3);padding:.3rem 0}.stacked-bar-chart-rate95{display:flex;flex-shrink:0;flex-grow:0;flex-basis:unset;background:0 0;border-bottom:1px dotted rgba(0,0,0,.5);padding:0}.stacked-bar-chart-rate100{display:flex;flex-shrink:0;flex-grow:0;flex-basis:unset;background:0 0;border-left:1px solid rgba(0,0,0,.9);padding:.4rem 0;width:1px}@supports (-webkit-marquee-repetition:infinite) and (object-fit:fill){.twitter-typeahead .tt-input:focus{z-index:2}.input-group-btn:last-child>.btn,.input-group-btn:last-child>.btn-group{margin-left:inherit!important}}/*# sourceMappingURL=pointhi.min.css.map */
\ No newline at end of file
diff --git a/searx/static/themes/oscar/css/pointhi.min.css.map b/searx/static/themes/oscar/css/pointhi.min.css.map
index f9b7975e1..3a1619ec7 100644
--- a/searx/static/themes/oscar/css/pointhi.min.css.map
+++ b/searx/static/themes/oscar/css/pointhi.min.css.map
@@ -1 +1 @@
-{"version":3,"sources":["../../__common__/less/new_issue.less","../../__common__/less/stats.less","../src/less/pointhi/preferences.less","../../__common__/less/result_templates.less","../src/less/result_templates.less","../src/less/preferences.less","../src/generated/pygments-pointhi.less","../src/less/pointhi/footer.less","../src/less/pointhi/checkbox.less","../src/less/pointhi/onoff.less","../src/less/pointhi/results.less","../src/less/pointhi/infobox.less","../src/less/pointhi/search.less","../src/less/pointhi/advanced.less","../src/less/pointhi/cursor.less","../src/less/pointhi/navbar.less","../src/less/safari.css"],"names":[],"mappings":"AAAA,qBACI,QAAA,MACA,QAAA,IAAA,KACA,YAAA,WACA,UAAA,KACA,MAAA,KACA,iBAAA,kBACA,OAAA,QACA,cAAA,eACA,WAAA,YAAA,EAAA,EAAA,EAAA,EAGgB,2BAChB,iBAAA,QAGJ,YACI,QAAA,KCfA,2BACI,MAAA,MAGJ,4BACI,MAAA,KACA,WAAA,MASJ,kCACI,WAAA,MAGC,iCACD,UAAA,OACA,OAAA,KACA,OAAA,IAAA,MAAA,KAKJ,0BADqB,sDADA,sDAGjB,MAAA,MAGmB,qDAEnB,aAAA,IAAA,MAAA,KACA,QAAA,EAAA,KAAA,EAAA,EACA,OAAA,EAAA,EAAA,EAAA,MAIR,iBACI,MAAA,IACA,QAAA,aACA,WAAA,MACA,cAAA,MAGJ,iBACI,MAAO,kBACP,QAAA,aAGJ,eACI,OAAA,IAAA,MAAA,QACA,OAAA,IAAA,EAGJ,kBACI,OAAA,IAAA,MAAA,QACA,OAAA,IAAA,EACA,MAAA,KAGJ,kBACI,OAAA,IAAA,MAAA,QACA,OAAA,IAAA,EACA,MAAA,KAGJ,MACI,MAAA,EACA,OAAA,ECxEH,MD+EO,MAAA,GC/EP,MD+EO,MAAA,GC/EP,MD+EO,MAAA,GC/EP,MD+EO,MAAA,GC/EP,MD+EO,MAAA,GC/EP,MD+EO,MAAA,GC/EP,MD+EO,MAAA,GC/EP,MD+EO,MAAA,GC/EP,MD+EO,MAAA,GC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,QD+EO,MAAA,KE/ER,aACI,OAAA,MACA,MAAA,KACA,OAAA,KAAA,ECHJ,qBACI,MAAA,KACA,WAAA,KACA,WAAA,KCHJ,UACI,MAAA,MCIY,yBACZ,sBAAA,KACA,oBAAA,KACA,mBAAA,KACA,iBAAA,KACA,gBAAA,KACA,YAAA,KACA,OAAA,QASA,aAAA,IACA,WAAA,MARC,oCACG,WAAA,IAEH,yCACG,WAAA,IAOQ,oBAAM,YAAA,KACK,mCAAU,MAAA,QAAgB,iBAAA,YAA+B,aAAA,IAAmB,cAAA,IACnF,6BAAW,MAAA,QAAgB,iBAAA,YAA+B,aAAA,IAAmB,cAAA,IACtE,oCAAW,MAAA,KAAgB,iBAAA,QAA2B,aAAA,IAAmB,cAAA,IACxE,qCAAW,MAAA,KAAgB,iBAAA,QAA2B,aAAA,IAAmB,cAAA,IACrF,qBAAO,iBAAA,KACvB,gBAAkB,WAAA,QACF,mBAAK,MAAA,QAAgB,WAAA,OACrB,qBAAO,OAAA,IAAA,MAAA,IACP,mBAAK,MAAA,MAAgB,YAAA,IACrB,mBAAK,MAAA,KACL,oBAAM,MAAA,QAAgB,WAAA,OACtB,oBAAM,MAAA,QAAgB,WAAA,OACtB,oBAAM,MAAA,QACN,qBAAO,MAAA,QAAgB,WAAA,OACvB,oBAAM,MAAA,QAAgB,WAAA,OACtB,oBAAM,MAAA,QAAgB,WAAA,OACtB,oBAAM,MAAA,QACN,oBAAM,WAAA,OACN,oBAAM,MAAA,QACN,oBAAM,MAAA,KAAgB,YAAA,IACtB,oBAAM,MAAA,QACN,oBAAM,MAAA,QACN,oBAAM,MAAA,KAAgB,YAAA,IACtB,oBAAM,YAAA,IACN,oBAAM,MAAA,OAAgB,YAAA,IACtB,oBAAM,MAAA,KACN,oBAAM,MAAA,MAAgB,YAAA,IACtB,oBAAM,MAAA,MAAgB,YAAA,IACtB,oBAAM,MAAA,MAAgB,YAAA,IACtB,oBAAM,MAAA,MACN,oBAAM,MAAA,MAAgB,YAAA,IACtB,oBAAM,MAAA,QACN,mBAAK,MAAA,KACL,mBAAK,MAAA,QACL,oBAAM,MAAA,QACN,oBAAM,MAAA,MACN,oBAAM,MAAA,KAAgB,YAAA,IACtB,oBAAM,MAAA,KACN,oBAAM,MAAA,KACN,oBAAM,MAAA,QAAgB,YAAA,IACtB,oBAAM,MAAA,QAAgB,YAAA,IACtB,oBAAM,MAAA,KACN,oBAAM,MAAA,QACN,oBAAM,MAAA,KAAgB,YAAA,IACtB,oBAAM,MAAA,MAAgB,YAAA,IACtB,oBAAM,MAAA,QACN,oBAAM,MAAA,KAAgB,YAAA,IACtB,mBAAK,MAAA,KACL,oBAAM,MAAA,KACN,oBAAM,MAAA,KACN,oBAAM,MAAA,KACN,oBAAM,MAAA,KACN,oBAAM,MAAA,KACN,oBAAM,MAAA,QACN,oBAAM,MAAA,QACN,oBAAM,MAAA,QACN,oBAAM,MAAA,QACN,oBAAM,MAAA,QAAgB,WAAA,OACtB,oBAAM,MAAA,QACN,oBAAM,MAAA,QAAgB,YAAA,IACtB,oBAAM,MAAA,QACN,oBAAM,MAAA,QAAgB,YAAA,IACtB,oBAAM,MAAA,MACN,oBAAM,MAAA,QACN,oBAAM,MAAA,QACN,oBAAM,MAAA,QACN,oBAAM,MAAA,MACN,oBAAM,MAAA,KACN,oBAAM,MAAA,QACN,oBAAM,MAAA,QACN,oBAAM,MAAA,QACN,oBAAM,MAAA,QACN,oBAAM,MAAA,KChGtB,KACE,SAAA,SACA,WAAA,KAGF,KAEE,cAAA,KAGF,QACE,SAAA,SACA,OAAA,EACA,MAAA,KAEA,OAAA,KChB2B,oDAAoF,+EAC/G,QAAA,KAI2H,qFAA1F,8DACjC,QAAA,KCPF,gBACI,MAAA,IAEJ,aACI,SAAA,SACA,MAAA,MACA,oBAAA,KACA,iBAAA,KACA,gBAAA,KAEJ,sBACI,QAAA,KAEJ,mBACI,QAAA,MACA,SAAA,OACA,OAAA,QACA,OAAA,IAAA,MAAA,eACA,cAAA,eAEJ,mBACI,QAAA,MACA,WAAA,OAAA,IAAA,QAAA,GAGyC,yBAA3B,0BACd,QAAA,MACA,MAAA,KACA,MAAA,IACA,OAAA,KACA,QAAA,EACA,YAAA,KACA,UAAA,KACA,WAAA,WACA,QAAA,GACA,iBAAA,KAGJ,oBACI,QAAA,MACA,MAAA,KACA,iBAAA,KACA,SAAA,SACA,IAAA,EACA,OAAA,EACA,MAAA,EACA,OAAA,IAAA,MAAA,eACA,cAAA,eACA,WAAA,IAAA,IAAA,QAAA,GAE+C,oEAC/C,aAAA,EAE+C,qEAC/C,MAAA,KACA,iBAAA,QCtDJ,eACI,cAAA,IACA,WAAA,KAEA,wBACI,cAAA,KAGJ,iBACI,eAAA,OAEA,4BACI,YAAA,IAKZ,gBACI,WAAA,IACA,UAAA,WAEA,2BACI,YAAA,IAKR,gBACI,MAAA,KAIJ,eACI,MAAA,eACA,OAAA,MAGJ,eACI,OAAA,IACA,WAAA,MAIJ,eACI,MAAA,KAIJ,iBACI,MAAA,KAIJ,YACI,MAAA,KAIJ,aACI,MAAA,KAIJ,iBACI,OAAA,IAAA,IACA,UAAA,KAEA,sBACI,UAAA,KACA,YAAA,OACA,UAAA,WACA,WAAA,KAKR,iBACI,aAAA,IAIJ,YACI,WAAA,KACA,eAAA,KAGJ,eACI,MAAA,KACA,WAAA,KAGgB,0BAChB,UAAA,WAGJ,eACI,WAAA,EAAA,IAAA,KAAA,eAGJ,eACI,gBAAA,YACA,iBAAA,KACA,OAAA,IAAA,MAAA,eACA,cAAA,IACA,WAAA,EAAA,IAAA,IAAA,eACA,QAAA,EAAA,KACA,SAAA,SAGJ,WACI,YAAA,IC7GA,aACI,WAAA,MAGJ,uBACI,cAAA,KACA,UAAA,WACA,aAAA,MAGS,kCACT,cAAA,EAGJ,qBACI,YAAA,OACA,SAAA,OACA,cAAA,SACA,QAAA,MAGJ,yBACI,MAAA,KACA,WAAA,OACA,cAAA,EAIc,yCACd,WAAA,MACA,SAAA,OAEsB,iDACtB,WAAA,KAIgC,+DAChC,QAAA,MAEgC,6DAChC,QAAA,KAIwC,qEACxC,QAAA,MAEwC,uEACxC,QAAA,KAIiC,0DACjC,QAAA,KAEyC,kEACzC,QAAA,MC3DY,YAApB,mBACI,eAAA,WACA,cAAA,OACA,WAAA,OACA,QAAA,KACA,UAAA,KACA,cAAA,QAEO,+BAAP,kBAAO,sCAAP,yBACI,UAAA,EACA,WAAA,KACA,UAAA,OACA,YAAA,IACA,iBAAA,KACA,OAAA,KAAA,IAAA,MACA,aAAA,KACA,MAAA,KACA,eAAA,MACA,YAAA,MACA,WAAA,OACA,UAAA,KAGgC,0CAA/B,6BAA+B,iDAA/B,oCACD,aAAA,KAAA,IAAA,MAG2B,+CAAA,sDAC3B,MAAA,KACA,YAAA,IACA,iBAAA,KAIR,iBACI,SAAA,mBACA,OAAA,IACA,MAAA,IACA,SAAA,OACA,KAAM,sBACN,KAAA,sBACA,YAAA,OCzCJ,2BACI,QAAA,KACA,WAAA,OACA,cAAA,KACA,MAAA,KAEO,8CAAP,iCACI,UAAA,OACA,YAAA,IACA,iBAAA,KACA,OAAA,KAAA,IAAA,MACA,aAAA,KACA,MAAA,KACA,eAAA,MACA,aAAA,OACA,cAAA,OAGgC,yDAA/B,4CACD,aAAA,KAAA,IAAA,MAGC,6CACD,QAAA,KAGwB,2DACxB,MAAA,KACA,YAAA,IACA,iBAAA,KAIR,gBACI,QAAA,KAGoB,mDACpB,QAAA,MAGJ,UACI,QAAA,EACA,WAAA,MACA,WAAA,MACA,gBAAO,iBACH,OAAA,QC7CR,aACI,OAAA,eAGJ,gBACI,OAAA,kBCNJ,gBACI,WAAA,KACA,MAAA,KACA,OAAA,OACA,UAAA,OACA,YAAA,OACA,QAAA,MACA,YAAA,IACA,cAAA,OAEA,kBAAI,wBACA,aAAA,KACA,gBAAA,KAGM,4BACN,MAAA,KACA,YAAA,KbjBY,mBAA0B,mBAC1C,eAAA,iBAGJ,gBACI,QAAA,KACA,SAAA,SACA,QAAA,MAAA,KACA,OAAA,EAAA,EAAA,EAAA,KACA,OAAA,IAAA,MAAA,KACA,WAAA,IAAA,IAAA,IAAA,EAAA,eACA,WAAA,KACA,UAAA,KACA,YAAA,IACA,QAAA,QAG+D,sBAAhC,yBAA1B,yBACL,QAAA,aAIJ,mBACI,OAAA,EACA,QAAA,EAAA,QAAA,EAAA,KACA,MAAA,KACA,MAAA,eACA,MAAA,uBACA,MAAA,KACA,eAAA,IACA,UAAA,OACA,UAAA,EACA,YAAA,OACA,QAAA,YAGJ,yBACI,MAAA,KACA,QAAA,aACA,SAAA,SACA,QAAA,EAAA,MACA,WAAA,MAGJ,wBACI,QAAA,KACA,YAAA,EACA,UAAA,EACA,WAAA,MAGJ,0BANI,QAAA,KACA,YAAA,EACA,UAAA,EACA,WAAA,MAKA,WAAA,KACA,OAAA,IAAA,MAAA,eACA,QAAA,MAAA,EAGJ,0BAbI,QAAA,KACA,YAAA,EACA,UAAA,EACA,WAAA,MAYA,WAAA,IACA,OAAA,IAAA,MAAA,eACA,QAAA,MAAA,EAGJ,0BApBI,QAAA,KACA,YAAA,EACA,UAAA,EACA,WAAA,MAmBA,WAAA,IACA,cAAA,IAAA,OAAA,eACA,QAAA,EAGJ,2BA3BI,QAAA,KACA,YAAA,EACA,UAAA,EACA,WAAA,MA0BA,WAAA,IACA,YAAA,IAAA,MAAA,eACA,QAAA,MAAA,EACA,MAAA,Ic1EJ,sEACI,mCACI,QAAS,EAGb,iCACA,uCACI,YAAa"}
\ No newline at end of file
+{"version":3,"sources":["../../__common__/less/new_issue.less","../../__common__/less/stats.less","../src/less/pointhi/preferences.less","../../__common__/less/result_templates.less","../src/less/result_templates.less","../src/less/preferences.less","../src/less/infinite_scroll.less","../src/generated/pygments-pointhi.less","../src/less/pointhi/footer.less","../src/less/pointhi/checkbox.less","../src/less/pointhi/onoff.less","../src/less/pointhi/results.less","../src/less/pointhi/infobox.less","../src/less/pointhi/search.less","../src/less/pointhi/advanced.less","../src/less/pointhi/cursor.less","../src/less/pointhi/navbar.less","../src/less/safari.css"],"names":[],"mappings":"AAAA,qBACI,QAAA,MACA,QAAA,IAAA,KACA,YAAA,WACA,UAAA,KACA,MAAA,KACA,iBAAA,kBACA,OAAA,QACA,cAAA,eACA,WAAA,YAAA,EAAA,EAAA,EAAA,EAGgB,2BAChB,iBAAA,QAGJ,YACI,QAAA,KCfA,2BACI,MAAA,MAGJ,4BACI,MAAA,KACA,WAAA,MASJ,kCACI,WAAA,MAGC,iCACD,UAAA,OACA,OAAA,KACA,OAAA,IAAA,MAAA,KAKJ,0BADqB,sDADA,sDAGjB,MAAA,MAGmB,qDAEnB,aAAA,IAAA,MAAA,KACA,QAAA,EAAA,KAAA,EAAA,EACA,OAAA,EAAA,EAAA,EAAA,MAIR,iBACI,MAAA,IACA,QAAA,aACA,WAAA,MACA,cAAA,MAGJ,iBACI,MAAO,kBACP,QAAA,aAGJ,eACI,OAAA,IAAA,MAAA,QACA,OAAA,IAAA,EAGJ,kBACI,OAAA,IAAA,MAAA,QACA,OAAA,IAAA,EACA,MAAA,KAGJ,kBACI,OAAA,IAAA,MAAA,QACA,OAAA,IAAA,EACA,MAAA,KAGJ,MACI,MAAA,EACA,OAAA,ECxEH,MD+EO,MAAA,GC/EP,MD+EO,MAAA,GC/EP,MD+EO,MAAA,GC/EP,MD+EO,MAAA,GC/EP,MD+EO,MAAA,GC/EP,MD+EO,MAAA,GC/EP,MD+EO,MAAA,GC/EP,MD+EO,MAAA,GC/EP,MD+EO,MAAA,GC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,QD+EO,MAAA,KE/ER,aACI,OAAA,MACA,MAAA,KACA,OAAA,KAAA,ECHJ,qBACI,MAAA,KACA,WAAA,KACA,WAAA,KCHJ,UACI,MAAA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"}
\ No newline at end of file
diff --git a/searx/static/themes/oscar/js/searxng.js b/searx/static/themes/oscar/js/searxng.js
index 45272607f..db8fed277 100644
--- a/searx/static/themes/oscar/js/searxng.js
+++ b/searx/static/themes/oscar/js/searxng.js
@@ -19,6 +19,7 @@ window.searxng = (function(d) {
return {
autocompleter: script.getAttribute('data-autocompleter') === 'true',
+ infinite_scroll: script.getAttribute('data-infinite-scroll') === 'true',
method: script.getAttribute('data-method'),
translations: JSON.parse(script.getAttribute('data-translations'))
};
@@ -189,6 +190,56 @@ $(document).ready(function(){
* SPDX-License-Identifier: AGPL-3.0-or-later
*/
+$(document).ready(function() {
+ function hasScrollbar() {
+ var root = document.compatMode=='BackCompat'? document.body : document.documentElement;
+ return root.scrollHeight>root.clientHeight;
+ }
+
+ function loadNextPage() {
+ var formData = $('#pagination form:last').serialize();
+ if (formData) {
+ $('#pagination').html('
');
+ $.ajax({
+ type: "POST",
+ url: $('#search_form').prop('action'),
+ data: formData,
+ dataType: 'html',
+ success: function(data) {
+ var body = $(data);
+ $('#pagination').remove();
+ $('#main_results').append('
');
+ $('#main_results').append(body.find('.result'));
+ $('#main_results').append(body.find('#pagination'));
+ if(!hasScrollbar()) {
+ loadNextPage();
+ }
+ }
+ });
+ }
+ }
+
+ if (searxng.infinite_scroll) {
+ var win = $(window);
+ $("html").addClass('infinite_scroll');
+ if(!hasScrollbar()) {
+ loadNextPage();
+ }
+ win.on('scroll', function() {
+ if ($(document).height() - win.height() - win.scrollTop() < 150) {
+ loadNextPage();
+ }
+ });
+ }
+
+});
+;/**
+ * @license
+ * (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.addEventListener('load', function() {
// Hide infobox toggle if shrunk size already fits all content.
$('.infobox').each(function() {
diff --git a/searx/static/themes/oscar/js/searxng.min.js b/searx/static/themes/oscar/js/searxng.min.js
index ab237e17c..3e8217985 100644
--- a/searx/static/themes/oscar/js/searxng.min.js
+++ b/searx/static/themes/oscar/js/searxng.min.js
@@ -4,7 +4,7 @@
* (C) Copyright Contributors to the searx project (2014 - 2021).
* SPDX-License-Identifier: AGPL-3.0-or-later
*/
-window.searxng=function(t){"use strict";t.getElementsByTagName("html")[0].className="js";t=t.currentScript||(t=t.getElementsByTagName("script"))[t.length-1];return{autocompleter:"true"===t.getAttribute("data-autocompleter"),method:t.getAttribute("data-method"),translations:JSON.parse(t.getAttribute("data-translations"))}}(document),
+window.searxng=function(t){"use strict";t.getElementsByTagName("html")[0].className="js";t=t.currentScript||(t=t.getElementsByTagName("script"))[t.length-1];return{autocompleter:"true"===t.getAttribute("data-autocompleter"),infinite_scroll:"true"===t.getAttribute("data-infinite-scroll"),method:t.getAttribute("data-method"),translations:JSON.parse(t.getAttribute("data-translations"))}}(document),
/**
* @license
* (C) Copyright Contributors to the SearXNG project.
@@ -12,7 +12,7 @@ window.searxng=function(t){"use strict";t.getElementsByTagName("html")[0].classN
* (C) 2014 by Thomas Pointhuber,
* SPDX-License-Identifier: AGPL-3.0-or-later
*/
-$(document).ready(function(){var t,a="";searxng.autocompleter&&((t=new Bloodhound({datumTokenizer:Bloodhound.tokenizers.obj.whitespace("value"),queryTokenizer:Bloodhound.tokenizers.whitespace,remote:{url:"./autocompleter?q=%QUERY",wildcard:"%QUERY"}})).initialize(),$("#q").on("keydown",function(t){13==t.which&&(a=$("#q").val())}),$("#q").typeahead({name:"search-results",highlight:!1,hint:!0,displayKey:function(t){return t},classNames:{input:"tt-input",hint:"tt-hint",menu:"tt-dropdown-menu",dataset:"tt-dataset-search-results"}},{name:"autocomplete",source:t}),$("#q").bind("typeahead:select",function(t,e){a&&$("#q").val(a),$("#search_form").submit()}))}),
+$(document).ready(function(){var t,n="";searxng.autocompleter&&((t=new Bloodhound({datumTokenizer:Bloodhound.tokenizers.obj.whitespace("value"),queryTokenizer:Bloodhound.tokenizers.whitespace,remote:{url:"./autocompleter?q=%QUERY",wildcard:"%QUERY"}})).initialize(),$("#q").on("keydown",function(t){13==t.which&&(n=$("#q").val())}),$("#q").typeahead({name:"search-results",highlight:!1,hint:!0,displayKey:function(t){return t},classNames:{input:"tt-input",hint:"tt-hint",menu:"tt-dropdown-menu",dataset:"tt-dataset-search-results"}},{name:"autocomplete",source:t}),$("#q").bind("typeahead:select",function(t,e){n&&$("#q").val(n),$("#search_form").submit()}))}),
/**
* @license
* (C) Copyright Contributors to the SearXNG project.
@@ -20,7 +20,14 @@ $(document).ready(function(){var t,a="";searxng.autocompleter&&((t=new Bloodhoun
* (C) 2014 by Thomas Pointhuber,
* SPDX-License-Identifier: AGPL-3.0-or-later
*/
-$(document).ready(function(){$("#q.autofocus").focus(),$("#clear_search").click(function(){document.getElementById("q").value=""}),$(".select-all-on-click").click(function(){$(this).select()}),$(".btn-collapse").click(function(){var t=$(this).data("btn-text-collapsed"),e=$(this).data("btn-text-not-collapsed");""!==t&&""!==e&&(new_html=$(this).hasClass("collapsed")?$(this).html().replace(t,e):$(this).html().replace(e,t),$(this).html(new_html))}),$(".btn-toggle .btn").click(function(){var t="btn-"+$(this).data("btn-class"),e=$(this).data("btn-label-default"),a=$(this).data("btn-label-toggled");""!==a&&(new_html=$(this).hasClass("btn-default")?$(this).html().replace(e,a):$(this).html().replace(a,e),$(this).html(new_html)),$(this).toggleClass(t),$(this).toggleClass("btn-default")}),$(".media-loader").click(function(){var t=$(this).data("target"),t=$(t+" > iframe"),e=t.attr("src");void 0!==e&&!1!==e||t.attr("src",t.data("src"))}),$(".btn-sm").dblclick(function(){var t="btn-"+$(this).data("btn-class");$(this).hasClass("btn-default")?($(".btn-sm > input").attr("checked","checked"),$(".btn-sm > input").prop("checked",!0),$(".btn-sm").addClass(t),$(".btn-sm").addClass("active"),$(".btn-sm").removeClass("btn-default")):($(".btn-sm > input").attr("checked",""),$(".btn-sm > input").removeAttr("checked"),$(".btn-sm > input").checked=!1,$(".btn-sm").removeClass(t),$(".btn-sm").removeClass("active"),$(".btn-sm").addClass("btn-default"))}),$(".nav-tabs").click(function(t){$(t.target).parents("ul").children().attr("aria-selected","false"),$(t.target).parent().attr("aria-selected","true")}),searxng.image_thumbnail_layout=new searxng.ImageLayout("#main_results","#main_results .result-images","img.img-thumbnail",15,3,200),searxng.image_thumbnail_layout.watch()}),
+$(document).ready(function(){$("#q.autofocus").focus(),$("#clear_search").click(function(){document.getElementById("q").value=""}),$(".select-all-on-click").click(function(){$(this).select()}),$(".btn-collapse").click(function(){var t=$(this).data("btn-text-collapsed"),e=$(this).data("btn-text-not-collapsed");""!==t&&""!==e&&(new_html=$(this).hasClass("collapsed")?$(this).html().replace(t,e):$(this).html().replace(e,t),$(this).html(new_html))}),$(".btn-toggle .btn").click(function(){var t="btn-"+$(this).data("btn-class"),e=$(this).data("btn-label-default"),n=$(this).data("btn-label-toggled");""!==n&&(new_html=$(this).hasClass("btn-default")?$(this).html().replace(e,n):$(this).html().replace(n,e),$(this).html(new_html)),$(this).toggleClass(t),$(this).toggleClass("btn-default")}),$(".media-loader").click(function(){var t=$(this).data("target"),t=$(t+" > iframe"),e=t.attr("src");void 0!==e&&!1!==e||t.attr("src",t.data("src"))}),$(".btn-sm").dblclick(function(){var t="btn-"+$(this).data("btn-class");$(this).hasClass("btn-default")?($(".btn-sm > input").attr("checked","checked"),$(".btn-sm > input").prop("checked",!0),$(".btn-sm").addClass(t),$(".btn-sm").addClass("active"),$(".btn-sm").removeClass("btn-default")):($(".btn-sm > input").attr("checked",""),$(".btn-sm > input").removeAttr("checked"),$(".btn-sm > input").checked=!1,$(".btn-sm").removeClass(t),$(".btn-sm").removeClass("active"),$(".btn-sm").addClass("btn-default"))}),$(".nav-tabs").click(function(t){$(t.target).parents("ul").children().attr("aria-selected","false"),$(t.target).parent().attr("aria-selected","true")}),searxng.image_thumbnail_layout=new searxng.ImageLayout("#main_results","#main_results .result-images","img.img-thumbnail",15,3,200),searxng.image_thumbnail_layout.watch()}),
+/**
+ * @license
+ * (C) Copyright Contributors to the SearXNG project.
+ * (C) Copyright Contributors to the searx project (2014 - 2021).
+ * SPDX-License-Identifier: AGPL-3.0-or-later
+ */
+$(document).ready(function(){function e(){var t="BackCompat"==document.compatMode?document.body:document.documentElement;return t.scrollHeight>t.clientHeight}function n(){var t=$("#pagination form:last").serialize();t&&($("#pagination").html(''),$.ajax({type:"POST",url:$("#search_form").prop("action"),data:t,dataType:"html",success:function(t){t=$(t);$("#pagination").remove(),$("#main_results").append("
"),$("#main_results").append(t.find(".result")),$("#main_results").append(t.find("#pagination")),e()||n()}}))}var t;searxng.infinite_scroll&&(t=$(window),$("html").addClass("infinite_scroll"),e()||n(),t.on("scroll",function(){$(document).height()-t.height()-t.scrollTop()<150&&n()}))}),
/**
* @license
* (C) Copyright Contributors to the SearXNG project.
@@ -35,14 +42,14 @@ window.addEventListener("load",function(){$(".infobox").each(function(){var t=$(
* (C) 2014 by Thomas Pointhuber,
* SPDX-License-Identifier: AGPL-3.0-or-later
*/
-$(document).ready(function(){$(".searxng_init_map").on("click",function(t){var e=$(this).data("leaflet-target"),a=$(this).data("map-lon"),n=$(this).data("map-lat"),i=$(this).data("map-zoom"),s=$(this).data("map-boundingbox"),o=$(this).data("map-geojson"),r=(s&&(southWest=L.latLng(s[0],s[2]),northEast=L.latLng(s[1],s[3]),map_bounds=L.latLngBounds(southWest,northEast)),L.Icon.Default.imagePath="./static/themes/oscar/css/images/",L.map(e)),s=new L.TileLayer("https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png",{minZoom:1,maxZoom:19,attribution:'Map data © OpenStreetMap contributors'}),e=(new L.TileLayer("https://maps.wikimedia.org/osm-intl/{z}/{x}/{y}.png",{minZoom:1,maxZoom:19,attribution:'Wikimedia maps beta | Maps data © OpenStreetMap contributors'}),setTimeout(function(){map_bounds?r.fitBounds(map_bounds,{maxZoom:17}):a&&n&&(i?r.setView(new L.LatLng(n,a),i):r.setView(new L.LatLng(n,a),8))},0),r.addLayer(s),{"OSM Mapnik":s});L.control.layers(e).addTo(r),o&&L.geoJson(o).addTo(r),$(this).off(t)})}),
+$(document).ready(function(){$(".searxng_init_map").on("click",function(t){var e=$(this).data("leaflet-target"),n=$(this).data("map-lon"),a=$(this).data("map-lat"),i=$(this).data("map-zoom"),s=$(this).data("map-boundingbox"),o=$(this).data("map-geojson"),r=(s&&(southWest=L.latLng(s[0],s[2]),northEast=L.latLng(s[1],s[3]),map_bounds=L.latLngBounds(southWest,northEast)),L.Icon.Default.imagePath="./static/themes/oscar/css/images/",L.map(e)),s=new L.TileLayer("https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png",{minZoom:1,maxZoom:19,attribution:'Map data © OpenStreetMap contributors'}),e=(new L.TileLayer("https://maps.wikimedia.org/osm-intl/{z}/{x}/{y}.png",{minZoom:1,maxZoom:19,attribution:'Wikimedia maps beta | Maps data © OpenStreetMap contributors'}),setTimeout(function(){map_bounds?r.fitBounds(map_bounds,{maxZoom:17}):n&&a&&(i?r.setView(new L.LatLng(a,n),i):r.setView(new L.LatLng(a,n),8))},0),r.addLayer(s),{"OSM Mapnik":s});L.control.layers(e).addTo(r),o&&L.geoJson(o).addTo(r),$(this).off(t)})}),
/**
* @license
* (C) Copyright Contributors to the SearXNG project.
* (C) Copyright Contributors to the searx project (2014 - 2021).
* SPDX-License-Identifier: AGPL-3.0-or-later
*/
-$(document).ready(function(){let s=null;document.querySelector('body[class="preferences_endpoint"]')&&$("[data-engine-name]").hover(function(){null==s&&$.ajax("engine_descriptions.json",dataType="json").done(function(t){s=t;for(var[e,a]of Object.entries(t))for(const i of $('[data-engine-name="'+e+'"] .description')){var n=" ("+searxng.translations.Source+": "+a[1]+")";i.innerHTML=a[0]+n}})})}),
+$(document).ready(function(){let s=null;document.querySelector('body[class="preferences_endpoint"]')&&$("[data-engine-name]").hover(function(){null==s&&$.ajax("engine_descriptions.json",dataType="json").done(function(t){s=t;for(var[e,n]of Object.entries(t))for(const i of $('[data-engine-name="'+e+'"] .description')){var a=" ("+searxng.translations.Source+": "+n[1]+")";i.innerHTML=n[0]+a}})})}),
/**
* @license
* (C) Copyright Contributors to the SearXNG project.
@@ -71,5 +78,5 @@ $(document).ready(function(){$("#allow-all-engines").click(function(){$(".onoffs
* );
* searxng.image_thumbnail_layout.watch();
*/
-function(r,c){function t(t,e,a,n,i,s){this.container_selector=t,this.results_selector=e,this.img_selector=a,this.verticalMargin=n,this.horizontalMargin=i,this.maxHeight=s,this.isAlignDone=!0}t.prototype._getHeigth=function(t,e){for(var a,n=0,i=0;io){break}}break;case"down":i=t.nextElementSibling;if(i===null){i=r[0]}break;case"up":i=t.previousElementSibling;if(i===null){i=r[r.length-1]}break;case"bottom":i=r[r.length-1];break;case"top":default:i=r[0]}}if(i){t.removeAttribute("data-vim-selected");i.setAttribute("data-vim-selected","true");var u=i.querySelector("h3 a")||i.querySelector("a");if(u!==null){u.focus()}if(!e){f()}}}}function l(){document.location.reload(true)}function u(e){const t=e.target.tagName.toLowerCase();if(document.activeElement&&(t==="input"||t==="select"||t==="textarea")){document.activeElement.blur()}else{searxng.closeDetail()}}function t(t){return function(){var e=document.querySelector(t);if(e){e.click()}}}function c(){return t('nav#pagination .next_page button[type="submit"]')}function p(){return t('nav#pagination .previous_page button[type="submit"]')}function f(){var e=document.querySelector(".result[data-vim-selected]");if(e===null){return}var t=document.documentElement.scrollTop||document.body.scrollTop,n=document.documentElement.clientHeight,i=e.offsetTop,r=i+e.clientHeight,o=120;if(e.previousElementSibling===null&&ri-o){window.scroll(window.scrollX,i-o)}else{var a=t+n;if(a a")}if(e!==null){var t=e.getAttribute("href");if(n){window.open(t)}else{window.location.href=t}}}}function s(e){var n={};for(var t in d){var i=d[t];n[i.cat]=n[i.cat]||[];n[i.cat].push(i)}var r=Object.keys(n).sort(function(e,t){return n[t].length-n[e].length});if(r.length===0){return}var o='×';o+="How to navigate searx with Vim-like hotkeys
";o+="";for(var a=0;a"}o+="";o+=""+s[0].cat+"";o+='';for(var u in s){o+="- "+s[u].key+" "+s[u].des+"
"}o+=" ";o+=" | ";if(!l||c){o+=""}}o+="
";e.innerHTML=o}function m(){var e=document.querySelector("#vim-hotkeys-help");if(e===undefined||e===null){e=document.createElement("div");e.id="vim-hotkeys-help";e.className="dialog-modal";s(e);s(e);s(e);var t=document.getElementsByTagName("body")[0];t.appendChild(e)}else{e.classList.toggle("invisible");return}}searxng.scrollPageToSelected=f;searxng.selectNext=r("down");searxng.selectPrevious=r("up")});(function(e,t,n){"use strict";n.ready(function(){n.on(".searxng_init_map","click",function(e){this.classList.remove("searxng_init_map");var d=this.dataset.leafletTarget;var f=parseFloat(this.dataset.mapLon);var p=parseFloat(this.dataset.mapLat);var h=parseFloat(this.dataset.mapZoom);var g=JSON.parse(this.dataset.mapBoundingbox);var m=JSON.parse(this.dataset.mapGeojson);n.loadStyle("css/leaflet.css");n.loadScript("js/leaflet.js",function(){var e=null;if(g){var t=L.latLng(g[0],g[2]);var n=L.latLng(g[1],g[3]);e=L.latLngBounds(t,n)}var i=L.map(d);var r="https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png";var o='Map data © OpenStreetMap contributors';var a=new L.TileLayer(r,{minZoom:1,maxZoom:19,attribution:o});var s="https://maps.wikimedia.org/osm-intl/{z}/{x}/{y}.png";var l='Wikimedia maps | Maps data © OpenStreetMap contributors';var u=new L.TileLayer(s,{minZoom:1,maxZoom:19,attribution:l});if(e){setTimeout(function(){i.fitBounds(e,{maxZoom:17})},0)}else if(f&&p){if(h){i.setView(new L.latLng(p,f),h)}else{i.setView(new L.latLng(p,f),8)}}i.addLayer(a);var c={"OSM Mapnik":a,"OSM Wikimedia":u};L.control.layers(c).addTo(i);if(m){L.geoJson(m).addTo(i)}});e.preventDefault()})})})(window,document,window.searxng);(function(e,o,a){"use strict";a.ready(function(){let r=null;function e(){if(r==null){a.http("GET","engine_descriptions.json").then(function(e){r=JSON.parse(e);for(const[t,n]of Object.entries(r)){let e=o.querySelectorAll('[data-engine-name="'+t+'"] .engine-description');for(const i of e){let e=" ("+a.translations["Source"]+": "+n[1]+")";i.innerHTML=n[0]+e}}})}}if(o.querySelector('body[class="preferences_endpoint"]')){for(const t of o.querySelectorAll("[data-engine-name]")){a.on(t,"mouseenter",e)}}})})(window,document,window.searxng);(function(e,s,l){"use strict";l.ready(function(){l.image_thumbnail_layout=new l.ImageLayout("#urls","#urls .result-images","img.image_thumbnail",14,6,200);l.image_thumbnail_layout.watch();s.querySelectorAll("#urls img.image").forEach(e=>e.addEventListener("error",()=>{e.style.display="none";e.error=null}));l.on(".btn-collapse","click",function(){var e=this.getAttribute("data-btn-text-collapsed");var t=this.getAttribute("data-btn-text-not-collapsed");var n=this.getAttribute("data-target");var i=s.querySelector(n);var r=this.innerHTML;if(this.classList.contains("collapsed")){r=r.replace(e,t)}else{r=r.replace(t,e)}this.innerHTML=r;this.classList.toggle("collapsed");i.classList.toggle("invisible")});l.on(".media-loader","click",function(){var e=this.getAttribute("data-target");var t=s.querySelector(e+" > iframe");var n=t.getAttribute("src");if(n===null||n===undefined||n===false){t.setAttribute("src",t.getAttribute("data-src"))}});l.selectImage=function(e){if(e){const t=e.querySelector(".result-images-source img");const n=e.querySelector(".image_thumbnail");const i=e.querySelector(".detail");if(t){const r=t.getAttribute("data-src");if(r){const o=s.createElement("div");const a=new Image;o.classList.add("loader");i.appendChild(o);a.onload=e=>{t.src=r;o.remove()};a.onerror=e=>{o.remove()};a.src=r;t.src=n.src;t.removeAttribute("data-src")}}}s.getElementById("results").classList.add("image-detail-open");l.image_thumbnail_layout.align();l.scrollPageToSelected()};l.closeDetail=function(e){s.getElementById("results").classList.remove("image-detail-open");l.image_thumbnail_layout.align();l.scrollPageToSelected()};l.on(".result-detail-close","click",e=>{e.preventDefault();l.closeDetail()});l.on(".result-detail-previous","click",e=>l.selectPrevious(false));l.on(".result-detail-next","click",e=>l.selectNext(false));e.addEventListener("scroll",function(){var e=s.getElementById("backToTop"),t=document.documentElement.scrollTop||document.body.scrollTop,n=s.getElementById("results");if(e!==null){if(t>=100){n.classList.add("scrolling")}else{n.classList.remove("scrolling")}}},true)})})(window,document,window.searxng);(function(t,n,i){"use strict";var r=true,o="q",a;function s(e){if(e.setSelectionRange){var t=e.value.length;e.setSelectionRange(t,t)}}function l(){if(a.value.length>0){var e=document.getElementById("search");setTimeout(e.submit.bind(e),0)}}function u(e){var t=document.getElementById("clear_search");var n=function(){if(e.value.length===0){t.classList.add("empty")}else{t.classList.remove("empty")}};n();t.addEventListener("click",function(){e.value="";e.focus();n()});e.addEventListener("keyup",n,false)}i.ready(function(){a=n.getElementById(o);function e(){if(r){s(a);r=false}else{}}if(a!==null){u(a);if(i.autocompleter){i.autocomplete=AutoComplete.call(t,{Url:"./autocompleter",EmptyMessage:i.translations.no_item_found,HttpMethod:i.method,HttpHeaders:{"Content-type":"application/x-www-form-urlencoded","X-Requested-With":"XMLHttpRequest"},MinChars:4,Delay:300,_Position:function(){this.DOMResults.setAttribute("class","autocomplete");this.DOMResults.style.top=this.Input.offsetTop+this.Input.offsetHeight+"px";this.DOMResults.style.left=this.Input.offsetLeft+"px";this.DOMResults.style.width=this.Input.clientWidth+"px"},_Open:function(){var t=this;Array.prototype.forEach.call(this.DOMResults.getElementsByTagName("li"),function(e){if(e.getAttribute("class")!="locked"){e.onmousedown=function(){t._Select(e)}}})}},"#"+o);t.addEventListener("resize",function(){var e=new CustomEvent("position");a.dispatchEvent(e)})}a.addEventListener("focus",e,false);a.focus()}if(a!==null&&n.querySelector(".help")!=null&&i.search_on_category_select){n.querySelector(".help").className="invisible";i.on("#categories input","change",function(){var e,t=n.querySelectorAll('#categories input[type="checkbox"]');for(e=0;et.clientHeight}function u(){var e=s.querySelector("#pagination form.next_page");if(!e){return}var t=new FormData(e);s.querySelector("#pagination").innerHTML='';searxng.http("POST",s.querySelector("#search").getAttribute("action"),t).then(function(e){var t=a.scrollY;var n=(new DOMParser).parseFromString(e,"text/html");var r=n.querySelectorAll("#urls article");var i=n.querySelector("#pagination");var o=s.getElementById("results").classList.contains("only_template_images");s.querySelector("#pagination").remove();if(r.length>0&&!o){s.querySelector("#urls").appendChild(s.createElement("hr"))}r.forEach(e=>{s.querySelector("#urls").appendChild(e)});searxng.image_thumbnail_layout.align();a.scrollTo(a.scrollX,t);if(i){s.querySelector("#results").appendChild(i);if(!l()){u()}}}).catch(function(e){console.log(e);s.querySelector("#pagination").innerHTML=''+searxng.translations.error_loading_next_page+"
"})}function e(){let e=t.getBoundingClientRect();if(t.scrollHeight-t.scrollTop-e.height<150){u()}}if(searxng.infinite_scroll){s.getElementsByTagName("html")[0].classList.add("infinite_scroll");if(!l()){u()}s.addEventListener("scroll",e,{passive:true})}});searxng.ready(function(){function e(e){while(e!==undefined){if(e.classList.contains("detail")){return true}if(e.classList.contains("result")){return false}e=e.parentNode}return false}function n(e){while(e!==undefined){if(e.classList.contains("result")){return e}e=e.parentNode}return undefined}function r(e){return e&&e.classList.contains("result-images")}searxng.on(".result","click",function(t){if(!e(t.target)){i(this)(true);let e=n(t.target);if(r(e)){t.preventDefault();searxng.selectImage(e)}}});searxng.on(".result a","focus",function(t){if(!e(t.target)){let e=n(t.target);if(e&&e.getAttribute("data-vim-selected")===null){i(e)(true)}if(r(e)){searxng.selectImage(e)}}},true);var d={27:{key:"Escape",fun:o,des:"remove focus from the focused input",cat:"Control"},73:{key:"i",fun:p,des:"focus on the search input",cat:"Control"},66:{key:"b",fun:u(-window.innerHeight),des:"scroll one page up",cat:"Navigation"},70:{key:"f",fun:u(window.innerHeight),des:"scroll one page down",cat:"Navigation"},85:{key:"u",fun:u(-window.innerHeight/2),des:"scroll half a page up",cat:"Navigation"},68:{key:"d",fun:u(window.innerHeight/2),des:"scroll half a page down",cat:"Navigation"},71:{key:"g",fun:c(-document.body.scrollHeight,"top"),des:"scroll to the top of the page",cat:"Navigation"},86:{key:"v",fun:c(document.body.scrollHeight,"bottom"),des:"scroll to the bottom of the page",cat:"Navigation"},75:{key:"k",fun:i("up"),des:"select previous search result",cat:"Results"},74:{key:"j",fun:i("down"),des:"select next search result",cat:"Results"},80:{key:"p",fun:l(),des:"go to previous page",cat:"Results"},78:{key:"n",fun:s(),des:"go to next page",cat:"Results"},79:{key:"o",fun:h(false),des:"open search result",cat:"Results"},84:{key:"t",fun:h(true),des:"open the result in a new tab",cat:"Results"},82:{key:"r",fun:t,des:"reload page from the server",cat:"Control"},72:{key:"h",fun:m,des:"toggle help window",cat:"Other"}};if(searxng.hotkeys){searxng.on(document,"keydown",function(e){if(Object.prototype.hasOwnProperty.call(d,e.keyCode)&&!e.ctrlKey&&!e.altKey&&!e.shiftKey&&!e.metaKey){var t=e.target.tagName.toLowerCase();if(e.keyCode===27){d[e.keyCode].fun(e)}else{if(e.target===document.body||t==="a"||t==="button"){e.preventDefault();d[e.keyCode].fun()}}}})}function i(d){return function(e){var t=document.querySelector(".result[data-vim-selected]"),n=d;if(t===null){t=document.querySelector(".result");if(t===null){return}if(d==="down"||d==="up"){n=t}}var r,i=document.querySelectorAll(".result");if(typeof n!=="string"){r=n}else{switch(n){case"visible":var o=document.documentElement.scrollTop||document.body.scrollTop;var a=o+document.documentElement.clientHeight;for(var s=0;so){break}}break;case"down":r=t.nextElementSibling;if(r===null){r=i[0]}break;case"up":r=t.previousElementSibling;if(r===null){r=i[i.length-1]}break;case"bottom":r=i[i.length-1];break;case"top":default:r=i[0]}}if(r){t.removeAttribute("data-vim-selected");r.setAttribute("data-vim-selected","true");var c=r.querySelector("h3 a")||r.querySelector("a");if(c!==null){c.focus()}if(!e){f()}}}}function t(){document.location.reload(true)}function o(e){const t=e.target.tagName.toLowerCase();if(document.activeElement&&(t==="input"||t==="select"||t==="textarea")){document.activeElement.blur()}else{searxng.closeDetail()}}function a(t){return function(){var e=document.querySelector(t);if(e){e.click()}}}function s(){return a('nav#pagination .next_page button[type="submit"]')}function l(){return a('nav#pagination .previous_page button[type="submit"]')}function f(){var e=document.querySelector(".result[data-vim-selected]");if(e===null){return}var t=document.documentElement.scrollTop||document.body.scrollTop,n=document.documentElement.clientHeight,r=e.offsetTop,i=r+e.clientHeight,o=120;if(e.previousElementSibling===null&&ir-o){window.scroll(window.scrollX,r-o)}else{var a=t+n;if(a a")}if(e!==null){var t=e.getAttribute("href");if(n){window.open(t)}else{window.location.href=t}}}}function g(e){var n={};for(var t in d){var r=d[t];n[r.cat]=n[r.cat]||[];n[r.cat].push(r)}var i=Object.keys(n).sort(function(e,t){return n[t].length-n[e].length});if(i.length===0){return}var o='×';o+="How to navigate searx with Vim-like hotkeys
";o+="";for(var a=0;a"}o+="";o+=""+s[0].cat+"";o+='';for(var c in s){o+="- "+s[c].key+" "+s[c].des+"
"}o+=" ";o+=" | ";if(!u||l){o+=""}}o+="
";e.innerHTML=o}function m(){var e=document.querySelector("#vim-hotkeys-help");if(e===undefined||e===null){e=document.createElement("div");e.id="vim-hotkeys-help";e.className="dialog-modal";g(e);g(e);g(e);var t=document.getElementsByTagName("body")[0];t.appendChild(e)}else{e.classList.toggle("invisible");return}}searxng.scrollPageToSelected=f;searxng.selectNext=i("down");searxng.selectPrevious=i("up")});(function(e,t,n){"use strict";n.ready(function(){n.on(".searxng_init_map","click",function(e){this.classList.remove("searxng_init_map");var d=this.dataset.leafletTarget;var f=parseFloat(this.dataset.mapLon);var p=parseFloat(this.dataset.mapLat);var h=parseFloat(this.dataset.mapZoom);var g=JSON.parse(this.dataset.mapBoundingbox);var m=JSON.parse(this.dataset.mapGeojson);n.loadStyle("css/leaflet.css");n.loadScript("js/leaflet.js",function(){var e=null;if(g){var t=L.latLng(g[0],g[2]);var n=L.latLng(g[1],g[3]);e=L.latLngBounds(t,n)}var r=L.map(d);var i="https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png";var o='Map data © OpenStreetMap contributors';var a=new L.TileLayer(i,{minZoom:1,maxZoom:19,attribution:o});var s="https://maps.wikimedia.org/osm-intl/{z}/{x}/{y}.png";var l='Wikimedia maps | Maps data © OpenStreetMap contributors';var u=new L.TileLayer(s,{minZoom:1,maxZoom:19,attribution:l});if(e){setTimeout(function(){r.fitBounds(e,{maxZoom:17})},0)}else if(f&&p){if(h){r.setView(new L.latLng(p,f),h)}else{r.setView(new L.latLng(p,f),8)}}r.addLayer(a);var c={"OSM Mapnik":a,"OSM Wikimedia":u};L.control.layers(c).addTo(r);if(m){L.geoJson(m).addTo(r)}});e.preventDefault()})})})(window,document,window.searxng);(function(e,o,a){"use strict";a.ready(function(){let i=null;function e(){if(i==null){a.http("GET","engine_descriptions.json").then(function(e){i=JSON.parse(e);for(const[t,n]of Object.entries(i)){let e=o.querySelectorAll('[data-engine-name="'+t+'"] .engine-description');for(const r of e){let e=" ("+a.translations["Source"]+": "+n[1]+")";r.innerHTML=n[0]+e}}})}}if(o.querySelector('body[class="preferences_endpoint"]')){for(const t of o.querySelectorAll("[data-engine-name]")){a.on(t,"mouseenter",e)}}})})(window,document,window.searxng);(function(e,s,l){"use strict";l.ready(function(){l.image_thumbnail_layout=new l.ImageLayout("#urls","#urls .result-images","img.image_thumbnail",14,6,200);l.image_thumbnail_layout.watch();s.querySelectorAll("#urls img.image").forEach(e=>e.addEventListener("error",()=>{e.style.display="none";e.error=null}));l.on(".btn-collapse","click",function(){var e=this.getAttribute("data-btn-text-collapsed");var t=this.getAttribute("data-btn-text-not-collapsed");var n=this.getAttribute("data-target");var r=s.querySelector(n);var i=this.innerHTML;if(this.classList.contains("collapsed")){i=i.replace(e,t)}else{i=i.replace(t,e)}this.innerHTML=i;this.classList.toggle("collapsed");r.classList.toggle("invisible")});l.on(".media-loader","click",function(){var e=this.getAttribute("data-target");var t=s.querySelector(e+" > iframe");var n=t.getAttribute("src");if(n===null||n===undefined||n===false){t.setAttribute("src",t.getAttribute("data-src"))}});l.selectImage=function(e){if(e){const t=e.querySelector(".result-images-source img");const n=e.querySelector(".image_thumbnail");const r=e.querySelector(".detail");if(t){const i=t.getAttribute("data-src");if(i){const o=s.createElement("div");const a=new Image;o.classList.add("loader");r.appendChild(o);a.onload=e=>{t.src=i;o.remove()};a.onerror=e=>{o.remove()};a.src=i;t.src=n.src;t.removeAttribute("data-src")}}}s.getElementById("results").classList.add("image-detail-open");l.image_thumbnail_layout.align();l.scrollPageToSelected()};l.closeDetail=function(e){s.getElementById("results").classList.remove("image-detail-open");l.image_thumbnail_layout.align();l.scrollPageToSelected()};l.on(".result-detail-close","click",e=>{e.preventDefault();l.closeDetail()});l.on(".result-detail-previous","click",e=>l.selectPrevious(false));l.on(".result-detail-next","click",e=>l.selectNext(false));e.addEventListener("scroll",function(){var e=s.getElementById("backToTop"),t=document.documentElement.scrollTop||document.body.scrollTop,n=s.getElementById("results");if(e!==null){if(t>=100){n.classList.add("scrolling")}else{n.classList.remove("scrolling")}}},true)})})(window,document,window.searxng);(function(t,n,r){"use strict";var i=true,o="q",a;function s(e){if(e.setSelectionRange){var t=e.value.length;e.setSelectionRange(t,t)}}function l(){if(a.value.length>0){var e=document.getElementById("search");setTimeout(e.submit.bind(e),0)}}function u(e){var t=document.getElementById("clear_search");var n=function(){if(e.value.length===0){t.classList.add("empty")}else{t.classList.remove("empty")}};n();t.addEventListener("click",function(){e.value="";e.focus();n()});e.addEventListener("keyup",n,false)}r.ready(function(){a=n.getElementById(o);function e(){if(i){s(a);i=false}else{}}if(a!==null){u(a);if(r.autocompleter){r.autocomplete=AutoComplete.call(t,{Url:"./autocompleter",EmptyMessage:r.translations.no_item_found,HttpMethod:r.method,HttpHeaders:{"Content-type":"application/x-www-form-urlencoded","X-Requested-With":"XMLHttpRequest"},MinChars:4,Delay:300,_Position:function(){this.DOMResults.setAttribute("class","autocomplete");this.DOMResults.style.top=this.Input.offsetTop+this.Input.offsetHeight+"px";this.DOMResults.style.left=this.Input.offsetLeft+"px";this.DOMResults.style.width=this.Input.clientWidth+"px"},_Open:function(){var t=this;Array.prototype.forEach.call(this.DOMResults.getElementsByTagName("li"),function(e){if(e.getAttribute("class")!="locked"){e.onmousedown=function(){t._Select(e)}}})}},"#"+o);t.addEventListener("resize",function(){var e=new CustomEvent("position");a.dispatchEvent(e)})}a.addEventListener("focus",e,false);a.focus()}if(a!==null&&n.querySelector(".help")!=null&&r.search_on_category_select){n.querySelector(".help").className="invisible";r.on("#categories input","change",function(){var e,t=n.querySelectorAll('#categories input[type="checkbox"]');for(e=0;e0&&i.naturalHeight>0){r+=i.naturalWidth/i.naturalHeight}else{r+=1}}return(t-e.length*this.verticalMargin)/r};e.prototype._setSize=function(e,t){var n,i,r;var o=e.length,a;for(n=0;n0&&i.naturalHeight>0){r=t*i.naturalWidth/i.naturalHeight}else{r=t}i.style.width=r+"px";i.style.height=t+"px";i.style.marginLeft=this.horizontalMargin+"px";i.style.marginTop=this.horizontalMargin+"px";i.style.marginRight=this.verticalMargin-7+"px";i.style.marginBottom=this.verticalMargin-7+"px";a=i.parentNode.parentNode;if(!a.classList.contains("js")){a.classList.add("js")}}};e.prototype._alignImgs=function(e){var t,n,i,r;var o=c.querySelector(this.container_selector);var a=window.getComputedStyle(o);var s=parseInt(a.getPropertyValue("padding-left"),10);var l=parseInt(a.getPropertyValue("padding-right"),10);var u=o.clientWidth-s-l;while(e.length>0){t=true;for(i=1;i<=e.length&&t;i++){n=e.slice(0,i);r=this._getHeigth(n,u);if(r0){this._alignImgs(o);o=[]}o.push(r.querySelector(this.img_selector));i=r}if(o.length>0){this._alignImgs(o)}};e.prototype.watch=function(){var e,t;var n=this;var i=c.querySelectorAll(this.results_selector);var r=i.length;function o(e){e.originalTarget.src=s.searxng.static_path+s.searxng.theme.img_load_error}function a(){if(n.isAlignDone){n.isAlignDone=false;setTimeout(function(){n.align();n.isAlignDone=true},100)}}s.addEventListener("pageshow",a);s.addEventListener("load",a);s.addEventListener("resize",a);for(e=0;e0&&r.naturalHeight>0){i+=r.naturalWidth/r.naturalHeight}else{i+=1}}return(t-e.length*this.verticalMargin)/i};e.prototype._setSize=function(e,t){var n,r,i;var o=e.length,a;for(n=0;n0&&r.naturalHeight>0){i=t*r.naturalWidth/r.naturalHeight}else{i=t}r.style.width=i+"px";r.style.height=t+"px";r.style.marginLeft=this.horizontalMargin+"px";r.style.marginTop=this.horizontalMargin+"px";r.style.marginRight=this.verticalMargin-7+"px";r.style.marginBottom=this.verticalMargin-7+"px";a=r.parentNode.parentNode;if(!a.classList.contains("js")){a.classList.add("js")}}};e.prototype._alignImgs=function(e){var t,n,r,i;var o=c.querySelector(this.container_selector);var a=window.getComputedStyle(o);var s=parseInt(a.getPropertyValue("padding-left"),10);var l=parseInt(a.getPropertyValue("padding-right"),10);var u=o.clientWidth-s-l;while(e.length>0){t=true;for(r=1;r<=e.length&&t;r++){n=e.slice(0,r);i=this._getHeigth(n,u);if(i0){this._alignImgs(o);o=[]}o.push(i.querySelector(this.img_selector));r=i}if(o.length>0){this._alignImgs(o)}};e.prototype.watch=function(){var e,t;var n=this;var r=c.querySelectorAll(this.results_selector);var i=r.length;function o(e){e.originalTarget.src=s.searxng.static_path+s.searxng.theme.img_load_error}function a(){if(n.isAlignDone){n.isAlignDone=false;setTimeout(function(){n.align();n.isAlignDone=true},100)}}s.addEventListener("pageshow",a);s.addEventListener("load",a);s.addEventListener("resize",a);for(e=0;e=e.From&&n.keyCode<=e.To){a=!e.Not}else{a=e.Not}}}};for(var r in s.prototype.getEventsByType(e,t)){var o=s.merge({Operator:l.AND},e.KeyboardMappings[r]),a=l.AND==o.Operator;o.Conditions.forEach(i);if(a===true){o.Callback.call(e,n)}}};s.prototype.makeRequest=function(e,t,n){var i=Object.getOwnPropertyNames(e.HttpHeaders),r=new XMLHttpRequest,o=e._HttpMethod(),a=e._Url(),s=e._Pre(),l=encodeURIComponent(e._QueryArg())+"="+encodeURIComponent(s);if(o.match(/^GET$/i)){if(a.indexOf("?")!==-1){a+="&"+l}else{a+="?"+l}}r.open(o,a,true);for(var u=i.length-1;u>=0;u--){r.setRequestHeader(i[u],e.HttpHeaders[i[u]])}r.onreadystatechange=function(){if(r.readyState==4&&r.status==200){e.$Cache[s]=r.response;t(r.response)}else if(r.status>=400){n()}};return r};s.prototype.ajax=function(e,t,n){if(n===void 0){n=true}if(e.$AjaxTimer){window.clearTimeout(e.$AjaxTimer)}if(n===true){e.$AjaxTimer=window.setTimeout(s.prototype.ajax.bind(null,e,t,false),e.Delay)}else{if(e.Request){e.Request.abort()}e.Request=t;e.Request.send(e._QueryArg()+"="+e._Pre())}};s.prototype.cache=function(e,t,n){var i=e._Cache(e._Pre());if(i===undefined){var r=s.prototype.makeRequest(e,t,n);s.prototype.ajax(e,r)}else{t(i)}};s.prototype.destroy=function(e){for(var t in e.$Listeners){e.Input.removeEventListener(t,e.$Listeners[t])}e.DOMResults.parentNode.removeChild(e.DOMResults)};s.merge=function(){var e={},t;for(var n=0;n"+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:false}],Callback:function(e){if(this.DOMResults.getAttribute("class").indexOf("open")!=-1){var t=this.DOMResults.querySelector("li.active");if(t!==null){e.preventDefault();this._Select(t);this.DOMResults.setAttribute("class","autocomplete")}}},Operator:l.AND,Event:o.KEYDOWN},KeyUpAndDown_down:{Conditions:[{Is:38,Not:false},{Is:40,Not:false}],Callback:function(e){e.preventDefault()},Operator:l.OR,Event:o.KEYDOWN},KeyUpAndDown_up:{Conditions:[{Is:38,Not:false},{Is:40,Not:false}],Callback:function(e){e.preventDefault();var t=this.DOMResults.querySelector("li:first-child:not(.locked)"),n=this.DOMResults.querySelector("li:last-child:not(.locked)"),i=this.DOMResults.querySelector("li.active");if(i){var r=Array.prototype.indexOf.call(i.parentNode.children,i),o=r+(e.keyCode-39),a=this.DOMResults.getElementsByTagName("li").length;if(o<0){o=a-1}else if(o>=a){o=0}i.classList.remove("active");i.parentElement.children.item(o).classList.add("active")}else if(n&&e.keyCode==38){n.classList.add("active")}else if(t){t.classList.add("active")}},Operator:l.OR,Event:o.KEYUP},AlphaNum:{Conditions:[{Is:13,Not:true},{From:35,To:40,Not:true}],Callback:function(){var e=this.Input.getAttribute("data-autocomplete-old-value"),t=this._Pre();if(t!==""&&t.length>=this._MinChars()){if(!e||t!=e){this.DOMResults.setAttribute("class","autocomplete open")}s.prototype.cache(this,function(e){this._Render(this._Post(e));this._Open()}.bind(this),this._Error)}else{this._Close()}},Operator:l.AND,Event:o.KEYUP}},DOMResults:null,Request:null,Input:null,_EmptyMessage:function(){var e="";if(this.Input.hasAttribute("data-autocomplete-empty-message")){e=this.Input.getAttribute("data-autocomplete-empty-message")}else if(this.EmptyMessage!==false){e=this.EmptyMessage}else{e=""}return e},_Limit:function(){var e=this.Input.getAttribute("data-autocomplete-limit");if(isNaN(e)||e===null){return this.Limit}return parseInt(e,10)},_MinChars:function(){var e=this.Input.getAttribute("data-autocomplete-minchars");if(isNaN(e)||e===null){return this.MinChars}return parseInt(e,10)},_Highlight:function(e){return e.replace(this.Highlight.getRegex(this._Pre()),this.Highlight.transform)},_HttpMethod:function(){if(this.Input.hasAttribute("data-autocomplete-method")){return this.Input.getAttribute("data-autocomplete-method")}return this.HttpMethod},_QueryArg:function(){if(this.Input.hasAttribute("data-autocomplete-param-name")){return this.Input.getAttribute("data-autocomplete-param-name")}return this.QueryArg},_Url:function(){if(this.Input.hasAttribute("data-autocomplete")){return this.Input.getAttribute("data-autocomplete")}return this.Url},_Blur:function(e){if(e===void 0){e=false}if(e){this._Close()}else{var t=this;setTimeout(function(){t._Blur(true)},150)}},_Cache:function(e){return this.$Cache[e]},_Focus:function(){var e=this.Input.getAttribute("data-autocomplete-old-value");if((!e||this.Input.value!=e)&&this._MinChars()<=this.Input.value.length){this.DOMResults.setAttribute("class","autocomplete open")}},_Open:function(){var t=this;Array.prototype.forEach.call(this.DOMResults.getElementsByTagName("li"),function(e){if(e.getAttribute("class")!="locked"){e.onclick=function(){t._Select(e)}}})},_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;if(typeof e=="string"){t=this._RenderRaw(e)}else{t=this._RenderResponseItems(e)}if(this.DOMResults.hasChildNodes()){this.DOMResults.removeChild(this.DOMResults.childNodes[0])}this.DOMResults.appendChild(t)},_RenderResponseItems:function(e){var t=document.createElement("ul"),n=document.createElement("li"),i=this._Limit();if(i<0){e=e.reverse()}else if(i===0){i=e.length}for(var r=0;r0){this.DOMResults.innerHTML=e}else{var i=this._EmptyMessage();if(i!==""){n.innerHTML=i;n.setAttribute("class","locked");t.appendChild(n)}}return t},_Post:function(t){try{var e=[];var n=JSON.parse(t);if(Object.keys(n).length===0){return""}if(Array.isArray(n)){for(var i=0;i=e.From&&n.keyCode<=e.To){a=!e.Not}else{a=e.Not}}}};for(var i in s.prototype.getEventsByType(e,t)){var o=s.merge({Operator:l.AND},e.KeyboardMappings[i]),a=l.AND==o.Operator;o.Conditions.forEach(r);if(a===true){o.Callback.call(e,n)}}};s.prototype.makeRequest=function(e,t,n){var r=Object.getOwnPropertyNames(e.HttpHeaders),i=new XMLHttpRequest,o=e._HttpMethod(),a=e._Url(),s=e._Pre(),l=encodeURIComponent(e._QueryArg())+"="+encodeURIComponent(s);if(o.match(/^GET$/i)){if(a.indexOf("?")!==-1){a+="&"+l}else{a+="?"+l}}i.open(o,a,true);for(var u=r.length-1;u>=0;u--){i.setRequestHeader(r[u],e.HttpHeaders[r[u]])}i.onreadystatechange=function(){if(i.readyState==4&&i.status==200){e.$Cache[s]=i.response;t(i.response)}else if(i.status>=400){n()}};return i};s.prototype.ajax=function(e,t,n){if(n===void 0){n=true}if(e.$AjaxTimer){window.clearTimeout(e.$AjaxTimer)}if(n===true){e.$AjaxTimer=window.setTimeout(s.prototype.ajax.bind(null,e,t,false),e.Delay)}else{if(e.Request){e.Request.abort()}e.Request=t;e.Request.send(e._QueryArg()+"="+e._Pre())}};s.prototype.cache=function(e,t,n){var r=e._Cache(e._Pre());if(r===undefined){var i=s.prototype.makeRequest(e,t,n);s.prototype.ajax(e,i)}else{t(r)}};s.prototype.destroy=function(e){for(var t in e.$Listeners){e.Input.removeEventListener(t,e.$Listeners[t])}e.DOMResults.parentNode.removeChild(e.DOMResults)};s.merge=function(){var e={},t;for(var n=0;n"+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:false}],Callback:function(e){if(this.DOMResults.getAttribute("class").indexOf("open")!=-1){var t=this.DOMResults.querySelector("li.active");if(t!==null){e.preventDefault();this._Select(t);this.DOMResults.setAttribute("class","autocomplete")}}},Operator:l.AND,Event:o.KEYDOWN},KeyUpAndDown_down:{Conditions:[{Is:38,Not:false},{Is:40,Not:false}],Callback:function(e){e.preventDefault()},Operator:l.OR,Event:o.KEYDOWN},KeyUpAndDown_up:{Conditions:[{Is:38,Not:false},{Is:40,Not:false}],Callback:function(e){e.preventDefault();var t=this.DOMResults.querySelector("li:first-child:not(.locked)"),n=this.DOMResults.querySelector("li:last-child:not(.locked)"),r=this.DOMResults.querySelector("li.active");if(r){var i=Array.prototype.indexOf.call(r.parentNode.children,r),o=i+(e.keyCode-39),a=this.DOMResults.getElementsByTagName("li").length;if(o<0){o=a-1}else if(o>=a){o=0}r.classList.remove("active");r.parentElement.children.item(o).classList.add("active")}else if(n&&e.keyCode==38){n.classList.add("active")}else if(t){t.classList.add("active")}},Operator:l.OR,Event:o.KEYUP},AlphaNum:{Conditions:[{Is:13,Not:true},{From:35,To:40,Not:true}],Callback:function(){var e=this.Input.getAttribute("data-autocomplete-old-value"),t=this._Pre();if(t!==""&&t.length>=this._MinChars()){if(!e||t!=e){this.DOMResults.setAttribute("class","autocomplete open")}s.prototype.cache(this,function(e){this._Render(this._Post(e));this._Open()}.bind(this),this._Error)}else{this._Close()}},Operator:l.AND,Event:o.KEYUP}},DOMResults:null,Request:null,Input:null,_EmptyMessage:function(){var e="";if(this.Input.hasAttribute("data-autocomplete-empty-message")){e=this.Input.getAttribute("data-autocomplete-empty-message")}else if(this.EmptyMessage!==false){e=this.EmptyMessage}else{e=""}return e},_Limit:function(){var e=this.Input.getAttribute("data-autocomplete-limit");if(isNaN(e)||e===null){return this.Limit}return parseInt(e,10)},_MinChars:function(){var e=this.Input.getAttribute("data-autocomplete-minchars");if(isNaN(e)||e===null){return this.MinChars}return parseInt(e,10)},_Highlight:function(e){return e.replace(this.Highlight.getRegex(this._Pre()),this.Highlight.transform)},_HttpMethod:function(){if(this.Input.hasAttribute("data-autocomplete-method")){return this.Input.getAttribute("data-autocomplete-method")}return this.HttpMethod},_QueryArg:function(){if(this.Input.hasAttribute("data-autocomplete-param-name")){return this.Input.getAttribute("data-autocomplete-param-name")}return this.QueryArg},_Url:function(){if(this.Input.hasAttribute("data-autocomplete")){return this.Input.getAttribute("data-autocomplete")}return this.Url},_Blur:function(e){if(e===void 0){e=false}if(e){this._Close()}else{var t=this;setTimeout(function(){t._Blur(true)},150)}},_Cache:function(e){return this.$Cache[e]},_Focus:function(){var e=this.Input.getAttribute("data-autocomplete-old-value");if((!e||this.Input.value!=e)&&this._MinChars()<=this.Input.value.length){this.DOMResults.setAttribute("class","autocomplete open")}},_Open:function(){var t=this;Array.prototype.forEach.call(this.DOMResults.getElementsByTagName("li"),function(e){if(e.getAttribute("class")!="locked"){e.onclick=function(){t._Select(e)}}})},_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;if(typeof e=="string"){t=this._RenderRaw(e)}else{t=this._RenderResponseItems(e)}if(this.DOMResults.hasChildNodes()){this.DOMResults.removeChild(this.DOMResults.childNodes[0])}this.DOMResults.appendChild(t)},_RenderResponseItems:function(e){var t=document.createElement("ul"),n=document.createElement("li"),r=this._Limit();if(r<0){e=e.reverse()}else if(r===0){r=e.length}for(var i=0;i0){this.DOMResults.innerHTML=e}else{var r=this._EmptyMessage();if(r!==""){n.innerHTML=r;n.setAttribute("class","locked");t.appendChild(n)}}return t},_Post:function(t){try{var e=[];var n=JSON.parse(t);if(Object.keys(n).length===0){return""}if(Array.isArray(n)){for(var r=0;r 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);\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 var vimKeys = {\n 27: {\n key: 'Escape',\n fun: removeFocus,\n des: 'remove focus from the focused input',\n cat: 'Control'\n },\n 73: {\n key: 'i',\n fun: searchInputFocus,\n des: 'focus on the search input',\n cat: 'Control'\n },\n 66: {\n key: 'b',\n fun: scrollPage(-window.innerHeight),\n des: 'scroll one page up',\n cat: 'Navigation'\n },\n 70: {\n key: 'f',\n fun: scrollPage(window.innerHeight),\n des: 'scroll one page down',\n cat: 'Navigation'\n },\n 85: {\n key: 'u',\n fun: scrollPage(-window.innerHeight / 2),\n des: 'scroll half a page up',\n cat: 'Navigation'\n },\n 68: {\n key: 'd',\n fun: scrollPage(window.innerHeight / 2),\n des: 'scroll half a page down',\n cat: 'Navigation'\n },\n 71: {\n key: 'g',\n fun: scrollPageTo(-document.body.scrollHeight, 'top'),\n des: 'scroll to the top of the page',\n cat: 'Navigation'\n },\n 86: {\n key: 'v',\n fun: scrollPageTo(document.body.scrollHeight, 'bottom'),\n des: 'scroll to the bottom of the page',\n cat: 'Navigation'\n },\n 75: {\n key: 'k',\n fun: highlightResult('up'),\n des: 'select previous search result',\n cat: 'Results'\n },\n 74: {\n key: 'j',\n fun: highlightResult('down'),\n des: 'select next search result',\n cat: 'Results'\n },\n 80: {\n key: 'p',\n fun: GoToPreviousPage(),\n des: 'go to previous page',\n cat: 'Results'\n },\n 78: {\n key: 'n',\n fun: GoToNextPage(),\n des: 'go to next page',\n cat: 'Results'\n },\n 79: {\n key: 'o',\n fun: openResult(false),\n des: 'open search result',\n cat: 'Results'\n },\n 84: {\n key: 't',\n fun: openResult(true),\n des: 'open the result in a new tab',\n cat: 'Results'\n },\n 82: {\n key: 'r',\n fun: reloadPage,\n des: 'reload page from the server',\n cat: 'Control'\n },\n 72: {\n key: 'h',\n fun: toggleHelp,\n des: 'toggle help window',\n cat: 'Other'\n }\n };\n\n if (searxng.hotkeys) {\n searxng.on(document, \"keydown\", function (e) {\n // check for modifiers so we don't break browser's hotkeys\n if (Object.prototype.hasOwnProperty.call(vimKeys, e.keyCode) && !e.ctrlKey && !e.altKey && !e.shiftKey && !e.metaKey) {\n var tagName = e.target.tagName.toLowerCase();\n if (e.keyCode === 27) {\n vimKeys[e.keyCode].fun(e);\n } else {\n if (e.target === document.body || tagName === 'a' || tagName === 'button') {\n e.preventDefault();\n vimKeys[e.keyCode].fun();\n }\n }\n }\n });\n }\n\n function highlightResult (which) {\n return function (noScroll) {\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\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 = current.nextElementSibling;\n if (next === null) {\n next = results[0];\n }\n break;\n case 'up':\n next = current.previousElementSibling;\n if (next === null) {\n next = results[results.length - 1];\n }\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 var link = next.querySelector('h3 a') || next.querySelector('a');\n if (link !== null) {\n link.focus();\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 document.querySelector('#q').focus();\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 vimKeys) {\n var key = vimKeys[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 searx with Vim-like 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 += '';\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 += ' | '; // col-sm-*\n\n if (!first || lastCategory) {\n html += '
'; // row\n }\n }\n\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 initHelpContent(helpPanel);\n initHelpContent(helpPanel);\n var body = document.getElementsByTagName('body')[0];\n body.appendChild(helpPanel);\n } else {\n // togggle hidden\n helpPanel.classList.toggle('invisible');\n return;\n }\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 occour 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 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.translations['Source'] + ': ' + description[1] + ')';\n element.innerHTML = description[0] + source;\n }\n }\n });\n }\n }\n\n if (d.querySelector('body[class=\"preferences_endpoint\"]')) {\n for (const el of d.querySelectorAll('[data-engine-name]')) {\n searxng.on(el, 'mouseenter', load_engine_descriptions);\n }\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 searxng.ready(function () {\n searxng.image_thumbnail_layout = new searxng.ImageLayout('#urls', '#urls .result-images', 'img.image_thumbnail', 14, 6, 200);\n searxng.image_thumbnail_layout.watch();\n\n d.querySelectorAll('#urls img.image').forEach(\n img =>\n img.addEventListener(\n 'error', () => {\n img.style.display = 'none';\n img.error = null;\n }\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.selectImage = function (resultElement) {\n /* eslint no-unused-vars: 0 */\n if (resultElement) {\n // load full size image in background\n const imgElement = resultElement.querySelector('.result-images-source img');\n const thumbnailElement = resultElement.querySelector('.image_thumbnail');\n const detailElement = resultElement.querySelector('.detail');\n if (imgElement) {\n const imgSrc = imgElement.getAttribute('data-src');\n if (imgSrc) {\n const loader = d.createElement('div');\n const imgLoader = new Image();\n\n loader.classList.add('loader');\n detailElement.appendChild(loader);\n\n imgLoader.onload = e => {\n imgElement.src = imgSrc;\n loader.remove();\n };\n imgLoader.onerror = e => {\n loader.remove();\n };\n imgLoader.src = imgSrc;\n imgElement.src = thumbnailElement.src;\n imgElement.removeAttribute('data-src');\n }\n }\n }\n d.getElementById('results').classList.add('image-detail-open');\n searxng.image_thumbnail_layout.align();\n searxng.scrollPageToSelected();\n }\n\n searxng.closeDetail = function (e) {\n d.getElementById('results').classList.remove('image-detail-open');\n searxng.image_thumbnail_layout.align();\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 => searxng.selectPrevious(false));\n searxng.on('.result-detail-next', 'click', e => searxng.selectNext(false));\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/* global AutoComplete */\n(function (w, d, searxng) {\n 'use strict';\n\n var firstFocus = true, qinput_id = \"q\", qinput;\n\n function placeCursorAtEnd (element) {\n if (element.setSelectionRange) {\n var len = element.value.length;\n element.setSelectionRange(len, len);\n }\n }\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 () {\n qinput.value = '';\n qinput.focus();\n updateClearButton();\n });\n qinput.addEventListener('keyup', updateClearButton, false);\n }\n\n searxng.ready(function () {\n qinput = d.getElementById(qinput_id);\n\n function placeCursorAtEndOnce () {\n if (firstFocus) {\n placeCursorAtEnd(qinput);\n firstFocus = false;\n } else {\n // e.preventDefault();\n }\n }\n\n if (qinput !== null) {\n // clear button\n createClearButton(qinput);\n\n // autocompleter\n if (searxng.autocompleter) {\n searxng.autocomplete = AutoComplete.call(w, {\n Url: \"./autocompleter\",\n EmptyMessage: searxng.translations.no_item_found,\n HttpMethod: searxng.method,\n HttpHeaders: {\n \"Content-type\": \"application/x-www-form-urlencoded\",\n \"X-Requested-With\": \"XMLHttpRequest\"\n },\n MinChars: 4,\n Delay: 300,\n _Position: function () {\n this.DOMResults.setAttribute(\"class\", \"autocomplete\");\n this.DOMResults.style.top = (this.Input.offsetTop + this.Input.offsetHeight) + \"px\";\n this.DOMResults.style.left = this.Input.offsetLeft + \"px\";\n this.DOMResults.style.width = this.Input.clientWidth + \"px\";\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.onmousedown = function () {\n params._Select(li);\n };\n }\n });\n },\n }, \"#\" + qinput_id);\n\n // hack, see : https://github.com/autocompletejs/autocomplete.js/issues/37\n w.addEventListener('resize', function () {\n var event = new CustomEvent(\"position\");\n qinput.dispatchEvent(event);\n });\n }\n\n qinput.addEventListener('focus', placeCursorAtEndOnce, false);\n qinput.focus();\n }\n\n // vanilla js version of search_on_category_select.js\n if (qinput !== null && d.querySelector('.help') != null && searxng.search_on_category_select) {\n d.querySelector('.help').className = 'invisible';\n\n searxng.on('#categories input', 'change', function () {\n var i, categories = d.querySelectorAll('#categories input[type=\"checkbox\"]');\n for (i = 0; i < categories.length; i++) {\n if (categories[i] !== this && categories[i].checked) {\n categories[i].click();\n }\n }\n if (! this.checked) {\n this.click();\n }\n submitIfQuery();\n return false;\n });\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 });\n\n})(window, document, window.searxng);\n","/**\n*\n* Google Image Layout v0.0.1\n* Description, by Anh Trinh.\n* Heavily modified for searx\n* https://ptgamr.github.io/2014-09-12-google-image-layout/\n* https://ptgamr.github.io/google-image-layout/src/google-image-layout.js\n*\n* @license Free to use under the MIT License.\n*\n* @example Example usage of searxng.ImageLayout class.\n* searxng.image_thumbnail_layout = new searxng.ImageLayout(\n* '#urls', // container_selector\n* '#urls .result-images', // results_selector\n* 'img.image_thumbnail', // img_selector\n* 14, // verticalMargin\n* 6, // horizontalMargin\n* 200 // maxHeight\n* );\n* searxng.image_thumbnail_layout.watch();\n*/\n\n\n(function (w, d) {\n function ImageLayout (container_selector, results_selector, img_selector, verticalMargin, horizontalMargin, maxHeight) {\n this.container_selector = container_selector;\n this.results_selector = results_selector;\n this.img_selector = img_selector;\n this.verticalMargin = verticalMargin;\n this.horizontalMargin = horizontalMargin;\n this.maxHeight = maxHeight;\n this.isAlignDone = true;\n }\n\n /**\n * Get the height that make all images fit the container\n *\n * width = w1 + w2 + w3 + ... = r1*h + r2*h + r3*h + ...\n *\n * @param {[type]} images the images to be calculated\n * @param {[type]} width the container witdth\n * @param {[type]} margin the margin between each image\n *\n * @return {[type]} the height\n */\n ImageLayout.prototype._getHeigth = function (images, width) {\n var i, img;\n var r = 0;\n\n for (i = 0; i < images.length; i++) {\n img = images[i];\n if ((img.naturalWidth > 0) && (img.naturalHeight > 0)) {\n r += img.naturalWidth / img.naturalHeight;\n } else {\n // assume that not loaded images are square\n r += 1;\n }\n }\n\n return (width - images.length * this.verticalMargin) / r; // have to round down because Firefox will automatically roundup value with number of decimals > 3\n };\n\n ImageLayout.prototype._setSize = function (images, height) {\n var i, img, imgWidth;\n var imagesLength = images.length, resultNode;\n\n for (i = 0; i < imagesLength; i++) {\n img = images[i];\n if ((img.naturalWidth > 0) && (img.naturalHeight > 0)) {\n imgWidth = height * img.naturalWidth / img.naturalHeight;\n } else {\n // not loaded image : make it square as _getHeigth said it\n imgWidth = height;\n }\n img.style.width = imgWidth + 'px';\n img.style.height = height + 'px';\n img.style.marginLeft = this.horizontalMargin + 'px';\n img.style.marginTop = this.horizontalMargin + 'px';\n img.style.marginRight = this.verticalMargin - 7 + 'px'; // -4 is the negative margin of the inline element\n img.style.marginBottom = this.verticalMargin - 7 + 'px';\n resultNode = img.parentNode.parentNode;\n if (!resultNode.classList.contains('js')) {\n resultNode.classList.add('js');\n }\n }\n };\n\n ImageLayout.prototype._alignImgs = function (imgGroup) {\n var isSearching, slice, i, h;\n var containerElement = d.querySelector(this.container_selector);\n var containerCompStyles = window.getComputedStyle(containerElement);\n var containerPaddingLeft = parseInt(containerCompStyles.getPropertyValue('padding-left'), 10);\n var containerPaddingRight = parseInt(containerCompStyles.getPropertyValue('padding-right'), 10);\n var containerWidth = containerElement.clientWidth - containerPaddingLeft - containerPaddingRight;\n\n while (imgGroup.length > 0) {\n isSearching = true;\n for (i = 1; i <= imgGroup.length && isSearching; i++) {\n slice = imgGroup.slice(0, i);\n h = this._getHeigth(slice, containerWidth);\n if (h < this.maxHeight) {\n this._setSize(slice, h);\n // continue with the remaining images\n imgGroup = imgGroup.slice(i);\n isSearching = false;\n }\n }\n if (isSearching) {\n this._setSize(slice, Math.min(this.maxHeight, h));\n break;\n }\n }\n };\n\n ImageLayout.prototype.align = function () {\n var i;\n var results_selectorNode = d.querySelectorAll(this.results_selector);\n var results_length = results_selectorNode.length;\n var previous = null;\n var current = null;\n var imgGroup = [];\n\n for (i = 0; i < results_length; i++) {\n current = results_selectorNode[i];\n if (current.previousElementSibling !== previous && imgGroup.length > 0) {\n // the current image is not connected to previous one\n // so the current image is the start of a new group of images.\n // so call _alignImgs to align the current group\n this._alignImgs(imgGroup);\n // and start a new empty group of images\n imgGroup = [];\n }\n // add the current image to the group (only the img tag)\n imgGroup.push(current.querySelector(this.img_selector));\n // update the previous variable\n previous = current;\n }\n // align the remaining images\n if (imgGroup.length > 0) {\n this._alignImgs(imgGroup);\n }\n };\n\n ImageLayout.prototype.watch = function () {\n var i, img;\n var obj = this;\n var results_nodes = d.querySelectorAll(this.results_selector);\n var results_length = results_nodes.length;\n\n function img_load_error (event) {\n // console.log(\"ERROR can't load: \" + event.originalTarget.src);\n event.originalTarget.src = w.searxng.static_path + w.searxng.theme.img_load_error;\n }\n\n function throttleAlign () {\n if (obj.isAlignDone) {\n obj.isAlignDone = false;\n setTimeout(function () {\n obj.align();\n obj.isAlignDone = true;\n }, 100);\n }\n }\n\n // https://developer.mozilla.org/en-US/docs/Web/API/Window/pageshow_event\n w.addEventListener('pageshow', throttleAlign);\n // https://developer.mozilla.org/en-US/docs/Web/API/FileReader/load_event\n w.addEventListener('load', throttleAlign);\n // https://developer.mozilla.org/en-US/docs/Web/API/Window/resize_event\n w.addEventListener('resize', throttleAlign);\n\n for (i = 0; i < results_length; i++) {\n img = results_nodes[i].querySelector(this.img_selector);\n if (img !== null && img !== undefined) {\n img.addEventListener('load', throttleAlign);\n // https://developer.mozilla.org/en-US/docs/Web/API/GlobalEventHandlers/onerror\n img.addEventListener('error', throttleAlign);\n if (w.searxng.theme.img_load_error) {\n img.addEventListener('error', img_load_error, {once: true});\n }\n }\n }\n };\n\n w.searxng.ImageLayout = ImageLayout;\n\n}(window, document));\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"],"names":["window","searxng","w","d","Element","ElementPrototype","matches","matchesSelector","webkitMatchesSelector","msMatchesSelector","selector","node","this","nodes","parentNode","document","querySelectorAll","i","prototype","callbackSafe","callback","el","e","call","exception","console","log","on","obj","eventType","useCapture","addEventListener","target","srcElement","found","parentElement","ready","readyState","bind","http","method","url","req","XMLHttpRequest","resolve","reject","promise","then","catch","open","onload","status","response","responseType","Error","statusText","onerror","onabort","send","ex","loadStyle","src","path","static_path","id","replace","s","getElementById","createElement","setAttribute","body","appendChild","loadScript","hasAttribute","apply","insertBefore","newNode","referenceNode","insertAfter","nextSibling","classList","add","isElementInDetail","undefined","contains","getResultElement","isImageResult","resultElement","highlightResult","let","preventDefault","selectImage","getAttribute","vimKeys","27","key","fun","removeFocus","des","cat","73","searchInputFocus","66","scrollPage","innerHeight","70","85","68","71","scrollPageTo","scrollHeight","86","75","74","80","GoToPreviousPage","78","GoToNextPage","79","openResult","84","82","reloadPage","72","toggleHelp","hotkeys","Object","hasOwnProperty","keyCode","ctrlKey","altKey","shiftKey","metaKey","tagName","toLowerCase","which","noScroll","current","querySelector","effectiveWhich","next","results","top","documentElement","scrollTop","bot","clientHeight","length","etop","offsetTop","ebot","nextElementSibling","previousElementSibling","removeAttribute","link","focus","scrollPageToSelected","location","reload","activeElement","blur","closeDetail","pageButtonClick","css_selector","button","click","sel","wtop","wheight","offset","scroll","scrollX","wbot","amount","scrollBy","position","nav","scrollTo","newTab","href","initHelpContent","divElement","categories","k","push","sorted","keys","sort","a","b","html","lastCategory","first","cj","innerHTML","helpPanel","className","getElementsByTagName","toggle","selectNext","selectPrevious","event","remove","leaflet_target","dataset","leafletTarget","map_lon","parseFloat","mapLon","map_lat","mapLat","map_zoom","mapZoom","map_boundingbox","JSON","parse","mapBoundingbox","map_geojson","mapGeojson","map_bounds","southWest","L","latLng","northEast","latLngBounds","map","osmMapnikUrl","osmMapnikAttrib","osmMapnik","TileLayer","minZoom","maxZoom","attribution","osmWikimediaUrl","osmWikimediaAttrib","osmWikimedia","setTimeout","fitBounds","setView","addLayer","baseLayers","OSM Mapnik","OSM Wikimedia","control","layers","addTo","geoJson","engine_descriptions","load_engine_descriptions","content","engine_name","description","entries","elements","element","source","translations","image_thumbnail_layout","ImageLayout","watch","forEach","img","style","display","error","btnLabelCollapsed","btnLabelNotCollapsed","targetElement","iframe_load","srctest","imgElement","thumbnailElement","detailElement","imgSrc","loader","imgLoader","Image","align","firstFocus","qinput_id","qinput","placeCursorAtEnd","setSelectionRange","len","value","submitIfQuery","search","submit","createClearButton","cs","updateClearButton","placeCursorAtEndOnce","autocompleter","autocomplete","AutoComplete","Url","EmptyMessage","no_item_found","HttpMethod","HttpHeaders","Content-type","X-Requested-With","MinChars","Delay","_Position","DOMResults","Input","offsetHeight","left","offsetLeft","width","clientWidth","_Open","params","Array","li","onmousedown","_Select","CustomEvent","dispatchEvent","search_on_category_select","checked","container_selector","results_selector","img_selector","verticalMargin","horizontalMargin","maxHeight","isAlignDone","_getHeigth","images","r","naturalWidth","naturalHeight","_setSize","height","imgWidth","imagesLength","resultNode","marginLeft","marginTop","marginRight","marginBottom","_alignImgs","imgGroup","isSearching","slice","h","containerElement","containerCompStyles","getComputedStyle","containerPaddingLeft","parseInt","getPropertyValue","containerPaddingRight","containerWidth","Math","min","results_selectorNode","results_length","previous","results_nodes","img_load_error","originalTarget","theme","throttleAlign","once","f","exports","module","define","amd","g","global","self","n","t","o","c","require","u","code","p","1","ConditionOperator","EventType","isArray","input","specificParams","merge","defaults","create","nodeName","match","$Listeners","_Blur","destroy","_Focus","keyup","KEYUP","keydown","KEYDOWN","getEventsByType","type","mappings","KeyboardMappings","Event","eventIdentifier","condition","mapping","Operator","AND","OR","Not","Is","From","To","name","Conditions","Callback","makeRequest","callbackErr","propertyHttpHeaders","getOwnPropertyNames","request","_HttpMethod","_Url","queryParams","_Pre","queryParamsStringify","encodeURIComponent","_QueryArg","indexOf","setRequestHeader","onreadystatechange","$Cache","ajax","timeout","$AjaxTimer","clearTimeout","Request","abort","cache","_Cache","removeEventListener","removeChild","tmp","arguments","Highlight","getRegex","RegExp","transform","Limit","QueryArg","Enter","liActive","KeyUpAndDown_down","KeyUpAndDown_up","last","active","currentIndex","children","lisCount","item","AlphaNum","oldValue","currentValue","_MinChars","_Render","_Post","_Error","_Close","_EmptyMessage","emptyMessage","_Limit","limit","isNaN","minchars","_Highlight","label","now","onclick","ul","_RenderRaw","_RenderResponseItems","hasChildNodes","childNodes","reverse","abs","Label","Value","returnResponse","json"],"mappings":"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"}
\ No newline at end of file
+{"version":3,"file":"searxng.min.js","sources":["../src/js/main/00_toolkit.js","../src/js/main/infinite_scroll.js","../src/js/main/keyboard.js","../src/js/main/mapresult.js","../src/js/main/preferences.js","../src/js/main/results.js","../src/js/main/search.js","../../__common__/js/image_layout.js","../node_modules/autocomplete-js/dist/autocomplete.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 tookit 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\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 // 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.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.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 return searxng;\n})(window, document);\n","/**\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 */\n/* global searxng */\n\nsearxng.ready(function () {\n 'use strict';\n\n let w = window;\n let d = document;\n var root = d.compatMode == 'BackCompat' ? d.body : d.documentElement;\n\n function hasScrollbar () {\n return root.scrollHeight > root.clientHeight;\n }\n\n function loadNextPage () {\n var form = d.querySelector('#pagination form.next_page');\n if (!form) {\n return\n }\n var formData = new FormData(form);\n d.querySelector('#pagination').innerHTML = '';\n searxng.http('POST', d.querySelector('#search').getAttribute('action'), formData).then(\n function (response) {\n var scrollYBeforeInsert = w.scrollY;\n var nextPageDoc = new DOMParser().parseFromString(response, 'text/html');\n var articleList = nextPageDoc.querySelectorAll('#urls article');\n var paginationElement = nextPageDoc.querySelector('#pagination');\n var onlyImages = d.getElementById('results').classList.contains('only_template_images');\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 searxng.image_thumbnail_layout.align();\n w.scrollTo(w.scrollX, scrollYBeforeInsert);\n if (paginationElement) {\n d.querySelector('#results').appendChild(paginationElement);\n if (!hasScrollbar()) {\n loadNextPage();\n }\n }\n }\n ).catch(\n function (err) {\n console.log(err);\n d.querySelector('#pagination').innerHTML = '' +\n searxng.translations.error_loading_next_page +\n '
';\n }\n )\n }\n\n function onScroll () {\n let clientRect = root.getBoundingClientRect();\n if (root.scrollHeight - root.scrollTop - clientRect.height < 150) {\n loadNextPage();\n }\n }\n\n if (searxng.infinite_scroll) {\n d.getElementsByTagName('html')[0].classList.add('infinite_scroll')\n if (!hasScrollbar()) {\n loadNextPage();\n }\n d.addEventListener('scroll', onScroll, { passive: true });\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);\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 var vimKeys = {\n 27: {\n key: 'Escape',\n fun: removeFocus,\n des: 'remove focus from the focused input',\n cat: 'Control'\n },\n 73: {\n key: 'i',\n fun: searchInputFocus,\n des: 'focus on the search input',\n cat: 'Control'\n },\n 66: {\n key: 'b',\n fun: scrollPage(-window.innerHeight),\n des: 'scroll one page up',\n cat: 'Navigation'\n },\n 70: {\n key: 'f',\n fun: scrollPage(window.innerHeight),\n des: 'scroll one page down',\n cat: 'Navigation'\n },\n 85: {\n key: 'u',\n fun: scrollPage(-window.innerHeight / 2),\n des: 'scroll half a page up',\n cat: 'Navigation'\n },\n 68: {\n key: 'd',\n fun: scrollPage(window.innerHeight / 2),\n des: 'scroll half a page down',\n cat: 'Navigation'\n },\n 71: {\n key: 'g',\n fun: scrollPageTo(-document.body.scrollHeight, 'top'),\n des: 'scroll to the top of the page',\n cat: 'Navigation'\n },\n 86: {\n key: 'v',\n fun: scrollPageTo(document.body.scrollHeight, 'bottom'),\n des: 'scroll to the bottom of the page',\n cat: 'Navigation'\n },\n 75: {\n key: 'k',\n fun: highlightResult('up'),\n des: 'select previous search result',\n cat: 'Results'\n },\n 74: {\n key: 'j',\n fun: highlightResult('down'),\n des: 'select next search result',\n cat: 'Results'\n },\n 80: {\n key: 'p',\n fun: GoToPreviousPage(),\n des: 'go to previous page',\n cat: 'Results'\n },\n 78: {\n key: 'n',\n fun: GoToNextPage(),\n des: 'go to next page',\n cat: 'Results'\n },\n 79: {\n key: 'o',\n fun: openResult(false),\n des: 'open search result',\n cat: 'Results'\n },\n 84: {\n key: 't',\n fun: openResult(true),\n des: 'open the result in a new tab',\n cat: 'Results'\n },\n 82: {\n key: 'r',\n fun: reloadPage,\n des: 'reload page from the server',\n cat: 'Control'\n },\n 72: {\n key: 'h',\n fun: toggleHelp,\n des: 'toggle help window',\n cat: 'Other'\n }\n };\n\n if (searxng.hotkeys) {\n searxng.on(document, \"keydown\", function (e) {\n // check for modifiers so we don't break browser's hotkeys\n if (Object.prototype.hasOwnProperty.call(vimKeys, e.keyCode) && !e.ctrlKey && !e.altKey && !e.shiftKey && !e.metaKey) {\n var tagName = e.target.tagName.toLowerCase();\n if (e.keyCode === 27) {\n vimKeys[e.keyCode].fun(e);\n } else {\n if (e.target === document.body || tagName === 'a' || tagName === 'button') {\n e.preventDefault();\n vimKeys[e.keyCode].fun();\n }\n }\n }\n });\n }\n\n function highlightResult (which) {\n return function (noScroll) {\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\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 = current.nextElementSibling;\n if (next === null) {\n next = results[0];\n }\n break;\n case 'up':\n next = current.previousElementSibling;\n if (next === null) {\n next = results[results.length - 1];\n }\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 var link = next.querySelector('h3 a') || next.querySelector('a');\n if (link !== null) {\n link.focus();\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 document.querySelector('#q').focus();\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 vimKeys) {\n var key = vimKeys[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 searx with Vim-like 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 += '';\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 += ' | '; // col-sm-*\n\n if (!first || lastCategory) {\n html += '
'; // row\n }\n }\n\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 initHelpContent(helpPanel);\n initHelpContent(helpPanel);\n var body = document.getElementsByTagName('body')[0];\n body.appendChild(helpPanel);\n } else {\n // togggle hidden\n helpPanel.classList.toggle('invisible');\n return;\n }\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 occour 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 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.translations['Source'] + ': ' + description[1] + ')';\n element.innerHTML = description[0] + source;\n }\n }\n });\n }\n }\n\n if (d.querySelector('body[class=\"preferences_endpoint\"]')) {\n for (const el of d.querySelectorAll('[data-engine-name]')) {\n searxng.on(el, 'mouseenter', load_engine_descriptions);\n }\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 searxng.ready(function () {\n searxng.image_thumbnail_layout = new searxng.ImageLayout('#urls', '#urls .result-images', 'img.image_thumbnail', 14, 6, 200);\n searxng.image_thumbnail_layout.watch();\n\n d.querySelectorAll('#urls img.image').forEach(\n img =>\n img.addEventListener(\n 'error', () => {\n img.style.display = 'none';\n img.error = null;\n }\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.selectImage = function (resultElement) {\n /* eslint no-unused-vars: 0 */\n if (resultElement) {\n // load full size image in background\n const imgElement = resultElement.querySelector('.result-images-source img');\n const thumbnailElement = resultElement.querySelector('.image_thumbnail');\n const detailElement = resultElement.querySelector('.detail');\n if (imgElement) {\n const imgSrc = imgElement.getAttribute('data-src');\n if (imgSrc) {\n const loader = d.createElement('div');\n const imgLoader = new Image();\n\n loader.classList.add('loader');\n detailElement.appendChild(loader);\n\n imgLoader.onload = e => {\n imgElement.src = imgSrc;\n loader.remove();\n };\n imgLoader.onerror = e => {\n loader.remove();\n };\n imgLoader.src = imgSrc;\n imgElement.src = thumbnailElement.src;\n imgElement.removeAttribute('data-src');\n }\n }\n }\n d.getElementById('results').classList.add('image-detail-open');\n searxng.image_thumbnail_layout.align();\n searxng.scrollPageToSelected();\n }\n\n searxng.closeDetail = function (e) {\n d.getElementById('results').classList.remove('image-detail-open');\n searxng.image_thumbnail_layout.align();\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 => searxng.selectPrevious(false));\n searxng.on('.result-detail-next', 'click', e => searxng.selectNext(false));\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/* global AutoComplete */\n(function (w, d, searxng) {\n 'use strict';\n\n var firstFocus = true, qinput_id = \"q\", qinput;\n\n function placeCursorAtEnd (element) {\n if (element.setSelectionRange) {\n var len = element.value.length;\n element.setSelectionRange(len, len);\n }\n }\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 () {\n qinput.value = '';\n qinput.focus();\n updateClearButton();\n });\n qinput.addEventListener('keyup', updateClearButton, false);\n }\n\n searxng.ready(function () {\n qinput = d.getElementById(qinput_id);\n\n function placeCursorAtEndOnce () {\n if (firstFocus) {\n placeCursorAtEnd(qinput);\n firstFocus = false;\n } else {\n // e.preventDefault();\n }\n }\n\n if (qinput !== null) {\n // clear button\n createClearButton(qinput);\n\n // autocompleter\n if (searxng.autocompleter) {\n searxng.autocomplete = AutoComplete.call(w, {\n Url: \"./autocompleter\",\n EmptyMessage: searxng.translations.no_item_found,\n HttpMethod: searxng.method,\n HttpHeaders: {\n \"Content-type\": \"application/x-www-form-urlencoded\",\n \"X-Requested-With\": \"XMLHttpRequest\"\n },\n MinChars: 4,\n Delay: 300,\n _Position: function () {\n this.DOMResults.setAttribute(\"class\", \"autocomplete\");\n this.DOMResults.style.top = (this.Input.offsetTop + this.Input.offsetHeight) + \"px\";\n this.DOMResults.style.left = this.Input.offsetLeft + \"px\";\n this.DOMResults.style.width = this.Input.clientWidth + \"px\";\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.onmousedown = function () {\n params._Select(li);\n };\n }\n });\n },\n }, \"#\" + qinput_id);\n\n // hack, see : https://github.com/autocompletejs/autocomplete.js/issues/37\n w.addEventListener('resize', function () {\n var event = new CustomEvent(\"position\");\n qinput.dispatchEvent(event);\n });\n }\n\n qinput.addEventListener('focus', placeCursorAtEndOnce, false);\n qinput.focus();\n }\n\n // vanilla js version of search_on_category_select.js\n if (qinput !== null && d.querySelector('.help') != null && searxng.search_on_category_select) {\n d.querySelector('.help').className = 'invisible';\n\n searxng.on('#categories input', 'change', function () {\n var i, categories = d.querySelectorAll('#categories input[type=\"checkbox\"]');\n for (i = 0; i < categories.length; i++) {\n if (categories[i] !== this && categories[i].checked) {\n categories[i].click();\n }\n }\n if (! this.checked) {\n this.click();\n }\n submitIfQuery();\n return false;\n });\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 });\n\n})(window, document, window.searxng);\n","/**\n*\n* Google Image Layout v0.0.1\n* Description, by Anh Trinh.\n* Heavily modified for searx\n* https://ptgamr.github.io/2014-09-12-google-image-layout/\n* https://ptgamr.github.io/google-image-layout/src/google-image-layout.js\n*\n* @license Free to use under the MIT License.\n*\n* @example
Example usage of searxng.ImageLayout class.\n* searxng.image_thumbnail_layout = new searxng.ImageLayout(\n* '#urls', // container_selector\n* '#urls .result-images', // results_selector\n* 'img.image_thumbnail', // img_selector\n* 14, // verticalMargin\n* 6, // horizontalMargin\n* 200 // maxHeight\n* );\n* searxng.image_thumbnail_layout.watch();\n*/\n\n\n(function (w, d) {\n function ImageLayout (container_selector, results_selector, img_selector, verticalMargin, horizontalMargin, maxHeight) {\n this.container_selector = container_selector;\n this.results_selector = results_selector;\n this.img_selector = img_selector;\n this.verticalMargin = verticalMargin;\n this.horizontalMargin = horizontalMargin;\n this.maxHeight = maxHeight;\n this.isAlignDone = true;\n }\n\n /**\n * Get the height that make all images fit the container\n *\n * width = w1 + w2 + w3 + ... = r1*h + r2*h + r3*h + ...\n *\n * @param {[type]} images the images to be calculated\n * @param {[type]} width the container witdth\n * @param {[type]} margin the margin between each image\n *\n * @return {[type]} the height\n */\n ImageLayout.prototype._getHeigth = function (images, width) {\n var i, img;\n var r = 0;\n\n for (i = 0; i < images.length; i++) {\n img = images[i];\n if ((img.naturalWidth > 0) && (img.naturalHeight > 0)) {\n r += img.naturalWidth / img.naturalHeight;\n } else {\n // assume that not loaded images are square\n r += 1;\n }\n }\n\n return (width - images.length * this.verticalMargin) / r; // have to round down because Firefox will automatically roundup value with number of decimals > 3\n };\n\n ImageLayout.prototype._setSize = function (images, height) {\n var i, img, imgWidth;\n var imagesLength = images.length, resultNode;\n\n for (i = 0; i < imagesLength; i++) {\n img = images[i];\n if ((img.naturalWidth > 0) && (img.naturalHeight > 0)) {\n imgWidth = height * img.naturalWidth / img.naturalHeight;\n } else {\n // not loaded image : make it square as _getHeigth said it\n imgWidth = height;\n }\n img.style.width = imgWidth + 'px';\n img.style.height = height + 'px';\n img.style.marginLeft = this.horizontalMargin + 'px';\n img.style.marginTop = this.horizontalMargin + 'px';\n img.style.marginRight = this.verticalMargin - 7 + 'px'; // -4 is the negative margin of the inline element\n img.style.marginBottom = this.verticalMargin - 7 + 'px';\n resultNode = img.parentNode.parentNode;\n if (!resultNode.classList.contains('js')) {\n resultNode.classList.add('js');\n }\n }\n };\n\n ImageLayout.prototype._alignImgs = function (imgGroup) {\n var isSearching, slice, i, h;\n var containerElement = d.querySelector(this.container_selector);\n var containerCompStyles = window.getComputedStyle(containerElement);\n var containerPaddingLeft = parseInt(containerCompStyles.getPropertyValue('padding-left'), 10);\n var containerPaddingRight = parseInt(containerCompStyles.getPropertyValue('padding-right'), 10);\n var containerWidth = containerElement.clientWidth - containerPaddingLeft - containerPaddingRight;\n\n while (imgGroup.length > 0) {\n isSearching = true;\n for (i = 1; i <= imgGroup.length && isSearching; i++) {\n slice = imgGroup.slice(0, i);\n h = this._getHeigth(slice, containerWidth);\n if (h < this.maxHeight) {\n this._setSize(slice, h);\n // continue with the remaining images\n imgGroup = imgGroup.slice(i);\n isSearching = false;\n }\n }\n if (isSearching) {\n this._setSize(slice, Math.min(this.maxHeight, h));\n break;\n }\n }\n };\n\n ImageLayout.prototype.align = function () {\n var i;\n var results_selectorNode = d.querySelectorAll(this.results_selector);\n var results_length = results_selectorNode.length;\n var previous = null;\n var current = null;\n var imgGroup = [];\n\n for (i = 0; i < results_length; i++) {\n current = results_selectorNode[i];\n if (current.previousElementSibling !== previous && imgGroup.length > 0) {\n // the current image is not connected to previous one\n // so the current image is the start of a new group of images.\n // so call _alignImgs to align the current group\n this._alignImgs(imgGroup);\n // and start a new empty group of images\n imgGroup = [];\n }\n // add the current image to the group (only the img tag)\n imgGroup.push(current.querySelector(this.img_selector));\n // update the previous variable\n previous = current;\n }\n // align the remaining images\n if (imgGroup.length > 0) {\n this._alignImgs(imgGroup);\n }\n };\n\n ImageLayout.prototype.watch = function () {\n var i, img;\n var obj = this;\n var results_nodes = d.querySelectorAll(this.results_selector);\n var results_length = results_nodes.length;\n\n function img_load_error (event) {\n // console.log(\"ERROR can't load: \" + event.originalTarget.src);\n event.originalTarget.src = w.searxng.static_path + w.searxng.theme.img_load_error;\n }\n\n function throttleAlign () {\n if (obj.isAlignDone) {\n obj.isAlignDone = false;\n setTimeout(function () {\n obj.align();\n obj.isAlignDone = true;\n }, 100);\n }\n }\n\n // https://developer.mozilla.org/en-US/docs/Web/API/Window/pageshow_event\n w.addEventListener('pageshow', throttleAlign);\n // https://developer.mozilla.org/en-US/docs/Web/API/FileReader/load_event\n w.addEventListener('load', throttleAlign);\n // https://developer.mozilla.org/en-US/docs/Web/API/Window/resize_event\n w.addEventListener('resize', throttleAlign);\n\n for (i = 0; i < results_length; i++) {\n img = results_nodes[i].querySelector(this.img_selector);\n if (img !== null && img !== undefined) {\n img.addEventListener('load', throttleAlign);\n // https://developer.mozilla.org/en-US/docs/Web/API/GlobalEventHandlers/onerror\n img.addEventListener('error', throttleAlign);\n if (w.searxng.theme.img_load_error) {\n img.addEventListener('error', img_load_error, {once: true});\n }\n }\n }\n };\n\n w.searxng.ImageLayout = ImageLayout;\n\n}(window, document));\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"],"names":["window","searxng","w","d","Element","ElementPrototype","matches","matchesSelector","webkitMatchesSelector","msMatchesSelector","selector","node","this","nodes","parentNode","document","querySelectorAll","i","prototype","callbackSafe","callback","el","e","call","exception","console","log","on","obj","eventType","useCapture","addEventListener","target","srcElement","found","parentElement","ready","readyState","bind","http","method","url","data","Promise","resolve","reject","req","XMLHttpRequest","open","onload","status","response","responseType","Error","statusText","onerror","onabort","send","ex","loadStyle","src","path","static_path","id","replace","s","getElementById","createElement","setAttribute","body","appendChild","loadScript","hasAttribute","apply","insertBefore","newNode","referenceNode","insertAfter","nextSibling","classList","add","let","root","compatMode","documentElement","hasScrollbar","scrollHeight","clientHeight","loadNextPage","form","querySelector","formData","FormData","innerHTML","getAttribute","then","scrollYBeforeInsert","scrollY","nextPageDoc","DOMParser","parseFromString","articleList","paginationElement","onlyImages","contains","remove","length","forEach","articleElement","image_thumbnail_layout","align","scrollTo","scrollX","catch","err","translations","error_loading_next_page","onScroll","clientRect","getBoundingClientRect","scrollTop","height","infinite_scroll","getElementsByTagName","passive","isElementInDetail","undefined","getResultElement","isImageResult","resultElement","highlightResult","preventDefault","selectImage","vimKeys","27","key","fun","removeFocus","des","cat","73","searchInputFocus","66","scrollPage","innerHeight","70","85","68","71","scrollPageTo","86","75","74","80","GoToPreviousPage","78","GoToNextPage","79","openResult","84","82","reloadPage","72","toggleHelp","hotkeys","Object","hasOwnProperty","keyCode","ctrlKey","altKey","shiftKey","metaKey","tagName","toLowerCase","which","noScroll","current","effectiveWhich","next","results","top","bot","etop","offsetTop","ebot","nextElementSibling","previousElementSibling","removeAttribute","link","focus","scrollPageToSelected","location","reload","activeElement","blur","closeDetail","pageButtonClick","css_selector","button","click","sel","wtop","wheight","offset","scroll","wbot","amount","scrollBy","position","nav","newTab","href","initHelpContent","divElement","categories","k","push","sorted","keys","sort","a","b","html","lastCategory","first","cj","helpPanel","className","toggle","selectNext","selectPrevious","event","leaflet_target","dataset","leafletTarget","map_lon","parseFloat","mapLon","map_lat","mapLat","map_zoom","mapZoom","map_boundingbox","JSON","parse","mapBoundingbox","map_geojson","mapGeojson","map_bounds","southWest","L","latLng","northEast","latLngBounds","map","osmMapnikUrl","osmMapnikAttrib","osmMapnik","TileLayer","minZoom","maxZoom","attribution","osmWikimediaUrl","osmWikimediaAttrib","osmWikimedia","setTimeout","fitBounds","setView","addLayer","baseLayers","OSM Mapnik","OSM Wikimedia","control","layers","addTo","geoJson","engine_descriptions","load_engine_descriptions","content","engine_name","description","entries","elements","element","source","ImageLayout","watch","img","style","display","error","btnLabelCollapsed","btnLabelNotCollapsed","targetElement","iframe_load","srctest","imgElement","thumbnailElement","detailElement","imgSrc","loader","imgLoader","Image","firstFocus","qinput_id","qinput","placeCursorAtEnd","setSelectionRange","len","value","submitIfQuery","search","submit","createClearButton","cs","updateClearButton","placeCursorAtEndOnce","autocompleter","autocomplete","AutoComplete","Url","EmptyMessage","no_item_found","HttpMethod","HttpHeaders","Content-type","X-Requested-With","MinChars","Delay","_Position","DOMResults","Input","offsetHeight","left","offsetLeft","width","clientWidth","_Open","params","Array","li","onmousedown","_Select","CustomEvent","dispatchEvent","search_on_category_select","checked","container_selector","results_selector","img_selector","verticalMargin","horizontalMargin","maxHeight","isAlignDone","_getHeigth","images","r","naturalWidth","naturalHeight","_setSize","imgWidth","imagesLength","resultNode","marginLeft","marginTop","marginRight","marginBottom","_alignImgs","imgGroup","isSearching","slice","h","containerElement","containerCompStyles","getComputedStyle","containerPaddingLeft","parseInt","getPropertyValue","containerPaddingRight","containerWidth","Math","min","results_selectorNode","results_length","previous","results_nodes","img_load_error","originalTarget","theme","throttleAlign","once","f","exports","module","define","amd","g","global","self","n","t","o","c","require","u","code","p","1","ConditionOperator","EventType","isArray","input","specificParams","merge","defaults","create","nodeName","match","$Listeners","_Blur","destroy","_Focus","keyup","KEYUP","keydown","KEYDOWN","getEventsByType","type","mappings","KeyboardMappings","Event","eventIdentifier","condition","mapping","Operator","AND","OR","Not","Is","From","To","name","Conditions","Callback","makeRequest","callbackErr","propertyHttpHeaders","getOwnPropertyNames","request","_HttpMethod","_Url","queryParams","_Pre","queryParamsStringify","encodeURIComponent","_QueryArg","indexOf","setRequestHeader","onreadystatechange","$Cache","ajax","timeout","$AjaxTimer","clearTimeout","Request","abort","cache","_Cache","removeEventListener","removeChild","tmp","arguments","Highlight","getRegex","RegExp","transform","Limit","QueryArg","Enter","liActive","KeyUpAndDown_down","KeyUpAndDown_up","last","active","currentIndex","children","lisCount","item","AlphaNum","oldValue","currentValue","_MinChars","_Render","_Post","_Error","_Close","_EmptyMessage","emptyMessage","_Limit","limit","isNaN","minchars","_Highlight","label","now","onclick","ul","_RenderRaw","_RenderResponseItems","hasChildNodes","childNodes","reverse","abs","Label","Value","returnResponse","json"],"mappings":";;;;;GAMAA;OAAOC,QAAU,SAAWC,EAAGC,gBAQ7B,GAAID,EAAEE,QAAS,EACb,SAAWC,GACTA,EAAiBC,QAAUD,EAAiBC,SAC5CD,EAAiBE,iBACjBF,EAAiBG,uBACjBH,EAAiBI,mBACjB,SAAUC,GACR,IAAIC,EAAOC,KAAMC,GAASF,EAAKG,YAAcH,EAAKI,UAAUC,iBAAiBN,GAAWO,GAAK,EAC7F,MAAOJ,IAAQI,IAAMJ,EAAMI,IAAMN,GACjC,QAASE,EAAMI,KARnB,CAUGb,QAAQc,WAGb,SAASC,EAAcC,EAAUC,EAAIC,GACnC,IACEF,EAASG,KAAKF,EAAIC,GAClB,MAAOE,GACPC,QAAQC,IAAIF,IAIhB,IAAIvB,EAAUD,OAAOC,SAAW,GAEhCA,EAAQ0B,GAAK,SAAUC,EAAKC,EAAWT,EAAUU,GAC/CA,EAAaA,GAAc,MAC3B,UAAWF,IAAQ,SAAU,CAE3BA,EAAIG,iBAAiBF,EAAWT,EAAUU,OACrC,CAEL3B,EAAE4B,iBAAiBF,EAAW,SAAUP,GACtC,IAAID,EAAKC,EAAEU,QAAUV,EAAEW,WAAYC,EAAQ,MAC3C,MAAOb,GAAMA,EAAGf,SAAWe,IAAOlB,KAAO+B,EAAQb,EAAGf,QAAQsB,IAAOP,EAAKA,EAAGc,cAC3E,GAAID,EAAOf,EAAaC,EAAUC,EAAIC,IACrCQ,KAIP7B,EAAQmC,MAAQ,SAAUhB,GACxB,GAAIL,SAASsB,YAAc,UAAW,CACpCjB,EAASG,KAAKrB,OACT,CACLA,EAAE6B,iBAAiB,mBAAoBX,EAASkB,KAAKpC,MAIzDD,EAAQsC,KAAO,SAAUC,EAAQC,EAAKC,EAAO,MAC3C,OAAO,IAAIC,QAAQ,SAAUC,EAASC,GACpC,IACE,IAAIC,EAAM,IAAIC,eACdD,EAAIE,KAAKR,EAAQC,EAAK,MAGtBK,EAAIG,OAAS,WACX,GAAIH,EAAII,QAAU,IAAK,CACrBN,EAAQE,EAAIK,SAAUL,EAAIM,kBACrB,CACLP,EAAOQ,MAAMP,EAAIQ,eAKrBR,EAAIS,QAAU,WACZV,EAAOQ,MAAM,mBAGfP,EAAIU,QAAU,WACZX,EAAOQ,MAAM,4BAIf,GAAIX,EAAM,CACRI,EAAIW,KAAKf,OACJ,CACLI,EAAIW,QAEN,MAAOC,GACPb,EAAOa,OAKbzD,EAAQ0D,UAAY,SAAUC,GAC5B,IAAIC,EAAO5D,EAAQ6D,YAAcF,EAC/BG,EAAK,SAAWH,EAAII,QAAQ,IAAK,KACjCC,EAAI9D,EAAE+D,eAAeH,GACvB,GAAIE,IAAM,KAAM,CACdA,EAAI9D,EAAEgE,cAAc,QACpBF,EAAEG,aAAa,KAAML,GACrBE,EAAEG,aAAa,MAAO,cACtBH,EAAEG,aAAa,OAAQ,YACvBH,EAAEG,aAAa,OAAQP,GACvB1D,EAAEkE,KAAKC,YAAYL,KAIvBhE,EAAQsE,WAAa,SAAUX,EAAKxC,GAClC,IAAIyC,EAAO5D,EAAQ6D,YAAcF,EAC/BG,EAAK,UAAYH,EAAII,QAAQ,IAAK,KAClCC,EAAI9D,EAAE+D,eAAeH,GACvB,GAAIE,IAAM,KAAM,CACdA,EAAI9D,EAAEgE,cAAc,UACpBF,EAAEG,aAAa,KAAML,GACrBE,EAAEG,aAAa,MAAOP,GACtBI,EAAEhB,OAAS7B,EACX6C,EAAEV,QAAU,WACVU,EAAEG,aAAa,QAAS,MAE1BjE,EAAEkE,KAAKC,YAAYL,QACd,IAAKA,EAAEO,aAAa,SAAU,CACnC,IACEpD,EAASqD,MAAMR,EAAG,IAClB,MAAOzC,GACPC,QAAQC,IAAIF,QAET,CACLC,QAAQC,IAAI,mCAAqCmC,EAAO,mBAI5D5D,EAAQyE,aAAe,SAAUC,EAASC,GACxCA,EAAc9D,WAAW4D,aAAaC,EAASC,IAGjD3E,EAAQ4E,YAAc,SAAUF,EAASC,GACvCA,EAAc9D,WAAW+D,YAAYF,EAASC,EAAcE,cAG9D7E,EAAQ0B,GAAG,SAAU,QAAS,WAC5Bf,KAAKE,WAAWiE,UAAUC,IAAI,eAGhC,OAAO/E,EA7IQ,CA8IdD,OAAQe;;;;;;GC5IXd;QAAQmC,MAAM,wBAGZ6C,IAAI/E,EAAIF,OACRiF,IAAI9E,EAAIY,SACR,IAAImE,EAAO/E,EAAEgF,YAAc,aAAehF,EAAEkE,KAAOlE,EAAEiF,gBAErD,SAASC,IACP,OAAOH,EAAKI,aAAeJ,EAAKK,aAGlC,SAASC,IACP,IAAIC,EAAOtF,EAAEuF,cAAc,8BAC3B,IAAKD,EAAM,CACT,OAEF,IAAIE,EAAW,IAAIC,SAASH,GAC5BtF,EAAEuF,cAAc,eAAeG,UAAY,6BAC3C5F,QAAQsC,KAAK,OAAQpC,EAAEuF,cAAc,WAAWI,aAAa,UAAWH,GAAUI,KAChF,SAAU5C,GACR,IAAI6C,EAAsB9F,EAAE+F,QAC5B,IAAIC,GAAc,IAAIC,WAAYC,gBAAgBjD,EAAU,aAC5D,IAAIkD,EAAcH,EAAYlF,iBAAiB,iBAC/C,IAAIsF,EAAoBJ,EAAYR,cAAc,eAClD,IAAIa,EAAapG,EAAE+D,eAAe,WAAWa,UAAUyB,SAAS,wBAChErG,EAAEuF,cAAc,eAAee,SAC/B,GAAIJ,EAAYK,OAAS,IAAMH,EAAY,CAEzCpG,EAAEuF,cAAc,SAASpB,YAAYnE,EAAEgE,cAAc,OAEvDkC,EAAYM,QAAQC,IAClBzG,EAAEuF,cAAc,SAASpB,YAAYsC,KAEvC3G,QAAQ4G,uBAAuBC,QAC/B5G,EAAE6G,SAAS7G,EAAE8G,QAAShB,GACtB,GAAIM,EAAmB,CACrBnG,EAAEuF,cAAc,YAAYpB,YAAYgC,GACxC,IAAKjB,IAAgB,CACnBG,QAINyB,MACA,SAAUC,GACRzF,QAAQC,IAAIwF,GACZ/G,EAAEuF,cAAc,eAAeG,UAAY,kDACzC5F,QAAQkH,aAAaC,wBACrB,qBAKR,SAASC,IACPpC,IAAIqC,EAAapC,EAAKqC,wBACtB,GAAIrC,EAAKI,aAAeJ,EAAKsC,UAAYF,EAAWG,OAAU,IAAK,CACjEjC,KAIJ,GAAIvF,QAAQyH,gBAAiB,CAC3BvH,EAAEwH,qBAAqB,QAAQ,GAAG5C,UAAUC,IAAI,mBAChD,IAAKK,IAAgB,CACnBG,IAEFrF,EAAE4B,iBAAiB,SAAUsF,EAAU,CAAEO,QAAS,UCrEtD3H,QAAQmC,MAAM,WAEZ,SAASyF,EAAmBxG,GAC1B,MAAOA,IAAOyG,UAAW,CACvB,GAAIzG,EAAG0D,UAAUyB,SAAS,UAAW,CACnC,OAAO,KAET,GAAInF,EAAG0D,UAAUyB,SAAS,UAAW,CAGnC,OAAO,MAETnF,EAAKA,EAAGP,WAEV,OAAO,MAGT,SAASiH,EAAkB1G,GACzB,MAAOA,IAAOyG,UAAW,CACvB,GAAIzG,EAAG0D,UAAUyB,SAAS,UAAW,CACnC,OAAOnF,EAETA,EAAKA,EAAGP,WAEV,OAAOgH,UAGT,SAASE,EAAeC,GACtB,OAAOA,GAAiBA,EAAclD,UAAUyB,SAAS,iBAG3DvG,QAAQ0B,GAAG,UAAW,QAAS,SAAUL,GACvC,IAAKuG,EAAkBvG,EAAEU,QAAS,CAChCkG,EAAgBtH,KAAhBsH,CAAsB,MACtBjD,IAAIgD,EAAgBF,EAAiBzG,EAAEU,QACvC,GAAIgG,EAAcC,GAAgB,CAChC3G,EAAE6G,iBACFlI,QAAQmI,YAAYH,OAK1BhI,QAAQ0B,GAAG,YAAa,QAAS,SAAUL,GACzC,IAAKuG,EAAkBvG,EAAEU,QAAS,CAChCiD,IAAIgD,EAAgBF,EAAiBzG,EAAEU,QACvC,GAAIiG,GAAiBA,EAAcnC,aAAa,uBAAyB,KAAM,CAC7EoC,EAAgBD,EAAhBC,CAA+B,MAEjC,GAAIF,EAAcC,GAAgB,CAChChI,QAAQmI,YAAYH,MAGvB,MAEH,IAAII,EAAU,CACZC,GAAI,CACFC,IAAK,SACLC,IAAKC,EACLC,IAAK,sCACLC,IAAK,WAEPC,GAAI,CACFL,IAAK,IACLC,IAAKK,EACLH,IAAK,4BACLC,IAAK,WAEPG,GAAI,CACFP,IAAK,IACLC,IAAKO,GAAY/I,OAAOgJ,aACxBN,IAAK,qBACLC,IAAK,cAEPM,GAAI,CACFV,IAAK,IACLC,IAAKO,EAAW/I,OAAOgJ,aACvBN,IAAK,uBACLC,IAAK,cAEPO,GAAI,CACFX,IAAK,IACLC,IAAKO,GAAY/I,OAAOgJ,YAAc,GACtCN,IAAK,wBACLC,IAAK,cAEPQ,GAAI,CACFZ,IAAK,IACLC,IAAKO,EAAW/I,OAAOgJ,YAAc,GACrCN,IAAK,0BACLC,IAAK,cAEPS,GAAI,CACFb,IAAK,IACLC,IAAKa,GAActI,SAASsD,KAAKiB,aAAc,OAC/CoD,IAAK,gCACLC,IAAK,cAEPW,GAAI,CACFf,IAAK,IACLC,IAAKa,EAAatI,SAASsD,KAAKiB,aAAc,UAC9CoD,IAAK,mCACLC,IAAK,cAEPY,GAAI,CACFhB,IAAK,IACLC,IAAKN,EAAgB,MACrBQ,IAAK,gCACLC,IAAK,WAEPa,GAAI,CACFjB,IAAK,IACLC,IAAKN,EAAgB,QACrBQ,IAAK,4BACLC,IAAK,WAEPc,GAAI,CACFlB,IAAK,IACLC,IAAKkB,IACLhB,IAAK,sBACLC,IAAK,WAEPgB,GAAI,CACFpB,IAAK,IACLC,IAAKoB,IACLlB,IAAK,kBACLC,IAAK,WAEPkB,GAAI,CACFtB,IAAK,IACLC,IAAKsB,EAAW,OAChBpB,IAAK,qBACLC,IAAK,WAEPoB,GAAI,CACFxB,IAAK,IACLC,IAAKsB,EAAW,MAChBpB,IAAK,+BACLC,IAAK,WAEPqB,GAAI,CACFzB,IAAK,IACLC,IAAKyB,EACLvB,IAAK,8BACLC,IAAK,WAEPuB,GAAI,CACF3B,IAAK,IACLC,IAAK2B,EACLzB,IAAK,qBACLC,IAAK,UAIT,GAAI1I,QAAQmK,QAAS,CACnBnK,QAAQ0B,GAAGZ,SAAU,UAAW,SAAUO,GAExC,GAAI+I,OAAOnJ,UAAUoJ,eAAe/I,KAAK8G,EAAS/G,EAAEiJ,WAAajJ,EAAEkJ,UAAYlJ,EAAEmJ,SAAWnJ,EAAEoJ,WAAapJ,EAAEqJ,QAAS,CACpH,IAAIC,EAAUtJ,EAAEU,OAAO4I,QAAQC,cAC/B,GAAIvJ,EAAEiJ,UAAY,GAAI,CACpBlC,EAAQ/G,EAAEiJ,SAAS/B,IAAIlH,OAClB,CACL,GAAIA,EAAEU,SAAWjB,SAASsD,MAAQuG,IAAY,KAAOA,IAAY,SAAU,CACzEtJ,EAAE6G,iBACFE,EAAQ/G,EAAEiJ,SAAS/B,WAO7B,SAASN,EAAiB4C,GACxB,OAAO,SAAUC,GACf,IAAIC,EAAUjK,SAAS2E,cAAc,8BACnCuF,EAAiBH,EACnB,GAAIE,IAAY,KAAM,CAEpBA,EAAUjK,SAAS2E,cAAc,WACjC,GAAIsF,IAAY,KAAM,CAEpB,OAGF,GAAIF,IAAU,QAAUA,IAAU,KAAM,CACtCG,EAAiBD,GAIrB,IAAIE,EAAMC,EAAUpK,SAASC,iBAAiB,WAE9C,UAAWiK,IAAmB,SAAU,CACtCC,EAAOD,MACF,CACL,OAAQA,GACR,IAAK,UACH,IAAIG,EAAMrK,SAASqE,gBAAgBoC,WAAazG,SAASsD,KAAKmD,UAC9D,IAAI6D,EAAMD,EAAMrK,SAASqE,gBAAgBG,aAEzC,IAAK,IAAItE,EAAI,EAAGA,EAAIkK,EAAQzE,OAAQzF,IAAK,CACvCiK,EAAOC,EAAQlK,GACf,IAAIqK,EAAOJ,EAAKK,UAChB,IAAIC,EAAOF,EAAOJ,EAAK3F,aAEvB,GAAKiG,GAAQH,GAASC,EAAOF,EAAM,CACjC,OAGJ,MACF,IAAK,OACHF,EAAOF,EAAQS,mBACf,GAAIP,IAAS,KAAM,CACjBA,EAAOC,EAAQ,GAEjB,MACF,IAAK,KACHD,EAAOF,EAAQU,uBACf,GAAIR,IAAS,KAAM,CACjBA,EAAOC,EAAQA,EAAQzE,OAAS,GAElC,MACF,IAAK,SACHwE,EAAOC,EAAQA,EAAQzE,OAAS,GAChC,MACF,IAAK,MAEL,QACEwE,EAAOC,EAAQ,IAInB,GAAID,EAAM,CACRF,EAAQW,gBAAgB,qBACxBT,EAAK9G,aAAa,oBAAqB,QACvC,IAAIwH,EAAOV,EAAKxF,cAAc,SAAWwF,EAAKxF,cAAc,KAC5D,GAAIkG,IAAS,KAAM,CACjBA,EAAKC,QAEP,IAAKd,EAAU,CACbe,OAMR,SAAS7B,IACPlJ,SAASgL,SAASC,OAAO,MAG3B,SAASvD,EAAanH,GACpB,MAAMsJ,EAAUtJ,EAAEU,OAAO4I,QAAQC,cACjC,GAAI9J,SAASkL,gBAAkBrB,IAAY,SAAWA,IAAY,UAAYA,IAAY,YAAa,CACrG7J,SAASkL,cAAcC,WAClB,CACLjM,QAAQkM,eAIZ,SAASC,EAAiBC,GACxB,OAAO,WACL,IAAIC,EAASvL,SAAS2E,cAAc2G,GACpC,GAAIC,EAAQ,CACVA,EAAOC,UAKb,SAAS3C,IACP,OAAOwC,EAAgB,mDAGzB,SAAS1C,IACP,OAAO0C,EAAgB,uDAGzB,SAASN,IACP,IAAIU,EAAMzL,SAAS2E,cAAc,8BACjC,GAAI8G,IAAQ,KAAM,CAChB,OAEF,IAAIC,EAAO1L,SAASqE,gBAAgBoC,WAAazG,SAASsD,KAAKmD,UAC7DkF,EAAU3L,SAASqE,gBAAgBG,aACnC+F,EAAOkB,EAAIjB,UACXC,EAAOF,EAAOkB,EAAIjH,aAClBoH,EAAS,IAEX,GAAKH,EAAId,yBAA2B,MAAUF,EAAOkB,EAAU,CAG7D1M,OAAO4M,OAAO5M,OAAOgH,QAAS,GAC9B,OAEF,GAAIyF,EAAQnB,EAAOqB,EAAS,CAC1B3M,OAAO4M,OAAO5M,OAAOgH,QAASsE,EAAOqB,OAChC,CACL,IAAIE,EAAOJ,EAAOC,EAClB,GAAIG,EAAQrB,EAAOmB,EAAS,CAC1B3M,OAAO4M,OAAO5M,OAAOgH,QAASwE,EAAOkB,EAAUC,KAKrD,SAAS5D,EAAY+D,GACnB,OAAO,WACL9M,OAAO+M,SAAS,EAAGD,GACnB5E,EAAgB,UAAhBA,IAIJ,SAASmB,EAAc2D,EAAUC,GAC/B,OAAO,WACLjN,OAAO+G,SAAS,EAAGiG,GACnB9E,EAAgB+E,EAAhB/E,IAIJ,SAASW,IACP7I,OAAO+G,SAAS,EAAG,GACnBhG,SAAS2E,cAAc,MAAMmG,QAG/B,SAAS/B,EAAYoD,GACnB,OAAO,WACL,IAAItB,EAAO7K,SAAS2E,cAAc,mCAClC,GAAIkG,IAAS,KAAM,CACjBA,EAAO7K,SAAS2E,cAAc,kCAEhC,GAAIkG,IAAS,KAAM,CACjB,IAAInJ,EAAMmJ,EAAK9F,aAAa,QAC5B,GAAIoH,EAAQ,CACVlN,OAAOgD,KAAKP,OACP,CACLzC,OAAO+L,SAASoB,KAAO1K,KAM/B,SAAS2K,EAAiBC,GACxB,IAAIC,EAAa,GAEjB,IAAK,IAAIC,KAAKlF,EAAS,CACrB,IAAIE,EAAMF,EAAQkF,GAClBD,EAAW/E,EAAII,KAAO2E,EAAW/E,EAAII,MAAQ,GAC7C2E,EAAW/E,EAAII,KAAK6E,KAAKjF,GAG3B,IAAIkF,EAASpD,OAAOqD,KAAKJ,GAAYK,KAAK,SAAUC,EAAGC,GACrD,OAAOP,EAAWO,GAAGnH,OAAS4G,EAAWM,GAAGlH,SAG9C,GAAI+G,EAAO/G,SAAW,EAAG,CACvB,OAGF,IAAIoH,EAAO,mEACXA,GAAQ,uDACRA,GAAQ,UAER,IAAK,IAAI7M,EAAI,EAAGA,EAAIwM,EAAO/G,OAAQzF,IAAK,CACtC,IAAI0H,EAAM2E,EAAWG,EAAOxM,IAE5B,IAAI8M,EAAe9M,IAAOwM,EAAO/G,OAAS,EAC1C,IAAIsH,EAAQ/M,EAAI,IAAM,EAEtB,GAAI+M,EAAO,CACTF,GAAQ,OAEVA,GAAQ,OAERA,GAAQ,OAASnF,EAAI,GAAGA,IAAM,QAC9BmF,GAAQ,6BAER,IAAK,IAAIG,KAAMtF,EAAK,CAClBmF,GAAQ,YAAcnF,EAAIsF,GAAI1F,IAAM,UAAYI,EAAIsF,GAAIvF,IAAM,QAGhEoF,GAAQ,QACRA,GAAQ,QAER,IAAKE,GAASD,EAAc,CAC1BD,GAAQ,SAIZA,GAAQ,WAERT,EAAWxH,UAAYiI,EAGzB,SAAS3D,IACP,IAAI+D,EAAYnN,SAAS2E,cAAc,qBACvC,GAAIwI,IAAcpG,WAAaoG,IAAc,KAAM,CAEjDA,EAAYnN,SAASoD,cAAc,OACnC+J,EAAUnK,GAAK,mBACfmK,EAAUC,UAAY,eACtBf,EAAgBc,GAChBd,EAAgBc,GAChBd,EAAgBc,GAChB,IAAI7J,EAAOtD,SAAS4G,qBAAqB,QAAQ,GACjDtD,EAAKC,YAAY4J,OACZ,CAELA,EAAUnJ,UAAUqJ,OAAO,aAC3B,QAIJnO,QAAQ6L,qBAAuBA,EAC/B7L,QAAQoO,WAAanG,EAAgB,QACrCjI,QAAQqO,eAAiBpG,EAAgB,SC1Z3C,SAAWhI,EAAGC,EAAGF,gBAGfA,EAAQmC,MAAM,WACZnC,EAAQ0B,GAAG,oBAAqB,QAAS,SAAU4M,GAEjD3N,KAAKmE,UAAU0B,OAAO,oBAGtB,IAAI+H,EAAiB5N,KAAK6N,QAAQC,cAClC,IAAIC,EAAUC,WAAWhO,KAAK6N,QAAQI,QACtC,IAAIC,EAAUF,WAAWhO,KAAK6N,QAAQM,QACtC,IAAIC,EAAWJ,WAAWhO,KAAK6N,QAAQQ,SACvC,IAAIC,EAAkBC,KAAKC,MAAMxO,KAAK6N,QAAQY,gBAC9C,IAAIC,EAAcH,KAAKC,MAAMxO,KAAK6N,QAAQc,YAE1CtP,EAAQ0D,UAAU,mBAClB1D,EAAQsE,WAAW,gBAAiB,WAClC,IAAIiL,EAAa,KACjB,GAAIN,EAAiB,CACnB,IAAIO,EAAYC,EAAEC,OAAOT,EAAgB,GAAIA,EAAgB,IAC7D,IAAIU,EAAYF,EAAEC,OAAOT,EAAgB,GAAIA,EAAgB,IAC7DM,EAAaE,EAAEG,aAAaJ,EAAWG,GAIzC,IAAIE,EAAMJ,EAAEI,IAAItB,GAEhB,IAAIuB,EAAe,qDACnB,IAAIC,EAAkB,gFACtB,IAAIC,EAAY,IAAIP,EAAEQ,UAAUH,EAAc,CAACI,QAAS,EAAGC,QAAS,GAAIC,YAAaL,IACrF,IAAIM,EAAkB,sDACtB,IAAIC,EAAqB,kGACzB,IAAIC,EAAe,IAAId,EAAEQ,UAAUI,EAAiB,CAACH,QAAS,EAAGC,QAAS,GAAIC,YAAaE,IAE3F,GAAIf,EAAY,CAGdiB,WAAW,WACTX,EAAIY,UAAUlB,EAAY,CACxBY,QAAS,MAEV,QACE,GAAIzB,GAAWG,EAAS,CAC7B,GAAIE,EAAU,CACZc,EAAIa,QAAQ,IAAIjB,EAAEC,OAAOb,EAASH,GAAUK,OACvC,CACLc,EAAIa,QAAQ,IAAIjB,EAAEC,OAAOb,EAASH,GAAU,IAIhDmB,EAAIc,SAASX,GAEb,IAAIY,EAAa,CACfC,aAAcb,EACdc,gBAAiBP,GAGnBd,EAAEsB,QAAQC,OAAOJ,GAAYK,MAAMpB,GAEnC,GAAIR,EAAa,CACfI,EAAEyB,QAAQ7B,GAAa4B,MAAMpB,MAOjCvB,EAAMpG,sBApEZ,CAuEGnI,OAAQe,SAAUf,OAAOC,UCxE5B,SAAWC,EAAGC,EAAGF,gBAGfA,EAAQmC,MAAM,WACZ6C,IAAImM,EAAsB,KAC1B,SAASC,IACP,GAAID,GAAuB,KAAM,CAC/BnR,EAAQsC,KAAK,MAAO,4BAA4BwD,KAAK,SAAUuL,GAC7DF,EAAsBjC,KAAKC,MAAMkC,GACjC,IAAK,KAAM,CAACC,EAAaC,KAAgBnH,OAAOoH,QAAQL,GAAsB,CAC5EnM,IAAIyM,EAAWvR,EAAEa,iBAAiB,sBAAwBuQ,EAAc,0BACxE,IAAK,MAAMI,KAAWD,EAAU,CAC9BzM,IAAI2M,EAAS,QAAU3R,EAAQkH,aAAa,UAAY,UAAYqK,EAAY,GAAK,QACrFG,EAAQ9L,UAAY2L,EAAY,GAAKI,OAO/C,GAAIzR,EAAEuF,cAAc,sCAAuC,CACzD,IAAK,MAAMrE,KAAMlB,EAAEa,iBAAiB,sBAAuB,CACzDf,EAAQ0B,GAAGN,EAAI,aAAcgQ,QAtBrC,CA0BGrR,OAAQe,SAAUf,OAAOC,UC1B5B,SAAWC,EAAGC,EAAGF,gBAGfA,EAAQmC,MAAM,WACZnC,EAAQ4G,uBAAyB,IAAI5G,EAAQ4R,YAAY,QAAS,uBAAwB,sBAAuB,GAAI,EAAG,KACxH5R,EAAQ4G,uBAAuBiL,QAE/B3R,EAAEa,iBAAiB,mBAAmB2F,QACpCoL,GACEA,EAAIhQ,iBACF,QAAS,KACPgQ,EAAIC,MAAMC,QAAU,OACpBF,EAAIG,MAAQ,QAIpBjS,EAAQ0B,GAAG,gBAAiB,QAAS,WACnC,IAAIwQ,EAAoBvR,KAAKkF,aAAa,2BAC1C,IAAIsM,EAAuBxR,KAAKkF,aAAa,+BAC7C,IAAI9D,EAASpB,KAAKkF,aAAa,eAC/B,IAAIuM,EAAgBlS,EAAEuF,cAAc1D,GACpC,IAAI8L,EAAOlN,KAAKiF,UAChB,GAAIjF,KAAKmE,UAAUyB,SAAS,aAAc,CACxCsH,EAAOA,EAAK9J,QAAQmO,EAAmBC,OAClC,CACLtE,EAAOA,EAAK9J,QAAQoO,EAAsBD,GAE5CvR,KAAKiF,UAAYiI,EACjBlN,KAAKmE,UAAUqJ,OAAO,aACtBiE,EAActN,UAAUqJ,OAAO,eAGjCnO,EAAQ0B,GAAG,gBAAiB,QAAS,WACnC,IAAIK,EAASpB,KAAKkF,aAAa,eAC/B,IAAIwM,EAAcnS,EAAEuF,cAAc1D,EAAS,aAC3C,IAAIuQ,EAAUD,EAAYxM,aAAa,OACvC,GAAIyM,IAAY,MAAQA,IAAYzK,WAAayK,IAAY,MAAO,CAClED,EAAYlO,aAAa,MAAOkO,EAAYxM,aAAa,gBAI7D7F,EAAQmI,YAAc,SAAUH,GAE9B,GAAIA,EAAe,CAEjB,MAAMuK,EAAavK,EAAcvC,cAAc,6BAC/C,MAAM+M,EAAmBxK,EAAcvC,cAAc,oBACrD,MAAMgN,EAAgBzK,EAAcvC,cAAc,WAClD,GAAI8M,EAAY,CACd,MAAMG,EAASH,EAAW1M,aAAa,YACvC,GAAI6M,EAAQ,CACV,MAAMC,EAASzS,EAAEgE,cAAc,OAC/B,MAAM0O,EAAY,IAAIC,MAEtBF,EAAO7N,UAAUC,IAAI,UACrB0N,EAAcpO,YAAYsO,GAE1BC,EAAU5P,OAAS3B,IACjBkR,EAAW5O,IAAM+O,EACjBC,EAAOnM,UAEToM,EAAUtP,QAAUjC,IAClBsR,EAAOnM,UAEToM,EAAUjP,IAAM+O,EAChBH,EAAW5O,IAAM6O,EAAiB7O,IAClC4O,EAAW7G,gBAAgB,cAIjCxL,EAAE+D,eAAe,WAAWa,UAAUC,IAAI,qBAC1C/E,EAAQ4G,uBAAuBC,QAC/B7G,EAAQ6L,wBAGV7L,EAAQkM,YAAc,SAAU7K,GAC9BnB,EAAE+D,eAAe,WAAWa,UAAU0B,OAAO,qBAC7CxG,EAAQ4G,uBAAuBC,QAC/B7G,EAAQ6L,wBAEV7L,EAAQ0B,GAAG,uBAAwB,QAASL,IAC1CA,EAAE6G,iBACFlI,EAAQkM,gBAEVlM,EAAQ0B,GAAG,0BAA2B,QAASL,GAAKrB,EAAQqO,eAAe,QAC3ErO,EAAQ0B,GAAG,sBAAuB,QAASL,GAAKrB,EAAQoO,WAAW,QAEnEnO,EAAE6B,iBAAiB,SAAU,WAC3B,IAAIT,EAAInB,EAAE+D,eAAe,aACvBsD,EAAYzG,SAASqE,gBAAgBoC,WAAazG,SAASsD,KAAKmD,UAChE2D,EAAUhL,EAAE+D,eAAe,WAC7B,GAAI5C,IAAM,KAAM,CACd,GAAIkG,GAAa,IAAK,CACpB2D,EAAQpG,UAAUC,IAAI,iBACjB,CACLmG,EAAQpG,UAAU0B,OAAO,gBAG5B,SAlGP,CAsGGzG,OAAQe,SAAUf,OAAOC,UCrG5B,SAAWC,EAAGC,EAAGF,gBAGf,IAAI8S,EAAa,KAAMC,EAAY,IAAKC,EAExC,SAASC,EAAkBvB,GACzB,GAAIA,EAAQwB,kBAAmB,CAC7B,IAAIC,EAAMzB,EAAQ0B,MAAM3M,OACxBiL,EAAQwB,kBAAkBC,EAAKA,IAInC,SAASE,IACP,GAAIL,EAAOI,MAAM3M,OAAU,EAAG,CAC5B,IAAI6M,EAASxS,SAASmD,eAAe,UACrCuM,WAAW8C,EAAOC,OAAOlR,KAAKiR,GAAS,IAI3C,SAASE,EAAmBR,GAC1B,IAAIS,EAAK3S,SAASmD,eAAe,gBACjC,IAAIyP,EAAoB,WACtB,GAAIV,EAAOI,MAAM3M,SAAW,EAAG,CAC7BgN,EAAG3O,UAAUC,IAAI,aACZ,CACL0O,EAAG3O,UAAU0B,OAAO,WAKxBkN,IACAD,EAAG3R,iBAAiB,QAAS,WAC3BkR,EAAOI,MAAQ,GACfJ,EAAOpH,QACP8H,MAEFV,EAAOlR,iBAAiB,QAAS4R,EAAmB,OAGtD1T,EAAQmC,MAAM,WACZ6Q,EAAS9S,EAAE+D,eAAe8O,GAE1B,SAASY,IACP,GAAIb,EAAY,CACdG,EAAiBD,GACjBF,EAAa,UACR,GAKT,GAAIE,IAAW,KAAM,CAEnBQ,EAAkBR,GAGlB,GAAIhT,EAAQ4T,cAAe,CACzB5T,EAAQ6T,aAAeC,aAAaxS,KAAKrB,EAAG,CAC1C8T,IAAK,kBACLC,aAAchU,EAAQkH,aAAa+M,cACnCC,WAAYlU,EAAQuC,OACpB4R,YAAa,CACXC,eAAgB,oCAChBC,mBAAoB,kBAEtBC,SAAU,EACVC,MAAO,IACPC,UAAW,WACT7T,KAAK8T,WAAWtQ,aAAa,QAAS,gBACtCxD,KAAK8T,WAAW1C,MAAM5G,IAAOxK,KAAK+T,MAAMpJ,UAAY3K,KAAK+T,MAAMC,aAAgB,KAC/EhU,KAAK8T,WAAW1C,MAAM6C,KAAOjU,KAAK+T,MAAMG,WAAa,KACrDlU,KAAK8T,WAAW1C,MAAM+C,MAAQnU,KAAK+T,MAAMK,YAAc,MAEzDC,MAAO,WACL,IAAIC,EAAStU,KACbuU,MAAMjU,UAAUyF,QAAQpF,KAAKX,KAAK8T,WAAW/M,qBAAqB,MAAO,SAAUyN,GACjF,GAAIA,EAAGtP,aAAa,UAAY,SAAU,CACxCsP,EAAGC,YAAc,WACfH,EAAOI,QAAQF,SAKtB,IAAMpC,GAGT9S,EAAE6B,iBAAiB,SAAU,WAC3B,IAAIwM,EAAQ,IAAIgH,YAAY,YAC5BtC,EAAOuC,cAAcjH,KAIzB0E,EAAOlR,iBAAiB,QAAS6R,EAAsB,OACvDX,EAAOpH,QAIT,GAAIoH,IAAW,MAAQ9S,EAAEuF,cAAc,UAAY,MAAQzF,EAAQwV,0BAA2B,CAC5FtV,EAAEuF,cAAc,SAASyI,UAAY,YAErClO,EAAQ0B,GAAG,oBAAqB,SAAU,WACxC,IAAIV,EAAGqM,EAAanN,EAAEa,iBAAiB,sCACvC,IAAKC,EAAI,EAAGA,EAAIqM,EAAW5G,OAAQzF,IAAK,CACtC,GAAIqM,EAAWrM,KAAOL,MAAQ0M,EAAWrM,GAAGyU,QAAS,CACnDpI,EAAWrM,GAAGsL,SAGlB,IAAM3L,KAAK8U,QAAS,CAClB9U,KAAK2L,QAEP+G,IACA,OAAO,QAGTrT,EAAQ0B,GAAGxB,EAAE+D,eAAe,cAAe,SAAUoP,GACrDrT,EAAQ0B,GAAGxB,EAAE+D,eAAe,cAAe,SAAUoP,GACrDrT,EAAQ0B,GAAGxB,EAAE+D,eAAe,YAAa,SAAUoP,OApHzD,CAyHGtT,OAAQe,SAAUf,OAAOC;;;;;;;;;;;;;;;;;;;;;;CCpG3B,SAAUC,EAAGC,GACZ,SAAS0R,EAAa8D,EAAoBC,EAAkBC,EAAcC,EAAgBC,EAAkBC,GAC1GpV,KAAK+U,mBAAqBA,EAC1B/U,KAAKgV,iBAAmBA,EACxBhV,KAAKiV,aAAeA,EACpBjV,KAAKkV,eAAiBA,EACtBlV,KAAKmV,iBAAmBA,EACxBnV,KAAKoV,UAAYA,EACjBpV,KAAKqV,YAAc,KAcrBpE,EAAY3Q,UAAUgV,WAAa,SAAUC,EAAQpB,GACnD,IAAI9T,EAAG8Q,EACP,IAAIqE,EAAI,EAER,IAAKnV,EAAI,EAAGA,EAAIkV,EAAOzP,OAAQzF,IAAK,CAClC8Q,EAAMoE,EAAOlV,GACb,GAAK8Q,EAAIsE,aAAe,GAAOtE,EAAIuE,cAAgB,EAAI,CACrDF,GAAKrE,EAAIsE,aAAetE,EAAIuE,kBACvB,CAELF,GAAK,GAIT,OAAQrB,EAAQoB,EAAOzP,OAAS9F,KAAKkV,gBAAkBM,GAGzDvE,EAAY3Q,UAAUqV,SAAW,SAAUJ,EAAQ1O,GACjD,IAAIxG,EAAG8Q,EAAKyE,EACZ,IAAIC,EAAeN,EAAOzP,OAAQgQ,EAElC,IAAKzV,EAAI,EAAGA,EAAIwV,EAAcxV,IAAK,CACjC8Q,EAAMoE,EAAOlV,GACb,GAAK8Q,EAAIsE,aAAe,GAAOtE,EAAIuE,cAAgB,EAAI,CACrDE,EAAW/O,EAASsK,EAAIsE,aAAetE,EAAIuE,kBACtC,CAELE,EAAW/O,EAEbsK,EAAIC,MAAM+C,MAAQyB,EAAW,KAC7BzE,EAAIC,MAAMvK,OAASA,EAAS,KAC5BsK,EAAIC,MAAM2E,WAAa/V,KAAKmV,iBAAmB,KAC/ChE,EAAIC,MAAM4E,UAAYhW,KAAKmV,iBAAmB,KAC9ChE,EAAIC,MAAM6E,YAAcjW,KAAKkV,eAAiB,EAAI,KAClD/D,EAAIC,MAAM8E,aAAelW,KAAKkV,eAAiB,EAAI,KACnDY,EAAa3E,EAAIjR,WAAWA,WAC5B,IAAK4V,EAAW3R,UAAUyB,SAAS,MAAO,CACxCkQ,EAAW3R,UAAUC,IAAI,SAK/B6M,EAAY3Q,UAAU6V,WAAa,SAAUC,GAC3C,IAAIC,EAAaC,EAAOjW,EAAGkW,EAC3B,IAAIC,EAAmBjX,EAAEuF,cAAc9E,KAAK+U,oBAC5C,IAAI0B,EAAsBrX,OAAOsX,iBAAiBF,GAClD,IAAIG,EAAuBC,SAASH,EAAoBI,iBAAiB,gBAAiB,IAC1F,IAAIC,EAAwBF,SAASH,EAAoBI,iBAAiB,iBAAkB,IAC5F,IAAIE,EAAiBP,EAAiBpC,YAAcuC,EAAuBG,EAE3E,MAAOV,EAAStQ,OAAS,EAAG,CAC1BuQ,EAAc,KACd,IAAKhW,EAAI,EAAGA,GAAK+V,EAAStQ,QAAUuQ,EAAahW,IAAK,CACpDiW,EAAQF,EAASE,MAAM,EAAGjW,GAC1BkW,EAAIvW,KAAKsV,WAAWgB,EAAOS,GAC3B,GAAIR,EAAIvW,KAAKoV,UAAW,CACtBpV,KAAK2V,SAASW,EAAOC,GAErBH,EAAWA,EAASE,MAAMjW,GAC1BgW,EAAc,OAGlB,GAAIA,EAAa,CACfrW,KAAK2V,SAASW,EAAOU,KAAKC,IAAIjX,KAAKoV,UAAWmB,IAC9C,SAKNtF,EAAY3Q,UAAU4F,MAAQ,WAC5B,IAAI7F,EACJ,IAAI6W,EAAuB3X,EAAEa,iBAAiBJ,KAAKgV,kBACnD,IAAImC,EAAiBD,EAAqBpR,OAC1C,IAAIsR,EAAW,KACf,IAAIhN,EAAU,KACd,IAAIgM,EAAW,GAEf,IAAK/V,EAAI,EAAGA,EAAI8W,EAAgB9W,IAAK,CACnC+J,EAAU8M,EAAqB7W,GAC/B,GAAI+J,EAAQU,yBAA2BsM,GAAYhB,EAAStQ,OAAS,EAAG,CAItE9F,KAAKmW,WAAWC,GAEhBA,EAAW,GAGbA,EAASxJ,KAAKxC,EAAQtF,cAAc9E,KAAKiV,eAEzCmC,EAAWhN,EAGb,GAAIgM,EAAStQ,OAAS,EAAG,CACvB9F,KAAKmW,WAAWC,KAIpBnF,EAAY3Q,UAAU4Q,MAAQ,WAC5B,IAAI7Q,EAAG8Q,EACP,IAAInQ,EAAMhB,KACV,IAAIqX,EAAgB9X,EAAEa,iBAAiBJ,KAAKgV,kBAC5C,IAAImC,EAAiBE,EAAcvR,OAEnC,SAASwR,EAAgB3J,GAEvBA,EAAM4J,eAAevU,IAAM1D,EAAED,QAAQ6D,YAAc5D,EAAED,QAAQmY,MAAMF,eAGrE,SAASG,IACP,GAAIzW,EAAIqU,YAAa,CACnBrU,EAAIqU,YAAc,MAClBxF,WAAW,WACT7O,EAAIkF,QACJlF,EAAIqU,YAAc,MACjB,MAKP/V,EAAE6B,iBAAiB,WAAYsW,GAE/BnY,EAAE6B,iBAAiB,OAAQsW,GAE3BnY,EAAE6B,iBAAiB,SAAUsW,GAE7B,IAAKpX,EAAI,EAAGA,EAAI8W,EAAgB9W,IAAK,CACnC8Q,EAAMkG,EAAchX,GAAGyE,cAAc9E,KAAKiV,cAC1C,GAAI9D,IAAQ,MAAQA,IAAQjK,UAAW,CACrCiK,EAAIhQ,iBAAiB,OAAQsW,GAE7BtG,EAAIhQ,iBAAiB,QAASsW,GAC9B,GAAInY,EAAED,QAAQmY,MAAMF,eAAgB,CAClCnG,EAAIhQ,iBAAiB,QAASmW,EAAgB,CAACI,KAAM,WAM7DpY,EAAED,QAAQ4R,YAAcA,GAjK1B,CAmKE7R,OAAQe,WC1LV,SAAUwX,GAAG,UAAUC,UAAU,iBAAiBC,SAAS,YAAY,CAACA,OAAOD,QAAQD,SAAS,UAAUG,SAAS,YAAYA,OAAOC,IAAI,CAACD,OAAO,GAAGH,OAAO,CAAC,IAAIK,EAAE,UAAU5Y,SAAS,YAAY,CAAC4Y,EAAE5Y,YAAY,UAAU6Y,SAAS,YAAY,CAACD,EAAEC,YAAY,UAAUC,OAAO,YAAY,CAACF,EAAEE,SAAS,CAACF,EAAEhY,KAAKgY,EAAE7E,aAAewE,MAAjU,CAAwU,WAAW,IAAIG,EAAOD,EAAOD,EAAQ,OAAO,WAAY,SAASpC,EAAE9U,EAAEyX,EAAEC,GAAG,SAASC,EAAEhY,EAAEsX,GAAG,IAAIQ,EAAE9X,GAAG,CAAC,IAAIK,EAAEL,GAAG,CAAC,IAAIiY,EAAE,mBAAmBC,SAASA,QAAQ,IAAIZ,GAAGW,EAAE,OAAOA,EAAEjY,GAAG,GAAG,GAAGmY,EAAE,OAAOA,EAAEnY,GAAG,GAAG,IAAI2M,EAAE,IAAIvK,MAAM,uBAAuBpC,EAAE,KAAK,MAAM2M,EAAEyL,KAAK,mBAAmBzL,EAAE,IAAI0L,EAAEP,EAAE9X,GAAG,CAACuX,QAAQ,IAAIlX,EAAEL,GAAG,GAAGM,KAAK+X,EAAEd,QAAQ,SAASpC,GAAG,IAAI2C,EAAEzX,EAAEL,GAAG,GAAGmV,GAAG,OAAO6C,EAAEF,GAAG3C,IAAIkD,EAAEA,EAAEd,QAAQpC,EAAE9U,EAAEyX,EAAEC,GAAG,OAAOD,EAAE9X,GAAGuX,QAAQ,IAAI,IAAIY,EAAE,mBAAmBD,SAASA,QAAQlY,EAAE,EAAEA,EAAE+X,EAAEtS,OAAOzF,IAAIgY,EAAED,EAAE/X,IAAI,OAAOgY,EAAE,OAAO7C,EAAtc,EAAA,CAA4c,CAACmD,EAAE,CAAC,SAASJ,EAAQV,EAAOD;;;;;;;;;;aAW51B,IAAIgB,GACJ,SAAWA,GACPA,EAAkBA,EAAkB,OAAS,GAAK,MAClDA,EAAkBA,EAAkB,MAAQ,GAAK,MAFrD,CAGGA,IAAsBA,EAAoB,KAC7C,IAAIC,GACJ,SAAWA,GACPA,EAAUA,EAAU,WAAa,GAAK,UACtCA,EAAUA,EAAU,SAAW,GAAK,SAFxC,CAGGA,IAAcA,EAAY,KAO7B,IAAI1F,EAA8B,WAE9B,SAASA,EAAamB,EAAQxU,GAC1B,GAAIwU,SAAgB,EAAG,CAAEA,EAAS,GAClC,GAAIxU,SAAkB,EAAG,CAAEA,EAAW,sBACtC,GAAIyU,MAAMuE,QAAQhZ,GAAW,CACzBA,EAASiG,QAAQ,SAAU1C,GACvB,IAAI8P,EAAamB,EAAQjR,UAG5B,UAAWvD,GAAY,SAAU,CAClC,IAAIgR,EAAW3Q,SAASC,iBAAiBN,GACzCyU,MAAMjU,UAAUyF,QAAQpF,KAAKmQ,EAAU,SAAUiI,GAC7C,IAAI5F,EAAamB,EAAQyE,SAG5B,CACD,IAAIC,EAAiB7F,EAAa8F,MAAM9F,EAAa+F,SAAU5E,EAAQ,CACnER,WAAY3T,SAASoD,cAAc,SAEvC4P,EAAa7S,UAAU6Y,OAAOH,EAAgBlZ,GAC9C,OAAOkZ,GAGf7F,EAAa7S,UAAU6Y,OAAS,SAAU7E,EAAQvD,GAC9CuD,EAAOP,MAAQhD,EACf,GAAIuD,EAAOP,MAAMqF,SAASC,MAAM,cAAgB/E,EAAOP,MAAMnQ,aAAa,UAAY,OAAS0Q,EAAOP,MAAM7O,aAAa,QAAQmU,MAAM,mBAAoB,CACvJ/E,EAAOP,MAAMvQ,aAAa,eAAgB,OAC1C8Q,EAAOT,UAAUS,GACjBA,EAAOP,MAAM7T,WAAWwD,YAAY4Q,EAAOR,YAC3CQ,EAAOgF,WAAa,CAChBhO,KAAMgJ,EAAOiF,MAAM7X,KAAK4S,GACxBkF,QAASrG,EAAa7S,UAAUkZ,QAAQ9X,KAAK,KAAM4S,GACnDrJ,MAAOqJ,EAAOmF,OAAO/X,KAAK4S,GAC1BoF,MAAOvG,EAAa7S,UAAUqN,MAAMjM,KAAK,KAAM4S,EAAQuE,EAAUc,OACjEC,QAASzG,EAAa7S,UAAUqN,MAAMjM,KAAK,KAAM4S,EAAQuE,EAAUgB,SACnEzN,SAAUkI,EAAOT,UAAUnS,KAAK4S,IAEpC,IAAK,IAAI3G,KAAS2G,EAAOgF,WAAY,CACjChF,EAAOP,MAAM5S,iBAAiBwM,EAAO2G,EAAOgF,WAAW3L,OAInEwF,EAAa7S,UAAUwZ,gBAAkB,SAAUxF,EAAQyF,GACvD,IAAIC,EAAW,GACf,IAAK,IAAIrS,KAAO2M,EAAO2F,iBAAkB,CACrC,IAAItM,EAAQkL,EAAUc,MACtB,GAAIrF,EAAO2F,iBAAiBtS,GAAKuS,QAAUhT,UAAW,CAClDyG,EAAQ2G,EAAO2F,iBAAiBtS,GAAKuS,MAEzC,GAAIvM,GAASoM,EAAM,CACfC,EAASrS,GAAO2M,EAAO2F,iBAAiBtS,IAGhD,OAAOqS,GAEX7G,EAAa7S,UAAUqN,MAAQ,SAAU2G,EAAQyF,EAAMpM,GACnD,IAAIwM,EAAkB,SAAUC,GAC5B,GAAKf,IAAU,MAAQgB,EAAQC,UAAY1B,EAAkB2B,KAASlB,IAAU,OAASgB,EAAQC,UAAY1B,EAAkB4B,GAAK,CAChIJ,EAAYjH,EAAa8F,MAAM,CAC3BwB,IAAK,OACNL,GACH,GAAIA,EAAU1Q,eAAe,MAAO,CAChC,GAAI0Q,EAAUM,IAAM/M,EAAMhE,QAAS,CAC/B0P,GAASe,EAAUK,QAElB,CACDpB,EAAQe,EAAUK,UAGrB,GAAIL,EAAU1Q,eAAe,SAAW0Q,EAAU1Q,eAAe,MAAO,CACzE,GAAIiE,EAAMhE,SAAWyQ,EAAUO,MAAQhN,EAAMhE,SAAWyQ,EAAUQ,GAAI,CAClEvB,GAASe,EAAUK,QAElB,CACDpB,EAAQe,EAAUK,QAKlC,IAAK,IAAII,KAAQ1H,EAAa7S,UAAUwZ,gBAAgBxF,EAAQyF,GAAO,CACnE,IAAIM,EAAUlH,EAAa8F,MAAM,CAC7BqB,SAAU1B,EAAkB2B,KAC7BjG,EAAO2F,iBAAiBY,IAAQxB,EAAQT,EAAkB2B,KAAOF,EAAQC,SAC5ED,EAAQS,WAAW/U,QAAQoU,GAC3B,GAAId,IAAU,KAAM,CAChBgB,EAAQU,SAASpa,KAAK2T,EAAQ3G,MAI1CwF,EAAa7S,UAAU0a,YAAc,SAAU1G,EAAQ9T,EAAUya,GAC7D,IAAIC,EAAsBzR,OAAO0R,oBAAoB7G,EAAOd,aAAc4H,EAAU,IAAIjZ,eAAkBP,EAAS0S,EAAO+G,cAAexZ,EAAMyS,EAAOgH,OAAQC,EAAcjH,EAAOkH,OAAQC,EAAuBC,mBAAmBpH,EAAOqH,aAAe,IAAMD,mBAAmBH,GACpR,GAAI3Z,EAAOyX,MAAM,UAAW,CACxB,GAAIxX,EAAI+Z,QAAQ,QAAU,EAAG,CACzB/Z,GAAO,IAAM4Z,MAEZ,CACD5Z,GAAO,IAAM4Z,GAGrBL,EAAQhZ,KAAKR,EAAQC,EAAK,MAC1B,IAAK,IAAIxB,EAAI6a,EAAoBpV,OAAS,EAAGzF,GAAK,EAAGA,IAAK,CACtD+a,EAAQS,iBAAiBX,EAAoB7a,GAAIiU,EAAOd,YAAY0H,EAAoB7a,KAE5F+a,EAAQU,mBAAqB,WACzB,GAAIV,EAAQ3Z,YAAc,GAAK2Z,EAAQ9Y,QAAU,IAAK,CAClDgS,EAAOyH,OAAOR,GAAeH,EAAQ7Y,SACrC/B,EAAS4a,EAAQ7Y,eAEhB,GAAI6Y,EAAQ9Y,QAAU,IAAK,CAC5B2Y,MAGR,OAAOG,GAEXjI,EAAa7S,UAAU0b,KAAO,SAAU1H,EAAQ8G,EAASa,GACrD,GAAIA,SAAiB,EAAG,CAAEA,EAAU,KACpC,GAAI3H,EAAO4H,WAAY,CACnB9c,OAAO+c,aAAa7H,EAAO4H,YAE/B,GAAID,IAAY,KAAM,CAClB3H,EAAO4H,WAAa9c,OAAOyQ,WAAWsD,EAAa7S,UAAU0b,KAAKta,KAAK,KAAM4S,EAAQ8G,EAAS,OAAQ9G,EAAOV,WAE5G,CACD,GAAIU,EAAO8H,QAAS,CAChB9H,EAAO8H,QAAQC,QAEnB/H,EAAO8H,QAAUhB,EACjB9G,EAAO8H,QAAQvZ,KAAKyR,EAAOqH,YAAc,IAAMrH,EAAOkH,UAG9DrI,EAAa7S,UAAUgc,MAAQ,SAAUhI,EAAQ9T,EAAUya,GACvD,IAAI1Y,EAAW+R,EAAOiI,OAAOjI,EAAOkH,QACpC,GAAIjZ,IAAa2E,UAAW,CACxB,IAAIkU,EAAUjI,EAAa7S,UAAU0a,YAAY1G,EAAQ9T,EAAUya,GACnE9H,EAAa7S,UAAU0b,KAAK1H,EAAQ8G,OAEnC,CACD5a,EAAS+B,KAGjB4Q,EAAa7S,UAAUkZ,QAAU,SAAUlF,GACvC,IAAK,IAAI3G,KAAS2G,EAAOgF,WAAY,CACjChF,EAAOP,MAAMyI,oBAAoB7O,EAAO2G,EAAOgF,WAAW3L,IAE9D2G,EAAOR,WAAW5T,WAAWuc,YAAYnI,EAAOR,aAEpDX,EAAa8F,MAAQ,WACjB,IAAIA,EAAQ,GAAIyD,EAChB,IAAK,IAAIrc,EAAI,EAAGA,EAAIsc,UAAU7W,OAAQzF,IAAK,CACvC,IAAKqc,KAAOC,UAAUtc,GAAI,CACtB4Y,EAAMyD,GAAOC,UAAUtc,GAAGqc,IAGlC,OAAOzD,GAEX9F,EAAa+F,SAAW,CACpBtF,MAAO,IACPP,aAAc,iBACduJ,UAAW,CACPC,SAAU,SAAUpK,GAChB,OAAO,IAAIqK,OAAOrK,EAAO,OAE7BsK,UAAW,SAAUtK,GACjB,MAAO,WAAaA,EAAQ,cAGpCe,YAAa,CACTC,eAAgB,qCAEpBuJ,MAAO,EACPrJ,SAAU,EACVJ,WAAY,MACZ0J,SAAU,IACV7J,IAAK,KACL6G,iBAAkB,CACdiD,MAAS,CACLpC,WAAY,CAAC,CACLJ,GAAI,GACJD,IAAK,QAEbM,SAAU,SAAUpN,GAChB,GAAI3N,KAAK8T,WAAW5O,aAAa,SAAS0W,QAAQ,UAAY,EAAG,CAC7D,IAAIuB,EAAWnd,KAAK8T,WAAWhP,cAAc,aAC7C,GAAIqY,IAAa,KAAM,CACnBxP,EAAMpG,iBACNvH,KAAK0U,QAAQyI,GACbnd,KAAK8T,WAAWtQ,aAAa,QAAS,mBAIlD8W,SAAU1B,EAAkB2B,IAC5BL,MAAOrB,EAAUgB,SAErBuD,kBAAqB,CACjBtC,WAAY,CAAC,CACLJ,GAAI,GACJD,IAAK,OAET,CACIC,GAAI,GACJD,IAAK,QAEbM,SAAU,SAAUpN,GAChBA,EAAMpG,kBAEV+S,SAAU1B,EAAkB4B,GAC5BN,MAAOrB,EAAUgB,SAErBwD,gBAAmB,CACfvC,WAAY,CAAC,CACLJ,GAAI,GACJD,IAAK,OAET,CACIC,GAAI,GACJD,IAAK,QAEbM,SAAU,SAAUpN,GAChBA,EAAMpG,iBACN,IAAI6F,EAAQpN,KAAK8T,WAAWhP,cAAc,+BAAgCwY,EAAOtd,KAAK8T,WAAWhP,cAAc,8BAA+ByY,EAASvd,KAAK8T,WAAWhP,cAAc,aACrL,GAAIyY,EAAQ,CACR,IAAIC,EAAejJ,MAAMjU,UAAUsb,QAAQjb,KAAK4c,EAAOrd,WAAWud,SAAUF,GAASnR,EAAWoR,GAAgB7P,EAAMhE,QAAU,IAAK+T,EAAW1d,KAAK8T,WAAW/M,qBAAqB,MAAMjB,OAC3L,GAAIsG,EAAW,EAAG,CACdA,EAAWsR,EAAW,OAErB,GAAItR,GAAYsR,EAAU,CAC3BtR,EAAW,EAEfmR,EAAOpZ,UAAU0B,OAAO,UACxB0X,EAAOhc,cAAckc,SAASE,KAAKvR,GAAUjI,UAAUC,IAAI,eAE1D,GAAIkZ,GAAQ3P,EAAMhE,SAAW,GAAI,CAClC2T,EAAKnZ,UAAUC,IAAI,eAElB,GAAIgJ,EAAO,CACZA,EAAMjJ,UAAUC,IAAI,YAG5BkW,SAAU1B,EAAkB4B,GAC5BN,MAAOrB,EAAUc,OAErBiE,SAAY,CACR9C,WAAY,CAAC,CACLJ,GAAI,GACJD,IAAK,MACN,CACCE,KAAM,GACNC,GAAI,GACJH,IAAK,OAEbM,SAAU,WACN,IAAI8C,EAAW7d,KAAK+T,MAAM7O,aAAa,+BAAgC4Y,EAAe9d,KAAKwb,OAC3F,GAAIsC,IAAiB,IAAMA,EAAahY,QAAU9F,KAAK+d,YAAa,CAChE,IAAKF,GAAYC,GAAgBD,EAAU,CACvC7d,KAAK8T,WAAWtQ,aAAa,QAAS,qBAE1C2P,EAAa7S,UAAUgc,MAAMtc,KAAM,SAAUuC,GACzCvC,KAAKge,QAAQhe,KAAKie,MAAM1b,IACxBvC,KAAKqU,SACP3S,KAAK1B,MAAOA,KAAKke,YAElB,CACDle,KAAKme,WAGb7D,SAAU1B,EAAkB2B,IAC5BL,MAAOrB,EAAUc,QAGzB7F,WAAY,KACZsI,QAAS,KACTrI,MAAO,KAIPqK,cAAe,WACX,IAAIC,EAAe,GACnB,GAAIre,KAAK+T,MAAMnQ,aAAa,mCAAoC,CAC5Dya,EAAere,KAAK+T,MAAM7O,aAAa,wCAEtC,GAAIlF,KAAKqT,eAAiB,MAAO,CAClCgL,EAAere,KAAKqT,iBAEnB,CACDgL,EAAe,GAEnB,OAAOA,GAKXC,OAAQ,WACJ,IAAIC,EAAQve,KAAK+T,MAAM7O,aAAa,2BACpC,GAAIsZ,MAAMD,IAAUA,IAAU,KAAM,CAChC,OAAOve,KAAKgd,MAEhB,OAAOpG,SAAS2H,EAAO,KAK3BR,UAAW,WACP,IAAIU,EAAWze,KAAK+T,MAAM7O,aAAa,8BACvC,GAAIsZ,MAAMC,IAAaA,IAAa,KAAM,CACtC,OAAOze,KAAK2T,SAEhB,OAAOiD,SAAS6H,EAAU,KAK9BC,WAAY,SAAUC,GAClB,OAAOA,EAAMvb,QAAQpD,KAAK4c,UAAUC,SAAS7c,KAAKwb,QAASxb,KAAK4c,UAAUG,YAK9E1B,YAAa,WACT,GAAIrb,KAAK+T,MAAMnQ,aAAa,4BAA6B,CACrD,OAAO5D,KAAK+T,MAAM7O,aAAa,4BAEnC,OAAOlF,KAAKuT,YAKhBoI,UAAW,WACP,GAAI3b,KAAK+T,MAAMnQ,aAAa,gCAAiC,CACzD,OAAO5D,KAAK+T,MAAM7O,aAAa,gCAEnC,OAAOlF,KAAKid,UAKhB3B,KAAM,WACF,GAAItb,KAAK+T,MAAMnQ,aAAa,qBAAsB,CAC9C,OAAO5D,KAAK+T,MAAM7O,aAAa,qBAEnC,OAAOlF,KAAKoT,KAKhBmG,MAAO,SAAUqF,GACb,GAAIA,SAAa,EAAG,CAAEA,EAAM,MAC5B,GAAIA,EAAK,CACL5e,KAAKme,aAEJ,CACD,IAAI7J,EAAStU,KACb6P,WAAW,WACPyE,EAAOiF,MAAM,OACd,OAMXgD,OAAQ,SAAU9J,GACd,OAAOzS,KAAK+b,OAAOtJ,IAKvBgH,OAAQ,WACJ,IAAIoE,EAAW7d,KAAK+T,MAAM7O,aAAa,+BACvC,KAAM2Y,GAAY7d,KAAK+T,MAAMtB,OAASoL,IAAa7d,KAAK+d,aAAe/d,KAAK+T,MAAMtB,MAAM3M,OAAQ,CAC5F9F,KAAK8T,WAAWtQ,aAAa,QAAS,uBAM9C6Q,MAAO,WACH,IAAIC,EAAStU,KACbuU,MAAMjU,UAAUyF,QAAQpF,KAAKX,KAAK8T,WAAW/M,qBAAqB,MAAO,SAAUyN,GAC/E,GAAIA,EAAGtP,aAAa,UAAY,SAAU,CACtCsP,EAAGqK,QAAU,WACTvK,EAAOI,QAAQF,QAK/B2J,OAAQ,WACJne,KAAK8T,WAAWtQ,aAAa,QAAS,iBAK1CqQ,UAAW,WACP7T,KAAK8T,WAAWtQ,aAAa,QAAS,gBACtCxD,KAAK8T,WAAWtQ,aAAa,QAAS,QAAUxD,KAAK+T,MAAMpJ,UAAY3K,KAAK+T,MAAMC,cAAgB,WAAahU,KAAK+T,MAAMG,WAAa,YAAclU,KAAK+T,MAAMK,YAAc,QAKlL4J,QAAS,SAAUzb,GACf,IAAIuc,EACJ,UAAWvc,GAAY,SAAU,CAC7Buc,EAAK9e,KAAK+e,WAAWxc,OAEpB,CACDuc,EAAK9e,KAAKgf,qBAAqBzc,GAEnC,GAAIvC,KAAK8T,WAAWmL,gBAAiB,CACjCjf,KAAK8T,WAAW2I,YAAYzc,KAAK8T,WAAWoL,WAAW,IAE3Dlf,KAAK8T,WAAWpQ,YAAYob,IAKhCE,qBAAsB,SAAUzc,GAC5B,IAAIuc,EAAK3e,SAASoD,cAAc,MAAOiR,EAAKrU,SAASoD,cAAc,MAAOgb,EAAQve,KAAKse,SAEvF,GAAIC,EAAQ,EAAG,CACXhc,EAAWA,EAAS4c,eAEnB,GAAIZ,IAAU,EAAG,CAClBA,EAAQhc,EAASuD,OAErB,IAAK,IAAI6X,EAAO,EAAGA,EAAO3G,KAAKC,IAAID,KAAKoI,IAAIb,GAAQhc,EAASuD,QAAS6X,IAAQ,CAC1EnJ,EAAGvP,UAAY1C,EAASob,GAAM0B,MAC9B7K,EAAGhR,aAAa,0BAA2BjB,EAASob,GAAM2B,OAC1DR,EAAGpb,YAAY8Q,GACfA,EAAKrU,SAASoD,cAAc,MAEhC,OAAOub,GAKXC,WAAY,SAAUxc,GAClB,IAAIuc,EAAK3e,SAASoD,cAAc,MAAOiR,EAAKrU,SAASoD,cAAc,MACnE,GAAIhB,EAASuD,OAAS,EAAG,CACrB9F,KAAK8T,WAAW7O,UAAY1C,MAE3B,CACD,IAAI8b,EAAere,KAAKoe,gBACxB,GAAIC,IAAiB,GAAI,CACrB7J,EAAGvP,UAAYoZ,EACf7J,EAAGhR,aAAa,QAAS,UACzBsb,EAAGpb,YAAY8Q,IAGvB,OAAOsK,GAKXb,MAAO,SAAU1b,GACb,IACI,IAAIgd,EAAiB,GAErB,IAAIC,EAAOjR,KAAKC,MAAMjM,GACtB,GAAIkH,OAAOqD,KAAK0S,GAAM1Z,SAAW,EAAG,CAChC,MAAO,GAEX,GAAIyO,MAAMuE,QAAQ0G,GAAO,CACrB,IAAK,IAAInf,EAAI,EAAGA,EAAIoJ,OAAOqD,KAAK0S,GAAM1Z,OAAQzF,IAAK,CAC/Ckf,EAAeA,EAAezZ,QAAU,CAAEwZ,MAASE,EAAKnf,GAAIgf,MAASrf,KAAK0e,WAAWc,EAAKnf,UAG7F,CACD,IAAK,IAAIoS,KAAS+M,EAAM,CACpBD,EAAe3S,KAAK,CAChB0S,MAAS7M,EACT4M,MAASrf,KAAK0e,WAAWc,EAAK/M,OAI1C,OAAO8M,EAEX,MAAO5R,GAEH,OAAOpL,IAMfiZ,KAAM,WACF,OAAOxb,KAAK+T,MAAMtB,OAKtBiC,QAAS,SAAUiJ,GACf,GAAIA,EAAK/Z,aAAa,2BAA4B,CAC9C5D,KAAK+T,MAAMtB,MAAQkL,EAAKzY,aAAa,+BAEpC,CACDlF,KAAK+T,MAAMtB,MAAQkL,EAAK1Y,UAE5BjF,KAAK+T,MAAMvQ,aAAa,8BAA+BxD,KAAK+T,MAAMtB,QAKtEyL,OAAQ,aAERhC,WAAY,KACZH,OAAQ,GACRzC,WAAY,IAEhB,OAAOnG,EA3fsB,GA6fjC0E,EAAOD,QAAUzE,GAEf,KAAK,GAAG,CAAC,GA1hByW,CA0hBrW"}
\ No newline at end of file