summaryrefslogtreecommitdiff
path: root/searx
diff options
context:
space:
mode:
Diffstat (limited to 'searx')
-rw-r--r--searx/__init__.py3
-rw-r--r--searx/answerers/random/answerer.py2
-rw-r--r--searx/autocomplete.py4
-rw-r--r--searx/data/useragents.json15
-rw-r--r--searx/engines/__init__.py57
-rw-r--r--searx/engines/arxiv.py3
-rw-r--r--searx/engines/bing.py56
-rw-r--r--searx/engines/bing_images.py67
-rw-r--r--searx/engines/bing_videos.py50
-rw-r--r--searx/engines/btdigg.py39
-rw-r--r--searx/engines/dailymotion.py6
-rw-r--r--searx/engines/deviantart.py47
-rw-r--r--searx/engines/dictzone.py10
-rw-r--r--searx/engines/digg.py36
-rw-r--r--searx/engines/doku.py15
-rw-r--r--searx/engines/duckduckgo.py43
-rw-r--r--searx/engines/duckduckgo_definitions.py19
-rw-r--r--searx/engines/duden.py28
-rw-r--r--searx/engines/dummy-offline.py12
-rw-r--r--searx/engines/fdroid.py29
-rw-r--r--searx/engines/flickr_noapi.py73
-rw-r--r--searx/engines/framalibre.py5
-rw-r--r--searx/engines/genius.py1
-rw-r--r--searx/engines/gigablast.py43
-rw-r--r--searx/engines/google.py52
-rw-r--r--searx/engines/google_images.py16
-rw-r--r--searx/engines/google_videos.py20
-rw-r--r--searx/engines/ina.py9
-rw-r--r--searx/engines/invidious.py100
-rw-r--r--searx/engines/microsoft_academic.py2
-rw-r--r--searx/engines/openstreetmap.py2
-rw-r--r--searx/engines/qwant.py1
-rw-r--r--searx/engines/scanr_structures.py2
-rw-r--r--searx/engines/seedpeer.py78
-rw-r--r--searx/engines/soundcloud.py12
-rw-r--r--searx/engines/spotify.py14
-rw-r--r--searx/engines/startpage.py35
-rw-r--r--searx/engines/vimeo.py2
-rw-r--r--searx/engines/wikidata.py240
-rw-r--r--searx/engines/wikipedia.py9
-rw-r--r--searx/engines/wolframalpha_noapi.py2
-rw-r--r--searx/engines/www1x.py35
-rw-r--r--searx/engines/xpath.py33
-rw-r--r--searx/engines/yahoo.py18
-rw-r--r--searx/engines/youtube_api.py2
-rw-r--r--searx/engines/youtube_noapi.py17
-rw-r--r--searx/exceptions.py1
-rw-r--r--searx/plugins/https_rewrite.py3
-rw-r--r--searx/plugins/oa_doi_rewrite.py3
-rw-r--r--searx/plugins/tracker_url_remover.py27
-rw-r--r--searx/preferences.py49
-rw-r--r--searx/query.py24
-rw-r--r--searx/results.py110
-rw-r--r--searx/search.py188
-rw-r--r--searx/settings.yml148
-rw-r--r--searx/settings_robot.yml8
-rw-r--r--searx/static/css/bootstrap.min.css2
-rw-r--r--searx/static/plugins/js/infinite_scroll.js20
-rw-r--r--searx/static/plugins/js/vim_hotkeys.js12
-rw-r--r--searx/static/themes/courgette/css/style-rtl.css2
-rw-r--r--searx/static/themes/courgette/css/style.css2
-rw-r--r--searx/static/themes/courgette/less/style.less4
-rw-r--r--searx/static/themes/legacy/css/style.css2
-rw-r--r--searx/static/themes/legacy/less/autocompleter.less122
-rw-r--r--searx/static/themes/legacy/less/style.less4
-rw-r--r--searx/static/themes/oscar/css/logicodev-dark.css732
-rw-r--r--searx/static/themes/oscar/css/logicodev-dark.min.css2
-rw-r--r--searx/static/themes/oscar/css/logicodev.css931
-rw-r--r--searx/static/themes/oscar/css/logicodev.min.css2
-rw-r--r--searx/static/themes/oscar/css/pointhi.css562
-rw-r--r--searx/static/themes/oscar/gruntfile.js6
-rw-r--r--searx/static/themes/oscar/img/icons/invidious.pngbin0 -> 3427 bytes
-rw-r--r--searx/static/themes/oscar/js/searx.js356
-rw-r--r--searx/static/themes/oscar/js/searx.min.js4
-rw-r--r--searx/static/themes/oscar/js/searx_src/00_requirejs_config.js46
-rw-r--r--searx/static/themes/oscar/js/searx_src/01_init.js30
-rw-r--r--searx/static/themes/oscar/js/searx_src/autocompleter.js74
-rw-r--r--searx/static/themes/oscar/js/searx_src/element_modifiers.js198
-rw-r--r--searx/static/themes/oscar/js/searx_src/leaflet_map.js334
-rw-r--r--searx/static/themes/oscar/less/logicodev-dark/oscar.less6
-rw-r--r--searx/static/themes/oscar/less/logicodev/code.less4
-rw-r--r--searx/static/themes/oscar/less/logicodev/infobox.less2
-rw-r--r--searx/static/themes/oscar/less/logicodev/navbar.less1
-rw-r--r--searx/static/themes/oscar/less/logicodev/results.less12
-rw-r--r--searx/static/themes/oscar/less/pointhi/code.less2
-rw-r--r--searx/static/themes/oscar/less/pointhi/infobox.less2
-rw-r--r--searx/static/themes/oscar/package.json9
-rw-r--r--searx/static/themes/pix-art/css/style.css2
-rw-r--r--searx/static/themes/simple/css/searx-rtl.css2
-rw-r--r--searx/static/themes/simple/css/searx-rtl.min.css2
-rw-r--r--searx/static/themes/simple/css/searx.css2
-rw-r--r--searx/static/themes/simple/css/searx.min.css2
-rw-r--r--searx/static/themes/simple/gruntfile.js49
-rw-r--r--searx/static/themes/simple/js/searx.head.js40
-rw-r--r--searx/static/themes/simple/js/searx.head.min.js4
-rw-r--r--searx/static/themes/simple/js/searx.head.min.js.map1
-rw-r--r--searx/static/themes/simple/js/searx.js12
-rw-r--r--searx/static/themes/simple/js/searx.min.js10
-rw-r--r--searx/static/themes/simple/js/searx.min.js.map2
-rw-r--r--searx/static/themes/simple/js/searx_head/00_init.js40
-rw-r--r--searx/static/themes/simple/js/searx_src/00_searx_toolkit.js10
-rw-r--r--searx/static/themes/simple/js/searx_src/searx_search.js2
-rw-r--r--searx/static/themes/simple/leaflet/leaflet.css1272
-rw-r--r--searx/templates/courgette/result_templates/key-value.html13
-rw-r--r--searx/templates/courgette/result_templates/torrent.html2
-rw-r--r--searx/templates/courgette/results.html4
-rw-r--r--searx/templates/legacy/result_templates/key-value.html13
-rw-r--r--searx/templates/legacy/result_templates/torrent.html2
-rw-r--r--searx/templates/legacy/results.html4
-rw-r--r--searx/templates/oscar/advanced.html9
-rw-r--r--searx/templates/oscar/base.html31
-rw-r--r--searx/templates/oscar/categories.html18
-rw-r--r--searx/templates/oscar/infobox.html33
-rw-r--r--searx/templates/oscar/languages.html18
-rw-r--r--searx/templates/oscar/macros.html40
-rw-r--r--searx/templates/oscar/navbar.html16
-rw-r--r--searx/templates/oscar/preferences.html72
-rw-r--r--searx/templates/oscar/result_templates/code.html36
-rw-r--r--searx/templates/oscar/result_templates/default.html62
-rw-r--r--searx/templates/oscar/result_templates/images.html75
-rw-r--r--searx/templates/oscar/result_templates/key-value.html19
-rw-r--r--searx/templates/oscar/result_templates/map.html144
-rw-r--r--searx/templates/oscar/result_templates/torrent.html2
-rw-r--r--searx/templates/oscar/result_templates/videos.html54
-rw-r--r--searx/templates/oscar/results.html311
-rw-r--r--searx/templates/oscar/search.html48
-rw-r--r--searx/templates/oscar/search_full.html36
-rw-r--r--searx/templates/oscar/time-range.html22
-rw-r--r--searx/templates/simple/base.html25
-rw-r--r--searx/templates/simple/infobox.html5
-rw-r--r--searx/templates/simple/result_templates/key-value.html11
-rw-r--r--searx/templates/simple/result_templates/torrent.html2
-rw-r--r--searx/templates/simple/results.html20
-rw-r--r--searx/templates/simple/search.html1
-rw-r--r--searx/testing.py18
-rw-r--r--searx/translations/ar/LC_MESSAGES/messages.mobin14049 -> 10316 bytes
-rw-r--r--searx/translations/ar/LC_MESSAGES/messages.po150
-rw-r--r--searx/translations/bg/LC_MESSAGES/messages.mobin13778 -> 9690 bytes
-rw-r--r--searx/translations/bg/LC_MESSAGES/messages.po150
-rw-r--r--searx/translations/bo/LC_MESSAGES/messages.mobin0 -> 18914 bytes
-rw-r--r--searx/translations/bo/LC_MESSAGES/messages.po998
-rw-r--r--searx/translations/ca/LC_MESSAGES/messages.mobin12694 -> 12305 bytes
-rw-r--r--searx/translations/ca/LC_MESSAGES/messages.po152
-rw-r--r--searx/translations/cs/LC_MESSAGES/messages.mobin12146 -> 9765 bytes
-rw-r--r--searx/translations/cs/LC_MESSAGES/messages.po150
-rw-r--r--searx/translations/cy/LC_MESSAGES/messages.mobin12014 -> 7073 bytes
-rw-r--r--searx/translations/cy/LC_MESSAGES/messages.po151
-rw-r--r--searx/translations/da/LC_MESSAGES/messages.mobin12050 -> 11639 bytes
-rw-r--r--searx/translations/da/LC_MESSAGES/messages.po151
-rw-r--r--searx/translations/de/LC_MESSAGES/messages.mobin12686 -> 12265 bytes
-rw-r--r--searx/translations/de/LC_MESSAGES/messages.po159
-rw-r--r--searx/translations/el_GR/LC_MESSAGES/messages.mobin14021 -> 8236 bytes
-rw-r--r--searx/translations/el_GR/LC_MESSAGES/messages.po149
-rw-r--r--searx/translations/en/LC_MESSAGES/messages.mobin7565 -> 443 bytes
-rw-r--r--searx/translations/eo/LC_MESSAGES/messages.mobin12014 -> 11604 bytes
-rw-r--r--searx/translations/eo/LC_MESSAGES/messages.po151
-rw-r--r--searx/translations/es/LC_MESSAGES/messages.mobin12688 -> 12277 bytes
-rw-r--r--searx/translations/es/LC_MESSAGES/messages.po153
-rw-r--r--searx/translations/et/LC_MESSAGES/messages.mobin0 -> 11423 bytes
-rw-r--r--searx/translations/et/LC_MESSAGES/messages.po998
-rw-r--r--searx/translations/eu/LC_MESSAGES/messages.mobin12356 -> 11959 bytes
-rw-r--r--searx/translations/eu/LC_MESSAGES/messages.po163
-rw-r--r--searx/translations/fa_IR/LC_MESSAGES/messages.mobin14896 -> 14413 bytes
-rw-r--r--searx/translations/fa_IR/LC_MESSAGES/messages.po155
-rw-r--r--searx/translations/fi/LC_MESSAGES/messages.mobin12258 -> 11877 bytes
-rw-r--r--searx/translations/fi/LC_MESSAGES/messages.po149
-rw-r--r--searx/translations/fil/LC_MESSAGES/messages.mobin12541 -> 12151 bytes
-rw-r--r--searx/translations/fil/LC_MESSAGES/messages.po151
-rw-r--r--searx/translations/fr/LC_MESSAGES/messages.mobin12868 -> 12463 bytes
-rw-r--r--searx/translations/fr/LC_MESSAGES/messages.po152
-rw-r--r--searx/translations/gl/LC_MESSAGES/messages.mobin12353 -> 11948 bytes
-rw-r--r--searx/translations/gl/LC_MESSAGES/messages.po151
-rw-r--r--searx/translations/he/LC_MESSAGES/messages.mobin13386 -> 12736 bytes
-rw-r--r--searx/translations/he/LC_MESSAGES/messages.po185
-rw-r--r--searx/translations/hr/LC_MESSAGES/messages.mobin12434 -> 11991 bytes
-rw-r--r--searx/translations/hr/LC_MESSAGES/messages.po151
-rw-r--r--searx/translations/hu/LC_MESSAGES/messages.mobin12063 -> 11707 bytes
-rw-r--r--searx/translations/hu/LC_MESSAGES/messages.po149
-rw-r--r--searx/translations/ia/LC_MESSAGES/messages.mobin0 -> 12210 bytes
-rw-r--r--searx/translations/ia/LC_MESSAGES/messages.po998
-rw-r--r--searx/translations/it/LC_MESSAGES/messages.mobin12276 -> 11900 bytes
-rw-r--r--searx/translations/it/LC_MESSAGES/messages.po179
-rw-r--r--searx/translations/ja/LC_MESSAGES/messages.mobin13555 -> 13084 bytes
-rw-r--r--searx/translations/ja/LC_MESSAGES/messages.po154
-rw-r--r--searx/translations/lt/LC_MESSAGES/messages.mobin0 -> 12354 bytes
-rw-r--r--searx/translations/lt/LC_MESSAGES/messages.po998
-rw-r--r--searx/translations/nl/LC_MESSAGES/messages.mobin12267 -> 11863 bytes
-rw-r--r--searx/translations/nl/LC_MESSAGES/messages.po149
-rw-r--r--searx/translations/nl_BE/LC_MESSAGES/messages.mobin12378 -> 11974 bytes
-rw-r--r--searx/translations/nl_BE/LC_MESSAGES/messages.po151
-rw-r--r--searx/translations/oc/LC_MESSAGES/messages.mobin0 -> 12157 bytes
-rw-r--r--searx/translations/oc/LC_MESSAGES/messages.po999
-rw-r--r--searx/translations/pl/LC_MESSAGES/messages.mobin12768 -> 12768 bytes
-rw-r--r--searx/translations/pt/LC_MESSAGES/messages.mobin12482 -> 12068 bytes
-rw-r--r--searx/translations/pt/LC_MESSAGES/messages.po153
-rw-r--r--searx/translations/pt_BR/LC_MESSAGES/messages.mobin12417 -> 12006 bytes
-rw-r--r--searx/translations/pt_BR/LC_MESSAGES/messages.po155
-rw-r--r--searx/translations/ro/LC_MESSAGES/messages.mobin12819 -> 12380 bytes
-rw-r--r--searx/translations/ro/LC_MESSAGES/messages.po153
-rw-r--r--searx/translations/ru/LC_MESSAGES/messages.mobin15970 -> 15439 bytes
-rw-r--r--searx/translations/ru/LC_MESSAGES/messages.po151
-rw-r--r--searx/translations/sk/LC_MESSAGES/messages.mobin12395 -> 10764 bytes
-rw-r--r--searx/translations/sk/LC_MESSAGES/messages.po153
-rw-r--r--searx/translations/sl/LC_MESSAGES/messages.mobin12146 -> 11768 bytes
-rw-r--r--searx/translations/sl/LC_MESSAGES/messages.po149
-rw-r--r--searx/translations/sr/LC_MESSAGES/messages.mobin15151 -> 14618 bytes
-rw-r--r--searx/translations/sr/LC_MESSAGES/messages.po154
-rw-r--r--searx/translations/sv/LC_MESSAGES/messages.mobin12035 -> 11633 bytes
-rw-r--r--searx/translations/sv/LC_MESSAGES/messages.po159
-rw-r--r--searx/translations/ta/LC_MESSAGES/messages.mobin0 -> 16267 bytes
-rw-r--r--searx/translations/ta/LC_MESSAGES/messages.po1003
-rw-r--r--searx/translations/te/LC_MESSAGES/messages.mobin13839 -> 6648 bytes
-rw-r--r--searx/translations/te/LC_MESSAGES/messages.po149
-rw-r--r--searx/translations/tr/LC_MESSAGES/messages.mobin12108 -> 7189 bytes
-rw-r--r--searx/translations/tr/LC_MESSAGES/messages.po149
-rw-r--r--searx/translations/uk/LC_MESSAGES/messages.mobin15440 -> 13914 bytes
-rw-r--r--searx/translations/uk/LC_MESSAGES/messages.po152
-rw-r--r--searx/translations/vi/LC_MESSAGES/messages.mobin13433 -> 12934 bytes
-rw-r--r--searx/translations/vi/LC_MESSAGES/messages.po151
-rw-r--r--searx/translations/zh_CN/LC_MESSAGES/messages.mobin11590 -> 11157 bytes
-rw-r--r--searx/translations/zh_CN/LC_MESSAGES/messages.po159
-rw-r--r--searx/translations/zh_Hant_TW/LC_MESSAGES/messages.mobin11622 -> 11622 bytes
-rw-r--r--searx/translations/zh_TW/LC_MESSAGES/messages.mobin11608 -> 11162 bytes
-rw-r--r--searx/translations/zh_TW/LC_MESSAGES/messages.po156
-rw-r--r--searx/utils.py84
-rw-r--r--searx/version.py2
-rw-r--r--searx/webapp.py92
227 files changed, 14457 insertions, 5441 deletions
diff --git a/searx/__init__.py b/searx/__init__.py
index 4d7b2a8d3..2f3ebfcfe 100644
--- a/searx/__init__.py
+++ b/searx/__init__.py
@@ -38,6 +38,7 @@ def check_settings_yml(file_name):
else:
return None
+
# find location of settings.yml
if 'SEARX_SETTINGS_PATH' in environ:
# if possible set path to settings using the
@@ -91,3 +92,5 @@ logger.info('Initialisation done')
if 'SEARX_SECRET' in environ:
settings['server']['secret_key'] = environ['SEARX_SECRET']
+if 'SEARX_BIND_ADDRESS' in environ:
+ settings['server']['bind_address'] = environ['SEARX_BIND_ADDRESS']
diff --git a/searx/answerers/random/answerer.py b/searx/answerers/random/answerer.py
index b6e8422ad..2dfb08804 100644
--- a/searx/answerers/random/answerer.py
+++ b/searx/answerers/random/answerer.py
@@ -70,4 +70,4 @@ def answer(query):
def self_info():
return {'name': gettext('Random value generator'),
'description': gettext('Generate different random values'),
- 'examples': [u'random {}'.format(x) for x in random_types]}
+ 'examples': [u'random {}'.format(x.decode('utf-8')) for x in random_types]}
diff --git a/searx/autocomplete.py b/searx/autocomplete.py
index f8a45b3ec..ff8958500 100644
--- a/searx/autocomplete.py
+++ b/searx/autocomplete.py
@@ -16,6 +16,7 @@ along with searx. If not, see < http://www.gnu.org/licenses/ >.
'''
+import sys
from lxml import etree
from json import loads
from searx import settings
@@ -26,6 +27,9 @@ from searx.engines import (
from searx.poolrequests import get as http_get
from searx.url_utils import urlencode
+if sys.version_info[0] == 3:
+ unicode = str
+
def get(*args, **kwargs):
if 'timeout' not in kwargs:
diff --git a/searx/data/useragents.json b/searx/data/useragents.json
index 850bc418a..abb81000c 100644
--- a/searx/data/useragents.json
+++ b/searx/data/useragents.json
@@ -1,14 +1,15 @@
{
- "ua": "Mozilla/5.0 ({os}; rv:{version}) Gecko/20100101 Firefox/{version}",
"versions": [
- "61.0.1",
- "61.0",
- "60.0.2",
- "60.0.1",
- "60.0"
+ "70.0.1",
+ "70.0",
+ "69.0.3",
+ "69.0.2",
+ "69.0.1",
+ "69.0"
],
"os": [
"Windows NT 10; WOW64",
"X11; Linux x86_64"
- ]
+ ],
+ "ua": "Mozilla/5.0 ({os}; rv:{version}) Gecko/20100101 Firefox/{version}"
} \ No newline at end of file
diff --git a/searx/engines/__init__.py b/searx/engines/__init__.py
index f32b57202..9ccef8b54 100644
--- a/searx/engines/__init__.py
+++ b/searx/engines/__init__.py
@@ -27,7 +27,7 @@ from json import loads
from requests import get
from searx import settings
from searx import logger
-from searx.utils import load_module, match_language
+from searx.utils import load_module, match_language, get_engine_from_settings
logger = logger.getChild('engines')
@@ -53,15 +53,22 @@ engine_default_args = {'paging': False,
'disabled': False,
'suspend_end_time': 0,
'continuous_errors': 0,
- 'time_range_support': False}
+ 'time_range_support': False,
+ 'offline': False,
+ 'tokens': []}
def load_engine(engine_data):
-
- if '_' in engine_data['name']:
- logger.error('Engine name conains underscore: "{}"'.format(engine_data['name']))
+ engine_name = engine_data['name']
+ if '_' in engine_name:
+ logger.error('Engine name contains underscore: "{}"'.format(engine_name))
sys.exit(1)
+ if engine_name.lower() != engine_name:
+ logger.warn('Engine name is not lowercase: "{}", converting to lowercase'.format(engine_name))
+ engine_name = engine_name.lower()
+ engine_data['name'] = engine_name
+
engine_module = engine_data['engine']
try:
@@ -123,14 +130,16 @@ def load_engine(engine_data):
engine.stats = {
'result_count': 0,
'search_count': 0,
- 'page_load_time': 0,
- 'page_load_count': 0,
'engine_time': 0,
'engine_time_count': 0,
'score_count': 0,
'errors': 0
}
+ if not engine.offline:
+ engine.stats['page_load_time'] = 0
+ engine.stats['page_load_count'] = 0
+
for category_name in engine.categories:
categories.setdefault(category_name, []).append(engine)
@@ -152,7 +161,7 @@ def to_percentage(stats, maxvalue):
return stats
-def get_engines_stats():
+def get_engines_stats(preferences):
# TODO refactor
pageloads = []
engine_times = []
@@ -163,16 +172,15 @@ def get_engines_stats():
max_pageload = max_engine_times = max_results = max_score = max_errors = max_score_per_result = 0 # noqa
for engine in engines.values():
+ if not preferences.validate_token(engine):
+ continue
+
if engine.stats['search_count'] == 0:
continue
+
results_num = \
engine.stats['result_count'] / float(engine.stats['search_count'])
- if engine.stats['page_load_count'] != 0:
- load_times = engine.stats['page_load_time'] / float(engine.stats['page_load_count']) # noqa
- else:
- load_times = 0
-
if engine.stats['engine_time_count'] != 0:
this_engine_time = engine.stats['engine_time'] / float(engine.stats['engine_time_count']) # noqa
else:
@@ -184,14 +192,19 @@ def get_engines_stats():
else:
score = score_per_result = 0.0
- max_pageload = max(load_times, max_pageload)
+ if not engine.offline:
+ load_times = 0
+ if engine.stats['page_load_count'] != 0:
+ load_times = engine.stats['page_load_time'] / float(engine.stats['page_load_count']) # noqa
+ max_pageload = max(load_times, max_pageload)
+ pageloads.append({'avg': load_times, 'name': engine.name})
+
max_engine_times = max(this_engine_time, max_engine_times)
max_results = max(results_num, max_results)
max_score = max(score, max_score)
max_score_per_result = max(score_per_result, max_score_per_result)
max_errors = max(max_errors, engine.stats['errors'])
- pageloads.append({'avg': load_times, 'name': engine.name})
engine_times.append({'avg': this_engine_time, 'name': engine.name})
results.append({'avg': results_num, 'name': engine.name})
scores.append({'avg': score, 'name': engine.name})
@@ -248,12 +261,14 @@ def load_engines(engine_list):
def initialize_engines(engine_list):
load_engines(engine_list)
+
+ def engine_init(engine_name, init_fn):
+ init_fn(get_engine_from_settings(engine_name))
+ logger.debug('%s engine: Initialized', engine_name)
+
for engine_name, engine in engines.items():
if hasattr(engine, 'init'):
init_fn = getattr(engine, 'init')
-
- def engine_init():
- init_fn()
- logger.debug('%s engine initialized', engine_name)
- logger.debug('Starting background initialization of %s engine', engine_name)
- threading.Thread(target=engine_init).start()
+ if init_fn:
+ logger.debug('%s engine: Starting background initialization', engine_name)
+ threading.Thread(target=engine_init, args=(engine_name, init_fn)).start()
diff --git a/searx/engines/arxiv.py b/searx/engines/arxiv.py
index 5ef84f0c1..e3c871d17 100644
--- a/searx/engines/arxiv.py
+++ b/searx/engines/arxiv.py
@@ -17,6 +17,7 @@ from searx.url_utils import urlencode
categories = ['science']
+paging = True
base_url = 'http://export.arxiv.org/api/query?search_query=all:'\
+ '{query}&start={offset}&max_results={number_of_results}'
@@ -29,7 +30,7 @@ def request(query, params):
# basic search
offset = (params['pageno'] - 1) * number_of_results
- string_args = dict(query=query,
+ string_args = dict(query=query.decode('utf-8'),
offset=offset,
number_of_results=number_of_results)
diff --git a/searx/engines/bing.py b/searx/engines/bing.py
index 742379c1a..b193f7c60 100644
--- a/searx/engines/bing.py
+++ b/searx/engines/bing.py
@@ -13,10 +13,14 @@
@todo publishedDate
"""
+import re
from lxml import html
+from searx import logger, utils
from searx.engines.xpath import extract_text
from searx.url_utils import urlencode
-from searx.utils import match_language, gen_useragent
+from searx.utils import match_language, gen_useragent, eval_xpath
+
+logger = logger.getChild('bing engine')
# engine dependent config
categories = ['general']
@@ -30,9 +34,13 @@ base_url = 'https://www.bing.com/'
search_string = 'search?{query}&first={offset}'
+def _get_offset_from_pageno(pageno):
+ return (pageno - 1) * 10 + 1
+
+
# do search-request
def request(query, params):
- offset = (params['pageno'] - 1) * 10 + 1
+ offset = _get_offset_from_pageno(params.get('pageno', 0))
if params['language'] == 'all':
lang = 'EN'
@@ -47,29 +55,21 @@ def request(query, params):
params['url'] = base_url + search_path
- params['headers']['User-Agent'] = gen_useragent('Windows NT 6.3; WOW64')
-
return params
# get response from search-request
def response(resp):
results = []
+ result_len = 0
dom = html.fromstring(resp.text)
-
- try:
- results.append({'number_of_results': int(dom.xpath('//span[@class="sb_count"]/text()')[0]
- .split()[0].replace(',', ''))})
- except:
- pass
-
# parse results
- for result in dom.xpath('//div[@class="sa_cc"]'):
- link = result.xpath('.//h3/a')[0]
+ for result in eval_xpath(dom, '//div[@class="sa_cc"]'):
+ link = eval_xpath(result, './/h3/a')[0]
url = link.attrib.get('href')
title = extract_text(link)
- content = extract_text(result.xpath('.//p'))
+ content = extract_text(eval_xpath(result, './/p'))
# append result
results.append({'url': url,
@@ -77,18 +77,34 @@ def response(resp):
'content': content})
# parse results again if nothing is found yet
- for result in dom.xpath('//li[@class="b_algo"]'):
- link = result.xpath('.//h2/a')[0]
+ for result in eval_xpath(dom, '//li[@class="b_algo"]'):
+ link = eval_xpath(result, './/h2/a')[0]
url = link.attrib.get('href')
title = extract_text(link)
- content = extract_text(result.xpath('.//p'))
+ content = extract_text(eval_xpath(result, './/p'))
# append result
results.append({'url': url,
'title': title,
'content': content})
- # return results
+ try:
+ result_len_container = "".join(eval_xpath(dom, '//span[@class="sb_count"]//text()'))
+ if "-" in result_len_container:
+ # Remove the part "from-to" for paginated request ...
+ result_len_container = result_len_container[result_len_container.find("-") * 2 + 2:]
+
+ result_len_container = re.sub('[^0-9]', '', result_len_container)
+ if len(result_len_container) > 0:
+ result_len = int(result_len_container)
+ except Exception as e:
+ logger.debug('result error :\n%s', e)
+ pass
+
+ if result_len and _get_offset_from_pageno(resp.search_params.get("pageno", 0)) > result_len:
+ return []
+
+ results.append({'number_of_results': result_len})
return results
@@ -96,9 +112,9 @@ def response(resp):
def _fetch_supported_languages(resp):
supported_languages = []
dom = html.fromstring(resp.text)
- options = dom.xpath('//div[@id="limit-languages"]//input')
+ options = eval_xpath(dom, '//div[@id="limit-languages"]//input')
for option in options:
- code = option.xpath('./@id')[0].replace('_', '-')
+ code = eval_xpath(option, './@id')[0].replace('_', '-')
if code == 'nb':
code = 'no'
supported_languages.append(code)
diff --git a/searx/engines/bing_images.py b/searx/engines/bing_images.py
index e2495200c..44e2c3bbc 100644
--- a/searx/engines/bing_images.py
+++ b/searx/engines/bing_images.py
@@ -10,9 +10,6 @@
@stable no (HTML can change)
@parse url, title, img_src
- @todo currently there are up to 35 images receive per page,
- because bing does not parse count=10.
- limited response to 10 images
"""
from lxml import html
@@ -28,10 +25,15 @@ safesearch = True
time_range_support = True
language_support = True
supported_languages_url = 'https://www.bing.com/account/general'
+number_of_results = 28
# search-url
base_url = 'https://www.bing.com/'
-search_string = 'images/search?{query}&count=10&first={offset}'
+search_string = 'images/search'\
+ '?{query}'\
+ '&count={count}'\
+ '&first={first}'\
+ '&FORM=IBASEP'
time_range_string = '&qft=+filterui:age-lt{interval}'
time_range_dict = {'day': '1440',
'week': '10080',
@@ -44,16 +46,14 @@ safesearch_types = {2: 'STRICT',
0: 'OFF'}
-_quote_keys_regex = re.compile('({|,)([a-z][a-z0-9]*):(")', re.I | re.U)
-
-
# do search-request
def request(query, params):
- offset = (params['pageno'] - 1) * 10 + 1
+ offset = ((params['pageno'] - 1) * number_of_results) + 1
search_path = search_string.format(
query=urlencode({'q': query}),
- offset=offset)
+ count=number_of_results,
+ first=offset)
language = match_language(params['language'], supported_languages, language_aliases).lower()
@@ -77,32 +77,31 @@ def response(resp):
dom = html.fromstring(resp.text)
# parse results
- for result in dom.xpath('//div[@id="mmComponent_images_1"]/ul/li/div/div[@class="imgpt"]'):
- link = result.xpath('./a')[0]
-
- # TODO find actual title
- title = link.xpath('.//img/@alt')[0]
-
- # parse json-data (it is required to add a space, to make it parsable)
- json_data = loads(_quote_keys_regex.sub(r'\1"\2": \3', link.attrib.get('m')))
-
- url = json_data.get('purl')
- img_src = json_data.get('murl')
- thumbnail = json_data.get('turl')
-
- # append result
- results.append({'template': 'images.html',
- 'url': url,
- 'title': title,
- 'content': '',
- 'thumbnail_src': thumbnail,
- 'img_src': img_src})
-
- # TODO stop parsing if 10 images are found
- # if len(results) >= 10:
- # break
+ for result in dom.xpath('//div[@class="imgpt"]'):
+
+ img_format = result.xpath('./div[contains(@class, "img_info")]/span/text()')[0]
+ # Microsoft seems to experiment with this code so don't make the path too specific,
+ # just catch the text section for the first anchor in img_info assuming this to be
+ # the originating site.
+ source = result.xpath('./div[contains(@class, "img_info")]//a/text()')[0]
+
+ try:
+ m = loads(result.xpath('./a/@m')[0])
+
+ # strip 'Unicode private use area' highlighting, they render to Tux
+ # the Linux penguin and a standing diamond on my machine...
+ title = m.get('t', '').replace(u'\ue000', '').replace(u'\ue001', '')
+ results.append({'template': 'images.html',
+ 'url': m['purl'],
+ 'thumbnail_src': m['turl'],
+ 'img_src': m['murl'],
+ 'content': '',
+ 'title': title,
+ 'source': source,
+ 'img_format': img_format})
+ except:
+ continue
- # return results
return results
diff --git a/searx/engines/bing_videos.py b/searx/engines/bing_videos.py
index bf17f9168..f1e636819 100644
--- a/searx/engines/bing_videos.py
+++ b/searx/engines/bing_videos.py
@@ -13,7 +13,6 @@
from json import loads
from lxml import html
from searx.engines.bing_images import _fetch_supported_languages, supported_languages_url
-from searx.engines.xpath import extract_text
from searx.url_utils import urlencode
from searx.utils import match_language
@@ -22,11 +21,16 @@ categories = ['videos']
paging = True
safesearch = True
time_range_support = True
-number_of_results = 10
+number_of_results = 28
language_support = True
-search_url = 'https://www.bing.com/videos/asyncv2?{query}&async=content&'\
- 'first={offset}&count={number_of_results}&CW=1366&CH=25&FORM=R5VR5'
+base_url = 'https://www.bing.com/'
+search_string = 'videos/search'\
+ '?{query}'\
+ '&count={count}'\
+ '&first={first}'\
+ '&scope=video'\
+ '&FORM=QBLH'
time_range_string = '&qft=+filterui:videoage-lt{interval}'
time_range_dict = {'day': '1440',
'week': '10080',
@@ -41,7 +45,12 @@ safesearch_types = {2: 'STRICT',
# do search-request
def request(query, params):
- offset = (params['pageno'] - 1) * 10 + 1
+ offset = ((params['pageno'] - 1) * number_of_results) + 1
+
+ search_path = search_string.format(
+ query=urlencode({'q': query}),
+ count=number_of_results,
+ first=offset)
# safesearch cookie
params['cookies']['SRCHHPGUSR'] = \
@@ -52,9 +61,7 @@ def request(query, params):
params['cookies']['_EDGE_S'] = 'mkt=' + language + '&F=1'
# query and paging
- params['url'] = search_url.format(query=urlencode({'q': query}),
- offset=offset,
- number_of_results=number_of_results)
+ params['url'] = base_url + search_path
# time range
if params['time_range'] in time_range_dict:
@@ -70,19 +77,18 @@ def response(resp):
dom = html.fromstring(resp.text)
for result in dom.xpath('//div[@class="dg_u"]'):
- url = result.xpath('./div[@class="mc_vtvc"]/a/@href')[0]
- url = 'https://bing.com' + url
- title = extract_text(result.xpath('./div/a/div/div[@class="mc_vtvc_title"]/@title'))
- content = extract_text(result.xpath('./div/a/div/div/div/div/text()'))
- thumbnail = result.xpath('./div/a/div/div/img/@src')[0]
-
- results.append({'url': url,
- 'title': title,
- 'content': content,
- 'thumbnail': thumbnail,
- 'template': 'videos.html'})
-
- if len(results) >= number_of_results:
- break
+ try:
+ metadata = loads(result.xpath('.//div[@class="vrhdata"]/@vrhm')[0])
+ info = ' - '.join(result.xpath('.//div[@class="mc_vtvc_meta_block"]//span/text()')).strip()
+ content = '{0} - {1}'.format(metadata['du'], info)
+ thumbnail = '{0}th?id={1}'.format(base_url, metadata['thid'])
+ results.append({'url': metadata['murl'],
+ 'thumbnail': thumbnail,
+ 'title': metadata.get('vt', ''),
+ 'content': content,
+ 'template': 'videos.html'})
+
+ except:
+ continue
return results
diff --git a/searx/engines/btdigg.py b/searx/engines/btdigg.py
index 40438673f..82eedc24b 100644
--- a/searx/engines/btdigg.py
+++ b/searx/engines/btdigg.py
@@ -1,7 +1,7 @@
"""
BTDigg (Videos, Music, Files)
- @website https://btdigg.org
+ @website https://btdig.com
@provide-api yes (on demand)
@using-api no
@@ -21,7 +21,7 @@ categories = ['videos', 'music', 'files']
paging = True
# search-url
-url = 'https://btdigg.org'
+url = 'https://btdig.com'
search_url = url + '/search?q={search_term}&p={pageno}'
@@ -39,7 +39,7 @@ def response(resp):
dom = html.fromstring(resp.text)
- search_res = dom.xpath('//div[@id="search_res"]/table/tr')
+ search_res = dom.xpath('//div[@class="one_result"]')
# return empty array if nothing is found
if not search_res:
@@ -47,46 +47,39 @@ def response(resp):
# parse results
for result in search_res:
- link = result.xpath('.//td[@class="torrent_name"]//a')[0]
+ link = result.xpath('.//div[@class="torrent_name"]//a')[0]
href = urljoin(url, link.attrib.get('href'))
title = extract_text(link)
- content = extract_text(result.xpath('.//pre[@class="snippet"]')[0])
- content = "<br />".join(content.split("\n"))
- filesize = result.xpath('.//span[@class="attr_val"]/text()')[0].split()[0]
- filesize_multiplier = result.xpath('.//span[@class="attr_val"]/text()')[0].split()[1]
- files = result.xpath('.//span[@class="attr_val"]/text()')[1]
- seed = result.xpath('.//span[@class="attr_val"]/text()')[2]
+ excerpt = result.xpath('.//div[@class="torrent_excerpt"]')[0]
+ content = html.tostring(excerpt, encoding='unicode', method='text', with_tail=False)
+ # it is better to emit <br/> instead of |, but html tags are verboten
+ content = content.strip().replace('\n', ' | ')
+ content = ' '.join(content.split())
- # convert seed to int if possible
- if seed.isdigit():
- seed = int(seed)
- else:
- seed = 0
-
- leech = 0
+ filesize = result.xpath('.//span[@class="torrent_size"]/text()')[0].split()[0]
+ filesize_multiplier = result.xpath('.//span[@class="torrent_size"]/text()')[0].split()[1]
+ files = (result.xpath('.//span[@class="torrent_files"]/text()') or ['1'])[0]
# convert filesize to byte if possible
filesize = get_torrent_size(filesize, filesize_multiplier)
# convert files to int if possible
- if files.isdigit():
+ try:
files = int(files)
- else:
+ except:
files = None
- magnetlink = result.xpath('.//td[@class="ttth"]//a')[0].attrib['href']
+ magnetlink = result.xpath('.//div[@class="torrent_magnet"]//a')[0].attrib['href']
# append result
results.append({'url': href,
'title': title,
'content': content,
- 'seed': seed,
- 'leech': leech,
'filesize': filesize,
'files': files,
'magnetlink': magnetlink,
'template': 'torrent.html'})
# return results sorted by seeder
- return sorted(results, key=itemgetter('seed'), reverse=True)
+ return results
diff --git a/searx/engines/dailymotion.py b/searx/engines/dailymotion.py
index 06a9c41f3..1038e64bf 100644
--- a/searx/engines/dailymotion.py
+++ b/searx/engines/dailymotion.py
@@ -15,7 +15,7 @@
from json import loads
from datetime import datetime
from searx.url_utils import urlencode
-from searx.utils import match_language
+from searx.utils import match_language, html_to_text
# engine dependent config
categories = ['videos']
@@ -26,7 +26,7 @@ language_support = True
# see http://www.dailymotion.com/doc/api/obj-video.html
search_url = 'https://api.dailymotion.com/videos?fields=created_time,title,description,duration,url,thumbnail_360_url,id&sort=relevance&limit=5&page={pageno}&{query}' # noqa
embedded_url = '<iframe frameborder="0" width="540" height="304" ' +\
- 'data-src="//www.dailymotion.com/embed/video/{videoid}" allowfullscreen></iframe>'
+ 'data-src="https://www.dailymotion.com/embed/video/{videoid}" allowfullscreen></iframe>'
supported_languages_url = 'https://api.dailymotion.com/languages'
@@ -59,7 +59,7 @@ def response(resp):
for res in search_res['list']:
title = res['title']
url = res['url']
- content = res['description']
+ content = html_to_text(res['description'])
thumbnail = res['thumbnail_360_url']
publishedDate = datetime.fromtimestamp(res['created_time'], None)
embedded = embedded_url.format(videoid=res['id'])
diff --git a/searx/engines/deviantart.py b/searx/engines/deviantart.py
index bb85c6dc5..a0e27e622 100644
--- a/searx/engines/deviantart.py
+++ b/searx/engines/deviantart.py
@@ -24,7 +24,7 @@ time_range_support = True
# search-url
base_url = 'https://www.deviantart.com/'
-search_url = base_url + 'browse/all/?offset={offset}&{query}'
+search_url = base_url + 'search?page={page}&{query}'
time_range_url = '&order={range}'
time_range_dict = {'day': 11,
@@ -37,9 +37,7 @@ def request(query, params):
if params['time_range'] and params['time_range'] not in time_range_dict:
return params
- offset = (params['pageno'] - 1) * 24
-
- params['url'] = search_url.format(offset=offset,
+ params['url'] = search_url.format(page=params['pageno'],
query=urlencode({'q': query}))
if params['time_range'] in time_range_dict:
params['url'] += time_range_url.format(range=time_range_dict[params['time_range']])
@@ -57,28 +55,27 @@ def response(resp):
dom = html.fromstring(resp.text)
- regex = re.compile(r'\/200H\/')
-
# parse results
- for result in dom.xpath('.//span[@class="thumb wide"]'):
- link = result.xpath('.//a[@class="torpedo-thumb-link"]')[0]
- url = link.attrib.get('href')
- title = extract_text(result.xpath('.//span[@class="title"]'))
- thumbnail_src = link.xpath('.//img')[0].attrib.get('src')
- img_src = regex.sub('/', thumbnail_src)
-
- # http to https, remove domain sharding
- thumbnail_src = re.sub(r"https?://(th|fc)\d+.", "https://th01.", thumbnail_src)
- thumbnail_src = re.sub(r"http://", "https://", thumbnail_src)
-
- url = re.sub(r"http://(.*)\.deviantart\.com/", "https://\\1.deviantart.com/", url)
-
- # append result
- results.append({'url': url,
- 'title': title,
- 'img_src': img_src,
- 'thumbnail_src': thumbnail_src,
- 'template': 'images.html'})
+ for row in dom.xpath('//div[contains(@data-hook, "content_row")]'):
+ for result in row.xpath('./div'):
+ link = result.xpath('.//a[@data-hook="deviation_link"]')[0]
+ url = link.attrib.get('href')
+ title = link.attrib.get('title')
+ thumbnail_src = result.xpath('.//img')[0].attrib.get('src')
+ img_src = thumbnail_src
+
+ # http to https, remove domain sharding
+ thumbnail_src = re.sub(r"https?://(th|fc)\d+.", "https://th01.", thumbnail_src)
+ thumbnail_src = re.sub(r"http://", "https://", thumbnail_src)
+
+ url = re.sub(r"http://(.*)\.deviantart\.com/", "https://\\1.deviantart.com/", url)
+
+ # append result
+ results.append({'url': url,
+ 'title': title,
+ 'img_src': img_src,
+ 'thumbnail_src': thumbnail_src,
+ 'template': 'images.html'})
# return results
return results
diff --git a/searx/engines/dictzone.py b/searx/engines/dictzone.py
index 7cc44df73..423af0971 100644
--- a/searx/engines/dictzone.py
+++ b/searx/engines/dictzone.py
@@ -11,11 +11,11 @@
import re
from lxml import html
-from searx.utils import is_valid_lang
+from searx.utils import is_valid_lang, eval_xpath
from searx.url_utils import urljoin
categories = ['general']
-url = u'http://dictzone.com/{from_lang}-{to_lang}-dictionary/{query}'
+url = u'https://dictzone.com/{from_lang}-{to_lang}-dictionary/{query}'
weight = 100
parser_re = re.compile(b'.*?([a-z]+)-([a-z]+) ([^ ]+)$', re.I)
@@ -47,14 +47,14 @@ def response(resp):
dom = html.fromstring(resp.text)
- for k, result in enumerate(dom.xpath(results_xpath)[1:]):
+ for k, result in enumerate(eval_xpath(dom, results_xpath)[1:]):
try:
- from_result, to_results_raw = result.xpath('./td')
+ from_result, to_results_raw = eval_xpath(result, './td')
except:
continue
to_results = []
- for to_result in to_results_raw.xpath('./p/a'):
+ for to_result in eval_xpath(to_results_raw, './p/a'):
t = to_result.text_content()
if t.strip():
to_results.append(to_result.text_content())
diff --git a/searx/engines/digg.py b/searx/engines/digg.py
index 4369ccb84..073410eb0 100644
--- a/searx/engines/digg.py
+++ b/searx/engines/digg.py
@@ -15,7 +15,8 @@ import string
from dateutil import parser
from json import loads
from lxml import html
-from searx.url_utils import quote_plus
+from searx.url_utils import urlencode
+from datetime import datetime
# engine dependent config
categories = ['news', 'social media']
@@ -23,7 +24,7 @@ paging = True
# search-url
base_url = 'https://digg.com/'
-search_url = base_url + 'api/search/{query}.json?position={position}&format=html'
+search_url = base_url + 'api/search/?{query}&from={position}&size=20&format=html'
# specific xpath variables
results_xpath = '//article'
@@ -38,9 +39,9 @@ digg_cookie_chars = string.ascii_uppercase + string.ascii_lowercase +\
# do search-request
def request(query, params):
- offset = (params['pageno'] - 1) * 10
+ offset = (params['pageno'] - 1) * 20
params['url'] = search_url.format(position=offset,
- query=quote_plus(query))
+ query=urlencode({'q': query}))
params['cookies']['frontend.auid'] = ''.join(random.choice(
digg_cookie_chars) for _ in range(22))
return params
@@ -52,30 +53,17 @@ def response(resp):
search_result = loads(resp.text)
- if 'html' not in search_result or search_result['html'] == '':
- return results
-
- dom = html.fromstring(search_result['html'])
-
# parse results
- for result in dom.xpath(results_xpath):
- url = result.attrib.get('data-contenturl')
- thumbnail = result.xpath('.//img')[0].attrib.get('src')
- title = ''.join(result.xpath(title_xpath))
- content = ''.join(result.xpath(content_xpath))
- pubdate = result.xpath(pubdate_xpath)[0].attrib.get('datetime')
- publishedDate = parser.parse(pubdate)
-
- # http to https
- thumbnail = thumbnail.replace("http://static.digg.com", "https://static.digg.com")
+ for result in search_result['mapped']:
+ published = datetime.strptime(result['created']['ISO'], "%Y-%m-%d %H:%M:%S")
# append result
- results.append({'url': url,
- 'title': title,
- 'content': content,
+ results.append({'url': result['url'],
+ 'title': result['title'],
+ 'content': result['excerpt'],
'template': 'videos.html',
- 'publishedDate': publishedDate,
- 'thumbnail': thumbnail})
+ 'publishedDate': published,
+ 'thumbnail': result['images']['thumbImage']})
# return results
return results
diff --git a/searx/engines/doku.py b/searx/engines/doku.py
index a391be444..d20e66026 100644
--- a/searx/engines/doku.py
+++ b/searx/engines/doku.py
@@ -11,6 +11,7 @@
from lxml.html import fromstring
from searx.engines.xpath import extract_text
+from searx.utils import eval_xpath
from searx.url_utils import urlencode
# engine dependent config
@@ -45,16 +46,16 @@ def response(resp):
# parse results
# Quickhits
- for r in doc.xpath('//div[@class="search_quickresult"]/ul/li'):
+ for r in eval_xpath(doc, '//div[@class="search_quickresult"]/ul/li'):
try:
- res_url = r.xpath('.//a[@class="wikilink1"]/@href')[-1]
+ res_url = eval_xpath(r, './/a[@class="wikilink1"]/@href')[-1]
except:
continue
if not res_url:
continue
- title = extract_text(r.xpath('.//a[@class="wikilink1"]/@title'))
+ title = extract_text(eval_xpath(r, './/a[@class="wikilink1"]/@title'))
# append result
results.append({'title': title,
@@ -62,13 +63,13 @@ def response(resp):
'url': base_url + res_url})
# Search results
- for r in doc.xpath('//dl[@class="search_results"]/*'):
+ for r in eval_xpath(doc, '//dl[@class="search_results"]/*'):
try:
if r.tag == "dt":
- res_url = r.xpath('.//a[@class="wikilink1"]/@href')[-1]
- title = extract_text(r.xpath('.//a[@class="wikilink1"]/@title'))
+ res_url = eval_xpath(r, './/a[@class="wikilink1"]/@href')[-1]
+ title = extract_text(eval_xpath(r, './/a[@class="wikilink1"]/@title'))
elif r.tag == "dd":
- content = extract_text(r.xpath('.'))
+ content = extract_text(eval_xpath(r, '.'))
# append result
results.append({'title': title,
diff --git a/searx/engines/duckduckgo.py b/searx/engines/duckduckgo.py
index fb8f523ac..0d2c0af2d 100644
--- a/searx/engines/duckduckgo.py
+++ b/searx/engines/duckduckgo.py
@@ -18,7 +18,7 @@ from json import loads
from searx.engines.xpath import extract_text
from searx.poolrequests import get
from searx.url_utils import urlencode
-from searx.utils import match_language
+from searx.utils import match_language, eval_xpath
# engine dependent config
categories = ['general']
@@ -65,21 +65,36 @@ def get_region_code(lang, lang_list=[]):
def request(query, params):
- if params['time_range'] and params['time_range'] not in time_range_dict:
+ if params['time_range'] not in (None, 'None', '') and params['time_range'] not in time_range_dict:
return params
offset = (params['pageno'] - 1) * 30
region_code = get_region_code(params['language'], supported_languages)
- if region_code:
- params['url'] = url.format(
- query=urlencode({'q': query, 'kl': region_code}), offset=offset, dc_param=offset)
+ params['url'] = 'https://duckduckgo.com/html/'
+ if params['pageno'] > 1:
+ params['method'] = 'POST'
+ params['data']['q'] = query
+ params['data']['s'] = offset
+ params['data']['dc'] = 30
+ params['data']['nextParams'] = ''
+ params['data']['v'] = 'l'
+ params['data']['o'] = 'json'
+ params['data']['api'] = '/d.js'
+ if params['time_range'] in time_range_dict:
+ params['data']['df'] = time_range_dict[params['time_range']]
+ if region_code:
+ params['data']['kl'] = region_code
else:
- params['url'] = url.format(
- query=urlencode({'q': query}), offset=offset, dc_param=offset)
+ if region_code:
+ params['url'] = url.format(
+ query=urlencode({'q': query, 'kl': region_code}), offset=offset, dc_param=offset)
+ else:
+ params['url'] = url.format(
+ query=urlencode({'q': query}), offset=offset, dc_param=offset)
- if params['time_range'] in time_range_dict:
- params['url'] += time_range_url.format(range=time_range_dict[params['time_range']])
+ if params['time_range'] in time_range_dict:
+ params['url'] += time_range_url.format(range=time_range_dict[params['time_range']])
return params
@@ -91,17 +106,19 @@ def response(resp):
doc = fromstring(resp.text)
# parse results
- for r in doc.xpath(result_xpath):
+ for i, r in enumerate(eval_xpath(doc, result_xpath)):
+ if i >= 30:
+ break
try:
- res_url = r.xpath(url_xpath)[-1]
+ res_url = eval_xpath(r, url_xpath)[-1]
except:
continue
if not res_url:
continue
- title = extract_text(r.xpath(title_xpath))
- content = extract_text(r.xpath(content_xpath))
+ title = extract_text(eval_xpath(r, title_xpath))
+ content = extract_text(eval_xpath(r, content_xpath))
# append result
results.append({'title': title,
diff --git a/searx/engines/duckduckgo_definitions.py b/searx/engines/duckduckgo_definitions.py
index 957a13ea6..79d10c303 100644
--- a/searx/engines/duckduckgo_definitions.py
+++ b/searx/engines/duckduckgo_definitions.py
@@ -1,3 +1,14 @@
+"""
+DuckDuckGo (definitions)
+
+- `Instant Answer API`_
+- `DuckDuckGo query`_
+
+.. _Instant Answer API: https://duckduckgo.com/api
+.. _DuckDuckGo query: https://api.duckduckgo.com/?q=DuckDuckGo&format=json&pretty=1
+
+"""
+
import json
from lxml import html
from re import compile
@@ -25,7 +36,8 @@ def result_to_text(url, text, htmlResult):
def request(query, params):
params['url'] = url.format(query=urlencode({'q': query}))
language = match_language(params['language'], supported_languages, language_aliases)
- params['headers']['Accept-Language'] = language.split('-')[0]
+ language = language.split('-')[0]
+ params['headers']['Accept-Language'] = language
return params
@@ -43,8 +55,9 @@ def response(resp):
# add answer if there is one
answer = search_res.get('Answer', '')
- if answer != '':
- results.append({'answer': html_to_text(answer)})
+ if answer:
+ if search_res.get('AnswerType', '') not in ['calc']:
+ results.append({'answer': html_to_text(answer)})
# add infobox
if 'Definition' in search_res:
diff --git a/searx/engines/duden.py b/searx/engines/duden.py
index 881ff9d9c..cf2f1a278 100644
--- a/searx/engines/duden.py
+++ b/searx/engines/duden.py
@@ -11,7 +11,8 @@
from lxml import html, etree
import re
from searx.engines.xpath import extract_text
-from searx.url_utils import quote
+from searx.utils import eval_xpath
+from searx.url_utils import quote, urljoin
from searx import logger
categories = ['general']
@@ -20,7 +21,7 @@ language_support = False
# search-url
base_url = 'https://www.duden.de/'
-search_url = base_url + 'suchen/dudenonline/{query}?page={offset}'
+search_url = base_url + 'suchen/dudenonline/{query}?search_api_fulltext=&page={offset}'
def request(query, params):
@@ -35,7 +36,11 @@ def request(query, params):
'''
offset = (params['pageno'] - 1)
- params['url'] = search_url.format(offset=offset, query=quote(query))
+ if offset == 0:
+ search_url_fmt = base_url + 'suchen/dudenonline/{query}'
+ params['url'] = search_url_fmt.format(query=quote(query))
+ else:
+ params['url'] = search_url.format(offset=offset, query=quote(query))
return params
@@ -48,9 +53,9 @@ def response(resp):
dom = html.fromstring(resp.text)
try:
- number_of_results_string = re.sub('[^0-9]', '', dom.xpath(
- '//a[@class="active" and contains(@href,"/suchen/dudenonline")]/span/text()')[0]
- )
+ number_of_results_string =\
+ re.sub('[^0-9]', '',
+ eval_xpath(dom, '//a[@class="active" and contains(@href,"/suchen/dudenonline")]/span/text()')[0])
results.append({'number_of_results': int(number_of_results_string)})
@@ -58,13 +63,12 @@ def response(resp):
logger.debug("Couldn't read number of results.")
pass
- for result in dom.xpath('//section[@class="wide" and not(contains(@style,"overflow:hidden"))]'):
+ for result in eval_xpath(dom, '//section[not(contains(@class, "essay"))]'):
try:
- logger.debug("running for %s" % str(result))
- link = result.xpath('.//h2/a')[0]
- url = link.attrib.get('href')
- title = result.xpath('string(.//h2/a)')
- content = extract_text(result.xpath('.//p'))
+ url = eval_xpath(result, './/h2/a')[0].get('href')
+ url = urljoin(base_url, url)
+ title = eval_xpath(result, 'string(.//h2/a)').strip()
+ content = extract_text(eval_xpath(result, './/p'))
# append result
results.append({'url': url,
'title': title,
diff --git a/searx/engines/dummy-offline.py b/searx/engines/dummy-offline.py
new file mode 100644
index 000000000..13a9ecc01
--- /dev/null
+++ b/searx/engines/dummy-offline.py
@@ -0,0 +1,12 @@
+"""
+ Dummy Offline
+
+ @results one result
+ @stable yes
+"""
+
+
+def search(query, request_params):
+ return [{
+ 'result': 'this is what you get',
+ }]
diff --git a/searx/engines/fdroid.py b/searx/engines/fdroid.py
index a6b01a8ee..4066dc716 100644
--- a/searx/engines/fdroid.py
+++ b/searx/engines/fdroid.py
@@ -18,13 +18,13 @@ categories = ['files']
paging = True
# search-url
-base_url = 'https://f-droid.org/'
-search_url = base_url + 'repository/browse/?{query}'
+base_url = 'https://search.f-droid.org/'
+search_url = base_url + '?{query}'
# do search-request
def request(query, params):
- query = urlencode({'fdfilter': query, 'fdpage': params['pageno']})
+ query = urlencode({'q': query, 'page': params['pageno'], 'lang': ''})
params['url'] = search_url.format(query=query)
return params
@@ -35,17 +35,16 @@ def response(resp):
dom = html.fromstring(resp.text)
- for app in dom.xpath('//div[@id="appheader"]'):
- url = app.xpath('./ancestor::a/@href')[0]
- title = app.xpath('./p/span/text()')[0]
- img_src = app.xpath('.//img/@src')[0]
-
- content = extract_text(app.xpath('./p')[0])
- content = content.replace(title, '', 1).strip()
-
- results.append({'url': url,
- 'title': title,
- 'content': content,
- 'img_src': img_src})
+ for app in dom.xpath('//a[@class="package-header"]'):
+ app_url = app.xpath('./@href')[0]
+ app_title = extract_text(app.xpath('./div/h4[@class="package-name"]/text()'))
+ app_content = extract_text(app.xpath('./div/div/span[@class="package-summary"]')).strip() \
+ + ' - ' + extract_text(app.xpath('./div/div/span[@class="package-license"]')).strip()
+ app_img_src = app.xpath('./img[@class="package-icon"]/@src')[0]
+
+ results.append({'url': app_url,
+ 'title': app_title,
+ 'content': app_content,
+ 'img_src': app_img_src})
return results
diff --git a/searx/engines/flickr_noapi.py b/searx/engines/flickr_noapi.py
index 08f07f7ce..c8ee34f7a 100644
--- a/searx/engines/flickr_noapi.py
+++ b/searx/engines/flickr_noapi.py
@@ -17,7 +17,7 @@ from time import time
import re
from searx.engines import logger
from searx.url_utils import urlencode
-
+from searx.utils import ecma_unescape, html_to_text
logger = logger.getChild('flickr-noapi')
@@ -27,7 +27,7 @@ url = 'https://www.flickr.com/'
search_url = url + 'search?{query}&page={page}'
time_range_url = '&min_upload_date={start}&max_upload_date={end}'
photo_url = 'https://www.flickr.com/photos/{userid}/{photoid}'
-regex = re.compile(r"\"search-photos-lite-models\",\"photos\":(.*}),\"totalItems\":", re.DOTALL)
+modelexport_re = re.compile(r"^\s*modelExport:\s*({.*}),$", re.M)
image_sizes = ('o', 'k', 'h', 'b', 'c', 'z', 'n', 'm', 't', 'q', 's')
paging = True
@@ -57,40 +57,44 @@ def request(query, params):
def response(resp):
results = []
- matches = regex.search(resp.text)
+ matches = modelexport_re.search(resp.text)
if matches is None:
return results
match = matches.group(1)
- search_results = loads(match)
-
- if '_data' not in search_results:
- return []
+ model_export = loads(match)
- photos = search_results['_data']
+ if 'legend' not in model_export:
+ return results
- for photo in photos:
+ legend = model_export['legend']
- # In paged configuration, the first pages' photos
- # are represented by a None object
- if photo is None:
- continue
+ # handle empty page
+ if not legend or not legend[0]:
+ return results
+ for index in legend:
+ photo = model_export['main'][index[0]][int(index[1])][index[2]][index[3]][int(index[4])]
+ author = ecma_unescape(photo.get('realname', ''))
+ source = ecma_unescape(photo.get('username', '')) + ' @ Flickr'
+ title = ecma_unescape(photo.get('title', ''))
+ content = html_to_text(ecma_unescape(photo.get('description', '')))
img_src = None
# From the biggest to the lowest format
for image_size in image_sizes:
if image_size in photo['sizes']:
img_src = photo['sizes'][image_size]['url']
+ img_format = 'jpg ' \
+ + str(photo['sizes'][image_size]['width']) \
+ + 'x' \
+ + str(photo['sizes'][image_size]['height'])
break
if not img_src:
logger.debug('cannot find valid image size: {0}'.format(repr(photo)))
continue
- if 'ownerNsid' not in photo:
- continue
-
# For a bigger thumbnail, keep only the url_z, not the url_n
if 'n' in photo['sizes']:
thumbnail_src = photo['sizes']['n']['url']
@@ -99,19 +103,28 @@ def response(resp):
else:
thumbnail_src = img_src
- url = build_flickr_url(photo['ownerNsid'], photo['id'])
-
- title = photo.get('title', '')
-
- author = photo['username']
-
- # append result
- results.append({'url': url,
- 'title': title,
- 'img_src': img_src,
- 'thumbnail_src': thumbnail_src,
- 'content': '',
- 'author': author,
- 'template': 'images.html'})
+ if 'ownerNsid' not in photo:
+ # should not happen, disowned photo? Show it anyway
+ url = img_src
+ else:
+ url = build_flickr_url(photo['ownerNsid'], photo['id'])
+
+ result = {
+ 'url': url,
+ 'img_src': img_src,
+ 'thumbnail_src': thumbnail_src,
+ 'source': source,
+ 'img_format': img_format,
+ 'template': 'images.html'
+ }
+ try:
+ result['author'] = author
+ result['title'] = title
+ result['content'] = content
+ except:
+ result['author'] = ''
+ result['title'] = ''
+ result['content'] = ''
+ results.append(result)
return results
diff --git a/searx/engines/framalibre.py b/searx/engines/framalibre.py
index 146cdaeec..f3441fa5f 100644
--- a/searx/engines/framalibre.py
+++ b/searx/engines/framalibre.py
@@ -10,7 +10,10 @@
@parse url, title, content, thumbnail, img_src
"""
-from cgi import escape
+try:
+ from cgi import escape
+except:
+ from html import escape
from lxml import html
from searx.engines.xpath import extract_text
from searx.url_utils import urljoin, urlencode
diff --git a/searx/engines/genius.py b/searx/engines/genius.py
index b265e9d76..aa5afad9b 100644
--- a/searx/engines/genius.py
+++ b/searx/engines/genius.py
@@ -72,6 +72,7 @@ def parse_album(hit):
result.update({'content': 'Released: {}'.format(year)})
return result
+
parse = {'lyric': parse_lyric, 'song': parse_lyric, 'artist': parse_artist, 'album': parse_album}
diff --git a/searx/engines/gigablast.py b/searx/engines/gigablast.py
index a6aa5d718..2bb29a9fe 100644
--- a/searx/engines/gigablast.py
+++ b/searx/engines/gigablast.py
@@ -14,7 +14,9 @@ import random
from json import loads
from time import time
from lxml.html import fromstring
+from searx.poolrequests import get
from searx.url_utils import urlencode
+from searx.utils import eval_xpath
# engine dependent config
categories = ['general']
@@ -30,13 +32,9 @@ search_string = 'search?{query}'\
'&c=main'\
'&s={offset}'\
'&format=json'\
- '&qh=0'\
- '&qlang={lang}'\
+ '&langcountry={lang}'\
'&ff={safesearch}'\
- '&rxiec={rxieu}'\
- '&ulse={ulse}'\
- '&rand={rxikd}' # current unix timestamp
-
+ '&rand={rxikd}'
# specific xpath variables
results_xpath = '//response//result'
url_xpath = './/url'
@@ -45,9 +43,26 @@ content_xpath = './/sum'
supported_languages_url = 'https://gigablast.com/search?&rxikd=1'
+extra_param = '' # gigablast requires a random extra parameter
+# which can be extracted from the source code of the search page
+
+
+def parse_extra_param(text):
+ global extra_param
+ param_lines = [x for x in text.splitlines() if x.startswith('var url=') or x.startswith('url=url+')]
+ extra_param = ''
+ for l in param_lines:
+ extra_param += l.split("'")[1]
+ extra_param = extra_param.split('&')[-1]
+
+
+def init(engine_settings=None):
+ parse_extra_param(get('http://gigablast.com/search?c=main&qlangcountry=en-us&q=south&s=10').text)
+
# do search-request
def request(query, params):
+ print("EXTRAPARAM:", extra_param)
offset = (params['pageno'] - 1) * number_of_results
if params['language'] == 'all':
@@ -66,13 +81,11 @@ def request(query, params):
search_path = search_string.format(query=urlencode({'q': query}),
offset=offset,
number_of_results=number_of_results,
- rxikd=int(time() * 1000),
- rxieu=random.randint(1000000000, 9999999999),
- ulse=random.randint(100000000, 999999999),
lang=language,
+ rxikd=int(time() * 1000),
safesearch=safesearch)
- params['url'] = base_url + search_path
+ params['url'] = base_url + search_path + '&' + extra_param
return params
@@ -82,7 +95,11 @@ def response(resp):
results = []
# parse results
- response_json = loads(resp.text)
+ try:
+ response_json = loads(resp.text)
+ except:
+ parse_extra_param(resp.text)
+ raise Exception('extra param expired, please reload')
for result in response_json['results']:
# append result
@@ -98,9 +115,9 @@ def response(resp):
def _fetch_supported_languages(resp):
supported_languages = []
dom = fromstring(resp.text)
- links = dom.xpath('//span[@id="menu2"]/a')
+ links = eval_xpath(dom, '//span[@id="menu2"]/a')
for link in links:
- href = link.xpath('./@href')[0].split('lang%3A')
+ href = eval_xpath(link, './@href')[0].split('lang%3A')
if len(href) == 2:
code = href[1].split('_')
if len(code) == 2:
diff --git a/searx/engines/google.py b/searx/engines/google.py
index 03f0523e7..eed3a044e 100644
--- a/searx/engines/google.py
+++ b/searx/engines/google.py
@@ -14,7 +14,7 @@ from lxml import html, etree
from searx.engines.xpath import extract_text, extract_url
from searx import logger
from searx.url_utils import urlencode, urlparse, parse_qsl
-from searx.utils import match_language
+from searx.utils import match_language, eval_xpath
logger = logger.getChild('google engine')
@@ -107,13 +107,12 @@ images_path = '/images'
supported_languages_url = 'https://www.google.com/preferences?#languages'
# specific xpath variables
-results_xpath = '//div[@class="g"]'
-url_xpath = './/h3/a/@href'
-title_xpath = './/h3'
-content_xpath = './/span[@class="st"]'
-content_misc_xpath = './/div[@class="f slp"]'
-suggestion_xpath = '//p[@class="_Bmc"]'
-spelling_suggestion_xpath = '//a[@class="spell"]'
+results_xpath = '//div[contains(@class, "ZINbbc")]'
+url_xpath = './/div[@class="kCrYT"][1]/a/@href'
+title_xpath = './/div[@class="kCrYT"][1]/a/div[1]'
+content_xpath = './/div[@class="kCrYT"][2]//div[contains(@class, "BNeawe")]//div[contains(@class, "BNeawe")]'
+suggestion_xpath = '//div[contains(@class, "ZINbbc")][last()]//div[@class="rVLSBd"]/a//div[contains(@class, "BNeawe")]'
+spelling_suggestion_xpath = '//div[@id="scc"]//a'
# map : detail location
map_address_xpath = './/div[@class="s"]//table//td[2]/span/text()'
@@ -156,7 +155,7 @@ def parse_url(url_string, google_hostname):
# returns extract_text on the first result selected by the xpath or None
def extract_text_from_dom(result, xpath):
- r = result.xpath(xpath)
+ r = eval_xpath(result, xpath)
if len(r) > 0:
return extract_text(r[0])
return None
@@ -199,9 +198,6 @@ def request(query, params):
params['headers']['Accept-Language'] = language + ',' + language + '-' + country
params['headers']['Accept'] = 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8'
- # Force Internet Explorer 12 user agent to avoid loading the new UI that Searx can't parse
- params['headers']['User-Agent'] = "Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Trident/5.0)"
-
params['google_hostname'] = google_hostname
return params
@@ -226,21 +222,21 @@ def response(resp):
# convert the text to dom
dom = html.fromstring(resp.text)
- instant_answer = dom.xpath('//div[@id="_vBb"]//text()')
+ instant_answer = eval_xpath(dom, '//div[@id="_vBb"]//text()')
if instant_answer:
results.append({'answer': u' '.join(instant_answer)})
try:
- results_num = int(dom.xpath('//div[@id="resultStats"]//text()')[0]
+ results_num = int(eval_xpath(dom, '//div[@id="resultStats"]//text()')[0]
.split()[1].replace(',', ''))
results.append({'number_of_results': results_num})
except:
pass
# parse results
- for result in dom.xpath(results_xpath):
+ for result in eval_xpath(dom, results_xpath):
try:
- title = extract_text(result.xpath(title_xpath)[0])
- url = parse_url(extract_url(result.xpath(url_xpath), google_url), google_hostname)
+ title = extract_text(eval_xpath(result, title_xpath)[0])
+ url = parse_url(extract_url(eval_xpath(result, url_xpath), google_url), google_hostname)
parsed_url = urlparse(url, google_hostname)
# map result
@@ -249,7 +245,7 @@ def response(resp):
continue
# if parsed_url.path.startswith(maps_path) or parsed_url.netloc.startswith(map_hostname_start):
# print "yooooo"*30
- # x = result.xpath(map_near)
+ # x = eval_xpath(result, map_near)
# if len(x) > 0:
# # map : near the location
# results = results + parse_map_near(parsed_url, x, google_hostname)
@@ -273,9 +269,7 @@ def response(resp):
content = extract_text_from_dom(result, content_xpath)
if content is None:
continue
- content_misc = extract_text_from_dom(result, content_misc_xpath)
- if content_misc is not None:
- content = content_misc + "<br />" + content
+
# append result
results.append({'url': url,
'title': title,
@@ -286,11 +280,11 @@ def response(resp):
continue
# parse suggestion
- for suggestion in dom.xpath(suggestion_xpath):
+ for suggestion in eval_xpath(dom, suggestion_xpath):
# append suggestion
results.append({'suggestion': extract_text(suggestion)})
- for correction in dom.xpath(spelling_suggestion_xpath):
+ for correction in eval_xpath(dom, spelling_suggestion_xpath):
results.append({'correction': extract_text(correction)})
# return results
@@ -299,9 +293,9 @@ def response(resp):
def parse_images(result, google_hostname):
results = []
- for image in result.xpath(images_xpath):
- url = parse_url(extract_text(image.xpath(image_url_xpath)[0]), google_hostname)
- img_src = extract_text(image.xpath(image_img_src_xpath)[0])
+ for image in eval_xpath(result, images_xpath):
+ url = parse_url(extract_text(eval_xpath(image, image_url_xpath)[0]), google_hostname)
+ img_src = extract_text(eval_xpath(image, image_img_src_xpath)[0])
# append result
results.append({'url': url,
@@ -388,10 +382,10 @@ def attributes_to_html(attributes):
def _fetch_supported_languages(resp):
supported_languages = {}
dom = html.fromstring(resp.text)
- options = dom.xpath('//*[@id="langSec"]//input[@name="lr"]')
+ options = eval_xpath(dom, '//*[@id="langSec"]//input[@name="lr"]')
for option in options:
- code = option.xpath('./@value')[0].split('_')[-1]
- name = option.xpath('./@data-name')[0].title()
+ code = eval_xpath(option, './@value')[0].split('_')[-1]
+ name = eval_xpath(option, './@data-name')[0].title()
supported_languages[code] = {"name": name}
return supported_languages
diff --git a/searx/engines/google_images.py b/searx/engines/google_images.py
index d9a49e9cc..636913114 100644
--- a/searx/engines/google_images.py
+++ b/searx/engines/google_images.py
@@ -70,11 +70,21 @@ def response(resp):
try:
metadata = loads(result)
- img_format = "{0} {1}x{2}".format(metadata['ity'], str(metadata['ow']), str(metadata['oh']))
- source = "{0} ({1})".format(metadata['st'], metadata['isu'])
+
+ img_format = metadata.get('ity', '')
+ img_width = metadata.get('ow', '')
+ img_height = metadata.get('oh', '')
+ if img_width and img_height:
+ img_format += " {0}x{1}".format(img_width, img_height)
+
+ source = metadata.get('st', '')
+ source_url = metadata.get('isu', '')
+ if source_url:
+ source += " ({0})".format(source_url)
+
results.append({'url': metadata['ru'],
'title': metadata['pt'],
- 'content': metadata['s'],
+ 'content': metadata.get('s', ''),
'source': source,
'img_format': img_format,
'thumbnail_src': metadata['tu'],
diff --git a/searx/engines/google_videos.py b/searx/engines/google_videos.py
index 9a41b2dfa..fd6b2e3be 100644
--- a/searx/engines/google_videos.py
+++ b/searx/engines/google_videos.py
@@ -75,15 +75,17 @@ def response(resp):
# get thumbnails
script = str(dom.xpath('//script[contains(., "_setImagesSrc")]')[0].text)
- id = result.xpath('.//div[@class="s"]//img/@id')[0]
- thumbnails_data = re.findall('s=\'(.*?)(?:\\\\[a-z,1-9,\\\\]+\'|\')\;var ii=\[(?:|[\'vidthumb\d+\',]+)\'' + id,
- script)
- tmp = []
- if len(thumbnails_data) != 0:
- tmp = re.findall('(data:image/jpeg;base64,[a-z,A-Z,0-9,/,\+]+)', thumbnails_data[0])
- thumbnail = ''
- if len(tmp) != 0:
- thumbnail = tmp[-1]
+ ids = result.xpath('.//div[@class="s"]//img/@id')
+ if len(ids) > 0:
+ thumbnails_data = \
+ re.findall('s=\'(.*?)(?:\\\\[a-z,1-9,\\\\]+\'|\')\;var ii=\[(?:|[\'vidthumb\d+\',]+)\'' + ids[0],
+ script)
+ tmp = []
+ if len(thumbnails_data) != 0:
+ tmp = re.findall('(data:image/jpeg;base64,[a-z,A-Z,0-9,/,\+]+)', thumbnails_data[0])
+ thumbnail = ''
+ if len(tmp) != 0:
+ thumbnail = tmp[-1]
# append result
results.append({'url': url,
diff --git a/searx/engines/ina.py b/searx/engines/ina.py
index 37a05f099..ea509649f 100644
--- a/searx/engines/ina.py
+++ b/searx/engines/ina.py
@@ -32,7 +32,7 @@ base_url = 'https://www.ina.fr'
search_url = base_url + '/layout/set/ajax/recherche/result?autopromote=&hf={ps}&b={start}&type=Video&r=&{query}'
# specific xpath variables
-results_xpath = '//div[contains(@class,"search-results--list")]/div[@class="media"]'
+results_xpath = '//div[contains(@class,"search-results--list")]//div[@class="media-body"]'
url_xpath = './/a/@href'
title_xpath = './/h3[@class="h3--title media-heading"]'
thumbnail_xpath = './/img/@src'
@@ -65,8 +65,11 @@ def response(resp):
videoid = result.xpath(url_xpath)[0]
url = base_url + videoid
title = p.unescape(extract_text(result.xpath(title_xpath)))
- thumbnail = extract_text(result.xpath(thumbnail_xpath)[0])
- if thumbnail[0] == '/':
+ try:
+ thumbnail = extract_text(result.xpath(thumbnail_xpath)[0])
+ except:
+ thumbnail = ''
+ if thumbnail and thumbnail[0] == '/':
thumbnail = base_url + thumbnail
d = extract_text(result.xpath(publishedDate_xpath)[0])
d = d.split('/')
diff --git a/searx/engines/invidious.py b/searx/engines/invidious.py
new file mode 100644
index 000000000..8d81691fc
--- /dev/null
+++ b/searx/engines/invidious.py
@@ -0,0 +1,100 @@
+# Invidious (Videos)
+#
+# @website https://invidio.us/
+# @provide-api yes (https://github.com/omarroth/invidious/wiki/API)
+#
+# @using-api yes
+# @results JSON
+# @stable yes
+# @parse url, title, content, publishedDate, thumbnail, embedded
+
+from searx.url_utils import quote_plus
+from dateutil import parser
+import time
+
+# engine dependent config
+categories = ["videos", "music"]
+paging = True
+language_support = True
+time_range_support = True
+
+# search-url
+base_url = "https://invidio.us/"
+
+
+# do search-request
+def request(query, params):
+ time_range_dict = {
+ "day": "today",
+ "week": "week",
+ "month": "month",
+ "year": "year",
+ }
+ search_url = base_url + "api/v1/search?q={query}"
+ params["url"] = search_url.format(
+ query=quote_plus(query)
+ ) + "&page={pageno}".format(pageno=params["pageno"])
+
+ if params["time_range"] in time_range_dict:
+ params["url"] += "&date={timerange}".format(
+ timerange=time_range_dict[params["time_range"]]
+ )
+
+ if params["language"] != "all":
+ lang = params["language"].split("-")
+ if len(lang) == 2:
+ params["url"] += "&range={lrange}".format(lrange=lang[1])
+
+ return params
+
+
+# get response from search-request
+def response(resp):
+ results = []
+
+ search_results = resp.json()
+ embedded_url = (
+ '<iframe width="540" height="304" '
+ + 'data-src="'
+ + base_url
+ + 'embed/{videoid}" '
+ + 'frameborder="0" allowfullscreen></iframe>'
+ )
+
+ base_invidious_url = base_url + "watch?v="
+
+ for result in search_results:
+ rtype = result.get("type", None)
+ if rtype == "video":
+ videoid = result.get("videoId", None)
+ if not videoid:
+ continue
+
+ url = base_invidious_url + videoid
+ embedded = embedded_url.format(videoid=videoid)
+ thumbs = result.get("videoThumbnails", [])
+ thumb = next(
+ (th for th in thumbs if th["quality"] == "sddefault"), None
+ )
+ if thumb:
+ thumbnail = thumb.get("url", "")
+ else:
+ thumbnail = ""
+
+ publishedDate = parser.parse(
+ time.ctime(result.get("published", 0))
+ )
+
+ results.append(
+ {
+ "url": url,
+ "title": result.get("title", ""),
+ "content": result.get("description", ""),
+ "template": "videos.html",
+ "publishedDate": publishedDate,
+ "embedded": embedded,
+ "thumbnail": thumbnail,
+ }
+ )
+
+ return results
diff --git a/searx/engines/microsoft_academic.py b/searx/engines/microsoft_academic.py
index 9387b08d0..9bac0069c 100644
--- a/searx/engines/microsoft_academic.py
+++ b/searx/engines/microsoft_academic.py
@@ -45,6 +45,8 @@ def request(query, params):
def response(resp):
results = []
response_data = loads(resp.text)
+ if not response_data:
+ return results
for result in response_data['results']:
url = _get_url(result)
diff --git a/searx/engines/openstreetmap.py b/searx/engines/openstreetmap.py
index 733ba6203..cec10a3c7 100644
--- a/searx/engines/openstreetmap.py
+++ b/searx/engines/openstreetmap.py
@@ -24,7 +24,7 @@ result_base_url = 'https://openstreetmap.org/{osm_type}/{osm_id}'
# do search-request
def request(query, params):
- params['url'] = base_url + search_string.format(query=query)
+ params['url'] = base_url + search_string.format(query=query.decode('utf-8'))
return params
diff --git a/searx/engines/qwant.py b/searx/engines/qwant.py
index de12955c6..54e9dafad 100644
--- a/searx/engines/qwant.py
+++ b/searx/engines/qwant.py
@@ -50,6 +50,7 @@ def request(query, params):
language = match_language(params['language'], supported_languages, language_aliases)
params['url'] += '&locale=' + language.replace('-', '_').lower()
+ params['headers']['User-Agent'] = 'Mozilla/5.0 (X11; Linux x86_64; rv:69.0) Gecko/20100101 Firefox/69.0'
return params
diff --git a/searx/engines/scanr_structures.py b/searx/engines/scanr_structures.py
index 72fd2b3c9..7208dcb70 100644
--- a/searx/engines/scanr_structures.py
+++ b/searx/engines/scanr_structures.py
@@ -29,7 +29,7 @@ def request(query, params):
params['url'] = search_url
params['method'] = 'POST'
params['headers']['Content-type'] = "application/json"
- params['data'] = dumps({"query": query,
+ params['data'] = dumps({"query": query.decode('utf-8'),
"searchField": "ALL",
"sortDirection": "ASC",
"sortOrder": "RELEVANCY",
diff --git a/searx/engines/seedpeer.py b/searx/engines/seedpeer.py
new file mode 100644
index 000000000..f9b1f99c8
--- /dev/null
+++ b/searx/engines/seedpeer.py
@@ -0,0 +1,78 @@
+# Seedpeer (Videos, Music, Files)
+#
+# @website https://seedpeer.me
+# @provide-api no (nothing found)
+#
+# @using-api no
+# @results HTML (using search portal)
+# @stable yes (HTML can change)
+# @parse url, title, content, seed, leech, magnetlink
+
+from lxml import html
+from json import loads
+from operator import itemgetter
+from searx.url_utils import quote, urljoin
+from searx.engines.xpath import extract_text
+
+
+url = 'https://seedpeer.me/'
+search_url = url + 'search/{search_term}?page={page_no}'
+torrent_file_url = url + 'torrent/{torrent_hash}'
+
+# specific xpath variables
+script_xpath = '//script[@type="text/javascript"][not(@src)]'
+torrent_xpath = '(//table)[2]/tbody/tr'
+link_xpath = '(./td)[1]/a/@href'
+age_xpath = '(./td)[2]'
+size_xpath = '(./td)[3]'
+
+
+# do search-request
+def request(query, params):
+ params['url'] = search_url.format(search_term=quote(query),
+ page_no=params['pageno'])
+ return params
+
+
+# get response from search-request
+def response(resp):
+ results = []
+ dom = html.fromstring(resp.text)
+ result_rows = dom.xpath(torrent_xpath)
+
+ try:
+ script_element = dom.xpath(script_xpath)[0]
+ json_string = script_element.text[script_element.text.find('{'):]
+ torrents_json = loads(json_string)
+ except:
+ return []
+
+ # parse results
+ for torrent_row, torrent_json in zip(result_rows, torrents_json['data']['list']):
+ title = torrent_json['name']
+ seed = int(torrent_json['seeds'])
+ leech = int(torrent_json['peers'])
+ size = int(torrent_json['size'])
+ torrent_hash = torrent_json['hash']
+
+ torrentfile = torrent_file_url.format(torrent_hash=torrent_hash)
+ magnetlink = 'magnet:?xt=urn:btih:{}'.format(torrent_hash)
+
+ age = extract_text(torrent_row.xpath(age_xpath))
+ link = torrent_row.xpath(link_xpath)[0]
+
+ href = urljoin(url, link)
+
+ # append result
+ results.append({'url': href,
+ 'title': title,
+ 'content': age,
+ 'seed': seed,
+ 'leech': leech,
+ 'filesize': size,
+ 'torrentfile': torrentfile,
+ 'magnetlink': magnetlink,
+ 'template': 'torrent.html'})
+
+ # return results sorted by seeder
+ return sorted(results, key=itemgetter('seed'), reverse=True)
diff --git a/searx/engines/soundcloud.py b/searx/engines/soundcloud.py
index d59755e04..284689bf6 100644
--- a/searx/engines/soundcloud.py
+++ b/searx/engines/soundcloud.py
@@ -28,8 +28,10 @@ categories = ['music']
paging = True
# search-url
-url = 'https://api.soundcloud.com/'
+# missing attribute: user_id, app_version, app_locale
+url = 'https://api-v2.soundcloud.com/'
search_url = url + 'search?{query}'\
+ '&variant_ids='\
'&facet=model'\
'&limit=20'\
'&offset={offset}'\
@@ -49,7 +51,9 @@ def get_client_id():
if response.ok:
tree = html.fromstring(response.content)
- script_tags = tree.xpath("//script[contains(@src, '/assets/app')]")
+ # script_tags has been moved from /assets/app/ to /assets/ path. I
+ # found client_id in https://a-v2.sndcdn.com/assets/49-a0c01933-3.js
+ script_tags = tree.xpath("//script[contains(@src, '/assets/')]")
app_js_urls = [script_tag.get('src') for script_tag in script_tags if script_tag is not None]
# extracts valid app_js urls from soundcloud.com content
@@ -57,14 +61,14 @@ def get_client_id():
# gets app_js and searches for the clientid
response = http_get(app_js_url)
if response.ok:
- cids = cid_re.search(response.text)
+ cids = cid_re.search(response.content.decode("utf-8"))
if cids is not None and len(cids.groups()):
return cids.groups()[0]
logger.warning("Unable to fetch guest client_id from SoundCloud, check parser!")
return ""
-def init():
+def init(engine_settings=None):
global guest_client_id
# api-key
guest_client_id = get_client_id()
diff --git a/searx/engines/spotify.py b/searx/engines/spotify.py
index aed756be3..00c395706 100644
--- a/searx/engines/spotify.py
+++ b/searx/engines/spotify.py
@@ -12,10 +12,14 @@
from json import loads
from searx.url_utils import urlencode
+import requests
+import base64
# engine dependent config
categories = ['music']
paging = True
+api_client_id = None
+api_client_secret = None
# search-url
url = 'https://api.spotify.com/'
@@ -31,6 +35,16 @@ def request(query, params):
params['url'] = search_url.format(query=urlencode({'q': query}), offset=offset)
+ r = requests.post(
+ 'https://accounts.spotify.com/api/token',
+ data={'grant_type': 'client_credentials'},
+ headers={'Authorization': 'Basic ' + base64.b64encode(
+ "{}:{}".format(api_client_id, api_client_secret).encode('utf-8')
+ ).decode('utf-8')}
+ )
+ j = loads(r.text)
+ params['headers'] = {'Authorization': 'Bearer {}'.format(j.get('access_token'))}
+
return params
diff --git a/searx/engines/startpage.py b/searx/engines/startpage.py
index 6638f3d83..76567396f 100644
--- a/searx/engines/startpage.py
+++ b/searx/engines/startpage.py
@@ -15,6 +15,8 @@ from dateutil import parser
from datetime import datetime, timedelta
import re
from searx.engines.xpath import extract_text
+from searx.languages import language_codes
+from searx.utils import eval_xpath
# engine dependent config
categories = ['general']
@@ -22,7 +24,7 @@ categories = ['general']
# (probably the parameter qid), require
# storing of qid's between mulitble search-calls
-# paging = False
+paging = True
language_support = True
# search-url
@@ -32,23 +34,32 @@ search_url = base_url + 'do/search'
# specific xpath variables
# ads xpath //div[@id="results"]/div[@id="sponsored"]//div[@class="result"]
# not ads: div[@class="result"] are the direct childs of div[@id="results"]
-results_xpath = '//li[contains(@class, "search-result") and contains(@class, "search-item")]'
-link_xpath = './/h3/a'
-content_xpath = './p[@class="search-item__body"]'
+results_xpath = '//div[@class="w-gl__result"]'
+link_xpath = './/a[@class="w-gl__result-title"]'
+content_xpath = './/p[@class="w-gl__description"]'
# do search-request
def request(query, params):
- offset = (params['pageno'] - 1) * 10
params['url'] = search_url
params['method'] = 'POST'
- params['data'] = {'query': query,
- 'startat': offset}
+ params['data'] = {
+ 'query': query,
+ 'page': params['pageno'],
+ 'cat': 'web',
+ 'cmd': 'process_search',
+ 'engine0': 'v1all',
+ }
# set language if specified
if params['language'] != 'all':
- params['data']['with_language'] = ('lang_' + params['language'].split('-')[0])
+ language = 'english'
+ for lc, _, _, lang in language_codes:
+ if lc == params['language']:
+ language = lang
+ params['data']['language'] = language
+ params['data']['lui'] = language
return params
@@ -60,8 +71,8 @@ def response(resp):
dom = html.fromstring(resp.text)
# parse results
- for result in dom.xpath(results_xpath):
- links = result.xpath(link_xpath)
+ for result in eval_xpath(dom, results_xpath):
+ links = eval_xpath(result, link_xpath)
if not links:
continue
link = links[0]
@@ -77,8 +88,8 @@ def response(resp):
title = extract_text(link)
- if result.xpath(content_xpath):
- content = extract_text(result.xpath(content_xpath))
+ if eval_xpath(result, content_xpath):
+ content = extract_text(eval_xpath(result, content_xpath))
else:
content = ''
diff --git a/searx/engines/vimeo.py b/searx/engines/vimeo.py
index 1408be8df..a92271019 100644
--- a/searx/engines/vimeo.py
+++ b/searx/engines/vimeo.py
@@ -24,7 +24,7 @@ paging = True
base_url = 'https://vimeo.com/'
search_url = base_url + '/search/page:{pageno}?{query}'
-embedded_url = '<iframe data-src="//player.vimeo.com/video/{videoid}" ' +\
+embedded_url = '<iframe data-src="https://player.vimeo.com/video/{videoid}" ' +\
'width="540" height="304" frameborder="0" ' +\
'webkitallowfullscreen mozallowfullscreen allowfullscreen></iframe>'
diff --git a/searx/engines/wikidata.py b/searx/engines/wikidata.py
index 03a58a31a..e913b3915 100644
--- a/searx/engines/wikidata.py
+++ b/searx/engines/wikidata.py
@@ -16,10 +16,11 @@ from searx.poolrequests import get
from searx.engines.xpath import extract_text
from searx.engines.wikipedia import _fetch_supported_languages, supported_languages_url
from searx.url_utils import urlencode
-from searx.utils import match_language
+from searx.utils import match_language, eval_xpath
from json import loads
from lxml.html import fromstring
+from lxml import etree
logger = logger.getChild('wikidata')
result_count = 1
@@ -27,23 +28,23 @@ result_count = 1
# urls
wikidata_host = 'https://www.wikidata.org'
url_search = wikidata_host \
- + '/w/index.php?{query}'
+ + '/w/index.php?{query}&ns0=1'
wikidata_api = wikidata_host + '/w/api.php'
url_detail = wikidata_api\
+ '?action=parse&format=json&{query}'\
- + '&redirects=1&prop=text%7Cdisplaytitle%7Clanglinks%7Crevid'\
- + '&disableeditsection=1&disabletidy=1&preview=1&sectionpreview=1&disabletoc=1&utf8=1&formatversion=2'
+ + '&redirects=1&prop=text%7Cdisplaytitle%7Cparsewarnings'\
+ + '&disableeditsection=1&preview=1&sectionpreview=1&disabletoc=1&utf8=1&formatversion=2'
url_map = 'https://www.openstreetmap.org/'\
+ '?lat={latitude}&lon={longitude}&zoom={zoom}&layers=M'
url_image = 'https://commons.wikimedia.org/wiki/Special:FilePath/{filename}?width=500&height=400'
# xpaths
+div_ids_xpath = '//div[@id]'
wikidata_ids_xpath = '//ul[@class="mw-search-results"]/li//a/@href'
title_xpath = '//*[contains(@class,"wikibase-title-label")]'
description_xpath = '//div[contains(@class,"wikibase-entitytermsview-heading-description")]'
-property_xpath = '//div[@id="{propertyid}"]'
label_xpath = './/div[contains(@class,"wikibase-statementgroupview-property-label")]/a'
url_xpath = './/a[contains(@class,"external free") or contains(@class, "wb-external-id")]'
wikilink_xpath = './/ul[contains(@class,"wikibase-sitelinklistview-listview")]'\
@@ -57,6 +58,15 @@ calendar_name_xpath = './/sup[contains(@class,"wb-calendar-name")]'
media_xpath = value_xpath + '//div[contains(@class,"commons-media-caption")]//a'
+def get_id_cache(result):
+ id_cache = {}
+ for e in eval_xpath(result, div_ids_xpath):
+ id = e.get('id')
+ if id.startswith('P'):
+ id_cache[id] = e
+ return id_cache
+
+
def request(query, params):
params['url'] = url_search.format(
query=urlencode({'search': query}))
@@ -65,8 +75,9 @@ def request(query, params):
def response(resp):
results = []
- html = fromstring(resp.text)
- search_results = html.xpath(wikidata_ids_xpath)
+ htmlparser = etree.HTMLParser()
+ html = fromstring(resp.content.decode("utf-8"), parser=htmlparser)
+ search_results = eval_xpath(html, wikidata_ids_xpath)
if resp.search_params['language'].split('-')[0] == 'all':
language = 'en'
@@ -78,13 +89,13 @@ def response(resp):
wikidata_id = search_result.split('/')[-1]
url = url_detail.format(query=urlencode({'page': wikidata_id, 'uselang': language}))
htmlresponse = get(url)
- jsonresponse = loads(htmlresponse.text)
- results += getDetail(jsonresponse, wikidata_id, language, resp.search_params['language'])
+ jsonresponse = loads(htmlresponse.content.decode("utf-8"))
+ results += getDetail(jsonresponse, wikidata_id, language, resp.search_params['language'], htmlparser)
return results
-def getDetail(jsonresponse, wikidata_id, language, locale):
+def getDetail(jsonresponse, wikidata_id, language, locale, htmlparser):
results = []
urls = []
attributes = []
@@ -95,21 +106,23 @@ def getDetail(jsonresponse, wikidata_id, language, locale):
if not title or not result:
return results
- title = fromstring(title)
- for elem in title.xpath(language_fallback_xpath):
+ title = fromstring(title, parser=htmlparser)
+ for elem in eval_xpath(title, language_fallback_xpath):
elem.getparent().remove(elem)
- title = extract_text(title.xpath(title_xpath))
+ title = extract_text(eval_xpath(title, title_xpath))
- result = fromstring(result)
- for elem in result.xpath(language_fallback_xpath):
+ result = fromstring(result, parser=htmlparser)
+ for elem in eval_xpath(result, language_fallback_xpath):
elem.getparent().remove(elem)
- description = extract_text(result.xpath(description_xpath))
+ description = extract_text(eval_xpath(result, description_xpath))
+
+ id_cache = get_id_cache(result)
# URLS
# official website
- add_url(urls, result, 'P856', results=results)
+ add_url(urls, result, id_cache, 'P856', results=results)
# wikipedia
wikipedia_link_count = 0
@@ -130,30 +143,30 @@ def getDetail(jsonresponse, wikidata_id, language, locale):
# if wikipedia_link_count == 0:
# more wikis
- add_url(urls, result, default_label='Wikivoyage (' + language + ')', link_type=language + 'wikivoyage')
- add_url(urls, result, default_label='Wikiquote (' + language + ')', link_type=language + 'wikiquote')
- add_url(urls, result, default_label='Wikimedia Commons', link_type='commonswiki')
+ add_url(urls, result, id_cache, default_label='Wikivoyage (' + language + ')', link_type=language + 'wikivoyage')
+ add_url(urls, result, id_cache, default_label='Wikiquote (' + language + ')', link_type=language + 'wikiquote')
+ add_url(urls, result, id_cache, default_label='Wikimedia Commons', link_type='commonswiki')
- add_url(urls, result, 'P625', 'OpenStreetMap', link_type='geo')
+ add_url(urls, result, id_cache, 'P625', 'OpenStreetMap', link_type='geo')
# musicbrainz
- add_url(urls, result, 'P434', 'MusicBrainz', 'http://musicbrainz.org/artist/')
- add_url(urls, result, 'P435', 'MusicBrainz', 'http://musicbrainz.org/work/')
- add_url(urls, result, 'P436', 'MusicBrainz', 'http://musicbrainz.org/release-group/')
- add_url(urls, result, 'P966', 'MusicBrainz', 'http://musicbrainz.org/label/')
+ add_url(urls, result, id_cache, 'P434', 'MusicBrainz', 'http://musicbrainz.org/artist/')
+ add_url(urls, result, id_cache, 'P435', 'MusicBrainz', 'http://musicbrainz.org/work/')
+ add_url(urls, result, id_cache, 'P436', 'MusicBrainz', 'http://musicbrainz.org/release-group/')
+ add_url(urls, result, id_cache, 'P966', 'MusicBrainz', 'http://musicbrainz.org/label/')
# IMDb
- add_url(urls, result, 'P345', 'IMDb', 'https://www.imdb.com/', link_type='imdb')
+ add_url(urls, result, id_cache, 'P345', 'IMDb', 'https://www.imdb.com/', link_type='imdb')
# source code repository
- add_url(urls, result, 'P1324')
+ add_url(urls, result, id_cache, 'P1324')
# blog
- add_url(urls, result, 'P1581')
+ add_url(urls, result, id_cache, 'P1581')
# social media links
- add_url(urls, result, 'P2397', 'YouTube', 'https://www.youtube.com/channel/')
- add_url(urls, result, 'P1651', 'YouTube', 'https://www.youtube.com/watch?v=')
- add_url(urls, result, 'P2002', 'Twitter', 'https://twitter.com/')
- add_url(urls, result, 'P2013', 'Facebook', 'https://facebook.com/')
- add_url(urls, result, 'P2003', 'Instagram', 'https://instagram.com/')
+ add_url(urls, result, id_cache, 'P2397', 'YouTube', 'https://www.youtube.com/channel/')
+ add_url(urls, result, id_cache, 'P1651', 'YouTube', 'https://www.youtube.com/watch?v=')
+ add_url(urls, result, id_cache, 'P2002', 'Twitter', 'https://twitter.com/')
+ add_url(urls, result, id_cache, 'P2013', 'Facebook', 'https://facebook.com/')
+ add_url(urls, result, id_cache, 'P2003', 'Instagram', 'https://instagram.com/')
urls.append({'title': 'Wikidata',
'url': 'https://www.wikidata.org/wiki/'
@@ -163,132 +176,132 @@ def getDetail(jsonresponse, wikidata_id, language, locale):
# DATES
# inception date
- add_attribute(attributes, result, 'P571', date=True)
+ add_attribute(attributes, id_cache, 'P571', date=True)
# dissolution date
- add_attribute(attributes, result, 'P576', date=True)
+ add_attribute(attributes, id_cache, 'P576', date=True)
# start date
- add_attribute(attributes, result, 'P580', date=True)
+ add_attribute(attributes, id_cache, 'P580', date=True)
# end date
- add_attribute(attributes, result, 'P582', date=True)
+ add_attribute(attributes, id_cache, 'P582', date=True)
# date of birth
- add_attribute(attributes, result, 'P569', date=True)
+ add_attribute(attributes, id_cache, 'P569', date=True)
# date of death
- add_attribute(attributes, result, 'P570', date=True)
+ add_attribute(attributes, id_cache, 'P570', date=True)
# date of spacecraft launch
- add_attribute(attributes, result, 'P619', date=True)
+ add_attribute(attributes, id_cache, 'P619', date=True)
# date of spacecraft landing
- add_attribute(attributes, result, 'P620', date=True)
+ add_attribute(attributes, id_cache, 'P620', date=True)
# nationality
- add_attribute(attributes, result, 'P27')
+ add_attribute(attributes, id_cache, 'P27')
# country of origin
- add_attribute(attributes, result, 'P495')
+ add_attribute(attributes, id_cache, 'P495')
# country
- add_attribute(attributes, result, 'P17')
+ add_attribute(attributes, id_cache, 'P17')
# headquarters
- add_attribute(attributes, result, 'Q180')
+ add_attribute(attributes, id_cache, 'Q180')
# PLACES
# capital
- add_attribute(attributes, result, 'P36', trim=True)
+ add_attribute(attributes, id_cache, 'P36', trim=True)
# head of state
- add_attribute(attributes, result, 'P35', trim=True)
+ add_attribute(attributes, id_cache, 'P35', trim=True)
# head of government
- add_attribute(attributes, result, 'P6', trim=True)
+ add_attribute(attributes, id_cache, 'P6', trim=True)
# type of government
- add_attribute(attributes, result, 'P122')
+ add_attribute(attributes, id_cache, 'P122')
# official language
- add_attribute(attributes, result, 'P37')
+ add_attribute(attributes, id_cache, 'P37')
# population
- add_attribute(attributes, result, 'P1082', trim=True)
+ add_attribute(attributes, id_cache, 'P1082', trim=True)
# area
- add_attribute(attributes, result, 'P2046')
+ add_attribute(attributes, id_cache, 'P2046')
# currency
- add_attribute(attributes, result, 'P38', trim=True)
+ add_attribute(attributes, id_cache, 'P38', trim=True)
# heigth (building)
- add_attribute(attributes, result, 'P2048')
+ add_attribute(attributes, id_cache, 'P2048')
# MEDIA
# platform (videogames)
- add_attribute(attributes, result, 'P400')
+ add_attribute(attributes, id_cache, 'P400')
# author
- add_attribute(attributes, result, 'P50')
+ add_attribute(attributes, id_cache, 'P50')
# creator
- add_attribute(attributes, result, 'P170')
+ add_attribute(attributes, id_cache, 'P170')
# director
- add_attribute(attributes, result, 'P57')
+ add_attribute(attributes, id_cache, 'P57')
# performer
- add_attribute(attributes, result, 'P175')
+ add_attribute(attributes, id_cache, 'P175')
# developer
- add_attribute(attributes, result, 'P178')
+ add_attribute(attributes, id_cache, 'P178')
# producer
- add_attribute(attributes, result, 'P162')
+ add_attribute(attributes, id_cache, 'P162')
# manufacturer
- add_attribute(attributes, result, 'P176')
+ add_attribute(attributes, id_cache, 'P176')
# screenwriter
- add_attribute(attributes, result, 'P58')
+ add_attribute(attributes, id_cache, 'P58')
# production company
- add_attribute(attributes, result, 'P272')
+ add_attribute(attributes, id_cache, 'P272')
# record label
- add_attribute(attributes, result, 'P264')
+ add_attribute(attributes, id_cache, 'P264')
# publisher
- add_attribute(attributes, result, 'P123')
+ add_attribute(attributes, id_cache, 'P123')
# original network
- add_attribute(attributes, result, 'P449')
+ add_attribute(attributes, id_cache, 'P449')
# distributor
- add_attribute(attributes, result, 'P750')
+ add_attribute(attributes, id_cache, 'P750')
# composer
- add_attribute(attributes, result, 'P86')
+ add_attribute(attributes, id_cache, 'P86')
# publication date
- add_attribute(attributes, result, 'P577', date=True)
+ add_attribute(attributes, id_cache, 'P577', date=True)
# genre
- add_attribute(attributes, result, 'P136')
+ add_attribute(attributes, id_cache, 'P136')
# original language
- add_attribute(attributes, result, 'P364')
+ add_attribute(attributes, id_cache, 'P364')
# isbn
- add_attribute(attributes, result, 'Q33057')
+ add_attribute(attributes, id_cache, 'Q33057')
# software license
- add_attribute(attributes, result, 'P275')
+ add_attribute(attributes, id_cache, 'P275')
# programming language
- add_attribute(attributes, result, 'P277')
+ add_attribute(attributes, id_cache, 'P277')
# version
- add_attribute(attributes, result, 'P348', trim=True)
+ add_attribute(attributes, id_cache, 'P348', trim=True)
# narrative location
- add_attribute(attributes, result, 'P840')
+ add_attribute(attributes, id_cache, 'P840')
# LANGUAGES
# number of speakers
- add_attribute(attributes, result, 'P1098')
+ add_attribute(attributes, id_cache, 'P1098')
# writing system
- add_attribute(attributes, result, 'P282')
+ add_attribute(attributes, id_cache, 'P282')
# regulatory body
- add_attribute(attributes, result, 'P1018')
+ add_attribute(attributes, id_cache, 'P1018')
# language code
- add_attribute(attributes, result, 'P218')
+ add_attribute(attributes, id_cache, 'P218')
# OTHER
# ceo
- add_attribute(attributes, result, 'P169', trim=True)
+ add_attribute(attributes, id_cache, 'P169', trim=True)
# founder
- add_attribute(attributes, result, 'P112')
+ add_attribute(attributes, id_cache, 'P112')
# legal form (company/organization)
- add_attribute(attributes, result, 'P1454')
+ add_attribute(attributes, id_cache, 'P1454')
# operator
- add_attribute(attributes, result, 'P137')
+ add_attribute(attributes, id_cache, 'P137')
# crew members (tripulation)
- add_attribute(attributes, result, 'P1029')
+ add_attribute(attributes, id_cache, 'P1029')
# taxon
- add_attribute(attributes, result, 'P225')
+ add_attribute(attributes, id_cache, 'P225')
# chemical formula
- add_attribute(attributes, result, 'P274')
+ add_attribute(attributes, id_cache, 'P274')
# winner (sports/contests)
- add_attribute(attributes, result, 'P1346')
+ add_attribute(attributes, id_cache, 'P1346')
# number of deaths
- add_attribute(attributes, result, 'P1120')
+ add_attribute(attributes, id_cache, 'P1120')
# currency code
- add_attribute(attributes, result, 'P498')
+ add_attribute(attributes, id_cache, 'P498')
- image = add_image(result)
+ image = add_image(id_cache)
if len(attributes) == 0 and len(urls) == 2 and len(description) == 0:
results.append({
@@ -310,43 +323,42 @@ def getDetail(jsonresponse, wikidata_id, language, locale):
# only returns first match
-def add_image(result):
+def add_image(id_cache):
# P15: route map, P242: locator map, P154: logo, P18: image, P242: map, P41: flag, P2716: collage, P2910: icon
property_ids = ['P15', 'P242', 'P154', 'P18', 'P242', 'P41', 'P2716', 'P2910']
for property_id in property_ids:
- image = result.xpath(property_xpath.replace('{propertyid}', property_id))
- if image:
- image_name = image[0].xpath(media_xpath)
+ image = id_cache.get(property_id, None)
+ if image is not None:
+ image_name = eval_xpath(image, media_xpath)
image_src = url_image.replace('{filename}', extract_text(image_name[0]))
return image_src
# setting trim will only returned high ranked rows OR the first row
-def add_attribute(attributes, result, property_id, default_label=None, date=False, trim=False):
- attribute = result.xpath(property_xpath.replace('{propertyid}', property_id))
- if attribute:
+def add_attribute(attributes, id_cache, property_id, default_label=None, date=False, trim=False):
+ attribute = id_cache.get(property_id, None)
+ if attribute is not None:
if default_label:
label = default_label
else:
- label = extract_text(attribute[0].xpath(label_xpath))
+ label = extract_text(eval_xpath(attribute, label_xpath))
label = label[0].upper() + label[1:]
if date:
trim = True
# remove calendar name
- calendar_name = attribute[0].xpath(calendar_name_xpath)
+ calendar_name = eval_xpath(attribute, calendar_name_xpath)
for calendar in calendar_name:
calendar.getparent().remove(calendar)
concat_values = ""
values = []
first_value = None
- for row in attribute[0].xpath(property_row_xpath):
- if not first_value or not trim or row.xpath(preferred_rank_xpath):
-
- value = row.xpath(value_xpath)
+ for row in eval_xpath(attribute, property_row_xpath):
+ if not first_value or not trim or eval_xpath(row, preferred_rank_xpath):
+ value = eval_xpath(row, value_xpath)
if not value:
continue
value = extract_text(value)
@@ -369,18 +381,18 @@ def add_attribute(attributes, result, property_id, default_label=None, date=Fals
# requires property_id unless it's a wiki link (defined in link_type)
-def add_url(urls, result, property_id=None, default_label=None, url_prefix=None, results=None, link_type=None):
+def add_url(urls, result, id_cache, property_id=None, default_label=None, url_prefix=None, results=None,
+ link_type=None):
links = []
# wiki links don't have property in wikidata page
if link_type and 'wiki' in link_type:
links.append(get_wikilink(result, link_type))
else:
- dom_element = result.xpath(property_xpath.replace('{propertyid}', property_id))
- if dom_element:
- dom_element = dom_element[0]
+ dom_element = id_cache.get(property_id, None)
+ if dom_element is not None:
if not default_label:
- label = extract_text(dom_element.xpath(label_xpath))
+ label = extract_text(eval_xpath(dom_element, label_xpath))
label = label[0].upper() + label[1:]
if link_type == 'geo':
@@ -390,7 +402,7 @@ def add_url(urls, result, property_id=None, default_label=None, url_prefix=None,
links.append(get_imdblink(dom_element, url_prefix))
else:
- url_results = dom_element.xpath(url_xpath)
+ url_results = eval_xpath(dom_element, url_xpath)
for link in url_results:
if link is not None:
if url_prefix:
@@ -410,7 +422,7 @@ def add_url(urls, result, property_id=None, default_label=None, url_prefix=None,
def get_imdblink(result, url_prefix):
- imdb_id = result.xpath(value_xpath)
+ imdb_id = eval_xpath(result, value_xpath)
if imdb_id:
imdb_id = extract_text(imdb_id)
id_prefix = imdb_id[:2]
@@ -430,7 +442,7 @@ def get_imdblink(result, url_prefix):
def get_geolink(result):
- coordinates = result.xpath(value_xpath)
+ coordinates = eval_xpath(result, value_xpath)
if not coordinates:
return None
coordinates = extract_text(coordinates[0])
@@ -477,7 +489,7 @@ def get_geolink(result):
def get_wikilink(result, wikiid):
- url = result.xpath(wikilink_xpath.replace('{wikiid}', wikiid))
+ url = eval_xpath(result, wikilink_xpath.replace('{wikiid}', wikiid))
if not url:
return None
url = url[0]
diff --git a/searx/engines/wikipedia.py b/searx/engines/wikipedia.py
index 4dae735d1..a216ba886 100644
--- a/searx/engines/wikipedia.py
+++ b/searx/engines/wikipedia.py
@@ -21,7 +21,8 @@ search_url = base_url + u'w/api.php?'\
'action=query'\
'&format=json'\
'&{query}'\
- '&prop=extracts|pageimages'\
+ '&prop=extracts|pageimages|pageprops'\
+ '&ppprop=disambiguation'\
'&exintro'\
'&explaintext'\
'&pithumbsize=300'\
@@ -79,12 +80,15 @@ def response(resp):
# wikipedia article's unique id
# first valid id is assumed to be the requested article
+ if 'pages' not in search_result['query']:
+ return results
+
for article_id in search_result['query']['pages']:
page = search_result['query']['pages'][article_id]
if int(article_id) > 0:
break
- if int(article_id) < 0:
+ if int(article_id) < 0 or 'disambiguation' in page.get('pageprops', {}):
return []
title = page.get('title')
@@ -96,6 +100,7 @@ def response(resp):
extract = page.get('extract')
summary = extract_first_paragraph(extract, title, image)
+ summary = summary.replace('() ', '')
# link to wikipedia article
wikipedia_link = base_url.format(language=url_lang(resp.search_params['language'])) \
diff --git a/searx/engines/wolframalpha_noapi.py b/searx/engines/wolframalpha_noapi.py
index 2cbbc5adc..387c9fa17 100644
--- a/searx/engines/wolframalpha_noapi.py
+++ b/searx/engines/wolframalpha_noapi.py
@@ -55,7 +55,7 @@ def obtain_token():
return token
-def init():
+def init(engine_settings=None):
obtain_token()
diff --git a/searx/engines/www1x.py b/searx/engines/www1x.py
index 508803240..f1154b16d 100644
--- a/searx/engines/www1x.py
+++ b/searx/engines/www1x.py
@@ -11,8 +11,8 @@
"""
from lxml import html
-import re
from searx.url_utils import urlencode, urljoin
+from searx.engines.xpath import extract_text
# engine dependent config
categories = ['images']
@@ -34,41 +34,18 @@ def request(query, params):
def response(resp):
results = []
- # get links from result-text
- regex = re.compile('(</a>|<a)')
- results_parts = re.split(regex, resp.text)
-
- cur_element = ''
-
- # iterate over link parts
- for result_part in results_parts:
+ dom = html.fromstring(resp.text)
+ for res in dom.xpath('//div[@class="List-item MainListing"]'):
# processed start and end of link
- if result_part == '<a':
- cur_element = result_part
- continue
- elif result_part != '</a>':
- cur_element += result_part
- continue
-
- cur_element += result_part
-
- # fix xml-error
- cur_element = cur_element.replace('"></a>', '"/></a>')
-
- dom = html.fromstring(cur_element)
- link = dom.xpath('//a')[0]
+ link = res.xpath('//a')[0]
url = urljoin(base_url, link.attrib.get('href'))
- title = link.attrib.get('title', '')
+ title = extract_text(link)
- thumbnail_src = urljoin(base_url, link.xpath('.//img')[0].attrib['src'])
+ thumbnail_src = urljoin(base_url, res.xpath('.//img')[0].attrib['src'])
# TODO: get image with higher resolution
img_src = thumbnail_src
- # check if url is showing to a photo
- if '/photo/' not in url:
- continue
-
# append result
results.append({'url': url,
'title': title,
diff --git a/searx/engines/xpath.py b/searx/engines/xpath.py
index 50f98d935..b75896cc7 100644
--- a/searx/engines/xpath.py
+++ b/searx/engines/xpath.py
@@ -1,12 +1,13 @@
from lxml import html
from lxml.etree import _ElementStringResult, _ElementUnicodeResult
-from searx.utils import html_to_text
+from searx.utils import html_to_text, eval_xpath
from searx.url_utils import unquote, urlencode, urljoin, urlparse
search_url = None
url_xpath = None
content_xpath = None
title_xpath = None
+thumbnail_xpath = False
paging = False
suggestion_xpath = ''
results_xpath = ''
@@ -40,7 +41,9 @@ def extract_text(xpath_results):
return ''.join(xpath_results)
else:
# it's a element
- text = html.tostring(xpath_results, encoding='unicode', method='text', with_tail=False)
+ text = html.tostring(
+ xpath_results, encoding='unicode', method='text', with_tail=False
+ )
text = text.strip().replace('\n', ' ')
return ' '.join(text.split())
@@ -101,22 +104,30 @@ def response(resp):
results = []
dom = html.fromstring(resp.text)
if results_xpath:
- for result in dom.xpath(results_xpath):
- url = extract_url(result.xpath(url_xpath), search_url)
- title = extract_text(result.xpath(title_xpath))
- content = extract_text(result.xpath(content_xpath))
- results.append({'url': url, 'title': title, 'content': content})
+ for result in eval_xpath(dom, results_xpath):
+ url = extract_url(eval_xpath(result, url_xpath), search_url)
+ title = extract_text(eval_xpath(result, title_xpath))
+ content = extract_text(eval_xpath(result, content_xpath))
+ tmp_result = {'url': url, 'title': title, 'content': content}
+
+ # add thumbnail if available
+ if thumbnail_xpath:
+ thumbnail_xpath_result = eval_xpath(result, thumbnail_xpath)
+ if len(thumbnail_xpath_result) > 0:
+ tmp_result['img_src'] = extract_url(thumbnail_xpath_result, search_url)
+
+ results.append(tmp_result)
else:
for url, title, content in zip(
(extract_url(x, search_url) for
- x in dom.xpath(url_xpath)),
- map(extract_text, dom.xpath(title_xpath)),
- map(extract_text, dom.xpath(content_xpath))
+ x in eval_xpath(dom, url_xpath)),
+ map(extract_text, eval_xpath(dom, title_xpath)),
+ map(extract_text, eval_xpath(dom, content_xpath))
):
results.append({'url': url, 'title': title, 'content': content})
if not suggestion_xpath:
return results
- for suggestion in dom.xpath(suggestion_xpath):
+ for suggestion in eval_xpath(dom, suggestion_xpath):
results.append({'suggestion': extract_text(suggestion)})
return results
diff --git a/searx/engines/yahoo.py b/searx/engines/yahoo.py
index 73b78bcf7..36c1a11f8 100644
--- a/searx/engines/yahoo.py
+++ b/searx/engines/yahoo.py
@@ -14,7 +14,7 @@
from lxml import html
from searx.engines.xpath import extract_text, extract_url
from searx.url_utils import unquote, urlencode
-from searx.utils import match_language
+from searx.utils import match_language, eval_xpath
# engine dependent config
categories = ['general']
@@ -109,21 +109,21 @@ def response(resp):
dom = html.fromstring(resp.text)
try:
- results_num = int(dom.xpath('//div[@class="compPagination"]/span[last()]/text()')[0]
+ results_num = int(eval_xpath(dom, '//div[@class="compPagination"]/span[last()]/text()')[0]
.split()[0].replace(',', ''))
results.append({'number_of_results': results_num})
except:
pass
# parse results
- for result in dom.xpath(results_xpath):
+ for result in eval_xpath(dom, results_xpath):
try:
- url = parse_url(extract_url(result.xpath(url_xpath), search_url))
- title = extract_text(result.xpath(title_xpath)[0])
+ url = parse_url(extract_url(eval_xpath(result, url_xpath), search_url))
+ title = extract_text(eval_xpath(result, title_xpath)[0])
except:
continue
- content = extract_text(result.xpath(content_xpath)[0])
+ content = extract_text(eval_xpath(result, content_xpath)[0])
# append result
results.append({'url': url,
@@ -131,7 +131,7 @@ def response(resp):
'content': content})
# if no suggestion found, return results
- suggestions = dom.xpath(suggestion_xpath)
+ suggestions = eval_xpath(dom, suggestion_xpath)
if not suggestions:
return results
@@ -148,9 +148,9 @@ def response(resp):
def _fetch_supported_languages(resp):
supported_languages = []
dom = html.fromstring(resp.text)
- options = dom.xpath('//div[@id="yschlang"]/span/label/input')
+ options = eval_xpath(dom, '//div[@id="yschlang"]/span/label/input')
for option in options:
- code_parts = option.xpath('./@value')[0][5:].split('_')
+ code_parts = eval_xpath(option, './@value')[0][5:].split('_')
if len(code_parts) == 2:
code = code_parts[0] + '-' + code_parts[1].upper()
else:
diff --git a/searx/engines/youtube_api.py b/searx/engines/youtube_api.py
index 6de18aa2c..bc4c0d58e 100644
--- a/searx/engines/youtube_api.py
+++ b/searx/engines/youtube_api.py
@@ -23,7 +23,7 @@ base_url = 'https://www.googleapis.com/youtube/v3/search'
search_url = base_url + '?part=snippet&{query}&maxResults=20&key={api_key}'
embedded_url = '<iframe width="540" height="304" ' +\
- 'data-src="//www.youtube-nocookie.com/embed/{videoid}" ' +\
+ 'data-src="https://www.youtube-nocookie.com/embed/{videoid}" ' +\
'frameborder="0" allowfullscreen></iframe>'
base_youtube_url = 'https://www.youtube.com/watch?v='
diff --git a/searx/engines/youtube_noapi.py b/searx/engines/youtube_noapi.py
index 3bf25932b..49d0ae604 100644
--- a/searx/engines/youtube_noapi.py
+++ b/searx/engines/youtube_noapi.py
@@ -30,7 +30,7 @@ time_range_dict = {'day': 'Ag',
'year': 'BQ'}
embedded_url = '<iframe width="540" height="304" ' +\
- 'data-src="//www.youtube-nocookie.com/embed/{videoid}" ' +\
+ 'data-src="https://www.youtube-nocookie.com/embed/{videoid}" ' +\
'frameborder="0" allowfullscreen></iframe>'
base_youtube_url = 'https://www.youtube.com/watch?v='
@@ -67,12 +67,8 @@ def response(resp):
if videoid is not None:
url = base_youtube_url + videoid
thumbnail = 'https://i.ytimg.com/vi/' + videoid + '/hqdefault.jpg'
- title = video.get('title', {}).get('simpleText', videoid)
- description_snippet = video.get('descriptionSnippet', {})
- if 'runs' in description_snippet:
- content = reduce(lambda a, b: a + b.get('text', ''), description_snippet.get('runs'), '')
- else:
- content = description_snippet.get('simpleText', '')
+ title = get_text_from_json(video.get('title', {}))
+ content = get_text_from_json(video.get('descriptionSnippet', {}))
embedded = embedded_url.format(videoid=videoid)
# append result
@@ -85,3 +81,10 @@ def response(resp):
# return results
return results
+
+
+def get_text_from_json(element):
+ if 'runs' in element:
+ return reduce(lambda a, b: a + b.get('text', ''), element.get('runs'), '')
+ else:
+ return element.get('simpleText', '')
diff --git a/searx/exceptions.py b/searx/exceptions.py
index c605ddcab..0175acfa3 100644
--- a/searx/exceptions.py
+++ b/searx/exceptions.py
@@ -28,5 +28,6 @@ class SearxParameterException(SearxException):
else:
message = 'Invalid value "' + value + '" for parameter ' + name
super(SearxParameterException, self).__init__(message)
+ self.message = message
self.parameter_name = name
self.parameter_value = value
diff --git a/searx/plugins/https_rewrite.py b/searx/plugins/https_rewrite.py
index 3d986770e..82556017e 100644
--- a/searx/plugins/https_rewrite.py
+++ b/searx/plugins/https_rewrite.py
@@ -225,6 +225,9 @@ def https_url_rewrite(result):
def on_result(request, search, result):
+ if 'parsed_url' not in result:
+ return True
+
if result['parsed_url'].scheme == 'http':
https_url_rewrite(result)
return True
diff --git a/searx/plugins/oa_doi_rewrite.py b/searx/plugins/oa_doi_rewrite.py
index d4942498f..be80beb26 100644
--- a/searx/plugins/oa_doi_rewrite.py
+++ b/searx/plugins/oa_doi_rewrite.py
@@ -35,6 +35,9 @@ def get_doi_resolver(args, preference_doi_resolver):
def on_result(request, search, result):
+ if 'parsed_url' not in result:
+ return True
+
doi = extract_doi(result['parsed_url'])
if doi and len(doi) < 50:
for suffix in ('/', '.pdf', '/full', '/meta', '/abstract'):
diff --git a/searx/plugins/tracker_url_remover.py b/searx/plugins/tracker_url_remover.py
index 630c8a638..33dd621e1 100644
--- a/searx/plugins/tracker_url_remover.py
+++ b/searx/plugins/tracker_url_remover.py
@@ -17,10 +17,10 @@ along with searx. If not, see < http://www.gnu.org/licenses/ >.
from flask_babel import gettext
import re
-from searx.url_utils import urlunparse
+from searx.url_utils import urlunparse, parse_qsl, urlencode
-regexes = {re.compile(r'utm_[^&]+&?'),
- re.compile(r'(wkey|wemail)[^&]+&?'),
+regexes = {re.compile(r'utm_[^&]+'),
+ re.compile(r'(wkey|wemail)[^&]*'),
re.compile(r'&$')}
name = gettext('Tracker URL remover')
@@ -30,16 +30,23 @@ preference_section = 'privacy'
def on_result(request, search, result):
+ if 'parsed_url' not in result:
+ return True
+
query = result['parsed_url'].query
if query == "":
return True
-
- for reg in regexes:
- query = reg.sub('', query)
-
- if query != result['parsed_url'].query:
- result['parsed_url'] = result['parsed_url']._replace(query=query)
- result['url'] = urlunparse(result['parsed_url'])
+ parsed_query = parse_qsl(query)
+
+ changes = 0
+ for i, (param_name, _) in enumerate(list(parsed_query)):
+ for reg in regexes:
+ if reg.match(param_name):
+ parsed_query.pop(i - changes)
+ changes += 1
+ result['parsed_url'] = result['parsed_url']._replace(query=urlencode(parsed_query))
+ result['url'] = urlunparse(result['parsed_url'])
+ break
return True
diff --git a/searx/preferences.py b/searx/preferences.py
index 912e89c01..669232b12 100644
--- a/searx/preferences.py
+++ b/searx/preferences.py
@@ -104,6 +104,31 @@ class MultipleChoiceSetting(EnumStringSetting):
resp.set_cookie(name, ','.join(self.value), max_age=COOKIE_MAX_AGE)
+class SetSetting(Setting):
+ def _post_init(self):
+ if not hasattr(self, 'values'):
+ self.values = set()
+
+ def get_value(self):
+ return ','.join(self.values)
+
+ def parse(self, data):
+ if data == '':
+ self.values = set()
+ return
+
+ elements = data.split(',')
+ for element in elements:
+ self.values.add(element)
+
+ def parse_form(self, data):
+ elements = data.split(',')
+ self.values = set(elements)
+
+ def save(self, name, resp):
+ resp.set_cookie(name, ','.join(self.values), max_age=COOKIE_MAX_AGE)
+
+
class SearchLanguageSetting(EnumStringSetting):
"""Available choices may change, so user's value may not be in choices anymore"""
@@ -272,6 +297,7 @@ class Preferences(object):
self.engines = EnginesSetting('engines', choices=engines)
self.plugins = PluginsSetting('plugins', choices=plugins)
+ self.tokens = SetSetting('tokens')
self.unknown_params = {}
def get_as_url_params(self):
@@ -288,11 +314,16 @@ class Preferences(object):
settings_kv['disabled_plugins'] = ','.join(self.plugins.disabled)
settings_kv['enabled_plugins'] = ','.join(self.plugins.enabled)
+ settings_kv['tokens'] = ','.join(self.tokens.values)
+
return urlsafe_b64encode(compress(urlencode(settings_kv).encode('utf-8'))).decode('utf-8')
def parse_encoded_data(self, input_data):
decoded_data = decompress(urlsafe_b64decode(input_data.encode('utf-8')))
- self.parse_dict({x: y[0] for x, y in parse_qs(unicode(decoded_data)).items()})
+ dict_data = {}
+ for x, y in parse_qs(decoded_data).items():
+ dict_data[x.decode('utf8')] = y[0].decode('utf8')
+ self.parse_dict(dict_data)
def parse_dict(self, input_data):
for user_setting_name, user_setting in input_data.items():
@@ -304,6 +335,8 @@ class Preferences(object):
elif user_setting_name == 'disabled_plugins':
self.plugins.parse_cookie((input_data.get('disabled_plugins', ''),
input_data.get('enabled_plugins', '')))
+ elif user_setting_name == 'tokens':
+ self.tokens.parse(user_setting)
elif not any(user_setting_name.startswith(x) for x in [
'enabled_',
'disabled_',
@@ -325,6 +358,8 @@ class Preferences(object):
enabled_categories.append(user_setting_name[len('category_'):])
elif user_setting_name.startswith('plugin_'):
disabled_plugins.append(user_setting_name)
+ elif user_setting_name == 'tokens':
+ self.tokens.parse_form(user_setting)
else:
self.unknown_params[user_setting_name] = user_setting
self.key_value_settings['categories'].parse_form(enabled_categories)
@@ -343,6 +378,18 @@ class Preferences(object):
user_setting.save(user_setting_name, resp)
self.engines.save(resp)
self.plugins.save(resp)
+ self.tokens.save('tokens', resp)
for k, v in self.unknown_params.items():
resp.set_cookie(k, v, max_age=COOKIE_MAX_AGE)
return resp
+
+ def validate_token(self, engine):
+ valid = True
+ if hasattr(engine, 'tokens') and engine.tokens:
+ valid = False
+ for token in self.tokens.values:
+ if token in engine.tokens:
+ valid = True
+ break
+
+ return valid
diff --git a/searx/query.py b/searx/query.py
index f76bd91d3..79afa0245 100644
--- a/searx/query.py
+++ b/searx/query.py
@@ -43,6 +43,7 @@ class RawTextQuery(object):
self.query_parts = []
self.engines = []
self.languages = []
+ self.timeout_limit = None
self.specific = False
# parse query, if tags are set, which
@@ -69,6 +70,21 @@ class RawTextQuery(object):
self.query_parts.append(query_part)
continue
+ # this force the timeout
+ if query_part[0] == '<':
+ try:
+ raw_timeout_limit = int(query_part[1:])
+ if raw_timeout_limit < 100:
+ # below 100, the unit is the second ( <3 = 3 seconds timeout )
+ self.timeout_limit = float(raw_timeout_limit)
+ else:
+ # 100 or above, the unit is the millisecond ( <850 = 850 milliseconds timeout )
+ self.timeout_limit = raw_timeout_limit / 1000.0
+ parse_next = True
+ except ValueError:
+ # error not reported to the user
+ pass
+
# this force a language
if query_part[0] == ':':
lang = query_part[1:].lower().replace('_', '-')
@@ -145,6 +161,7 @@ class RawTextQuery(object):
self.query_parts[-1] = search_query
else:
self.query_parts.append(search_query)
+ return self
def getSearchQuery(self):
if len(self.query_parts):
@@ -160,14 +177,17 @@ class RawTextQuery(object):
class SearchQuery(object):
"""container for all the search parameters (query, language, etc...)"""
- def __init__(self, query, engines, categories, lang, safesearch, pageno, time_range):
+ def __init__(self, query, engines, categories, lang, safesearch, pageno, time_range,
+ timeout_limit=None, preferences=None):
self.query = query.encode('utf-8')
self.engines = engines
self.categories = categories
self.lang = lang
self.safesearch = safesearch
self.pageno = pageno
- self.time_range = time_range
+ self.time_range = None if time_range in ('', 'None', None) else time_range
+ self.timeout_limit = timeout_limit
+ self.preferences = preferences
def __str__(self):
return str(self.query) + ";" + str(self.engines)
diff --git a/searx/results.py b/searx/results.py
index cb204a682..3b1e4bd62 100644
--- a/searx/results.py
+++ b/searx/results.py
@@ -67,8 +67,9 @@ def merge_two_infoboxes(infobox1, infobox2):
for url2 in infobox2.get('urls', []):
unique_url = True
- for url1 in infobox1.get('urls', []):
- if compare_urls(urlparse(url1.get('url', '')), urlparse(url2.get('url', ''))):
+ parsed_url2 = urlparse(url2.get('url', ''))
+ for url1 in urls1:
+ if compare_urls(urlparse(url1.get('url', '')), parsed_url2):
unique_url = False
break
if unique_url:
@@ -136,6 +137,7 @@ class ResultContainer(object):
self._ordered = False
self.paging = False
self.unresponsive_engines = set()
+ self.timings = []
def extend(self, engine_name, results):
for result in list(results):
@@ -187,8 +189,9 @@ class ResultContainer(object):
add_infobox = True
infobox_id = infobox.get('id', None)
if infobox_id is not None:
+ parsed_url_infobox_id = urlparse(infobox_id)
for existingIndex in self.infoboxes:
- if compare_urls(urlparse(existingIndex.get('id', '')), urlparse(infobox_id)):
+ if compare_urls(urlparse(existingIndex.get('id', '')), parsed_url_infobox_id):
merge_two_infoboxes(existingIndex, infobox)
add_infobox = False
@@ -196,6 +199,13 @@ class ResultContainer(object):
self.infoboxes.append(infobox)
def _merge_result(self, result, position):
+ if 'url' in result:
+ self.__merge_url_result(result, position)
+ return
+
+ self.__merge_result_no_url(result, position)
+
+ def __merge_url_result(self, result, position):
result['parsed_url'] = urlparse(result['url'])
# if the result has no scheme, use http as default
@@ -209,42 +219,60 @@ class ResultContainer(object):
if result.get('content'):
result['content'] = WHITESPACE_REGEX.sub(' ', result['content'])
- # check for duplicates
- duplicated = False
- for merged_result in self._merged_results:
- if compare_urls(result['parsed_url'], merged_result['parsed_url'])\
- and result.get('template') == merged_result.get('template'):
- duplicated = merged_result
- break
-
- # merge duplicates together
+ duplicated = self.__find_duplicated_http_result(result)
if duplicated:
- # using content with more text
- if result_content_len(result.get('content', '')) >\
- result_content_len(duplicated.get('content', '')):
- duplicated['content'] = result['content']
-
- # merge all result's parameters not found in duplicate
- for key in result.keys():
- if not duplicated.get(key):
- duplicated[key] = result.get(key)
-
- # add the new position
- duplicated['positions'].append(position)
-
- # add engine to list of result-engines
- duplicated['engines'].add(result['engine'])
-
- # using https if possible
- if duplicated['parsed_url'].scheme != 'https' and result['parsed_url'].scheme == 'https':
- duplicated['url'] = result['parsed_url'].geturl()
- duplicated['parsed_url'] = result['parsed_url']
+ self.__merge_duplicated_http_result(duplicated, result, position)
+ return
# if there is no duplicate found, append result
- else:
- result['positions'] = [position]
- with RLock():
- self._merged_results.append(result)
+ result['positions'] = [position]
+ with RLock():
+ self._merged_results.append(result)
+
+ def __find_duplicated_http_result(self, result):
+ result_template = result.get('template')
+ for merged_result in self._merged_results:
+ if 'parsed_url' not in merged_result:
+ continue
+ if compare_urls(result['parsed_url'], merged_result['parsed_url'])\
+ and result_template == merged_result.get('template'):
+ if result_template != 'images.html':
+ # not an image, same template, same url : it's a duplicate
+ return merged_result
+ else:
+ # it's an image
+ # it's a duplicate if the parsed_url, template and img_src are differents
+ if result.get('img_src', '') == merged_result.get('img_src', ''):
+ return merged_result
+ return None
+
+ def __merge_duplicated_http_result(self, duplicated, result, position):
+ # using content with more text
+ if result_content_len(result.get('content', '')) >\
+ result_content_len(duplicated.get('content', '')):
+ duplicated['content'] = result['content']
+
+ # merge all result's parameters not found in duplicate
+ for key in result.keys():
+ if not duplicated.get(key):
+ duplicated[key] = result.get(key)
+
+ # add the new position
+ duplicated['positions'].append(position)
+
+ # add engine to list of result-engines
+ duplicated['engines'].add(result['engine'])
+
+ # using https if possible
+ if duplicated['parsed_url'].scheme != 'https' and result['parsed_url'].scheme == 'https':
+ duplicated['url'] = result['parsed_url'].geturl()
+ duplicated['parsed_url'] = result['parsed_url']
+
+ def __merge_result_no_url(self, result, position):
+ result['engines'] = set([result['engine']])
+ result['positions'] = [position]
+ with RLock():
+ self._merged_results.append(result)
def order_results(self):
for result in self._merged_results:
@@ -319,3 +347,13 @@ class ResultContainer(object):
def add_unresponsive_engine(self, engine_error):
self.unresponsive_engines.add(engine_error)
+
+ def add_timing(self, engine_name, engine_time, page_load_time):
+ self.timings.append({
+ 'engine': engines[engine_name].shortcut,
+ 'total': engine_time,
+ 'load': page_load_time
+ })
+
+ def get_timings(self):
+ return self.timings
diff --git a/searx/search.py b/searx/search.py
index b81542f1a..2dcc4c8f7 100644
--- a/searx/search.py
+++ b/searx/search.py
@@ -45,6 +45,16 @@ if sys.version_info[0] == 3:
logger = logger.getChild('search')
number_of_searches = 0
+max_request_timeout = settings.get('outgoing', {}).get('max_request_timeout' or None)
+if max_request_timeout is None:
+ logger.info('max_request_timeout={0}'.format(max_request_timeout))
+else:
+ if isinstance(max_request_timeout, float):
+ logger.info('max_request_timeout={0} second(s)'.format(max_request_timeout))
+ else:
+ logger.critical('outgoing.max_request_timeout if defined has to be float')
+ from sys import exit
+ exit(1)
def send_http_request(engine, request_params):
@@ -67,17 +77,17 @@ def send_http_request(engine, request_params):
return req(request_params['url'], **request_args)
-def search_one_request(engine, query, request_params):
+def search_one_http_request(engine, query, request_params):
# update request parameters dependent on
# search-engine (contained in engines folder)
engine.request(query, request_params)
# ignoring empty urls
if request_params['url'] is None:
- return []
+ return None
if not request_params['url']:
- return []
+ return None
# send request
response = send_http_request(engine, request_params)
@@ -87,7 +97,53 @@ def search_one_request(engine, query, request_params):
return engine.response(response)
+def search_one_offline_request(engine, query, request_params):
+ return engine.search(query, request_params)
+
+
def search_one_request_safe(engine_name, query, request_params, result_container, start_time, timeout_limit):
+ if engines[engine_name].offline:
+ return search_one_offline_request_safe(engine_name, query, request_params, result_container, start_time, timeout_limit) # noqa
+ return search_one_http_request_safe(engine_name, query, request_params, result_container, start_time, timeout_limit)
+
+
+def search_one_offline_request_safe(engine_name, query, request_params, result_container, start_time, timeout_limit):
+ engine = engines[engine_name]
+
+ try:
+ search_results = search_one_offline_request(engine, query, request_params)
+
+ if search_results:
+ result_container.extend(engine_name, search_results)
+
+ engine_time = time() - start_time
+ result_container.add_timing(engine_name, engine_time, engine_time)
+ with threading.RLock():
+ engine.stats['engine_time'] += engine_time
+ engine.stats['engine_time_count'] += 1
+
+ except ValueError as e:
+ record_offline_engine_stats_on_error(engine, result_container, start_time)
+ logger.exception('engine {0} : invalid input : {1}'.format(engine_name, e))
+ except Exception as e:
+ record_offline_engine_stats_on_error(engine, result_container, start_time)
+
+ result_container.add_unresponsive_engine((
+ engine_name,
+ u'{0}: {1}'.format(gettext('unexpected crash'), e),
+ ))
+ logger.exception('engine {0} : exception : {1}'.format(engine_name, e))
+
+
+def record_offline_engine_stats_on_error(engine, result_container, start_time):
+ engine_time = time() - start_time
+ result_container.add_timing(engine.name, engine_time, engine_time)
+
+ with threading.RLock():
+ engine.stats['errors'] += 1
+
+
+def search_one_http_request_safe(engine_name, query, request_params, result_container, start_time, timeout_limit):
# set timeout for all HTTP requests
requests_lib.set_timeout_for_thread(timeout_limit, start_time=start_time)
# reset the HTTP total time
@@ -101,22 +157,31 @@ def search_one_request_safe(engine_name, query, request_params, result_container
try:
# send requests and parse the results
- search_results = search_one_request(engine, query, request_params)
-
- # add results
- result_container.extend(engine_name, search_results)
-
- # update engine time when there is no exception
- with threading.RLock():
- engine.stats['engine_time'] += time() - start_time
- engine.stats['engine_time_count'] += 1
- # update stats with the total HTTP time
- engine.stats['page_load_time'] += requests_lib.get_time_for_thread()
- engine.stats['page_load_count'] += 1
+ search_results = search_one_http_request(engine, query, request_params)
+
+ # check if the engine accepted the request
+ if search_results is not None:
+ # yes, so add results
+ result_container.extend(engine_name, search_results)
+
+ # update engine time when there is no exception
+ engine_time = time() - start_time
+ page_load_time = requests_lib.get_time_for_thread()
+ result_container.add_timing(engine_name, engine_time, page_load_time)
+ with threading.RLock():
+ engine.stats['engine_time'] += engine_time
+ engine.stats['engine_time_count'] += 1
+ # update stats with the total HTTP time
+ engine.stats['page_load_time'] += page_load_time
+ engine.stats['page_load_count'] += 1
except Exception as e:
- search_duration = time() - start_time
+ # Timing
+ engine_time = time() - start_time
+ page_load_time = requests_lib.get_time_for_thread()
+ result_container.add_timing(engine_name, engine_time, page_load_time)
+ # Record the errors
with threading.RLock():
engine.stats['errors'] += 1
@@ -125,14 +190,14 @@ def search_one_request_safe(engine_name, query, request_params, result_container
# requests timeout (connect or read)
logger.error("engine {0} : HTTP requests timeout"
"(search duration : {1} s, timeout: {2} s) : {3}"
- .format(engine_name, search_duration, timeout_limit, e.__class__.__name__))
+ .format(engine_name, engine_time, timeout_limit, e.__class__.__name__))
requests_exception = True
elif (issubclass(e.__class__, requests.exceptions.RequestException)):
result_container.add_unresponsive_engine((engine_name, gettext('request exception')))
# other requests exception
logger.exception("engine {0} : requests exception"
"(search duration : {1} s, timeout: {2} s) : {3}"
- .format(engine_name, search_duration, timeout_limit, e))
+ .format(engine_name, engine_time, timeout_limit, e))
requests_exception = True
else:
result_container.add_unresponsive_engine((
@@ -189,6 +254,13 @@ def default_request_params():
}
+# remove duplicate queries.
+# FIXME: does not fix "!music !soundcloud", because the categories are 'none' and 'music'
+def deduplicate_query_engines(query_engines):
+ uniq_query_engines = {q["category"] + '|' + q["name"]: q for q in query_engines}
+ return uniq_query_engines.values()
+
+
def get_search_query_from_webapp(preferences, form):
# no text for the query ?
if not form.get('q'):
@@ -249,6 +321,18 @@ def get_search_query_from_webapp(preferences, form):
# query_engines
query_engines = raw_text_query.engines
+ # timeout_limit
+ query_timeout = raw_text_query.timeout_limit
+ if query_timeout is None and 'timeout_limit' in form:
+ raw_time_limit = form.get('timeout_limit')
+ if raw_time_limit in ['None', '']:
+ raw_time_limit = None
+ else:
+ try:
+ query_timeout = float(raw_time_limit)
+ except ValueError:
+ raise SearxParameterException('timeout_limit', raw_time_limit)
+
# query_categories
query_categories = []
@@ -319,8 +403,12 @@ def get_search_query_from_webapp(preferences, form):
for engine in categories[categ]
if (engine.name, categ) not in disabled_engines)
- return SearchQuery(query, query_engines, query_categories,
- query_lang, query_safesearch, query_pageno, query_time_range)
+ query_engines = deduplicate_query_engines(query_engines)
+
+ return (SearchQuery(query, query_engines, query_categories,
+ query_lang, query_safesearch, query_pageno,
+ query_time_range, query_timeout, preferences),
+ raw_text_query)
class Search(object):
@@ -332,6 +420,7 @@ class Search(object):
super(Search, self).__init__()
self.search_query = search_query
self.result_container = ResultContainer()
+ self.actual_timeout = None
# do search-request
def search(self):
@@ -361,7 +450,7 @@ class Search(object):
search_query = self.search_query
# max of all selected engine timeout
- timeout_limit = 0
+ default_timeout = 0
# start search-reqest for all selected engines
for selected_engine in search_query.engines:
@@ -370,6 +459,9 @@ class Search(object):
engine = engines[selected_engine['name']]
+ if not search_query.preferences.validate_token(engine):
+ continue
+
# skip suspended engines
if engine.suspend_end_time >= time():
logger.debug('Engine currently suspended: %s', selected_engine['name'])
@@ -384,29 +476,51 @@ class Search(object):
continue
# set default request parameters
- request_params = default_request_params()
- request_params['headers']['User-Agent'] = user_agent
- request_params['category'] = selected_engine['category']
- request_params['pageno'] = search_query.pageno
+ request_params = {}
+ if not engine.offline:
+ request_params = default_request_params()
+ request_params['headers']['User-Agent'] = user_agent
- if hasattr(engine, 'language') and engine.language:
- request_params['language'] = engine.language
- else:
- request_params['language'] = search_query.lang
+ if hasattr(engine, 'language') and engine.language:
+ request_params['language'] = engine.language
+ else:
+ request_params['language'] = search_query.lang
- # 0 = None, 1 = Moderate, 2 = Strict
- request_params['safesearch'] = search_query.safesearch
- request_params['time_range'] = search_query.time_range
+ request_params['safesearch'] = search_query.safesearch
+ request_params['time_range'] = search_query.time_range
+
+ request_params['category'] = selected_engine['category']
+ request_params['pageno'] = search_query.pageno
# append request to list
requests.append((selected_engine['name'], search_query.query, request_params))
- # update timeout_limit
- timeout_limit = max(timeout_limit, engine.timeout)
-
+ # update default_timeout
+ default_timeout = max(default_timeout, engine.timeout)
+
+ # adjust timeout
+ self.actual_timeout = default_timeout
+ query_timeout = self.search_query.timeout_limit
+
+ if max_request_timeout is None and query_timeout is None:
+ # No max, no user query: default_timeout
+ pass
+ elif max_request_timeout is None and query_timeout is not None:
+ # No max, but user query: From user query except if above default
+ self.actual_timeout = min(default_timeout, query_timeout)
+ elif max_request_timeout is not None and query_timeout is None:
+ # Max, no user query: Default except if above max
+ self.actual_timeout = min(default_timeout, max_request_timeout)
+ elif max_request_timeout is not None and query_timeout is not None:
+ # Max & user query: From user query except if above max
+ self.actual_timeout = min(query_timeout, max_request_timeout)
+
+ logger.debug("actual_timeout={0} (default_timeout={1}, ?timeout_limit={2}, max_request_timeout={3})"
+ .format(self.actual_timeout, default_timeout, query_timeout, max_request_timeout))
+
+ # send all search-request
if requests:
- # send all search-request
- search_multiple_requests(requests, self.result_container, start_time, timeout_limit)
+ search_multiple_requests(requests, self.result_container, start_time, self.actual_timeout)
start_new_thread(gc.collect, tuple())
# return results, suggestions, answers and infoboxes
diff --git a/searx/settings.yml b/searx/settings.yml
index 8f1a06a77..ab3de3951 100644
--- a/searx/settings.yml
+++ b/searx/settings.yml
@@ -26,12 +26,15 @@ ui:
# searx supports result proxification using an external service: https://github.com/asciimoo/morty
# uncomment below section if you have running morty proxy
+# the key is base64 encoded (keep the !!binary notation)
+# Note: since commit af77ec3, morty accepts a base64 encoded key.
#result_proxy:
# url : http://127.0.0.1:3000/
-# key : your_morty_proxy_key
+# key : !!binary "your_morty_proxy_key"
outgoing: # communication with search engines
- request_timeout : 2.0 # seconds
+ request_timeout : 2.0 # default timeout in seconds, can be override by engine
+ # max_request_timeout: 10.0 # the maximum timeout in seconds
useragent_suffix : "" # suffix of searx_useragent, could contain informations like an email address to the administrator
pool_connections : 100 # Number of different hosts
pool_maxsize : 10 # Number of simultaneous requests by host
@@ -75,9 +78,10 @@ engines:
categories : science
timeout : 4.0
- - name : base
- engine : base
- shortcut : bs
+# tmp suspended: dh key too small
+# - name : base
+# engine : base
+# shortcut : bs
- name : wikipedia
engine : wikipedia
@@ -112,6 +116,10 @@ engines:
disabled : True
shortcut : bb
+ - name : btdigg
+ engine : btdigg
+ shortcut : bt
+
- name : ccc-tv
engine : xpath
paging : False
@@ -153,11 +161,12 @@ engines:
weight : 2
disabled : True
- - name : digbt
- engine : digbt
- shortcut : dbt
- timeout : 6.0
- disabled : True
+# cloudflare protected
+# - name : digbt
+# engine : digbt
+# shortcut : dbt
+# timeout : 6.0
+# disabled : True
- name : digg
engine : digg
@@ -196,11 +205,11 @@ engines:
- name : etymonline
engine : xpath
paging : True
- search_url : http://etymonline.com/?search={query}&p={pageno}
- url_xpath : //a[contains(@class, "word--")]/@href
- title_xpath : //p[contains(@class, "word__name--")]/text()
- content_xpath : //section[contains(@class, "word__defination")]/object
- first_page_num : 0
+ search_url : https://etymonline.com/search?page={pageno}&q={query}
+ url_xpath : //a[contains(@class, "word__name--")]/@href
+ title_xpath : //a[contains(@class, "word__name--")]
+ content_xpath : //section[contains(@class, "word__defination")]
+ first_page_num : 1
shortcut : et
disabled : True
@@ -308,31 +317,37 @@ engines:
shortcut : gos
- name : google play apps
- engine : xpath
- search_url : https://play.google.com/store/search?q={query}&c=apps
- url_xpath : //a[@class="title"]/@href
- title_xpath : //a[@class="title"]
- content_xpath : //a[@class="subtitle"]
+ engine : xpath
+ search_url : https://play.google.com/store/search?q={query}&c=apps
+ results_xpath : '//div[@class="WHE7ib mpg5gc"]'
+ title_xpath : './/div[@class="RZEgze"]//div[@title and not(@title="")]/a'
+ url_xpath : './/div[@class="RZEgze"]//div[@title and not(@title="")]/a/@href'
+ content_xpath : './/div[@class="RZEgze"]//a[@class="mnKHRc"]'
+ thumbnail_xpath : './/div[@class="uzcko"]/div/span[1]//img/@data-src'
categories : files
shortcut : gpa
disabled : True
- name : google play movies
- engine : xpath
- search_url : https://play.google.com/store/search?q={query}&c=movies
- url_xpath : //a[@class="title"]/@href
- title_xpath : //a[@class="title"]/@title
- content_xpath : //a[contains(@class, "subtitle")]
+ engine : xpath
+ search_url : https://play.google.com/store/search?q={query}&c=movies
+ results_xpath : '//div[@class="WHE7ib mpg5gc"]'
+ title_xpath : './/div[@class="RZEgze"]//div[@title and not(@title="")]/a'
+ url_xpath : './/div[@class="RZEgze"]//div[@title and not(@title="")]/a/@href'
+ content_xpath : './/div[@class="RZEgze"]//a[@class="mnKHRc"]'
+ thumbnail_xpath : './/div[@class="uzcko"]/div/span[1]//img/@data-src'
categories : videos
shortcut : gpm
disabled : True
- name : google play music
- engine : xpath
- search_url : https://play.google.com/store/search?q={query}&c=music
- url_xpath : //a[@class="title"]/@href
- title_xpath : //a[@class="title"]
- content_xpath : //a[@class="subtitle"]
+ engine : xpath
+ search_url : https://play.google.com/store/search?q={query}&c=music
+ results_xpath : '//div[@class="WHE7ib mpg5gc"]'
+ title_xpath : './/div[@class="RZEgze"]//div[@title and not(@title="")]/a'
+ url_xpath : './/div[@class="RZEgze"]//div[@title and not(@title="")]/a/@href'
+ content_xpath : './/div[@class="RZEgze"]//a[@class="mnKHRc"]'
+ thumbnail_xpath : './/div[@class="uzcko"]/div/span[1]//img/@data-src'
categories : music
shortcut : gps
disabled : True
@@ -379,6 +394,12 @@ engines:
timeout : 6.0
disabled : True
+ - name : invidious
+ engine : invidious
+ base_url : 'https://invidio.us/'
+ shortcut: iv
+ timeout : 5.0
+
- name: kickass
engine : kickass
shortcut : kc
@@ -387,7 +408,7 @@ engines:
- name : library genesis
engine : xpath
- search_url : http://libgen.io/search.php?req={query}
+ search_url : https://libgen.is/search.php?req={query}
url_xpath : //a[contains(@href,"bookfi.net")]/@href
title_xpath : //a[contains(@href,"book/")]/text()[1]
content_xpath : //td/a[1][contains(@href,"=author")]/text()
@@ -415,11 +436,25 @@ engines:
engine : mixcloud
shortcut : mc
+ - name : npm
+ engine : json_engine
+ paging : True
+ search_url : https://api.npms.io/v2/search?q={query}&size=25&from={pageno}
+ results_query : results
+ url_query : package/links/npm
+ title_query : package/name
+ content_query : package/description
+ page_size : 25
+ categories : it
+ disabled: True
+ timeout: 5.0
+ shortcut : npm
+
- name : nyaa
engine : nyaa
shortcut : nt
disabled : True
-
+
- name : acgsou
engine : acgsou
shortcut : acg
@@ -429,7 +464,7 @@ engines:
- name : openairedatasets
engine : json_engine
paging : True
- search_url : http://api.openaire.eu/search/datasets?format=json&page={pageno}&size=10&title={query}
+ search_url : https://api.openaire.eu/search/datasets?format=json&page={pageno}&size=10&title={query}
results_query : response/results/result
url_query : metadata/oaf:entity/oaf:result/children/instance/webresource/url/$
title_query : metadata/oaf:entity/oaf:result/title/$
@@ -441,7 +476,7 @@ engines:
- name : openairepublications
engine : json_engine
paging : True
- search_url : http://api.openaire.eu/search/publications?format=json&page={pageno}&size=10&title={query}
+ search_url : https://api.openaire.eu/search/publications?format=json&page={pageno}&size=10&title={query}
results_query : response/results/result
url_query : metadata/oaf:entity/oaf:result/children/instance/webresource/url/$
title_query : metadata/oaf:entity/oaf:result/title/$
@@ -517,10 +552,11 @@ engines:
timeout : 10.0
disabled : True
- - name : scanr structures
- shortcut: scs
- engine : scanr_structures
- disabled : True
+# tmp suspended: bad certificate
+# - name : scanr structures
+# shortcut: scs
+# engine : scanr_structures
+# disabled : True
- name : soundcloud
engine : soundcloud
@@ -563,9 +599,12 @@ engines:
shortcut : se
categories : science
- - name : spotify
- engine : spotify
- shortcut : stf
+# Spotify needs API credentials
+# - name : spotify
+# engine : spotify
+# shortcut : stf
+# api_client_id : *******
+# api_client_secret : *******
- name : startpage
engine : startpage
@@ -669,9 +708,9 @@ engines:
shortcut: vo
categories: social media
search_url : https://searchvoat.co/?t={query}
- url_xpath : //div[@class="entry"]/p/a[@class="title"]/@href
- title_xpath : //div[@class="entry"]/p/a[@class="title"]
- content_xpath : //div[@class="entry"]/p/span[@class="domain"]
+ url_xpath : //div[@class="entry"]//p[@class="title"]/a/@href
+ title_xpath : //div[@class="entry"]//p[@class="title"]/a/text()
+ content_xpath : //div[@class="entry"]//span[@class="domain"]/a/text()
timeout : 10.0
disabled : True
@@ -680,7 +719,7 @@ engines:
shortcut : 1337x
disabled : True
- - name : Duden
+ - name : duden
engine : duden
shortcut : du
disabled : True
@@ -709,10 +748,15 @@ engines:
title_xpath : ./h2
content_xpath : ./p[@class="s"]
suggestion_xpath : /html/body//div[@class="top-info"]/p[@class="top-info spell"]/a
- first_page_num : 1
+ first_page_num : 0
page_size : 10
disabled : True
+ - name : seedpeer
+ shortcut : speu
+ engine : seedpeer
+ categories: files, music, videos
+
# - name : yacy
# engine : yacy
# shortcut : ya
@@ -731,6 +775,7 @@ locales:
en : English
ar : العَرَبِيَّة (Arabic)
bg : Български (Bulgarian)
+ bo : བོད་སྐད་ (Tibetian)
ca : Català (Catalan)
cs : Čeština (Czech)
cy : Cymraeg (Welsh)
@@ -739,6 +784,7 @@ locales:
el_GR : Ελληνικά (Greek_Greece)
eo : Esperanto (Esperanto)
es : Español (Spanish)
+ et : Eesti (Estonian)
eu : Euskara (Basque)
fa_IR : (fārsī) فارسى (Persian)
fi : Suomi (Finnish)
@@ -748,10 +794,13 @@ locales:
he : עברית (Hebrew)
hr : Hrvatski (Croatian)
hu : Magyar (Hungarian)
+ ia : Interlingua (Interlingua)
it : Italiano (Italian)
ja : 日本語 (Japanese)
+ lt : Lietuvių (Lithuanian)
nl : Nederlands (Dutch)
nl_BE : Vlaams (Dutch_Belgium)
+ oc : Lenga D'òc (Occitan)
pl : Polski (Polish)
pt : Português (Portuguese)
pt_BR : Português (Portuguese_Brazil)
@@ -762,16 +811,17 @@ locales:
sr : српски (Serbian)
sv : Svenska (Swedish)
te : తెలుగు (telugu)
+ ta : தமிழ் (Tamil)
tr : Türkçe (Turkish)
uk : українська мова (Ukrainian)
- vi : tiếng việt (㗂越)
+ vi : tiếng việt (Vietnamese)
zh : 中文 (Chinese)
zh_TW : 國語 (Taiwanese Mandarin)
doi_resolvers :
oadoi.org : 'https://oadoi.org/'
doi.org : 'https://doi.org/'
- doai.io : 'http://doai.io/'
- sci-hub.tw : 'http://sci-hub.tw/'
+ doai.io : 'https://doai.io/'
+ sci-hub.tw : 'https://sci-hub.tw/'
default_doi_resolver : 'oadoi.org'
diff --git a/searx/settings_robot.yml b/searx/settings_robot.yml
index 070a0edb6..25f229e56 100644
--- a/searx/settings_robot.yml
+++ b/searx/settings_robot.yml
@@ -39,3 +39,11 @@ engines:
locales:
en : English
hu : Magyar
+
+doi_resolvers :
+ oadoi.org : 'https://oadoi.org/'
+ doi.org : 'https://doi.org/'
+ doai.io : 'https://doai.io/'
+ sci-hub.tw : 'https://sci-hub.tw/'
+
+default_doi_resolver : 'oadoi.org'
diff --git a/searx/static/css/bootstrap.min.css b/searx/static/css/bootstrap.min.css
index 691604be6..1caa22cc6 100644
--- a/searx/static/css/bootstrap.min.css
+++ b/searx/static/css/bootstrap.min.css
@@ -1 +1 @@
-/*! normalize.css v3.0.1 | MIT License | git.io/normalize */html{font-family:sans-serif;-ms-text-size-adjust:100%;-webkit-text-size-adjust:100%}body{margin:0}article,aside,details,figcaption,figure,footer,header,hgroup,main,nav,section,summary{display:block}audio,canvas,progress,video{display:inline-block;vertical-align:baseline}audio:not([controls]){display:none;height:0}[hidden],template{display:none}a{background:transparent}a:active,a:hover{outline:0}abbr[title]{border-bottom:1px dotted}b,strong{font-weight:bold}dfn{font-style:italic}h1{font-size:2em;margin:.67em 0}mark{background:#ff0;color:#000}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sup{top:-0.5em}sub{bottom:-0.25em}img{border:0}svg:not(:root){overflow:hidden}figure{margin:1em 40px}hr{-moz-box-sizing:content-box;box-sizing:content-box;height:0}pre{overflow:auto}code,kbd,pre,samp{font-family:monospace,monospace;font-size:1em}button,input,optgroup,select,textarea{color:inherit;font:inherit;margin:0}button{overflow:visible}button,select{text-transform:none}button,html input[type="button"],input[type="reset"],input[type="submit"]{-webkit-appearance:button;cursor:pointer}button[disabled],html input[disabled]{cursor:default}button::-moz-focus-inner,input::-moz-focus-inner{border:0;padding:0}input{line-height:normal}input[type="checkbox"],input[type="radio"]{box-sizing:border-box;padding:0}input[type="number"]::-webkit-inner-spin-button,input[type="number"]::-webkit-outer-spin-button{height:auto}input[type="search"]{-webkit-appearance:textfield;-moz-box-sizing:content-box;-webkit-box-sizing:content-box;box-sizing:content-box}input[type="search"]::-webkit-search-cancel-button,input[type="search"]::-webkit-search-decoration{-webkit-appearance:none}fieldset{border:1px solid #c0c0c0;margin:0 2px;padding:.35em .625em .75em}legend{border:0;padding:0}textarea{overflow:auto}optgroup{font-weight:bold}table{border-collapse:collapse;border-spacing:0}td,th{padding:0}@media print{*{text-shadow:none !important;color:#000 !important;background:transparent !important;box-shadow:none !important}a,a:visited{text-decoration:underline}a[href]:after{content:" (" attr(href) ")"}abbr[title]:after{content:" (" attr(title) ")"}a[href^="javascript:"]:after,a[href^="#"]:after{content:""}pre,blockquote{border:1px solid #999;page-break-inside:avoid}thead{display:table-header-group}tr,img{page-break-inside:avoid}img{max-width:100% !important}p,h2,h3{orphans:3;widows:3}h2,h3{page-break-after:avoid}select{background:#fff !important}.navbar{display:none}.table td,.table th{background-color:#fff !important}.btn>.caret,.dropup>.btn>.caret{border-top-color:#000 !important}.label{border:1px solid #000}.table{border-collapse:collapse !important}.table-bordered th,.table-bordered td{border:1px solid #ddd !important}}@font-face{font-family:'Glyphicons Halflings';src:url('../fonts/glyphicons-halflings-regular.eot');src:url('../fonts/glyphicons-halflings-regular.eot?#iefix') format('embedded-opentype'),url('../fonts/glyphicons-halflings-regular.woff') format('woff'),url('../fonts/glyphicons-halflings-regular.ttf') format('truetype'),url('../fonts/glyphicons-halflings-regular.svg#glyphicons_halflingsregular') format('svg')}.glyphicon{position:relative;top:1px;display:inline-block;font-family:'Glyphicons Halflings';font-style:normal;font-weight:normal;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.glyphicon-asterisk:before{content:"\2a"}.glyphicon-plus:before{content:"\2b"}.glyphicon-euro:before{content:"\20ac"}.glyphicon-minus:before{content:"\2212"}.glyphicon-cloud:before{content:"\2601"}.glyphicon-envelope:before{content:"\2709"}.glyphicon-pencil:before{content:"\270f"}.glyphicon-glass:before{content:"\e001"}.glyphicon-music:before{content:"\e002"}.glyphicon-search:before{content:"\e003"}.glyphicon-heart:before{content:"\e005"}.glyphicon-star:before{content:"\e006"}.glyphicon-star-empty:before{content:"\e007"}.glyphicon-user:before{content:"\e008"}.glyphicon-film:before{content:"\e009"}.glyphicon-th-large:before{content:"\e010"}.glyphicon-th:before{content:"\e011"}.glyphicon-th-list:before{content:"\e012"}.glyphicon-ok:before{content:"\e013"}.glyphicon-remove:before{content:"\e014"}.glyphicon-zoom-in:before{content:"\e015"}.glyphicon-zoom-out:before{content:"\e016"}.glyphicon-off:before{content:"\e017"}.glyphicon-signal:before{content:"\e018"}.glyphicon-cog:before{content:"\e019"}.glyphicon-trash:before{content:"\e020"}.glyphicon-home:before{content:"\e021"}.glyphicon-file:before{content:"\e022"}.glyphicon-time:before{content:"\e023"}.glyphicon-road:before{content:"\e024"}.glyphicon-download-alt:before{content:"\e025"}.glyphicon-download:before{content:"\e026"}.glyphicon-upload:before{content:"\e027"}.glyphicon-inbox:before{content:"\e028"}.glyphicon-play-circle:before{content:"\e029"}.glyphicon-repeat:before{content:"\e030"}.glyphicon-refresh:before{content:"\e031"}.glyphicon-list-alt:before{content:"\e032"}.glyphicon-lock:before{content:"\e033"}.glyphicon-flag:before{content:"\e034"}.glyphicon-headphones:before{content:"\e035"}.glyphicon-volume-off:before{content:"\e036"}.glyphicon-volume-down:before{content:"\e037"}.glyphicon-volume-up:before{content:"\e038"}.glyphicon-qrcode:before{content:"\e039"}.glyphicon-barcode:before{content:"\e040"}.glyphicon-tag:before{content:"\e041"}.glyphicon-tags:before{content:"\e042"}.glyphicon-book:before{content:"\e043"}.glyphicon-bookmark:before{content:"\e044"}.glyphicon-print:before{content:"\e045"}.glyphicon-camera:before{content:"\e046"}.glyphicon-font:before{content:"\e047"}.glyphicon-bold:before{content:"\e048"}.glyphicon-italic:before{content:"\e049"}.glyphicon-text-height:before{content:"\e050"}.glyphicon-text-width:before{content:"\e051"}.glyphicon-align-left:before{content:"\e052"}.glyphicon-align-center:before{content:"\e053"}.glyphicon-align-right:before{content:"\e054"}.glyphicon-align-justify:before{content:"\e055"}.glyphicon-list:before{content:"\e056"}.glyphicon-indent-left:before{content:"\e057"}.glyphicon-indent-right:before{content:"\e058"}.glyphicon-facetime-video:before{content:"\e059"}.glyphicon-picture:before{content:"\e060"}.glyphicon-map-marker:before{content:"\e062"}.glyphicon-adjust:before{content:"\e063"}.glyphicon-tint:before{content:"\e064"}.glyphicon-edit:before{content:"\e065"}.glyphicon-share:before{content:"\e066"}.glyphicon-check:before{content:"\e067"}.glyphicon-move:before{content:"\e068"}.glyphicon-step-backward:before{content:"\e069"}.glyphicon-fast-backward:before{content:"\e070"}.glyphicon-backward:before{content:"\e071"}.glyphicon-play:before{content:"\e072"}.glyphicon-pause:before{content:"\e073"}.glyphicon-stop:before{content:"\e074"}.glyphicon-forward:before{content:"\e075"}.glyphicon-fast-forward:before{content:"\e076"}.glyphicon-step-forward:before{content:"\e077"}.glyphicon-eject:before{content:"\e078"}.glyphicon-chevron-left:before{content:"\e079"}.glyphicon-chevron-right:before{content:"\e080"}.glyphicon-plus-sign:before{content:"\e081"}.glyphicon-minus-sign:before{content:"\e082"}.glyphicon-remove-sign:before{content:"\e083"}.glyphicon-ok-sign:before{content:"\e084"}.glyphicon-question-sign:before{content:"\e085"}.glyphicon-info-sign:before{content:"\e086"}.glyphicon-screenshot:before{content:"\e087"}.glyphicon-remove-circle:before{content:"\e088"}.glyphicon-ok-circle:before{content:"\e089"}.glyphicon-ban-circle:before{content:"\e090"}.glyphicon-arrow-left:before{content:"\e091"}.glyphicon-arrow-right:before{content:"\e092"}.glyphicon-arrow-up:before{content:"\e093"}.glyphicon-arrow-down:before{content:"\e094"}.glyphicon-share-alt:before{content:"\e095"}.glyphicon-resize-full:before{content:"\e096"}.glyphicon-resize-small:before{content:"\e097"}.glyphicon-exclamation-sign:before{content:"\e101"}.glyphicon-gift:before{content:"\e102"}.glyphicon-leaf:before{content:"\e103"}.glyphicon-fire:before{content:"\e104"}.glyphicon-eye-open:before{content:"\e105"}.glyphicon-eye-close:before{content:"\e106"}.glyphicon-warning-sign:before{content:"\e107"}.glyphicon-plane:before{content:"\e108"}.glyphicon-calendar:before{content:"\e109"}.glyphicon-random:before{content:"\e110"}.glyphicon-comment:before{content:"\e111"}.glyphicon-magnet:before{content:"\e112"}.glyphicon-chevron-up:before{content:"\e113"}.glyphicon-chevron-down:before{content:"\e114"}.glyphicon-retweet:before{content:"\e115"}.glyphicon-shopping-cart:before{content:"\e116"}.glyphicon-folder-close:before{content:"\e117"}.glyphicon-folder-open:before{content:"\e118"}.glyphicon-resize-vertical:before{content:"\e119"}.glyphicon-resize-horizontal:before{content:"\e120"}.glyphicon-hdd:before{content:"\e121"}.glyphicon-bullhorn:before{content:"\e122"}.glyphicon-bell:before{content:"\e123"}.glyphicon-certificate:before{content:"\e124"}.glyphicon-thumbs-up:before{content:"\e125"}.glyphicon-thumbs-down:before{content:"\e126"}.glyphicon-hand-right:before{content:"\e127"}.glyphicon-hand-left:before{content:"\e128"}.glyphicon-hand-up:before{content:"\e129"}.glyphicon-hand-down:before{content:"\e130"}.glyphicon-circle-arrow-right:before{content:"\e131"}.glyphicon-circle-arrow-left:before{content:"\e132"}.glyphicon-circle-arrow-up:before{content:"\e133"}.glyphicon-circle-arrow-down:before{content:"\e134"}.glyphicon-globe:before{content:"\e135"}.glyphicon-wrench:before{content:"\e136"}.glyphicon-tasks:before{content:"\e137"}.glyphicon-filter:before{content:"\e138"}.glyphicon-briefcase:before{content:"\e139"}.glyphicon-fullscreen:before{content:"\e140"}.glyphicon-dashboard:before{content:"\e141"}.glyphicon-paperclip:before{content:"\e142"}.glyphicon-heart-empty:before{content:"\e143"}.glyphicon-link:before{content:"\e144"}.glyphicon-phone:before{content:"\e145"}.glyphicon-pushpin:before{content:"\e146"}.glyphicon-usd:before{content:"\e148"}.glyphicon-gbp:before{content:"\e149"}.glyphicon-sort:before{content:"\e150"}.glyphicon-sort-by-alphabet:before{content:"\e151"}.glyphicon-sort-by-alphabet-alt:before{content:"\e152"}.glyphicon-sort-by-order:before{content:"\e153"}.glyphicon-sort-by-order-alt:before{content:"\e154"}.glyphicon-sort-by-attributes:before{content:"\e155"}.glyphicon-sort-by-attributes-alt:before{content:"\e156"}.glyphicon-unchecked:before{content:"\e157"}.glyphicon-expand:before{content:"\e158"}.glyphicon-collapse-down:before{content:"\e159"}.glyphicon-collapse-up:before{content:"\e160"}.glyphicon-log-in:before{content:"\e161"}.glyphicon-flash:before{content:"\e162"}.glyphicon-log-out:before{content:"\e163"}.glyphicon-new-window:before{content:"\e164"}.glyphicon-record:before{content:"\e165"}.glyphicon-save:before{content:"\e166"}.glyphicon-open:before{content:"\e167"}.glyphicon-saved:before{content:"\e168"}.glyphicon-import:before{content:"\e169"}.glyphicon-export:before{content:"\e170"}.glyphicon-send:before{content:"\e171"}.glyphicon-floppy-disk:before{content:"\e172"}.glyphicon-floppy-saved:before{content:"\e173"}.glyphicon-floppy-remove:before{content:"\e174"}.glyphicon-floppy-save:before{content:"\e175"}.glyphicon-floppy-open:before{content:"\e176"}.glyphicon-credit-card:before{content:"\e177"}.glyphicon-transfer:before{content:"\e178"}.glyphicon-cutlery:before{content:"\e179"}.glyphicon-header:before{content:"\e180"}.glyphicon-compressed:before{content:"\e181"}.glyphicon-earphone:before{content:"\e182"}.glyphicon-phone-alt:before{content:"\e183"}.glyphicon-tower:before{content:"\e184"}.glyphicon-stats:before{content:"\e185"}.glyphicon-sd-video:before{content:"\e186"}.glyphicon-hd-video:before{content:"\e187"}.glyphicon-subtitles:before{content:"\e188"}.glyphicon-sound-stereo:before{content:"\e189"}.glyphicon-sound-dolby:before{content:"\e190"}.glyphicon-sound-5-1:before{content:"\e191"}.glyphicon-sound-6-1:before{content:"\e192"}.glyphicon-sound-7-1:before{content:"\e193"}.glyphicon-copyright-mark:before{content:"\e194"}.glyphicon-registration-mark:before{content:"\e195"}.glyphicon-cloud-download:before{content:"\e197"}.glyphicon-cloud-upload:before{content:"\e198"}.glyphicon-tree-conifer:before{content:"\e199"}.glyphicon-tree-deciduous:before{content:"\e200"}*{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}*:before,*:after{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}html{font-size:10px;-webkit-tap-highlight-color:rgba(0,0,0,0)}body{font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:14px;line-height:1.42857143;color:#333;background-color:#fff}input,button,select,textarea{font-family:inherit;font-size:inherit;line-height:inherit}a{color:#428bca;text-decoration:none}a:hover,a:focus{color:#2a6496;text-decoration:underline}a:focus{outline:thin dotted;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}figure{margin:0}img{vertical-align:middle}.img-responsive,.thumbnail>img,.thumbnail a>img,.carousel-inner>.item>img,.carousel-inner>.item>a>img{display:block;width:100% \9;max-width:100%;height:auto}.img-rounded{border-radius:6px}.img-thumbnail{padding:4px;line-height:1.42857143;background-color:#fff;border:1px solid #ddd;border-radius:4px;-webkit-transition:all .2s ease-in-out;-o-transition:all .2s ease-in-out;transition:all .2s ease-in-out;display:inline-block;width:100% \9;max-width:100%;height:auto}.img-circle{border-radius:50%}hr{margin-top:20px;margin-bottom:20px;border:0;border-top:1px solid #eee}.sr-only{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0, 0, 0, 0);border:0}.sr-only-focusable:active,.sr-only-focusable:focus{position:static;width:auto;height:auto;margin:0;overflow:visible;clip:auto}h1,h2,h3,h4,h5,h6,.h1,.h2,.h3,.h4,.h5,.h6{font-family:inherit;font-weight:500;line-height:1.1;color:inherit}h1 small,h2 small,h3 small,h4 small,h5 small,h6 small,.h1 small,.h2 small,.h3 small,.h4 small,.h5 small,.h6 small,h1 .small,h2 .small,h3 .small,h4 .small,h5 .small,h6 .small,.h1 .small,.h2 .small,.h3 .small,.h4 .small,.h5 .small,.h6 .small{font-weight:normal;line-height:1;color:#777}h1,.h1,h2,.h2,h3,.h3{margin-top:20px;margin-bottom:10px}h1 small,.h1 small,h2 small,.h2 small,h3 small,.h3 small,h1 .small,.h1 .small,h2 .small,.h2 .small,h3 .small,.h3 .small{font-size:65%}h4,.h4,h5,.h5,h6,.h6{margin-top:10px;margin-bottom:10px}h4 small,.h4 small,h5 small,.h5 small,h6 small,.h6 small,h4 .small,.h4 .small,h5 .small,.h5 .small,h6 .small,.h6 .small{font-size:75%}h1,.h1{font-size:36px}h2,.h2{font-size:30px}h3,.h3{font-size:24px}h4,.h4{font-size:18px}h5,.h5{font-size:14px}h6,.h6{font-size:12px}p{margin:0 0 10px}.lead{margin-bottom:20px;font-size:16px;font-weight:300;line-height:1.4}@media (min-width:768px){.lead{font-size:21px}}small,.small{font-size:85%}cite{font-style:normal}mark,.mark{background-color:#fcf8e3;padding:.2em}.text-left{text-align:left}.text-right{text-align:right}.text-center{text-align:center}.text-justify{text-align:justify}.text-nowrap{white-space:nowrap}.text-lowercase{text-transform:lowercase}.text-uppercase{text-transform:uppercase}.text-capitalize{text-transform:capitalize}.text-muted{color:#777}.text-primary{color:#428bca}a.text-primary:hover{color:#3071a9}.text-success{color:#3c763d}a.text-success:hover{color:#2b542c}.text-info{color:#31708f}a.text-info:hover{color:#245269}.text-warning{color:#8a6d3b}a.text-warning:hover{color:#66512c}.text-danger{color:#a94442}a.text-danger:hover{color:#843534}.bg-primary{color:#fff;background-color:#428bca}a.bg-primary:hover{background-color:#3071a9}.bg-success{background-color:#dff0d8}a.bg-success:hover{background-color:#c1e2b3}.bg-info{background-color:#d9edf7}a.bg-info:hover{background-color:#afd9ee}.bg-warning{background-color:#fcf8e3}a.bg-warning:hover{background-color:#f7ecb5}.bg-danger{background-color:#f2dede}a.bg-danger:hover{background-color:#e4b9b9}.page-header{padding-bottom:9px;margin:40px 0 20px;border-bottom:1px solid #eee}ul,ol{margin-top:0;margin-bottom:10px}ul ul,ol ul,ul ol,ol ol{margin-bottom:0}.list-unstyled{padding-left:0;list-style:none}.list-inline{padding-left:0;list-style:none;margin-left:-5px}.list-inline>li{display:inline-block;padding-left:5px;padding-right:5px}dl{margin-top:0;margin-bottom:20px}dt,dd{line-height:1.42857143}dt{font-weight:bold}dd{margin-left:0}@media (min-width:768px){.dl-horizontal dt{float:left;width:160px;clear:left;text-align:right;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dl-horizontal dd{margin-left:180px}}abbr[title],abbr[data-original-title]{cursor:help;border-bottom:1px dotted #777}.initialism{font-size:90%;text-transform:uppercase}blockquote{padding:10px 20px;margin:0 0 20px;font-size:17.5px;border-left:5px solid #eee}blockquote p:last-child,blockquote ul:last-child,blockquote ol:last-child{margin-bottom:0}blockquote footer,blockquote small,blockquote .small{display:block;font-size:80%;line-height:1.42857143;color:#777}blockquote footer:before,blockquote small:before,blockquote .small:before{content:'\2014 \00A0'}.blockquote-reverse,blockquote.pull-right{padding-right:15px;padding-left:0;border-right:5px solid #eee;border-left:0;text-align:right}.blockquote-reverse footer:before,blockquote.pull-right footer:before,.blockquote-reverse small:before,blockquote.pull-right small:before,.blockquote-reverse .small:before,blockquote.pull-right .small:before{content:''}.blockquote-reverse footer:after,blockquote.pull-right footer:after,.blockquote-reverse small:after,blockquote.pull-right small:after,.blockquote-reverse .small:after,blockquote.pull-right .small:after{content:'\00A0 \2014'}blockquote:before,blockquote:after{content:""}address{margin-bottom:20px;font-style:normal;line-height:1.42857143}code,kbd,pre,samp{font-family:Menlo,Monaco,Consolas,"Courier New",monospace}code{padding:2px 4px;font-size:90%;color:#c7254e;background-color:#f9f2f4;border-radius:4px}kbd{padding:2px 4px;font-size:90%;color:#fff;background-color:#333;border-radius:3px;box-shadow:inset 0 -1px 0 rgba(0,0,0,0.25)}kbd kbd{padding:0;font-size:100%;box-shadow:none}pre{display:block;padding:9.5px;margin:0 0 10px;font-size:13px;line-height:1.42857143;word-break:break-all;word-wrap:break-word;color:#333;background-color:#f5f5f5;border:1px solid #ccc;border-radius:4px}pre code{padding:0;font-size:inherit;color:inherit;white-space:pre-wrap;background-color:transparent;border-radius:0}.pre-scrollable{max-height:340px;overflow-y:scroll}.container{margin-right:auto;margin-left:auto;padding-left:15px;padding-right:15px}@media (min-width:768px){.container{width:750px}}@media (min-width:992px){.container{width:970px}}@media (min-width:1200px){.container{width:1170px}}.container-fluid{margin-right:auto;margin-left:auto;padding-left:15px;padding-right:15px}.row{margin-left:-15px;margin-right:-15px}.col-xs-1, .col-sm-1, .col-md-1, .col-lg-1, .col-xs-2, .col-sm-2, .col-md-2, .col-lg-2, .col-xs-3, .col-sm-3, .col-md-3, .col-lg-3, .col-xs-4, .col-sm-4, .col-md-4, .col-lg-4, .col-xs-5, .col-sm-5, .col-md-5, .col-lg-5, .col-xs-6, .col-sm-6, .col-md-6, .col-lg-6, .col-xs-7, .col-sm-7, .col-md-7, .col-lg-7, .col-xs-8, .col-sm-8, .col-md-8, .col-lg-8, .col-xs-9, .col-sm-9, .col-md-9, .col-lg-9, .col-xs-10, .col-sm-10, .col-md-10, .col-lg-10, .col-xs-11, .col-sm-11, .col-md-11, .col-lg-11, .col-xs-12, .col-sm-12, .col-md-12, .col-lg-12{position:relative;min-height:1px;padding-left:15px;padding-right:15px}.col-xs-1, .col-xs-2, .col-xs-3, .col-xs-4, .col-xs-5, .col-xs-6, .col-xs-7, .col-xs-8, .col-xs-9, .col-xs-10, .col-xs-11, .col-xs-12{float:left}.col-xs-12{width:100%}.col-xs-11{width:91.66666667%}.col-xs-10{width:83.33333333%}.col-xs-9{width:75%}.col-xs-8{width:66.66666667%}.col-xs-7{width:58.33333333%}.col-xs-6{width:50%}.col-xs-5{width:41.66666667%}.col-xs-4{width:33.33333333%}.col-xs-3{width:25%}.col-xs-2{width:16.66666667%}.col-xs-1{width:8.33333333%}.col-xs-pull-12{right:100%}.col-xs-pull-11{right:91.66666667%}.col-xs-pull-10{right:83.33333333%}.col-xs-pull-9{right:75%}.col-xs-pull-8{right:66.66666667%}.col-xs-pull-7{right:58.33333333%}.col-xs-pull-6{right:50%}.col-xs-pull-5{right:41.66666667%}.col-xs-pull-4{right:33.33333333%}.col-xs-pull-3{right:25%}.col-xs-pull-2{right:16.66666667%}.col-xs-pull-1{right:8.33333333%}.col-xs-pull-0{right:auto}.col-xs-push-12{left:100%}.col-xs-push-11{left:91.66666667%}.col-xs-push-10{left:83.33333333%}.col-xs-push-9{left:75%}.col-xs-push-8{left:66.66666667%}.col-xs-push-7{left:58.33333333%}.col-xs-push-6{left:50%}.col-xs-push-5{left:41.66666667%}.col-xs-push-4{left:33.33333333%}.col-xs-push-3{left:25%}.col-xs-push-2{left:16.66666667%}.col-xs-push-1{left:8.33333333%}.col-xs-push-0{left:auto}.col-xs-offset-12{margin-left:100%}.col-xs-offset-11{margin-left:91.66666667%}.col-xs-offset-10{margin-left:83.33333333%}.col-xs-offset-9{margin-left:75%}.col-xs-offset-8{margin-left:66.66666667%}.col-xs-offset-7{margin-left:58.33333333%}.col-xs-offset-6{margin-left:50%}.col-xs-offset-5{margin-left:41.66666667%}.col-xs-offset-4{margin-left:33.33333333%}.col-xs-offset-3{margin-left:25%}.col-xs-offset-2{margin-left:16.66666667%}.col-xs-offset-1{margin-left:8.33333333%}.col-xs-offset-0{margin-left:0}@media (min-width:768px){.col-sm-1, .col-sm-2, .col-sm-3, .col-sm-4, .col-sm-5, .col-sm-6, .col-sm-7, .col-sm-8, .col-sm-9, .col-sm-10, .col-sm-11, .col-sm-12{float:left}.col-sm-12{width:100%}.col-sm-11{width:91.66666667%}.col-sm-10{width:83.33333333%}.col-sm-9{width:75%}.col-sm-8{width:66.66666667%}.col-sm-7{width:58.33333333%}.col-sm-6{width:50%}.col-sm-5{width:41.66666667%}.col-sm-4{width:33.33333333%}.col-sm-3{width:25%}.col-sm-2{width:16.66666667%}.col-sm-1{width:8.33333333%}.col-sm-pull-12{right:100%}.col-sm-pull-11{right:91.66666667%}.col-sm-pull-10{right:83.33333333%}.col-sm-pull-9{right:75%}.col-sm-pull-8{right:66.66666667%}.col-sm-pull-7{right:58.33333333%}.col-sm-pull-6{right:50%}.col-sm-pull-5{right:41.66666667%}.col-sm-pull-4{right:33.33333333%}.col-sm-pull-3{right:25%}.col-sm-pull-2{right:16.66666667%}.col-sm-pull-1{right:8.33333333%}.col-sm-pull-0{right:auto}.col-sm-push-12{left:100%}.col-sm-push-11{left:91.66666667%}.col-sm-push-10{left:83.33333333%}.col-sm-push-9{left:75%}.col-sm-push-8{left:66.66666667%}.col-sm-push-7{left:58.33333333%}.col-sm-push-6{left:50%}.col-sm-push-5{left:41.66666667%}.col-sm-push-4{left:33.33333333%}.col-sm-push-3{left:25%}.col-sm-push-2{left:16.66666667%}.col-sm-push-1{left:8.33333333%}.col-sm-push-0{left:auto}.col-sm-offset-12{margin-left:100%}.col-sm-offset-11{margin-left:91.66666667%}.col-sm-offset-10{margin-left:83.33333333%}.col-sm-offset-9{margin-left:75%}.col-sm-offset-8{margin-left:66.66666667%}.col-sm-offset-7{margin-left:58.33333333%}.col-sm-offset-6{margin-left:50%}.col-sm-offset-5{margin-left:41.66666667%}.col-sm-offset-4{margin-left:33.33333333%}.col-sm-offset-3{margin-left:25%}.col-sm-offset-2{margin-left:16.66666667%}.col-sm-offset-1{margin-left:8.33333333%}.col-sm-offset-0{margin-left:0}}@media (min-width:992px){.col-md-1, .col-md-2, .col-md-3, .col-md-4, .col-md-5, .col-md-6, .col-md-7, .col-md-8, .col-md-9, .col-md-10, .col-md-11, .col-md-12{float:left}.col-md-12{width:100%}.col-md-11{width:91.66666667%}.col-md-10{width:83.33333333%}.col-md-9{width:75%}.col-md-8{width:66.66666667%}.col-md-7{width:58.33333333%}.col-md-6{width:50%}.col-md-5{width:41.66666667%}.col-md-4{width:33.33333333%}.col-md-3{width:25%}.col-md-2{width:16.66666667%}.col-md-1{width:8.33333333%}.col-md-pull-12{right:100%}.col-md-pull-11{right:91.66666667%}.col-md-pull-10{right:83.33333333%}.col-md-pull-9{right:75%}.col-md-pull-8{right:66.66666667%}.col-md-pull-7{right:58.33333333%}.col-md-pull-6{right:50%}.col-md-pull-5{right:41.66666667%}.col-md-pull-4{right:33.33333333%}.col-md-pull-3{right:25%}.col-md-pull-2{right:16.66666667%}.col-md-pull-1{right:8.33333333%}.col-md-pull-0{right:auto}.col-md-push-12{left:100%}.col-md-push-11{left:91.66666667%}.col-md-push-10{left:83.33333333%}.col-md-push-9{left:75%}.col-md-push-8{left:66.66666667%}.col-md-push-7{left:58.33333333%}.col-md-push-6{left:50%}.col-md-push-5{left:41.66666667%}.col-md-push-4{left:33.33333333%}.col-md-push-3{left:25%}.col-md-push-2{left:16.66666667%}.col-md-push-1{left:8.33333333%}.col-md-push-0{left:auto}.col-md-offset-12{margin-left:100%}.col-md-offset-11{margin-left:91.66666667%}.col-md-offset-10{margin-left:83.33333333%}.col-md-offset-9{margin-left:75%}.col-md-offset-8{margin-left:66.66666667%}.col-md-offset-7{margin-left:58.33333333%}.col-md-offset-6{margin-left:50%}.col-md-offset-5{margin-left:41.66666667%}.col-md-offset-4{margin-left:33.33333333%}.col-md-offset-3{margin-left:25%}.col-md-offset-2{margin-left:16.66666667%}.col-md-offset-1{margin-left:8.33333333%}.col-md-offset-0{margin-left:0}}@media (min-width:1200px){.col-lg-1, .col-lg-2, .col-lg-3, .col-lg-4, .col-lg-5, .col-lg-6, .col-lg-7, .col-lg-8, .col-lg-9, .col-lg-10, .col-lg-11, .col-lg-12{float:left}.col-lg-12{width:100%}.col-lg-11{width:91.66666667%}.col-lg-10{width:83.33333333%}.col-lg-9{width:75%}.col-lg-8{width:66.66666667%}.col-lg-7{width:58.33333333%}.col-lg-6{width:50%}.col-lg-5{width:41.66666667%}.col-lg-4{width:33.33333333%}.col-lg-3{width:25%}.col-lg-2{width:16.66666667%}.col-lg-1{width:8.33333333%}.col-lg-pull-12{right:100%}.col-lg-pull-11{right:91.66666667%}.col-lg-pull-10{right:83.33333333%}.col-lg-pull-9{right:75%}.col-lg-pull-8{right:66.66666667%}.col-lg-pull-7{right:58.33333333%}.col-lg-pull-6{right:50%}.col-lg-pull-5{right:41.66666667%}.col-lg-pull-4{right:33.33333333%}.col-lg-pull-3{right:25%}.col-lg-pull-2{right:16.66666667%}.col-lg-pull-1{right:8.33333333%}.col-lg-pull-0{right:auto}.col-lg-push-12{left:100%}.col-lg-push-11{left:91.66666667%}.col-lg-push-10{left:83.33333333%}.col-lg-push-9{left:75%}.col-lg-push-8{left:66.66666667%}.col-lg-push-7{left:58.33333333%}.col-lg-push-6{left:50%}.col-lg-push-5{left:41.66666667%}.col-lg-push-4{left:33.33333333%}.col-lg-push-3{left:25%}.col-lg-push-2{left:16.66666667%}.col-lg-push-1{left:8.33333333%}.col-lg-push-0{left:auto}.col-lg-offset-12{margin-left:100%}.col-lg-offset-11{margin-left:91.66666667%}.col-lg-offset-10{margin-left:83.33333333%}.col-lg-offset-9{margin-left:75%}.col-lg-offset-8{margin-left:66.66666667%}.col-lg-offset-7{margin-left:58.33333333%}.col-lg-offset-6{margin-left:50%}.col-lg-offset-5{margin-left:41.66666667%}.col-lg-offset-4{margin-left:33.33333333%}.col-lg-offset-3{margin-left:25%}.col-lg-offset-2{margin-left:16.66666667%}.col-lg-offset-1{margin-left:8.33333333%}.col-lg-offset-0{margin-left:0}}table{background-color:transparent}th{text-align:left}.table{width:100%;max-width:100%;margin-bottom:20px}.table>thead>tr>th,.table>tbody>tr>th,.table>tfoot>tr>th,.table>thead>tr>td,.table>tbody>tr>td,.table>tfoot>tr>td{padding:8px;line-height:1.42857143;vertical-align:top;border-top:1px solid #ddd}.table>thead>tr>th{vertical-align:bottom;border-bottom:2px solid #ddd}.table>caption+thead>tr:first-child>th,.table>colgroup+thead>tr:first-child>th,.table>thead:first-child>tr:first-child>th,.table>caption+thead>tr:first-child>td,.table>colgroup+thead>tr:first-child>td,.table>thead:first-child>tr:first-child>td{border-top:0}.table>tbody+tbody{border-top:2px solid #ddd}.table .table{background-color:#fff}.table-condensed>thead>tr>th,.table-condensed>tbody>tr>th,.table-condensed>tfoot>tr>th,.table-condensed>thead>tr>td,.table-condensed>tbody>tr>td,.table-condensed>tfoot>tr>td{padding:5px}.table-bordered{border:1px solid #ddd}.table-bordered>thead>tr>th,.table-bordered>tbody>tr>th,.table-bordered>tfoot>tr>th,.table-bordered>thead>tr>td,.table-bordered>tbody>tr>td,.table-bordered>tfoot>tr>td{border:1px solid #ddd}.table-bordered>thead>tr>th,.table-bordered>thead>tr>td{border-bottom-width:2px}.table-striped>tbody>tr:nth-child(odd)>td,.table-striped>tbody>tr:nth-child(odd)>th{background-color:#f9f9f9}.table-hover>tbody>tr:hover>td,.table-hover>tbody>tr:hover>th{background-color:#f5f5f5}table col[class*="col-"]{position:static;float:none;display:table-column}table td[class*="col-"],table th[class*="col-"]{position:static;float:none;display:table-cell}.table>thead>tr>td.active,.table>tbody>tr>td.active,.table>tfoot>tr>td.active,.table>thead>tr>th.active,.table>tbody>tr>th.active,.table>tfoot>tr>th.active,.table>thead>tr.active>td,.table>tbody>tr.active>td,.table>tfoot>tr.active>td,.table>thead>tr.active>th,.table>tbody>tr.active>th,.table>tfoot>tr.active>th{background-color:#f5f5f5}.table-hover>tbody>tr>td.active:hover,.table-hover>tbody>tr>th.active:hover,.table-hover>tbody>tr.active:hover>td,.table-hover>tbody>tr:hover>.active,.table-hover>tbody>tr.active:hover>th{background-color:#e8e8e8}.table>thead>tr>td.success,.table>tbody>tr>td.success,.table>tfoot>tr>td.success,.table>thead>tr>th.success,.table>tbody>tr>th.success,.table>tfoot>tr>th.success,.table>thead>tr.success>td,.table>tbody>tr.success>td,.table>tfoot>tr.success>td,.table>thead>tr.success>th,.table>tbody>tr.success>th,.table>tfoot>tr.success>th{background-color:#dff0d8}.table-hover>tbody>tr>td.success:hover,.table-hover>tbody>tr>th.success:hover,.table-hover>tbody>tr.success:hover>td,.table-hover>tbody>tr:hover>.success,.table-hover>tbody>tr.success:hover>th{background-color:#d0e9c6}.table>thead>tr>td.info,.table>tbody>tr>td.info,.table>tfoot>tr>td.info,.table>thead>tr>th.info,.table>tbody>tr>th.info,.table>tfoot>tr>th.info,.table>thead>tr.info>td,.table>tbody>tr.info>td,.table>tfoot>tr.info>td,.table>thead>tr.info>th,.table>tbody>tr.info>th,.table>tfoot>tr.info>th{background-color:#d9edf7}.table-hover>tbody>tr>td.info:hover,.table-hover>tbody>tr>th.info:hover,.table-hover>tbody>tr.info:hover>td,.table-hover>tbody>tr:hover>.info,.table-hover>tbody>tr.info:hover>th{background-color:#c4e3f3}.table>thead>tr>td.warning,.table>tbody>tr>td.warning,.table>tfoot>tr>td.warning,.table>thead>tr>th.warning,.table>tbody>tr>th.warning,.table>tfoot>tr>th.warning,.table>thead>tr.warning>td,.table>tbody>tr.warning>td,.table>tfoot>tr.warning>td,.table>thead>tr.warning>th,.table>tbody>tr.warning>th,.table>tfoot>tr.warning>th{background-color:#fcf8e3}.table-hover>tbody>tr>td.warning:hover,.table-hover>tbody>tr>th.warning:hover,.table-hover>tbody>tr.warning:hover>td,.table-hover>tbody>tr:hover>.warning,.table-hover>tbody>tr.warning:hover>th{background-color:#faf2cc}.table>thead>tr>td.danger,.table>tbody>tr>td.danger,.table>tfoot>tr>td.danger,.table>thead>tr>th.danger,.table>tbody>tr>th.danger,.table>tfoot>tr>th.danger,.table>thead>tr.danger>td,.table>tbody>tr.danger>td,.table>tfoot>tr.danger>td,.table>thead>tr.danger>th,.table>tbody>tr.danger>th,.table>tfoot>tr.danger>th{background-color:#f2dede}.table-hover>tbody>tr>td.danger:hover,.table-hover>tbody>tr>th.danger:hover,.table-hover>tbody>tr.danger:hover>td,.table-hover>tbody>tr:hover>.danger,.table-hover>tbody>tr.danger:hover>th{background-color:#ebcccc}@media screen and (max-width:767px){.table-responsive{width:100%;margin-bottom:15px;overflow-y:hidden;overflow-x:auto;-ms-overflow-style:-ms-autohiding-scrollbar;border:1px solid #ddd;-webkit-overflow-scrolling:touch}.table-responsive>.table{margin-bottom:0}.table-responsive>.table>thead>tr>th,.table-responsive>.table>tbody>tr>th,.table-responsive>.table>tfoot>tr>th,.table-responsive>.table>thead>tr>td,.table-responsive>.table>tbody>tr>td,.table-responsive>.table>tfoot>tr>td{white-space:nowrap}.table-responsive>.table-bordered{border:0}.table-responsive>.table-bordered>thead>tr>th:first-child,.table-responsive>.table-bordered>tbody>tr>th:first-child,.table-responsive>.table-bordered>tfoot>tr>th:first-child,.table-responsive>.table-bordered>thead>tr>td:first-child,.table-responsive>.table-bordered>tbody>tr>td:first-child,.table-responsive>.table-bordered>tfoot>tr>td:first-child{border-left:0}.table-responsive>.table-bordered>thead>tr>th:last-child,.table-responsive>.table-bordered>tbody>tr>th:last-child,.table-responsive>.table-bordered>tfoot>tr>th:last-child,.table-responsive>.table-bordered>thead>tr>td:last-child,.table-responsive>.table-bordered>tbody>tr>td:last-child,.table-responsive>.table-bordered>tfoot>tr>td:last-child{border-right:0}.table-responsive>.table-bordered>tbody>tr:last-child>th,.table-responsive>.table-bordered>tfoot>tr:last-child>th,.table-responsive>.table-bordered>tbody>tr:last-child>td,.table-responsive>.table-bordered>tfoot>tr:last-child>td{border-bottom:0}}fieldset{padding:0;margin:0;border:0;min-width:0}legend{display:block;width:100%;padding:0;margin-bottom:20px;font-size:21px;line-height:inherit;color:#333;border:0;border-bottom:1px solid #e5e5e5}label{display:inline-block;max-width:100%;margin-bottom:5px;font-weight:bold}input[type="search"]{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}input[type="radio"],input[type="checkbox"]{margin:4px 0 0;margin-top:1px \9;line-height:normal}input[type="file"]{display:block}input[type="range"]{display:block;width:100%}select[multiple],select[size]{height:auto}input[type="file"]:focus,input[type="radio"]:focus,input[type="checkbox"]:focus{outline:thin dotted;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}output{display:block;padding-top:7px;font-size:14px;line-height:1.42857143;color:#555}.form-control{display:block;width:100%;height:34px;padding:6px 12px;font-size:14px;line-height:1.42857143;color:#555;background-color:#fff;background-image:none;border:1px solid #ccc;border-radius:4px;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);-webkit-transition:border-color ease-in-out .15s, box-shadow ease-in-out .15s;-o-transition:border-color ease-in-out .15s, box-shadow ease-in-out .15s;transition:border-color ease-in-out .15s, box-shadow ease-in-out .15s}.form-control:focus{border-color:#66afe9;outline:0;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px rgba(102, 175, 233, 0.6);box-shadow:inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px rgba(102, 175, 233, 0.6)}.form-control::-moz-placeholder{color:#777;opacity:1}.form-control:-ms-input-placeholder{color:#777}.form-control::-webkit-input-placeholder{color:#777}.form-control[disabled],.form-control[readonly],fieldset[disabled] .form-control{cursor:not-allowed;background-color:#eee;opacity:1}textarea.form-control{height:auto}input[type="search"]{-webkit-appearance:none}input[type="date"],input[type="time"],input[type="datetime-local"],input[type="month"]{line-height:34px;line-height:1.42857143 \0}input[type="date"].input-sm,input[type="time"].input-sm,input[type="datetime-local"].input-sm,input[type="month"].input-sm{line-height:30px}input[type="date"].input-lg,input[type="time"].input-lg,input[type="datetime-local"].input-lg,input[type="month"].input-lg{line-height:46px}.form-group{margin-bottom:15px}.radio,.checkbox{position:relative;display:block;min-height:20px;margin-top:10px;margin-bottom:10px}.radio label,.checkbox label{padding-left:20px;margin-bottom:0;font-weight:normal;cursor:pointer}.radio input[type="radio"],.radio-inline input[type="radio"],.checkbox input[type="checkbox"],.checkbox-inline input[type="checkbox"]{position:absolute;margin-left:-20px;margin-top:4px \9}.radio+.radio,.checkbox+.checkbox{margin-top:-5px}.radio-inline,.checkbox-inline{display:inline-block;padding-left:20px;margin-bottom:0;vertical-align:middle;font-weight:normal;cursor:pointer}.radio-inline+.radio-inline,.checkbox-inline+.checkbox-inline{margin-top:0;margin-left:10px}input[type="radio"][disabled],input[type="checkbox"][disabled],input[type="radio"].disabled,input[type="checkbox"].disabled,fieldset[disabled] input[type="radio"],fieldset[disabled] input[type="checkbox"]{cursor:not-allowed}.radio-inline.disabled,.checkbox-inline.disabled,fieldset[disabled] .radio-inline,fieldset[disabled] .checkbox-inline{cursor:not-allowed}.radio.disabled label,.checkbox.disabled label,fieldset[disabled] .radio label,fieldset[disabled] .checkbox label{cursor:not-allowed}.form-control-static{padding-top:7px;padding-bottom:7px;margin-bottom:0}.form-control-static.input-lg,.form-control-static.input-sm{padding-left:0;padding-right:0}.input-sm,.form-horizontal .form-group-sm .form-control{height:30px;padding:5px 10px;font-size:12px;line-height:1.5;border-radius:3px}select.input-sm{height:30px;line-height:30px}textarea.input-sm,select[multiple].input-sm{height:auto}.input-lg,.form-horizontal .form-group-lg .form-control{height:46px;padding:10px 16px;font-size:18px;line-height:1.33;border-radius:6px}select.input-lg{height:46px;line-height:46px}textarea.input-lg,select[multiple].input-lg{height:auto}.has-feedback{position:relative}.has-feedback .form-control{padding-right:42.5px}.form-control-feedback{position:absolute;top:25px;right:0;z-index:2;display:block;width:34px;height:34px;line-height:34px;text-align:center}.input-lg+.form-control-feedback{width:46px;height:46px;line-height:46px}.input-sm+.form-control-feedback{width:30px;height:30px;line-height:30px}.has-success .help-block,.has-success .control-label,.has-success .radio,.has-success .checkbox,.has-success .radio-inline,.has-success .checkbox-inline{color:#3c763d}.has-success .form-control{border-color:#3c763d;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075)}.has-success .form-control:focus{border-color:#2b542c;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #67b168;box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #67b168}.has-success .input-group-addon{color:#3c763d;border-color:#3c763d;background-color:#dff0d8}.has-success .form-control-feedback{color:#3c763d}.has-warning .help-block,.has-warning .control-label,.has-warning .radio,.has-warning .checkbox,.has-warning .radio-inline,.has-warning .checkbox-inline{color:#8a6d3b}.has-warning .form-control{border-color:#8a6d3b;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075)}.has-warning .form-control:focus{border-color:#66512c;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #c0a16b;box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #c0a16b}.has-warning .input-group-addon{color:#8a6d3b;border-color:#8a6d3b;background-color:#fcf8e3}.has-warning .form-control-feedback{color:#8a6d3b}.has-error .help-block,.has-error .control-label,.has-error .radio,.has-error .checkbox,.has-error .radio-inline,.has-error .checkbox-inline{color:#a94442}.has-error .form-control{border-color:#a94442;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075)}.has-error .form-control:focus{border-color:#843534;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #ce8483;box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #ce8483}.has-error .input-group-addon{color:#a94442;border-color:#a94442;background-color:#f2dede}.has-error .form-control-feedback{color:#a94442}.has-feedback label.sr-only~.form-control-feedback{top:0}.help-block{display:block;margin-top:5px;margin-bottom:10px;color:#737373}@media (min-width:768px){.form-inline .form-group{display:inline-block;margin-bottom:0;vertical-align:middle}.form-inline .form-control{display:inline-block;width:auto;vertical-align:middle}.form-inline .input-group{display:inline-table;vertical-align:middle}.form-inline .input-group .input-group-addon,.form-inline .input-group .input-group-btn,.form-inline .input-group .form-control{width:auto}.form-inline .input-group>.form-control{width:100%}.form-inline .control-label{margin-bottom:0;vertical-align:middle}.form-inline .radio,.form-inline .checkbox{display:inline-block;margin-top:0;margin-bottom:0;vertical-align:middle}.form-inline .radio label,.form-inline .checkbox label{padding-left:0}.form-inline .radio input[type="radio"],.form-inline .checkbox input[type="checkbox"]{position:relative;margin-left:0}.form-inline .has-feedback .form-control-feedback{top:0}}.form-horizontal .radio,.form-horizontal .checkbox,.form-horizontal .radio-inline,.form-horizontal .checkbox-inline{margin-top:0;margin-bottom:0;padding-top:7px}.form-horizontal .radio,.form-horizontal .checkbox{min-height:27px}.form-horizontal .form-group{margin-left:-15px;margin-right:-15px}@media (min-width:768px){.form-horizontal .control-label{text-align:right;margin-bottom:0;padding-top:7px}}.form-horizontal .has-feedback .form-control-feedback{top:0;right:15px}@media (min-width:768px){.form-horizontal .form-group-lg .control-label{padding-top:14.3px}}@media (min-width:768px){.form-horizontal .form-group-sm .control-label{padding-top:6px}}.btn{display:inline-block;margin-bottom:0;font-weight:normal;text-align:center;vertical-align:middle;cursor:pointer;background-image:none;border:1px solid transparent;white-space:nowrap;padding:6px 12px;font-size:14px;line-height:1.42857143;border-radius:4px;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.btn:focus,.btn:active:focus,.btn.active:focus{outline:thin dotted;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}.btn:hover,.btn:focus{color:#333;text-decoration:none}.btn:active,.btn.active{outline:0;background-image:none;-webkit-box-shadow:inset 0 3px 5px rgba(0,0,0,0.125);box-shadow:inset 0 3px 5px rgba(0,0,0,0.125)}.btn.disabled,.btn[disabled],fieldset[disabled] .btn{cursor:not-allowed;pointer-events:none;opacity:.65;filter:alpha(opacity=65);-webkit-box-shadow:none;box-shadow:none}.btn-default{color:#333;background-color:#fff;border-color:#ccc}.btn-default:hover,.btn-default:focus,.btn-default:active,.btn-default.active,.open>.dropdown-toggle.btn-default{color:#333;background-color:#e6e6e6;border-color:#adadad}.btn-default:active,.btn-default.active,.open>.dropdown-toggle.btn-default{background-image:none}.btn-default.disabled,.btn-default[disabled],fieldset[disabled] .btn-default,.btn-default.disabled:hover,.btn-default[disabled]:hover,fieldset[disabled] .btn-default:hover,.btn-default.disabled:focus,.btn-default[disabled]:focus,fieldset[disabled] .btn-default:focus,.btn-default.disabled:active,.btn-default[disabled]:active,fieldset[disabled] .btn-default:active,.btn-default.disabled.active,.btn-default[disabled].active,fieldset[disabled] .btn-default.active{background-color:#fff;border-color:#ccc}.btn-default .badge{color:#fff;background-color:#333}.btn-primary{color:#fff;background-color:#428bca;border-color:#357ebd}.btn-primary:hover,.btn-primary:focus,.btn-primary:active,.btn-primary.active,.open>.dropdown-toggle.btn-primary{color:#fff;background-color:#3071a9;border-color:#285e8e}.btn-primary:active,.btn-primary.active,.open>.dropdown-toggle.btn-primary{background-image:none}.btn-primary.disabled,.btn-primary[disabled],fieldset[disabled] .btn-primary,.btn-primary.disabled:hover,.btn-primary[disabled]:hover,fieldset[disabled] .btn-primary:hover,.btn-primary.disabled:focus,.btn-primary[disabled]:focus,fieldset[disabled] .btn-primary:focus,.btn-primary.disabled:active,.btn-primary[disabled]:active,fieldset[disabled] .btn-primary:active,.btn-primary.disabled.active,.btn-primary[disabled].active,fieldset[disabled] .btn-primary.active{background-color:#428bca;border-color:#357ebd}.btn-primary .badge{color:#428bca;background-color:#fff}.btn-success{color:#fff;background-color:#5cb85c;border-color:#4cae4c}.btn-success:hover,.btn-success:focus,.btn-success:active,.btn-success.active,.open>.dropdown-toggle.btn-success{color:#fff;background-color:#449d44;border-color:#398439}.btn-success:active,.btn-success.active,.open>.dropdown-toggle.btn-success{background-image:none}.btn-success.disabled,.btn-success[disabled],fieldset[disabled] .btn-success,.btn-success.disabled:hover,.btn-success[disabled]:hover,fieldset[disabled] .btn-success:hover,.btn-success.disabled:focus,.btn-success[disabled]:focus,fieldset[disabled] .btn-success:focus,.btn-success.disabled:active,.btn-success[disabled]:active,fieldset[disabled] .btn-success:active,.btn-success.disabled.active,.btn-success[disabled].active,fieldset[disabled] .btn-success.active{background-color:#5cb85c;border-color:#4cae4c}.btn-success .badge{color:#5cb85c;background-color:#fff}.btn-info{color:#fff;background-color:#5bc0de;border-color:#46b8da}.btn-info:hover,.btn-info:focus,.btn-info:active,.btn-info.active,.open>.dropdown-toggle.btn-info{color:#fff;background-color:#31b0d5;border-color:#269abc}.btn-info:active,.btn-info.active,.open>.dropdown-toggle.btn-info{background-image:none}.btn-info.disabled,.btn-info[disabled],fieldset[disabled] .btn-info,.btn-info.disabled:hover,.btn-info[disabled]:hover,fieldset[disabled] .btn-info:hover,.btn-info.disabled:focus,.btn-info[disabled]:focus,fieldset[disabled] .btn-info:focus,.btn-info.disabled:active,.btn-info[disabled]:active,fieldset[disabled] .btn-info:active,.btn-info.disabled.active,.btn-info[disabled].active,fieldset[disabled] .btn-info.active{background-color:#5bc0de;border-color:#46b8da}.btn-info .badge{color:#5bc0de;background-color:#fff}.btn-warning{color:#fff;background-color:#f0ad4e;border-color:#eea236}.btn-warning:hover,.btn-warning:focus,.btn-warning:active,.btn-warning.active,.open>.dropdown-toggle.btn-warning{color:#fff;background-color:#ec971f;border-color:#d58512}.btn-warning:active,.btn-warning.active,.open>.dropdown-toggle.btn-warning{background-image:none}.btn-warning.disabled,.btn-warning[disabled],fieldset[disabled] .btn-warning,.btn-warning.disabled:hover,.btn-warning[disabled]:hover,fieldset[disabled] .btn-warning:hover,.btn-warning.disabled:focus,.btn-warning[disabled]:focus,fieldset[disabled] .btn-warning:focus,.btn-warning.disabled:active,.btn-warning[disabled]:active,fieldset[disabled] .btn-warning:active,.btn-warning.disabled.active,.btn-warning[disabled].active,fieldset[disabled] .btn-warning.active{background-color:#f0ad4e;border-color:#eea236}.btn-warning .badge{color:#f0ad4e;background-color:#fff}.btn-danger{color:#fff;background-color:#d9534f;border-color:#d43f3a}.btn-danger:hover,.btn-danger:focus,.btn-danger:active,.btn-danger.active,.open>.dropdown-toggle.btn-danger{color:#fff;background-color:#c9302c;border-color:#ac2925}.btn-danger:active,.btn-danger.active,.open>.dropdown-toggle.btn-danger{background-image:none}.btn-danger.disabled,.btn-danger[disabled],fieldset[disabled] .btn-danger,.btn-danger.disabled:hover,.btn-danger[disabled]:hover,fieldset[disabled] .btn-danger:hover,.btn-danger.disabled:focus,.btn-danger[disabled]:focus,fieldset[disabled] .btn-danger:focus,.btn-danger.disabled:active,.btn-danger[disabled]:active,fieldset[disabled] .btn-danger:active,.btn-danger.disabled.active,.btn-danger[disabled].active,fieldset[disabled] .btn-danger.active{background-color:#d9534f;border-color:#d43f3a}.btn-danger .badge{color:#d9534f;background-color:#fff}.btn-link{color:#428bca;font-weight:normal;cursor:pointer;border-radius:0}.btn-link,.btn-link:active,.btn-link[disabled],fieldset[disabled] .btn-link{background-color:transparent;-webkit-box-shadow:none;box-shadow:none}.btn-link,.btn-link:hover,.btn-link:focus,.btn-link:active{border-color:transparent}.btn-link:hover,.btn-link:focus{color:#2a6496;text-decoration:underline;background-color:transparent}.btn-link[disabled]:hover,fieldset[disabled] .btn-link:hover,.btn-link[disabled]:focus,fieldset[disabled] .btn-link:focus{color:#777;text-decoration:none}.btn-lg,.btn-group-lg>.btn{padding:10px 16px;font-size:18px;line-height:1.33;border-radius:6px}.btn-sm,.btn-group-sm>.btn{padding:5px 10px;font-size:12px;line-height:1.5;border-radius:3px}.btn-xs,.btn-group-xs>.btn{padding:1px 5px;font-size:12px;line-height:1.5;border-radius:3px}.btn-block{display:block;width:100%}.btn-block+.btn-block{margin-top:5px}input[type="submit"].btn-block,input[type="reset"].btn-block,input[type="button"].btn-block{width:100%}.fade{opacity:0;-webkit-transition:opacity .15s linear;-o-transition:opacity .15s linear;transition:opacity .15s linear}.fade.in{opacity:1}.collapse{display:none}.collapse.in{display:block}tr.collapse.in{display:table-row}tbody.collapse.in{display:table-row-group}.collapsing{position:relative;height:0;overflow:hidden;-webkit-transition:height .35s ease;-o-transition:height .35s ease;transition:height .35s ease}.caret{display:inline-block;width:0;height:0;margin-left:2px;vertical-align:middle;border-top:4px solid;border-right:4px solid transparent;border-left:4px solid transparent}.dropdown{position:relative}.dropdown-toggle:focus{outline:0}.dropdown-menu{position:absolute;top:100%;left:0;z-index:1000;display:none;float:left;min-width:160px;padding:5px 0;margin:2px 0 0;list-style:none;font-size:14px;text-align:left;background-color:#fff;border:1px solid #ccc;border:1px solid rgba(0,0,0,0.15);border-radius:4px;-webkit-box-shadow:0 6px 12px rgba(0,0,0,0.175);box-shadow:0 6px 12px rgba(0,0,0,0.175);background-clip:padding-box}.dropdown-menu.pull-right{right:0;left:auto}.dropdown-menu .divider{height:1px;margin:9px 0;overflow:hidden;background-color:#e5e5e5}.dropdown-menu>li>a{display:block;padding:3px 20px;clear:both;font-weight:normal;line-height:1.42857143;color:#333;white-space:nowrap}.dropdown-menu>li>a:hover,.dropdown-menu>li>a:focus{text-decoration:none;color:#262626;background-color:#f5f5f5}.dropdown-menu>.active>a,.dropdown-menu>.active>a:hover,.dropdown-menu>.active>a:focus{color:#fff;text-decoration:none;outline:0;background-color:#428bca}.dropdown-menu>.disabled>a,.dropdown-menu>.disabled>a:hover,.dropdown-menu>.disabled>a:focus{color:#777}.dropdown-menu>.disabled>a:hover,.dropdown-menu>.disabled>a:focus{text-decoration:none;background-color:transparent;background-image:none;filter:progid:DXImageTransform.Microsoft.gradient(enabled = false);cursor:not-allowed}.open>.dropdown-menu{display:block}.open>a{outline:0}.dropdown-menu-right{left:auto;right:0}.dropdown-menu-left{left:0;right:auto}.dropdown-header{display:block;padding:3px 20px;font-size:12px;line-height:1.42857143;color:#777;white-space:nowrap}.dropdown-backdrop{position:fixed;left:0;right:0;bottom:0;top:0;z-index:990}.pull-right>.dropdown-menu{right:0;left:auto}.dropup .caret,.navbar-fixed-bottom .dropdown .caret{border-top:0;border-bottom:4px solid;content:""}.dropup .dropdown-menu,.navbar-fixed-bottom .dropdown .dropdown-menu{top:auto;bottom:100%;margin-bottom:1px}@media (min-width:768px){.navbar-right .dropdown-menu{left:auto;right:0}.navbar-right .dropdown-menu-left{left:0;right:auto}}.btn-group,.btn-group-vertical{position:relative;display:inline-block;vertical-align:middle}.btn-group>.btn,.btn-group-vertical>.btn{position:relative;float:left}.btn-group>.btn:hover,.btn-group-vertical>.btn:hover,.btn-group>.btn:focus,.btn-group-vertical>.btn:focus,.btn-group>.btn:active,.btn-group-vertical>.btn:active,.btn-group>.btn.active,.btn-group-vertical>.btn.active{z-index:2}.btn-group>.btn:focus,.btn-group-vertical>.btn:focus{outline:0}.btn-group .btn+.btn,.btn-group .btn+.btn-group,.btn-group .btn-group+.btn,.btn-group .btn-group+.btn-group{margin-left:-1px}.btn-toolbar{margin-left:-5px}.btn-toolbar .btn-group,.btn-toolbar .input-group{float:left}.btn-toolbar>.btn,.btn-toolbar>.btn-group,.btn-toolbar>.input-group{margin-left:5px}.btn-group>.btn:not(:first-child):not(:last-child):not(.dropdown-toggle){border-radius:0}.btn-group>.btn:first-child{margin-left:0}.btn-group>.btn:first-child:not(:last-child):not(.dropdown-toggle){border-bottom-right-radius:0;border-top-right-radius:0}.btn-group>.btn:last-child:not(:first-child),.btn-group>.dropdown-toggle:not(:first-child){border-bottom-left-radius:0;border-top-left-radius:0}.btn-group>.btn-group{float:left}.btn-group>.btn-group:not(:first-child):not(:last-child)>.btn{border-radius:0}.btn-group>.btn-group:first-child>.btn:last-child,.btn-group>.btn-group:first-child>.dropdown-toggle{border-bottom-right-radius:0;border-top-right-radius:0}.btn-group>.btn-group:last-child>.btn:first-child{border-bottom-left-radius:0;border-top-left-radius:0}.btn-group .dropdown-toggle:active,.btn-group.open .dropdown-toggle{outline:0}.btn-group>.btn+.dropdown-toggle{padding-left:8px;padding-right:8px}.btn-group>.btn-lg+.dropdown-toggle{padding-left:12px;padding-right:12px}.btn-group.open .dropdown-toggle{-webkit-box-shadow:inset 0 3px 5px rgba(0,0,0,0.125);box-shadow:inset 0 3px 5px rgba(0,0,0,0.125)}.btn-group.open .dropdown-toggle.btn-link{-webkit-box-shadow:none;box-shadow:none}.btn .caret{margin-left:0}.btn-lg .caret{border-width:5px 5px 0;border-bottom-width:0}.dropup .btn-lg .caret{border-width:0 5px 5px}.btn-group-vertical>.btn,.btn-group-vertical>.btn-group,.btn-group-vertical>.btn-group>.btn{display:block;float:none;width:100%;max-width:100%}.btn-group-vertical>.btn-group>.btn{float:none}.btn-group-vertical>.btn+.btn,.btn-group-vertical>.btn+.btn-group,.btn-group-vertical>.btn-group+.btn,.btn-group-vertical>.btn-group+.btn-group{margin-top:-1px;margin-left:0}.btn-group-vertical>.btn:not(:first-child):not(:last-child){border-radius:0}.btn-group-vertical>.btn:first-child:not(:last-child){border-top-right-radius:4px;border-bottom-right-radius:0;border-bottom-left-radius:0}.btn-group-vertical>.btn:last-child:not(:first-child){border-bottom-left-radius:4px;border-top-right-radius:0;border-top-left-radius:0}.btn-group-vertical>.btn-group:not(:first-child):not(:last-child)>.btn{border-radius:0}.btn-group-vertical>.btn-group:first-child:not(:last-child)>.btn:last-child,.btn-group-vertical>.btn-group:first-child:not(:last-child)>.dropdown-toggle{border-bottom-right-radius:0;border-bottom-left-radius:0}.btn-group-vertical>.btn-group:last-child:not(:first-child)>.btn:first-child{border-top-right-radius:0;border-top-left-radius:0}.btn-group-justified{display:table;width:100%;table-layout:fixed;border-collapse:separate}.btn-group-justified>.btn,.btn-group-justified>.btn-group{float:none;display:table-cell;width:1%}.btn-group-justified>.btn-group .btn{width:100%}.btn-group-justified>.btn-group .dropdown-menu{left:auto}[data-toggle="buttons"]>.btn>input[type="radio"],[data-toggle="buttons"]>.btn>input[type="checkbox"]{position:absolute;z-index:-1;opacity:0;filter:alpha(opacity=0)}.input-group{position:relative;display:table;border-collapse:separate}.input-group[class*="col-"]{float:none;padding-left:0;padding-right:0}.input-group .form-control{position:relative;z-index:2;float:left;width:100%;margin-bottom:0}.input-group-lg>.form-control,.input-group-lg>.input-group-addon,.input-group-lg>.input-group-btn>.btn{height:46px;padding:10px 16px;font-size:18px;line-height:1.33;border-radius:6px}select.input-group-lg>.form-control,select.input-group-lg>.input-group-addon,select.input-group-lg>.input-group-btn>.btn{height:46px;line-height:46px}textarea.input-group-lg>.form-control,textarea.input-group-lg>.input-group-addon,textarea.input-group-lg>.input-group-btn>.btn,select[multiple].input-group-lg>.form-control,select[multiple].input-group-lg>.input-group-addon,select[multiple].input-group-lg>.input-group-btn>.btn{height:auto}.input-group-sm>.form-control,.input-group-sm>.input-group-addon,.input-group-sm>.input-group-btn>.btn{height:30px;padding:5px 10px;font-size:12px;line-height:1.5;border-radius:3px}select.input-group-sm>.form-control,select.input-group-sm>.input-group-addon,select.input-group-sm>.input-group-btn>.btn{height:30px;line-height:30px}textarea.input-group-sm>.form-control,textarea.input-group-sm>.input-group-addon,textarea.input-group-sm>.input-group-btn>.btn,select[multiple].input-group-sm>.form-control,select[multiple].input-group-sm>.input-group-addon,select[multiple].input-group-sm>.input-group-btn>.btn{height:auto}.input-group-addon,.input-group-btn,.input-group .form-control{display:table-cell}.input-group-addon:not(:first-child):not(:last-child),.input-group-btn:not(:first-child):not(:last-child),.input-group .form-control:not(:first-child):not(:last-child){border-radius:0}.input-group-addon,.input-group-btn{width:1%;white-space:nowrap;vertical-align:middle}.input-group-addon{padding:6px 12px;font-size:14px;font-weight:normal;line-height:1;color:#555;text-align:center;background-color:#eee;border:1px solid #ccc;border-radius:4px}.input-group-addon.input-sm{padding:5px 10px;font-size:12px;border-radius:3px}.input-group-addon.input-lg{padding:10px 16px;font-size:18px;border-radius:6px}.input-group-addon input[type="radio"],.input-group-addon input[type="checkbox"]{margin-top:0}.input-group .form-control:first-child,.input-group-addon:first-child,.input-group-btn:first-child>.btn,.input-group-btn:first-child>.btn-group>.btn,.input-group-btn:first-child>.dropdown-toggle,.input-group-btn:last-child>.btn:not(:last-child):not(.dropdown-toggle),.input-group-btn:last-child>.btn-group:not(:last-child)>.btn{border-bottom-right-radius:0;border-top-right-radius:0}.input-group-addon:first-child{border-right:0}.input-group .form-control:last-child,.input-group-addon:last-child,.input-group-btn:last-child>.btn,.input-group-btn:last-child>.btn-group>.btn,.input-group-btn:last-child>.dropdown-toggle,.input-group-btn:first-child>.btn:not(:first-child),.input-group-btn:first-child>.btn-group:not(:first-child)>.btn{border-bottom-left-radius:0;border-top-left-radius:0}.input-group-addon:last-child{border-left:0}.input-group-btn{position:relative;font-size:0;white-space:nowrap}.input-group-btn>.btn{position:relative}.input-group-btn>.btn+.btn{margin-left:-1px}.input-group-btn>.btn:hover,.input-group-btn>.btn:focus,.input-group-btn>.btn:active{z-index:2}.input-group-btn:first-child>.btn,.input-group-btn:first-child>.btn-group{margin-right:-1px}.input-group-btn:last-child>.btn,.input-group-btn:last-child>.btn-group{margin-left:-1px}.nav{margin-bottom:0;padding-left:0;list-style:none}.nav>li{position:relative;display:block}.nav>li>a{position:relative;display:block;padding:10px 15px}.nav>li>a:hover,.nav>li>a:focus{text-decoration:none;background-color:#eee}.nav>li.disabled>a{color:#777}.nav>li.disabled>a:hover,.nav>li.disabled>a:focus{color:#777;text-decoration:none;background-color:transparent;cursor:not-allowed}.nav .open>a,.nav .open>a:hover,.nav .open>a:focus{background-color:#eee;border-color:#428bca}.nav .nav-divider{height:1px;margin:9px 0;overflow:hidden;background-color:#e5e5e5}.nav>li>a>img{max-width:none}.nav-tabs{border-bottom:1px solid #ddd}.nav-tabs>li{float:left;margin-bottom:-1px}.nav-tabs>li>a{margin-right:2px;line-height:1.42857143;border:1px solid transparent;border-radius:4px 4px 0 0}.nav-tabs>li>a:hover{border-color:#eee #eee #ddd}.nav-tabs>li.active>a,.nav-tabs>li.active>a:hover,.nav-tabs>li.active>a:focus{color:#555;background-color:#fff;border:1px solid #ddd;border-bottom-color:transparent;cursor:default}.nav-tabs.nav-justified{width:100%;border-bottom:0}.nav-tabs.nav-justified>li{float:none}.nav-tabs.nav-justified>li>a{text-align:center;margin-bottom:5px}.nav-tabs.nav-justified>.dropdown .dropdown-menu{top:auto;left:auto}@media (min-width:768px){.nav-tabs.nav-justified>li{display:table-cell;width:1%}.nav-tabs.nav-justified>li>a{margin-bottom:0}}.nav-tabs.nav-justified>li>a{margin-right:0;border-radius:4px}.nav-tabs.nav-justified>.active>a,.nav-tabs.nav-justified>.active>a:hover,.nav-tabs.nav-justified>.active>a:focus{border:1px solid #ddd}@media (min-width:768px){.nav-tabs.nav-justified>li>a{border-bottom:1px solid #ddd;border-radius:4px 4px 0 0}.nav-tabs.nav-justified>.active>a,.nav-tabs.nav-justified>.active>a:hover,.nav-tabs.nav-justified>.active>a:focus{border-bottom-color:#fff}}.nav-pills>li{float:left}.nav-pills>li>a{border-radius:4px}.nav-pills>li+li{margin-left:2px}.nav-pills>li.active>a,.nav-pills>li.active>a:hover,.nav-pills>li.active>a:focus{color:#fff;background-color:#428bca}.nav-stacked>li{float:none}.nav-stacked>li+li{margin-top:2px;margin-left:0}.nav-justified{width:100%}.nav-justified>li{float:none}.nav-justified>li>a{text-align:center;margin-bottom:5px}.nav-justified>.dropdown .dropdown-menu{top:auto;left:auto}@media (min-width:768px){.nav-justified>li{display:table-cell;width:1%}.nav-justified>li>a{margin-bottom:0}}.nav-tabs-justified{border-bottom:0}.nav-tabs-justified>li>a{margin-right:0;border-radius:4px}.nav-tabs-justified>.active>a,.nav-tabs-justified>.active>a:hover,.nav-tabs-justified>.active>a:focus{border:1px solid #ddd}@media (min-width:768px){.nav-tabs-justified>li>a{border-bottom:1px solid #ddd;border-radius:4px 4px 0 0}.nav-tabs-justified>.active>a,.nav-tabs-justified>.active>a:hover,.nav-tabs-justified>.active>a:focus{border-bottom-color:#fff}}.tab-content>.tab-pane{display:none}.tab-content>.active{display:block}.nav-tabs .dropdown-menu{margin-top:-1px;border-top-right-radius:0;border-top-left-radius:0}.navbar{position:relative;min-height:50px;margin-bottom:20px;border:1px solid transparent}@media (min-width:768px){.navbar{border-radius:4px}}@media (min-width:768px){.navbar-header{float:left}}.navbar-collapse{overflow-x:visible;padding-right:15px;padding-left:15px;border-top:1px solid transparent;box-shadow:inset 0 1px 0 rgba(255,255,255,0.1);-webkit-overflow-scrolling:touch}.navbar-collapse.in{overflow-y:auto}@media (min-width:768px){.navbar-collapse{width:auto;border-top:0;box-shadow:none}.navbar-collapse.collapse{display:block !important;height:auto !important;padding-bottom:0;overflow:visible !important}.navbar-collapse.in{overflow-y:visible}.navbar-fixed-top .navbar-collapse,.navbar-static-top .navbar-collapse,.navbar-fixed-bottom .navbar-collapse{padding-left:0;padding-right:0}}.navbar-fixed-top .navbar-collapse,.navbar-fixed-bottom .navbar-collapse{max-height:340px}@media (max-width:480px) and (orientation:landscape){.navbar-fixed-top .navbar-collapse,.navbar-fixed-bottom .navbar-collapse{max-height:200px}}.container>.navbar-header,.container-fluid>.navbar-header,.container>.navbar-collapse,.container-fluid>.navbar-collapse{margin-right:-15px;margin-left:-15px}@media (min-width:768px){.container>.navbar-header,.container-fluid>.navbar-header,.container>.navbar-collapse,.container-fluid>.navbar-collapse{margin-right:0;margin-left:0}}.navbar-static-top{z-index:1000;border-width:0 0 1px}@media (min-width:768px){.navbar-static-top{border-radius:0}}.navbar-fixed-top,.navbar-fixed-bottom{position:fixed;right:0;left:0;z-index:1030;-webkit-transform:translate3d(0, 0, 0);transform:translate3d(0, 0, 0)}@media (min-width:768px){.navbar-fixed-top,.navbar-fixed-bottom{border-radius:0}}.navbar-fixed-top{top:0;border-width:0 0 1px}.navbar-fixed-bottom{bottom:0;margin-bottom:0;border-width:1px 0 0}.navbar-brand{float:left;padding:15px 15px;font-size:18px;line-height:20px;height:50px}.navbar-brand:hover,.navbar-brand:focus{text-decoration:none}@media (min-width:768px){.navbar>.container .navbar-brand,.navbar>.container-fluid .navbar-brand{margin-left:-15px}}.navbar-toggle{position:relative;float:right;margin-right:15px;padding:9px 10px;margin-top:8px;margin-bottom:8px;background-color:transparent;background-image:none;border:1px solid transparent;border-radius:4px}.navbar-toggle:focus{outline:0}.navbar-toggle .icon-bar{display:block;width:22px;height:2px;border-radius:1px}.navbar-toggle .icon-bar+.icon-bar{margin-top:4px}@media (min-width:768px){.navbar-toggle{display:none}}.navbar-nav{margin:7.5px -15px}.navbar-nav>li>a{padding-top:10px;padding-bottom:10px;line-height:20px}@media (max-width:767px){.navbar-nav .open .dropdown-menu{position:static;float:none;width:auto;margin-top:0;background-color:transparent;border:0;box-shadow:none}.navbar-nav .open .dropdown-menu>li>a,.navbar-nav .open .dropdown-menu .dropdown-header{padding:5px 15px 5px 25px}.navbar-nav .open .dropdown-menu>li>a{line-height:20px}.navbar-nav .open .dropdown-menu>li>a:hover,.navbar-nav .open .dropdown-menu>li>a:focus{background-image:none}}@media (min-width:768px){.navbar-nav{float:left;margin:0}.navbar-nav>li{float:left}.navbar-nav>li>a{padding-top:15px;padding-bottom:15px}.navbar-nav.navbar-right:last-child{margin-right:-15px}}@media (min-width:768px){.navbar-left{float:left !important}.navbar-right{float:right !important}}.navbar-form{margin-left:-15px;margin-right:-15px;padding:10px 15px;border-top:1px solid transparent;border-bottom:1px solid transparent;-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,0.1),0 1px 0 rgba(255,255,255,0.1);box-shadow:inset 0 1px 0 rgba(255,255,255,0.1),0 1px 0 rgba(255,255,255,0.1);margin-top:8px;margin-bottom:8px}@media (min-width:768px){.navbar-form .form-group{display:inline-block;margin-bottom:0;vertical-align:middle}.navbar-form .form-control{display:inline-block;width:auto;vertical-align:middle}.navbar-form .input-group{display:inline-table;vertical-align:middle}.navbar-form .input-group .input-group-addon,.navbar-form .input-group .input-group-btn,.navbar-form .input-group .form-control{width:auto}.navbar-form .input-group>.form-control{width:100%}.navbar-form .control-label{margin-bottom:0;vertical-align:middle}.navbar-form .radio,.navbar-form .checkbox{display:inline-block;margin-top:0;margin-bottom:0;vertical-align:middle}.navbar-form .radio label,.navbar-form .checkbox label{padding-left:0}.navbar-form .radio input[type="radio"],.navbar-form .checkbox input[type="checkbox"]{position:relative;margin-left:0}.navbar-form .has-feedback .form-control-feedback{top:0}}@media (max-width:767px){.navbar-form .form-group{margin-bottom:5px}}@media (min-width:768px){.navbar-form{width:auto;border:0;margin-left:0;margin-right:0;padding-top:0;padding-bottom:0;-webkit-box-shadow:none;box-shadow:none}.navbar-form.navbar-right:last-child{margin-right:-15px}}.navbar-nav>li>.dropdown-menu{margin-top:0;border-top-right-radius:0;border-top-left-radius:0}.navbar-fixed-bottom .navbar-nav>li>.dropdown-menu{border-bottom-right-radius:0;border-bottom-left-radius:0}.navbar-btn{margin-top:8px;margin-bottom:8px}.navbar-btn.btn-sm{margin-top:10px;margin-bottom:10px}.navbar-btn.btn-xs{margin-top:14px;margin-bottom:14px}.navbar-text{margin-top:15px;margin-bottom:15px}@media (min-width:768px){.navbar-text{float:left;margin-left:15px;margin-right:15px}.navbar-text.navbar-right:last-child{margin-right:0}}.navbar-default{background-color:#f8f8f8;border-color:#e7e7e7}.navbar-default .navbar-brand{color:#777}.navbar-default .navbar-brand:hover,.navbar-default .navbar-brand:focus{color:#5e5e5e;background-color:transparent}.navbar-default .navbar-text{color:#777}.navbar-default .navbar-nav>li>a{color:#777}.navbar-default .navbar-nav>li>a:hover,.navbar-default .navbar-nav>li>a:focus{color:#333;background-color:transparent}.navbar-default .navbar-nav>.active>a,.navbar-default .navbar-nav>.active>a:hover,.navbar-default .navbar-nav>.active>a:focus{color:#555;background-color:#e7e7e7}.navbar-default .navbar-nav>.disabled>a,.navbar-default .navbar-nav>.disabled>a:hover,.navbar-default .navbar-nav>.disabled>a:focus{color:#ccc;background-color:transparent}.navbar-default .navbar-toggle{border-color:#ddd}.navbar-default .navbar-toggle:hover,.navbar-default .navbar-toggle:focus{background-color:#ddd}.navbar-default .navbar-toggle .icon-bar{background-color:#888}.navbar-default .navbar-collapse,.navbar-default .navbar-form{border-color:#e7e7e7}.navbar-default .navbar-nav>.open>a,.navbar-default .navbar-nav>.open>a:hover,.navbar-default .navbar-nav>.open>a:focus{background-color:#e7e7e7;color:#555}@media (max-width:767px){.navbar-default .navbar-nav .open .dropdown-menu>li>a{color:#777}.navbar-default .navbar-nav .open .dropdown-menu>li>a:hover,.navbar-default .navbar-nav .open .dropdown-menu>li>a:focus{color:#333;background-color:transparent}.navbar-default .navbar-nav .open .dropdown-menu>.active>a,.navbar-default .navbar-nav .open .dropdown-menu>.active>a:hover,.navbar-default .navbar-nav .open .dropdown-menu>.active>a:focus{color:#555;background-color:#e7e7e7}.navbar-default .navbar-nav .open .dropdown-menu>.disabled>a,.navbar-default .navbar-nav .open .dropdown-menu>.disabled>a:hover,.navbar-default .navbar-nav .open .dropdown-menu>.disabled>a:focus{color:#ccc;background-color:transparent}}.navbar-default .navbar-link{color:#777}.navbar-default .navbar-link:hover{color:#333}.navbar-default .btn-link{color:#777}.navbar-default .btn-link:hover,.navbar-default .btn-link:focus{color:#333}.navbar-default .btn-link[disabled]:hover,fieldset[disabled] .navbar-default .btn-link:hover,.navbar-default .btn-link[disabled]:focus,fieldset[disabled] .navbar-default .btn-link:focus{color:#ccc}.navbar-inverse{background-color:#222;border-color:#080808}.navbar-inverse .navbar-brand{color:#777}.navbar-inverse .navbar-brand:hover,.navbar-inverse .navbar-brand:focus{color:#fff;background-color:transparent}.navbar-inverse .navbar-text{color:#777}.navbar-inverse .navbar-nav>li>a{color:#777}.navbar-inverse .navbar-nav>li>a:hover,.navbar-inverse .navbar-nav>li>a:focus{color:#fff;background-color:transparent}.navbar-inverse .navbar-nav>.active>a,.navbar-inverse .navbar-nav>.active>a:hover,.navbar-inverse .navbar-nav>.active>a:focus{color:#fff;background-color:#080808}.navbar-inverse .navbar-nav>.disabled>a,.navbar-inverse .navbar-nav>.disabled>a:hover,.navbar-inverse .navbar-nav>.disabled>a:focus{color:#444;background-color:transparent}.navbar-inverse .navbar-toggle{border-color:#333}.navbar-inverse .navbar-toggle:hover,.navbar-inverse .navbar-toggle:focus{background-color:#333}.navbar-inverse .navbar-toggle .icon-bar{background-color:#fff}.navbar-inverse .navbar-collapse,.navbar-inverse .navbar-form{border-color:#101010}.navbar-inverse .navbar-nav>.open>a,.navbar-inverse .navbar-nav>.open>a:hover,.navbar-inverse .navbar-nav>.open>a:focus{background-color:#080808;color:#fff}@media (max-width:767px){.navbar-inverse .navbar-nav .open .dropdown-menu>.dropdown-header{border-color:#080808}.navbar-inverse .navbar-nav .open .dropdown-menu .divider{background-color:#080808}.navbar-inverse .navbar-nav .open .dropdown-menu>li>a{color:#777}.navbar-inverse .navbar-nav .open .dropdown-menu>li>a:hover,.navbar-inverse .navbar-nav .open .dropdown-menu>li>a:focus{color:#fff;background-color:transparent}.navbar-inverse .navbar-nav .open .dropdown-menu>.active>a,.navbar-inverse .navbar-nav .open .dropdown-menu>.active>a:hover,.navbar-inverse .navbar-nav .open .dropdown-menu>.active>a:focus{color:#fff;background-color:#080808}.navbar-inverse .navbar-nav .open .dropdown-menu>.disabled>a,.navbar-inverse .navbar-nav .open .dropdown-menu>.disabled>a:hover,.navbar-inverse .navbar-nav .open .dropdown-menu>.disabled>a:focus{color:#444;background-color:transparent}}.navbar-inverse .navbar-link{color:#777}.navbar-inverse .navbar-link:hover{color:#fff}.navbar-inverse .btn-link{color:#777}.navbar-inverse .btn-link:hover,.navbar-inverse .btn-link:focus{color:#fff}.navbar-inverse .btn-link[disabled]:hover,fieldset[disabled] .navbar-inverse .btn-link:hover,.navbar-inverse .btn-link[disabled]:focus,fieldset[disabled] .navbar-inverse .btn-link:focus{color:#444}.breadcrumb{padding:8px 15px;margin-bottom:20px;list-style:none;background-color:#f5f5f5;border-radius:4px}.breadcrumb>li{display:inline-block}.breadcrumb>li+li:before{content:"/\00a0";padding:0 5px;color:#ccc}.breadcrumb>.active{color:#777}.pagination{display:inline-block;padding-left:0;margin:20px 0;border-radius:4px}.pagination>li{display:inline}.pagination>li>a,.pagination>li>span{position:relative;float:left;padding:6px 12px;line-height:1.42857143;text-decoration:none;color:#428bca;background-color:#fff;border:1px solid #ddd;margin-left:-1px}.pagination>li:first-child>a,.pagination>li:first-child>span{margin-left:0;border-bottom-left-radius:4px;border-top-left-radius:4px}.pagination>li:last-child>a,.pagination>li:last-child>span{border-bottom-right-radius:4px;border-top-right-radius:4px}.pagination>li>a:hover,.pagination>li>span:hover,.pagination>li>a:focus,.pagination>li>span:focus{color:#2a6496;background-color:#eee;border-color:#ddd}.pagination>.active>a,.pagination>.active>span,.pagination>.active>a:hover,.pagination>.active>span:hover,.pagination>.active>a:focus,.pagination>.active>span:focus{z-index:2;color:#fff;background-color:#428bca;border-color:#428bca;cursor:default}.pagination>.disabled>span,.pagination>.disabled>span:hover,.pagination>.disabled>span:focus,.pagination>.disabled>a,.pagination>.disabled>a:hover,.pagination>.disabled>a:focus{color:#777;background-color:#fff;border-color:#ddd;cursor:not-allowed}.pagination-lg>li>a,.pagination-lg>li>span{padding:10px 16px;font-size:18px}.pagination-lg>li:first-child>a,.pagination-lg>li:first-child>span{border-bottom-left-radius:6px;border-top-left-radius:6px}.pagination-lg>li:last-child>a,.pagination-lg>li:last-child>span{border-bottom-right-radius:6px;border-top-right-radius:6px}.pagination-sm>li>a,.pagination-sm>li>span{padding:5px 10px;font-size:12px}.pagination-sm>li:first-child>a,.pagination-sm>li:first-child>span{border-bottom-left-radius:3px;border-top-left-radius:3px}.pagination-sm>li:last-child>a,.pagination-sm>li:last-child>span{border-bottom-right-radius:3px;border-top-right-radius:3px}.pager{padding-left:0;margin:20px 0;list-style:none;text-align:center}.pager li{display:inline}.pager li>a,.pager li>span{display:inline-block;padding:5px 14px;background-color:#fff;border:1px solid #ddd;border-radius:15px}.pager li>a:hover,.pager li>a:focus{text-decoration:none;background-color:#eee}.pager .next>a,.pager .next>span{float:right}.pager .previous>a,.pager .previous>span{float:left}.pager .disabled>a,.pager .disabled>a:hover,.pager .disabled>a:focus,.pager .disabled>span{color:#777;background-color:#fff;cursor:not-allowed}.label{display:inline;padding:.2em .6em .3em;font-size:75%;font-weight:bold;line-height:1;color:#fff;text-align:center;white-space:nowrap;vertical-align:baseline;border-radius:.25em}a.label:hover,a.label:focus{color:#fff;text-decoration:none;cursor:pointer}.label:empty{display:none}.btn .label{position:relative;top:-1px}.label-default{background-color:#777}.label-default[href]:hover,.label-default[href]:focus{background-color:#5e5e5e}.label-primary{background-color:#428bca}.label-primary[href]:hover,.label-primary[href]:focus{background-color:#3071a9}.label-success{background-color:#5cb85c}.label-success[href]:hover,.label-success[href]:focus{background-color:#449d44}.label-info{background-color:#5bc0de}.label-info[href]:hover,.label-info[href]:focus{background-color:#31b0d5}.label-warning{background-color:#f0ad4e}.label-warning[href]:hover,.label-warning[href]:focus{background-color:#ec971f}.label-danger{background-color:#d9534f}.label-danger[href]:hover,.label-danger[href]:focus{background-color:#c9302c}.badge{display:inline-block;min-width:10px;padding:3px 7px;font-size:12px;font-weight:bold;color:#fff;line-height:1;vertical-align:baseline;white-space:nowrap;text-align:center;background-color:#777;border-radius:10px}.badge:empty{display:none}.btn .badge{position:relative;top:-1px}.btn-xs .badge{top:0;padding:1px 5px}a.badge:hover,a.badge:focus{color:#fff;text-decoration:none;cursor:pointer}a.list-group-item.active>.badge,.nav-pills>.active>a>.badge{color:#428bca;background-color:#fff}.nav-pills>li>a>.badge{margin-left:3px}.jumbotron{padding:30px;margin-bottom:30px;color:inherit;background-color:#eee}.jumbotron h1,.jumbotron .h1{color:inherit}.jumbotron p{margin-bottom:15px;font-size:21px;font-weight:200}.jumbotron>hr{border-top-color:#d5d5d5}.container .jumbotron{border-radius:6px}.jumbotron .container{max-width:100%}@media screen and (min-width:768px){.jumbotron{padding-top:48px;padding-bottom:48px}.container .jumbotron{padding-left:60px;padding-right:60px}.jumbotron h1,.jumbotron .h1{font-size:63px}}.thumbnail{display:block;padding:4px;margin-bottom:20px;line-height:1.42857143;background-color:#fff;border:1px solid #ddd;border-radius:4px;-webkit-transition:all .2s ease-in-out;-o-transition:all .2s ease-in-out;transition:all .2s ease-in-out}.thumbnail>img,.thumbnail a>img{margin-left:auto;margin-right:auto}a.thumbnail:hover,a.thumbnail:focus,a.thumbnail.active{border-color:#428bca}.thumbnail .caption{padding:9px;color:#333}.alert{padding:15px;margin-bottom:20px;border:1px solid transparent;border-radius:4px}.alert h4{margin-top:0;color:inherit}.alert .alert-link{font-weight:bold}.alert>p,.alert>ul{margin-bottom:0}.alert>p+p{margin-top:5px}.alert-dismissable,.alert-dismissible{padding-right:35px}.alert-dismissable .close,.alert-dismissible .close{position:relative;top:-2px;right:-21px;color:inherit}.alert-success{background-color:#dff0d8;border-color:#d6e9c6;color:#3c763d}.alert-success hr{border-top-color:#c9e2b3}.alert-success .alert-link{color:#2b542c}.alert-info{background-color:#d9edf7;border-color:#bce8f1;color:#31708f}.alert-info hr{border-top-color:#a6e1ec}.alert-info .alert-link{color:#245269}.alert-warning{background-color:#fcf8e3;border-color:#faebcc;color:#8a6d3b}.alert-warning hr{border-top-color:#f7e1b5}.alert-warning .alert-link{color:#66512c}.alert-danger{background-color:#f2dede;border-color:#ebccd1;color:#a94442}.alert-danger hr{border-top-color:#e4b9c0}.alert-danger .alert-link{color:#843534}@-webkit-keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}@keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}.progress{overflow:hidden;height:20px;margin-bottom:20px;background-color:#f5f5f5;border-radius:4px;-webkit-box-shadow:inset 0 1px 2px rgba(0,0,0,0.1);box-shadow:inset 0 1px 2px rgba(0,0,0,0.1)}.progress-bar{float:left;width:0;height:100%;font-size:12px;line-height:20px;color:#fff;text-align:center;background-color:#428bca;-webkit-box-shadow:inset 0 -1px 0 rgba(0,0,0,0.15);box-shadow:inset 0 -1px 0 rgba(0,0,0,0.15);-webkit-transition:width .6s ease;-o-transition:width .6s ease;transition:width .6s ease}.progress-striped .progress-bar,.progress-bar-striped{background-image:-webkit-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:-o-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-size:40px 40px}.progress.active .progress-bar,.progress-bar.active{-webkit-animation:progress-bar-stripes 2s linear infinite;-o-animation:progress-bar-stripes 2s linear infinite;animation:progress-bar-stripes 2s linear infinite}.progress-bar[aria-valuenow="1"],.progress-bar[aria-valuenow="2"]{min-width:30px}.progress-bar[aria-valuenow="0"]{color:#777;min-width:30px;background-color:transparent;background-image:none;box-shadow:none}.progress-bar-success{background-color:#5cb85c}.progress-striped .progress-bar-success{background-image:-webkit-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:-o-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent)}.progress-bar-info{background-color:#5bc0de}.progress-striped .progress-bar-info{background-image:-webkit-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:-o-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent)}.progress-bar-warning{background-color:#f0ad4e}.progress-striped .progress-bar-warning{background-image:-webkit-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:-o-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent)}.progress-bar-danger{background-color:#d9534f}.progress-striped .progress-bar-danger{background-image:-webkit-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:-o-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent)}.media,.media-body{overflow:hidden;zoom:1}.media,.media .media{margin-top:15px}.media:first-child{margin-top:0}.media-object{display:block}.media-heading{margin:0 0 5px}.media>.pull-left{margin-right:10px}.media>.pull-right{margin-left:10px}.media-list{padding-left:0;list-style:none}.list-group{margin-bottom:20px;padding-left:0}.list-group-item{position:relative;display:block;padding:10px 15px;margin-bottom:-1px;background-color:#fff;border:1px solid #ddd}.list-group-item:first-child{border-top-right-radius:4px;border-top-left-radius:4px}.list-group-item:last-child{margin-bottom:0;border-bottom-right-radius:4px;border-bottom-left-radius:4px}.list-group-item>.badge{float:right}.list-group-item>.badge+.badge{margin-right:5px}a.list-group-item{color:#555}a.list-group-item .list-group-item-heading{color:#333}a.list-group-item:hover,a.list-group-item:focus{text-decoration:none;color:#555;background-color:#f5f5f5}.list-group-item.disabled,.list-group-item.disabled:hover,.list-group-item.disabled:focus{background-color:#eee;color:#777}.list-group-item.disabled .list-group-item-heading,.list-group-item.disabled:hover .list-group-item-heading,.list-group-item.disabled:focus .list-group-item-heading{color:inherit}.list-group-item.disabled .list-group-item-text,.list-group-item.disabled:hover .list-group-item-text,.list-group-item.disabled:focus .list-group-item-text{color:#777}.list-group-item.active,.list-group-item.active:hover,.list-group-item.active:focus{z-index:2;color:#fff;background-color:#428bca;border-color:#428bca}.list-group-item.active .list-group-item-heading,.list-group-item.active:hover .list-group-item-heading,.list-group-item.active:focus .list-group-item-heading,.list-group-item.active .list-group-item-heading>small,.list-group-item.active:hover .list-group-item-heading>small,.list-group-item.active:focus .list-group-item-heading>small,.list-group-item.active .list-group-item-heading>.small,.list-group-item.active:hover .list-group-item-heading>.small,.list-group-item.active:focus .list-group-item-heading>.small{color:inherit}.list-group-item.active .list-group-item-text,.list-group-item.active:hover .list-group-item-text,.list-group-item.active:focus .list-group-item-text{color:#e1edf7}.list-group-item-success{color:#3c763d;background-color:#dff0d8}a.list-group-item-success{color:#3c763d}a.list-group-item-success .list-group-item-heading{color:inherit}a.list-group-item-success:hover,a.list-group-item-success:focus{color:#3c763d;background-color:#d0e9c6}a.list-group-item-success.active,a.list-group-item-success.active:hover,a.list-group-item-success.active:focus{color:#fff;background-color:#3c763d;border-color:#3c763d}.list-group-item-info{color:#31708f;background-color:#d9edf7}a.list-group-item-info{color:#31708f}a.list-group-item-info .list-group-item-heading{color:inherit}a.list-group-item-info:hover,a.list-group-item-info:focus{color:#31708f;background-color:#c4e3f3}a.list-group-item-info.active,a.list-group-item-info.active:hover,a.list-group-item-info.active:focus{color:#fff;background-color:#31708f;border-color:#31708f}.list-group-item-warning{color:#8a6d3b;background-color:#fcf8e3}a.list-group-item-warning{color:#8a6d3b}a.list-group-item-warning .list-group-item-heading{color:inherit}a.list-group-item-warning:hover,a.list-group-item-warning:focus{color:#8a6d3b;background-color:#faf2cc}a.list-group-item-warning.active,a.list-group-item-warning.active:hover,a.list-group-item-warning.active:focus{color:#fff;background-color:#8a6d3b;border-color:#8a6d3b}.list-group-item-danger{color:#a94442;background-color:#f2dede}a.list-group-item-danger{color:#a94442}a.list-group-item-danger .list-group-item-heading{color:inherit}a.list-group-item-danger:hover,a.list-group-item-danger:focus{color:#a94442;background-color:#ebcccc}a.list-group-item-danger.active,a.list-group-item-danger.active:hover,a.list-group-item-danger.active:focus{color:#fff;background-color:#a94442;border-color:#a94442}.list-group-item-heading{margin-top:0;margin-bottom:5px}.list-group-item-text{margin-bottom:0;line-height:1.3}.panel{margin-bottom:20px;background-color:#fff;border:1px solid transparent;border-radius:4px;-webkit-box-shadow:0 1px 1px rgba(0,0,0,0.05);box-shadow:0 1px 1px rgba(0,0,0,0.05)}.panel-body{padding:15px}.panel-heading{padding:10px 15px;border-bottom:1px solid transparent;border-top-right-radius:3px;border-top-left-radius:3px}.panel-heading>.dropdown .dropdown-toggle{color:inherit}.panel-title{margin-top:0;margin-bottom:0;font-size:16px;color:inherit}.panel-title>a{color:inherit}.panel-footer{padding:10px 15px;background-color:#f5f5f5;border-top:1px solid #ddd;border-bottom-right-radius:3px;border-bottom-left-radius:3px}.panel>.list-group{margin-bottom:0}.panel>.list-group .list-group-item{border-width:1px 0;border-radius:0}.panel>.list-group:first-child .list-group-item:first-child{border-top:0;border-top-right-radius:3px;border-top-left-radius:3px}.panel>.list-group:last-child .list-group-item:last-child{border-bottom:0;border-bottom-right-radius:3px;border-bottom-left-radius:3px}.panel-heading+.list-group .list-group-item:first-child{border-top-width:0}.list-group+.panel-footer{border-top-width:0}.panel>.table,.panel>.table-responsive>.table,.panel>.panel-collapse>.table{margin-bottom:0}.panel>.table:first-child,.panel>.table-responsive:first-child>.table:first-child{border-top-right-radius:3px;border-top-left-radius:3px}.panel>.table:first-child>thead:first-child>tr:first-child td:first-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child td:first-child,.panel>.table:first-child>tbody:first-child>tr:first-child td:first-child,.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child td:first-child,.panel>.table:first-child>thead:first-child>tr:first-child th:first-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child th:first-child,.panel>.table:first-child>tbody:first-child>tr:first-child th:first-child,.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child th:first-child{border-top-left-radius:3px}.panel>.table:first-child>thead:first-child>tr:first-child td:last-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child td:last-child,.panel>.table:first-child>tbody:first-child>tr:first-child td:last-child,.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child td:last-child,.panel>.table:first-child>thead:first-child>tr:first-child th:last-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child th:last-child,.panel>.table:first-child>tbody:first-child>tr:first-child th:last-child,.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child th:last-child{border-top-right-radius:3px}.panel>.table:last-child,.panel>.table-responsive:last-child>.table:last-child{border-bottom-right-radius:3px;border-bottom-left-radius:3px}.panel>.table:last-child>tbody:last-child>tr:last-child td:first-child,.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child td:first-child,.panel>.table:last-child>tfoot:last-child>tr:last-child td:first-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child td:first-child,.panel>.table:last-child>tbody:last-child>tr:last-child th:first-child,.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child th:first-child,.panel>.table:last-child>tfoot:last-child>tr:last-child th:first-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child th:first-child{border-bottom-left-radius:3px}.panel>.table:last-child>tbody:last-child>tr:last-child td:last-child,.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child td:last-child,.panel>.table:last-child>tfoot:last-child>tr:last-child td:last-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child td:last-child,.panel>.table:last-child>tbody:last-child>tr:last-child th:last-child,.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child th:last-child,.panel>.table:last-child>tfoot:last-child>tr:last-child th:last-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child th:last-child{border-bottom-right-radius:3px}.panel>.panel-body+.table,.panel>.panel-body+.table-responsive{border-top:1px solid #ddd}.panel>.table>tbody:first-child>tr:first-child th,.panel>.table>tbody:first-child>tr:first-child td{border-top:0}.panel>.table-bordered,.panel>.table-responsive>.table-bordered{border:0}.panel>.table-bordered>thead>tr>th:first-child,.panel>.table-responsive>.table-bordered>thead>tr>th:first-child,.panel>.table-bordered>tbody>tr>th:first-child,.panel>.table-responsive>.table-bordered>tbody>tr>th:first-child,.panel>.table-bordered>tfoot>tr>th:first-child,.panel>.table-responsive>.table-bordered>tfoot>tr>th:first-child,.panel>.table-bordered>thead>tr>td:first-child,.panel>.table-responsive>.table-bordered>thead>tr>td:first-child,.panel>.table-bordered>tbody>tr>td:first-child,.panel>.table-responsive>.table-bordered>tbody>tr>td:first-child,.panel>.table-bordered>tfoot>tr>td:first-child,.panel>.table-responsive>.table-bordered>tfoot>tr>td:first-child{border-left:0}.panel>.table-bordered>thead>tr>th:last-child,.panel>.table-responsive>.table-bordered>thead>tr>th:last-child,.panel>.table-bordered>tbody>tr>th:last-child,.panel>.table-responsive>.table-bordered>tbody>tr>th:last-child,.panel>.table-bordered>tfoot>tr>th:last-child,.panel>.table-responsive>.table-bordered>tfoot>tr>th:last-child,.panel>.table-bordered>thead>tr>td:last-child,.panel>.table-responsive>.table-bordered>thead>tr>td:last-child,.panel>.table-bordered>tbody>tr>td:last-child,.panel>.table-responsive>.table-bordered>tbody>tr>td:last-child,.panel>.table-bordered>tfoot>tr>td:last-child,.panel>.table-responsive>.table-bordered>tfoot>tr>td:last-child{border-right:0}.panel>.table-bordered>thead>tr:first-child>td,.panel>.table-responsive>.table-bordered>thead>tr:first-child>td,.panel>.table-bordered>tbody>tr:first-child>td,.panel>.table-responsive>.table-bordered>tbody>tr:first-child>td,.panel>.table-bordered>thead>tr:first-child>th,.panel>.table-responsive>.table-bordered>thead>tr:first-child>th,.panel>.table-bordered>tbody>tr:first-child>th,.panel>.table-responsive>.table-bordered>tbody>tr:first-child>th{border-bottom:0}.panel>.table-bordered>tbody>tr:last-child>td,.panel>.table-responsive>.table-bordered>tbody>tr:last-child>td,.panel>.table-bordered>tfoot>tr:last-child>td,.panel>.table-responsive>.table-bordered>tfoot>tr:last-child>td,.panel>.table-bordered>tbody>tr:last-child>th,.panel>.table-responsive>.table-bordered>tbody>tr:last-child>th,.panel>.table-bordered>tfoot>tr:last-child>th,.panel>.table-responsive>.table-bordered>tfoot>tr:last-child>th{border-bottom:0}.panel>.table-responsive{border:0;margin-bottom:0}.panel-group{margin-bottom:20px}.panel-group .panel{margin-bottom:0;border-radius:4px}.panel-group .panel+.panel{margin-top:5px}.panel-group .panel-heading{border-bottom:0}.panel-group .panel-heading+.panel-collapse>.panel-body{border-top:1px solid #ddd}.panel-group .panel-footer{border-top:0}.panel-group .panel-footer+.panel-collapse .panel-body{border-bottom:1px solid #ddd}.panel-default{border-color:#ddd}.panel-default>.panel-heading{color:#333;background-color:#f5f5f5;border-color:#ddd}.panel-default>.panel-heading+.panel-collapse>.panel-body{border-top-color:#ddd}.panel-default>.panel-heading .badge{color:#f5f5f5;background-color:#333}.panel-default>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#ddd}.panel-primary{border-color:#428bca}.panel-primary>.panel-heading{color:#fff;background-color:#428bca;border-color:#428bca}.panel-primary>.panel-heading+.panel-collapse>.panel-body{border-top-color:#428bca}.panel-primary>.panel-heading .badge{color:#428bca;background-color:#fff}.panel-primary>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#428bca}.panel-success{border-color:#d6e9c6}.panel-success>.panel-heading{color:#3c763d;background-color:#dff0d8;border-color:#d6e9c6}.panel-success>.panel-heading+.panel-collapse>.panel-body{border-top-color:#d6e9c6}.panel-success>.panel-heading .badge{color:#dff0d8;background-color:#3c763d}.panel-success>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#d6e9c6}.panel-info{border-color:#bce8f1}.panel-info>.panel-heading{color:#31708f;background-color:#d9edf7;border-color:#bce8f1}.panel-info>.panel-heading+.panel-collapse>.panel-body{border-top-color:#bce8f1}.panel-info>.panel-heading .badge{color:#d9edf7;background-color:#31708f}.panel-info>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#bce8f1}.panel-warning{border-color:#faebcc}.panel-warning>.panel-heading{color:#8a6d3b;background-color:#fcf8e3;border-color:#faebcc}.panel-warning>.panel-heading+.panel-collapse>.panel-body{border-top-color:#faebcc}.panel-warning>.panel-heading .badge{color:#fcf8e3;background-color:#8a6d3b}.panel-warning>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#faebcc}.panel-danger{border-color:#ebccd1}.panel-danger>.panel-heading{color:#a94442;background-color:#f2dede;border-color:#ebccd1}.panel-danger>.panel-heading+.panel-collapse>.panel-body{border-top-color:#ebccd1}.panel-danger>.panel-heading .badge{color:#f2dede;background-color:#a94442}.panel-danger>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#ebccd1}.embed-responsive{position:relative;display:block;height:0;padding:0;overflow:hidden}.embed-responsive .embed-responsive-item,.embed-responsive iframe,.embed-responsive embed,.embed-responsive object{position:absolute;top:0;left:0;bottom:0;height:100%;width:100%;border:0}.embed-responsive.embed-responsive-16by9{padding-bottom:56.25%}.embed-responsive.embed-responsive-4by3{padding-bottom:75%}.well{min-height:20px;padding:19px;margin-bottom:20px;background-color:#f5f5f5;border:1px solid #e3e3e3;border-radius:4px;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.05);box-shadow:inset 0 1px 1px rgba(0,0,0,0.05)}.well blockquote{border-color:#ddd;border-color:rgba(0,0,0,0.15)}.well-lg{padding:24px;border-radius:6px}.well-sm{padding:9px;border-radius:3px}.close{float:right;font-size:21px;font-weight:bold;line-height:1;color:#000;text-shadow:0 1px 0 #fff;opacity:.2;filter:alpha(opacity=20)}.close:hover,.close:focus{color:#000;text-decoration:none;cursor:pointer;opacity:.5;filter:alpha(opacity=50)}button.close{padding:0;cursor:pointer;background:transparent;border:0;-webkit-appearance:none}.modal-open{overflow:hidden}.modal{display:none;overflow:hidden;position:fixed;top:0;right:0;bottom:0;left:0;z-index:1050;-webkit-overflow-scrolling:touch;outline:0}.modal.fade .modal-dialog{-webkit-transform:translate3d(0, -25%, 0);transform:translate3d(0, -25%, 0);-webkit-transition:-webkit-transform 0.3s ease-out;-moz-transition:-moz-transform 0.3s ease-out;-o-transition:-o-transform 0.3s ease-out;transition:transform 0.3s ease-out}.modal.in .modal-dialog{-webkit-transform:translate3d(0, 0, 0);transform:translate3d(0, 0, 0)}.modal-open .modal{overflow-x:hidden;overflow-y:auto}.modal-dialog{position:relative;width:auto;margin:10px}.modal-content{position:relative;background-color:#fff;border:1px solid #999;border:1px solid rgba(0,0,0,0.2);border-radius:6px;-webkit-box-shadow:0 3px 9px rgba(0,0,0,0.5);box-shadow:0 3px 9px rgba(0,0,0,0.5);background-clip:padding-box;outline:0}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1040;background-color:#000}.modal-backdrop.fade{opacity:0;filter:alpha(opacity=0)}.modal-backdrop.in{opacity:.5;filter:alpha(opacity=50)}.modal-header{padding:15px;border-bottom:1px solid #e5e5e5;min-height:16.42857143px}.modal-header .close{margin-top:-2px}.modal-title{margin:0;line-height:1.42857143}.modal-body{position:relative;padding:15px}.modal-footer{padding:15px;text-align:right;border-top:1px solid #e5e5e5}.modal-footer .btn+.btn{margin-left:5px;margin-bottom:0}.modal-footer .btn-group .btn+.btn{margin-left:-1px}.modal-footer .btn-block+.btn-block{margin-left:0}.modal-scrollbar-measure{position:absolute;top:-9999px;width:50px;height:50px;overflow:scroll}@media (min-width:768px){.modal-dialog{width:600px;margin:30px auto}.modal-content{-webkit-box-shadow:0 5px 15px rgba(0,0,0,0.5);box-shadow:0 5px 15px rgba(0,0,0,0.5)}.modal-sm{width:300px}}@media (min-width:992px){.modal-lg{width:900px}}.tooltip{position:absolute;z-index:1070;display:block;visibility:visible;font-size:12px;line-height:1.4;opacity:0;filter:alpha(opacity=0)}.tooltip.in{opacity:.9;filter:alpha(opacity=90)}.tooltip.top{margin-top:-3px;padding:5px 0}.tooltip.right{margin-left:3px;padding:0 5px}.tooltip.bottom{margin-top:3px;padding:5px 0}.tooltip.left{margin-left:-3px;padding:0 5px}.tooltip-inner{max-width:200px;padding:3px 8px;color:#fff;text-align:center;text-decoration:none;background-color:#000;border-radius:4px}.tooltip-arrow{position:absolute;width:0;height:0;border-color:transparent;border-style:solid}.tooltip.top .tooltip-arrow{bottom:0;left:50%;margin-left:-5px;border-width:5px 5px 0;border-top-color:#000}.tooltip.top-left .tooltip-arrow{bottom:0;left:5px;border-width:5px 5px 0;border-top-color:#000}.tooltip.top-right .tooltip-arrow{bottom:0;right:5px;border-width:5px 5px 0;border-top-color:#000}.tooltip.right .tooltip-arrow{top:50%;left:0;margin-top:-5px;border-width:5px 5px 5px 0;border-right-color:#000}.tooltip.left .tooltip-arrow{top:50%;right:0;margin-top:-5px;border-width:5px 0 5px 5px;border-left-color:#000}.tooltip.bottom .tooltip-arrow{top:0;left:50%;margin-left:-5px;border-width:0 5px 5px;border-bottom-color:#000}.tooltip.bottom-left .tooltip-arrow{top:0;left:5px;border-width:0 5px 5px;border-bottom-color:#000}.tooltip.bottom-right .tooltip-arrow{top:0;right:5px;border-width:0 5px 5px;border-bottom-color:#000}.popover{position:absolute;top:0;left:0;z-index:1060;display:none;max-width:276px;padding:1px;text-align:left;background-color:#fff;background-clip:padding-box;border:1px solid #ccc;border:1px solid rgba(0,0,0,0.2);border-radius:6px;-webkit-box-shadow:0 5px 10px rgba(0,0,0,0.2);box-shadow:0 5px 10px rgba(0,0,0,0.2);white-space:normal}.popover.top{margin-top:-10px}.popover.right{margin-left:10px}.popover.bottom{margin-top:10px}.popover.left{margin-left:-10px}.popover-title{margin:0;padding:8px 14px;font-size:14px;font-weight:normal;line-height:18px;background-color:#f7f7f7;border-bottom:1px solid #ebebeb;border-radius:5px 5px 0 0}.popover-content{padding:9px 14px}.popover>.arrow,.popover>.arrow:after{position:absolute;display:block;width:0;height:0;border-color:transparent;border-style:solid}.popover>.arrow{border-width:11px}.popover>.arrow:after{border-width:10px;content:""}.popover.top>.arrow{left:50%;margin-left:-11px;border-bottom-width:0;border-top-color:#999;border-top-color:rgba(0,0,0,0.25);bottom:-11px}.popover.top>.arrow:after{content:" ";bottom:1px;margin-left:-10px;border-bottom-width:0;border-top-color:#fff}.popover.right>.arrow{top:50%;left:-11px;margin-top:-11px;border-left-width:0;border-right-color:#999;border-right-color:rgba(0,0,0,0.25)}.popover.right>.arrow:after{content:" ";left:1px;bottom:-10px;border-left-width:0;border-right-color:#fff}.popover.bottom>.arrow{left:50%;margin-left:-11px;border-top-width:0;border-bottom-color:#999;border-bottom-color:rgba(0,0,0,0.25);top:-11px}.popover.bottom>.arrow:after{content:" ";top:1px;margin-left:-10px;border-top-width:0;border-bottom-color:#fff}.popover.left>.arrow{top:50%;right:-11px;margin-top:-11px;border-right-width:0;border-left-color:#999;border-left-color:rgba(0,0,0,0.25)}.popover.left>.arrow:after{content:" ";right:1px;border-right-width:0;border-left-color:#fff;bottom:-10px}.carousel{position:relative}.carousel-inner{position:relative;overflow:hidden;width:100%}.carousel-inner>.item{display:none;position:relative;-webkit-transition:.6s ease-in-out left;-o-transition:.6s ease-in-out left;transition:.6s ease-in-out left}.carousel-inner>.item>img,.carousel-inner>.item>a>img{line-height:1}.carousel-inner>.active,.carousel-inner>.next,.carousel-inner>.prev{display:block}.carousel-inner>.active{left:0}.carousel-inner>.next,.carousel-inner>.prev{position:absolute;top:0;width:100%}.carousel-inner>.next{left:100%}.carousel-inner>.prev{left:-100%}.carousel-inner>.next.left,.carousel-inner>.prev.right{left:0}.carousel-inner>.active.left{left:-100%}.carousel-inner>.active.right{left:100%}.carousel-control{position:absolute;top:0;left:0;bottom:0;width:15%;opacity:.5;filter:alpha(opacity=50);font-size:20px;color:#fff;text-align:center;text-shadow:0 1px 2px rgba(0,0,0,0.6)}.carousel-control.left{background-image:-webkit-linear-gradient(left, rgba(0,0,0,0.5) 0, rgba(0,0,0,0.0001) 100%);background-image:-o-linear-gradient(left, rgba(0,0,0,0.5) 0, rgba(0,0,0,0.0001) 100%);background-image:linear-gradient(to right, rgba(0,0,0,0.5) 0, rgba(0,0,0,0.0001) 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#80000000', endColorstr='#00000000', GradientType=1)}.carousel-control.right{left:auto;right:0;background-image:-webkit-linear-gradient(left, rgba(0,0,0,0.0001) 0, rgba(0,0,0,0.5) 100%);background-image:-o-linear-gradient(left, rgba(0,0,0,0.0001) 0, rgba(0,0,0,0.5) 100%);background-image:linear-gradient(to right, rgba(0,0,0,0.0001) 0, rgba(0,0,0,0.5) 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#00000000', endColorstr='#80000000', GradientType=1)}.carousel-control:hover,.carousel-control:focus{outline:0;color:#fff;text-decoration:none;opacity:.9;filter:alpha(opacity=90)}.carousel-control .icon-prev,.carousel-control .icon-next,.carousel-control .glyphicon-chevron-left,.carousel-control .glyphicon-chevron-right{position:absolute;top:50%;z-index:5;display:inline-block}.carousel-control .icon-prev,.carousel-control .glyphicon-chevron-left{left:50%;margin-left:-10px}.carousel-control .icon-next,.carousel-control .glyphicon-chevron-right{right:50%;margin-right:-10px}.carousel-control .icon-prev,.carousel-control .icon-next{width:20px;height:20px;margin-top:-10px;font-family:serif}.carousel-control .icon-prev:before{content:'\2039'}.carousel-control .icon-next:before{content:'\203a'}.carousel-indicators{position:absolute;bottom:10px;left:50%;z-index:15;width:60%;margin-left:-30%;padding-left:0;list-style:none;text-align:center}.carousel-indicators li{display:inline-block;width:10px;height:10px;margin:1px;text-indent:-999px;border:1px solid #fff;border-radius:10px;cursor:pointer;background-color:#000 \9;background-color:rgba(0,0,0,0)}.carousel-indicators .active{margin:0;width:12px;height:12px;background-color:#fff}.carousel-caption{position:absolute;left:15%;right:15%;bottom:20px;z-index:10;padding-top:20px;padding-bottom:20px;color:#fff;text-align:center;text-shadow:0 1px 2px rgba(0,0,0,0.6)}.carousel-caption .btn{text-shadow:none}@media screen and (min-width:768px){.carousel-control .glyphicon-chevron-left,.carousel-control .glyphicon-chevron-right,.carousel-control .icon-prev,.carousel-control .icon-next{width:30px;height:30px;margin-top:-15px;font-size:30px}.carousel-control .glyphicon-chevron-left,.carousel-control .icon-prev{margin-left:-15px}.carousel-control .glyphicon-chevron-right,.carousel-control .icon-next{margin-right:-15px}.carousel-caption{left:20%;right:20%;padding-bottom:30px}.carousel-indicators{bottom:20px}}.clearfix:before,.clearfix:after,.dl-horizontal dd:before,.dl-horizontal dd:after,.container:before,.container:after,.container-fluid:before,.container-fluid:after,.row:before,.row:after,.form-horizontal .form-group:before,.form-horizontal .form-group:after,.btn-toolbar:before,.btn-toolbar:after,.btn-group-vertical>.btn-group:before,.btn-group-vertical>.btn-group:after,.nav:before,.nav:after,.navbar:before,.navbar:after,.navbar-header:before,.navbar-header:after,.navbar-collapse:before,.navbar-collapse:after,.pager:before,.pager:after,.panel-body:before,.panel-body:after,.modal-footer:before,.modal-footer:after{content:" ";display:table}.clearfix:after,.dl-horizontal dd:after,.container:after,.container-fluid:after,.row:after,.form-horizontal .form-group:after,.btn-toolbar:after,.btn-group-vertical>.btn-group:after,.nav:after,.navbar:after,.navbar-header:after,.navbar-collapse:after,.pager:after,.panel-body:after,.modal-footer:after{clear:both}.center-block{display:block;margin-left:auto;margin-right:auto}.pull-right{float:right !important}.pull-left{float:left !important}.hide{display:none !important}.show{display:block !important}.invisible{visibility:hidden}.text-hide{font:0/0 a;color:transparent;text-shadow:none;background-color:transparent;border:0}.hidden{display:none !important;visibility:hidden !important}.affix{position:fixed;-webkit-transform:translate3d(0, 0, 0);transform:translate3d(0, 0, 0)}@-ms-viewport{width:device-width}.visible-xs,.visible-sm,.visible-md,.visible-lg{display:none !important}.visible-xs-block,.visible-xs-inline,.visible-xs-inline-block,.visible-sm-block,.visible-sm-inline,.visible-sm-inline-block,.visible-md-block,.visible-md-inline,.visible-md-inline-block,.visible-lg-block,.visible-lg-inline,.visible-lg-inline-block{display:none !important}@media (max-width:767px){.visible-xs{display:block !important}table.visible-xs{display:table}tr.visible-xs{display:table-row !important}th.visible-xs,td.visible-xs{display:table-cell !important}}@media (max-width:767px){.visible-xs-block{display:block !important}}@media (max-width:767px){.visible-xs-inline{display:inline !important}}@media (max-width:767px){.visible-xs-inline-block{display:inline-block !important}}@media (min-width:768px) and (max-width:991px){.visible-sm{display:block !important}table.visible-sm{display:table}tr.visible-sm{display:table-row !important}th.visible-sm,td.visible-sm{display:table-cell !important}}@media (min-width:768px) and (max-width:991px){.visible-sm-block{display:block !important}}@media (min-width:768px) and (max-width:991px){.visible-sm-inline{display:inline !important}}@media (min-width:768px) and (max-width:991px){.visible-sm-inline-block{display:inline-block !important}}@media (min-width:992px) and (max-width:1199px){.visible-md{display:block !important}table.visible-md{display:table}tr.visible-md{display:table-row !important}th.visible-md,td.visible-md{display:table-cell !important}}@media (min-width:992px) and (max-width:1199px){.visible-md-block{display:block !important}}@media (min-width:992px) and (max-width:1199px){.visible-md-inline{display:inline !important}}@media (min-width:992px) and (max-width:1199px){.visible-md-inline-block{display:inline-block !important}}@media (min-width:1200px){.visible-lg{display:block !important}table.visible-lg{display:table}tr.visible-lg{display:table-row !important}th.visible-lg,td.visible-lg{display:table-cell !important}}@media (min-width:1200px){.visible-lg-block{display:block !important}}@media (min-width:1200px){.visible-lg-inline{display:inline !important}}@media (min-width:1200px){.visible-lg-inline-block{display:inline-block !important}}@media (max-width:767px){.hidden-xs{display:none !important}}@media (min-width:768px) and (max-width:991px){.hidden-sm{display:none !important}}@media (min-width:992px) and (max-width:1199px){.hidden-md{display:none !important}}@media (min-width:1200px){.hidden-lg{display:none !important}}.visible-print{display:none !important}@media print{.visible-print{display:block !important}table.visible-print{display:table}tr.visible-print{display:table-row !important}th.visible-print,td.visible-print{display:table-cell !important}}.visible-print-block{display:none !important}@media print{.visible-print-block{display:block !important}}.visible-print-inline{display:none !important}@media print{.visible-print-inline{display:inline !important}}.visible-print-inline-block{display:none !important}@media print{.visible-print-inline-block{display:inline-block !important}}@media print{.hidden-print{display:none !important}}.has-warning .twitter-typeahead .tt-input,.has-warning .twitter-typeahead .tt-hint{border-color:#8a6d3b;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075)}.has-warning .twitter-typeahead .tt-input:focus,.has-warning .twitter-typeahead .tt-hint:focus{border-color:#66512c;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #c0a16b;box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #c0a16b}.has-error .twitter-typeahead .tt-input,.has-error .twitter-typeahead .tt-hint{border-color:#a94442;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075)}.has-error .twitter-typeahead .tt-input:focus,.has-error .twitter-typeahead .tt-hint:focus{border-color:#843534;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #ce8483;box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #ce8483}.has-success .twitter-typeahead .tt-input,.has-success .twitter-typeahead .tt-hint{border-color:#3c763d;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075)}.has-success .twitter-typeahead .tt-input:focus,.has-success .twitter-typeahead .tt-hint:focus{border-color:#2b542c;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #67b168;box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #67b168}.input-group .twitter-typeahead:first-child .tt-input,.input-group .twitter-typeahead:first-child .tt-hint{border-bottom-left-radius:4px;border-top-left-radius:4px}.input-group .twitter-typeahead:last-child .tt-input,.input-group .twitter-typeahead:last-child .tt-hint{border-bottom-right-radius:4px;border-top-right-radius:4px}.input-group.input-group-sm .twitter-typeahead .tt-input,.input-group.input-group-sm .twitter-typeahead .tt-hint{height:30px;padding:5px 10px;font-size:12px;line-height:1.5;border-radius:3px}select.input-group.input-group-sm .twitter-typeahead .tt-input,select.input-group.input-group-sm .twitter-typeahead .tt-hint{height:30px;line-height:30px}textarea.input-group.input-group-sm .twitter-typeahead .tt-input,textarea.input-group.input-group-sm .twitter-typeahead .tt-hint,select[multiple].input-group.input-group-sm .twitter-typeahead .tt-input,select[multiple].input-group.input-group-sm .twitter-typeahead .tt-hint{height:auto}.input-group.input-group-sm .twitter-typeahead:not(:first-child):not(:last-child) .tt-input,.input-group.input-group-sm .twitter-typeahead:not(:first-child):not(:last-child) .tt-hint{border-radius:0}.input-group.input-group-sm .twitter-typeahead:first-child .tt-input,.input-group.input-group-sm .twitter-typeahead:first-child .tt-hint{border-bottom-left-radius:3px;border-top-left-radius:3px;border-bottom-right-radius:0;border-top-right-radius:0}.input-group.input-group-sm .twitter-typeahead:last-child .tt-input,.input-group.input-group-sm .twitter-typeahead:last-child .tt-hint{border-bottom-left-radius:0;border-top-left-radius:0;border-bottom-right-radius:3px;border-top-right-radius:3px}.input-group.input-group-lg .twitter-typeahead .tt-input,.input-group.input-group-lg .twitter-typeahead .tt-hint{height:46px;padding:10px 16px;font-size:18px;line-height:1.33;border-radius:6px}select.input-group.input-group-lg .twitter-typeahead .tt-input,select.input-group.input-group-lg .twitter-typeahead .tt-hint{height:46px;line-height:46px}textarea.input-group.input-group-lg .twitter-typeahead .tt-input,textarea.input-group.input-group-lg .twitter-typeahead .tt-hint,select[multiple].input-group.input-group-lg .twitter-typeahead .tt-input,select[multiple].input-group.input-group-lg .twitter-typeahead .tt-hint{height:auto}.input-group.input-group-lg .twitter-typeahead:not(:first-child):not(:last-child) .tt-input,.input-group.input-group-lg .twitter-typeahead:not(:first-child):not(:last-child) .tt-hint{border-radius:0}.input-group.input-group-lg .twitter-typeahead:first-child .tt-input,.input-group.input-group-lg .twitter-typeahead:first-child .tt-hint{border-bottom-left-radius:6px;border-top-left-radius:6px;border-bottom-right-radius:0;border-top-right-radius:0}.input-group.input-group-lg .twitter-typeahead:last-child .tt-input,.input-group.input-group-lg .twitter-typeahead:last-child .tt-hint{border-bottom-left-radius:0;border-top-left-radius:0;border-bottom-right-radius:6px;border-top-right-radius:6px}.twitter-typeahead{width:100%}.input-group .twitter-typeahead{display:table-cell !important;float:left}.twitter-typeahead .tt-hint{color:#777}.twitter-typeahead .tt-input{z-index:2}.twitter-typeahead .tt-input[disabled],.twitter-typeahead .tt-input[readonly],fieldset[disabled] .twitter-typeahead .tt-input{cursor:not-allowed;background-color:#eee !important}.tt-dropdown-menu{position:absolute;top:100%;left:0;z-index:1000;min-width:160px;width:100%;padding:5px 0;margin:2px 0 0;list-style:none;font-size:14px;background-color:#fff;border:1px solid #ccc;border:1px solid rgba(0,0,0,0.15);border-radius:4px;-webkit-box-shadow:0 6px 12px rgba(0,0,0,0.175);box-shadow:0 6px 12px rgba(0,0,0,0.175);background-clip:padding-box;*border-right-width:2px;*border-bottom-width:2px}.tt-dropdown-menu .tt-suggestion{display:block;padding:3px 20px;clear:both;font-weight:normal;line-height:1.42857143;color:#333;white-space:nowrap;text-align:left;cursor:pointer !important}.tt-dropdown-menu .tt-suggestion.tt-cursor{text-decoration:none;outline:0;background-color:#f5f5f5;color:#262626}.tt-dropdown-menu .tt-suggestion.tt-cursor a{color:#262626}.tt-dropdown-menu .tt-suggestion p{margin:0} \ No newline at end of file
+/*! normalize.css v3.0.1 | MIT License | git.io/normalize */.sr-only,svg:not(:root){overflow:hidden}hr,img{border:0}body,figure{margin:0}.img-thumbnail,.thumbnail{-o-transition:all .2s ease-in-out}.navbar-fixed-bottom .navbar-collapse,.navbar-fixed-top .navbar-collapse,.pre-scrollable{max-height:340px}html{font-family:sans-serif;-ms-text-size-adjust:100%;-webkit-text-size-adjust:100%}article,aside,details,figcaption,figure,footer,header,hgroup,main,nav,section,summary{display:block}audio,canvas,progress,video{display:inline-block;vertical-align:baseline}audio:not([controls]){display:none;height:0}[hidden],template{display:none}a{background:0 0}a:active,a:hover{outline:0}b,optgroup,strong{font-weight:700}dfn{font-style:italic}h1{margin:.67em 0}mark{background:#ff0;color:#000}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sup{top:-.5em}sub{bottom:-.25em}img{vertical-align:middle}hr{-moz-box-sizing:content-box;box-sizing:content-box;height:0}pre,textarea{overflow:auto}code,kbd,pre,samp{font-size:1em}button,input,optgroup,select,textarea{color:inherit;font:inherit;margin:0}.glyphicon,address,cite{font-style:normal}button{overflow:visible}button,select{text-transform:none}button,html input[type=button],input[type=reset],input[type=submit]{-webkit-appearance:button;cursor:pointer}button[disabled],html input[disabled]{cursor:default}button::-moz-focus-inner,input::-moz-focus-inner{border:0;padding:0}input[type=checkbox],input[type=radio]{box-sizing:border-box;padding:0}input[type=number]::-webkit-inner-spin-button,input[type=number]::-webkit-outer-spin-button{height:auto}input[type=search]::-webkit-search-cancel-button,input[type=search]::-webkit-search-decoration{-webkit-appearance:none}table{border-collapse:collapse;border-spacing:0}td,th{padding:0}@media print{blockquote,img,pre,tr{page-break-inside:avoid}*{text-shadow:none!important;color:#000!important;background:0 0!important;box-shadow:none!important}a,a:visited{text-decoration:underline}a[href]:after{content:" (" attr(href) ")"}abbr[title]:after{content:" (" attr(title) ")"}a[href^="#"]:after,a[href^="javascript:"]:after{content:""}blockquote,pre{border:1px solid #999}thead{display:table-header-group}img{max-width:100%!important}h2,h3,p{orphans:3;widows:3}h2,h3{page-break-after:avoid}select{background:#fff!important}.navbar{display:none}.table td,.table th{background-color:#fff!important}.btn>.caret,.dropup>.btn>.caret{border-top-color:#000!important}.label{border:1px solid #000}.table{border-collapse:collapse!important}.table-bordered td,.table-bordered th{border:1px solid #ddd!important}}.btn,.btn-danger.active,.btn-danger:active,.btn-default.active,.btn-default:active,.btn-info.active,.btn-info:active,.btn-primary.active,.btn-primary:active,.btn-warning.active,.btn-warning:active,.btn.active,.btn:active,.dropdown-menu>.disabled>a:focus,.dropdown-menu>.disabled>a:hover,.form-control,.navbar-toggle,.open>.dropdown-toggle.btn-danger,.open>.dropdown-toggle.btn-default,.open>.dropdown-toggle.btn-info,.open>.dropdown-toggle.btn-primary,.open>.dropdown-toggle.btn-warning{background-image:none}.img-thumbnail,body{background-color:#fff}@font-face{font-family:'Glyphicons Halflings';src:url(../fonts/glyphicons-halflings-regular.eot);src:url(../fonts/glyphicons-halflings-regular.eot?#iefix) format('embedded-opentype'),url(../fonts/glyphicons-halflings-regular.woff) format('woff'),url(../fonts/glyphicons-halflings-regular.ttf) format('truetype'),url(../fonts/glyphicons-halflings-regular.svg#glyphicons_halflingsregular) format('svg')}.glyphicon{position:relative;top:1px;display:inline-block;font-family:'Glyphicons Halflings';font-weight:400;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.glyphicon-asterisk:before{content:"\2a"}.glyphicon-plus:before{content:"\2b"}.glyphicon-euro:before{content:"\20ac"}.glyphicon-minus:before{content:"\2212"}.glyphicon-cloud:before{content:"\2601"}.glyphicon-envelope:before{content:"\2709"}.glyphicon-pencil:before{content:"\270f"}.glyphicon-glass:before{content:"\e001"}.glyphicon-music:before{content:"\e002"}.glyphicon-search:before{content:"\e003"}.glyphicon-heart:before{content:"\e005"}.glyphicon-star:before{content:"\e006"}.glyphicon-star-empty:before{content:"\e007"}.glyphicon-user:before{content:"\e008"}.glyphicon-film:before{content:"\e009"}.glyphicon-th-large:before{content:"\e010"}.glyphicon-th:before{content:"\e011"}.glyphicon-th-list:before{content:"\e012"}.glyphicon-ok:before{content:"\e013"}.glyphicon-remove:before{content:"\e014"}.glyphicon-zoom-in:before{content:"\e015"}.glyphicon-zoom-out:before{content:"\e016"}.glyphicon-off:before{content:"\e017"}.glyphicon-signal:before{content:"\e018"}.glyphicon-cog:before{content:"\e019"}.glyphicon-trash:before{content:"\e020"}.glyphicon-home:before{content:"\e021"}.glyphicon-file:before{content:"\e022"}.glyphicon-time:before{content:"\e023"}.glyphicon-road:before{content:"\e024"}.glyphicon-download-alt:before{content:"\e025"}.glyphicon-download:before{content:"\e026"}.glyphicon-upload:before{content:"\e027"}.glyphicon-inbox:before{content:"\e028"}.glyphicon-play-circle:before{content:"\e029"}.glyphicon-repeat:before{content:"\e030"}.glyphicon-refresh:before{content:"\e031"}.glyphicon-list-alt:before{content:"\e032"}.glyphicon-lock:before{content:"\e033"}.glyphicon-flag:before{content:"\e034"}.glyphicon-headphones:before{content:"\e035"}.glyphicon-volume-off:before{content:"\e036"}.glyphicon-volume-down:before{content:"\e037"}.glyphicon-volume-up:before{content:"\e038"}.glyphicon-qrcode:before{content:"\e039"}.glyphicon-barcode:before{content:"\e040"}.glyphicon-tag:before{content:"\e041"}.glyphicon-tags:before{content:"\e042"}.glyphicon-book:before{content:"\e043"}.glyphicon-bookmark:before{content:"\e044"}.glyphicon-print:before{content:"\e045"}.glyphicon-camera:before{content:"\e046"}.glyphicon-font:before{content:"\e047"}.glyphicon-bold:before{content:"\e048"}.glyphicon-italic:before{content:"\e049"}.glyphicon-text-height:before{content:"\e050"}.glyphicon-text-width:before{content:"\e051"}.glyphicon-align-left:before{content:"\e052"}.glyphicon-align-center:before{content:"\e053"}.glyphicon-align-right:before{content:"\e054"}.glyphicon-align-justify:before{content:"\e055"}.glyphicon-list:before{content:"\e056"}.glyphicon-indent-left:before{content:"\e057"}.glyphicon-indent-right:before{content:"\e058"}.glyphicon-facetime-video:before{content:"\e059"}.glyphicon-picture:before{content:"\e060"}.glyphicon-map-marker:before{content:"\e062"}.glyphicon-adjust:before{content:"\e063"}.glyphicon-tint:before{content:"\e064"}.glyphicon-edit:before{content:"\e065"}.glyphicon-share:before{content:"\e066"}.glyphicon-check:before{content:"\e067"}.glyphicon-move:before{content:"\e068"}.glyphicon-step-backward:before{content:"\e069"}.glyphicon-fast-backward:before{content:"\e070"}.glyphicon-backward:before{content:"\e071"}.glyphicon-play:before{content:"\e072"}.glyphicon-pause:before{content:"\e073"}.glyphicon-stop:before{content:"\e074"}.glyphicon-forward:before{content:"\e075"}.glyphicon-fast-forward:before{content:"\e076"}.glyphicon-step-forward:before{content:"\e077"}.glyphicon-eject:before{content:"\e078"}.glyphicon-chevron-left:before{content:"\e079"}.glyphicon-chevron-right:before{content:"\e080"}.glyphicon-plus-sign:before{content:"\e081"}.glyphicon-minus-sign:before{content:"\e082"}.glyphicon-remove-sign:before{content:"\e083"}.glyphicon-ok-sign:before{content:"\e084"}.glyphicon-question-sign:before{content:"\e085"}.glyphicon-info-sign:before{content:"\e086"}.glyphicon-screenshot:before{content:"\e087"}.glyphicon-remove-circle:before{content:"\e088"}.glyphicon-ok-circle:before{content:"\e089"}.glyphicon-ban-circle:before{content:"\e090"}.glyphicon-arrow-left:before{content:"\e091"}.glyphicon-arrow-right:before{content:"\e092"}.glyphicon-arrow-up:before{content:"\e093"}.glyphicon-arrow-down:before{content:"\e094"}.glyphicon-share-alt:before{content:"\e095"}.glyphicon-resize-full:before{content:"\e096"}.glyphicon-resize-small:before{content:"\e097"}.glyphicon-exclamation-sign:before{content:"\e101"}.glyphicon-gift:before{content:"\e102"}.glyphicon-leaf:before{content:"\e103"}.glyphicon-fire:before{content:"\e104"}.glyphicon-eye-open:before{content:"\e105"}.glyphicon-eye-close:before{content:"\e106"}.glyphicon-warning-sign:before{content:"\e107"}.glyphicon-plane:before{content:"\e108"}.glyphicon-calendar:before{content:"\e109"}.glyphicon-random:before{content:"\e110"}.glyphicon-comment:before{content:"\e111"}.glyphicon-magnet:before{content:"\e112"}.glyphicon-chevron-up:before{content:"\e113"}.glyphicon-chevron-down:before{content:"\e114"}.glyphicon-retweet:before{content:"\e115"}.glyphicon-shopping-cart:before{content:"\e116"}.glyphicon-folder-close:before{content:"\e117"}.glyphicon-folder-open:before{content:"\e118"}.glyphicon-resize-vertical:before{content:"\e119"}.glyphicon-resize-horizontal:before{content:"\e120"}.glyphicon-hdd:before{content:"\e121"}.glyphicon-bullhorn:before{content:"\e122"}.glyphicon-bell:before{content:"\e123"}.glyphicon-certificate:before{content:"\e124"}.glyphicon-thumbs-up:before{content:"\e125"}.glyphicon-thumbs-down:before{content:"\e126"}.glyphicon-hand-right:before{content:"\e127"}.glyphicon-hand-left:before{content:"\e128"}.glyphicon-hand-up:before{content:"\e129"}.glyphicon-hand-down:before{content:"\e130"}.glyphicon-circle-arrow-right:before{content:"\e131"}.glyphicon-circle-arrow-left:before{content:"\e132"}.glyphicon-circle-arrow-up:before{content:"\e133"}.glyphicon-circle-arrow-down:before{content:"\e134"}.glyphicon-globe:before{content:"\e135"}.glyphicon-wrench:before{content:"\e136"}.glyphicon-tasks:before{content:"\e137"}.glyphicon-filter:before{content:"\e138"}.glyphicon-briefcase:before{content:"\e139"}.glyphicon-fullscreen:before{content:"\e140"}.glyphicon-dashboard:before{content:"\e141"}.glyphicon-paperclip:before{content:"\e142"}.glyphicon-heart-empty:before{content:"\e143"}.glyphicon-link:before{content:"\e144"}.glyphicon-phone:before{content:"\e145"}.glyphicon-pushpin:before{content:"\e146"}.glyphicon-usd:before{content:"\e148"}.glyphicon-gbp:before{content:"\e149"}.glyphicon-sort:before{content:"\e150"}.glyphicon-sort-by-alphabet:before{content:"\e151"}.glyphicon-sort-by-alphabet-alt:before{content:"\e152"}.glyphicon-sort-by-order:before{content:"\e153"}.glyphicon-sort-by-order-alt:before{content:"\e154"}.glyphicon-sort-by-attributes:before{content:"\e155"}.glyphicon-sort-by-attributes-alt:before{content:"\e156"}.glyphicon-unchecked:before{content:"\e157"}.glyphicon-expand:before{content:"\e158"}.glyphicon-collapse-down:before{content:"\e159"}.glyphicon-collapse-up:before{content:"\e160"}.glyphicon-log-in:before{content:"\e161"}.glyphicon-flash:before{content:"\e162"}.glyphicon-log-out:before{content:"\e163"}.glyphicon-new-window:before{content:"\e164"}.glyphicon-record:before{content:"\e165"}.glyphicon-save:before{content:"\e166"}.glyphicon-open:before{content:"\e167"}.glyphicon-saved:before{content:"\e168"}.glyphicon-import:before{content:"\e169"}.glyphicon-export:before{content:"\e170"}.glyphicon-send:before{content:"\e171"}.glyphicon-floppy-disk:before{content:"\e172"}.glyphicon-floppy-saved:before{content:"\e173"}.glyphicon-floppy-remove:before{content:"\e174"}.glyphicon-floppy-save:before{content:"\e175"}.glyphicon-floppy-open:before{content:"\e176"}.glyphicon-credit-card:before{content:"\e177"}.glyphicon-transfer:before{content:"\e178"}.glyphicon-cutlery:before{content:"\e179"}.glyphicon-header:before{content:"\e180"}.glyphicon-compressed:before{content:"\e181"}.glyphicon-earphone:before{content:"\e182"}.glyphicon-phone-alt:before{content:"\e183"}.glyphicon-tower:before{content:"\e184"}.glyphicon-stats:before{content:"\e185"}.glyphicon-sd-video:before{content:"\e186"}.glyphicon-hd-video:before{content:"\e187"}.glyphicon-subtitles:before{content:"\e188"}.glyphicon-sound-stereo:before{content:"\e189"}.glyphicon-sound-dolby:before{content:"\e190"}.glyphicon-sound-5-1:before{content:"\e191"}.glyphicon-sound-6-1:before{content:"\e192"}.glyphicon-sound-7-1:before{content:"\e193"}.glyphicon-copyright-mark:before{content:"\e194"}.glyphicon-registration-mark:before{content:"\e195"}.glyphicon-cloud-download:before{content:"\e197"}.glyphicon-cloud-upload:before{content:"\e198"}.glyphicon-tree-conifer:before{content:"\e199"}.glyphicon-tree-deciduous:before{content:"\e200"}*,:after,:before{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}html{font-size:10px;-webkit-tap-highlight-color:transparent}body{font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:14px;line-height:1.42857143;color:#333}button,input,select,textarea{font-family:inherit;font-size:inherit;line-height:inherit}a{color:#428bca;text-decoration:none}a:focus,a:hover{color:#2a6496;text-decoration:underline}a:focus{outline:dotted thin;outline:-webkit-focus-ring-color auto 5px;outline-offset:-2px}.carousel-inner>.item>a>img,.carousel-inner>.item>img,.img-responsive,.thumbnail a>img,.thumbnail>img{display:block;width:100%\9;max-width:100%;height:auto}.img-rounded{border-radius:6px}.img-thumbnail{padding:4px;line-height:1.42857143;border:1px solid #ddd;border-radius:4px;-webkit-transition:all .2s ease-in-out;transition:all .2s ease-in-out;display:inline-block;width:100%\9;max-width:100%;height:auto}.img-circle{border-radius:50%}hr{margin-top:20px;margin-bottom:20px;border-top:1px solid #eee}.sr-only{position:absolute;width:1px;height:1px;margin:-1px;padding:0;clip:rect(0,0,0,0);border:0}.sr-only-focusable:active,.sr-only-focusable:focus{position:static;width:auto;height:auto;margin:0;overflow:visible;clip:auto}.h1,.h2,.h3,.h4,.h5,.h6,h1,h2,h3,h4,h5,h6{font-family:inherit;font-weight:500;line-height:1.1;color:inherit}.h1 .small,.h1 small,.h2 .small,.h2 small,.h3 .small,.h3 small,.h4 .small,.h4 small,.h5 .small,.h5 small,.h6 .small,.h6 small,h1 .small,h1 small,h2 .small,h2 small,h3 .small,h3 small,h4 .small,h4 small,h5 .small,h5 small,h6 .small,h6 small{font-weight:400;line-height:1;color:#777}.h1,.h2,.h3,h1,h2,h3{margin-top:20px;margin-bottom:10px}.h1 .small,.h1 small,.h2 .small,.h2 small,.h3 .small,.h3 small,h1 .small,h1 small,h2 .small,h2 small,h3 .small,h3 small{font-size:65%}.h4,.h5,.h6,h4,h5,h6{margin-top:10px;margin-bottom:10px}.h4 .small,.h4 small,.h5 .small,.h5 small,.h6 .small,.h6 small,h4 .small,h4 small,h5 .small,h5 small,h6 .small,h6 small{font-size:75%}.h1,h1{font-size:36px}.h2,h2{font-size:30px}.h3,h3{font-size:24px}.h4,h4{font-size:18px}.h5,h5{font-size:14px}.h6,h6{font-size:12px}p{margin:0 0 10px}.lead{margin-bottom:20px;font-size:16px;font-weight:300;line-height:1.4}dt,label{font-weight:700}address,blockquote .small,blockquote footer,blockquote small,dd,dt,pre{line-height:1.42857143}@media (min-width:768px){.lead{font-size:21px}}.small,small{font-size:85%}.mark,mark{background-color:#fcf8e3;padding:.2em}.list-inline,.list-unstyled{padding-left:0;list-style:none}.text-left{text-align:left}.text-right{text-align:right}.text-center{text-align:center}.text-justify{text-align:justify}.text-nowrap{white-space:nowrap}.text-lowercase{text-transform:lowercase}.text-uppercase{text-transform:uppercase}.text-capitalize{text-transform:capitalize}.text-muted{color:#777}.text-primary{color:#428bca}a.text-primary:hover{color:#3071a9}.text-success{color:#3c763d}a.text-success:hover{color:#2b542c}.text-info{color:#31708f}a.text-info:hover{color:#245269}.text-warning{color:#8a6d3b}a.text-warning:hover{color:#66512c}.text-danger{color:#a94442}a.text-danger:hover{color:#843534}.bg-primary{color:#fff;background-color:#428bca}a.bg-primary:hover{background-color:#3071a9}.bg-success{background-color:#dff0d8}a.bg-success:hover{background-color:#c1e2b3}.bg-info{background-color:#d9edf7}a.bg-info:hover{background-color:#afd9ee}.bg-warning{background-color:#fcf8e3}a.bg-warning:hover{background-color:#f7ecb5}.bg-danger{background-color:#f2dede}a.bg-danger:hover{background-color:#e4b9b9}pre code,table{background-color:transparent}.page-header{padding-bottom:9px;margin:40px 0 20px;border-bottom:1px solid #eee}dl,ol,ul{margin-top:0}blockquote ol:last-child,blockquote p:last-child,blockquote ul:last-child,ol ol,ol ul,ul ol,ul ul{margin-bottom:0}address,dl{margin-bottom:20px}ol,ul{margin-bottom:10px}.list-inline{margin-left:-5px}.list-inline>li{display:inline-block;padding-left:5px;padding-right:5px}dd{margin-left:0}@media (min-width:768px){.dl-horizontal dt{float:left;width:160px;clear:left;text-align:right;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dl-horizontal dd{margin-left:180px}.container{width:750px}}abbr[data-original-title],abbr[title]{cursor:help;border-bottom:1px dotted #777}.initialism{font-size:90%;text-transform:uppercase}blockquote{padding:10px 20px;margin:0 0 20px;font-size:17.5px;border-left:5px solid #eee}blockquote .small,blockquote footer,blockquote small{display:block;font-size:80%;color:#777}legend,pre{display:block;color:#333}blockquote .small:before,blockquote footer:before,blockquote small:before{content:'\2014 \00A0'}.blockquote-reverse,blockquote.pull-right{padding-right:15px;padding-left:0;border-right:5px solid #eee;border-left:0;text-align:right}code,kbd{padding:2px 4px;font-size:90%}.blockquote-reverse .small:before,.blockquote-reverse footer:before,.blockquote-reverse small:before,blockquote.pull-right .small:before,blockquote.pull-right footer:before,blockquote.pull-right small:before{content:''}.blockquote-reverse .small:after,.blockquote-reverse footer:after,.blockquote-reverse small:after,blockquote.pull-right .small:after,blockquote.pull-right footer:after,blockquote.pull-right small:after{content:'\00A0 \2014'}blockquote:after,blockquote:before{content:""}code,kbd,pre,samp{font-family:Menlo,Monaco,Consolas,"Courier New",monospace}code{color:#c7254e;background-color:#f9f2f4;border-radius:4px}kbd{color:#fff;background-color:#333;border-radius:3px;box-shadow:inset 0 -1px 0 rgba(0,0,0,.25)}kbd kbd{padding:0;font-size:100%;box-shadow:none}pre{padding:9.5px;margin:0 0 10px;font-size:13px;word-break:break-all;word-wrap:break-word;background-color:#f5f5f5;border:1px solid #ccc;border-radius:4px}.container,.container-fluid{margin-right:auto;margin-left:auto}pre code{padding:0;font-size:inherit;color:inherit;white-space:pre-wrap;border-radius:0}.container,.container-fluid{padding-left:15px;padding-right:15px}.pre-scrollable{overflow-y:scroll}@media (min-width:992px){.container{width:970px}}@media (min-width:1200px){.container{width:1170px}}.row{margin-left:-15px;margin-right:-15px}.col-lg-1,.col-lg-10,.col-lg-11,.col-lg-12,.col-lg-2,.col-lg-3,.col-lg-4,.col-lg-5,.col-lg-6,.col-lg-7,.col-lg-8,.col-lg-9,.col-md-1,.col-md-10,.col-md-11,.col-md-12,.col-md-2,.col-md-3,.col-md-4,.col-md-5,.col-md-6,.col-md-7,.col-md-8,.col-md-9,.col-sm-1,.col-sm-10,.col-sm-11,.col-sm-12,.col-sm-2,.col-sm-3,.col-sm-4,.col-sm-5,.col-sm-6,.col-sm-7,.col-sm-8,.col-sm-9,.col-xs-1,.col-xs-10,.col-xs-11,.col-xs-12,.col-xs-2,.col-xs-3,.col-xs-4,.col-xs-5,.col-xs-6,.col-xs-7,.col-xs-8,.col-xs-9{position:relative;min-height:1px;padding-left:15px;padding-right:15px}.col-xs-1,.col-xs-10,.col-xs-11,.col-xs-12,.col-xs-2,.col-xs-3,.col-xs-4,.col-xs-5,.col-xs-6,.col-xs-7,.col-xs-8,.col-xs-9{float:left}.col-xs-12{width:100%}.col-xs-11{width:91.66666667%}.col-xs-10{width:83.33333333%}.col-xs-9{width:75%}.col-xs-8{width:66.66666667%}.col-xs-7{width:58.33333333%}.col-xs-6{width:50%}.col-xs-5{width:41.66666667%}.col-xs-4{width:33.33333333%}.col-xs-3{width:25%}.col-xs-2{width:16.66666667%}.col-xs-1{width:8.33333333%}.col-xs-pull-12{right:100%}.col-xs-pull-11{right:91.66666667%}.col-xs-pull-10{right:83.33333333%}.col-xs-pull-9{right:75%}.col-xs-pull-8{right:66.66666667%}.col-xs-pull-7{right:58.33333333%}.col-xs-pull-6{right:50%}.col-xs-pull-5{right:41.66666667%}.col-xs-pull-4{right:33.33333333%}.col-xs-pull-3{right:25%}.col-xs-pull-2{right:16.66666667%}.col-xs-pull-1{right:8.33333333%}.col-xs-pull-0{right:auto}.col-xs-push-12{left:100%}.col-xs-push-11{left:91.66666667%}.col-xs-push-10{left:83.33333333%}.col-xs-push-9{left:75%}.col-xs-push-8{left:66.66666667%}.col-xs-push-7{left:58.33333333%}.col-xs-push-6{left:50%}.col-xs-push-5{left:41.66666667%}.col-xs-push-4{left:33.33333333%}.col-xs-push-3{left:25%}.col-xs-push-2{left:16.66666667%}.col-xs-push-1{left:8.33333333%}.col-xs-push-0{left:auto}.col-xs-offset-12{margin-left:100%}.col-xs-offset-11{margin-left:91.66666667%}.col-xs-offset-10{margin-left:83.33333333%}.col-xs-offset-9{margin-left:75%}.col-xs-offset-8{margin-left:66.66666667%}.col-xs-offset-7{margin-left:58.33333333%}.col-xs-offset-6{margin-left:50%}.col-xs-offset-5{margin-left:41.66666667%}.col-xs-offset-4{margin-left:33.33333333%}.col-xs-offset-3{margin-left:25%}.col-xs-offset-2{margin-left:16.66666667%}.col-xs-offset-1{margin-left:8.33333333%}.col-xs-offset-0{margin-left:0}@media (min-width:768px){.col-sm-1,.col-sm-10,.col-sm-11,.col-sm-12,.col-sm-2,.col-sm-3,.col-sm-4,.col-sm-5,.col-sm-6,.col-sm-7,.col-sm-8,.col-sm-9{float:left}.col-sm-12{width:100%}.col-sm-11{width:91.66666667%}.col-sm-10{width:83.33333333%}.col-sm-9{width:75%}.col-sm-8{width:66.66666667%}.col-sm-7{width:58.33333333%}.col-sm-6{width:50%}.col-sm-5{width:41.66666667%}.col-sm-4{width:33.33333333%}.col-sm-3{width:25%}.col-sm-2{width:16.66666667%}.col-sm-1{width:8.33333333%}.col-sm-pull-12{right:100%}.col-sm-pull-11{right:91.66666667%}.col-sm-pull-10{right:83.33333333%}.col-sm-pull-9{right:75%}.col-sm-pull-8{right:66.66666667%}.col-sm-pull-7{right:58.33333333%}.col-sm-pull-6{right:50%}.col-sm-pull-5{right:41.66666667%}.col-sm-pull-4{right:33.33333333%}.col-sm-pull-3{right:25%}.col-sm-pull-2{right:16.66666667%}.col-sm-pull-1{right:8.33333333%}.col-sm-pull-0{right:auto}.col-sm-push-12{left:100%}.col-sm-push-11{left:91.66666667%}.col-sm-push-10{left:83.33333333%}.col-sm-push-9{left:75%}.col-sm-push-8{left:66.66666667%}.col-sm-push-7{left:58.33333333%}.col-sm-push-6{left:50%}.col-sm-push-5{left:41.66666667%}.col-sm-push-4{left:33.33333333%}.col-sm-push-3{left:25%}.col-sm-push-2{left:16.66666667%}.col-sm-push-1{left:8.33333333%}.col-sm-push-0{left:auto}.col-sm-offset-12{margin-left:100%}.col-sm-offset-11{margin-left:91.66666667%}.col-sm-offset-10{margin-left:83.33333333%}.col-sm-offset-9{margin-left:75%}.col-sm-offset-8{margin-left:66.66666667%}.col-sm-offset-7{margin-left:58.33333333%}.col-sm-offset-6{margin-left:50%}.col-sm-offset-5{margin-left:41.66666667%}.col-sm-offset-4{margin-left:33.33333333%}.col-sm-offset-3{margin-left:25%}.col-sm-offset-2{margin-left:16.66666667%}.col-sm-offset-1{margin-left:8.33333333%}.col-sm-offset-0{margin-left:0}}@media (min-width:992px){.col-md-1,.col-md-10,.col-md-11,.col-md-12,.col-md-2,.col-md-3,.col-md-4,.col-md-5,.col-md-6,.col-md-7,.col-md-8,.col-md-9{float:left}.col-md-12{width:100%}.col-md-11{width:91.66666667%}.col-md-10{width:83.33333333%}.col-md-9{width:75%}.col-md-8{width:66.66666667%}.col-md-7{width:58.33333333%}.col-md-6{width:50%}.col-md-5{width:41.66666667%}.col-md-4{width:33.33333333%}.col-md-3{width:25%}.col-md-2{width:16.66666667%}.col-md-1{width:8.33333333%}.col-md-pull-12{right:100%}.col-md-pull-11{right:91.66666667%}.col-md-pull-10{right:83.33333333%}.col-md-pull-9{right:75%}.col-md-pull-8{right:66.66666667%}.col-md-pull-7{right:58.33333333%}.col-md-pull-6{right:50%}.col-md-pull-5{right:41.66666667%}.col-md-pull-4{right:33.33333333%}.col-md-pull-3{right:25%}.col-md-pull-2{right:16.66666667%}.col-md-pull-1{right:8.33333333%}.col-md-pull-0{right:auto}.col-md-push-12{left:100%}.col-md-push-11{left:91.66666667%}.col-md-push-10{left:83.33333333%}.col-md-push-9{left:75%}.col-md-push-8{left:66.66666667%}.col-md-push-7{left:58.33333333%}.col-md-push-6{left:50%}.col-md-push-5{left:41.66666667%}.col-md-push-4{left:33.33333333%}.col-md-push-3{left:25%}.col-md-push-2{left:16.66666667%}.col-md-push-1{left:8.33333333%}.col-md-push-0{left:auto}.col-md-offset-12{margin-left:100%}.col-md-offset-11{margin-left:91.66666667%}.col-md-offset-10{margin-left:83.33333333%}.col-md-offset-9{margin-left:75%}.col-md-offset-8{margin-left:66.66666667%}.col-md-offset-7{margin-left:58.33333333%}.col-md-offset-6{margin-left:50%}.col-md-offset-5{margin-left:41.66666667%}.col-md-offset-4{margin-left:33.33333333%}.col-md-offset-3{margin-left:25%}.col-md-offset-2{margin-left:16.66666667%}.col-md-offset-1{margin-left:8.33333333%}.col-md-offset-0{margin-left:0}}@media (min-width:1200px){.col-lg-1,.col-lg-10,.col-lg-11,.col-lg-12,.col-lg-2,.col-lg-3,.col-lg-4,.col-lg-5,.col-lg-6,.col-lg-7,.col-lg-8,.col-lg-9{float:left}.col-lg-12{width:100%}.col-lg-11{width:91.66666667%}.col-lg-10{width:83.33333333%}.col-lg-9{width:75%}.col-lg-8{width:66.66666667%}.col-lg-7{width:58.33333333%}.col-lg-6{width:50%}.col-lg-5{width:41.66666667%}.col-lg-4{width:33.33333333%}.col-lg-3{width:25%}.col-lg-2{width:16.66666667%}.col-lg-1{width:8.33333333%}.col-lg-pull-12{right:100%}.col-lg-pull-11{right:91.66666667%}.col-lg-pull-10{right:83.33333333%}.col-lg-pull-9{right:75%}.col-lg-pull-8{right:66.66666667%}.col-lg-pull-7{right:58.33333333%}.col-lg-pull-6{right:50%}.col-lg-pull-5{right:41.66666667%}.col-lg-pull-4{right:33.33333333%}.col-lg-pull-3{right:25%}.col-lg-pull-2{right:16.66666667%}.col-lg-pull-1{right:8.33333333%}.col-lg-pull-0{right:auto}.col-lg-push-12{left:100%}.col-lg-push-11{left:91.66666667%}.col-lg-push-10{left:83.33333333%}.col-lg-push-9{left:75%}.col-lg-push-8{left:66.66666667%}.col-lg-push-7{left:58.33333333%}.col-lg-push-6{left:50%}.col-lg-push-5{left:41.66666667%}.col-lg-push-4{left:33.33333333%}.col-lg-push-3{left:25%}.col-lg-push-2{left:16.66666667%}.col-lg-push-1{left:8.33333333%}.col-lg-push-0{left:auto}.col-lg-offset-12{margin-left:100%}.col-lg-offset-11{margin-left:91.66666667%}.col-lg-offset-10{margin-left:83.33333333%}.col-lg-offset-9{margin-left:75%}.col-lg-offset-8{margin-left:66.66666667%}.col-lg-offset-7{margin-left:58.33333333%}.col-lg-offset-6{margin-left:50%}.col-lg-offset-5{margin-left:41.66666667%}.col-lg-offset-4{margin-left:33.33333333%}.col-lg-offset-3{margin-left:25%}.col-lg-offset-2{margin-left:16.66666667%}.col-lg-offset-1{margin-left:8.33333333%}.col-lg-offset-0{margin-left:0}}th{text-align:left}.table{width:100%;max-width:100%;margin-bottom:20px}.table>tbody>tr>td,.table>tbody>tr>th,.table>tfoot>tr>td,.table>tfoot>tr>th,.table>thead>tr>td,.table>thead>tr>th{padding:8px;line-height:1.42857143;vertical-align:top;border-top:1px solid #ddd}.table>thead>tr>th{vertical-align:bottom;border-bottom:2px solid #ddd}.table>caption+thead>tr:first-child>td,.table>caption+thead>tr:first-child>th,.table>colgroup+thead>tr:first-child>td,.table>colgroup+thead>tr:first-child>th,.table>thead:first-child>tr:first-child>td,.table>thead:first-child>tr:first-child>th{border-top:0}.table>tbody+tbody{border-top:2px solid #ddd}.table .table{background-color:#fff}.table-condensed>tbody>tr>td,.table-condensed>tbody>tr>th,.table-condensed>tfoot>tr>td,.table-condensed>tfoot>tr>th,.table-condensed>thead>tr>td,.table-condensed>thead>tr>th{padding:5px}.table-bordered,.table-bordered>tbody>tr>td,.table-bordered>tbody>tr>th,.table-bordered>tfoot>tr>td,.table-bordered>tfoot>tr>th,.table-bordered>thead>tr>td,.table-bordered>thead>tr>th{border:1px solid #ddd}.table-bordered>thead>tr>td,.table-bordered>thead>tr>th{border-bottom-width:2px}.table-striped>tbody>tr:nth-child(odd)>td,.table-striped>tbody>tr:nth-child(odd)>th{background-color:#f9f9f9}.table-hover>tbody>tr:hover>td,.table-hover>tbody>tr:hover>th,.table>tbody>tr.active>td,.table>tbody>tr.active>th,.table>tbody>tr>td.active,.table>tbody>tr>th.active,.table>tfoot>tr.active>td,.table>tfoot>tr.active>th,.table>tfoot>tr>td.active,.table>tfoot>tr>th.active,.table>thead>tr.active>td,.table>thead>tr.active>th,.table>thead>tr>td.active,.table>thead>tr>th.active{background-color:#f5f5f5}table col[class*=col-]{position:static;float:none;display:table-column}table td[class*=col-],table th[class*=col-]{position:static;float:none;display:table-cell}.btn-group>.btn-group,.btn-toolbar .btn-group,.btn-toolbar .input-group,.dropdown-menu{float:left}.table-hover>tbody>tr.active:hover>td,.table-hover>tbody>tr.active:hover>th,.table-hover>tbody>tr:hover>.active,.table-hover>tbody>tr>td.active:hover,.table-hover>tbody>tr>th.active:hover{background-color:#e8e8e8}.table>tbody>tr.success>td,.table>tbody>tr.success>th,.table>tbody>tr>td.success,.table>tbody>tr>th.success,.table>tfoot>tr.success>td,.table>tfoot>tr.success>th,.table>tfoot>tr>td.success,.table>tfoot>tr>th.success,.table>thead>tr.success>td,.table>thead>tr.success>th,.table>thead>tr>td.success,.table>thead>tr>th.success{background-color:#dff0d8}.table-hover>tbody>tr.success:hover>td,.table-hover>tbody>tr.success:hover>th,.table-hover>tbody>tr:hover>.success,.table-hover>tbody>tr>td.success:hover,.table-hover>tbody>tr>th.success:hover{background-color:#d0e9c6}.table>tbody>tr.info>td,.table>tbody>tr.info>th,.table>tbody>tr>td.info,.table>tbody>tr>th.info,.table>tfoot>tr.info>td,.table>tfoot>tr.info>th,.table>tfoot>tr>td.info,.table>tfoot>tr>th.info,.table>thead>tr.info>td,.table>thead>tr.info>th,.table>thead>tr>td.info,.table>thead>tr>th.info{background-color:#d9edf7}.table-hover>tbody>tr.info:hover>td,.table-hover>tbody>tr.info:hover>th,.table-hover>tbody>tr:hover>.info,.table-hover>tbody>tr>td.info:hover,.table-hover>tbody>tr>th.info:hover{background-color:#c4e3f3}.table>tbody>tr.warning>td,.table>tbody>tr.warning>th,.table>tbody>tr>td.warning,.table>tbody>tr>th.warning,.table>tfoot>tr.warning>td,.table>tfoot>tr.warning>th,.table>tfoot>tr>td.warning,.table>tfoot>tr>th.warning,.table>thead>tr.warning>td,.table>thead>tr.warning>th,.table>thead>tr>td.warning,.table>thead>tr>th.warning{background-color:#fcf8e3}.table-hover>tbody>tr.warning:hover>td,.table-hover>tbody>tr.warning:hover>th,.table-hover>tbody>tr:hover>.warning,.table-hover>tbody>tr>td.warning:hover,.table-hover>tbody>tr>th.warning:hover{background-color:#faf2cc}.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-color:#f2dede}.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-color:#ebcccc}@media screen and (max-width:767px){.table-responsive{width:100%;margin-bottom:15px;overflow-y:hidden;overflow-x:auto;-ms-overflow-style:-ms-autohiding-scrollbar;border:1px solid #ddd;-webkit-overflow-scrolling:touch}.table-responsive>.table{margin-bottom:0}.table-responsive>.table>tbody>tr>td,.table-responsive>.table>tbody>tr>th,.table-responsive>.table>tfoot>tr>td,.table-responsive>.table>tfoot>tr>th,.table-responsive>.table>thead>tr>td,.table-responsive>.table>thead>tr>th{white-space:nowrap}.table-responsive>.table-bordered{border:0}.table-responsive>.table-bordered>tbody>tr>td:first-child,.table-responsive>.table-bordered>tbody>tr>th:first-child,.table-responsive>.table-bordered>tfoot>tr>td:first-child,.table-responsive>.table-bordered>tfoot>tr>th:first-child,.table-responsive>.table-bordered>thead>tr>td:first-child,.table-responsive>.table-bordered>thead>tr>th:first-child{border-left:0}.table-responsive>.table-bordered>tbody>tr>td:last-child,.table-responsive>.table-bordered>tbody>tr>th:last-child,.table-responsive>.table-bordered>tfoot>tr>td:last-child,.table-responsive>.table-bordered>tfoot>tr>th:last-child,.table-responsive>.table-bordered>thead>tr>td:last-child,.table-responsive>.table-bordered>thead>tr>th:last-child{border-right:0}.table-responsive>.table-bordered>tbody>tr:last-child>td,.table-responsive>.table-bordered>tbody>tr:last-child>th,.table-responsive>.table-bordered>tfoot>tr:last-child>td,.table-responsive>.table-bordered>tfoot>tr:last-child>th{border-bottom:0}}fieldset,legend{padding:0;border:0}fieldset{margin:0;min-width:0}legend{width:100%;margin-bottom:20px;font-size:21px;line-height:inherit;border-bottom:1px solid #e5e5e5}label{display:inline-block;max-width:100%;margin-bottom:5px}input[type=search]{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;-webkit-appearance:none}input[type=checkbox],input[type=radio]{margin:4px 0 0;margin-top:1px\9;line-height:normal}.form-control,output{font-size:14px;line-height:1.42857143;color:#555;display:block}input[type=file]{display:block}input[type=range]{display:block;width:100%}select[multiple],select[size]{height:auto}input[type=file]:focus,input[type=checkbox]:focus,input[type=radio]:focus{outline:dotted thin;outline:-webkit-focus-ring-color auto 5px;outline-offset:-2px}output{padding-top:7px}.form-control{width:100%;height:34px;padding:6px 12px;background-color:#fff;border:1px solid #ccc;border-radius:4px;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075);box-shadow:inset 0 1px 1px rgba(0,0,0,.075);-webkit-transition:border-color ease-in-out .15s,box-shadow ease-in-out .15s;-o-transition:border-color ease-in-out .15s,box-shadow ease-in-out .15s;transition:border-color ease-in-out .15s,box-shadow ease-in-out .15s}.form-control:focus{border-color:#66afe9;outline:0;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 8px rgba(102,175,233,.6);box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 8px rgba(102,175,233,.6)}.form-control::-moz-placeholder{color:#777;opacity:1}.form-control:-ms-input-placeholder{color:#777}.form-control::-webkit-input-placeholder{color:#777}.has-success .checkbox,.has-success .checkbox-inline,.has-success .control-label,.has-success .form-control-feedback,.has-success .help-block,.has-success .radio,.has-success .radio-inline{color:#3c763d}.form-control[disabled],.form-control[readonly],fieldset[disabled] .form-control{cursor:not-allowed;background-color:#eee;opacity:1}textarea.form-control{height:auto}input[type=date],input[type=time],input[type=datetime-local],input[type=month]{line-height:34px;line-height:1.42857143\9}input[type=date].input-sm,input[type=time].input-sm,input[type=datetime-local].input-sm,input[type=month].input-sm{line-height:30px}input[type=date].input-lg,input[type=time].input-lg,input[type=datetime-local].input-lg,input[type=month].input-lg{line-height:46px}.form-group{margin-bottom:15px}.checkbox,.radio{position:relative;display:block;min-height:20px;margin-top:10px;margin-bottom:10px}.checkbox label,.radio label{padding-left:20px;margin-bottom:0;font-weight:400;cursor:pointer}.checkbox input[type=checkbox],.checkbox-inline input[type=checkbox],.radio input[type=radio],.radio-inline input[type=radio]{position:absolute;margin-left:-20px;margin-top:4px\9}.checkbox+.checkbox,.radio+.radio{margin-top:-5px}.checkbox-inline,.radio-inline{display:inline-block;padding-left:20px;margin-bottom:0;vertical-align:middle;font-weight:400;cursor:pointer}.checkbox-inline+.checkbox-inline,.radio-inline+.radio-inline{margin-top:0;margin-left:10px}.checkbox-inline.disabled,.checkbox.disabled label,.radio-inline.disabled,.radio.disabled label,fieldset[disabled] .checkbox label,fieldset[disabled] .checkbox-inline,fieldset[disabled] .radio label,fieldset[disabled] .radio-inline,fieldset[disabled] input[type=checkbox],fieldset[disabled] input[type=radio],input[type=checkbox].disabled,input[type=checkbox][disabled],input[type=radio].disabled,input[type=radio][disabled]{cursor:not-allowed}.form-control-static{padding-top:7px;padding-bottom:7px;margin-bottom:0}.form-control-static.input-lg,.form-control-static.input-sm{padding-left:0;padding-right:0}.form-horizontal .form-group-sm .form-control,.input-sm{height:30px;padding:5px 10px;font-size:12px;line-height:1.5;border-radius:3px}select.input-sm{height:30px;line-height:30px}select[multiple].input-sm,textarea.input-sm{height:auto}.form-horizontal .form-group-lg .form-control,.input-lg{height:46px;padding:10px 16px;font-size:18px;line-height:1.33;border-radius:6px}select.input-lg{height:46px;line-height:46px}select[multiple].input-lg,textarea.input-lg{height:auto}.has-feedback{position:relative}.has-feedback .form-control{padding-right:42.5px}.form-control-feedback{position:absolute;top:25px;right:0;z-index:2;display:block;width:34px;height:34px;line-height:34px;text-align:center}.collapsing,.dropdown{position:relative}.input-lg+.form-control-feedback{width:46px;height:46px;line-height:46px}.input-sm+.form-control-feedback{width:30px;height:30px;line-height:30px}.has-success .form-control{border-color:#3c763d;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075);box-shadow:inset 0 1px 1px rgba(0,0,0,.075)}.has-success .form-control:focus{border-color:#2b542c;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #67b168;box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #67b168}.has-success .input-group-addon{color:#3c763d;border-color:#3c763d;background-color:#dff0d8}.has-warning .checkbox,.has-warning .checkbox-inline,.has-warning .control-label,.has-warning .form-control-feedback,.has-warning .help-block,.has-warning .radio,.has-warning .radio-inline{color:#8a6d3b}.has-warning .form-control{border-color:#8a6d3b;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075);box-shadow:inset 0 1px 1px rgba(0,0,0,.075)}.has-warning .form-control:focus{border-color:#66512c;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #c0a16b;box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #c0a16b}.has-warning .input-group-addon{color:#8a6d3b;border-color:#8a6d3b;background-color:#fcf8e3}.has-error .checkbox,.has-error .checkbox-inline,.has-error .control-label,.has-error .form-control-feedback,.has-error .help-block,.has-error .radio,.has-error .radio-inline{color:#a94442}.has-error .form-control{border-color:#a94442;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075);box-shadow:inset 0 1px 1px rgba(0,0,0,.075)}.has-error .form-control:focus{border-color:#843534;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #ce8483;box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #ce8483}.has-error .input-group-addon{color:#a94442;border-color:#a94442;background-color:#f2dede}.has-feedback label.sr-only~.form-control-feedback{top:0}.help-block{display:block;margin-top:5px;margin-bottom:10px;color:#737373}@media (min-width:768px){.form-inline .control-label,.form-inline .form-group{margin-bottom:0;vertical-align:middle}.form-inline .form-group{display:inline-block}.form-inline .form-control{display:inline-block;width:auto;vertical-align:middle}.form-inline .input-group{display:inline-table;vertical-align:middle}.form-inline .input-group .form-control,.form-inline .input-group .input-group-addon,.form-inline .input-group .input-group-btn{width:auto}.form-inline .input-group>.form-control{width:100%}.form-inline .checkbox,.form-inline .radio{display:inline-block;margin-top:0;margin-bottom:0;vertical-align:middle}.form-inline .checkbox label,.form-inline .radio label{padding-left:0}.form-inline .checkbox input[type=checkbox],.form-inline .radio input[type=radio]{position:relative;margin-left:0}.form-inline .has-feedback .form-control-feedback{top:0}.form-horizontal .control-label{text-align:right;margin-bottom:0;padding-top:7px}}.form-horizontal .checkbox,.form-horizontal .checkbox-inline,.form-horizontal .radio,.form-horizontal .radio-inline{margin-top:0;margin-bottom:0;padding-top:7px}.form-horizontal .checkbox,.form-horizontal .radio{min-height:27px}.form-horizontal .form-group{margin-left:-15px;margin-right:-15px}.form-horizontal .has-feedback .form-control-feedback{top:0;right:15px}@media (min-width:768px){.form-horizontal .form-group-lg .control-label{padding-top:14.3px}.form-horizontal .form-group-sm .control-label{padding-top:6px}}.btn{display:inline-block;margin-bottom:0;font-weight:400;text-align:center;vertical-align:middle;cursor:pointer;border:1px solid transparent;white-space:nowrap;padding:6px 12px;font-size:14px;line-height:1.42857143;border-radius:4px;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.btn.active:focus,.btn:active:focus,.btn:focus{outline:dotted thin;outline:-webkit-focus-ring-color auto 5px;outline-offset:-2px}.btn:focus,.btn:hover{color:#333;text-decoration:none}.btn.active,.btn:active{outline:0;-webkit-box-shadow:inset 0 3px 5px rgba(0,0,0,.125);box-shadow:inset 0 3px 5px rgba(0,0,0,.125)}.btn.disabled,.btn[disabled],fieldset[disabled] .btn{cursor:not-allowed;pointer-events:none;opacity:.65;filter:alpha(opacity=65);-webkit-box-shadow:none;box-shadow:none}.btn-default{color:#333;background-color:#fff;border-color:#ccc}.btn-default.active,.btn-default:active,.btn-default:focus,.btn-default:hover,.open>.dropdown-toggle.btn-default{color:#333;background-color:#e6e6e6;border-color:#adadad}.btn-default.disabled,.btn-default.disabled.active,.btn-default.disabled:active,.btn-default.disabled:focus,.btn-default.disabled:hover,.btn-default[disabled],.btn-default[disabled].active,.btn-default[disabled]:active,.btn-default[disabled]:focus,.btn-default[disabled]:hover,fieldset[disabled] .btn-default,fieldset[disabled] .btn-default.active,fieldset[disabled] .btn-default:active,fieldset[disabled] .btn-default:focus,fieldset[disabled] .btn-default:hover{background-color:#fff;border-color:#ccc}.btn-default .badge{color:#fff;background-color:#333}.btn-primary{color:#fff;background-color:#428bca;border-color:#357ebd}.btn-primary.active,.btn-primary:active,.btn-primary:focus,.btn-primary:hover,.open>.dropdown-toggle.btn-primary{color:#fff;background-color:#3071a9;border-color:#285e8e}.btn-primary.disabled,.btn-primary.disabled.active,.btn-primary.disabled:active,.btn-primary.disabled:focus,.btn-primary.disabled:hover,.btn-primary[disabled],.btn-primary[disabled].active,.btn-primary[disabled]:active,.btn-primary[disabled]:focus,.btn-primary[disabled]:hover,fieldset[disabled] .btn-primary,fieldset[disabled] .btn-primary.active,fieldset[disabled] .btn-primary:active,fieldset[disabled] .btn-primary:focus,fieldset[disabled] .btn-primary:hover{background-color:#428bca;border-color:#357ebd}.btn-primary .badge{color:#428bca;background-color:#fff}.btn-success{color:#fff;background-color:#5cb85c;border-color:#4cae4c}.btn-success.active,.btn-success:active,.btn-success:focus,.btn-success:hover,.open>.dropdown-toggle.btn-success{color:#fff;background-color:#449d44;border-color:#398439}.btn-success.active,.btn-success:active,.open>.dropdown-toggle.btn-success{background-image:none}.btn-success.disabled,.btn-success.disabled.active,.btn-success.disabled:active,.btn-success.disabled:focus,.btn-success.disabled:hover,.btn-success[disabled],.btn-success[disabled].active,.btn-success[disabled]:active,.btn-success[disabled]:focus,.btn-success[disabled]:hover,fieldset[disabled] .btn-success,fieldset[disabled] .btn-success.active,fieldset[disabled] .btn-success:active,fieldset[disabled] .btn-success:focus,fieldset[disabled] .btn-success:hover{background-color:#5cb85c;border-color:#4cae4c}.btn-success .badge{color:#5cb85c;background-color:#fff}.btn-info{color:#fff;background-color:#5bc0de;border-color:#46b8da}.btn-info.active,.btn-info:active,.btn-info:focus,.btn-info:hover,.open>.dropdown-toggle.btn-info{color:#fff;background-color:#31b0d5;border-color:#269abc}.btn-info.disabled,.btn-info.disabled.active,.btn-info.disabled:active,.btn-info.disabled:focus,.btn-info.disabled:hover,.btn-info[disabled],.btn-info[disabled].active,.btn-info[disabled]:active,.btn-info[disabled]:focus,.btn-info[disabled]:hover,fieldset[disabled] .btn-info,fieldset[disabled] .btn-info.active,fieldset[disabled] .btn-info:active,fieldset[disabled] .btn-info:focus,fieldset[disabled] .btn-info:hover{background-color:#5bc0de;border-color:#46b8da}.btn-info .badge{color:#5bc0de;background-color:#fff}.btn-warning{color:#fff;background-color:#f0ad4e;border-color:#eea236}.btn-warning.active,.btn-warning:active,.btn-warning:focus,.btn-warning:hover,.open>.dropdown-toggle.btn-warning{color:#fff;background-color:#ec971f;border-color:#d58512}.btn-warning.disabled,.btn-warning.disabled.active,.btn-warning.disabled:active,.btn-warning.disabled:focus,.btn-warning.disabled:hover,.btn-warning[disabled],.btn-warning[disabled].active,.btn-warning[disabled]:active,.btn-warning[disabled]:focus,.btn-warning[disabled]:hover,fieldset[disabled] .btn-warning,fieldset[disabled] .btn-warning.active,fieldset[disabled] .btn-warning:active,fieldset[disabled] .btn-warning:focus,fieldset[disabled] .btn-warning:hover{background-color:#f0ad4e;border-color:#eea236}.btn-warning .badge{color:#f0ad4e;background-color:#fff}.btn-danger{color:#fff;background-color:#d9534f;border-color:#d43f3a}.btn-danger.active,.btn-danger:active,.btn-danger:focus,.btn-danger:hover,.open>.dropdown-toggle.btn-danger{color:#fff;background-color:#c9302c;border-color:#ac2925}.btn-danger.disabled,.btn-danger.disabled.active,.btn-danger.disabled:active,.btn-danger.disabled:focus,.btn-danger.disabled:hover,.btn-danger[disabled],.btn-danger[disabled].active,.btn-danger[disabled]:active,.btn-danger[disabled]:focus,.btn-danger[disabled]:hover,fieldset[disabled] .btn-danger,fieldset[disabled] .btn-danger.active,fieldset[disabled] .btn-danger:active,fieldset[disabled] .btn-danger:focus,fieldset[disabled] .btn-danger:hover{background-color:#d9534f;border-color:#d43f3a}.btn-danger .badge{color:#d9534f;background-color:#fff}.btn-link{color:#428bca;font-weight:400;cursor:pointer;border-radius:0}.btn-link,.btn-link:active,.btn-link[disabled],fieldset[disabled] .btn-link{background-color:transparent;-webkit-box-shadow:none;box-shadow:none}.btn-link,.btn-link:active,.btn-link:focus,.btn-link:hover{border-color:transparent}.btn-link:focus,.btn-link:hover{color:#2a6496;text-decoration:underline;background-color:transparent}.btn-link[disabled]:focus,.btn-link[disabled]:hover,fieldset[disabled] .btn-link:focus,fieldset[disabled] .btn-link:hover{color:#777;text-decoration:none}.btn-group-lg>.btn,.btn-lg{padding:10px 16px;font-size:18px;line-height:1.33;border-radius:6px}.btn-group-sm>.btn,.btn-sm{padding:5px 10px;font-size:12px;line-height:1.5;border-radius:3px}.btn-group-xs>.btn,.btn-xs{padding:1px 5px;font-size:12px;line-height:1.5;border-radius:3px}.btn-block{display:block;width:100%}.btn-block+.btn-block{margin-top:5px}input[type=button].btn-block,input[type=reset].btn-block,input[type=submit].btn-block{width:100%}.fade{opacity:0;-webkit-transition:opacity .15s linear;-o-transition:opacity .15s linear;transition:opacity .15s linear}.fade.in{opacity:1}.collapse{display:none}.collapse.in{display:block}tr.collapse.in{display:table-row}tbody.collapse.in{display:table-row-group}.collapsing{height:0;overflow:hidden;-webkit-transition:height .35s ease;-o-transition:height .35s ease;transition:height .35s ease}.caret{display:inline-block;width:0;height:0;margin-left:2px;vertical-align:middle;border-top:4px solid;border-right:4px solid transparent;border-left:4px solid transparent}.dropdown-toggle:focus{outline:0}.dropdown-menu{position:absolute;top:100%;left:0;z-index:1000;display:none;min-width:160px;padding:5px 0;margin:2px 0 0;list-style:none;font-size:14px;text-align:left;background-color:#fff;border:1px solid #ccc;border:1px solid rgba(0,0,0,.15);border-radius:4px;-webkit-box-shadow:0 6px 12px rgba(0,0,0,.175);box-shadow:0 6px 12px rgba(0,0,0,.175);background-clip:padding-box}.dropdown-menu-right,.dropdown-menu.pull-right{left:auto;right:0}.dropdown-header,.dropdown-menu>li>a{display:block;padding:3px 20px;line-height:1.42857143;white-space:nowrap}.btn-group-vertical>.btn:not(:first-child):not(:last-child),.btn-group>.btn-group:not(:first-child):not(:last-child)>.btn,.btn-group>.btn:not(:first-child):not(:last-child):not(.dropdown-toggle){border-radius:0}.dropdown-menu .divider{height:1px;margin:9px 0;overflow:hidden;background-color:#e5e5e5}.dropdown-menu>li>a{clear:both;font-weight:400;color:#333}.dropdown-menu>li>a:focus,.dropdown-menu>li>a:hover{text-decoration:none;color:#262626;background-color:#f5f5f5}.dropdown-menu>.active>a,.dropdown-menu>.active>a:focus,.dropdown-menu>.active>a:hover{color:#fff;text-decoration:none;outline:0;background-color:#428bca}.dropdown-menu>.disabled>a,.dropdown-menu>.disabled>a:focus,.dropdown-menu>.disabled>a:hover{color:#777}.dropdown-menu>.disabled>a:focus,.dropdown-menu>.disabled>a:hover{text-decoration:none;background-color:transparent;filter:progid:DXImageTransform.Microsoft.gradient(enabled=false);cursor:not-allowed}.open>.dropdown-menu{display:block}.open>a{outline:0}.dropdown-menu-left{left:0;right:auto}.dropdown-header{font-size:12px;color:#777}.dropdown-backdrop{position:fixed;left:0;right:0;bottom:0;top:0;z-index:990}.nav-justified>.dropdown .dropdown-menu,.nav-tabs.nav-justified>.dropdown .dropdown-menu{top:auto;left:auto}.pull-right>.dropdown-menu{right:0;left:auto}.dropup .caret,.navbar-fixed-bottom .dropdown .caret{border-top:0;border-bottom:4px solid;content:""}.dropup .dropdown-menu,.navbar-fixed-bottom .dropdown .dropdown-menu{top:auto;bottom:100%;margin-bottom:1px}@media (min-width:768px){.navbar-right .dropdown-menu{left:auto;right:0}.navbar-right .dropdown-menu-left{left:0;right:auto}}.btn-group,.btn-group-vertical{position:relative;display:inline-block;vertical-align:middle}.btn-group-vertical>.btn,.btn-group>.btn{position:relative;float:left}.btn-group-vertical>.btn.active,.btn-group-vertical>.btn:active,.btn-group-vertical>.btn:focus,.btn-group-vertical>.btn:hover,.btn-group>.btn.active,.btn-group>.btn:active,.btn-group>.btn:focus,.btn-group>.btn:hover{z-index:2}.btn-group-vertical>.btn:focus,.btn-group>.btn:focus{outline:0}.btn-group .btn+.btn,.btn-group .btn+.btn-group,.btn-group .btn-group+.btn,.btn-group .btn-group+.btn-group{margin-left:-1px}.btn-toolbar{margin-left:-5px}.btn-toolbar>.btn,.btn-toolbar>.btn-group,.btn-toolbar>.input-group{margin-left:5px}.btn .caret,.btn-group>.btn:first-child{margin-left:0}.btn-group>.btn:first-child:not(:last-child):not(.dropdown-toggle){border-bottom-right-radius:0;border-top-right-radius:0}.btn-group>.btn:last-child:not(:first-child),.btn-group>.dropdown-toggle:not(:first-child){border-bottom-left-radius:0;border-top-left-radius:0}.btn-group>.btn-group:first-child>.btn:last-child,.btn-group>.btn-group:first-child>.dropdown-toggle{border-bottom-right-radius:0;border-top-right-radius:0}.btn-group>.btn-group:last-child>.btn:first-child{border-bottom-left-radius:0;border-top-left-radius:0}.btn-group .dropdown-toggle:active,.btn-group.open .dropdown-toggle{outline:0}.btn-group>.btn+.dropdown-toggle{padding-left:8px;padding-right:8px}.btn-group>.btn-lg+.dropdown-toggle{padding-left:12px;padding-right:12px}.btn-group.open .dropdown-toggle{-webkit-box-shadow:inset 0 3px 5px rgba(0,0,0,.125);box-shadow:inset 0 3px 5px rgba(0,0,0,.125)}.btn-group.open .dropdown-toggle.btn-link{-webkit-box-shadow:none;box-shadow:none}.btn-lg .caret{border-width:5px 5px 0}.dropup .btn-lg .caret{border-width:0 5px 5px}.btn-group-vertical>.btn,.btn-group-vertical>.btn-group,.btn-group-vertical>.btn-group>.btn{display:block;float:none;width:100%;max-width:100%}.btn-group-vertical>.btn-group>.btn{float:none}.btn-group-vertical>.btn+.btn,.btn-group-vertical>.btn+.btn-group,.btn-group-vertical>.btn-group+.btn,.btn-group-vertical>.btn-group+.btn-group{margin-top:-1px;margin-left:0}.input-group-btn:last-child>.btn,.input-group-btn:last-child>.btn-group,.input-group-btn>.btn+.btn{margin-left:-1px}.btn-group-vertical>.btn:first-child:not(:last-child){border-top-right-radius:4px;border-bottom-right-radius:0;border-bottom-left-radius:0}.btn-group-vertical>.btn:last-child:not(:first-child){border-bottom-left-radius:4px;border-top-right-radius:0;border-top-left-radius:0}.btn-group-vertical>.btn-group:not(:first-child):not(:last-child)>.btn{border-radius:0}.btn-group-vertical>.btn-group:first-child:not(:last-child)>.btn:last-child,.btn-group-vertical>.btn-group:first-child:not(:last-child)>.dropdown-toggle{border-bottom-right-radius:0;border-bottom-left-radius:0}.btn-group-vertical>.btn-group:last-child:not(:first-child)>.btn:first-child{border-top-right-radius:0;border-top-left-radius:0}.btn-group-justified{display:table;width:100%;table-layout:fixed;border-collapse:separate}.btn-group-justified>.btn,.btn-group-justified>.btn-group{float:none;display:table-cell;width:1%}.btn-group-justified>.btn-group .btn{width:100%}.btn-group-justified>.btn-group .dropdown-menu{left:auto}[data-toggle=buttons]>.btn>input[type=checkbox],[data-toggle=buttons]>.btn>input[type=radio]{position:absolute;z-index:-1;opacity:0;filter:alpha(opacity=0)}.input-group{position:relative;display:table;border-collapse:separate}.input-group[class*=col-]{float:none;padding-left:0;padding-right:0}.input-group .form-control{position:relative;z-index:2;float:left;width:100%;margin-bottom:0}.input-group-lg>.form-control,.input-group-lg>.input-group-addon,.input-group-lg>.input-group-btn>.btn{height:46px;padding:10px 16px;font-size:18px;line-height:1.33;border-radius:6px}select.input-group-lg>.form-control,select.input-group-lg>.input-group-addon,select.input-group-lg>.input-group-btn>.btn{height:46px;line-height:46px}select[multiple].input-group-lg>.form-control,select[multiple].input-group-lg>.input-group-addon,select[multiple].input-group-lg>.input-group-btn>.btn,textarea.input-group-lg>.form-control,textarea.input-group-lg>.input-group-addon,textarea.input-group-lg>.input-group-btn>.btn{height:auto}.input-group-sm>.form-control,.input-group-sm>.input-group-addon,.input-group-sm>.input-group-btn>.btn{height:30px;padding:5px 10px;font-size:12px;line-height:1.5;border-radius:3px}select.input-group-sm>.form-control,select.input-group-sm>.input-group-addon,select.input-group-sm>.input-group-btn>.btn{height:30px;line-height:30px}select[multiple].input-group-sm>.form-control,select[multiple].input-group-sm>.input-group-addon,select[multiple].input-group-sm>.input-group-btn>.btn,textarea.input-group-sm>.form-control,textarea.input-group-sm>.input-group-addon,textarea.input-group-sm>.input-group-btn>.btn{height:auto}.input-group .form-control,.input-group-addon,.input-group-btn{display:table-cell}.nav>li,.nav>li>a{display:block;position:relative}.input-group .form-control:not(:first-child):not(:last-child),.input-group-addon:not(:first-child):not(:last-child),.input-group-btn:not(:first-child):not(:last-child){border-radius:0}.input-group-addon,.input-group-btn{width:1%;white-space:nowrap;vertical-align:middle}.input-group-addon{padding:6px 12px;font-size:14px;font-weight:400;line-height:1;color:#555;text-align:center;background-color:#eee;border:1px solid #ccc;border-radius:4px}.input-group-addon.input-sm{padding:5px 10px;font-size:12px;border-radius:3px}.input-group-addon.input-lg{padding:10px 16px;font-size:18px;border-radius:6px}.input-group-addon input[type=checkbox],.input-group-addon input[type=radio]{margin-top:0}.input-group .form-control:first-child,.input-group-addon:first-child,.input-group-btn:first-child>.btn,.input-group-btn:first-child>.btn-group>.btn,.input-group-btn:first-child>.dropdown-toggle,.input-group-btn:last-child>.btn-group:not(:last-child)>.btn,.input-group-btn:last-child>.btn:not(:last-child):not(.dropdown-toggle){border-bottom-right-radius:0;border-top-right-radius:0}.input-group-addon:first-child{border-right:0}.input-group .form-control:last-child,.input-group-addon:last-child,.input-group-btn:first-child>.btn-group:not(:first-child)>.btn,.input-group-btn:first-child>.btn:not(:first-child),.input-group-btn:last-child>.btn,.input-group-btn:last-child>.btn-group>.btn,.input-group-btn:last-child>.dropdown-toggle{border-bottom-left-radius:0;border-top-left-radius:0}.input-group-addon:last-child{border-left:0}.input-group-btn{position:relative;font-size:0;white-space:nowrap}.input-group-btn>.btn{position:relative}.input-group-btn>.btn:active,.input-group-btn>.btn:focus,.input-group-btn>.btn:hover{z-index:2}.input-group-btn:first-child>.btn,.input-group-btn:first-child>.btn-group{margin-right:-1px}.nav{margin-bottom:0;padding-left:0;list-style:none}.nav>li>a{padding:10px 15px}.nav>li>a:focus,.nav>li>a:hover{text-decoration:none;background-color:#eee}.nav>li.disabled>a{color:#777}.nav>li.disabled>a:focus,.nav>li.disabled>a:hover{color:#777;text-decoration:none;background-color:transparent;cursor:not-allowed}.nav .open>a,.nav .open>a:focus,.nav .open>a:hover{background-color:#eee;border-color:#428bca}.nav .nav-divider{height:1px;margin:9px 0;overflow:hidden;background-color:#e5e5e5}.nav>li>a>img{max-width:none}.nav-tabs{border-bottom:1px solid #ddd}.nav-tabs>li{float:left;margin-bottom:-1px}.nav-tabs>li>a{margin-right:2px;line-height:1.42857143;border:1px solid transparent;border-radius:4px 4px 0 0}.nav-tabs>li>a:hover{border-color:#eee #eee #ddd}.nav-tabs>li.active>a,.nav-tabs>li.active>a:focus,.nav-tabs>li.active>a:hover{color:#555;background-color:#fff;border:1px solid #ddd;border-bottom-color:transparent;cursor:default}.nav-tabs.nav-justified{width:100%;border-bottom:0}.nav-tabs.nav-justified>li{float:none}.nav-tabs.nav-justified>li>a{text-align:center;margin-bottom:5px;margin-right:0;border-radius:4px}.nav-tabs.nav-justified>.active>a,.nav-tabs.nav-justified>.active>a:focus,.nav-tabs.nav-justified>.active>a:hover{border:1px solid #ddd}@media (min-width:768px){.nav-tabs.nav-justified>li{display:table-cell;width:1%}.nav-tabs.nav-justified>li>a{margin-bottom:0;border-bottom:1px solid #ddd;border-radius:4px 4px 0 0}.nav-tabs.nav-justified>.active>a,.nav-tabs.nav-justified>.active>a:focus,.nav-tabs.nav-justified>.active>a:hover{border-bottom-color:#fff}}.nav-pills>li{float:left}.nav-justified>li,.nav-stacked>li{float:none}.nav-pills>li>a{border-radius:4px}.nav-pills>li+li{margin-left:2px}.nav-pills>li.active>a,.nav-pills>li.active>a:focus,.nav-pills>li.active>a:hover{color:#fff;background-color:#428bca}.nav-stacked>li+li{margin-top:2px;margin-left:0}.nav-justified{width:100%}.nav-justified>li>a{text-align:center;margin-bottom:5px}.nav-tabs-justified{border-bottom:0}.nav-tabs-justified>li>a{margin-right:0;border-radius:4px}.nav-tabs-justified>.active>a,.nav-tabs-justified>.active>a:focus,.nav-tabs-justified>.active>a:hover{border:1px solid #ddd}@media (min-width:768px){.nav-justified>li{display:table-cell;width:1%}.nav-justified>li>a{margin-bottom:0}.nav-tabs-justified>li>a{border-bottom:1px solid #ddd;border-radius:4px 4px 0 0}.nav-tabs-justified>.active>a,.nav-tabs-justified>.active>a:focus,.nav-tabs-justified>.active>a:hover{border-bottom-color:#fff}}.tab-content>.tab-pane{display:none}.tab-content>.active{display:block}.nav-tabs .dropdown-menu{margin-top:-1px;border-top-right-radius:0;border-top-left-radius:0}.navbar{position:relative;min-height:50px;margin-bottom:20px;border:1px solid transparent}.navbar-collapse{overflow-x:visible;padding-right:15px;padding-left:15px;border-top:1px solid transparent;box-shadow:inset 0 1px 0 rgba(255,255,255,.1);-webkit-overflow-scrolling:touch}.navbar-collapse.in{overflow-y:auto}@media (min-width:768px){.navbar{border-radius:4px}.navbar-header{float:left}.navbar-collapse{width:auto;border-top:0;box-shadow:none}.navbar-collapse.collapse{display:block!important;height:auto!important;padding-bottom:0;overflow:visible!important}.navbar-collapse.in{overflow-y:visible}.navbar-fixed-bottom .navbar-collapse,.navbar-fixed-top .navbar-collapse,.navbar-static-top .navbar-collapse{padding-left:0;padding-right:0}}.embed-responsive,.modal,.modal-open,.progress{overflow:hidden}@media (max-width:480px) and (orientation:landscape){.navbar-fixed-bottom .navbar-collapse,.navbar-fixed-top .navbar-collapse{max-height:200px}}.container-fluid>.navbar-collapse,.container-fluid>.navbar-header,.container>.navbar-collapse,.container>.navbar-header{margin-right:-15px;margin-left:-15px}.navbar-static-top{z-index:1000;border-width:0 0 1px}.navbar-fixed-bottom,.navbar-fixed-top{position:fixed;right:0;left:0;z-index:1030;-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}.navbar-fixed-top{top:0;border-width:0 0 1px}.navbar-fixed-bottom{bottom:0;margin-bottom:0;border-width:1px 0 0}.navbar-brand{float:left;padding:15px;font-size:18px;line-height:20px;height:50px}.navbar-brand:focus,.navbar-brand:hover{text-decoration:none}@media (min-width:768px){.container-fluid>.navbar-collapse,.container-fluid>.navbar-header,.container>.navbar-collapse,.container>.navbar-header{margin-right:0;margin-left:0}.navbar-fixed-bottom,.navbar-fixed-top,.navbar-static-top{border-radius:0}.navbar>.container .navbar-brand,.navbar>.container-fluid .navbar-brand{margin-left:-15px}}.navbar-toggle{position:relative;float:right;margin-right:15px;padding:9px 10px;margin-top:8px;margin-bottom:8px;background-color:transparent;border:1px solid transparent;border-radius:4px}.navbar-toggle:focus{outline:0}.navbar-toggle .icon-bar{display:block;width:22px;height:2px;border-radius:1px}.navbar-toggle .icon-bar+.icon-bar{margin-top:4px}.navbar-nav{margin:7.5px -15px}.navbar-nav>li>a{padding-top:10px;padding-bottom:10px;line-height:20px}@media (max-width:767px){.navbar-nav .open .dropdown-menu{position:static;float:none;width:auto;margin-top:0;background-color:transparent;border:0;box-shadow:none}.navbar-nav .open .dropdown-menu .dropdown-header,.navbar-nav .open .dropdown-menu>li>a{padding:5px 15px 5px 25px}.navbar-nav .open .dropdown-menu>li>a{line-height:20px}.navbar-nav .open .dropdown-menu>li>a:focus,.navbar-nav .open .dropdown-menu>li>a:hover{background-image:none}}.progress-bar-striped,.progress-striped .progress-bar,.progress-striped .progress-bar-success{background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:-o-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent)}@media (min-width:768px){.navbar-toggle{display:none}.navbar-nav{float:left;margin:0}.navbar-nav>li{float:left}.navbar-nav>li>a{padding-top:15px;padding-bottom:15px}.navbar-nav.navbar-right:last-child{margin-right:-15px}.navbar-left{float:left!important}.navbar-right{float:right!important}}.navbar-form{padding:10px 15px;border-top:1px solid transparent;border-bottom:1px solid transparent;-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,.1),0 1px 0 rgba(255,255,255,.1);box-shadow:inset 0 1px 0 rgba(255,255,255,.1),0 1px 0 rgba(255,255,255,.1);margin:8px -15px}@media (min-width:768px){.navbar-form .control-label,.navbar-form .form-group{margin-bottom:0;vertical-align:middle}.navbar-form .form-group{display:inline-block}.navbar-form .form-control{display:inline-block;width:auto;vertical-align:middle}.navbar-form .input-group{display:inline-table;vertical-align:middle}.navbar-form .input-group .form-control,.navbar-form .input-group .input-group-addon,.navbar-form .input-group .input-group-btn{width:auto}.navbar-form .input-group>.form-control{width:100%}.navbar-form .checkbox,.navbar-form .radio{display:inline-block;margin-top:0;margin-bottom:0;vertical-align:middle}.navbar-form .checkbox label,.navbar-form .radio label{padding-left:0}.navbar-form .checkbox input[type=checkbox],.navbar-form .radio input[type=radio]{position:relative;margin-left:0}.navbar-form .has-feedback .form-control-feedback{top:0}.navbar-form{width:auto;border:0;margin-left:0;margin-right:0;padding-top:0;padding-bottom:0;-webkit-box-shadow:none;box-shadow:none}.navbar-form.navbar-right:last-child{margin-right:-15px}}.breadcrumb>li,.pagination{display:inline-block}.btn .badge,.btn .label{top:-1px;position:relative}@media (max-width:767px){.navbar-form .form-group{margin-bottom:5px}}.navbar-nav>li>.dropdown-menu{margin-top:0;border-top-right-radius:0;border-top-left-radius:0}.navbar-fixed-bottom .navbar-nav>li>.dropdown-menu{border-bottom-right-radius:0;border-bottom-left-radius:0}.navbar-btn{margin-top:8px;margin-bottom:8px}.navbar-btn.btn-sm{margin-top:10px;margin-bottom:10px}.navbar-btn.btn-xs{margin-top:14px;margin-bottom:14px}.navbar-text{margin-top:15px;margin-bottom:15px}@media (min-width:768px){.navbar-text{float:left;margin-left:15px;margin-right:15px}.navbar-text.navbar-right:last-child{margin-right:0}}.navbar-default{background-color:#f8f8f8;border-color:#e7e7e7}.navbar-default .navbar-brand{color:#777}.navbar-default .navbar-brand:focus,.navbar-default .navbar-brand:hover{color:#5e5e5e;background-color:transparent}.navbar-default .navbar-nav>li>a,.navbar-default .navbar-text{color:#777}.navbar-default .navbar-nav>li>a:focus,.navbar-default .navbar-nav>li>a:hover{color:#333;background-color:transparent}.navbar-default .navbar-nav>.active>a,.navbar-default .navbar-nav>.active>a:focus,.navbar-default .navbar-nav>.active>a:hover{color:#555;background-color:#e7e7e7}.navbar-default .navbar-nav>.disabled>a,.navbar-default .navbar-nav>.disabled>a:focus,.navbar-default .navbar-nav>.disabled>a:hover{color:#ccc;background-color:transparent}.navbar-default .navbar-toggle{border-color:#ddd}.navbar-default .navbar-toggle:focus,.navbar-default .navbar-toggle:hover{background-color:#ddd}.navbar-default .navbar-toggle .icon-bar{background-color:#888}.navbar-default .navbar-collapse,.navbar-default .navbar-form{border-color:#e7e7e7}.navbar-default .navbar-nav>.open>a,.navbar-default .navbar-nav>.open>a:focus,.navbar-default .navbar-nav>.open>a:hover{background-color:#e7e7e7;color:#555}@media (max-width:767px){.navbar-default .navbar-nav .open .dropdown-menu>li>a{color:#777}.navbar-default .navbar-nav .open .dropdown-menu>li>a:focus,.navbar-default .navbar-nav .open .dropdown-menu>li>a:hover{color:#333;background-color:transparent}.navbar-default .navbar-nav .open .dropdown-menu>.active>a,.navbar-default .navbar-nav .open .dropdown-menu>.active>a:focus,.navbar-default .navbar-nav .open .dropdown-menu>.active>a:hover{color:#555;background-color:#e7e7e7}.navbar-default .navbar-nav .open .dropdown-menu>.disabled>a,.navbar-default .navbar-nav .open .dropdown-menu>.disabled>a:focus,.navbar-default .navbar-nav .open .dropdown-menu>.disabled>a:hover{color:#ccc;background-color:transparent}}.navbar-default .navbar-link{color:#777}.navbar-default .navbar-link:hover{color:#333}.navbar-default .btn-link{color:#777}.navbar-default .btn-link:focus,.navbar-default .btn-link:hover{color:#333}.navbar-default .btn-link[disabled]:focus,.navbar-default .btn-link[disabled]:hover,fieldset[disabled] .navbar-default .btn-link:focus,fieldset[disabled] .navbar-default .btn-link:hover{color:#ccc}.navbar-inverse{background-color:#222;border-color:#080808}.navbar-inverse .navbar-brand{color:#777}.navbar-inverse .navbar-brand:focus,.navbar-inverse .navbar-brand:hover{color:#fff;background-color:transparent}.navbar-inverse .navbar-nav>li>a,.navbar-inverse .navbar-text{color:#777}.navbar-inverse .navbar-nav>li>a:focus,.navbar-inverse .navbar-nav>li>a:hover{color:#fff;background-color:transparent}.navbar-inverse .navbar-nav>.active>a,.navbar-inverse .navbar-nav>.active>a:focus,.navbar-inverse .navbar-nav>.active>a:hover{color:#fff;background-color:#080808}.navbar-inverse .navbar-nav>.disabled>a,.navbar-inverse .navbar-nav>.disabled>a:focus,.navbar-inverse .navbar-nav>.disabled>a:hover{color:#444;background-color:transparent}.navbar-inverse .navbar-toggle{border-color:#333}.navbar-inverse .navbar-toggle:focus,.navbar-inverse .navbar-toggle:hover{background-color:#333}.navbar-inverse .navbar-toggle .icon-bar{background-color:#fff}.navbar-inverse .navbar-collapse,.navbar-inverse .navbar-form{border-color:#101010}.navbar-inverse .navbar-nav>.open>a,.navbar-inverse .navbar-nav>.open>a:focus,.navbar-inverse .navbar-nav>.open>a:hover{background-color:#080808;color:#fff}@media (max-width:767px){.navbar-inverse .navbar-nav .open .dropdown-menu>.dropdown-header{border-color:#080808}.navbar-inverse .navbar-nav .open .dropdown-menu .divider{background-color:#080808}.navbar-inverse .navbar-nav .open .dropdown-menu>li>a{color:#777}.navbar-inverse .navbar-nav .open .dropdown-menu>li>a:focus,.navbar-inverse .navbar-nav .open .dropdown-menu>li>a:hover{color:#fff;background-color:transparent}.navbar-inverse .navbar-nav .open .dropdown-menu>.active>a,.navbar-inverse .navbar-nav .open .dropdown-menu>.active>a:focus,.navbar-inverse .navbar-nav .open .dropdown-menu>.active>a:hover{color:#fff;background-color:#080808}.navbar-inverse .navbar-nav .open .dropdown-menu>.disabled>a,.navbar-inverse .navbar-nav .open .dropdown-menu>.disabled>a:focus,.navbar-inverse .navbar-nav .open .dropdown-menu>.disabled>a:hover{color:#444;background-color:transparent}}.navbar-inverse .navbar-link{color:#777}.navbar-inverse .navbar-link:hover{color:#fff}.navbar-inverse .btn-link{color:#777}.navbar-inverse .btn-link:focus,.navbar-inverse .btn-link:hover{color:#fff}.navbar-inverse .btn-link[disabled]:focus,.navbar-inverse .btn-link[disabled]:hover,fieldset[disabled] .navbar-inverse .btn-link:focus,fieldset[disabled] .navbar-inverse .btn-link:hover{color:#444}.breadcrumb{padding:8px 15px;margin-bottom:20px;list-style:none;background-color:#f5f5f5;border-radius:4px}.breadcrumb>li+li:before{content:"/\00a0";padding:0 5px;color:#ccc}.breadcrumb>.active{color:#777}.pagination{padding-left:0;margin:20px 0;border-radius:4px}.pager li,.pagination>li{display:inline}.pagination>li>a,.pagination>li>span{position:relative;float:left;padding:6px 12px;line-height:1.42857143;text-decoration:none;color:#428bca;background-color:#fff;border:1px solid #ddd;margin-left:-1px}.badge,.label{font-weight:700;line-height:1;vertical-align:baseline;white-space:nowrap;text-align:center}.pagination>li:first-child>a,.pagination>li:first-child>span{margin-left:0;border-bottom-left-radius:4px;border-top-left-radius:4px}.pagination>li:last-child>a,.pagination>li:last-child>span{border-bottom-right-radius:4px;border-top-right-radius:4px}.pagination>li>a:focus,.pagination>li>a:hover,.pagination>li>span:focus,.pagination>li>span:hover{color:#2a6496;background-color:#eee;border-color:#ddd}.pagination>.active>a,.pagination>.active>a:focus,.pagination>.active>a:hover,.pagination>.active>span,.pagination>.active>span:focus,.pagination>.active>span:hover{z-index:2;color:#fff;background-color:#428bca;border-color:#428bca;cursor:default}.pagination>.disabled>a,.pagination>.disabled>a:focus,.pagination>.disabled>a:hover,.pagination>.disabled>span,.pagination>.disabled>span:focus,.pagination>.disabled>span:hover{color:#777;background-color:#fff;border-color:#ddd;cursor:not-allowed}.pagination-lg>li>a,.pagination-lg>li>span{padding:10px 16px;font-size:18px}.pagination-lg>li:first-child>a,.pagination-lg>li:first-child>span{border-bottom-left-radius:6px;border-top-left-radius:6px}.pagination-lg>li:last-child>a,.pagination-lg>li:last-child>span{border-bottom-right-radius:6px;border-top-right-radius:6px}.pagination-sm>li>a,.pagination-sm>li>span{padding:5px 10px;font-size:12px}.pagination-sm>li:first-child>a,.pagination-sm>li:first-child>span{border-bottom-left-radius:3px;border-top-left-radius:3px}.pagination-sm>li:last-child>a,.pagination-sm>li:last-child>span{border-bottom-right-radius:3px;border-top-right-radius:3px}.pager{padding-left:0;margin:20px 0;list-style:none;text-align:center}.pager li>a,.pager li>span{display:inline-block;padding:5px 14px;background-color:#fff;border:1px solid #ddd;border-radius:15px}.pager li>a:focus,.pager li>a:hover{text-decoration:none;background-color:#eee}.pager .next>a,.pager .next>span{float:right}.pager .previous>a,.pager .previous>span{float:left}.pager .disabled>a,.pager .disabled>a:focus,.pager .disabled>a:hover,.pager .disabled>span{color:#777;background-color:#fff;cursor:not-allowed}.label{display:inline;padding:.2em .6em .3em;font-size:75%;color:#fff;border-radius:.25em}a.label:focus,a.label:hover{color:#fff;text-decoration:none;cursor:pointer}.label:empty{display:none}.label-default{background-color:#777}.label-default[href]:focus,.label-default[href]:hover{background-color:#5e5e5e}.label-primary{background-color:#428bca}.label-primary[href]:focus,.label-primary[href]:hover{background-color:#3071a9}.label-success{background-color:#5cb85c}.label-success[href]:focus,.label-success[href]:hover{background-color:#449d44}.label-info{background-color:#5bc0de}.label-info[href]:focus,.label-info[href]:hover{background-color:#31b0d5}.label-warning{background-color:#f0ad4e}.label-warning[href]:focus,.label-warning[href]:hover{background-color:#ec971f}.label-danger{background-color:#d9534f}.label-danger[href]:focus,.label-danger[href]:hover{background-color:#c9302c}.badge{display:inline-block;min-width:10px;padding:3px 7px;font-size:12px;color:#fff;background-color:#777;border-radius:10px}.badge:empty{display:none}.list-group-item,.media-object,.thumbnail{display:block}.btn-xs .badge{top:0;padding:1px 5px}a.badge:focus,a.badge:hover{color:#fff;text-decoration:none;cursor:pointer}.nav-pills>.active>a>.badge,a.list-group-item.active>.badge{color:#428bca;background-color:#fff}.jumbotron,.jumbotron .h1,.jumbotron h1{color:inherit}.nav-pills>li>a>.badge{margin-left:3px}.jumbotron{padding:30px;margin-bottom:30px;background-color:#eee}.jumbotron p{margin-bottom:15px;font-size:21px;font-weight:200}.alert,.thumbnail{margin-bottom:20px}.alert .alert-link,.close{font-weight:700}.jumbotron>hr{border-top-color:#d5d5d5}.container .jumbotron{border-radius:6px}.jumbotron .container{max-width:100%}@media screen and (min-width:768px){.jumbotron{padding-top:48px;padding-bottom:48px}.container .jumbotron{padding-left:60px;padding-right:60px}.jumbotron .h1,.jumbotron h1{font-size:63px}}.thumbnail{padding:4px;line-height:1.42857143;background-color:#fff;border:1px solid #ddd;border-radius:4px;-webkit-transition:all .2s ease-in-out;transition:all .2s ease-in-out}.thumbnail a>img,.thumbnail>img{margin-left:auto;margin-right:auto}a.thumbnail.active,a.thumbnail:focus,a.thumbnail:hover{border-color:#428bca}.thumbnail .caption{padding:9px;color:#333}.alert{padding:15px;border:1px solid transparent;border-radius:4px}.alert h4{margin-top:0;color:inherit}.alert>p,.alert>ul{margin-bottom:0}.alert>p+p{margin-top:5px}.alert-dismissable,.alert-dismissible{padding-right:35px}.alert-dismissable .close,.alert-dismissible .close{position:relative;top:-2px;right:-21px;color:inherit}.modal,.modal-backdrop{top:0;right:0;bottom:0;left:0}.alert-success{background-color:#dff0d8;border-color:#d6e9c6;color:#3c763d}.alert-success hr{border-top-color:#c9e2b3}.alert-success .alert-link{color:#2b542c}.alert-info{background-color:#d9edf7;border-color:#bce8f1;color:#31708f}.alert-info hr{border-top-color:#a6e1ec}.alert-info .alert-link{color:#245269}.alert-warning{background-color:#fcf8e3;border-color:#faebcc;color:#8a6d3b}.alert-warning hr{border-top-color:#f7e1b5}.alert-warning .alert-link{color:#66512c}.alert-danger{background-color:#f2dede;border-color:#ebccd1;color:#a94442}.alert-danger hr{border-top-color:#e4b9c0}.alert-danger .alert-link{color:#843534}@-webkit-keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}@keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}.progress{height:20px;margin-bottom:20px;background-color:#f5f5f5;border-radius:4px;-webkit-box-shadow:inset 0 1px 2px rgba(0,0,0,.1);box-shadow:inset 0 1px 2px rgba(0,0,0,.1)}.progress-bar{float:left;width:0%;height:100%;font-size:12px;line-height:20px;color:#fff;text-align:center;background-color:#428bca;-webkit-box-shadow:inset 0 -1px 0 rgba(0,0,0,.15);box-shadow:inset 0 -1px 0 rgba(0,0,0,.15);-webkit-transition:width .6s ease;-o-transition:width .6s ease;transition:width .6s ease}.close,.list-group-item>.badge{float:right}.progress-bar-striped,.progress-striped .progress-bar{background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-size:40px 40px}.progress-bar.active,.progress.active .progress-bar{-webkit-animation:progress-bar-stripes 2s linear infinite;-o-animation:progress-bar-stripes 2s linear infinite;animation:progress-bar-stripes 2s linear infinite}.progress-bar[aria-valuenow="1"],.progress-bar[aria-valuenow="2"]{min-width:30px}.progress-bar[aria-valuenow="0"]{color:#777;min-width:30px;background-color:transparent;background-image:none;box-shadow:none}.progress-bar-success{background-color:#5cb85c}.progress-striped .progress-bar-success{background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent)}.progress-striped .progress-bar-info,.progress-striped .progress-bar-warning{background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:-o-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent)}.progress-bar-info{background-color:#5bc0de}.progress-striped .progress-bar-info{background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent)}.progress-bar-warning{background-color:#f0ad4e}.progress-striped .progress-bar-warning{background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent)}.progress-bar-danger{background-color:#d9534f}.progress-striped .progress-bar-danger{background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:-o-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent)}.media,.media-body{overflow:hidden;zoom:1}.media,.media .media{margin-top:15px}.media:first-child{margin-top:0}.media-heading{margin:0 0 5px}.media>.pull-left{margin-right:10px}.media>.pull-right{margin-left:10px}.media-list{padding-left:0;list-style:none}.list-group{margin-bottom:20px;padding-left:0}.list-group-item{position:relative;padding:10px 15px;margin-bottom:-1px;background-color:#fff;border:1px solid #ddd}.list-group-item:first-child{border-top-right-radius:4px;border-top-left-radius:4px}.list-group-item:last-child{margin-bottom:0;border-bottom-right-radius:4px;border-bottom-left-radius:4px}.list-group-item>.badge+.badge{margin-right:5px}a.list-group-item{color:#555}a.list-group-item .list-group-item-heading{color:#333}a.list-group-item:focus,a.list-group-item:hover{text-decoration:none;color:#555;background-color:#f5f5f5}.list-group-item.disabled,.list-group-item.disabled:focus,.list-group-item.disabled:hover{background-color:#eee;color:#777}.list-group-item.disabled .list-group-item-heading,.list-group-item.disabled:focus .list-group-item-heading,.list-group-item.disabled:hover .list-group-item-heading{color:inherit}.list-group-item.disabled .list-group-item-text,.list-group-item.disabled:focus .list-group-item-text,.list-group-item.disabled:hover .list-group-item-text{color:#777}.list-group-item.active,.list-group-item.active:focus,.list-group-item.active:hover{z-index:2;color:#fff;background-color:#428bca;border-color:#428bca}.list-group-item.active .list-group-item-heading,.list-group-item.active .list-group-item-heading>.small,.list-group-item.active .list-group-item-heading>small,.list-group-item.active:focus .list-group-item-heading,.list-group-item.active:focus .list-group-item-heading>.small,.list-group-item.active:focus .list-group-item-heading>small,.list-group-item.active:hover .list-group-item-heading,.list-group-item.active:hover .list-group-item-heading>.small,.list-group-item.active:hover .list-group-item-heading>small{color:inherit}.list-group-item.active .list-group-item-text,.list-group-item.active:focus .list-group-item-text,.list-group-item.active:hover .list-group-item-text{color:#e1edf7}.list-group-item-success{color:#3c763d;background-color:#dff0d8}a.list-group-item-success{color:#3c763d}a.list-group-item-success .list-group-item-heading{color:inherit}a.list-group-item-success:focus,a.list-group-item-success:hover{color:#3c763d;background-color:#d0e9c6}a.list-group-item-success.active,a.list-group-item-success.active:focus,a.list-group-item-success.active:hover{color:#fff;background-color:#3c763d;border-color:#3c763d}.list-group-item-info{color:#31708f;background-color:#d9edf7}a.list-group-item-info{color:#31708f}a.list-group-item-info .list-group-item-heading{color:inherit}a.list-group-item-info:focus,a.list-group-item-info:hover{color:#31708f;background-color:#c4e3f3}a.list-group-item-info.active,a.list-group-item-info.active:focus,a.list-group-item-info.active:hover{color:#fff;background-color:#31708f;border-color:#31708f}.list-group-item-warning{color:#8a6d3b;background-color:#fcf8e3}a.list-group-item-warning{color:#8a6d3b}a.list-group-item-warning .list-group-item-heading{color:inherit}a.list-group-item-warning:focus,a.list-group-item-warning:hover{color:#8a6d3b;background-color:#faf2cc}a.list-group-item-warning.active,a.list-group-item-warning.active:focus,a.list-group-item-warning.active:hover{color:#fff;background-color:#8a6d3b;border-color:#8a6d3b}.list-group-item-danger{color:#a94442;background-color:#f2dede}a.list-group-item-danger{color:#a94442}a.list-group-item-danger .list-group-item-heading{color:inherit}a.list-group-item-danger:focus,a.list-group-item-danger:hover{color:#a94442;background-color:#ebcccc}a.list-group-item-danger.active,a.list-group-item-danger.active:focus,a.list-group-item-danger.active:hover{color:#fff;background-color:#a94442;border-color:#a94442}.panel-heading>.dropdown .dropdown-toggle,.panel-title,.panel-title>a{color:inherit}.list-group-item-heading{margin-top:0;margin-bottom:5px}.list-group-item-text{margin-bottom:0;line-height:1.3}.panel{margin-bottom:20px;background-color:#fff;border:1px solid transparent;border-radius:4px;-webkit-box-shadow:0 1px 1px rgba(0,0,0,.05);box-shadow:0 1px 1px rgba(0,0,0,.05)}.panel-title,.panel>.list-group,.panel>.panel-collapse>.table,.panel>.table,.panel>.table-responsive>.table{margin-bottom:0}.panel-body{padding:15px}.panel-heading{padding:10px 15px;border-bottom:1px solid transparent;border-top-right-radius:3px;border-top-left-radius:3px}.panel-title{margin-top:0;font-size:16px}.panel-footer{padding:10px 15px;background-color:#f5f5f5;border-top:1px solid #ddd;border-bottom-right-radius:3px;border-bottom-left-radius:3px}.panel>.list-group .list-group-item{border-width:1px 0;border-radius:0}.panel-group .panel-heading,.panel>.list-group:last-child .list-group-item:last-child,.panel>.table-bordered>tbody>tr:first-child>td,.panel>.table-bordered>tbody>tr:first-child>th,.panel>.table-bordered>tbody>tr:last-child>td,.panel>.table-bordered>tbody>tr:last-child>th,.panel>.table-bordered>tfoot>tr:last-child>td,.panel>.table-bordered>tfoot>tr:last-child>th,.panel>.table-bordered>thead>tr:first-child>td,.panel>.table-bordered>thead>tr:first-child>th,.panel>.table-responsive>.table-bordered>tbody>tr:first-child>td,.panel>.table-responsive>.table-bordered>tbody>tr:first-child>th,.panel>.table-responsive>.table-bordered>tbody>tr:last-child>td,.panel>.table-responsive>.table-bordered>tbody>tr:last-child>th,.panel>.table-responsive>.table-bordered>tfoot>tr:last-child>td,.panel>.table-responsive>.table-bordered>tfoot>tr:last-child>th,.panel>.table-responsive>.table-bordered>thead>tr:first-child>td,.panel>.table-responsive>.table-bordered>thead>tr:first-child>th{border-bottom:0}.panel>.list-group:last-child .list-group-item:last-child,.panel>.table-responsive:last-child>.table:last-child,.panel>.table:last-child{border-bottom-left-radius:3px;border-bottom-right-radius:3px}.panel>.list-group:first-child .list-group-item:first-child{border-top:0;border-top-right-radius:3px;border-top-left-radius:3px}.list-group+.panel-footer,.panel-heading+.list-group .list-group-item:first-child{border-top-width:0}.panel>.table-responsive:first-child>.table:first-child,.panel>.table:first-child{border-top-right-radius:3px;border-top-left-radius:3px}.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child td:first-child,.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child th:first-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child td:first-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child th:first-child,.panel>.table:first-child>tbody:first-child>tr:first-child td:first-child,.panel>.table:first-child>tbody:first-child>tr:first-child th:first-child,.panel>.table:first-child>thead:first-child>tr:first-child td:first-child,.panel>.table:first-child>thead:first-child>tr:first-child th:first-child{border-top-left-radius:3px}.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child td:last-child,.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child th:last-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child td:last-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child th:last-child,.panel>.table:first-child>tbody:first-child>tr:first-child td:last-child,.panel>.table:first-child>tbody:first-child>tr:first-child th:last-child,.panel>.table:first-child>thead:first-child>tr:first-child td:last-child,.panel>.table:first-child>thead:first-child>tr:first-child th:last-child{border-top-right-radius:3px}.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child td:first-child,.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child th:first-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child td:first-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child th:first-child,.panel>.table:last-child>tbody:last-child>tr:last-child td:first-child,.panel>.table:last-child>tbody:last-child>tr:last-child th:first-child,.panel>.table:last-child>tfoot:last-child>tr:last-child td:first-child,.panel>.table:last-child>tfoot:last-child>tr:last-child th:first-child{border-bottom-left-radius:3px}.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child td:last-child,.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child th:last-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child td:last-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child th:last-child,.panel>.table:last-child>tbody:last-child>tr:last-child td:last-child,.panel>.table:last-child>tbody:last-child>tr:last-child th:last-child,.panel>.table:last-child>tfoot:last-child>tr:last-child td:last-child,.panel>.table:last-child>tfoot:last-child>tr:last-child th:last-child{border-bottom-right-radius:3px}.panel>.panel-body+.table,.panel>.panel-body+.table-responsive{border-top:1px solid #ddd}.panel>.table>tbody:first-child>tr:first-child td,.panel>.table>tbody:first-child>tr:first-child th{border-top:0}.panel>.table-bordered,.panel>.table-responsive>.table-bordered{border:0}.panel>.table-bordered>tbody>tr>td:first-child,.panel>.table-bordered>tbody>tr>th:first-child,.panel>.table-bordered>tfoot>tr>td:first-child,.panel>.table-bordered>tfoot>tr>th:first-child,.panel>.table-bordered>thead>tr>td:first-child,.panel>.table-bordered>thead>tr>th:first-child,.panel>.table-responsive>.table-bordered>tbody>tr>td:first-child,.panel>.table-responsive>.table-bordered>tbody>tr>th:first-child,.panel>.table-responsive>.table-bordered>tfoot>tr>td:first-child,.panel>.table-responsive>.table-bordered>tfoot>tr>th:first-child,.panel>.table-responsive>.table-bordered>thead>tr>td:first-child,.panel>.table-responsive>.table-bordered>thead>tr>th:first-child{border-left:0}.panel>.table-bordered>tbody>tr>td:last-child,.panel>.table-bordered>tbody>tr>th:last-child,.panel>.table-bordered>tfoot>tr>td:last-child,.panel>.table-bordered>tfoot>tr>th:last-child,.panel>.table-bordered>thead>tr>td:last-child,.panel>.table-bordered>thead>tr>th:last-child,.panel>.table-responsive>.table-bordered>tbody>tr>td:last-child,.panel>.table-responsive>.table-bordered>tbody>tr>th:last-child,.panel>.table-responsive>.table-bordered>tfoot>tr>td:last-child,.panel>.table-responsive>.table-bordered>tfoot>tr>th:last-child,.panel>.table-responsive>.table-bordered>thead>tr>td:last-child,.panel>.table-responsive>.table-bordered>thead>tr>th:last-child{border-right:0}.panel>.table-responsive{border:0;margin-bottom:0}.panel-group{margin-bottom:20px}.panel-group .panel{margin-bottom:0;border-radius:4px}.panel-group .panel+.panel{margin-top:5px}.panel-group .panel-heading+.panel-collapse>.panel-body{border-top:1px solid #ddd}.panel-group .panel-footer{border-top:0}.panel-group .panel-footer+.panel-collapse .panel-body{border-bottom:1px solid #ddd}.panel-default{border-color:#ddd}.panel-default>.panel-heading{color:#333;background-color:#f5f5f5;border-color:#ddd}.panel-default>.panel-heading+.panel-collapse>.panel-body{border-top-color:#ddd}.panel-default>.panel-heading .badge{color:#f5f5f5;background-color:#333}.panel-default>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#ddd}.panel-primary{border-color:#428bca}.panel-primary>.panel-heading{color:#fff;background-color:#428bca;border-color:#428bca}.panel-primary>.panel-heading+.panel-collapse>.panel-body{border-top-color:#428bca}.panel-primary>.panel-heading .badge{color:#428bca;background-color:#fff}.panel-primary>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#428bca}.panel-success{border-color:#d6e9c6}.panel-success>.panel-heading{color:#3c763d;background-color:#dff0d8;border-color:#d6e9c6}.panel-success>.panel-heading+.panel-collapse>.panel-body{border-top-color:#d6e9c6}.panel-success>.panel-heading .badge{color:#dff0d8;background-color:#3c763d}.panel-success>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#d6e9c6}.panel-info{border-color:#bce8f1}.panel-info>.panel-heading{color:#31708f;background-color:#d9edf7;border-color:#bce8f1}.panel-info>.panel-heading+.panel-collapse>.panel-body{border-top-color:#bce8f1}.panel-info>.panel-heading .badge{color:#d9edf7;background-color:#31708f}.panel-info>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#bce8f1}.panel-warning{border-color:#faebcc}.panel-warning>.panel-heading{color:#8a6d3b;background-color:#fcf8e3;border-color:#faebcc}.panel-warning>.panel-heading+.panel-collapse>.panel-body{border-top-color:#faebcc}.panel-warning>.panel-heading .badge{color:#fcf8e3;background-color:#8a6d3b}.panel-warning>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#faebcc}.panel-danger{border-color:#ebccd1}.panel-danger>.panel-heading{color:#a94442;background-color:#f2dede;border-color:#ebccd1}.panel-danger>.panel-heading+.panel-collapse>.panel-body{border-top-color:#ebccd1}.panel-danger>.panel-heading .badge{color:#f2dede;background-color:#a94442}.panel-danger>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#ebccd1}.embed-responsive{position:relative;display:block;height:0;padding:0}.embed-responsive .embed-responsive-item,.embed-responsive embed,.embed-responsive iframe,.embed-responsive object{position:absolute;top:0;left:0;bottom:0;height:100%;width:100%;border:0}.embed-responsive.embed-responsive-16by9{padding-bottom:56.25%}.embed-responsive.embed-responsive-4by3{padding-bottom:75%}.well{min-height:20px;padding:19px;margin-bottom:20px;background-color:#f5f5f5;border:1px solid #e3e3e3;border-radius:4px;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.05);box-shadow:inset 0 1px 1px rgba(0,0,0,.05)}.well blockquote{border-color:#ddd;border-color:rgba(0,0,0,.15)}.well-lg{padding:24px;border-radius:6px}.well-sm{padding:9px;border-radius:3px}.close{font-size:21px;line-height:1;color:#000;text-shadow:0 1px 0 #fff;opacity:.2;filter:alpha(opacity=20)}.carousel-caption,.carousel-control{text-shadow:0 1px 2px rgba(0,0,0,.6)}.close:focus,.close:hover{color:#000;text-decoration:none;cursor:pointer;opacity:.5;filter:alpha(opacity=50)}button.close{padding:0;cursor:pointer;background:0 0;border:0;-webkit-appearance:none}.modal-content,.popover,.tt-dropdown-menu{background-clip:padding-box}.modal{display:none;position:fixed;z-index:1050;-webkit-overflow-scrolling:touch;outline:0}.modal.fade .modal-dialog{-webkit-transform:translate3d(0,-25%,0);transform:translate3d(0,-25%,0);-webkit-transition:-webkit-transform .3s ease-out;-moz-transition:-moz-transform .3s ease-out;-o-transition:-o-transform .3s ease-out;transition:transform .3s ease-out}.modal.in .modal-dialog{-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}.modal-open .modal{overflow-x:hidden;overflow-y:auto}.modal-dialog{position:relative;width:auto;margin:10px}.modal-content{position:relative;background-color:#fff;border:1px solid #999;border:1px solid rgba(0,0,0,.2);border-radius:6px;-webkit-box-shadow:0 3px 9px rgba(0,0,0,.5);box-shadow:0 3px 9px rgba(0,0,0,.5);outline:0}.modal-backdrop{position:fixed;z-index:1040;background-color:#000}.modal-backdrop.fade{opacity:0;filter:alpha(opacity=0)}.modal-backdrop.in{opacity:.5;filter:alpha(opacity=50)}.modal-header{padding:15px;border-bottom:1px solid #e5e5e5;min-height:16.43px}.modal-header .close{margin-top:-2px}.modal-title{margin:0;line-height:1.42857143}.modal-body{position:relative;padding:15px}.modal-footer{padding:15px;text-align:right;border-top:1px solid #e5e5e5}.modal-footer .btn+.btn{margin-left:5px;margin-bottom:0}.modal-footer .btn-group .btn+.btn{margin-left:-1px}.modal-footer .btn-block+.btn-block{margin-left:0}.modal-scrollbar-measure{position:absolute;top:-9999px;width:50px;height:50px;overflow:scroll}@media (min-width:768px){.modal-dialog{width:600px;margin:30px auto}.modal-content{-webkit-box-shadow:0 5px 15px rgba(0,0,0,.5);box-shadow:0 5px 15px rgba(0,0,0,.5)}.modal-sm{width:300px}}@media (min-width:992px){.modal-lg{width:900px}}.tooltip{position:absolute;z-index:1070;display:block;visibility:visible;font-size:12px;line-height:1.4;opacity:0;filter:alpha(opacity=0)}.tooltip.in{opacity:.9;filter:alpha(opacity=90)}.tooltip.top{margin-top:-3px;padding:5px 0}.tooltip.right{margin-left:3px;padding:0 5px}.tooltip.bottom{margin-top:3px;padding:5px 0}.tooltip.left{margin-left:-3px;padding:0 5px}.tooltip-inner{max-width:200px;padding:3px 8px;color:#fff;text-align:center;text-decoration:none;background-color:#000;border-radius:4px}.tooltip-arrow{position:absolute;width:0;height:0;border-color:transparent;border-style:solid}.tooltip.top .tooltip-arrow,.tooltip.top-left .tooltip-arrow,.tooltip.top-right .tooltip-arrow{bottom:0;border-width:5px 5px 0;border-top-color:#000}.tooltip.top .tooltip-arrow{left:50%;margin-left:-5px}.tooltip.top-left .tooltip-arrow{left:5px}.tooltip.top-right .tooltip-arrow{right:5px}.tooltip.right .tooltip-arrow{top:50%;left:0;margin-top:-5px;border-width:5px 5px 5px 0;border-right-color:#000}.tooltip.left .tooltip-arrow{top:50%;right:0;margin-top:-5px;border-width:5px 0 5px 5px;border-left-color:#000}.tooltip.bottom .tooltip-arrow,.tooltip.bottom-left .tooltip-arrow,.tooltip.bottom-right .tooltip-arrow{border-width:0 5px 5px;border-bottom-color:#000;top:0}.tooltip.bottom .tooltip-arrow{left:50%;margin-left:-5px}.tooltip.bottom-left .tooltip-arrow{left:5px}.tooltip.bottom-right .tooltip-arrow{right:5px}.popover{position:absolute;top:0;left:0;z-index:1060;display:none;max-width:276px;padding:1px;text-align:left;background-color:#fff;border:1px solid #ccc;border:1px solid rgba(0,0,0,.2);border-radius:6px;-webkit-box-shadow:0 5px 10px rgba(0,0,0,.2);box-shadow:0 5px 10px rgba(0,0,0,.2);white-space:normal}.popover.top{margin-top:-10px}.popover.right{margin-left:10px}.popover.bottom{margin-top:10px}.popover.left{margin-left:-10px}.popover-title{margin:0;padding:8px 14px;font-size:14px;font-weight:400;line-height:18px;background-color:#f7f7f7;border-bottom:1px solid #ebebeb;border-radius:5px 5px 0 0}.popover-content{padding:9px 14px}.popover>.arrow,.popover>.arrow:after{position:absolute;display:block;width:0;height:0;border-color:transparent;border-style:solid}.carousel,.carousel-inner{position:relative}.popover>.arrow{border-width:11px}.popover>.arrow:after{border-width:10px;content:""}.popover.top>.arrow{left:50%;margin-left:-11px;border-bottom-width:0;border-top-color:#999;border-top-color:rgba(0,0,0,.25);bottom:-11px}.popover.top>.arrow:after{content:" ";bottom:1px;margin-left:-10px;border-bottom-width:0;border-top-color:#fff}.popover.left>.arrow:after,.popover.right>.arrow:after{content:" ";bottom:-10px}.popover.right>.arrow{top:50%;left:-11px;margin-top:-11px;border-left-width:0;border-right-color:#999;border-right-color:rgba(0,0,0,.25)}.popover.right>.arrow:after{left:1px;border-left-width:0;border-right-color:#fff}.popover.bottom>.arrow{left:50%;margin-left:-11px;border-top-width:0;border-bottom-color:#999;border-bottom-color:rgba(0,0,0,.25);top:-11px}.popover.bottom>.arrow:after{content:" ";top:1px;margin-left:-10px;border-top-width:0;border-bottom-color:#fff}.popover.left>.arrow{top:50%;right:-11px;margin-top:-11px;border-right-width:0;border-left-color:#999;border-left-color:rgba(0,0,0,.25)}.popover.left>.arrow:after{right:1px;border-right-width:0;border-left-color:#fff}.carousel-inner{overflow:hidden;width:100%}.carousel-inner>.item{display:none;position:relative;-webkit-transition:.6s ease-in-out left;-o-transition:.6s ease-in-out left;transition:.6s ease-in-out left}.carousel-inner>.item>a>img,.carousel-inner>.item>img{line-height:1}.carousel-inner>.active,.carousel-inner>.next,.carousel-inner>.prev{display:block}.carousel-inner>.active{left:0}.carousel-inner>.next,.carousel-inner>.prev{position:absolute;top:0;width:100%}.carousel-inner>.next{left:100%}.carousel-inner>.prev{left:-100%}.carousel-inner>.next.left,.carousel-inner>.prev.right{left:0}.carousel-inner>.active.left{left:-100%}.carousel-inner>.active.right{left:100%}.carousel-control{position:absolute;top:0;left:0;bottom:0;width:15%;opacity:.5;filter:alpha(opacity=50);font-size:20px;color:#fff;text-align:center}.carousel-control.left{background-image:-webkit-linear-gradient(left,rgba(0,0,0,.5) 0,rgba(0,0,0,.0001) 100%);background-image:-o-linear-gradient(left,rgba(0,0,0,.5) 0,rgba(0,0,0,.0001) 100%);background-image:linear-gradient(to right,rgba(0,0,0,.5) 0,rgba(0,0,0,.0001) 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#80000000', endColorstr='#00000000', GradientType=1)}.carousel-control.right{left:auto;right:0;background-image:-webkit-linear-gradient(left,rgba(0,0,0,.0001) 0,rgba(0,0,0,.5) 100%);background-image:-o-linear-gradient(left,rgba(0,0,0,.0001) 0,rgba(0,0,0,.5) 100%);background-image:linear-gradient(to right,rgba(0,0,0,.0001) 0,rgba(0,0,0,.5) 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#00000000', endColorstr='#80000000', GradientType=1)}.carousel-control:focus,.carousel-control:hover{outline:0;color:#fff;text-decoration:none;opacity:.9;filter:alpha(opacity=90)}.carousel-control .glyphicon-chevron-left,.carousel-control .glyphicon-chevron-right,.carousel-control .icon-next,.carousel-control .icon-prev{position:absolute;top:50%;z-index:5;display:inline-block}.carousel-control .glyphicon-chevron-left,.carousel-control .icon-prev{left:50%;margin-left:-10px}.carousel-control .glyphicon-chevron-right,.carousel-control .icon-next{right:50%;margin-right:-10px}.carousel-control .icon-next,.carousel-control .icon-prev{width:20px;height:20px;margin-top:-10px;font-family:serif}.carousel-control .icon-prev:before{content:'\2039'}.carousel-control .icon-next:before{content:'\203a'}.carousel-indicators{position:absolute;bottom:10px;left:50%;z-index:15;width:60%;margin-left:-30%;padding-left:0;list-style:none;text-align:center}.carousel-indicators li{display:inline-block;width:10px;height:10px;margin:1px;text-indent:-999px;border:1px solid #fff;border-radius:10px;cursor:pointer;background-color:#000\9;background-color:rgba(0,0,0,0)}.carousel-indicators .active{margin:0;width:12px;height:12px;background-color:#fff}.carousel-caption{position:absolute;left:15%;right:15%;bottom:20px;z-index:10;padding-top:20px;padding-bottom:20px;color:#fff;text-align:center}.carousel-caption .btn,.text-hide{text-shadow:none}@media screen and (min-width:768px){.carousel-control .glyphicon-chevron-left,.carousel-control .glyphicon-chevron-right,.carousel-control .icon-next,.carousel-control .icon-prev{width:30px;height:30px;margin-top:-15px;font-size:30px}.carousel-control .glyphicon-chevron-left,.carousel-control .icon-prev{margin-left:-15px}.carousel-control .glyphicon-chevron-right,.carousel-control .icon-next{margin-right:-15px}.carousel-caption{left:20%;right:20%;padding-bottom:30px}.carousel-indicators{bottom:20px}}.btn-group-vertical>.btn-group:after,.btn-group-vertical>.btn-group:before,.btn-toolbar:after,.btn-toolbar:before,.clearfix:after,.clearfix:before,.container-fluid:after,.container-fluid:before,.container:after,.container:before,.dl-horizontal dd:after,.dl-horizontal dd:before,.form-horizontal .form-group:after,.form-horizontal .form-group:before,.modal-footer:after,.modal-footer:before,.nav:after,.nav:before,.navbar-collapse:after,.navbar-collapse:before,.navbar-header:after,.navbar-header:before,.navbar:after,.navbar:before,.pager:after,.pager:before,.panel-body:after,.panel-body:before,.row:after,.row:before{content:" ";display:table}.btn-group-vertical>.btn-group:after,.btn-toolbar:after,.clearfix:after,.container-fluid:after,.container:after,.dl-horizontal dd:after,.form-horizontal .form-group:after,.modal-footer:after,.nav:after,.navbar-collapse:after,.navbar-header:after,.navbar:after,.pager:after,.panel-body:after,.row:after{clear:both}.center-block{display:block;margin-left:auto;margin-right:auto}.pull-right{float:right!important}.pull-left{float:left!important}.hide{display:none!important}.show{display:block!important}.hidden,.visible-lg,.visible-lg-block,.visible-lg-inline,.visible-lg-inline-block,.visible-md,.visible-md-block,.visible-md-inline,.visible-md-inline-block,.visible-sm,.visible-sm-block,.visible-sm-inline,.visible-sm-inline-block,.visible-xs,.visible-xs-block,.visible-xs-inline,.visible-xs-inline-block{display:none!important}.invisible{visibility:hidden}.text-hide{font:0/0 a;color:transparent;background-color:transparent;border:0}.hidden{visibility:hidden!important}.affix{position:fixed;-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}@-ms-viewport{width:device-width}@media (max-width:767px){.visible-xs{display:block!important}table.visible-xs{display:table}tr.visible-xs{display:table-row!important}td.visible-xs,th.visible-xs{display:table-cell!important}.visible-xs-block{display:block!important}.visible-xs-inline{display:inline!important}.visible-xs-inline-block{display:inline-block!important}}@media (min-width:768px) and (max-width:991px){.visible-sm{display:block!important}table.visible-sm{display:table}tr.visible-sm{display:table-row!important}td.visible-sm,th.visible-sm{display:table-cell!important}.visible-sm-block{display:block!important}.visible-sm-inline{display:inline!important}.visible-sm-inline-block{display:inline-block!important}}@media (min-width:992px) and (max-width:1199px){.visible-md{display:block!important}table.visible-md{display:table}tr.visible-md{display:table-row!important}td.visible-md,th.visible-md{display:table-cell!important}.visible-md-block{display:block!important}.visible-md-inline{display:inline!important}.visible-md-inline-block{display:inline-block!important}}@media (min-width:1200px){.visible-lg{display:block!important}table.visible-lg{display:table}tr.visible-lg{display:table-row!important}td.visible-lg,th.visible-lg{display:table-cell!important}.visible-lg-block{display:block!important}.visible-lg-inline{display:inline!important}.visible-lg-inline-block{display:inline-block!important}.hidden-lg{display:none!important}}@media (max-width:767px){.hidden-xs{display:none!important}}@media (min-width:768px) and (max-width:991px){.hidden-sm{display:none!important}}@media (min-width:992px) and (max-width:1199px){.hidden-md{display:none!important}}.visible-print{display:none!important}@media print{.visible-print{display:block!important}table.visible-print{display:table}tr.visible-print{display:table-row!important}td.visible-print,th.visible-print{display:table-cell!important}}.visible-print-block{display:none!important}@media print{.visible-print-block{display:block!important}}.visible-print-inline{display:none!important}@media print{.visible-print-inline{display:inline!important}}.visible-print-inline-block{display:none!important}@media print{.visible-print-inline-block{display:inline-block!important}.hidden-print{display:none!important}}.has-warning .twitter-typeahead .tt-hint,.has-warning .twitter-typeahead .tt-input{border-color:#8a6d3b;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075);box-shadow:inset 0 1px 1px rgba(0,0,0,.075)}.has-warning .twitter-typeahead .tt-hint:focus,.has-warning .twitter-typeahead .tt-input:focus{border-color:#66512c;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #c0a16b;box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #c0a16b}.has-error .twitter-typeahead .tt-hint,.has-error .twitter-typeahead .tt-input{border-color:#a94442;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075);box-shadow:inset 0 1px 1px rgba(0,0,0,.075)}.has-error .twitter-typeahead .tt-hint:focus,.has-error .twitter-typeahead .tt-input:focus{border-color:#843534;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #ce8483;box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #ce8483}.has-success .twitter-typeahead .tt-hint,.has-success .twitter-typeahead .tt-input{border-color:#3c763d;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075);box-shadow:inset 0 1px 1px rgba(0,0,0,.075)}.has-success .twitter-typeahead .tt-hint:focus,.has-success .twitter-typeahead .tt-input:focus{border-color:#2b542c;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #67b168;box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #67b168}.input-group .twitter-typeahead:first-child .tt-hint,.input-group .twitter-typeahead:first-child .tt-input{border-bottom-left-radius:4px;border-top-left-radius:4px}.input-group .twitter-typeahead:last-child .tt-hint,.input-group .twitter-typeahead:last-child .tt-input{border-bottom-right-radius:4px;border-top-right-radius:4px}.input-group.input-group-sm .twitter-typeahead .tt-hint,.input-group.input-group-sm .twitter-typeahead .tt-input{height:30px;padding:5px 10px;font-size:12px;line-height:1.5;border-radius:3px}select.input-group.input-group-sm .twitter-typeahead .tt-hint,select.input-group.input-group-sm .twitter-typeahead .tt-input{height:30px;line-height:30px}select[multiple].input-group.input-group-sm .twitter-typeahead .tt-hint,select[multiple].input-group.input-group-sm .twitter-typeahead .tt-input,textarea.input-group.input-group-sm .twitter-typeahead .tt-hint,textarea.input-group.input-group-sm .twitter-typeahead .tt-input{height:auto}.input-group.input-group-sm .twitter-typeahead:not(:first-child):not(:last-child) .tt-hint,.input-group.input-group-sm .twitter-typeahead:not(:first-child):not(:last-child) .tt-input{border-radius:0}.input-group.input-group-sm .twitter-typeahead:first-child .tt-hint,.input-group.input-group-sm .twitter-typeahead:first-child .tt-input{border-radius:3px 0 0 3px}.input-group.input-group-sm .twitter-typeahead:last-child .tt-hint,.input-group.input-group-sm .twitter-typeahead:last-child .tt-input{border-radius:0 3px 3px 0}.input-group.input-group-lg .twitter-typeahead .tt-hint,.input-group.input-group-lg .twitter-typeahead .tt-input{height:46px;padding:10px 16px;font-size:18px;line-height:1.33;border-radius:6px}select.input-group.input-group-lg .twitter-typeahead .tt-hint,select.input-group.input-group-lg .twitter-typeahead .tt-input{height:46px;line-height:46px}select[multiple].input-group.input-group-lg .twitter-typeahead .tt-hint,select[multiple].input-group.input-group-lg .twitter-typeahead .tt-input,textarea.input-group.input-group-lg .twitter-typeahead .tt-hint,textarea.input-group.input-group-lg .twitter-typeahead .tt-input{height:auto}.input-group.input-group-lg .twitter-typeahead:not(:first-child):not(:last-child) .tt-hint,.input-group.input-group-lg .twitter-typeahead:not(:first-child):not(:last-child) .tt-input{border-radius:0}.input-group.input-group-lg .twitter-typeahead:first-child .tt-hint,.input-group.input-group-lg .twitter-typeahead:first-child .tt-input{border-radius:6px 0 0 6px}.input-group.input-group-lg .twitter-typeahead:last-child .tt-hint,.input-group.input-group-lg .twitter-typeahead:last-child .tt-input{border-radius:0 6px 6px 0}.twitter-typeahead{width:100%}.input-group .twitter-typeahead{display:table-cell!important;float:left}.twitter-typeahead .tt-hint{color:#777}.twitter-typeahead .tt-input{z-index:2}.twitter-typeahead .tt-input[disabled],.twitter-typeahead .tt-input[readonly],fieldset[disabled] .twitter-typeahead .tt-input{cursor:not-allowed;background-color:#eee!important}.tt-dropdown-menu{position:absolute;top:100%;left:0;z-index:1000;min-width:160px;width:100%;padding:5px 0;margin:2px 0 0;list-style:none;font-size:14px;background-color:#fff;border:1px solid #ccc;border:1px solid rgba(0,0,0,.15);border-radius:4px;-webkit-box-shadow:0 6px 12px rgba(0,0,0,.175);box-shadow:0 6px 12px rgba(0,0,0,.175)}.tt-dropdown-menu .tt-suggestion{display:block;padding:3px 20px;clear:both;font-weight:400;line-height:1.42857143;color:#333;white-space:nowrap;text-align:left;cursor:pointer!important}.tt-dropdown-menu .tt-suggestion.tt-cursor{text-decoration:none;outline:0;background-color:#f5f5f5;color:#262626}.tt-dropdown-menu .tt-suggestion.tt-cursor a{color:#262626}.tt-dropdown-menu .tt-suggestion p{margin:0} \ No newline at end of file
diff --git a/searx/static/plugins/js/infinite_scroll.js b/searx/static/plugins/js/infinite_scroll.js
index 9cd582d7f..db84a6908 100644
--- a/searx/static/plugins/js/infinite_scroll.js
+++ b/searx/static/plugins/js/infinite_scroll.js
@@ -1,16 +1,22 @@
$(document).ready(function() {
var win = $(window);
win.scroll(function() {
- if ($(document).height() - win.height() == win.scrollTop()) {
+ if ($(document).height() - win.height() - win.scrollTop() < 150) {
var formData = $('#pagination form:last').serialize();
if (formData) {
$('#pagination').html('<div class="loading-spinner"></div>');
- $.post('./', formData, function (data) {
- var body = $(data);
- $('#pagination').remove();
- $('#main_results').append('<hr/>');
- $('#main_results').append(body.find('.result'));
- $('#main_results').append(body.find('#pagination'));
+ $.ajax({
+ type: "POST",
+ url: './',
+ data: formData,
+ dataType: 'html',
+ success: function(data) {
+ var body = $(data);
+ $('#pagination').remove();
+ $('#main_results').append('<hr/>');
+ $('#main_results').append(body.find('.result'));
+ $('#main_results').append(body.find('#pagination'));
+ }
});
}
}
diff --git a/searx/static/plugins/js/vim_hotkeys.js b/searx/static/plugins/js/vim_hotkeys.js
index 13bd070e0..b0f265cb5 100644
--- a/searx/static/plugins/js/vim_hotkeys.js
+++ b/searx/static/plugins/js/vim_hotkeys.js
@@ -125,6 +125,14 @@ $(document).ready(function() {
}
});
+ function nextResult(current, direction) {
+ var next = current[direction]();
+ while (!next.is('.result') && next.length !== 0) {
+ next = next[direction]();
+ }
+ return next
+ }
+
function highlightResult(which) {
return function() {
var current = $('.result[data-vim-selected]');
@@ -157,13 +165,13 @@ $(document).ready(function() {
}
break;
case 'down':
- next = current.next('.result');
+ next = nextResult(current, 'next');
if (next.length === 0) {
next = $('.result:first');
}
break;
case 'up':
- next = current.prev('.result');
+ next = nextResult(current, 'prev');
if (next.length === 0) {
next = $('.result:last');
}
diff --git a/searx/static/themes/courgette/css/style-rtl.css b/searx/static/themes/courgette/css/style-rtl.css
index a725ac1e8..e47453393 100644
--- a/searx/static/themes/courgette/css/style-rtl.css
+++ b/searx/static/themes/courgette/css/style-rtl.css
@@ -1 +1 @@
-.q{padding:.5em 1em .5em 3em}#search_submit{left:0;right:auto}.result .favicon{float:right;margin-left:.5em;margin-right:0}#sidebar{right:auto;left:0}#results{padding:0 32px 0 272px}.search.center{padding-right:0;padding-left:17em}.right{right:auto;left:0}#pagination form+form{float:left;margin-top:-2em}.engine-table{text-align:right} \ No newline at end of file
+#search_submit,#sidebar,.right{right:auto;left:0}.q{padding:.5em 1em .5em 3em}.result .favicon{float:right;margin-left:.5em;margin-right:0}#results{padding:0 32px 0 272px}.search.center{padding-right:0;padding-left:17em}#pagination form+form{float:left;margin-top:-2em}.engine-table{text-align:right} \ No newline at end of file
diff --git a/searx/static/themes/courgette/css/style.css b/searx/static/themes/courgette/css/style.css
index 74fbd2ac9..508c4b605 100644
--- a/searx/static/themes/courgette/css/style.css
+++ b/searx/static/themes/courgette/css/style.css
@@ -1 +1 @@
-*{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}input[type="search"]{-webkit-appearance:textfield}h2{color:#666;text-transform:uppercase}body{font-family:sans-serif;line-height:1.5;margin:0;background:#eee}html{position:relative;min-height:100%}a{color:#666}.title h1{font-size:7em;color:#3498db;margin:0 auto;line-height:100px;margin-top:-20px;padding-bottom:20px}.center{max-width:70em;text-align:center;background:rgba(255,255,255,0.6);padding:2em;margin:7% auto 0;position:relative}.center.search{position:static;width:auto;background:none;margin:auto;padding-top:1.8em}@media screen and (min-width:1001px){.center:after{content:"";z-index:-1;background:url(../img/bg-body-index.jpg) no-repeat;background-size:cover;width:100%;height:100%;top:0;left:0;position:fixed}.center.search:after{content:none}}.autocompleter-choices{position:absolute;margin:0;padding:0;background:#fff}.autocompleter-choices li{padding:.5em 1em}.autocompleter-choices li:hover{background:#3498db;color:#fff;cursor:pointer}#categories{text-align:center}.top_margin{position:absolute;bottom:-3.5em;width:100%;left:0}.top_margin a{display:inline-block;margin-right:1em;color:#fff;text-decoration:none}.top_margin a:hover,.top_margin a:focus{text-decoration:underline}@media screen and (max-width:1000px){.center{background:none}.top_margin a{color:#333}}.checkbox_container{margin-top:1.5em}.checkbox_container label{padding:.5em 1em;color:#333;cursor:pointer;font-size:.9em}.checkbox_container label:hover{background:#3498db;color:#fff}.checkbox_container input[type="checkbox"]{position:absolute;top:-9999px}.checkbox_container input[type="checkbox"]:checked+label{background:#3498db;color:#fff}#categories_container>div{display:inline-block}#categories .hidden{display:none;position:absolute;bottom:1em;left:0;text-align:center;width:100%;font-size:.9em;font-style:italic;color:#333}#categories:hover .hidden{display:block}@media screen and (max-width:900px){#categories_container{letter-spacing:-5px}#categories_container>div{letter-spacing:normal;margin-top:1em}.checkbox_container{margin:0}.checkbox_container label{display:block;background:#ccc;padding:1em;border:1px solid #fff}.top_margin{position:static}#categories .hidden{position:static;display:block}}@media screen and (max-width:900px) and (min-width:501px){#categories_container>div{width:31%;margin-left:2.333%}#categories_container>div:nth-child(3n+1){margin-left:0}}@media screen and (max-width:500px){#categories_container>div{width:48%;margin-left:2%;font-size:.9em}#categories_container>div:nth-child(2n+1){margin-left:0}.title h1{background:url(../img/searx-mobile.png) no-repeat;width:200px;height:39px}}#search_wrapper{position:relative}.q{padding:.5em 3em .5em 1em;width:100%;font-size:1.5em;border:0;color:#666}#search_submit{position:absolute;top:0;right:0;border:0;background:url("../img/search-icon.png") no-repeat scroll center center / 65% auto #3498db;text-indent:-9999px;width:5em;height:100%;cursor:pointer}#search_submit:hover,#search_submit:focus{background-color:#0665a2}#sidebar{background:#3498db;position:fixed;top:0;right:0;width:15em;height:100%;padding:1.5em;text-align:right}.right{position:fixed;bottom:1.5em;width:15em;right:0;z-index:1;padding:0 1.5em;text-align:right}.right a{color:#fff;display:block;text-decoration:none}.right a:hover,.right a:focus{text-decoration:underline}#preferences{background:url("../img/preference-icon.png") no-repeat right center / 12% auto;padding-right:1.8em}#search_url input{border:0;padding:.5em}#sidebar>div{margin-bottom:1em;color:#fff}#sidebar form{display:inline-block}#sidebar input[type="submit"]{background:#ccc;border:0;padding:.5em 1em;cursor:pointer;margin-top:.5em}#sidebar input[type="submit"]:hover,#sidebar input[type="submit"]:focus{color:#fff;background-color:#0665a2}#results{padding-right:17em;padding-left:2em;padding:0 17em 0 2em}.result p{font-size:.9em}.result .content{margin:0;color:#666}.result .url{margin-top:0;color:#ff6530}.result .favicon{float:left;position:relative;top:.5em;margin-right:.5em}.definition_result{background:#ccc;padding:1em}.definition_result .result_title,.definition_result p{margin:0}.result_title{margin-bottom:0;font-weight:normal}.highlight{font-weight:bold}.result_title a{color:#3498db;text-decoration:none}.result_title a:hover,.result_title a:focus{text-decoration:underline}.cache_link{color:#666;font-size:.9em;font-style:italic}.search.center{padding-right:17em}#answers{border:2px solid #3498db;padding:20px;color:#666;text-align:center;max-width:70em;margin:0 auto 20px}#suggestions{margin-bottom:1em}#suggestions span{color:#666}#suggestions form{display:inline-block;vertical-align:top;margin-bottom:.5em}#suggestions input[type="submit"]{color:#333;padding:.5em 1em;border:0;background:#ccc;cursor:pointer}#suggestions input[type="submit"]:hover,#suggestions input[type="submit"]:focus{background:#3498db;color:#fff}#pagination{margin:1.5em 0 2em}#pagination form+form{float:right;margin-top:-2em}input[type="submit"]{display:inline-block;background:#3498db;color:#fff;border:0;padding:.6em 1em;cursor:pointer}input[type="submit"]:hover,input[type="submit"]:focus{background:#0665a2}.row{max-width:60em;margin:auto}.row a{color:#3498db}.row form{letter-spacing:-5px}.row form>*{letter-spacing:normal}.row p{margin:0}.row fieldset{display:inline-block;width:48%;vertical-align:top}.row fieldset:last-of-type{display:block;width:auto;background:none;padding:0}.row fieldset:nth-child(odd){margin-right:2%}.row fieldset:nth-child(2){min-height:10.5em}@media screen and (max-width:900px){.row{margin:0 1em}.row fieldset{width:49%}.row fieldset,.row fieldset:nth-child(odd){margin-right:0}.row fieldset:first-child{width:100%;margin-right:0}.row fieldset:nth-child(even){margin-right:2%}}@media screen and (max-width:800px){.row fieldset{width:100%}select{width:100%}table{font-size:.8em}.right{display:none}#sidebar{display:none}#results{padding:0 2em}.search.center{padding-right:2em}}@media screen and (max-width:400px){.row #categories_container>div{width:100%;margin-left:0}}fieldset{border:0;margin:1em 0;background:#ccc;padding:1.5em}table{width:100%;text-align:left;border:1px solid #ccc;border-collapse:collapse}table th{background:#999;color:#fff}table tr:nth-child(odd){background:#ccc}table th,table td{padding:.5em 1em;border:1px solid #fff}.engine_checkbox label{padding:.5em;background:#3498db;color:#fff;cursor:pointer}.engine_checkbox .deny{background:#3498db}.engine_checkbox .allow{display:none;background:#666}.engine_checkbox input{display:none}.engine_checkbox input:checked+.allow{display:inline}.engine_checkbox input:checked+.allow+.deny{display:none}.row input[type="submit"]{font-size:1em;margin:1em 0 2em}.row .right{position:static;display:inline-block}.row .right a{color:#333;width:auto;text-align:left;padding:0}.small_font{font-size:.8em}table th{padding:1em}legend{background:#eee;padding:0 1em;position:relative}select{border:1px solid #ddd;padding:.5em .8em;font-size:1em}.highlight .hll{background-color:#ffc}.highlight{background:#f8f8f8}.highlight .c{color:#408080;font-style:italic}.highlight .err{border:1px solid #f00}.highlight .k{color:#008000;font-weight:bold}.highlight .o{color:#666}.highlight .cm{color:#408080;font-style:italic}.highlight .cp{color:#bc7a00}.highlight .c1{color:#408080;font-style:italic}.highlight .cs{color:#408080;font-style:italic}.highlight .gd{color:#a00000}.highlight .ge{font-style:italic}.highlight .gr{color:#f00}.highlight .gh{color:#000080;font-weight:bold}.highlight .gi{color:#00a000}.highlight .go{color:#888}.highlight .gp{color:#000080;font-weight:bold}.highlight .gs{font-weight:bold}.highlight .gu{color:#800080;font-weight:bold}.highlight .gt{color:#04d}.highlight .kc{color:#008000;font-weight:bold}.highlight .kd{color:#008000;font-weight:bold}.highlight .kn{color:#008000;font-weight:bold}.highlight .kp{color:#008000}.highlight .kr{color:#008000;font-weight:bold}.highlight .kt{color:#b00040}.highlight .m{color:#666}.highlight .s{color:#ba2121}.highlight .na{color:#7d9029}.highlight .nb{color:#008000}.highlight .nc{color:#00f;font-weight:bold}.highlight .no{color:#800}.highlight .nd{color:#a2f}.highlight .ni{color:#999;font-weight:bold}.highlight .ne{color:#d2413a;font-weight:bold}.highlight .nf{color:#00f}.highlight .nl{color:#a0a000}.highlight .nn{color:#00f;font-weight:bold}.highlight .nt{color:#008000;font-weight:bold}.highlight .nv{color:#19177c}.highlight .ow{color:#a2f;font-weight:bold}.highlight .w{color:#bbb}.highlight .mf{color:#666}.highlight .mh{color:#666}.highlight .mi{color:#666}.highlight .mo{color:#666}.highlight .sb{color:#ba2121}.highlight .sc{color:#ba2121}.highlight .sd{color:#ba2121;font-style:italic}.highlight .s2{color:#ba2121}.highlight .se{color:#b62;font-weight:bold}.highlight .sh{color:#ba2121}.highlight .si{color:#b68;font-weight:bold}.highlight .sx{color:#008000}.highlight .sr{color:#b68}.highlight .s1{color:#ba2121}.highlight .ss{color:#19177c}.highlight .bp{color:#008000}.highlight .vc{color:#19177c}.highlight .vg{color:#19177c}.highlight .vi{color:#19177c}.highlight .il{color:#666}.highlight pre{overflow:auto}.highlight .lineno{-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}.highlight .lineno::selection{background:transparent}.highlight .lineno::-moz-selection{background:transparent} \ No newline at end of file
+a,h2{color:#666}.center,html{position:relative}#categories_container>div,.top_margin a{display:inline-block}#categories,.center{text-align:center}#categories .hidden,.cache_link,.highlight .c,.highlight .cm,.highlight .ge,.highlight .sd{font-style:italic}*{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}input[type=search]{-webkit-appearance:textfield}h2{text-transform:uppercase}body{font-family:sans-serif;line-height:1.5;margin:0;background:#EEE}html{min-height:100%}.title h1{font-size:7em;color:#3498DB;margin:-20px auto 0;line-height:100px;padding-bottom:20px}.center{max-width:70em;background:rgba(255,255,255,.6);padding:2em;margin:7% auto 0}.center.search{position:static;width:auto;background:0 0;margin:auto;padding-top:1.8em}@media screen and (min-width:1001px){.center:after{content:"";z-index:-1;background:url(../img/bg-body-index.jpg) no-repeat;background-size:cover;width:100%;height:100%;top:0;left:0;position:fixed}.center.search:after{content:none}}.autocompleter-choices{position:absolute;margin:0;padding:0;background:#FFF}.autocompleter-choices li{padding:.5em 1em}.autocompleter-choices li:hover{background:#3498DB;color:#FFF;cursor:pointer}.top_margin{position:absolute;bottom:-3.5em;width:100%;left:0}.top_margin a{margin-right:1em;color:#FFF;text-decoration:none}.top_margin a:focus,.top_margin a:hover{text-decoration:underline}@media screen and (max-width:1000px){.center{background:0 0}.top_margin a{color:#333}}.checkbox_container{margin-top:1.5em}.checkbox_container label{padding:.5em 1em;color:#333;cursor:pointer;font-size:.9em}.checkbox_container input[type=checkbox]:checked+label,.checkbox_container label:hover{background:#3498DB;color:#FFF}.checkbox_container input[type=checkbox]{position:absolute;top:-9999px}#categories .hidden{display:none;position:absolute;bottom:1em;left:0;text-align:center;width:100%;font-size:.9em;color:#333}#categories:hover .hidden,.right a{display:block}@media screen and (max-width:900px){#categories_container{letter-spacing:-5px}#categories_container>div{letter-spacing:normal;margin-top:1em}.checkbox_container{margin:0}.checkbox_container label{display:block;background:#CCC;padding:1em;border:1px solid #FFF}.top_margin{position:static}#categories .hidden{position:static;display:block}}@media screen and (max-width:900px) and (min-width:501px){#categories_container>div{width:31%;margin-left:2.333%}#categories_container>div:nth-child(3n+1){margin-left:0}}@media screen and (max-width:500px){#categories_container>div{width:48%;margin-left:2%;font-size:.9em}#categories_container>div:nth-child(2n+1){margin-left:0}.title h1{background:url(../img/searx-mobile.png) no-repeat;width:200px;height:39px}}#search_wrapper{position:relative}.q{padding:.5em 3em .5em 1em;width:100%;font-size:1.5em;border:0;color:#666}.cache_link,.result p{font-size:.9em}#search_submit{position:absolute;top:0;right:0;border:0;background:url(../img/search-icon.png) center center/65% auto no-repeat #3498DB;text-indent:-9999px;width:5em;height:100%;cursor:pointer}#sidebar,.right{position:fixed;width:15em;right:0;text-align:right}#search_submit:focus,#search_submit:hover{background-color:#0665A2}#sidebar{background:#3498DB;top:0;height:100%;padding:1.5em}.right{bottom:1.5em;z-index:1;padding:0 1.5em}.right a{color:#FFF;text-decoration:none}#sidebar form,#suggestions form,.row fieldset{display:inline-block}.right a:focus,.right a:hover{text-decoration:underline}#preferences{background:url(../img/preference-icon.png) right center/12% auto no-repeat;padding-right:1.8em}#search_url input{border:0;padding:.5em}#sidebar>div{margin-bottom:1em;color:#FFF}#sidebar input[type=submit]{background:#CCC;border:0;padding:.5em 1em;cursor:pointer;margin-top:.5em}#sidebar input[type=submit]:focus,#sidebar input[type=submit]:hover{color:#FFF;background-color:#0665A2}#results{padding:0 17em 0 2em}.result .engines{text-align:right}.result .content{margin:0;color:#666}.result .url{margin-top:0;color:#FF6530}.result .favicon{float:left;position:relative;top:.5em;margin-right:.5em}.definition_result{background:#CCC;padding:1em}.definition_result .result_title,.definition_result p{margin:0}.result_title{margin-bottom:0;font-weight:400}.result_title a{color:#3498DB;text-decoration:none}#answers,#suggestions span{color:#666}.result_title a:focus,.result_title a:hover{text-decoration:underline}.cache_link{color:#666}.search.center{padding-right:17em}#answers{border:2px solid #3498DB;padding:20px;text-align:center;max-width:70em;margin:0 auto 20px}#suggestions{margin-bottom:1em}#suggestions form{vertical-align:top;margin-bottom:.5em}#suggestions input[type=submit]{color:#333;padding:.5em 1em;border:0;background:#CCC;cursor:pointer}#suggestions input[type=submit]:focus,#suggestions input[type=submit]:hover{background:#3498DB;color:#FFF}#pagination{margin:1.5em 0 2em}#pagination form+form{float:right;margin-top:-2em}input[type=submit]{display:inline-block;background:#3498DB;color:#FFF;border:0;padding:.6em 1em;cursor:pointer}input[type=submit]:focus,input[type=submit]:hover{background:#0665A2}.row{max-width:60em;margin:auto}.row a{color:#3498DB}.row form{letter-spacing:-5px}.row form>*{letter-spacing:normal}.row p{margin:0}.row fieldset{width:48%;vertical-align:top}.row fieldset:last-of-type{display:block;width:auto;background:0 0;padding:0}fieldset,table tr:nth-child(odd){background:#CCC}.row fieldset:nth-child(odd){margin-right:2%}.row fieldset:nth-child(2){min-height:10.5em}@media screen and (max-width:900px){.row{margin:0 1em}.row fieldset{width:49%}.row fieldset,.row fieldset:nth-child(odd){margin-right:0}.row fieldset:first-child{width:100%;margin-right:0}.row fieldset:nth-child(even){margin-right:2%}}@media screen and (max-width:800px){.row fieldset,select{width:100%}table{font-size:.8em}#sidebar,.right{display:none}#results{padding:0 2em}.search.center{padding-right:2em}}@media screen and (max-width:400px){.row #categories_container>div{width:100%;margin-left:0}}fieldset{border:0;margin:1em 0;padding:1.5em}table{width:100%;text-align:left;border:1px solid #CCC;border-collapse:collapse}table th{background:#999;color:#FFF}table td,table th{padding:.5em 1em;border:1px solid #FFF}.engine_checkbox label{padding:.5em;background:#3498DB;color:#FFF;cursor:pointer}.engine_checkbox .deny{background:#3498DB}.engine_checkbox .allow{display:none;background:#666}.engine_checkbox input{display:none}.engine_checkbox input:checked+.allow{display:inline}.engine_checkbox input:checked+.allow+.deny{display:none}.row input[type=submit]{font-size:1em;margin:1em 0 2em}.row .right{position:static;display:inline-block}.row .right a{color:#333;width:auto;text-align:left;padding:0}.small_font{font-size:.8em}table th{padding:1em}legend{background:#EEE;padding:0 1em;position:relative}select{border:1px solid #DDD;padding:.5em .8em;font-size:1em}.highlight .hll{background-color:#ffc}.highlight{font-weight:700;background:#f8f8f8}.highlight .c{color:#408080}.highlight .err{border:1px solid red}.highlight .k{color:green;font-weight:700}.highlight .o{color:#666}.highlight .cm{color:#408080}.highlight .cp{color:#BC7A00}.highlight .c1,.highlight .cs{color:#408080;font-style:italic}.highlight .gd{color:#A00000}.highlight .gr{color:red}.highlight .gh{color:navy;font-weight:700}.highlight .gi{color:#00A000}.highlight .go{color:#888}.highlight .gp{color:navy;font-weight:700}.highlight .gs{font-weight:700}.highlight .gu{color:purple;font-weight:700}.highlight .gt{color:#04D}.highlight .kc,.highlight .kd,.highlight .kn{color:green;font-weight:700}.highlight .kp{color:green}.highlight .kr{color:green;font-weight:700}.highlight .kt{color:#B00040}.highlight .m{color:#666}.highlight .s{color:#BA2121}.highlight .na{color:#7D9029}.highlight .nb{color:green}.highlight .nc{color:#00F;font-weight:700}.highlight .no{color:#800}.highlight .nd{color:#A2F}.highlight .ni{color:#999;font-weight:700}.highlight .ne{color:#D2413A;font-weight:700}.highlight .nf{color:#00F}.highlight .nl{color:#A0A000}.highlight .nn{color:#00F;font-weight:700}.highlight .nt{color:green;font-weight:700}.highlight .nv{color:#19177C}.highlight .ow{color:#A2F;font-weight:700}.highlight .w{color:#bbb}.highlight .mf,.highlight .mh,.highlight .mi,.highlight .mo{color:#666}.highlight .s2,.highlight .sb,.highlight .sc{color:#BA2121}.highlight .sd{color:#BA2121}.highlight .se{color:#B62;font-weight:700}.highlight .sh{color:#BA2121}.highlight .si{color:#B68;font-weight:700}.highlight .sx{color:green}.highlight .sr{color:#B68}.highlight .s1{color:#BA2121}.highlight .ss{color:#19177C}.highlight .bp{color:green}.highlight .vc,.highlight .vg,.highlight .vi{color:#19177C}.highlight .il{color:#666}.highlight pre{overflow:auto}.highlight .lineno{-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}.highlight .lineno::selection{background:0 0}.highlight .lineno::-moz-selection{background:0 0} \ No newline at end of file
diff --git a/searx/static/themes/courgette/less/style.less b/searx/static/themes/courgette/less/style.less
index 0387af5c0..26da72812 100644
--- a/searx/static/themes/courgette/less/style.less
+++ b/searx/static/themes/courgette/less/style.less
@@ -325,6 +325,10 @@ a {
font-size: 0.9em;
}
+.result .engines {
+ text-align: right;
+}
+
.result .content {
margin: 0;
color: #666;
diff --git a/searx/static/themes/legacy/css/style.css b/searx/static/themes/legacy/css/style.css
index 71422bc94..ca746a369 100644
--- a/searx/static/themes/legacy/css/style.css
+++ b/searx/static/themes/legacy/css/style.css
@@ -1 +1 @@
-.highlight .hll{background-color:#ffc}.highlight{background:#f8f8f8}.highlight .c{color:#408080;font-style:italic}.highlight .err{border:1px solid #f00}.highlight .k{color:#008000;font-weight:bold}.highlight .o{color:#666}.highlight .cm{color:#408080;font-style:italic}.highlight .cp{color:#bc7a00}.highlight .c1{color:#408080;font-style:italic}.highlight .cs{color:#408080;font-style:italic}.highlight .gd{color:#a00000}.highlight .ge{font-style:italic}.highlight .gr{color:#f00}.highlight .gh{color:#000080;font-weight:bold}.highlight .gi{color:#00a000}.highlight .go{color:#888}.highlight .gp{color:#000080;font-weight:bold}.highlight .gs{font-weight:bold}.highlight .gu{color:#800080;font-weight:bold}.highlight .gt{color:#04d}.highlight .kc{color:#008000;font-weight:bold}.highlight .kd{color:#008000;font-weight:bold}.highlight .kn{color:#008000;font-weight:bold}.highlight .kp{color:#008000}.highlight .kr{color:#008000;font-weight:bold}.highlight .kt{color:#b00040}.highlight .m{color:#666}.highlight .s{color:#ba2121}.highlight .na{color:#7d9029}.highlight .nb{color:#008000}.highlight .nc{color:#00f;font-weight:bold}.highlight .no{color:#800}.highlight .nd{color:#a2f}.highlight .ni{color:#999;font-weight:bold}.highlight .ne{color:#d2413a;font-weight:bold}.highlight .nf{color:#00f}.highlight .nl{color:#a0a000}.highlight .nn{color:#00f;font-weight:bold}.highlight .nt{color:#008000;font-weight:bold}.highlight .nv{color:#19177c}.highlight .ow{color:#a2f;font-weight:bold}.highlight .w{color:#bbb}.highlight .mf{color:#666}.highlight .mh{color:#666}.highlight .mi{color:#666}.highlight .mo{color:#666}.highlight .sb{color:#ba2121}.highlight .sc{color:#ba2121}.highlight .sd{color:#ba2121;font-style:italic}.highlight .s2{color:#ba2121}.highlight .se{color:#b62;font-weight:bold}.highlight .sh{color:#ba2121}.highlight .si{color:#b68;font-weight:bold}.highlight .sx{color:#008000}.highlight .sr{color:#b68}.highlight .s1{color:#ba2121}.highlight .ss{color:#19177c}.highlight .bp{color:#008000}.highlight .vc{color:#19177c}.highlight .vg{color:#19177c}.highlight .vi{color:#19177c}.highlight .il{color:#666}.highlight pre{overflow:auto}.highlight .lineno{-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}.highlight .lineno::selection{background:transparent}.highlight .lineno::-moz-selection{background:transparent}html{font-family:sans-serif;font-size:.9em;-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%;-moz-text-size-adjust:100%;text-size-adjust:100%;color:#444;padding:0;margin:0}body,#container{padding:0;margin:0}#container{width:100%;position:absolute;top:0}.search{padding:0;margin:0}.search .checkbox_container label{font-size:.9em;border-bottom:2px solid #e8e7e6}.search .checkbox_container label:hover{border-bottom:2px solid #3498db}.search .checkbox_container input[type="checkbox"]:checked+label{border-bottom:2px solid #2980b9}#search_wrapper{position:relative;width:50em;padding:10px}.center #search_wrapper{margin-left:auto;margin-right:auto}.q{background:none repeat scroll 0 0 #fff;border:1px solid #3498db;color:#222;font-size:16px;height:28px;margin:0;outline:medium none;padding:2px;padding-left:8px;padding-right:0 !important;width:100%;z-index:2}#search_submit{position:absolute;top:13px;right:1px;padding:0;border:0;background:url('../img/search-icon.png') no-repeat;background-size:24px 24px;opacity:.8;width:24px;height:30px;font-size:0}@media screen and (max-width:50em){#search_wrapper{width:90%;clear:both;overflow:hidden}}ul.autocompleter-choices{position:absolute;margin:0;padding:0;list-style:none;border:1px solid #3498db;border-left-color:#3498db;border-right-color:#3498db;border-bottom-color:#3498db;text-align:left;font-family:Verdana,Geneva,Arial,Helvetica,sans-serif;z-index:50;background-color:#fff;color:#444}ul.autocompleter-choices li{position:relative;margin:-2px 0 0 0;padding:.2em 1.5em .2em 1em;display:block;float:none !important;cursor:pointer;font-weight:normal;white-space:nowrap;font-size:1em;line-height:1.5em}ul.autocompleter-choices li.autocompleter-selected{background-color:#444;color:#fff}ul.autocompleter-choices li.autocompleter-selected span.autocompleter-queried{color:#9fcfff}ul.autocompleter-choices span.autocompleter-queried{display:inline;float:none;font-weight:bold;margin:0;padding:0}.row{max-width:800px;margin:20px auto;text-align:justify}.row h1{font-size:3em;margin-top:50px}.row p{padding:0 10px;max-width:700px}.row h3,.row ul{margin:4px 8px}.hmarg{margin:0 20px;border:1px solid #3498db;padding:4px 10px}a:link.hmarg{color:#3498db}a:visited.hmarg{color:#3498db}a:active.hmarg{color:#3498db}a:hover.hmarg{color:#3498db}.top_margin{margin-top:60px}.center{text-align:center}h1{font-size:5em}div.title{background:url('../img/searx.png') no-repeat;width:100%;min-height:80px;background-position:center}div.title h1{visibility:hidden}input[type="submit"]{padding:2px 6px;margin:2px 4px;display:inline-block;background:#3498db;color:#fff;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;border:0;cursor:pointer}input[type="checkbox"]{visibility:hidden}fieldset{margin:8px;border:1px solid #3498db}#categories{margin:0 10px;-webkit-touch-callout:none;-webkit-user-select:none;-khtml-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.checkbox_container{display:inline-block;position:relative;margin:0 3px;padding:0}.checkbox_container input{display:none}.checkbox_container label,.engine_checkbox label{cursor:pointer;padding:4px 10px;margin:0;display:block;text-transform:capitalize;-webkit-touch-callout:none;-webkit-user-select:none;-khtml-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.checkbox_container input[type="checkbox"]:checked+label{background:#3498db;color:#fff}.engine_checkbox{padding:4px}label.allow{background:#e74c3c;padding:4px 8px;color:#fff;display:none}label.deny{background:#2ecc71;padding:4px 8px;color:#444;display:inline}.engine_checkbox input[type="checkbox"]:checked+label:nth-child(2)+label{display:none}.engine_checkbox input[type="checkbox"]:checked+label.allow{display:inline}a{text-decoration:none;color:#1a11be}a:visited{color:#8e44ad}.result{margin:19px 0 18px 0;padding:0;clear:both}.result_title{margin-bottom:0}.result_title a{color:#2980b9;font-weight:normal;font-size:1.1em}.result_title a:hover{text-decoration:underline}.result_title a:visited{color:#8e44ad}.cache_link{font-size:10px !important}.result h3{font-size:1em;word-wrap:break-word;margin:5px 0 1px 0;padding:0}.result .content{font-size:.8em;margin:0;padding:0;max-width:54em;word-wrap:break-word;line-height:1.24}.result .content img{float:left;margin-right:5px;max-width:200px;max-height:100px}.result .content br.last{clear:both}.result .url{font-size:.8em;margin:0 0 3px 0;padding:0;max-width:54em;word-wrap:break-word;color:#c0392b}.result .published_date{font-size:.8em;color:#888;Margin:5px 20px}.result .thumbnail{width:400px}.engines{color:#888}.small_font{font-size:.8em}.small p{margin:2px 0}.right{float:right}.invisible{display:none}.left{float:left}.highlight{color:#094089}.content .highlight{color:#000}.image_result{display:inline-block;margin:10px 10px;position:relative;max-height:160px}.image_result img{border:0;max-height:160px}.image_result p{margin:0;padding:0}.image_result p span a{display:none;color:#fff}.image_result p:hover span a{display:block;position:absolute;bottom:0;right:0;padding:4px;background-color:rgba(0,0,0,0.6);font-size:.7em}.torrent_result{border-left:10px solid lightgray;padding-left:3px}.torrent_result p{margin:3px;font-size:.8em}.torrent_result a{color:#2980b9}.torrent_result a:hover{text-decoration:underline}.torrent_result a:visited{color:#8e44ad}.definition_result{border-left:10px solid gray;padding-left:3px}.percentage{position:relative;width:300px}.percentage div{background:#444}table{width:100%}td{padding:0 4px}tr:hover{background:#ddd}#results{margin:auto;padding:0;width:50em;margin-bottom:20px}#sidebar{position:fixed;bottom:10px;left:10px;margin:0 2px 5px 5px;padding:0 2px 2px 2px;width:14em}#sidebar input{padding:0;margin:3px;font-size:.8em;display:inline-block;background:transparent;color:#444;cursor:pointer}#sidebar input[type="submit"]{text-decoration:underline}#suggestions form{display:inline}#suggestions,#answers{margin-top:20px;max-width:45em}#suggestions input,#answers input,#infoboxes input{padding:0;margin:3px;font-size:.8em;display:inline-block;background:transparent;color:#444;cursor:pointer}#suggestions input[type="submit"],#answers input[type="submit"],#infoboxes input[type="submit"]{text-decoration:underline}#suggestions-title{color:#888}#answers{border:2px solid #2980b9;padding:20px}#answers form,#infoboxes form{min-width:210px}#infoboxes{position:absolute;top:100px;right:20px;margin:0 2px 5px 5px;padding:0 2px 2px;max-width:21em;word-wrap:break-word;}#infoboxes .infobox{margin:10px 0 10px;border:1px solid #ddd;padding:5px;font-size:.8em}#infoboxes .infobox img{max-width:90%;max-heigt:12em;display:block;margin:5px;padding:5px}#infoboxes .infobox h2{margin:0}#infoboxes .infobox table{table-layout:fixed;}#infoboxes .infobox table td{vertical-align:top}#infoboxes .infobox input{font-size:1em}#infoboxes .infobox br{clear:both}#search_url{margin-top:8px}#search_url input{border:1px solid #888;padding:4px;color:#444;width:14em;display:block;margin:4px;font-size:.8em}#preferences{top:10px;padding:0;border:0;background:url('../img/preference-icon.png') no-repeat;background-size:28px 28px;opacity:.8;width:28px;height:30px;display:block}#preferences *{display:none}#pagination{clear:both}#pagination br{clear:both}#apis{margin-top:8px;clear:both}#categories_container{position:relative}@media screen and (max-width:50em){#results{margin:auto;padding:0;width:90%}.github{display:none}.checkbox_container{display:block;width:90%}.checkbox_container label{border-bottom:0}.preferences_container{display:none;postion:fixed !important;top:100px;right:0}}@media screen and (max-width:75em){div.title h1{font-size:1em}html.touch #categories{width:95%;height:30px;text-align:left;overflow-x:scroll;overflow-y:hidden;-webkit-overflow-scrolling:touch}html.touch #categories #categories_container{width:1000px;width:-moz-max-content;width:-webkit-max-content;width:max-content}html.touch #categories #categories_container .checkbox_container{display:inline-block;width:auto}#categories{font-size:90%;clear:both}#categories .checkbox_container{margin-top:2px;margin:auto}#suggestions,#answers{margin-top:5px}#infoboxes{position:inherit;max-width:inherit}#infoboxes .infobox{clear:both}#infoboxes .infobox img{float:left;max-width:10em}#categories{font-size:90%;clear:both}#categories .checkbox_container{margin-top:2px;margin:auto}#sidebar{position:static;max-width:50em;margin:0 0 2px 0;padding:0;float:none;border:none;width:auto}#sidebar input{border:0}#apis{display:none}#search_url{display:none}.result{border-top:1px solid #e8e7e6;margin:8px 0 8px 0}.result .thumbnail{max-width:98%}.image_result{max-width:98%}.image_result img{max-width:98%}}.favicon{float:left;margin-right:4px;margin-top:2px}.preferences_back{background:none repeat scroll 0 0 #3498db;border:0 none;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;cursor:pointer;display:inline-block;margin:2px 4px;padding:4px 6px}.preferences_back a{color:#fff}.hidden{opacity:0;overflow:hidden;font-size:.8em;position:absolute;bottom:-20px;width:100%;text-position:center;background:white;transition:opacity 1s ease}#categories_container:hover .hidden{transition:opacity 1s ease;opacity:.8}
+.highlight .c,.highlight .cm,.highlight .ge,.highlight .sd{font-style:italic}#categories,.highlight .lineno{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none}#container,.search,body,html{padding:0;margin:0}div.title h1,input[type=checkbox]{visibility:hidden}#categories,.checkbox_container label,.engine_checkbox label,.highlight .lineno{-webkit-touch-callout:none;-khtml-user-select:none}#answers input[type=submit],#infoboxes input[type=submit],#sidebar input[type=submit],#suggestions input[type=submit],.result_title a:hover,.torrent_result a:hover{text-decoration:underline}#infoboxes,.result .content,.result .url,.result h3{word-wrap:break-word}#apis,#infoboxes .infobox br,#pagination,#pagination br,.result,.result .content br.last{clear:both}.highlight .hll{background-color:#ffc}.highlight{background:#f8f8f8}.highlight .c{color:#408080}.highlight .err{border:1px solid red}.highlight .k{color:green;font-weight:700}.highlight .o{color:#666}.highlight .cm{color:#408080}.highlight .cp{color:#BC7A00}.highlight .c1,.highlight .cs{color:#408080;font-style:italic}.highlight .gd{color:#A00000}.highlight .gr{color:red}.highlight .gh{color:navy;font-weight:700}.highlight .gi{color:#00A000}.highlight .go{color:#888}.highlight .gp{color:navy;font-weight:700}.highlight .gs{font-weight:700}.highlight .gu{color:purple;font-weight:700}.highlight .gt{color:#04D}.highlight .kc,.highlight .kd,.highlight .kn{color:green;font-weight:700}.highlight .kp{color:green}.highlight .kr{color:green;font-weight:700}.highlight .kt{color:#B00040}.highlight .m{color:#666}.highlight .s{color:#BA2121}.highlight .na{color:#7D9029}.highlight .nb{color:green}.highlight .nc{color:#00F;font-weight:700}.highlight .no{color:#800}.highlight .nd{color:#A2F}.highlight .ni{color:#999;font-weight:700}.highlight .ne{color:#D2413A;font-weight:700}.highlight .nf{color:#00F}.highlight .nl{color:#A0A000}.highlight .nn{color:#00F;font-weight:700}.highlight .nt{color:green;font-weight:700}.highlight .nv{color:#19177C}.highlight .ow{color:#A2F;font-weight:700}.highlight .w{color:#bbb}.highlight .mf,.highlight .mh,.highlight .mi,.highlight .mo{color:#666}.highlight .s2,.highlight .sb,.highlight .sc{color:#BA2121}.highlight .sd{color:#BA2121}.highlight .se{color:#B62;font-weight:700}.highlight .sh{color:#BA2121}.highlight .si{color:#B68;font-weight:700}.highlight .sx{color:green}.highlight .sr{color:#B68}.highlight .s1{color:#BA2121}.highlight .ss{color:#19177C}.highlight .bp{color:green}.highlight .vc,.highlight .vg,.highlight .vi{color:#19177C}.highlight .il{color:#666}.highlight pre{overflow:auto}.highlight .lineno{user-select:none;cursor:default}.highlight .lineno::selection{background:0 0}.highlight .lineno::-moz-selection{background:0 0}html{font-family:sans-serif;font-size:.9em;-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%;-moz-text-size-adjust:100%;text-size-adjust:100%;color:#444}#container{width:100%;position:absolute;top:0}.search .checkbox_container label{font-size:.9em;border-bottom:2px solid #E8E7E6}.search .checkbox_container label:hover{border-bottom:2px solid #3498DB}.search .checkbox_container input[type=checkbox]:checked+label{border-bottom:2px solid #2980B9}#search_wrapper{position:relative;width:50em;padding:10px}.center #search_wrapper{margin-left:auto;margin-right:auto}.q,ul.autocompleter-choices{margin:0;border:1px solid #3498DB}.q{background:#FFF;color:#222;font-size:16px;height:28px;outline:0;padding:2px 2px 2px 8px;padding-right:0!important;width:100%;z-index:2}#search_submit{position:absolute;top:13px;right:1px;padding:0;border:0;background:url(../img/search-icon.png) no-repeat;background-size:24px 24px;opacity:.8;width:24px;height:30px;font-size:0}@media screen and (max-width:50em){#search_wrapper{width:90%;clear:both;overflow:hidden}}ul.autocompleter-choices{position:absolute;padding:0;list-style:none;border-left-color:#3498DB;border-right-color:#3498DB;border-bottom-color:#3498DB;text-align:left;font-family:Verdana,Geneva,Arial,Helvetica,sans-serif;z-index:50;background-color:#FFF;color:#444}ul.autocompleter-choices li{position:relative;margin:-2px 0 0;padding:.2em 1.5em .2em 1em;display:block;float:none!important;cursor:pointer;font-weight:400;white-space:nowrap;font-size:1em;line-height:1.5em}ul.autocompleter-choices li.autocompleter-selected{background-color:#444;color:#FFF}ul.autocompleter-choices li.autocompleter-selected span.autocompleter-queried{color:#9FCFFF}ul.autocompleter-choices span.autocompleter-queried{display:inline;float:none;font-weight:700;margin:0;padding:0}.row{max-width:800px;margin:20px auto;text-align:justify}.row h1{font-size:3em;margin-top:50px}.row p{padding:0 10px;max-width:700px}.row h3,.row ul{margin:4px 8px}.hmarg{margin:0 20px;border:1px solid #3498DB;padding:4px 10px}a:active.hmarg,a:hover.hmarg,a:link.hmarg,a:visited.hmarg{color:#3498DB}.top_margin{margin-top:60px}.center{text-align:center}h1{font-size:5em}div.title{background:url(../img/searx.png) center no-repeat;width:100%;min-height:80px}input[type=submit]{padding:2px 6px;margin:2px 4px;display:inline-block;background:#3498DB;color:#FFF;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;border:0;cursor:pointer}fieldset{margin:8px;border:1px solid #3498DB}#categories{margin:0 10px;user-select:none}.checkbox_container{display:inline-block;position:relative;margin:0 3px;padding:0}.checkbox_container input{display:none}.checkbox_container label,.engine_checkbox label{cursor:pointer;padding:4px 10px;margin:0;display:block;text-transform:capitalize;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.checkbox_container input[type=checkbox]:checked+label{background:#3498DB;color:#FFF}.engine_checkbox{padding:4px}label.allow{background:#E74C3C;padding:4px 8px;color:#FFF;display:none}label.deny{background:#2ECC71;padding:4px 8px;color:#444;display:inline}.engine_checkbox input[type=checkbox]:checked+label:nth-child(2)+label{display:none}.engine_checkbox input[type=checkbox]:checked+label.allow{display:inline}a{text-decoration:none;color:#1a11be}a:visited{color:#8E44AD}.result{margin:19px 0 18px;padding:0}.result_title{margin-bottom:0}.result_title a{color:#2980B9;font-weight:400;font-size:1.1em}.result_title a:visited{color:#8E44AD}.cache_link{font-size:10px!important}.result h3{font-size:1em;margin:5px 0 1px;padding:0}.result .content,.result .url,.small_font{font-size:.8em}.result .content{margin:0;padding:0;max-width:54em;line-height:1.24}.result .content img{float:left;margin-right:5px;max-width:200px;max-height:100px}.result .url{margin:0 0 3px;padding:0;max-width:54em;color:#C0392B}.result .published_date{font-size:.8em;color:#888;Margin:5px 20px}.result .thumbnail{width:400px}.engines{color:#888}.small p{margin:2px 0}.right{float:right}.invisible{display:none}.left{float:left}.highlight{color:#094089}.content .highlight{color:#000}.image_result{display:inline-block;margin:10px;position:relative;max-height:160px}.image_result img{border:0;max-height:160px}.image_result p{margin:0;padding:0}.image_result p span a{display:none;color:#FFF}.image_result p:hover span a{display:block;position:absolute;bottom:0;right:0;padding:4px;background-color:rgba(0,0,0,.6);font-size:.7em}#categories_container,.percentage{position:relative}.torrent_result{border-left:10px solid #d3d3d3;padding-left:3px}.torrent_result p{margin:3px;font-size:.8em}.torrent_result a{color:#2980B9}.torrent_result a:visited{color:#8E44AD}.definition_result{border-left:10px solid gray;padding-left:3px}.percentage{width:300px}.percentage div{background:#444}table{width:100%}.result-table{margin-bottom:10px}#infoboxes,#sidebar{margin:0 2px 5px 5px;padding:0 2px 2px}td{padding:0 4px}tr:hover{background:#DDD}#results{margin:auto auto 20px;padding:0;width:50em}#sidebar{position:fixed;bottom:10px;left:10px;width:14em}#answers input,#infoboxes input,#sidebar input,#suggestions input{padding:0;margin:3px;font-size:.8em;display:inline-block;background:0 0;color:#444;cursor:pointer}#suggestions form{display:inline}#answers,#suggestions{margin-top:20px;max-width:45em}#suggestions-title{color:#888}#answers{border:2px solid #2980B9;padding:20px}#answers form,#infoboxes form{min-width:210px}#infoboxes{position:absolute;top:100px;right:20px;max-width:21em}#infoboxes .infobox{margin:10px 0;border:1px solid #ddd;padding:5px;font-size:.8em}#infoboxes .infobox img{max-width:90%;max-heigt:12em;display:block;margin:5px;padding:5px}#infoboxes .infobox h2{margin:0}#apis,#search_url{margin-top:8px}#infoboxes .infobox table{table-layout:fixed}#infoboxes .infobox table td{vertical-align:top}#infoboxes .infobox input{font-size:1em}#search_url input{border:1px solid #888;padding:4px;color:#444;width:14em;display:block;margin:4px;font-size:.8em}#preferences{top:10px;padding:0;border:0;background:url(../img/preference-icon.png) no-repeat;background-size:28px 28px;opacity:.8;width:28px;height:30px;display:block}#preferences *{display:none}@media screen and (max-width:50em){#results{margin:auto;padding:0;width:90%}.github{display:none}.checkbox_container{display:block;width:90%}.checkbox_container label{border-bottom:0}.preferences_container{display:none;postion:fixed!important;top:100px;right:0}}@media screen and (max-width:75em){div.title h1{font-size:1em}html.touch #categories{width:95%;height:30px;text-align:left;overflow-x:scroll;overflow-y:hidden;-webkit-overflow-scrolling:touch}html.touch #categories #categories_container{width:1000px;width:-moz-max-content;width:-webkit-max-content;width:max-content}html.touch #categories #categories_container .checkbox_container{display:inline-block;width:auto}#answers,#suggestions{margin-top:5px}#infoboxes{position:inherit;max-width:inherit}#infoboxes .infobox{clear:both}#infoboxes .infobox img{float:left;max-width:10em}#categories{font-size:90%;clear:both}#categories .checkbox_container{margin:auto}#sidebar{position:static;max-width:50em;margin:0 0 2px;padding:0;float:none;border:none;width:auto}#sidebar input{border:0}#apis,#search_url{display:none}.result{border-top:1px solid #E8E7E6;margin:8px 0}.image_result,.image_result img,.result .thumbnail{max-width:98%}}.favicon{float:left;margin-right:4px;margin-top:2px}.preferences_back{background:#3498DB;border:0;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;cursor:pointer;display:inline-block;margin:2px 4px;padding:4px 6px}.preferences_back a{color:#FFF}.hidden{opacity:0;overflow:hidden;font-size:.8em;position:absolute;bottom:-20px;width:100%;text-position:center;background:#fff;transition:opacity 1s ease}#categories_container:hover .hidden{transition:opacity 1s ease;opacity:.8} \ No newline at end of file
diff --git a/searx/static/themes/legacy/less/autocompleter.less b/searx/static/themes/legacy/less/autocompleter.less
index db9601aeb..4ab2508f8 100644
--- a/searx/static/themes/legacy/less/autocompleter.less
+++ b/searx/static/themes/legacy/less/autocompleter.less
@@ -1,61 +1,61 @@
-/*
- * searx, A privacy-respecting, hackable metasearch engine
- */
-
-ul {
- &.autocompleter-choices {
- position: absolute;
- margin: 0;
- padding: 0;
- list-style: none;
- border: 1px solid @color-autocompleter-choices-border;
- border-left-color: @color-autocompleter-choices-border-left-right;
- border-right-color: @color-autocompleter-choices-border-left-right;
- border-bottom-color: @color-autocompleter-choices-border-bottom;
- text-align: left;
- font-family: Verdana, Geneva, Arial, Helvetica, sans-serif;
- z-index: 50;
- background-color: @color-autocompleter-choices-background;
- color: @color-autocompleter-choices-font;
-
- li {
- position: relative;
- margin: -2px 0 0 0;
- padding: 0.2em 1.5em 0.2em 1em;
- display: block;
- float: none !important;
- cursor: pointer;
- font-weight: normal;
- white-space: nowrap;
- font-size: 1em;
- line-height: 1.5em;
-
- &.autocompleter-selected {
- background-color: @color-autocompleter-selected-background;
- color: @color-autocompleter-selected-font;
-
- span.autocompleter-queried {
- color: @color-autocompleter-selected-queried-font;
- }
- }
- }
-
- span.autocompleter-queried {
- display: inline;
- float: none;
- font-weight: bold;
- margin: 0;
- padding: 0;
- }
- }
-}
-
-/*.autocompleter-loading {
- //background-image: url(images/spinner.gif);
- background-repeat: no-repeat;
- background-position: right 50%;
-}*/
-
-/*textarea.autocompleter-loading {
- background-position: right bottom;
-}*/
+/*
+ * searx, A privacy-respecting, hackable metasearch engine
+ */
+
+ul {
+ &.autocompleter-choices {
+ position: absolute;
+ margin: 0;
+ padding: 0;
+ list-style: none;
+ border: 1px solid @color-autocompleter-choices-border;
+ border-left-color: @color-autocompleter-choices-border-left-right;
+ border-right-color: @color-autocompleter-choices-border-left-right;
+ border-bottom-color: @color-autocompleter-choices-border-bottom;
+ text-align: left;
+ font-family: Verdana, Geneva, Arial, Helvetica, sans-serif;
+ z-index: 50;
+ background-color: @color-autocompleter-choices-background;
+ color: @color-autocompleter-choices-font;
+
+ li {
+ position: relative;
+ margin: -2px 0 0 0;
+ padding: 0.2em 1.5em 0.2em 1em;
+ display: block;
+ float: none !important;
+ cursor: pointer;
+ font-weight: normal;
+ white-space: nowrap;
+ font-size: 1em;
+ line-height: 1.5em;
+
+ &.autocompleter-selected {
+ background-color: @color-autocompleter-selected-background;
+ color: @color-autocompleter-selected-font;
+
+ span.autocompleter-queried {
+ color: @color-autocompleter-selected-queried-font;
+ }
+ }
+ }
+
+ span.autocompleter-queried {
+ display: inline;
+ float: none;
+ font-weight: bold;
+ margin: 0;
+ padding: 0;
+ }
+ }
+}
+
+/*.autocompleter-loading {
+ //background-image: url(images/spinner.gif);
+ background-repeat: no-repeat;
+ background-position: right 50%;
+}*/
+
+/*textarea.autocompleter-loading {
+ background-position: right bottom;
+}*/
diff --git a/searx/static/themes/legacy/less/style.less b/searx/static/themes/legacy/less/style.less
index 4374f7d68..bbeaf105e 100644
--- a/searx/static/themes/legacy/less/style.less
+++ b/searx/static/themes/legacy/less/style.less
@@ -376,6 +376,10 @@ table {
width: 100%;
}
+.result-table {
+ margin-bottom: 10px;
+}
+
td {
padding: 0 4px;
}
diff --git a/searx/static/themes/oscar/css/logicodev-dark.css b/searx/static/themes/oscar/css/logicodev-dark.css
new file mode 100644
index 000000000..07f422f8e
--- /dev/null
+++ b/searx/static/themes/oscar/css/logicodev-dark.css
@@ -0,0 +1,732 @@
+.searx-navbar {
+ background: #29314d;
+ height: 2.3rem;
+ font-size: 1.3rem;
+ line-height: 1.3rem;
+ padding: 0.5rem;
+ font-weight: bold;
+ margin-bottom: 0.8rem;
+}
+.searx-navbar a,
+.searx-navbar a:hover {
+ margin-right: 2.0rem;
+ color: white;
+ text-decoration: none;
+}
+.searx-navbar .instance a {
+ color: #01d7d4;
+ margin-left: 2.0rem;
+}
+#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 {
+ /* Margin bottom by footer height */
+ font-family: 'Roboto', Helvetica, Arial, sans-serif;
+ margin-bottom: 80px;
+ background-color: white;
+}
+body a {
+ color: #0088cc;
+}
+.footer {
+ position: absolute;
+ bottom: 0;
+ width: 100%;
+ /* Set the fixed height of the footer here */
+ 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_not_checked,
+input[type=checkbox]:not(:checked) + .label_hide_if_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 #FFFFFF !important;
+ border-radius: 50px !important;
+}
+.onoffswitch-inner {
+ display: block;
+ transition: margin 0.3s ease-in 0s;
+}
+.onoffswitch-inner:before,
+.onoffswitch-inner:after {
+ display: block;
+ float: left;
+ width: 50%;
+ height: 30px;
+ padding: 0;
+ line-height: 40px;
+ font-size: 20px;
+ box-sizing: border-box;
+ content: "";
+ background-color: #EEEEEE;
+}
+.onoffswitch-switch {
+ display: block;
+ width: 37px;
+ background-color: #01d7d4;
+ position: absolute;
+ top: 0;
+ bottom: 0;
+ right: 0px;
+ border: 2px solid #FFFFFF !important;
+ border-radius: 50px !important;
+ transition: all 0.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-top: 0px;
+ 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: #0088cc;
+}
+.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: #666666;
+ font-size: 13px;
+}
+.result-content .highlight,
+.result-format .highlight,
+.result-source .highlight {
+ font-weight: bold;
+}
+.result-source {
+ font-size: 10px;
+ float: left;
+}
+.result-format {
+ font-size: 10px;
+ float: right;
+}
+.external-link {
+ color: #069025;
+ font-size: 12px;
+ margin-bottom: 15px;
+}
+.external-link a {
+ margin-right: 3px;
+}
+.result-default,
+.result-code,
+.result-torrent,
+.result-videos,
+.result-map {
+ clear: both;
+ padding: 2px 4px;
+}
+.result-default:hover,
+.result-code:hover,
+.result-torrent:hover,
+.result-videos:hover,
+.result-map:hover {
+ background-color: #f6f9fa;
+}
+.result-images {
+ float: left !important;
+ width: 24%;
+ margin: .5%;
+}
+.result-images a {
+ display: block;
+ width: 100%;
+ background-size: cover;
+}
+.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-map {
+ clear: both;
+}
+.result-code {
+ clear: both;
+}
+.result-code .code-fork,
+.result-code .code-fork a {
+ color: #666666;
+}
+.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: #a4a4a4;
+ background: transparent;
+}
+.result .text-muted small {
+ word-wrap: break-word;
+}
+.modal-wrapper {
+ box-shadow: 0 5px 15px rgba(0, 0, 0, 0.5);
+}
+.modal-wrapper {
+ background-clip: padding-box;
+ background-color: #fff;
+ border: 1px solid rgba(0, 0, 0, 0.2);
+ border-radius: 6px;
+ box-shadow: 0 3px 9px rgba(0, 0, 0, 0.5);
+ outline: 0 none;
+ position: relative;
+}
+.infobox .panel-heading {
+ background-color: #f6f9fa;
+}
+.infobox .panel-heading .panel-title {
+ font-weight: 700;
+}
+.infobox p {
+ font-family: "DejaVu Serif", Georgia, Cambria, "Times New Roman", Times, serif !important;
+ font-style: italic;
+}
+.infobox .btn {
+ background-color: #2ecc71;
+ border: none;
+}
+.infobox .btn a {
+ color: white;
+ margin: 5px;
+}
+.infobox .infobox_part {
+ margin-bottom: 20px;
+ word-wrap: break-word;
+ table-layout: fixed;
+}
+.infobox .infobox_part:last-child {
+ margin-bottom: 0;
+}
+.search_categories,
+#categories {
+ text-transform: capitalize;
+ margin-bottom: 0.5rem;
+ display: flex;
+ flex-wrap: wrap;
+ flex-flow: row wrap;
+ align-content: stretch;
+}
+.search_categories label,
+#categories label,
+.search_categories .input-group-addon,
+#categories .input-group-addon {
+ flex-grow: 1;
+ flex-basis: auto;
+ font-size: 1.2rem;
+ font-weight: normal;
+ background-color: white;
+ border: #dddddd 1px solid;
+ border-right: none;
+ color: #666666;
+ padding-bottom: 0.4rem;
+ padding-top: 0.4rem;
+ text-align: center;
+ min-width: 50px;
+}
+.search_categories label:last-child,
+#categories label:last-child,
+.search_categories .input-group-addon:last-child,
+#categories .input-group-addon:last-child {
+ border-right: #dddddd 1px solid;
+}
+.search_categories input[type="checkbox"]:checked + label,
+#categories input[type="checkbox"]:checked + label {
+ color: #29314d;
+ font-weight: bold;
+ border-bottom: #01d7d4 5px solid;
+}
+#main-logo {
+ margin-top: 10vh;
+ margin-bottom: 25px;
+}
+#main-logo > img {
+ max-width: 350px;
+ width: 80%;
+}
+#q {
+ box-shadow: none;
+ border-right: none;
+ border-color: #a4a4a4;
+}
+#search_form .input-group-btn .btn {
+ border-color: #a4a4a4;
+}
+#search_form .input-group-btn .btn:hover {
+ background-color: #2ecc71;
+ color: white;
+}
+.custom-select {
+ appearance: none;
+ -webkit-appearance: none;
+ -moz-appearance: none;
+ font-size: 1.2rem;
+ font-weight: normal;
+ background-color: white;
+ border: #dddddd 1px solid;
+ color: #666666;
+ background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAA8AAAAPCAQAAACR313BAAAABGdBTUEAALGPC/xhBQAAACBjSFJN
+AAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAAAmJLR0QA/4ePzL8AAAAJcEhZ
+cwAABFkAAARZAVnbJUkAAAAHdElNRQfgBxgLDwB20OFsAAAAbElEQVQY073OsQ3CMAAEwJMYwJGn
+sAehpoXJItltBkmcdZBYgIIiQoLglnz3ui+eP+bk5uneteTMZJa6OJuIqvYzSJoqwqBq8gdmTTW8
+6/dghxAUq4xsVYT9laBYXCw93Aajh7GPEF23t4fkBYevGFTANkPRAAAAJXRFWHRkYXRlOmNyZWF0
+ZQAyMDE2LTA3LTI0VDExOjU1OjU4KzAyOjAwRFqFOQAAACV0RVh0ZGF0ZTptb2RpZnkAMjAxNi0w
+Ny0yNFQxMToxNTowMCswMjowMP7RDgQAAAAZdEVYdFNvZnR3YXJlAHd3dy5pbmtzY2FwZS5vcmeb
+7jwaAAAAAElFTkSuQmCC) 96% no-repeat;
+}
+.search-margin {
+ margin-bottom: 0.6em;
+}
+#advanced-search-container {
+ display: none;
+ text-align: left;
+ margin-bottom: 1rem;
+ clear: both;
+}
+#advanced-search-container label,
+#advanced-search-container .input-group-addon {
+ font-size: 1.2rem;
+ font-weight: normal;
+ background-color: white;
+ border: #dddddd 1px solid;
+ border-right: none;
+ color: #666666;
+ padding-bottom: 0.4rem;
+ padding-right: 0.7rem;
+ padding-left: 0.7rem;
+}
+#advanced-search-container label:last-child,
+#advanced-search-container .input-group-addon:last-child {
+ border-right: #dddddd 1px solid;
+}
+#advanced-search-container input[type="radio"] {
+ display: none;
+}
+#advanced-search-container input[type="radio"]:checked + label {
+ color: #29314d;
+ font-weight: bold;
+ border-bottom: #01d7d4 5px solid;
+}
+#check-advanced {
+ display: none;
+}
+#check-advanced:checked ~ #advanced-search-container {
+ display: block;
+}
+.advanced {
+ padding: 0;
+ margin-top: 0.3rem;
+ text-align: right;
+}
+.advanced label,
+.advanced select {
+ cursor: pointer;
+}
+.cursor-text {
+ cursor: text !important;
+}
+.cursor-pointer {
+ cursor: pointer !important;
+}
+pre,
+code {
+ font-family: 'Ubuntu Mono', 'Courier New', 'Lucida Console', monospace !important;
+}
+.lineno {
+ margin-right: 5px;
+}
+.highlight .hll {
+ background-color: #ffffcc;
+}
+.highlight {
+ background: #f8f8f8;
+}
+.highlight .c {
+ color: #556366;
+ font-style: italic;
+}
+/* Comment */
+.highlight .err {
+ border: 1px solid #ffa92f;
+}
+/* Error */
+.highlight .k {
+ color: #BE74D5;
+ font-weight: bold;
+}
+/* Keyword */
+.highlight .o {
+ color: #d19a66;
+}
+/* Operator */
+.highlight .cm {
+ color: #556366;
+ font-style: italic;
+}
+/* Comment.Multiline */
+.highlight .cp {
+ color: #bc7a00;
+}
+/* Comment.Preproc */
+.highlight .c1 {
+ color: #556366;
+ font-style: italic;
+}
+/* Comment.Single */
+.highlight .cs {
+ color: #556366;
+ font-style: italic;
+}
+/* Comment.Special */
+.highlight .gd {
+ color: #a00000;
+}
+/* Generic.Deleted */
+.highlight .ge {
+ font-style: italic;
+}
+/* Generic.Emph */
+.highlight .gr {
+ color: #ff0000;
+}
+/* Generic.Error */
+.highlight .gh {
+ color: #000080;
+ font-weight: bold;
+}
+/* Generic.Heading */
+.highlight .gi {
+ color: #00a000;
+}
+/* Generic.Inserted */
+.highlight .go {
+ color: #888888;
+}
+/* Generic.Output */
+.highlight .gp {
+ color: #000080;
+ font-weight: bold;
+}
+/* Generic.Prompt */
+.highlight .gs {
+ font-weight: bold;
+}
+/* Generic.Strong */
+.highlight .gu {
+ color: #800080;
+ font-weight: bold;
+}
+/* Generic.Subheading */
+.highlight .gt {
+ color: #0044dd;
+}
+/* Generic.Traceback */
+.highlight .kc {
+ color: #BE74D5;
+ font-weight: bold;
+}
+/* Keyword.Constant */
+.highlight .kd {
+ color: #BE74D5;
+ font-weight: bold;
+}
+/* Keyword.Declaration */
+.highlight .kn {
+ color: #BE74D5;
+ font-weight: bold;
+}
+/* Keyword.Namespace */
+.highlight .kp {
+ color: #be74d5;
+}
+/* Keyword.Pseudo */
+.highlight .kr {
+ color: #BE74D5;
+ font-weight: bold;
+}
+/* Keyword.Reserved */
+.highlight .kt {
+ color: #d46c72;
+}
+/* Keyword.Type */
+.highlight .m {
+ color: #d19a66;
+}
+/* Literal.Number */
+.highlight .s {
+ color: #86c372;
+}
+/* Literal.String */
+.highlight .na {
+ color: #7d9029;
+}
+/* Name.Attribute */
+.highlight .nb {
+ color: #be74d5;
+}
+/* Name.Builtin */
+.highlight .nc {
+ color: #61AFEF;
+ font-weight: bold;
+}
+/* Name.Class */
+.highlight .no {
+ color: #d19a66;
+}
+/* Name.Constant */
+.highlight .nd {
+ color: #aa22ff;
+}
+/* Name.Decorator */
+.highlight .ni {
+ color: #999999;
+ font-weight: bold;
+}
+/* Name.Entity */
+.highlight .ne {
+ color: #D2413A;
+ font-weight: bold;
+}
+/* Name.Exception */
+.highlight .nf {
+ color: #61afef;
+}
+/* Name.Function */
+.highlight .nl {
+ color: #a0a000;
+}
+/* Name.Label */
+.highlight .nn {
+ color: #61AFEF;
+ font-weight: bold;
+}
+/* Name.Namespace */
+.highlight .nt {
+ color: #BE74D5;
+ font-weight: bold;
+}
+/* Name.Tag */
+.highlight .nv {
+ color: #dfc06f;
+}
+/* Name.Variable */
+.highlight .ow {
+ color: #AA22FF;
+ font-weight: bold;
+}
+/* Operator.Word */
+.highlight .w {
+ color: #d7dae0;
+}
+/* Text.Whitespace */
+.highlight .mf {
+ color: #d19a66;
+}
+/* Literal.Number.Float */
+.highlight .mh {
+ color: #d19a66;
+}
+/* Literal.Number.Hex */
+.highlight .mi {
+ color: #d19a66;
+}
+/* Literal.Number.Integer */
+.highlight .mo {
+ color: #d19a66;
+}
+/* Literal.Number.Oct */
+.highlight .sb {
+ color: #86c372;
+}
+/* Literal.String.Backtick */
+.highlight .sc {
+ color: #86c372;
+}
+/* Literal.String.Char */
+.highlight .sd {
+ color: #86C372;
+ font-style: italic;
+}
+/* Literal.String.Doc */
+.highlight .s2 {
+ color: #86c372;
+}
+/* Literal.String.Double */
+.highlight .se {
+ color: #BB6622;
+ font-weight: bold;
+}
+/* Literal.String.Escape */
+.highlight .sh {
+ color: #86c372;
+}
+/* Literal.String.Heredoc */
+.highlight .si {
+ color: #BB6688;
+ font-weight: bold;
+}
+/* Literal.String.Interpol */
+.highlight .sx {
+ color: #be74d5;
+}
+/* Literal.String.Other */
+.highlight .sr {
+ color: #bb6688;
+}
+/* Literal.String.Regex */
+.highlight .s1 {
+ color: #86c372;
+}
+/* Literal.String.Single */
+.highlight .ss {
+ color: #dfc06f;
+}
+/* Literal.String.Symbol */
+.highlight .bp {
+ color: #be74d5;
+}
+/* Name.Builtin.Pseudo */
+.highlight .vc {
+ color: #dfc06f;
+}
+/* Name.Variable.Class */
+.highlight .vg {
+ color: #dfc06f;
+}
+/* Name.Variable.Global */
+.highlight .vi {
+ color: #dfc06f;
+}
+/* Name.Variable.Instance */
+.highlight .il {
+ color: #d19a66;
+}
+/* Literal.Number.Integer.Long */
+.highlight .lineno {
+ -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;
+ color: #556366;
+}
+.highlight .lineno::selection {
+ background: transparent;
+ /* WebKit/Blink Browsers */
+}
+.highlight .lineno::-moz-selection {
+ background: transparent;
+ /* Gecko Browsers */
+}
+.highlight pre {
+ background-color: #282C34;
+ color: #D7DAE0;
+ border: none;
+ margin-bottom: 25px;
+ font-size: 15px;
+ padding: 20px 10px;
+}
+.highlight {
+ font-weight: 700;
+}
+.table > tbody > tr > td,
+.table > tbody > tr > th {
+ vertical-align: middle !important;
+}
diff --git a/searx/static/themes/oscar/css/logicodev-dark.min.css b/searx/static/themes/oscar/css/logicodev-dark.min.css
index 99915ceff..06e7fb0a9 100644
--- a/searx/static/themes/oscar/css/logicodev-dark.min.css
+++ b/searx/static/themes/oscar/css/logicodev-dark.min.css
@@ -1 +1 @@
-*{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_not_checked,input[type=checkbox]:not(:checked)+.label_hide_if_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:before,.onoffswitch-inner:after{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!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-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{margin-top:2px;margin-bottom:0;word-wrap:break-word;color:#666;font-size:13px}.result-content .highlight{font-weight:700}.external-link{color:#069025;font-size:12px;margin-bottom:15px}.external-link a{margin-right:3px}.result-default,.result-code,.result-torrent,.result-videos,.result-map{clear:both;padding:2px 4px}.result-default:hover,.result-code:hover,.result-torrent:hover,.result-videos:hover,.result-map:hover{background-color:#f6f9fa}.result-images{float:left!important;width:24%;margin:.5%}.result-images a{display:block;width:100%;background-size:cover}.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-map{clear:both}.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:#a4a4a4;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}.infobox .panel-heading{background-color:#f6f9fa}.infobox .panel-heading .panel-title{font-weight:700}.infobox p{font-family:"DejaVu Serif",Georgia,Cambria,"Times New Roman",Times,serif!important;font-style:italic}.infobox .btn{background-color:#2ecc71;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}.search_categories,#categories{text-transform:capitalize;margin-bottom:.5rem;display:flex;flex-wrap:wrap;flex-flow:row wrap;align-content:stretch}.search_categories label,#categories label,.search_categories .input-group-addon,#categories .input-group-addon{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}.search_categories label:last-child,#categories label:last-child,.search_categories .input-group-addon:last-child,#categories .input-group-addon:last-child{border-right:#ddd 1px solid}.search_categories input[type=checkbox]:checked+label,#categories input[type=checkbox]:checked+label{color:#29314d;font-weight:700;border-bottom:#01d7d4 5px solid}#main-logo{margin-top:10vh;margin-bottom:25px}#main-logo>img{max-width:350px;width:80%}#q{box-shadow:none;border-right:none;border-color:#a4a4a4}#search_form .input-group-btn .btn{border-color:#a4a4a4}#search_form .input-group-btn .btn:hover{background-color:#2ecc71;color:#fff}.custom-select{appearance:none;-webkit-appearance:none;-moz-appearance:none;font-size:1.2rem;font-weight:400;background-color:#fff;border:#ddd 1px solid;color:#666;background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAA8AAAAPCAQAAACR313BAAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAAAmJLR0QA/4ePzL8AAAAJcEhZcwAABFkAAARZAVnbJUkAAAAHdElNRQfgBxgLDwB20OFsAAAAbElEQVQY073OsQ3CMAAEwJMYwJGnsAehpoXJItltBkmcdZBYgIIiQoLglnz3ui+eP+bk5uneteTMZJa6OJuIqvYzSJoqwqBq8gdmTTW86/dghxAUq4xsVYT9laBYXCw93Aajh7GPEF23t4fkBYevGFTANkPRAAAAJXRFWHRkYXRlOmNyZWF0ZQAyMDE2LTA3LTI0VDExOjU1OjU4KzAyOjAwRFqFOQAAACV0RVh0ZGF0ZTptb2RpZnkAMjAxNi0wNy0yNFQxMToxNTowMCswMjowMP7RDgQAAAAZdEVYdFNvZnR3YXJlAHd3dy5pbmtzY2FwZS5vcmeb7jwaAAAAAElFTkSuQmCC) 96% no-repeat}.search-margin{margin-bottom:.6em}#advanced-search-container{display:none;text-align:left;margin-bottom:1rem;clear:both}#advanced-search-container label,#advanced-search-container .input-group-addon{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 label:last-child,#advanced-search-container .input-group-addon: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{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}pre,code{font-family:'Ubuntu Mono','Courier New','Lucida Console',monospace!important}.lineno{margin-right:5px}.highlight .hll{background-color:#ffc}.highlight{background:#f8f8f8}.highlight .c{color:#556366;font-style:italic}.highlight .err{border:1px solid #ffa92f}.highlight .k{color:#BE74D5;font-weight:700}.highlight .o{color:#d19a66}.highlight .cm{color:#556366;font-style:italic}.highlight .cp{color:#bc7a00}.highlight .c1{color:#556366;font-style:italic}.highlight .cs{color:#556366;font-style:italic}.highlight .gd{color:#a00000}.highlight .ge{font-style:italic}.highlight .gr{color:red}.highlight .gh{color:navy;font-weight:700}.highlight .gi{color:#00a000}.highlight .go{color:#888}.highlight .gp{color:navy;font-weight:700}.highlight .gs{font-weight:700}.highlight .gu{color:purple;font-weight:700}.highlight .gt{color:#04d}.highlight .kc{color:#BE74D5;font-weight:700}.highlight .kd{color:#BE74D5;font-weight:700}.highlight .kn{color:#BE74D5;font-weight:700}.highlight .kp{color:#be74d5}.highlight .kr{color:#BE74D5;font-weight:700}.highlight .kt{color:#d46c72}.highlight .m{color:#d19a66}.highlight .s{color:#86c372}.highlight .na{color:#7d9029}.highlight .nb{color:#be74d5}.highlight .nc{color:#61AFEF;font-weight:700}.highlight .no{color:#d19a66}.highlight .nd{color:#a2f}.highlight .ni{color:#999;font-weight:700}.highlight .ne{color:#D2413A;font-weight:700}.highlight .nf{color:#61afef}.highlight .nl{color:#a0a000}.highlight .nn{color:#61AFEF;font-weight:700}.highlight .nt{color:#BE74D5;font-weight:700}.highlight .nv{color:#dfc06f}.highlight .ow{color:#A2F;font-weight:700}.highlight .w{color:#d7dae0}.highlight .mf{color:#d19a66}.highlight .mh{color:#d19a66}.highlight .mi{color:#d19a66}.highlight .mo{color:#d19a66}.highlight .sb{color:#86c372}.highlight .sc{color:#86c372}.highlight .sd{color:#86C372;font-style:italic}.highlight .s2{color:#86c372}.highlight .se{color:#B62;font-weight:700}.highlight .sh{color:#86c372}.highlight .si{color:#B68;font-weight:700}.highlight .sx{color:#be74d5}.highlight .sr{color:#b68}.highlight .s1{color:#86c372}.highlight .ss{color:#dfc06f}.highlight .bp{color:#be74d5}.highlight .vc{color:#dfc06f}.highlight .vg{color:#dfc06f}.highlight .vi{color:#dfc06f}.highlight .il{color:#d19a66}.highlight .lineno{-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;color:#556366}.highlight .lineno::selection{background:0 0}.highlight .lineno::-moz-selection{background:0 0}.highlight pre{background-color:#282C34;color:#D7DAE0;border:none;margin-bottom:25px;font-size:15px;padding:20px 10px}.highlight{font-weight:700}.table>tbody>tr>td,.table>tbody>tr>th{vertical-align:middle!important}body{background:#1d1f21 none!important;color:#D5D8D7!important}a{color:#41a2ce!important;text-decoration:none!important}a:hover{color:#5F89AC!important}input,button,textarea,select{border:1px solid #282a2e!important;background-color:#444!important;color:#BBB!important}input:focus,button:focus,textarea:focus,select: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{color:#B5B8B7!important}.external-link{color:#35B887!important}.table-striped tr td,.table-striped tr th{border-color:#4d3f43!important}.highlight{background:#333!important}.navbar{background:#1d1f21 none;border:none}.navbar .active,.menu{background:none!important}.label-default{background:0 0;color:#BBB}.navbar-default .navbar-nav>.active>a,.navbar-default .navbar-nav>.active>a:hover,.navbar-default .navbar-nav>.active>a:focus,.nav-tabs.nav-justified>.active>a{background-color:#282a2e!important}.result-default:hover,.result-code:hover,.result-torrent:hover,.result-videos:hover,.result-map: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}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}.searx-navbar{background:#333334;height:2.3rem;font-size:1.3rem;line-height:1.3rem;padding:.5rem;font-weight:700;margin-bottom:.8rem}.searx-navbar a,.searx-navbar a:hover{margin-right:2rem;color:#fff;text-decoration:none}.searx-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:before,.onoffswitch-inner:after{background:#1d1f21 none!important}.onoffswitch-switch,.onoffswitch-label{border:2px solid #3d3f43!important}.nav>li>a:hover,.nav>li>a:focus{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>thead>tr>td.danger,.table>tbody>tr>td.danger,.table>tfoot>tr>td.danger,.table>thead>tr>th.danger,.table>tbody>tr>th.danger,.table>tfoot>tr>th.danger,.table>thead>tr.danger>td,.table>tbody>tr.danger>td,.table>tfoot>tr.danger>td,.table>thead>tr.danger>th,.table>tbody>tr.danger>th,.table>tfoot>tr.danger>th{background:rgba(240,0,0,.56)!important;color:#C5C8C6!important}.table-hover>tbody>tr>td.danger:hover,.table-hover>tbody>tr>th.danger:hover,.table-hover>tbody>tr.danger:hover>td,.table-hover>tbody>tr:hover>.danger,.table-hover>tbody>tr.danger:hover>th{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} \ No newline at end of file
+*{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_not_checked,input[type=checkbox]:not(:checked)+.label_hide_if_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:before,.onoffswitch-inner:after{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!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-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-content .highlight,.result-format .highlight,.result-source .highlight{font-weight:700}.result-source{font-size:10px;float:left}.result-format{font-size:10px;float:right}.external-link{color:#069025;font-size:12px;margin-bottom:15px}.external-link a{margin-right:3px}.result-default,.result-code,.result-torrent,.result-videos,.result-map{clear:both;padding:2px 4px}.result-default:hover,.result-code:hover,.result-torrent:hover,.result-videos:hover,.result-map:hover{background-color:#f6f9fa}.result-images{float:left!important;width:24%;margin:.5%}.result-images a{display:block;width:100%;background-size:cover}.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-map{clear:both}.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:#a4a4a4;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}.infobox .panel-heading{background-color:#f6f9fa}.infobox .panel-heading .panel-title{font-weight:700}.infobox p{font-family:"DejaVu Serif",Georgia,Cambria,"Times New Roman",Times,serif!important;font-style:italic}.infobox .btn{background-color:#2ecc71;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}.search_categories,#categories{text-transform:capitalize;margin-bottom:.5rem;display:flex;flex-wrap:wrap;flex-flow:row wrap;align-content:stretch}.search_categories label,#categories label,.search_categories .input-group-addon,#categories .input-group-addon{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}.search_categories label:last-child,#categories label:last-child,.search_categories .input-group-addon:last-child,#categories .input-group-addon:last-child{border-right:#ddd 1px solid}.search_categories input[type=checkbox]:checked+label,#categories input[type=checkbox]:checked+label{color:#29314d;font-weight:700;border-bottom:#01d7d4 5px solid}#main-logo{margin-top:10vh;margin-bottom:25px}#main-logo>img{max-width:350px;width:80%}#q{box-shadow:none;border-right:none;border-color:#a4a4a4}#search_form .input-group-btn .btn{border-color:#a4a4a4}#search_form .input-group-btn .btn:hover{background-color:#2ecc71;color:#fff}.custom-select{appearance:none;-webkit-appearance:none;-moz-appearance:none;font-size:1.2rem;font-weight:400;background-color:#fff;border:#ddd 1px solid;color:#666;background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAA8AAAAPCAQAAACR313BAAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAAAmJLR0QA/4ePzL8AAAAJcEhZcwAABFkAAARZAVnbJUkAAAAHdElNRQfgBxgLDwB20OFsAAAAbElEQVQY073OsQ3CMAAEwJMYwJGnsAehpoXJItltBkmcdZBYgIIiQoLglnz3ui+eP+bk5uneteTMZJa6OJuIqvYzSJoqwqBq8gdmTTW86/dghxAUq4xsVYT9laBYXCw93Aajh7GPEF23t4fkBYevGFTANkPRAAAAJXRFWHRkYXRlOmNyZWF0ZQAyMDE2LTA3LTI0VDExOjU1OjU4KzAyOjAwRFqFOQAAACV0RVh0ZGF0ZTptb2RpZnkAMjAxNi0wNy0yNFQxMToxNTowMCswMjowMP7RDgQAAAAZdEVYdFNvZnR3YXJlAHd3dy5pbmtzY2FwZS5vcmeb7jwaAAAAAElFTkSuQmCC) 96% no-repeat}.search-margin{margin-bottom:.6em}#advanced-search-container{display:none;text-align:left;margin-bottom:1rem;clear:both}#advanced-search-container label,#advanced-search-container .input-group-addon{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 label:last-child,#advanced-search-container .input-group-addon: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{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}pre,code{font-family:'Ubuntu Mono','Courier New','Lucida Console',monospace!important}.lineno{margin-right:5px}.highlight .hll{background-color:#ffc}.highlight{background:#f8f8f8}.highlight .c{color:#556366;font-style:italic}.highlight .err{border:1px solid #ffa92f}.highlight .k{color:#BE74D5;font-weight:700}.highlight .o{color:#d19a66}.highlight .cm{color:#556366;font-style:italic}.highlight .cp{color:#bc7a00}.highlight .c1{color:#556366;font-style:italic}.highlight .cs{color:#556366;font-style:italic}.highlight .gd{color:#a00000}.highlight .ge{font-style:italic}.highlight .gr{color:red}.highlight .gh{color:navy;font-weight:700}.highlight .gi{color:#00a000}.highlight .go{color:#888}.highlight .gp{color:navy;font-weight:700}.highlight .gs{font-weight:700}.highlight .gu{color:purple;font-weight:700}.highlight .gt{color:#04d}.highlight .kc{color:#BE74D5;font-weight:700}.highlight .kd{color:#BE74D5;font-weight:700}.highlight .kn{color:#BE74D5;font-weight:700}.highlight .kp{color:#be74d5}.highlight .kr{color:#BE74D5;font-weight:700}.highlight .kt{color:#d46c72}.highlight .m{color:#d19a66}.highlight .s{color:#86c372}.highlight .na{color:#7d9029}.highlight .nb{color:#be74d5}.highlight .nc{color:#61AFEF;font-weight:700}.highlight .no{color:#d19a66}.highlight .nd{color:#a2f}.highlight .ni{color:#999;font-weight:700}.highlight .ne{color:#D2413A;font-weight:700}.highlight .nf{color:#61afef}.highlight .nl{color:#a0a000}.highlight .nn{color:#61AFEF;font-weight:700}.highlight .nt{color:#BE74D5;font-weight:700}.highlight .nv{color:#dfc06f}.highlight .ow{color:#A2F;font-weight:700}.highlight .w{color:#d7dae0}.highlight .mf{color:#d19a66}.highlight .mh{color:#d19a66}.highlight .mi{color:#d19a66}.highlight .mo{color:#d19a66}.highlight .sb{color:#86c372}.highlight .sc{color:#86c372}.highlight .sd{color:#86C372;font-style:italic}.highlight .s2{color:#86c372}.highlight .se{color:#B62;font-weight:700}.highlight .sh{color:#86c372}.highlight .si{color:#B68;font-weight:700}.highlight .sx{color:#be74d5}.highlight .sr{color:#b68}.highlight .s1{color:#86c372}.highlight .ss{color:#dfc06f}.highlight .bp{color:#be74d5}.highlight .vc{color:#dfc06f}.highlight .vg{color:#dfc06f}.highlight .vi{color:#dfc06f}.highlight .il{color:#d19a66}.highlight .lineno{-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;color:#556366}.highlight .lineno::selection{background:0 0}.highlight .lineno::-moz-selection{background:0 0}.highlight pre{background-color:#282C34;color:#D7DAE0;border:none;margin-bottom:25px;font-size:15px;padding:20px 10px}.highlight{font-weight:700}.table>tbody>tr>td,.table>tbody>tr>th{vertical-align:middle!important}body{background:#1d1f21 none!important;color:#D5D8D7!important}a{color:#41a2ce!important;text-decoration:none!important}a:hover{color:#5F89AC!important}input,button,textarea,select{border:1px solid #282a2e!important;background-color:#444!important;color:#BBB!important}input:focus,button:focus,textarea:focus,select: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-source,.result-format{color:#B5B8B7!important}.external-link{color:#35B887!important}.table-striped tr td,.table-striped tr th{border-color:#4d3f43!important}.highlight{background:#333!important}.navbar{background:#1d1f21 none;border:none}.navbar .active,.menu{background:none!important}.label-default{background:0 0;color:#BBB}.navbar-default .navbar-nav>.active>a,.navbar-default .navbar-nav>.active>a:hover,.navbar-default .navbar-nav>.active>a:focus,.nav-tabs.nav-justified>.active>a{background-color:#282a2e!important}.result-default:hover,.result-code:hover,.result-torrent:hover,.result-videos:hover,.result-map: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}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}.searx-navbar{background:#333334;height:2.3rem;font-size:1.3rem;line-height:1.3rem;padding:.5rem;font-weight:700;margin-bottom:.8rem}.searx-navbar a,.searx-navbar a:hover{margin-right:2rem;color:#fff;text-decoration:none}.searx-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:before,.onoffswitch-inner:after{background:#1d1f21 none!important}.onoffswitch-switch,.onoffswitch-label{border:2px solid #3d3f43!important}.nav>li>a:hover,.nav>li>a:focus{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>thead>tr>td.danger,.table>tbody>tr>td.danger,.table>tfoot>tr>td.danger,.table>thead>tr>th.danger,.table>tbody>tr>th.danger,.table>tfoot>tr>th.danger,.table>thead>tr.danger>td,.table>tbody>tr.danger>td,.table>tfoot>tr.danger>td,.table>thead>tr.danger>th,.table>tbody>tr.danger>th,.table>tfoot>tr.danger>th{background:rgba(240,0,0,.56)!important;color:#C5C8C6!important}.table-hover>tbody>tr>td.danger:hover,.table-hover>tbody>tr>th.danger:hover,.table-hover>tbody>tr.danger:hover>td,.table-hover>tbody>tr:hover>.danger,.table-hover>tbody>tr.danger:hover>th{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} \ No newline at end of file
diff --git a/searx/static/themes/oscar/css/logicodev.css b/searx/static/themes/oscar/css/logicodev.css
new file mode 100644
index 000000000..5e78ac749
--- /dev/null
+++ b/searx/static/themes/oscar/css/logicodev.css
@@ -0,0 +1,931 @@
+* {
+ border-radius: 0 !important;
+}
+html {
+ position: relative;
+ min-height: 100%;
+ color: #29314d;
+}
+body {
+ /* Margin bottom by footer height */
+ font-family: 'Roboto', Helvetica, Arial, sans-serif;
+ margin-bottom: 80px;
+ background-color: white;
+}
+body a {
+ color: #0088cc;
+}
+.footer {
+ position: absolute;
+ bottom: 0;
+ width: 100%;
+ /* Set the fixed height of the footer here */
+ 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_not_checked,
+input[type=checkbox]:not(:checked) + .label_hide_if_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 #FFFFFF !important;
+ border-radius: 50px !important;
+}
+.onoffswitch-inner {
+ display: block;
+ transition: margin 0.3s ease-in 0s;
+}
+.onoffswitch-inner:before,
+.onoffswitch-inner:after {
+ display: block;
+ float: left;
+ width: 50%;
+ height: 30px;
+ padding: 0;
+ line-height: 40px;
+ font-size: 20px;
+ box-sizing: border-box;
+ content: "";
+ background-color: #EEEEEE;
+}
+.onoffswitch-switch {
+ display: block;
+ width: 37px;
+ background-color: #01d7d4;
+ position: absolute;
+ top: 0;
+ bottom: 0;
+ right: 0px;
+ border: 2px solid #FFFFFF !important;
+ border-radius: 50px !important;
+ transition: all 0.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-top: 0px;
+ 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: #0088cc;
+}
+.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: #666666;
+ font-size: 13px;
+}
+.result-content .highlight,
+.result-format .highlight,
+.result-source .highlight {
+ font-weight: bold;
+}
+.result-source {
+ font-size: 10px;
+ float: left;
+}
+.result-format {
+ font-size: 10px;
+ float: right;
+}
+.external-link {
+ color: #069025;
+ font-size: 12px;
+ margin-bottom: 15px;
+}
+.external-link a {
+ margin-right: 3px;
+}
+.result-default,
+.result-code,
+.result-torrent,
+.result-videos,
+.result-map {
+ clear: both;
+ padding: 2px 4px;
+}
+.result-default:hover,
+.result-code:hover,
+.result-torrent:hover,
+.result-videos:hover,
+.result-map:hover {
+ background-color: #f6f9fa;
+}
+.result-images {
+ float: left !important;
+ width: 24%;
+ margin: .5%;
+}
+.result-images a {
+ display: block;
+ width: 100%;
+ background-size: cover;
+}
+.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-map {
+ clear: both;
+}
+.result-code {
+ clear: both;
+}
+.result-code .code-fork,
+.result-code .code-fork a {
+ color: #666666;
+}
+.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: #a4a4a4;
+ background: transparent;
+}
+.result .text-muted small {
+ word-wrap: break-word;
+}
+.modal-wrapper {
+ box-shadow: 0 5px 15px rgba(0, 0, 0, 0.5);
+}
+.modal-wrapper {
+ background-clip: padding-box;
+ background-color: #fff;
+ border: 1px solid rgba(0, 0, 0, 0.2);
+ border-radius: 6px;
+ box-shadow: 0 3px 9px rgba(0, 0, 0, 0.5);
+ outline: 0 none;
+ position: relative;
+}
+.infobox .panel-heading {
+ background-color: #f6f9fa;
+}
+.infobox .panel-heading .panel-title {
+ font-weight: 700;
+}
+.infobox p {
+ font-family: "DejaVu Serif", Georgia, Cambria, "Times New Roman", Times, serif !important;
+ font-style: italic;
+}
+.infobox .btn {
+ background-color: #2ecc71;
+ border: none;
+}
+.infobox .btn a {
+ color: white;
+ margin: 5px;
+}
+.infobox .infobox_part {
+ margin-bottom: 20px;
+ word-wrap: break-word;
+ table-layout: fixed;
+}
+.infobox .infobox_part:last-child {
+ margin-bottom: 0;
+}
+.search_categories,
+#categories {
+ text-transform: capitalize;
+ margin-bottom: 0.5rem;
+ display: flex;
+ flex-wrap: wrap;
+ flex-flow: row wrap;
+ align-content: stretch;
+}
+.search_categories label,
+#categories label,
+.search_categories .input-group-addon,
+#categories .input-group-addon {
+ flex-grow: 1;
+ flex-basis: auto;
+ font-size: 1.2rem;
+ font-weight: normal;
+ background-color: white;
+ border: #dddddd 1px solid;
+ border-right: none;
+ color: #666666;
+ padding-bottom: 0.4rem;
+ padding-top: 0.4rem;
+ text-align: center;
+ min-width: 50px;
+}
+.search_categories label:last-child,
+#categories label:last-child,
+.search_categories .input-group-addon:last-child,
+#categories .input-group-addon:last-child {
+ border-right: #dddddd 1px solid;
+}
+.search_categories input[type="checkbox"]:checked + label,
+#categories input[type="checkbox"]:checked + label {
+ color: #29314d;
+ font-weight: bold;
+ border-bottom: #01d7d4 5px solid;
+}
+#main-logo {
+ margin-top: 10vh;
+ margin-bottom: 25px;
+}
+#main-logo > img {
+ max-width: 350px;
+ width: 80%;
+}
+#q {
+ box-shadow: none;
+ border-right: none;
+ border-color: #a4a4a4;
+}
+#search_form .input-group-btn .btn {
+ border-color: #a4a4a4;
+}
+#search_form .input-group-btn .btn:hover {
+ background-color: #2ecc71;
+ color: white;
+}
+.custom-select {
+ appearance: none;
+ -webkit-appearance: none;
+ -moz-appearance: none;
+ font-size: 1.2rem;
+ font-weight: normal;
+ background-color: white;
+ border: #dddddd 1px solid;
+ color: #666666;
+ background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAA8AAAAPCAQAAACR313BAAAABGdBTUEAALGPC/xhBQAAACBjSFJN
+AAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAAAmJLR0QA/4ePzL8AAAAJcEhZ
+cwAABFkAAARZAVnbJUkAAAAHdElNRQfgBxgLDwB20OFsAAAAbElEQVQY073OsQ3CMAAEwJMYwJGn
+sAehpoXJItltBkmcdZBYgIIiQoLglnz3ui+eP+bk5uneteTMZJa6OJuIqvYzSJoqwqBq8gdmTTW8
+6/dghxAUq4xsVYT9laBYXCw93Aajh7GPEF23t4fkBYevGFTANkPRAAAAJXRFWHRkYXRlOmNyZWF0
+ZQAyMDE2LTA3LTI0VDExOjU1OjU4KzAyOjAwRFqFOQAAACV0RVh0ZGF0ZTptb2RpZnkAMjAxNi0w
+Ny0yNFQxMToxNTowMCswMjowMP7RDgQAAAAZdEVYdFNvZnR3YXJlAHd3dy5pbmtzY2FwZS5vcmeb
+7jwaAAAAAElFTkSuQmCC) 96% no-repeat;
+}
+.search-margin {
+ margin-bottom: 0.6em;
+}
+#advanced-search-container {
+ display: none;
+ text-align: left;
+ margin-bottom: 1rem;
+ clear: both;
+}
+#advanced-search-container label,
+#advanced-search-container .input-group-addon {
+ font-size: 1.2rem;
+ font-weight: normal;
+ background-color: white;
+ border: #dddddd 1px solid;
+ border-right: none;
+ color: #666666;
+ padding-bottom: 0.4rem;
+ padding-right: 0.7rem;
+ padding-left: 0.7rem;
+}
+#advanced-search-container label:last-child,
+#advanced-search-container .input-group-addon:last-child {
+ border-right: #dddddd 1px solid;
+}
+#advanced-search-container input[type="radio"] {
+ display: none;
+}
+#advanced-search-container input[type="radio"]:checked + label {
+ color: #29314d;
+ font-weight: bold;
+ border-bottom: #01d7d4 5px solid;
+}
+#check-advanced {
+ display: none;
+}
+#check-advanced:checked ~ #advanced-search-container {
+ display: block;
+}
+.advanced {
+ padding: 0;
+ margin-top: 0.3rem;
+ text-align: right;
+}
+.advanced label,
+.advanced select {
+ cursor: pointer;
+}
+.cursor-text {
+ cursor: text !important;
+}
+.cursor-pointer {
+ cursor: pointer !important;
+}
+pre,
+code {
+ font-family: 'Ubuntu Mono', 'Courier New', 'Lucida Console', monospace !important;
+}
+.lineno {
+ margin-right: 5px;
+}
+.highlight .hll {
+ background-color: #ffffcc;
+}
+.highlight {
+ background: #f8f8f8;
+}
+.highlight .c {
+ color: #556366;
+ font-style: italic;
+}
+/* Comment */
+.highlight .err {
+ border: 1px solid #ffa92f;
+}
+/* Error */
+.highlight .k {
+ color: #BE74D5;
+ font-weight: bold;
+}
+/* Keyword */
+.highlight .o {
+ color: #d19a66;
+}
+/* Operator */
+.highlight .cm {
+ color: #556366;
+ font-style: italic;
+}
+/* Comment.Multiline */
+.highlight .cp {
+ color: #bc7a00;
+}
+/* Comment.Preproc */
+.highlight .c1 {
+ color: #556366;
+ font-style: italic;
+}
+/* Comment.Single */
+.highlight .cs {
+ color: #556366;
+ font-style: italic;
+}
+/* Comment.Special */
+.highlight .gd {
+ color: #a00000;
+}
+/* Generic.Deleted */
+.highlight .ge {
+ font-style: italic;
+}
+/* Generic.Emph */
+.highlight .gr {
+ color: #ff0000;
+}
+/* Generic.Error */
+.highlight .gh {
+ color: #000080;
+ font-weight: bold;
+}
+/* Generic.Heading */
+.highlight .gi {
+ color: #00a000;
+}
+/* Generic.Inserted */
+.highlight .go {
+ color: #888888;
+}
+/* Generic.Output */
+.highlight .gp {
+ color: #000080;
+ font-weight: bold;
+}
+/* Generic.Prompt */
+.highlight .gs {
+ font-weight: bold;
+}
+/* Generic.Strong */
+.highlight .gu {
+ color: #800080;
+ font-weight: bold;
+}
+/* Generic.Subheading */
+.highlight .gt {
+ color: #0044dd;
+}
+/* Generic.Traceback */
+.highlight .kc {
+ color: #BE74D5;
+ font-weight: bold;
+}
+/* Keyword.Constant */
+.highlight .kd {
+ color: #BE74D5;
+ font-weight: bold;
+}
+/* Keyword.Declaration */
+.highlight .kn {
+ color: #BE74D5;
+ font-weight: bold;
+}
+/* Keyword.Namespace */
+.highlight .kp {
+ color: #be74d5;
+}
+/* Keyword.Pseudo */
+.highlight .kr {
+ color: #BE74D5;
+ font-weight: bold;
+}
+/* Keyword.Reserved */
+.highlight .kt {
+ color: #d46c72;
+}
+/* Keyword.Type */
+.highlight .m {
+ color: #d19a66;
+}
+/* Literal.Number */
+.highlight .s {
+ color: #86c372;
+}
+/* Literal.String */
+.highlight .na {
+ color: #7d9029;
+}
+/* Name.Attribute */
+.highlight .nb {
+ color: #be74d5;
+}
+/* Name.Builtin */
+.highlight .nc {
+ color: #61AFEF;
+ font-weight: bold;
+}
+/* Name.Class */
+.highlight .no {
+ color: #d19a66;
+}
+/* Name.Constant */
+.highlight .nd {
+ color: #aa22ff;
+}
+/* Name.Decorator */
+.highlight .ni {
+ color: #999999;
+ font-weight: bold;
+}
+/* Name.Entity */
+.highlight .ne {
+ color: #D2413A;
+ font-weight: bold;
+}
+/* Name.Exception */
+.highlight .nf {
+ color: #61afef;
+}
+/* Name.Function */
+.highlight .nl {
+ color: #a0a000;
+}
+/* Name.Label */
+.highlight .nn {
+ color: #61AFEF;
+ font-weight: bold;
+}
+/* Name.Namespace */
+.highlight .nt {
+ color: #BE74D5;
+ font-weight: bold;
+}
+/* Name.Tag */
+.highlight .nv {
+ color: #dfc06f;
+}
+/* Name.Variable */
+.highlight .ow {
+ color: #AA22FF;
+ font-weight: bold;
+}
+/* Operator.Word */
+.highlight .w {
+ color: #d7dae0;
+}
+/* Text.Whitespace */
+.highlight .mf {
+ color: #d19a66;
+}
+/* Literal.Number.Float */
+.highlight .mh {
+ color: #d19a66;
+}
+/* Literal.Number.Hex */
+.highlight .mi {
+ color: #d19a66;
+}
+/* Literal.Number.Integer */
+.highlight .mo {
+ color: #d19a66;
+}
+/* Literal.Number.Oct */
+.highlight .sb {
+ color: #86c372;
+}
+/* Literal.String.Backtick */
+.highlight .sc {
+ color: #86c372;
+}
+/* Literal.String.Char */
+.highlight .sd {
+ color: #86C372;
+ font-style: italic;
+}
+/* Literal.String.Doc */
+.highlight .s2 {
+ color: #86c372;
+}
+/* Literal.String.Double */
+.highlight .se {
+ color: #BB6622;
+ font-weight: bold;
+}
+/* Literal.String.Escape */
+.highlight .sh {
+ color: #86c372;
+}
+/* Literal.String.Heredoc */
+.highlight .si {
+ color: #BB6688;
+ font-weight: bold;
+}
+/* Literal.String.Interpol */
+.highlight .sx {
+ color: #be74d5;
+}
+/* Literal.String.Other */
+.highlight .sr {
+ color: #bb6688;
+}
+/* Literal.String.Regex */
+.highlight .s1 {
+ color: #86c372;
+}
+/* Literal.String.Single */
+.highlight .ss {
+ color: #dfc06f;
+}
+/* Literal.String.Symbol */
+.highlight .bp {
+ color: #be74d5;
+}
+/* Name.Builtin.Pseudo */
+.highlight .vc {
+ color: #dfc06f;
+}
+/* Name.Variable.Class */
+.highlight .vg {
+ color: #dfc06f;
+}
+/* Name.Variable.Global */
+.highlight .vi {
+ color: #dfc06f;
+}
+/* Name.Variable.Instance */
+.highlight .il {
+ color: #d19a66;
+}
+/* Literal.Number.Integer.Long */
+.highlight .lineno {
+ -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;
+ color: #556366;
+}
+.highlight .lineno::selection {
+ background: transparent;
+ /* WebKit/Blink Browsers */
+}
+.highlight .lineno::-moz-selection {
+ background: transparent;
+ /* Gecko Browsers */
+}
+.highlight pre {
+ background-color: #282C34;
+ color: #D7DAE0;
+ border: none;
+ margin-bottom: 25px;
+ font-size: 15px;
+ padding: 20px 10px;
+}
+.highlight {
+ font-weight: 700;
+}
+.table > tbody > tr > td,
+.table > tbody > tr > th {
+ vertical-align: middle !important;
+}
+/*Global*/
+body {
+ background: #1d1f21 none !important;
+ color: #D5D8D7 !important;
+}
+a {
+ color: #41a2ce !important;
+ text-decoration: none !important;
+}
+a:hover {
+ color: #5F89AC !important;
+}
+input,
+button,
+textarea,
+select {
+ border: 1px solid #282a2e !important;
+ background-color: #444 !important;
+ color: #BBB !important;
+}
+input:focus,
+button:focus,
+textarea:focus,
+select:focus {
+ border: 1px solid #C5C8C6 !important;
+ box-shadow: initial !important;
+}
+div#advanced-search-container div#categories label {
+ background: none;
+ 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-source,
+.result-format {
+ color: #B5B8B7 !important;
+}
+.external-link {
+ color: #35B887 !important;
+}
+.table-striped tr td,
+.table-striped tr th {
+ border-color: #4d3f43 !important;
+}
+.highlight {
+ background: #333333 !important;
+}
+/*nav*/
+.navbar {
+ background: #1d1f21 none;
+ border: none;
+}
+.navbar .active,
+.menu {
+ background: none !important;
+}
+.label-default {
+ background: none;
+ color: #BBB;
+}
+.navbar-default .navbar-nav > .active > a,
+.navbar-default .navbar-nav > .active > a:hover,
+.navbar-default .navbar-nav > .active > a:focus,
+.nav-tabs.nav-justified > .active > a {
+ background-color: #282a2e !important;
+}
+/*Search Page*/
+.result-default:hover,
+.result-code:hover,
+.result-torrent:hover,
+.result-videos:hover,
+.result-map:hover {
+ background-color: #222426;
+}
+/*buttons*/
+.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;
+}
+/*Right Pannels*/
+.panel {
+ border: 1px solid #111;
+ background: none;
+}
+.panel-heading {
+ color: #C5C8C6 !important;
+ background: #282a2e !important;
+ border-bottom: none;
+}
+.panel-body {
+ color: #C5C8C6 !important;
+ background: #1d1f21 !important;
+ border-color: #111 !important;
+}
+p.btn.btn-default {
+ background: none;
+}
+.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;
+}
+.searx-navbar {
+ background: #333334;
+ height: 2.3rem;
+ font-size: 1.3rem;
+ line-height: 1.3rem;
+ padding: 0.5rem;
+ font-weight: bold;
+ margin-bottom: 0.8rem;
+}
+.searx-navbar a,
+.searx-navbar a:hover {
+ margin-right: 2.0rem;
+ color: white;
+ text-decoration: none;
+}
+.searx-navbar .instance a {
+ color: #01d7d4;
+ margin-left: 2.0rem;
+}
+#main-logo {
+ margin-top: 20vh;
+ margin-bottom: 25px;
+}
+#main-logo > img {
+ max-width: 350px;
+ width: 80%;
+}
+.onoffswitch-inner:before,
+.onoffswitch-inner:after {
+ background: #1d1f21 none !important;
+}
+.onoffswitch-switch,
+.onoffswitch-label {
+ border: 2px solid #3d3f43 !important;
+}
+.nav > li > a:hover,
+.nav > li > a:focus {
+ background-color: #3d3f43 !important;
+}
+/*Images search*/
+.img-thumbnail,
+.thumbnail {
+ padding: 0px;
+ line-height: 1.42857143;
+ background: none;
+ border: none;
+}
+.modal-content {
+ background: #1d1f21 none !important;
+}
+/*Preferences*/
+.table > thead > tr > td.danger,
+.table > tbody > tr > td.danger,
+.table > tfoot > tr > td.danger,
+.table > thead > tr > th.danger,
+.table > tbody > tr > th.danger,
+.table > tfoot > tr > th.danger,
+.table > thead > tr.danger > td,
+.table > tbody > tr.danger > td,
+.table > tfoot > tr.danger > td,
+.table > thead > tr.danger > th,
+.table > tbody > tr.danger > th,
+.table > tfoot > tr.danger > th {
+ background: rgba(240, 0, 0, 0.56) !important;
+ color: #C5C8C6 !important;
+}
+.table-hover > tbody > tr > td.danger:hover,
+.table-hover > tbody > tr > th.danger:hover,
+.table-hover > tbody > tr.danger:hover > td,
+.table-hover > tbody > tr:hover > .danger,
+.table-hover > tbody > tr.danger:hover > th {
+ background: rgba(237, 59, 59, 0.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;
+}
diff --git a/searx/static/themes/oscar/css/logicodev.min.css b/searx/static/themes/oscar/css/logicodev.min.css
index 237cf7fbf..7f093e717 100644
--- a/searx/static/themes/oscar/css/logicodev.min.css
+++ b/searx/static/themes/oscar/css/logicodev.min.css
@@ -1 +1 @@
-.searx-navbar{background:#29314d;height:2.3rem;font-size:1.3rem;line-height:1.3rem;padding:.5rem;font-weight:700;margin-bottom:.8rem}.searx-navbar a,.searx-navbar a:hover{margin-right:2rem;color:#fff;text-decoration:none}.searx-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_not_checked,input[type=checkbox]:not(:checked)+.label_hide_if_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:before,.onoffswitch-inner:after{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!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-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{margin-top:2px;margin-bottom:0;word-wrap:break-word;color:#666;font-size:13px}.result-content .highlight{font-weight:700}.external-link{color:#069025;font-size:12px;margin-bottom:15px}.external-link a{margin-right:3px}.result-default,.result-code,.result-torrent,.result-videos,.result-map{clear:both;padding:2px 4px}.result-default:hover,.result-code:hover,.result-torrent:hover,.result-videos:hover,.result-map:hover{background-color:#f6f9fa}.result-images{float:left!important;width:24%;margin:.5%}.result-images a{display:block;width:100%;background-size:cover}.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-map{clear:both}.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:#a4a4a4;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}.infobox .panel-heading{background-color:#f6f9fa}.infobox .panel-heading .panel-title{font-weight:700}.infobox p{font-family:"DejaVu Serif",Georgia,Cambria,"Times New Roman",Times,serif!important;font-style:italic}.infobox .btn{background-color:#2ecc71;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}.search_categories,#categories{text-transform:capitalize;margin-bottom:.5rem;display:flex;flex-wrap:wrap;flex-flow:row wrap;align-content:stretch}.search_categories label,#categories label,.search_categories .input-group-addon,#categories .input-group-addon{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}.search_categories label:last-child,#categories label:last-child,.search_categories .input-group-addon:last-child,#categories .input-group-addon:last-child{border-right:#ddd 1px solid}.search_categories input[type=checkbox]:checked+label,#categories input[type=checkbox]:checked+label{color:#29314d;font-weight:700;border-bottom:#01d7d4 5px solid}#main-logo{margin-top:10vh;margin-bottom:25px}#main-logo>img{max-width:350px;width:80%}#q{box-shadow:none;border-right:none;border-color:#a4a4a4}#search_form .input-group-btn .btn{border-color:#a4a4a4}#search_form .input-group-btn .btn:hover{background-color:#2ecc71;color:#fff}.custom-select{appearance:none;-webkit-appearance:none;-moz-appearance:none;font-size:1.2rem;font-weight:400;background-color:#fff;border:#ddd 1px solid;color:#666;background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAA8AAAAPCAQAAACR313BAAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAAAmJLR0QA/4ePzL8AAAAJcEhZcwAABFkAAARZAVnbJUkAAAAHdElNRQfgBxgLDwB20OFsAAAAbElEQVQY073OsQ3CMAAEwJMYwJGnsAehpoXJItltBkmcdZBYgIIiQoLglnz3ui+eP+bk5uneteTMZJa6OJuIqvYzSJoqwqBq8gdmTTW86/dghxAUq4xsVYT9laBYXCw93Aajh7GPEF23t4fkBYevGFTANkPRAAAAJXRFWHRkYXRlOmNyZWF0ZQAyMDE2LTA3LTI0VDExOjU1OjU4KzAyOjAwRFqFOQAAACV0RVh0ZGF0ZTptb2RpZnkAMjAxNi0wNy0yNFQxMToxNTowMCswMjowMP7RDgQAAAAZdEVYdFNvZnR3YXJlAHd3dy5pbmtzY2FwZS5vcmeb7jwaAAAAAElFTkSuQmCC) 96% no-repeat}.search-margin{margin-bottom:.6em}#advanced-search-container{display:none;text-align:left;margin-bottom:1rem;clear:both}#advanced-search-container label,#advanced-search-container .input-group-addon{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 label:last-child,#advanced-search-container .input-group-addon: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{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}pre,code{font-family:'Ubuntu Mono','Courier New','Lucida Console',monospace!important}.lineno{margin-right:5px}.highlight .hll{background-color:#ffc}.highlight{background:#f8f8f8}.highlight .c{color:#556366;font-style:italic}.highlight .err{border:1px solid #ffa92f}.highlight .k{color:#BE74D5;font-weight:700}.highlight .o{color:#d19a66}.highlight .cm{color:#556366;font-style:italic}.highlight .cp{color:#bc7a00}.highlight .c1{color:#556366;font-style:italic}.highlight .cs{color:#556366;font-style:italic}.highlight .gd{color:#a00000}.highlight .ge{font-style:italic}.highlight .gr{color:red}.highlight .gh{color:navy;font-weight:700}.highlight .gi{color:#00a000}.highlight .go{color:#888}.highlight .gp{color:navy;font-weight:700}.highlight .gs{font-weight:700}.highlight .gu{color:purple;font-weight:700}.highlight .gt{color:#04d}.highlight .kc{color:#BE74D5;font-weight:700}.highlight .kd{color:#BE74D5;font-weight:700}.highlight .kn{color:#BE74D5;font-weight:700}.highlight .kp{color:#be74d5}.highlight .kr{color:#BE74D5;font-weight:700}.highlight .kt{color:#d46c72}.highlight .m{color:#d19a66}.highlight .s{color:#86c372}.highlight .na{color:#7d9029}.highlight .nb{color:#be74d5}.highlight .nc{color:#61AFEF;font-weight:700}.highlight .no{color:#d19a66}.highlight .nd{color:#a2f}.highlight .ni{color:#999;font-weight:700}.highlight .ne{color:#D2413A;font-weight:700}.highlight .nf{color:#61afef}.highlight .nl{color:#a0a000}.highlight .nn{color:#61AFEF;font-weight:700}.highlight .nt{color:#BE74D5;font-weight:700}.highlight .nv{color:#dfc06f}.highlight .ow{color:#A2F;font-weight:700}.highlight .w{color:#d7dae0}.highlight .mf{color:#d19a66}.highlight .mh{color:#d19a66}.highlight .mi{color:#d19a66}.highlight .mo{color:#d19a66}.highlight .sb{color:#86c372}.highlight .sc{color:#86c372}.highlight .sd{color:#86C372;font-style:italic}.highlight .s2{color:#86c372}.highlight .se{color:#B62;font-weight:700}.highlight .sh{color:#86c372}.highlight .si{color:#B68;font-weight:700}.highlight .sx{color:#be74d5}.highlight .sr{color:#b68}.highlight .s1{color:#86c372}.highlight .ss{color:#dfc06f}.highlight .bp{color:#be74d5}.highlight .vc{color:#dfc06f}.highlight .vg{color:#dfc06f}.highlight .vi{color:#dfc06f}.highlight .il{color:#d19a66}.highlight .lineno{-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;color:#556366}.highlight .lineno::selection{background:0 0}.highlight .lineno::-moz-selection{background:0 0}.highlight pre{background-color:#282C34;color:#D7DAE0;border:none;margin-bottom:25px;font-size:15px;padding:20px 10px}.highlight{font-weight:700}.table>tbody>tr>td,.table>tbody>tr>th{vertical-align:middle!important} \ No newline at end of file
+.searx-navbar{background:#29314d;height:2.3rem;font-size:1.3rem;line-height:1.3rem;padding:.5rem;font-weight:700;margin-bottom:.8rem}.searx-navbar a,.searx-navbar a:hover{margin-right:2rem;color:#fff;text-decoration:none}.searx-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_not_checked,input[type=checkbox]:not(:checked)+.label_hide_if_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:before,.onoffswitch-inner:after{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!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-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-content .highlight,.result-format .highlight,.result-source .highlight{font-weight:700}.result-source{font-size:10px;float:left}.result-format{font-size:10px;float:right}.external-link{color:#069025;font-size:12px;margin-bottom:15px}.external-link a{margin-right:3px}.result-default,.result-code,.result-torrent,.result-videos,.result-map{clear:both;padding:2px 4px}.result-default:hover,.result-code:hover,.result-torrent:hover,.result-videos:hover,.result-map:hover{background-color:#f6f9fa}.result-images{float:left!important;width:24%;margin:.5%}.result-images a{display:block;width:100%;background-size:cover}.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-map{clear:both}.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:#a4a4a4;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}.infobox .panel-heading{background-color:#f6f9fa}.infobox .panel-heading .panel-title{font-weight:700}.infobox p{font-family:"DejaVu Serif",Georgia,Cambria,"Times New Roman",Times,serif!important;font-style:italic}.infobox .btn{background-color:#2ecc71;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}.search_categories,#categories{text-transform:capitalize;margin-bottom:.5rem;display:flex;flex-wrap:wrap;flex-flow:row wrap;align-content:stretch}.search_categories label,#categories label,.search_categories .input-group-addon,#categories .input-group-addon{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}.search_categories label:last-child,#categories label:last-child,.search_categories .input-group-addon:last-child,#categories .input-group-addon:last-child{border-right:#ddd 1px solid}.search_categories input[type=checkbox]:checked+label,#categories input[type=checkbox]:checked+label{color:#29314d;font-weight:700;border-bottom:#01d7d4 5px solid}#main-logo{margin-top:10vh;margin-bottom:25px}#main-logo>img{max-width:350px;width:80%}#q{box-shadow:none;border-right:none;border-color:#a4a4a4}#search_form .input-group-btn .btn{border-color:#a4a4a4}#search_form .input-group-btn .btn:hover{background-color:#2ecc71;color:#fff}.custom-select{appearance:none;-webkit-appearance:none;-moz-appearance:none;font-size:1.2rem;font-weight:400;background-color:#fff;border:#ddd 1px solid;color:#666;background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAA8AAAAPCAQAAACR313BAAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAAAmJLR0QA/4ePzL8AAAAJcEhZcwAABFkAAARZAVnbJUkAAAAHdElNRQfgBxgLDwB20OFsAAAAbElEQVQY073OsQ3CMAAEwJMYwJGnsAehpoXJItltBkmcdZBYgIIiQoLglnz3ui+eP+bk5uneteTMZJa6OJuIqvYzSJoqwqBq8gdmTTW86/dghxAUq4xsVYT9laBYXCw93Aajh7GPEF23t4fkBYevGFTANkPRAAAAJXRFWHRkYXRlOmNyZWF0ZQAyMDE2LTA3LTI0VDExOjU1OjU4KzAyOjAwRFqFOQAAACV0RVh0ZGF0ZTptb2RpZnkAMjAxNi0wNy0yNFQxMToxNTowMCswMjowMP7RDgQAAAAZdEVYdFNvZnR3YXJlAHd3dy5pbmtzY2FwZS5vcmeb7jwaAAAAAElFTkSuQmCC) 96% no-repeat}.search-margin{margin-bottom:.6em}#advanced-search-container{display:none;text-align:left;margin-bottom:1rem;clear:both}#advanced-search-container label,#advanced-search-container .input-group-addon{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 label:last-child,#advanced-search-container .input-group-addon: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{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}pre,code{font-family:'Ubuntu Mono','Courier New','Lucida Console',monospace!important}.lineno{margin-right:5px}.highlight .hll{background-color:#ffc}.highlight{background:#f8f8f8}.highlight .c{color:#556366;font-style:italic}.highlight .err{border:1px solid #ffa92f}.highlight .k{color:#BE74D5;font-weight:700}.highlight .o{color:#d19a66}.highlight .cm{color:#556366;font-style:italic}.highlight .cp{color:#bc7a00}.highlight .c1{color:#556366;font-style:italic}.highlight .cs{color:#556366;font-style:italic}.highlight .gd{color:#a00000}.highlight .ge{font-style:italic}.highlight .gr{color:red}.highlight .gh{color:navy;font-weight:700}.highlight .gi{color:#00a000}.highlight .go{color:#888}.highlight .gp{color:navy;font-weight:700}.highlight .gs{font-weight:700}.highlight .gu{color:purple;font-weight:700}.highlight .gt{color:#04d}.highlight .kc{color:#BE74D5;font-weight:700}.highlight .kd{color:#BE74D5;font-weight:700}.highlight .kn{color:#BE74D5;font-weight:700}.highlight .kp{color:#be74d5}.highlight .kr{color:#BE74D5;font-weight:700}.highlight .kt{color:#d46c72}.highlight .m{color:#d19a66}.highlight .s{color:#86c372}.highlight .na{color:#7d9029}.highlight .nb{color:#be74d5}.highlight .nc{color:#61AFEF;font-weight:700}.highlight .no{color:#d19a66}.highlight .nd{color:#a2f}.highlight .ni{color:#999;font-weight:700}.highlight .ne{color:#D2413A;font-weight:700}.highlight .nf{color:#61afef}.highlight .nl{color:#a0a000}.highlight .nn{color:#61AFEF;font-weight:700}.highlight .nt{color:#BE74D5;font-weight:700}.highlight .nv{color:#dfc06f}.highlight .ow{color:#A2F;font-weight:700}.highlight .w{color:#d7dae0}.highlight .mf{color:#d19a66}.highlight .mh{color:#d19a66}.highlight .mi{color:#d19a66}.highlight .mo{color:#d19a66}.highlight .sb{color:#86c372}.highlight .sc{color:#86c372}.highlight .sd{color:#86C372;font-style:italic}.highlight .s2{color:#86c372}.highlight .se{color:#B62;font-weight:700}.highlight .sh{color:#86c372}.highlight .si{color:#B68;font-weight:700}.highlight .sx{color:#be74d5}.highlight .sr{color:#b68}.highlight .s1{color:#86c372}.highlight .ss{color:#dfc06f}.highlight .bp{color:#be74d5}.highlight .vc{color:#dfc06f}.highlight .vg{color:#dfc06f}.highlight .vi{color:#dfc06f}.highlight .il{color:#d19a66}.highlight .lineno{-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;color:#556366}.highlight .lineno::selection{background:0 0}.highlight .lineno::-moz-selection{background:0 0}.highlight pre{background-color:#282C34;color:#D7DAE0;border:none;margin-bottom:25px;font-size:15px;padding:20px 10px}.highlight{font-weight:700}.table>tbody>tr>td,.table>tbody>tr>th{vertical-align:middle!important} \ No newline at end of file
diff --git a/searx/static/themes/oscar/css/pointhi.css b/searx/static/themes/oscar/css/pointhi.css
new file mode 100644
index 000000000..4e167687c
--- /dev/null
+++ b/searx/static/themes/oscar/css/pointhi.css
@@ -0,0 +1,562 @@
+html {
+ position: relative;
+ min-height: 100%;
+}
+body {
+ /* Margin bottom by footer height */
+ margin-bottom: 80px;
+}
+.footer {
+ position: absolute;
+ bottom: 0;
+ width: 100%;
+ /* Set the fixed height of the footer here */
+ 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_not_checked,
+input[type=checkbox]:not(:checked) + .label_hide_if_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 #FFFFFF !important;
+ border-radius: 50px !important;
+}
+.onoffswitch-inner {
+ display: block;
+ transition: margin 0.3s ease-in 0s;
+}
+.onoffswitch-inner:before,
+.onoffswitch-inner:after {
+ display: block;
+ float: left;
+ width: 50%;
+ height: 30px;
+ padding: 0;
+ line-height: 40px;
+ font-size: 20px;
+ box-sizing: border-box;
+ content: "";
+ background-color: #EEEEEE;
+}
+.onoffswitch-switch {
+ display: block;
+ width: 37px;
+ background-color: #00CC00;
+ position: absolute;
+ top: 0;
+ bottom: 0;
+ right: 0px;
+ border: 2px solid #FFFFFF !important;
+ border-radius: 50px !important;
+ transition: all 0.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: bold;
+}
+.result-content {
+ margin-top: 5px;
+ word-wrap: break-word;
+}
+.result-content .highlight {
+ font-weight: bold;
+}
+.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, 0.5);
+}
+.modal-wrapper {
+ background-clip: padding-box;
+ background-color: #fff;
+ border: 1px solid rgba(0, 0, 0, 0.2);
+ border-radius: 6px;
+ box-shadow: 0 3px 9px rgba(0, 0, 0, 0.5);
+ outline: 0 none;
+ position: relative;
+}
+.infobox .infobox_part {
+ margin-bottom: 20px;
+ word-wrap: break-word;
+ table-layout: fixed;
+}
+.infobox .infobox_part:last-child {
+ margin-bottom: 0;
+}
+.search_categories,
+#categories {
+ text-transform: capitalize;
+ margin-bottom: 1.5rem;
+ margin-top: 1.5rem;
+ display: flex;
+ flex-wrap: wrap;
+ align-content: stretch;
+}
+.search_categories label,
+#categories label,
+.search_categories .input-group-addon,
+#categories .input-group-addon {
+ flex-grow: 1;
+ flex-basis: auto;
+ font-size: 1.3rem;
+ font-weight: normal;
+ background-color: white;
+ border: #DDD 1px solid;
+ border-right: none;
+ color: #333;
+ padding-bottom: 0.8rem;
+ padding-top: 0.8rem;
+ text-align: center;
+ min-width: 50px;
+}
+.search_categories label:last-child,
+#categories label:last-child,
+.search_categories .input-group-addon:last-child,
+#categories .input-group-addon:last-child {
+ border-right: #DDD 1px solid;
+}
+.search_categories input[type="checkbox"]:checked + label,
+#categories input[type="checkbox"]:checked + label {
+ color: black;
+ font-weight: bold;
+ background-color: #EEE;
+}
+#advanced-search-container {
+ display: none;
+ text-align: center;
+ margin-bottom: 1rem;
+ clear: both;
+}
+#advanced-search-container label,
+#advanced-search-container .input-group-addon {
+ font-size: 1.3rem;
+ font-weight: normal;
+ background-color: white;
+ border: #DDD 1px solid;
+ border-right: none;
+ color: #333;
+ padding-bottom: 0.8rem;
+ padding-left: 1.2rem;
+ padding-right: 1.2rem;
+}
+#advanced-search-container label:last-child,
+#advanced-search-container .input-group-addon:last-child {
+ border-right: #DDD 1px solid;
+}
+#advanced-search-container input[type="radio"] {
+ display: none;
+}
+#advanced-search-container input[type="radio"]:checked + label {
+ color: black;
+ font-weight: bold;
+ background-color: #EEE;
+}
+#check-advanced {
+ display: none;
+}
+#check-advanced:checked ~ #advanced-search-container {
+ display: block;
+}
+.advanced {
+ padding: 0;
+ margin-top: 0.3rem;
+ text-align: right;
+}
+.advanced label,
+.advanced select {
+ cursor: pointer;
+}
+.cursor-text {
+ cursor: text !important;
+}
+.cursor-pointer {
+ cursor: pointer !important;
+}
+.highlight .hll {
+ background-color: #ffffcc;
+}
+.highlight {
+ background: #f8f8f8;
+}
+.highlight .c {
+ color: #408080;
+ font-style: italic;
+}
+/* Comment */
+.highlight .err {
+ border: 1px solid #ff0000;
+}
+/* Error */
+.highlight .k {
+ color: #008000;
+ font-weight: bold;
+}
+/* Keyword */
+.highlight .o {
+ color: #666666;
+}
+/* Operator */
+.highlight .cm {
+ color: #408080;
+ font-style: italic;
+}
+/* Comment.Multiline */
+.highlight .cp {
+ color: #bc7a00;
+}
+/* Comment.Preproc */
+.highlight .c1 {
+ color: #408080;
+ font-style: italic;
+}
+/* Comment.Single */
+.highlight .cs {
+ color: #408080;
+ font-style: italic;
+}
+/* Comment.Special */
+.highlight .gd {
+ color: #a00000;
+}
+/* Generic.Deleted */
+.highlight .ge {
+ font-style: italic;
+}
+/* Generic.Emph */
+.highlight .gr {
+ color: #ff0000;
+}
+/* Generic.Error */
+.highlight .gh {
+ color: #000080;
+ font-weight: bold;
+}
+/* Generic.Heading */
+.highlight .gi {
+ color: #00a000;
+}
+/* Generic.Inserted */
+.highlight .go {
+ color: #888888;
+}
+/* Generic.Output */
+.highlight .gp {
+ color: #000080;
+ font-weight: bold;
+}
+/* Generic.Prompt */
+.highlight .gs {
+ font-weight: bold;
+}
+/* Generic.Strong */
+.highlight .gu {
+ color: #800080;
+ font-weight: bold;
+}
+/* Generic.Subheading */
+.highlight .gt {
+ color: #0044dd;
+}
+/* Generic.Traceback */
+.highlight .kc {
+ color: #008000;
+ font-weight: bold;
+}
+/* Keyword.Constant */
+.highlight .kd {
+ color: #008000;
+ font-weight: bold;
+}
+/* Keyword.Declaration */
+.highlight .kn {
+ color: #008000;
+ font-weight: bold;
+}
+/* Keyword.Namespace */
+.highlight .kp {
+ color: #008000;
+}
+/* Keyword.Pseudo */
+.highlight .kr {
+ color: #008000;
+ font-weight: bold;
+}
+/* Keyword.Reserved */
+.highlight .kt {
+ color: #b00040;
+}
+/* Keyword.Type */
+.highlight .m {
+ color: #666666;
+}
+/* Literal.Number */
+.highlight .s {
+ color: #ba2121;
+}
+/* Literal.String */
+.highlight .na {
+ color: #7d9029;
+}
+/* Name.Attribute */
+.highlight .nb {
+ color: #008000;
+}
+/* Name.Builtin */
+.highlight .nc {
+ color: #0000FF;
+ font-weight: bold;
+}
+/* Name.Class */
+.highlight .no {
+ color: #880000;
+}
+/* Name.Constant */
+.highlight .nd {
+ color: #aa22ff;
+}
+/* Name.Decorator */
+.highlight .ni {
+ color: #999999;
+ font-weight: bold;
+}
+/* Name.Entity */
+.highlight .ne {
+ color: #D2413A;
+ font-weight: bold;
+}
+/* Name.Exception */
+.highlight .nf {
+ color: #0000ff;
+}
+/* Name.Function */
+.highlight .nl {
+ color: #a0a000;
+}
+/* Name.Label */
+.highlight .nn {
+ color: #0000FF;
+ font-weight: bold;
+}
+/* Name.Namespace */
+.highlight .nt {
+ color: #008000;
+ font-weight: bold;
+}
+/* Name.Tag */
+.highlight .nv {
+ color: #19177c;
+}
+/* Name.Variable */
+.highlight .ow {
+ color: #AA22FF;
+ font-weight: bold;
+}
+/* Operator.Word */
+.highlight .w {
+ color: #bbbbbb;
+}
+/* Text.Whitespace */
+.highlight .mf {
+ color: #666666;
+}
+/* Literal.Number.Float */
+.highlight .mh {
+ color: #666666;
+}
+/* Literal.Number.Hex */
+.highlight .mi {
+ color: #666666;
+}
+/* Literal.Number.Integer */
+.highlight .mo {
+ color: #666666;
+}
+/* Literal.Number.Oct */
+.highlight .sb {
+ color: #ba2121;
+}
+/* Literal.String.Backtick */
+.highlight .sc {
+ color: #ba2121;
+}
+/* Literal.String.Char */
+.highlight .sd {
+ color: #BA2121;
+ font-style: italic;
+}
+/* Literal.String.Doc */
+.highlight .s2 {
+ color: #ba2121;
+}
+/* Literal.String.Double */
+.highlight .se {
+ color: #BB6622;
+ font-weight: bold;
+}
+/* Literal.String.Escape */
+.highlight .sh {
+ color: #ba2121;
+}
+/* Literal.String.Heredoc */
+.highlight .si {
+ color: #BB6688;
+ font-weight: bold;
+}
+/* Literal.String.Interpol */
+.highlight .sx {
+ color: #008000;
+}
+/* Literal.String.Other */
+.highlight .sr {
+ color: #bb6688;
+}
+/* Literal.String.Regex */
+.highlight .s1 {
+ color: #ba2121;
+}
+/* Literal.String.Single */
+.highlight .ss {
+ color: #19177c;
+}
+/* Literal.String.Symbol */
+.highlight .bp {
+ color: #008000;
+}
+/* Name.Builtin.Pseudo */
+.highlight .vc {
+ color: #19177c;
+}
+/* Name.Variable.Class */
+.highlight .vg {
+ color: #19177c;
+}
+/* Name.Variable.Global */
+.highlight .vi {
+ color: #19177c;
+}
+/* Name.Variable.Instance */
+.highlight .il {
+ color: #666666;
+}
+/* Literal.Number.Integer.Long */
+.highlight .lineno {
+ -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;
+}
+.highlight .lineno::selection {
+ background: transparent;
+ /* WebKit/Blink Browsers */
+}
+.highlight .lineno::-moz-selection {
+ background: transparent;
+ /* Gecko Browsers */
+}
+.searx-navbar {
+ background: #eee;
+ color: #aaa;
+ height: 2.3rem;
+ font-size: 1.3rem;
+ line-height: 1.3rem;
+ padding: 0.5rem;
+ font-weight: bold;
+ margin-bottom: 1.3rem;
+}
+.searx-navbar a,
+.searx-navbar a:hover {
+ margin-right: 2.0rem;
+ text-decoration: none;
+}
+.searx-navbar .instance a {
+ color: #444;
+ margin-left: 2.0rem;
+}
+.table > tbody > tr > td,
+.table > tbody > tr > th {
+ vertical-align: middle !important;
+}
diff --git a/searx/static/themes/oscar/gruntfile.js b/searx/static/themes/oscar/gruntfile.js
index 591399449..def035dba 100644
--- a/searx/static/themes/oscar/gruntfile.js
+++ b/searx/static/themes/oscar/gruntfile.js
@@ -24,7 +24,7 @@ module.exports = function(grunt) {
jshint: {
files: ['gruntfile.js', 'js/searx_src/*.js'],
options: {
- reporterOutput: "",
+ reporterOutput: "",
// options here to override JSHint defaults
globals: {
jQuery: true,
@@ -55,7 +55,7 @@ module.exports = function(grunt) {
"css/logicodev-dark.min.css": "less/logicodev-dark/oscar.less"}
},
/*
- // built with ./manage.sh styles
+ // built with ./manage.sh styles
bootstrap: {
options: {
paths: ["less/bootstrap"],
@@ -90,7 +90,7 @@ module.exports = function(grunt) {
grunt.registerTask('test', ['jshint']);
grunt.registerTask('default', ['jshint', 'concat', 'uglify', 'less']);
-
+
grunt.registerTask('styles', ['less']);
};
diff --git a/searx/static/themes/oscar/img/icons/invidious.png b/searx/static/themes/oscar/img/icons/invidious.png
new file mode 100644
index 000000000..a94c969d8
--- /dev/null
+++ b/searx/static/themes/oscar/img/icons/invidious.png
Binary files differ
diff --git a/searx/static/themes/oscar/js/searx.js b/searx/static/themes/oscar/js/searx.js
new file mode 100644
index 000000000..927aeb422
--- /dev/null
+++ b/searx/static/themes/oscar/js/searx.js
@@ -0,0 +1,356 @@
+/**
+ * searx is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * searx is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Affero General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public License
+ * along with searx. If not, see < http://www.gnu.org/licenses/ >.
+ *
+ * (C) 2014 by Thomas Pointhuber, <thomas.pointhuber@gmx.at>
+ */
+
+requirejs.config({
+ baseUrl: './static/themes/oscar/js',
+ paths: {
+ app: '../app'
+ }
+});
+;/**
+ * searx is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * searx is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Affero General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public License
+ * along with searx. If not, see < http://www.gnu.org/licenses/ >.
+ *
+ * (C) 2019 by Alexandre Flament
+ */
+window.searx = (function(d) {
+ 'use strict';
+
+ // add data- properties
+ var script = d.currentScript || (function() {
+ var scripts = d.getElementsByTagName('script');
+ return scripts[scripts.length - 1];
+ })();
+
+ return {
+ autocompleter: script.getAttribute('data-autocompleter') === 'true',
+ method: script.getAttribute('data-method')
+ };
+})(document);
+;/**
+ * searx is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * searx is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Affero General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public License
+ * along with searx. If not, see < http://www.gnu.org/licenses/ >.
+ *
+ * (C) 2014 by Thomas Pointhuber, <thomas.pointhuber@gmx.at>
+ */
+
+if(searx.autocompleter) {
+ searx.searchResults = new Bloodhound({
+ datumTokenizer: Bloodhound.tokenizers.obj.whitespace('value'),
+ queryTokenizer: Bloodhound.tokenizers.whitespace,
+ remote: './autocompleter?q=%QUERY'
+ });
+ searx.searchResults.initialize();
+}
+
+$(document).ready(function(){
+ if(searx.autocompleter) {
+ $('#q').typeahead(null, {
+ name: 'search-results',
+ displayKey: function(result) {
+ return result;
+ },
+ source: searx.searchResults.ttAdapter()
+ });
+ }
+});
+;/**
+ * searx is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * searx is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Affero General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public License
+ * along with searx. If not, see < http://www.gnu.org/licenses/ >.
+ *
+ * (C) 2014 by Thomas Pointhuber, <thomas.pointhuber@gmx.at>
+ */
+
+$(document).ready(function(){
+ /**
+ * focus element if class="autofocus" and id="q"
+ */
+ $('#q.autofocus').focus();
+
+ /**
+ * select full content on click if class="select-all-on-click"
+ */
+ $(".select-all-on-click").click(function () {
+ $(this).select();
+ });
+
+ /**
+ * change text during btn-collapse click if possible
+ */
+ $('.btn-collapse').click(function() {
+ var btnTextCollapsed = $(this).data('btn-text-collapsed');
+ var btnTextNotCollapsed = $(this).data('btn-text-not-collapsed');
+
+ if(btnTextCollapsed !== '' && btnTextNotCollapsed !== '') {
+ if($(this).hasClass('collapsed')) {
+ new_html = $(this).html().replace(btnTextCollapsed, btnTextNotCollapsed);
+ } else {
+ new_html = $(this).html().replace(btnTextNotCollapsed, btnTextCollapsed);
+ }
+ $(this).html(new_html);
+ }
+ });
+
+ /**
+ * change text during btn-toggle click if possible
+ */
+ $('.btn-toggle .btn').click(function() {
+ var btnClass = 'btn-' + $(this).data('btn-class');
+ var btnLabelDefault = $(this).data('btn-label-default');
+ var btnLabelToggled = $(this).data('btn-label-toggled');
+ if(btnLabelToggled !== '') {
+ if($(this).hasClass('btn-default')) {
+ new_html = $(this).html().replace(btnLabelDefault, btnLabelToggled);
+ } else {
+ new_html = $(this).html().replace(btnLabelToggled, btnLabelDefault);
+ }
+ $(this).html(new_html);
+ }
+ $(this).toggleClass(btnClass);
+ $(this).toggleClass('btn-default');
+ });
+
+ /**
+ * change text during btn-toggle click if possible
+ */
+ $('.media-loader').click(function() {
+ var target = $(this).data('target');
+ var iframe_load = $(target + ' > iframe');
+ var srctest = iframe_load.attr('src');
+ if(srctest === undefined || srctest === false){
+ iframe_load.attr('src', iframe_load.data('src'));
+ }
+ });
+
+ /**
+ * Select or deselect every categories on double clic
+ */
+ $(".btn-sm").dblclick(function() {
+ var btnClass = 'btn-' + $(this).data('btn-class'); // primary
+ if($(this).hasClass('btn-default')) {
+ $(".btn-sm > input").attr('checked', 'checked');
+ $(".btn-sm > input").prop("checked", true);
+ $(".btn-sm").addClass(btnClass);
+ $(".btn-sm").addClass('active');
+ $(".btn-sm").removeClass('btn-default');
+ } else {
+ $(".btn-sm > input").attr('checked', '');
+ $(".btn-sm > input").removeAttr('checked');
+ $(".btn-sm > input").checked = false;
+ $(".btn-sm").removeClass(btnClass);
+ $(".btn-sm").removeClass('active');
+ $(".btn-sm").addClass('btn-default');
+ }
+ });
+});
+;/**
+ * searx is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * searx is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Affero General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public License
+ * along with searx. If not, see < http://www.gnu.org/licenses/ >.
+ *
+ * (C) 2014 by Thomas Pointhuber, <thomas.pointhuber@gmx.at>
+ */
+
+$(document).ready(function(){
+ $(".searx_overpass_request").on( "click", function( event ) {
+ var overpass_url = "https://overpass-api.de/api/interpreter?data=";
+ var query_start = overpass_url + "[out:json][timeout:25];(";
+ var query_end = ");out meta;";
+
+ var osm_id = $(this).data('osm-id');
+ var osm_type = $(this).data('osm-type');
+ var result_table = $(this).data('result-table');
+ var result_table_loadicon = "#" + $(this).data('result-table-loadicon');
+
+ // tags which can be ignored
+ var osm_ignore_tags = [ "addr:city", "addr:country", "addr:housenumber", "addr:postcode", "addr:street" ];
+
+ if(osm_id && osm_type && result_table) {
+ result_table = "#" + result_table;
+ var query = null;
+ switch(osm_type) {
+ case 'node':
+ query = query_start + "node(" + osm_id + ");" + query_end;
+ break;
+ case 'way':
+ query = query_start + "way(" + osm_id + ");" + query_end;
+ break;
+ case 'relation':
+ query = query_start + "relation(" + osm_id + ");" + query_end;
+ break;
+ default:
+ break;
+ }
+ if(query) {
+ //alert(query);
+ var ajaxRequest = $.ajax( query )
+ .done(function( html) {
+ if(html && html.elements && html.elements[0]) {
+ var element = html.elements[0];
+ var newHtml = $(result_table).html();
+ for (var row in element.tags) {
+ if(element.tags.name === null || osm_ignore_tags.indexOf(row) == -1) {
+ newHtml += "<tr><td>" + row + "</td><td>";
+ switch(row) {
+ case "phone":
+ case "fax":
+ newHtml += "<a href=\"tel:" + element.tags[row].replace(/ /g,'') + "\">" + element.tags[row] + "</a>";
+ break;
+ case "email":
+ newHtml += "<a href=\"mailto:" + element.tags[row] + "\">" + element.tags[row] + "</a>";
+ break;
+ case "website":
+ case "url":
+ newHtml += "<a href=\"" + element.tags[row] + "\">" + element.tags[row] + "</a>";
+ break;
+ case "wikidata":
+ newHtml += "<a href=\"https://www.wikidata.org/wiki/" + element.tags[row] + "\">" + element.tags[row] + "</a>";
+ break;
+ case "wikipedia":
+ if(element.tags[row].indexOf(":") != -1) {
+ newHtml += "<a href=\"https://" + element.tags[row].substring(0,element.tags[row].indexOf(":")) + ".wikipedia.org/wiki/" + element.tags[row].substring(element.tags[row].indexOf(":")+1) + "\">" + element.tags[row] + "</a>";
+ break;
+ }
+ /* jshint ignore:start */
+ default:
+ /* jshint ignore:end */
+ newHtml += element.tags[row];
+ break;
+ }
+ newHtml += "</td></tr>";
+ }
+ }
+ $(result_table).html(newHtml);
+ $(result_table).removeClass('hidden');
+ $(result_table_loadicon).addClass('hidden');
+ }
+ })
+ .fail(function() {
+ $(result_table_loadicon).html($(result_table_loadicon).html() + "<p class=\"text-muted\">could not load data!</p>");
+ });
+ }
+ }
+
+ // this event occour only once per element
+ $( this ).off( event );
+ });
+
+ $(".searx_init_map").on( "click", function( event ) {
+ var leaflet_target = $(this).data('leaflet-target');
+ var map_lon = $(this).data('map-lon');
+ var map_lat = $(this).data('map-lat');
+ var map_zoom = $(this).data('map-zoom');
+ var map_boundingbox = $(this).data('map-boundingbox');
+ var map_geojson = $(this).data('map-geojson');
+
+ require(['leaflet-0.7.3.min'], function(leaflet) {
+ if(map_boundingbox) {
+ southWest = L.latLng(map_boundingbox[0], map_boundingbox[2]);
+ northEast = L.latLng(map_boundingbox[1], map_boundingbox[3]);
+ map_bounds = L.latLngBounds(southWest, northEast);
+ }
+
+ // TODO hack
+ // change default imagePath
+ L.Icon.Default.imagePath = "./static/themes/oscar/img/map";
+
+ // init map
+ var map = L.map(leaflet_target);
+
+ // create the tile layer with correct attribution
+ var osmMapnikUrl='https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png';
+ var osmMapnikAttrib='Map data © <a href="https://openstreetmap.org">OpenStreetMap</a> contributors';
+ var osmMapnik = new L.TileLayer(osmMapnikUrl, {minZoom: 1, maxZoom: 19, attribution: osmMapnikAttrib});
+
+ var osmWikimediaUrl='https://maps.wikimedia.org/osm-intl/{z}/{x}/{y}.png';
+ var osmWikimediaAttrib = 'Wikimedia maps beta | Maps data © <a href="https://openstreetmap.org">OpenStreetMap</a> contributors';
+ var osmWikimedia = new L.TileLayer(osmWikimediaUrl, {minZoom: 1, maxZoom: 19, attribution: osmWikimediaAttrib});
+
+ // init map view
+ if(map_bounds) {
+ // TODO hack: https://github.com/Leaflet/Leaflet/issues/2021
+ setTimeout(function () {
+ map.fitBounds(map_bounds, {
+ maxZoom:17
+ });
+ }, 0);
+ } else if (map_lon && map_lat) {
+ if(map_zoom)
+ map.setView(new L.LatLng(map_lat, map_lon),map_zoom);
+ else
+ map.setView(new L.LatLng(map_lat, map_lon),8);
+ }
+
+ map.addLayer(osmMapnik);
+
+ var baseLayers = {
+ "OSM Mapnik": osmMapnik/*,
+ "OSM Wikimedia": osmWikimedia*/
+ };
+
+ L.control.layers(baseLayers).addTo(map);
+
+
+ if(map_geojson)
+ L.geoJson(map_geojson).addTo(map);
+ /*else if(map_bounds)
+ L.rectangle(map_bounds, {color: "#ff7800", weight: 3, fill:false}).addTo(map);*/
+ });
+
+ // this event occour only once per element
+ $( this ).off( event );
+ });
+});
diff --git a/searx/static/themes/oscar/js/searx.min.js b/searx/static/themes/oscar/js/searx.min.js
index d714149f6..354d9f2fe 100644
--- a/searx/static/themes/oscar/js/searx.min.js
+++ b/searx/static/themes/oscar/js/searx.min.js
@@ -1,2 +1,2 @@
-/*! oscar/searx.min.js | 06-10-2017 | https://github.com/asciimoo/searx */
-requirejs.config({baseUrl:"./static/themes/oscar/js",paths:{app:"../app"}}),searx.autocompleter&&(searx.searchResults=new Bloodhound({datumTokenizer:Bloodhound.tokenizers.obj.whitespace("value"),queryTokenizer:Bloodhound.tokenizers.whitespace,remote:"./autocompleter?q=%QUERY"}),searx.searchResults.initialize()),$(document).ready(function(){searx.autocompleter&&$("#q").typeahead(null,{name:"search-results",displayKey:function(a){return a},source:searx.searchResults.ttAdapter()})}),$(document).ready(function(){$("#q.autofocus").focus(),$(".select-all-on-click").click(function(){$(this).select()}),$(".btn-collapse").click(function(){var a=$(this).data("btn-text-collapsed"),b=$(this).data("btn-text-not-collapsed");""!==a&&""!==b&&($(this).hasClass("collapsed")?new_html=$(this).html().replace(a,b):new_html=$(this).html().replace(b,a),$(this).html(new_html))}),$(".btn-toggle .btn").click(function(){var a="btn-"+$(this).data("btn-class"),b=$(this).data("btn-label-default"),c=$(this).data("btn-label-toggled");""!==c&&($(this).hasClass("btn-default")?new_html=$(this).html().replace(b,c):new_html=$(this).html().replace(c,b),$(this).html(new_html)),$(this).toggleClass(a),$(this).toggleClass("btn-default")}),$(".media-loader").click(function(){var a=$(this).data("target"),b=$(a+" > iframe"),c=b.attr("src");void 0!==c&&c!==!1||b.attr("src",b.data("src"))}),$(".btn-sm").dblclick(function(){var a="btn-"+$(this).data("btn-class");$(this).hasClass("btn-default")?($(".btn-sm > input").attr("checked","checked"),$(".btn-sm > input").prop("checked",!0),$(".btn-sm").addClass(a),$(".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(a),$(".btn-sm").removeClass("active"),$(".btn-sm").addClass("btn-default"))})}),$(document).ready(function(){$(".searx_overpass_request").on("click",function(a){var b="https://overpass-api.de/api/interpreter?data=",c=b+"[out:json][timeout:25];(",d=");out meta;",e=$(this).data("osm-id"),f=$(this).data("osm-type"),g=$(this).data("result-table"),h="#"+$(this).data("result-table-loadicon"),i=["addr:city","addr:country","addr:housenumber","addr:postcode","addr:street"];if(e&&f&&g){g="#"+g;var j=null;switch(f){case"node":j=c+"node("+e+");"+d;break;case"way":j=c+"way("+e+");"+d;break;case"relation":j=c+"relation("+e+");"+d}if(j){$.ajax(j).done(function(a){if(a&&a.elements&&a.elements[0]){var b=a.elements[0],c=$(g).html();for(var d in b.tags)if(null===b.tags.name||i.indexOf(d)==-1){switch(c+="<tr><td>"+d+"</td><td>",d){case"phone":case"fax":c+='<a href="tel:'+b.tags[d].replace(/ /g,"")+'">'+b.tags[d]+"</a>";break;case"email":c+='<a href="mailto:'+b.tags[d]+'">'+b.tags[d]+"</a>";break;case"website":case"url":c+='<a href="'+b.tags[d]+'">'+b.tags[d]+"</a>";break;case"wikidata":c+='<a href="https://www.wikidata.org/wiki/'+b.tags[d]+'">'+b.tags[d]+"</a>";break;case"wikipedia":if(b.tags[d].indexOf(":")!=-1){c+='<a href="https://'+b.tags[d].substring(0,b.tags[d].indexOf(":"))+".wikipedia.org/wiki/"+b.tags[d].substring(b.tags[d].indexOf(":")+1)+'">'+b.tags[d]+"</a>";break}default:c+=b.tags[d]}c+="</td></tr>"}$(g).html(c),$(g).removeClass("hidden"),$(h).addClass("hidden")}}).fail(function(){$(h).html($(h).html()+'<p class="text-muted">could not load data!</p>')})}}$(this).off(a)}),$(".searx_init_map").on("click",function(a){var b=$(this).data("leaflet-target"),c=$(this).data("map-lon"),d=$(this).data("map-lat"),e=$(this).data("map-zoom"),f=$(this).data("map-boundingbox"),g=$(this).data("map-geojson");require(["leaflet-0.7.3.min"],function(a){f&&(southWest=L.latLng(f[0],f[2]),northEast=L.latLng(f[1],f[3]),map_bounds=L.latLngBounds(southWest,northEast)),L.Icon.Default.imagePath="./static/themes/oscar/img/map";var h=L.map(b),i="https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png",j='Map data © <a href="https://openstreetmap.org">OpenStreetMap</a> contributors',k=new L.TileLayer(i,{minZoom:1,maxZoom:19,attribution:j}),l="https://maps.wikimedia.org/osm-intl/{z}/{x}/{y}.png",m='Wikimedia maps beta | Maps data © <a href="https://openstreetmap.org">OpenStreetMap</a> contributors';new L.TileLayer(l,{minZoom:1,maxZoom:19,attribution:m});map_bounds?setTimeout(function(){h.fitBounds(map_bounds,{maxZoom:17})},0):c&&d&&(e?h.setView(new L.LatLng(d,c),e):h.setView(new L.LatLng(d,c),8)),h.addLayer(k);var n={"OSM Mapnik":k};L.control.layers(n).addTo(h),g&&L.geoJson(g).addTo(h)}),$(this).off(a)})}); \ No newline at end of file
+/*! oscar/searx.min.js | 06-08-2019 | https://github.com/asciimoo/searx */
+requirejs.config({baseUrl:"./static/themes/oscar/js",paths:{app:"../app"}}),window.searx=function(a){"use strict";var b=a.currentScript||function(){var b=a.getElementsByTagName("script");return b[b.length-1]}();return{autocompleter:"true"===b.getAttribute("data-autocompleter"),method:b.getAttribute("data-method")}}(document),searx.autocompleter&&(searx.searchResults=new Bloodhound({datumTokenizer:Bloodhound.tokenizers.obj.whitespace("value"),queryTokenizer:Bloodhound.tokenizers.whitespace,remote:"./autocompleter?q=%QUERY"}),searx.searchResults.initialize()),$(document).ready(function(){searx.autocompleter&&$("#q").typeahead(null,{name:"search-results",displayKey:function(a){return a},source:searx.searchResults.ttAdapter()})}),$(document).ready(function(){$("#q.autofocus").focus(),$(".select-all-on-click").click(function(){$(this).select()}),$(".btn-collapse").click(function(){var a=$(this).data("btn-text-collapsed"),b=$(this).data("btn-text-not-collapsed");""!==a&&""!==b&&($(this).hasClass("collapsed")?new_html=$(this).html().replace(a,b):new_html=$(this).html().replace(b,a),$(this).html(new_html))}),$(".btn-toggle .btn").click(function(){var a="btn-"+$(this).data("btn-class"),b=$(this).data("btn-label-default"),c=$(this).data("btn-label-toggled");""!==c&&($(this).hasClass("btn-default")?new_html=$(this).html().replace(b,c):new_html=$(this).html().replace(c,b),$(this).html(new_html)),$(this).toggleClass(a),$(this).toggleClass("btn-default")}),$(".media-loader").click(function(){var a=$(this).data("target"),b=$(a+" > iframe"),c=b.attr("src");void 0!==c&&!1!==c||b.attr("src",b.data("src"))}),$(".btn-sm").dblclick(function(){var a="btn-"+$(this).data("btn-class");$(this).hasClass("btn-default")?($(".btn-sm > input").attr("checked","checked"),$(".btn-sm > input").prop("checked",!0),$(".btn-sm").addClass(a),$(".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(a),$(".btn-sm").removeClass("active"),$(".btn-sm").addClass("btn-default"))})}),$(document).ready(function(){$(".searx_overpass_request").on("click",function(a){var b="https://overpass-api.de/api/interpreter?data=",c=b+"[out:json][timeout:25];(",d=");out meta;",e=$(this).data("osm-id"),f=$(this).data("osm-type"),g=$(this).data("result-table"),h="#"+$(this).data("result-table-loadicon"),i=["addr:city","addr:country","addr:housenumber","addr:postcode","addr:street"];if(e&&f&&g){g="#"+g;var j=null;switch(f){case"node":j=c+"node("+e+");"+d;break;case"way":j=c+"way("+e+");"+d;break;case"relation":j=c+"relation("+e+");"+d}if(j){$.ajax(j).done(function(a){if(a&&a.elements&&a.elements[0]){var b=a.elements[0],c=$(g).html();for(var d in b.tags)if(null===b.tags.name||-1==i.indexOf(d)){switch(c+="<tr><td>"+d+"</td><td>",d){case"phone":case"fax":c+='<a href="tel:'+b.tags[d].replace(/ /g,"")+'">'+b.tags[d]+"</a>";break;case"email":c+='<a href="mailto:'+b.tags[d]+'">'+b.tags[d]+"</a>";break;case"website":case"url":c+='<a href="'+b.tags[d]+'">'+b.tags[d]+"</a>";break;case"wikidata":c+='<a href="https://www.wikidata.org/wiki/'+b.tags[d]+'">'+b.tags[d]+"</a>";break;case"wikipedia":if(-1!=b.tags[d].indexOf(":")){c+='<a href="https://'+b.tags[d].substring(0,b.tags[d].indexOf(":"))+".wikipedia.org/wiki/"+b.tags[d].substring(b.tags[d].indexOf(":")+1)+'">'+b.tags[d]+"</a>";break}default:c+=b.tags[d]}c+="</td></tr>"}$(g).html(c),$(g).removeClass("hidden"),$(h).addClass("hidden")}}).fail(function(){$(h).html($(h).html()+'<p class="text-muted">could not load data!</p>')})}}$(this).off(a)}),$(".searx_init_map").on("click",function(a){var b=$(this).data("leaflet-target"),c=$(this).data("map-lon"),d=$(this).data("map-lat"),e=$(this).data("map-zoom"),f=$(this).data("map-boundingbox"),g=$(this).data("map-geojson");require(["leaflet-0.7.3.min"],function(a){f&&(southWest=L.latLng(f[0],f[2]),northEast=L.latLng(f[1],f[3]),map_bounds=L.latLngBounds(southWest,northEast)),L.Icon.Default.imagePath="./static/themes/oscar/img/map";var h=L.map(b),i="https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png",j='Map data © <a href="https://openstreetmap.org">OpenStreetMap</a> contributors',k=new L.TileLayer(i,{minZoom:1,maxZoom:19,attribution:j}),l="https://maps.wikimedia.org/osm-intl/{z}/{x}/{y}.png",m='Wikimedia maps beta | Maps data © <a href="https://openstreetmap.org">OpenStreetMap</a> contributors';new L.TileLayer(l,{minZoom:1,maxZoom:19,attribution:m});map_bounds?setTimeout(function(){h.fitBounds(map_bounds,{maxZoom:17})},0):c&&d&&(e?h.setView(new L.LatLng(d,c),e):h.setView(new L.LatLng(d,c),8)),h.addLayer(k);var n={"OSM Mapnik":k};L.control.layers(n).addTo(h),g&&L.geoJson(g).addTo(h)}),$(this).off(a)})}); \ No newline at end of file
diff --git a/searx/static/themes/oscar/js/searx_src/00_requirejs_config.js b/searx/static/themes/oscar/js/searx_src/00_requirejs_config.js
index 1aa434902..e7c2abdac 100644
--- a/searx/static/themes/oscar/js/searx_src/00_requirejs_config.js
+++ b/searx/static/themes/oscar/js/searx_src/00_requirejs_config.js
@@ -1,23 +1,23 @@
-/**
- * searx is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Affero General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * searx is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Affero General Public License for more details.
- *
- * You should have received a copy of the GNU Affero General Public License
- * along with searx. If not, see < http://www.gnu.org/licenses/ >.
- *
- * (C) 2014 by Thomas Pointhuber, <thomas.pointhuber@gmx.at>
- */
-
-requirejs.config({
- baseUrl: './static/themes/oscar/js',
- paths: {
- app: '../app'
- }
-});
+/**
+ * searx is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * searx is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Affero General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public License
+ * along with searx. If not, see < http://www.gnu.org/licenses/ >.
+ *
+ * (C) 2014 by Thomas Pointhuber, <thomas.pointhuber@gmx.at>
+ */
+
+requirejs.config({
+ baseUrl: './static/themes/oscar/js',
+ paths: {
+ app: '../app'
+ }
+});
diff --git a/searx/static/themes/oscar/js/searx_src/01_init.js b/searx/static/themes/oscar/js/searx_src/01_init.js
new file mode 100644
index 000000000..690365c7f
--- /dev/null
+++ b/searx/static/themes/oscar/js/searx_src/01_init.js
@@ -0,0 +1,30 @@
+/**
+ * searx is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * searx is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Affero General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public License
+ * along with searx. If not, see < http://www.gnu.org/licenses/ >.
+ *
+ * (C) 2019 by Alexandre Flament
+ */
+window.searx = (function(d) {
+ 'use strict';
+
+ // add data- properties
+ var script = d.currentScript || (function() {
+ var scripts = d.getElementsByTagName('script');
+ return scripts[scripts.length - 1];
+ })();
+
+ return {
+ autocompleter: script.getAttribute('data-autocompleter') === 'true',
+ method: script.getAttribute('data-method')
+ };
+})(document);
diff --git a/searx/static/themes/oscar/js/searx_src/autocompleter.js b/searx/static/themes/oscar/js/searx_src/autocompleter.js
index 70c66d2fc..0907f8e34 100644
--- a/searx/static/themes/oscar/js/searx_src/autocompleter.js
+++ b/searx/static/themes/oscar/js/searx_src/autocompleter.js
@@ -1,37 +1,37 @@
-/**
- * searx is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Affero General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * searx is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Affero General Public License for more details.
- *
- * You should have received a copy of the GNU Affero General Public License
- * along with searx. If not, see < http://www.gnu.org/licenses/ >.
- *
- * (C) 2014 by Thomas Pointhuber, <thomas.pointhuber@gmx.at>
- */
-
-if(searx.autocompleter) {
- searx.searchResults = new Bloodhound({
- datumTokenizer: Bloodhound.tokenizers.obj.whitespace('value'),
- queryTokenizer: Bloodhound.tokenizers.whitespace,
- remote: './autocompleter?q=%QUERY'
- });
- searx.searchResults.initialize();
-}
-
-$(document).ready(function(){
- if(searx.autocompleter) {
- $('#q').typeahead(null, {
- name: 'search-results',
- displayKey: function(result) {
- return result;
- },
- source: searx.searchResults.ttAdapter()
- });
- }
-});
+/**
+ * searx is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * searx is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Affero General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public License
+ * along with searx. If not, see < http://www.gnu.org/licenses/ >.
+ *
+ * (C) 2014 by Thomas Pointhuber, <thomas.pointhuber@gmx.at>
+ */
+
+if(searx.autocompleter) {
+ searx.searchResults = new Bloodhound({
+ datumTokenizer: Bloodhound.tokenizers.obj.whitespace('value'),
+ queryTokenizer: Bloodhound.tokenizers.whitespace,
+ remote: './autocompleter?q=%QUERY'
+ });
+ searx.searchResults.initialize();
+}
+
+$(document).ready(function(){
+ if(searx.autocompleter) {
+ $('#q').typeahead(null, {
+ name: 'search-results',
+ displayKey: function(result) {
+ return result;
+ },
+ source: searx.searchResults.ttAdapter()
+ });
+ }
+});
diff --git a/searx/static/themes/oscar/js/searx_src/element_modifiers.js b/searx/static/themes/oscar/js/searx_src/element_modifiers.js
index 8e4280548..4264d4c0d 100644
--- a/searx/static/themes/oscar/js/searx_src/element_modifiers.js
+++ b/searx/static/themes/oscar/js/searx_src/element_modifiers.js
@@ -1,99 +1,99 @@
-/**
- * searx is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Affero General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * searx is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Affero General Public License for more details.
- *
- * You should have received a copy of the GNU Affero General Public License
- * along with searx. If not, see < http://www.gnu.org/licenses/ >.
- *
- * (C) 2014 by Thomas Pointhuber, <thomas.pointhuber@gmx.at>
- */
-
-$(document).ready(function(){
- /**
- * focus element if class="autofocus" and id="q"
- */
- $('#q.autofocus').focus();
-
- /**
- * select full content on click if class="select-all-on-click"
- */
- $(".select-all-on-click").click(function () {
- $(this).select();
- });
-
- /**
- * change text during btn-collapse click if possible
- */
- $('.btn-collapse').click(function() {
- var btnTextCollapsed = $(this).data('btn-text-collapsed');
- var btnTextNotCollapsed = $(this).data('btn-text-not-collapsed');
-
- if(btnTextCollapsed !== '' && btnTextNotCollapsed !== '') {
- if($(this).hasClass('collapsed')) {
- new_html = $(this).html().replace(btnTextCollapsed, btnTextNotCollapsed);
- } else {
- new_html = $(this).html().replace(btnTextNotCollapsed, btnTextCollapsed);
- }
- $(this).html(new_html);
- }
- });
-
- /**
- * change text during btn-toggle click if possible
- */
- $('.btn-toggle .btn').click(function() {
- var btnClass = 'btn-' + $(this).data('btn-class');
- var btnLabelDefault = $(this).data('btn-label-default');
- var btnLabelToggled = $(this).data('btn-label-toggled');
- if(btnLabelToggled !== '') {
- if($(this).hasClass('btn-default')) {
- new_html = $(this).html().replace(btnLabelDefault, btnLabelToggled);
- } else {
- new_html = $(this).html().replace(btnLabelToggled, btnLabelDefault);
- }
- $(this).html(new_html);
- }
- $(this).toggleClass(btnClass);
- $(this).toggleClass('btn-default');
- });
-
- /**
- * change text during btn-toggle click if possible
- */
- $('.media-loader').click(function() {
- var target = $(this).data('target');
- var iframe_load = $(target + ' > iframe');
- var srctest = iframe_load.attr('src');
- if(srctest === undefined || srctest === false){
- iframe_load.attr('src', iframe_load.data('src'));
- }
- });
-
- /**
- * Select or deselect every categories on double clic
- */
- $(".btn-sm").dblclick(function() {
- var btnClass = 'btn-' + $(this).data('btn-class'); // primary
- if($(this).hasClass('btn-default')) {
- $(".btn-sm > input").attr('checked', 'checked');
- $(".btn-sm > input").prop("checked", true);
- $(".btn-sm").addClass(btnClass);
- $(".btn-sm").addClass('active');
- $(".btn-sm").removeClass('btn-default');
- } else {
- $(".btn-sm > input").attr('checked', '');
- $(".btn-sm > input").removeAttr('checked');
- $(".btn-sm > input").checked = false;
- $(".btn-sm").removeClass(btnClass);
- $(".btn-sm").removeClass('active');
- $(".btn-sm").addClass('btn-default');
- }
- });
-});
+/**
+ * searx is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * searx is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Affero General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public License
+ * along with searx. If not, see < http://www.gnu.org/licenses/ >.
+ *
+ * (C) 2014 by Thomas Pointhuber, <thomas.pointhuber@gmx.at>
+ */
+
+$(document).ready(function(){
+ /**
+ * focus element if class="autofocus" and id="q"
+ */
+ $('#q.autofocus').focus();
+
+ /**
+ * select full content on click if class="select-all-on-click"
+ */
+ $(".select-all-on-click").click(function () {
+ $(this).select();
+ });
+
+ /**
+ * change text during btn-collapse click if possible
+ */
+ $('.btn-collapse').click(function() {
+ var btnTextCollapsed = $(this).data('btn-text-collapsed');
+ var btnTextNotCollapsed = $(this).data('btn-text-not-collapsed');
+
+ if(btnTextCollapsed !== '' && btnTextNotCollapsed !== '') {
+ if($(this).hasClass('collapsed')) {
+ new_html = $(this).html().replace(btnTextCollapsed, btnTextNotCollapsed);
+ } else {
+ new_html = $(this).html().replace(btnTextNotCollapsed, btnTextCollapsed);
+ }
+ $(this).html(new_html);
+ }
+ });
+
+ /**
+ * change text during btn-toggle click if possible
+ */
+ $('.btn-toggle .btn').click(function() {
+ var btnClass = 'btn-' + $(this).data('btn-class');
+ var btnLabelDefault = $(this).data('btn-label-default');
+ var btnLabelToggled = $(this).data('btn-label-toggled');
+ if(btnLabelToggled !== '') {
+ if($(this).hasClass('btn-default')) {
+ new_html = $(this).html().replace(btnLabelDefault, btnLabelToggled);
+ } else {
+ new_html = $(this).html().replace(btnLabelToggled, btnLabelDefault);
+ }
+ $(this).html(new_html);
+ }
+ $(this).toggleClass(btnClass);
+ $(this).toggleClass('btn-default');
+ });
+
+ /**
+ * change text during btn-toggle click if possible
+ */
+ $('.media-loader').click(function() {
+ var target = $(this).data('target');
+ var iframe_load = $(target + ' > iframe');
+ var srctest = iframe_load.attr('src');
+ if(srctest === undefined || srctest === false){
+ iframe_load.attr('src', iframe_load.data('src'));
+ }
+ });
+
+ /**
+ * Select or deselect every categories on double clic
+ */
+ $(".btn-sm").dblclick(function() {
+ var btnClass = 'btn-' + $(this).data('btn-class'); // primary
+ if($(this).hasClass('btn-default')) {
+ $(".btn-sm > input").attr('checked', 'checked');
+ $(".btn-sm > input").prop("checked", true);
+ $(".btn-sm").addClass(btnClass);
+ $(".btn-sm").addClass('active');
+ $(".btn-sm").removeClass('btn-default');
+ } else {
+ $(".btn-sm > input").attr('checked', '');
+ $(".btn-sm > input").removeAttr('checked');
+ $(".btn-sm > input").checked = false;
+ $(".btn-sm").removeClass(btnClass);
+ $(".btn-sm").removeClass('active');
+ $(".btn-sm").addClass('btn-default');
+ }
+ });
+});
diff --git a/searx/static/themes/oscar/js/searx_src/leaflet_map.js b/searx/static/themes/oscar/js/searx_src/leaflet_map.js
index 4be46acb5..3c8c616b1 100644
--- a/searx/static/themes/oscar/js/searx_src/leaflet_map.js
+++ b/searx/static/themes/oscar/js/searx_src/leaflet_map.js
@@ -1,167 +1,167 @@
-/**
- * searx is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Affero General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * searx is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Affero General Public License for more details.
- *
- * You should have received a copy of the GNU Affero General Public License
- * along with searx. If not, see < http://www.gnu.org/licenses/ >.
- *
- * (C) 2014 by Thomas Pointhuber, <thomas.pointhuber@gmx.at>
- */
-
-$(document).ready(function(){
- $(".searx_overpass_request").on( "click", function( event ) {
- var overpass_url = "https://overpass-api.de/api/interpreter?data=";
- var query_start = overpass_url + "[out:json][timeout:25];(";
- var query_end = ");out meta;";
-
- var osm_id = $(this).data('osm-id');
- var osm_type = $(this).data('osm-type');
- var result_table = $(this).data('result-table');
- var result_table_loadicon = "#" + $(this).data('result-table-loadicon');
-
- // tags which can be ignored
- var osm_ignore_tags = [ "addr:city", "addr:country", "addr:housenumber", "addr:postcode", "addr:street" ];
-
- if(osm_id && osm_type && result_table) {
- result_table = "#" + result_table;
- var query = null;
- switch(osm_type) {
- case 'node':
- query = query_start + "node(" + osm_id + ");" + query_end;
- break;
- case 'way':
- query = query_start + "way(" + osm_id + ");" + query_end;
- break;
- case 'relation':
- query = query_start + "relation(" + osm_id + ");" + query_end;
- break;
- default:
- break;
- }
- if(query) {
- //alert(query);
- var ajaxRequest = $.ajax( query )
- .done(function( html) {
- if(html && html.elements && html.elements[0]) {
- var element = html.elements[0];
- var newHtml = $(result_table).html();
- for (var row in element.tags) {
- if(element.tags.name === null || osm_ignore_tags.indexOf(row) == -1) {
- newHtml += "<tr><td>" + row + "</td><td>";
- switch(row) {
- case "phone":
- case "fax":
- newHtml += "<a href=\"tel:" + element.tags[row].replace(/ /g,'') + "\">" + element.tags[row] + "</a>";
- break;
- case "email":
- newHtml += "<a href=\"mailto:" + element.tags[row] + "\">" + element.tags[row] + "</a>";
- break;
- case "website":
- case "url":
- newHtml += "<a href=\"" + element.tags[row] + "\">" + element.tags[row] + "</a>";
- break;
- case "wikidata":
- newHtml += "<a href=\"https://www.wikidata.org/wiki/" + element.tags[row] + "\">" + element.tags[row] + "</a>";
- break;
- case "wikipedia":
- if(element.tags[row].indexOf(":") != -1) {
- newHtml += "<a href=\"https://" + element.tags[row].substring(0,element.tags[row].indexOf(":")) + ".wikipedia.org/wiki/" + element.tags[row].substring(element.tags[row].indexOf(":")+1) + "\">" + element.tags[row] + "</a>";
- break;
- }
- /* jshint ignore:start */
- default:
- /* jshint ignore:end */
- newHtml += element.tags[row];
- break;
- }
- newHtml += "</td></tr>";
- }
- }
- $(result_table).html(newHtml);
- $(result_table).removeClass('hidden');
- $(result_table_loadicon).addClass('hidden');
- }
- })
- .fail(function() {
- $(result_table_loadicon).html($(result_table_loadicon).html() + "<p class=\"text-muted\">could not load data!</p>");
- });
- }
- }
-
- // this event occour only once per element
- $( this ).off( event );
- });
-
- $(".searx_init_map").on( "click", function( event ) {
- var leaflet_target = $(this).data('leaflet-target');
- var map_lon = $(this).data('map-lon');
- var map_lat = $(this).data('map-lat');
- var map_zoom = $(this).data('map-zoom');
- var map_boundingbox = $(this).data('map-boundingbox');
- var map_geojson = $(this).data('map-geojson');
-
- require(['leaflet-0.7.3.min'], function(leaflet) {
- if(map_boundingbox) {
- southWest = L.latLng(map_boundingbox[0], map_boundingbox[2]);
- northEast = L.latLng(map_boundingbox[1], map_boundingbox[3]);
- map_bounds = L.latLngBounds(southWest, northEast);
- }
-
- // TODO hack
- // change default imagePath
- L.Icon.Default.imagePath = "./static/themes/oscar/img/map";
-
- // init map
- var map = L.map(leaflet_target);
-
- // create the tile layer with correct attribution
- var osmMapnikUrl='https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png';
- var osmMapnikAttrib='Map data © <a href="https://openstreetmap.org">OpenStreetMap</a> contributors';
- var osmMapnik = new L.TileLayer(osmMapnikUrl, {minZoom: 1, maxZoom: 19, attribution: osmMapnikAttrib});
-
- var osmWikimediaUrl='https://maps.wikimedia.org/osm-intl/{z}/{x}/{y}.png';
- var osmWikimediaAttrib = 'Wikimedia maps beta | Maps data © <a href="https://openstreetmap.org">OpenStreetMap</a> contributors';
- var osmWikimedia = new L.TileLayer(osmWikimediaUrl, {minZoom: 1, maxZoom: 19, attribution: osmWikimediaAttrib});
-
- // init map view
- if(map_bounds) {
- // TODO hack: https://github.com/Leaflet/Leaflet/issues/2021
- setTimeout(function () {
- map.fitBounds(map_bounds, {
- maxZoom:17
- });
- }, 0);
- } else if (map_lon && map_lat) {
- if(map_zoom)
- map.setView(new L.LatLng(map_lat, map_lon),map_zoom);
- else
- map.setView(new L.LatLng(map_lat, map_lon),8);
- }
-
- map.addLayer(osmMapnik);
-
- var baseLayers = {
- "OSM Mapnik": osmMapnik/*,
- "OSM Wikimedia": osmWikimedia*/
- };
-
- L.control.layers(baseLayers).addTo(map);
-
-
- if(map_geojson)
- L.geoJson(map_geojson).addTo(map);
- /*else if(map_bounds)
- L.rectangle(map_bounds, {color: "#ff7800", weight: 3, fill:false}).addTo(map);*/
- });
-
- // this event occour only once per element
- $( this ).off( event );
- });
-});
+/**
+ * searx is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * searx is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Affero General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public License
+ * along with searx. If not, see < http://www.gnu.org/licenses/ >.
+ *
+ * (C) 2014 by Thomas Pointhuber, <thomas.pointhuber@gmx.at>
+ */
+
+$(document).ready(function(){
+ $(".searx_overpass_request").on( "click", function( event ) {
+ var overpass_url = "https://overpass-api.de/api/interpreter?data=";
+ var query_start = overpass_url + "[out:json][timeout:25];(";
+ var query_end = ");out meta;";
+
+ var osm_id = $(this).data('osm-id');
+ var osm_type = $(this).data('osm-type');
+ var result_table = $(this).data('result-table');
+ var result_table_loadicon = "#" + $(this).data('result-table-loadicon');
+
+ // tags which can be ignored
+ var osm_ignore_tags = [ "addr:city", "addr:country", "addr:housenumber", "addr:postcode", "addr:street" ];
+
+ if(osm_id && osm_type && result_table) {
+ result_table = "#" + result_table;
+ var query = null;
+ switch(osm_type) {
+ case 'node':
+ query = query_start + "node(" + osm_id + ");" + query_end;
+ break;
+ case 'way':
+ query = query_start + "way(" + osm_id + ");" + query_end;
+ break;
+ case 'relation':
+ query = query_start + "relation(" + osm_id + ");" + query_end;
+ break;
+ default:
+ break;
+ }
+ if(query) {
+ //alert(query);
+ var ajaxRequest = $.ajax( query )
+ .done(function( html) {
+ if(html && html.elements && html.elements[0]) {
+ var element = html.elements[0];
+ var newHtml = $(result_table).html();
+ for (var row in element.tags) {
+ if(element.tags.name === null || osm_ignore_tags.indexOf(row) == -1) {
+ newHtml += "<tr><td>" + row + "</td><td>";
+ switch(row) {
+ case "phone":
+ case "fax":
+ newHtml += "<a href=\"tel:" + element.tags[row].replace(/ /g,'') + "\">" + element.tags[row] + "</a>";
+ break;
+ case "email":
+ newHtml += "<a href=\"mailto:" + element.tags[row] + "\">" + element.tags[row] + "</a>";
+ break;
+ case "website":
+ case "url":
+ newHtml += "<a href=\"" + element.tags[row] + "\">" + element.tags[row] + "</a>";
+ break;
+ case "wikidata":
+ newHtml += "<a href=\"https://www.wikidata.org/wiki/" + element.tags[row] + "\">" + element.tags[row] + "</a>";
+ break;
+ case "wikipedia":
+ if(element.tags[row].indexOf(":") != -1) {
+ newHtml += "<a href=\"https://" + element.tags[row].substring(0,element.tags[row].indexOf(":")) + ".wikipedia.org/wiki/" + element.tags[row].substring(element.tags[row].indexOf(":")+1) + "\">" + element.tags[row] + "</a>";
+ break;
+ }
+ /* jshint ignore:start */
+ default:
+ /* jshint ignore:end */
+ newHtml += element.tags[row];
+ break;
+ }
+ newHtml += "</td></tr>";
+ }
+ }
+ $(result_table).html(newHtml);
+ $(result_table).removeClass('hidden');
+ $(result_table_loadicon).addClass('hidden');
+ }
+ })
+ .fail(function() {
+ $(result_table_loadicon).html($(result_table_loadicon).html() + "<p class=\"text-muted\">could not load data!</p>");
+ });
+ }
+ }
+
+ // this event occour only once per element
+ $( this ).off( event );
+ });
+
+ $(".searx_init_map").on( "click", function( event ) {
+ var leaflet_target = $(this).data('leaflet-target');
+ var map_lon = $(this).data('map-lon');
+ var map_lat = $(this).data('map-lat');
+ var map_zoom = $(this).data('map-zoom');
+ var map_boundingbox = $(this).data('map-boundingbox');
+ var map_geojson = $(this).data('map-geojson');
+
+ require(['leaflet-0.7.3.min'], function(leaflet) {
+ if(map_boundingbox) {
+ southWest = L.latLng(map_boundingbox[0], map_boundingbox[2]);
+ northEast = L.latLng(map_boundingbox[1], map_boundingbox[3]);
+ map_bounds = L.latLngBounds(southWest, northEast);
+ }
+
+ // TODO hack
+ // change default imagePath
+ L.Icon.Default.imagePath = "./static/themes/oscar/img/map";
+
+ // init map
+ var map = L.map(leaflet_target);
+
+ // create the tile layer with correct attribution
+ var osmMapnikUrl='https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png';
+ var osmMapnikAttrib='Map data © <a href="https://openstreetmap.org">OpenStreetMap</a> contributors';
+ var osmMapnik = new L.TileLayer(osmMapnikUrl, {minZoom: 1, maxZoom: 19, attribution: osmMapnikAttrib});
+
+ var osmWikimediaUrl='https://maps.wikimedia.org/osm-intl/{z}/{x}/{y}.png';
+ var osmWikimediaAttrib = 'Wikimedia maps beta | Maps data © <a href="https://openstreetmap.org">OpenStreetMap</a> contributors';
+ var osmWikimedia = new L.TileLayer(osmWikimediaUrl, {minZoom: 1, maxZoom: 19, attribution: osmWikimediaAttrib});
+
+ // init map view
+ if(map_bounds) {
+ // TODO hack: https://github.com/Leaflet/Leaflet/issues/2021
+ setTimeout(function () {
+ map.fitBounds(map_bounds, {
+ maxZoom:17
+ });
+ }, 0);
+ } else if (map_lon && map_lat) {
+ if(map_zoom)
+ map.setView(new L.LatLng(map_lat, map_lon),map_zoom);
+ else
+ map.setView(new L.LatLng(map_lat, map_lon),8);
+ }
+
+ map.addLayer(osmMapnik);
+
+ var baseLayers = {
+ "OSM Mapnik": osmMapnik/*,
+ "OSM Wikimedia": osmWikimedia*/
+ };
+
+ L.control.layers(baseLayers).addTo(map);
+
+
+ if(map_geojson)
+ L.geoJson(map_geojson).addTo(map);
+ /*else if(map_bounds)
+ L.rectangle(map_bounds, {color: "#ff7800", weight: 3, fill:false}).addTo(map);*/
+ });
+
+ // this event occour only once per element
+ $( this ).off( event );
+ });
+});
diff --git a/searx/static/themes/oscar/less/logicodev-dark/oscar.less b/searx/static/themes/oscar/less/logicodev-dark/oscar.less
index 804dd76a0..e788b8cba 100644
--- a/searx/static/themes/oscar/less/logicodev-dark/oscar.less
+++ b/searx/static/themes/oscar/less/logicodev-dark/oscar.less
@@ -59,7 +59,7 @@ ul.nav li a {
border-bottom: 4px solid #3d9f94 !important;
}
-.result-content {
+.result-content, .result-source, .result-format {
color:#B5B8B7 !important;
}
@@ -109,7 +109,7 @@ ul.nav li a {
.btn:hover {
color:#444 !important;
- background-color: #BBB !important;
+ background-color: #BBB !important;
}
.btn-primary.active {
@@ -221,7 +221,7 @@ p.btn.btn-default{
}
.table-hover > tbody > tr:hover > td, .table-hover > tbody > tr:hover > th {
- background: rgb(102, 105, 110) !important;
+ background: rgb(102, 105, 110) !important;
}
.btn-success {
diff --git a/searx/static/themes/oscar/less/logicodev/code.less b/searx/static/themes/oscar/less/logicodev/code.less
index 96486f5aa..491b30e5a 100644
--- a/searx/static/themes/oscar/less/logicodev/code.less
+++ b/searx/static/themes/oscar/less/logicodev/code.less
@@ -78,7 +78,7 @@ pre, code{
user-select: none;
cursor: default;
color: #556366;
-
+
&::selection {
background: transparent; /* WebKit/Blink Browsers */
}
@@ -99,5 +99,3 @@ pre, code{
.highlight {
font-weight: 700;
}
-
-
diff --git a/searx/static/themes/oscar/less/logicodev/infobox.less b/searx/static/themes/oscar/less/logicodev/infobox.less
index 0d488d744..954f4507a 100644
--- a/searx/static/themes/oscar/less/logicodev/infobox.less
+++ b/searx/static/themes/oscar/less/logicodev/infobox.less
@@ -30,7 +30,7 @@
table-layout: fixed;
}
-
+
.infobox_part:last-child {
margin-bottom: 0;
}
diff --git a/searx/static/themes/oscar/less/logicodev/navbar.less b/searx/static/themes/oscar/less/logicodev/navbar.less
index 5da7115d9..6e4f9ee10 100644
--- a/searx/static/themes/oscar/less/logicodev/navbar.less
+++ b/searx/static/themes/oscar/less/logicodev/navbar.less
@@ -28,4 +28,3 @@
width: 80%;
}
}
-
diff --git a/searx/static/themes/oscar/less/logicodev/results.less b/searx/static/themes/oscar/less/logicodev/results.less
index a64dc7d16..5e7e1336a 100644
--- a/searx/static/themes/oscar/less/logicodev/results.less
+++ b/searx/static/themes/oscar/less/logicodev/results.less
@@ -27,7 +27,7 @@
}
}
-.result-content {
+.result-content, .result-format, .result-source {
margin-top: 2px;
margin-bottom: 0;
word-wrap: break-word;
@@ -41,6 +41,16 @@
}
+.result-source {
+ font-size: 10px;
+ float: left;
+}
+
+.result-format {
+ font-size: 10px;
+ float: right;
+}
+
.external-link {
color: @dark-green;
font-size: 12px;
diff --git a/searx/static/themes/oscar/less/pointhi/code.less b/searx/static/themes/oscar/less/pointhi/code.less
index 90a2cd60c..70a2a5d49 100644
--- a/searx/static/themes/oscar/less/pointhi/code.less
+++ b/searx/static/themes/oscar/less/pointhi/code.less
@@ -69,7 +69,7 @@
-ms-user-select: none;
user-select: none;
cursor: default;
-
+
&::selection {
background: transparent; /* WebKit/Blink Browsers */
}
diff --git a/searx/static/themes/oscar/less/pointhi/infobox.less b/searx/static/themes/oscar/less/pointhi/infobox.less
index 41375f277..df51b002e 100644
--- a/searx/static/themes/oscar/less/pointhi/infobox.less
+++ b/searx/static/themes/oscar/less/pointhi/infobox.less
@@ -4,7 +4,7 @@
word-wrap: break-word;
table-layout: fixed;
}
-
+
.infobox_part:last-child {
margin-bottom: 0;
}
diff --git a/searx/static/themes/oscar/package.json b/searx/static/themes/oscar/package.json
index 7eae9df2b..5b10fcf9f 100644
--- a/searx/static/themes/oscar/package.json
+++ b/searx/static/themes/oscar/package.json
@@ -2,12 +2,11 @@
"devDependencies": {
"grunt": "~0.4.5",
"grunt-contrib-uglify": "~0.6.0",
- "grunt-contrib-watch" : "~0.6.1",
- "grunt-contrib-concat" : "~0.5.0",
- "grunt-contrib-jshint" : "~0.10.0",
- "grunt-contrib-less" : "~0.11.0"
+ "grunt-contrib-watch": "~0.6.1",
+ "grunt-contrib-concat": "~0.5.0",
+ "grunt-contrib-jshint": "~0.10.0",
+ "grunt-contrib-less": "~0.11.0"
},
-
"scripts": {
"build": "npm install && grunt",
"start": "grunt watch",
diff --git a/searx/static/themes/pix-art/css/style.css b/searx/static/themes/pix-art/css/style.css
index 229cf86a2..776291335 100644
--- a/searx/static/themes/pix-art/css/style.css
+++ b/searx/static/themes/pix-art/css/style.css
@@ -1 +1 @@
-html{font-family:"Courier New",Courier,monospace;font-size:.9em;-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%;-moz-text-size-adjust:100%;text-size-adjust:100%;color:#444;padding:0;margin:0}body,#container{padding:0;margin:0}canvas{image-rendering:optimizeSpeed;image-rendering:-moz-crisp-edges;image-rendering:-webkit-optimize-contrast;image-rendering:optimize-contrast;image-rendering:pixelated;-ms-interpolation-mode:nearest-neighbor;width:32px;height:32px}#container{width:100%;position:absolute;top:0}.search{padding:0;margin:0}#search_wrapper{position:relative;width:50em;padding:10px}.center #search_wrapper{margin-left:auto;margin-right:auto}.q{background:none repeat scroll 0 0 #fff;border:1px solid #3498db;color:#222;font-size:16px;font-family:"Courier New",Courier,monospace;height:28px;margin:0;outline:medium none;padding:2px;padding-left:8px;padding-right:0 !important;width:100%;z-index:2}#search_submit{position:absolute;top:15px;right:5px;padding:0;border:0;background:url('../img/search-icon-pixel.png') no-repeat;background-size:24px 24px;opacity:.8;width:24px;height:24px;font-size:0}@media screen and (max-width:50em){#search_wrapper{width:90%;clear:both;overflow:hidden}}.row{max-width:800px;margin:20px auto;text-align:justify}.row h1{font-size:3em;margin-top:50px}.row p{padding:0 10px;max-width:700px}.row h3,.row ul{margin:4px 8px}.hmarg{margin:0 20px;border:1px solid #3498db;padding:4px 10px}a:link.hmarg{color:#3498db}a:visited.hmarg{color:#3498db}a:active.hmarg{color:#3498db}a:hover.hmarg{color:#3498db}.top_margin{margin-top:60px}.center{text-align:center}h1{font-size:5em}div.title{background:url('../img/searx-pixel.png') no-repeat;width:100%;min-height:80px;background-position:center}div.title h1{visibility:hidden}input[type="button"],input[type="submit"]{font-family:"Courier New",Courier,monospace;padding:4px 12px;margin:2px 4px;display:inline-block;background:#3498db;color:#fff;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;border:0;cursor:pointer}input[type="button"]:disabled{cursor:progress}input[type="checkbox"]{visibility:hidden}fieldset{margin:8px;border:1px solid #3498db}#logo{position:absolute;top:13px;left:10px}#categories{margin:0 10px;-webkit-touch-callout:none;-webkit-user-select:none;-khtml-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.checkbox_container{display:inline-block;position:relative;margin:0 3px;padding:0}.checkbox_container input{display:none}.checkbox_container label,.engine_checkbox label{cursor:pointer;padding:4px 10px;margin:0;display:block;text-transform:capitalize;-webkit-touch-callout:none;-webkit-user-select:none;-khtml-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.checkbox_container input[type="checkbox"]:checked+label{background:#3498db;color:#fff}.engine_checkbox{padding:4px}label.allow{background:#e74c3c;padding:4px 8px;color:#fff;display:none}label.deny{background:#2ecc71;padding:4px 8px;color:#444;display:inline}.engine_checkbox input[type="checkbox"]:checked+label:nth-child(2)+label{display:none}.engine_checkbox input[type="checkbox"]:checked+label.allow{display:inline}a{text-decoration:none;color:#1a11be}a:visited{color:#8e44ad}.engines{color:#888}.small_font{font-size:.8em}.small p{margin:2px 0}.right{float:right}.invisible{display:none}.left{float:left}.highlight{color:#094089}.content .highlight{color:#000}.percentage{position:relative;width:300px}.percentage div{background:#444}table{width:100%}td{padding:0 4px}tr:hover{background:#ddd}#results{margin:auto;padding:0;width:50em;margin-bottom:20px}#search_url{margin-top:8px}#search_url input{border:1px solid #888;padding:4px;color:#444;width:14em;display:block;margin:4px;font-size:.8em}#preferences{top:10px;padding:0;border:0;background:url('../img/preference-icon-pixel.png') no-repeat;background-size:28px 28px;opacity:.8;width:28px;height:30px;display:block}#preferences *{display:none}#pagination{clear:both;text-align:center}#pagination br{clear:both}#apis{margin-top:8px;clear:both}#categories_container{position:relative}@media screen and (max-width:50em){#results{margin:auto;padding:0;width:90%}.checkbox_container{display:block;width:90%}.checkbox_container label{border-bottom:0}.preferences_container{display:none;postion:fixed !important;top:100px;right:0}}@media screen and (max-width:75em){div.title h1{font-size:1em}html.touch #categories{width:95%;height:30px;text-align:left;overflow-x:scroll;overflow-y:hidden;-webkit-overflow-scrolling:touch}html.touch #categories #categories_container{width:1000px;width:-moz-max-content;width:-webkit-max-content;width:max-content}html.touch #categories #categories_container .checkbox_container{display:inline-block;width:auto}#categories{font-size:90%;clear:both}#categories .checkbox_container{margin-top:2px;margin:auto}#categories{font-size:90%;clear:both}#categories .checkbox_container{margin-top:2px;margin:auto}#apis{display:none}#search_url{display:none}#logo{display:none}}.favicon{float:left;margin-right:4px;margin-top:2px}.preferences_back{background:none repeat scroll 0 0 #3498db;border:0 none;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;cursor:pointer;display:inline-block;margin:2px 4px;padding:4px 6px}.preferences_back a{color:#fff}.hidden{opacity:0;overflow:hidden;font-size:.8em;position:absolute;bottom:-20px;width:100%;text-position:center;background:white;transition:opacity 1s ease}#categories_container:hover .hidden{transition:opacity 1s ease;opacity:.8} \ No newline at end of file
+#container,.search,body,html{padding:0;margin:0}.q,html{font-family:"Courier New",Courier,monospace}div.title h1,input[type=checkbox]{visibility:hidden}#container,#logo,#search_submit{position:absolute}#apis,#pagination,#pagination br{clear:both}#categories_container,#search_wrapper,.percentage{position:relative}html{font-size:.9em;-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%;-moz-text-size-adjust:100%;text-size-adjust:100%;color:#444}canvas{image-rendering:optimizeSpeed;image-rendering:-moz-crisp-edges;image-rendering:-webkit-optimize-contrast;image-rendering:optimize-contrast;image-rendering:pixelated;-ms-interpolation-mode:nearest-neighbor;width:32px;height:32px}#container{width:100%;top:0}#search_wrapper{width:50em;padding:10px}.center #search_wrapper{margin-left:auto;margin-right:auto}.q{background:#FFF;border:1px solid #3498DB;color:#222;font-size:16px;height:28px;margin:0;outline:0;padding:2px 2px 2px 8px;padding-right:0!important;width:100%;z-index:2}#search_submit{top:15px;right:5px;padding:0;border:0;background:url(../img/search-icon-pixel.png) no-repeat;background-size:24px 24px;opacity:.8;width:24px;height:24px;font-size:0}@media screen and (max-width:50em){#search_wrapper{width:90%;clear:both;overflow:hidden}}.row{max-width:800px;margin:20px auto;text-align:justify}#pagination,.center{text-align:center}.row h1{font-size:3em;margin-top:50px}.row p{padding:0 10px;max-width:700px}.row h3,.row ul{margin:4px 8px}.hmarg{margin:0 20px;border:1px solid #3498DB;padding:4px 10px}a:active.hmarg,a:hover.hmarg,a:link.hmarg,a:visited.hmarg{color:#3498DB}.top_margin{margin-top:60px}h1{font-size:5em}div.title{background:url(../img/searx-pixel.png) center no-repeat;width:100%;min-height:80px}input[type=button],input[type=submit]{font-family:"Courier New",Courier,monospace;padding:4px 12px;margin:2px 4px;display:inline-block;background:#3498DB;color:#FFF;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;border:0;cursor:pointer}input[type=button]:disabled{cursor:progress}fieldset{margin:8px;border:1px solid #3498DB}#logo{top:13px;left:10px}#categories{margin:0 10px;-webkit-touch-callout:none;-webkit-user-select:none;-khtml-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.checkbox_container{display:inline-block;position:relative;margin:0 3px;padding:0}.checkbox_container input{display:none}.checkbox_container label,.engine_checkbox label{cursor:pointer;padding:4px 10px;margin:0;display:block;text-transform:capitalize;-webkit-touch-callout:none;-webkit-user-select:none;-khtml-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.checkbox_container input[type=checkbox]:checked+label{background:#3498DB;color:#FFF}.engine_checkbox{padding:4px}label.allow{background:#E74C3C;padding:4px 8px;color:#FFF;display:none}label.deny{background:#2ECC71;padding:4px 8px;color:#444;display:inline}.engine_checkbox input[type=checkbox]:checked+label:nth-child(2)+label{display:none}.engine_checkbox input[type=checkbox]:checked+label.allow{display:inline}#preferences *,.invisible{display:none}a{text-decoration:none;color:#1a11be}a:visited{color:#8E44AD}.engines{color:#888}.small_font{font-size:.8em}.small p{margin:2px 0}#apis,#search_url{margin-top:8px}.right{float:right}.favicon,.left{float:left}.highlight{color:#094089}.content .highlight{color:#000}.percentage{width:300px}.percentage div{background:#444}table{width:100%}td{padding:0 4px}tr:hover{background:#DDD}#results{margin:auto auto 20px;padding:0;width:50em}#search_url input{border:1px solid #888;padding:4px;color:#444;width:14em;display:block;margin:4px;font-size:.8em}#preferences{top:10px;padding:0;border:0;background:url(../img/preference-icon-pixel.png) no-repeat;background-size:28px 28px;opacity:.8;width:28px;height:30px;display:block}@media screen and (max-width:50em){#results{margin:auto;padding:0;width:90%}.checkbox_container{display:block;width:90%}.checkbox_container label{border-bottom:0}.preferences_container{display:none;postion:fixed!important;top:100px;right:0}}@media screen and (max-width:75em){div.title h1{font-size:1em}html.touch #categories{width:95%;height:30px;text-align:left;overflow-x:scroll;overflow-y:hidden;-webkit-overflow-scrolling:touch}html.touch #categories #categories_container{width:1000px;width:-moz-max-content;width:-webkit-max-content;width:max-content}html.touch #categories #categories_container .checkbox_container{display:inline-block;width:auto}#categories{font-size:90%;clear:both}#categories .checkbox_container{margin:auto}#apis,#logo,#search_url{display:none}}.favicon{margin-right:4px;margin-top:2px}.preferences_back{background:#3498DB;border:0;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;cursor:pointer;display:inline-block;margin:2px 4px;padding:4px 6px}.preferences_back a{color:#FFF}.hidden{opacity:0;overflow:hidden;font-size:.8em;position:absolute;bottom:-20px;width:100%;text-position:center;background:#fff;transition:opacity 1s ease}#categories_container:hover .hidden{transition:opacity 1s ease;opacity:.8} \ No newline at end of file
diff --git a/searx/static/themes/simple/css/searx-rtl.css b/searx/static/themes/simple/css/searx-rtl.css
index a4268d7f5..2e904e5eb 100644
--- a/searx/static/themes/simple/css/searx-rtl.css
+++ b/searx/static/themes/simple/css/searx-rtl.css
@@ -1,4 +1,4 @@
-/*! searx | 14-08-2018 | https://github.com/asciimoo/searx */
+/*! searx | 06-08-2019 | https://github.com/asciimoo/searx */
/*
* searx, A privacy-respecting, hackable metasearch engine
*
diff --git a/searx/static/themes/simple/css/searx-rtl.min.css b/searx/static/themes/simple/css/searx-rtl.min.css
index 5e532fe2c..fc54981b0 100644
--- a/searx/static/themes/simple/css/searx-rtl.min.css
+++ b/searx/static/themes/simple/css/searx-rtl.min.css
@@ -1 +1 @@
-/*! searx | 14-08-2018 | https://github.com/asciimoo/searx *//*! normalize.css v8.0.0 | MIT License | github.com/necolas/normalize.css */button,hr,input{overflow:visible}[type=checkbox],[type=radio],legend{padding:0;box-sizing:border-box}.badge,.center{text-align:center}.badge,progress,sub,sup{vertical-align:baseline}.autocomplete>ul,.list-unstyled{list-style-type:none}.tabs>section,legend{box-sizing:border-box}#main_preferences h1 span,#main_stats h1 span,.index h1{visibility:hidden}#apis,#pagination,#pagination br,#sidebar .infobox .attributes,#sidebar .infobox .urls,#sidebar .infobox br,.result .break,footer{clear:both}html{line-height:1.15}h1{font-size:2em;margin:.67em 0}hr{box-sizing:content-box;height:0}code,kbd,pre,samp{font-family:monospace,monospace;font-size:1em}a{background-color:transparent}abbr[title]{border-bottom:none;text-decoration:underline;text-decoration:underline dotted}b,strong{font-weight:bolder}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}img{border-style:none}button,input,optgroup,select,textarea{font-family:inherit;font-size:100%;line-height:1.15;margin:0}.highlight pre,textarea{overflow:auto}button,select{text-transform:none}[type=button],[type=reset],[type=submit],button{-webkit-appearance:button}[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner,button::-moz-focus-inner{border-style:none;padding:0}[type=button]:-moz-focusring,[type=reset]:-moz-focusring,[type=submit]:-moz-focusring,button:-moz-focusring{outline:ButtonText dotted 1px}fieldset{padding:.35em .75em .625em}legend{color:inherit;display:table;max-width:100%;white-space:normal}.badge,.search_box{white-space:nowrap}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}.highlight .c,.highlight .cm,.highlight .ge,.highlight .sd{font-style:italic}.dialog-error:before,.dialog-modal:before,.dialog-warning:before,.ion-icon-big:before,.ion-icon:before{font-family:ion}details{display:block}summary{display:list-item}[hidden],html.js .show_if_nojs,html.no-js .hide_if_nojs,template{display:none}.highlight .hll{background-color:#ffc}.highlight .c{color:#408080}.highlight .err{border:1px solid red}.highlight .k{color:green;font-weight:700}.highlight .o{color:#666}.highlight .cm{color:#408080}.highlight .cp{color:#BC7A00}.highlight .c1,.highlight .cs{color:#408080;font-style:italic}.highlight .gd{color:#A00000}.highlight .gr{color:red}.highlight .gh{color:navy;font-weight:700}.highlight .gi{color:#00A000}.highlight .go{color:#888}.highlight .gp{color:navy;font-weight:700}.highlight .gs{font-weight:700}.highlight .gu{color:purple;font-weight:700}.highlight .gt{color:#04D}.highlight .kc,.highlight .kd,.highlight .kn{color:green;font-weight:700}.highlight .kp{color:green}.highlight .kr{color:green;font-weight:700}.highlight .kt{color:#B00040}.highlight .m{color:#666}.highlight .s{color:#BA2121}.highlight .na{color:#7D9029}.highlight .nb{color:green}.highlight .nc{color:#00F;font-weight:700}.highlight .no{color:#800}.highlight .nd{color:#A2F}.highlight .ni{color:#999;font-weight:700}.highlight .ne{color:#D2413A;font-weight:700}.highlight .nf{color:#00F}.highlight .nl{color:#A0A000}.highlight .nn{color:#00F;font-weight:700}.highlight .nt{color:green;font-weight:700}.highlight .nv{color:#19177C}.highlight .ow{color:#A2F;font-weight:700}.highlight .w{color:#bbb}.highlight .mf,.highlight .mh,.highlight .mi,.highlight .mo{color:#666}.highlight .s2,.highlight .sb,.highlight .sc{color:#BA2121}.highlight .sd{color:#BA2121}.highlight .se{color:#B62;font-weight:700}.highlight .sh{color:#BA2121}.highlight .si{color:#B68;font-weight:700}.highlight .sx{color:green}.highlight .sr{color:#B68}.highlight .s1{color:#BA2121}.highlight .ss{color:#19177C}.highlight .bp{color:green}.highlight .vc,.highlight .vg,.highlight .vi{color:#19177C}.highlight .il{color:#666}.badge,kbd{color:#fff}.highlight .lineno{-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}.btn-collapse,.tabs>label,select:focus,select:hover{cursor:pointer}.highlight .lineno::selection{background:0 0}.highlight .lineno::-moz-selection{background:0 0}.right{float:right}.left{float:left}.invisible{display:none!important}.list-unstyled li{margin-top:4px;margin-bottom:4px}.danger{background-color:#fae1e1}.badge{display:inline-block;background-color:#777;min-width:10px;padding:1px 5px;border-radius:5px}.dialog-error tr,.dialog-modal tr,.dialog-warning tr{vertical-align:text-top}kbd{padding:2px 4px;margin:1px;font-size:90%;background:#000}table{width:100%}table.striped tr{border-bottom:1px solid #ececec}th{padding:.4em}td{padding:0 4px}tr:hover{background:#ececec}div.selectable_url{border:1px solid #888;padding:4px;color:#444;width:100%;display:block;margin:.1em;overflow:hidden;height:1.2em;line-height:1.2em}div.selectable_url pre{display:block;font-size:.8em;word-break:break-all;margin:.1em;-webkit-user-select:all;-moz-user-select:all;-ms-user-select:element;user-select:all}#categories,.tabs>label{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;-webkit-touch-callout:none;-khtml-user-select:none}.dialog-error{position:relative;width:70%;padding:1em 1em 1em 2.7em;margin:0 8% 1em;border:1px solid #db3434;border-radius:4px;text-align:left;color:#db3434;background:#fae1e1}.dialog-error:before{position:absolute;top:.5em;left:.5em;font-size:1.5em;content:"\f110"}.dialog-error .close{float:right;position:relative;top:-3px;color:inherit;font-size:1.5em}.dialog-error ol,.dialog-error p,.dialog-error ul{margin:1px 0 0}.dialog-error table{width:auto}.dialog-error tr:hover{background:0 0}.dialog-error td{padding:0 1em 0 0}.dialog-error h4{margin-top:.3em;margin-bottom:.3em}.dialog-warning{position:relative;width:70%;padding:1em 1em 1em 2.7em;margin:0 8% 1em;border:1px solid #dbba34;border-radius:4px;text-align:left;color:#dbba34;background:#faf5e1}.dialog-warning:before{position:absolute;top:.5em;left:.5em;font-size:1.5em;content:"\f10f"}.dialog-warning .close{float:right;position:relative;top:-3px;color:inherit;font-size:1.5em}.dialog-warning ol,.dialog-warning p,.dialog-warning ul{margin:1px 0 0}.dialog-warning table{width:auto}.dialog-warning tr:hover{background:0 0}.dialog-warning td{padding:0 1em 0 0}.dialog-warning h4{margin-top:.3em;margin-bottom:.3em}.dialog-modal{width:70%;padding:1em 1em 1em 2.7em;border:1px solid #000;border-radius:4px;text-align:left;background:#fff;position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);z-index:100000;margin:0 50% 0 0;box-shadow:0 0 1em}.dialog-modal:before{position:absolute;top:.5em;left:.5em;font-size:1.5em}.dialog-modal .close{float:right;position:relative;top:-3px;color:inherit;font-size:1.5em}.dialog-modal ol,.dialog-modal p,.dialog-modal ul{margin:1px 0 0}.dialog-modal table{width:auto}.dialog-modal tr:hover{background:0 0}.dialog-modal td{padding:0 1em 0 0}.dialog-modal h4{margin-top:.3em;margin-bottom:.3em}.scrollx{overflow-x:auto;overflow-y:hidden;display:block;padding:0;margin:0;border:none}.tabs .tabs>label{font-size:90%}.tabs{display:-webkit-box;display:-moz-box;display:-webkit-flex;display:-ms-flexbox;display:flex;flex-wrap:wrap;width:100%;min-width:100%}.tabs>*{order:2}.tabs>input[type=radio]{display:none}.tabs>label{order:1;padding:.7em;margin:0 .7em;letter-spacing:.5px;text-transform:uppercase;border:solid #fff;border-width:0 0 2px;user-select:none}.tabs>label:hover,.tabs>label:last-of-type{border-bottom:2px solid #084999}.tabs>section{min-width:100%;padding:.7rem 0;border-top:1px solid #000;display:none}.tabs>label:last-of-type{background:#3498DB;color:#FFF;font-weight:700;letter-spacing:-.1px}.tabs>section:last-of-type{display:block}html body .tabs>input:checked~section{display:none}html body .tabs>input:checked~label{position:inherited;background:inherit;border-bottom:2px solid transparent;font-weight:400;color:inherit}html body .tabs>input:checked~label:hover{border-bottom:2px solid #084999}html body .tabs>input:checked+label{border-bottom:2px solid #084999;background:#3498DB;color:#FFF;font-weight:700;letter-spacing:-.1px}html body .tabs>input:checked+label+section{display:block}select{height:28px;margin:0 1em 0 0;padding:2px 8px 2px 0!important;color:#222;font-size:12px;z-index:2}@supports ((background-position-x:100%) and ((appearance:none) or (-webkit-appearance:none) or (-moz-appearance:none))){select{appearance:none;-webkit-appearance:none;-moz-appearance:none;border:none;border-bottom:1px solid #d7d7d7;background:url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4KPCFET0NUWVBFIHN2ZyBQVUJMSUMgIi0vL1czQy8vRFREIFNWRyAxLjEvL0VOIiAiaHR0cDovL3d3dy53My5vcmcvR3JhcGhpY3MvU1ZHLzEuMS9EVEQvc3ZnMTEuZHRkIj4KPHN2ZyB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeD0iMHB4IiB5PSIwcHgiIHdpZHRoPSI1MTJweCIgaGVpZ2h0PSI1MTJweCIgdmlld0JveD0iMCAwIDUxMiA1MTIiIGVuYWJsZS1iYWNrZ3JvdW5kPSJuZXcgMCAwIDUxMiA1MTIiIHhtbDpzcGFjZT0icHJlc2VydmUiPjxnPjxwb2x5Z29uIHBvaW50cz0iMTI4LDE5MiAyNTYsMzIwIDM4NCwxOTIiLz48L2c+PC9zdmc+Cg==) no-repeat;background-position-x:105%;background-size:2em;background-origin:content-box;outline:0}select:focus,select:hover{border-bottom:1px solid #3498DB}}@supports (border-radius:50px){.checkbox-onoff{display:inline-block;width:40px;height:10px;background:#dcdcdc;margin:8px auto;position:relative;border-radius:50px}.checkbox-onoff label{display:block;width:20px;height:20px;position:absolute;top:-5px;cursor:pointer;border-radius:50px;box-shadow:0 3px 5px 0 rgba(0,0,0,.3);transition:all .4s ease;left:27px;background-color:#3498DB}.checkbox-onoff input[type=checkbox]{visibility:hidden}.checkbox-onoff input[type=checkbox]:checked+label{left:-5px;background:#dcdcdc}}@supports (transform:rotate(-45deg)){.checkbox{width:20px;position:relative;margin:20px auto}.checkbox label{width:20px;height:20px;cursor:pointer;position:absolute;top:0;left:0;background:#fff;border-radius:4px;box-shadow:inset 0 1px 1px #fff,0 1px 4px rgba(0,0,0,.5)}.checkbox label:after{content:'';width:9px;height:5px;position:absolute;top:4px;left:4px;border:3px solid #333;border-top:none;border-right:none;background:0 0;opacity:0;transform:rotate(-45deg)}.checkbox input[type=checkbox]{visibility:hidden}.checkbox input[type=checkbox]:checked+label:after{border-color:#3498DB;opacity:1}.checkbox input[disabled]+label{background-color:transparent!important;box-shadow:none!important;cursor:inherit}.checkbox input:not(:checked):not([readonly]):not([disabled])+label:hover::after{opacity:.5}}@media screen and (max-width:50em){.tabs>label{width:100%}}.loader,.loader:after{border-radius:50%;width:2em;height:2em}.loader{margin:1em auto;font-size:10px;position:relative;text-indent:-9999em;border-top:.5em solid rgba(0,0,0,.2);border-right:.5em solid rgba(0,0,0,.2);border-bottom:.5em solid rgba(0,0,0,.2);border-left:.5em solid rgba(255,255,255,0);-webkit-transform:translateZ(0);-ms-transform:translateZ(0);transform:translateZ(0);-webkit-animation:load8 1.2s infinite linear;animation:load8 1.2s infinite linear}@-webkit-keyframes load8{0%{-webkit-transform:rotate(0);transform:rotate(0)}100%{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}@keyframes load8{0%{-webkit-transform:rotate(0);transform:rotate(0)}100%{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}/*! Autocomplete.js v2.6.3 | license MIT | (c) 2017, Baptiste Donaux | http://autocomplete-js.com */.autocomplete{position:absolute;max-height:0;overflow-y:hidden;text-align:left}#categories_container,.category{position:relative}.autocomplete:active,.autocomplete:focus,.autocomplete:hover{background-color:#fff}#send_search:hover,.autocomplete>ul>li.active,.autocomplete>ul>li:active,.autocomplete>ul>li:focus{background-color:#3498DB}.autocomplete:empty{display:none}.autocomplete>ul{margin:0;padding:0}.autocomplete>ul>li{cursor:pointer;padding:5px 0 5px 10px}.autocomplete>ul>li.active a:active,.autocomplete>ul>li.active a:focus,.autocomplete>ul>li.active a:hover,.autocomplete>ul>li:active a:active,.autocomplete>ul>li:active a:focus,.autocomplete>ul>li:active a:hover,.autocomplete>ul>li:focus a:active,.autocomplete>ul>li:focus a:focus,.autocomplete>ul>li:focus a:hover{text-decoration:none}.autocomplete>ul>li.locked{cursor:inherit}.autocomplete.open{display:block;background-color:#fff;border:1px solid #3498DB;max-height:500px;overflow-y:auto;z-index:100}.autocomplete.open:empty{display:none}.ion-icon,.ion-icon-big{display:inline-block;line-height:1;font-weight:400;font-style:normal;speak:none;text-decoration:inherit;text-transform:none;text-rendering:auto;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;vertical-align:middle}@media screen and (max-width:50em){.autocomplete{bottom:0}.autocomplete>ul>li{padding:7px 0 7px 10px;border-bottom:1px solid #E8E7E6;text-align:left}}#main_preferences table td,.index{text-align:center}@font-face{font-family:ion;src:url(../fonts/ion.eot?ce7a0ead692560b4405a96d5b8471f51);src:url(../fonts/ion.eot?#iefix) format("embedded-opentype"),url(../fonts/ion.woff2?ce7a0ead692560b4405a96d5b8471f51) format("woff2"),url(../fonts/ion.woff?ce7a0ead692560b4405a96d5b8471f51) format("woff"),url(../fonts/ion.ttf?ce7a0ead692560b4405a96d5b8471f51) format("truetype"),url(../fonts/ion.svg?ce7a0ead692560b4405a96d5b8471f51#ion) format("svg");font-weight:400;font-style:normal}.ion-navicon-round:before{content:"\f101"}.ion-search:before{content:"\f102"}.ion-play:before{content:"\f103"}.ion-link:before{content:"\f104"}.ion-chevron-up:before{content:"\f105"}.ion-chevron-left:before{content:"\f106"}.ion-chevron-right:before{content:"\f107"}.ion-arrow-down-a:before{content:"\f108"}.ion-arrow-up-a:before{content:"\f109"}.ion-arrow-swap:before{content:"\f10a"}.ion-arrow-dropdown:before{content:"\f10b"}.ion-globe:before{content:"\f10c"}.ion-time:before{content:"\f10d"}.ion-location:before{content:"\f10e"}.ion-warning:before{content:"\f10f"}.ion-error:before{content:"\f110"}.ion-film-outline:before{content:"\f111"}.ion-music-note:before{content:"\f112"}.ion-more-vertical:before{content:"\f113"}.ion-magnet:before{content:"\f114"}.ion-close:before{content:"\f115"}.ion-icon-big{font-size:149%}.index .title{background:url(../img/searx.png) center no-repeat;width:100%;min-height:80px}.index h1{font-size:5em}.index #search{margin:0 auto;background:inherit;border:inherit}.index .search_filters{display:block;margin:1em 0}.index .category label{padding:6px 10px;border-bottom:initial!important}@media screen and (max-width:75em){div.title h1{font-size:1em}.preferences_back{clear:both}}#main_preferences form{width:100%}#main_preferences fieldset{margin:8px;border:none}#main_preferences legend{margin:0;padding:5px 0 0;display:block;float:left;width:300px}#main_preferences .value{margin:0;padding:0;float:left;width:15em}#main_preferences .description{margin:0;padding:5px 0 0;float:left;width:50%;color:#909090;font-size:90%}#main_preferences select{width:200px;font-size:inherit!important}#main_preferences table{border-collapse:collapse}#main_preferences table.cookies{width:auto}#main_preferences div.selectable_url pre,footer,main{width:100%}#main_preferences table.cookies td,#main_preferences table.cookies th{text-align:left;padding:.25em}#main_preferences table.cookies td:first-child,#main_preferences table.cookies th:first-child{padding-right:4em}#main_preferences table.cookies>tbody>tr:nth-child(even)>td,#main_preferences table.cookies>tbody>tr:nth-child(even)>th{background-color:#ececec}#main_preferences .name,#main_preferences .shortcut{text-align:left}#main_preferences .preferences_back{background:#3498DB;color:#fff;border:0;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;cursor:pointer;display:inline-block;margin:2px 4px;padding:.5em}#main_preferences .preferences_back a{display:block;color:#FFF}#main_preferences .preferences_back a::first-letter{text-transform:uppercase}#search{padding:0 2em;margin:0;background:#f7f7f7;border-bottom:1px solid #d7d7d7}#search_wrapper{padding:10px 0}.search_box{margin:0 12px 0 0;display:inline-flex;flex-direction:row}#clear_search,#q,#send_search{border-collapse:separate;box-sizing:border-box;margin:0;padding:2px;height:2.2em;background:#FFF;color:#222;font-size:16px;outline:0}#clear_search{display:block;width:1.8em;border-top:1px solid #3498DB;border-bottom:1px solid #3498DB;border-right:none;border-left:none;border-radius:0;z-index:10000}#clear_search:hover{color:#3498DB}#clear_search.empty *{display:none}#q::-ms-clear,#q::-webkit-search-cancel-button{display:none}#q,#send_search{display:block!important;border:1px solid #3498DB;border-radius:0;z-index:2}#q{outline:0;padding-left:8px;padding-right:0!important;border-right:none;width:40em}#send_search{border-left:none;width:2.2em}#send_search:hover{cursor:pointer;color:#ECF0F1}.no-js #send_search{width:auto!important}.search_filters{display:inline-block;vertical-align:middle}@media screen and (max-width:75em){#categories{font-size:90%;clear:both}#categories .checkbox_container{margin:auto}html.touch #main_index #categories_container,html.touch #main_results #categories_container{width:1000px;width:-moz-max-content;width:-webkit-max-content;width:max-content}html.touch #main_index #categories_container .category,html.touch #main_results #categories_container .category{display:inline-block;width:auto}html.touch #main_index #categories,html.touch #main_results #categories{width:100%;margin:0;text-align:left;overflow-x:scroll;overflow-y:hidden;-webkit-overflow-scrolling:touch}}@media screen and (max-width:50em){#search{width:100%;margin:0;padding:.1em 0 0}#search_wrapper{width:100%;margin:0 0 .7em;padding:0}.search_box{width:99%;margin:.1em;padding:0 .1em 0 0;display:flex;flex-direction:row}#q{width:auto!important;flex:1}.search_filters{display:block;margin:.5em}.language,.time_range{width:45%}.category{display:block;width:90%}.category label{border-bottom:0}}#categories{margin:0 10px 0 0;user-select:none}#categories::-webkit-scrollbar{width:0;height:0}.category{display:inline-block;margin:0 3px;padding:0}.category input{display:none}.category label{cursor:pointer;padding:4px 10px;margin:0;display:block;text-transform:capitalize;font-size:.9em;border-bottom:2px solid transparent;-webkit-touch-callout:none;-webkit-user-select:none;-khtml-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}body,html,main{padding:0;margin:0}.category input[type=checkbox]:focus+label{box-shadow:0 0 8px #3498DB}.category input[type=checkbox]:checked+label{background:#3498DB;color:#FFF;border-bottom:2px solid #084999}#categories_container .help{position:absolute;width:100%;bottom:-20px;overflow:hidden;opacity:0;transition:opacity 1s ease;font-size:.8em;text-position:center;background:#fff}footer p,html{font-size:.9em}#categories_container:hover .help{opacity:.8;transition:opacity 1s ease}html{font-family:arial,sans-serif;-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%;-moz-text-size-adjust:100%;text-size-adjust:100%;color:#444}#main_about,#main_preferences,#main_stats{margin:3em;width:auto}footer{bottom:0;height:3em;margin:1em 0;padding:1em 0;text-align:center}#main_preferences h1,#main_stats h1{background:url(../img/searx.png) no-repeat;background-size:auto 75%;min-height:40px;margin:0 auto}#results button[type=submit],input[type=submit]{padding:.5rem;margin:2px 4px;display:inline-block;background:#3498DB;color:#FFF;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;border:0;cursor:pointer}a{text-decoration:none;color:#29314d}a:visited,a:visited .highlight{color:#684898}article[data-vim-selected]{background:#f7f7f7}article[data-vim-selected]::before{position:absolute;left:1em;padding:2px;content:">";font-weight:700;color:#3498DB}article.result-images[data-vim-selected]{background:#3498DB}article.result-images[data-vim-selected]::before{display:none;content:""}.result{margin:19px 0 18px;padding:0}.result h3{font-size:1.1em;word-wrap:break-word;margin:5px 0 0;padding:0}.result h3 a{color:#084999;font-weight:400;font-size:1.1em}.result h3 a:visited{color:#684898}.result h3 a:focus,.result h3 a:hover{text-decoration:underline;border:none;-webkit-box-shadow:none;box-shadow:none;outline:0}.result .cache_link,.result .proxyfied_link{font-size:.9em!important}.result .altlink,.result .content,.result .stat,.result .url{font-size:.9em;padding:0;max-width:54em;word-wrap:break-word}.result .altlink,.result .content,.result .stat{margin:0;line-height:1.24}.result .altlink .highlight,.result .content .highlight,.result .stat .highlight{color:#000;background:inherit;font-weight:700}.result .codelines .highlight{color:inherit;background:inherit;font-weight:400}.result .url{margin:0 0 3px;color:#25a55b}.result .published_date{font-size:.8em;color:#888}.result img.thumbnail{float:left;padding:0 5px 10px 0;width:20em;min-width:20em;min-height:8em}.result img.image{float:left;padding:0 5px 10px 0;width:100px;max-height:100px;object-fit:scale-down;object-position:right top}.category-social .image{width:auto!important;min-width:48px;min-height:48px;padding:0 5px 25px 0!important}.result-videos .content{overflow:hidden}.engines{float:right;color:#888}.engines span{font-size:smaller;margin:0 .5em 0 0}.result-images,.result-images img{margin:0;padding:0;max-height:200px}.small_font{font-size:.8em}.highlight{color:#094089;background:inherit;font-weight:700}.result-images{display:inline-block;position:relative}.result-images img{float:inherit;border:none;background:#084999}.result-images span a{display:none;color:#FFF}.result-images:hover span a{display:block;position:absolute;bottom:0;right:0;padding:4px;margin:0 0 4px 4px;background-color:rgba(0,0,0,.6);font-size:.7em}.torrent_result{border-left:10px solid #d3d3d3;padding-left:3px}#answers,#backToTop,#sidebar .infobox{border:1px solid #ddd;box-shadow:0 0 5px #CCC}.torrent_result p{margin:3px;font-size:.8em}.torrent_result a{color:#084999}.torrent_result a:hover{text-decoration:underline}.torrent_result a:visited{color:#684898}#results{margin:2em 2em 20px;padding:0;width:50em}#suggestions .wrapper{display:flex;flex-flow:row wrap;justify-content:flex-end}#suggestions .wrapper form{display:inline-block;flex:1 1 50%}#answers,#corrections,#suggestions{max-width:50em}#answers input,#corrections input,#infoboxes input,#suggestions input{padding:0;margin:3px;font-size:.9em;display:inline-block;background:0 0;color:#444;cursor:pointer}#answers .infobox .url a,#answers input[type=submit],#corrections .infobox .url a,#corrections input[type=submit],#infoboxes .infobox .url a,#infoboxes input[type=submit],#suggestions .infobox .url a,#suggestions input[type=submit]{color:#084999;text-decoration:none;font-size:.9rem}#answers .infobox .url a:hover,#answers input[type=submit]:hover,#corrections .infobox .url a:hover,#corrections input[type=submit]:hover,#infoboxes .infobox .url a:hover,#infoboxes input[type=submit]:hover,#suggestions .infobox .url a:hover,#suggestions input[type=submit]:hover{text-decoration:underline}#corrections{display:flex;flex-flow:row wrap;margin:1em 0}#corrections h4,#corrections input[type=submit]{display:inline-block;margin:0 .5em 0 0}#corrections input[type=submit]::after{content:", "}#apis .title,#search_url .title,#suggestions .title{margin:2em 0 .5em;color:#444}#answers{margin:10px 8px;padding:.9em}#answers h4{display:none}#answers .answer{display:block;font-size:1.2em;font-weight:700}#answers form,#infoboxes form{min-width:210px}#sidebar{position:absolute;top:100px;left:57em;margin:0 2px 5px 5px;padding:0 2px 2px;max-width:25em;word-wrap:break-word}#sidebar .infobox{margin:10px 0;padding:.9em;font-size:.9em}#sidebar .infobox h2{margin:0 0 .5em}#sidebar .infobox img{max-width:100%;max-height:12em;display:block;margin:0;padding:0}#sidebar .infobox dl{margin:.5em 0}#sidebar .infobox dt{display:inline;margin:.5em .25em .5em 0;padding:0;font-weight:700}#sidebar .infobox dd{display:inline;margin:.5em 0;padding:0}#apis,#search_url{margin-top:8px}#sidebar .infobox input{font-size:1em}#search_url div.selectable_url pre{width:200em}#linkto_preferences{position:absolute;right:10px;top:.9em;padding:0;border:0;display:block;font-size:1.2em;color:#222}#linkto_preferences a:active *,#linkto_preferences a:hover *,#linkto_preferences a:link *,#linkto_preferences a:visited *{color:#222}#backToTop{margin:0 0 0 2em;padding:0;font-size:1em;background:#fff;position:fixed;bottom:85px;left:50em;transition:opacity .5s;opacity:0}#backToTop a{display:block;margin:0;padding:.6em}@media screen and (max-width:75em){#main_about,#main_preferences,#main_stats{margin:.5em;width:auto}#answers,#suggestions{margin-top:1em}#infoboxes{position:inherit;max-width:inherit}#infoboxes .infobox{clear:both}#infoboxes .infobox img{float:left;max-width:10em;margin:.5em .5em .5em 0}#sidebar{position:static;max-width:50em;margin:0 0 2px;padding:0;float:none;border:none;width:auto}.image_result,.image_result img,.result .thumbnail{max-width:98%}#sidebar input{border:0}#apis,#search_url{display:none}.result{border-bottom:1px solid #E8E7E6;margin:0;padding-top:8px;padding-bottom:6px}.result h3{margin:0 0 1px}.result .url span.url{display:block;white-space:nowrap;text-overflow:ellipsis;overflow:hidden;width:100%}.result .url a{float:right;padding:0 .5em}.result .engines{float:right;padding:0 0 3px}.result-images{border-bottom:none!important}}#main_results div#results.only_template_images{flex-direction:column;width:auto;display:flex}#main_results div#results.only_template_images #sidebar{position:relative;top:auto;order:2}#main_results div#results.only_template_images #urls{position:relative;order:1}#main_results div#results.only_template_images #backToTop{right:.5em;left:auto}#main_results div#results.only_template_images #pagination{position:relative;order:3}@media screen and (max-width:50em){article[data-vim-selected]::before{display:none;content:""}#linkto_preferences{display:none;postion:fixed!important;top:100px;right:0}#sidebar{margin:0 5px 2px}#corrections{margin:1em 5px}#results{margin:0;padding:0;width:initial}#backToTop{left:40em;bottom:35px}.result{padding:8px 10px 6px}.result-images{margin:0;padding:0;border:none}}@media screen and (max-width:35em){.result-videos img.thumbnail{float:none!important}.result-videos .content{overflow:inherit}}#search_submit{left:1px;right:auto} \ No newline at end of file
+/*! searx | 06-08-2019 | https://github.com/asciimoo/searx *//*! normalize.css v8.0.0 | MIT License | github.com/necolas/normalize.css */button,hr,input{overflow:visible}[type=checkbox],[type=radio],legend{padding:0;box-sizing:border-box}.badge,.center{text-align:center}.badge,progress,sub,sup{vertical-align:baseline}.autocomplete>ul,.list-unstyled{list-style-type:none}.tabs>section,legend{box-sizing:border-box}#main_preferences h1 span,#main_stats h1 span,.index h1{visibility:hidden}#apis,#pagination,#pagination br,#sidebar .infobox .attributes,#sidebar .infobox .urls,#sidebar .infobox br,.result .break,footer{clear:both}html{line-height:1.15}h1{font-size:2em;margin:.67em 0}hr{box-sizing:content-box;height:0}code,kbd,pre,samp{font-family:monospace,monospace;font-size:1em}a{background-color:transparent}abbr[title]{border-bottom:none;text-decoration:underline;text-decoration:underline dotted}b,strong{font-weight:bolder}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}img{border-style:none}button,input,optgroup,select,textarea{font-family:inherit;font-size:100%;line-height:1.15;margin:0}.highlight pre,textarea{overflow:auto}button,select{text-transform:none}[type=button],[type=reset],[type=submit],button{-webkit-appearance:button}[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner,button::-moz-focus-inner{border-style:none;padding:0}[type=button]:-moz-focusring,[type=reset]:-moz-focusring,[type=submit]:-moz-focusring,button:-moz-focusring{outline:ButtonText dotted 1px}fieldset{padding:.35em .75em .625em}legend{color:inherit;display:table;max-width:100%;white-space:normal}.badge,.search_box{white-space:nowrap}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}.highlight .c,.highlight .cm,.highlight .ge,.highlight .sd{font-style:italic}.dialog-error:before,.dialog-modal:before,.dialog-warning:before,.ion-icon-big:before,.ion-icon:before{font-family:ion}details{display:block}summary{display:list-item}[hidden],html.js .show_if_nojs,html.no-js .hide_if_nojs,template{display:none}.highlight .hll{background-color:#ffc}.highlight .c{color:#408080}.highlight .err{border:1px solid red}.highlight .k{color:green;font-weight:700}.highlight .o{color:#666}.highlight .cm{color:#408080}.highlight .cp{color:#BC7A00}.highlight .c1,.highlight .cs{color:#408080;font-style:italic}.highlight .gd{color:#A00000}.highlight .gr{color:red}.highlight .gh{color:navy;font-weight:700}.highlight .gi{color:#00A000}.highlight .go{color:#888}.highlight .gp{color:navy;font-weight:700}.highlight .gs{font-weight:700}.highlight .gu{color:purple;font-weight:700}.highlight .gt{color:#04D}.highlight .kc,.highlight .kd,.highlight .kn{color:green;font-weight:700}.highlight .kp{color:green}.highlight .kr{color:green;font-weight:700}.highlight .kt{color:#B00040}.highlight .m{color:#666}.highlight .s{color:#BA2121}.highlight .na{color:#7D9029}.highlight .nb{color:green}.highlight .nc{color:#00F;font-weight:700}.highlight .no{color:#800}.highlight .nd{color:#A2F}.highlight .ni{color:#999;font-weight:700}.highlight .ne{color:#D2413A;font-weight:700}.highlight .nf{color:#00F}.highlight .nl{color:#A0A000}.highlight .nn{color:#00F;font-weight:700}.highlight .nt{color:green;font-weight:700}.highlight .nv{color:#19177C}.highlight .ow{color:#A2F;font-weight:700}.highlight .w{color:#bbb}.highlight .mf,.highlight .mh,.highlight .mi,.highlight .mo{color:#666}.highlight .s2,.highlight .sb,.highlight .sc{color:#BA2121}.highlight .sd{color:#BA2121}.highlight .se{color:#B62;font-weight:700}.highlight .sh{color:#BA2121}.highlight .si{color:#B68;font-weight:700}.highlight .sx{color:green}.highlight .sr{color:#B68}.highlight .s1{color:#BA2121}.highlight .ss{color:#19177C}.highlight .bp{color:green}.highlight .vc,.highlight .vg,.highlight .vi{color:#19177C}.highlight .il{color:#666}.badge,kbd{color:#fff}.highlight .lineno{-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}.btn-collapse,.tabs>label,select:focus,select:hover{cursor:pointer}.highlight .lineno::selection{background:0 0}.highlight .lineno::-moz-selection{background:0 0}.right{float:right}.left{float:left}.invisible{display:none!important}.list-unstyled li{margin-top:4px;margin-bottom:4px}.danger{background-color:#fae1e1}.badge{display:inline-block;background-color:#777;min-width:10px;padding:1px 5px;border-radius:5px}.dialog-error tr,.dialog-modal tr,.dialog-warning tr{vertical-align:text-top}kbd{padding:2px 4px;margin:1px;font-size:90%;background:#000}table{width:100%}table.striped tr{border-bottom:1px solid #ececec}th{padding:.4em}td{padding:0 4px}tr:hover{background:#ececec}div.selectable_url{border:1px solid #888;padding:4px;color:#444;width:100%;display:block;margin:.1em;overflow:hidden;height:1.2em;line-height:1.2em}div.selectable_url pre{display:block;font-size:.8em;word-break:break-all;margin:.1em;-webkit-user-select:all;-moz-user-select:all;-ms-user-select:element;user-select:all}#categories,.tabs>label{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;-webkit-touch-callout:none;-khtml-user-select:none}.dialog-error{position:relative;width:70%;padding:1em 1em 1em 2.7em;margin:0 8% 1em;border:1px solid #db3434;border-radius:4px;text-align:left;color:#db3434;background:#fae1e1}.dialog-error:before{position:absolute;top:.5em;left:.5em;font-size:1.5em;content:"\f110"}.dialog-error .close{float:right;position:relative;top:-3px;color:inherit;font-size:1.5em}.dialog-error ol,.dialog-error p,.dialog-error ul{margin:1px 0 0}.dialog-error table{width:auto}.dialog-error tr:hover{background:0 0}.dialog-error td{padding:0 1em 0 0}.dialog-error h4{margin-top:.3em;margin-bottom:.3em}.dialog-warning{position:relative;width:70%;padding:1em 1em 1em 2.7em;margin:0 8% 1em;border:1px solid #dbba34;border-radius:4px;text-align:left;color:#dbba34;background:#faf5e1}.dialog-warning:before{position:absolute;top:.5em;left:.5em;font-size:1.5em;content:"\f10f"}.dialog-warning .close{float:right;position:relative;top:-3px;color:inherit;font-size:1.5em}.dialog-warning ol,.dialog-warning p,.dialog-warning ul{margin:1px 0 0}.dialog-warning table{width:auto}.dialog-warning tr:hover{background:0 0}.dialog-warning td{padding:0 1em 0 0}.dialog-warning h4{margin-top:.3em;margin-bottom:.3em}.dialog-modal{width:70%;padding:1em 1em 1em 2.7em;border:1px solid #000;border-radius:4px;text-align:left;background:#fff;position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);z-index:100000;margin:0 50% 0 0;box-shadow:0 0 1em}.dialog-modal:before{position:absolute;top:.5em;left:.5em;font-size:1.5em}.dialog-modal .close{float:right;position:relative;top:-3px;color:inherit;font-size:1.5em}.dialog-modal ol,.dialog-modal p,.dialog-modal ul{margin:1px 0 0}.dialog-modal table{width:auto}.dialog-modal tr:hover{background:0 0}.dialog-modal td{padding:0 1em 0 0}.dialog-modal h4{margin-top:.3em;margin-bottom:.3em}.scrollx{overflow-x:auto;overflow-y:hidden;display:block;padding:0;margin:0;border:none}.tabs .tabs>label{font-size:90%}.tabs{display:-webkit-box;display:-moz-box;display:-webkit-flex;display:-ms-flexbox;display:flex;flex-wrap:wrap;width:100%;min-width:100%}.tabs>*{order:2}.tabs>input[type=radio]{display:none}.tabs>label{order:1;padding:.7em;margin:0 .7em;letter-spacing:.5px;text-transform:uppercase;border:solid #fff;border-width:0 0 2px;user-select:none}.tabs>label:hover,.tabs>label:last-of-type{border-bottom:2px solid #084999}.tabs>section{min-width:100%;padding:.7rem 0;border-top:1px solid #000;display:none}.tabs>label:last-of-type{background:#3498DB;color:#FFF;font-weight:700;letter-spacing:-.1px}.tabs>section:last-of-type{display:block}html body .tabs>input:checked~section{display:none}html body .tabs>input:checked~label{position:inherited;background:inherit;border-bottom:2px solid transparent;font-weight:400;color:inherit}html body .tabs>input:checked~label:hover{border-bottom:2px solid #084999}html body .tabs>input:checked+label{border-bottom:2px solid #084999;background:#3498DB;color:#FFF;font-weight:700;letter-spacing:-.1px}html body .tabs>input:checked+label+section{display:block}select{height:28px;margin:0 1em 0 0;padding:2px 8px 2px 0!important;color:#222;font-size:12px;z-index:2}@supports ((background-position-x:100%) and ((appearance:none) or (-webkit-appearance:none) or (-moz-appearance:none))){select{appearance:none;-webkit-appearance:none;-moz-appearance:none;border:none;border-bottom:1px solid #d7d7d7;background:url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4KPCFET0NUWVBFIHN2ZyBQVUJMSUMgIi0vL1czQy8vRFREIFNWRyAxLjEvL0VOIiAiaHR0cDovL3d3dy53My5vcmcvR3JhcGhpY3MvU1ZHLzEuMS9EVEQvc3ZnMTEuZHRkIj4KPHN2ZyB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeD0iMHB4IiB5PSIwcHgiIHdpZHRoPSI1MTJweCIgaGVpZ2h0PSI1MTJweCIgdmlld0JveD0iMCAwIDUxMiA1MTIiIGVuYWJsZS1iYWNrZ3JvdW5kPSJuZXcgMCAwIDUxMiA1MTIiIHhtbDpzcGFjZT0icHJlc2VydmUiPjxnPjxwb2x5Z29uIHBvaW50cz0iMTI4LDE5MiAyNTYsMzIwIDM4NCwxOTIiLz48L2c+PC9zdmc+Cg==) no-repeat;background-position-x:105%;background-size:2em;background-origin:content-box;outline:0}select:focus,select:hover{border-bottom:1px solid #3498DB}}@supports (border-radius:50px){.checkbox-onoff{display:inline-block;width:40px;height:10px;background:#dcdcdc;margin:8px auto;position:relative;border-radius:50px}.checkbox-onoff label{display:block;width:20px;height:20px;position:absolute;top:-5px;cursor:pointer;border-radius:50px;box-shadow:0 3px 5px 0 rgba(0,0,0,.3);transition:all .4s ease;left:27px;background-color:#3498DB}.checkbox-onoff input[type=checkbox]{visibility:hidden}.checkbox-onoff input[type=checkbox]:checked+label{left:-5px;background:#dcdcdc}}@supports (transform:rotate(-45deg)){.checkbox{width:20px;position:relative;margin:20px auto}.checkbox label{width:20px;height:20px;cursor:pointer;position:absolute;top:0;left:0;background:#fff;border-radius:4px;box-shadow:inset 0 1px 1px #fff,0 1px 4px rgba(0,0,0,.5)}.checkbox label:after{content:'';width:9px;height:5px;position:absolute;top:4px;left:4px;border:3px solid #333;border-top:none;border-right:none;background:0 0;opacity:0;transform:rotate(-45deg)}.checkbox input[type=checkbox]{visibility:hidden}.checkbox input[type=checkbox]:checked+label:after{border-color:#3498DB;opacity:1}.checkbox input[disabled]+label{background-color:transparent!important;box-shadow:none!important;cursor:inherit}.checkbox input:not(:checked):not([readonly]):not([disabled])+label:hover::after{opacity:.5}}@media screen and (max-width:50em){.tabs>label{width:100%}}.loader,.loader:after{border-radius:50%;width:2em;height:2em}.loader{margin:1em auto;font-size:10px;position:relative;text-indent:-9999em;border-top:.5em solid rgba(0,0,0,.2);border-right:.5em solid rgba(0,0,0,.2);border-bottom:.5em solid rgba(0,0,0,.2);border-left:.5em solid rgba(255,255,255,0);-webkit-transform:translateZ(0);-ms-transform:translateZ(0);transform:translateZ(0);-webkit-animation:load8 1.2s infinite linear;animation:load8 1.2s infinite linear}@-webkit-keyframes load8{0%{-webkit-transform:rotate(0);transform:rotate(0)}100%{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}@keyframes load8{0%{-webkit-transform:rotate(0);transform:rotate(0)}100%{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}/*! Autocomplete.js v2.6.3 | license MIT | (c) 2017, Baptiste Donaux | http://autocomplete-js.com */.autocomplete{position:absolute;max-height:0;overflow-y:hidden;text-align:left}#categories_container,.category{position:relative}.autocomplete:active,.autocomplete:focus,.autocomplete:hover{background-color:#fff}#send_search:hover,.autocomplete>ul>li.active,.autocomplete>ul>li:active,.autocomplete>ul>li:focus{background-color:#3498DB}.autocomplete:empty{display:none}.autocomplete>ul{margin:0;padding:0}.autocomplete>ul>li{cursor:pointer;padding:5px 0 5px 10px}.autocomplete>ul>li.active a:active,.autocomplete>ul>li.active a:focus,.autocomplete>ul>li.active a:hover,.autocomplete>ul>li:active a:active,.autocomplete>ul>li:active a:focus,.autocomplete>ul>li:active a:hover,.autocomplete>ul>li:focus a:active,.autocomplete>ul>li:focus a:focus,.autocomplete>ul>li:focus a:hover{text-decoration:none}.autocomplete>ul>li.locked{cursor:inherit}.autocomplete.open{display:block;background-color:#fff;border:1px solid #3498DB;max-height:500px;overflow-y:auto;z-index:100}.autocomplete.open:empty{display:none}.ion-icon,.ion-icon-big{display:inline-block;line-height:1;font-weight:400;font-style:normal;speak:none;text-decoration:inherit;text-transform:none;text-rendering:auto;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;vertical-align:middle}@media screen and (max-width:50em){.autocomplete{bottom:0}.autocomplete>ul>li{padding:7px 0 7px 10px;border-bottom:1px solid #E8E7E6;text-align:left}}#main_preferences table td,.index{text-align:center}@font-face{font-family:ion;src:url(../fonts/ion.eot?ce7a0ead692560b4405a96d5b8471f51);src:url(../fonts/ion.eot?#iefix) format("embedded-opentype"),url(../fonts/ion.woff2?ce7a0ead692560b4405a96d5b8471f51) format("woff2"),url(../fonts/ion.woff?ce7a0ead692560b4405a96d5b8471f51) format("woff"),url(../fonts/ion.ttf?ce7a0ead692560b4405a96d5b8471f51) format("truetype"),url(../fonts/ion.svg?ce7a0ead692560b4405a96d5b8471f51#ion) format("svg");font-weight:400;font-style:normal}.ion-navicon-round:before{content:"\f101"}.ion-search:before{content:"\f102"}.ion-play:before{content:"\f103"}.ion-link:before{content:"\f104"}.ion-chevron-up:before{content:"\f105"}.ion-chevron-left:before{content:"\f106"}.ion-chevron-right:before{content:"\f107"}.ion-arrow-down-a:before{content:"\f108"}.ion-arrow-up-a:before{content:"\f109"}.ion-arrow-swap:before{content:"\f10a"}.ion-arrow-dropdown:before{content:"\f10b"}.ion-globe:before{content:"\f10c"}.ion-time:before{content:"\f10d"}.ion-location:before{content:"\f10e"}.ion-warning:before{content:"\f10f"}.ion-error:before{content:"\f110"}.ion-film-outline:before{content:"\f111"}.ion-music-note:before{content:"\f112"}.ion-more-vertical:before{content:"\f113"}.ion-magnet:before{content:"\f114"}.ion-close:before{content:"\f115"}.ion-icon-big{font-size:149%}.index .title{background:url(../img/searx.png) center no-repeat;width:100%;min-height:80px}.index h1{font-size:5em}.index #search{margin:0 auto;background:inherit;border:inherit}.index .search_filters{display:block;margin:1em 0}.index .category label{padding:6px 10px;border-bottom:initial!important}@media screen and (max-width:75em){div.title h1{font-size:1em}.preferences_back{clear:both}}#main_preferences form{width:100%}#main_preferences fieldset{margin:8px;border:none}#main_preferences legend{margin:0;padding:5px 0 0;display:block;float:left;width:300px}#main_preferences .value{margin:0;padding:0;float:left;width:15em}#main_preferences .description{margin:0;padding:5px 0 0;float:left;width:50%;color:#909090;font-size:90%}#main_preferences select{width:200px;font-size:inherit!important}#main_preferences table{border-collapse:collapse}#main_preferences table.cookies{width:auto}#main_preferences div.selectable_url pre,footer,main{width:100%}#main_preferences table.cookies td,#main_preferences table.cookies th{text-align:left;padding:.25em}#main_preferences table.cookies td:first-child,#main_preferences table.cookies th:first-child{padding-right:4em}#main_preferences table.cookies>tbody>tr:nth-child(even)>td,#main_preferences table.cookies>tbody>tr:nth-child(even)>th{background-color:#ececec}#main_preferences .name,#main_preferences .shortcut{text-align:left}#main_preferences .preferences_back{background:#3498DB;color:#fff;border:0;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;cursor:pointer;display:inline-block;margin:2px 4px;padding:.5em}#main_preferences .preferences_back a{display:block;color:#FFF}#main_preferences .preferences_back a::first-letter{text-transform:uppercase}#search{padding:0 2em;margin:0;background:#f7f7f7;border-bottom:1px solid #d7d7d7}#search_wrapper{padding:10px 0}.search_box{margin:0 12px 0 0;display:inline-flex;flex-direction:row}#clear_search,#q,#send_search{border-collapse:separate;box-sizing:border-box;margin:0;padding:2px;height:2.2em;background:#FFF;color:#222;font-size:16px;outline:0}#clear_search{display:block;width:1.8em;border-top:1px solid #3498DB;border-bottom:1px solid #3498DB;border-right:none;border-left:none;border-radius:0;z-index:10000}#clear_search:hover{color:#3498DB}#clear_search.empty *{display:none}#q::-ms-clear,#q::-webkit-search-cancel-button{display:none}#q,#send_search{display:block!important;border:1px solid #3498DB;border-radius:0;z-index:2}#q{outline:0;padding-left:8px;padding-right:0!important;border-right:none;width:40em}#send_search{border-left:none;width:2.2em}#send_search:hover{cursor:pointer;color:#ECF0F1}.no-js #send_search{width:auto!important}.search_filters{display:inline-block;vertical-align:middle}@media screen and (max-width:75em){#categories{font-size:90%;clear:both}#categories .checkbox_container{margin:auto}html.touch #main_index #categories_container,html.touch #main_results #categories_container{width:1000px;width:-moz-max-content;width:-webkit-max-content;width:max-content}html.touch #main_index #categories_container .category,html.touch #main_results #categories_container .category{display:inline-block;width:auto}html.touch #main_index #categories,html.touch #main_results #categories{width:100%;margin:0;text-align:left;overflow-x:scroll;overflow-y:hidden;-webkit-overflow-scrolling:touch}}@media screen and (max-width:50em){#search{width:100%;margin:0;padding:.1em 0 0}#search_wrapper{width:100%;margin:0 0 .7em;padding:0}.search_box{width:99%;margin:.1em;padding:0 .1em 0 0;display:flex;flex-direction:row}#q{width:auto!important;flex:1}.search_filters{display:block;margin:.5em}.language,.time_range{width:45%}.category{display:block;width:90%}.category label{border-bottom:0}}#categories{margin:0 10px 0 0;user-select:none}#categories::-webkit-scrollbar{width:0;height:0}.category{display:inline-block;margin:0 3px;padding:0}.category input{display:none}.category label{cursor:pointer;padding:4px 10px;margin:0;display:block;text-transform:capitalize;font-size:.9em;border-bottom:2px solid transparent;-webkit-touch-callout:none;-webkit-user-select:none;-khtml-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}body,html,main{padding:0;margin:0}.category input[type=checkbox]:focus+label{box-shadow:0 0 8px #3498DB}.category input[type=checkbox]:checked+label{background:#3498DB;color:#FFF;border-bottom:2px solid #084999}#categories_container .help{position:absolute;width:100%;bottom:-20px;overflow:hidden;opacity:0;transition:opacity 1s ease;font-size:.8em;text-position:center;background:#fff}footer p,html{font-size:.9em}#categories_container:hover .help{opacity:.8;transition:opacity 1s ease}html{font-family:arial,sans-serif;-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%;-moz-text-size-adjust:100%;text-size-adjust:100%;color:#444}#main_about,#main_preferences,#main_stats{margin:3em;width:auto}footer{bottom:0;height:3em;margin:1em 0;padding:1em 0;text-align:center}#main_preferences h1,#main_stats h1{background:url(../img/searx.png) no-repeat;background-size:auto 75%;min-height:40px;margin:0 auto}#results button[type=submit],input[type=submit]{padding:.5rem;margin:2px 4px;display:inline-block;background:#3498DB;color:#FFF;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;border:0;cursor:pointer}a{text-decoration:none;color:#29314d}a:visited,a:visited .highlight{color:#684898}article[data-vim-selected]{background:#f7f7f7}article[data-vim-selected]::before{position:absolute;left:1em;padding:2px;content:">";font-weight:700;color:#3498DB}article.result-images[data-vim-selected]{background:#3498DB}article.result-images[data-vim-selected]::before{display:none;content:""}.result{margin:19px 0 18px;padding:0}.result h3{font-size:1.1em;word-wrap:break-word;margin:5px 0 0;padding:0}.result h3 a{color:#084999;font-weight:400;font-size:1.1em}.result h3 a:visited{color:#684898}.result h3 a:focus,.result h3 a:hover{text-decoration:underline;border:none;-webkit-box-shadow:none;box-shadow:none;outline:0}.result .cache_link,.result .proxyfied_link{font-size:.9em!important}.result .altlink,.result .content,.result .stat,.result .url{font-size:.9em;padding:0;max-width:54em;word-wrap:break-word}.result .altlink,.result .content,.result .stat{margin:0;line-height:1.24}.result .altlink .highlight,.result .content .highlight,.result .stat .highlight{color:#000;background:inherit;font-weight:700}.result .codelines .highlight{color:inherit;background:inherit;font-weight:400}.result .url{margin:0 0 3px;color:#25a55b}.result .published_date{font-size:.8em;color:#888}.result img.thumbnail{float:left;padding:0 5px 10px 0;width:20em;min-width:20em;min-height:8em}.result img.image{float:left;padding:0 5px 10px 0;width:100px;max-height:100px;object-fit:scale-down;object-position:right top}.category-social .image{width:auto!important;min-width:48px;min-height:48px;padding:0 5px 25px 0!important}.result-videos .content{overflow:hidden}.engines{float:right;color:#888}.engines span{font-size:smaller;margin:0 .5em 0 0}.result-images,.result-images img{margin:0;padding:0;max-height:200px}.small_font{font-size:.8em}.highlight{color:#094089;background:inherit;font-weight:700}.result-images{display:inline-block;position:relative}.result-images img{float:inherit;border:none;background:#084999}.result-images span a{display:none;color:#FFF}.result-images:hover span a{display:block;position:absolute;bottom:0;right:0;padding:4px;margin:0 0 4px 4px;background-color:rgba(0,0,0,.6);font-size:.7em}.torrent_result{border-left:10px solid #d3d3d3;padding-left:3px}#answers,#backToTop,#sidebar .infobox{border:1px solid #ddd;box-shadow:0 0 5px #CCC}.torrent_result p{margin:3px;font-size:.8em}.torrent_result a{color:#084999}.torrent_result a:hover{text-decoration:underline}.torrent_result a:visited{color:#684898}#results{margin:2em 2em 20px;padding:0;width:50em}#suggestions .wrapper{display:flex;flex-flow:row wrap;justify-content:flex-end}#suggestions .wrapper form{display:inline-block;flex:1 1 50%}#answers,#corrections,#suggestions{max-width:50em}#answers input,#corrections input,#infoboxes input,#suggestions input{padding:0;margin:3px;font-size:.9em;display:inline-block;background:0 0;color:#444;cursor:pointer}#answers .infobox .url a,#answers input[type=submit],#corrections .infobox .url a,#corrections input[type=submit],#infoboxes .infobox .url a,#infoboxes input[type=submit],#suggestions .infobox .url a,#suggestions input[type=submit]{color:#084999;text-decoration:none;font-size:.9rem}#answers .infobox .url a:hover,#answers input[type=submit]:hover,#corrections .infobox .url a:hover,#corrections input[type=submit]:hover,#infoboxes .infobox .url a:hover,#infoboxes input[type=submit]:hover,#suggestions .infobox .url a:hover,#suggestions input[type=submit]:hover{text-decoration:underline}#corrections{display:flex;flex-flow:row wrap;margin:1em 0}#corrections h4,#corrections input[type=submit]{display:inline-block;margin:0 .5em 0 0}#corrections input[type=submit]::after{content:", "}#apis .title,#search_url .title,#suggestions .title{margin:2em 0 .5em;color:#444}#answers{margin:10px 8px;padding:.9em}#answers h4{display:none}#answers .answer{display:block;font-size:1.2em;font-weight:700}#answers form,#infoboxes form{min-width:210px}#sidebar{position:absolute;top:100px;left:57em;margin:0 2px 5px 5px;padding:0 2px 2px;max-width:25em;word-wrap:break-word}#sidebar .infobox{margin:10px 0;padding:.9em;font-size:.9em}#sidebar .infobox h2{margin:0 0 .5em}#sidebar .infobox img{max-width:100%;max-height:12em;display:block;margin:0;padding:0}#sidebar .infobox dl{margin:.5em 0}#sidebar .infobox dt{display:inline;margin:.5em .25em .5em 0;padding:0;font-weight:700}#sidebar .infobox dd{display:inline;margin:.5em 0;padding:0}#apis,#search_url{margin-top:8px}#sidebar .infobox input{font-size:1em}#search_url div.selectable_url pre{width:200em}#linkto_preferences{position:absolute;right:10px;top:.9em;padding:0;border:0;display:block;font-size:1.2em;color:#222}#linkto_preferences a:active *,#linkto_preferences a:hover *,#linkto_preferences a:link *,#linkto_preferences a:visited *{color:#222}#backToTop{margin:0 0 0 2em;padding:0;font-size:1em;background:#fff;position:fixed;bottom:85px;left:50em;transition:opacity .5s;opacity:0}#backToTop a{display:block;margin:0;padding:.6em}@media screen and (max-width:75em){#main_about,#main_preferences,#main_stats{margin:.5em;width:auto}#answers,#suggestions{margin-top:1em}#infoboxes{position:inherit;max-width:inherit}#infoboxes .infobox{clear:both}#infoboxes .infobox img{float:left;max-width:10em;margin:.5em .5em .5em 0}#sidebar{position:static;max-width:50em;margin:0 0 2px;padding:0;float:none;border:none;width:auto}.image_result,.image_result img,.result .thumbnail{max-width:98%}#sidebar input{border:0}#apis,#search_url{display:none}.result{border-bottom:1px solid #E8E7E6;margin:0;padding-top:8px;padding-bottom:6px}.result h3{margin:0 0 1px}.result .url span.url{display:block;white-space:nowrap;text-overflow:ellipsis;overflow:hidden;width:100%}.result .url a{float:right;padding:0 .5em}.result .engines{float:right;padding:0 0 3px}.result-images{border-bottom:none!important}}#main_results div#results.only_template_images{flex-direction:column;width:auto;display:flex}#main_results div#results.only_template_images #sidebar{position:relative;top:auto;order:2}#main_results div#results.only_template_images #urls{position:relative;order:1}#main_results div#results.only_template_images #backToTop{right:.5em;left:auto}#main_results div#results.only_template_images #pagination{position:relative;order:3}@media screen and (max-width:50em){article[data-vim-selected]::before{display:none;content:""}#linkto_preferences{display:none;postion:fixed!important;top:100px;right:0}#sidebar{margin:0 5px 2px}#corrections{margin:1em 5px}#results{margin:0;padding:0;width:initial}#backToTop{left:40em;bottom:35px}.result{padding:8px 10px 6px}.result-images{margin:0;padding:0;border:none}}@media screen and (max-width:35em){.result-videos img.thumbnail{float:none!important}.result-videos .content{overflow:inherit}}#search_submit{left:1px;right:auto} \ No newline at end of file
diff --git a/searx/static/themes/simple/css/searx.css b/searx/static/themes/simple/css/searx.css
index 55171c0af..697f46b0e 100644
--- a/searx/static/themes/simple/css/searx.css
+++ b/searx/static/themes/simple/css/searx.css
@@ -1,4 +1,4 @@
-/*! searx | 14-08-2018 | https://github.com/asciimoo/searx */
+/*! searx | 06-08-2019 | https://github.com/asciimoo/searx */
/*
* searx, A privacy-respecting, hackable metasearch engine
*
diff --git a/searx/static/themes/simple/css/searx.min.css b/searx/static/themes/simple/css/searx.min.css
index a0e68d032..5dc9fd30b 100644
--- a/searx/static/themes/simple/css/searx.min.css
+++ b/searx/static/themes/simple/css/searx.min.css
@@ -1 +1 @@
-/*! searx | 14-08-2018 | https://github.com/asciimoo/searx *//*! normalize.css v8.0.0 | MIT License | github.com/necolas/normalize.css */button,hr,input{overflow:visible}[type=checkbox],[type=radio],legend{padding:0;box-sizing:border-box}.badge,.center{text-align:center}.badge,progress,sub,sup{vertical-align:baseline}.autocomplete>ul,.list-unstyled{list-style-type:none}.tabs>section,legend{box-sizing:border-box}#main_preferences h1 span,#main_stats h1 span,.index h1{visibility:hidden}#apis,#pagination,#pagination br,#sidebar .infobox .attributes,#sidebar .infobox .urls,#sidebar .infobox br,.result .break,footer{clear:both}html{line-height:1.15}h1{font-size:2em;margin:.67em 0}hr{box-sizing:content-box;height:0}code,kbd,pre,samp{font-family:monospace,monospace;font-size:1em}a{background-color:transparent}abbr[title]{border-bottom:none;text-decoration:underline;text-decoration:underline dotted}b,strong{font-weight:bolder}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}img{border-style:none}button,input,optgroup,select,textarea{font-family:inherit;font-size:100%;line-height:1.15;margin:0}.highlight pre,textarea{overflow:auto}button,select{text-transform:none}[type=button],[type=reset],[type=submit],button{-webkit-appearance:button}[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner,button::-moz-focus-inner{border-style:none;padding:0}[type=button]:-moz-focusring,[type=reset]:-moz-focusring,[type=submit]:-moz-focusring,button:-moz-focusring{outline:ButtonText dotted 1px}fieldset{padding:.35em .75em .625em}legend{color:inherit;display:table;max-width:100%;white-space:normal}.badge,.search_box{white-space:nowrap}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}.highlight .c,.highlight .cm,.highlight .ge,.highlight .sd{font-style:italic}.dialog-error:before,.dialog-modal:before,.dialog-warning:before,.ion-icon-big:before,.ion-icon:before{font-family:ion}details{display:block}summary{display:list-item}[hidden],html.js .show_if_nojs,html.no-js .hide_if_nojs,template{display:none}.highlight .hll{background-color:#ffc}.highlight .c{color:#408080}.highlight .err{border:1px solid red}.highlight .k{color:green;font-weight:700}.highlight .o{color:#666}.highlight .cm{color:#408080}.highlight .cp{color:#BC7A00}.highlight .c1,.highlight .cs{color:#408080;font-style:italic}.highlight .gd{color:#A00000}.highlight .gr{color:red}.highlight .gh{color:navy;font-weight:700}.highlight .gi{color:#00A000}.highlight .go{color:#888}.highlight .gp{color:navy;font-weight:700}.highlight .gs{font-weight:700}.highlight .gu{color:purple;font-weight:700}.highlight .gt{color:#04D}.highlight .kc,.highlight .kd,.highlight .kn{color:green;font-weight:700}.highlight .kp{color:green}.highlight .kr{color:green;font-weight:700}.highlight .kt{color:#B00040}.highlight .m{color:#666}.highlight .s{color:#BA2121}.highlight .na{color:#7D9029}.highlight .nb{color:green}.highlight .nc{color:#00F;font-weight:700}.highlight .no{color:#800}.highlight .nd{color:#A2F}.highlight .ni{color:#999;font-weight:700}.highlight .ne{color:#D2413A;font-weight:700}.highlight .nf{color:#00F}.highlight .nl{color:#A0A000}.highlight .nn{color:#00F;font-weight:700}.highlight .nt{color:green;font-weight:700}.highlight .nv{color:#19177C}.highlight .ow{color:#A2F;font-weight:700}.highlight .w{color:#bbb}.highlight .mf,.highlight .mh,.highlight .mi,.highlight .mo{color:#666}.highlight .s2,.highlight .sb,.highlight .sc{color:#BA2121}.highlight .sd{color:#BA2121}.highlight .se{color:#B62;font-weight:700}.highlight .sh{color:#BA2121}.highlight .si{color:#B68;font-weight:700}.highlight .sx{color:green}.highlight .sr{color:#B68}.highlight .s1{color:#BA2121}.highlight .ss{color:#19177C}.highlight .bp{color:green}.highlight .vc,.highlight .vg,.highlight .vi{color:#19177C}.highlight .il{color:#666}.badge,kbd{color:#fff}.highlight .lineno{-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}.btn-collapse,.tabs>label,select:focus,select:hover{cursor:pointer}.highlight .lineno::selection{background:0 0}.highlight .lineno::-moz-selection{background:0 0}.right{float:right}.left{float:left}.invisible{display:none!important}.list-unstyled li{margin-top:4px;margin-bottom:4px}.danger{background-color:#fae1e1}.badge{display:inline-block;background-color:#777;min-width:10px;padding:1px 5px;border-radius:5px}.dialog-error tr,.dialog-modal tr,.dialog-warning tr{vertical-align:text-top}kbd{padding:2px 4px;margin:1px;font-size:90%;background:#000}table{width:100%}table.striped tr{border-bottom:1px solid #ececec}th{padding:.4em}td{padding:0 4px}tr:hover{background:#ececec}div.selectable_url{border:1px solid #888;padding:4px;color:#444;width:100%;display:block;margin:.1em;overflow:hidden;height:1.2em;line-height:1.2em}div.selectable_url pre{display:block;font-size:.8em;word-break:break-all;margin:.1em;-webkit-user-select:all;-moz-user-select:all;-ms-user-select:element;user-select:all}#categories,.tabs>label{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;-webkit-touch-callout:none;-khtml-user-select:none}.dialog-error{position:relative;width:70%;padding:1em 1em 1em 2.7em;margin:0 8% 1em;border:1px solid #db3434;border-radius:4px;text-align:left;color:#db3434;background:#fae1e1}.dialog-error:before{position:absolute;top:.5em;left:.5em;font-size:1.5em;content:"\f110"}.dialog-error .close{float:right;position:relative;top:-3px;color:inherit;font-size:1.5em}.dialog-error ol,.dialog-error p,.dialog-error ul{margin:1px 0 0}.dialog-error table{width:auto}.dialog-error tr:hover{background:0 0}.dialog-error td{padding:0 1em 0 0}.dialog-error h4{margin-top:.3em;margin-bottom:.3em}.dialog-warning{position:relative;width:70%;padding:1em 1em 1em 2.7em;margin:0 8% 1em;border:1px solid #dbba34;border-radius:4px;text-align:left;color:#dbba34;background:#faf5e1}.dialog-warning:before{position:absolute;top:.5em;left:.5em;font-size:1.5em;content:"\f10f"}.dialog-warning .close{float:right;position:relative;top:-3px;color:inherit;font-size:1.5em}.dialog-warning ol,.dialog-warning p,.dialog-warning ul{margin:1px 0 0}.dialog-warning table{width:auto}.dialog-warning tr:hover{background:0 0}.dialog-warning td{padding:0 1em 0 0}.dialog-warning h4{margin-top:.3em;margin-bottom:.3em}.dialog-modal{width:70%;padding:1em 1em 1em 2.7em;border:1px solid #000;border-radius:4px;text-align:left;background:#fff;position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);z-index:100000;margin:0 50% 0 0;box-shadow:0 0 1em}.dialog-modal:before{position:absolute;top:.5em;left:.5em;font-size:1.5em}.dialog-modal .close{float:right;position:relative;top:-3px;color:inherit;font-size:1.5em}.dialog-modal ol,.dialog-modal p,.dialog-modal ul{margin:1px 0 0}.dialog-modal table{width:auto}.dialog-modal tr:hover{background:0 0}.dialog-modal td{padding:0 1em 0 0}.dialog-modal h4{margin-top:.3em;margin-bottom:.3em}.scrollx{overflow-x:auto;overflow-y:hidden;display:block;padding:0;margin:0;border:none}.tabs .tabs>label{font-size:90%}.tabs{display:-webkit-box;display:-moz-box;display:-webkit-flex;display:-ms-flexbox;display:flex;flex-wrap:wrap;width:100%;min-width:100%}.tabs>*{order:2}.tabs>input[type=radio]{display:none}.tabs>label{order:1;padding:.7em;margin:0 .7em;letter-spacing:.5px;text-transform:uppercase;border:solid #fff;border-width:0 0 2px;user-select:none}.tabs>label:hover,.tabs>label:last-of-type{border-bottom:2px solid #084999}.tabs>section{min-width:100%;padding:.7rem 0;border-top:1px solid #000;display:none}.tabs>label:last-of-type{background:#3498DB;color:#FFF;font-weight:700;letter-spacing:-.1px}.tabs>section:last-of-type{display:block}html body .tabs>input:checked~section{display:none}html body .tabs>input:checked~label{position:inherited;background:inherit;border-bottom:2px solid transparent;font-weight:400;color:inherit}html body .tabs>input:checked~label:hover{border-bottom:2px solid #084999}html body .tabs>input:checked+label{border-bottom:2px solid #084999;background:#3498DB;color:#FFF;font-weight:700;letter-spacing:-.1px}html body .tabs>input:checked+label+section{display:block}select{height:28px;margin:0 1em 0 0;padding:2px 8px 2px 0!important;color:#222;font-size:12px;z-index:2}@supports ((background-position-x:100%) and ((appearance:none) or (-webkit-appearance:none) or (-moz-appearance:none))){select{appearance:none;-webkit-appearance:none;-moz-appearance:none;border:none;border-bottom:1px solid #d7d7d7;background:url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4KPCFET0NUWVBFIHN2ZyBQVUJMSUMgIi0vL1czQy8vRFREIFNWRyAxLjEvL0VOIiAiaHR0cDovL3d3dy53My5vcmcvR3JhcGhpY3MvU1ZHLzEuMS9EVEQvc3ZnMTEuZHRkIj4KPHN2ZyB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeD0iMHB4IiB5PSIwcHgiIHdpZHRoPSI1MTJweCIgaGVpZ2h0PSI1MTJweCIgdmlld0JveD0iMCAwIDUxMiA1MTIiIGVuYWJsZS1iYWNrZ3JvdW5kPSJuZXcgMCAwIDUxMiA1MTIiIHhtbDpzcGFjZT0icHJlc2VydmUiPjxnPjxwb2x5Z29uIHBvaW50cz0iMTI4LDE5MiAyNTYsMzIwIDM4NCwxOTIiLz48L2c+PC9zdmc+Cg==) no-repeat;background-position-x:105%;background-size:2em;background-origin:content-box;outline:0}select:focus,select:hover{border-bottom:1px solid #3498DB}}@supports (border-radius:50px){.checkbox-onoff{display:inline-block;width:40px;height:10px;background:#dcdcdc;margin:8px auto;position:relative;border-radius:50px}.checkbox-onoff label{display:block;width:20px;height:20px;position:absolute;top:-5px;cursor:pointer;border-radius:50px;box-shadow:0 3px 5px 0 rgba(0,0,0,.3);transition:all .4s ease;left:27px;background-color:#3498DB}.checkbox-onoff input[type=checkbox]{visibility:hidden}.checkbox-onoff input[type=checkbox]:checked+label{left:-5px;background:#dcdcdc}}@supports (transform:rotate(-45deg)){.checkbox{width:20px;position:relative;margin:20px auto}.checkbox label{width:20px;height:20px;cursor:pointer;position:absolute;top:0;left:0;background:#fff;border-radius:4px;box-shadow:inset 0 1px 1px #fff,0 1px 4px rgba(0,0,0,.5)}.checkbox label:after{content:'';width:9px;height:5px;position:absolute;top:4px;left:4px;border:3px solid #333;border-top:none;border-right:none;background:0 0;opacity:0;transform:rotate(-45deg)}.checkbox input[type=checkbox]{visibility:hidden}.checkbox input[type=checkbox]:checked+label:after{border-color:#3498DB;opacity:1}.checkbox input[disabled]+label{background-color:transparent!important;box-shadow:none!important;cursor:inherit}.checkbox input:not(:checked):not([readonly]):not([disabled])+label:hover::after{opacity:.5}}@media screen and (max-width:50em){.tabs>label{width:100%}}.loader,.loader:after{border-radius:50%;width:2em;height:2em}.loader{margin:1em auto;font-size:10px;position:relative;text-indent:-9999em;border-top:.5em solid rgba(0,0,0,.2);border-right:.5em solid rgba(0,0,0,.2);border-bottom:.5em solid rgba(0,0,0,.2);border-left:.5em solid rgba(255,255,255,0);-webkit-transform:translateZ(0);-ms-transform:translateZ(0);transform:translateZ(0);-webkit-animation:load8 1.2s infinite linear;animation:load8 1.2s infinite linear}@-webkit-keyframes load8{0%{-webkit-transform:rotate(0);transform:rotate(0)}100%{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}@keyframes load8{0%{-webkit-transform:rotate(0);transform:rotate(0)}100%{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}/*! Autocomplete.js v2.6.3 | license MIT | (c) 2017, Baptiste Donaux | http://autocomplete-js.com */.autocomplete{position:absolute;max-height:0;overflow-y:hidden;text-align:left}#categories_container,.category{position:relative}.autocomplete:active,.autocomplete:focus,.autocomplete:hover{background-color:#fff}#send_search:hover,.autocomplete>ul>li.active,.autocomplete>ul>li:active,.autocomplete>ul>li:focus{background-color:#3498DB}.autocomplete:empty{display:none}.autocomplete>ul{margin:0;padding:0}.autocomplete>ul>li{cursor:pointer;padding:5px 0 5px 10px}.autocomplete>ul>li.active a:active,.autocomplete>ul>li.active a:focus,.autocomplete>ul>li.active a:hover,.autocomplete>ul>li:active a:active,.autocomplete>ul>li:active a:focus,.autocomplete>ul>li:active a:hover,.autocomplete>ul>li:focus a:active,.autocomplete>ul>li:focus a:focus,.autocomplete>ul>li:focus a:hover{text-decoration:none}.autocomplete>ul>li.locked{cursor:inherit}.autocomplete.open{display:block;background-color:#fff;border:1px solid #3498DB;max-height:500px;overflow-y:auto;z-index:100}.autocomplete.open:empty{display:none}.ion-icon,.ion-icon-big{display:inline-block;line-height:1;font-weight:400;font-style:normal;speak:none;text-decoration:inherit;text-transform:none;text-rendering:auto;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;vertical-align:middle}@media screen and (max-width:50em){.autocomplete{bottom:0}.autocomplete>ul>li{padding:7px 0 7px 10px;border-bottom:1px solid #E8E7E6;text-align:left}}#main_preferences table td,.index{text-align:center}@font-face{font-family:ion;src:url(../fonts/ion.eot?ce7a0ead692560b4405a96d5b8471f51);src:url(../fonts/ion.eot?#iefix) format("embedded-opentype"),url(../fonts/ion.woff2?ce7a0ead692560b4405a96d5b8471f51) format("woff2"),url(../fonts/ion.woff?ce7a0ead692560b4405a96d5b8471f51) format("woff"),url(../fonts/ion.ttf?ce7a0ead692560b4405a96d5b8471f51) format("truetype"),url(../fonts/ion.svg?ce7a0ead692560b4405a96d5b8471f51#ion) format("svg");font-weight:400;font-style:normal}.ion-navicon-round:before{content:"\f101"}.ion-search:before{content:"\f102"}.ion-play:before{content:"\f103"}.ion-link:before{content:"\f104"}.ion-chevron-up:before{content:"\f105"}.ion-chevron-left:before{content:"\f106"}.ion-chevron-right:before{content:"\f107"}.ion-arrow-down-a:before{content:"\f108"}.ion-arrow-up-a:before{content:"\f109"}.ion-arrow-swap:before{content:"\f10a"}.ion-arrow-dropdown:before{content:"\f10b"}.ion-globe:before{content:"\f10c"}.ion-time:before{content:"\f10d"}.ion-location:before{content:"\f10e"}.ion-warning:before{content:"\f10f"}.ion-error:before{content:"\f110"}.ion-film-outline:before{content:"\f111"}.ion-music-note:before{content:"\f112"}.ion-more-vertical:before{content:"\f113"}.ion-magnet:before{content:"\f114"}.ion-close:before{content:"\f115"}.ion-icon-big{font-size:149%}.index .title{background:url(../img/searx.png) center no-repeat;width:100%;min-height:80px}.index h1{font-size:5em}.index #search{margin:0 auto;background:inherit;border:inherit}.index .search_filters{display:block;margin:1em 0}.index .category label{padding:6px 10px;border-bottom:initial!important}@media screen and (max-width:75em){div.title h1{font-size:1em}.preferences_back{clear:both}}#main_preferences form{width:100%}#main_preferences fieldset{margin:8px;border:none}#main_preferences legend{margin:0;padding:5px 0 0;display:block;float:left;width:300px}#main_preferences .value{margin:0;padding:0;float:left;width:15em}#main_preferences .description{margin:0;padding:5px 0 0;float:left;width:50%;color:#909090;font-size:90%}#main_preferences select{width:200px;font-size:inherit!important}#main_preferences table{border-collapse:collapse}#main_preferences table.cookies{width:auto}#main_preferences div.selectable_url pre,footer,main{width:100%}#main_preferences table.cookies td,#main_preferences table.cookies th{text-align:left;padding:.25em}#main_preferences table.cookies td:first-child,#main_preferences table.cookies th:first-child{padding-right:4em}#main_preferences table.cookies>tbody>tr:nth-child(even)>td,#main_preferences table.cookies>tbody>tr:nth-child(even)>th{background-color:#ececec}#main_preferences .name,#main_preferences .shortcut{text-align:left}#main_preferences .preferences_back{background:#3498DB;color:#fff;border:0;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;cursor:pointer;display:inline-block;margin:2px 4px;padding:.5em}#main_preferences .preferences_back a{display:block;color:#FFF}#main_preferences .preferences_back a::first-letter{text-transform:uppercase}#search{padding:0 2em;margin:0;background:#f7f7f7;border-bottom:1px solid #d7d7d7}#search_wrapper{padding:10px 0}.search_box{margin:0 12px 0 0;display:inline-flex;flex-direction:row}#clear_search,#q,#send_search{border-collapse:separate;box-sizing:border-box;margin:0;padding:2px;height:2.2em;background:#FFF;color:#222;font-size:16px;outline:0}#clear_search{display:block;width:1.8em;border-top:1px solid #3498DB;border-bottom:1px solid #3498DB;border-right:none;border-left:none;border-radius:0;z-index:10000}#clear_search:hover{color:#3498DB}#clear_search.empty *{display:none}#q::-ms-clear,#q::-webkit-search-cancel-button{display:none}#q,#send_search{display:block!important;border:1px solid #3498DB;border-radius:0;z-index:2}#q{outline:0;padding-left:8px;padding-right:0!important;border-right:none;width:40em}#send_search{border-left:none;width:2.2em}#send_search:hover{cursor:pointer;color:#ECF0F1}.no-js #send_search{width:auto!important}.search_filters{display:inline-block;vertical-align:middle}@media screen and (max-width:75em){#categories{font-size:90%;clear:both}#categories .checkbox_container{margin:auto}html.touch #main_index #categories_container,html.touch #main_results #categories_container{width:1000px;width:-moz-max-content;width:-webkit-max-content;width:max-content}html.touch #main_index #categories_container .category,html.touch #main_results #categories_container .category{display:inline-block;width:auto}html.touch #main_index #categories,html.touch #main_results #categories{width:100%;margin:0;text-align:left;overflow-x:scroll;overflow-y:hidden;-webkit-overflow-scrolling:touch}}@media screen and (max-width:50em){#search{width:100%;margin:0;padding:.1em 0 0}#search_wrapper{width:100%;margin:0 0 .7em;padding:0}.search_box{width:99%;margin:.1em;padding:0 .1em 0 0;display:flex;flex-direction:row}#q{width:auto!important;flex:1}.search_filters{display:block;margin:.5em}.language,.time_range{width:45%}.category{display:block;width:90%}.category label{border-bottom:0}}#categories{margin:0 10px 0 0;user-select:none}#categories::-webkit-scrollbar{width:0;height:0}.category{display:inline-block;margin:0 3px;padding:0}.category input{display:none}.category label{cursor:pointer;padding:4px 10px;margin:0;display:block;text-transform:capitalize;font-size:.9em;border-bottom:2px solid transparent;-webkit-touch-callout:none;-webkit-user-select:none;-khtml-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}body,html,main{padding:0;margin:0}.category input[type=checkbox]:focus+label{box-shadow:0 0 8px #3498DB}.category input[type=checkbox]:checked+label{background:#3498DB;color:#FFF;border-bottom:2px solid #084999}#categories_container .help{position:absolute;width:100%;bottom:-20px;overflow:hidden;opacity:0;transition:opacity 1s ease;font-size:.8em;text-position:center;background:#fff}footer p,html{font-size:.9em}#categories_container:hover .help{opacity:.8;transition:opacity 1s ease}html{font-family:arial,sans-serif;-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%;-moz-text-size-adjust:100%;text-size-adjust:100%;color:#444}#main_about,#main_preferences,#main_stats{margin:3em;width:auto}footer{bottom:0;height:3em;margin:1em 0;padding:1em 0;text-align:center}#main_preferences h1,#main_stats h1{background:url(../img/searx.png) no-repeat;background-size:auto 75%;min-height:40px;margin:0 auto}#results button[type=submit],input[type=submit]{padding:.5rem;margin:2px 4px;display:inline-block;background:#3498DB;color:#FFF;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;border:0;cursor:pointer}a{text-decoration:none;color:#29314d}a:visited,a:visited .highlight{color:#684898}article[data-vim-selected]{background:#f7f7f7}article[data-vim-selected]::before{position:absolute;left:1em;padding:2px;content:">";font-weight:700;color:#3498DB}article.result-images[data-vim-selected]{background:#3498DB}article.result-images[data-vim-selected]::before{display:none;content:""}.result{margin:19px 0 18px;padding:0}.result h3{font-size:1.1em;word-wrap:break-word;margin:5px 0 0;padding:0}.result h3 a{color:#084999;font-weight:400;font-size:1.1em}.result h3 a:visited{color:#684898}.result h3 a:focus,.result h3 a:hover{text-decoration:underline;border:none;-webkit-box-shadow:none;box-shadow:none;outline:0}.result .cache_link,.result .proxyfied_link{font-size:.9em!important}.result .altlink,.result .content,.result .stat,.result .url{font-size:.9em;padding:0;max-width:54em;word-wrap:break-word}.result .altlink,.result .content,.result .stat{margin:0;line-height:1.24}.result .altlink .highlight,.result .content .highlight,.result .stat .highlight{color:#000;background:inherit;font-weight:700}.result .codelines .highlight{color:inherit;background:inherit;font-weight:400}.result .url{margin:0 0 3px;color:#25a55b}.result .published_date{font-size:.8em;color:#888}.result img.thumbnail{float:left;padding:0 5px 10px 0;width:20em;min-width:20em;min-height:8em}.result img.image{float:left;padding:0 5px 10px 0;width:100px;max-height:100px;object-fit:scale-down;object-position:right top}.category-social .image{width:auto!important;min-width:48px;min-height:48px;padding:0 5px 25px 0!important}.result-videos .content{overflow:hidden}.engines{float:right;color:#888}.engines span{font-size:smaller;margin:0 .5em 0 0}.result-images,.result-images img{margin:0;padding:0;max-height:200px}.small_font{font-size:.8em}.highlight{color:#094089;background:inherit;font-weight:700}.result-images{display:inline-block;position:relative}.result-images img{float:inherit;border:none;background:#084999}.result-images span a{display:none;color:#FFF}.result-images:hover span a{display:block;position:absolute;bottom:0;right:0;padding:4px;margin:0 0 4px 4px;background-color:rgba(0,0,0,.6);font-size:.7em}.torrent_result{border-left:10px solid #d3d3d3;padding-left:3px}#answers,#backToTop,#sidebar .infobox{border:1px solid #ddd;box-shadow:0 0 5px #CCC}.torrent_result p{margin:3px;font-size:.8em}.torrent_result a{color:#084999}.torrent_result a:hover{text-decoration:underline}.torrent_result a:visited{color:#684898}#results{margin:2em 2em 20px;padding:0;width:50em}#suggestions .wrapper{display:flex;flex-flow:row wrap;justify-content:flex-end}#suggestions .wrapper form{display:inline-block;flex:1 1 50%}#answers,#corrections,#suggestions{max-width:50em}#answers input,#corrections input,#infoboxes input,#suggestions input{padding:0;margin:3px;font-size:.9em;display:inline-block;background:0 0;color:#444;cursor:pointer}#answers .infobox .url a,#answers input[type=submit],#corrections .infobox .url a,#corrections input[type=submit],#infoboxes .infobox .url a,#infoboxes input[type=submit],#suggestions .infobox .url a,#suggestions input[type=submit]{color:#084999;text-decoration:none;font-size:.9rem}#answers .infobox .url a:hover,#answers input[type=submit]:hover,#corrections .infobox .url a:hover,#corrections input[type=submit]:hover,#infoboxes .infobox .url a:hover,#infoboxes input[type=submit]:hover,#suggestions .infobox .url a:hover,#suggestions input[type=submit]:hover{text-decoration:underline}#corrections{display:flex;flex-flow:row wrap;margin:1em 0}#corrections h4,#corrections input[type=submit]{display:inline-block;margin:0 .5em 0 0}#corrections input[type=submit]::after{content:", "}#apis .title,#search_url .title,#suggestions .title{margin:2em 0 .5em;color:#444}#answers{margin:10px 8px;padding:.9em}#answers h4{display:none}#answers .answer{display:block;font-size:1.2em;font-weight:700}#answers form,#infoboxes form{min-width:210px}#sidebar{position:absolute;top:100px;left:57em;margin:0 2px 5px 5px;padding:0 2px 2px;max-width:25em;word-wrap:break-word}#sidebar .infobox{margin:10px 0;padding:.9em;font-size:.9em}#sidebar .infobox h2{margin:0 0 .5em}#sidebar .infobox img{max-width:100%;max-height:12em;display:block;margin:0;padding:0}#sidebar .infobox dl{margin:.5em 0}#sidebar .infobox dt{display:inline;margin:.5em .25em .5em 0;padding:0;font-weight:700}#sidebar .infobox dd{display:inline;margin:.5em 0;padding:0}#apis,#search_url{margin-top:8px}#sidebar .infobox input{font-size:1em}#search_url div.selectable_url pre{width:200em}#linkto_preferences{position:absolute;right:10px;top:.9em;padding:0;border:0;display:block;font-size:1.2em;color:#222}#linkto_preferences a:active *,#linkto_preferences a:hover *,#linkto_preferences a:link *,#linkto_preferences a:visited *{color:#222}#backToTop{margin:0 0 0 2em;padding:0;font-size:1em;background:#fff;position:fixed;bottom:85px;left:50em;transition:opacity .5s;opacity:0}#backToTop a{display:block;margin:0;padding:.6em}@media screen and (max-width:75em){#main_about,#main_preferences,#main_stats{margin:.5em;width:auto}#answers,#suggestions{margin-top:1em}#infoboxes{position:inherit;max-width:inherit}#infoboxes .infobox{clear:both}#infoboxes .infobox img{float:left;max-width:10em;margin:.5em .5em .5em 0}#sidebar{position:static;max-width:50em;margin:0 0 2px;padding:0;float:none;border:none;width:auto}.image_result,.image_result img,.result .thumbnail{max-width:98%}#sidebar input{border:0}#apis,#search_url{display:none}.result{border-bottom:1px solid #E8E7E6;margin:0;padding-top:8px;padding-bottom:6px}.result h3{margin:0 0 1px}.result .url span.url{display:block;white-space:nowrap;text-overflow:ellipsis;overflow:hidden;width:100%}.result .url a{float:right;padding:0 .5em}.result .engines{float:right;padding:0 0 3px}.result-images{border-bottom:none!important}}#main_results div#results.only_template_images{flex-direction:column;width:auto;display:flex}#main_results div#results.only_template_images #sidebar{position:relative;top:auto;order:2}#main_results div#results.only_template_images #urls{position:relative;order:1}#main_results div#results.only_template_images #backToTop{right:.5em;left:auto}#main_results div#results.only_template_images #pagination{position:relative;order:3}@media screen and (max-width:50em){article[data-vim-selected]::before{display:none;content:""}#linkto_preferences{display:none;postion:fixed!important;top:100px;right:0}#sidebar{margin:0 5px 2px}#corrections{margin:1em 5px}#results{margin:0;padding:0;width:initial}#backToTop{left:40em;bottom:35px}.result{padding:8px 10px 6px}.result-images{margin:0;padding:0;border:none}}@media screen and (max-width:35em){.result-videos img.thumbnail{float:none!important}.result-videos .content{overflow:inherit}} \ No newline at end of file
+/*! searx | 06-08-2019 | https://github.com/asciimoo/searx *//*! normalize.css v8.0.0 | MIT License | github.com/necolas/normalize.css */button,hr,input{overflow:visible}[type=checkbox],[type=radio],legend{padding:0;box-sizing:border-box}.badge,.center{text-align:center}.badge,progress,sub,sup{vertical-align:baseline}.autocomplete>ul,.list-unstyled{list-style-type:none}.tabs>section,legend{box-sizing:border-box}#main_preferences h1 span,#main_stats h1 span,.index h1{visibility:hidden}#apis,#pagination,#pagination br,#sidebar .infobox .attributes,#sidebar .infobox .urls,#sidebar .infobox br,.result .break,footer{clear:both}html{line-height:1.15}h1{font-size:2em;margin:.67em 0}hr{box-sizing:content-box;height:0}code,kbd,pre,samp{font-family:monospace,monospace;font-size:1em}a{background-color:transparent}abbr[title]{border-bottom:none;text-decoration:underline;text-decoration:underline dotted}b,strong{font-weight:bolder}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}img{border-style:none}button,input,optgroup,select,textarea{font-family:inherit;font-size:100%;line-height:1.15;margin:0}.highlight pre,textarea{overflow:auto}button,select{text-transform:none}[type=button],[type=reset],[type=submit],button{-webkit-appearance:button}[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner,button::-moz-focus-inner{border-style:none;padding:0}[type=button]:-moz-focusring,[type=reset]:-moz-focusring,[type=submit]:-moz-focusring,button:-moz-focusring{outline:ButtonText dotted 1px}fieldset{padding:.35em .75em .625em}legend{color:inherit;display:table;max-width:100%;white-space:normal}.badge,.search_box{white-space:nowrap}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}.highlight .c,.highlight .cm,.highlight .ge,.highlight .sd{font-style:italic}.dialog-error:before,.dialog-modal:before,.dialog-warning:before,.ion-icon-big:before,.ion-icon:before{font-family:ion}details{display:block}summary{display:list-item}[hidden],html.js .show_if_nojs,html.no-js .hide_if_nojs,template{display:none}.highlight .hll{background-color:#ffc}.highlight .c{color:#408080}.highlight .err{border:1px solid red}.highlight .k{color:green;font-weight:700}.highlight .o{color:#666}.highlight .cm{color:#408080}.highlight .cp{color:#BC7A00}.highlight .c1,.highlight .cs{color:#408080;font-style:italic}.highlight .gd{color:#A00000}.highlight .gr{color:red}.highlight .gh{color:navy;font-weight:700}.highlight .gi{color:#00A000}.highlight .go{color:#888}.highlight .gp{color:navy;font-weight:700}.highlight .gs{font-weight:700}.highlight .gu{color:purple;font-weight:700}.highlight .gt{color:#04D}.highlight .kc,.highlight .kd,.highlight .kn{color:green;font-weight:700}.highlight .kp{color:green}.highlight .kr{color:green;font-weight:700}.highlight .kt{color:#B00040}.highlight .m{color:#666}.highlight .s{color:#BA2121}.highlight .na{color:#7D9029}.highlight .nb{color:green}.highlight .nc{color:#00F;font-weight:700}.highlight .no{color:#800}.highlight .nd{color:#A2F}.highlight .ni{color:#999;font-weight:700}.highlight .ne{color:#D2413A;font-weight:700}.highlight .nf{color:#00F}.highlight .nl{color:#A0A000}.highlight .nn{color:#00F;font-weight:700}.highlight .nt{color:green;font-weight:700}.highlight .nv{color:#19177C}.highlight .ow{color:#A2F;font-weight:700}.highlight .w{color:#bbb}.highlight .mf,.highlight .mh,.highlight .mi,.highlight .mo{color:#666}.highlight .s2,.highlight .sb,.highlight .sc{color:#BA2121}.highlight .sd{color:#BA2121}.highlight .se{color:#B62;font-weight:700}.highlight .sh{color:#BA2121}.highlight .si{color:#B68;font-weight:700}.highlight .sx{color:green}.highlight .sr{color:#B68}.highlight .s1{color:#BA2121}.highlight .ss{color:#19177C}.highlight .bp{color:green}.highlight .vc,.highlight .vg,.highlight .vi{color:#19177C}.highlight .il{color:#666}.badge,kbd{color:#fff}.highlight .lineno{-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}.btn-collapse,.tabs>label,select:focus,select:hover{cursor:pointer}.highlight .lineno::selection{background:0 0}.highlight .lineno::-moz-selection{background:0 0}.right{float:right}.left{float:left}.invisible{display:none!important}.list-unstyled li{margin-top:4px;margin-bottom:4px}.danger{background-color:#fae1e1}.badge{display:inline-block;background-color:#777;min-width:10px;padding:1px 5px;border-radius:5px}.dialog-error tr,.dialog-modal tr,.dialog-warning tr{vertical-align:text-top}kbd{padding:2px 4px;margin:1px;font-size:90%;background:#000}table{width:100%}table.striped tr{border-bottom:1px solid #ececec}th{padding:.4em}td{padding:0 4px}tr:hover{background:#ececec}div.selectable_url{border:1px solid #888;padding:4px;color:#444;width:100%;display:block;margin:.1em;overflow:hidden;height:1.2em;line-height:1.2em}div.selectable_url pre{display:block;font-size:.8em;word-break:break-all;margin:.1em;-webkit-user-select:all;-moz-user-select:all;-ms-user-select:element;user-select:all}#categories,.tabs>label{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;-webkit-touch-callout:none;-khtml-user-select:none}.dialog-error{position:relative;width:70%;padding:1em 1em 1em 2.7em;margin:0 8% 1em;border:1px solid #db3434;border-radius:4px;text-align:left;color:#db3434;background:#fae1e1}.dialog-error:before{position:absolute;top:.5em;left:.5em;font-size:1.5em;content:"\f110"}.dialog-error .close{float:right;position:relative;top:-3px;color:inherit;font-size:1.5em}.dialog-error ol,.dialog-error p,.dialog-error ul{margin:1px 0 0}.dialog-error table{width:auto}.dialog-error tr:hover{background:0 0}.dialog-error td{padding:0 1em 0 0}.dialog-error h4{margin-top:.3em;margin-bottom:.3em}.dialog-warning{position:relative;width:70%;padding:1em 1em 1em 2.7em;margin:0 8% 1em;border:1px solid #dbba34;border-radius:4px;text-align:left;color:#dbba34;background:#faf5e1}.dialog-warning:before{position:absolute;top:.5em;left:.5em;font-size:1.5em;content:"\f10f"}.dialog-warning .close{float:right;position:relative;top:-3px;color:inherit;font-size:1.5em}.dialog-warning ol,.dialog-warning p,.dialog-warning ul{margin:1px 0 0}.dialog-warning table{width:auto}.dialog-warning tr:hover{background:0 0}.dialog-warning td{padding:0 1em 0 0}.dialog-warning h4{margin-top:.3em;margin-bottom:.3em}.dialog-modal{width:70%;padding:1em 1em 1em 2.7em;border:1px solid #000;border-radius:4px;text-align:left;background:#fff;position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);z-index:100000;margin:0 50% 0 0;box-shadow:0 0 1em}.dialog-modal:before{position:absolute;top:.5em;left:.5em;font-size:1.5em}.dialog-modal .close{float:right;position:relative;top:-3px;color:inherit;font-size:1.5em}.dialog-modal ol,.dialog-modal p,.dialog-modal ul{margin:1px 0 0}.dialog-modal table{width:auto}.dialog-modal tr:hover{background:0 0}.dialog-modal td{padding:0 1em 0 0}.dialog-modal h4{margin-top:.3em;margin-bottom:.3em}.scrollx{overflow-x:auto;overflow-y:hidden;display:block;padding:0;margin:0;border:none}.tabs .tabs>label{font-size:90%}.tabs{display:-webkit-box;display:-moz-box;display:-webkit-flex;display:-ms-flexbox;display:flex;flex-wrap:wrap;width:100%;min-width:100%}.tabs>*{order:2}.tabs>input[type=radio]{display:none}.tabs>label{order:1;padding:.7em;margin:0 .7em;letter-spacing:.5px;text-transform:uppercase;border:solid #fff;border-width:0 0 2px;user-select:none}.tabs>label:hover,.tabs>label:last-of-type{border-bottom:2px solid #084999}.tabs>section{min-width:100%;padding:.7rem 0;border-top:1px solid #000;display:none}.tabs>label:last-of-type{background:#3498DB;color:#FFF;font-weight:700;letter-spacing:-.1px}.tabs>section:last-of-type{display:block}html body .tabs>input:checked~section{display:none}html body .tabs>input:checked~label{position:inherited;background:inherit;border-bottom:2px solid transparent;font-weight:400;color:inherit}html body .tabs>input:checked~label:hover{border-bottom:2px solid #084999}html body .tabs>input:checked+label{border-bottom:2px solid #084999;background:#3498DB;color:#FFF;font-weight:700;letter-spacing:-.1px}html body .tabs>input:checked+label+section{display:block}select{height:28px;margin:0 1em 0 0;padding:2px 8px 2px 0!important;color:#222;font-size:12px;z-index:2}@supports ((background-position-x:100%) and ((appearance:none) or (-webkit-appearance:none) or (-moz-appearance:none))){select{appearance:none;-webkit-appearance:none;-moz-appearance:none;border:none;border-bottom:1px solid #d7d7d7;background:url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4KPCFET0NUWVBFIHN2ZyBQVUJMSUMgIi0vL1czQy8vRFREIFNWRyAxLjEvL0VOIiAiaHR0cDovL3d3dy53My5vcmcvR3JhcGhpY3MvU1ZHLzEuMS9EVEQvc3ZnMTEuZHRkIj4KPHN2ZyB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeD0iMHB4IiB5PSIwcHgiIHdpZHRoPSI1MTJweCIgaGVpZ2h0PSI1MTJweCIgdmlld0JveD0iMCAwIDUxMiA1MTIiIGVuYWJsZS1iYWNrZ3JvdW5kPSJuZXcgMCAwIDUxMiA1MTIiIHhtbDpzcGFjZT0icHJlc2VydmUiPjxnPjxwb2x5Z29uIHBvaW50cz0iMTI4LDE5MiAyNTYsMzIwIDM4NCwxOTIiLz48L2c+PC9zdmc+Cg==) no-repeat;background-position-x:105%;background-size:2em;background-origin:content-box;outline:0}select:focus,select:hover{border-bottom:1px solid #3498DB}}@supports (border-radius:50px){.checkbox-onoff{display:inline-block;width:40px;height:10px;background:#dcdcdc;margin:8px auto;position:relative;border-radius:50px}.checkbox-onoff label{display:block;width:20px;height:20px;position:absolute;top:-5px;cursor:pointer;border-radius:50px;box-shadow:0 3px 5px 0 rgba(0,0,0,.3);transition:all .4s ease;left:27px;background-color:#3498DB}.checkbox-onoff input[type=checkbox]{visibility:hidden}.checkbox-onoff input[type=checkbox]:checked+label{left:-5px;background:#dcdcdc}}@supports (transform:rotate(-45deg)){.checkbox{width:20px;position:relative;margin:20px auto}.checkbox label{width:20px;height:20px;cursor:pointer;position:absolute;top:0;left:0;background:#fff;border-radius:4px;box-shadow:inset 0 1px 1px #fff,0 1px 4px rgba(0,0,0,.5)}.checkbox label:after{content:'';width:9px;height:5px;position:absolute;top:4px;left:4px;border:3px solid #333;border-top:none;border-right:none;background:0 0;opacity:0;transform:rotate(-45deg)}.checkbox input[type=checkbox]{visibility:hidden}.checkbox input[type=checkbox]:checked+label:after{border-color:#3498DB;opacity:1}.checkbox input[disabled]+label{background-color:transparent!important;box-shadow:none!important;cursor:inherit}.checkbox input:not(:checked):not([readonly]):not([disabled])+label:hover::after{opacity:.5}}@media screen and (max-width:50em){.tabs>label{width:100%}}.loader,.loader:after{border-radius:50%;width:2em;height:2em}.loader{margin:1em auto;font-size:10px;position:relative;text-indent:-9999em;border-top:.5em solid rgba(0,0,0,.2);border-right:.5em solid rgba(0,0,0,.2);border-bottom:.5em solid rgba(0,0,0,.2);border-left:.5em solid rgba(255,255,255,0);-webkit-transform:translateZ(0);-ms-transform:translateZ(0);transform:translateZ(0);-webkit-animation:load8 1.2s infinite linear;animation:load8 1.2s infinite linear}@-webkit-keyframes load8{0%{-webkit-transform:rotate(0);transform:rotate(0)}100%{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}@keyframes load8{0%{-webkit-transform:rotate(0);transform:rotate(0)}100%{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}/*! Autocomplete.js v2.6.3 | license MIT | (c) 2017, Baptiste Donaux | http://autocomplete-js.com */.autocomplete{position:absolute;max-height:0;overflow-y:hidden;text-align:left}#categories_container,.category{position:relative}.autocomplete:active,.autocomplete:focus,.autocomplete:hover{background-color:#fff}#send_search:hover,.autocomplete>ul>li.active,.autocomplete>ul>li:active,.autocomplete>ul>li:focus{background-color:#3498DB}.autocomplete:empty{display:none}.autocomplete>ul{margin:0;padding:0}.autocomplete>ul>li{cursor:pointer;padding:5px 0 5px 10px}.autocomplete>ul>li.active a:active,.autocomplete>ul>li.active a:focus,.autocomplete>ul>li.active a:hover,.autocomplete>ul>li:active a:active,.autocomplete>ul>li:active a:focus,.autocomplete>ul>li:active a:hover,.autocomplete>ul>li:focus a:active,.autocomplete>ul>li:focus a:focus,.autocomplete>ul>li:focus a:hover{text-decoration:none}.autocomplete>ul>li.locked{cursor:inherit}.autocomplete.open{display:block;background-color:#fff;border:1px solid #3498DB;max-height:500px;overflow-y:auto;z-index:100}.autocomplete.open:empty{display:none}.ion-icon,.ion-icon-big{display:inline-block;line-height:1;font-weight:400;font-style:normal;speak:none;text-decoration:inherit;text-transform:none;text-rendering:auto;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;vertical-align:middle}@media screen and (max-width:50em){.autocomplete{bottom:0}.autocomplete>ul>li{padding:7px 0 7px 10px;border-bottom:1px solid #E8E7E6;text-align:left}}#main_preferences table td,.index{text-align:center}@font-face{font-family:ion;src:url(../fonts/ion.eot?ce7a0ead692560b4405a96d5b8471f51);src:url(../fonts/ion.eot?#iefix) format("embedded-opentype"),url(../fonts/ion.woff2?ce7a0ead692560b4405a96d5b8471f51) format("woff2"),url(../fonts/ion.woff?ce7a0ead692560b4405a96d5b8471f51) format("woff"),url(../fonts/ion.ttf?ce7a0ead692560b4405a96d5b8471f51) format("truetype"),url(../fonts/ion.svg?ce7a0ead692560b4405a96d5b8471f51#ion) format("svg");font-weight:400;font-style:normal}.ion-navicon-round:before{content:"\f101"}.ion-search:before{content:"\f102"}.ion-play:before{content:"\f103"}.ion-link:before{content:"\f104"}.ion-chevron-up:before{content:"\f105"}.ion-chevron-left:before{content:"\f106"}.ion-chevron-right:before{content:"\f107"}.ion-arrow-down-a:before{content:"\f108"}.ion-arrow-up-a:before{content:"\f109"}.ion-arrow-swap:before{content:"\f10a"}.ion-arrow-dropdown:before{content:"\f10b"}.ion-globe:before{content:"\f10c"}.ion-time:before{content:"\f10d"}.ion-location:before{content:"\f10e"}.ion-warning:before{content:"\f10f"}.ion-error:before{content:"\f110"}.ion-film-outline:before{content:"\f111"}.ion-music-note:before{content:"\f112"}.ion-more-vertical:before{content:"\f113"}.ion-magnet:before{content:"\f114"}.ion-close:before{content:"\f115"}.ion-icon-big{font-size:149%}.index .title{background:url(../img/searx.png) center no-repeat;width:100%;min-height:80px}.index h1{font-size:5em}.index #search{margin:0 auto;background:inherit;border:inherit}.index .search_filters{display:block;margin:1em 0}.index .category label{padding:6px 10px;border-bottom:initial!important}@media screen and (max-width:75em){div.title h1{font-size:1em}.preferences_back{clear:both}}#main_preferences form{width:100%}#main_preferences fieldset{margin:8px;border:none}#main_preferences legend{margin:0;padding:5px 0 0;display:block;float:left;width:300px}#main_preferences .value{margin:0;padding:0;float:left;width:15em}#main_preferences .description{margin:0;padding:5px 0 0;float:left;width:50%;color:#909090;font-size:90%}#main_preferences select{width:200px;font-size:inherit!important}#main_preferences table{border-collapse:collapse}#main_preferences table.cookies{width:auto}#main_preferences div.selectable_url pre,footer,main{width:100%}#main_preferences table.cookies td,#main_preferences table.cookies th{text-align:left;padding:.25em}#main_preferences table.cookies td:first-child,#main_preferences table.cookies th:first-child{padding-right:4em}#main_preferences table.cookies>tbody>tr:nth-child(even)>td,#main_preferences table.cookies>tbody>tr:nth-child(even)>th{background-color:#ececec}#main_preferences .name,#main_preferences .shortcut{text-align:left}#main_preferences .preferences_back{background:#3498DB;color:#fff;border:0;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;cursor:pointer;display:inline-block;margin:2px 4px;padding:.5em}#main_preferences .preferences_back a{display:block;color:#FFF}#main_preferences .preferences_back a::first-letter{text-transform:uppercase}#search{padding:0 2em;margin:0;background:#f7f7f7;border-bottom:1px solid #d7d7d7}#search_wrapper{padding:10px 0}.search_box{margin:0 12px 0 0;display:inline-flex;flex-direction:row}#clear_search,#q,#send_search{border-collapse:separate;box-sizing:border-box;margin:0;padding:2px;height:2.2em;background:#FFF;color:#222;font-size:16px;outline:0}#clear_search{display:block;width:1.8em;border-top:1px solid #3498DB;border-bottom:1px solid #3498DB;border-right:none;border-left:none;border-radius:0;z-index:10000}#clear_search:hover{color:#3498DB}#clear_search.empty *{display:none}#q::-ms-clear,#q::-webkit-search-cancel-button{display:none}#q,#send_search{display:block!important;border:1px solid #3498DB;border-radius:0;z-index:2}#q{outline:0;padding-left:8px;padding-right:0!important;border-right:none;width:40em}#send_search{border-left:none;width:2.2em}#send_search:hover{cursor:pointer;color:#ECF0F1}.no-js #send_search{width:auto!important}.search_filters{display:inline-block;vertical-align:middle}@media screen and (max-width:75em){#categories{font-size:90%;clear:both}#categories .checkbox_container{margin:auto}html.touch #main_index #categories_container,html.touch #main_results #categories_container{width:1000px;width:-moz-max-content;width:-webkit-max-content;width:max-content}html.touch #main_index #categories_container .category,html.touch #main_results #categories_container .category{display:inline-block;width:auto}html.touch #main_index #categories,html.touch #main_results #categories{width:100%;margin:0;text-align:left;overflow-x:scroll;overflow-y:hidden;-webkit-overflow-scrolling:touch}}@media screen and (max-width:50em){#search{width:100%;margin:0;padding:.1em 0 0}#search_wrapper{width:100%;margin:0 0 .7em;padding:0}.search_box{width:99%;margin:.1em;padding:0 .1em 0 0;display:flex;flex-direction:row}#q{width:auto!important;flex:1}.search_filters{display:block;margin:.5em}.language,.time_range{width:45%}.category{display:block;width:90%}.category label{border-bottom:0}}#categories{margin:0 10px 0 0;user-select:none}#categories::-webkit-scrollbar{width:0;height:0}.category{display:inline-block;margin:0 3px;padding:0}.category input{display:none}.category label{cursor:pointer;padding:4px 10px;margin:0;display:block;text-transform:capitalize;font-size:.9em;border-bottom:2px solid transparent;-webkit-touch-callout:none;-webkit-user-select:none;-khtml-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}body,html,main{padding:0;margin:0}.category input[type=checkbox]:focus+label{box-shadow:0 0 8px #3498DB}.category input[type=checkbox]:checked+label{background:#3498DB;color:#FFF;border-bottom:2px solid #084999}#categories_container .help{position:absolute;width:100%;bottom:-20px;overflow:hidden;opacity:0;transition:opacity 1s ease;font-size:.8em;text-position:center;background:#fff}footer p,html{font-size:.9em}#categories_container:hover .help{opacity:.8;transition:opacity 1s ease}html{font-family:arial,sans-serif;-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%;-moz-text-size-adjust:100%;text-size-adjust:100%;color:#444}#main_about,#main_preferences,#main_stats{margin:3em;width:auto}footer{bottom:0;height:3em;margin:1em 0;padding:1em 0;text-align:center}#main_preferences h1,#main_stats h1{background:url(../img/searx.png) no-repeat;background-size:auto 75%;min-height:40px;margin:0 auto}#results button[type=submit],input[type=submit]{padding:.5rem;margin:2px 4px;display:inline-block;background:#3498DB;color:#FFF;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;border:0;cursor:pointer}a{text-decoration:none;color:#29314d}a:visited,a:visited .highlight{color:#684898}article[data-vim-selected]{background:#f7f7f7}article[data-vim-selected]::before{position:absolute;left:1em;padding:2px;content:">";font-weight:700;color:#3498DB}article.result-images[data-vim-selected]{background:#3498DB}article.result-images[data-vim-selected]::before{display:none;content:""}.result{margin:19px 0 18px;padding:0}.result h3{font-size:1.1em;word-wrap:break-word;margin:5px 0 0;padding:0}.result h3 a{color:#084999;font-weight:400;font-size:1.1em}.result h3 a:visited{color:#684898}.result h3 a:focus,.result h3 a:hover{text-decoration:underline;border:none;-webkit-box-shadow:none;box-shadow:none;outline:0}.result .cache_link,.result .proxyfied_link{font-size:.9em!important}.result .altlink,.result .content,.result .stat,.result .url{font-size:.9em;padding:0;max-width:54em;word-wrap:break-word}.result .altlink,.result .content,.result .stat{margin:0;line-height:1.24}.result .altlink .highlight,.result .content .highlight,.result .stat .highlight{color:#000;background:inherit;font-weight:700}.result .codelines .highlight{color:inherit;background:inherit;font-weight:400}.result .url{margin:0 0 3px;color:#25a55b}.result .published_date{font-size:.8em;color:#888}.result img.thumbnail{float:left;padding:0 5px 10px 0;width:20em;min-width:20em;min-height:8em}.result img.image{float:left;padding:0 5px 10px 0;width:100px;max-height:100px;object-fit:scale-down;object-position:right top}.category-social .image{width:auto!important;min-width:48px;min-height:48px;padding:0 5px 25px 0!important}.result-videos .content{overflow:hidden}.engines{float:right;color:#888}.engines span{font-size:smaller;margin:0 .5em 0 0}.result-images,.result-images img{margin:0;padding:0;max-height:200px}.small_font{font-size:.8em}.highlight{color:#094089;background:inherit;font-weight:700}.result-images{display:inline-block;position:relative}.result-images img{float:inherit;border:none;background:#084999}.result-images span a{display:none;color:#FFF}.result-images:hover span a{display:block;position:absolute;bottom:0;right:0;padding:4px;margin:0 0 4px 4px;background-color:rgba(0,0,0,.6);font-size:.7em}.torrent_result{border-left:10px solid #d3d3d3;padding-left:3px}#answers,#backToTop,#sidebar .infobox{border:1px solid #ddd;box-shadow:0 0 5px #CCC}.torrent_result p{margin:3px;font-size:.8em}.torrent_result a{color:#084999}.torrent_result a:hover{text-decoration:underline}.torrent_result a:visited{color:#684898}#results{margin:2em 2em 20px;padding:0;width:50em}#suggestions .wrapper{display:flex;flex-flow:row wrap;justify-content:flex-end}#suggestions .wrapper form{display:inline-block;flex:1 1 50%}#answers,#corrections,#suggestions{max-width:50em}#answers input,#corrections input,#infoboxes input,#suggestions input{padding:0;margin:3px;font-size:.9em;display:inline-block;background:0 0;color:#444;cursor:pointer}#answers .infobox .url a,#answers input[type=submit],#corrections .infobox .url a,#corrections input[type=submit],#infoboxes .infobox .url a,#infoboxes input[type=submit],#suggestions .infobox .url a,#suggestions input[type=submit]{color:#084999;text-decoration:none;font-size:.9rem}#answers .infobox .url a:hover,#answers input[type=submit]:hover,#corrections .infobox .url a:hover,#corrections input[type=submit]:hover,#infoboxes .infobox .url a:hover,#infoboxes input[type=submit]:hover,#suggestions .infobox .url a:hover,#suggestions input[type=submit]:hover{text-decoration:underline}#corrections{display:flex;flex-flow:row wrap;margin:1em 0}#corrections h4,#corrections input[type=submit]{display:inline-block;margin:0 .5em 0 0}#corrections input[type=submit]::after{content:", "}#apis .title,#search_url .title,#suggestions .title{margin:2em 0 .5em;color:#444}#answers{margin:10px 8px;padding:.9em}#answers h4{display:none}#answers .answer{display:block;font-size:1.2em;font-weight:700}#answers form,#infoboxes form{min-width:210px}#sidebar{position:absolute;top:100px;left:57em;margin:0 2px 5px 5px;padding:0 2px 2px;max-width:25em;word-wrap:break-word}#sidebar .infobox{margin:10px 0;padding:.9em;font-size:.9em}#sidebar .infobox h2{margin:0 0 .5em}#sidebar .infobox img{max-width:100%;max-height:12em;display:block;margin:0;padding:0}#sidebar .infobox dl{margin:.5em 0}#sidebar .infobox dt{display:inline;margin:.5em .25em .5em 0;padding:0;font-weight:700}#sidebar .infobox dd{display:inline;margin:.5em 0;padding:0}#apis,#search_url{margin-top:8px}#sidebar .infobox input{font-size:1em}#search_url div.selectable_url pre{width:200em}#linkto_preferences{position:absolute;right:10px;top:.9em;padding:0;border:0;display:block;font-size:1.2em;color:#222}#linkto_preferences a:active *,#linkto_preferences a:hover *,#linkto_preferences a:link *,#linkto_preferences a:visited *{color:#222}#backToTop{margin:0 0 0 2em;padding:0;font-size:1em;background:#fff;position:fixed;bottom:85px;left:50em;transition:opacity .5s;opacity:0}#backToTop a{display:block;margin:0;padding:.6em}@media screen and (max-width:75em){#main_about,#main_preferences,#main_stats{margin:.5em;width:auto}#answers,#suggestions{margin-top:1em}#infoboxes{position:inherit;max-width:inherit}#infoboxes .infobox{clear:both}#infoboxes .infobox img{float:left;max-width:10em;margin:.5em .5em .5em 0}#sidebar{position:static;max-width:50em;margin:0 0 2px;padding:0;float:none;border:none;width:auto}.image_result,.image_result img,.result .thumbnail{max-width:98%}#sidebar input{border:0}#apis,#search_url{display:none}.result{border-bottom:1px solid #E8E7E6;margin:0;padding-top:8px;padding-bottom:6px}.result h3{margin:0 0 1px}.result .url span.url{display:block;white-space:nowrap;text-overflow:ellipsis;overflow:hidden;width:100%}.result .url a{float:right;padding:0 .5em}.result .engines{float:right;padding:0 0 3px}.result-images{border-bottom:none!important}}#main_results div#results.only_template_images{flex-direction:column;width:auto;display:flex}#main_results div#results.only_template_images #sidebar{position:relative;top:auto;order:2}#main_results div#results.only_template_images #urls{position:relative;order:1}#main_results div#results.only_template_images #backToTop{right:.5em;left:auto}#main_results div#results.only_template_images #pagination{position:relative;order:3}@media screen and (max-width:50em){article[data-vim-selected]::before{display:none;content:""}#linkto_preferences{display:none;postion:fixed!important;top:100px;right:0}#sidebar{margin:0 5px 2px}#corrections{margin:1em 5px}#results{margin:0;padding:0;width:initial}#backToTop{left:40em;bottom:35px}.result{padding:8px 10px 6px}.result-images{margin:0;padding:0;border:none}}@media screen and (max-width:35em){.result-videos img.thumbnail{float:none!important}.result-videos .content{overflow:inherit}} \ No newline at end of file
diff --git a/searx/static/themes/simple/gruntfile.js b/searx/static/themes/simple/gruntfile.js
index a0f9fd75a..c372ec730 100644
--- a/searx/static/themes/simple/gruntfile.js
+++ b/searx/static/themes/simple/gruntfile.js
@@ -10,21 +10,36 @@ module.exports = function(grunt) {
tasks: ['jshint', 'concat', 'uglify', 'webfont', 'less:development', 'less:production']
}
},
- concat: {
+ jshint: {
+ files: ['js/searx_src/*.js', 'js/searx_header/*.js'],
options: {
- separator: ';'
- },
- dist: {
- src: ['js/searx_src/*.js'],
- dest: 'js/searx.js'
+ reporterOutput: "",
+ proto: true,
+ // options here to override JSHint defaults
+ globals: {
+ browser: true,
+ jQuery: false,
+ devel: true
+ }
+ }
+ },
+ concat: {
+ head_and_body: {
+ options: {
+ separator: ';'
+ },
+ files: {
+ 'js/searx.head.js': ['js/searx_head/*.js'],
+ 'js/searx.js': ['js/searx_src/*.js']
+ }
}
},
uglify: {
options: {
banner: '/*! simple/searx.min.js | <%= grunt.template.today("dd-mm-yyyy") %> | https://github.com/asciimoo/searx */\n',
- output: {
- comments: 'some'
- },
+ output: {
+ comments: 'some'
+ },
ie8: false,
warnings: true,
compress: false,
@@ -33,20 +48,8 @@ module.exports = function(grunt) {
},
dist: {
files: {
- 'js/searx.min.js': ['<%= concat.dist.dest %>']
- }
- }
- },
- jshint: {
- files: ['js/searx_src/*.js'],
- options: {
- reporterOutput: "",
- proto: true,
- // options here to override JSHint defaults
- globals: {
- browser: true,
- jQuery: false,
- devel: true
+ 'js/searx.head.min.js': ['js/searx.head.js'],
+ 'js/searx.min.js': ['js/searx.js']
}
}
},
diff --git a/searx/static/themes/simple/js/searx.head.js b/searx/static/themes/simple/js/searx.head.js
new file mode 100644
index 000000000..3ac61c8ae
--- /dev/null
+++ b/searx/static/themes/simple/js/searx.head.js
@@ -0,0 +1,40 @@
+/**
+* searx is free software: you can redistribute it and/or modify
+* it under the terms of the GNU Affero General Public License as published by
+* the Free Software Foundation, either version 3 of the License, or
+* (at your option) any later version.
+*
+* searx is distributed in the hope that it will be useful,
+* but WITHOUT ANY WARRANTY; without even the implied warranty of
+* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+* GNU Affero General Public License for more details.
+*
+* You should have received a copy of the GNU Affero General Public License
+* along with searx. If not, see < http://www.gnu.org/licenses/ >.
+*
+* (C) 2019 by Alexandre Flament
+*
+*/
+(function(w, d) {
+ 'use strict';
+
+ // add data- properties
+ var script = d.currentScript || (function() {
+ var scripts = d.getElementsByTagName('script');
+ return scripts[scripts.length - 1];
+ })();
+
+ // try to detect touch screen
+ w.searx = {
+ touch: (("ontouchstart" in w) || w.DocumentTouch && document instanceof DocumentTouch) || false,
+ method: script.getAttribute('data-method'),
+ autocompleter: script.getAttribute('data-autocompleter') === 'true',
+ search_on_category_select: script.getAttribute('data-search-on-category-select') === 'true',
+ infinite_scroll: script.getAttribute('data-infinite-scroll') === 'true',
+ static_path: script.getAttribute('data-static-path'),
+ no_item_found: script.getAttribute('data-no-item-found')
+ }
+
+ // update the css
+ d.getElementsByTagName("html")[0].className = (w.searx.touch)?"js touch":"js";
+})(window, document); \ No newline at end of file
diff --git a/searx/static/themes/simple/js/searx.head.min.js b/searx/static/themes/simple/js/searx.head.min.js
new file mode 100644
index 000000000..00c711c79
--- /dev/null
+++ b/searx/static/themes/simple/js/searx.head.min.js
@@ -0,0 +1,4 @@
+/*! simple/searx.min.js | 06-08-2019 | https://github.com/asciimoo/searx */
+
+(function(t,e){"use strict";var a=e.currentScript||function(){var t=e.getElementsByTagName("script");return t[t.length-1]}();t.searx={touch:"ontouchstart"in t||t.DocumentTouch&&document instanceof DocumentTouch||false,method:a.getAttribute("data-method"),autocompleter:a.getAttribute("data-autocompleter")==="true",search_on_category_select:a.getAttribute("data-search-on-category-select")==="true",infinite_scroll:a.getAttribute("data-infinite-scroll")==="true",static_path:a.getAttribute("data-static-path"),no_item_found:a.getAttribute("data-no-item-found")};e.getElementsByTagName("html")[0].className=t.searx.touch?"js touch":"js"})(window,document);
+//# sourceMappingURL=searx.head.min.js.map \ No newline at end of file
diff --git a/searx/static/themes/simple/js/searx.head.min.js.map b/searx/static/themes/simple/js/searx.head.min.js.map
new file mode 100644
index 000000000..d19ad5a44
--- /dev/null
+++ b/searx/static/themes/simple/js/searx.head.min.js.map
@@ -0,0 +1 @@
+{"version":3,"sources":["searx.head.js"],"names":["w","d","script","currentScript","scripts","getElementsByTagName","length","searx","touch","DocumentTouch","document","method","getAttribute","autocompleter","search_on_category_select","infinite_scroll","static_path","no_item_found","className","window"],"mappings":";;CAiBA,SAAUA,EAAGC,GACT,aAGA,IAAIC,EAASD,EAAEE,eAAkB,WAC7B,IAAIC,EAAUH,EAAEI,qBAAqB,UACrC,OAAOD,EAAQA,EAAQE,OAAS,GAFH,GAMjCN,EAAEO,MAAQ,CACNC,MAAS,iBAAkBR,GAAMA,EAAES,eAAiBC,oBAAoBD,eAAkB,MAC1FE,OAAQT,EAAOU,aAAa,eAC5BC,cAAeX,EAAOU,aAAa,wBAA0B,OAC7DE,0BAA2BZ,EAAOU,aAAa,oCAAsC,OACrFG,gBAAiBb,EAAOU,aAAa,0BAA4B,OACjEI,YAAad,EAAOU,aAAa,oBACjCK,cAAef,EAAOU,aAAa,uBAIvCX,EAAEI,qBAAqB,QAAQ,GAAGa,UAAalB,EAAEO,MAAW,MAAE,WAAW,MArB7E,CAsBGY,OAAQT","file":"searx.head.min.js"} \ No newline at end of file
diff --git a/searx/static/themes/simple/js/searx.js b/searx/static/themes/simple/js/searx.js
index 1830977c0..e191f2487 100644
--- a/searx/static/themes/simple/js/searx.js
+++ b/searx/static/themes/simple/js/searx.js
@@ -15,7 +15,7 @@
* (C) 2017 by Alexandre Flament, <alex@al-f.net>
*
*/
-(function(w, d, searx) {
+window.searx = (function(w, d) {
'use strict';
@@ -45,7 +45,7 @@
}
}
- searx = searx || {};
+ var searx = window.searx || {};
searx.on = function(obj, eventType, callback, useCapture) {
useCapture = useCapture || false;
@@ -110,7 +110,7 @@
};
searx.loadStyle = function(src) {
- var path = searx.staticPath + src,
+ var path = searx.static_path + src,
id = "style_" + src.replace('.', '_'),
s = d.getElementById(id);
if (s === null) {
@@ -124,7 +124,7 @@
};
searx.loadScript = function(src, callback) {
- var path = searx.staticPath + src,
+ var path = searx.static_path + src,
id = "script_" + src.replace('.', '_'),
s = d.getElementById(id);
if (s === null) {
@@ -161,7 +161,7 @@
});
return searx;
-})(window, document, window.searx);
+})(window, document);
;(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 e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require=="function"&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);var f=new Error("Cannot find module '"+o+"'");throw f.code="MODULE_NOT_FOUND",f}var l=n[o]={exports:{}};t[o][0].call(l.exports,function(e){var n=t[o][1][e];return s(n?n:e)},l,l.exports,e,t,n,r)}return n[o].exports}var i=typeof require=="function"&&require;for(var o=0;o<r.length;o++)s(r[o]);return s})({1:[function(require,module,exports){
/*
* @license MIT
@@ -1529,7 +1529,7 @@ module.exports = AutoComplete;
if (searx.autocompleter) {
searx.autocomplete = AutoComplete.call(w, {
Url: "./autocompleter",
- EmptyMessage: searx.noItemFound,
+ EmptyMessage: searx.no_item_found,
HttpMethod: searx.method,
MinChars: 4,
Delay: 300,
diff --git a/searx/static/themes/simple/js/searx.min.js b/searx/static/themes/simple/js/searx.min.js
index f1601cd37..42e8a845c 100644
--- a/searx/static/themes/simple/js/searx.min.js
+++ b/searx/static/themes/simple/js/searx.min.js
@@ -1,6 +1,7 @@
-/*! simple/searx.min.js | 14-08-2018 | https://github.com/asciimoo/searx */
+/*! simple/searx.min.js | 06-08-2019 | https://github.com/asciimoo/searx */
-(function(e,t,n){"use strict";if(e.Element){(function(e){e.matches=e.matches||e.matchesSelector||e.webkitMatchesSelector||e.msMatchesSelector||function(e){var t=this,n=(t.parentNode||t.document).querySelectorAll(e),i=-1;while(n[++i]&&n[i]!=t);return!!n[i]}})(Element.prototype)}function i(e,t,n){try{e.call(t,n)}catch(e){console.log(e)}}n=n||{};n.on=function(e,n,r,a){a=a||false;if(typeof e!=="string"){e.addEventListener(n,r,a)}else{t.addEventListener(n,function(n){var a=n.target||n.srcElement,o=false;while(a&&a.matches&&a!==t&&!(o=a.matches(e)))a=a.parentElement;if(o)i(r,a,n)},a)}};n.ready=function(t){if(document.readyState!="loading"){t.call(e)}else{e.addEventListener("DOMContentLoaded",t.bind(e))}};n.http=function(e,t,n){var i=new XMLHttpRequest,r=function(){},a=function(){},o={then:function(e){r=e;return o},catch:function(e){a=e;return o}};try{i.open(e,t,true);i.onload=function(){if(i.status==200){r(i.response,i.responseType)}else{a(Error(i.statusText))}};i.onerror=function(){a(Error("Network Error"))};i.onabort=function(){a(Error("Transaction is aborted"))};i.send()}catch(e){a(e)}return o};n.loadStyle=function(e){var i=n.staticPath+e,r="style_"+e.replace(".","_"),a=t.getElementById(r);if(a===null){a=t.createElement("link");a.setAttribute("id",r);a.setAttribute("rel","stylesheet");a.setAttribute("type","text/css");a.setAttribute("href",i);t.body.appendChild(a)}};n.loadScript=function(e,i){var r=n.staticPath+e,a="script_"+e.replace(".","_"),o=t.getElementById(a);if(o===null){o=t.createElement("script");o.setAttribute("id",a);o.setAttribute("src",r);o.onload=i;o.onerror=function(){o.setAttribute("error","1")};t.body.appendChild(o)}else if(!o.hasAttribute("error")){try{i.apply(o,[])}catch(e){console.log(e)}}else{console.log("callback not executed : script '"+r+"' not loaded.")}};n.insertBefore=function(e,t){element.parentNode.insertBefore(e,t)};n.insertAfter=function(e,t){t.parentNode.insertBefore(e,t.nextSibling)};n.on(".close","click",function(e){var t=e.target||e.srcElement;this.parentNode.classList.add("invisible")});return n})(window,document,window.searx);(function(e){if(typeof exports==="object"&&typeof module!=="undefined"){module.exports=e()}else if(typeof define==="function"&&define.amd){define([],e)}else{var t;if(typeof window!=="undefined"){t=window}else if(typeof global!=="undefined"){t=global}else if(typeof self!=="undefined"){t=self}else{t=this}t.AutoComplete=e()}})(function(){var e,t,n;return function e(t,n,i){function r(o,s){if(!n[o]){if(!t[o]){var l=typeof require=="function"&&require;if(!s&&l)return l(o,!0);if(a)return a(o,!0);var u=new Error("Cannot find module '"+o+"'");throw u.code="MODULE_NOT_FOUND",u}var c=n[o]={exports:{}};t[o][0].call(c.exports,function(e){var n=t[o][1][e];return r(n?n:e)},c,c.exports,e,t,n,i)}return n[o].exports}var a=typeof require=="function"&&require;for(var o=0;o<i.length;o++)r(i[o]);return r}({1:[function(e,t,n){/*
+window.searx=function(t,a){"use strict";if(t.Element){(function(e){e.matches=e.matches||e.matchesSelector||e.webkitMatchesSelector||e.msMatchesSelector||function(e){var t=this,n=(t.parentNode||t.document).querySelectorAll(e),i=-1;while(n[++i]&&n[i]!=t);return!!n[i]}})(Element.prototype)}function o(e,t,n){try{e.call(t,n)}catch(e){console.log(e)}}var s=window.searx||{};s.on=function(i,e,r,t){t=t||false;if(typeof i!=="string"){i.addEventListener(e,r,t)}else{a.addEventListener(e,function(e){var t=e.target||e.srcElement,n=false;while(t&&t.matches&&t!==a&&!(n=t.matches(i)))t=t.parentElement;if(n)o(r,t,e)},t)}};s.ready=function(e){if(document.readyState!="loading"){e.call(t)}else{t.addEventListener("DOMContentLoaded",e.bind(t))}};s.http=function(e,t,n){var i=new XMLHttpRequest,r=function(){},a=function(){},o={then:function(e){r=e;return o},catch:function(e){a=e;return o}};try{i.open(e,t,true);i.onload=function(){if(i.status==200){r(i.response,i.responseType)}else{a(Error(i.statusText))}};i.onerror=function(){a(Error("Network Error"))};i.onabort=function(){a(Error("Transaction is aborted"))};i.send()}catch(e){a(e)}return o};s.loadStyle=function(e){var t=s.static_path+e,n="style_"+e.replace(".","_"),i=a.getElementById(n);if(i===null){i=a.createElement("link");i.setAttribute("id",n);i.setAttribute("rel","stylesheet");i.setAttribute("type","text/css");i.setAttribute("href",t);a.body.appendChild(i)}};s.loadScript=function(e,t){var n=s.static_path+e,i="script_"+e.replace(".","_"),r=a.getElementById(i);if(r===null){r=a.createElement("script");r.setAttribute("id",i);r.setAttribute("src",n);r.onload=t;r.onerror=function(){r.setAttribute("error","1")};a.body.appendChild(r)}else if(!r.hasAttribute("error")){try{t.apply(r,[])}catch(e){console.log(e)}}else{console.log("callback not executed : script '"+n+"' not loaded.")}};s.insertBefore=function(e,t){element.parentNode.insertBefore(e,t)};s.insertAfter=function(e,t){t.parentNode.insertBefore(e,t.nextSibling)};s.on(".close","click",function(e){var t=e.target||e.srcElement;this.parentNode.classList.add("invisible")});return s}(window,document);(function(e){if(typeof exports==="object"&&typeof module!=="undefined"){module.exports=e()}else if(typeof define==="function"&&define.amd){define([],e)}else{var t;if(typeof window!=="undefined"){t=window}else if(typeof global!=="undefined"){t=global}else if(typeof self!=="undefined"){t=self}else{t=this}t.AutoComplete=e()}})(function(){var e,t,n;return function a(o,s,l){function u(n,e){if(!s[n]){if(!o[n]){var t=typeof require=="function"&&require;if(!e&&t)return t(n,!0);if(c)return c(n,!0);var i=new Error("Cannot find module '"+n+"'");throw i.code="MODULE_NOT_FOUND",i}var r=s[n]={exports:{}};o[n][0].call(r.exports,function(e){var t=o[n][1][e];return u(t?t:e)},r,r.exports,a,o,s,l)}return s[n].exports}var c=typeof require=="function"&&require;for(var e=0;e<l.length;e++)u(l[e]);return u}({1:[function(e,t,n){
+/*
* @license MIT
*
* Autocomplete.js v2.6.3
@@ -9,7 +10,8 @@
*
* (c) 2017, Baptiste Donaux
*/
-"use strict";var i;(function(e){e[e["AND"]=0]="AND";e[e["OR"]=1]="OR"})(i||(i={}));var r;(function(e){e[e["KEYDOWN"]=0]="KEYDOWN";e[e["KEYUP"]=1]="KEYUP"})(r||(r={}));var a=function(){function e(t,n){if(t===void 0){t={}}if(n===void 0){n="[data-autocomplete]"}if(Array.isArray(n)){n.forEach(function(n){new e(t,n)})}else if(typeof n=="string"){var i=document.querySelectorAll(n);Array.prototype.forEach.call(i,function(n){new e(t,n)})}else{var r=e.merge(e.defaults,t,{DOMResults:document.createElement("div")});e.prototype.create(r,n);return r}}e.prototype.create=function(t,n){t.Input=n;if(t.Input.nodeName.match(/^INPUT$/i)&&(t.Input.hasAttribute("type")===false||t.Input.getAttribute("type").match(/^TEXT|SEARCH$/i))){t.Input.setAttribute("autocomplete","off");t._Position(t);t.Input.parentNode.appendChild(t.DOMResults);t.$Listeners={blur:t._Blur.bind(t),destroy:e.prototype.destroy.bind(null,t),focus:t._Focus.bind(t),keyup:e.prototype.event.bind(null,t,r.KEYUP),keydown:e.prototype.event.bind(null,t,r.KEYDOWN),position:t._Position.bind(t)};for(var i in t.$Listeners){t.Input.addEventListener(i,t.$Listeners[i])}}};e.prototype.getEventsByType=function(e,t){var n={};for(var i in e.KeyboardMappings){var a=r.KEYUP;if(e.KeyboardMappings[i].Event!==undefined){a=e.KeyboardMappings[i].Event}if(a==t){n[i]=e.KeyboardMappings[i]}}return n};e.prototype.event=function(t,n,r){var a=function(t){if(l===true&&s.Operator==i.AND||l===false&&s.Operator==i.OR){t=e.merge({Not:false},t);if(t.hasOwnProperty("Is")){if(t.Is==r.keyCode){l=!t.Not}else{l=t.Not}}else if(t.hasOwnProperty("From")&&t.hasOwnProperty("To")){if(r.keyCode>=t.From&&r.keyCode<=t.To){l=!t.Not}else{l=t.Not}}}};for(var o in e.prototype.getEventsByType(t,n)){var s=e.merge({Operator:i.AND},t.KeyboardMappings[o]),l=i.AND==s.Operator;s.Conditions.forEach(a);if(l===true){s.Callback.call(t,r)}}};e.prototype.makeRequest=function(e,t){var n=Object.getOwnPropertyNames(e.HttpHeaders),i=new XMLHttpRequest,r=e._HttpMethod(),a=e._Url(),o=e._Pre(),s=encodeURIComponent(e._QueryArg())+"="+encodeURIComponent(o);if(r.match(/^GET$/i)){if(a.indexOf("?")!==-1){a+="&"+s}else{a+="?"+s}}i.open(r,a,true);for(var l=n.length-1;l>=0;l--){i.setRequestHeader(n[l],e.HttpHeaders[n[l]])}i.onreadystatechange=function(){if(i.readyState==4&&i.status==200){e.$Cache[o]=i.response;t(i.response)}};return i};e.prototype.ajax=function(t,n,i){if(i===void 0){i=true}if(t.$AjaxTimer){window.clearTimeout(t.$AjaxTimer)}if(i===true){t.$AjaxTimer=window.setTimeout(e.prototype.ajax.bind(null,t,n,false),t.Delay)}else{if(t.Request){t.Request.abort()}t.Request=n;t.Request.send(t._QueryArg()+"="+t._Pre())}};e.prototype.cache=function(t,n){var i=t._Cache(t._Pre());if(i===undefined){var r=e.prototype.makeRequest(t,n);e.prototype.ajax(t,r)}else{n(i)}};e.prototype.destroy=function(e){for(var t in e.$Listeners){e.Input.removeEventListener(t,e.$Listeners[t])}e.DOMResults.parentNode.removeChild(e.DOMResults)};return e}();a.merge=function(){var e={},t;for(var n=0;n<arguments.length;n++){for(t in arguments[n]){e[t]=arguments[n][t]}}return e};a.defaults={Delay:150,EmptyMessage:"No result here",Highlight:{getRegex:function(e){return new RegExp(e,"ig")},transform:function(e){return"<strong>"+e+"</strong>"}},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:i.AND,Event:r.KEYDOWN},KeyUpAndDown_down:{Conditions:[{Is:38,Not:false},{Is:40,Not:false}],Callback:function(e){e.preventDefault()},Operator:i.OR,Event:r.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),a=r+(e.keyCode-39),o=this.DOMResults.getElementsByTagName("li").length;if(a<0){a=o-1}else if(a>=o){a=0}i.classList.remove("active");i.parentElement.children.item(a).classList.add("active")}else if(n&&e.keyCode==38){n.classList.add("active")}else if(t){t.classList.add("active")}},Operator:i.OR,Event:r.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")}a.prototype.cache(this,function(e){this._Render(this._Post(e));this._Open()}.bind(this))}},Operator:i.AND,Event:r.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===true){this.DOMResults.setAttribute("class","autocomplete");this.Input.setAttribute("data-autocomplete-old-value",this.Input.value)}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 e=this;Array.prototype.forEach.call(this.DOMResults.getElementsByTagName("li"),function(t){if(t.getAttribute("class")!="locked"){t.onclick=function(n){e._Select(t)};t.onmouseenter=function(){var n=e.DOMResults.querySelector("li.active");if(n!==t){if(n!==null){n.classList.remove("active")}t.classList.add("active")}}}})},_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;r<Math.min(Math.abs(i),e.length);r++){n.innerHTML=e[r].Label;n.setAttribute("data-autocomplete-value",e[r].Value);t.appendChild(n);n=document.createElement("li")}return t},_RenderRaw:function(e){var t=document.createElement("ul"),n=document.createElement("li");if(e.length>0){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(e){try{var t=[];var n=JSON.parse(e);if(Object.keys(n).length===0){return""}if(Array.isArray(n)){for(var i=0;i<Object.keys(n).length;i++){t[t.length]={Value:n[i],Label:this._Highlight(n[i])}}}else{for(var r in n){t.push({Value:r,Label:this._Highlight(n[r])})}}return t}catch(t){return e}},_Pre:function(){return this.Input.value},_Select:function(e){console.log("test test test");if(e.hasAttribute("data-autocomplete-value")){this.Input.value=e.getAttribute("data-autocomplete-value")}else{this.Input.value=e.innerHTML}this.Input.setAttribute("data-autocomplete-old-value",this.Input.value)},$AjaxTimer:null,$Cache:{},$Listeners:{}};t.exports=a},{}]},{},[1])(1)});/**
+"use strict";var l;(function(e){e[e["AND"]=0]="AND";e[e["OR"]=1]="OR"})(l||(l={}));var a;(function(e){e[e["KEYDOWN"]=0]="KEYDOWN";e[e["KEYUP"]=1]="KEYUP"})(a||(a={}));var i=function(){function s(t,e){if(t===void 0){t={}}if(e===void 0){e="[data-autocomplete]"}if(Array.isArray(e)){e.forEach(function(e){new s(t,e)})}else if(typeof e=="string"){var n=document.querySelectorAll(e);Array.prototype.forEach.call(n,function(e){new s(t,e)})}else{var i=s.merge(s.defaults,t,{DOMResults:document.createElement("div")});s.prototype.create(i,e);return i}}s.prototype.create=function(e,t){e.Input=t;if(e.Input.nodeName.match(/^INPUT$/i)&&(e.Input.hasAttribute("type")===false||e.Input.getAttribute("type").match(/^TEXT|SEARCH$/i))){e.Input.setAttribute("autocomplete","off");e._Position(e);e.Input.parentNode.appendChild(e.DOMResults);e.$Listeners={blur:e._Blur.bind(e),destroy:s.prototype.destroy.bind(null,e),focus:e._Focus.bind(e),keyup:s.prototype.event.bind(null,e,a.KEYUP),keydown:s.prototype.event.bind(null,e,a.KEYDOWN),position:e._Position.bind(e)};for(var n in e.$Listeners){e.Input.addEventListener(n,e.$Listeners[n])}}};s.prototype.getEventsByType=function(e,t){var n={};for(var i in e.KeyboardMappings){var r=a.KEYUP;if(e.KeyboardMappings[i].Event!==undefined){r=e.KeyboardMappings[i].Event}if(r==t){n[i]=e.KeyboardMappings[i]}}return n};s.prototype.event=function(e,t,n){var i=function(e){if(o===true&&a.Operator==l.AND||o===false&&a.Operator==l.OR){e=s.merge({Not:false},e);if(e.hasOwnProperty("Is")){if(e.Is==n.keyCode){o=!e.Not}else{o=e.Not}}else if(e.hasOwnProperty("From")&&e.hasOwnProperty("To")){if(n.keyCode>=e.From&&n.keyCode<=e.To){o=!e.Not}else{o=e.Not}}}};for(var r in s.prototype.getEventsByType(e,t)){var a=s.merge({Operator:l.AND},e.KeyboardMappings[r]),o=l.AND==a.Operator;a.Conditions.forEach(i);if(o===true){a.Callback.call(e,n)}}};s.prototype.makeRequest=function(e,t){var n=Object.getOwnPropertyNames(e.HttpHeaders),i=new XMLHttpRequest,r=e._HttpMethod(),a=e._Url(),o=e._Pre(),s=encodeURIComponent(e._QueryArg())+"="+encodeURIComponent(o);if(r.match(/^GET$/i)){if(a.indexOf("?")!==-1){a+="&"+s}else{a+="?"+s}}i.open(r,a,true);for(var l=n.length-1;l>=0;l--){i.setRequestHeader(n[l],e.HttpHeaders[n[l]])}i.onreadystatechange=function(){if(i.readyState==4&&i.status==200){e.$Cache[o]=i.response;t(i.response)}};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){var n=e._Cache(e._Pre());if(n===undefined){var i=s.prototype.makeRequest(e,t);s.prototype.ajax(e,i)}else{t(n)}};s.prototype.destroy=function(e){for(var t in e.$Listeners){e.Input.removeEventListener(t,e.$Listeners[t])}e.DOMResults.parentNode.removeChild(e.DOMResults)};return s}();i.merge=function(){var e={},t;for(var n=0;n<arguments.length;n++){for(t in arguments[n]){e[t]=arguments[n][t]}}return e};i.defaults={Delay:150,EmptyMessage:"No result here",Highlight:{getRegex:function(e){return new RegExp(e,"ig")},transform:function(e){return"<strong>"+e+"</strong>"}},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:a.KEYDOWN},KeyUpAndDown_down:{Conditions:[{Is:38,Not:false},{Is:40,Not:false}],Callback:function(e){e.preventDefault()},Operator:l.OR,Event:a.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),a=r+(e.keyCode-39),o=this.DOMResults.getElementsByTagName("li").length;if(a<0){a=o-1}else if(a>=o){a=0}i.classList.remove("active");i.parentElement.children.item(a).classList.add("active")}else if(n&&e.keyCode==38){n.classList.add("active")}else if(t){t.classList.add("active")}},Operator:l.OR,Event:a.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")}i.prototype.cache(this,function(e){this._Render(this._Post(e));this._Open()}.bind(this))}},Operator:l.AND,Event:a.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===true){this.DOMResults.setAttribute("class","autocomplete");this.Input.setAttribute("data-autocomplete-old-value",this.Input.value)}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 n=this;Array.prototype.forEach.call(this.DOMResults.getElementsByTagName("li"),function(t){if(t.getAttribute("class")!="locked"){t.onclick=function(e){n._Select(t)};t.onmouseenter=function(){var e=n.DOMResults.querySelector("li.active");if(e!==t){if(e!==null){e.classList.remove("active")}t.classList.add("active")}}}})},_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;r<Math.min(Math.abs(i),e.length);r++){n.innerHTML=e[r].Label;n.setAttribute("data-autocomplete-value",e[r].Value);t.appendChild(n);n=document.createElement("li")}return t},_RenderRaw:function(e){var t=document.createElement("ul"),n=document.createElement("li");if(e.length>0){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<Object.keys(n).length;i++){e[e.length]={Value:n[i],Label:this._Highlight(n[i])}}}else{for(var r in n){e.push({Value:r,Label:this._Highlight(n[r])})}}return e}catch(e){return t}},_Pre:function(){return this.Input.value},_Select:function(e){console.log("test test test");if(e.hasAttribute("data-autocomplete-value")){this.Input.value=e.getAttribute("data-autocomplete-value")}else{this.Input.value=e.innerHTML}this.Input.setAttribute("data-autocomplete-old-value",this.Input.value)},$AjaxTimer:null,$Cache:{},$Listeners:{}};t.exports=i},{}]},{},[1])(1)});
+/**
*
* Google Image Layout v0.0.1
* Description, by Anh Trinh.
@@ -19,5 +21,5 @@
* @license Free to use under the MIT License.
*
*/
-(function(e,t){"use strict";function n(e,t,n,i){this.container_selector=e;this.results_selector=t;this.img_selector=n;this.margin=10;this.maxHeight=i;this._alignAllDone=true}n.prototype._getHeigth=function(e,t){var n=0,i;t-=e.length*this.margin;for(var r=0;r<e.length;r++){i=e[r];if(i.naturalWidth>0&&i.naturalHeight>0){n+=i.naturalWidth/i.naturalHeight}else{n+=1}}return t/n};n.prototype._setSize=function(e,t){var n,i,r=e.length;for(var a=0;a<r;a++){n=e[a];if(n.naturalWidth>0&&n.naturalHeight>0){i=t*n.naturalWidth/n.naturalHeight}else{i=t}n.style.width=i+"px";n.style.height=t+"px";n.style.marginLeft="3px";n.style.marginTop="3px";n.style.marginRight=this.margin-7+"px";n.style.marginBottom=this.margin-7+"px"}};n.prototype._alignImgs=function(e){var n,i,r=t.querySelector(this.container_selector).clientWidth;e:while(e.length>0){for(var a=1;a<=e.length;a++){n=e.slice(0,a);i=this._getHeigth(n,r);if(i<this.maxHeight){this._setSize(n,i);e=e.slice(a);continue e}}this._setSize(n,Math.min(this.maxHeight,i));break}};n.prototype.align=function(e){var n=t.querySelectorAll(this.results_selector),i=n.length,r=null,a=null,o=[];for(var s=0;s<i;s++){a=n[s];if(a.previousElementSibling!==r&&o.length>0){this._alignImgs(o);o=[]}o.push(a.querySelector(this.img_selector));r=a}if(o.length>0){this._alignImgs(o)}};n.prototype.watch=function(){var n,i,r,a,o=this,s=t.querySelectorAll(this.results_selector),l=s.length;function u(e){o.align()}function c(e){if(o._alignAllDone){o._alignAllDone=false;setTimeout(function(){o.align();o._alignAllDone=true},100)}}e.addEventListener("resize",c);e.addEventListener("pageshow",u);for(n=0;n<l;n++){i=s[n].querySelector(this.img_selector);if(typeof i!=="undefined"){i.addEventListener("load",c);i.addEventListener("error",c)}}};e.searx.ImageLayout=n})(window,document);searx.ready(function(){searx.on(".result","click",function(){t(this)(true)});searx.on(".result a","focus",function(e){var n=e.target;while(n!==undefined){if(n.classList.contains("result")){if(n.getAttribute("data-vim-selected")===null){t(n)(true)}break}n=n.parentNode}},true);var e={27:{key:"Escape",fun:i,des:"remove focus from the focused input",cat:"Control"},73:{key:"i",fun:l,des:"focus on the search input",cat:"Control"},66:{key:"b",fun:o(-window.innerHeight),des:"scroll one page up",cat:"Navigation"},70:{key:"f",fun:o(window.innerHeight),des:"scroll one page down",cat:"Navigation"},85:{key:"u",fun:o(-window.innerHeight/2),des:"scroll half a page up",cat:"Navigation"},68:{key:"d",fun:o(window.innerHeight/2),des:"scroll half a page down",cat:"Navigation"},71:{key:"g",fun:s(-document.body.scrollHeight,"top"),des:"scroll to the top of the page",cat:"Navigation"},86:{key:"v",fun:s(document.body.scrollHeight,"bottom"),des:"scroll to the bottom of the page",cat:"Navigation"},75:{key:"k",fun:t("up"),des:"select previous search result",cat:"Results"},74:{key:"j",fun:t("down"),des:"select next search result",cat:"Results"},80:{key:"p",fun:r(0),des:"go to previous page",cat:"Results"},78:{key:"n",fun:r(1),des:"go to next page",cat:"Results"},79:{key:"o",fun:u(false),des:"open search result",cat:"Results"},84:{key:"t",fun:u(true),des:"open the result in a new tab",cat:"Results"},82:{key:"r",fun:n,des:"reload page from the server",cat:"Control"},72:{key:"h",fun:d,des:"toggle help window",cat:"Other"}};searx.on(document,"keydown",function(t){if(e.hasOwnProperty(t.keyCode)&&!t.ctrlKey&&!t.altKey&&!t.shiftKey&&!t.metaKey){var n=t.target.tagName.toLowerCase();if(t.keyCode===27){if(n==="input"||n==="select"||n==="textarea"){e[t.keyCode].fun()}}else{if(t.target===document.body||n==="a"||n==="button"){t.preventDefault();e[t.keyCode].fun()}}}});function t(e){return function(t){var n=document.querySelector(".result[data-vim-selected]"),i=e;if(n===null){n=document.querySelector(".result");if(n===null){return}if(e==="down"||e==="up"){i=n}}var r,o=document.querySelectorAll(".result");if(typeof i!=="string"){r=i}else{switch(i){case"visible":var s=document.documentElement.scrollTop||document.body.scrollTop;var l=s+document.documentElement.clientHeight;for(var u=0;u<o.length;u++){r=o[u];var c=r.offsetTop;var d=c+r.clientHeight;if(d<=l&&c>s){break}}break;case"down":r=n.nextElementSibling;if(r===null){r=o[0]}break;case"up":r=n.previousElementSibling;if(r===null){r=o[o.length-1]}break;case"bottom":r=o[o.length-1];break;case"top":default:r=o[0]}}if(r){n.removeAttribute("data-vim-selected");r.setAttribute("data-vim-selected","true");var f=r.querySelector("h3 a")||r.querySelector("a");if(f!==null){f.focus()}if(!t){a()}}}}function n(){document.location.reload(true)}function i(){if(document.activeElement){document.activeElement.blur()}}function r(e){return function(){var t=$('div#pagination button[type="submit"]');if(t.length!==2){console.log("page navigation with this theme is not supported");return}if(e>=0&&e<t.length){t[e].click()}else{console.log("pageButtonClick(): invalid argument")}}}function a(){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,a=120;if(e.previousElementSibling===null&&r<n){window.scroll(window.scrollX,0);return}if(t>i-a){window.scroll(window.scrollX,i-a)}else{var o=t+n;if(o<r+a){window.scroll(window.scrollX,r-n+a)}}}function o(e){return function(){window.scrollBy(0,e);t("visible")()}}function s(e,n){return function(){window.scrollTo(0,e);t(n)()}}function l(){window.scrollTo(0,0);document.querySelector("#q").focus()}function u(e){return function(){var t=document.querySelector(".result[data-vim-selected] h3 a");if(t!==null){var n=t.getAttribute("href");if(e){window.open(n)}else{window.location.href=n}}}}function c(t){var n={};for(var i in e){var r=e[i];n[r.cat]=n[r.cat]||[];n[r.cat].push(r)}var a=Object.keys(n).sort(function(e,t){return n[t].length-n[e].length});if(a.length===0){return}var o='<a href="#" class="close" aria-label="close" title="close">×</a>';o+="<h3>How to navigate searx with Vim-like hotkeys</h3>";o+="<table>";for(var s=0;s<a.length;s++){var l=n[a[s]];var u=s===a.length-1;var c=s%2===0;if(c){o+="<tr>"}o+="<td>";o+="<h4>"+l[0].cat+"</h4>";o+='<ul class="list-unstyled">';for(var d in l){o+="<li><kbd>"+l[d].key+"</kbd> "+l[d].des+"</li>"}o+="</ul>";o+="</td>";if(!c||u){o+="</tr>"}}o+="</table>";t.innerHTML=o}function d(){var e=document.querySelector("#vim-hotkeys-help");console.log(e);if(e===undefined||e===null){e=document.createElement("div");e.id="vim-hotkeys-help";e.className="dialog-modal";e.style="width: 40%";c(e);var t=document.getElementsByTagName("body")[0];t.appendChild(e)}else{e.classList.toggle("invisible");return}}});(function(e,t,n){"use strict";n.ready(function(){n.on(".searx_overpass_request","click",function(e){this.classList.remove("searx_overpass_request");var i="https://overpass-api.de/api/interpreter?data=";var r=i+"[out:json][timeout:25];(";var a=");out meta;";var o=this.dataset.osmId;var s=this.dataset.osmType;var l=t.querySelector("#"+this.dataset.resultTable);var u=t.querySelector("#"+this.dataset.resultTableLoadicon);var c=["addr:city","addr:country","addr:housenumber","addr:postcode","addr:street"];if(o&&s&&l){var d=null;switch(s){case"node":d=r+"node("+o+");"+a;break;case"way":d=r+"way("+o+");"+a;break;case"relation":d=r+"relation("+o+");"+a;break;default:break}if(d){n.http("GET",d).then(function(e,t){e=JSON.parse(e);if(e&&e.elements&&e.elements[0]){var n=e.elements[0];var i="";for(var r in n.tags){if(n.tags.name===null||c.indexOf(r)==-1){i+="<tr><td>"+r+"</td><td>";switch(r){case"phone":case"fax":i+='<a href="tel:'+n.tags[r].replace(/ /g,"")+'">'+n.tags[r]+"</a>";break;case"email":i+='<a href="mailto:'+n.tags[r]+'">'+n.tags[r]+"</a>";break;case"website":case"url":i+='<a href="'+n.tags[r]+'">'+n.tags[r]+"</a>";break;case"wikidata":i+='<a href="https://www.wikidata.org/wiki/'+n.tags[r]+'">'+n.tags[r]+"</a>";break;case"wikipedia":if(n.tags[r].indexOf(":")!=-1){i+='<a href="https://'+n.tags[r].substring(0,n.tags[r].indexOf(":"))+".wikipedia.org/wiki/"+n.tags[r].substring(n.tags[r].indexOf(":")+1)+'">'+n.tags[r]+"</a>";break}default:i+=n.tags[r];break}i+="</td></tr>"}}u.parentNode.removeChild(u);l.classList.remove("invisible");l.querySelector("tbody").innerHTML=i}}).catch(function(){u.classList.remove("invisible");u.innerHTML="could not load data!"})}}e.preventDefault()});n.on(".searx_init_map","click",function(e){this.classList.remove("searx_init_map");var t=this.dataset.leafletTarget;var i=parseFloat(this.dataset.mapLon);var r=parseFloat(this.dataset.mapLat);var a=parseFloat(this.dataset.mapZoom);var o=JSON.parse(this.dataset.mapBoundingbox);var s=JSON.parse(this.dataset.mapGeojson);n.loadStyle("leaflet/leaflet.css");n.loadScript("leaflet/leaflet.js",function(){var e=null;if(o){var n=L.latLng(o[0],o[2]);var l=L.latLng(o[1],o[3]);e=L.latLngBounds(n,l)}var u=L.map(t);var c="https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png";var d='Map data © <a href="https://openstreetmap.org">OpenStreetMap</a> contributors';var f=new L.TileLayer(c,{minZoom:1,maxZoom:19,attribution:d});var p="https://maps.wikimedia.org/osm-intl/{z}/{x}/{y}.png";var h='Wikimedia maps beta | Maps data © <a href="https://openstreetmap.org">OpenStreetMap</a> contributors';var m=new L.TileLayer(p,{minZoom:1,maxZoom:19,attribution:h});if(e){setTimeout(function(){u.fitBounds(e,{maxZoom:17})},0)}else if(i&&r){if(a){u.setView(new L.latLng(r,i),a)}else{u.setView(new L.latLng(r,i),8)}}u.addLayer(f);var g={"OSM Mapnik":f};L.control.layers(g).addTo(u);if(s){L.geoJson(s).addTo(u)}});e.preventDefault()})})})(window,document,window.searx);(function(e,t,n){"use strict";n.ready(function(){n.image_thumbnail_layout=new n.ImageLayout("#urls","#urls .result-images","img.image_thumbnail",200);n.image_thumbnail_layout.watch();n.on(".btn-collapse","click",function(e){var n=this.getAttribute("data-btn-text-collapsed");var i=this.getAttribute("data-btn-text-not-collapsed");var r=this.getAttribute("data-target");var a=t.querySelector(r);var o=this.innerHTML;if(this.classList.contains("collapsed")){o=o.replace(n,i)}else{o=o.replace(i,n)}this.innerHTML=o;this.classList.toggle("collapsed");a.classList.toggle("invisible")});n.on(".media-loader","click",function(e){var n=this.getAttribute("data-target");var i=t.querySelector(n+" > iframe");var r=i.getAttribute("src");if(r===null||r===undefined||r===false){i.setAttribute("src",i.getAttribute("data-src"))}});e.addEventListener("scroll",function(){var e=t.getElementById("backToTop"),n=document.documentElement.scrollTop||document.body.scrollTop;if(e!==null){if(n>=200){e.style.opacity=1}else{e.style.opacity=0}}})})})(window,document,window.searx);(function(e,t,n){"use strict";var i=true,r="q",a;function o(e){if(e.setSelectionRange){var t=e.value.length;e.setSelectionRange(t,t)}}function s(){if(a.value.length>0){var e=document.getElementById("search");setTimeout(e.submit.bind(e),0)}}function l(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)}n.ready(function(){a=t.getElementById(r);function u(e){if(i){o(a);i=false}else{}}if(a!==null){l(a);if(n.autocompleter){n.autocomplete=AutoComplete.call(e,{Url:"./autocompleter",EmptyMessage:n.noItemFound,HttpMethod:n.method,MinChars:4,Delay:300},"#"+r);e.addEventListener("resize",function(){var e=new CustomEvent("position");a.dispatchEvent(e)})}a.addEventListener("focus",u,false);a.focus()}if(a!==null&&n.search_on_category_select){t.querySelector(".help").className="invisible";n.on("#categories input","change",function(e){var n,i=t.querySelectorAll('#categories input[type="checkbox"]');for(n=0;n<i.length;n++){if(i[n]!==this&&i[n].checked){i[n].click()}}if(!this.checked){this.click()}s();return false});n.on(t.getElementById("time_range"),"change",s);n.on(t.getElementById("language"),"change",s)}})})(window,document,window.searx);
+(function(u,c){"use strict";function e(e,t,n,i){this.container_selector=e;this.results_selector=t;this.img_selector=n;this.margin=10;this.maxHeight=i;this._alignAllDone=true}e.prototype._getHeigth=function(e,t){var n=0,i;t-=e.length*this.margin;for(var r=0;r<e.length;r++){i=e[r];if(i.naturalWidth>0&&i.naturalHeight>0){n+=i.naturalWidth/i.naturalHeight}else{n+=1}}return t/n};e.prototype._setSize=function(e,t){var n,i,r=e.length;for(var a=0;a<r;a++){n=e[a];if(n.naturalWidth>0&&n.naturalHeight>0){i=t*n.naturalWidth/n.naturalHeight}else{i=t}n.style.width=i+"px";n.style.height=t+"px";n.style.marginLeft="3px";n.style.marginTop="3px";n.style.marginRight=this.margin-7+"px";n.style.marginBottom=this.margin-7+"px"}};e.prototype._alignImgs=function(e){var t,n,i=c.querySelector(this.container_selector).clientWidth;e:while(e.length>0){for(var r=1;r<=e.length;r++){t=e.slice(0,r);n=this._getHeigth(t,i);if(n<this.maxHeight){this._setSize(t,n);e=e.slice(r);continue e}}this._setSize(t,Math.min(this.maxHeight,n));break}};e.prototype.align=function(e){var t=c.querySelectorAll(this.results_selector),n=t.length,i=null,r=null,a=[];for(var o=0;o<n;o++){r=t[o];if(r.previousElementSibling!==i&&a.length>0){this._alignImgs(a);a=[]}a.push(r.querySelector(this.img_selector));i=r}if(a.length>0){this._alignImgs(a)}};e.prototype.watch=function(){var e,t,n,i,r=this,a=c.querySelectorAll(this.results_selector),o=a.length;function s(e){r.align()}function l(e){if(r._alignAllDone){r._alignAllDone=false;setTimeout(function(){r.align();r._alignAllDone=true},100)}}u.addEventListener("resize",l);u.addEventListener("pageshow",s);for(e=0;e<o;e++){t=a[e].querySelector(this.img_selector);if(typeof t!=="undefined"){t.addEventListener("load",l);t.addEventListener("error",l)}}};u.searx.ImageLayout=e})(window,document);searx.ready(function(){searx.on(".result","click",function(){n(this)(true)});searx.on(".result a","focus",function(e){var t=e.target;while(t!==undefined){if(t.classList.contains("result")){if(t.getAttribute("data-vim-selected")===null){n(t)(true)}break}t=t.parentNode}},true);var d={27:{key:"Escape",fun:t,des:"remove focus from the focused input",cat:"Control"},73:{key:"i",fun:o,des:"focus on the search input",cat:"Control"},66:{key:"b",fun:r(-window.innerHeight),des:"scroll one page up",cat:"Navigation"},70:{key:"f",fun:r(window.innerHeight),des:"scroll one page down",cat:"Navigation"},85:{key:"u",fun:r(-window.innerHeight/2),des:"scroll half a page up",cat:"Navigation"},68:{key:"d",fun:r(window.innerHeight/2),des:"scroll half a page down",cat:"Navigation"},71:{key:"g",fun:a(-document.body.scrollHeight,"top"),des:"scroll to the top of the page",cat:"Navigation"},86:{key:"v",fun:a(document.body.scrollHeight,"bottom"),des:"scroll to the bottom of the page",cat:"Navigation"},75:{key:"k",fun:n("up"),des:"select previous search result",cat:"Results"},74:{key:"j",fun:n("down"),des:"select next search result",cat:"Results"},80:{key:"p",fun:i(0),des:"go to previous page",cat:"Results"},78:{key:"n",fun:i(1),des:"go to next page",cat:"Results"},79:{key:"o",fun:s(false),des:"open search result",cat:"Results"},84:{key:"t",fun:s(true),des:"open the result in a new tab",cat:"Results"},82:{key:"r",fun:e,des:"reload page from the server",cat:"Control"},72:{key:"h",fun:u,des:"toggle help window",cat:"Other"}};searx.on(document,"keydown",function(e){if(d.hasOwnProperty(e.keyCode)&&!e.ctrlKey&&!e.altKey&&!e.shiftKey&&!e.metaKey){var t=e.target.tagName.toLowerCase();if(e.keyCode===27){if(t==="input"||t==="select"||t==="textarea"){d[e.keyCode].fun()}}else{if(e.target===document.body||t==="a"||t==="button"){e.preventDefault();d[e.keyCode].fun()}}}});function n(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 i,r=document.querySelectorAll(".result");if(typeof n!=="string"){i=n}else{switch(n){case"visible":var a=document.documentElement.scrollTop||document.body.scrollTop;var o=a+document.documentElement.clientHeight;for(var s=0;s<r.length;s++){i=r[s];var l=i.offsetTop;var u=l+i.clientHeight;if(u<=o&&l>a){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 c=i.querySelector("h3 a")||i.querySelector("a");if(c!==null){c.focus()}if(!e){f()}}}}function e(){document.location.reload(true)}function t(){if(document.activeElement){document.activeElement.blur()}}function i(t){return function(){var e=$('div#pagination button[type="submit"]');if(e.length!==2){console.log("page navigation with this theme is not supported");return}if(t>=0&&t<e.length){e[t].click()}else{console.log("pageButtonClick(): invalid argument")}}}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,a=120;if(e.previousElementSibling===null&&r<n){window.scroll(window.scrollX,0);return}if(t>i-a){window.scroll(window.scrollX,i-a)}else{var o=t+n;if(o<r+a){window.scroll(window.scrollX,r-n+a)}}}function r(e){return function(){window.scrollBy(0,e);n("visible")()}}function a(e,t){return function(){window.scrollTo(0,e);n(t)()}}function o(){window.scrollTo(0,0);document.querySelector("#q").focus()}function s(n){return function(){var e=document.querySelector(".result[data-vim-selected] h3 a");if(e!==null){var t=e.getAttribute("href");if(n){window.open(t)}else{window.location.href=t}}}}function l(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 a='<a href="#" class="close" aria-label="close" title="close">×</a>';a+="<h3>How to navigate searx with Vim-like hotkeys</h3>";a+="<table>";for(var o=0;o<r.length;o++){var s=n[r[o]];var l=o===r.length-1;var u=o%2===0;if(u){a+="<tr>"}a+="<td>";a+="<h4>"+s[0].cat+"</h4>";a+='<ul class="list-unstyled">';for(var c in s){a+="<li><kbd>"+s[c].key+"</kbd> "+s[c].des+"</li>"}a+="</ul>";a+="</td>";if(!u||l){a+="</tr>"}}a+="</table>";e.innerHTML=a}function u(){var e=document.querySelector("#vim-hotkeys-help");console.log(e);if(e===undefined||e===null){e=document.createElement("div");e.id="vim-hotkeys-help";e.className="dialog-modal";e.style="width: 40%";l(e);var t=document.getElementsByTagName("body")[0];t.appendChild(e)}else{e.classList.toggle("invisible");return}}});(function(e,c,v){"use strict";v.ready(function(){v.on(".searx_overpass_request","click",function(e){this.classList.remove("searx_overpass_request");var t="https://overpass-api.de/api/interpreter?data=";var n=t+"[out:json][timeout:25];(";var i=");out meta;";var r=this.dataset.osmId;var a=this.dataset.osmType;var o=c.querySelector("#"+this.dataset.resultTable);var s=c.querySelector("#"+this.dataset.resultTableLoadicon);var l=["addr:city","addr:country","addr:housenumber","addr:postcode","addr:street"];if(r&&a&&o){var u=null;switch(a){case"node":u=n+"node("+r+");"+i;break;case"way":u=n+"way("+r+");"+i;break;case"relation":u=n+"relation("+r+");"+i;break;default:break}if(u){v.http("GET",u).then(function(e,t){e=JSON.parse(e);if(e&&e.elements&&e.elements[0]){var n=e.elements[0];var i="";for(var r in n.tags){if(n.tags.name===null||l.indexOf(r)==-1){i+="<tr><td>"+r+"</td><td>";switch(r){case"phone":case"fax":i+='<a href="tel:'+n.tags[r].replace(/ /g,"")+'">'+n.tags[r]+"</a>";break;case"email":i+='<a href="mailto:'+n.tags[r]+'">'+n.tags[r]+"</a>";break;case"website":case"url":i+='<a href="'+n.tags[r]+'">'+n.tags[r]+"</a>";break;case"wikidata":i+='<a href="https://www.wikidata.org/wiki/'+n.tags[r]+'">'+n.tags[r]+"</a>";break;case"wikipedia":if(n.tags[r].indexOf(":")!=-1){i+='<a href="https://'+n.tags[r].substring(0,n.tags[r].indexOf(":"))+".wikipedia.org/wiki/"+n.tags[r].substring(n.tags[r].indexOf(":")+1)+'">'+n.tags[r]+"</a>";break}default:i+=n.tags[r];break}i+="</td></tr>"}}s.parentNode.removeChild(s);o.classList.remove("invisible");o.querySelector("tbody").innerHTML=i}}).catch(function(){s.classList.remove("invisible");s.innerHTML="could not load data!"})}}e.preventDefault()});v.on(".searx_init_map","click",function(e){this.classList.remove("searx_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 m=JSON.parse(this.dataset.mapBoundingbox);var g=JSON.parse(this.dataset.mapGeojson);v.loadStyle("leaflet/leaflet.css");v.loadScript("leaflet/leaflet.js",function(){var e=null;if(m){var t=L.latLng(m[0],m[2]);var n=L.latLng(m[1],m[3]);e=L.latLngBounds(t,n)}var i=L.map(d);var r="https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png";var a='Map data © <a href="https://openstreetmap.org">OpenStreetMap</a> contributors';var o=new L.TileLayer(r,{minZoom:1,maxZoom:19,attribution:a});var s="https://maps.wikimedia.org/osm-intl/{z}/{x}/{y}.png";var l='Wikimedia maps beta | Maps data © <a href="https://openstreetmap.org">OpenStreetMap</a> 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(o);var c={"OSM Mapnik":o};L.control.layers(c).addTo(i);if(g){L.geoJson(g).addTo(i)}});e.preventDefault()})})})(window,document,window.searx);(function(e,o,t){"use strict";t.ready(function(){t.image_thumbnail_layout=new t.ImageLayout("#urls","#urls .result-images","img.image_thumbnail",200);t.image_thumbnail_layout.watch();t.on(".btn-collapse","click",function(e){var t=this.getAttribute("data-btn-text-collapsed");var n=this.getAttribute("data-btn-text-not-collapsed");var i=this.getAttribute("data-target");var r=o.querySelector(i);var a=this.innerHTML;if(this.classList.contains("collapsed")){a=a.replace(t,n)}else{a=a.replace(n,t)}this.innerHTML=a;this.classList.toggle("collapsed");r.classList.toggle("invisible")});t.on(".media-loader","click",function(e){var t=this.getAttribute("data-target");var n=o.querySelector(t+" > iframe");var i=n.getAttribute("src");if(i===null||i===undefined||i===false){n.setAttribute("src",n.getAttribute("data-src"))}});e.addEventListener("scroll",function(){var e=o.getElementById("backToTop"),t=document.documentElement.scrollTop||document.body.scrollTop;if(e!==null){if(t>=200){e.style.opacity=1}else{e.style.opacity=0}}})})})(window,document,window.searx);(function(t,i,n){"use strict";var r=true,a="q",o;function s(e){if(e.setSelectionRange){var t=e.value.length;e.setSelectionRange(t,t)}}function l(){if(o.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)}n.ready(function(){o=i.getElementById(a);function e(e){if(r){s(o);r=false}else{}}if(o!==null){u(o);if(n.autocompleter){n.autocomplete=AutoComplete.call(t,{Url:"./autocompleter",EmptyMessage:n.no_item_found,HttpMethod:n.method,MinChars:4,Delay:300},"#"+a);t.addEventListener("resize",function(){var e=new CustomEvent("position");o.dispatchEvent(e)})}o.addEventListener("focus",e,false);o.focus()}if(o!==null&&n.search_on_category_select){i.querySelector(".help").className="invisible";n.on("#categories input","change",function(e){var t,n=i.querySelectorAll('#categories input[type="checkbox"]');for(t=0;t<n.length;t++){if(n[t]!==this&&n[t].checked){n[t].click()}}if(!this.checked){this.click()}l();return false});n.on(i.getElementById("time_range"),"change",l);n.on(i.getElementById("language"),"change",l)}})})(window,document,window.searx);
//# sourceMappingURL=searx.min.js.map \ No newline at end of file
diff --git a/searx/static/themes/simple/js/searx.min.js.map b/searx/static/themes/simple/js/searx.min.js.map
index 5528c1e50..d7a1eeac8 100644
--- a/searx/static/themes/simple/js/searx.min.js.map
+++ b/searx/static/themes/simple/js/searx.min.js.map
@@ -1 +1 @@
-{"version":3,"sources":["searx.js"],"names":["w","d","searx","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","staticPath","id","replace","s","getElementById","createElement","setAttribute","body","appendChild","loadScript","hasAttribute","apply","insertBefore","newNode","referenceNode","element","insertAfter","nextSibling","classList","add","window","f","exports","module","define","amd","g","global","self","AutoComplete","t","n","r","o","u","a","require","code","l","length","1","ConditionOperator","EventType","params","Array","isArray","forEach","elements","input","specificParams","merge","defaults","DOMResults","create","Input","nodeName","match","getAttribute","_Position","$Listeners","blur","_Blur","destroy","focus","_Focus","keyup","event","KEYUP","keydown","KEYDOWN","position","getEventsByType","type","mappings","key","KeyboardMappings","Event","undefined","eventIdentifier","condition","mapping","Operator","AND","OR","Not","hasOwnProperty","Is","keyCode","From","To","name","Conditions","Callback","makeRequest","propertyHttpHeaders","Object","getOwnPropertyNames","HttpHeaders","request","_HttpMethod","_Url","queryParams","_Pre","queryParamsStringify","encodeURIComponent","_QueryArg","indexOf","setRequestHeader","onreadystatechange","$Cache","ajax","timeout","$AjaxTimer","clearTimeout","setTimeout","Delay","Request","abort","cache","_Cache","removeEventListener","removeChild","tmp","arguments","EmptyMessage","Highlight","getRegex","value","RegExp","transform","Content-type","Limit","MinChars","HttpMethod","QueryArg","Url","Enter","liActive","querySelector","preventDefault","_Select","KeyUpAndDown_down","KeyUpAndDown_up","first","last","active","currentIndex","children","lisCount","getElementsByTagName","remove","item","AlphaNum","oldValue","currentValue","_MinChars","_Render","_Post","_Open","_EmptyMessage","emptyMessage","_Limit","limit","isNaN","parseInt","minchars","_Highlight","label","now","li","onclick","onmouseenter","offsetTop","offsetHeight","offsetLeft","clientWidth","ul","_RenderRaw","_RenderResponseItems","hasChildNodes","childNodes","reverse","Math","min","abs","innerHTML","Label","Value","returnResponse","json","JSON","parse","keys","push","ImageLayout","container_selector","results_selector","img_selector","maxHeight","margin","_alignAllDone","_getHeigth","images","width","img","naturalWidth","naturalHeight","_setSize","height","imgWidth","imagesLength","style","marginLeft","marginTop","marginRight","marginBottom","_alignImgs","imgGroup","slice","h","containerWidth","align","results_selectorNode","results_length","previous","current","previousElementSibling","watch","imgNodeLength","results_nodes","throttleAlign","highlightResult","contains","vimKeys","27","fun","removeFocus","des","cat","73","searchInputFocus","66","scrollPage","innerHeight","70","85","68","71","scrollPageTo","scrollHeight","86","75","74","80","pageButtonClick","78","79","openResult","84","82","reloadPage","72","toggleHelp","ctrlKey","altKey","shiftKey","metaKey","tagName","toLowerCase","which","noScroll","effectiveWhich","next","results","top","documentElement","scrollTop","bot","clientHeight","etop","ebot","nextElementSibling","removeAttribute","link","scrollPageToSelected","location","reload","activeElement","num","buttons","$","click","sel","wtop","wheight","offset","scroll","scrollX","wbot","amount","scrollBy","nav","scrollTo","newTab","href","initHelpContent","divElement","categories","k","sorted","sort","b","html","lastCategory","cj","helpPanel","className","toggle","overpass_url","query_start","query_end","osm_id","dataset","osmId","osm_type","osmType","result_table","resultTable","result_table_loadicon","resultTableLoadicon","osm_ignore_tags","query","contentType","newHtml","row","tags","substring","leaflet_target","leafletTarget","map_lon","parseFloat","mapLon","map_lat","mapLat","map_zoom","mapZoom","map_boundingbox","mapBoundingbox","map_geojson","mapGeojson","map_bounds","southWest","L","latLng","northEast","latLngBounds","map","osmMapnikUrl","osmMapnikAttrib","osmMapnik","TileLayer","minZoom","maxZoom","attribution","osmWikimediaUrl","osmWikimediaAttrib","osmWikimedia","fitBounds","setView","addLayer","baseLayers","OSM Mapnik","control","layers","addTo","geoJson","image_thumbnail_layout","btnLabelCollapsed","btnLabelNotCollapsed","targetElement","iframe_load","srctest","opacity","firstFocus","qinput_id","qinput","placeCursorAtEnd","setSelectionRange","len","submitIfQuery","search","submit","createClearButton","cs","updateClearButton","placeCursorAtEndOnce","autocompleter","autocomplete","noItemFound","CustomEvent","dispatchEvent","search_on_category_select","checked"],"mappings":";;CAiBA,SAAUA,EAAGC,EAAGC,GAEd,aAMA,GAAIF,EAAEG,QAAS,EACb,SAAUC,GACRA,EAAiBC,QAAUD,EAAiBC,SAC5CD,EAAiBE,iBACjBF,EAAiBG,uBACjBH,EAAiBI,mBACjB,SAASC,GACP,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,EAAaC,EAAUC,EAAIC,GAClC,IACEF,EAASG,KAAKF,EAAIC,GAClB,MAAOE,GACPC,QAAQC,IAAIF,IAIhBrB,EAAQA,MAERA,EAAMwB,GAAK,SAASC,EAAKC,EAAWT,EAAUU,GAC5CA,EAAaA,GAAc,MAC3B,UAAWF,IAAQ,SAAU,CAE3BA,EAAIG,iBAAiBF,EAAWT,EAAUU,OACrC,CAEL5B,EAAE6B,iBAAiBF,EAAW,SAASP,GACrC,IAAID,EAAKC,EAAEU,QAAUV,EAAEW,WAAYC,EAAQ,MAC3C,MAAOb,GAAMA,EAAGf,SAAWe,IAAOnB,KAAOgC,EAAQb,EAAGf,QAAQsB,IAAOP,EAAKA,EAAGc,cAC3E,GAAID,EAAOf,EAAaC,EAAUC,EAAIC,IACrCQ,KAIP3B,EAAMiC,MAAQ,SAAShB,GACrB,GAAIL,SAASsB,YAAc,UAAW,CACpCjB,EAASG,KAAKtB,OACT,CACLA,EAAE8B,iBAAiB,mBAAoBX,EAASkB,KAAKrC,MAIzDE,EAAMoC,KAAO,SAASC,EAAQC,EAAKrB,GACjC,IAAIsB,EAAM,IAAIC,eACdC,EAAU,aACVC,EAAS,aACTC,GACEC,KAAM,SAAS3B,GAAYwB,EAAUxB,EAAU,OAAO0B,GACtDE,MAAO,SAAS5B,GAAYyB,EAASzB,EAAU,OAAO0B,IAGxD,IACEJ,EAAIO,KAAKT,EAAQC,EAAK,MAGtBC,EAAIQ,OAAS,WACX,GAAIR,EAAIS,QAAU,IAAK,CACrBP,EAAQF,EAAIU,SAAUV,EAAIW,kBACrB,CACLR,EAAOS,MAAMZ,EAAIa,eAKrBb,EAAIc,QAAU,WACZX,EAAOS,MAAM,mBAGfZ,EAAIe,QAAU,WACZZ,EAAOS,MAAM,4BAIfZ,EAAIgB,OACJ,MAAOC,GACPd,EAAOc,GAGT,OAAOb,GAGT3C,EAAMyD,UAAY,SAASC,GACzB,IAAIC,EAAO3D,EAAM4D,WAAaF,EAC9BG,EAAK,SAAWH,EAAII,QAAQ,IAAK,KACjCC,EAAIhE,EAAEiE,eAAeH,GACrB,GAAIE,IAAM,KAAM,CACdA,EAAIhE,EAAEkE,cAAc,QACpBF,EAAEG,aAAa,KAAML,GACrBE,EAAEG,aAAa,MAAO,cACtBH,EAAEG,aAAa,OAAQ,YACvBH,EAAEG,aAAa,OAAQP,GACvB5D,EAAEoE,KAAKC,YAAYL,KAIvB/D,EAAMqE,WAAa,SAASX,EAAKzC,GAC/B,IAAI0C,EAAO3D,EAAM4D,WAAaF,EAC9BG,EAAK,UAAYH,EAAII,QAAQ,IAAK,KAClCC,EAAIhE,EAAEiE,eAAeH,GACrB,GAAIE,IAAM,KAAM,CACdA,EAAIhE,EAAEkE,cAAc,UACpBF,EAAEG,aAAa,KAAML,GACrBE,EAAEG,aAAa,MAAOP,GACtBI,EAAEhB,OAAS9B,EACX8C,EAAEV,QAAU,WACVU,EAAEG,aAAa,QAAS,MAE1BnE,EAAEoE,KAAKC,YAAYL,QACd,IAAKA,EAAEO,aAAa,SAAU,CACnC,IACErD,EAASsD,MAAMR,MACf,MAAO1C,GACPC,QAAQC,IAAIF,QAET,CACLC,QAAQC,IAAI,mCAAqCoC,EAAO,mBAI5D3D,EAAMwE,aAAe,SAAUC,EAASC,GACtCC,QAAQhE,WAAW6D,aAAaC,EAASC,IAG3C1E,EAAM4E,YAAc,SAASH,EAASC,GACpCA,EAAc/D,WAAW6D,aAAaC,EAASC,EAAcG,cAG/D7E,EAAMwB,GAAG,SAAU,QAAS,SAASL,GACnC,IAAID,EAAKC,EAAEU,QAAUV,EAAEW,WACvBrB,KAAKE,WAAWmE,UAAUC,IAAI,eAGhC,OAAO/E,GAjJT,CAkJGgF,OAAQpE,SAAUoE,OAAOhF,QAC3B,SAAUiF,GAAG,UAAUC,UAAU,iBAAiBC,SAAS,YAAY,CAACA,OAAOD,QAAQD,SAAS,UAAUG,SAAS,YAAYA,OAAOC,IAAI,CAACD,UAAUH,OAAO,CAAC,IAAIK,EAAE,UAAUN,SAAS,YAAY,CAACM,EAAEN,YAAY,UAAUO,SAAS,YAAY,CAACD,EAAEC,YAAY,UAAUC,OAAO,YAAY,CAACF,EAAEE,SAAS,CAACF,EAAE7E,KAAK6E,EAAEG,aAAeR,MAAjU,CAAwU,WAAW,IAAIG,EAAOD,EAAOD,EAAQ,OAAO,SAAU/D,EAAEuE,EAAEC,EAAEC,GAAG,SAAS7B,EAAE8B,EAAEC,GAAG,IAAIH,EAAEE,GAAG,CAAC,IAAIH,EAAEG,GAAG,CAAC,IAAIE,SAASC,SAAS,YAAYA,QAAQ,IAAIF,GAAGC,EAAE,OAAOA,EAAEF,GAAG,GAAG,GAAG/E,EAAE,OAAOA,EAAE+E,GAAG,GAAG,IAAIZ,EAAE,IAAI9B,MAAM,uBAAuB0C,EAAE,KAAK,MAAMZ,EAAEgB,KAAK,mBAAmBhB,EAAE,IAAIiB,EAAEP,EAAEE,IAAIX,YAAYQ,EAAEG,GAAG,GAAGzE,KAAK8E,EAAEhB,QAAQ,SAAS/D,GAAG,IAAIwE,EAAED,EAAEG,GAAG,GAAG1E,GAAG,OAAO4C,EAAE4B,EAAEA,EAAExE,IAAI+E,EAAEA,EAAEhB,QAAQ/D,EAAEuE,EAAEC,EAAEC,GAAG,OAAOD,EAAEE,GAAGX,QAAQ,IAAIpE,SAASkF,SAAS,YAAYA,QAAQ,IAAI,IAAIH,EAAE,EAAEA,EAAED,EAAEO,OAAON,IAAI9B,EAAE6B,EAAEC,IAAI,OAAO9B,EAAvb,EAA4bqC,GAAG,SAASJ,EAAQb,EAAOD;;;;;;;;;AAU50B,aACA,IAAImB,GACJ,SAAWA,GACPA,EAAkBA,EAAkB,OAAS,GAAK,MAClDA,EAAkBA,EAAkB,MAAQ,GAAK,MAFrD,CAGGA,IAAsBA,OACzB,IAAIC,GACJ,SAAWA,GACPA,EAAUA,EAAU,WAAa,GAAK,UACtCA,EAAUA,EAAU,SAAW,GAAK,SAFxC,CAGGA,IAAcA,OAOjB,IAAIb,EAAgB,WAEhB,SAASA,EAAac,EAAQhG,GAC1B,GAAIgG,SAAgB,EAAG,CAAEA,KACzB,GAAIhG,SAAkB,EAAG,CAAEA,EAAW,sBACtC,GAAIiG,MAAMC,QAAQlG,GAAW,CACzBA,EAASmG,QAAQ,SAAU3C,GACvB,IAAI0B,EAAac,EAAQxC,UAG5B,UAAWxD,GAAY,SAAU,CAClC,IAAIoG,EAAW/F,SAASC,iBAAiBN,GACzCiG,MAAMzF,UAAU2F,QAAQtF,KAAKuF,EAAU,SAAUC,GAC7C,IAAInB,EAAac,EAAQK,SAG5B,CACD,IAAIC,EAAiBpB,EAAaqB,MAAMrB,EAAasB,SAAUR,GAC3DS,WAAYpG,SAASqD,cAAc,SAEvCwB,EAAa1E,UAAUkG,OAAOJ,EAAgBtG,GAC9C,OAAOsG,GAGfpB,EAAa1E,UAAUkG,OAAS,SAAUV,EAAQ5B,GAC9C4B,EAAOW,MAAQvC,EACf,GAAI4B,EAAOW,MAAMC,SAASC,MAAM,cAAgBb,EAAOW,MAAM5C,aAAa,UAAY,OAASiC,EAAOW,MAAMG,aAAa,QAAQD,MAAM,mBAAoB,CACvJb,EAAOW,MAAMhD,aAAa,eAAgB,OAC1CqC,EAAOe,UAAUf,GACjBA,EAAOW,MAAMvG,WAAWyD,YAAYmC,EAAOS,YAC3CT,EAAOgB,YACHC,KAAMjB,EAAOkB,MAAMtF,KAAKoE,GACxBmB,QAASjC,EAAa1E,UAAU2G,QAAQvF,KAAK,KAAMoE,GACnDoB,MAAOpB,EAAOqB,OAAOzF,KAAKoE,GAC1BsB,MAAOpC,EAAa1E,UAAU+G,MAAM3F,KAAK,KAAMoE,EAAQD,EAAUyB,OACjEC,QAASvC,EAAa1E,UAAU+G,MAAM3F,KAAK,KAAMoE,EAAQD,EAAU2B,SACnEC,SAAU3B,EAAOe,UAAUnF,KAAKoE,IAEpC,IAAK,IAAIuB,KAASvB,EAAOgB,WAAY,CACjChB,EAAOW,MAAMtF,iBAAiBkG,EAAOvB,EAAOgB,WAAWO,OAInErC,EAAa1E,UAAUoH,gBAAkB,SAAU5B,EAAQ6B,GACvD,IAAIC,KACJ,IAAK,IAAIC,KAAO/B,EAAOgC,iBAAkB,CACrC,IAAIT,EAAQxB,EAAUyB,MACtB,GAAIxB,EAAOgC,iBAAiBD,GAAKE,QAAUC,UAAW,CAClDX,EAAQvB,EAAOgC,iBAAiBD,GAAKE,MAEzC,GAAIV,GAASM,EAAM,CACfC,EAASC,GAAO/B,EAAOgC,iBAAiBD,IAGhD,OAAOD,GAEX5C,EAAa1E,UAAU+G,MAAQ,SAAUvB,EAAQ6B,EAAMN,GACnD,IAAIY,EAAkB,SAAUC,GAC5B,GAAKvB,IAAU,MAAQwB,EAAQC,UAAYxC,EAAkByC,KAAS1B,IAAU,OAASwB,EAAQC,UAAYxC,EAAkB0C,GAAK,CAChIJ,EAAYlD,EAAaqB,OACrBkC,IAAK,OACNL,GACH,GAAIA,EAAUM,eAAe,MAAO,CAChC,GAAIN,EAAUO,IAAMpB,EAAMqB,QAAS,CAC/B/B,GAASuB,EAAUK,QAElB,CACD5B,EAAQuB,EAAUK,UAGrB,GAAIL,EAAUM,eAAe,SAAWN,EAAUM,eAAe,MAAO,CACzE,GAAInB,EAAMqB,SAAWR,EAAUS,MAAQtB,EAAMqB,SAAWR,EAAUU,GAAI,CAClEjC,GAASuB,EAAUK,QAElB,CACD5B,EAAQuB,EAAUK,QAKlC,IAAK,IAAIM,KAAQ7D,EAAa1E,UAAUoH,gBAAgB5B,EAAQ6B,GAAO,CACnE,IAAIQ,EAAUnD,EAAaqB,OACvB+B,SAAUxC,EAAkByC,KAC7BvC,EAAOgC,iBAAiBe,IAAQlC,EAAQf,EAAkByC,KAAOF,EAAQC,SAC5ED,EAAQW,WAAW7C,QAAQgC,GAC3B,GAAItB,IAAU,KAAM,CAChBwB,EAAQY,SAASpI,KAAKmF,EAAQuB,MAI1CrC,EAAa1E,UAAU0I,YAAc,SAAUlD,EAAQtF,GACnD,IAAIyI,EAAsBC,OAAOC,oBAAoBrD,EAAOsD,aAAcC,EAAU,IAAItH,eAAkBH,EAASkE,EAAOwD,cAAezH,EAAMiE,EAAOyD,OAAQC,EAAc1D,EAAO2D,OAAQC,EAAuBC,mBAAmB7D,EAAO8D,aAAe,IAAMD,mBAAmBH,GACpR,GAAI5H,EAAO+E,MAAM,UAAW,CACxB,GAAI9E,EAAIgI,QAAQ,QAAU,EAAG,CACzBhI,GAAO,IAAM6H,MAEZ,CACD7H,GAAO,IAAM6H,GAGrBL,EAAQhH,KAAKT,EAAQC,EAAK,MAC1B,IAAK,IAAIxB,EAAI4I,EAAoBvD,OAAS,EAAGrF,GAAK,EAAGA,IAAK,CACtDgJ,EAAQS,iBAAiBb,EAAoB5I,GAAIyF,EAAOsD,YAAYH,EAAoB5I,KAE5FgJ,EAAQU,mBAAqB,WACzB,GAAIV,EAAQ5H,YAAc,GAAK4H,EAAQ9G,QAAU,IAAK,CAClDuD,EAAOkE,OAAOR,GAAeH,EAAQ7G,SACrChC,EAAS6I,EAAQ7G,YAGzB,OAAO6G,GAEXrE,EAAa1E,UAAU2J,KAAO,SAAUnE,EAAQuD,EAASa,GACrD,GAAIA,SAAiB,EAAG,CAAEA,EAAU,KACpC,GAAIpE,EAAOqE,WAAY,CACnB5F,OAAO6F,aAAatE,EAAOqE,YAE/B,GAAID,IAAY,KAAM,CAClBpE,EAAOqE,WAAa5F,OAAO8F,WAAWrF,EAAa1E,UAAU2J,KAAKvI,KAAK,KAAMoE,EAAQuD,EAAS,OAAQvD,EAAOwE,WAE5G,CACD,GAAIxE,EAAOyE,QAAS,CAChBzE,EAAOyE,QAAQC,QAEnB1E,EAAOyE,QAAUlB,EACjBvD,EAAOyE,QAAQzH,KAAKgD,EAAO8D,YAAc,IAAM9D,EAAO2D,UAG9DzE,EAAa1E,UAAUmK,MAAQ,SAAU3E,EAAQtF,GAC7C,IAAIgC,EAAWsD,EAAO4E,OAAO5E,EAAO2D,QACpC,GAAIjH,IAAawF,UAAW,CACxB,IAAIqB,EAAUrE,EAAa1E,UAAU0I,YAAYlD,EAAQtF,GACzDwE,EAAa1E,UAAU2J,KAAKnE,EAAQuD,OAEnC,CACD7I,EAASgC,KAGjBwC,EAAa1E,UAAU2G,QAAU,SAAUnB,GACvC,IAAK,IAAIuB,KAASvB,EAAOgB,WAAY,CACjChB,EAAOW,MAAMkE,oBAAoBtD,EAAOvB,EAAOgB,WAAWO,IAE9DvB,EAAOS,WAAWrG,WAAW0K,YAAY9E,EAAOS,aAEpD,OAAOvB,EAhJQ,GAkJnBA,EAAaqB,MAAQ,WACjB,IAAIA,KAAYwE,EAChB,IAAK,IAAIxK,EAAI,EAAGA,EAAIyK,UAAUpF,OAAQrF,IAAK,CACvC,IAAKwK,KAAOC,UAAUzK,GAAI,CACtBgG,EAAMwE,GAAOC,UAAUzK,GAAGwK,IAGlC,OAAOxE,GAEXrB,EAAasB,UACTgE,MAAO,IACPS,aAAc,iBACdC,WACIC,SAAU,SAAUC,GAChB,OAAO,IAAIC,OAAOD,EAAO,OAE7BE,UAAW,SAAUF,GACjB,MAAO,WAAaA,EAAQ,cAGpC9B,aACIiC,eAAgB,qCAEpBC,MAAO,EACPC,SAAU,EACVC,WAAY,MACZC,SAAU,IACVC,IAAK,KACL5D,kBACI6D,OACI7C,aACQL,GAAI,GACJF,IAAK,QAEbQ,SAAU,SAAU1B,GAChB,GAAIrH,KAAKuG,WAAWK,aAAa,SAASiD,QAAQ,UAAY,EAAG,CAC7D,IAAI+B,EAAW5L,KAAKuG,WAAWsF,cAAc,aAC7C,GAAID,IAAa,KAAM,CACnBvE,EAAMyE,iBACN9L,KAAK+L,QAAQH,GACb5L,KAAKuG,WAAW9C,aAAa,QAAS,mBAIlD2E,SAAUxC,EAAkByC,IAC5BN,MAAOlC,EAAU2B,SAErBwE,mBACIlD,aACQL,GAAI,GACJF,IAAK,QAGLE,GAAI,GACJF,IAAK,QAEbQ,SAAU,SAAU1B,GAChBA,EAAMyE,kBAEV1D,SAAUxC,EAAkB0C,GAC5BP,MAAOlC,EAAU2B,SAErByE,iBACInD,aACQL,GAAI,GACJF,IAAK,QAGLE,GAAI,GACJF,IAAK,QAEbQ,SAAU,SAAU1B,GAChBA,EAAMyE,iBACN,IAAII,EAAQlM,KAAKuG,WAAWsF,cAAc,+BAAgCM,EAAOnM,KAAKuG,WAAWsF,cAAc,8BAA+BO,EAASpM,KAAKuG,WAAWsF,cAAc,aACrL,GAAIO,EAAQ,CACR,IAAIC,EAAetG,MAAMzF,UAAUuJ,QAAQlJ,KAAKyL,EAAOlM,WAAWoM,SAAUF,GAAS3E,EAAW4E,GAAgBhF,EAAMqB,QAAU,IAAK6D,EAAWvM,KAAKuG,WAAWiG,qBAAqB,MAAM9G,OAC3L,GAAI+B,EAAW,EAAG,CACdA,EAAW8E,EAAW,OAErB,GAAI9E,GAAY8E,EAAU,CAC3B9E,EAAW,EAEf2E,EAAO/H,UAAUoI,OAAO,UACxBL,EAAO7K,cAAc+K,SAASI,KAAKjF,GAAUpD,UAAUC,IAAI,eAE1D,GAAI6H,GAAQ9E,EAAMqB,SAAW,GAAI,CAClCyD,EAAK9H,UAAUC,IAAI,eAElB,GAAI4H,EAAO,CACZA,EAAM7H,UAAUC,IAAI,YAG5B8D,SAAUxC,EAAkB0C,GAC5BP,MAAOlC,EAAUyB,OAErBqF,UACI7D,aACQL,GAAI,GACJF,IAAK,OAELI,KAAM,GACNC,GAAI,GACJL,IAAK,OAEbQ,SAAU,WACN,IAAI6D,EAAW5M,KAAKyG,MAAMG,aAAa,+BAAgCiG,EAAe7M,KAAKyJ,OAC3F,GAAIoD,IAAiB,IAAMA,EAAanH,QAAU1F,KAAK8M,YAAa,CAChE,IAAKF,GAAYC,GAAgBD,EAAU,CACvC5M,KAAKuG,WAAW9C,aAAa,QAAS,qBAE1CuB,EAAa1E,UAAUmK,MAAMzK,KAAM,SAAUwC,GACzCxC,KAAK+M,QAAQ/M,KAAKgN,MAAMxK,IACxBxC,KAAKiN,SACPvL,KAAK1B,SAGfoI,SAAUxC,EAAkByC,IAC5BN,MAAOlC,EAAUyB,QAGzBf,WAAY,KACZgE,QAAS,KACT9D,MAAO,KAIPyG,cAAe,WACX,IAAIC,EAAe,GACnB,GAAInN,KAAKyG,MAAM5C,aAAa,mCAAoC,CAC5DsJ,EAAenN,KAAKyG,MAAMG,aAAa,wCAEtC,GAAI5G,KAAK+K,eAAiB,MAAO,CAClCoC,EAAenN,KAAK+K,iBAEnB,CACDoC,EAAe,GAEnB,OAAOA,GAKXC,OAAQ,WACJ,IAAIC,EAAQrN,KAAKyG,MAAMG,aAAa,2BACpC,GAAI0G,MAAMD,IAAUA,IAAU,KAAM,CAChC,OAAOrN,KAAKsL,MAEhB,OAAOiC,SAASF,EAAO,KAK3BP,UAAW,WACP,IAAIU,EAAWxN,KAAKyG,MAAMG,aAAa,8BACvC,GAAI0G,MAAME,IAAaA,IAAa,KAAM,CACtC,OAAOxN,KAAKuL,SAEhB,OAAOgC,SAASC,EAAU,KAK9BC,WAAY,SAAUC,GAClB,OAAOA,EAAMrK,QAAQrD,KAAKgL,UAAUC,SAASjL,KAAKyJ,QAASzJ,KAAKgL,UAAUI,YAK9E9B,YAAa,WACT,GAAItJ,KAAKyG,MAAM5C,aAAa,4BAA6B,CACrD,OAAO7D,KAAKyG,MAAMG,aAAa,4BAEnC,OAAO5G,KAAKwL,YAKhB5B,UAAW,WACP,GAAI5J,KAAKyG,MAAM5C,aAAa,gCAAiC,CACzD,OAAO7D,KAAKyG,MAAMG,aAAa,gCAEnC,OAAO5G,KAAKyL,UAKhBlC,KAAM,WACF,GAAIvJ,KAAKyG,MAAM5C,aAAa,qBAAsB,CAC9C,OAAO7D,KAAKyG,MAAMG,aAAa,qBAEnC,OAAO5G,KAAK0L,KAKhB1E,MAAO,SAAU2G,GACb,GAAIA,IAAQ,KAAM,CACd3N,KAAKuG,WAAW9C,aAAa,QAAS,gBACtCzD,KAAKyG,MAAMhD,aAAa,8BAA+BzD,KAAKyG,MAAMyE,WAEjE,CACD,IAAIpF,EAAS9F,KACbqK,WAAW,WACPvE,EAAOkB,MAAM,OACd,OAMX0D,OAAQ,SAAUQ,GACd,OAAOlL,KAAKgK,OAAOkB,IAKvB/D,OAAQ,WACJ,IAAIyF,EAAW5M,KAAKyG,MAAMG,aAAa,+BACvC,KAAMgG,GAAY5M,KAAKyG,MAAMyE,OAAS0B,IAAa5M,KAAK8M,aAAe9M,KAAKyG,MAAMyE,MAAMxF,OAAQ,CAC5F1F,KAAKuG,WAAW9C,aAAa,QAAS,uBAM9CwJ,MAAO,WACH,IAAInH,EAAS9F,KACb+F,MAAMzF,UAAU2F,QAAQtF,KAAKX,KAAKuG,WAAWiG,qBAAqB,MAAO,SAAUoB,GAC/E,GAAIA,EAAGhH,aAAa,UAAY,SAAU,CACxCgH,EAAGC,QAAU,SAAUxG,GACjBvB,EAAOiG,QAAQ6B,IAEnBA,EAAGE,aAAe,WACd,IAAI1B,EAAStG,EAAOS,WAAWsF,cAAc,aAC7C,GAAIO,IAAWwB,EAAI,CACf,GAAIxB,IAAW,KAAM,CACjBA,EAAO/H,UAAUoI,OAAO,UAE5BmB,EAAGvJ,UAAUC,IAAI,gBASrCuC,UAAW,WACP7G,KAAKuG,WAAW9C,aAAa,QAAS,gBACtCzD,KAAKuG,WAAW9C,aAAa,QAAS,QAAUzD,KAAKyG,MAAMsH,UAAY/N,KAAKyG,MAAMuH,cAAgB,WAAahO,KAAKyG,MAAMwH,WAAa,YAAcjO,KAAKyG,MAAMyH,YAAc,QAKlLnB,QAAS,SAAUvK,GACf,IAAI2L,EACJ,UAAW3L,GAAY,SAAU,CAC7B2L,EAAKnO,KAAKoO,WAAW5L,OAEpB,CACD2L,EAAKnO,KAAKqO,qBAAqB7L,GAEnC,GAAIxC,KAAKuG,WAAW+H,gBAAiB,CACjCtO,KAAKuG,WAAWqE,YAAY5K,KAAKuG,WAAWgI,WAAW,IAE3DvO,KAAKuG,WAAW5C,YAAYwK,IAKhCE,qBAAsB,SAAU7L,GAC5B,IAAI2L,EAAKhO,SAASqD,cAAc,MAAOoK,EAAKzN,SAASqD,cAAc,MAAO6J,EAAQrN,KAAKoN,SAEvF,GAAIC,EAAQ,EAAG,CACX7K,EAAWA,EAASgM,eAEnB,GAAInB,IAAU,EAAG,CAClBA,EAAQ7K,EAASkD,OAErB,IAAK,IAAIgH,EAAO,EAAGA,EAAO+B,KAAKC,IAAID,KAAKE,IAAItB,GAAQ7K,EAASkD,QAASgH,IAAQ,CAC1EkB,EAAGgB,UAAYpM,EAASkK,GAAMmC,MAC9BjB,EAAGnK,aAAa,0BAA2BjB,EAASkK,GAAMoC,OAC1DX,EAAGxK,YAAYiK,GACfA,EAAKzN,SAASqD,cAAc,MAEhC,OAAO2K,GAKXC,WAAY,SAAU5L,GAClB,IAAI2L,EAAKhO,SAASqD,cAAc,MAAOoK,EAAKzN,SAASqD,cAAc,MACnE,GAAIhB,EAASkD,OAAS,EAAG,CACrB1F,KAAKuG,WAAWqI,UAAYpM,MAE3B,CACD,IAAI2K,EAAenN,KAAKkN,gBACxB,GAAIC,IAAiB,GAAI,CACrBS,EAAGgB,UAAYzB,EACfS,EAAGnK,aAAa,QAAS,UACzB0K,EAAGxK,YAAYiK,IAGvB,OAAOO,GAKXnB,MAAO,SAAUxK,GACb,IACI,IAAIuM,KAEJ,IAAIC,EAAOC,KAAKC,MAAM1M,GACtB,GAAI0G,OAAOiG,KAAKH,GAAMtJ,SAAW,EAAG,CAChC,MAAO,GAEX,GAAIK,MAAMC,QAAQgJ,GAAO,CACrB,IAAK,IAAI3O,EAAI,EAAGA,EAAI6I,OAAOiG,KAAKH,GAAMtJ,OAAQrF,IAAK,CAC/C0O,EAAeA,EAAerJ,SAAYoJ,MAASE,EAAK3O,GAAIwO,MAAS7O,KAAKyN,WAAWuB,EAAK3O,UAG7F,CACD,IAAK,IAAI6K,KAAS8D,EAAM,CACpBD,EAAeK,MACXN,MAAS5D,EACT2D,MAAS7O,KAAKyN,WAAWuB,EAAK9D,OAI1C,OAAO6D,EAEX,MAAO1H,GAEH,OAAO7E,IAMfiH,KAAM,WACF,OAAOzJ,KAAKyG,MAAMyE,OAKtBa,QAAS,SAAUW,GACtB7L,QAAQC,IAAI,kBACL,GAAI4L,EAAK7I,aAAa,2BAA4B,CAC9C7D,KAAKyG,MAAMyE,MAAQwB,EAAK9F,aAAa,+BAEpC,CACD5G,KAAKyG,MAAMyE,MAAQwB,EAAKkC,UAE5B5O,KAAKyG,MAAMhD,aAAa,8BAA+BzD,KAAKyG,MAAMyE,QAEtEf,WAAY,KACZH,UACAlD,eAEJpC,EAAOD,QAAUO,YAEN,IAAI;;;;;;;;;;CAYf,SAAU3F,EAAGC,GACX,aAEA,SAAS+P,EAAYC,EAAoBC,EAAkBC,EAAcC,GACvEzP,KAAKsP,mBAAqBA,EAC1BtP,KAAKuP,iBAAmBA,EACxBvP,KAAKwP,aAAeA,EACpBxP,KAAK0P,OAAS,GACd1P,KAAKyP,UAAYA,EACjBzP,KAAK2P,cAAgB,KAcvBN,EAAY/O,UAAUsP,WAAa,SAASC,EAAQC,GAClD,IAAI3K,EAAI,EACR4K,EAEAD,GAASD,EAAOnK,OAAS1F,KAAK0P,OAC9B,IAAK,IAAIrP,EAAI,EAAGA,EAAIwP,EAAOnK,OAAQrF,IAAK,CACtC0P,EAAMF,EAAOxP,GACb,GAAK0P,EAAIC,aAAe,GAAOD,EAAIE,cAAgB,EAAI,CACrD9K,GAAK4K,EAAIC,aAAeD,EAAIE,kBACvB,CAEL9K,GAAK,GAIT,OAAO2K,EAAQ3K,GAGjBkK,EAAY/O,UAAU4P,SAAW,SAASL,EAAQM,GAChD,IAAIJ,EAAKK,EAAUC,EAAeR,EAAOnK,OACzC,IAAK,IAAIrF,EAAI,EAAGA,EAAIgQ,EAAchQ,IAAK,CACrC0P,EAAMF,EAAOxP,GACb,GAAK0P,EAAIC,aAAe,GAAOD,EAAIE,cAAgB,EAAI,CACrDG,EAAWD,EAASJ,EAAIC,aAAeD,EAAIE,kBACtC,CAELG,EAAWD,EAEbJ,EAAIO,MAAMR,MAAQM,EAAW,KAC7BL,EAAIO,MAAMH,OAASA,EAAS,KAC5BJ,EAAIO,MAAMC,WAAa,MACvBR,EAAIO,MAAME,UAAY,MACtBT,EAAIO,MAAMG,YAAczQ,KAAK0P,OAAS,EAAI,KAC1CK,EAAIO,MAAMI,aAAe1Q,KAAK0P,OAAS,EAAI,OAI/CL,EAAY/O,UAAUqQ,WAAa,SAASC,GAC1C,IAAIC,EAAOC,EACXC,EAAiBzR,EAAEuM,cAAc7L,KAAKsP,oBAAoBpB,YAE1D7O,EAAG,MAAOuR,EAASlL,OAAS,EAAG,CAC7B,IAAK,IAAIrF,EAAI,EAAGA,GAAKuQ,EAASlL,OAAQrF,IAAK,CACzCwQ,EAAQD,EAASC,MAAM,EAAGxQ,GAC1ByQ,EAAI9Q,KAAK4P,WAAWiB,EAAOE,GAC3B,GAAID,EAAI9Q,KAAKyP,UAAW,CACtBzP,KAAKkQ,SAASW,EAAOC,GACrBF,EAAWA,EAASC,MAAMxQ,GAC1B,SAAShB,GAGbW,KAAKkQ,SAASW,EAAOpC,KAAKC,IAAI1O,KAAKyP,UAAWqB,IAC9C,QAIJzB,EAAY/O,UAAU0Q,MAAQ,SAASzB,GACrC,IAAI0B,EAAuB3R,EAAEc,iBAAiBJ,KAAKuP,kBACnD2B,EAAiBD,EAAqBvL,OACtCyL,EAAW,KACXC,EAAU,KACVR,KACA,IAAK,IAAIvQ,EAAI,EAAGA,EAAI6Q,EAAgB7Q,IAAK,CACvC+Q,EAAUH,EAAqB5Q,GAC/B,GAAI+Q,EAAQC,yBAA2BF,GAAYP,EAASlL,OAAS,EAAG,CAItE1F,KAAK2Q,WAAWC,GAEhBA,KAGFA,EAASxB,KAAKgC,EAAQvF,cAAc7L,KAAKwP,eAEzC2B,EAAWC,EAGb,GAAIR,EAASlL,OAAS,EAAG,CACvB1F,KAAK2Q,WAAWC,KAIpBvB,EAAY/O,UAAUgR,MAAQ,WAC5B,IAAIjR,EAAG0P,EAAKa,EAAUW,EACtBvQ,EAAMhB,KACNwR,EAAgBlS,EAAEc,iBAAiBJ,KAAKuP,kBACxC2B,EAAiBM,EAAc9L,OAE/B,SAASsL,EAAMtQ,GACbM,EAAIgQ,QAGN,SAASS,EAAc/Q,GACrB,GAAIM,EAAI2O,cAAe,CACrB3O,EAAI2O,cAAgB,MACpBtF,WAAW,WACTrJ,EAAIgQ,QACJhQ,EAAI2O,cAAgB,MACnB,MAIPtQ,EAAE8B,iBAAiB,SAAUsQ,GAC7BpS,EAAE8B,iBAAiB,WAAY6P,GAE/B,IAAK3Q,EAAI,EAAGA,EAAI6Q,EAAgB7Q,IAAK,CACnC0P,EAAMyB,EAAcnR,GAAGwL,cAAc7L,KAAKwP,cAC1C,UAAWO,IAAQ,YAAa,CAC9BA,EAAI5O,iBAAiB,OAAQsQ,GAC7B1B,EAAI5O,iBAAiB,QAASsQ,MAKpCpS,EAAEE,MAAM8P,YAAcA,GA1IxB,CA4IG9K,OAAQpE,UACVZ,MAAMiC,MAAM,WAEXjC,MAAMwB,GAAG,UAAW,QAAS,WAC3B2Q,EAAgB1R,MAAM,QAGxBT,MAAMwB,GAAG,YAAa,QAAS,SAASL,GACtC,IAAID,EAAKC,EAAEU,OACX,MAAOX,IAAOuH,UAAW,CACvB,GAAIvH,EAAG4D,UAAUsN,SAAS,UAAW,CACnC,GAAIlR,EAAGmG,aAAa,uBAAyB,KAAM,CACjD8K,EAAgBjR,GAAI,MAEtB,MAEFA,EAAKA,EAAGP,aAET,MAEH,IAAI0R,GACFC,IACEhK,IAAK,SACLiK,IAAKC,EACLC,IAAK,sCACLC,IAAK,WAEPC,IACErK,IAAK,IACLiK,IAAKK,EACLH,IAAK,4BACLC,IAAK,WAEPG,IACEvK,IAAK,IACLiK,IAAKO,GAAY9N,OAAO+N,aACxBN,IAAK,qBACLC,IAAK,cAEPM,IACE1K,IAAK,IACLiK,IAAKO,EAAW9N,OAAO+N,aACvBN,IAAK,uBACLC,IAAK,cAEPO,IACE3K,IAAK,IACLiK,IAAKO,GAAY9N,OAAO+N,YAAc,GACtCN,IAAK,wBACLC,IAAK,cAEPQ,IACE5K,IAAK,IACLiK,IAAKO,EAAW9N,OAAO+N,YAAc,GACrCN,IAAK,0BACLC,IAAK,cAEPS,IACE7K,IAAK,IACLiK,IAAKa,GAAcxS,SAASuD,KAAKkP,aAAc,OAC/CZ,IAAK,gCACLC,IAAK,cAEPY,IACEhL,IAAK,IACLiK,IAAKa,EAAaxS,SAASuD,KAAKkP,aAAc,UAC9CZ,IAAK,mCACLC,IAAK,cAEPa,IACEjL,IAAK,IACLiK,IAAKJ,EAAgB,MACrBM,IAAK,gCACLC,IAAK,WAEPc,IACElL,IAAK,IACLiK,IAAKJ,EAAgB,QACrBM,IAAK,4BACLC,IAAK,WAEPe,IACEnL,IAAK,IACLiK,IAAKmB,EAAgB,GACrBjB,IAAK,sBACLC,IAAK,WAEPiB,IACErL,IAAK,IACLiK,IAAKmB,EAAgB,GACrBjB,IAAK,kBACLC,IAAK,WAEPkB,IACEtL,IAAK,IACLiK,IAAKsB,EAAW,OAChBpB,IAAK,qBACLC,IAAK,WAEPoB,IACExL,IAAK,IACLiK,IAAKsB,EAAW,MAChBpB,IAAK,+BACLC,IAAK,WAEPqB,IACEzL,IAAK,IACLiK,IAAKyB,EACLvB,IAAK,8BACLC,IAAK,WAEPuB,IACE3L,IAAK,IACLiK,IAAK2B,EACLzB,IAAK,qBACLC,IAAK,UAIT1S,MAAMwB,GAAGZ,SAAU,UAAW,SAASO,GAErC,GAAIkR,EAAQpJ,eAAe9H,EAAEgI,WAAahI,EAAEgT,UAAYhT,EAAEiT,SAAWjT,EAAEkT,WAAalT,EAAEmT,QAAS,CAC7F,IAAIC,EAAUpT,EAAEU,OAAO0S,QAAQC,cAC/B,GAAIrT,EAAEgI,UAAY,GAAI,CACpB,GAAIoL,IAAY,SAAWA,IAAY,UAAYA,IAAY,WAAY,CACzElC,EAAQlR,EAAEgI,SAASoJ,WAEhB,CACL,GAAIpR,EAAEU,SAAWjB,SAASuD,MAAQoQ,IAAY,KAAOA,IAAY,SAAU,CACzEpT,EAAEoL,iBACF8F,EAAQlR,EAAEgI,SAASoJ,WAM3B,SAASJ,EAAgBsC,GACvB,OAAO,SAASC,GACd,IAAI7C,EAAUjR,SAAS0L,cAAc,8BACrCqI,EAAiBF,EACjB,GAAI5C,IAAY,KAAM,CAEpBA,EAAUjR,SAAS0L,cAAc,WACjC,GAAIuF,IAAY,KAAM,CAEpB,OAGF,GAAI4C,IAAU,QAAUA,IAAU,KAAM,CACtCE,EAAiB9C,GAIrB,IAAI+C,EAAMC,EAAUjU,SAASC,iBAAiB,WAE9C,UAAW8T,IAAmB,SAAU,CACtCC,EAAOD,MACF,CACL,OAAQA,GACN,IAAK,UACL,IAAIG,EAAMlU,SAASmU,gBAAgBC,WAAapU,SAASuD,KAAK6Q,UAC9D,IAAIC,EAAMH,EAAMlU,SAASmU,gBAAgBG,aAEzC,IAAK,IAAIpU,EAAI,EAAGA,EAAI+T,EAAQ1O,OAAQrF,IAAK,CACvC8T,EAAOC,EAAQ/T,GACf,IAAIqU,EAAOP,EAAKpG,UAChB,IAAI4G,EAAOD,EAAOP,EAAKM,aAEvB,GAAKE,GAAQH,GAASE,EAAOL,EAAM,CACjC,OAGJ,MACA,IAAK,OACLF,EAAO/C,EAAQwD,mBACf,GAAIT,IAAS,KAAM,CACjBA,EAAOC,EAAQ,GAEjB,MACA,IAAK,KACLD,EAAO/C,EAAQC,uBACf,GAAI8C,IAAS,KAAM,CACjBA,EAAOC,EAAQA,EAAQ1O,OAAS,GAElC,MACA,IAAK,SACLyO,EAAOC,EAAQA,EAAQ1O,OAAS,GAChC,MACA,IAAK,MAEL,QACAyO,EAAOC,EAAQ,IAInB,GAAID,EAAM,CACR/C,EAAQyD,gBAAgB,qBACxBV,EAAK1Q,aAAa,oBAAqB,QACvC,IAAIqR,EAAOX,EAAKtI,cAAc,SAAWsI,EAAKtI,cAAc,KAC5D,GAAIiJ,IAAS,KAAM,CACjBA,EAAK5N,QAEP,IAAK+M,EAAU,CACbc,OAMR,SAASxB,IACPpT,SAAS6U,SAASC,OAAO,MAG3B,SAASlD,IACP,GAAI5R,SAAS+U,cAAe,CAC1B/U,SAAS+U,cAAcnO,QAI3B,SAASkM,EAAgBkC,GACvB,OAAO,WACL,IAAIC,EAAUC,EAAE,wCAChB,GAAID,EAAQ1P,SAAW,EAAG,CACxB7E,QAAQC,IAAI,oDACZ,OAEF,GAAIqU,GAAO,GAAKA,EAAMC,EAAQ1P,OAAQ,CACpC0P,EAAQD,GAAKG,YACR,CACLzU,QAAQC,IAAI,yCAKlB,SAASiU,IACP,IAAIQ,EAAMpV,SAAS0L,cAAc,8BACjC,GAAI0J,IAAQ,KAAM,CAChB,OAEF,IAAIC,EAAOrV,SAASmU,gBAAgBC,WAAapU,SAASuD,KAAK6Q,UAC/DkB,EAAUtV,SAASmU,gBAAgBG,aACnCC,EAAOa,EAAIxH,UACX4G,EAAOD,EAAOa,EAAId,aAClBiB,EAAS,IAET,GAAKH,EAAIlE,yBAA2B,MAAUsD,EAAOc,EAAU,CAG7DlR,OAAOoR,OAAOpR,OAAOqR,QAAS,GAC9B,OAEF,GAAIJ,EAAQd,EAAOgB,EAAS,CAC1BnR,OAAOoR,OAAOpR,OAAOqR,QAASlB,EAAOgB,OAChC,CACL,IAAIG,EAAOL,EAAOC,EAClB,GAAII,EAAQlB,EAAOe,EAAS,CAC1BnR,OAAOoR,OAAOpR,OAAOqR,QAASjB,EAAOc,EAAUC,KAKrD,SAASrD,EAAWyD,GAClB,OAAO,WACLvR,OAAOwR,SAAS,EAAGD,GACnBpE,EAAgB,cAIpB,SAASiB,EAAalL,EAAUuO,GAC9B,OAAO,WACLzR,OAAO0R,SAAS,EAAGxO,GACnBiK,EAAgBsE,MAIpB,SAAS7D,IACP5N,OAAO0R,SAAS,EAAG,GACnB9V,SAAS0L,cAAc,MAAM3E,QAG/B,SAASkM,EAAW8C,GAClB,OAAO,WACL,IAAIpB,EAAO3U,SAAS0L,cAAc,mCAClC,GAAIiJ,IAAS,KAAM,CACjB,IAAIjT,EAAMiT,EAAKlO,aAAa,QAC5B,GAAIsP,EAAQ,CACV3R,OAAOlC,KAAKR,OACP,CACL0C,OAAOyQ,SAASmB,KAAOtU,KAM/B,SAASuU,EAAgBC,GACvB,IAAIC,KAEJ,IAAK,IAAIC,KAAK3E,EAAS,CACrB,IAAI/J,EAAM+J,EAAQ2E,GAClBD,EAAWzO,EAAIoK,KAAOqE,EAAWzO,EAAIoK,SACrCqE,EAAWzO,EAAIoK,KAAK7C,KAAKvH,GAG3B,IAAI2O,EAAStN,OAAOiG,KAAKmH,GAAYG,KAAK,SAASnR,EAAGoR,GACpD,OAAOJ,EAAWI,GAAGhR,OAAS4Q,EAAWhR,GAAGI,SAG9C,GAAI8Q,EAAO9Q,SAAW,EAAG,CACvB,OAGH,IAAIiR,EAAO,mEACVA,GAAQ,uDACVA,GAAQ,UAEN,IAAK,IAAItW,EAAI,EAAGA,EAAImW,EAAO9Q,OAAQrF,IAAK,CACtC,IAAI4R,EAAMqE,EAAWE,EAAOnW,IAE5B,IAAIuW,EAAevW,IAAOmW,EAAO9Q,OAAS,EAC1C,IAAIwG,EAAQ7L,EAAI,IAAM,EAEtB,GAAI6L,EAAO,CACTyK,GAAQ,OAEVA,GAAQ,OAERA,GAAQ,OAAS1E,EAAI,GAAGA,IAAM,QAC9B0E,GAAQ,6BAER,IAAK,IAAIE,KAAM5E,EAAK,CAClB0E,GAAQ,YAAc1E,EAAI4E,GAAIhP,IAAM,UAAYoK,EAAI4E,GAAI7E,IAAM,QAGhE2E,GAAQ,QACRA,GAAQ,QAER,IAAKzK,GAAS0K,EAAc,CAC1BD,GAAQ,SAIdA,GAAQ,WAENN,EAAWzH,UAAY+H,EAGzB,SAASlD,IACR,IAAIqD,EAAY3W,SAAS0L,cAAc,qBACvChL,QAAQC,IAAIgW,GACb,GAAIA,IAAc9O,WAAa8O,IAAc,KAAM,CAElDA,EAAY3W,SAASqD,cAAc,OAChCsT,EAAU1T,GAAK,mBACjB0T,EAAUC,UAAU,eACpBD,EAAUxG,MAAM,aACjB8F,EAAgBU,GAChB,IAAIpT,EAAOvD,SAASqM,qBAAqB,QAAQ,GACjD9I,EAAKC,YAAYmT,OACX,CAENA,EAAUzS,UAAU2S,OAAO,aAC3B,YAuBH,SAAW3X,EAAGC,EAAGC,GACf,aAEAA,EAAMiC,MAAM,WACVjC,EAAMwB,GAAG,0BAA2B,QAAS,SAASsG,GAEpDrH,KAAKqE,UAAUoI,OAAO,0BAGtB,IAAIwK,EAAe,gDACnB,IAAIC,EAAcD,EAAe,2BACjC,IAAIE,EAAY,cAEhB,IAAIC,EAASpX,KAAKqX,QAAQC,MAC1B,IAAIC,EAAWvX,KAAKqX,QAAQG,QAC5B,IAAIC,EAAenY,EAAEuM,cAAc,IAAM7L,KAAKqX,QAAQK,aACtD,IAAIC,EAAwBrY,EAAEuM,cAAc,IAAM7L,KAAKqX,QAAQO,qBAG/D,IAAIC,GAAoB,YAAa,eAAgB,mBAAoB,gBAAiB,eAE1F,GAAGT,GAAUG,GAAYE,EAAc,CACrC,IAAIK,EAAQ,KACZ,OAAOP,GACL,IAAK,OACLO,EAAQZ,EAAc,QAAUE,EAAS,KAAOD,EAChD,MACA,IAAK,MACLW,EAAQZ,EAAc,OAASE,EAAS,KAAOD,EAC/C,MACA,IAAK,WACLW,EAAQZ,EAAc,YAAcE,EAAS,KAAOD,EACpD,MACA,QACA,MAEF,GAAGW,EAAO,CAERvY,EAAMoC,KAAM,MAAOmW,GAAQ3V,KAAK,SAASwU,EAAMoB,GAC7CpB,EAAO1H,KAAKC,MAAMyH,GAClB,GAAGA,GAAQA,EAAKzQ,UAAYyQ,EAAKzQ,SAAS,GAAI,CAC5C,IAAIhC,EAAUyS,EAAKzQ,SAAS,GAC5B,IAAI8R,EAAU,GACd,IAAK,IAAIC,KAAO/T,EAAQgU,KAAM,CAC5B,GAAGhU,EAAQgU,KAAKrP,OAAS,MAAQgP,EAAgBhO,QAAQoO,KAAS,EAAG,CACnED,GAAW,WAAaC,EAAM,YAC9B,OAAOA,GACL,IAAK,QACL,IAAK,MACLD,GAAW,gBAAmB9T,EAAQgU,KAAKD,GAAK5U,QAAQ,KAAK,IAAM,KAAQa,EAAQgU,KAAKD,GAAO,OAC/F,MACA,IAAK,QACLD,GAAW,mBAAsB9T,EAAQgU,KAAKD,GAAO,KAAQ/T,EAAQgU,KAAKD,GAAO,OACjF,MACA,IAAK,UACL,IAAK,MACLD,GAAW,YAAe9T,EAAQgU,KAAKD,GAAO,KAAQ/T,EAAQgU,KAAKD,GAAO,OAC1E,MACA,IAAK,WACLD,GAAW,0CAA6C9T,EAAQgU,KAAKD,GAAO,KAAQ/T,EAAQgU,KAAKD,GAAO,OACxG,MACA,IAAK,YACL,GAAG/T,EAAQgU,KAAKD,GAAKpO,QAAQ,OAAS,EAAG,CACvCmO,GAAW,oBAAuB9T,EAAQgU,KAAKD,GAAKE,UAAU,EAAEjU,EAAQgU,KAAKD,GAAKpO,QAAQ,MAAQ,uBAAyB3F,EAAQgU,KAAKD,GAAKE,UAAUjU,EAAQgU,KAAKD,GAAKpO,QAAQ,KAAK,GAAK,KAAQ3F,EAAQgU,KAAKD,GAAO,OACvN,MAGF,QAEAD,GAAW9T,EAAQgU,KAAKD,GACxB,MAEFD,GAAW,cAGtBL,EAAsBzX,WAAW0K,YAAY+M,GACtCF,EAAapT,UAAUoI,OAAO,aAC9BgL,EAAa5L,cAAc,SAAS+C,UAAYoJ,KAGnD5V,MAAM,WACLuV,EAAsBtT,UAAUoI,OAAO,aACvCkL,EAAsB/I,UAAY,0BAMxCvH,EAAMyE,mBAGRvM,EAAMwB,GAAG,kBAAmB,QAAS,SAASsG,GAE5CrH,KAAKqE,UAAUoI,OAAO,kBAGtB,IAAI2L,EAAiBpY,KAAKqX,QAAQgB,cAClC,IAAIC,EAAUC,WAAWvY,KAAKqX,QAAQmB,QACtC,IAAIC,EAAUF,WAAWvY,KAAKqX,QAAQqB,QACtC,IAAIC,EAAWJ,WAAWvY,KAAKqX,QAAQuB,SACvC,IAAIC,EAAkB5J,KAAKC,MAAMlP,KAAKqX,QAAQyB,gBAC9C,IAAIC,EAAc9J,KAAKC,MAAMlP,KAAKqX,QAAQ2B,YAE1CzZ,EAAMyD,UAAU,uBAChBzD,EAAMqE,WAAW,qBAAsB,WACrC,IAAIqV,EAAa,KACjB,GAAGJ,EAAiB,CAClB,IAAIK,EAAYC,EAAEC,OAAOP,EAAgB,GAAIA,EAAgB,IAC7D,IAAIQ,EAAYF,EAAEC,OAAOP,EAAgB,GAAIA,EAAgB,IAC7DI,EAAaE,EAAEG,aAAaJ,EAAWG,GAIzC,IAAIE,EAAMJ,EAAEI,IAAInB,GAEhB,IAAIoB,EAAa,qDACjB,IAAIC,EAAgB,gFACpB,IAAIC,EAAY,IAAIP,EAAEQ,UAAUH,GAAeI,QAAS,EAAGC,QAAS,GAAIC,YAAaL,IACrF,IAAIM,EAAgB,sDACpB,IAAIC,EAAqB,uGACzB,IAAIC,EAAe,IAAId,EAAEQ,UAAUI,GAAkBH,QAAS,EAAGC,QAAS,GAAIC,YAAaE,IAE3F,GAAGf,EAAY,CAGb5O,WAAW,WACTkP,EAAIW,UAAUjB,GACZY,QAAQ,MAET,QACE,GAAIvB,GAAWG,EAAS,CAC7B,GAAGE,EAAU,CACXY,EAAIY,QAAQ,IAAIhB,EAAEC,OAAOX,EAASH,GAASK,OACtC,CACLY,EAAIY,QAAQ,IAAIhB,EAAEC,OAAOX,EAASH,GAAS,IAI/CiB,EAAIa,SAASV,GAEb,IAAIW,GACFC,aAAcZ,GAIhBP,EAAEoB,QAAQC,OAAOH,GAAYI,MAAMlB,GAEnC,GAAGR,EAAa,CACdI,EAAEuB,QAAQ3B,GAAa0B,MAAMlB,MAOjClS,EAAMyE,sBA3JZ,CA8JGvH,OAAQpE,SAAUoE,OAAOhF,QAiB5B,SAAUF,EAAGC,EAAGC,GACd,aAEAA,EAAMiC,MAAM,WACVjC,EAAMob,uBAAyB,IAAIpb,EAAM8P,YAAY,QAAS,uBAAwB,sBAAuB,KAC7G9P,EAAMob,uBAAuBrJ,QAE7B/R,EAAMwB,GAAG,gBAAiB,QAAS,SAASsG,GAC1C,IAAIuT,EAAoB5a,KAAK4G,aAAa,2BAC1C,IAAIiU,EAAuB7a,KAAK4G,aAAa,+BAC7C,IAAIxF,EAASpB,KAAK4G,aAAa,eAC/B,IAAIkU,EAAgBxb,EAAEuM,cAAczK,GACpC,IAAIuV,EAAO3W,KAAK4O,UAChB,GAAI5O,KAAKqE,UAAUsN,SAAS,aAAc,CACxCgF,EAAOA,EAAKtT,QAAQuX,EAAmBC,OAClC,CACLlE,EAAOA,EAAKtT,QAAQwX,EAAsBD,GAE5C5a,KAAK4O,UAAY+H,EACjB3W,KAAKqE,UAAU2S,OAAO,aACtB8D,EAAczW,UAAU2S,OAAO,eAGjCzX,EAAMwB,GAAG,gBAAiB,QAAS,SAASsG,GAC1C,IAAIjG,EAASpB,KAAK4G,aAAa,eAC/B,IAAImU,EAAczb,EAAEuM,cAAczK,EAAS,aAC3C,IAAI4Z,EAAUD,EAAYnU,aAAa,OACvC,GAAIoU,IAAY,MAAQA,IAAYhT,WAAagT,IAAY,MAAO,CAClED,EAAYtX,aAAa,MAAOsX,EAAYnU,aAAa,gBAI7DvH,EAAE8B,iBAAiB,SAAU,WAC3B,IAAIT,EAAIpB,EAAEiE,eAAe,aACzBgR,EAAYpU,SAASmU,gBAAgBC,WAAapU,SAASuD,KAAK6Q,UAChE,GAAI7T,IAAM,KAAM,CACd,GAAI6T,GAAa,IAAK,CACpB7T,EAAE4P,MAAM2K,QAAU,MACb,CACLva,EAAE4P,MAAM2K,QAAU,SAvC5B,CA8CG1W,OAAQpE,SAAUoE,OAAOhF,QAiB5B,SAAUF,EAAGC,EAAGC,GACd,aAEA,IAAI2b,EAAa,KAAMC,EAAY,IAAKC,EAExC,SAASC,EAAiBnX,GACxB,GAAIA,EAAQoX,kBAAmB,CAC7B,IAAIC,EAAMrX,EAAQgH,MAAMxF,OACxBxB,EAAQoX,kBAAkBC,EAAKA,IAInC,SAASC,IACP,GAAIJ,EAAOlQ,MAAMxF,OAAU,EAAG,CAC5B,IAAI+V,EAAStb,SAASoD,eAAe,UACrC8G,WAAWoR,EAAOC,OAAOha,KAAK+Z,GAAS,IAI3C,SAASE,EAAkBP,GACzB,IAAIQ,EAAKzb,SAASoD,eAAe,gBACjC,IAAIsY,EAAoB,WACtB,GAAIT,EAAOlQ,MAAMxF,SAAW,EAAG,CACpCkW,EAAGvX,UAAUC,IAAI,aACL,CACZsX,EAAGvX,UAAUoI,OAAO,WAKjBoP,IACAD,EAAGza,iBAAiB,QAAS,WAC3Bia,EAAOlQ,MAAM,GACbkQ,EAAOlU,QACP2U,MAEFT,EAAOja,iBAAiB,QAAS0a,EAAmB,OAGtDtc,EAAMiC,MAAM,WACV4Z,EAAS9b,EAAEiE,eAAe4X,GAE1B,SAASW,EAAqBpb,GAC5B,GAAIwa,EAAY,CACdG,EAAiBD,GACjBF,EAAa,UACR,GAKT,GAAIE,IAAW,KAAM,CAEnBO,EAAkBP,GAGlB,GAAI7b,EAAMwc,cAAe,CACvBxc,EAAMyc,aAAehX,aAAarE,KAAKtB,GACrCqM,IAAK,kBACLX,aAAcxL,EAAM0c,YACpBzQ,WAAYjM,EAAMqC,OAClB2J,SAAU,EACVjB,MAAO,KACN,IAAM6Q,GAGT9b,EAAE8B,iBAAiB,SAAU,WAC3B,IAAIkG,EAAQ,IAAI6U,YAAY,YAC5Bd,EAAOe,cAAc9U,KAIzB+T,EAAOja,iBAAiB,QAAS2a,EAAsB,OACvDV,EAAOlU,QAIT,GAAIkU,IAAW,MAAQ7b,EAAM6c,0BAA2B,CACtD9c,EAAEuM,cAAc,SAASkL,UAAU,YAEnCxX,EAAMwB,GAAG,oBAAqB,SAAU,SAASL,GAC/C,IAAIL,EAAGiW,EAAahX,EAAEc,iBAAiB,sCACvC,IAAIC,EAAE,EAAGA,EAAEiW,EAAW5Q,OAAQrF,IAAK,CACjC,GAAIiW,EAAWjW,KAAOL,MAAQsW,EAAWjW,GAAGgc,QAAS,CACnD/F,EAAWjW,GAAGiV,SAGlB,IAAMtV,KAAKqc,QAAS,CAClBrc,KAAKsV,QAEPkG,IACA,OAAO,QAGTjc,EAAMwB,GAAGzB,EAAEiE,eAAe,cAAe,SAAUiY,GACnDjc,EAAMwB,GAAGzB,EAAEiE,eAAe,YAAa,SAAUiY,OA/FvD,CAoGGjX,OAAQpE,SAAUoE,OAAOhF","file":"searx.min.js"} \ No newline at end of file
+{"version":3,"sources":["searx.js"],"names":["window","searx","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","element","insertAfter","nextSibling","classList","add","f","exports","module","define","amd","g","global","self","AutoComplete","t","n","r","o","u","a","require","code","l","length","1","ConditionOperator","EventType","params","Array","isArray","forEach","elements","input","specificParams","merge","defaults","DOMResults","create","Input","nodeName","match","getAttribute","_Position","$Listeners","blur","_Blur","destroy","focus","_Focus","keyup","event","KEYUP","keydown","KEYDOWN","position","getEventsByType","type","mappings","key","KeyboardMappings","Event","undefined","eventIdentifier","condition","mapping","Operator","AND","OR","Not","hasOwnProperty","Is","keyCode","From","To","name","Conditions","Callback","makeRequest","propertyHttpHeaders","Object","getOwnPropertyNames","HttpHeaders","request","_HttpMethod","_Url","queryParams","_Pre","queryParamsStringify","encodeURIComponent","_QueryArg","indexOf","setRequestHeader","onreadystatechange","$Cache","ajax","timeout","$AjaxTimer","clearTimeout","setTimeout","Delay","Request","abort","cache","_Cache","removeEventListener","removeChild","tmp","arguments","EmptyMessage","Highlight","getRegex","value","RegExp","transform","Content-type","Limit","MinChars","HttpMethod","QueryArg","Url","Enter","liActive","querySelector","preventDefault","_Select","KeyUpAndDown_down","KeyUpAndDown_up","first","last","active","currentIndex","children","lisCount","getElementsByTagName","remove","item","AlphaNum","oldValue","currentValue","_MinChars","_Render","_Post","_Open","_EmptyMessage","emptyMessage","_Limit","limit","isNaN","parseInt","minchars","_Highlight","label","now","li","onclick","onmouseenter","offsetTop","offsetHeight","offsetLeft","clientWidth","ul","_RenderRaw","_RenderResponseItems","hasChildNodes","childNodes","reverse","Math","min","abs","innerHTML","Label","Value","returnResponse","json","JSON","parse","keys","push","ImageLayout","container_selector","results_selector","img_selector","maxHeight","margin","_alignAllDone","_getHeigth","images","width","img","naturalWidth","naturalHeight","_setSize","height","imgWidth","imagesLength","style","marginLeft","marginTop","marginRight","marginBottom","_alignImgs","imgGroup","slice","h","containerWidth","align","results_selectorNode","results_length","previous","current","previousElementSibling","watch","imgNodeLength","results_nodes","throttleAlign","highlightResult","contains","vimKeys","27","fun","removeFocus","des","cat","73","searchInputFocus","66","scrollPage","innerHeight","70","85","68","71","scrollPageTo","scrollHeight","86","75","74","80","pageButtonClick","78","79","openResult","84","82","reloadPage","72","toggleHelp","ctrlKey","altKey","shiftKey","metaKey","tagName","toLowerCase","which","noScroll","effectiveWhich","next","results","top","documentElement","scrollTop","bot","clientHeight","etop","ebot","nextElementSibling","removeAttribute","link","scrollPageToSelected","location","reload","activeElement","num","buttons","$","click","sel","wtop","wheight","offset","scroll","scrollX","wbot","amount","scrollBy","nav","scrollTo","newTab","href","initHelpContent","divElement","categories","k","sorted","sort","b","html","lastCategory","cj","helpPanel","className","toggle","overpass_url","query_start","query_end","osm_id","dataset","osmId","osm_type","osmType","result_table","resultTable","result_table_loadicon","resultTableLoadicon","osm_ignore_tags","query","contentType","newHtml","row","tags","substring","leaflet_target","leafletTarget","map_lon","parseFloat","mapLon","map_lat","mapLat","map_zoom","mapZoom","map_boundingbox","mapBoundingbox","map_geojson","mapGeojson","map_bounds","southWest","L","latLng","northEast","latLngBounds","map","osmMapnikUrl","osmMapnikAttrib","osmMapnik","TileLayer","minZoom","maxZoom","attribution","osmWikimediaUrl","osmWikimediaAttrib","osmWikimedia","fitBounds","setView","addLayer","baseLayers","OSM Mapnik","control","layers","addTo","geoJson","image_thumbnail_layout","btnLabelCollapsed","btnLabelNotCollapsed","targetElement","iframe_load","srctest","opacity","firstFocus","qinput_id","qinput","placeCursorAtEnd","setSelectionRange","len","submitIfQuery","search","submit","createClearButton","cs","updateClearButton","placeCursorAtEndOnce","autocompleter","autocomplete","no_item_found","CustomEvent","dispatchEvent","search_on_category_select","checked"],"mappings":";;AAiBAA,OAAOC,MAAQ,SAAUC,EAAGC,GAE1B,aAMA,GAAID,EAAEE,QAAS,EACb,SAAUC,GACRA,EAAiBC,QAAUD,EAAiBC,SAC5CD,EAAiBE,iBACjBF,EAAiBG,uBACjBH,EAAiBI,mBACjB,SAASC,GACP,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,EAAaC,EAAUC,EAAIC,GAClC,IACEF,EAASG,KAAKF,EAAIC,GAClB,MAAOE,GACPC,QAAQC,IAAIF,IAIhB,IAAIvB,EAAQD,OAAOC,OAAS,GAE5BA,EAAM0B,GAAK,SAASC,EAAKC,EAAWT,EAAUU,GAC5CA,EAAaA,GAAc,MAC3B,UAAWF,IAAQ,SAAU,CAE3BA,EAAIG,iBAAiBF,EAAWT,EAAUU,OACrC,CAEL3B,EAAE4B,iBAAiBF,EAAW,SAASP,GACrC,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,EAAMmC,MAAQ,SAAShB,GACrB,GAAIL,SAASsB,YAAc,UAAW,CACpCjB,EAASG,KAAKrB,OACT,CACLA,EAAE6B,iBAAiB,mBAAoBX,EAASkB,KAAKpC,MAIzDD,EAAMsC,KAAO,SAASC,EAAQC,EAAKrB,GACjC,IAAIsB,EAAM,IAAIC,eACdC,EAAU,aACVC,EAAS,aACTC,EAAU,CACRC,KAAM,SAAS3B,GAAYwB,EAAUxB,EAAU,OAAO0B,GACtDE,MAAO,SAAS5B,GAAYyB,EAASzB,EAAU,OAAO0B,IAGxD,IACEJ,EAAIO,KAAKT,EAAQC,EAAK,MAGtBC,EAAIQ,OAAS,WACX,GAAIR,EAAIS,QAAU,IAAK,CACrBP,EAAQF,EAAIU,SAAUV,EAAIW,kBACrB,CACLR,EAAOS,MAAMZ,EAAIa,eAKrBb,EAAIc,QAAU,WACZX,EAAOS,MAAM,mBAGfZ,EAAIe,QAAU,WACZZ,EAAOS,MAAM,4BAIfZ,EAAIgB,OACJ,MAAOC,GACPd,EAAOc,GAGT,OAAOb,GAGT7C,EAAM2D,UAAY,SAASC,GACzB,IAAIC,EAAO7D,EAAM8D,YAAcF,EAC/BG,EAAK,SAAWH,EAAII,QAAQ,IAAK,KACjCC,EAAI/D,EAAEgE,eAAeH,GACrB,GAAIE,IAAM,KAAM,CACdA,EAAI/D,EAAEiE,cAAc,QACpBF,EAAEG,aAAa,KAAML,GACrBE,EAAEG,aAAa,MAAO,cACtBH,EAAEG,aAAa,OAAQ,YACvBH,EAAEG,aAAa,OAAQP,GACvB3D,EAAEmE,KAAKC,YAAYL,KAIvBjE,EAAMuE,WAAa,SAASX,EAAKzC,GAC/B,IAAI0C,EAAO7D,EAAM8D,YAAcF,EAC/BG,EAAK,UAAYH,EAAII,QAAQ,IAAK,KAClCC,EAAI/D,EAAEgE,eAAeH,GACrB,GAAIE,IAAM,KAAM,CACdA,EAAI/D,EAAEiE,cAAc,UACpBF,EAAEG,aAAa,KAAML,GACrBE,EAAEG,aAAa,MAAOP,GACtBI,EAAEhB,OAAS9B,EACX8C,EAAEV,QAAU,WACVU,EAAEG,aAAa,QAAS,MAE1BlE,EAAEmE,KAAKC,YAAYL,QACd,IAAKA,EAAEO,aAAa,SAAU,CACnC,IACErD,EAASsD,MAAMR,EAAG,IAClB,MAAO1C,GACPC,QAAQC,IAAIF,QAET,CACLC,QAAQC,IAAI,mCAAqCoC,EAAO,mBAI5D7D,EAAM0E,aAAe,SAAUC,EAASC,GACtCC,QAAQhE,WAAW6D,aAAaC,EAASC,IAG3C5E,EAAM8E,YAAc,SAASH,EAASC,GACpCA,EAAc/D,WAAW6D,aAAaC,EAASC,EAAcG,cAG/D/E,EAAM0B,GAAG,SAAU,QAAS,SAASL,GACnC,IAAID,EAAKC,EAAEU,QAAUV,EAAEW,WACvBrB,KAAKE,WAAWmE,UAAUC,IAAI,eAGhC,OAAOjF,EAjJM,CAkJZD,OAAQe,WACV,SAAUoE,GAAG,UAAUC,UAAU,iBAAiBC,SAAS,YAAY,CAACA,OAAOD,QAAQD,SAAS,UAAUG,SAAS,YAAYA,OAAOC,IAAI,CAACD,OAAO,GAAGH,OAAO,CAAC,IAAIK,EAAE,UAAUxF,SAAS,YAAY,CAACwF,EAAExF,YAAY,UAAUyF,SAAS,YAAY,CAACD,EAAEC,YAAY,UAAUC,OAAO,YAAY,CAACF,EAAEE,SAAS,CAACF,EAAE5E,KAAK4E,EAAEG,aAAeR,MAAjU,CAAwU,WAAW,IAAIG,EAAOD,EAAOD,EAAQ,OAAO,SAAU9D,EAAEsE,EAAEC,EAAEC,GAAG,SAAS5B,EAAE6B,EAAEC,GAAG,IAAIH,EAAEE,GAAG,CAAC,IAAIH,EAAEG,GAAG,CAAC,IAAIE,SAASC,SAAS,YAAYA,QAAQ,IAAIF,GAAGC,EAAE,OAAOA,EAAEF,GAAG,GAAG,GAAG9E,EAAE,OAAOA,EAAE8E,GAAG,GAAG,IAAIZ,EAAE,IAAI7B,MAAM,uBAAuByC,EAAE,KAAK,MAAMZ,EAAEgB,KAAK,mBAAmBhB,EAAE,IAAIiB,EAAEP,EAAEE,GAAG,CAACX,QAAQ,IAAIQ,EAAEG,GAAG,GAAGxE,KAAK6E,EAAEhB,QAAQ,SAAS9D,GAAG,IAAIuE,EAAED,EAAEG,GAAG,GAAGzE,GAAG,OAAO4C,EAAE2B,EAAEA,EAAEvE,IAAI8E,EAAEA,EAAEhB,QAAQ9D,EAAEsE,EAAEC,EAAEC,GAAG,OAAOD,EAAEE,GAAGX,QAAQ,IAAInE,SAASiF,SAAS,YAAYA,QAAQ,IAAI,IAAIH,EAAE,EAAEA,EAAED,EAAEO,OAAON,IAAI7B,EAAE4B,EAAEC,IAAI,OAAO7B,EAAvb,CAA2b,CAACoC,EAAE,CAAC,SAASJ,EAAQb,EAAOD;;;;;;;;;;AAU50B,aACA,IAAImB,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,IAAIb,EAAgB,WAEhB,SAASA,EAAac,EAAQ/F,GAC1B,GAAI+F,SAAgB,EAAG,CAAEA,EAAS,GAClC,GAAI/F,SAAkB,EAAG,CAAEA,EAAW,sBACtC,GAAIgG,MAAMC,QAAQjG,GAAW,CACzBA,EAASkG,QAAQ,SAAU1C,GACvB,IAAIyB,EAAac,EAAQvC,UAG5B,UAAWxD,GAAY,SAAU,CAClC,IAAImG,EAAW9F,SAASC,iBAAiBN,GACzCgG,MAAMxF,UAAU0F,QAAQrF,KAAKsF,EAAU,SAAUC,GAC7C,IAAInB,EAAac,EAAQK,SAG5B,CACD,IAAIC,EAAiBpB,EAAaqB,MAAMrB,EAAasB,SAAUR,EAAQ,CACnES,WAAYnG,SAASqD,cAAc,SAEvCuB,EAAazE,UAAUiG,OAAOJ,EAAgBrG,GAC9C,OAAOqG,GAGfpB,EAAazE,UAAUiG,OAAS,SAAUV,EAAQ3B,GAC9C2B,EAAOW,MAAQtC,EACf,GAAI2B,EAAOW,MAAMC,SAASC,MAAM,cAAgBb,EAAOW,MAAM3C,aAAa,UAAY,OAASgC,EAAOW,MAAMG,aAAa,QAAQD,MAAM,mBAAoB,CACvJb,EAAOW,MAAM/C,aAAa,eAAgB,OAC1CoC,EAAOe,UAAUf,GACjBA,EAAOW,MAAMtG,WAAWyD,YAAYkC,EAAOS,YAC3CT,EAAOgB,WAAa,CAChBC,KAAMjB,EAAOkB,MAAMrF,KAAKmE,GACxBmB,QAASjC,EAAazE,UAAU0G,QAAQtF,KAAK,KAAMmE,GACnDoB,MAAOpB,EAAOqB,OAAOxF,KAAKmE,GAC1BsB,MAAOpC,EAAazE,UAAU8G,MAAM1F,KAAK,KAAMmE,EAAQD,EAAUyB,OACjEC,QAASvC,EAAazE,UAAU8G,MAAM1F,KAAK,KAAMmE,EAAQD,EAAU2B,SACnEC,SAAU3B,EAAOe,UAAUlF,KAAKmE,IAEpC,IAAK,IAAIuB,KAASvB,EAAOgB,WAAY,CACjChB,EAAOW,MAAMrF,iBAAiBiG,EAAOvB,EAAOgB,WAAWO,OAInErC,EAAazE,UAAUmH,gBAAkB,SAAU5B,EAAQ6B,GACvD,IAAIC,EAAW,GACf,IAAK,IAAIC,KAAO/B,EAAOgC,iBAAkB,CACrC,IAAIT,EAAQxB,EAAUyB,MACtB,GAAIxB,EAAOgC,iBAAiBD,GAAKE,QAAUC,UAAW,CAClDX,EAAQvB,EAAOgC,iBAAiBD,GAAKE,MAEzC,GAAIV,GAASM,EAAM,CACfC,EAASC,GAAO/B,EAAOgC,iBAAiBD,IAGhD,OAAOD,GAEX5C,EAAazE,UAAU8G,MAAQ,SAAUvB,EAAQ6B,EAAMN,GACnD,IAAIY,EAAkB,SAAUC,GAC5B,GAAKvB,IAAU,MAAQwB,EAAQC,UAAYxC,EAAkByC,KAAS1B,IAAU,OAASwB,EAAQC,UAAYxC,EAAkB0C,GAAK,CAChIJ,EAAYlD,EAAaqB,MAAM,CAC3BkC,IAAK,OACNL,GACH,GAAIA,EAAUM,eAAe,MAAO,CAChC,GAAIN,EAAUO,IAAMpB,EAAMqB,QAAS,CAC/B/B,GAASuB,EAAUK,QAElB,CACD5B,EAAQuB,EAAUK,UAGrB,GAAIL,EAAUM,eAAe,SAAWN,EAAUM,eAAe,MAAO,CACzE,GAAInB,EAAMqB,SAAWR,EAAUS,MAAQtB,EAAMqB,SAAWR,EAAUU,GAAI,CAClEjC,GAASuB,EAAUK,QAElB,CACD5B,EAAQuB,EAAUK,QAKlC,IAAK,IAAIM,KAAQ7D,EAAazE,UAAUmH,gBAAgB5B,EAAQ6B,GAAO,CACnE,IAAIQ,EAAUnD,EAAaqB,MAAM,CAC7B+B,SAAUxC,EAAkByC,KAC7BvC,EAAOgC,iBAAiBe,IAAQlC,EAAQf,EAAkByC,KAAOF,EAAQC,SAC5ED,EAAQW,WAAW7C,QAAQgC,GAC3B,GAAItB,IAAU,KAAM,CAChBwB,EAAQY,SAASnI,KAAKkF,EAAQuB,MAI1CrC,EAAazE,UAAUyI,YAAc,SAAUlD,EAAQrF,GACnD,IAAIwI,EAAsBC,OAAOC,oBAAoBrD,EAAOsD,aAAcC,EAAU,IAAIrH,eAAkBH,EAASiE,EAAOwD,cAAexH,EAAMgE,EAAOyD,OAAQC,EAAc1D,EAAO2D,OAAQC,EAAuBC,mBAAmB7D,EAAO8D,aAAe,IAAMD,mBAAmBH,GACpR,GAAI3H,EAAO8E,MAAM,UAAW,CACxB,GAAI7E,EAAI+H,QAAQ,QAAU,EAAG,CACzB/H,GAAO,IAAM4H,MAEZ,CACD5H,GAAO,IAAM4H,GAGrBL,EAAQ/G,KAAKT,EAAQC,EAAK,MAC1B,IAAK,IAAIxB,EAAI2I,EAAoBvD,OAAS,EAAGpF,GAAK,EAAGA,IAAK,CACtD+I,EAAQS,iBAAiBb,EAAoB3I,GAAIwF,EAAOsD,YAAYH,EAAoB3I,KAE5F+I,EAAQU,mBAAqB,WACzB,GAAIV,EAAQ3H,YAAc,GAAK2H,EAAQ7G,QAAU,IAAK,CAClDsD,EAAOkE,OAAOR,GAAeH,EAAQ5G,SACrChC,EAAS4I,EAAQ5G,YAGzB,OAAO4G,GAEXrE,EAAazE,UAAU0J,KAAO,SAAUnE,EAAQuD,EAASa,GACrD,GAAIA,SAAiB,EAAG,CAAEA,EAAU,KACpC,GAAIpE,EAAOqE,WAAY,CACnB9K,OAAO+K,aAAatE,EAAOqE,YAE/B,GAAID,IAAY,KAAM,CAClBpE,EAAOqE,WAAa9K,OAAOgL,WAAWrF,EAAazE,UAAU0J,KAAKtI,KAAK,KAAMmE,EAAQuD,EAAS,OAAQvD,EAAOwE,WAE5G,CACD,GAAIxE,EAAOyE,QAAS,CAChBzE,EAAOyE,QAAQC,QAEnB1E,EAAOyE,QAAUlB,EACjBvD,EAAOyE,QAAQxH,KAAK+C,EAAO8D,YAAc,IAAM9D,EAAO2D,UAG9DzE,EAAazE,UAAUkK,MAAQ,SAAU3E,EAAQrF,GAC7C,IAAIgC,EAAWqD,EAAO4E,OAAO5E,EAAO2D,QACpC,GAAIhH,IAAauF,UAAW,CACxB,IAAIqB,EAAUrE,EAAazE,UAAUyI,YAAYlD,EAAQrF,GACzDuE,EAAazE,UAAU0J,KAAKnE,EAAQuD,OAEnC,CACD5I,EAASgC,KAGjBuC,EAAazE,UAAU0G,QAAU,SAAUnB,GACvC,IAAK,IAAIuB,KAASvB,EAAOgB,WAAY,CACjChB,EAAOW,MAAMkE,oBAAoBtD,EAAOvB,EAAOgB,WAAWO,IAE9DvB,EAAOS,WAAWpG,WAAWyK,YAAY9E,EAAOS,aAEpD,OAAOvB,EAhJQ,GAkJnBA,EAAaqB,MAAQ,WACjB,IAAIA,EAAQ,GAAIwE,EAChB,IAAK,IAAIvK,EAAI,EAAGA,EAAIwK,UAAUpF,OAAQpF,IAAK,CACvC,IAAKuK,KAAOC,UAAUxK,GAAI,CACtB+F,EAAMwE,GAAOC,UAAUxK,GAAGuK,IAGlC,OAAOxE,GAEXrB,EAAasB,SAAW,CACpBgE,MAAO,IACPS,aAAc,iBACdC,UAAW,CACPC,SAAU,SAAUC,GAChB,OAAO,IAAIC,OAAOD,EAAO,OAE7BE,UAAW,SAAUF,GACjB,MAAO,WAAaA,EAAQ,cAGpC9B,YAAa,CACTiC,eAAgB,qCAEpBC,MAAO,EACPC,SAAU,EACVC,WAAY,MACZC,SAAU,IACVC,IAAK,KACL5D,iBAAkB,CACd6D,MAAS,CACL7C,WAAY,CAAC,CACLL,GAAI,GACJF,IAAK,QAEbQ,SAAU,SAAU1B,GAChB,GAAIpH,KAAKsG,WAAWK,aAAa,SAASiD,QAAQ,UAAY,EAAG,CAC7D,IAAI+B,EAAW3L,KAAKsG,WAAWsF,cAAc,aAC7C,GAAID,IAAa,KAAM,CACnBvE,EAAMyE,iBACN7L,KAAK8L,QAAQH,GACb3L,KAAKsG,WAAW7C,aAAa,QAAS,mBAIlD0E,SAAUxC,EAAkByC,IAC5BN,MAAOlC,EAAU2B,SAErBwE,kBAAqB,CACjBlD,WAAY,CAAC,CACLL,GAAI,GACJF,IAAK,OAET,CACIE,GAAI,GACJF,IAAK,QAEbQ,SAAU,SAAU1B,GAChBA,EAAMyE,kBAEV1D,SAAUxC,EAAkB0C,GAC5BP,MAAOlC,EAAU2B,SAErByE,gBAAmB,CACfnD,WAAY,CAAC,CACLL,GAAI,GACJF,IAAK,OAET,CACIE,GAAI,GACJF,IAAK,QAEbQ,SAAU,SAAU1B,GAChBA,EAAMyE,iBACN,IAAII,EAAQjM,KAAKsG,WAAWsF,cAAc,+BAAgCM,EAAOlM,KAAKsG,WAAWsF,cAAc,8BAA+BO,EAASnM,KAAKsG,WAAWsF,cAAc,aACrL,GAAIO,EAAQ,CACR,IAAIC,EAAetG,MAAMxF,UAAUsJ,QAAQjJ,KAAKwL,EAAOjM,WAAWmM,SAAUF,GAAS3E,EAAW4E,GAAgBhF,EAAMqB,QAAU,IAAK6D,EAAWtM,KAAKsG,WAAWiG,qBAAqB,MAAM9G,OAC3L,GAAI+B,EAAW,EAAG,CACdA,EAAW8E,EAAW,OAErB,GAAI9E,GAAY8E,EAAU,CAC3B9E,EAAW,EAEf2E,EAAO9H,UAAUmI,OAAO,UACxBL,EAAO5K,cAAc8K,SAASI,KAAKjF,GAAUnD,UAAUC,IAAI,eAE1D,GAAI4H,GAAQ9E,EAAMqB,SAAW,GAAI,CAClCyD,EAAK7H,UAAUC,IAAI,eAElB,GAAI2H,EAAO,CACZA,EAAM5H,UAAUC,IAAI,YAG5B6D,SAAUxC,EAAkB0C,GAC5BP,MAAOlC,EAAUyB,OAErBqF,SAAY,CACR7D,WAAY,CAAC,CACLL,GAAI,GACJF,IAAK,MACN,CACCI,KAAM,GACNC,GAAI,GACJL,IAAK,OAEbQ,SAAU,WACN,IAAI6D,EAAW3M,KAAKwG,MAAMG,aAAa,+BAAgCiG,EAAe5M,KAAKwJ,OAC3F,GAAIoD,IAAiB,IAAMA,EAAanH,QAAUzF,KAAK6M,YAAa,CAChE,IAAKF,GAAYC,GAAgBD,EAAU,CACvC3M,KAAKsG,WAAW7C,aAAa,QAAS,qBAE1CsB,EAAazE,UAAUkK,MAAMxK,KAAM,SAAUwC,GACzCxC,KAAK8M,QAAQ9M,KAAK+M,MAAMvK,IACxBxC,KAAKgN,SACPtL,KAAK1B,SAGfmI,SAAUxC,EAAkByC,IAC5BN,MAAOlC,EAAUyB,QAGzBf,WAAY,KACZgE,QAAS,KACT9D,MAAO,KAIPyG,cAAe,WACX,IAAIC,EAAe,GACnB,GAAIlN,KAAKwG,MAAM3C,aAAa,mCAAoC,CAC5DqJ,EAAelN,KAAKwG,MAAMG,aAAa,wCAEtC,GAAI3G,KAAK8K,eAAiB,MAAO,CAClCoC,EAAelN,KAAK8K,iBAEnB,CACDoC,EAAe,GAEnB,OAAOA,GAKXC,OAAQ,WACJ,IAAIC,EAAQpN,KAAKwG,MAAMG,aAAa,2BACpC,GAAI0G,MAAMD,IAAUA,IAAU,KAAM,CAChC,OAAOpN,KAAKqL,MAEhB,OAAOiC,SAASF,EAAO,KAK3BP,UAAW,WACP,IAAIU,EAAWvN,KAAKwG,MAAMG,aAAa,8BACvC,GAAI0G,MAAME,IAAaA,IAAa,KAAM,CACtC,OAAOvN,KAAKsL,SAEhB,OAAOgC,SAASC,EAAU,KAK9BC,WAAY,SAAUC,GAClB,OAAOA,EAAMpK,QAAQrD,KAAK+K,UAAUC,SAAShL,KAAKwJ,QAASxJ,KAAK+K,UAAUI,YAK9E9B,YAAa,WACT,GAAIrJ,KAAKwG,MAAM3C,aAAa,4BAA6B,CACrD,OAAO7D,KAAKwG,MAAMG,aAAa,4BAEnC,OAAO3G,KAAKuL,YAKhB5B,UAAW,WACP,GAAI3J,KAAKwG,MAAM3C,aAAa,gCAAiC,CACzD,OAAO7D,KAAKwG,MAAMG,aAAa,gCAEnC,OAAO3G,KAAKwL,UAKhBlC,KAAM,WACF,GAAItJ,KAAKwG,MAAM3C,aAAa,qBAAsB,CAC9C,OAAO7D,KAAKwG,MAAMG,aAAa,qBAEnC,OAAO3G,KAAKyL,KAKhB1E,MAAO,SAAU2G,GACb,GAAIA,IAAQ,KAAM,CACd1N,KAAKsG,WAAW7C,aAAa,QAAS,gBACtCzD,KAAKwG,MAAM/C,aAAa,8BAA+BzD,KAAKwG,MAAMyE,WAEjE,CACD,IAAIpF,EAAS7F,KACboK,WAAW,WACPvE,EAAOkB,MAAM,OACd,OAMX0D,OAAQ,SAAUQ,GACd,OAAOjL,KAAK+J,OAAOkB,IAKvB/D,OAAQ,WACJ,IAAIyF,EAAW3M,KAAKwG,MAAMG,aAAa,+BACvC,KAAMgG,GAAY3M,KAAKwG,MAAMyE,OAAS0B,IAAa3M,KAAK6M,aAAe7M,KAAKwG,MAAMyE,MAAMxF,OAAQ,CAC5FzF,KAAKsG,WAAW7C,aAAa,QAAS,uBAM9CuJ,MAAO,WACH,IAAInH,EAAS7F,KACb8F,MAAMxF,UAAU0F,QAAQrF,KAAKX,KAAKsG,WAAWiG,qBAAqB,MAAO,SAAUoB,GAC/E,GAAIA,EAAGhH,aAAa,UAAY,SAAU,CACxCgH,EAAGC,QAAU,SAAUxG,GACjBvB,EAAOiG,QAAQ6B,IAEnBA,EAAGE,aAAe,WACd,IAAI1B,EAAStG,EAAOS,WAAWsF,cAAc,aAC7C,GAAIO,IAAWwB,EAAI,CACf,GAAIxB,IAAW,KAAM,CACjBA,EAAO9H,UAAUmI,OAAO,UAE5BmB,EAAGtJ,UAAUC,IAAI,gBASrCsC,UAAW,WACP5G,KAAKsG,WAAW7C,aAAa,QAAS,gBACtCzD,KAAKsG,WAAW7C,aAAa,QAAS,QAAUzD,KAAKwG,MAAMsH,UAAY9N,KAAKwG,MAAMuH,cAAgB,WAAa/N,KAAKwG,MAAMwH,WAAa,YAAchO,KAAKwG,MAAMyH,YAAc,QAKlLnB,QAAS,SAAUtK,GACf,IAAI0L,EACJ,UAAW1L,GAAY,SAAU,CAC7B0L,EAAKlO,KAAKmO,WAAW3L,OAEpB,CACD0L,EAAKlO,KAAKoO,qBAAqB5L,GAEnC,GAAIxC,KAAKsG,WAAW+H,gBAAiB,CACjCrO,KAAKsG,WAAWqE,YAAY3K,KAAKsG,WAAWgI,WAAW,IAE3DtO,KAAKsG,WAAW3C,YAAYuK,IAKhCE,qBAAsB,SAAU5L,GAC5B,IAAI0L,EAAK/N,SAASqD,cAAc,MAAOmK,EAAKxN,SAASqD,cAAc,MAAO4J,EAAQpN,KAAKmN,SAEvF,GAAIC,EAAQ,EAAG,CACX5K,EAAWA,EAAS+L,eAEnB,GAAInB,IAAU,EAAG,CAClBA,EAAQ5K,EAASiD,OAErB,IAAK,IAAIgH,EAAO,EAAGA,EAAO+B,KAAKC,IAAID,KAAKE,IAAItB,GAAQ5K,EAASiD,QAASgH,IAAQ,CAC1EkB,EAAGgB,UAAYnM,EAASiK,GAAMmC,MAC9BjB,EAAGlK,aAAa,0BAA2BjB,EAASiK,GAAMoC,OAC1DX,EAAGvK,YAAYgK,GACfA,EAAKxN,SAASqD,cAAc,MAEhC,OAAO0K,GAKXC,WAAY,SAAU3L,GAClB,IAAI0L,EAAK/N,SAASqD,cAAc,MAAOmK,EAAKxN,SAASqD,cAAc,MACnE,GAAIhB,EAASiD,OAAS,EAAG,CACrBzF,KAAKsG,WAAWqI,UAAYnM,MAE3B,CACD,IAAI0K,EAAelN,KAAKiN,gBACxB,GAAIC,IAAiB,GAAI,CACrBS,EAAGgB,UAAYzB,EACfS,EAAGlK,aAAa,QAAS,UACzByK,EAAGvK,YAAYgK,IAGvB,OAAOO,GAKXnB,MAAO,SAAUvK,GACb,IACI,IAAIsM,EAAiB,GAErB,IAAIC,EAAOC,KAAKC,MAAMzM,GACtB,GAAIyG,OAAOiG,KAAKH,GAAMtJ,SAAW,EAAG,CAChC,MAAO,GAEX,GAAIK,MAAMC,QAAQgJ,GAAO,CACrB,IAAK,IAAI1O,EAAI,EAAGA,EAAI4I,OAAOiG,KAAKH,GAAMtJ,OAAQpF,IAAK,CAC/CyO,EAAeA,EAAerJ,QAAU,CAAEoJ,MAASE,EAAK1O,GAAIuO,MAAS5O,KAAKwN,WAAWuB,EAAK1O,UAG7F,CACD,IAAK,IAAI4K,KAAS8D,EAAM,CACpBD,EAAeK,KAAK,CAChBN,MAAS5D,EACT2D,MAAS5O,KAAKwN,WAAWuB,EAAK9D,OAI1C,OAAO6D,EAEX,MAAO1H,GAEH,OAAO5E,IAMfgH,KAAM,WACF,OAAOxJ,KAAKwG,MAAMyE,OAKtBa,QAAS,SAAUW,GACtB5L,QAAQC,IAAI,kBACL,GAAI2L,EAAK5I,aAAa,2BAA4B,CAC9C7D,KAAKwG,MAAMyE,MAAQwB,EAAK9F,aAAa,+BAEpC,CACD3G,KAAKwG,MAAMyE,MAAQwB,EAAKkC,UAE5B3O,KAAKwG,MAAM/C,aAAa,8BAA+BzD,KAAKwG,MAAMyE,QAEtEf,WAAY,KACZH,OAAQ,GACRlD,WAAY,IAEhBpC,EAAOD,QAAUO,GAEf,KAAK,GAAG,CAAC,GAthB0W,CAshBtW;;;;;;;;;;;CAYf,SAAUzF,EAAGC,GACX,aAEA,SAAS6P,EAAYC,EAAoBC,EAAkBC,EAAcC,GACvExP,KAAKqP,mBAAqBA,EAC1BrP,KAAKsP,iBAAmBA,EACxBtP,KAAKuP,aAAeA,EACpBvP,KAAKyP,OAAS,GACdzP,KAAKwP,UAAYA,EACjBxP,KAAK0P,cAAgB,KAcvBN,EAAY9O,UAAUqP,WAAa,SAASC,EAAQC,GAClD,IAAI3K,EAAI,EACR4K,EAEAD,GAASD,EAAOnK,OAASzF,KAAKyP,OAC9B,IAAK,IAAIpP,EAAI,EAAGA,EAAIuP,EAAOnK,OAAQpF,IAAK,CACtCyP,EAAMF,EAAOvP,GACb,GAAKyP,EAAIC,aAAe,GAAOD,EAAIE,cAAgB,EAAI,CACrD9K,GAAK4K,EAAIC,aAAeD,EAAIE,kBACvB,CAEL9K,GAAK,GAIT,OAAO2K,EAAQ3K,GAGjBkK,EAAY9O,UAAU2P,SAAW,SAASL,EAAQM,GAChD,IAAIJ,EAAKK,EAAUC,EAAeR,EAAOnK,OACzC,IAAK,IAAIpF,EAAI,EAAGA,EAAI+P,EAAc/P,IAAK,CACrCyP,EAAMF,EAAOvP,GACb,GAAKyP,EAAIC,aAAe,GAAOD,EAAIE,cAAgB,EAAI,CACrDG,EAAWD,EAASJ,EAAIC,aAAeD,EAAIE,kBACtC,CAELG,EAAWD,EAEbJ,EAAIO,MAAMR,MAAQM,EAAW,KAC7BL,EAAIO,MAAMH,OAASA,EAAS,KAC5BJ,EAAIO,MAAMC,WAAa,MACvBR,EAAIO,MAAME,UAAY,MACtBT,EAAIO,MAAMG,YAAcxQ,KAAKyP,OAAS,EAAI,KAC1CK,EAAIO,MAAMI,aAAezQ,KAAKyP,OAAS,EAAI,OAI/CL,EAAY9O,UAAUoQ,WAAa,SAASC,GAC1C,IAAIC,EAAOC,EACXC,EAAiBvR,EAAEqM,cAAc5L,KAAKqP,oBAAoBpB,YAE1D3O,EAAG,MAAOqR,EAASlL,OAAS,EAAG,CAC7B,IAAK,IAAIpF,EAAI,EAAGA,GAAKsQ,EAASlL,OAAQpF,IAAK,CACzCuQ,EAAQD,EAASC,MAAM,EAAGvQ,GAC1BwQ,EAAI7Q,KAAK2P,WAAWiB,EAAOE,GAC3B,GAAID,EAAI7Q,KAAKwP,UAAW,CACtBxP,KAAKiQ,SAASW,EAAOC,GACrBF,EAAWA,EAASC,MAAMvQ,GAC1B,SAASf,GAGbU,KAAKiQ,SAASW,EAAOpC,KAAKC,IAAIzO,KAAKwP,UAAWqB,IAC9C,QAIJzB,EAAY9O,UAAUyQ,MAAQ,SAASzB,GACrC,IAAI0B,EAAuBzR,EAAEa,iBAAiBJ,KAAKsP,kBACnD2B,EAAiBD,EAAqBvL,OACtCyL,EAAW,KACXC,EAAU,KACVR,EAAW,GACX,IAAK,IAAItQ,EAAI,EAAGA,EAAI4Q,EAAgB5Q,IAAK,CACvC8Q,EAAUH,EAAqB3Q,GAC/B,GAAI8Q,EAAQC,yBAA2BF,GAAYP,EAASlL,OAAS,EAAG,CAItEzF,KAAK0Q,WAAWC,GAEhBA,EAAW,GAGbA,EAASxB,KAAKgC,EAAQvF,cAAc5L,KAAKuP,eAEzC2B,EAAWC,EAGb,GAAIR,EAASlL,OAAS,EAAG,CACvBzF,KAAK0Q,WAAWC,KAIpBvB,EAAY9O,UAAU+Q,MAAQ,WAC5B,IAAIhR,EAAGyP,EAAKa,EAAUW,EACtBtQ,EAAMhB,KACNuR,EAAgBhS,EAAEa,iBAAiBJ,KAAKsP,kBACxC2B,EAAiBM,EAAc9L,OAE/B,SAASsL,EAAMrQ,GACbM,EAAI+P,QAGN,SAASS,EAAc9Q,GACrB,GAAIM,EAAI0O,cAAe,CACrB1O,EAAI0O,cAAgB,MACpBtF,WAAW,WACTpJ,EAAI+P,QACJ/P,EAAI0O,cAAgB,MACnB,MAIPpQ,EAAE6B,iBAAiB,SAAUqQ,GAC7BlS,EAAE6B,iBAAiB,WAAY4P,GAE/B,IAAK1Q,EAAI,EAAGA,EAAI4Q,EAAgB5Q,IAAK,CACnCyP,EAAMyB,EAAclR,GAAGuL,cAAc5L,KAAKuP,cAC1C,UAAWO,IAAQ,YAAa,CAC9BA,EAAI3O,iBAAiB,OAAQqQ,GAC7B1B,EAAI3O,iBAAiB,QAASqQ,MAKpClS,EAAED,MAAM+P,YAAcA,GA1IxB,CA4IGhQ,OAAQe,UACVd,MAAMmC,MAAM,WAEXnC,MAAM0B,GAAG,UAAW,QAAS,WAC3B0Q,EAAgBzR,KAAhByR,CAAsB,QAGxBpS,MAAM0B,GAAG,YAAa,QAAS,SAASL,GACtC,IAAID,EAAKC,EAAEU,OACX,MAAOX,IAAOsH,UAAW,CACvB,GAAItH,EAAG4D,UAAUqN,SAAS,UAAW,CACnC,GAAIjR,EAAGkG,aAAa,uBAAyB,KAAM,CACjD8K,EAAgBhR,EAAhBgR,CAAoB,MAEtB,MAEFhR,EAAKA,EAAGP,aAET,MAEH,IAAIyR,EAAU,CACZC,GAAI,CACFhK,IAAK,SACLiK,IAAKC,EACLC,IAAK,sCACLC,IAAK,WAEPC,GAAI,CACFrK,IAAK,IACLiK,IAAKK,EACLH,IAAK,4BACLC,IAAK,WAEPG,GAAI,CACFvK,IAAK,IACLiK,IAAKO,GAAYhT,OAAOiT,aACxBN,IAAK,qBACLC,IAAK,cAEPM,GAAI,CACF1K,IAAK,IACLiK,IAAKO,EAAWhT,OAAOiT,aACvBN,IAAK,uBACLC,IAAK,cAEPO,GAAI,CACF3K,IAAK,IACLiK,IAAKO,GAAYhT,OAAOiT,YAAc,GACtCN,IAAK,wBACLC,IAAK,cAEPQ,GAAI,CACF5K,IAAK,IACLiK,IAAKO,EAAWhT,OAAOiT,YAAc,GACrCN,IAAK,0BACLC,IAAK,cAEPS,GAAI,CACF7K,IAAK,IACLiK,IAAKa,GAAcvS,SAASuD,KAAKiP,aAAc,OAC/CZ,IAAK,gCACLC,IAAK,cAEPY,GAAI,CACFhL,IAAK,IACLiK,IAAKa,EAAavS,SAASuD,KAAKiP,aAAc,UAC9CZ,IAAK,mCACLC,IAAK,cAEPa,GAAI,CACFjL,IAAK,IACLiK,IAAKJ,EAAgB,MACrBM,IAAK,gCACLC,IAAK,WAEPc,GAAI,CACFlL,IAAK,IACLiK,IAAKJ,EAAgB,QACrBM,IAAK,4BACLC,IAAK,WAEPe,GAAI,CACFnL,IAAK,IACLiK,IAAKmB,EAAgB,GACrBjB,IAAK,sBACLC,IAAK,WAEPiB,GAAI,CACFrL,IAAK,IACLiK,IAAKmB,EAAgB,GACrBjB,IAAK,kBACLC,IAAK,WAEPkB,GAAI,CACFtL,IAAK,IACLiK,IAAKsB,EAAW,OAChBpB,IAAK,qBACLC,IAAK,WAEPoB,GAAI,CACFxL,IAAK,IACLiK,IAAKsB,EAAW,MAChBpB,IAAK,+BACLC,IAAK,WAEPqB,GAAI,CACFzL,IAAK,IACLiK,IAAKyB,EACLvB,IAAK,8BACLC,IAAK,WAEPuB,GAAI,CACF3L,IAAK,IACLiK,IAAK2B,EACLzB,IAAK,qBACLC,IAAK,UAIT3S,MAAM0B,GAAGZ,SAAU,UAAW,SAASO,GAErC,GAAIiR,EAAQpJ,eAAe7H,EAAE+H,WAAa/H,EAAE+S,UAAY/S,EAAEgT,SAAWhT,EAAEiT,WAAajT,EAAEkT,QAAS,CAC7F,IAAIC,EAAUnT,EAAEU,OAAOyS,QAAQC,cAC/B,GAAIpT,EAAE+H,UAAY,GAAI,CACpB,GAAIoL,IAAY,SAAWA,IAAY,UAAYA,IAAY,WAAY,CACzElC,EAAQjR,EAAE+H,SAASoJ,WAEhB,CACL,GAAInR,EAAEU,SAAWjB,SAASuD,MAAQmQ,IAAY,KAAOA,IAAY,SAAU,CACzEnT,EAAEmL,iBACF8F,EAAQjR,EAAE+H,SAASoJ,WAM3B,SAASJ,EAAgBsC,GACvB,OAAO,SAASC,GACd,IAAI7C,EAAUhR,SAASyL,cAAc,8BACrCqI,EAAiBF,EACjB,GAAI5C,IAAY,KAAM,CAEpBA,EAAUhR,SAASyL,cAAc,WACjC,GAAIuF,IAAY,KAAM,CAEpB,OAGF,GAAI4C,IAAU,QAAUA,IAAU,KAAM,CACtCE,EAAiB9C,GAIrB,IAAI+C,EAAMC,EAAUhU,SAASC,iBAAiB,WAE9C,UAAW6T,IAAmB,SAAU,CACtCC,EAAOD,MACF,CACL,OAAQA,GACN,IAAK,UACL,IAAIG,EAAMjU,SAASkU,gBAAgBC,WAAanU,SAASuD,KAAK4Q,UAC9D,IAAIC,EAAMH,EAAMjU,SAASkU,gBAAgBG,aAEzC,IAAK,IAAInU,EAAI,EAAGA,EAAI8T,EAAQ1O,OAAQpF,IAAK,CACvC6T,EAAOC,EAAQ9T,GACf,IAAIoU,EAAOP,EAAKpG,UAChB,IAAI4G,EAAOD,EAAOP,EAAKM,aAEvB,GAAKE,GAAQH,GAASE,EAAOL,EAAM,CACjC,OAGJ,MACA,IAAK,OACLF,EAAO/C,EAAQwD,mBACf,GAAIT,IAAS,KAAM,CACjBA,EAAOC,EAAQ,GAEjB,MACA,IAAK,KACLD,EAAO/C,EAAQC,uBACf,GAAI8C,IAAS,KAAM,CACjBA,EAAOC,EAAQA,EAAQ1O,OAAS,GAElC,MACA,IAAK,SACLyO,EAAOC,EAAQA,EAAQ1O,OAAS,GAChC,MACA,IAAK,MAEL,QACAyO,EAAOC,EAAQ,IAInB,GAAID,EAAM,CACR/C,EAAQyD,gBAAgB,qBACxBV,EAAKzQ,aAAa,oBAAqB,QACvC,IAAIoR,EAAOX,EAAKtI,cAAc,SAAWsI,EAAKtI,cAAc,KAC5D,GAAIiJ,IAAS,KAAM,CACjBA,EAAK5N,QAEP,IAAK+M,EAAU,CACbc,OAMR,SAASxB,IACPnT,SAAS4U,SAASC,OAAO,MAG3B,SAASlD,IACP,GAAI3R,SAAS8U,cAAe,CAC1B9U,SAAS8U,cAAcnO,QAI3B,SAASkM,EAAgBkC,GACvB,OAAO,WACL,IAAIC,EAAUC,EAAE,wCAChB,GAAID,EAAQ1P,SAAW,EAAG,CACxB5E,QAAQC,IAAI,oDACZ,OAEF,GAAIoU,GAAO,GAAKA,EAAMC,EAAQ1P,OAAQ,CACpC0P,EAAQD,GAAKG,YACR,CACLxU,QAAQC,IAAI,yCAKlB,SAASgU,IACP,IAAIQ,EAAMnV,SAASyL,cAAc,8BACjC,GAAI0J,IAAQ,KAAM,CAChB,OAEF,IAAIC,EAAOpV,SAASkU,gBAAgBC,WAAanU,SAASuD,KAAK4Q,UAC/DkB,EAAUrV,SAASkU,gBAAgBG,aACnCC,EAAOa,EAAIxH,UACX4G,EAAOD,EAAOa,EAAId,aAClBiB,EAAS,IAET,GAAKH,EAAIlE,yBAA2B,MAAUsD,EAAOc,EAAU,CAG7DpW,OAAOsW,OAAOtW,OAAOuW,QAAS,GAC9B,OAEF,GAAIJ,EAAQd,EAAOgB,EAAS,CAC1BrW,OAAOsW,OAAOtW,OAAOuW,QAASlB,EAAOgB,OAChC,CACL,IAAIG,EAAOL,EAAOC,EAClB,GAAII,EAAQlB,EAAOe,EAAS,CAC1BrW,OAAOsW,OAAOtW,OAAOuW,QAASjB,EAAOc,EAAUC,KAKrD,SAASrD,EAAWyD,GAClB,OAAO,WACLzW,OAAO0W,SAAS,EAAGD,GACnBpE,EAAgB,UAAhBA,IAIJ,SAASiB,EAAalL,EAAUuO,GAC9B,OAAO,WACL3W,OAAO4W,SAAS,EAAGxO,GACnBiK,EAAgBsE,EAAhBtE,IAIJ,SAASS,IACP9S,OAAO4W,SAAS,EAAG,GACnB7V,SAASyL,cAAc,MAAM3E,QAG/B,SAASkM,EAAW8C,GAClB,OAAO,WACL,IAAIpB,EAAO1U,SAASyL,cAAc,mCAClC,GAAIiJ,IAAS,KAAM,CACjB,IAAIhT,EAAMgT,EAAKlO,aAAa,QAC5B,GAAIsP,EAAQ,CACV7W,OAAOiD,KAAKR,OACP,CACLzC,OAAO2V,SAASmB,KAAOrU,KAM/B,SAASsU,EAAgBC,GACvB,IAAIC,EAAa,GAEjB,IAAK,IAAIC,KAAK3E,EAAS,CACrB,IAAI/J,EAAM+J,EAAQ2E,GAClBD,EAAWzO,EAAIoK,KAAOqE,EAAWzO,EAAIoK,MAAQ,GAC7CqE,EAAWzO,EAAIoK,KAAK7C,KAAKvH,GAG3B,IAAI2O,EAAStN,OAAOiG,KAAKmH,GAAYG,KAAK,SAASnR,EAAGoR,GACpD,OAAOJ,EAAWI,GAAGhR,OAAS4Q,EAAWhR,GAAGI,SAG9C,GAAI8Q,EAAO9Q,SAAW,EAAG,CACvB,OAGH,IAAIiR,EAAO,mEACVA,GAAQ,uDACVA,GAAQ,UAEN,IAAK,IAAIrW,EAAI,EAAGA,EAAIkW,EAAO9Q,OAAQpF,IAAK,CACtC,IAAI2R,EAAMqE,EAAWE,EAAOlW,IAE5B,IAAIsW,EAAetW,IAAOkW,EAAO9Q,OAAS,EAC1C,IAAIwG,EAAQ5L,EAAI,IAAM,EAEtB,GAAI4L,EAAO,CACTyK,GAAQ,OAEVA,GAAQ,OAERA,GAAQ,OAAS1E,EAAI,GAAGA,IAAM,QAC9B0E,GAAQ,6BAER,IAAK,IAAIE,KAAM5E,EAAK,CAClB0E,GAAQ,YAAc1E,EAAI4E,GAAIhP,IAAM,UAAYoK,EAAI4E,GAAI7E,IAAM,QAGhE2E,GAAQ,QACRA,GAAQ,QAER,IAAKzK,GAAS0K,EAAc,CAC1BD,GAAQ,SAIdA,GAAQ,WAENN,EAAWzH,UAAY+H,EAGzB,SAASlD,IACR,IAAIqD,EAAY1W,SAASyL,cAAc,qBACvC/K,QAAQC,IAAI+V,GACb,GAAIA,IAAc9O,WAAa8O,IAAc,KAAM,CAElDA,EAAY1W,SAASqD,cAAc,OAChCqT,EAAUzT,GAAK,mBACjByT,EAAUC,UAAU,eACpBD,EAAUxG,MAAM,aACjB8F,EAAgBU,GAChB,IAAInT,EAAOvD,SAASoM,qBAAqB,QAAQ,GACjD7I,EAAKC,YAAYkT,OACX,CAENA,EAAUxS,UAAU0S,OAAO,aAC3B,YAuBH,SAAWzX,EAAGC,EAAGF,GACf,aAEAA,EAAMmC,MAAM,WACVnC,EAAM0B,GAAG,0BAA2B,QAAS,SAASqG,GAEpDpH,KAAKqE,UAAUmI,OAAO,0BAGtB,IAAIwK,EAAe,gDACnB,IAAIC,EAAcD,EAAe,2BACjC,IAAIE,EAAY,cAEhB,IAAIC,EAASnX,KAAKoX,QAAQC,MAC1B,IAAIC,EAAWtX,KAAKoX,QAAQG,QAC5B,IAAIC,EAAejY,EAAEqM,cAAc,IAAM5L,KAAKoX,QAAQK,aACtD,IAAIC,EAAwBnY,EAAEqM,cAAc,IAAM5L,KAAKoX,QAAQO,qBAG/D,IAAIC,EAAkB,CAAE,YAAa,eAAgB,mBAAoB,gBAAiB,eAE1F,GAAGT,GAAUG,GAAYE,EAAc,CACrC,IAAIK,EAAQ,KACZ,OAAOP,GACL,IAAK,OACLO,EAAQZ,EAAc,QAAUE,EAAS,KAAOD,EAChD,MACA,IAAK,MACLW,EAAQZ,EAAc,OAASE,EAAS,KAAOD,EAC/C,MACA,IAAK,WACLW,EAAQZ,EAAc,YAAcE,EAAS,KAAOD,EACpD,MACA,QACA,MAEF,GAAGW,EAAO,CAERxY,EAAMsC,KAAM,MAAOkW,GAAQ1V,KAAK,SAASuU,EAAMoB,GAC7CpB,EAAO1H,KAAKC,MAAMyH,GAClB,GAAGA,GAAQA,EAAKzQ,UAAYyQ,EAAKzQ,SAAS,GAAI,CAC5C,IAAI/B,EAAUwS,EAAKzQ,SAAS,GAC5B,IAAI8R,EAAU,GACd,IAAK,IAAIC,KAAO9T,EAAQ+T,KAAM,CAC5B,GAAG/T,EAAQ+T,KAAKrP,OAAS,MAAQgP,EAAgBhO,QAAQoO,KAAS,EAAG,CACnED,GAAW,WAAaC,EAAM,YAC9B,OAAOA,GACL,IAAK,QACL,IAAK,MACLD,GAAW,gBAAmB7T,EAAQ+T,KAAKD,GAAK3U,QAAQ,KAAK,IAAM,KAAQa,EAAQ+T,KAAKD,GAAO,OAC/F,MACA,IAAK,QACLD,GAAW,mBAAsB7T,EAAQ+T,KAAKD,GAAO,KAAQ9T,EAAQ+T,KAAKD,GAAO,OACjF,MACA,IAAK,UACL,IAAK,MACLD,GAAW,YAAe7T,EAAQ+T,KAAKD,GAAO,KAAQ9T,EAAQ+T,KAAKD,GAAO,OAC1E,MACA,IAAK,WACLD,GAAW,0CAA6C7T,EAAQ+T,KAAKD,GAAO,KAAQ9T,EAAQ+T,KAAKD,GAAO,OACxG,MACA,IAAK,YACL,GAAG9T,EAAQ+T,KAAKD,GAAKpO,QAAQ,OAAS,EAAG,CACvCmO,GAAW,oBAAuB7T,EAAQ+T,KAAKD,GAAKE,UAAU,EAAEhU,EAAQ+T,KAAKD,GAAKpO,QAAQ,MAAQ,uBAAyB1F,EAAQ+T,KAAKD,GAAKE,UAAUhU,EAAQ+T,KAAKD,GAAKpO,QAAQ,KAAK,GAAK,KAAQ1F,EAAQ+T,KAAKD,GAAO,OACvN,MAGF,QAEAD,GAAW7T,EAAQ+T,KAAKD,GACxB,MAEFD,GAAW,cAGtBL,EAAsBxX,WAAWyK,YAAY+M,GACtCF,EAAanT,UAAUmI,OAAO,aAC9BgL,EAAa5L,cAAc,SAAS+C,UAAYoJ,KAGnD3V,MAAM,WACLsV,EAAsBrT,UAAUmI,OAAO,aACvCkL,EAAsB/I,UAAY,0BAMxCvH,EAAMyE,mBAGRxM,EAAM0B,GAAG,kBAAmB,QAAS,SAASqG,GAE5CpH,KAAKqE,UAAUmI,OAAO,kBAGtB,IAAI2L,EAAiBnY,KAAKoX,QAAQgB,cAClC,IAAIC,EAAUC,WAAWtY,KAAKoX,QAAQmB,QACtC,IAAIC,EAAUF,WAAWtY,KAAKoX,QAAQqB,QACtC,IAAIC,EAAWJ,WAAWtY,KAAKoX,QAAQuB,SACvC,IAAIC,EAAkB5J,KAAKC,MAAMjP,KAAKoX,QAAQyB,gBAC9C,IAAIC,EAAc9J,KAAKC,MAAMjP,KAAKoX,QAAQ2B,YAE1C1Z,EAAM2D,UAAU,uBAChB3D,EAAMuE,WAAW,qBAAsB,WACrC,IAAIoV,EAAa,KACjB,GAAGJ,EAAiB,CAClB,IAAIK,EAAYC,EAAEC,OAAOP,EAAgB,GAAIA,EAAgB,IAC7D,IAAIQ,EAAYF,EAAEC,OAAOP,EAAgB,GAAIA,EAAgB,IAC7DI,EAAaE,EAAEG,aAAaJ,EAAWG,GAIzC,IAAIE,EAAMJ,EAAEI,IAAInB,GAEhB,IAAIoB,EAAa,qDACjB,IAAIC,EAAgB,gFACpB,IAAIC,EAAY,IAAIP,EAAEQ,UAAUH,EAAc,CAACI,QAAS,EAAGC,QAAS,GAAIC,YAAaL,IACrF,IAAIM,EAAgB,sDACpB,IAAIC,EAAqB,uGACzB,IAAIC,EAAe,IAAId,EAAEQ,UAAUI,EAAiB,CAACH,QAAS,EAAGC,QAAS,GAAIC,YAAaE,IAE3F,GAAGf,EAAY,CAGb5O,WAAW,WACTkP,EAAIW,UAAUjB,EAAY,CACxBY,QAAQ,MAET,QACE,GAAIvB,GAAWG,EAAS,CAC7B,GAAGE,EAAU,CACXY,EAAIY,QAAQ,IAAIhB,EAAEC,OAAOX,EAASH,GAASK,OACtC,CACLY,EAAIY,QAAQ,IAAIhB,EAAEC,OAAOX,EAASH,GAAS,IAI/CiB,EAAIa,SAASV,GAEb,IAAIW,EAAa,CACfC,aAAcZ,GAIhBP,EAAEoB,QAAQC,OAAOH,GAAYI,MAAMlB,GAEnC,GAAGR,EAAa,CACdI,EAAEuB,QAAQ3B,GAAa0B,MAAMlB,MAOjClS,EAAMyE,sBA3JZ,CA8JGzM,OAAQe,SAAUf,OAAOC,QAiB5B,SAAUC,EAAGC,EAAGF,GACd,aAEAA,EAAMmC,MAAM,WACVnC,EAAMqb,uBAAyB,IAAIrb,EAAM+P,YAAY,QAAS,uBAAwB,sBAAuB,KAC7G/P,EAAMqb,uBAAuBrJ,QAE7BhS,EAAM0B,GAAG,gBAAiB,QAAS,SAASqG,GAC1C,IAAIuT,EAAoB3a,KAAK2G,aAAa,2BAC1C,IAAIiU,EAAuB5a,KAAK2G,aAAa,+BAC7C,IAAIvF,EAASpB,KAAK2G,aAAa,eAC/B,IAAIkU,EAAgBtb,EAAEqM,cAAcxK,GACpC,IAAIsV,EAAO1W,KAAK2O,UAChB,GAAI3O,KAAKqE,UAAUqN,SAAS,aAAc,CACxCgF,EAAOA,EAAKrT,QAAQsX,EAAmBC,OAClC,CACLlE,EAAOA,EAAKrT,QAAQuX,EAAsBD,GAE5C3a,KAAK2O,UAAY+H,EACjB1W,KAAKqE,UAAU0S,OAAO,aACtB8D,EAAcxW,UAAU0S,OAAO,eAGjC1X,EAAM0B,GAAG,gBAAiB,QAAS,SAASqG,GAC1C,IAAIhG,EAASpB,KAAK2G,aAAa,eAC/B,IAAImU,EAAcvb,EAAEqM,cAAcxK,EAAS,aAC3C,IAAI2Z,EAAUD,EAAYnU,aAAa,OACvC,GAAIoU,IAAY,MAAQA,IAAYhT,WAAagT,IAAY,MAAO,CAClED,EAAYrX,aAAa,MAAOqX,EAAYnU,aAAa,gBAI7DrH,EAAE6B,iBAAiB,SAAU,WAC3B,IAAIT,EAAInB,EAAEgE,eAAe,aACzB+Q,EAAYnU,SAASkU,gBAAgBC,WAAanU,SAASuD,KAAK4Q,UAChE,GAAI5T,IAAM,KAAM,CACd,GAAI4T,GAAa,IAAK,CACpB5T,EAAE2P,MAAM2K,QAAU,MACb,CACLta,EAAE2P,MAAM2K,QAAU,SAvC5B,CA8CG5b,OAAQe,SAAUf,OAAOC,QAiB5B,SAAUC,EAAGC,EAAGF,GACd,aAEA,IAAI4b,EAAa,KAAMC,EAAY,IAAKC,EAExC,SAASC,EAAiBlX,GACxB,GAAIA,EAAQmX,kBAAmB,CAC7B,IAAIC,EAAMpX,EAAQ+G,MAAMxF,OACxBvB,EAAQmX,kBAAkBC,EAAKA,IAInC,SAASC,IACP,GAAIJ,EAAOlQ,MAAMxF,OAAU,EAAG,CAC5B,IAAI+V,EAASrb,SAASoD,eAAe,UACrC6G,WAAWoR,EAAOC,OAAO/Z,KAAK8Z,GAAS,IAI3C,SAASE,EAAkBP,GACzB,IAAIQ,EAAKxb,SAASoD,eAAe,gBACjC,IAAIqY,EAAoB,WACtB,GAAIT,EAAOlQ,MAAMxF,SAAW,EAAG,CACpCkW,EAAGtX,UAAUC,IAAI,aACL,CACZqX,EAAGtX,UAAUmI,OAAO,WAKjBoP,IACAD,EAAGxa,iBAAiB,QAAS,WAC3Bga,EAAOlQ,MAAM,GACbkQ,EAAOlU,QACP2U,MAEFT,EAAOha,iBAAiB,QAASya,EAAmB,OAGtDvc,EAAMmC,MAAM,WACV2Z,EAAS5b,EAAEgE,eAAe2X,GAE1B,SAASW,EAAqBnb,GAC5B,GAAIua,EAAY,CACdG,EAAiBD,GACjBF,EAAa,UACR,GAKT,GAAIE,IAAW,KAAM,CAEnBO,EAAkBP,GAGlB,GAAI9b,EAAMyc,cAAe,CACvBzc,EAAM0c,aAAehX,aAAapE,KAAKrB,EAAG,CACxCmM,IAAK,kBACLX,aAAczL,EAAM2c,cACpBzQ,WAAYlM,EAAMuC,OAClB0J,SAAU,EACVjB,MAAO,KACN,IAAM6Q,GAGT5b,EAAE6B,iBAAiB,SAAU,WAC3B,IAAIiG,EAAQ,IAAI6U,YAAY,YAC5Bd,EAAOe,cAAc9U,KAIzB+T,EAAOha,iBAAiB,QAAS0a,EAAsB,OACvDV,EAAOlU,QAIT,GAAIkU,IAAW,MAAQ9b,EAAM8c,0BAA2B,CACtD5c,EAAEqM,cAAc,SAASkL,UAAU,YAEnCzX,EAAM0B,GAAG,oBAAqB,SAAU,SAASL,GAC/C,IAAIL,EAAGgW,EAAa9W,EAAEa,iBAAiB,sCACvC,IAAIC,EAAE,EAAGA,EAAEgW,EAAW5Q,OAAQpF,IAAK,CACjC,GAAIgW,EAAWhW,KAAOL,MAAQqW,EAAWhW,GAAG+b,QAAS,CACnD/F,EAAWhW,GAAGgV,SAGlB,IAAMrV,KAAKoc,QAAS,CAClBpc,KAAKqV,QAEPkG,IACA,OAAO,QAGTlc,EAAM0B,GAAGxB,EAAEgE,eAAe,cAAe,SAAUgY,GACnDlc,EAAM0B,GAAGxB,EAAEgE,eAAe,YAAa,SAAUgY,OA/FvD,CAoGGnc,OAAQe,SAAUf,OAAOC","file":"searx.min.js"} \ No newline at end of file
diff --git a/searx/static/themes/simple/js/searx_head/00_init.js b/searx/static/themes/simple/js/searx_head/00_init.js
new file mode 100644
index 000000000..3ac61c8ae
--- /dev/null
+++ b/searx/static/themes/simple/js/searx_head/00_init.js
@@ -0,0 +1,40 @@
+/**
+* searx is free software: you can redistribute it and/or modify
+* it under the terms of the GNU Affero General Public License as published by
+* the Free Software Foundation, either version 3 of the License, or
+* (at your option) any later version.
+*
+* searx is distributed in the hope that it will be useful,
+* but WITHOUT ANY WARRANTY; without even the implied warranty of
+* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+* GNU Affero General Public License for more details.
+*
+* You should have received a copy of the GNU Affero General Public License
+* along with searx. If not, see < http://www.gnu.org/licenses/ >.
+*
+* (C) 2019 by Alexandre Flament
+*
+*/
+(function(w, d) {
+ 'use strict';
+
+ // add data- properties
+ var script = d.currentScript || (function() {
+ var scripts = d.getElementsByTagName('script');
+ return scripts[scripts.length - 1];
+ })();
+
+ // try to detect touch screen
+ w.searx = {
+ touch: (("ontouchstart" in w) || w.DocumentTouch && document instanceof DocumentTouch) || false,
+ method: script.getAttribute('data-method'),
+ autocompleter: script.getAttribute('data-autocompleter') === 'true',
+ search_on_category_select: script.getAttribute('data-search-on-category-select') === 'true',
+ infinite_scroll: script.getAttribute('data-infinite-scroll') === 'true',
+ static_path: script.getAttribute('data-static-path'),
+ no_item_found: script.getAttribute('data-no-item-found')
+ }
+
+ // update the css
+ d.getElementsByTagName("html")[0].className = (w.searx.touch)?"js touch":"js";
+})(window, document); \ No newline at end of file
diff --git a/searx/static/themes/simple/js/searx_src/00_searx_toolkit.js b/searx/static/themes/simple/js/searx_src/00_searx_toolkit.js
index fb524427d..dbef4be73 100644
--- a/searx/static/themes/simple/js/searx_src/00_searx_toolkit.js
+++ b/searx/static/themes/simple/js/searx_src/00_searx_toolkit.js
@@ -15,7 +15,7 @@
* (C) 2017 by Alexandre Flament, <alex@al-f.net>
*
*/
-(function(w, d, searx) {
+window.searx = (function(w, d) {
'use strict';
@@ -45,7 +45,7 @@
}
}
- searx = searx || {};
+ var searx = window.searx || {};
searx.on = function(obj, eventType, callback, useCapture) {
useCapture = useCapture || false;
@@ -110,7 +110,7 @@
};
searx.loadStyle = function(src) {
- var path = searx.staticPath + src,
+ var path = searx.static_path + src,
id = "style_" + src.replace('.', '_'),
s = d.getElementById(id);
if (s === null) {
@@ -124,7 +124,7 @@
};
searx.loadScript = function(src, callback) {
- var path = searx.staticPath + src,
+ var path = searx.static_path + src,
id = "script_" + src.replace('.', '_'),
s = d.getElementById(id);
if (s === null) {
@@ -161,4 +161,4 @@
});
return searx;
-})(window, document, window.searx);
+})(window, document);
diff --git a/searx/static/themes/simple/js/searx_src/searx_search.js b/searx/static/themes/simple/js/searx_src/searx_search.js
index 964be2194..580d98d6a 100644
--- a/searx/static/themes/simple/js/searx_src/searx_search.js
+++ b/searx/static/themes/simple/js/searx_src/searx_search.js
@@ -73,7 +73,7 @@
if (searx.autocompleter) {
searx.autocomplete = AutoComplete.call(w, {
Url: "./autocompleter",
- EmptyMessage: searx.noItemFound,
+ EmptyMessage: searx.no_item_found,
HttpMethod: searx.method,
MinChars: 4,
Delay: 300,
diff --git a/searx/static/themes/simple/leaflet/leaflet.css b/searx/static/themes/simple/leaflet/leaflet.css
index 230e5bad1..d1b47a125 100644
--- a/searx/static/themes/simple/leaflet/leaflet.css
+++ b/searx/static/themes/simple/leaflet/leaflet.css
@@ -1,636 +1,636 @@
-/* required styles */
-
-.leaflet-pane,
-.leaflet-tile,
-.leaflet-marker-icon,
-.leaflet-marker-shadow,
-.leaflet-tile-container,
-.leaflet-pane > svg,
-.leaflet-pane > canvas,
-.leaflet-zoom-box,
-.leaflet-image-layer,
-.leaflet-layer {
- position: absolute;
- left: 0;
- top: 0;
- }
-.leaflet-container {
- overflow: hidden;
- }
-.leaflet-tile,
-.leaflet-marker-icon,
-.leaflet-marker-shadow {
- -webkit-user-select: none;
- -moz-user-select: none;
- user-select: none;
- -webkit-user-drag: none;
- }
-/* Safari renders non-retina tile on retina better with this, but Chrome is worse */
-.leaflet-safari .leaflet-tile {
- image-rendering: -webkit-optimize-contrast;
- }
-/* hack that prevents hw layers "stretching" when loading new tiles */
-.leaflet-safari .leaflet-tile-container {
- width: 1600px;
- height: 1600px;
- -webkit-transform-origin: 0 0;
- }
-.leaflet-marker-icon,
-.leaflet-marker-shadow {
- display: block;
- }
-/* .leaflet-container svg: reset svg max-width decleration shipped in Joomla! (joomla.org) 3.x */
-/* .leaflet-container img: map is broken in FF if you have max-width: 100% on tiles */
-.leaflet-container .leaflet-overlay-pane svg,
-.leaflet-container .leaflet-marker-pane img,
-.leaflet-container .leaflet-shadow-pane img,
-.leaflet-container .leaflet-tile-pane img,
-.leaflet-container img.leaflet-image-layer {
- max-width: none !important;
- max-height: none !important;
- }
-
-.leaflet-container.leaflet-touch-zoom {
- -ms-touch-action: pan-x pan-y;
- touch-action: pan-x pan-y;
- }
-.leaflet-container.leaflet-touch-drag {
- -ms-touch-action: pinch-zoom;
- /* Fallback for FF which doesn't support pinch-zoom */
- touch-action: none;
- touch-action: pinch-zoom;
-}
-.leaflet-container.leaflet-touch-drag.leaflet-touch-zoom {
- -ms-touch-action: none;
- touch-action: none;
-}
-.leaflet-container {
- -webkit-tap-highlight-color: transparent;
-}
-.leaflet-container a {
- -webkit-tap-highlight-color: rgba(51, 181, 229, 0.4);
-}
-.leaflet-tile {
- filter: inherit;
- visibility: hidden;
- }
-.leaflet-tile-loaded {
- visibility: inherit;
- }
-.leaflet-zoom-box {
- width: 0;
- height: 0;
- -moz-box-sizing: border-box;
- box-sizing: border-box;
- z-index: 800;
- }
-/* workaround for https://bugzilla.mozilla.org/show_bug.cgi?id=888319 */
-.leaflet-overlay-pane svg {
- -moz-user-select: none;
- }
-
-.leaflet-pane { z-index: 400; }
-
-.leaflet-tile-pane { z-index: 200; }
-.leaflet-overlay-pane { z-index: 400; }
-.leaflet-shadow-pane { z-index: 500; }
-.leaflet-marker-pane { z-index: 600; }
-.leaflet-tooltip-pane { z-index: 650; }
-.leaflet-popup-pane { z-index: 700; }
-
-.leaflet-map-pane canvas { z-index: 100; }
-.leaflet-map-pane svg { z-index: 200; }
-
-.leaflet-vml-shape {
- width: 1px;
- height: 1px;
- }
-.lvml {
- behavior: url(#default#VML);
- display: inline-block;
- position: absolute;
- }
-
-
-/* control positioning */
-
-.leaflet-control {
- position: relative;
- z-index: 800;
- pointer-events: visiblePainted; /* IE 9-10 doesn't have auto */
- pointer-events: auto;
- }
-.leaflet-top,
-.leaflet-bottom {
- position: absolute;
- z-index: 1000;
- pointer-events: none;
- }
-.leaflet-top {
- top: 0;
- }
-.leaflet-right {
- right: 0;
- }
-.leaflet-bottom {
- bottom: 0;
- }
-.leaflet-left {
- left: 0;
- }
-.leaflet-control {
- float: left;
- clear: both;
- }
-.leaflet-right .leaflet-control {
- float: right;
- }
-.leaflet-top .leaflet-control {
- margin-top: 10px;
- }
-.leaflet-bottom .leaflet-control {
- margin-bottom: 10px;
- }
-.leaflet-left .leaflet-control {
- margin-left: 10px;
- }
-.leaflet-right .leaflet-control {
- margin-right: 10px;
- }
-
-
-/* zoom and fade animations */
-
-.leaflet-fade-anim .leaflet-tile {
- will-change: opacity;
- }
-.leaflet-fade-anim .leaflet-popup {
- opacity: 0;
- -webkit-transition: opacity 0.2s linear;
- -moz-transition: opacity 0.2s linear;
- -o-transition: opacity 0.2s linear;
- transition: opacity 0.2s linear;
- }
-.leaflet-fade-anim .leaflet-map-pane .leaflet-popup {
- opacity: 1;
- }
-.leaflet-zoom-animated {
- -webkit-transform-origin: 0 0;
- -ms-transform-origin: 0 0;
- transform-origin: 0 0;
- }
-.leaflet-zoom-anim .leaflet-zoom-animated {
- will-change: transform;
- }
-.leaflet-zoom-anim .leaflet-zoom-animated {
- -webkit-transition: -webkit-transform 0.25s cubic-bezier(0,0,0.25,1);
- -moz-transition: -moz-transform 0.25s cubic-bezier(0,0,0.25,1);
- -o-transition: -o-transform 0.25s cubic-bezier(0,0,0.25,1);
- transition: transform 0.25s cubic-bezier(0,0,0.25,1);
- }
-.leaflet-zoom-anim .leaflet-tile,
-.leaflet-pan-anim .leaflet-tile {
- -webkit-transition: none;
- -moz-transition: none;
- -o-transition: none;
- transition: none;
- }
-
-.leaflet-zoom-anim .leaflet-zoom-hide {
- visibility: hidden;
- }
-
-
-/* cursors */
-
-.leaflet-interactive {
- cursor: pointer;
- }
-.leaflet-grab {
- cursor: -webkit-grab;
- cursor: -moz-grab;
- }
-.leaflet-crosshair,
-.leaflet-crosshair .leaflet-interactive {
- cursor: crosshair;
- }
-.leaflet-popup-pane,
-.leaflet-control {
- cursor: auto;
- }
-.leaflet-dragging .leaflet-grab,
-.leaflet-dragging .leaflet-grab .leaflet-interactive,
-.leaflet-dragging .leaflet-marker-draggable {
- cursor: move;
- cursor: -webkit-grabbing;
- cursor: -moz-grabbing;
- }
-
-/* marker & overlays interactivity */
-.leaflet-marker-icon,
-.leaflet-marker-shadow,
-.leaflet-image-layer,
-.leaflet-pane > svg path,
-.leaflet-tile-container {
- pointer-events: none;
- }
-
-.leaflet-marker-icon.leaflet-interactive,
-.leaflet-image-layer.leaflet-interactive,
-.leaflet-pane > svg path.leaflet-interactive {
- pointer-events: visiblePainted; /* IE 9-10 doesn't have auto */
- pointer-events: auto;
- }
-
-/* visual tweaks */
-
-.leaflet-container {
- background: #ddd;
- outline: 0;
- }
-.leaflet-container a {
- color: #0078A8;
- }
-.leaflet-container a.leaflet-active {
- outline: 2px solid orange;
- }
-.leaflet-zoom-box {
- border: 2px dotted #38f;
- background: rgba(255,255,255,0.5);
- }
-
-
-/* general typography */
-.leaflet-container {
- font: 12px/1.5 "Helvetica Neue", Arial, Helvetica, sans-serif;
- }
-
-
-/* general toolbar styles */
-
-.leaflet-bar {
- box-shadow: 0 1px 5px rgba(0,0,0,0.65);
- border-radius: 4px;
- }
-.leaflet-bar a,
-.leaflet-bar a:hover {
- background-color: #fff;
- border-bottom: 1px solid #ccc;
- width: 26px;
- height: 26px;
- line-height: 26px;
- display: block;
- text-align: center;
- text-decoration: none;
- color: black;
- }
-.leaflet-bar a,
-.leaflet-control-layers-toggle {
- background-position: 50% 50%;
- background-repeat: no-repeat;
- display: block;
- }
-.leaflet-bar a:hover {
- background-color: #f4f4f4;
- }
-.leaflet-bar a:first-child {
- border-top-left-radius: 4px;
- border-top-right-radius: 4px;
- }
-.leaflet-bar a:last-child {
- border-bottom-left-radius: 4px;
- border-bottom-right-radius: 4px;
- border-bottom: none;
- }
-.leaflet-bar a.leaflet-disabled {
- cursor: default;
- background-color: #f4f4f4;
- color: #bbb;
- }
-
-.leaflet-touch .leaflet-bar a {
- width: 30px;
- height: 30px;
- line-height: 30px;
- }
-.leaflet-touch .leaflet-bar a:first-child {
- border-top-left-radius: 2px;
- border-top-right-radius: 2px;
- }
-.leaflet-touch .leaflet-bar a:last-child {
- border-bottom-left-radius: 2px;
- border-bottom-right-radius: 2px;
- }
-
-/* zoom control */
-
-.leaflet-control-zoom-in,
-.leaflet-control-zoom-out {
- font: bold 18px 'Lucida Console', Monaco, monospace;
- text-indent: 1px;
- }
-
-.leaflet-touch .leaflet-control-zoom-in, .leaflet-touch .leaflet-control-zoom-out {
- font-size: 22px;
- }
-
-
-/* layers control */
-
-.leaflet-control-layers {
- box-shadow: 0 1px 5px rgba(0,0,0,0.4);
- background: #fff;
- border-radius: 5px;
- }
-.leaflet-control-layers-toggle {
- background-image: url(images/layers.png);
- width: 36px;
- height: 36px;
- }
-.leaflet-retina .leaflet-control-layers-toggle {
- background-image: url(images/layers-2x.png);
- background-size: 26px 26px;
- }
-.leaflet-touch .leaflet-control-layers-toggle {
- width: 44px;
- height: 44px;
- }
-.leaflet-control-layers .leaflet-control-layers-list,
-.leaflet-control-layers-expanded .leaflet-control-layers-toggle {
- display: none;
- }
-.leaflet-control-layers-expanded .leaflet-control-layers-list {
- display: block;
- position: relative;
- }
-.leaflet-control-layers-expanded {
- padding: 6px 10px 6px 6px;
- color: #333;
- background: #fff;
- }
-.leaflet-control-layers-scrollbar {
- overflow-y: scroll;
- overflow-x: hidden;
- padding-right: 5px;
- }
-.leaflet-control-layers-selector {
- margin-top: 2px;
- position: relative;
- top: 1px;
- }
-.leaflet-control-layers label {
- display: block;
- }
-.leaflet-control-layers-separator {
- height: 0;
- border-top: 1px solid #ddd;
- margin: 5px -10px 5px -6px;
- }
-
-/* Default icon URLs */
-.leaflet-default-icon-path {
- background-image: url(images/marker-icon.png);
- }
-
-
-/* attribution and scale controls */
-
-.leaflet-container .leaflet-control-attribution {
- background: #fff;
- background: rgba(255, 255, 255, 0.7);
- margin: 0;
- }
-.leaflet-control-attribution,
-.leaflet-control-scale-line {
- padding: 0 5px;
- color: #333;
- }
-.leaflet-control-attribution a {
- text-decoration: none;
- }
-.leaflet-control-attribution a:hover {
- text-decoration: underline;
- }
-.leaflet-container .leaflet-control-attribution,
-.leaflet-container .leaflet-control-scale {
- font-size: 11px;
- }
-.leaflet-left .leaflet-control-scale {
- margin-left: 5px;
- }
-.leaflet-bottom .leaflet-control-scale {
- margin-bottom: 5px;
- }
-.leaflet-control-scale-line {
- border: 2px solid #777;
- border-top: none;
- line-height: 1.1;
- padding: 2px 5px 1px;
- font-size: 11px;
- white-space: nowrap;
- overflow: hidden;
- -moz-box-sizing: border-box;
- box-sizing: border-box;
-
- background: #fff;
- background: rgba(255, 255, 255, 0.5);
- }
-.leaflet-control-scale-line:not(:first-child) {
- border-top: 2px solid #777;
- border-bottom: none;
- margin-top: -2px;
- }
-.leaflet-control-scale-line:not(:first-child):not(:last-child) {
- border-bottom: 2px solid #777;
- }
-
-.leaflet-touch .leaflet-control-attribution,
-.leaflet-touch .leaflet-control-layers,
-.leaflet-touch .leaflet-bar {
- box-shadow: none;
- }
-.leaflet-touch .leaflet-control-layers,
-.leaflet-touch .leaflet-bar {
- border: 2px solid rgba(0,0,0,0.2);
- background-clip: padding-box;
- }
-
-
-/* popup */
-
-.leaflet-popup {
- position: absolute;
- text-align: center;
- margin-bottom: 20px;
- }
-.leaflet-popup-content-wrapper {
- padding: 1px;
- text-align: left;
- border-radius: 12px;
- }
-.leaflet-popup-content {
- margin: 13px 19px;
- line-height: 1.4;
- }
-.leaflet-popup-content p {
- margin: 18px 0;
- }
-.leaflet-popup-tip-container {
- width: 40px;
- height: 20px;
- position: absolute;
- left: 50%;
- margin-left: -20px;
- overflow: hidden;
- pointer-events: none;
- }
-.leaflet-popup-tip {
- width: 17px;
- height: 17px;
- padding: 1px;
-
- margin: -10px auto 0;
-
- -webkit-transform: rotate(45deg);
- -moz-transform: rotate(45deg);
- -ms-transform: rotate(45deg);
- -o-transform: rotate(45deg);
- transform: rotate(45deg);
- }
-.leaflet-popup-content-wrapper,
-.leaflet-popup-tip {
- background: white;
- color: #333;
- box-shadow: 0 3px 14px rgba(0,0,0,0.4);
- }
-.leaflet-container a.leaflet-popup-close-button {
- position: absolute;
- top: 0;
- right: 0;
- padding: 4px 4px 0 0;
- border: none;
- text-align: center;
- width: 18px;
- height: 14px;
- font: 16px/14px Tahoma, Verdana, sans-serif;
- color: #c3c3c3;
- text-decoration: none;
- font-weight: bold;
- background: transparent;
- }
-.leaflet-container a.leaflet-popup-close-button:hover {
- color: #999;
- }
-.leaflet-popup-scrolled {
- overflow: auto;
- border-bottom: 1px solid #ddd;
- border-top: 1px solid #ddd;
- }
-
-.leaflet-oldie .leaflet-popup-content-wrapper {
- zoom: 1;
- }
-.leaflet-oldie .leaflet-popup-tip {
- width: 24px;
- margin: 0 auto;
-
- -ms-filter: "progid:DXImageTransform.Microsoft.Matrix(M11=0.70710678, M12=0.70710678, M21=-0.70710678, M22=0.70710678)";
- filter: progid:DXImageTransform.Microsoft.Matrix(M11=0.70710678, M12=0.70710678, M21=-0.70710678, M22=0.70710678);
- }
-.leaflet-oldie .leaflet-popup-tip-container {
- margin-top: -1px;
- }
-
-.leaflet-oldie .leaflet-control-zoom,
-.leaflet-oldie .leaflet-control-layers,
-.leaflet-oldie .leaflet-popup-content-wrapper,
-.leaflet-oldie .leaflet-popup-tip {
- border: 1px solid #999;
- }
-
-
-/* div icon */
-
-.leaflet-div-icon {
- background: #fff;
- border: 1px solid #666;
- }
-
-
-/* Tooltip */
-/* Base styles for the element that has a tooltip */
-.leaflet-tooltip {
- position: absolute;
- padding: 6px;
- background-color: #fff;
- border: 1px solid #fff;
- border-radius: 3px;
- color: #222;
- white-space: nowrap;
- -webkit-user-select: none;
- -moz-user-select: none;
- -ms-user-select: none;
- user-select: none;
- pointer-events: none;
- box-shadow: 0 1px 3px rgba(0,0,0,0.4);
- }
-.leaflet-tooltip.leaflet-clickable {
- cursor: pointer;
- pointer-events: auto;
- }
-.leaflet-tooltip-top:before,
-.leaflet-tooltip-bottom:before,
-.leaflet-tooltip-left:before,
-.leaflet-tooltip-right:before {
- position: absolute;
- pointer-events: none;
- border: 6px solid transparent;
- background: transparent;
- content: "";
- }
-
-/* Directions */
-
-.leaflet-tooltip-bottom {
- margin-top: 6px;
-}
-.leaflet-tooltip-top {
- margin-top: -6px;
-}
-.leaflet-tooltip-bottom:before,
-.leaflet-tooltip-top:before {
- left: 50%;
- margin-left: -6px;
- }
-.leaflet-tooltip-top:before {
- bottom: 0;
- margin-bottom: -12px;
- border-top-color: #fff;
- }
-.leaflet-tooltip-bottom:before {
- top: 0;
- margin-top: -12px;
- margin-left: -6px;
- border-bottom-color: #fff;
- }
-.leaflet-tooltip-left {
- margin-left: -6px;
-}
-.leaflet-tooltip-right {
- margin-left: 6px;
-}
-.leaflet-tooltip-left:before,
-.leaflet-tooltip-right:before {
- top: 50%;
- margin-top: -6px;
- }
-.leaflet-tooltip-left:before {
- right: 0;
- margin-right: -12px;
- border-left-color: #fff;
- }
-.leaflet-tooltip-right:before {
- left: 0;
- margin-left: -12px;
- border-right-color: #fff;
- }
+/* required styles */
+
+.leaflet-pane,
+.leaflet-tile,
+.leaflet-marker-icon,
+.leaflet-marker-shadow,
+.leaflet-tile-container,
+.leaflet-pane > svg,
+.leaflet-pane > canvas,
+.leaflet-zoom-box,
+.leaflet-image-layer,
+.leaflet-layer {
+ position: absolute;
+ left: 0;
+ top: 0;
+ }
+.leaflet-container {
+ overflow: hidden;
+ }
+.leaflet-tile,
+.leaflet-marker-icon,
+.leaflet-marker-shadow {
+ -webkit-user-select: none;
+ -moz-user-select: none;
+ user-select: none;
+ -webkit-user-drag: none;
+ }
+/* Safari renders non-retina tile on retina better with this, but Chrome is worse */
+.leaflet-safari .leaflet-tile {
+ image-rendering: -webkit-optimize-contrast;
+ }
+/* hack that prevents hw layers "stretching" when loading new tiles */
+.leaflet-safari .leaflet-tile-container {
+ width: 1600px;
+ height: 1600px;
+ -webkit-transform-origin: 0 0;
+ }
+.leaflet-marker-icon,
+.leaflet-marker-shadow {
+ display: block;
+ }
+/* .leaflet-container svg: reset svg max-width decleration shipped in Joomla! (joomla.org) 3.x */
+/* .leaflet-container img: map is broken in FF if you have max-width: 100% on tiles */
+.leaflet-container .leaflet-overlay-pane svg,
+.leaflet-container .leaflet-marker-pane img,
+.leaflet-container .leaflet-shadow-pane img,
+.leaflet-container .leaflet-tile-pane img,
+.leaflet-container img.leaflet-image-layer {
+ max-width: none !important;
+ max-height: none !important;
+ }
+
+.leaflet-container.leaflet-touch-zoom {
+ -ms-touch-action: pan-x pan-y;
+ touch-action: pan-x pan-y;
+ }
+.leaflet-container.leaflet-touch-drag {
+ -ms-touch-action: pinch-zoom;
+ /* Fallback for FF which doesn't support pinch-zoom */
+ touch-action: none;
+ touch-action: pinch-zoom;
+}
+.leaflet-container.leaflet-touch-drag.leaflet-touch-zoom {
+ -ms-touch-action: none;
+ touch-action: none;
+}
+.leaflet-container {
+ -webkit-tap-highlight-color: transparent;
+}
+.leaflet-container a {
+ -webkit-tap-highlight-color: rgba(51, 181, 229, 0.4);
+}
+.leaflet-tile {
+ filter: inherit;
+ visibility: hidden;
+ }
+.leaflet-tile-loaded {
+ visibility: inherit;
+ }
+.leaflet-zoom-box {
+ width: 0;
+ height: 0;
+ -moz-box-sizing: border-box;
+ box-sizing: border-box;
+ z-index: 800;
+ }
+/* workaround for https://bugzilla.mozilla.org/show_bug.cgi?id=888319 */
+.leaflet-overlay-pane svg {
+ -moz-user-select: none;
+ }
+
+.leaflet-pane { z-index: 400; }
+
+.leaflet-tile-pane { z-index: 200; }
+.leaflet-overlay-pane { z-index: 400; }
+.leaflet-shadow-pane { z-index: 500; }
+.leaflet-marker-pane { z-index: 600; }
+.leaflet-tooltip-pane { z-index: 650; }
+.leaflet-popup-pane { z-index: 700; }
+
+.leaflet-map-pane canvas { z-index: 100; }
+.leaflet-map-pane svg { z-index: 200; }
+
+.leaflet-vml-shape {
+ width: 1px;
+ height: 1px;
+ }
+.lvml {
+ behavior: url(#default#VML);
+ display: inline-block;
+ position: absolute;
+ }
+
+
+/* control positioning */
+
+.leaflet-control {
+ position: relative;
+ z-index: 800;
+ pointer-events: visiblePainted; /* IE 9-10 doesn't have auto */
+ pointer-events: auto;
+ }
+.leaflet-top,
+.leaflet-bottom {
+ position: absolute;
+ z-index: 1000;
+ pointer-events: none;
+ }
+.leaflet-top {
+ top: 0;
+ }
+.leaflet-right {
+ right: 0;
+ }
+.leaflet-bottom {
+ bottom: 0;
+ }
+.leaflet-left {
+ left: 0;
+ }
+.leaflet-control {
+ float: left;
+ clear: both;
+ }
+.leaflet-right .leaflet-control {
+ float: right;
+ }
+.leaflet-top .leaflet-control {
+ margin-top: 10px;
+ }
+.leaflet-bottom .leaflet-control {
+ margin-bottom: 10px;
+ }
+.leaflet-left .leaflet-control {
+ margin-left: 10px;
+ }
+.leaflet-right .leaflet-control {
+ margin-right: 10px;
+ }
+
+
+/* zoom and fade animations */
+
+.leaflet-fade-anim .leaflet-tile {
+ will-change: opacity;
+ }
+.leaflet-fade-anim .leaflet-popup {
+ opacity: 0;
+ -webkit-transition: opacity 0.2s linear;
+ -moz-transition: opacity 0.2s linear;
+ -o-transition: opacity 0.2s linear;
+ transition: opacity 0.2s linear;
+ }
+.leaflet-fade-anim .leaflet-map-pane .leaflet-popup {
+ opacity: 1;
+ }
+.leaflet-zoom-animated {
+ -webkit-transform-origin: 0 0;
+ -ms-transform-origin: 0 0;
+ transform-origin: 0 0;
+ }
+.leaflet-zoom-anim .leaflet-zoom-animated {
+ will-change: transform;
+ }
+.leaflet-zoom-anim .leaflet-zoom-animated {
+ -webkit-transition: -webkit-transform 0.25s cubic-bezier(0,0,0.25,1);
+ -moz-transition: -moz-transform 0.25s cubic-bezier(0,0,0.25,1);
+ -o-transition: -o-transform 0.25s cubic-bezier(0,0,0.25,1);
+ transition: transform 0.25s cubic-bezier(0,0,0.25,1);
+ }
+.leaflet-zoom-anim .leaflet-tile,
+.leaflet-pan-anim .leaflet-tile {
+ -webkit-transition: none;
+ -moz-transition: none;
+ -o-transition: none;
+ transition: none;
+ }
+
+.leaflet-zoom-anim .leaflet-zoom-hide {
+ visibility: hidden;
+ }
+
+
+/* cursors */
+
+.leaflet-interactive {
+ cursor: pointer;
+ }
+.leaflet-grab {
+ cursor: -webkit-grab;
+ cursor: -moz-grab;
+ }
+.leaflet-crosshair,
+.leaflet-crosshair .leaflet-interactive {
+ cursor: crosshair;
+ }
+.leaflet-popup-pane,
+.leaflet-control {
+ cursor: auto;
+ }
+.leaflet-dragging .leaflet-grab,
+.leaflet-dragging .leaflet-grab .leaflet-interactive,
+.leaflet-dragging .leaflet-marker-draggable {
+ cursor: move;
+ cursor: -webkit-grabbing;
+ cursor: -moz-grabbing;
+ }
+
+/* marker & overlays interactivity */
+.leaflet-marker-icon,
+.leaflet-marker-shadow,
+.leaflet-image-layer,
+.leaflet-pane > svg path,
+.leaflet-tile-container {
+ pointer-events: none;
+ }
+
+.leaflet-marker-icon.leaflet-interactive,
+.leaflet-image-layer.leaflet-interactive,
+.leaflet-pane > svg path.leaflet-interactive {
+ pointer-events: visiblePainted; /* IE 9-10 doesn't have auto */
+ pointer-events: auto;
+ }
+
+/* visual tweaks */
+
+.leaflet-container {
+ background: #ddd;
+ outline: 0;
+ }
+.leaflet-container a {
+ color: #0078A8;
+ }
+.leaflet-container a.leaflet-active {
+ outline: 2px solid orange;
+ }
+.leaflet-zoom-box {
+ border: 2px dotted #38f;
+ background: rgba(255,255,255,0.5);
+ }
+
+
+/* general typography */
+.leaflet-container {
+ font: 12px/1.5 "Helvetica Neue", Arial, Helvetica, sans-serif;
+ }
+
+
+/* general toolbar styles */
+
+.leaflet-bar {
+ box-shadow: 0 1px 5px rgba(0,0,0,0.65);
+ border-radius: 4px;
+ }
+.leaflet-bar a,
+.leaflet-bar a:hover {
+ background-color: #fff;
+ border-bottom: 1px solid #ccc;
+ width: 26px;
+ height: 26px;
+ line-height: 26px;
+ display: block;
+ text-align: center;
+ text-decoration: none;
+ color: black;
+ }
+.leaflet-bar a,
+.leaflet-control-layers-toggle {
+ background-position: 50% 50%;
+ background-repeat: no-repeat;
+ display: block;
+ }
+.leaflet-bar a:hover {
+ background-color: #f4f4f4;
+ }
+.leaflet-bar a:first-child {
+ border-top-left-radius: 4px;
+ border-top-right-radius: 4px;
+ }
+.leaflet-bar a:last-child {
+ border-bottom-left-radius: 4px;
+ border-bottom-right-radius: 4px;
+ border-bottom: none;
+ }
+.leaflet-bar a.leaflet-disabled {
+ cursor: default;
+ background-color: #f4f4f4;
+ color: #bbb;
+ }
+
+.leaflet-touch .leaflet-bar a {
+ width: 30px;
+ height: 30px;
+ line-height: 30px;
+ }
+.leaflet-touch .leaflet-bar a:first-child {
+ border-top-left-radius: 2px;
+ border-top-right-radius: 2px;
+ }
+.leaflet-touch .leaflet-bar a:last-child {
+ border-bottom-left-radius: 2px;
+ border-bottom-right-radius: 2px;
+ }
+
+/* zoom control */
+
+.leaflet-control-zoom-in,
+.leaflet-control-zoom-out {
+ font: bold 18px 'Lucida Console', Monaco, monospace;
+ text-indent: 1px;
+ }
+
+.leaflet-touch .leaflet-control-zoom-in, .leaflet-touch .leaflet-control-zoom-out {
+ font-size: 22px;
+ }
+
+
+/* layers control */
+
+.leaflet-control-layers {
+ box-shadow: 0 1px 5px rgba(0,0,0,0.4);
+ background: #fff;
+ border-radius: 5px;
+ }
+.leaflet-control-layers-toggle {
+ background-image: url(images/layers.png);
+ width: 36px;
+ height: 36px;
+ }
+.leaflet-retina .leaflet-control-layers-toggle {
+ background-image: url(images/layers-2x.png);
+ background-size: 26px 26px;
+ }
+.leaflet-touch .leaflet-control-layers-toggle {
+ width: 44px;
+ height: 44px;
+ }
+.leaflet-control-layers .leaflet-control-layers-list,
+.leaflet-control-layers-expanded .leaflet-control-layers-toggle {
+ display: none;
+ }
+.leaflet-control-layers-expanded .leaflet-control-layers-list {
+ display: block;
+ position: relative;
+ }
+.leaflet-control-layers-expanded {
+ padding: 6px 10px 6px 6px;
+ color: #333;
+ background: #fff;
+ }
+.leaflet-control-layers-scrollbar {
+ overflow-y: scroll;
+ overflow-x: hidden;
+ padding-right: 5px;
+ }
+.leaflet-control-layers-selector {
+ margin-top: 2px;
+ position: relative;
+ top: 1px;
+ }
+.leaflet-control-layers label {
+ display: block;
+ }
+.leaflet-control-layers-separator {
+ height: 0;
+ border-top: 1px solid #ddd;
+ margin: 5px -10px 5px -6px;
+ }
+
+/* Default icon URLs */
+.leaflet-default-icon-path {
+ background-image: url(images/marker-icon.png);
+ }
+
+
+/* attribution and scale controls */
+
+.leaflet-container .leaflet-control-attribution {
+ background: #fff;
+ background: rgba(255, 255, 255, 0.7);
+ margin: 0;
+ }
+.leaflet-control-attribution,
+.leaflet-control-scale-line {
+ padding: 0 5px;
+ color: #333;
+ }
+.leaflet-control-attribution a {
+ text-decoration: none;
+ }
+.leaflet-control-attribution a:hover {
+ text-decoration: underline;
+ }
+.leaflet-container .leaflet-control-attribution,
+.leaflet-container .leaflet-control-scale {
+ font-size: 11px;
+ }
+.leaflet-left .leaflet-control-scale {
+ margin-left: 5px;
+ }
+.leaflet-bottom .leaflet-control-scale {
+ margin-bottom: 5px;
+ }
+.leaflet-control-scale-line {
+ border: 2px solid #777;
+ border-top: none;
+ line-height: 1.1;
+ padding: 2px 5px 1px;
+ font-size: 11px;
+ white-space: nowrap;
+ overflow: hidden;
+ -moz-box-sizing: border-box;
+ box-sizing: border-box;
+
+ background: #fff;
+ background: rgba(255, 255, 255, 0.5);
+ }
+.leaflet-control-scale-line:not(:first-child) {
+ border-top: 2px solid #777;
+ border-bottom: none;
+ margin-top: -2px;
+ }
+.leaflet-control-scale-line:not(:first-child):not(:last-child) {
+ border-bottom: 2px solid #777;
+ }
+
+.leaflet-touch .leaflet-control-attribution,
+.leaflet-touch .leaflet-control-layers,
+.leaflet-touch .leaflet-bar {
+ box-shadow: none;
+ }
+.leaflet-touch .leaflet-control-layers,
+.leaflet-touch .leaflet-bar {
+ border: 2px solid rgba(0,0,0,0.2);
+ background-clip: padding-box;
+ }
+
+
+/* popup */
+
+.leaflet-popup {
+ position: absolute;
+ text-align: center;
+ margin-bottom: 20px;
+ }
+.leaflet-popup-content-wrapper {
+ padding: 1px;
+ text-align: left;
+ border-radius: 12px;
+ }
+.leaflet-popup-content {
+ margin: 13px 19px;
+ line-height: 1.4;
+ }
+.leaflet-popup-content p {
+ margin: 18px 0;
+ }
+.leaflet-popup-tip-container {
+ width: 40px;
+ height: 20px;
+ position: absolute;
+ left: 50%;
+ margin-left: -20px;
+ overflow: hidden;
+ pointer-events: none;
+ }
+.leaflet-popup-tip {
+ width: 17px;
+ height: 17px;
+ padding: 1px;
+
+ margin: -10px auto 0;
+
+ -webkit-transform: rotate(45deg);
+ -moz-transform: rotate(45deg);
+ -ms-transform: rotate(45deg);
+ -o-transform: rotate(45deg);
+ transform: rotate(45deg);
+ }
+.leaflet-popup-content-wrapper,
+.leaflet-popup-tip {
+ background: white;
+ color: #333;
+ box-shadow: 0 3px 14px rgba(0,0,0,0.4);
+ }
+.leaflet-container a.leaflet-popup-close-button {
+ position: absolute;
+ top: 0;
+ right: 0;
+ padding: 4px 4px 0 0;
+ border: none;
+ text-align: center;
+ width: 18px;
+ height: 14px;
+ font: 16px/14px Tahoma, Verdana, sans-serif;
+ color: #c3c3c3;
+ text-decoration: none;
+ font-weight: bold;
+ background: transparent;
+ }
+.leaflet-container a.leaflet-popup-close-button:hover {
+ color: #999;
+ }
+.leaflet-popup-scrolled {
+ overflow: auto;
+ border-bottom: 1px solid #ddd;
+ border-top: 1px solid #ddd;
+ }
+
+.leaflet-oldie .leaflet-popup-content-wrapper {
+ zoom: 1;
+ }
+.leaflet-oldie .leaflet-popup-tip {
+ width: 24px;
+ margin: 0 auto;
+
+ -ms-filter: "progid:DXImageTransform.Microsoft.Matrix(M11=0.70710678, M12=0.70710678, M21=-0.70710678, M22=0.70710678)";
+ filter: progid:DXImageTransform.Microsoft.Matrix(M11=0.70710678, M12=0.70710678, M21=-0.70710678, M22=0.70710678);
+ }
+.leaflet-oldie .leaflet-popup-tip-container {
+ margin-top: -1px;
+ }
+
+.leaflet-oldie .leaflet-control-zoom,
+.leaflet-oldie .leaflet-control-layers,
+.leaflet-oldie .leaflet-popup-content-wrapper,
+.leaflet-oldie .leaflet-popup-tip {
+ border: 1px solid #999;
+ }
+
+
+/* div icon */
+
+.leaflet-div-icon {
+ background: #fff;
+ border: 1px solid #666;
+ }
+
+
+/* Tooltip */
+/* Base styles for the element that has a tooltip */
+.leaflet-tooltip {
+ position: absolute;
+ padding: 6px;
+ background-color: #fff;
+ border: 1px solid #fff;
+ border-radius: 3px;
+ color: #222;
+ white-space: nowrap;
+ -webkit-user-select: none;
+ -moz-user-select: none;
+ -ms-user-select: none;
+ user-select: none;
+ pointer-events: none;
+ box-shadow: 0 1px 3px rgba(0,0,0,0.4);
+ }
+.leaflet-tooltip.leaflet-clickable {
+ cursor: pointer;
+ pointer-events: auto;
+ }
+.leaflet-tooltip-top:before,
+.leaflet-tooltip-bottom:before,
+.leaflet-tooltip-left:before,
+.leaflet-tooltip-right:before {
+ position: absolute;
+ pointer-events: none;
+ border: 6px solid transparent;
+ background: transparent;
+ content: "";
+ }
+
+/* Directions */
+
+.leaflet-tooltip-bottom {
+ margin-top: 6px;
+}
+.leaflet-tooltip-top {
+ margin-top: -6px;
+}
+.leaflet-tooltip-bottom:before,
+.leaflet-tooltip-top:before {
+ left: 50%;
+ margin-left: -6px;
+ }
+.leaflet-tooltip-top:before {
+ bottom: 0;
+ margin-bottom: -12px;
+ border-top-color: #fff;
+ }
+.leaflet-tooltip-bottom:before {
+ top: 0;
+ margin-top: -12px;
+ margin-left: -6px;
+ border-bottom-color: #fff;
+ }
+.leaflet-tooltip-left {
+ margin-left: -6px;
+}
+.leaflet-tooltip-right {
+ margin-left: 6px;
+}
+.leaflet-tooltip-left:before,
+.leaflet-tooltip-right:before {
+ top: 50%;
+ margin-top: -6px;
+ }
+.leaflet-tooltip-left:before {
+ right: 0;
+ margin-right: -12px;
+ border-left-color: #fff;
+ }
+.leaflet-tooltip-right:before {
+ left: 0;
+ margin-left: -12px;
+ border-right-color: #fff;
+ }
diff --git a/searx/templates/courgette/result_templates/key-value.html b/searx/templates/courgette/result_templates/key-value.html
new file mode 100644
index 000000000..789e8de92
--- /dev/null
+++ b/searx/templates/courgette/result_templates/key-value.html
@@ -0,0 +1,13 @@
+<div class="result">
+<table>
+ {% for key, value in result.items() %}
+ {% if key in ['engine', 'engines', 'template', 'score', 'category', 'positions'] %}
+ {% continue %}
+ {% endif %}
+ <tr>
+ <td><b>{{ key|upper }}</b>: {{ value|safe }}</td>
+ </tr>
+ {% endfor %}
+</table>
+<p class="engines">{{ result.engines|join(', ') }}</p>
+</div>
diff --git a/searx/templates/courgette/result_templates/torrent.html b/searx/templates/courgette/result_templates/torrent.html
index 2fd8395ad..7f94a221e 100644
--- a/searx/templates/courgette/result_templates/torrent.html
+++ b/searx/templates/courgette/result_templates/torrent.html
@@ -4,7 +4,7 @@
{% endif %}
<h3 class="result_title"><a href="{{ result.url }}" {% if results_on_new_tab %}target="_blank" rel="noopener noreferrer"{% else %}rel="noreferrer"{% endif %}>{{ result.title|safe }}</a></h3>
{% if result.content %}<span class="content">{{ result.content|safe }}</span><br />{% endif %}
- <span class="stats">{{ _('Seeder') }} : {{ result.seed }}, {{ _('Leecher') }} : {{ result.leech }}</span><br />
+ {% if result.seed is defined %}<span class="stats">{{ _('Seeder') }} : {{ result.seed }}, {{ _('Leecher') }} : {{ result.leech }}</span><br />{% endif %}
<span>
{% if result.magnetlink %}<a href="{{ result.magnetlink }}" class="magnetlink">{{ _('magnet link') }}</a>{% endif %}
{% if result.torrentfile %}<a href="{{ result.torrentfile }}" class="torrentfile" {% if results_on_new_tab %}target="_blank" rel="noopener noreferrer"{% else %}rel="noreferrer"{% endif %}>{{ _('torrent file') }}</a>{% endif %}
diff --git a/searx/templates/courgette/results.html b/searx/templates/courgette/results.html
index c72b7c3f7..aa983e666 100644
--- a/searx/templates/courgette/results.html
+++ b/searx/templates/courgette/results.html
@@ -42,8 +42,8 @@
<div id="suggestions"><span>{{ _('Suggestions') }}</span>
{% for suggestion in suggestions %}
<form method="{{ method or 'POST' }}" action="{{ url_for('index') }}">
- <input type="hidden" name="q" value="{{ suggestion }}">
- <input type="submit" value="{{ suggestion }}" />
+ <input type="hidden" name="q" value="{{ suggestion.url }}">
+ <input type="submit" value="{{ suggestion.title }}" />
</form>
{% endfor %}
</div>
diff --git a/searx/templates/legacy/result_templates/key-value.html b/searx/templates/legacy/result_templates/key-value.html
new file mode 100644
index 000000000..a5bb509d9
--- /dev/null
+++ b/searx/templates/legacy/result_templates/key-value.html
@@ -0,0 +1,13 @@
+<table class="result-table">
+ {% for key, value in result.items() %}
+ {% if key in ['engine', 'engines', 'template', 'score', 'category', 'positions'] %}
+ {% continue %}
+ {% endif %}
+ <tr>
+ <td><b>{{ key|upper }}</b>: {{ value|safe }}</td>
+ </tr>
+ {% endfor %}
+ <tr>
+ <td><b>ENGINES</b>: {{ result.engines|join(', ') }}</td>
+ </tr>
+</table>
diff --git a/searx/templates/legacy/result_templates/torrent.html b/searx/templates/legacy/result_templates/torrent.html
index 67e058ae5..068e05373 100644
--- a/searx/templates/legacy/result_templates/torrent.html
+++ b/searx/templates/legacy/result_templates/torrent.html
@@ -8,6 +8,6 @@
<p>
{% if result.magnetlink %}<a href="{{ result.magnetlink }}" class="magnetlink">{{ _('magnet link') }}</a>{% endif %}
{% if result.torrentfile %}<a href="{{ result.torrentfile }}" {% if results_on_new_tab %}target="_blank" rel="noopener noreferrer"{% else %}rel="noreferrer"{% endif %} class="torrentfile">{{ _('torrent file') }}</a>{% endif %} -
- <span class="stats">{{ _('Seeder') }} : {{ result.seed }}, {{ _('Leecher') }} : {{ result.leech }}</span>
+ {% if result.seed is defined %}<span class="stats">{{ _('Seeder') }} : {{ result.seed }}, {{ _('Leecher') }} : {{ result.leech }}</span>{% endif %}
</p>
</div>
diff --git a/searx/templates/legacy/results.html b/searx/templates/legacy/results.html
index f0d78398d..2e28bc91f 100644
--- a/searx/templates/legacy/results.html
+++ b/searx/templates/legacy/results.html
@@ -44,8 +44,8 @@
{% set first = true %}
{% for suggestion in suggestions %}
{% if not first %} &bull; {% endif %}<form method="{{ method or 'POST' }}" action="{{ url_for('index') }}">
- <input type="hidden" name="q" value="{{ suggestion }}">
- <input type="submit" class="suggestion" value="{{ suggestion }}" />
+ <input type="hidden" name="q" value="{{ suggestion.url }}">
+ <input type="submit" class="suggestion" value="{{ suggestion.title }}" />
</form>
{% set first = false %}
{% endfor %}
diff --git a/searx/templates/oscar/advanced.html b/searx/templates/oscar/advanced.html
index 95d99ba6a..bf5f86324 100644
--- a/searx/templates/oscar/advanced.html
+++ b/searx/templates/oscar/advanced.html
@@ -1,16 +1,17 @@
<input type="checkbox" name="advanced_search" id="check-advanced" {% if advanced_search %} checked="checked"{% endif %}>
-<label for="check-advanced">
+<label for="check-advanced">{{- "" -}}
<span class="glyphicon glyphicon-cog"></span>
- {{ _('Advanced settings') }}
+ {{- _('Advanced settings') -}}
</label>
<div id="advanced-search-container">
{% include 'oscar/categories.html' %}
+
<div class="row">
<div class="col-xs-6">
- {% include 'oscar/time-range.html' %}
+ {%- include 'oscar/time-range.html' -%}
</div>
<div class="col-xs-6">
- {% include 'oscar/languages.html' %}
+ {%- include 'oscar/languages.html' -%}
</div>
</div>
</div>
diff --git a/searx/templates/oscar/base.html b/searx/templates/oscar/base.html
index 243e8b3d7..66a9e6029 100644
--- a/searx/templates/oscar/base.html
+++ b/searx/templates/oscar/base.html
@@ -10,16 +10,17 @@
<meta name="referrer" content="no-referrer">
<meta name="viewport" content="width=device-width, initial-scale=1 , maximum-scale=1.0, user-scalable=1" />
{% block meta %}{% endblock %}
- <title>{% block title %}{% endblock %}{{ instance_name }}</title>
+ <title>{% block title %}{% endblock %}{{ instance_name }}</title>
<link rel="stylesheet" href="{{ url_for('static', filename='css/bootstrap.min.css') }}" type="text/css" />
- {% if preferences.get_value('oscar-style') %}
- <link rel="stylesheet" href="{{ url_for('static', filename='css/'+preferences.get_value('oscar-style')+'.min.css') }}" type="text/css" />
- {% else %}
- <link rel="stylesheet" href="{{ url_for('static', filename='css/logicodev.min.css') }}" type="text/css" />
- {% endif %}
+ {% if preferences.get_value('oscar-style') -%}
+ {{' '}}<link rel="stylesheet" href="{{ url_for('static', filename='css/'+preferences.get_value('oscar-style')+'.min.css') }}" type="text/css" />
+ {%- else -%}
+ {{' '}}<link rel="stylesheet" href="{{ url_for('static', filename='css/logicodev.min.css') }}" type="text/css" />
+ {%- endif %}
+
<link rel="stylesheet" href="{{ url_for('static', filename='css/leaflet.min.css') }}" type="text/css" />
- {% for css in styles %}
+ {%- for css in styles %}
<link rel="stylesheet" href="{{ url_for('static', filename=css) }}" type="text/css" />
{% endfor %}
@@ -37,12 +38,6 @@
{% endblock %}
<link title="{{ instance_name }}" type="application/opensearchdescription+xml" rel="search" href="{{ url_for('opensearch') }}"/>
-
- <script type="text/javascript">
- searx = {};
- searx.method = "{{ method or 'POST' }}";
- searx.autocompleter = {% if autocomplete %}true{% else %}false{% endif %};
- </script>
<noscript>
<style type="text/css">
.tab-content > .active_if_nojs, .active_if_nojs {display: block !important; visibility: visible !important;}
@@ -54,6 +49,7 @@
</head>
<body>
{% include 'oscar/navbar.html' %}
+
<div class="container">
{% if errors %}
<div class="alert alert-danger fade in" role="alert">
@@ -99,11 +95,14 @@
</div>
<script src="{{ url_for('static', filename='js/jquery-1.11.1.min.js') }}"></script>
<script src="{{ url_for('static', filename='js/bootstrap.min.js') }}"></script>
- {% if autocomplete %}<script src="{{ url_for('static', filename='js/typeahead.bundle.min.js') }}"></script>{% endif %}
+ {% if autocomplete %} <script src="{{ url_for('static', filename='js/typeahead.bundle.min.js') }}"></script>{% endif %}
+
<script src="{{ url_for('static', filename='js/require-2.1.15.min.js') }}"></script>
- <script src="{{ url_for('static', filename='js/searx.min.js') }}"></script>
+ <script src="{{ url_for('static', filename='js/searx.min.js') }}"
+ data-method="{{ method or 'POST' }}"
+ data-autocompleter="{% if autocomplete %}true{% else %}false{% endif %}"></script>
{% for script in scripts %}
- <script src="{{ url_for('static', filename=script) }}"></script>
+ {{""}}<script src="{{ url_for('static', filename=script) }}"></script>
{% endfor %}
<noscript>
<style>
diff --git a/searx/templates/oscar/categories.html b/searx/templates/oscar/categories.html
index 1ace10f16..a5c5f61c7 100644
--- a/searx/templates/oscar/categories.html
+++ b/searx/templates/oscar/categories.html
@@ -1,13 +1,13 @@
<div id="categories">
-{% if rtl %}
- {% for category in categories | reverse %}
- <input class="hidden" type="checkbox" id="checkbox_{{ category|replace(' ', '_') }}" name="category_{{ category }}" {% if category in selected_categories %}checked="checked"{% endif %} />
+{%- if rtl -%}
+ {% for category in categories | reverse -%}
+ <input class="hidden" type="checkbox" id="checkbox_{{ category|replace(' ', '_') }}" name="category_{{ category }}" {% if category in selected_categories %}checked="checked"{% endif %} />{{- '' -}}
<label for="checkbox_{{ category|replace(' ', '_') }}">{{ _(category) }}</label>
- {% endfor %}
-{% else %}
- {% for category in categories %}
- <input class="hidden" type="checkbox" id="checkbox_{{ category|replace(' ', '_') }}" name="category_{{ category }}" {% if category in selected_categories %}checked="checked"{% endif %} />
+ {%- endfor %}
+{%- else -%}
+ {% for category in categories -%}
+ <input class="hidden" type="checkbox" id="checkbox_{{ category|replace(' ', '_') }}" name="category_{{ category }}" {% if category in selected_categories %}checked="checked"{% endif %} />{{- '' -}}
<label for="checkbox_{{ category|replace(' ', '_') }}">{{ _(category) }}</label>
- {% endfor %}
-{% endif %}
+ {%- endfor %}
+{%- endif -%}
</div>
diff --git a/searx/templates/oscar/infobox.html b/searx/templates/oscar/infobox.html
index c98fb0e63..9802f11e2 100644
--- a/searx/templates/oscar/infobox.html
+++ b/searx/templates/oscar/infobox.html
@@ -1,34 +1,35 @@
{% from 'oscar/macros.html' import result_link with context %}
<div class="panel panel-default infobox">
- <div class="panel-heading">
- <h4 class="panel-title infobox_part"><bdi>{{ infobox.infobox }}</bdi></h4>
+ <div class="panel-heading">{{- "" -}}
+ <h4 class="panel-title infobox_part"><bdi>{{ infobox.infobox }}</bdi></h4>{{- "" -}}
</div>
<div class="panel-body">
{% if infobox.img_src %}<img class="img-responsive center-block infobox_part" src="{{ image_proxify(infobox.img_src) }}" alt="{{ infobox.infobox }}" />{% endif %}
- {% if infobox.content %}<bdi><p class="infobox_part">{{ infobox.content }}</bdi></p>{% endif %}
- {% if infobox.attributes %}
+ {% if infobox.content %}<bdi><p class="infobox_part">{{ infobox.content | safe }}</p></bdi>{% endif %}
+
+ {% if infobox.attributes -%}
<table class="table table-striped infobox_part">
- {% for attribute in infobox.attributes %}
- <tr>
+ {% for attribute in infobox.attributes -%}
+ <tr>{{- "" -}}
<td><bdi>{{ attribute.label }}</bdi></td>
- {% if attribute.image %}
+ {%- if attribute.image -%}
<td><img class="img-responsive" src="{{ image_proxify(attribute.image.src) }}" alt="{{ attribute.image.alt }}" /></td>
- {% else %}
+ {%- else -%}
<td><bdi>{{ attribute.value }}</bdi></td>
- {% endif %}
+ {%- endif -%}
</tr>
- {% endfor %}
+ {% endfor -%}
</table>
{% endif %}
- {% if infobox.urls %}
- <div class="infobox_part">
+ {% if infobox.urls -%}
+ <div class="infobox_part">{{- "\n" -}}
<bdi>
- {% for url in infobox.urls %}
- <p class="btn btn-default btn-xs">{{ result_link(url.url, url.title) }}</a></p>
- {% endfor %}
- </bdi>
+ {%- for url in infobox.urls -%}
+ <p class="btn btn-default btn-xs">{{ result_link(url.url, url.title) }}</p>
+ {% endfor -%}
+ </bdi>{{- "" -}}
</div>
{% endif %}
</div>
diff --git a/searx/templates/oscar/languages.html b/searx/templates/oscar/languages.html
index 53ade43b2..5aff9f918 100644
--- a/searx/templates/oscar/languages.html
+++ b/searx/templates/oscar/languages.html
@@ -1,12 +1,8 @@
-{% if preferences %}
-<select class="custom-select form-control" name='language'>
-{% else %}
-<select class="time_range custom-select form-control" id='language' name='language'>
-{% endif %}
- <option value="all" {% if current_language == 'all' %}selected="selected"{% endif %}>{{ _('Default language') }}</option>
- {% for lang_id,lang_name,country_name,english_name in language_codes | sort(attribute=1) %}
- <option value="{{ lang_id }}" {% if lang_id == current_language %}selected="selected"{% endif %}>
- {{ lang_name }} {% if country_name %}({{ country_name }}) {% endif %}- {{ lang_id }}
- </option>
- {% endfor %}
+<select class="language custom-select form-control" id="language" name="language" accesskey="l">
+ <option value="all" {% if current_language == 'all' %}selected="selected"{% endif %}>{{ _('Default language') }}</option>
+{%- for lang_id,lang_name,country_name,english_name in language_codes | sort(attribute=1) -%}
+ <option value="{{ lang_id }}" {% if lang_id == current_language %}selected="selected"{% endif %}>
+ {{- lang_name }} {% if country_name %}({{ country_name }}) {% endif %}- {{ lang_id -}}
+ </option>
+{%- endfor -%}
</select>
diff --git a/searx/templates/oscar/macros.html b/searx/templates/oscar/macros.html
index 0ff957521..d2d1dc643 100644
--- a/searx/templates/oscar/macros.html
+++ b/searx/templates/oscar/macros.html
@@ -14,7 +14,7 @@
<!-- Draw result header -->
{% macro result_header(result, favicons) -%}
-<h4 class="result_header">{% if result.engine~".png" in favicons %}{{ draw_favicon(result.engine) }} {% endif %}{{ result_link(result.url, result.title|safe) }}</h4>
+<h4 class="result_header">{% if result.engine~".png" in favicons %}{{ draw_favicon(result.engine) }} {% endif %}{% if result.url %}{{ result_link(result.url, result.title|safe) }}{% else %}{{ result.title|safe}}{% endif %}</h4>
{%- endmacro %}
<!-- Draw result sub header -->
@@ -26,30 +26,38 @@
<!-- Draw result footer -->
{% macro result_footer(result) -%}
- <div class="clearfix"></div>
+ <div class="clearfix"></div>{{- "" -}}
<div class="pull-right">
- {% for engine in result.engines %}
- <span class="label label-default">{{ engine }}</span>
- {% endfor %}
- <small>{{ result_link("https://web.archive.org/web/" + result.url, icon('link') + _('cached'), "text-info") }}</small>
- {% if proxify %}
- <small>{{ result_link(proxify(result.url), icon('sort') + _('proxied'), "text-info") }}</small>
- {% endif %}
-</div>
-<div class="external-link">{{ result.pretty_url }}</div>
+ {%- for engine in result.engines -%}
+ <span class="label label-default">{{ engine }}</span>
+ {%- endfor -%}
+ {%- if result.url -%}
+ <small>{{ result_link("https://web.archive.org/web/" + result.url, icon('link') + _('cached'), "text-info") }}</small>
+ {%- endif -%}
+ {%- if proxify -%}
+ <small>{{ result_link(proxify(result.url), icon('sort') + _('proxied'), "text-info") }}</small>
+ {%- endif -%}
+ </div>
+ {%- if result.pretty_url -%}
+ <div class="external-link">{{ result.pretty_url }}</div>
+ {%- endif -%}
{%- endmacro %}
<!-- Draw result footer -->
{% macro result_footer_rtl(result) -%}
- <div class="clearfix"></div>
- {% for engine in result.engines %}
+ <div class="clearfix"></div>{{- "" -}}
+ {% for engine in result.engines -%}
<span class="label label-default">{{ engine }}</span>
- {% endfor %}
+ {%- endfor %}
+ {%- if result.url -%}
<small>{{ result_link("https://web.archive.org/web/" + result.url, icon('link') + _('cached'), "text-info") }}</small>
- {% if proxify %}
+ {%- endif -%}
+ {% if proxify -%}
<small>{{ result_link(proxify(result.url), icon('sort') + _('proxied'), "text-info") }}</small>
- {% endif %}
+ {%- endif %}
+ {%- if result.pretty_url -%}
<div class="external-link">{{ result.pretty_url }}</div>
+ {%- endif %}
{%- endmacro %}
{% macro preferences_item_header(info, label, rtl) -%}
diff --git a/searx/templates/oscar/navbar.html b/searx/templates/oscar/navbar.html
index 12bf14ffa..077fb9f15 100644
--- a/searx/templates/oscar/navbar.html
+++ b/searx/templates/oscar/navbar.html
@@ -1,9 +1,9 @@
-<div class="searx-navbar">
- <span class="instance {% if rtl %}pull-right{% else %}pull-left{% endif%}">
- <a href="{{ url_for('index') }}">{{ instance_name }}</a>
- </span>
- <span class="{% if rtl %}pull-left{% else %}pull-right{% endif %}">
- <a href="{{ url_for('about') }}">{{ _('about') }}</a>
- <a href="{{ url_for('preferences') }}">{{ _('preferences') }}</a>
- </span>
+<div class="searx-navbar">{{- "" -}}
+ <span class="instance {% if rtl %}pull-right{% else %}pull-left{% endif%}">{{- "" -}}
+ <a href="{{ url_for('index') }}">{{ instance_name }}</a>{{- "" -}}
+ </span>{{- "" -}}
+ <span class="{% if rtl %}pull-left{% else %}pull-right{% endif %}">{{- "" -}}
+ <a href="{{ url_for('about') }}">{{ _('about') }}</a>{{- "" -}}
+ <a href="{{ url_for('preferences') }}">{{ _('preferences') }}</a>{{- "" -}}
+ </span>{{- "" -}}
</div>
diff --git a/searx/templates/oscar/preferences.html b/searx/templates/oscar/preferences.html
index b64d72ddf..b03929df3 100644
--- a/searx/templates/oscar/preferences.html
+++ b/searx/templates/oscar/preferences.html
@@ -41,7 +41,7 @@
{% set language_label = _('Search language') %}
{% set language_info = _('What language do you prefer for search?') %}
{{ preferences_item_header(language_info, language_label, rtl) }}
- {% include 'oscar/languages.html' %}
+ {% include 'oscar/languages.html' %}
{{ preferences_item_footer(language_info, language_label, rtl) }}
{% set locale_label = _('Interface language') %}
@@ -131,6 +131,12 @@
{% endfor %}
</select>
{{ preferences_item_footer(info, label, rtl) }}
+
+ {% set label = _('Engine tokens') %}
+ {% set info = _('Access tokens for private engines') %}
+ {{ preferences_item_header(info, label, rtl) }}
+ <input class="form-control" id='tokens' name='tokens' value='{{ preferences.tokens.get_value() }}'/>
+ {{ preferences_item_footer(info, label, rtl) }}
</div>
</fieldset>
</div>
@@ -156,26 +162,26 @@
<div class="container-fluid">
<fieldset>
<div class="table-responsive">
- <table class="table table-hover table-condensed table-striped">
- <tr>
+ <table class="table table-hover table-condensed table-striped">
+ <tr>
{% if not rtl %}
- <th>{{ _("Allow") }}</th>
- <th>{{ _("Engine name") }}</th>
- <th>{{ _("Shortcut") }}</th>
- <th>{{ _("Selected language") }}</th>
- <th>{{ _("SafeSearch") }}</th>
- <th>{{ _("Time range") }}</th>
- <th>{{ _("Avg. time") }}</th>
- <th>{{ _("Max time") }}</th>
+ <th>{{ _("Allow") }}</th>
+ <th>{{ _("Engine name") }}</th>
+ <th>{{ _("Shortcut") }}</th>
+ <th>{{ _("Selected language") }}</th>
+ <th>{{ _("SafeSearch") }}</th>
+ <th>{{ _("Time range") }}</th>
+ <th>{{ _("Avg. time") }}</th>
+ <th>{{ _("Max time") }}</th>
{% else %}
- <th>{{ _("Max time") }}</th>
- <th>{{ _("Avg. time") }}</th>
- <th>{{ _("Time range") }}</th>
- <th>{{ _("SafeSearch") }}</th>
- <th>{{ _("Selected language") }}</th>
- <th>{{ _("Shortcut") }}</th>
- <th>{{ _("Engine name") }}</th>
- <th>{{ _("Allow") }}</th>
+ <th>{{ _("Max time") }}</th>
+ <th>{{ _("Avg. time") }}</th>
+ <th>{{ _("Time range") }}</th>
+ <th>{{ _("SafeSearch") }}</th>
+ <th>{{ _("Selected language") }}</th>
+ <th>{{ _("Shortcut") }}</th>
+ <th>{{ _("Engine name") }}</th>
+ <th>{{ _("Allow") }}</th>
{% endif %}
</tr>
{% for search_engine in engines_by_category[categ] %}
@@ -186,19 +192,19 @@
{{ checkbox_toggle('engine_' + search_engine.name|replace(' ', '_') + '__' + categ|replace(' ', '_'), (search_engine.name, categ) in disabled_engines) }}
</td>
<th>{{ search_engine.name }}</th>
- <td class="name">{{ shortcuts[search_engine.name] }}</td>
- <td>{{ support_toggle(stats[search_engine.name].supports_selected_language) }}</td>
- <td>{{ support_toggle(search_engine.safesearch==True) }}</td>
- <td>{{ support_toggle(search_engine.time_range_support==True) }}</td>
- <td class="{{ 'danger' if stats[search_engine.name]['warn_time'] else '' }}">{{ 'N/A' if stats[search_engine.name].time==None else stats[search_engine.name].time }}</td>
- <td class="{{ 'danger' if stats[search_engine.name]['warn_timeout'] else '' }}">{{ search_engine.timeout }}</td>
- {% else %}
- <td class="{{ 'danger' if stats[search_engine.name]['warn_timeout'] else '' }}">{{ search_engine.timeout }}</td>
- <td class="{{ 'danger' if stats[search_engine.name]['warn_time'] else '' }}">{{ 'N/A' if stats[search_engine.name].time==None else stats[search_engine.name].time }}</td>
- <td>{{ support_toggle(search_engine.time_range_support==True) }}</td>
- <td>{{ support_toggle(search_engine.safesearch==True) }}</td>
- <td>{{ support_toggle(stats[search_engine.name].supports_selected_language) }}</td>
- <td>{{ shortcuts[search_engine.name] }}</td>
+ <td class="name">{{ shortcuts[search_engine.name] }}</td>
+ <td>{{ support_toggle(stats[search_engine.name].supports_selected_language) }}</td>
+ <td>{{ support_toggle(search_engine.safesearch==True) }}</td>
+ <td>{{ support_toggle(search_engine.time_range_support==True) }}</td>
+ <td class="{{ 'danger' if stats[search_engine.name]['warn_time'] else '' }}">{{ 'N/A' if stats[search_engine.name].time==None else stats[search_engine.name].time }}</td>
+ <td class="{{ 'danger' if stats[search_engine.name]['warn_timeout'] else '' }}">{{ search_engine.timeout }}</td>
+ {% else %}
+ <td class="{{ 'danger' if stats[search_engine.name]['warn_timeout'] else '' }}">{{ search_engine.timeout }}</td>
+ <td class="{{ 'danger' if stats[search_engine.name]['warn_time'] else '' }}">{{ 'N/A' if stats[search_engine.name].time==None else stats[search_engine.name].time }}</td>
+ <td>{{ support_toggle(search_engine.time_range_support==True) }}</td>
+ <td>{{ support_toggle(search_engine.safesearch==True) }}</td>
+ <td>{{ support_toggle(stats[search_engine.name].supports_selected_language) }}</td>
+ <td>{{ shortcuts[search_engine.name] }}</td>
<th>{{ search_engine.name }}</th>
<td class="onoff-checkbox">
{{ checkbox_toggle('engine_' + search_engine.name|replace(' ', '_') + '__' + categ|replace(' ', '_'), (search_engine.name, categ) in disabled_engines) }}
@@ -207,7 +213,7 @@
</tr>
{% endif %}
{% endfor %}
- </table>
+ </table>
</div>
</fieldset>
</div>
diff --git a/searx/templates/oscar/result_templates/code.html b/searx/templates/oscar/result_templates/code.html
index ba74d0333..a1c18a6b7 100644
--- a/searx/templates/oscar/result_templates/code.html
+++ b/searx/templates/oscar/result_templates/code.html
@@ -1,18 +1,18 @@
-{% from 'oscar/macros.html' import result_header, result_sub_header, result_footer, result_footer_rtl, icon %}
-
-{{ result_header(result, favicons) }}
-{{ result_sub_header(result) }}
-
-{% if result.content %}<p class="result-content">{{ result.content|safe }}</p>{% endif %}
-
-{% if result.repository %}<p class="result-content">{{ icon('file') }} <a href="{{ result.repository }}" {% if results_on_new_tab %}target="_blank" rel="noopener noreferrer"{% else %}rel="noreferrer"{% endif %}>{{ result.repository }}</a></p>{% endif %}
-
-<div dir="ltr">
-{{ result.codelines|code_highlighter(result.code_language)|safe }}
-</div>
-
-{% if rtl %}
-{{ result_footer_rtl(result) }}
-{% else %}
-{{ result_footer(result) }}
-{% endif %}
+{% from 'oscar/macros.html' import result_header, result_sub_header, result_footer, result_footer_rtl, icon %}
+
+{{ result_header(result, favicons) }}
+{{ result_sub_header(result) }}
+
+{% if result.content %}<p class="result-content">{{ result.content|safe }}</p>{% endif %}
+
+{% if result.repository %}<p class="result-content">{{ icon('file') }} <a href="{{ result.repository }}" {% if results_on_new_tab %}target="_blank" rel="noopener noreferrer"{% else %}rel="noreferrer"{% endif %}>{{ result.repository }}</a></p>{% endif %}
+
+<div dir="ltr">
+{{ result.codelines|code_highlighter(result.code_language)|safe }}
+</div>
+
+{% if rtl %}
+{{ result_footer_rtl(result) }}
+{% else %}
+{{ result_footer(result) }}
+{% endif %}
diff --git a/searx/templates/oscar/result_templates/default.html b/searx/templates/oscar/result_templates/default.html
index 3ed0f3122..885cbbfa8 100644
--- a/searx/templates/oscar/result_templates/default.html
+++ b/searx/templates/oscar/result_templates/default.html
@@ -1,31 +1,31 @@
-{% from 'oscar/macros.html' import result_header, result_sub_header, result_footer, result_footer_rtl, icon with context %}
-
-{{ result_header(result, favicons) }}
-{{ result_sub_header(result) }}
-
-{% if result.embedded %}
- <small> &bull; <a class="text-info btn-collapse collapsed cursor-pointer media-loader disabled_if_nojs" data-toggle="collapse" data-target="#result-media-{{ index }}" data-btn-text-collapsed="{{ _('show media') }}" data-btn-text-not-collapsed="{{ _('hide media') }}">{{ icon('music') }} {{ _('show media') }}</a></small>
-{% endif %}
-
-{% if result.embedded %}
-<div id="result-media-{{ index }}" class="collapse">
- {{ result.embedded|safe }}
-</div>
-{% endif %}
-
-{% if result.img_src %}
-<div class="container-fluid">
- <div class="row">
-<img src="{{ image_proxify(result.img_src) }}" alt="{{ result.title|striptags }}" title="{{ result.title|striptags }}" style="width: auto; max-height: 60px; min-height: 60px;" class="col-xs-2 col-sm-4 col-md-4 result-content">
-{% if result.content %}<p class="result-content col-xs-8 col-sm-8 col-md-8">{{ result.content|safe }}</p>{% endif %}
- </div>
-</div>
-{% else %}
-{% if result.content %}<p class="result-content">{{ result.content|safe }}</p>{% endif %}
-{% endif %}
-
-{% if rtl %}
-{{ result_footer_rtl(result) }}
-{% else %}
-{{ result_footer(result) }}
-{% endif %}
+{% from 'oscar/macros.html' import result_header, result_sub_header, result_footer, result_footer_rtl, icon with context %}
+
+{{- result_header(result, favicons) -}}
+{{- result_sub_header(result) -}}
+
+{%- if result.embedded -%}
+ <small> &bull; <a class="text-info btn-collapse collapsed cursor-pointer media-loader disabled_if_nojs" data-toggle="collapse" data-target="#result-media-{{ index }}" data-btn-text-collapsed="{{ _('show media') }}" data-btn-text-not-collapsed="{{ _('hide media') }}">{{ icon('music') }} {{ _('show media') }}</a></small>
+{%- endif -%}
+
+{%- if result.embedded -%}
+<div id="result-media-{{ index }}" class="collapse">
+ {{ result.embedded|safe }}
+</div>
+{%- endif -%}
+
+{%- if result.img_src -%}
+<div class="container-fluid">
+ <div class="row">
+<img src="{{ image_proxify(result.img_src) }}" alt="{{ result.title|striptags }}" title="{{ result.title|striptags }}" style="width: auto; max-height: 60px; min-height: 60px;" class="col-xs-2 col-sm-4 col-md-4 result-content">
+{% if result.content %}<p class="result-content col-xs-8 col-sm-8 col-md-8">{{ result.content|safe }}</p>{% endif -%}
+ </div>
+</div>
+{%- else -%}
+{%- if result.content %}<p class="result-content">{{ result.content|safe }}</p>{% endif -%}
+{%- endif -%}
+
+{%- if rtl -%}
+{{ result_footer_rtl(result) }}
+{%- else -%}
+{{ result_footer(result) }}
+{%- endif -%}
diff --git a/searx/templates/oscar/result_templates/images.html b/searx/templates/oscar/result_templates/images.html
index b23f34915..d0a3b7b83 100644
--- a/searx/templates/oscar/result_templates/images.html
+++ b/searx/templates/oscar/result_templates/images.html
@@ -1,39 +1,36 @@
-{% from 'oscar/macros.html' import draw_favicon %}
-
-<a href="{{ result.img_src }}" {% if results_on_new_tab %}target="_blank" rel="noopener noreferrer"{% else %}rel="noreferrer"{% endif %} data-toggle="modal" data-target="#modal-{{ index }}-{{pageno}}">
- <img src="{% if result.thumbnail_src %}{{ image_proxify(result.thumbnail_src) }}{% else %}{{ image_proxify(result.img_src) }}{% endif %}" alt="{{ result.title|striptags }}" title="{{ result.title|striptags }}" class="img-thumbnail">
-</a>
-
-<div class="modal fade" id="modal-{{ index }}-{{ pageno }}" tabindex="-1" role="dialog" aria-hidden="true">
- <div class="modal-dialog">
- <div class="modal-wrapper">
- <div class="modal-header">
- <button type="button" class="close" data-dismiss="modal"><span aria-hidden="true">&times;</span><span class="sr-only">Close</span></button>
- <h4 class="modal-title">{% if result.engine~".png" in favicons %}{{ draw_favicon(result.engine) }} {% endif %}{{ result.title|striptags }}</h4>
- </div>
- <div class="modal-body">
- <img class="img-responsive center-block" src="{% if result.thumbnail_src %}{{ image_proxify(result.thumbnail_src) }}{% else %}{{ image_proxify(result.img_src) }}{% endif %}" alt="{{ result.title|striptags }}">
- {% if result.author %}<span class="photo-author">{{ result.author }}</span><br />{% endif %}
- {% if result.content %}
- <p class="result-content">
- {{ result.content }}
- </p>
- {% endif %}
- </div>
- <div class="modal-footer">
- <div class="clearfix"></div>
- <span class="label label-default pull-right">{{ result.engine }}</span>
- <p class="text-muted pull-left">{{ result.pretty_url }}</p>
- <div class="clearfix"></div>
- <div class="row">
- <div class="col-md-6">
- <a href="{{ result.img_src }}" {% if results_on_new_tab %}target="_blank" rel="noopener noreferrer"{% else %}rel="noreferrer"{% endif %} class="btn btn-default">{{ _('Get image') }}</a>
- </div>
- <div class="col-md-6">
- <a href="{{ result.url }}" {% if results_on_new_tab %}target="_blank" rel="noopener noreferrer"{% else %}rel="noreferrer"{% endif %} class="btn btn-default">{{ _('View source') }}</a>
- </div>
- </div>
- </div>
- </div>
- </div>
-</div>
+{%- from 'oscar/macros.html' import draw_favicon -%}
+
+<a href="{{ result.img_src }}" {% if results_on_new_tab %}target="_blank" rel="noopener noreferrer"{% else %}rel="noreferrer"{% endif %} data-toggle="modal" data-target="#modal-{{ index }}-{{pageno}}">{{- "" -}}
+ <img src="{% if result.thumbnail_src %}{{ image_proxify(result.thumbnail_src) }}{% else %}{{ image_proxify(result.img_src) }}{% endif %}" alt="{{ result.title|striptags }}" title="{{ result.title|striptags }}" class="img-thumbnail">{{- "" -}}
+</a>
+<div class="modal fade" id="modal-{{ index }}-{{ pageno }}" tabindex="-1" role="dialog" aria-hidden="true">{{- "" -}}
+ <div class="modal-dialog">{{- "" -}}
+ <div class="modal-wrapper">{{- "" -}}
+ <div class="modal-header">{{- "" -}}
+ <button type="button" class="close" data-dismiss="modal"><span aria-hidden="true">&times;</span><span class="sr-only">Close</span></button>{{- "" -}}
+ <h4 class="modal-title">{% if result.engine~".png" in favicons %}{{ draw_favicon(result.engine) }} {% endif %}{{ result.title|striptags }}</h4>{{- "" -}}
+ </div>{{- "" -}}
+ <div class="modal-body">{{- "" -}}
+ <img class="img-responsive center-block" src="{% if result.thumbnail_src %}{{ image_proxify(result.thumbnail_src) }}{% else %}{{ image_proxify(result.img_src) }}{% endif %}" alt="{{ result.title|striptags }}">
+ {%- if result.author %}<span class="photo-author">{{ result.author }}</span><br />{% endif -%}
+ {%- if result.content %}<p class="result-content">{{ result.content|striptags }}</p>{% endif -%}
+ {%- if result.img_format %}<p class="result-format">{{ result.img_format }}</p>{% endif -%}
+ {%- if result.source %}<p class="result-source">{{ result.source }}</p>{% endif -%}
+ </div>{{- "" -}}
+ <div class="modal-footer">{{- "" -}}
+ <div class="clearfix"></div>{{- "" -}}
+ <span class="label label-default pull-right">{{ result.engine }}</span>{{- "" -}}
+ <p class="text-muted pull-left">{{ result.pretty_url }}</p>{{- "" -}}
+ <div class="clearfix"></div>{{- "" -}}
+ <div class="row">{{- "" -}}
+ <div class="col-md-6">{{- "" -}}
+ <a href="{{ result.img_src }}" {% if results_on_new_tab %}target="_blank" rel="noopener noreferrer"{% else %}rel="noreferrer"{% endif %} class="btn btn-default">{{ _('Get image') }}</a>{{- "" -}}
+ </div>{{- "" -}}
+ <div class="col-md-6">{{- "" -}}
+ <a href="{{ result.url }}" {% if results_on_new_tab %}target="_blank" rel="noopener noreferrer"{% else %}rel="noreferrer"{% endif %} class="btn btn-default">{{ _('View source') }}</a>{{- "" -}}
+ </div>{{- "" -}}
+ </div>{{- "" -}}
+ </div>{{- "" -}}
+ </div>{{- "" -}}
+ </div>{{- "" -}}
+</div>{{- "" -}}
diff --git a/searx/templates/oscar/result_templates/key-value.html b/searx/templates/oscar/result_templates/key-value.html
new file mode 100644
index 000000000..67c748e7f
--- /dev/null
+++ b/searx/templates/oscar/result_templates/key-value.html
@@ -0,0 +1,19 @@
+{% from 'oscar/macros.html' import result_footer, result_footer_rtl with context %}
+<div class="panel panel-default">
+<table class="table table-responsive table-bordered table-condensed">
+ {% for key, value in result.items() %}
+ {% if key in ['engine', 'engines', 'template', 'score', 'category', 'positions'] %}
+ {% continue %}
+ {% endif %}
+ <tr>
+ <td><b>{{ key|upper }}</b>: {{ value }}</td>
+ </tr>
+ {% endfor %}
+</table>
+
+{% if rtl %}
+{{ result_footer_rtl(result) }}
+{% else %}
+{{ result_footer(result) }}
+{% endif %}
+</div>
diff --git a/searx/templates/oscar/result_templates/map.html b/searx/templates/oscar/result_templates/map.html
index 822c7cdea..712375d7f 100644
--- a/searx/templates/oscar/result_templates/map.html
+++ b/searx/templates/oscar/result_templates/map.html
@@ -1,72 +1,72 @@
-{% from 'oscar/macros.html' import result_header, result_sub_header, result_footer, result_footer_rtl, icon %}
-
-{{ result_header(result, favicons) }}
-{{ result_sub_header(result) }}
-
-{% if (result.latitude and result.longitude) or result.boundingbox %}
- <small> &bull; <a class="text-info btn-collapse collapsed searx_init_map cursor-pointer disabled_if_nojs" data-toggle="collapse" data-target="#result-map-{{ index }}" data-leaflet-target="osm-map-{{ index }}" data-map-lon="{{ result.longitude }}" data-map-lat="{{ result.latitude }}" {% if result.boundingbox %}data-map-boundingbox='{{ result.boundingbox|tojson|safe }}'{% endif %} {% if result.geojson %}data-map-geojson='{{ result.geojson|tojson|safe }}'{% endif %} data-btn-text-collapsed="{{ _('show map') }}" data-btn-text-not-collapsed="{{ _('hide map') }}">{{ icon('globe') }} {{ _('show map') }}</a></small>
-{% endif %}
-
-{% if result.osm and (result.osm.type and result.osm.id) %}
- <small> &bull; <a class="text-info btn-collapse collapsed cursor-pointer searx_overpass_request disabled_if_nojs" data-toggle="collapse" data-target="#result-overpass-{{ index }}" data-osm-type="{{ result.osm.type }}" data-osm-id="{{ result.osm.id }}" data-result-table="result-overpass-table-{{ index }}" data-result-table-loadicon="result-overpass-table-loading-{{ index }}" data-btn-text-collapsed="{{ _('show details') }}" data-btn-text-not-collapsed="{{ _('hide details') }}">{{ icon('map-marker') }} {{ _('show details') }}</a></small>
-{% endif %}
-
-{# {% if (result.latitude and result.longitude) %}
- <small> &bull; <a class="text-info btn-collapse collapsed cursor-pointer disabled_if_nojs" data-toggle="collapse" data-target="#result-geodata-{{ index }}" data-btn-text-collapsed="{{ _('show geodata') }}" data-btn-text-not-collapsed="{{ _('hide geodata') }}">{{ icon('map-marker') }} {{ _('show geodata') }}</a></small>
-{% endif %} #}
-
-<div class="container-fluid">
-
-{% if result.address %}
-<p class="row result-content result-adress col-xs-12 col-sm-5 col-md-4" itemscope itemtype="http://schema.org/PostalAddress">
- {% if result.address.name %}
- <strong itemprop="name">{{ result.address.name }}</strong><br/>
- {% endif %}
- {% if result.address.road %}
- <span itemprop="streetAddress">
- {% if result.address.house_number %}{{ result.address.house_number }}, {% endif %}
- {{ result.address.road }}
- </span><br/>
- {% endif %}
- {% if result.address.locality %}
- <span itemprop="addressLocality">{{ result.address.locality }}</span>
- {% if result.address.postcode %}, <span itemprop="postalCode">{{ result.address.postcode }}</span>{% endif %}
- <br/>
- {% endif %}
- {% if result.address.country %}
- <span itemprop="addressCountry">{{ result.address.country }}</span>
- {% endif %}
-</p>
-{% endif %}
-
-{% if result.osm and (result.osm.type and result.osm.id) %}
- <div class="row result-content collapse col-xs-12 col-sm-7 col-md-8" id="result-overpass-{{ index }}"{% if rtl %} dir="ltr"{% endif %}>
- <div class="text-center" id="result-overpass-table-loading-{{ index }}"><img src="{{ url_for('static', filename='img/loader.gif') }}" alt="Loading ..."/></div>
- <table class="table table-striped table-condensed hidden" id="result-overpass-table-{{ index }}">
- <tr><th>key</th><th>value</th></tr>
- </table>
- </div>
-{% endif %}
-
-{# {% if (result.latitude and result.longitude) %}
- <div class="row collapse col-xs-12 col-sm-5 col-md-4" id="result-geodata-{{ index }}">
- <strong>Longitude:</strong> {{ result.longitude }} <br/>
- <strong>Latitude:</strong> {{ result.latitude }}
- </div>
-{% endif %} #}
-
-{% if result.content %}<p class="row result-content col-xs-12 col-sm-12 col-md-12">{{ result.content|safe }}</p>{% endif %}
-
-</div>
-
-{% if (result.latitude and result.longitude) or result.boundingbox %}
- <div class="collapse" id="result-map-{{ index }}">
- <div style="height:300px; width:100%; margin: 10px 0;" id="osm-map-{{ index }}"></div>
- </div>
-{% endif %}
-
-{% if rtl %}
-{{ result_footer_rtl(result) }}
-{% else %}
-{{ result_footer(result) }}
-{% endif %}
+{% from 'oscar/macros.html' import result_header, result_sub_header, result_footer, result_footer_rtl, icon %}
+
+{{ result_header(result, favicons) }}
+{{ result_sub_header(result) }}
+
+{% if (result.latitude and result.longitude) or result.boundingbox %}
+ <small> &bull; <a class="text-info btn-collapse collapsed searx_init_map cursor-pointer disabled_if_nojs" data-toggle="collapse" data-target="#result-map-{{ index }}" data-leaflet-target="osm-map-{{ index }}" data-map-lon="{{ result.longitude }}" data-map-lat="{{ result.latitude }}" {% if result.boundingbox %}data-map-boundingbox='{{ result.boundingbox|tojson|safe }}'{% endif %} {% if result.geojson %}data-map-geojson='{{ result.geojson|tojson|safe }}'{% endif %} data-btn-text-collapsed="{{ _('show map') }}" data-btn-text-not-collapsed="{{ _('hide map') }}">{{ icon('globe') }} {{ _('show map') }}</a></small>
+{% endif %}
+
+{% if result.osm and (result.osm.type and result.osm.id) %}
+ <small> &bull; <a class="text-info btn-collapse collapsed cursor-pointer searx_overpass_request disabled_if_nojs" data-toggle="collapse" data-target="#result-overpass-{{ index }}" data-osm-type="{{ result.osm.type }}" data-osm-id="{{ result.osm.id }}" data-result-table="result-overpass-table-{{ index }}" data-result-table-loadicon="result-overpass-table-loading-{{ index }}" data-btn-text-collapsed="{{ _('show details') }}" data-btn-text-not-collapsed="{{ _('hide details') }}">{{ icon('map-marker') }} {{ _('show details') }}</a></small>
+{% endif %}
+
+{# {% if (result.latitude and result.longitude) %}
+ <small> &bull; <a class="text-info btn-collapse collapsed cursor-pointer disabled_if_nojs" data-toggle="collapse" data-target="#result-geodata-{{ index }}" data-btn-text-collapsed="{{ _('show geodata') }}" data-btn-text-not-collapsed="{{ _('hide geodata') }}">{{ icon('map-marker') }} {{ _('show geodata') }}</a></small>
+{% endif %} #}
+
+<div class="container-fluid">
+
+{% if result.address %}
+<p class="row result-content result-adress col-xs-12 col-sm-5 col-md-4" itemscope itemtype="http://schema.org/PostalAddress">
+ {% if result.address.name %}
+ <strong itemprop="name">{{ result.address.name }}</strong><br/>
+ {% endif %}
+ {% if result.address.road %}
+ <span itemprop="streetAddress">
+ {% if result.address.house_number %}{{ result.address.house_number }}, {% endif %}
+ {{ result.address.road }}
+ </span><br/>
+ {% endif %}
+ {% if result.address.locality %}
+ <span itemprop="addressLocality">{{ result.address.locality }}</span>
+ {% if result.address.postcode %}, <span itemprop="postalCode">{{ result.address.postcode }}</span>{% endif %}
+ <br/>
+ {% endif %}
+ {% if result.address.country %}
+ <span itemprop="addressCountry">{{ result.address.country }}</span>
+ {% endif %}
+</p>
+{% endif %}
+
+{% if result.osm and (result.osm.type and result.osm.id) %}
+ <div class="row result-content collapse col-xs-12 col-sm-7 col-md-8" id="result-overpass-{{ index }}"{% if rtl %} dir="ltr"{% endif %}>
+ <div class="text-center" id="result-overpass-table-loading-{{ index }}"><img src="{{ url_for('static', filename='img/loader.gif') }}" alt="Loading ..."/></div>
+ <table class="table table-striped table-condensed hidden" id="result-overpass-table-{{ index }}">
+ <tr><th>key</th><th>value</th></tr>
+ </table>
+ </div>
+{% endif %}
+
+{# {% if (result.latitude and result.longitude) %}
+ <div class="row collapse col-xs-12 col-sm-5 col-md-4" id="result-geodata-{{ index }}">
+ <strong>Longitude:</strong> {{ result.longitude }} <br/>
+ <strong>Latitude:</strong> {{ result.latitude }}
+ </div>
+{% endif %} #}
+
+{% if result.content %}<p class="row result-content col-xs-12 col-sm-12 col-md-12">{{ result.content|safe }}</p>{% endif %}
+
+</div>
+
+{% if (result.latitude and result.longitude) or result.boundingbox %}
+ <div class="collapse" id="result-map-{{ index }}">
+ <div style="height:300px; width:100%; margin: 10px 0;" id="osm-map-{{ index }}"></div>
+ </div>
+{% endif %}
+
+{% if rtl %}
+{{ result_footer_rtl(result) }}
+{% else %}
+{{ result_footer(result) }}
+{% endif %}
diff --git a/searx/templates/oscar/result_templates/torrent.html b/searx/templates/oscar/result_templates/torrent.html
index bc2b30fbe..089367e36 100644
--- a/searx/templates/oscar/result_templates/torrent.html
+++ b/searx/templates/oscar/result_templates/torrent.html
@@ -3,7 +3,7 @@
{{ result_header(result, favicons) }}
{{ result_sub_header(result) }}
-<p class="result-content">{{ icon('transfer') }} {{ _('Seeder') }} <span class="badge">{{ result.seed }}</span> &bull; {{ _('Leecher') }} <span class="badge">{{ result.leech }}</span>
+{% if result.seed is defined %}<p class="result-content">{{ icon('transfer') }} {{ _('Seeder') }} <span class="badge">{{ result.seed }}</span> &bull; {{ _('Leecher') }} <span class="badge">{{ result.leech }}</span>{% endif %}
{% if result.filesize %}<br />{{ icon('floppy-disk') }} {{ _('Filesize') }}
<span class="badge">
{% if result.filesize < 1024 %}{{ result.filesize }} {{ _('Bytes') }}
diff --git a/searx/templates/oscar/result_templates/videos.html b/searx/templates/oscar/result_templates/videos.html
index 36fb26240..3c1913d9d 100644
--- a/searx/templates/oscar/result_templates/videos.html
+++ b/searx/templates/oscar/result_templates/videos.html
@@ -1,27 +1,27 @@
-{% from 'oscar/macros.html' import result_header, result_sub_header, result_footer, result_footer_rtl, icon %}
-
-{{ result_header(result, favicons) }}
-{{ result_sub_header(result) }}
-
-{% if result.embedded %}
- <small> &bull; <a class="text-info btn-collapse collapsed cursor-pointer media-loader disabled_if_nojs" data-toggle="collapse" data-target="#result-video-{{ index }}" data-btn-text-collapsed="{{ _('show video') }}" data-btn-text-not-collapsed="{{ _('hide video') }}">{{ icon('film') }} {{ _('show video') }}</a></small>
-{% endif %}
-
-{% if result.embedded %}
-<div id="result-video-{{ index }}" class="collapse">
- {{ result.embedded|safe }}
-</div>
-{% endif %}
-
-<div class="container-fluid">
- <div class="row">
- <a href="{{ result.url }}" {% if results_on_new_tab %}target="_blank" rel="noopener noreferrer"{% else %}rel="noreferrer"{% endif %}><img class="thumbnail col-xs-6 col-sm-4 col-md-4 result-content" src="{{ image_proxify(result.thumbnail) }}" alt="{{ result.title|striptags }} {{ result.engine }}" /></a>
- {% if result.content %}<p class="col-xs-12 col-sm-8 col-md-8 result-content">{{ result.content|safe }}</p>{% endif %}
- </div>
-</div>
-
-{% if rtl %}
-{{ result_footer_rtl(result) }}
-{% else %}
-{{ result_footer(result) }}
-{% endif %}
+{% from 'oscar/macros.html' import result_header, result_sub_header, result_footer, result_footer_rtl, icon %}
+
+{{ result_header(result, favicons) }}
+{{ result_sub_header(result) }}
+
+{% if result.embedded %}
+ <small> &bull; <a class="text-info btn-collapse collapsed cursor-pointer media-loader disabled_if_nojs" data-toggle="collapse" data-target="#result-video-{{ index }}" data-btn-text-collapsed="{{ _('show video') }}" data-btn-text-not-collapsed="{{ _('hide video') }}">{{ icon('film') }} {{ _('show video') }}</a></small>
+{% endif %}
+
+{% if result.embedded %}
+<div id="result-video-{{ index }}" class="collapse">
+ {{ result.embedded|safe }}
+</div>
+{% endif %}
+
+<div class="container-fluid">
+ <div class="row">
+ <a href="{{ result.url }}" {% if results_on_new_tab %}target="_blank" rel="noopener noreferrer"{% else %}rel="noreferrer"{% endif %}><img class="thumbnail col-xs-6 col-sm-4 col-md-4 result-content" src="{{ image_proxify(result.thumbnail) }}" alt="{{ result.title|striptags }} {{ result.engine }}" /></a>
+ {% if result.content %}<p class="col-xs-12 col-sm-8 col-md-8 result-content">{{ result.content|safe }}</p>{% endif %}
+ </div>
+</div>
+
+{% if rtl %}
+{{ result_footer_rtl(result) }}
+{% else %}
+{{ result_footer(result) }}
+{% endif %}
diff --git a/searx/templates/oscar/results.html b/searx/templates/oscar/results.html
index ee1052dba..43e3e26d9 100644
--- a/searx/templates/oscar/results.html
+++ b/searx/templates/oscar/results.html
@@ -1,155 +1,156 @@
-{% extends "oscar/base.html" %}
-{% macro search_form_attrs(pageno) -%}
- {% for category in selected_categories %}<input type="hidden" name="category_{{ category }}" value="1"/>{% endfor %}
- <input type="hidden" name="q" value="{{ q|e }}" />
- <input type="hidden" name="pageno" value="{{ pageno }}" />
- <input type="hidden" name="time_range" value="{{ time_range }}" />
- <input type="hidden" name="language" value="{{ current_language }}" />
-{%- endmacro %}
-{%- macro search_url() %}{{ base_url }}?q={{ q|urlencode }}{% if selected_categories %}&amp;categories={{ selected_categories|join(",") | replace(' ','+') }}{% endif %}{% if pageno > 1 %}&amp;pageno={{ pageno }}{% endif %}{% if time_range %}&amp;time_range={{ time_range }}{% endif %}{% if current_language != 'all' %}&amp;language={{ current_language }}{% endif %}{% endmacro -%}
-
-{% block title %}{{ q|e }} - {% endblock %}
-{% block meta %}<link rel="alternate" type="application/rss+xml" title="Searx search: {{ q|e }}" href="{{ search_url() }}&amp;format=rss">{% endblock %}
-{% block content %}
- {% include 'oscar/search.html' %}
- <div class="row">
- <div class="col-sm-8" id="main_results">
- <h1 class="sr-only">{{ _('Search results') }}</h1>
-
- {% if corrections %}
- <div class="result">
- <span class="result_header text-muted form-inline pull-left suggestion_item">{{ _('Try searching for:') }}</span>
- {% for correction in corrections %}
- <form method="{{ method or 'POST' }}" action="{{ url_for('index') }}" role="navigation" class="form-inline pull-left suggestion_item">
- <input type="hidden" name="q" value="{{ correction }}">
- <button type="submit" class="btn btn-default btn-xs">{{ correction }}</button>
- </form>
- {% endfor %}
- </div>
- {% endif %}
-
- {% if answers %}
- {% for answer in answers %}
- <div class="result well">
- <span>{{ answer }}</span>
- </div>
- {% endfor %}
- {% endif %}
-
- {% for result in results %}
- <div class="result {% if result['template'] %}result-{{ result.template|replace('.html', '') }}{% else %}result-default{% endif %}">
- {% set index = loop.index %}
- {% if result.template %}
- {% include get_result_template('oscar', result['template']) %}
- {% else %}
- {% include 'oscar/result_templates/default.html' %}
- {% endif %}
- </div>
- {% endfor %}
-
- {% if not results and not answers %}
- {% include 'oscar/messages/no_results.html' %}
- {% endif %}
-
- <div class="clearfix"></div>
-
- {% if paging %}
- {% if rtl %}
- <div id="pagination">
- <div class="pull-left">
- <form method="{{ method or 'POST' }}" action="{{ url_for('index') }}" class="pull-left">
- {{ search_form_attrs(pageno+1) }}
- <button type="submit" class="btn btn-default"><span class="glyphicon glyphicon-backward"></span> {{ _('next page') }}</button>
- </form>
- </div>
- <div class="pull-right">
- <form method="{{ method or 'POST' }}" action="{{ url_for('index') }}" class="pull-left">
- {{ search_form_attrs(pageno-1) }}
- <button type="submit" class="btn btn-default" {% if pageno == 1 %}disabled{% endif %}><span class="glyphicon glyphicon-forward"></span> {{ _('previous page') }}</button>
- </form>
- </div>
- </div><!-- /#pagination -->
- <div class="clearfix"></div>
- {% else %}
- <div id="pagination">
- <div class="pull-left">
- <form method="{{ method or 'POST' }}" action="{{ url_for('index') }}" class="pull-left">
- {{ search_form_attrs(pageno-1) }}
- <button type="submit" class="btn btn-default" {% if pageno == 1 %}disabled{% endif %}><span class="glyphicon glyphicon-backward"></span> {{ _('previous page') }}</button>
- </form>
- </div>
- <div class="pull-right">
- <form method="{{ method or 'POST' }}" action="{{ url_for('index') }}" class="pull-left">
- {{ search_form_attrs(pageno+1) }}
- <button type="submit" class="btn btn-default"><span class="glyphicon glyphicon-forward"></span> {{ _('next page') }}</button>
- </form>
- </div>
- </div><!-- /#pagination -->
- <div class="clearfix"></div>
- {% endif %}
- {% endif %}
- </div><!-- /#main_results -->
-
- <div class="col-sm-4" id="sidebar_results">
- {% if number_of_results != '0' %}
- <p><small>{{ _('Number of results') }}: {{ number_of_results }}</small></p>
- {% endif %}
-
- {% if unresponsive_engines and results|length >= 1 %}
- <div class="alert alert-danger fade in" role="alert">
- <p>{{ _('Engines cannot retrieve results') }}:</p>
- {% for engine_name, error_type in unresponsive_engines %}
- {{ engine_name }} ({{ error_type }}){% if not loop.last %}, {% endif %}
- {% endfor %}
- </div>
- {% endif %}
-
- {% if infoboxes %}
- {% for infobox in infoboxes %}
- {% include 'oscar/infobox.html' %}
- {% endfor %}
- {% endif %}
-
- {% if suggestions %}
- <div class="panel panel-default">
- <div class="panel-heading">
- <h4 class="panel-title">{{ _('Suggestions') }}</h4>
- </div>
- <div class="panel-body">
- {% for suggestion in suggestions %}
- <form method="{{ method or 'POST' }}" action="{{ url_for('index') }}" role="navigation" class="form-inline pull-{% if rtl %}right{% else %}left{% endif %} suggestion_item">
- <input type="hidden" name="q" value="{{ suggestion }}">
- <button type="submit" class="btn btn-default btn-xs">{{ suggestion }}</button>
- </form>
- {% endfor %}
- </div>
- </div>
- {% endif %}
-
- <div class="panel panel-default">
- <div class="panel-heading">
- <h4 class="panel-title">{{ _('Links') }}</h4>
- </div>
- <div class="panel-body">
- <form role="form">
- <div class="form-group">
- <label for="search_url">{{ _('Search URL') }}</label>
- <input id="search_url" type="url" class="form-control select-all-on-click cursor-text" name="search_url" value="{{ search_url() }}" readonly>
- </div>
- </form>
-
- <label>{{ _('Download results') }}</label>
- <div class="clearfix"></div>
- {% for output_type in ('csv', 'json', 'rss') %}
- <form method="{{ method or 'POST' }}" action="{{ url_for('index') }}" class="form-inline pull-{% if rtl %}right{% else %}left{% endif %} result_download">
- {{ search_form_attrs(pageno) }}
- <input type="hidden" name="format" value="{{ output_type }}">
- <button type="submit" class="btn btn-default">{{ output_type }}</button>
- </form>
- {% endfor %}
- <div class="clearfix"></div>
- </div>
- </div>
- </div><!-- /#sidebar_results -->
- </div>
-{% endblock %}
+{% extends "oscar/base.html" %}
+{% macro search_form_attrs(pageno) -%}
+ {%- for category in selected_categories -%}<input type="hidden" name="category_{{ category }}" value="1"/>{%- endfor -%}
+ <input type="hidden" name="q" value="{{ q|e }}" />{{- "" -}}
+ <input type="hidden" name="pageno" value="{{ pageno }}" />{{- "" -}}
+ <input type="hidden" name="time_range" value="{{ time_range }}" />{{- "" -}}
+ <input type="hidden" name="language" value="{{ current_language }}" />{{- "" -}}
+ {% if timeout_limit %}<input type="hidden" name="timeout_limit" value="{{ timeout_limit|e }}" />{% endif -%}
+{%- endmacro %}
+{%- macro search_url() %}{{ base_url }}?q={{ q|urlencode }}{% if selected_categories %}&amp;categories={{ selected_categories|join(",") | replace(' ','+') }}{% endif %}{% if pageno > 1 %}&amp;pageno={{ pageno }}{% endif %}{% if time_range %}&amp;time_range={{ time_range }}{% endif %}{% if current_language != 'all' %}&amp;language={{ current_language }}{% endif %}{% endmacro -%}
+
+{% block title %}{{ q|e }} - {% endblock %}
+{% block meta %}{{" "}}<link rel="alternate" type="application/rss+xml" title="Searx search: {{ q|e }}" href="{{ search_url() }}&amp;format=rss">{% endblock %}
+{% block content %}
+ {% include 'oscar/search.html' %}
+
+ <div class="row">
+ <div class="col-sm-4 col-sm-push-8" id="sidebar_results">
+ {% if number_of_results != '0' -%}
+ <p><small>{{ _('Number of results') }}: {{ number_of_results }}</small></p>
+ {%- endif %}
+
+ {% if unresponsive_engines and results|length >= 1 -%}
+ <div class="alert alert-danger fade in" role="alert">
+ <p>{{ _('Engines cannot retrieve results') }}:</p>
+ {%- for engine_name, error_type in unresponsive_engines -%}
+ {{- engine_name }} ({{ error_type }}){% if not loop.last %}, {% endif %}{{- "" -}}
+ {%- endfor -%}
+ </div>
+ {%- endif %}
+
+ {% if infoboxes -%}
+ {% for infobox in infoboxes %}
+ {% include 'oscar/infobox.html' %}{{- "\n\n" -}}
+ {% endfor %}
+ {%- endif %}
+
+ {% if suggestions %}
+ <div class="panel panel-default">
+ <div class="panel-heading">
+ <h4 class="panel-title">{{ _('Suggestions') }}</h4>
+ </div>
+ <div class="panel-body">
+ {% for suggestion in suggestions %}
+ <form method="{{ method or 'POST' }}" action="{{ url_for('index') }}" role="navigation" class="form-inline pull-{% if rtl %}right{% else %}left{% endif %} suggestion_item">
+ <input type="hidden" name="q" value="{{ suggestion.url }}">
+ <button type="submit" class="btn btn-default btn-xs">{{ suggestion.title }}</button>
+ </form>
+ {% endfor %}
+ </div>
+ </div>
+ {%- endif %}
+
+ <div class="panel panel-default">
+ <div class="panel-heading">{{- "" -}}
+ <h4 class="panel-title">{{ _('Links') }}</h4>{{- "" -}}
+ </div>
+ <div class="panel-body">
+ <form role="form">{{- "" -}}
+ <div class="form-group">{{- "" -}}
+ <label for="search_url">{{ _('Search URL') }}</label>{{- "" -}}
+ <input id="search_url" type="url" class="form-control select-all-on-click cursor-text" name="search_url" value="{{ search_url() }}" readonly>{{- "" -}}
+ </div>{{- "" -}}
+ </form>
+ <label>{{ _('Download results') }}</label>
+ <div class="clearfix"></div>
+ {% for output_type in ('csv', 'json', 'rss') %}
+ <form method="{{ method or 'POST' }}" action="{{ url_for('index') }}" class="form-inline pull-{% if rtl %}right{% else %}left{% endif %} result_download">
+ {{- search_form_attrs(pageno) -}}
+ <input type="hidden" name="format" value="{{ output_type }}">{{- "" -}}
+ <button type="submit" class="btn btn-default">{{ output_type }}</button>{{- "" -}}
+ </form>
+ {% endfor %}
+ <div class="clearfix"></div>
+ </div>
+ </div>
+ </div><!-- /#sidebar_results -->
+
+ <div class="col-sm-8 col-sm-pull-4" id="main_results">
+ <h1 class="sr-only">{{ _('Search results') }}</h1>
+
+ {% if corrections -%}
+ <div class="result">
+ <span class="result_header text-muted form-inline pull-left suggestion_item">{{ _('Try searching for:') }}</span>
+ {% for correction in corrections -%}
+ <form method="{{ method or 'POST' }}" action="{{ url_for('index') }}" role="navigation" class="form-inline pull-left suggestion_item">{{- "" -}}
+ <input type="hidden" name="q" value="{{ correction.url }}">{{- "" -}}
+ <button type="submit" class="btn btn-default btn-xs">{{ correction.title }}</button>{{- "" -}}
+ </form>
+ {% endfor %}
+ </div>
+ {%- endif %}
+
+ {% if answers -%}
+ {%- for answer in answers %}
+ <div class="result well">
+ <span>{{ answer }}</span>
+ </div>
+ {%- endfor %}
+ {%- endif %}
+
+ {% for result in results -%}
+ <div class="result {% if result['template'] %}result-{{ result.template|replace('.html', '') }}{% else %}result-default{% endif %}">
+ {%- set index = loop.index -%}
+ {%- if result.template -%}
+ {% include get_result_template('oscar', result['template']) %}
+ {%- else -%}
+ {% include 'oscar/result_templates/default.html' %}
+ {%- endif -%}
+ </div>
+ {% endfor %}
+
+ {% if not results and not answers -%}
+ {% include 'oscar/messages/no_results.html' %}
+ {% endif %}
+
+ <div class="clearfix"></div>
+
+ {% if paging -%}
+ {% if rtl %}
+ <div id="pagination">
+ <div class="pull-left">{{- "" -}}
+ <form method="{{ method or 'POST' }}" action="{{ url_for('index') }}" class="pull-left">
+ {{- search_form_attrs(pageno+1) -}}
+ <button type="submit" class="btn btn-default"><span class="glyphicon glyphicon-backward"></span> {{ _('next page') }}</button>{{- "" -}}
+ </form>{{- "" -}}
+ </div>
+ <div class="pull-right">{{- "" -}}
+ <form method="{{ method or 'POST' }}" action="{{ url_for('index') }}" class="pull-left">
+ {{- search_form_attrs(pageno-1) -}}
+ <button type="submit" class="btn btn-default" {% if pageno == 1 %}disabled{% endif %}><span class="glyphicon glyphicon-forward"></span> {{ _('previous page') }}</button>{{- "" -}}
+ </form>{{- "" -}}
+ </div>
+ </div><!-- /#pagination -->
+ <div class="clearfix"></div>
+ {% else %}
+ <div id="pagination">
+ <div class="pull-left">{{- "" -}}
+ <form method="{{ method or 'POST' }}" action="{{ url_for('index') }}" class="pull-left">
+ {{- search_form_attrs(pageno-1) -}}
+ <button type="submit" class="btn btn-default" {% if pageno == 1 %}disabled{% endif %}><span class="glyphicon glyphicon-backward"></span> {{ _('previous page') }}</button>{{- "" -}}
+ </form>{{- "" -}}
+ </div>
+ <div class="pull-right">{{- "" -}}
+ <form method="{{ method or 'POST' }}" action="{{ url_for('index') }}" class="pull-left">
+ {{- search_form_attrs(pageno+1) -}}
+ <button type="submit" class="btn btn-default"><span class="glyphicon glyphicon-forward"></span> {{ _('next page') }}</button>{{- "" -}}
+ </form>{{- "" -}}
+ </div>
+ </div><!-- /#pagination -->
+ <div class="clearfix"></div>
+ {% endif %}
+ {% endif %}
+ </div><!-- /#main_results -->
+ </div>
+{% endblock %}
diff --git a/searx/templates/oscar/search.html b/searx/templates/oscar/search.html
index 59ee4688d..cad9eca89 100644
--- a/searx/templates/oscar/search.html
+++ b/searx/templates/oscar/search.html
@@ -1,24 +1,24 @@
-{% from 'oscar/macros.html' import icon %}
-<form method="{{ method or 'POST' }}" action="{{ url_for('index') }}" id="search_form" role="search">
- <div class="row">
- <div class="col-xs-12 col-md-8">
- <div class="input-group search-margin">
- <input type="search" name="q" class="form-control" id="q" placeholder="{{ _('Search for...') }}" autocomplete="off" value="{{ q }}">
- <span class="input-group-btn">
- <button type="submit" class="btn btn-default"><span class="hide_if_nojs">{{ icon('search') }}</span><span class="hidden active_if_nojs">{{ _('Start search') }}</span></button>
- </span>
- </div>
- </div>
- <div class="col-xs-6 col-md-2 search-margin">
- {% include 'oscar/time-range.html' %}
- </div>
- <div class="col-xs-6 col-md-2 search-margin">
- {% include 'oscar/languages.html' %}
- </div>
- </div>
- <div class="row">
- <div class="col-sm-12">
- {% include 'oscar/categories.html' %}
- </div>
- </div>
-</form><!-- / #search_form_full -->
+{% from 'oscar/macros.html' import icon %}
+<form method="{{ method or 'POST' }}" action="{{ url_for('index') }}" id="search_form" role="search">
+ <div class="row">
+ <div class="col-xs-12 col-md-8">
+ <div class="input-group search-margin">
+ <input type="search" name="q" class="form-control" id="q" placeholder="{{ _('Search for...') }}" aria-label="{{ _('Search for...') }}" autocomplete="off" value="{{ q }}" accesskey="s">
+ <span class="input-group-btn">
+ <button type="submit" class="btn btn-default" aria-label="{{ _('Start search') }}"><span class="hide_if_nojs">{{ icon('search') }}</span><span class="hidden active_if_nojs">{{ _('Start search') }}</span></button>
+ </span>
+ </div>
+ </div>
+ <div class="col-xs-6 col-md-2 search-margin">
+ {%- include 'oscar/time-range.html' -%}
+ </div>
+ <div class="col-xs-6 col-md-2 search-margin">
+ {%- include 'oscar/languages.html' -%}
+ </div>
+ </div>
+ <div class="row">
+ <div class="col-sm-12">
+ {%- include 'oscar/categories.html' -%}
+ </div>
+ </div>
+</form><!-- / #search_form_full -->
diff --git a/searx/templates/oscar/search_full.html b/searx/templates/oscar/search_full.html
index 6fdae4028..656463178 100644
--- a/searx/templates/oscar/search_full.html
+++ b/searx/templates/oscar/search_full.html
@@ -1,18 +1,18 @@
-{% from 'oscar/macros.html' import icon %}
-
-<form method="{{ method or 'POST' }}" action="{{ url_for('index') }}" id="search_form" role="search">
- {% if rtl %}
- <div class="input-group">
- {% else %}
- <div class="input-group col-md-8 col-md-offset-2">
- {% endif %}
- <input type="search" name="q" class="form-control input-lg autofocus" id="q" placeholder="{{ _('Search for...') }}" autocomplete="off" value="{{ q }}">
- <span class="input-group-btn">
- <button type="submit" class="btn btn-default input-lg"><span class="hide_if_nojs">{{ icon('search') }}</span><span class="hidden active_if_nojs">{{ _('Start search') }}</span></button>
- </span>
- </div>
- <div class="col-md-8 col-md-offset-2 advanced">
- {% include 'oscar/advanced.html' %}
- </div>
-
-</form><!-- / #search_form_full -->
+{% from 'oscar/macros.html' import icon %}
+
+<form method="{{ method or 'POST' }}" action="{{ url_for('index') }}" id="search_form" role="search">
+ {% if rtl %}
+ <div class="input-group">
+ {% else %}
+ <div class="input-group col-md-8 col-md-offset-2">
+ {% endif %}
+ <input type="search" name="q" class="form-control input-lg autofocus" id="q" placeholder="{{ _('Search for...') }}" aria-label="{{ _('Search for...') }}" autocomplete="off" value="{{ q }}" accesskey="s">
+ <span class="input-group-btn">
+ <button type="submit" class="btn btn-default input-lg" aria-label="{{ _('Start search') }}"><span class="hide_if_nojs">{{ icon('search') }}</span><span class="hidden active_if_nojs">{{ _('Start search') }}</span></button>
+ </span>
+ </div>
+ <div class="col-md-8 col-md-offset-2 advanced">
+ {% include 'oscar/advanced.html' %}
+ </div>
+
+</form><!-- / #search_form_full -->
diff --git a/searx/templates/oscar/time-range.html b/searx/templates/oscar/time-range.html
index d5efe9182..fb1c0754b 100644
--- a/searx/templates/oscar/time-range.html
+++ b/searx/templates/oscar/time-range.html
@@ -1,17 +1,17 @@
-<select name="time_range" id="time-range" class="custom-select form-control">
+<select name="time_range" id="time-range" class="custom-select form-control" accesskey="t">{{- "" -}}
<option id="time-range-anytime" value="" {{ "selected" if time_range=="" or not time_range else ""}}>
- {{ _('Anytime') }}
- </option>
+ {{- _('Anytime') -}}
+ </option>{{- "" -}}
<option id="time-range-day" value="day" {{ "selected" if time_range=="day" else ""}}>
- {{ _('Last day') }}
- </option>
+ {{- _('Last day') -}}
+ </option>{{- "" -}}
<option id="time-range-week" value="week" {{ "selected" if time_range=="week" else ""}}>
- {{ _('Last week') }}
- </option>
+ {{- _('Last week') -}}
+ </option>{{- "" -}}
<option id="time-range-month" value="month" {{ "selected" if time_range=="month" else ""}}>
- {{ _('Last month') }}
- </option>
+ {{- _('Last month') -}}
+ </option>{{- "" -}}
<option id="time-range-year" value="year" {{ "selected" if time_range=="year" else ""}}>
- {{ _('Last year') }}
- </option>
+ {{- _('Last year') -}}
+ </option>{{- "" -}}
</select>
diff --git a/searx/templates/simple/base.html b/searx/templates/simple/base.html
index 734dccbe8..92597b654 100644
--- a/searx/templates/simple/base.html
+++ b/searx/templates/simple/base.html
@@ -11,29 +11,26 @@
<meta name="HandheldFriendly" content="True">
<meta http-equiv="X-UA-Compatible" content="IE=edge, chrome=1">
<title>{% block title %}{% endblock %}{{ instance_name }}</title>
+ {% block meta %}{% endblock %}
{% if rtl %}
<link rel="stylesheet" href="{{ url_for('static', filename='css/searx-rtl.min.css') }}" type="text/css" media="screen" />
{% else %}
<link rel="stylesheet" href="{{ url_for('static', filename='css/searx.min.css') }}" type="text/css" media="screen" />
{% endif %}
{% block styles %}{% endblock %}
- {% block meta %}{% endblock %}
+ <!--[if gte IE 9]>-->
+ <script src="{{ url_for('static', filename='js/searx.head.min.js') }}"
+ data-method="{{ method or 'POST' }}"
+ data-autocompleter="{% if autocomplete %}true{% else %}false{% endif %}"
+ data-search-on-category-select="{{ 'true' if 'plugins/js/search_on_category_select.js' in scripts else 'false'}}"
+ data-infinite-scroll="{{ 'true' if 'plugins/js/infinite_scroll.js' in scripts else 'false' }}"
+ data-static-path="{{ url_for('static', filename='themes/simple') }}/"
+ data-no-item-found="{{ _('No item found') }}"></script>
+ <!--<![endif]-->
{% block head %}
<link title="{{ instance_name }}" type="application/opensearchdescription+xml" rel="search" href="{{ url_for('opensearch') }}"/>
{% endblock %}
<link rel="shortcut icon" href="{{ url_for('static', filename='img/favicon.png') }}" />
- <script type="text/javascript">
- var searx = {
- autocompleter: {% if autocomplete %}true{% else %}false{% endif %},
- method: "{{ method or 'POST' }}",
- touch: (("ontouchstart" in window) || window.DocumentTouch && document instanceof DocumentTouch) || false,
- staticPath: "{{ url_for('static', filename='themes/simple') }}/",
- noItemFound: "{{ _('No item found') }}",
- search_on_category_select: {{ 'true' if 'plugins/js/search_on_category_select.js' in scripts else 'false'}},
- infinite_scroll: {{ 'true' if 'plugins/js/infinite_scroll.js' in scripts else 'false' }}
- };
- document.getElementsByTagName("html")[0].className = (searx.touch)?"js touch":"js";
- </script>
</head>
<body>
<main id="main_{{ self._TemplateReference__context.name|replace("simple/", "")|replace(".html", "") }}">
@@ -60,7 +57,7 @@
</p>
</footer>
<!--[if gte IE 9]>-->
- <script src="{{ url_for('static', filename='js/searx.min.js') }}" ></script>
+ <script src="{{ url_for('static', filename='js/searx.min.js') }}"></script>
<!--<![endif]-->
</body>
</html>
diff --git a/searx/templates/simple/infobox.html b/searx/templates/simple/infobox.html
index d99806ac4..50b568919 100644
--- a/searx/templates/simple/infobox.html
+++ b/searx/templates/simple/infobox.html
@@ -36,6 +36,11 @@
{% for suggestion in topic.suggestions %}
<form method="{{ method or 'POST' }}" action="{{ url_for('index') }}">
<input type="hidden" name="q" value="{{ suggestion }}">
+ <input type="hidden" name="time_range" value="{{ time_range }}">
+ <input type="hidden" name="language" value="{{ current_language }}">
+ <input type="hidden" name="safesearch" value="{{ safesearch }}">
+ <input type="hidden" name="theme" value="{{ theme }}">
+ {% if timeout_limit %}<input type="hidden" name="timeout_limit" value="{{ timeout_limit|e }}" >{% endif %}
<input type="submit" value="{{ suggestion }}" />
</form>
{% endfor %}
diff --git a/searx/templates/simple/result_templates/key-value.html b/searx/templates/simple/result_templates/key-value.html
new file mode 100644
index 000000000..eebaa2c85
--- /dev/null
+++ b/searx/templates/simple/result_templates/key-value.html
@@ -0,0 +1,11 @@
+<table>
+ {% for key, value in result.items() %}
+ {% if key in ['engine', 'engines', 'template', 'score', 'category', 'positions'] %}
+ {% continue %}
+ {% endif %}
+ <tr>
+ <td><b>{{ key|upper }}</b>: {{ value }}</td>
+ </tr>
+ {% endfor %}
+</table>
+<div class="engines">{% for engine in result.engines %}<span>{{ engine }}</span>{% endfor %}</div>{{- '' -}}
diff --git a/searx/templates/simple/result_templates/torrent.html b/searx/templates/simple/result_templates/torrent.html
index 3c7fd15e8..71c775bc9 100644
--- a/searx/templates/simple/result_templates/torrent.html
+++ b/searx/templates/simple/result_templates/torrent.html
@@ -6,7 +6,7 @@
{% if result.magnetlink %}<p class="altlink"> &bull; {{ result_link(result.magnetlink, icon('magnet') + _('magnet link'), "magnetlink") }}</p>{% endif %}
{% if result.torrentfile %}<p class="altlink"> &bull; {{ result_link(result.torrentfile, icon('download-alt') + _('torrent file'), "torrentfile") }}</p>{% endif %}
-{% if result.seed %}<p class="stat"> &bull; {{ icon('arrow-swap') }} {{ _('Seeder') }} <span class="badge">{{ result.seed }}</span> &bull; {{ _('Leecher') }} <span class="badge">{{ result.leech }}</span></p>{% endif %}
+{% if result.seed is defined %}<p class="stat"> &bull; {{ icon('arrow-swap') }} {{ _('Seeder') }} <span class="badge">{{ result.seed }}</span> &bull; {{ _('Leecher') }} <span class="badge">{{ result.leech }}</span></p>{% endif %}
{%- if result.filesize %}<p class="stat">{{ icon('floppy-disk') }} {{ _('Filesize') }}<span class="badge">
{%- if result.filesize < 1024 %}{{ result.filesize }} {{ _('Bytes') }}
diff --git a/searx/templates/simple/results.html b/searx/templates/simple/results.html
index 195c478db..8885abc30 100644
--- a/searx/templates/simple/results.html
+++ b/searx/templates/simple/results.html
@@ -50,11 +50,13 @@
<div class="wrapper">
{% for suggestion in suggestions %}
<form method="{{ method or 'POST' }}" action="{{ url_for('index') }}">
- <input type="hidden" name="q" value="{{ suggestion }}">
+ <input type="hidden" name="q" value="{{ suggestion.url }}">
+ <input type="hidden" name="time_range" value="{{ time_range }}">
<input type="hidden" name="language" value="{{ current_language }}">
<input type="hidden" name="safesearch" value="{{ safesearch }}">
<input type="hidden" name="theme" value="{{ theme }}">
- <input type="submit" class="suggestion" value="&bull; {{ suggestion }}">
+ {% if timeout_limit %}<input type="hidden" name="timeout_limit" value="{{ timeout_limit|e }}" >{% endif %}
+ <input type="submit" class="suggestion" value="&bull; {{ suggestion.title }}">
</form>
{% endfor %}
</div>
@@ -63,7 +65,7 @@
<div id="search_url">
<h4 class="title">{{ _('Search URL') }} :</h4>
- <div class="selectable_url"><pre>{{ base_url }}?q={{ q|urlencode }}&amp;language={{ current_language }}&amp;time_range={{ time_range }}&amp;safesearch={{ safesearch }}{% if pageno > 1 %}&amp;pageno={{ pageno }}{% endif %}{% if selected_categories %}&amp;categories={{ selected_categories|join(",") | replace(' ','+') }}{% endif %}</pre></div>
+ <div class="selectable_url"><pre>{{ base_url }}?q={{ q|urlencode }}&amp;language={{ current_language }}&amp;time_range={{ time_range }}&amp;safesearch={{ safesearch }}{% if pageno > 1 %}&amp;pageno={{ pageno }}{% endif %}{% if selected_categories %}&amp;categories={{ selected_categories|join(",") | replace(' ','+') }}{% endif %}{% if timeout_limit %}&amp;timeout_limit={{ timeout_limit|urlencode }}{% endif %}</pre></div>
</div>
<div id="apis">
<h4 class="title">{{ _('Download results') }}</h4>
@@ -79,6 +81,7 @@
<input type="hidden" name="language" value="{{ current_language }}">
<input type="hidden" name="safesearch" value="{{ safesearch }}">
<input type="hidden" name="format" value="{{ output_type }}">
+ {% if timeout_limit %}<input type="hidden" name="timeout_limit" value="{{ timeout_limit|e }}" >{% endif %}
<input type="submit" value="{{ output_type }}">
</form>
</div>
@@ -92,12 +95,13 @@
{% for correction in corrections %}
<div class="left">
<form method="{{ method or 'POST' }}" action="{{ url_for('index') }}" role="navigation">
- <input type="hidden" name="q" value="{{ correction }}">
+ <input type="hidden" name="q" value="{{ correction.url }}">
<input type="hidden" name="time_range" value="{{ time_range }}">
<input type="hidden" name="language" value="{{ current_language }}">
<input type="hidden" name="safesearch" value="{{ safesearch }}">
<input type="hidden" name="theme" value="{{ theme }}">
- <input type="submit" value="{{ correction }}">
+ {% if timeout_limit %}<input type="hidden" name="timeout_limit" value="{{ timeout_limit }}" >{% endif %}
+ <input type="submit" value="{{ correction.title }}">
</form>
</div>
{% endfor %}
@@ -134,7 +138,8 @@
<input type="hidden" name="language" value="{{ current_language }}" >
<input type="hidden" name="safesearch" value="{{ safesearch }}" >
<input type="hidden" name="theme" value="{{ theme }}" >
- <button type="submit">{{ icon_small('chevron-left') }} {{ _('previous page') }}</button>
+ {% if timeout_limit %}<input type="hidden" name="timeout_limit" value="{{ timeout_limit|e }}" >{% endif %}
+ <button type="submit">{{ icon_small('chevron-left') }} {{ _('previous page') }}</button>
</div>
</form>
{% endif %}
@@ -149,7 +154,8 @@
<input type="hidden" name="language" value="{{ current_language }}" >
<input type="hidden" name="safesearch" value="{{ safesearch }}" >
<input type="hidden" name="theme" value="{{ theme }}" >
- <button type="submit">{{ _('next page') }} {{ icon_small('chevron-right') }}</button>
+ {% if timeout_limit %}<input type="hidden" name="timeout_limit" value="{{ timeout_limit|e }}" >{% endif %}
+ <button type="submit">{{ _('next page') }} {{ icon_small('chevron-right') }}</button>
</div>
</form>
</nav>
diff --git a/searx/templates/simple/search.html b/searx/templates/simple/search.html
index 9c4a99b68..e9023b420 100644
--- a/searx/templates/simple/search.html
+++ b/searx/templates/simple/search.html
@@ -14,4 +14,5 @@
{% include 'simple/categories.html' %}
<input type="hidden" name="safesearch" value="{{ safesearch }}" >
<input type="hidden" name="theme" value="{{ theme }}" >
+ {% if timeout_limit %}<input type="hidden" name="timeout_limit" value="{{ timeout_limit|e }}" >{% endif %}
</form>
diff --git a/searx/testing.py b/searx/testing.py
index 0d17b2a08..a3616dc12 100644
--- a/searx/testing.py
+++ b/searx/testing.py
@@ -6,7 +6,6 @@ import os
import subprocess
import traceback
-
from os.path import dirname, join, abspath
from splinter import Browser
@@ -49,6 +48,7 @@ class SearxRobotLayer():
exe = 'python'
# set robot settings path
+ os.environ['SEARX_DEBUG'] = '1'
os.environ['SEARX_SETTINGS_PATH'] = abspath(
dirname(__file__) + '/settings_robot.yml')
@@ -58,6 +58,8 @@ class SearxRobotLayer():
stdout=subprocess.PIPE,
stderr=subprocess.STDOUT
)
+ if hasattr(self.server.stdout, 'read1'):
+ print(self.server.stdout.read1(1024).decode('utf-8'))
def tearDown(self):
os.kill(self.server.pid, 9)
@@ -69,7 +71,7 @@ class SearxRobotLayer():
def run_robot_tests(tests):
print('Running {0} tests'.format(len(tests)))
for test in tests:
- with Browser() as browser:
+ with Browser('firefox', headless=True) as browser:
test(browser)
@@ -78,6 +80,18 @@ class SearxTestCase(TestCase):
layer = SearxTestLayer
+ def setattr4test(self, obj, attr, value):
+ """
+ setattr(obj, attr, value)
+ but reset to the previous value in the cleanup.
+ """
+ previous_value = getattr(obj, attr)
+
+ def cleanup_patch():
+ setattr(obj, attr, previous_value)
+ self.addCleanup(cleanup_patch)
+ setattr(obj, attr, value)
+
if __name__ == '__main__':
import sys
diff --git a/searx/translations/ar/LC_MESSAGES/messages.mo b/searx/translations/ar/LC_MESSAGES/messages.mo
index 052e5b522..3774e5bef 100644
--- a/searx/translations/ar/LC_MESSAGES/messages.mo
+++ b/searx/translations/ar/LC_MESSAGES/messages.mo
Binary files differ
diff --git a/searx/translations/ar/LC_MESSAGES/messages.po b/searx/translations/ar/LC_MESSAGES/messages.po
index 645ca0ed6..0604ac162 100644
--- a/searx/translations/ar/LC_MESSAGES/messages.po
+++ b/searx/translations/ar/LC_MESSAGES/messages.po
@@ -4,14 +4,15 @@
#
# Translators:
# ButterflyOfFire ButterflyOfFire, 2018
+# ButterflyOfFire, 2018
# ButterflyOfFire, 2017-2018
msgid ""
msgstr ""
"Project-Id-Version: searx\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
-"POT-Creation-Date: 2017-11-01 21:31+0100\n"
-"PO-Revision-Date: 2018-09-08 08:23+0000\n"
-"Last-Translator: ButterflyOfFire ButterflyOfFire\n"
+"POT-Creation-Date: 2017-10-07 19:18+0200\n"
+"PO-Revision-Date: 2019-02-23 17:39+0000\n"
+"Last-Translator: Noémi Ványi <sitbackandwait@gmail.com>\n"
"Language-Team: Arabic (http://www.transifex.com/asciimoo/searx/language/ar/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
@@ -32,63 +33,63 @@ msgstr ""
msgid "unexpected crash"
msgstr "خلل غير مُتوقّع"
-#: searx/webapp.py:136
+#: searx/webapp.py:135
msgid "files"
msgstr "ملفات"
-#: searx/webapp.py:137
+#: searx/webapp.py:136
msgid "general"
msgstr "الرئيسية"
-#: searx/webapp.py:138
+#: searx/webapp.py:137
msgid "music"
msgstr "موسيقى"
-#: searx/webapp.py:139
+#: searx/webapp.py:138
msgid "social media"
msgstr "شبكات التواصل الإجتماعي"
-#: searx/webapp.py:140
+#: searx/webapp.py:139
msgid "images"
msgstr "صور"
-#: searx/webapp.py:141
+#: searx/webapp.py:140
msgid "videos"
msgstr "فيديوهات"
-#: searx/webapp.py:142
+#: searx/webapp.py:141
msgid "it"
msgstr "علوم و تكنولوجيا"
-#: searx/webapp.py:143
+#: searx/webapp.py:142
msgid "news"
msgstr "أخبار"
-#: searx/webapp.py:144
+#: searx/webapp.py:143
msgid "map"
msgstr "خرائط"
-#: searx/webapp.py:145
+#: searx/webapp.py:144
msgid "science"
msgstr "علوم"
-#: searx/webapp.py:399 searx/webapp.py:658
+#: searx/webapp.py:398 searx/webapp.py:653
msgid "Invalid settings, please edit your preferences"
msgstr "إنّ الإعدادات خاطئة، يرجى تعديل خياراتك"
-#: searx/webapp.py:415
+#: searx/webapp.py:410
msgid "Invalid settings"
msgstr "إعدادات غير صالحة"
-#: searx/webapp.py:449 searx/webapp.py:493
+#: searx/webapp.py:444 searx/webapp.py:488
msgid "search error"
msgstr "خطأ في البحث"
-#: searx/webapp.py:530
+#: searx/webapp.py:525
msgid "{minutes} minute(s) ago"
msgstr "قبل {minutes} ثانية"
-#: searx/webapp.py:532
+#: searx/webapp.py:527
msgid "{hours} hour(s), {minutes} minute(s) ago"
msgstr "قبل {hours} ساعات، {minutes} دقائق"
@@ -108,29 +109,28 @@ msgstr ""
msgid "Compute {functions} of the arguments"
msgstr ""
-#: searx/engines/__init__.py:194 searx/engines/flycheck___init__.py:201
+#: searx/engines/__init__.py:194
msgid "Engine time (sec)"
msgstr "المدة المستغرقة للمحرك (ثواني)"
-#: searx/engines/__init__.py:198 searx/engines/flycheck___init__.py:205
+#: searx/engines/__init__.py:198
msgid "Page loads (sec)"
msgstr "مدة تحميل الصفحة (ثواني)"
-#: searx/engines/__init__.py:202 searx/engines/flycheck___init__.py:209
-#: searx/templates/oscar/results.html:95
+#: searx/engines/__init__.py:202 searx/templates/oscar/results.html:95
#: searx/templates/simple/results.html:20
msgid "Number of results"
msgstr "حصيلة نتائج البحث"
-#: searx/engines/__init__.py:206 searx/engines/flycheck___init__.py:213
+#: searx/engines/__init__.py:206
msgid "Scores"
msgstr ""
-#: searx/engines/__init__.py:210 searx/engines/flycheck___init__.py:217
+#: searx/engines/__init__.py:210
msgid "Scores per result"
msgstr ""
-#: searx/engines/__init__.py:214 searx/engines/flycheck___init__.py:221
+#: searx/engines/__init__.py:214
msgid "Errors"
msgstr "أخطاء"
@@ -142,8 +142,14 @@ msgstr "{title}&nbsp;(OBSOLETE)"
msgid "This entry has been superseded by"
msgstr ""
-#: searx/engines/pubmed.py:74
-msgid "No abstract is available for this publication."
+#: searx/plugins/doai_rewrite.py:7
+msgid "DOAI rewrite"
+msgstr ""
+
+#: searx/plugins/doai_rewrite.py:8
+msgid ""
+"Avoid paywalls by redirecting to open-access versions of publications when "
+"available"
msgstr ""
#: searx/plugins/https_rewrite.py:32
@@ -158,16 +164,6 @@ msgstr "تمرير الصفحات بلا حدود"
msgid "Automatically load next page when scrolling to bottom of current page"
msgstr "حمّل تلقائيا الصفحة التالية عن السحب إلى أسفل النتائج"
-#: searx/plugins/oa_doi_rewrite.py:9
-msgid "Open Access DOI rewrite"
-msgstr ""
-
-#: searx/plugins/oa_doi_rewrite.py:10
-msgid ""
-"Avoid paywalls by redirecting to open-access versions of publications when "
-"available"
-msgstr ""
-
#: searx/plugins/open_results_on_new_tab.py:18
#: searx/templates/oscar/preferences.html:114
#: searx/templates/simple/preferences.html:149
@@ -330,8 +326,8 @@ msgstr "الطريقة"
#: searx/templates/courgette/preferences.html:63
#: searx/templates/legacy/preferences.html:64
#: searx/templates/oscar/preferences.html:86
-#: searx/templates/oscar/preferences.html:165
-#: searx/templates/oscar/preferences.html:173
+#: searx/templates/oscar/preferences.html:153
+#: searx/templates/oscar/preferences.html:161
#: searx/templates/simple/preferences.html:63
#: searx/templates/simple/preferences.html:90
msgid "SafeSearch"
@@ -403,8 +399,8 @@ msgstr "محركات البحث المُستخدَمة حاليًا"
#: searx/templates/courgette/preferences.html:100
#: searx/templates/legacy/preferences.html:97
-#: searx/templates/oscar/preferences.html:162
-#: searx/templates/oscar/preferences.html:176
+#: searx/templates/oscar/preferences.html:150
+#: searx/templates/oscar/preferences.html:164
#: searx/templates/pix-art/preferences.html:53
#: searx/templates/simple/preferences.html:87
msgid "Engine name"
@@ -419,8 +415,8 @@ msgstr "الفئة"
#: searx/templates/courgette/preferences.html:113
#: searx/templates/legacy/preferences.html:99
#: searx/templates/legacy/preferences.html:110
-#: searx/templates/oscar/preferences.html:161
-#: searx/templates/oscar/preferences.html:177
+#: searx/templates/oscar/preferences.html:149
+#: searx/templates/oscar/preferences.html:165
#: searx/templates/pix-art/preferences.html:54
#: searx/templates/pix-art/preferences.html:64
#: searx/templates/simple/preferences.html:86
@@ -438,7 +434,7 @@ msgstr "حظر"
#: searx/templates/courgette/preferences.html:122
#: searx/templates/legacy/preferences.html:119
-#: searx/templates/oscar/preferences.html:297
+#: searx/templates/oscar/preferences.html:285
#: searx/templates/pix-art/preferences.html:73
#: searx/templates/simple/preferences.html:180
msgid ""
@@ -448,7 +444,7 @@ msgstr ""
#: searx/templates/courgette/preferences.html:124
#: searx/templates/legacy/preferences.html:121
-#: searx/templates/oscar/preferences.html:299
+#: searx/templates/oscar/preferences.html:287
#: searx/templates/pix-art/preferences.html:75
#: searx/templates/simple/preferences.html:182
msgid ""
@@ -458,7 +454,7 @@ msgstr ""
#: searx/templates/courgette/preferences.html:127
#: searx/templates/legacy/preferences.html:124
-#: searx/templates/oscar/preferences.html:305
+#: searx/templates/oscar/preferences.html:293
#: searx/templates/pix-art/preferences.html:78
#: searx/templates/simple/preferences.html:185
msgid "save"
@@ -466,14 +462,14 @@ msgstr "حفظ"
#: searx/templates/courgette/preferences.html:128
#: searx/templates/legacy/preferences.html:125
-#: searx/templates/oscar/preferences.html:307
+#: searx/templates/oscar/preferences.html:295
#: searx/templates/simple/preferences.html:186
msgid "Reset defaults"
msgstr "إعاد التعيين إلى الإعدادات الإفتراضية"
#: searx/templates/courgette/preferences.html:129
#: searx/templates/legacy/preferences.html:126
-#: searx/templates/oscar/preferences.html:306
+#: searx/templates/oscar/preferences.html:294
#: searx/templates/pix-art/preferences.html:79
#: searx/templates/simple/preferences.html:187
msgid "back"
@@ -644,23 +640,23 @@ msgid "General"
msgstr "الرئيسية"
#: searx/templates/oscar/preferences.html:14
-#: searx/templates/oscar/preferences.html:146
+#: searx/templates/oscar/preferences.html:134
#: searx/templates/simple/preferences.html:76
msgid "Engines"
msgstr "المحركات"
#: searx/templates/oscar/preferences.html:15
-#: searx/templates/oscar/preferences.html:219
+#: searx/templates/oscar/preferences.html:207
msgid "Plugins"
msgstr "الإضافات"
#: searx/templates/oscar/preferences.html:16
-#: searx/templates/oscar/preferences.html:245
+#: searx/templates/oscar/preferences.html:233
msgid "Answerers"
msgstr "المجيبون"
#: searx/templates/oscar/preferences.html:17
-#: searx/templates/oscar/preferences.html:272
+#: searx/templates/oscar/preferences.html:260
msgid "Cookies"
msgstr "كعكات الكوكيز"
@@ -711,88 +707,78 @@ msgstr "إختر الشكل الذي ستبدو عليه هذه السمة"
msgid "Style"
msgstr "الشكل"
-#: searx/templates/oscar/preferences.html:122
-msgid "Open Access DOI resolver"
-msgstr ""
-
-#: searx/templates/oscar/preferences.html:123
-msgid ""
-"Redirect to open-access versions of publications when available (plugin "
-"required)"
-msgstr ""
-
+#: searx/templates/oscar/preferences.html:151
#: searx/templates/oscar/preferences.html:163
-#: searx/templates/oscar/preferences.html:175
#: searx/templates/simple/preferences.html:88
msgid "Shortcut"
msgstr "الإختصار"
-#: searx/templates/oscar/preferences.html:164
-#: searx/templates/oscar/preferences.html:174
+#: searx/templates/oscar/preferences.html:152
+#: searx/templates/oscar/preferences.html:162
msgid "Selected language"
msgstr "اللغة المختارة"
-#: searx/templates/oscar/preferences.html:166
-#: searx/templates/oscar/preferences.html:172
+#: searx/templates/oscar/preferences.html:154
+#: searx/templates/oscar/preferences.html:160
#: searx/templates/simple/preferences.html:91
msgid "Time range"
msgstr "الفترة"
-#: searx/templates/oscar/preferences.html:167
-#: searx/templates/oscar/preferences.html:171
+#: searx/templates/oscar/preferences.html:155
+#: searx/templates/oscar/preferences.html:159
#: searx/templates/simple/preferences.html:92
msgid "Avg. time"
msgstr "متوسط الوقت"
-#: searx/templates/oscar/preferences.html:168
-#: searx/templates/oscar/preferences.html:170
+#: searx/templates/oscar/preferences.html:156
+#: searx/templates/oscar/preferences.html:158
#: searx/templates/simple/preferences.html:93
msgid "Max time"
msgstr "أقصى مدّة"
-#: searx/templates/oscar/preferences.html:248
+#: searx/templates/oscar/preferences.html:236
msgid "This is the list of searx's instant answering modules."
msgstr ""
-#: searx/templates/oscar/preferences.html:252
+#: searx/templates/oscar/preferences.html:240
msgid "Name"
msgstr "التسمية"
-#: searx/templates/oscar/preferences.html:253
+#: searx/templates/oscar/preferences.html:241
msgid "Keywords"
msgstr "الكلمات الرمزية"
-#: searx/templates/oscar/preferences.html:254
+#: searx/templates/oscar/preferences.html:242
msgid "Description"
msgstr "الوصف"
-#: searx/templates/oscar/preferences.html:255
+#: searx/templates/oscar/preferences.html:243
msgid "Examples"
msgstr "أمثلة"
-#: searx/templates/oscar/preferences.html:275
+#: searx/templates/oscar/preferences.html:263
msgid ""
"This is the list of cookies and their values searx is storing on your "
"computer."
msgstr ""
-#: searx/templates/oscar/preferences.html:276
+#: searx/templates/oscar/preferences.html:264
msgid "With that list, you can assess searx transparency."
msgstr ""
-#: searx/templates/oscar/preferences.html:281
+#: searx/templates/oscar/preferences.html:269
msgid "Cookie name"
msgstr "إسم الكوكي"
-#: searx/templates/oscar/preferences.html:282
+#: searx/templates/oscar/preferences.html:270
msgid "Value"
msgstr "القيمة"
-#: searx/templates/oscar/preferences.html:301
+#: searx/templates/oscar/preferences.html:289
msgid "Search URL of the currently saved preferences"
msgstr ""
-#: searx/templates/oscar/preferences.html:301
+#: searx/templates/oscar/preferences.html:289
msgid ""
"Note: specifying custom settings in the search URL can reduce privacy by "
"leaking data to the clicked result sites."
diff --git a/searx/translations/bg/LC_MESSAGES/messages.mo b/searx/translations/bg/LC_MESSAGES/messages.mo
index f80e5afcc..0ee7802a8 100644
--- a/searx/translations/bg/LC_MESSAGES/messages.mo
+++ b/searx/translations/bg/LC_MESSAGES/messages.mo
Binary files differ
diff --git a/searx/translations/bg/LC_MESSAGES/messages.po b/searx/translations/bg/LC_MESSAGES/messages.po
index 09a013ed0..63c9938f0 100644
--- a/searx/translations/bg/LC_MESSAGES/messages.po
+++ b/searx/translations/bg/LC_MESSAGES/messages.po
@@ -4,14 +4,15 @@
#
# Translators:
# ubone <van_ds_ff@mail.bg>, 2015
+# ubone <van_ds_ff@mail.bg>, 2015
# ubone <van_ds_ff@mail.bg>, 2016-2017
msgid ""
msgstr ""
"Project-Id-Version: searx\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
-"POT-Creation-Date: 2017-11-01 21:31+0100\n"
-"PO-Revision-Date: 2017-11-01 20:31+0000\n"
-"Last-Translator: Adam Tauber <asciimoo@gmail.com>\n"
+"POT-Creation-Date: 2017-10-07 19:18+0200\n"
+"PO-Revision-Date: 2019-02-23 17:39+0000\n"
+"Last-Translator: Noémi Ványi <sitbackandwait@gmail.com>\n"
"Language-Team: Bulgarian (http://www.transifex.com/asciimoo/searx/language/bg/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
@@ -32,63 +33,63 @@ msgstr ""
msgid "unexpected crash"
msgstr ""
-#: searx/webapp.py:136
+#: searx/webapp.py:135
msgid "files"
msgstr "файлове"
-#: searx/webapp.py:137
+#: searx/webapp.py:136
msgid "general"
msgstr "общо"
-#: searx/webapp.py:138
+#: searx/webapp.py:137
msgid "music"
msgstr "музика"
-#: searx/webapp.py:139
+#: searx/webapp.py:138
msgid "social media"
msgstr "социална мрежа"
-#: searx/webapp.py:140
+#: searx/webapp.py:139
msgid "images"
msgstr "изображения"
-#: searx/webapp.py:141
+#: searx/webapp.py:140
msgid "videos"
msgstr "видео"
-#: searx/webapp.py:142
+#: searx/webapp.py:141
msgid "it"
msgstr "IT"
-#: searx/webapp.py:143
+#: searx/webapp.py:142
msgid "news"
msgstr "новини"
-#: searx/webapp.py:144
+#: searx/webapp.py:143
msgid "map"
msgstr "карта"
-#: searx/webapp.py:145
+#: searx/webapp.py:144
msgid "science"
msgstr "наука"
-#: searx/webapp.py:399 searx/webapp.py:658
+#: searx/webapp.py:398 searx/webapp.py:653
msgid "Invalid settings, please edit your preferences"
msgstr "Неправилни настройки, моля проверете предпочитанията си."
-#: searx/webapp.py:415
+#: searx/webapp.py:410
msgid "Invalid settings"
msgstr ""
-#: searx/webapp.py:449 searx/webapp.py:493
+#: searx/webapp.py:444 searx/webapp.py:488
msgid "search error"
msgstr "грешка при търсенето"
-#: searx/webapp.py:530
+#: searx/webapp.py:525
msgid "{minutes} minute(s) ago"
msgstr "преди {minutes} минута(минути)"
-#: searx/webapp.py:532
+#: searx/webapp.py:527
msgid "{hours} hour(s), {minutes} minute(s) ago"
msgstr "преди {hours} час(ове), {minutes} минута(минути)"
@@ -108,29 +109,28 @@ msgstr ""
msgid "Compute {functions} of the arguments"
msgstr ""
-#: searx/engines/__init__.py:194 searx/engines/flycheck___init__.py:201
+#: searx/engines/__init__.py:194
msgid "Engine time (sec)"
msgstr ""
-#: searx/engines/__init__.py:198 searx/engines/flycheck___init__.py:205
+#: searx/engines/__init__.py:198
msgid "Page loads (sec)"
msgstr "Страницата зарежда (сек)"
-#: searx/engines/__init__.py:202 searx/engines/flycheck___init__.py:209
-#: searx/templates/oscar/results.html:95
+#: searx/engines/__init__.py:202 searx/templates/oscar/results.html:95
#: searx/templates/simple/results.html:20
msgid "Number of results"
msgstr "Брой резултати"
-#: searx/engines/__init__.py:206 searx/engines/flycheck___init__.py:213
+#: searx/engines/__init__.py:206
msgid "Scores"
msgstr ""
-#: searx/engines/__init__.py:210 searx/engines/flycheck___init__.py:217
+#: searx/engines/__init__.py:210
msgid "Scores per result"
msgstr ""
-#: searx/engines/__init__.py:214 searx/engines/flycheck___init__.py:221
+#: searx/engines/__init__.py:214
msgid "Errors"
msgstr "Грешки"
@@ -142,8 +142,14 @@ msgstr ""
msgid "This entry has been superseded by"
msgstr ""
-#: searx/engines/pubmed.py:74
-msgid "No abstract is available for this publication."
+#: searx/plugins/doai_rewrite.py:7
+msgid "DOAI rewrite"
+msgstr ""
+
+#: searx/plugins/doai_rewrite.py:8
+msgid ""
+"Avoid paywalls by redirecting to open-access versions of publications when "
+"available"
msgstr ""
#: searx/plugins/https_rewrite.py:32
@@ -158,16 +164,6 @@ msgstr "Списък без страници."
msgid "Automatically load next page when scrolling to bottom of current page"
msgstr "Автоматично зареждане на следващата страница."
-#: searx/plugins/oa_doi_rewrite.py:9
-msgid "Open Access DOI rewrite"
-msgstr ""
-
-#: searx/plugins/oa_doi_rewrite.py:10
-msgid ""
-"Avoid paywalls by redirecting to open-access versions of publications when "
-"available"
-msgstr ""
-
#: searx/plugins/open_results_on_new_tab.py:18
#: searx/templates/oscar/preferences.html:114
#: searx/templates/simple/preferences.html:149
@@ -330,8 +326,8 @@ msgstr "Метод"
#: searx/templates/courgette/preferences.html:63
#: searx/templates/legacy/preferences.html:64
#: searx/templates/oscar/preferences.html:86
-#: searx/templates/oscar/preferences.html:165
-#: searx/templates/oscar/preferences.html:173
+#: searx/templates/oscar/preferences.html:153
+#: searx/templates/oscar/preferences.html:161
#: searx/templates/simple/preferences.html:63
#: searx/templates/simple/preferences.html:90
msgid "SafeSearch"
@@ -403,8 +399,8 @@ msgstr "Използвани търсачки в момента "
#: searx/templates/courgette/preferences.html:100
#: searx/templates/legacy/preferences.html:97
-#: searx/templates/oscar/preferences.html:162
-#: searx/templates/oscar/preferences.html:176
+#: searx/templates/oscar/preferences.html:150
+#: searx/templates/oscar/preferences.html:164
#: searx/templates/pix-art/preferences.html:53
#: searx/templates/simple/preferences.html:87
msgid "Engine name"
@@ -419,8 +415,8 @@ msgstr "Категория"
#: searx/templates/courgette/preferences.html:113
#: searx/templates/legacy/preferences.html:99
#: searx/templates/legacy/preferences.html:110
-#: searx/templates/oscar/preferences.html:161
-#: searx/templates/oscar/preferences.html:177
+#: searx/templates/oscar/preferences.html:149
+#: searx/templates/oscar/preferences.html:165
#: searx/templates/pix-art/preferences.html:54
#: searx/templates/pix-art/preferences.html:64
#: searx/templates/simple/preferences.html:86
@@ -438,7 +434,7 @@ msgstr "Забрани"
#: searx/templates/courgette/preferences.html:122
#: searx/templates/legacy/preferences.html:119
-#: searx/templates/oscar/preferences.html:297
+#: searx/templates/oscar/preferences.html:285
#: searx/templates/pix-art/preferences.html:73
#: searx/templates/simple/preferences.html:180
msgid ""
@@ -448,7 +444,7 @@ msgstr "Тези настройки се съхраняват във вашит
#: searx/templates/courgette/preferences.html:124
#: searx/templates/legacy/preferences.html:121
-#: searx/templates/oscar/preferences.html:299
+#: searx/templates/oscar/preferences.html:287
#: searx/templates/pix-art/preferences.html:75
#: searx/templates/simple/preferences.html:182
msgid ""
@@ -458,7 +454,7 @@ msgstr "Тези бисквитки служат за ваше удобство.
#: searx/templates/courgette/preferences.html:127
#: searx/templates/legacy/preferences.html:124
-#: searx/templates/oscar/preferences.html:305
+#: searx/templates/oscar/preferences.html:293
#: searx/templates/pix-art/preferences.html:78
#: searx/templates/simple/preferences.html:185
msgid "save"
@@ -466,14 +462,14 @@ msgstr "запази"
#: searx/templates/courgette/preferences.html:128
#: searx/templates/legacy/preferences.html:125
-#: searx/templates/oscar/preferences.html:307
+#: searx/templates/oscar/preferences.html:295
#: searx/templates/simple/preferences.html:186
msgid "Reset defaults"
msgstr "Върни първоначалните"
#: searx/templates/courgette/preferences.html:129
#: searx/templates/legacy/preferences.html:126
-#: searx/templates/oscar/preferences.html:306
+#: searx/templates/oscar/preferences.html:294
#: searx/templates/pix-art/preferences.html:79
#: searx/templates/simple/preferences.html:187
msgid "back"
@@ -644,23 +640,23 @@ msgid "General"
msgstr "Общи"
#: searx/templates/oscar/preferences.html:14
-#: searx/templates/oscar/preferences.html:146
+#: searx/templates/oscar/preferences.html:134
#: searx/templates/simple/preferences.html:76
msgid "Engines"
msgstr "Търсачки"
#: searx/templates/oscar/preferences.html:15
-#: searx/templates/oscar/preferences.html:219
+#: searx/templates/oscar/preferences.html:207
msgid "Plugins"
msgstr "Добавки"
#: searx/templates/oscar/preferences.html:16
-#: searx/templates/oscar/preferences.html:245
+#: searx/templates/oscar/preferences.html:233
msgid "Answerers"
msgstr "Отговори"
#: searx/templates/oscar/preferences.html:17
-#: searx/templates/oscar/preferences.html:272
+#: searx/templates/oscar/preferences.html:260
msgid "Cookies"
msgstr "Бисквитки"
@@ -711,88 +707,78 @@ msgstr "Избери стил за избрания облик"
msgid "Style"
msgstr "Стил"
-#: searx/templates/oscar/preferences.html:122
-msgid "Open Access DOI resolver"
-msgstr ""
-
-#: searx/templates/oscar/preferences.html:123
-msgid ""
-"Redirect to open-access versions of publications when available (plugin "
-"required)"
-msgstr ""
-
+#: searx/templates/oscar/preferences.html:151
#: searx/templates/oscar/preferences.html:163
-#: searx/templates/oscar/preferences.html:175
#: searx/templates/simple/preferences.html:88
msgid "Shortcut"
msgstr "Пряк път"
-#: searx/templates/oscar/preferences.html:164
-#: searx/templates/oscar/preferences.html:174
+#: searx/templates/oscar/preferences.html:152
+#: searx/templates/oscar/preferences.html:162
msgid "Selected language"
msgstr ""
-#: searx/templates/oscar/preferences.html:166
-#: searx/templates/oscar/preferences.html:172
+#: searx/templates/oscar/preferences.html:154
+#: searx/templates/oscar/preferences.html:160
#: searx/templates/simple/preferences.html:91
msgid "Time range"
msgstr ""
-#: searx/templates/oscar/preferences.html:167
-#: searx/templates/oscar/preferences.html:171
+#: searx/templates/oscar/preferences.html:155
+#: searx/templates/oscar/preferences.html:159
#: searx/templates/simple/preferences.html:92
msgid "Avg. time"
msgstr "Средно време"
-#: searx/templates/oscar/preferences.html:168
-#: searx/templates/oscar/preferences.html:170
+#: searx/templates/oscar/preferences.html:156
+#: searx/templates/oscar/preferences.html:158
#: searx/templates/simple/preferences.html:93
msgid "Max time"
msgstr "Макс. време"
-#: searx/templates/oscar/preferences.html:248
+#: searx/templates/oscar/preferences.html:236
msgid "This is the list of searx's instant answering modules."
msgstr ""
-#: searx/templates/oscar/preferences.html:252
+#: searx/templates/oscar/preferences.html:240
msgid "Name"
msgstr "Име"
-#: searx/templates/oscar/preferences.html:253
+#: searx/templates/oscar/preferences.html:241
msgid "Keywords"
msgstr "Ключови думи"
-#: searx/templates/oscar/preferences.html:254
+#: searx/templates/oscar/preferences.html:242
msgid "Description"
msgstr "Описание"
-#: searx/templates/oscar/preferences.html:255
+#: searx/templates/oscar/preferences.html:243
msgid "Examples"
msgstr "Примери"
-#: searx/templates/oscar/preferences.html:275
+#: searx/templates/oscar/preferences.html:263
msgid ""
"This is the list of cookies and their values searx is storing on your "
"computer."
msgstr "Това е списък на бисквитки с техните стойности, които searx съхранява на вашия компютър."
-#: searx/templates/oscar/preferences.html:276
+#: searx/templates/oscar/preferences.html:264
msgid "With that list, you can assess searx transparency."
msgstr ""
-#: searx/templates/oscar/preferences.html:281
+#: searx/templates/oscar/preferences.html:269
msgid "Cookie name"
msgstr "Име на бисквитката"
-#: searx/templates/oscar/preferences.html:282
+#: searx/templates/oscar/preferences.html:270
msgid "Value"
msgstr "Стойност"
-#: searx/templates/oscar/preferences.html:301
+#: searx/templates/oscar/preferences.html:289
msgid "Search URL of the currently saved preferences"
msgstr ""
-#: searx/templates/oscar/preferences.html:301
+#: searx/templates/oscar/preferences.html:289
msgid ""
"Note: specifying custom settings in the search URL can reduce privacy by "
"leaking data to the clicked result sites."
diff --git a/searx/translations/bo/LC_MESSAGES/messages.mo b/searx/translations/bo/LC_MESSAGES/messages.mo
new file mode 100644
index 000000000..7941328e6
--- /dev/null
+++ b/searx/translations/bo/LC_MESSAGES/messages.mo
Binary files differ
diff --git a/searx/translations/bo/LC_MESSAGES/messages.po b/searx/translations/bo/LC_MESSAGES/messages.po
new file mode 100644
index 000000000..a2eb5cbf9
--- /dev/null
+++ b/searx/translations/bo/LC_MESSAGES/messages.po
@@ -0,0 +1,998 @@
+# Translations template for PROJECT.
+# Copyright (C) 2017 ORGANIZATION
+# This file is distributed under the same license as the PROJECT project.
+#
+# Translators:
+# གངས་རྒྱན། <khyon_khangey@outlook.com>, 2019
+msgid ""
+msgstr ""
+"Project-Id-Version: searx\n"
+"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
+"POT-Creation-Date: 2017-10-07 19:18+0200\n"
+"PO-Revision-Date: 2019-10-08 09:02+0000\n"
+"Last-Translator: གངས་རྒྱན། <khyon_khangey@outlook.com>\n"
+"Language-Team: Tibetan (http://www.transifex.com/asciimoo/searx/language/bo/)\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Generated-By: Babel 2.3.4\n"
+"Language: bo\n"
+"Plural-Forms: nplurals=1; plural=0;\n"
+
+#: searx/search.py:137 searx/search.py:182
+msgid "timeout"
+msgstr "དུས་ལས་འགོངས་ཟིན།"
+
+#: searx/search.py:144
+msgid "request exception"
+msgstr "རེ་ཞུ་ཁྱབ་ཁོངས་ལས་འགོངས་ཟིན།"
+
+#: searx/search.py:151
+msgid "unexpected crash"
+msgstr "ནོར་འཁྲུལ་ཆེན་པོ་བྱུང་ཟིན།"
+
+#: searx/webapp.py:135
+msgid "files"
+msgstr "ཡིག་ཆ།"
+
+#: searx/webapp.py:136
+msgid "general"
+msgstr "སྤྱི་བཏང་།"
+
+#: searx/webapp.py:137
+msgid "music"
+msgstr "རོལ་དབྱངས།"
+
+#: searx/webapp.py:138
+msgid "social media"
+msgstr "སྤྱི་ཚོགས་འབྲེལ་བ།"
+
+#: searx/webapp.py:139
+msgid "images"
+msgstr "པར་རིས།"
+
+#: searx/webapp.py:140
+msgid "videos"
+msgstr "བརྙན་ཟློས།"
+
+#: searx/webapp.py:141
+msgid "it"
+msgstr "ཆ་འཕྲིན་ལག་རྩལ།"
+
+#: searx/webapp.py:142
+msgid "news"
+msgstr "གསར་འགྱུར།"
+
+#: searx/webapp.py:143
+msgid "map"
+msgstr "ས་བཀྲ།"
+
+#: searx/webapp.py:144
+msgid "science"
+msgstr "ཚན་རིག་ཤེས་བྱ།"
+
+#: searx/webapp.py:398 searx/webapp.py:653
+msgid "Invalid settings, please edit your preferences"
+msgstr "ནུས་མེད་ཀྱི་སྒྲིག་འགོད།ཁྱེད་ཀྱིས་གདམ་ཀ་ལ་བཅོས་སྒྲིག་གཏོང་རོགས།"
+
+#: searx/webapp.py:410
+msgid "Invalid settings"
+msgstr "ནུས་མེད་ཀྱི་སྒྲིག་འགོད།"
+
+#: searx/webapp.py:444 searx/webapp.py:488
+msgid "search error"
+msgstr "འཚོལ་བཤེར་ལ་ནོར་འཁྲུལ་བྱུང་།"
+
+#: searx/webapp.py:525
+msgid "{minutes} minute(s) ago"
+msgstr "སྐར་མ་ {minutes} སྔོན་ལ།"
+
+#: searx/webapp.py:527
+msgid "{hours} hour(s), {minutes} minute(s) ago"
+msgstr "ཆུ་ཚོད་ {hours} དང་སྐར་མ {minutes} སྔོན་ལ།"
+
+#: searx/answerers/random/answerer.py:53
+msgid "Random value generator"
+msgstr "ངེས་མེད་གྲངས་ཀ་མཁོ་སྤྲོད།"
+
+#: searx/answerers/random/answerer.py:54
+msgid "Generate different random values"
+msgstr "ངེས་མེད་གྲངས་ཀ་ཁ་ཤས་ཐོབ་པར་བྱེད།"
+
+#: searx/answerers/statistics/answerer.py:53
+msgid "Statistics functions"
+msgstr "སྡོམ་བརྩིས་ཀྱི་བྱེད་ནུས།"
+
+#: searx/answerers/statistics/answerer.py:54
+msgid "Compute {functions} of the arguments"
+msgstr " {functions} གཞི་གྲངས་གྲངས་རྩིས།"
+
+#: searx/engines/__init__.py:194
+msgid "Engine time (sec)"
+msgstr "འཚོལ་བཤེར་དུས་ཡུན། (སྐར་ཆ།)"
+
+#: searx/engines/__init__.py:198
+msgid "Page loads (sec)"
+msgstr "ནང་འདྲེན་དུས་ཡུན། (སྐར་ཆ།)"
+
+#: searx/engines/__init__.py:202 searx/templates/oscar/results.html:95
+#: searx/templates/simple/results.html:20
+msgid "Number of results"
+msgstr "འཚོལ་འབྲས་ཀྱི་ཁ་གྲངས།"
+
+#: searx/engines/__init__.py:206
+msgid "Scores"
+msgstr "ཐོབ་སྐར།"
+
+#: searx/engines/__init__.py:210
+msgid "Scores per result"
+msgstr "འཚོལ་འབྲས་རེ་རེ་ཡི་ཐོབ་སྐར།"
+
+#: searx/engines/__init__.py:214
+msgid "Errors"
+msgstr "ནོར་འཁྲུལ།"
+
+#: searx/engines/pdbe.py:87
+msgid "{title}&nbsp;(OBSOLETE)"
+msgstr "{title}&nbsp;(དུས་ལས་འགོངས་ཟིན།)"
+
+#: searx/engines/pdbe.py:91
+msgid "This entry has been superseded by"
+msgstr "འཚོལ་བྱང་འདི་གཞན་གྱིས་ཚབ་བྱེད་འདུག"
+
+#: searx/plugins/doai_rewrite.py:7
+msgid "DOAI rewrite"
+msgstr "DOAI བསྐྱར་འབྲི།"
+
+#: searx/plugins/doai_rewrite.py:8
+msgid ""
+"Avoid paywalls by redirecting to open-access versions of publications when "
+"available"
+msgstr "Avoid paywalls by redirecting to open-access versions of publications when available"
+
+#: searx/plugins/https_rewrite.py:32
+msgid "Rewrite HTTP links to HTTPS if possible"
+msgstr "HTTP དྲ་ངོས་སྦྲེལ་ཐག་རྣམས HTTPS ལ་བསྒྱུར།"
+
+#: searx/plugins/infinite_scroll.py:3
+msgid "Infinite scroll"
+msgstr "མཐའ་མེད་པའི་འཆར་ངོས།"
+
+#: searx/plugins/infinite_scroll.py:4
+msgid "Automatically load next page when scrolling to bottom of current page"
+msgstr "དྲ་ངོས་མར་འདྲུད་ནས་ཞབས་ལ་སླེབས་དུས་རང་འགུལ་སྒོས་འཕྲོ་མའི་ནང་དོན་འཆར་པར་བྱེད།"
+
+#: searx/plugins/open_results_on_new_tab.py:18
+#: searx/templates/oscar/preferences.html:114
+#: searx/templates/simple/preferences.html:149
+msgid "Open result links on new browser tabs"
+msgstr "ཤོག་ངོས་གསར་བ་ཞིག་ནས་དྲ་ངོས་འཆར་པར་བྱེད།"
+
+#: searx/plugins/open_results_on_new_tab.py:19
+msgid ""
+"Results are opened in the same window by default. This plugin overwrites the"
+" default behaviour to open links on new tabs/windows. (JavaScript required)"
+msgstr "Results are opened in the same window by default. This plugin overwrites the default behaviour to open links on new tabs/windows. (JavaScript required)"
+
+#: searx/plugins/search_on_category_select.py:18
+msgid "Search on category select"
+msgstr "རིགས་གདམ་གསེས་བཏང་ནས་འཚོལ་བཤེར་གཏོང་།"
+
+#: searx/plugins/search_on_category_select.py:19
+msgid ""
+"Perform search immediately if a category selected. Disable to select "
+"multiple categories. (JavaScript required)"
+msgstr "Perform search immediately if a category selected. Disable to select multiple categories. (JavaScript required)"
+
+#: searx/plugins/self_info.py:20
+msgid ""
+"Displays your IP if the query is \"ip\" and your user agent if the query "
+"contains \"user agent\"."
+msgstr "Displays your IP if the query is \"ip\" and your user agent if the query contains \"user agent\"."
+
+#: searx/plugins/tracker_url_remover.py:26
+msgid "Tracker URL remover"
+msgstr "དྲ་གནས་རྗེས་འདེད་སྤོ་འབུད།"
+
+#: searx/plugins/tracker_url_remover.py:27
+msgid "Remove trackers arguments from the returned URL"
+msgstr "Remove trackers arguments from the returned URL"
+
+#: searx/plugins/vim_hotkeys.py:3
+msgid "Vim-like hotkeys"
+msgstr "མགྱོགས་མྱུར་མཐེབ་གཞོང་གི་སྤྱོད་སྟངས།"
+
+#: searx/plugins/vim_hotkeys.py:4
+msgid ""
+"Navigate search results with Vim-like hotkeys (JavaScript required). Press "
+"\"h\" key on main or result page to get help."
+msgstr "Navigate search results with Vim-like hotkeys (JavaScript required). Press \"h\" key on main or result page to get help."
+
+#: searx/templates/courgette/404.html:4 searx/templates/legacy/404.html:4
+#: searx/templates/oscar/404.html:4 searx/templates/pix-art/404.html:4
+#: searx/templates/simple/404.html:4
+msgid "Page not found"
+msgstr "དྲ་ངོས་རྙེད་རྒྱུ་མ་བྱུང་།"
+
+#: searx/templates/courgette/404.html:6 searx/templates/legacy/404.html:6
+#: searx/templates/oscar/404.html:6 searx/templates/pix-art/404.html:6
+#: searx/templates/simple/404.html:6
+#, python-format
+msgid "Go to %(search_page)s."
+msgstr "%(search_page)s ལ་བསྐྱོད།"
+
+#: searx/templates/courgette/404.html:6 searx/templates/legacy/404.html:6
+#: searx/templates/oscar/404.html:6 searx/templates/pix-art/404.html:6
+#: searx/templates/simple/404.html:6
+msgid "search page"
+msgstr "འཚོལ་བཤེར་དྲ་ངོས།"
+
+#: searx/templates/courgette/index.html:9
+#: searx/templates/courgette/index.html:13
+#: searx/templates/courgette/results.html:5
+#: searx/templates/legacy/index.html:8 searx/templates/legacy/index.html:12
+#: searx/templates/oscar/navbar.html:7
+#: searx/templates/oscar/preferences.html:3
+#: searx/templates/pix-art/index.html:8
+msgid "preferences"
+msgstr "རང་མོས་ཀྱི་སྒྲིག་འགོད།"
+
+#: searx/templates/courgette/index.html:11
+#: searx/templates/legacy/index.html:10 searx/templates/oscar/about.html:2
+#: searx/templates/oscar/navbar.html:6 searx/templates/pix-art/index.html:7
+msgid "about"
+msgstr "ངེད་ཀྱི་སྐོར།"
+
+#: searx/templates/courgette/preferences.html:5
+#: searx/templates/legacy/preferences.html:5
+#: searx/templates/oscar/preferences.html:8
+#: searx/templates/pix-art/preferences.html:5
+#: searx/templates/simple/preferences.html:26
+msgid "Preferences"
+msgstr "རང་མོས་ཀྱི་སྒྲིག་འགོད།"
+
+#: searx/templates/courgette/preferences.html:9
+#: searx/templates/legacy/preferences.html:9
+#: searx/templates/oscar/preferences.html:33
+#: searx/templates/oscar/preferences.html:35
+#: searx/templates/simple/preferences.html:34
+msgid "Default categories"
+msgstr "གཞི་བཞག་གི་རིགས།"
+
+#: searx/templates/courgette/preferences.html:13
+#: searx/templates/legacy/preferences.html:14
+#: searx/templates/oscar/preferences.html:41
+#: searx/templates/pix-art/preferences.html:9
+#: searx/templates/simple/preferences.html:39
+#: searx/templates/simple/preferences.html:163
+msgid "Search language"
+msgstr "འཚོལ་བཤེར་སྐད་རིགས།"
+
+#: searx/templates/courgette/preferences.html:16
+#: searx/templates/legacy/preferences.html:17
+#: searx/templates/oscar/languages.html:6
+#: searx/templates/pix-art/preferences.html:12
+#: searx/templates/simple/languages.html:2
+#: searx/templates/simple/preferences.html:42
+msgid "Default language"
+msgstr "སྐད་རིགས།"
+
+#: searx/templates/courgette/preferences.html:24
+#: searx/templates/legacy/preferences.html:25
+#: searx/templates/oscar/preferences.html:47
+#: searx/templates/pix-art/preferences.html:20
+#: searx/templates/simple/preferences.html:120
+msgid "Interface language"
+msgstr "མདུན་ངོས་ཀྱི་སྐད་རིགས།"
+
+#: searx/templates/courgette/preferences.html:34
+#: searx/templates/legacy/preferences.html:35
+#: searx/templates/oscar/preferences.html:57
+#: searx/templates/simple/preferences.html:51
+msgid "Autocomplete"
+msgstr "རང་ཤུགས་ཀྱིས་སྒྲུབ།"
+
+#: searx/templates/courgette/preferences.html:45
+#: searx/templates/legacy/preferences.html:46
+#: searx/templates/oscar/preferences.html:68
+#: searx/templates/simple/preferences.html:166
+msgid "Image proxy"
+msgstr "རི་མོ་མངག་བཅོལ་གྱི་ཞབས་ཞུ་སྒྲིག་ཆས།"
+
+#: searx/templates/courgette/preferences.html:48
+#: searx/templates/legacy/preferences.html:49
+#: searx/templates/oscar/preferences.html:72
+#: searx/templates/simple/preferences.html:169
+msgid "Enabled"
+msgstr "ཁ་འབྱེད་ཟིན།"
+
+#: searx/templates/courgette/preferences.html:49
+#: searx/templates/legacy/preferences.html:50
+#: searx/templates/oscar/preferences.html:73
+#: searx/templates/simple/preferences.html:170
+msgid "Disabled"
+msgstr "ཁ་རྒྱབ་ཟིན།"
+
+#: searx/templates/courgette/preferences.html:54
+#: searx/templates/legacy/preferences.html:55
+#: searx/templates/oscar/preferences.html:77
+#: searx/templates/pix-art/preferences.html:30
+#: searx/templates/simple/preferences.html:156
+msgid "Method"
+msgstr "ཐབས་ཤེས།"
+
+#: searx/templates/courgette/preferences.html:63
+#: searx/templates/legacy/preferences.html:64
+#: searx/templates/oscar/preferences.html:86
+#: searx/templates/oscar/preferences.html:153
+#: searx/templates/oscar/preferences.html:161
+#: searx/templates/simple/preferences.html:63
+#: searx/templates/simple/preferences.html:90
+msgid "SafeSearch"
+msgstr "བདེ་འཇགས་འཚོལ་བཤེར།"
+
+#: searx/templates/courgette/preferences.html:66
+#: searx/templates/legacy/preferences.html:67
+#: searx/templates/oscar/preferences.html:90
+#: searx/templates/simple/preferences.html:66
+msgid "Strict"
+msgstr "ནན་ཏན།"
+
+#: searx/templates/courgette/preferences.html:67
+#: searx/templates/legacy/preferences.html:68
+#: searx/templates/oscar/preferences.html:91
+#: searx/templates/simple/preferences.html:67
+msgid "Moderate"
+msgstr "འབྲིང་ཙམ།"
+
+#: searx/templates/courgette/preferences.html:68
+#: searx/templates/legacy/preferences.html:69
+#: searx/templates/oscar/preferences.html:92
+#: searx/templates/simple/preferences.html:68
+msgid "None"
+msgstr "གང་ཡང་མེད།"
+
+#: searx/templates/courgette/preferences.html:73
+#: searx/templates/legacy/preferences.html:74
+#: searx/templates/oscar/preferences.html:96
+#: searx/templates/pix-art/preferences.html:39
+#: searx/templates/simple/preferences.html:131
+msgid "Themes"
+msgstr "རྣམ་པ།"
+
+#: searx/templates/courgette/preferences.html:83
+msgid "Color"
+msgstr "ཁ་དོག"
+
+#: searx/templates/courgette/preferences.html:86
+msgid "Blue (default)"
+msgstr "སྔོན་པོ། (གཞི་བཞག)"
+
+#: searx/templates/courgette/preferences.html:87
+msgid "Violet"
+msgstr "དམར་སྨུག"
+
+#: searx/templates/courgette/preferences.html:88
+msgid "Green"
+msgstr "ལྗང་ཁུ།"
+
+#: searx/templates/courgette/preferences.html:89
+msgid "Cyan"
+msgstr "སྔོ་སྐྱ།"
+
+#: searx/templates/courgette/preferences.html:90
+msgid "Orange"
+msgstr "ལི་ཁྲི།"
+
+#: searx/templates/courgette/preferences.html:91
+msgid "Red"
+msgstr "དམར་པོ།"
+
+#: searx/templates/courgette/preferences.html:96
+#: searx/templates/legacy/preferences.html:93
+#: searx/templates/pix-art/preferences.html:49
+#: searx/templates/simple/preferences.html:77
+msgid "Currently used search engines"
+msgstr "ཉེ་ལམ་སྤྱད་ཟིན་པའི་འཚོལ་བྱེད་སྒུལ་བྱེད།"
+
+#: searx/templates/courgette/preferences.html:100
+#: searx/templates/legacy/preferences.html:97
+#: searx/templates/oscar/preferences.html:150
+#: searx/templates/oscar/preferences.html:164
+#: searx/templates/pix-art/preferences.html:53
+#: searx/templates/simple/preferences.html:87
+msgid "Engine name"
+msgstr "སྒུལ་བྱེད་ཀྱི་མིང་།"
+
+#: searx/templates/courgette/preferences.html:101
+#: searx/templates/legacy/preferences.html:98
+msgid "Category"
+msgstr "རིགས།"
+
+#: searx/templates/courgette/preferences.html:102
+#: searx/templates/courgette/preferences.html:113
+#: searx/templates/legacy/preferences.html:99
+#: searx/templates/legacy/preferences.html:110
+#: searx/templates/oscar/preferences.html:149
+#: searx/templates/oscar/preferences.html:165
+#: searx/templates/pix-art/preferences.html:54
+#: searx/templates/pix-art/preferences.html:64
+#: searx/templates/simple/preferences.html:86
+msgid "Allow"
+msgstr "ཆོག་མཆན།"
+
+#: searx/templates/courgette/preferences.html:102
+#: searx/templates/courgette/preferences.html:114
+#: searx/templates/legacy/preferences.html:99
+#: searx/templates/legacy/preferences.html:111
+#: searx/templates/pix-art/preferences.html:54
+#: searx/templates/pix-art/preferences.html:65
+msgid "Block"
+msgstr "བཀག་སྡོམ།"
+
+#: searx/templates/courgette/preferences.html:122
+#: searx/templates/legacy/preferences.html:119
+#: searx/templates/oscar/preferences.html:285
+#: searx/templates/pix-art/preferences.html:73
+#: searx/templates/simple/preferences.html:180
+msgid ""
+"These settings are stored in your cookies, this allows us not to store this "
+"data about you."
+msgstr "These settings are stored in your cookies, this allows us not to store this data about you."
+
+#: searx/templates/courgette/preferences.html:124
+#: searx/templates/legacy/preferences.html:121
+#: searx/templates/oscar/preferences.html:287
+#: searx/templates/pix-art/preferences.html:75
+#: searx/templates/simple/preferences.html:182
+msgid ""
+"These cookies serve your sole convenience, we don't use these cookies to "
+"track you."
+msgstr "These cookies serve your sole convenience, we don't use these cookies to track you."
+
+#: searx/templates/courgette/preferences.html:127
+#: searx/templates/legacy/preferences.html:124
+#: searx/templates/oscar/preferences.html:293
+#: searx/templates/pix-art/preferences.html:78
+#: searx/templates/simple/preferences.html:185
+msgid "save"
+msgstr "གསོག་འཇོག"
+
+#: searx/templates/courgette/preferences.html:128
+#: searx/templates/legacy/preferences.html:125
+#: searx/templates/oscar/preferences.html:295
+#: searx/templates/simple/preferences.html:186
+msgid "Reset defaults"
+msgstr "གདོད་མའི་རྣམ་པ་ལ་སྒྲིག་འགོད་བྱེད།"
+
+#: searx/templates/courgette/preferences.html:129
+#: searx/templates/legacy/preferences.html:126
+#: searx/templates/oscar/preferences.html:294
+#: searx/templates/pix-art/preferences.html:79
+#: searx/templates/simple/preferences.html:187
+msgid "back"
+msgstr "ཕྱིར་ལོག"
+
+#: searx/templates/courgette/results.html:12
+#: searx/templates/legacy/results.html:13
+#: searx/templates/oscar/results.html:136
+#: searx/templates/simple/results.html:58
+msgid "Search URL"
+msgstr "འཚོལ་བཤེར་དྲ་གནས།"
+
+#: searx/templates/courgette/results.html:16
+#: searx/templates/legacy/results.html:17
+#: searx/templates/oscar/results.html:141
+#: searx/templates/simple/results.html:62
+msgid "Download results"
+msgstr "འཚོལ་འབྲས་ཕབ་ལེན།"
+
+#: searx/templates/courgette/results.html:34
+#: searx/templates/legacy/results.html:35
+#: searx/templates/simple/results.html:10
+msgid "Answers"
+msgstr "ལན།"
+
+#: searx/templates/courgette/results.html:42
+#: searx/templates/legacy/results.html:43
+#: searx/templates/oscar/results.html:116
+#: searx/templates/simple/results.html:42
+msgid "Suggestions"
+msgstr "འོས་སྦྱོས།"
+
+#: searx/templates/courgette/results.html:70
+#: searx/templates/legacy/results.html:81
+#: searx/templates/oscar/results.html:68 searx/templates/oscar/results.html:78
+#: searx/templates/simple/results.html:130
+msgid "previous page"
+msgstr "དྲ་ངོས་སྔོན་མ།"
+
+#: searx/templates/courgette/results.html:81
+#: searx/templates/legacy/results.html:92
+#: searx/templates/oscar/results.html:62 searx/templates/oscar/results.html:84
+#: searx/templates/simple/results.html:145
+msgid "next page"
+msgstr "དྲ་ངོས་གཞུག་མ།"
+
+#: searx/templates/courgette/search.html:3
+#: searx/templates/legacy/search.html:3 searx/templates/oscar/search.html:6
+#: searx/templates/oscar/search_full.html:9
+#: searx/templates/pix-art/search.html:3 searx/templates/simple/search.html:4
+msgid "Search for..."
+msgstr "འཚོལ་བཤེར་ནང་དོན།"
+
+#: searx/templates/courgette/stats.html:4 searx/templates/legacy/stats.html:4
+#: searx/templates/oscar/stats.html:5 searx/templates/pix-art/stats.html:4
+#: searx/templates/simple/stats.html:7
+msgid "Engine stats"
+msgstr "སྒུལ་བྱེད་ཀྱི་སྡོམ་རྩིས།"
+
+#: searx/templates/courgette/result_templates/images.html:4
+#: searx/templates/legacy/result_templates/images.html:4
+#: searx/templates/pix-art/result_templates/images.html:4
+msgid "original context"
+msgstr "གདོད་མའི་ནང་དོན།"
+
+#: searx/templates/courgette/result_templates/torrent.html:7
+#: searx/templates/legacy/result_templates/torrent.html:11
+#: searx/templates/oscar/result_templates/torrent.html:6
+#: searx/templates/simple/result_templates/torrent.html:9
+msgid "Seeder"
+msgstr "མཁོ་སྤྲོད་གཏོང་མཁན།"
+
+#: searx/templates/courgette/result_templates/torrent.html:7
+#: searx/templates/legacy/result_templates/torrent.html:11
+#: searx/templates/oscar/result_templates/torrent.html:6
+#: searx/templates/simple/result_templates/torrent.html:9
+msgid "Leecher"
+msgstr "དང་ལེན་བྱེད་མཁན།"
+
+#: searx/templates/courgette/result_templates/torrent.html:9
+#: searx/templates/legacy/result_templates/torrent.html:9
+#: searx/templates/oscar/macros.html:23
+#: searx/templates/simple/result_templates/torrent.html:6
+msgid "magnet link"
+msgstr "ཐོན་ཁུངས་ཀྱི་དྲ་གནས།"
+
+#: searx/templates/courgette/result_templates/torrent.html:10
+#: searx/templates/legacy/result_templates/torrent.html:10
+#: searx/templates/oscar/macros.html:24
+#: searx/templates/simple/result_templates/torrent.html:7
+msgid "torrent file"
+msgstr "ས་བོན་ཡིག་ཆ།"
+
+#: searx/templates/legacy/categories.html:8
+#: searx/templates/simple/categories.html:6
+msgid "Click on the magnifier to perform search"
+msgstr "ས་བོན་སྟེང་གི་སྦྲེལ་ཐག་ལ་རྡེབ་ནས་འཚོལ་བཤེར་གཏོང་།"
+
+#: searx/templates/legacy/preferences.html:84
+#: searx/templates/oscar/preferences.html:113
+#: searx/templates/simple/preferences.html:142
+msgid "Results on new tabs"
+msgstr "ཤོག་ངོས་གསར་བ་ནས་འཚོལ་འབྲས་འཆར།"
+
+#: searx/templates/legacy/preferences.html:87
+#: searx/templates/oscar/preferences.html:117
+#: searx/templates/simple/preferences.html:145
+msgid "On"
+msgstr "ཁ་ཕྱེས།"
+
+#: searx/templates/legacy/preferences.html:88
+#: searx/templates/oscar/preferences.html:118
+#: searx/templates/simple/preferences.html:146
+msgid "Off"
+msgstr "ཁ་རྒྱབ།"
+
+#: searx/templates/legacy/result_templates/code.html:3
+#: searx/templates/legacy/result_templates/default.html:3
+#: searx/templates/legacy/result_templates/map.html:9
+#: searx/templates/oscar/macros.html:34 searx/templates/oscar/macros.html:48
+#: searx/templates/simple/macros.html:43
+msgid "cached"
+msgstr "འདྲ་བཤུས་རྒྱབ་ཚར།"
+
+#: searx/templates/oscar/advanced.html:4
+msgid "Advanced settings"
+msgstr "མཐོ་རིམ་སྒྲིག་འགོད།"
+
+#: searx/templates/oscar/base.html:62
+#: searx/templates/oscar/messages/first_time.html:4
+#: searx/templates/oscar/messages/save_settings_successfull.html:5
+#: searx/templates/oscar/messages/unknow_error.html:5
+msgid "Close"
+msgstr "ཁ་རྒྱག"
+
+#: searx/templates/oscar/base.html:64
+#: searx/templates/oscar/messages/no_results.html:4
+#: searx/templates/simple/messages/no_results.html:4
+#: searx/templates/simple/results.html:25
+msgid "Error!"
+msgstr "ནོར་འཁྲུལ་བྱུང་ཟིན།"
+
+#: searx/templates/oscar/base.html:90 searx/templates/simple/base.html:55
+msgid "Powered by"
+msgstr "བཟོ་སྐུན་པ་ནི"
+
+#: searx/templates/oscar/base.html:90 searx/templates/simple/base.html:55
+msgid "a privacy-respecting, hackable metasearch engine"
+msgstr "མི་སྒེར་ཆ་འཕྲིན་ལ་བརྩི་གསོག་ལྡན་ཞིང་འཚོལ་བྱེད་ནང་དོན་ཕུན་སུམ་པའི་འཚོལ་བཤེར་སྒུལ་བྱེད་མ་ལག"
+
+#: searx/templates/oscar/macros.html:36 searx/templates/oscar/macros.html:50
+#: searx/templates/simple/macros.html:43
+msgid "proxied"
+msgstr "མངག་བཅོལ་བྱེད་ཟིན།"
+
+#: searx/templates/oscar/macros.html:92
+msgid "supported"
+msgstr "རྒྱབ་སྐྱོར་ཐོབ་ཟིན་པ།"
+
+#: searx/templates/oscar/macros.html:96
+msgid "not supported"
+msgstr "རྒྱབ་སྐྱོར་མི་ཐོབ།"
+
+#: searx/templates/oscar/preferences.html:13
+#: searx/templates/oscar/preferences.html:22
+#: searx/templates/simple/preferences.html:32
+msgid "General"
+msgstr "སྤྱི་བཏང་།"
+
+#: searx/templates/oscar/preferences.html:14
+#: searx/templates/oscar/preferences.html:134
+#: searx/templates/simple/preferences.html:76
+msgid "Engines"
+msgstr "སྒུལ་བྱེད།"
+
+#: searx/templates/oscar/preferences.html:15
+#: searx/templates/oscar/preferences.html:207
+msgid "Plugins"
+msgstr "ལྷུ་ལག"
+
+#: searx/templates/oscar/preferences.html:16
+#: searx/templates/oscar/preferences.html:233
+msgid "Answerers"
+msgstr "ལན།"
+
+#: searx/templates/oscar/preferences.html:17
+#: searx/templates/oscar/preferences.html:260
+msgid "Cookies"
+msgstr "རྐང་རྗེས།"
+
+#: searx/templates/oscar/preferences.html:42
+#: searx/templates/simple/preferences.html:48
+msgid "What language do you prefer for search?"
+msgstr "ཁྱེད་ཀྱིས་ཆེས་སྤྱོད་བདེ་པའི་འཚོལ་བཤེར་སྐད་རིགས་གང་ཡིན་ནམ།"
+
+#: searx/templates/oscar/preferences.html:48
+#: searx/templates/simple/preferences.html:128
+msgid "Change the language of the layout"
+msgstr "སྐད་རིགས་གདམ་གསེས་ཀྱི་དྲ་ངོས་བརྗེ་བསྒྱུར།"
+
+#: searx/templates/oscar/preferences.html:58
+#: searx/templates/simple/preferences.html:60
+msgid "Find stuff as you type"
+msgstr "འཚོལ་བྱ་གཏགས་པ་ཇི་བཞིན་བཙལ།"
+
+#: searx/templates/oscar/preferences.html:69
+#: searx/templates/simple/preferences.html:173
+msgid "Proxying image results through searx"
+msgstr "རི་མོ searx བརྒྱུད་ནས་མངག་བཅོལ་བྱས་ཟིན།"
+
+#: searx/templates/oscar/preferences.html:78
+msgid ""
+"Change how forms are submited, <a "
+"href=\"http://en.wikipedia.org/wiki/Hypertext_Transfer_Protocol#Request_methods\""
+" rel=\"external\">learn more about request methods</a>"
+msgstr "Change how forms are submited, <a href=\"http://en.wikipedia.org/wiki/Hypertext_Transfer_Protocol#Request_methods\" rel=\"external\">learn more about request methods</a>"
+
+#: searx/templates/oscar/preferences.html:87
+#: searx/templates/simple/preferences.html:71
+msgid "Filter content"
+msgstr "ནང་དོན་བཙག་བྱེད།"
+
+#: searx/templates/oscar/preferences.html:97
+#: searx/templates/simple/preferences.html:139
+msgid "Change searx layout"
+msgstr "དྲ་ངོས་ཀྱི་རྣམ་པ་བརྗེ་བསྒྱུར།"
+
+#: searx/templates/oscar/preferences.html:106
+#: searx/templates/oscar/preferences.html:111
+msgid "Choose style for this theme"
+msgstr "དྲ་ངོས་རྣམ་པ་འདི་ལ་སྒྲིག་འགོད་གཏོང་།"
+
+#: searx/templates/oscar/preferences.html:106
+#: searx/templates/oscar/preferences.html:111
+msgid "Style"
+msgstr "ཚུགས་ཀ"
+
+#: searx/templates/oscar/preferences.html:151
+#: searx/templates/oscar/preferences.html:163
+#: searx/templates/simple/preferences.html:88
+msgid "Shortcut"
+msgstr "མགྱོགས་མྱུར་མཐེབ་གཞོང་།"
+
+#: searx/templates/oscar/preferences.html:152
+#: searx/templates/oscar/preferences.html:162
+msgid "Selected language"
+msgstr "སྐད་རིགས་གདམ་གསེས།"
+
+#: searx/templates/oscar/preferences.html:154
+#: searx/templates/oscar/preferences.html:160
+#: searx/templates/simple/preferences.html:91
+msgid "Time range"
+msgstr "དུས་ཀྱི་ཁྱབ་ཁོངས།"
+
+#: searx/templates/oscar/preferences.html:155
+#: searx/templates/oscar/preferences.html:159
+#: searx/templates/simple/preferences.html:92
+msgid "Avg. time"
+msgstr "ས་སྙོམས་དུས་ཚོད།"
+
+#: searx/templates/oscar/preferences.html:156
+#: searx/templates/oscar/preferences.html:158
+#: searx/templates/simple/preferences.html:93
+msgid "Max time"
+msgstr "མང་མཐའི་དུས་ཚོད།"
+
+#: searx/templates/oscar/preferences.html:236
+msgid "This is the list of searx's instant answering modules."
+msgstr "This is the list of searx's instant answering modules."
+
+#: searx/templates/oscar/preferences.html:240
+msgid "Name"
+msgstr "མིང་།"
+
+#: searx/templates/oscar/preferences.html:241
+msgid "Keywords"
+msgstr "ཐ་སྙད་གཙོ་བོ།"
+
+#: searx/templates/oscar/preferences.html:242
+msgid "Description"
+msgstr "འབྲེལ་ཡོད་ངོ་སྤྲོད།"
+
+#: searx/templates/oscar/preferences.html:243
+msgid "Examples"
+msgstr "དཔེ་བརྗོད།"
+
+#: searx/templates/oscar/preferences.html:263
+msgid ""
+"This is the list of cookies and their values searx is storing on your "
+"computer."
+msgstr "འདི་ནི searx ཡི་བརྡ་སྤྲོད་ལན་སློག་གི་གསལ་ཐོ་ཞིག་ཡིན།"
+
+#: searx/templates/oscar/preferences.html:264
+msgid "With that list, you can assess searx transparency."
+msgstr "གསལ་ཐོ་འདི་བརྒྱུད་ནས། ཁྱེད་ཀྱིས searx དྲ་ཚིགས་ཀྱི་བདེན་པ་རང་བཞིན་ལ་མཉམ་ཚོར་ལེན་ཐུབ།"
+
+#: searx/templates/oscar/preferences.html:269
+msgid "Cookie name"
+msgstr "རྗེས་འདེད་ཀྱི་ཡིག་ཆའི་མིང་།"
+
+#: searx/templates/oscar/preferences.html:270
+msgid "Value"
+msgstr "ཚད་གཞི།"
+
+#: searx/templates/oscar/preferences.html:289
+msgid "Search URL of the currently saved preferences"
+msgstr "ཉེ་ལམ་རང་མོས་སྒྲིག་འགོད་ཁྲོད་དུ་གསོག་འཇོག་བྱས་ཟིན་པའི་དྲ་གནས་འཚོལ་བཤེར།"
+
+#: searx/templates/oscar/preferences.html:289
+msgid ""
+"Note: specifying custom settings in the search URL can reduce privacy by "
+"leaking data to the clicked result sites."
+msgstr "Note: specifying custom settings in the search URL can reduce privacy by leaking data to the clicked result sites."
+
+#: searx/templates/oscar/results.html:17
+msgid "Search results"
+msgstr "འཚོལ་འབྲས།"
+
+#: searx/templates/oscar/results.html:21
+#: searx/templates/simple/results.html:84
+msgid "Try searching for:"
+msgstr "འཚོལ་བཤེར་ནང་དོན་ནི།"
+
+#: searx/templates/oscar/results.html:100
+#: searx/templates/simple/results.html:25
+msgid "Engines cannot retrieve results"
+msgstr "འཚོལ་བཤེར་སྒུལ་བྱེད་ལ་ནོར་འཁྲུལ་ཅུང་ཟད་བྱུང་།"
+
+#: searx/templates/oscar/results.html:131
+msgid "Links"
+msgstr "སྦྲེལ་ཐག"
+
+#: searx/templates/oscar/search.html:8
+#: searx/templates/oscar/search_full.html:11
+#: searx/templates/simple/search.html:5
+msgid "Start search"
+msgstr "འཚོལ་བཤེར་མགོ་རྩོམ།"
+
+#: searx/templates/oscar/stats.html:2
+msgid "stats"
+msgstr "སྡོམ་རྩིས།"
+
+#: searx/templates/oscar/time-range.html:3
+#: searx/templates/simple/time-range.html:3
+msgid "Anytime"
+msgstr "དུས་ངེས་མེད།"
+
+#: searx/templates/oscar/time-range.html:6
+#: searx/templates/simple/time-range.html:6
+msgid "Last day"
+msgstr "ཉིན་སྔོན་མ།"
+
+#: searx/templates/oscar/time-range.html:9
+#: searx/templates/simple/time-range.html:9
+msgid "Last week"
+msgstr "གཟའ་སྔོན་མ།"
+
+#: searx/templates/oscar/time-range.html:12
+#: searx/templates/simple/time-range.html:12
+msgid "Last month"
+msgstr "ཟླ་བ་སྔོན་མ།"
+
+#: searx/templates/oscar/time-range.html:15
+#: searx/templates/simple/time-range.html:15
+msgid "Last year"
+msgstr "ལོ་སྔོན་མ།"
+
+#: searx/templates/oscar/messages/first_time.html:6
+#: searx/templates/oscar/messages/no_data_available.html:3
+msgid "Heads up!"
+msgstr "མཉམ་འཇོག་བྱེད།"
+
+#: searx/templates/oscar/messages/first_time.html:7
+msgid "It look like you are using searx first time."
+msgstr "བལྟས་སོང་ན་ཁྱེད་ཀྱིས་ཐེངས་དང་པོ་ངེད་དྲ་བ་སྤྱོད་བཞིན་པ་རེད།"
+
+#: searx/templates/oscar/messages/no_cookies.html:3
+msgid "Information!"
+msgstr "ཆ་འཕྲིན།"
+
+#: searx/templates/oscar/messages/no_cookies.html:4
+msgid "currently, there are no cookies defined."
+msgstr "ཉེ་བར་དྲ་ངོས་རྗེས་འདེད་གང་ཡང་མེད།"
+
+#: searx/templates/oscar/messages/no_data_available.html:4
+msgid "There is currently no data available. "
+msgstr "ཉེ་བར་ཐོབ་རུང་བའི་ཡིག་ཆ་གང་ཡང་མེད།"
+
+#: searx/templates/oscar/messages/no_results.html:4
+#: searx/templates/simple/messages/no_results.html:4
+msgid "Engines cannot retrieve results."
+msgstr "འཙོལ་བཤེར་གཏོང་མི་ནུས། དགོངས་དག"
+
+#: searx/templates/oscar/messages/no_results.html:10
+#: searx/templates/simple/messages/no_results.html:10
+msgid "Please, try again later or find another searx instance."
+msgstr "ཏོག་ཙམ་འགོར་རྗེས་ཡང་བསྐྱར་ཚར་ལྟ་བྱོས།"
+
+#: searx/templates/oscar/messages/no_results.html:14
+#: searx/templates/simple/messages/no_results.html:14
+msgid "Sorry!"
+msgstr "དགོངས་དག"
+
+#: searx/templates/oscar/messages/no_results.html:15
+#: searx/templates/simple/messages/no_results.html:15
+msgid ""
+"we didn't find any results. Please use another query or search in more "
+"categories."
+msgstr "འཚོལ་འབྲས་གང་ཡང་མ་ཐོབ། ཁྱེད་ཀྱིས་འཚོལ་བཤེར་ཐ་སྙད་གཞན་པ་ནས་ཚོད་ལྟ་བྱེད་རོགས།"
+
+#: searx/templates/oscar/messages/save_settings_successfull.html:7
+msgid "Well done!"
+msgstr "ཡག་བྱུང་།"
+
+#: searx/templates/oscar/messages/save_settings_successfull.html:8
+msgid "Settings saved successfully."
+msgstr "སྒྲིག་འགོད་བདེ་ལེགས་ངང་གསོག་འཇོག་བྱས་ཟིན།"
+
+#: searx/templates/oscar/messages/unknow_error.html:7
+msgid "Oh snap!"
+msgstr "ཨ། བྱ་འདི།"
+
+#: searx/templates/oscar/messages/unknow_error.html:8
+msgid "Something went wrong."
+msgstr "ནོར་འཁྲུལ་ཆ་གེ་མོ་ཞིག་བྱུང་ཟིན།"
+
+#: searx/templates/oscar/result_templates/default.html:7
+#: searx/templates/simple/result_templates/default.html:6
+msgid "show media"
+msgstr "སྨྱན་གཟུགས་འཆར་པར་བྱེད།"
+
+#: searx/templates/oscar/result_templates/default.html:7
+#: searx/templates/simple/result_templates/default.html:6
+msgid "hide media"
+msgstr "སྨྱན་གཟུགས་སྦས་པར་བྱེད།"
+
+#: searx/templates/oscar/result_templates/images.html:30
+msgid "Get image"
+msgstr "པར་རིས་ཕབ་ལེན།"
+
+#: searx/templates/oscar/result_templates/images.html:33
+msgid "View source"
+msgstr "ཡོངས་ཁུངས་ལ་ལྟ།"
+
+#: searx/templates/oscar/result_templates/map.html:7
+#: searx/templates/simple/result_templates/map.html:7
+msgid "show map"
+msgstr "ས་བཀྲ་འཆར།"
+
+#: searx/templates/oscar/result_templates/map.html:7
+#: searx/templates/simple/result_templates/map.html:7
+msgid "hide map"
+msgstr "ས་བཀྲ་སྦས།"
+
+#: searx/templates/oscar/result_templates/map.html:11
+#: searx/templates/simple/result_templates/map.html:11
+msgid "show details"
+msgstr "ངོ་སྤྲོད་འཆར།"
+
+#: searx/templates/oscar/result_templates/map.html:11
+#: searx/templates/simple/result_templates/map.html:11
+msgid "hide details"
+msgstr "ངོ་སྤྲོད་སྦས།"
+
+#: searx/templates/oscar/result_templates/torrent.html:7
+#: searx/templates/simple/result_templates/torrent.html:11
+msgid "Filesize"
+msgstr "ཡིག་ཆའི་ཆེ་ཆུང་།"
+
+#: searx/templates/oscar/result_templates/torrent.html:9
+#: searx/templates/simple/result_templates/torrent.html:12
+msgid "Bytes"
+msgstr "གྲངས་གནས།"
+
+#: searx/templates/oscar/result_templates/torrent.html:10
+#: searx/templates/simple/result_templates/torrent.html:13
+msgid "kiB"
+msgstr "kB"
+
+#: searx/templates/oscar/result_templates/torrent.html:11
+#: searx/templates/simple/result_templates/torrent.html:14
+msgid "MiB"
+msgstr "MB"
+
+#: searx/templates/oscar/result_templates/torrent.html:12
+#: searx/templates/simple/result_templates/torrent.html:15
+msgid "GiB"
+msgstr "GB"
+
+#: searx/templates/oscar/result_templates/torrent.html:13
+#: searx/templates/simple/result_templates/torrent.html:16
+msgid "TiB"
+msgstr "TB"
+
+#: searx/templates/oscar/result_templates/torrent.html:15
+#: searx/templates/simple/result_templates/torrent.html:20
+msgid "Number of Files"
+msgstr "ཡིག་ཆའི་ཁ་གྲངས།"
+
+#: searx/templates/oscar/result_templates/videos.html:7
+#: searx/templates/simple/result_templates/videos.html:6
+msgid "show video"
+msgstr "བརྙན་ཟློས་འཆར།"
+
+#: searx/templates/oscar/result_templates/videos.html:7
+#: searx/templates/simple/result_templates/videos.html:6
+msgid "hide video"
+msgstr "རྙན་ཟློས་སྦས།"
+
+#: searx/templates/pix-art/results.html:28
+msgid "Load more..."
+msgstr "གང་བྱུང་དྲ་ཚིགས་འཆར་པར་བྱེད།"
+
+#: searx/templates/simple/base.html:31
+msgid "No item found"
+msgstr "རྣམ་གྲངས་གང་ཡང་རྙེད་རྒྱུ་མ་བྱུང་།"
+
+#: searx/templates/simple/preferences.html:89
+msgid "Supports selected language"
+msgstr "རྒྱབ་སྐྱོར་ཐོབ་པའི་སྐད་རིགས་གདམ་གསེས།"
+
+#: searx/templates/simple/preferences.html:118
+msgid "User interface"
+msgstr "མདུན་ངོས།"
+
+#: searx/templates/simple/preferences.html:154
+msgid "Privacy"
+msgstr "མི་སྒེར་གསང་དོན།"
diff --git a/searx/translations/ca/LC_MESSAGES/messages.mo b/searx/translations/ca/LC_MESSAGES/messages.mo
index 2ec3e0503..43b3d6d47 100644
--- a/searx/translations/ca/LC_MESSAGES/messages.mo
+++ b/searx/translations/ca/LC_MESSAGES/messages.mo
Binary files differ
diff --git a/searx/translations/ca/LC_MESSAGES/messages.po b/searx/translations/ca/LC_MESSAGES/messages.po
index 460091cd7..44d466654 100644
--- a/searx/translations/ca/LC_MESSAGES/messages.po
+++ b/searx/translations/ca/LC_MESSAGES/messages.po
@@ -4,14 +4,15 @@
#
# Translators:
# Calbasi <joan@calbasi.net>, 2018
+# Ecron <ecron_89@hotmail.com>, 2019
# jmontane, 2018
msgid ""
msgstr ""
"Project-Id-Version: searx\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
-"POT-Creation-Date: 2017-11-01 21:31+0100\n"
-"PO-Revision-Date: 2018-12-15 15:10+0000\n"
-"Last-Translator: jmontane\n"
+"POT-Creation-Date: 2017-10-07 19:18+0200\n"
+"PO-Revision-Date: 2019-10-17 13:46+0000\n"
+"Last-Translator: Ecron <ecron_89@hotmail.com>\n"
"Language-Team: Catalan (http://www.transifex.com/asciimoo/searx/language/ca/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
@@ -32,63 +33,63 @@ msgstr "Excepció en la petició"
msgid "unexpected crash"
msgstr "Fallada no esperada"
-#: searx/webapp.py:136
+#: searx/webapp.py:135
msgid "files"
msgstr "fitxers"
-#: searx/webapp.py:137
+#: searx/webapp.py:136
msgid "general"
msgstr "general"
-#: searx/webapp.py:138
+#: searx/webapp.py:137
msgid "music"
msgstr "música"
-#: searx/webapp.py:139
+#: searx/webapp.py:138
msgid "social media"
msgstr "xarxes socials"
-#: searx/webapp.py:140
+#: searx/webapp.py:139
msgid "images"
msgstr "imatges"
-#: searx/webapp.py:141
+#: searx/webapp.py:140
msgid "videos"
msgstr "vídeos"
-#: searx/webapp.py:142
+#: searx/webapp.py:141
msgid "it"
msgstr "informàtica"
-#: searx/webapp.py:143
+#: searx/webapp.py:142
msgid "news"
msgstr "notícies"
-#: searx/webapp.py:144
+#: searx/webapp.py:143
msgid "map"
msgstr "mapa"
-#: searx/webapp.py:145
+#: searx/webapp.py:144
msgid "science"
msgstr "ciència"
-#: searx/webapp.py:399 searx/webapp.py:658
+#: searx/webapp.py:398 searx/webapp.py:653
msgid "Invalid settings, please edit your preferences"
msgstr "La configuració no és vàlida, editeu-la"
-#: searx/webapp.py:415
+#: searx/webapp.py:410
msgid "Invalid settings"
msgstr "La configuració no és vàlida"
-#: searx/webapp.py:449 searx/webapp.py:493
+#: searx/webapp.py:444 searx/webapp.py:488
msgid "search error"
msgstr "error en la cerca"
-#: searx/webapp.py:530
+#: searx/webapp.py:525
msgid "{minutes} minute(s) ago"
msgstr "fa {minutes} minuts"
-#: searx/webapp.py:532
+#: searx/webapp.py:527
msgid "{hours} hour(s), {minutes} minute(s) ago"
msgstr "fa {hours} hores i {minutes} minuts"
@@ -108,29 +109,28 @@ msgstr "Funcions estadístiques"
msgid "Compute {functions} of the arguments"
msgstr "Calcula {functions} dels arguments"
-#: searx/engines/__init__.py:194 searx/engines/flycheck___init__.py:201
+#: searx/engines/__init__.py:194
msgid "Engine time (sec)"
msgstr "Temps del motor (segons)"
-#: searx/engines/__init__.py:198 searx/engines/flycheck___init__.py:205
+#: searx/engines/__init__.py:198
msgid "Page loads (sec)"
msgstr "Càrrega de la pàgina (segons)"
-#: searx/engines/__init__.py:202 searx/engines/flycheck___init__.py:209
-#: searx/templates/oscar/results.html:95
+#: searx/engines/__init__.py:202 searx/templates/oscar/results.html:95
#: searx/templates/simple/results.html:20
msgid "Number of results"
msgstr "Nombre de resultats"
-#: searx/engines/__init__.py:206 searx/engines/flycheck___init__.py:213
+#: searx/engines/__init__.py:206
msgid "Scores"
msgstr "Valoració"
-#: searx/engines/__init__.py:210 searx/engines/flycheck___init__.py:217
+#: searx/engines/__init__.py:210
msgid "Scores per result"
msgstr "Valoració segons el resultat"
-#: searx/engines/__init__.py:214 searx/engines/flycheck___init__.py:221
+#: searx/engines/__init__.py:214
msgid "Errors"
msgstr "Errors"
@@ -142,9 +142,15 @@ msgstr "{title}&nbsp;(OBSOLET)"
msgid "This entry has been superseded by"
msgstr "Aquesta entrada ha estat substituïda per"
-#: searx/engines/pubmed.py:74
-msgid "No abstract is available for this publication."
-msgstr "No hi ha resum disponible per a aquesta publicació."
+#: searx/plugins/doai_rewrite.py:7
+msgid "DOAI rewrite"
+msgstr "Reescriptura DOAI"
+
+#: searx/plugins/doai_rewrite.py:8
+msgid ""
+"Avoid paywalls by redirecting to open-access versions of publications when "
+"available"
+msgstr "Evita els llocs de pagaments redirigint a versions d'accés obert de les publicacions si és possible"
#: searx/plugins/https_rewrite.py:32
msgid "Rewrite HTTP links to HTTPS if possible"
@@ -158,16 +164,6 @@ msgstr "Desplaçament infinit"
msgid "Automatically load next page when scrolling to bottom of current page"
msgstr "Carrega automàticament la pàgina següent en desplaçar-se al final de la pàgina actual"
-#: searx/plugins/oa_doi_rewrite.py:9
-msgid "Open Access DOI rewrite"
-msgstr "Reescriu l'Open Access DOI"
-
-#: searx/plugins/oa_doi_rewrite.py:10
-msgid ""
-"Avoid paywalls by redirecting to open-access versions of publications when "
-"available"
-msgstr "Evita els llocs de pagaments redirigint a versions d'accés obert de les publicacions si és possible"
-
#: searx/plugins/open_results_on_new_tab.py:18
#: searx/templates/oscar/preferences.html:114
#: searx/templates/simple/preferences.html:149
@@ -330,8 +326,8 @@ msgstr "Mètode"
#: searx/templates/courgette/preferences.html:63
#: searx/templates/legacy/preferences.html:64
#: searx/templates/oscar/preferences.html:86
-#: searx/templates/oscar/preferences.html:165
-#: searx/templates/oscar/preferences.html:173
+#: searx/templates/oscar/preferences.html:153
+#: searx/templates/oscar/preferences.html:161
#: searx/templates/simple/preferences.html:63
#: searx/templates/simple/preferences.html:90
msgid "SafeSearch"
@@ -403,8 +399,8 @@ msgstr "Motors de cerca usats actualment"
#: searx/templates/courgette/preferences.html:100
#: searx/templates/legacy/preferences.html:97
-#: searx/templates/oscar/preferences.html:162
-#: searx/templates/oscar/preferences.html:176
+#: searx/templates/oscar/preferences.html:150
+#: searx/templates/oscar/preferences.html:164
#: searx/templates/pix-art/preferences.html:53
#: searx/templates/simple/preferences.html:87
msgid "Engine name"
@@ -419,8 +415,8 @@ msgstr "Categoria"
#: searx/templates/courgette/preferences.html:113
#: searx/templates/legacy/preferences.html:99
#: searx/templates/legacy/preferences.html:110
-#: searx/templates/oscar/preferences.html:161
-#: searx/templates/oscar/preferences.html:177
+#: searx/templates/oscar/preferences.html:149
+#: searx/templates/oscar/preferences.html:165
#: searx/templates/pix-art/preferences.html:54
#: searx/templates/pix-art/preferences.html:64
#: searx/templates/simple/preferences.html:86
@@ -438,7 +434,7 @@ msgstr "Bloca"
#: searx/templates/courgette/preferences.html:122
#: searx/templates/legacy/preferences.html:119
-#: searx/templates/oscar/preferences.html:297
+#: searx/templates/oscar/preferences.html:285
#: searx/templates/pix-art/preferences.html:73
#: searx/templates/simple/preferences.html:180
msgid ""
@@ -448,7 +444,7 @@ msgstr "Aquesta configuració es desa en les galetes. Això ens permet no emmaga
#: searx/templates/courgette/preferences.html:124
#: searx/templates/legacy/preferences.html:121
-#: searx/templates/oscar/preferences.html:299
+#: searx/templates/oscar/preferences.html:287
#: searx/templates/pix-art/preferences.html:75
#: searx/templates/simple/preferences.html:182
msgid ""
@@ -458,7 +454,7 @@ msgstr "Aquestes galetes només són per a la vostra conveniència. No les usem
#: searx/templates/courgette/preferences.html:127
#: searx/templates/legacy/preferences.html:124
-#: searx/templates/oscar/preferences.html:305
+#: searx/templates/oscar/preferences.html:293
#: searx/templates/pix-art/preferences.html:78
#: searx/templates/simple/preferences.html:185
msgid "save"
@@ -466,14 +462,14 @@ msgstr "desa"
#: searx/templates/courgette/preferences.html:128
#: searx/templates/legacy/preferences.html:125
-#: searx/templates/oscar/preferences.html:307
+#: searx/templates/oscar/preferences.html:295
#: searx/templates/simple/preferences.html:186
msgid "Reset defaults"
msgstr "Restaura els valors predeterminats"
#: searx/templates/courgette/preferences.html:129
#: searx/templates/legacy/preferences.html:126
-#: searx/templates/oscar/preferences.html:306
+#: searx/templates/oscar/preferences.html:294
#: searx/templates/pix-art/preferences.html:79
#: searx/templates/simple/preferences.html:187
msgid "back"
@@ -644,23 +640,23 @@ msgid "General"
msgstr "General"
#: searx/templates/oscar/preferences.html:14
-#: searx/templates/oscar/preferences.html:146
+#: searx/templates/oscar/preferences.html:134
#: searx/templates/simple/preferences.html:76
msgid "Engines"
msgstr "Motorrs"
#: searx/templates/oscar/preferences.html:15
-#: searx/templates/oscar/preferences.html:219
+#: searx/templates/oscar/preferences.html:207
msgid "Plugins"
msgstr "Connectat"
#: searx/templates/oscar/preferences.html:16
-#: searx/templates/oscar/preferences.html:245
+#: searx/templates/oscar/preferences.html:233
msgid "Answerers"
msgstr "Resposter"
#: searx/templates/oscar/preferences.html:17
-#: searx/templates/oscar/preferences.html:272
+#: searx/templates/oscar/preferences.html:260
msgid "Cookies"
msgstr "Galetes"
@@ -711,88 +707,78 @@ msgstr "Trieu un estil per a aquest tema"
msgid "Style"
msgstr "Estil"
-#: searx/templates/oscar/preferences.html:122
-msgid "Open Access DOI resolver"
-msgstr "Solucionador de l'Open Access DOI"
-
-#: searx/templates/oscar/preferences.html:123
-msgid ""
-"Redirect to open-access versions of publications when available (plugin "
-"required)"
-msgstr "Redirigeix cap a versions d'accés obert de les publicacions si són disponibles (cal un connector)"
-
+#: searx/templates/oscar/preferences.html:151
#: searx/templates/oscar/preferences.html:163
-#: searx/templates/oscar/preferences.html:175
#: searx/templates/simple/preferences.html:88
msgid "Shortcut"
msgstr "Drecera"
-#: searx/templates/oscar/preferences.html:164
-#: searx/templates/oscar/preferences.html:174
+#: searx/templates/oscar/preferences.html:152
+#: searx/templates/oscar/preferences.html:162
msgid "Selected language"
msgstr "Llengua seleccionada"
-#: searx/templates/oscar/preferences.html:166
-#: searx/templates/oscar/preferences.html:172
+#: searx/templates/oscar/preferences.html:154
+#: searx/templates/oscar/preferences.html:160
#: searx/templates/simple/preferences.html:91
msgid "Time range"
msgstr "Interval de temps"
-#: searx/templates/oscar/preferences.html:167
-#: searx/templates/oscar/preferences.html:171
+#: searx/templates/oscar/preferences.html:155
+#: searx/templates/oscar/preferences.html:159
#: searx/templates/simple/preferences.html:92
msgid "Avg. time"
msgstr "Temps amitjanat"
-#: searx/templates/oscar/preferences.html:168
-#: searx/templates/oscar/preferences.html:170
+#: searx/templates/oscar/preferences.html:156
+#: searx/templates/oscar/preferences.html:158
#: searx/templates/simple/preferences.html:93
msgid "Max time"
msgstr "Temps màxim"
-#: searx/templates/oscar/preferences.html:248
+#: searx/templates/oscar/preferences.html:236
msgid "This is the list of searx's instant answering modules."
msgstr "Aquest és el llistat dels mòduls de resposta ràpida del searx."
-#: searx/templates/oscar/preferences.html:252
+#: searx/templates/oscar/preferences.html:240
msgid "Name"
msgstr "Nom"
-#: searx/templates/oscar/preferences.html:253
+#: searx/templates/oscar/preferences.html:241
msgid "Keywords"
msgstr "Paraules clau"
-#: searx/templates/oscar/preferences.html:254
+#: searx/templates/oscar/preferences.html:242
msgid "Description"
msgstr "Descripció"
-#: searx/templates/oscar/preferences.html:255
+#: searx/templates/oscar/preferences.html:243
msgid "Examples"
msgstr "Exemples"
-#: searx/templates/oscar/preferences.html:275
+#: searx/templates/oscar/preferences.html:263
msgid ""
"This is the list of cookies and their values searx is storing on your "
"computer."
msgstr "Aquest és el llistat de les galetes, i els seu valor, que el searx té desats en el vostre equip."
-#: searx/templates/oscar/preferences.html:276
+#: searx/templates/oscar/preferences.html:264
msgid "With that list, you can assess searx transparency."
msgstr "Amb aquest llistat, podeu avaluar la transparència del searx."
-#: searx/templates/oscar/preferences.html:281
+#: searx/templates/oscar/preferences.html:269
msgid "Cookie name"
msgstr "Nom de la galeta"
-#: searx/templates/oscar/preferences.html:282
+#: searx/templates/oscar/preferences.html:270
msgid "Value"
msgstr "Valor"
-#: searx/templates/oscar/preferences.html:301
+#: searx/templates/oscar/preferences.html:289
msgid "Search URL of the currently saved preferences"
msgstr "URL de cerca de les preferències desades actualment"
-#: searx/templates/oscar/preferences.html:301
+#: searx/templates/oscar/preferences.html:289
msgid ""
"Note: specifying custom settings in the search URL can reduce privacy by "
"leaking data to the clicked result sites."
diff --git a/searx/translations/cs/LC_MESSAGES/messages.mo b/searx/translations/cs/LC_MESSAGES/messages.mo
index eded7150a..55d402429 100644
--- a/searx/translations/cs/LC_MESSAGES/messages.mo
+++ b/searx/translations/cs/LC_MESSAGES/messages.mo
Binary files differ
diff --git a/searx/translations/cs/LC_MESSAGES/messages.po b/searx/translations/cs/LC_MESSAGES/messages.po
index 8d3ce3c3e..a14212359 100644
--- a/searx/translations/cs/LC_MESSAGES/messages.po
+++ b/searx/translations/cs/LC_MESSAGES/messages.po
@@ -4,14 +4,15 @@
#
# Translators:
# Clon <fillip1@seznam.cz>, 2017
+# Clon <fillip1@seznam.cz>, 2017
# Václav Zouzalík <Vaclav.Zouzalik@seznam.cz>, 2018
msgid ""
msgstr ""
"Project-Id-Version: searx\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
-"POT-Creation-Date: 2017-11-01 21:31+0100\n"
-"PO-Revision-Date: 2018-12-18 12:03+0000\n"
-"Last-Translator: Václav Zouzalík <Vaclav.Zouzalik@seznam.cz>\n"
+"POT-Creation-Date: 2017-10-07 19:18+0200\n"
+"PO-Revision-Date: 2019-02-23 17:39+0000\n"
+"Last-Translator: Noémi Ványi <sitbackandwait@gmail.com>\n"
"Language-Team: Czech (http://www.transifex.com/asciimoo/searx/language/cs/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
@@ -32,63 +33,63 @@ msgstr ""
msgid "unexpected crash"
msgstr ""
-#: searx/webapp.py:136
+#: searx/webapp.py:135
msgid "files"
msgstr "soubory"
-#: searx/webapp.py:137
+#: searx/webapp.py:136
msgid "general"
msgstr "obecné"
-#: searx/webapp.py:138
+#: searx/webapp.py:137
msgid "music"
msgstr "hudba"
-#: searx/webapp.py:139
+#: searx/webapp.py:138
msgid "social media"
msgstr "sociální media"
-#: searx/webapp.py:140
+#: searx/webapp.py:139
msgid "images"
msgstr "obrázky"
-#: searx/webapp.py:141
+#: searx/webapp.py:140
msgid "videos"
msgstr "videa"
-#: searx/webapp.py:142
+#: searx/webapp.py:141
msgid "it"
msgstr "IT"
-#: searx/webapp.py:143
+#: searx/webapp.py:142
msgid "news"
msgstr "zprávy"
-#: searx/webapp.py:144
+#: searx/webapp.py:143
msgid "map"
msgstr "mapa"
-#: searx/webapp.py:145
+#: searx/webapp.py:144
msgid "science"
msgstr "věda"
-#: searx/webapp.py:399 searx/webapp.py:658
+#: searx/webapp.py:398 searx/webapp.py:653
msgid "Invalid settings, please edit your preferences"
msgstr "Neplatné nastavení, upravte svoje předvolby"
-#: searx/webapp.py:415
+#: searx/webapp.py:410
msgid "Invalid settings"
msgstr "Neplatné nastavení"
-#: searx/webapp.py:449 searx/webapp.py:493
+#: searx/webapp.py:444 searx/webapp.py:488
msgid "search error"
msgstr "chyba vyhledávání"
-#: searx/webapp.py:530
+#: searx/webapp.py:525
msgid "{minutes} minute(s) ago"
msgstr "před {minutes} minutamy"
-#: searx/webapp.py:532
+#: searx/webapp.py:527
msgid "{hours} hour(s), {minutes} minute(s) ago"
msgstr "před {hours} hodinami, {minutes} minutami"
@@ -108,29 +109,28 @@ msgstr "Statistické funkce"
msgid "Compute {functions} of the arguments"
msgstr "Vypočítá {functions} daného argumentu"
-#: searx/engines/__init__.py:194 searx/engines/flycheck___init__.py:201
+#: searx/engines/__init__.py:194
msgid "Engine time (sec)"
msgstr "Strojový čas (s)"
-#: searx/engines/__init__.py:198 searx/engines/flycheck___init__.py:205
+#: searx/engines/__init__.py:198
msgid "Page loads (sec)"
msgstr "Načítání stránky (s)"
-#: searx/engines/__init__.py:202 searx/engines/flycheck___init__.py:209
-#: searx/templates/oscar/results.html:95
+#: searx/engines/__init__.py:202 searx/templates/oscar/results.html:95
#: searx/templates/simple/results.html:20
msgid "Number of results"
msgstr "Počet výsledků"
-#: searx/engines/__init__.py:206 searx/engines/flycheck___init__.py:213
+#: searx/engines/__init__.py:206
msgid "Scores"
msgstr ""
-#: searx/engines/__init__.py:210 searx/engines/flycheck___init__.py:217
+#: searx/engines/__init__.py:210
msgid "Scores per result"
msgstr ""
-#: searx/engines/__init__.py:214 searx/engines/flycheck___init__.py:221
+#: searx/engines/__init__.py:214
msgid "Errors"
msgstr "Chyby"
@@ -142,10 +142,16 @@ msgstr "{title}&nbsp;(ZASTARALÉ)"
msgid "This entry has been superseded by"
msgstr "Tato položka byla nahrazena"
-#: searx/engines/pubmed.py:74
-msgid "No abstract is available for this publication."
+#: searx/plugins/doai_rewrite.py:7
+msgid "DOAI rewrite"
msgstr ""
+#: searx/plugins/doai_rewrite.py:8
+msgid ""
+"Avoid paywalls by redirecting to open-access versions of publications when "
+"available"
+msgstr "Předejít placené sekce přesměrováním na verze s otevřený přístupem pokud je to možné"
+
#: searx/plugins/https_rewrite.py:32
msgid "Rewrite HTTP links to HTTPS if possible"
msgstr "Pokud je to možné přepsat HTTP linky na HTTPS"
@@ -158,16 +164,6 @@ msgstr "Nekonečné rolování"
msgid "Automatically load next page when scrolling to bottom of current page"
msgstr "Automaticky načíst další stránku při dorolování na konec současné"
-#: searx/plugins/oa_doi_rewrite.py:9
-msgid "Open Access DOI rewrite"
-msgstr ""
-
-#: searx/plugins/oa_doi_rewrite.py:10
-msgid ""
-"Avoid paywalls by redirecting to open-access versions of publications when "
-"available"
-msgstr "Předejít placené sekce přesměrováním na verze s otevřený přístupem pokud je to možné"
-
#: searx/plugins/open_results_on_new_tab.py:18
#: searx/templates/oscar/preferences.html:114
#: searx/templates/simple/preferences.html:149
@@ -330,8 +326,8 @@ msgstr "Metoda"
#: searx/templates/courgette/preferences.html:63
#: searx/templates/legacy/preferences.html:64
#: searx/templates/oscar/preferences.html:86
-#: searx/templates/oscar/preferences.html:165
-#: searx/templates/oscar/preferences.html:173
+#: searx/templates/oscar/preferences.html:153
+#: searx/templates/oscar/preferences.html:161
#: searx/templates/simple/preferences.html:63
#: searx/templates/simple/preferences.html:90
msgid "SafeSearch"
@@ -403,8 +399,8 @@ msgstr "Nyní používaný vyhledávač"
#: searx/templates/courgette/preferences.html:100
#: searx/templates/legacy/preferences.html:97
-#: searx/templates/oscar/preferences.html:162
-#: searx/templates/oscar/preferences.html:176
+#: searx/templates/oscar/preferences.html:150
+#: searx/templates/oscar/preferences.html:164
#: searx/templates/pix-art/preferences.html:53
#: searx/templates/simple/preferences.html:87
msgid "Engine name"
@@ -419,8 +415,8 @@ msgstr "Kategorie"
#: searx/templates/courgette/preferences.html:113
#: searx/templates/legacy/preferences.html:99
#: searx/templates/legacy/preferences.html:110
-#: searx/templates/oscar/preferences.html:161
-#: searx/templates/oscar/preferences.html:177
+#: searx/templates/oscar/preferences.html:149
+#: searx/templates/oscar/preferences.html:165
#: searx/templates/pix-art/preferences.html:54
#: searx/templates/pix-art/preferences.html:64
#: searx/templates/simple/preferences.html:86
@@ -438,7 +434,7 @@ msgstr "Blokovat"
#: searx/templates/courgette/preferences.html:122
#: searx/templates/legacy/preferences.html:119
-#: searx/templates/oscar/preferences.html:297
+#: searx/templates/oscar/preferences.html:285
#: searx/templates/pix-art/preferences.html:73
#: searx/templates/simple/preferences.html:180
msgid ""
@@ -448,7 +444,7 @@ msgstr "Tato nastavení jsou uložena ve vašem cookies, to nám umožňuje tako
#: searx/templates/courgette/preferences.html:124
#: searx/templates/legacy/preferences.html:121
-#: searx/templates/oscar/preferences.html:299
+#: searx/templates/oscar/preferences.html:287
#: searx/templates/pix-art/preferences.html:75
#: searx/templates/simple/preferences.html:182
msgid ""
@@ -458,7 +454,7 @@ msgstr "Tato cookie slouží výhradně vašemu pohodlí, neužíváme je pro va
#: searx/templates/courgette/preferences.html:127
#: searx/templates/legacy/preferences.html:124
-#: searx/templates/oscar/preferences.html:305
+#: searx/templates/oscar/preferences.html:293
#: searx/templates/pix-art/preferences.html:78
#: searx/templates/simple/preferences.html:185
msgid "save"
@@ -466,14 +462,14 @@ msgstr "uložit"
#: searx/templates/courgette/preferences.html:128
#: searx/templates/legacy/preferences.html:125
-#: searx/templates/oscar/preferences.html:307
+#: searx/templates/oscar/preferences.html:295
#: searx/templates/simple/preferences.html:186
msgid "Reset defaults"
msgstr "Obnovit základní"
#: searx/templates/courgette/preferences.html:129
#: searx/templates/legacy/preferences.html:126
-#: searx/templates/oscar/preferences.html:306
+#: searx/templates/oscar/preferences.html:294
#: searx/templates/pix-art/preferences.html:79
#: searx/templates/simple/preferences.html:187
msgid "back"
@@ -644,23 +640,23 @@ msgid "General"
msgstr "Obecné"
#: searx/templates/oscar/preferences.html:14
-#: searx/templates/oscar/preferences.html:146
+#: searx/templates/oscar/preferences.html:134
#: searx/templates/simple/preferences.html:76
msgid "Engines"
msgstr "Vyhledávače"
#: searx/templates/oscar/preferences.html:15
-#: searx/templates/oscar/preferences.html:219
+#: searx/templates/oscar/preferences.html:207
msgid "Plugins"
msgstr "Zásuvné moduly"
#: searx/templates/oscar/preferences.html:16
-#: searx/templates/oscar/preferences.html:245
+#: searx/templates/oscar/preferences.html:233
msgid "Answerers"
msgstr "Odpovědi"
#: searx/templates/oscar/preferences.html:17
-#: searx/templates/oscar/preferences.html:272
+#: searx/templates/oscar/preferences.html:260
msgid "Cookies"
msgstr "Cookies"
@@ -711,88 +707,78 @@ msgstr "Vybrat styl tohoto motivu"
msgid "Style"
msgstr "Styl"
-#: searx/templates/oscar/preferences.html:122
-msgid "Open Access DOI resolver"
-msgstr ""
-
-#: searx/templates/oscar/preferences.html:123
-msgid ""
-"Redirect to open-access versions of publications when available (plugin "
-"required)"
-msgstr ""
-
+#: searx/templates/oscar/preferences.html:151
#: searx/templates/oscar/preferences.html:163
-#: searx/templates/oscar/preferences.html:175
#: searx/templates/simple/preferences.html:88
msgid "Shortcut"
msgstr "Zkratka"
-#: searx/templates/oscar/preferences.html:164
-#: searx/templates/oscar/preferences.html:174
+#: searx/templates/oscar/preferences.html:152
+#: searx/templates/oscar/preferences.html:162
msgid "Selected language"
msgstr "Zvolený jazyk"
-#: searx/templates/oscar/preferences.html:166
-#: searx/templates/oscar/preferences.html:172
+#: searx/templates/oscar/preferences.html:154
+#: searx/templates/oscar/preferences.html:160
#: searx/templates/simple/preferences.html:91
msgid "Time range"
msgstr "Čásový interval"
-#: searx/templates/oscar/preferences.html:167
-#: searx/templates/oscar/preferences.html:171
+#: searx/templates/oscar/preferences.html:155
+#: searx/templates/oscar/preferences.html:159
#: searx/templates/simple/preferences.html:92
msgid "Avg. time"
msgstr "Prům. čas"
-#: searx/templates/oscar/preferences.html:168
-#: searx/templates/oscar/preferences.html:170
+#: searx/templates/oscar/preferences.html:156
+#: searx/templates/oscar/preferences.html:158
#: searx/templates/simple/preferences.html:93
msgid "Max time"
msgstr "Max. čas"
-#: searx/templates/oscar/preferences.html:248
+#: searx/templates/oscar/preferences.html:236
msgid "This is the list of searx's instant answering modules."
msgstr "Toto je seznam modulů okamžité odpovědi searxu."
-#: searx/templates/oscar/preferences.html:252
+#: searx/templates/oscar/preferences.html:240
msgid "Name"
msgstr "Jméno"
-#: searx/templates/oscar/preferences.html:253
+#: searx/templates/oscar/preferences.html:241
msgid "Keywords"
msgstr "Klíčová slova"
-#: searx/templates/oscar/preferences.html:254
+#: searx/templates/oscar/preferences.html:242
msgid "Description"
msgstr "Popis"
-#: searx/templates/oscar/preferences.html:255
+#: searx/templates/oscar/preferences.html:243
msgid "Examples"
msgstr "Příklady"
-#: searx/templates/oscar/preferences.html:275
+#: searx/templates/oscar/preferences.html:263
msgid ""
"This is the list of cookies and their values searx is storing on your "
"computer."
msgstr "Toto je seznam cookies a jejich hodnot které searx ukládá ve vašem počítači."
-#: searx/templates/oscar/preferences.html:276
+#: searx/templates/oscar/preferences.html:264
msgid "With that list, you can assess searx transparency."
msgstr "S tímto seznamem můžete posoudit průhlednost searxu"
-#: searx/templates/oscar/preferences.html:281
+#: searx/templates/oscar/preferences.html:269
msgid "Cookie name"
msgstr "Název cookie"
-#: searx/templates/oscar/preferences.html:282
+#: searx/templates/oscar/preferences.html:270
msgid "Value"
msgstr "Hodnota"
-#: searx/templates/oscar/preferences.html:301
+#: searx/templates/oscar/preferences.html:289
msgid "Search URL of the currently saved preferences"
msgstr ""
-#: searx/templates/oscar/preferences.html:301
+#: searx/templates/oscar/preferences.html:289
msgid ""
"Note: specifying custom settings in the search URL can reduce privacy by "
"leaking data to the clicked result sites."
diff --git a/searx/translations/cy/LC_MESSAGES/messages.mo b/searx/translations/cy/LC_MESSAGES/messages.mo
index 066d268e0..238ecce80 100644
--- a/searx/translations/cy/LC_MESSAGES/messages.mo
+++ b/searx/translations/cy/LC_MESSAGES/messages.mo
Binary files differ
diff --git a/searx/translations/cy/LC_MESSAGES/messages.po b/searx/translations/cy/LC_MESSAGES/messages.po
index 3344c6d1d..04d8a21d1 100644
--- a/searx/translations/cy/LC_MESSAGES/messages.po
+++ b/searx/translations/cy/LC_MESSAGES/messages.po
@@ -3,14 +3,14 @@
# This file is distributed under the same license as the PROJECT project.
#
# Translators:
-# Aled Powell <aled@aledpowell.cymru>, 2019
+# Cymrodor <aled@aledpowell.cymru>, 2019
msgid ""
msgstr ""
"Project-Id-Version: searx\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
-"POT-Creation-Date: 2017-11-01 21:31+0100\n"
-"PO-Revision-Date: 2019-01-05 13:50+0000\n"
-"Last-Translator: Aled Powell <aled@aledpowell.cymru>\n"
+"POT-Creation-Date: 2017-10-07 19:18+0200\n"
+"PO-Revision-Date: 2019-02-23 17:39+0000\n"
+"Last-Translator: Noémi Ványi <sitbackandwait@gmail.com>\n"
"Language-Team: Welsh (http://www.transifex.com/asciimoo/searx/language/cy/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
@@ -31,63 +31,63 @@ msgstr ""
msgid "unexpected crash"
msgstr ""
-#: searx/webapp.py:136
+#: searx/webapp.py:135
msgid "files"
msgstr "ffeiliau"
-#: searx/webapp.py:137
+#: searx/webapp.py:136
msgid "general"
msgstr "cyffredinol"
-#: searx/webapp.py:138
+#: searx/webapp.py:137
msgid "music"
msgstr "cerddoriaeth"
-#: searx/webapp.py:139
+#: searx/webapp.py:138
msgid "social media"
msgstr "cyfryngau cymdeithasol"
-#: searx/webapp.py:140
+#: searx/webapp.py:139
msgid "images"
msgstr "delweddau"
-#: searx/webapp.py:141
+#: searx/webapp.py:140
msgid "videos"
msgstr "fideos"
-#: searx/webapp.py:142
+#: searx/webapp.py:141
msgid "it"
msgstr "Technoleg"
-#: searx/webapp.py:143
+#: searx/webapp.py:142
msgid "news"
msgstr "newyddion"
-#: searx/webapp.py:144
+#: searx/webapp.py:143
msgid "map"
msgstr "map"
-#: searx/webapp.py:145
+#: searx/webapp.py:144
msgid "science"
msgstr "gwyddoniaeth"
-#: searx/webapp.py:399 searx/webapp.py:658
+#: searx/webapp.py:398 searx/webapp.py:653
msgid "Invalid settings, please edit your preferences"
msgstr "Gosodiadau annilys. Addasa dy ddewisiadau."
-#: searx/webapp.py:415
+#: searx/webapp.py:410
msgid "Invalid settings"
msgstr "Gosodiadau annilys"
-#: searx/webapp.py:449 searx/webapp.py:493
+#: searx/webapp.py:444 searx/webapp.py:488
msgid "search error"
msgstr "gwall chwilio"
-#: searx/webapp.py:530
+#: searx/webapp.py:525
msgid "{minutes} minute(s) ago"
msgstr "{minutes} munud yn ôl"
-#: searx/webapp.py:532
+#: searx/webapp.py:527
msgid "{hours} hour(s), {minutes} minute(s) ago"
msgstr "{hours} awr, {minutes} munud yn ôl"
@@ -107,29 +107,28 @@ msgstr ""
msgid "Compute {functions} of the arguments"
msgstr ""
-#: searx/engines/__init__.py:194 searx/engines/flycheck___init__.py:201
+#: searx/engines/__init__.py:194
msgid "Engine time (sec)"
msgstr ""
-#: searx/engines/__init__.py:198 searx/engines/flycheck___init__.py:205
+#: searx/engines/__init__.py:198
msgid "Page loads (sec)"
msgstr ""
-#: searx/engines/__init__.py:202 searx/engines/flycheck___init__.py:209
-#: searx/templates/oscar/results.html:95
+#: searx/engines/__init__.py:202 searx/templates/oscar/results.html:95
#: searx/templates/simple/results.html:20
msgid "Number of results"
msgstr "Nifer o ganlyniadau"
-#: searx/engines/__init__.py:206 searx/engines/flycheck___init__.py:213
+#: searx/engines/__init__.py:206
msgid "Scores"
msgstr "Sgoriau"
-#: searx/engines/__init__.py:210 searx/engines/flycheck___init__.py:217
+#: searx/engines/__init__.py:210
msgid "Scores per result"
msgstr ""
-#: searx/engines/__init__.py:214 searx/engines/flycheck___init__.py:221
+#: searx/engines/__init__.py:214
msgid "Errors"
msgstr "Gwallau"
@@ -141,8 +140,14 @@ msgstr ""
msgid "This entry has been superseded by"
msgstr ""
-#: searx/engines/pubmed.py:74
-msgid "No abstract is available for this publication."
+#: searx/plugins/doai_rewrite.py:7
+msgid "DOAI rewrite"
+msgstr ""
+
+#: searx/plugins/doai_rewrite.py:8
+msgid ""
+"Avoid paywalls by redirecting to open-access versions of publications when "
+"available"
msgstr ""
#: searx/plugins/https_rewrite.py:32
@@ -157,16 +162,6 @@ msgstr ""
msgid "Automatically load next page when scrolling to bottom of current page"
msgstr ""
-#: searx/plugins/oa_doi_rewrite.py:9
-msgid "Open Access DOI rewrite"
-msgstr ""
-
-#: searx/plugins/oa_doi_rewrite.py:10
-msgid ""
-"Avoid paywalls by redirecting to open-access versions of publications when "
-"available"
-msgstr ""
-
#: searx/plugins/open_results_on_new_tab.py:18
#: searx/templates/oscar/preferences.html:114
#: searx/templates/simple/preferences.html:149
@@ -329,8 +324,8 @@ msgstr "Dull"
#: searx/templates/courgette/preferences.html:63
#: searx/templates/legacy/preferences.html:64
#: searx/templates/oscar/preferences.html:86
-#: searx/templates/oscar/preferences.html:165
-#: searx/templates/oscar/preferences.html:173
+#: searx/templates/oscar/preferences.html:153
+#: searx/templates/oscar/preferences.html:161
#: searx/templates/simple/preferences.html:63
#: searx/templates/simple/preferences.html:90
msgid "SafeSearch"
@@ -402,8 +397,8 @@ msgstr ""
#: searx/templates/courgette/preferences.html:100
#: searx/templates/legacy/preferences.html:97
-#: searx/templates/oscar/preferences.html:162
-#: searx/templates/oscar/preferences.html:176
+#: searx/templates/oscar/preferences.html:150
+#: searx/templates/oscar/preferences.html:164
#: searx/templates/pix-art/preferences.html:53
#: searx/templates/simple/preferences.html:87
msgid "Engine name"
@@ -418,8 +413,8 @@ msgstr "Categori"
#: searx/templates/courgette/preferences.html:113
#: searx/templates/legacy/preferences.html:99
#: searx/templates/legacy/preferences.html:110
-#: searx/templates/oscar/preferences.html:161
-#: searx/templates/oscar/preferences.html:177
+#: searx/templates/oscar/preferences.html:149
+#: searx/templates/oscar/preferences.html:165
#: searx/templates/pix-art/preferences.html:54
#: searx/templates/pix-art/preferences.html:64
#: searx/templates/simple/preferences.html:86
@@ -437,7 +432,7 @@ msgstr "Rhwystro"
#: searx/templates/courgette/preferences.html:122
#: searx/templates/legacy/preferences.html:119
-#: searx/templates/oscar/preferences.html:297
+#: searx/templates/oscar/preferences.html:285
#: searx/templates/pix-art/preferences.html:73
#: searx/templates/simple/preferences.html:180
msgid ""
@@ -447,7 +442,7 @@ msgstr ""
#: searx/templates/courgette/preferences.html:124
#: searx/templates/legacy/preferences.html:121
-#: searx/templates/oscar/preferences.html:299
+#: searx/templates/oscar/preferences.html:287
#: searx/templates/pix-art/preferences.html:75
#: searx/templates/simple/preferences.html:182
msgid ""
@@ -457,7 +452,7 @@ msgstr ""
#: searx/templates/courgette/preferences.html:127
#: searx/templates/legacy/preferences.html:124
-#: searx/templates/oscar/preferences.html:305
+#: searx/templates/oscar/preferences.html:293
#: searx/templates/pix-art/preferences.html:78
#: searx/templates/simple/preferences.html:185
msgid "save"
@@ -465,14 +460,14 @@ msgstr "cadw"
#: searx/templates/courgette/preferences.html:128
#: searx/templates/legacy/preferences.html:125
-#: searx/templates/oscar/preferences.html:307
+#: searx/templates/oscar/preferences.html:295
#: searx/templates/simple/preferences.html:186
msgid "Reset defaults"
msgstr "Ailosod rhagosodiadau"
#: searx/templates/courgette/preferences.html:129
#: searx/templates/legacy/preferences.html:126
-#: searx/templates/oscar/preferences.html:306
+#: searx/templates/oscar/preferences.html:294
#: searx/templates/pix-art/preferences.html:79
#: searx/templates/simple/preferences.html:187
msgid "back"
@@ -643,23 +638,23 @@ msgid "General"
msgstr "Cyffredin"
#: searx/templates/oscar/preferences.html:14
-#: searx/templates/oscar/preferences.html:146
+#: searx/templates/oscar/preferences.html:134
#: searx/templates/simple/preferences.html:76
msgid "Engines"
msgstr "Peiriannau"
#: searx/templates/oscar/preferences.html:15
-#: searx/templates/oscar/preferences.html:219
+#: searx/templates/oscar/preferences.html:207
msgid "Plugins"
msgstr "Ategolion"
#: searx/templates/oscar/preferences.html:16
-#: searx/templates/oscar/preferences.html:245
+#: searx/templates/oscar/preferences.html:233
msgid "Answerers"
msgstr "Atebwyr"
#: searx/templates/oscar/preferences.html:17
-#: searx/templates/oscar/preferences.html:272
+#: searx/templates/oscar/preferences.html:260
msgid "Cookies"
msgstr "Cwcis"
@@ -710,88 +705,78 @@ msgstr "Dewis arddull ar gyfer y thema hon"
msgid "Style"
msgstr "Arddull"
-#: searx/templates/oscar/preferences.html:122
-msgid "Open Access DOI resolver"
-msgstr ""
-
-#: searx/templates/oscar/preferences.html:123
-msgid ""
-"Redirect to open-access versions of publications when available (plugin "
-"required)"
-msgstr ""
-
+#: searx/templates/oscar/preferences.html:151
#: searx/templates/oscar/preferences.html:163
-#: searx/templates/oscar/preferences.html:175
#: searx/templates/simple/preferences.html:88
msgid "Shortcut"
msgstr "Llwybr Byr"
-#: searx/templates/oscar/preferences.html:164
-#: searx/templates/oscar/preferences.html:174
+#: searx/templates/oscar/preferences.html:152
+#: searx/templates/oscar/preferences.html:162
msgid "Selected language"
msgstr "Iaith a ddewiswyd"
-#: searx/templates/oscar/preferences.html:166
-#: searx/templates/oscar/preferences.html:172
+#: searx/templates/oscar/preferences.html:154
+#: searx/templates/oscar/preferences.html:160
#: searx/templates/simple/preferences.html:91
msgid "Time range"
msgstr "Cyfnod amser"
-#: searx/templates/oscar/preferences.html:167
-#: searx/templates/oscar/preferences.html:171
+#: searx/templates/oscar/preferences.html:155
+#: searx/templates/oscar/preferences.html:159
#: searx/templates/simple/preferences.html:92
msgid "Avg. time"
msgstr ""
-#: searx/templates/oscar/preferences.html:168
-#: searx/templates/oscar/preferences.html:170
+#: searx/templates/oscar/preferences.html:156
+#: searx/templates/oscar/preferences.html:158
#: searx/templates/simple/preferences.html:93
msgid "Max time"
msgstr ""
-#: searx/templates/oscar/preferences.html:248
+#: searx/templates/oscar/preferences.html:236
msgid "This is the list of searx's instant answering modules."
msgstr ""
-#: searx/templates/oscar/preferences.html:252
+#: searx/templates/oscar/preferences.html:240
msgid "Name"
msgstr "Enw"
-#: searx/templates/oscar/preferences.html:253
+#: searx/templates/oscar/preferences.html:241
msgid "Keywords"
msgstr "Allweddeiriau"
-#: searx/templates/oscar/preferences.html:254
+#: searx/templates/oscar/preferences.html:242
msgid "Description"
msgstr "Disgrifiad"
-#: searx/templates/oscar/preferences.html:255
+#: searx/templates/oscar/preferences.html:243
msgid "Examples"
msgstr "Enghreifftiau"
-#: searx/templates/oscar/preferences.html:275
+#: searx/templates/oscar/preferences.html:263
msgid ""
"This is the list of cookies and their values searx is storing on your "
"computer."
msgstr "Dyma restr y cwcis, a'u gwerthoedd, mae searX yn eu cadw ar eich dyfais."
-#: searx/templates/oscar/preferences.html:276
+#: searx/templates/oscar/preferences.html:264
msgid "With that list, you can assess searx transparency."
msgstr ""
-#: searx/templates/oscar/preferences.html:281
+#: searx/templates/oscar/preferences.html:269
msgid "Cookie name"
msgstr "Enw cwci"
-#: searx/templates/oscar/preferences.html:282
+#: searx/templates/oscar/preferences.html:270
msgid "Value"
msgstr "Gwerth"
-#: searx/templates/oscar/preferences.html:301
+#: searx/templates/oscar/preferences.html:289
msgid "Search URL of the currently saved preferences"
msgstr ""
-#: searx/templates/oscar/preferences.html:301
+#: searx/templates/oscar/preferences.html:289
msgid ""
"Note: specifying custom settings in the search URL can reduce privacy by "
"leaking data to the clicked result sites."
diff --git a/searx/translations/da/LC_MESSAGES/messages.mo b/searx/translations/da/LC_MESSAGES/messages.mo
index 8813c0779..a3cfb17da 100644
--- a/searx/translations/da/LC_MESSAGES/messages.mo
+++ b/searx/translations/da/LC_MESSAGES/messages.mo
Binary files differ
diff --git a/searx/translations/da/LC_MESSAGES/messages.po b/searx/translations/da/LC_MESSAGES/messages.po
index f235ccdf5..848b986f4 100644
--- a/searx/translations/da/LC_MESSAGES/messages.po
+++ b/searx/translations/da/LC_MESSAGES/messages.po
@@ -9,9 +9,9 @@ msgid ""
msgstr ""
"Project-Id-Version: searx\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
-"POT-Creation-Date: 2017-11-01 21:31+0100\n"
-"PO-Revision-Date: 2018-02-22 01:48+0000\n"
-"Last-Translator: Mikkel Kirkgaard Nielsen <memb_transifex@mikini.dk>\n"
+"POT-Creation-Date: 2017-10-07 19:18+0200\n"
+"PO-Revision-Date: 2019-02-23 17:39+0000\n"
+"Last-Translator: Morten Krogh Andersen <spam1@krogh.net>\n"
"Language-Team: Danish (http://www.transifex.com/asciimoo/searx/language/da/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
@@ -32,63 +32,63 @@ msgstr "forespørgsels-undtagelse"
msgid "unexpected crash"
msgstr "uventet nedlukning"
-#: searx/webapp.py:136
+#: searx/webapp.py:135
msgid "files"
msgstr "filer"
-#: searx/webapp.py:137
+#: searx/webapp.py:136
msgid "general"
msgstr "generelt"
-#: searx/webapp.py:138
+#: searx/webapp.py:137
msgid "music"
msgstr "musik"
-#: searx/webapp.py:139
+#: searx/webapp.py:138
msgid "social media"
msgstr "sociale medier"
-#: searx/webapp.py:140
+#: searx/webapp.py:139
msgid "images"
msgstr "billeder"
-#: searx/webapp.py:141
+#: searx/webapp.py:140
msgid "videos"
msgstr "videoer"
-#: searx/webapp.py:142
+#: searx/webapp.py:141
msgid "it"
msgstr "it"
-#: searx/webapp.py:143
+#: searx/webapp.py:142
msgid "news"
msgstr "nyheder"
-#: searx/webapp.py:144
+#: searx/webapp.py:143
msgid "map"
msgstr "kort"
-#: searx/webapp.py:145
+#: searx/webapp.py:144
msgid "science"
msgstr "videnskab"
-#: searx/webapp.py:399 searx/webapp.py:658
+#: searx/webapp.py:398 searx/webapp.py:653
msgid "Invalid settings, please edit your preferences"
msgstr "Ugyldige indstillinger, redigér venligst dine valg"
-#: searx/webapp.py:415
+#: searx/webapp.py:410
msgid "Invalid settings"
msgstr "Ugyldig indstilling"
-#: searx/webapp.py:449 searx/webapp.py:493
+#: searx/webapp.py:444 searx/webapp.py:488
msgid "search error"
msgstr "søgefejl"
-#: searx/webapp.py:530
+#: searx/webapp.py:525
msgid "{minutes} minute(s) ago"
msgstr "for {minutes} minut(ter) siden"
-#: searx/webapp.py:532
+#: searx/webapp.py:527
msgid "{hours} hour(s), {minutes} minute(s) ago"
msgstr "for {hours} time(r) og {minutes} minut(ter) siden"
@@ -108,29 +108,28 @@ msgstr "Statistiske funktioner"
msgid "Compute {functions} of the arguments"
msgstr "Beregn {functions} af parametrene"
-#: searx/engines/__init__.py:194 searx/engines/flycheck___init__.py:201
+#: searx/engines/__init__.py:194
msgid "Engine time (sec)"
msgstr "Søgemaskine-tid (sek)"
-#: searx/engines/__init__.py:198 searx/engines/flycheck___init__.py:205
+#: searx/engines/__init__.py:198
msgid "Page loads (sec)"
msgstr "Sideindlæsninger (sek)"
-#: searx/engines/__init__.py:202 searx/engines/flycheck___init__.py:209
-#: searx/templates/oscar/results.html:95
+#: searx/engines/__init__.py:202 searx/templates/oscar/results.html:95
#: searx/templates/simple/results.html:20
msgid "Number of results"
msgstr "Antal resultater"
-#: searx/engines/__init__.py:206 searx/engines/flycheck___init__.py:213
+#: searx/engines/__init__.py:206
msgid "Scores"
msgstr "Vægtninger"
-#: searx/engines/__init__.py:210 searx/engines/flycheck___init__.py:217
+#: searx/engines/__init__.py:210
msgid "Scores per result"
msgstr "Vægtninger pr. resultat"
-#: searx/engines/__init__.py:214 searx/engines/flycheck___init__.py:221
+#: searx/engines/__init__.py:214
msgid "Errors"
msgstr "Fejl"
@@ -142,9 +141,15 @@ msgstr "{title}&nbsp;(OVERFLØDIG)"
msgid "This entry has been superseded by"
msgstr "Denne værdi er blevet overskrevet af"
-#: searx/engines/pubmed.py:74
-msgid "No abstract is available for this publication."
-msgstr "Intet sammendrag er tilgængelig for denne publikation."
+#: searx/plugins/doai_rewrite.py:7
+msgid "DOAI rewrite"
+msgstr "Omskriv DOAI"
+
+#: searx/plugins/doai_rewrite.py:8
+msgid ""
+"Avoid paywalls by redirecting to open-access versions of publications when "
+"available"
+msgstr "Undgå betalingsmure ved at viderestille til en åbent tilgængelig version, hvis en sådan findes"
#: searx/plugins/https_rewrite.py:32
msgid "Rewrite HTTP links to HTTPS if possible"
@@ -158,16 +163,6 @@ msgstr "Uendelig scrolling"
msgid "Automatically load next page when scrolling to bottom of current page"
msgstr "Indlæs automatisk næste side, når der scrolles til bunden af den nuværende side"
-#: searx/plugins/oa_doi_rewrite.py:9
-msgid "Open Access DOI rewrite"
-msgstr "Open Access DOI-omskrivning"
-
-#: searx/plugins/oa_doi_rewrite.py:10
-msgid ""
-"Avoid paywalls by redirecting to open-access versions of publications when "
-"available"
-msgstr "Undgå betalingsmure ved at viderestille til en åbent tilgængelig version, hvis en sådan findes"
-
#: searx/plugins/open_results_on_new_tab.py:18
#: searx/templates/oscar/preferences.html:114
#: searx/templates/simple/preferences.html:149
@@ -330,8 +325,8 @@ msgstr "Metode"
#: searx/templates/courgette/preferences.html:63
#: searx/templates/legacy/preferences.html:64
#: searx/templates/oscar/preferences.html:86
-#: searx/templates/oscar/preferences.html:165
-#: searx/templates/oscar/preferences.html:173
+#: searx/templates/oscar/preferences.html:153
+#: searx/templates/oscar/preferences.html:161
#: searx/templates/simple/preferences.html:63
#: searx/templates/simple/preferences.html:90
msgid "SafeSearch"
@@ -403,8 +398,8 @@ msgstr "Pt. anvendte søgemaskiner"
#: searx/templates/courgette/preferences.html:100
#: searx/templates/legacy/preferences.html:97
-#: searx/templates/oscar/preferences.html:162
-#: searx/templates/oscar/preferences.html:176
+#: searx/templates/oscar/preferences.html:150
+#: searx/templates/oscar/preferences.html:164
#: searx/templates/pix-art/preferences.html:53
#: searx/templates/simple/preferences.html:87
msgid "Engine name"
@@ -419,8 +414,8 @@ msgstr "Kategori"
#: searx/templates/courgette/preferences.html:113
#: searx/templates/legacy/preferences.html:99
#: searx/templates/legacy/preferences.html:110
-#: searx/templates/oscar/preferences.html:161
-#: searx/templates/oscar/preferences.html:177
+#: searx/templates/oscar/preferences.html:149
+#: searx/templates/oscar/preferences.html:165
#: searx/templates/pix-art/preferences.html:54
#: searx/templates/pix-art/preferences.html:64
#: searx/templates/simple/preferences.html:86
@@ -438,7 +433,7 @@ msgstr "Blokér"
#: searx/templates/courgette/preferences.html:122
#: searx/templates/legacy/preferences.html:119
-#: searx/templates/oscar/preferences.html:297
+#: searx/templates/oscar/preferences.html:285
#: searx/templates/pix-art/preferences.html:73
#: searx/templates/simple/preferences.html:180
msgid ""
@@ -448,7 +443,7 @@ msgstr "Disse indstillnger gemmes cookies på din enhed. Dette gør, at vi ikke
#: searx/templates/courgette/preferences.html:124
#: searx/templates/legacy/preferences.html:121
-#: searx/templates/oscar/preferences.html:299
+#: searx/templates/oscar/preferences.html:287
#: searx/templates/pix-art/preferences.html:75
#: searx/templates/simple/preferences.html:182
msgid ""
@@ -458,7 +453,7 @@ msgstr "Disse cookies er kun til dine data. Vi benytter ikke disse til at spore
#: searx/templates/courgette/preferences.html:127
#: searx/templates/legacy/preferences.html:124
-#: searx/templates/oscar/preferences.html:305
+#: searx/templates/oscar/preferences.html:293
#: searx/templates/pix-art/preferences.html:78
#: searx/templates/simple/preferences.html:185
msgid "save"
@@ -466,14 +461,14 @@ msgstr "gem"
#: searx/templates/courgette/preferences.html:128
#: searx/templates/legacy/preferences.html:125
-#: searx/templates/oscar/preferences.html:307
+#: searx/templates/oscar/preferences.html:295
#: searx/templates/simple/preferences.html:186
msgid "Reset defaults"
msgstr "Nustil til standard"
#: searx/templates/courgette/preferences.html:129
#: searx/templates/legacy/preferences.html:126
-#: searx/templates/oscar/preferences.html:306
+#: searx/templates/oscar/preferences.html:294
#: searx/templates/pix-art/preferences.html:79
#: searx/templates/simple/preferences.html:187
msgid "back"
@@ -644,23 +639,23 @@ msgid "General"
msgstr "Generelt"
#: searx/templates/oscar/preferences.html:14
-#: searx/templates/oscar/preferences.html:146
+#: searx/templates/oscar/preferences.html:134
#: searx/templates/simple/preferences.html:76
msgid "Engines"
msgstr "Søgemaskiner"
#: searx/templates/oscar/preferences.html:15
-#: searx/templates/oscar/preferences.html:219
+#: searx/templates/oscar/preferences.html:207
msgid "Plugins"
msgstr "Plugins"
#: searx/templates/oscar/preferences.html:16
-#: searx/templates/oscar/preferences.html:245
+#: searx/templates/oscar/preferences.html:233
msgid "Answerers"
msgstr "Svarere"
#: searx/templates/oscar/preferences.html:17
-#: searx/templates/oscar/preferences.html:272
+#: searx/templates/oscar/preferences.html:260
msgid "Cookies"
msgstr "Cookies"
@@ -711,88 +706,78 @@ msgstr "Vælg stil for dette tema"
msgid "Style"
msgstr "Stil"
-#: searx/templates/oscar/preferences.html:122
-msgid "Open Access DOI resolver"
-msgstr "Open Access DOI-forløser"
-
-#: searx/templates/oscar/preferences.html:123
-msgid ""
-"Redirect to open-access versions of publications when available (plugin "
-"required)"
-msgstr "Omdiriger til open-access-udgaver af publikationer hvis tilgængelig (plugin påkrævet)"
-
+#: searx/templates/oscar/preferences.html:151
#: searx/templates/oscar/preferences.html:163
-#: searx/templates/oscar/preferences.html:175
#: searx/templates/simple/preferences.html:88
msgid "Shortcut"
msgstr "Genvej"
-#: searx/templates/oscar/preferences.html:164
-#: searx/templates/oscar/preferences.html:174
+#: searx/templates/oscar/preferences.html:152
+#: searx/templates/oscar/preferences.html:162
msgid "Selected language"
msgstr "Valgt sprog"
-#: searx/templates/oscar/preferences.html:166
-#: searx/templates/oscar/preferences.html:172
+#: searx/templates/oscar/preferences.html:154
+#: searx/templates/oscar/preferences.html:160
#: searx/templates/simple/preferences.html:91
msgid "Time range"
msgstr "Tidsinterval"
-#: searx/templates/oscar/preferences.html:167
-#: searx/templates/oscar/preferences.html:171
+#: searx/templates/oscar/preferences.html:155
+#: searx/templates/oscar/preferences.html:159
#: searx/templates/simple/preferences.html:92
msgid "Avg. time"
msgstr "Gns. tid"
-#: searx/templates/oscar/preferences.html:168
-#: searx/templates/oscar/preferences.html:170
+#: searx/templates/oscar/preferences.html:156
+#: searx/templates/oscar/preferences.html:158
#: searx/templates/simple/preferences.html:93
msgid "Max time"
msgstr "Maks-tid"
-#: searx/templates/oscar/preferences.html:248
+#: searx/templates/oscar/preferences.html:236
msgid "This is the list of searx's instant answering modules."
msgstr "Dette er listen over searx's installationens svar-moduler"
-#: searx/templates/oscar/preferences.html:252
+#: searx/templates/oscar/preferences.html:240
msgid "Name"
msgstr "Navn"
-#: searx/templates/oscar/preferences.html:253
+#: searx/templates/oscar/preferences.html:241
msgid "Keywords"
msgstr "Nøgleord"
-#: searx/templates/oscar/preferences.html:254
+#: searx/templates/oscar/preferences.html:242
msgid "Description"
msgstr "Beskrivelse"
-#: searx/templates/oscar/preferences.html:255
+#: searx/templates/oscar/preferences.html:243
msgid "Examples"
msgstr "Eksempler"
-#: searx/templates/oscar/preferences.html:275
+#: searx/templates/oscar/preferences.html:263
msgid ""
"This is the list of cookies and their values searx is storing on your "
"computer."
msgstr "Dette er listen over de cookies og værdier searx gemmer på din computer"
-#: searx/templates/oscar/preferences.html:276
+#: searx/templates/oscar/preferences.html:264
msgid "With that list, you can assess searx transparency."
msgstr "Med denne liste, kan du bekræfte gennemsigtigheden af searx"
-#: searx/templates/oscar/preferences.html:281
+#: searx/templates/oscar/preferences.html:269
msgid "Cookie name"
msgstr "Cookie-navn"
-#: searx/templates/oscar/preferences.html:282
+#: searx/templates/oscar/preferences.html:270
msgid "Value"
msgstr "Værdi"
-#: searx/templates/oscar/preferences.html:301
+#: searx/templates/oscar/preferences.html:289
msgid "Search URL of the currently saved preferences"
msgstr "Søge-URL for den nuværende gemte indstilling"
-#: searx/templates/oscar/preferences.html:301
+#: searx/templates/oscar/preferences.html:289
msgid ""
"Note: specifying custom settings in the search URL can reduce privacy by "
"leaking data to the clicked result sites."
diff --git a/searx/translations/de/LC_MESSAGES/messages.mo b/searx/translations/de/LC_MESSAGES/messages.mo
index a525fbf1e..79ad35beb 100644
--- a/searx/translations/de/LC_MESSAGES/messages.mo
+++ b/searx/translations/de/LC_MESSAGES/messages.mo
Binary files differ
diff --git a/searx/translations/de/LC_MESSAGES/messages.po b/searx/translations/de/LC_MESSAGES/messages.po
index 64f253ebd..6aa03b18f 100644
--- a/searx/translations/de/LC_MESSAGES/messages.po
+++ b/searx/translations/de/LC_MESSAGES/messages.po
@@ -8,7 +8,9 @@
# Thomas Pointhuber, 2014-2015
# Ettore Atalan <atalanttore@googlemail.com>, 2016
# Jona Abdinghoff <jona.abdinghoff@gmail.com>, 2016
+# Marc Abonce Seguin, 2019
# Mario Siegmann <mario_siegmann@web.de>, 2017
+# Bamstam, 2019
# Max <theshirinzu@gmail.com>, 2015
# pointhi, 2014
# rike, 2014
@@ -21,9 +23,9 @@ msgid ""
msgstr ""
"Project-Id-Version: searx\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
-"POT-Creation-Date: 2017-11-01 21:31+0100\n"
-"PO-Revision-Date: 2018-12-28 11:02+0000\n"
-"Last-Translator: S R <acc-transifex@rie.hm>\n"
+"POT-Creation-Date: 2017-10-07 19:18+0200\n"
+"PO-Revision-Date: 2019-12-11 07:07+0000\n"
+"Last-Translator: Marc Abonce Seguin\n"
"Language-Team: German (http://www.transifex.com/asciimoo/searx/language/de/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
@@ -44,69 +46,69 @@ msgstr "Abbruch der Anfrage"
msgid "unexpected crash"
msgstr "Unerwarteter Absturz"
-#: searx/webapp.py:136
+#: searx/webapp.py:135
msgid "files"
msgstr "Dateien"
-#: searx/webapp.py:137
+#: searx/webapp.py:136
msgid "general"
msgstr "Allgemein"
-#: searx/webapp.py:138
+#: searx/webapp.py:137
msgid "music"
msgstr "Musik"
-#: searx/webapp.py:139
+#: searx/webapp.py:138
msgid "social media"
msgstr "Soziale Medien"
-#: searx/webapp.py:140
+#: searx/webapp.py:139
msgid "images"
msgstr "Bilder"
-#: searx/webapp.py:141
+#: searx/webapp.py:140
msgid "videos"
msgstr "Videos"
-#: searx/webapp.py:142
+#: searx/webapp.py:141
msgid "it"
msgstr "IT"
-#: searx/webapp.py:143
+#: searx/webapp.py:142
msgid "news"
msgstr "Neuigkeiten"
-#: searx/webapp.py:144
+#: searx/webapp.py:143
msgid "map"
msgstr "Karte"
-#: searx/webapp.py:145
+#: searx/webapp.py:144
msgid "science"
msgstr "Wissenschaft"
-#: searx/webapp.py:399 searx/webapp.py:658
+#: searx/webapp.py:398 searx/webapp.py:653
msgid "Invalid settings, please edit your preferences"
msgstr "Ungültige Einstellungen. Bitte diese überprüfen"
-#: searx/webapp.py:415
+#: searx/webapp.py:410
msgid "Invalid settings"
msgstr "Ungültige Einstellungen"
-#: searx/webapp.py:449 searx/webapp.py:493
+#: searx/webapp.py:444 searx/webapp.py:488
msgid "search error"
msgstr "Suchfehler"
-#: searx/webapp.py:530
+#: searx/webapp.py:525
msgid "{minutes} minute(s) ago"
msgstr "vor {minutes} Minute(n)"
-#: searx/webapp.py:532
+#: searx/webapp.py:527
msgid "{hours} hour(s), {minutes} minute(s) ago"
msgstr "vor {hours} Stunde(n), {minutes} Minute(n)"
#: searx/answerers/random/answerer.py:53
msgid "Random value generator"
-msgstr "Zufallszahlengenerator"
+msgstr "Zufallswertgenerator"
#: searx/answerers/random/answerer.py:54
msgid "Generate different random values"
@@ -120,29 +122,28 @@ msgstr "Statistikfuntionen"
msgid "Compute {functions} of the arguments"
msgstr "{functions} der Argumente berechnen"
-#: searx/engines/__init__.py:194 searx/engines/flycheck___init__.py:201
+#: searx/engines/__init__.py:194
msgid "Engine time (sec)"
msgstr "Suchmaschinen Zeit (sek)"
-#: searx/engines/__init__.py:198 searx/engines/flycheck___init__.py:205
+#: searx/engines/__init__.py:198
msgid "Page loads (sec)"
msgstr "Ladezeit (sek)"
-#: searx/engines/__init__.py:202 searx/engines/flycheck___init__.py:209
-#: searx/templates/oscar/results.html:95
+#: searx/engines/__init__.py:202 searx/templates/oscar/results.html:95
#: searx/templates/simple/results.html:20
msgid "Number of results"
msgstr "Trefferanzahl"
-#: searx/engines/__init__.py:206 searx/engines/flycheck___init__.py:213
+#: searx/engines/__init__.py:206
msgid "Scores"
msgstr "Punkte"
-#: searx/engines/__init__.py:210 searx/engines/flycheck___init__.py:217
+#: searx/engines/__init__.py:210
msgid "Scores per result"
msgstr "Punkte pro Treffer"
-#: searx/engines/__init__.py:214 searx/engines/flycheck___init__.py:221
+#: searx/engines/__init__.py:214
msgid "Errors"
msgstr "Fehler"
@@ -154,9 +155,15 @@ msgstr "{title}&nbsp;(OBSOLET)"
msgid "This entry has been superseded by"
msgstr "Dieser Eintrag wurde überschrieben von"
-#: searx/engines/pubmed.py:74
-msgid "No abstract is available for this publication."
-msgstr "Keine Zusammenfassung für die Veröffentlichung verfügbar."
+#: searx/plugins/doai_rewrite.py:7
+msgid "DOAI rewrite"
+msgstr "DOAI umschreiben"
+
+#: searx/plugins/doai_rewrite.py:8
+msgid ""
+"Avoid paywalls by redirecting to open-access versions of publications when "
+"available"
+msgstr "Bezahlbeschränkungen durch die Weiterleitung zu der verfügbaren Open-Access-Version vermeiden"
#: searx/plugins/https_rewrite.py:32
msgid "Rewrite HTTP links to HTTPS if possible"
@@ -170,16 +177,6 @@ msgstr "Unendliches Scrollen"
msgid "Automatically load next page when scrolling to bottom of current page"
msgstr "Lädt automatisch die nächste Seite, wenn das Ende der aktuellen Seite erreicht wurde"
-#: searx/plugins/oa_doi_rewrite.py:9
-msgid "Open Access DOI rewrite"
-msgstr "Open-Access-DOI umschreiben"
-
-#: searx/plugins/oa_doi_rewrite.py:10
-msgid ""
-"Avoid paywalls by redirecting to open-access versions of publications when "
-"available"
-msgstr "Bezahlbeschränkungen durch die Weiterleitung zu der verfügbaren Open-Access-Version vermeiden"
-
#: searx/plugins/open_results_on_new_tab.py:18
#: searx/templates/oscar/preferences.html:114
#: searx/templates/simple/preferences.html:149
@@ -224,7 +221,7 @@ msgstr "An Vim angelehnte Tastenkombinationen"
msgid ""
"Navigate search results with Vim-like hotkeys (JavaScript required). Press "
"\"h\" key on main or result page to get help."
-msgstr "Navigiere in der Ergebnisseite mit Vim ähnlichen Tastaturkombinationen (es wird JavaScript benötigt).\nDrücke \"h\" auf der Start- bzw. Ergebnisseite, um ein Hifefenster anzuzeigen"
+msgstr "In der Ergebnisseite mit Vim-ähnlichen Tastaturkombinationen navigieren (es wird JavaScript benötigt).\nAuf der Start- bzw. Ergebnisseite \"h\" drücken, um ein Hilfe-Fenster anzuzeigen."
#: searx/templates/courgette/404.html:4 searx/templates/legacy/404.html:4
#: searx/templates/oscar/404.html:4 searx/templates/pix-art/404.html:4
@@ -342,8 +339,8 @@ msgstr "Methode"
#: searx/templates/courgette/preferences.html:63
#: searx/templates/legacy/preferences.html:64
#: searx/templates/oscar/preferences.html:86
-#: searx/templates/oscar/preferences.html:165
-#: searx/templates/oscar/preferences.html:173
+#: searx/templates/oscar/preferences.html:153
+#: searx/templates/oscar/preferences.html:161
#: searx/templates/simple/preferences.html:63
#: searx/templates/simple/preferences.html:90
msgid "SafeSearch"
@@ -415,8 +412,8 @@ msgstr "Aktuell benutzte Suchmaschinen"
#: searx/templates/courgette/preferences.html:100
#: searx/templates/legacy/preferences.html:97
-#: searx/templates/oscar/preferences.html:162
-#: searx/templates/oscar/preferences.html:176
+#: searx/templates/oscar/preferences.html:150
+#: searx/templates/oscar/preferences.html:164
#: searx/templates/pix-art/preferences.html:53
#: searx/templates/simple/preferences.html:87
msgid "Engine name"
@@ -431,8 +428,8 @@ msgstr "Kategorie"
#: searx/templates/courgette/preferences.html:113
#: searx/templates/legacy/preferences.html:99
#: searx/templates/legacy/preferences.html:110
-#: searx/templates/oscar/preferences.html:161
-#: searx/templates/oscar/preferences.html:177
+#: searx/templates/oscar/preferences.html:149
+#: searx/templates/oscar/preferences.html:165
#: searx/templates/pix-art/preferences.html:54
#: searx/templates/pix-art/preferences.html:64
#: searx/templates/simple/preferences.html:86
@@ -450,7 +447,7 @@ msgstr "Blockieren"
#: searx/templates/courgette/preferences.html:122
#: searx/templates/legacy/preferences.html:119
-#: searx/templates/oscar/preferences.html:297
+#: searx/templates/oscar/preferences.html:285
#: searx/templates/pix-art/preferences.html:73
#: searx/templates/simple/preferences.html:180
msgid ""
@@ -460,7 +457,7 @@ msgstr "Diese Informationen werden in Cookies auf Ihrem Rechner gespeichert, dam
#: searx/templates/courgette/preferences.html:124
#: searx/templates/legacy/preferences.html:121
-#: searx/templates/oscar/preferences.html:299
+#: searx/templates/oscar/preferences.html:287
#: searx/templates/pix-art/preferences.html:75
#: searx/templates/simple/preferences.html:182
msgid ""
@@ -470,7 +467,7 @@ msgstr "Diese Cookies dienen einzig Ihrem Komfort. Wir verwenden sie nicht, um S
#: searx/templates/courgette/preferences.html:127
#: searx/templates/legacy/preferences.html:124
-#: searx/templates/oscar/preferences.html:305
+#: searx/templates/oscar/preferences.html:293
#: searx/templates/pix-art/preferences.html:78
#: searx/templates/simple/preferences.html:185
msgid "save"
@@ -478,14 +475,14 @@ msgstr "Speichern"
#: searx/templates/courgette/preferences.html:128
#: searx/templates/legacy/preferences.html:125
-#: searx/templates/oscar/preferences.html:307
+#: searx/templates/oscar/preferences.html:295
#: searx/templates/simple/preferences.html:186
msgid "Reset defaults"
msgstr "Zurücksetzen"
#: searx/templates/courgette/preferences.html:129
#: searx/templates/legacy/preferences.html:126
-#: searx/templates/oscar/preferences.html:306
+#: searx/templates/oscar/preferences.html:294
#: searx/templates/pix-art/preferences.html:79
#: searx/templates/simple/preferences.html:187
msgid "back"
@@ -656,23 +653,23 @@ msgid "General"
msgstr "Allgemein"
#: searx/templates/oscar/preferences.html:14
-#: searx/templates/oscar/preferences.html:146
+#: searx/templates/oscar/preferences.html:134
#: searx/templates/simple/preferences.html:76
msgid "Engines"
msgstr "Suchmaschinen"
#: searx/templates/oscar/preferences.html:15
-#: searx/templates/oscar/preferences.html:219
+#: searx/templates/oscar/preferences.html:207
msgid "Plugins"
msgstr "Erweiterungen"
#: searx/templates/oscar/preferences.html:16
-#: searx/templates/oscar/preferences.html:245
+#: searx/templates/oscar/preferences.html:233
msgid "Answerers"
msgstr "Antworten"
#: searx/templates/oscar/preferences.html:17
-#: searx/templates/oscar/preferences.html:272
+#: searx/templates/oscar/preferences.html:260
msgid "Cookies"
msgstr "Cookies"
@@ -723,88 +720,78 @@ msgstr "Stil für dieses Thema auswählen"
msgid "Style"
msgstr "Aussehen"
-#: searx/templates/oscar/preferences.html:122
-msgid "Open Access DOI resolver"
-msgstr "Open Access DOI resolver"
-
-#: searx/templates/oscar/preferences.html:123
-msgid ""
-"Redirect to open-access versions of publications when available (plugin "
-"required)"
-msgstr "Weiterleitung zu frei zugänglichen Versionen von Veröffentlichungen, wenn verfügbar (Plugin benötigt)"
-
+#: searx/templates/oscar/preferences.html:151
#: searx/templates/oscar/preferences.html:163
-#: searx/templates/oscar/preferences.html:175
#: searx/templates/simple/preferences.html:88
msgid "Shortcut"
msgstr "Abkürzung"
-#: searx/templates/oscar/preferences.html:164
-#: searx/templates/oscar/preferences.html:174
+#: searx/templates/oscar/preferences.html:152
+#: searx/templates/oscar/preferences.html:162
msgid "Selected language"
msgstr "Ausgewählte Sprache"
-#: searx/templates/oscar/preferences.html:166
-#: searx/templates/oscar/preferences.html:172
+#: searx/templates/oscar/preferences.html:154
+#: searx/templates/oscar/preferences.html:160
#: searx/templates/simple/preferences.html:91
msgid "Time range"
msgstr "Zeitbereich"
-#: searx/templates/oscar/preferences.html:167
-#: searx/templates/oscar/preferences.html:171
+#: searx/templates/oscar/preferences.html:155
+#: searx/templates/oscar/preferences.html:159
#: searx/templates/simple/preferences.html:92
msgid "Avg. time"
msgstr "mittlere Zeit"
-#: searx/templates/oscar/preferences.html:168
-#: searx/templates/oscar/preferences.html:170
+#: searx/templates/oscar/preferences.html:156
+#: searx/templates/oscar/preferences.html:158
#: searx/templates/simple/preferences.html:93
msgid "Max time"
msgstr "max. Zeit"
-#: searx/templates/oscar/preferences.html:248
+#: searx/templates/oscar/preferences.html:236
msgid "This is the list of searx's instant answering modules."
msgstr "Dies ist die Liste der in searx verfügbaren Module für Sofortantworten "
-#: searx/templates/oscar/preferences.html:252
+#: searx/templates/oscar/preferences.html:240
msgid "Name"
msgstr "Name"
-#: searx/templates/oscar/preferences.html:253
+#: searx/templates/oscar/preferences.html:241
msgid "Keywords"
msgstr "Schlüsselwörter"
-#: searx/templates/oscar/preferences.html:254
+#: searx/templates/oscar/preferences.html:242
msgid "Description"
msgstr "Beschreibung"
-#: searx/templates/oscar/preferences.html:255
+#: searx/templates/oscar/preferences.html:243
msgid "Examples"
msgstr "Beispiele"
-#: searx/templates/oscar/preferences.html:275
+#: searx/templates/oscar/preferences.html:263
msgid ""
"This is the list of cookies and their values searx is storing on your "
"computer."
msgstr "Die nachfolgende Liste zeigt alle Cookies, die searx auf deinem Computer speichert."
-#: searx/templates/oscar/preferences.html:276
+#: searx/templates/oscar/preferences.html:264
msgid "With that list, you can assess searx transparency."
msgstr "Mit dieser Liste können Sie die Transparenz von searx einschätzen"
-#: searx/templates/oscar/preferences.html:281
+#: searx/templates/oscar/preferences.html:269
msgid "Cookie name"
msgstr "Cookie-Name"
-#: searx/templates/oscar/preferences.html:282
+#: searx/templates/oscar/preferences.html:270
msgid "Value"
msgstr "Wert"
-#: searx/templates/oscar/preferences.html:301
+#: searx/templates/oscar/preferences.html:289
msgid "Search URL of the currently saved preferences"
msgstr "Such-URL für die aktuell gespeicherten Einstellungen"
-#: searx/templates/oscar/preferences.html:301
+#: searx/templates/oscar/preferences.html:289
msgid ""
"Note: specifying custom settings in the search URL can reduce privacy by "
"leaking data to the clicked result sites."
@@ -856,7 +843,7 @@ msgstr "Letzte Woche"
#: searx/templates/oscar/time-range.html:12
#: searx/templates/simple/time-range.html:12
msgid "Last month"
-msgstr "Letzten Monat"
+msgstr "Letzter Monat"
#: searx/templates/oscar/time-range.html:15
#: searx/templates/simple/time-range.html:15
diff --git a/searx/translations/el_GR/LC_MESSAGES/messages.mo b/searx/translations/el_GR/LC_MESSAGES/messages.mo
index 2bc6a57a3..62d32b580 100644
--- a/searx/translations/el_GR/LC_MESSAGES/messages.mo
+++ b/searx/translations/el_GR/LC_MESSAGES/messages.mo
Binary files differ
diff --git a/searx/translations/el_GR/LC_MESSAGES/messages.po b/searx/translations/el_GR/LC_MESSAGES/messages.po
index 073f2f61e..c93f81ae8 100644
--- a/searx/translations/el_GR/LC_MESSAGES/messages.po
+++ b/searx/translations/el_GR/LC_MESSAGES/messages.po
@@ -9,9 +9,9 @@ msgid ""
msgstr ""
"Project-Id-Version: searx\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
-"POT-Creation-Date: 2017-11-01 21:31+0100\n"
-"PO-Revision-Date: 2018-01-17 10:03+0000\n"
-"Last-Translator: xinomilo <dimitris@stinpriza.org>\n"
+"POT-Creation-Date: 2017-10-07 19:18+0200\n"
+"PO-Revision-Date: 2019-02-23 17:39+0000\n"
+"Last-Translator: Noémi Ványi <sitbackandwait@gmail.com>\n"
"Language-Team: Greek (Greece) (http://www.transifex.com/asciimoo/searx/language/el_GR/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
@@ -32,63 +32,63 @@ msgstr ""
msgid "unexpected crash"
msgstr ""
-#: searx/webapp.py:136
+#: searx/webapp.py:135
msgid "files"
msgstr "αρχεία"
-#: searx/webapp.py:137
+#: searx/webapp.py:136
msgid "general"
msgstr "γενικά"
-#: searx/webapp.py:138
+#: searx/webapp.py:137
msgid "music"
msgstr "μουσική"
-#: searx/webapp.py:139
+#: searx/webapp.py:138
msgid "social media"
msgstr "κοινωνικά δίκτυα"
-#: searx/webapp.py:140
+#: searx/webapp.py:139
msgid "images"
msgstr "εικόνες"
-#: searx/webapp.py:141
+#: searx/webapp.py:140
msgid "videos"
msgstr ""
-#: searx/webapp.py:142
+#: searx/webapp.py:141
msgid "it"
msgstr ""
-#: searx/webapp.py:143
+#: searx/webapp.py:142
msgid "news"
msgstr "νέα"
-#: searx/webapp.py:144
+#: searx/webapp.py:143
msgid "map"
msgstr "χάρτης"
-#: searx/webapp.py:145
+#: searx/webapp.py:144
msgid "science"
msgstr "επιστήμη"
-#: searx/webapp.py:399 searx/webapp.py:658
+#: searx/webapp.py:398 searx/webapp.py:653
msgid "Invalid settings, please edit your preferences"
msgstr ""
-#: searx/webapp.py:415
+#: searx/webapp.py:410
msgid "Invalid settings"
msgstr ""
-#: searx/webapp.py:449 searx/webapp.py:493
+#: searx/webapp.py:444 searx/webapp.py:488
msgid "search error"
msgstr "λάθος αναζήτησης"
-#: searx/webapp.py:530
+#: searx/webapp.py:525
msgid "{minutes} minute(s) ago"
msgstr "{minutes} λεπτά πριν"
-#: searx/webapp.py:532
+#: searx/webapp.py:527
msgid "{hours} hour(s), {minutes} minute(s) ago"
msgstr ""
@@ -108,29 +108,28 @@ msgstr ""
msgid "Compute {functions} of the arguments"
msgstr ""
-#: searx/engines/__init__.py:194 searx/engines/flycheck___init__.py:201
+#: searx/engines/__init__.py:194
msgid "Engine time (sec)"
msgstr "Χρόνος μηχανής (δευτ)"
-#: searx/engines/__init__.py:198 searx/engines/flycheck___init__.py:205
+#: searx/engines/__init__.py:198
msgid "Page loads (sec)"
msgstr "Φόρτωση σελίδας (δευτ)"
-#: searx/engines/__init__.py:202 searx/engines/flycheck___init__.py:209
-#: searx/templates/oscar/results.html:95
+#: searx/engines/__init__.py:202 searx/templates/oscar/results.html:95
#: searx/templates/simple/results.html:20
msgid "Number of results"
msgstr "Αριθμός αποτελεσμάτων"
-#: searx/engines/__init__.py:206 searx/engines/flycheck___init__.py:213
+#: searx/engines/__init__.py:206
msgid "Scores"
msgstr ""
-#: searx/engines/__init__.py:210 searx/engines/flycheck___init__.py:217
+#: searx/engines/__init__.py:210
msgid "Scores per result"
msgstr ""
-#: searx/engines/__init__.py:214 searx/engines/flycheck___init__.py:221
+#: searx/engines/__init__.py:214
msgid "Errors"
msgstr "Λάθη"
@@ -142,8 +141,14 @@ msgstr ""
msgid "This entry has been superseded by"
msgstr ""
-#: searx/engines/pubmed.py:74
-msgid "No abstract is available for this publication."
+#: searx/plugins/doai_rewrite.py:7
+msgid "DOAI rewrite"
+msgstr ""
+
+#: searx/plugins/doai_rewrite.py:8
+msgid ""
+"Avoid paywalls by redirecting to open-access versions of publications when "
+"available"
msgstr ""
#: searx/plugins/https_rewrite.py:32
@@ -158,16 +163,6 @@ msgstr ""
msgid "Automatically load next page when scrolling to bottom of current page"
msgstr ""
-#: searx/plugins/oa_doi_rewrite.py:9
-msgid "Open Access DOI rewrite"
-msgstr ""
-
-#: searx/plugins/oa_doi_rewrite.py:10
-msgid ""
-"Avoid paywalls by redirecting to open-access versions of publications when "
-"available"
-msgstr ""
-
#: searx/plugins/open_results_on_new_tab.py:18
#: searx/templates/oscar/preferences.html:114
#: searx/templates/simple/preferences.html:149
@@ -330,8 +325,8 @@ msgstr "Μέθοδος"
#: searx/templates/courgette/preferences.html:63
#: searx/templates/legacy/preferences.html:64
#: searx/templates/oscar/preferences.html:86
-#: searx/templates/oscar/preferences.html:165
-#: searx/templates/oscar/preferences.html:173
+#: searx/templates/oscar/preferences.html:153
+#: searx/templates/oscar/preferences.html:161
#: searx/templates/simple/preferences.html:63
#: searx/templates/simple/preferences.html:90
msgid "SafeSearch"
@@ -403,8 +398,8 @@ msgstr "Μηχανές αναζήτησης που χρησιμοποιούντ
#: searx/templates/courgette/preferences.html:100
#: searx/templates/legacy/preferences.html:97
-#: searx/templates/oscar/preferences.html:162
-#: searx/templates/oscar/preferences.html:176
+#: searx/templates/oscar/preferences.html:150
+#: searx/templates/oscar/preferences.html:164
#: searx/templates/pix-art/preferences.html:53
#: searx/templates/simple/preferences.html:87
msgid "Engine name"
@@ -419,8 +414,8 @@ msgstr "Κατηγορία"
#: searx/templates/courgette/preferences.html:113
#: searx/templates/legacy/preferences.html:99
#: searx/templates/legacy/preferences.html:110
-#: searx/templates/oscar/preferences.html:161
-#: searx/templates/oscar/preferences.html:177
+#: searx/templates/oscar/preferences.html:149
+#: searx/templates/oscar/preferences.html:165
#: searx/templates/pix-art/preferences.html:54
#: searx/templates/pix-art/preferences.html:64
#: searx/templates/simple/preferences.html:86
@@ -438,7 +433,7 @@ msgstr "Αποκλεισμός"
#: searx/templates/courgette/preferences.html:122
#: searx/templates/legacy/preferences.html:119
-#: searx/templates/oscar/preferences.html:297
+#: searx/templates/oscar/preferences.html:285
#: searx/templates/pix-art/preferences.html:73
#: searx/templates/simple/preferences.html:180
msgid ""
@@ -448,7 +443,7 @@ msgstr ""
#: searx/templates/courgette/preferences.html:124
#: searx/templates/legacy/preferences.html:121
-#: searx/templates/oscar/preferences.html:299
+#: searx/templates/oscar/preferences.html:287
#: searx/templates/pix-art/preferences.html:75
#: searx/templates/simple/preferences.html:182
msgid ""
@@ -458,7 +453,7 @@ msgstr ""
#: searx/templates/courgette/preferences.html:127
#: searx/templates/legacy/preferences.html:124
-#: searx/templates/oscar/preferences.html:305
+#: searx/templates/oscar/preferences.html:293
#: searx/templates/pix-art/preferences.html:78
#: searx/templates/simple/preferences.html:185
msgid "save"
@@ -466,14 +461,14 @@ msgstr "αποθήκευση"
#: searx/templates/courgette/preferences.html:128
#: searx/templates/legacy/preferences.html:125
-#: searx/templates/oscar/preferences.html:307
+#: searx/templates/oscar/preferences.html:295
#: searx/templates/simple/preferences.html:186
msgid "Reset defaults"
msgstr "Επαναφορά προεπιλογών"
#: searx/templates/courgette/preferences.html:129
#: searx/templates/legacy/preferences.html:126
-#: searx/templates/oscar/preferences.html:306
+#: searx/templates/oscar/preferences.html:294
#: searx/templates/pix-art/preferences.html:79
#: searx/templates/simple/preferences.html:187
msgid "back"
@@ -644,23 +639,23 @@ msgid "General"
msgstr "Γενικά"
#: searx/templates/oscar/preferences.html:14
-#: searx/templates/oscar/preferences.html:146
+#: searx/templates/oscar/preferences.html:134
#: searx/templates/simple/preferences.html:76
msgid "Engines"
msgstr "Μηχανές"
#: searx/templates/oscar/preferences.html:15
-#: searx/templates/oscar/preferences.html:219
+#: searx/templates/oscar/preferences.html:207
msgid "Plugins"
msgstr "Πρόσθετα"
#: searx/templates/oscar/preferences.html:16
-#: searx/templates/oscar/preferences.html:245
+#: searx/templates/oscar/preferences.html:233
msgid "Answerers"
msgstr ""
#: searx/templates/oscar/preferences.html:17
-#: searx/templates/oscar/preferences.html:272
+#: searx/templates/oscar/preferences.html:260
msgid "Cookies"
msgstr ""
@@ -711,88 +706,78 @@ msgstr ""
msgid "Style"
msgstr ""
-#: searx/templates/oscar/preferences.html:122
-msgid "Open Access DOI resolver"
-msgstr ""
-
-#: searx/templates/oscar/preferences.html:123
-msgid ""
-"Redirect to open-access versions of publications when available (plugin "
-"required)"
-msgstr ""
-
+#: searx/templates/oscar/preferences.html:151
#: searx/templates/oscar/preferences.html:163
-#: searx/templates/oscar/preferences.html:175
#: searx/templates/simple/preferences.html:88
msgid "Shortcut"
msgstr "Συντόμευση"
-#: searx/templates/oscar/preferences.html:164
-#: searx/templates/oscar/preferences.html:174
+#: searx/templates/oscar/preferences.html:152
+#: searx/templates/oscar/preferences.html:162
msgid "Selected language"
msgstr "Επιλεγμένη γλώσσα"
-#: searx/templates/oscar/preferences.html:166
-#: searx/templates/oscar/preferences.html:172
+#: searx/templates/oscar/preferences.html:154
+#: searx/templates/oscar/preferences.html:160
#: searx/templates/simple/preferences.html:91
msgid "Time range"
msgstr ""
-#: searx/templates/oscar/preferences.html:167
-#: searx/templates/oscar/preferences.html:171
+#: searx/templates/oscar/preferences.html:155
+#: searx/templates/oscar/preferences.html:159
#: searx/templates/simple/preferences.html:92
msgid "Avg. time"
msgstr ""
-#: searx/templates/oscar/preferences.html:168
-#: searx/templates/oscar/preferences.html:170
+#: searx/templates/oscar/preferences.html:156
+#: searx/templates/oscar/preferences.html:158
#: searx/templates/simple/preferences.html:93
msgid "Max time"
msgstr ""
-#: searx/templates/oscar/preferences.html:248
+#: searx/templates/oscar/preferences.html:236
msgid "This is the list of searx's instant answering modules."
msgstr ""
-#: searx/templates/oscar/preferences.html:252
+#: searx/templates/oscar/preferences.html:240
msgid "Name"
msgstr "Όνομα"
-#: searx/templates/oscar/preferences.html:253
+#: searx/templates/oscar/preferences.html:241
msgid "Keywords"
msgstr "Λέξεις κλειδιά"
-#: searx/templates/oscar/preferences.html:254
+#: searx/templates/oscar/preferences.html:242
msgid "Description"
msgstr "Περιγραφή"
-#: searx/templates/oscar/preferences.html:255
+#: searx/templates/oscar/preferences.html:243
msgid "Examples"
msgstr "Παραδείγματα"
-#: searx/templates/oscar/preferences.html:275
+#: searx/templates/oscar/preferences.html:263
msgid ""
"This is the list of cookies and their values searx is storing on your "
"computer."
msgstr ""
-#: searx/templates/oscar/preferences.html:276
+#: searx/templates/oscar/preferences.html:264
msgid "With that list, you can assess searx transparency."
msgstr ""
-#: searx/templates/oscar/preferences.html:281
+#: searx/templates/oscar/preferences.html:269
msgid "Cookie name"
msgstr ""
-#: searx/templates/oscar/preferences.html:282
+#: searx/templates/oscar/preferences.html:270
msgid "Value"
msgstr "Τιμή"
-#: searx/templates/oscar/preferences.html:301
+#: searx/templates/oscar/preferences.html:289
msgid "Search URL of the currently saved preferences"
msgstr ""
-#: searx/templates/oscar/preferences.html:301
+#: searx/templates/oscar/preferences.html:289
msgid ""
"Note: specifying custom settings in the search URL can reduce privacy by "
"leaking data to the clicked result sites."
diff --git a/searx/translations/en/LC_MESSAGES/messages.mo b/searx/translations/en/LC_MESSAGES/messages.mo
index 0c270c06d..cff555694 100644
--- a/searx/translations/en/LC_MESSAGES/messages.mo
+++ b/searx/translations/en/LC_MESSAGES/messages.mo
Binary files differ
diff --git a/searx/translations/eo/LC_MESSAGES/messages.mo b/searx/translations/eo/LC_MESSAGES/messages.mo
index cfad4d49e..c693ac69f 100644
--- a/searx/translations/eo/LC_MESSAGES/messages.mo
+++ b/searx/translations/eo/LC_MESSAGES/messages.mo
Binary files differ
diff --git a/searx/translations/eo/LC_MESSAGES/messages.po b/searx/translations/eo/LC_MESSAGES/messages.po
index cd7ffe80e..1f06ed5b2 100644
--- a/searx/translations/eo/LC_MESSAGES/messages.po
+++ b/searx/translations/eo/LC_MESSAGES/messages.po
@@ -11,9 +11,9 @@ msgid ""
msgstr ""
"Project-Id-Version: searx\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
-"POT-Creation-Date: 2017-11-01 21:31+0100\n"
-"PO-Revision-Date: 2018-11-22 08:33+0000\n"
-"Last-Translator: Václav Zouzalík <Vaclav.Zouzalik@seznam.cz>\n"
+"POT-Creation-Date: 2017-10-07 19:18+0200\n"
+"PO-Revision-Date: 2019-02-23 17:39+0000\n"
+"Last-Translator: pizzaiolo\n"
"Language-Team: Esperanto (http://www.transifex.com/asciimoo/searx/language/eo/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
@@ -34,63 +34,63 @@ msgstr "escepto de peto"
msgid "unexpected crash"
msgstr "neatendita paneo"
-#: searx/webapp.py:136
+#: searx/webapp.py:135
msgid "files"
msgstr "dosieroj"
-#: searx/webapp.py:137
+#: searx/webapp.py:136
msgid "general"
msgstr "ĝenerala"
-#: searx/webapp.py:138
+#: searx/webapp.py:137
msgid "music"
msgstr "muziko"
-#: searx/webapp.py:139
+#: searx/webapp.py:138
msgid "social media"
msgstr "sociaj retoj"
-#: searx/webapp.py:140
+#: searx/webapp.py:139
msgid "images"
msgstr "bildoj"
-#: searx/webapp.py:141
+#: searx/webapp.py:140
msgid "videos"
msgstr "videoj"
-#: searx/webapp.py:142
+#: searx/webapp.py:141
msgid "it"
msgstr "komputiko"
-#: searx/webapp.py:143
+#: searx/webapp.py:142
msgid "news"
msgstr "novaĵoj"
-#: searx/webapp.py:144
+#: searx/webapp.py:143
msgid "map"
msgstr "mapo"
-#: searx/webapp.py:145
+#: searx/webapp.py:144
msgid "science"
msgstr "scienco"
-#: searx/webapp.py:399 searx/webapp.py:658
+#: searx/webapp.py:398 searx/webapp.py:653
msgid "Invalid settings, please edit your preferences"
msgstr "Nevalidaj agordoj, bonvolu redakti viajn agordojn"
-#: searx/webapp.py:415
+#: searx/webapp.py:410
msgid "Invalid settings"
msgstr "Nevalidaj agordoj"
-#: searx/webapp.py:449 searx/webapp.py:493
+#: searx/webapp.py:444 searx/webapp.py:488
msgid "search error"
msgstr "serĉa eraro"
-#: searx/webapp.py:530
+#: searx/webapp.py:525
msgid "{minutes} minute(s) ago"
msgstr "antaŭ {minutes} minuto(j)"
-#: searx/webapp.py:532
+#: searx/webapp.py:527
msgid "{hours} hour(s), {minutes} minute(s) ago"
msgstr "antaŭ {hours} horo(j), {minutes} minuto(j)"
@@ -110,29 +110,28 @@ msgstr "Statistikaj funkcioj"
msgid "Compute {functions} of the arguments"
msgstr "Kalkulas {functions} el la argumentoj"
-#: searx/engines/__init__.py:194 searx/engines/flycheck___init__.py:201
+#: searx/engines/__init__.py:194
msgid "Engine time (sec)"
msgstr "Motora tempo (s)"
-#: searx/engines/__init__.py:198 searx/engines/flycheck___init__.py:205
+#: searx/engines/__init__.py:198
msgid "Page loads (sec)"
msgstr "Paĝŝarĝo (sekundoj)"
-#: searx/engines/__init__.py:202 searx/engines/flycheck___init__.py:209
-#: searx/templates/oscar/results.html:95
+#: searx/engines/__init__.py:202 searx/templates/oscar/results.html:95
#: searx/templates/simple/results.html:20
msgid "Number of results"
msgstr "Nombro da rezultoj"
-#: searx/engines/__init__.py:206 searx/engines/flycheck___init__.py:213
+#: searx/engines/__init__.py:206
msgid "Scores"
msgstr "Poentaroj"
-#: searx/engines/__init__.py:210 searx/engines/flycheck___init__.py:217
+#: searx/engines/__init__.py:210
msgid "Scores per result"
msgstr "Poentaroj por unu rezulto"
-#: searx/engines/__init__.py:214 searx/engines/flycheck___init__.py:221
+#: searx/engines/__init__.py:214
msgid "Errors"
msgstr "Eraroj"
@@ -144,9 +143,15 @@ msgstr "{title}&nbsp;(MALNOVA)"
msgid "This entry has been superseded by"
msgstr "Tiu ĉi enigo estis anstataŭigita per"
-#: searx/engines/pubmed.py:74
-msgid "No abstract is available for this publication."
-msgstr "Neniu resumo atingeblas por tiu ĉi eldonaĵo."
+#: searx/plugins/doai_rewrite.py:7
+msgid "DOAI rewrite"
+msgstr "DOAI-reverko"
+
+#: searx/plugins/doai_rewrite.py:8
+msgid ""
+"Avoid paywalls by redirecting to open-access versions of publications when "
+"available"
+msgstr "Eviti pagomurojn per direkto al malfermaliraj versioj de eldonaĵoj, se eblas"
#: searx/plugins/https_rewrite.py:32
msgid "Rewrite HTTP links to HTTPS if possible"
@@ -160,16 +165,6 @@ msgstr "Senfina rulumado"
msgid "Automatically load next page when scrolling to bottom of current page"
msgstr "Aŭtomate ŝarĝi sekvan paĝon rulumante al la subo de la nuna paĝo"
-#: searx/plugins/oa_doi_rewrite.py:9
-msgid "Open Access DOI rewrite"
-msgstr "Malfermalira COI-ŝanĝo"
-
-#: searx/plugins/oa_doi_rewrite.py:10
-msgid ""
-"Avoid paywalls by redirecting to open-access versions of publications when "
-"available"
-msgstr "Eviti pagomurojn per direkto al malfermaliraj versioj de eldonaĵoj, se eblas"
-
#: searx/plugins/open_results_on_new_tab.py:18
#: searx/templates/oscar/preferences.html:114
#: searx/templates/simple/preferences.html:149
@@ -332,8 +327,8 @@ msgstr "Metodo"
#: searx/templates/courgette/preferences.html:63
#: searx/templates/legacy/preferences.html:64
#: searx/templates/oscar/preferences.html:86
-#: searx/templates/oscar/preferences.html:165
-#: searx/templates/oscar/preferences.html:173
+#: searx/templates/oscar/preferences.html:153
+#: searx/templates/oscar/preferences.html:161
#: searx/templates/simple/preferences.html:63
#: searx/templates/simple/preferences.html:90
msgid "SafeSearch"
@@ -405,8 +400,8 @@ msgstr " Aktuale uzataj serĉiloj"
#: searx/templates/courgette/preferences.html:100
#: searx/templates/legacy/preferences.html:97
-#: searx/templates/oscar/preferences.html:162
-#: searx/templates/oscar/preferences.html:176
+#: searx/templates/oscar/preferences.html:150
+#: searx/templates/oscar/preferences.html:164
#: searx/templates/pix-art/preferences.html:53
#: searx/templates/simple/preferences.html:87
msgid "Engine name"
@@ -421,8 +416,8 @@ msgstr "Kategorio"
#: searx/templates/courgette/preferences.html:113
#: searx/templates/legacy/preferences.html:99
#: searx/templates/legacy/preferences.html:110
-#: searx/templates/oscar/preferences.html:161
-#: searx/templates/oscar/preferences.html:177
+#: searx/templates/oscar/preferences.html:149
+#: searx/templates/oscar/preferences.html:165
#: searx/templates/pix-art/preferences.html:54
#: searx/templates/pix-art/preferences.html:64
#: searx/templates/simple/preferences.html:86
@@ -440,7 +435,7 @@ msgstr "Bloki"
#: searx/templates/courgette/preferences.html:122
#: searx/templates/legacy/preferences.html:119
-#: searx/templates/oscar/preferences.html:297
+#: searx/templates/oscar/preferences.html:285
#: searx/templates/pix-art/preferences.html:73
#: searx/templates/simple/preferences.html:180
msgid ""
@@ -450,7 +445,7 @@ msgstr "Tiuj ĉi agordoj estas konservitaj en viaj kuketoj, kio ebligas al ni ne
#: searx/templates/courgette/preferences.html:124
#: searx/templates/legacy/preferences.html:121
-#: searx/templates/oscar/preferences.html:299
+#: searx/templates/oscar/preferences.html:287
#: searx/templates/pix-art/preferences.html:75
#: searx/templates/simple/preferences.html:182
msgid ""
@@ -460,7 +455,7 @@ msgstr "Tiuj kuketoj estas nur por via plaĉo, ni ne uzas ilin por spuri vin."
#: searx/templates/courgette/preferences.html:127
#: searx/templates/legacy/preferences.html:124
-#: searx/templates/oscar/preferences.html:305
+#: searx/templates/oscar/preferences.html:293
#: searx/templates/pix-art/preferences.html:78
#: searx/templates/simple/preferences.html:185
msgid "save"
@@ -468,14 +463,14 @@ msgstr "konservi"
#: searx/templates/courgette/preferences.html:128
#: searx/templates/legacy/preferences.html:125
-#: searx/templates/oscar/preferences.html:307
+#: searx/templates/oscar/preferences.html:295
#: searx/templates/simple/preferences.html:186
msgid "Reset defaults"
msgstr "Reagordi al defaŭlto"
#: searx/templates/courgette/preferences.html:129
#: searx/templates/legacy/preferences.html:126
-#: searx/templates/oscar/preferences.html:306
+#: searx/templates/oscar/preferences.html:294
#: searx/templates/pix-art/preferences.html:79
#: searx/templates/simple/preferences.html:187
msgid "back"
@@ -646,23 +641,23 @@ msgid "General"
msgstr "Ĝenerala"
#: searx/templates/oscar/preferences.html:14
-#: searx/templates/oscar/preferences.html:146
+#: searx/templates/oscar/preferences.html:134
#: searx/templates/simple/preferences.html:76
msgid "Engines"
msgstr "Motoroj"
#: searx/templates/oscar/preferences.html:15
-#: searx/templates/oscar/preferences.html:219
+#: searx/templates/oscar/preferences.html:207
msgid "Plugins"
msgstr "Aldonaĵoj"
#: searx/templates/oscar/preferences.html:16
-#: searx/templates/oscar/preferences.html:245
+#: searx/templates/oscar/preferences.html:233
msgid "Answerers"
msgstr "Respondiloj"
#: searx/templates/oscar/preferences.html:17
-#: searx/templates/oscar/preferences.html:272
+#: searx/templates/oscar/preferences.html:260
msgid "Cookies"
msgstr "Kuketoj"
@@ -713,88 +708,78 @@ msgstr "Elekti stilon por ĉi tiu temo"
msgid "Style"
msgstr "Stilo"
-#: searx/templates/oscar/preferences.html:122
-msgid "Open Access DOI resolver"
-msgstr "Malfermalira COI-solvilo"
-
-#: searx/templates/oscar/preferences.html:123
-msgid ""
-"Redirect to open-access versions of publications when available (plugin "
-"required)"
-msgstr "Direkti al malfermaliraj versioj de eldonaĵoj, se eblas (aldonaĵo necesas)"
-
+#: searx/templates/oscar/preferences.html:151
#: searx/templates/oscar/preferences.html:163
-#: searx/templates/oscar/preferences.html:175
#: searx/templates/simple/preferences.html:88
msgid "Shortcut"
msgstr "Fulmoklavo"
-#: searx/templates/oscar/preferences.html:164
-#: searx/templates/oscar/preferences.html:174
+#: searx/templates/oscar/preferences.html:152
+#: searx/templates/oscar/preferences.html:162
msgid "Selected language"
msgstr "Elekti lingvon"
-#: searx/templates/oscar/preferences.html:166
-#: searx/templates/oscar/preferences.html:172
+#: searx/templates/oscar/preferences.html:154
+#: searx/templates/oscar/preferences.html:160
#: searx/templates/simple/preferences.html:91
msgid "Time range"
msgstr "Tempa intervalo"
-#: searx/templates/oscar/preferences.html:167
-#: searx/templates/oscar/preferences.html:171
+#: searx/templates/oscar/preferences.html:155
+#: searx/templates/oscar/preferences.html:159
#: searx/templates/simple/preferences.html:92
msgid "Avg. time"
msgstr "Mezkvanta tempo"
-#: searx/templates/oscar/preferences.html:168
-#: searx/templates/oscar/preferences.html:170
+#: searx/templates/oscar/preferences.html:156
+#: searx/templates/oscar/preferences.html:158
#: searx/templates/simple/preferences.html:93
msgid "Max time"
msgstr "Maksimuma tempo"
-#: searx/templates/oscar/preferences.html:248
+#: searx/templates/oscar/preferences.html:236
msgid "This is the list of searx's instant answering modules."
msgstr "Tio ĉi estas listo de tuje respondantaj moduloj de Searx."
-#: searx/templates/oscar/preferences.html:252
+#: searx/templates/oscar/preferences.html:240
msgid "Name"
msgstr "Nomo"
-#: searx/templates/oscar/preferences.html:253
+#: searx/templates/oscar/preferences.html:241
msgid "Keywords"
msgstr "Ŝlosilvortoj"
-#: searx/templates/oscar/preferences.html:254
+#: searx/templates/oscar/preferences.html:242
msgid "Description"
msgstr "Priskribo"
-#: searx/templates/oscar/preferences.html:255
+#: searx/templates/oscar/preferences.html:243
msgid "Examples"
msgstr "Ekzemploj"
-#: searx/templates/oscar/preferences.html:275
+#: searx/templates/oscar/preferences.html:263
msgid ""
"This is the list of cookies and their values searx is storing on your "
"computer."
msgstr "Ĉi tio estas listo de kuketoj kaj iliaj valoroj, kiujn searx konservas en via komputilo."
-#: searx/templates/oscar/preferences.html:276
+#: searx/templates/oscar/preferences.html:264
msgid "With that list, you can assess searx transparency."
msgstr "Kun tiu listo, vi povas kontroli la travideblecon de searx."
-#: searx/templates/oscar/preferences.html:281
+#: searx/templates/oscar/preferences.html:269
msgid "Cookie name"
msgstr "Nomo de kuketo"
-#: searx/templates/oscar/preferences.html:282
+#: searx/templates/oscar/preferences.html:270
msgid "Value"
msgstr "Valoro"
-#: searx/templates/oscar/preferences.html:301
+#: searx/templates/oscar/preferences.html:289
msgid "Search URL of the currently saved preferences"
msgstr "Serĉo-URL kun aktuale konservitaj agordoj"
-#: searx/templates/oscar/preferences.html:301
+#: searx/templates/oscar/preferences.html:289
msgid ""
"Note: specifying custom settings in the search URL can reduce privacy by "
"leaking data to the clicked result sites."
diff --git a/searx/translations/es/LC_MESSAGES/messages.mo b/searx/translations/es/LC_MESSAGES/messages.mo
index 358cce8cb..c95556350 100644
--- a/searx/translations/es/LC_MESSAGES/messages.mo
+++ b/searx/translations/es/LC_MESSAGES/messages.mo
Binary files differ
diff --git a/searx/translations/es/LC_MESSAGES/messages.po b/searx/translations/es/LC_MESSAGES/messages.po
index 4c276303f..ef67c8393 100644
--- a/searx/translations/es/LC_MESSAGES/messages.po
+++ b/searx/translations/es/LC_MESSAGES/messages.po
@@ -11,16 +11,16 @@
# juanda097 <juanda097@protonmail.ch>, 2017
# Marc Abonce Seguin, 2016
# Marc Abonce Seguin, 2018
-# Oscar <ocf@openmailbox.org>, 2015
+# O <b204fbaf817497f9ea35edbcc051de81_265921>, 2015
# rivera valdez <riveravaldezmail@gmail.com>, 2016
# wefwefew ewfewfewf <nnnedmz0d@moakt.ws>, 2016
msgid ""
msgstr ""
"Project-Id-Version: searx\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
-"POT-Creation-Date: 2017-11-01 21:31+0100\n"
-"PO-Revision-Date: 2018-02-16 05:29+0000\n"
-"Last-Translator: Marc Abonce Seguin\n"
+"POT-Creation-Date: 2017-10-07 19:18+0200\n"
+"PO-Revision-Date: 2019-02-23 17:39+0000\n"
+"Last-Translator: Carmen Fernández B.\n"
"Language-Team: Spanish (http://www.transifex.com/asciimoo/searx/language/es/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
@@ -41,63 +41,63 @@ msgstr "solicitud de excepción"
msgid "unexpected crash"
msgstr "choque inesperado"
-#: searx/webapp.py:136
+#: searx/webapp.py:135
msgid "files"
msgstr "Archivos"
-#: searx/webapp.py:137
+#: searx/webapp.py:136
msgid "general"
msgstr "General"
-#: searx/webapp.py:138
+#: searx/webapp.py:137
msgid "music"
msgstr "Música"
-#: searx/webapp.py:139
+#: searx/webapp.py:138
msgid "social media"
msgstr "Medios sociales"
-#: searx/webapp.py:140
+#: searx/webapp.py:139
msgid "images"
msgstr "Imágenes"
-#: searx/webapp.py:141
+#: searx/webapp.py:140
msgid "videos"
msgstr "Vídeos"
-#: searx/webapp.py:142
+#: searx/webapp.py:141
msgid "it"
msgstr "Informática"
-#: searx/webapp.py:143
+#: searx/webapp.py:142
msgid "news"
msgstr "Noticias"
-#: searx/webapp.py:144
+#: searx/webapp.py:143
msgid "map"
msgstr "Mapa"
-#: searx/webapp.py:145
+#: searx/webapp.py:144
msgid "science"
msgstr "Ciencia"
-#: searx/webapp.py:399 searx/webapp.py:658
+#: searx/webapp.py:398 searx/webapp.py:653
msgid "Invalid settings, please edit your preferences"
msgstr "Parámetros incorrectos, por favor, cambia tus preferencias"
-#: searx/webapp.py:415
+#: searx/webapp.py:410
msgid "Invalid settings"
msgstr "Ajustes no válidos"
-#: searx/webapp.py:449 searx/webapp.py:493
+#: searx/webapp.py:444 searx/webapp.py:488
msgid "search error"
msgstr "error en la búsqueda"
-#: searx/webapp.py:530
+#: searx/webapp.py:525
msgid "{minutes} minute(s) ago"
msgstr "hace {minutes} minuto(s)"
-#: searx/webapp.py:532
+#: searx/webapp.py:527
msgid "{hours} hour(s), {minutes} minute(s) ago"
msgstr "hace {hours} hora(s) y {minutes} minuto(s)"
@@ -117,29 +117,28 @@ msgstr "Funciones de estadística"
msgid "Compute {functions} of the arguments"
msgstr "Computar {functions} de parámetros"
-#: searx/engines/__init__.py:194 searx/engines/flycheck___init__.py:201
+#: searx/engines/__init__.py:194
msgid "Engine time (sec)"
msgstr "Motor de tiempo (seg)"
-#: searx/engines/__init__.py:198 searx/engines/flycheck___init__.py:205
+#: searx/engines/__init__.py:198
msgid "Page loads (sec)"
msgstr "Tiempo de carga (segundos)"
-#: searx/engines/__init__.py:202 searx/engines/flycheck___init__.py:209
-#: searx/templates/oscar/results.html:95
+#: searx/engines/__init__.py:202 searx/templates/oscar/results.html:95
#: searx/templates/simple/results.html:20
msgid "Number of results"
msgstr "Número de resultados"
-#: searx/engines/__init__.py:206 searx/engines/flycheck___init__.py:213
+#: searx/engines/__init__.py:206
msgid "Scores"
msgstr "Puntuaciones"
-#: searx/engines/__init__.py:210 searx/engines/flycheck___init__.py:217
+#: searx/engines/__init__.py:210
msgid "Scores per result"
msgstr "Puntuaciones por resultado"
-#: searx/engines/__init__.py:214 searx/engines/flycheck___init__.py:221
+#: searx/engines/__init__.py:214
msgid "Errors"
msgstr "Errores"
@@ -151,9 +150,15 @@ msgstr "{title}&nbsp;(OBSOLETO)"
msgid "This entry has been superseded by"
msgstr "Esta entrada la ha sustituido"
-#: searx/engines/pubmed.py:74
-msgid "No abstract is available for this publication."
-msgstr "No hay resúmenes disponibles para esta publicación."
+#: searx/plugins/doai_rewrite.py:7
+msgid "DOAI rewrite"
+msgstr "Cambiar a DOAI"
+
+#: searx/plugins/doai_rewrite.py:8
+msgid ""
+"Avoid paywalls by redirecting to open-access versions of publications when "
+"available"
+msgstr "Evitar barreras de pago redireccionando a las versiones de acceso libre de las publicaciones cuando estén disponibles"
#: searx/plugins/https_rewrite.py:32
msgid "Rewrite HTTP links to HTTPS if possible"
@@ -167,16 +172,6 @@ msgstr "Deslizamiento infinito"
msgid "Automatically load next page when scrolling to bottom of current page"
msgstr "Cargar automáticamente la siguiente página al deslizarse hasta el final de la página actual"
-#: searx/plugins/oa_doi_rewrite.py:9
-msgid "Open Access DOI rewrite"
-msgstr ""
-
-#: searx/plugins/oa_doi_rewrite.py:10
-msgid ""
-"Avoid paywalls by redirecting to open-access versions of publications when "
-"available"
-msgstr "Evitar barreras de pago redireccionando a las versiones de acceso libre de las publicaciones cuando estén disponibles"
-
#: searx/plugins/open_results_on_new_tab.py:18
#: searx/templates/oscar/preferences.html:114
#: searx/templates/simple/preferences.html:149
@@ -339,8 +334,8 @@ msgstr "Método"
#: searx/templates/courgette/preferences.html:63
#: searx/templates/legacy/preferences.html:64
#: searx/templates/oscar/preferences.html:86
-#: searx/templates/oscar/preferences.html:165
-#: searx/templates/oscar/preferences.html:173
+#: searx/templates/oscar/preferences.html:153
+#: searx/templates/oscar/preferences.html:161
#: searx/templates/simple/preferences.html:63
#: searx/templates/simple/preferences.html:90
msgid "SafeSearch"
@@ -412,8 +407,8 @@ msgstr "Motores de búsqueda actualmente en uso"
#: searx/templates/courgette/preferences.html:100
#: searx/templates/legacy/preferences.html:97
-#: searx/templates/oscar/preferences.html:162
-#: searx/templates/oscar/preferences.html:176
+#: searx/templates/oscar/preferences.html:150
+#: searx/templates/oscar/preferences.html:164
#: searx/templates/pix-art/preferences.html:53
#: searx/templates/simple/preferences.html:87
msgid "Engine name"
@@ -428,8 +423,8 @@ msgstr "Categoría"
#: searx/templates/courgette/preferences.html:113
#: searx/templates/legacy/preferences.html:99
#: searx/templates/legacy/preferences.html:110
-#: searx/templates/oscar/preferences.html:161
-#: searx/templates/oscar/preferences.html:177
+#: searx/templates/oscar/preferences.html:149
+#: searx/templates/oscar/preferences.html:165
#: searx/templates/pix-art/preferences.html:54
#: searx/templates/pix-art/preferences.html:64
#: searx/templates/simple/preferences.html:86
@@ -447,7 +442,7 @@ msgstr "Bloquear"
#: searx/templates/courgette/preferences.html:122
#: searx/templates/legacy/preferences.html:119
-#: searx/templates/oscar/preferences.html:297
+#: searx/templates/oscar/preferences.html:285
#: searx/templates/pix-art/preferences.html:73
#: searx/templates/simple/preferences.html:180
msgid ""
@@ -457,7 +452,7 @@ msgstr "Esta configuración se guarda en sus cookies, lo que nos permite no alma
#: searx/templates/courgette/preferences.html:124
#: searx/templates/legacy/preferences.html:121
-#: searx/templates/oscar/preferences.html:299
+#: searx/templates/oscar/preferences.html:287
#: searx/templates/pix-art/preferences.html:75
#: searx/templates/simple/preferences.html:182
msgid ""
@@ -467,7 +462,7 @@ msgstr "Estas cookies son para su propia comodidad, no las utilizamos para rastr
#: searx/templates/courgette/preferences.html:127
#: searx/templates/legacy/preferences.html:124
-#: searx/templates/oscar/preferences.html:305
+#: searx/templates/oscar/preferences.html:293
#: searx/templates/pix-art/preferences.html:78
#: searx/templates/simple/preferences.html:185
msgid "save"
@@ -475,14 +470,14 @@ msgstr "Guardar"
#: searx/templates/courgette/preferences.html:128
#: searx/templates/legacy/preferences.html:125
-#: searx/templates/oscar/preferences.html:307
+#: searx/templates/oscar/preferences.html:295
#: searx/templates/simple/preferences.html:186
msgid "Reset defaults"
msgstr "Restablecer configuración por defecto"
#: searx/templates/courgette/preferences.html:129
#: searx/templates/legacy/preferences.html:126
-#: searx/templates/oscar/preferences.html:306
+#: searx/templates/oscar/preferences.html:294
#: searx/templates/pix-art/preferences.html:79
#: searx/templates/simple/preferences.html:187
msgid "back"
@@ -653,23 +648,23 @@ msgid "General"
msgstr "General"
#: searx/templates/oscar/preferences.html:14
-#: searx/templates/oscar/preferences.html:146
+#: searx/templates/oscar/preferences.html:134
#: searx/templates/simple/preferences.html:76
msgid "Engines"
msgstr "Motores"
#: searx/templates/oscar/preferences.html:15
-#: searx/templates/oscar/preferences.html:219
+#: searx/templates/oscar/preferences.html:207
msgid "Plugins"
msgstr "Plugins"
#: searx/templates/oscar/preferences.html:16
-#: searx/templates/oscar/preferences.html:245
+#: searx/templates/oscar/preferences.html:233
msgid "Answerers"
msgstr "Respondedores"
#: searx/templates/oscar/preferences.html:17
-#: searx/templates/oscar/preferences.html:272
+#: searx/templates/oscar/preferences.html:260
msgid "Cookies"
msgstr "Cookies"
@@ -720,88 +715,78 @@ msgstr "Elige un estilo para este tema"
msgid "Style"
msgstr "Estilo"
-#: searx/templates/oscar/preferences.html:122
-msgid "Open Access DOI resolver"
-msgstr ""
-
-#: searx/templates/oscar/preferences.html:123
-msgid ""
-"Redirect to open-access versions of publications when available (plugin "
-"required)"
-msgstr "Redireccionar a versiones de acceso abierto de las publicaciones cuando estén disponibles (se requiere plugin)"
-
+#: searx/templates/oscar/preferences.html:151
#: searx/templates/oscar/preferences.html:163
-#: searx/templates/oscar/preferences.html:175
#: searx/templates/simple/preferences.html:88
msgid "Shortcut"
msgstr "Atajo"
-#: searx/templates/oscar/preferences.html:164
-#: searx/templates/oscar/preferences.html:174
+#: searx/templates/oscar/preferences.html:152
+#: searx/templates/oscar/preferences.html:162
msgid "Selected language"
msgstr "Idioma elegido"
-#: searx/templates/oscar/preferences.html:166
-#: searx/templates/oscar/preferences.html:172
+#: searx/templates/oscar/preferences.html:154
+#: searx/templates/oscar/preferences.html:160
#: searx/templates/simple/preferences.html:91
msgid "Time range"
msgstr "Rango de tiempo"
-#: searx/templates/oscar/preferences.html:167
-#: searx/templates/oscar/preferences.html:171
+#: searx/templates/oscar/preferences.html:155
+#: searx/templates/oscar/preferences.html:159
#: searx/templates/simple/preferences.html:92
msgid "Avg. time"
msgstr "Tiempo promedio"
-#: searx/templates/oscar/preferences.html:168
-#: searx/templates/oscar/preferences.html:170
+#: searx/templates/oscar/preferences.html:156
+#: searx/templates/oscar/preferences.html:158
#: searx/templates/simple/preferences.html:93
msgid "Max time"
msgstr "Tiempo máximo"
-#: searx/templates/oscar/preferences.html:248
+#: searx/templates/oscar/preferences.html:236
msgid "This is the list of searx's instant answering modules."
msgstr "Esta es la lista de los módulos de respuesta inmediata de searx."
-#: searx/templates/oscar/preferences.html:252
+#: searx/templates/oscar/preferences.html:240
msgid "Name"
msgstr "Nombre"
-#: searx/templates/oscar/preferences.html:253
+#: searx/templates/oscar/preferences.html:241
msgid "Keywords"
msgstr "Plabras clave"
-#: searx/templates/oscar/preferences.html:254
+#: searx/templates/oscar/preferences.html:242
msgid "Description"
msgstr "Descripción"
-#: searx/templates/oscar/preferences.html:255
+#: searx/templates/oscar/preferences.html:243
msgid "Examples"
msgstr "Ejemplos"
-#: searx/templates/oscar/preferences.html:275
+#: searx/templates/oscar/preferences.html:263
msgid ""
"This is the list of cookies and their values searx is storing on your "
"computer."
msgstr "Esta es la lista de cookies y sus valores que searx está almacenando en tu ordenador."
-#: searx/templates/oscar/preferences.html:276
+#: searx/templates/oscar/preferences.html:264
msgid "With that list, you can assess searx transparency."
msgstr "Con esa lista puedes valorar la transparencia de searx."
-#: searx/templates/oscar/preferences.html:281
+#: searx/templates/oscar/preferences.html:269
msgid "Cookie name"
msgstr "Nombre de la cookie"
-#: searx/templates/oscar/preferences.html:282
+#: searx/templates/oscar/preferences.html:270
msgid "Value"
msgstr "Valor"
-#: searx/templates/oscar/preferences.html:301
+#: searx/templates/oscar/preferences.html:289
msgid "Search URL of the currently saved preferences"
msgstr "Buscar URL de las preferencias guardadas actualmente"
-#: searx/templates/oscar/preferences.html:301
+#: searx/templates/oscar/preferences.html:289
msgid ""
"Note: specifying custom settings in the search URL can reduce privacy by "
"leaking data to the clicked result sites."
diff --git a/searx/translations/et/LC_MESSAGES/messages.mo b/searx/translations/et/LC_MESSAGES/messages.mo
new file mode 100644
index 000000000..e0818bc78
--- /dev/null
+++ b/searx/translations/et/LC_MESSAGES/messages.mo
Binary files differ
diff --git a/searx/translations/et/LC_MESSAGES/messages.po b/searx/translations/et/LC_MESSAGES/messages.po
new file mode 100644
index 000000000..580307ed1
--- /dev/null
+++ b/searx/translations/et/LC_MESSAGES/messages.po
@@ -0,0 +1,998 @@
+# Translations template for PROJECT.
+# Copyright (C) 2017 ORGANIZATION
+# This file is distributed under the same license as the PROJECT project.
+#
+# Translators:
+# Madis Otenurm, 2019
+msgid ""
+msgstr ""
+"Project-Id-Version: searx\n"
+"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
+"POT-Creation-Date: 2017-10-07 19:18+0200\n"
+"PO-Revision-Date: 2019-04-20 20:39+0000\n"
+"Last-Translator: Madis Otenurm\n"
+"Language-Team: Estonian (http://www.transifex.com/asciimoo/searx/language/et/)\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Generated-By: Babel 2.3.4\n"
+"Language: et\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+
+#: searx/search.py:137 searx/search.py:182
+msgid "timeout"
+msgstr "ajalõpp"
+
+#: searx/search.py:144
+msgid "request exception"
+msgstr "taotluse viga"
+
+#: searx/search.py:151
+msgid "unexpected crash"
+msgstr "ootamatu krahh"
+
+#: searx/webapp.py:135
+msgid "files"
+msgstr "failid"
+
+#: searx/webapp.py:136
+msgid "general"
+msgstr "üldine"
+
+#: searx/webapp.py:137
+msgid "music"
+msgstr "muusika"
+
+#: searx/webapp.py:138
+msgid "social media"
+msgstr "sotsiaalmeedia"
+
+#: searx/webapp.py:139
+msgid "images"
+msgstr "pildid"
+
+#: searx/webapp.py:140
+msgid "videos"
+msgstr "videod"
+
+#: searx/webapp.py:141
+msgid "it"
+msgstr "infotehnoloogia"
+
+#: searx/webapp.py:142
+msgid "news"
+msgstr "uudised"
+
+#: searx/webapp.py:143
+msgid "map"
+msgstr "kaardid"
+
+#: searx/webapp.py:144
+msgid "science"
+msgstr "teadus"
+
+#: searx/webapp.py:398 searx/webapp.py:653
+msgid "Invalid settings, please edit your preferences"
+msgstr "Sobimatud seaded, palun muuda oma eelistusi"
+
+#: searx/webapp.py:410
+msgid "Invalid settings"
+msgstr "Sobimatud seaded"
+
+#: searx/webapp.py:444 searx/webapp.py:488
+msgid "search error"
+msgstr "otsingu viga"
+
+#: searx/webapp.py:525
+msgid "{minutes} minute(s) ago"
+msgstr "{minutes} minut(it) tagasi"
+
+#: searx/webapp.py:527
+msgid "{hours} hour(s), {minutes} minute(s) ago"
+msgstr "{hours} tund(i), {minutes} minut(it) tagasi"
+
+#: searx/answerers/random/answerer.py:53
+msgid "Random value generator"
+msgstr "Juhusliku väärtuse generaator"
+
+#: searx/answerers/random/answerer.py:54
+msgid "Generate different random values"
+msgstr "Genereeri erinevaid juhuslikke väärtusi"
+
+#: searx/answerers/statistics/answerer.py:53
+msgid "Statistics functions"
+msgstr "Statistikafunktsioonid"
+
+#: searx/answerers/statistics/answerer.py:54
+msgid "Compute {functions} of the arguments"
+msgstr "Arvuta argumentide {functions}"
+
+#: searx/engines/__init__.py:194
+msgid "Engine time (sec)"
+msgstr "Mootori aeg (s)"
+
+#: searx/engines/__init__.py:198
+msgid "Page loads (sec)"
+msgstr "Lehe laadimisi (s)"
+
+#: searx/engines/__init__.py:202 searx/templates/oscar/results.html:95
+#: searx/templates/simple/results.html:20
+msgid "Number of results"
+msgstr "Tulemuste arv"
+
+#: searx/engines/__init__.py:206
+msgid "Scores"
+msgstr "Skoorid"
+
+#: searx/engines/__init__.py:210
+msgid "Scores per result"
+msgstr "Skoorid tulemuste kohta"
+
+#: searx/engines/__init__.py:214
+msgid "Errors"
+msgstr "Vead"
+
+#: searx/engines/pdbe.py:87
+msgid "{title}&nbsp;(OBSOLETE)"
+msgstr "{title}&nbsp;(VANANENUD)"
+
+#: searx/engines/pdbe.py:91
+msgid "This entry has been superseded by"
+msgstr "See üksus on asendatud:"
+
+#: searx/plugins/doai_rewrite.py:7
+msgid "DOAI rewrite"
+msgstr "DOAI taaskirjutamine"
+
+#: searx/plugins/doai_rewrite.py:8
+msgid ""
+"Avoid paywalls by redirecting to open-access versions of publications when "
+"available"
+msgstr "Väldi maksumüüre, suunates võimalusel väljaannete avatud ligipääsuga versioonidele"
+
+#: searx/plugins/https_rewrite.py:32
+msgid "Rewrite HTTP links to HTTPS if possible"
+msgstr "Kirjuta võimalusel HTTP lingid HTTPSiks"
+
+#: searx/plugins/infinite_scroll.py:3
+msgid "Infinite scroll"
+msgstr "Lõpmatu kerimine"
+
+#: searx/plugins/infinite_scroll.py:4
+msgid "Automatically load next page when scrolling to bottom of current page"
+msgstr "Laadi lehe lõppu kerimisel järgmine leht automaatselt"
+
+#: searx/plugins/open_results_on_new_tab.py:18
+#: searx/templates/oscar/preferences.html:114
+#: searx/templates/simple/preferences.html:149
+msgid "Open result links on new browser tabs"
+msgstr "Ava tulemuste lingid uutel brauserikaartidel"
+
+#: searx/plugins/open_results_on_new_tab.py:19
+msgid ""
+"Results are opened in the same window by default. This plugin overwrites the"
+" default behaviour to open links on new tabs/windows. (JavaScript required)"
+msgstr "Tulemused avatakse vaikimisi samas aknas. See plugin kirjutab vaikimisi käitumise üle, et avada lingid uutel kaartidel/akendel. (JavaScript nõutud)"
+
+#: searx/plugins/search_on_category_select.py:18
+msgid "Search on category select"
+msgstr "Otsi kategooria valimisel"
+
+#: searx/plugins/search_on_category_select.py:19
+msgid ""
+"Perform search immediately if a category selected. Disable to select "
+"multiple categories. (JavaScript required)"
+msgstr "Teosta otsing koheselt, kui kategooria on valitud. Keela mitme kategooria valimiseks. (Nõuab JavaScripti)"
+
+#: searx/plugins/self_info.py:20
+msgid ""
+"Displays your IP if the query is \"ip\" and your user agent if the query "
+"contains \"user agent\"."
+msgstr "Kuvab sinu IP'd, kui päringuks on \"ip\" ning kasutajaagenti, kui päringuks on \"user agent\"."
+
+#: searx/plugins/tracker_url_remover.py:26
+msgid "Tracker URL remover"
+msgstr "Jälitajate eemaldus URList"
+
+#: searx/plugins/tracker_url_remover.py:27
+msgid "Remove trackers arguments from the returned URL"
+msgstr "Eemaldab jälitavad argumendid tagastatud URList"
+
+#: searx/plugins/vim_hotkeys.py:3
+msgid "Vim-like hotkeys"
+msgstr "Vim-sarnased kiirklahvid"
+
+#: searx/plugins/vim_hotkeys.py:4
+msgid ""
+"Navigate search results with Vim-like hotkeys (JavaScript required). Press "
+"\"h\" key on main or result page to get help."
+msgstr "Navigeeri otsingutulemusi Vim-i sarnaste kiirklahvidega (nõuab JavaScripti). Abi saamiseks vajuta avalehel või tulemuste lehel klahvi \"h\"."
+
+#: searx/templates/courgette/404.html:4 searx/templates/legacy/404.html:4
+#: searx/templates/oscar/404.html:4 searx/templates/pix-art/404.html:4
+#: searx/templates/simple/404.html:4
+msgid "Page not found"
+msgstr "Lehte ei leitud"
+
+#: searx/templates/courgette/404.html:6 searx/templates/legacy/404.html:6
+#: searx/templates/oscar/404.html:6 searx/templates/pix-art/404.html:6
+#: searx/templates/simple/404.html:6
+#, python-format
+msgid "Go to %(search_page)s."
+msgstr "Mine %(search_page)s."
+
+#: searx/templates/courgette/404.html:6 searx/templates/legacy/404.html:6
+#: searx/templates/oscar/404.html:6 searx/templates/pix-art/404.html:6
+#: searx/templates/simple/404.html:6
+msgid "search page"
+msgstr "otsinguleht"
+
+#: searx/templates/courgette/index.html:9
+#: searx/templates/courgette/index.html:13
+#: searx/templates/courgette/results.html:5
+#: searx/templates/legacy/index.html:8 searx/templates/legacy/index.html:12
+#: searx/templates/oscar/navbar.html:7
+#: searx/templates/oscar/preferences.html:3
+#: searx/templates/pix-art/index.html:8
+msgid "preferences"
+msgstr "eelistused"
+
+#: searx/templates/courgette/index.html:11
+#: searx/templates/legacy/index.html:10 searx/templates/oscar/about.html:2
+#: searx/templates/oscar/navbar.html:6 searx/templates/pix-art/index.html:7
+msgid "about"
+msgstr "teave"
+
+#: searx/templates/courgette/preferences.html:5
+#: searx/templates/legacy/preferences.html:5
+#: searx/templates/oscar/preferences.html:8
+#: searx/templates/pix-art/preferences.html:5
+#: searx/templates/simple/preferences.html:26
+msgid "Preferences"
+msgstr "Eelistused"
+
+#: searx/templates/courgette/preferences.html:9
+#: searx/templates/legacy/preferences.html:9
+#: searx/templates/oscar/preferences.html:33
+#: searx/templates/oscar/preferences.html:35
+#: searx/templates/simple/preferences.html:34
+msgid "Default categories"
+msgstr "Vaikimisi kategooriad"
+
+#: searx/templates/courgette/preferences.html:13
+#: searx/templates/legacy/preferences.html:14
+#: searx/templates/oscar/preferences.html:41
+#: searx/templates/pix-art/preferences.html:9
+#: searx/templates/simple/preferences.html:39
+#: searx/templates/simple/preferences.html:163
+msgid "Search language"
+msgstr "Otsingukeel"
+
+#: searx/templates/courgette/preferences.html:16
+#: searx/templates/legacy/preferences.html:17
+#: searx/templates/oscar/languages.html:6
+#: searx/templates/pix-art/preferences.html:12
+#: searx/templates/simple/languages.html:2
+#: searx/templates/simple/preferences.html:42
+msgid "Default language"
+msgstr "Vaikimisi keel"
+
+#: searx/templates/courgette/preferences.html:24
+#: searx/templates/legacy/preferences.html:25
+#: searx/templates/oscar/preferences.html:47
+#: searx/templates/pix-art/preferences.html:20
+#: searx/templates/simple/preferences.html:120
+msgid "Interface language"
+msgstr "Liidese keel"
+
+#: searx/templates/courgette/preferences.html:34
+#: searx/templates/legacy/preferences.html:35
+#: searx/templates/oscar/preferences.html:57
+#: searx/templates/simple/preferences.html:51
+msgid "Autocomplete"
+msgstr "Automaattäide"
+
+#: searx/templates/courgette/preferences.html:45
+#: searx/templates/legacy/preferences.html:46
+#: searx/templates/oscar/preferences.html:68
+#: searx/templates/simple/preferences.html:166
+msgid "Image proxy"
+msgstr "Pildiproksi"
+
+#: searx/templates/courgette/preferences.html:48
+#: searx/templates/legacy/preferences.html:49
+#: searx/templates/oscar/preferences.html:72
+#: searx/templates/simple/preferences.html:169
+msgid "Enabled"
+msgstr "Lubatud"
+
+#: searx/templates/courgette/preferences.html:49
+#: searx/templates/legacy/preferences.html:50
+#: searx/templates/oscar/preferences.html:73
+#: searx/templates/simple/preferences.html:170
+msgid "Disabled"
+msgstr "Keelatud"
+
+#: searx/templates/courgette/preferences.html:54
+#: searx/templates/legacy/preferences.html:55
+#: searx/templates/oscar/preferences.html:77
+#: searx/templates/pix-art/preferences.html:30
+#: searx/templates/simple/preferences.html:156
+msgid "Method"
+msgstr "Meetod"
+
+#: searx/templates/courgette/preferences.html:63
+#: searx/templates/legacy/preferences.html:64
+#: searx/templates/oscar/preferences.html:86
+#: searx/templates/oscar/preferences.html:153
+#: searx/templates/oscar/preferences.html:161
+#: searx/templates/simple/preferences.html:63
+#: searx/templates/simple/preferences.html:90
+msgid "SafeSearch"
+msgstr "SafeSearch"
+
+#: searx/templates/courgette/preferences.html:66
+#: searx/templates/legacy/preferences.html:67
+#: searx/templates/oscar/preferences.html:90
+#: searx/templates/simple/preferences.html:66
+msgid "Strict"
+msgstr "Range"
+
+#: searx/templates/courgette/preferences.html:67
+#: searx/templates/legacy/preferences.html:68
+#: searx/templates/oscar/preferences.html:91
+#: searx/templates/simple/preferences.html:67
+msgid "Moderate"
+msgstr "Mõõdukas"
+
+#: searx/templates/courgette/preferences.html:68
+#: searx/templates/legacy/preferences.html:69
+#: searx/templates/oscar/preferences.html:92
+#: searx/templates/simple/preferences.html:68
+msgid "None"
+msgstr "Puudub"
+
+#: searx/templates/courgette/preferences.html:73
+#: searx/templates/legacy/preferences.html:74
+#: searx/templates/oscar/preferences.html:96
+#: searx/templates/pix-art/preferences.html:39
+#: searx/templates/simple/preferences.html:131
+msgid "Themes"
+msgstr "Teemad"
+
+#: searx/templates/courgette/preferences.html:83
+msgid "Color"
+msgstr "Värv"
+
+#: searx/templates/courgette/preferences.html:86
+msgid "Blue (default)"
+msgstr "Sinine (vaikimisi)"
+
+#: searx/templates/courgette/preferences.html:87
+msgid "Violet"
+msgstr "Violetne"
+
+#: searx/templates/courgette/preferences.html:88
+msgid "Green"
+msgstr "Roheline"
+
+#: searx/templates/courgette/preferences.html:89
+msgid "Cyan"
+msgstr "Erksinine"
+
+#: searx/templates/courgette/preferences.html:90
+msgid "Orange"
+msgstr "Oranž"
+
+#: searx/templates/courgette/preferences.html:91
+msgid "Red"
+msgstr "Punane"
+
+#: searx/templates/courgette/preferences.html:96
+#: searx/templates/legacy/preferences.html:93
+#: searx/templates/pix-art/preferences.html:49
+#: searx/templates/simple/preferences.html:77
+msgid "Currently used search engines"
+msgstr "Hetkel kasutatud otsingumootorid"
+
+#: searx/templates/courgette/preferences.html:100
+#: searx/templates/legacy/preferences.html:97
+#: searx/templates/oscar/preferences.html:150
+#: searx/templates/oscar/preferences.html:164
+#: searx/templates/pix-art/preferences.html:53
+#: searx/templates/simple/preferences.html:87
+msgid "Engine name"
+msgstr "Mootori nimi"
+
+#: searx/templates/courgette/preferences.html:101
+#: searx/templates/legacy/preferences.html:98
+msgid "Category"
+msgstr "Kategooria"
+
+#: searx/templates/courgette/preferences.html:102
+#: searx/templates/courgette/preferences.html:113
+#: searx/templates/legacy/preferences.html:99
+#: searx/templates/legacy/preferences.html:110
+#: searx/templates/oscar/preferences.html:149
+#: searx/templates/oscar/preferences.html:165
+#: searx/templates/pix-art/preferences.html:54
+#: searx/templates/pix-art/preferences.html:64
+#: searx/templates/simple/preferences.html:86
+msgid "Allow"
+msgstr "Luba"
+
+#: searx/templates/courgette/preferences.html:102
+#: searx/templates/courgette/preferences.html:114
+#: searx/templates/legacy/preferences.html:99
+#: searx/templates/legacy/preferences.html:111
+#: searx/templates/pix-art/preferences.html:54
+#: searx/templates/pix-art/preferences.html:65
+msgid "Block"
+msgstr "Keela"
+
+#: searx/templates/courgette/preferences.html:122
+#: searx/templates/legacy/preferences.html:119
+#: searx/templates/oscar/preferences.html:285
+#: searx/templates/pix-art/preferences.html:73
+#: searx/templates/simple/preferences.html:180
+msgid ""
+"These settings are stored in your cookies, this allows us not to store this "
+"data about you."
+msgstr "Need seaded salvestatakse sinu küpsistes, see lubab meil sinu kohta andmeid mitte salvestada."
+
+#: searx/templates/courgette/preferences.html:124
+#: searx/templates/legacy/preferences.html:121
+#: searx/templates/oscar/preferences.html:287
+#: searx/templates/pix-art/preferences.html:75
+#: searx/templates/simple/preferences.html:182
+msgid ""
+"These cookies serve your sole convenience, we don't use these cookies to "
+"track you."
+msgstr "Need küpsised on vaid mugavuse tarbeks, me ei kasuta neid sinu jälitamiseks."
+
+#: searx/templates/courgette/preferences.html:127
+#: searx/templates/legacy/preferences.html:124
+#: searx/templates/oscar/preferences.html:293
+#: searx/templates/pix-art/preferences.html:78
+#: searx/templates/simple/preferences.html:185
+msgid "save"
+msgstr "salvesta"
+
+#: searx/templates/courgette/preferences.html:128
+#: searx/templates/legacy/preferences.html:125
+#: searx/templates/oscar/preferences.html:295
+#: searx/templates/simple/preferences.html:186
+msgid "Reset defaults"
+msgstr "Lähtesta vaikeseaded"
+
+#: searx/templates/courgette/preferences.html:129
+#: searx/templates/legacy/preferences.html:126
+#: searx/templates/oscar/preferences.html:294
+#: searx/templates/pix-art/preferences.html:79
+#: searx/templates/simple/preferences.html:187
+msgid "back"
+msgstr "tagasi"
+
+#: searx/templates/courgette/results.html:12
+#: searx/templates/legacy/results.html:13
+#: searx/templates/oscar/results.html:136
+#: searx/templates/simple/results.html:58
+msgid "Search URL"
+msgstr "Otsingu URL"
+
+#: searx/templates/courgette/results.html:16
+#: searx/templates/legacy/results.html:17
+#: searx/templates/oscar/results.html:141
+#: searx/templates/simple/results.html:62
+msgid "Download results"
+msgstr "Laadi tulemused alla"
+
+#: searx/templates/courgette/results.html:34
+#: searx/templates/legacy/results.html:35
+#: searx/templates/simple/results.html:10
+msgid "Answers"
+msgstr "Vastused"
+
+#: searx/templates/courgette/results.html:42
+#: searx/templates/legacy/results.html:43
+#: searx/templates/oscar/results.html:116
+#: searx/templates/simple/results.html:42
+msgid "Suggestions"
+msgstr "Soovitused"
+
+#: searx/templates/courgette/results.html:70
+#: searx/templates/legacy/results.html:81
+#: searx/templates/oscar/results.html:68 searx/templates/oscar/results.html:78
+#: searx/templates/simple/results.html:130
+msgid "previous page"
+msgstr "eelmine leht"
+
+#: searx/templates/courgette/results.html:81
+#: searx/templates/legacy/results.html:92
+#: searx/templates/oscar/results.html:62 searx/templates/oscar/results.html:84
+#: searx/templates/simple/results.html:145
+msgid "next page"
+msgstr "järgmine leht"
+
+#: searx/templates/courgette/search.html:3
+#: searx/templates/legacy/search.html:3 searx/templates/oscar/search.html:6
+#: searx/templates/oscar/search_full.html:9
+#: searx/templates/pix-art/search.html:3 searx/templates/simple/search.html:4
+msgid "Search for..."
+msgstr "Otsi..."
+
+#: searx/templates/courgette/stats.html:4 searx/templates/legacy/stats.html:4
+#: searx/templates/oscar/stats.html:5 searx/templates/pix-art/stats.html:4
+#: searx/templates/simple/stats.html:7
+msgid "Engine stats"
+msgstr "Mootori statistika"
+
+#: searx/templates/courgette/result_templates/images.html:4
+#: searx/templates/legacy/result_templates/images.html:4
+#: searx/templates/pix-art/result_templates/images.html:4
+msgid "original context"
+msgstr "originaalne kontekst"
+
+#: searx/templates/courgette/result_templates/torrent.html:7
+#: searx/templates/legacy/result_templates/torrent.html:11
+#: searx/templates/oscar/result_templates/torrent.html:6
+#: searx/templates/simple/result_templates/torrent.html:9
+msgid "Seeder"
+msgstr "Seemendaja"
+
+#: searx/templates/courgette/result_templates/torrent.html:7
+#: searx/templates/legacy/result_templates/torrent.html:11
+#: searx/templates/oscar/result_templates/torrent.html:6
+#: searx/templates/simple/result_templates/torrent.html:9
+msgid "Leecher"
+msgstr "Kaanija"
+
+#: searx/templates/courgette/result_templates/torrent.html:9
+#: searx/templates/legacy/result_templates/torrent.html:9
+#: searx/templates/oscar/macros.html:23
+#: searx/templates/simple/result_templates/torrent.html:6
+msgid "magnet link"
+msgstr "magnetlink"
+
+#: searx/templates/courgette/result_templates/torrent.html:10
+#: searx/templates/legacy/result_templates/torrent.html:10
+#: searx/templates/oscar/macros.html:24
+#: searx/templates/simple/result_templates/torrent.html:7
+msgid "torrent file"
+msgstr "torrentifail"
+
+#: searx/templates/legacy/categories.html:8
+#: searx/templates/simple/categories.html:6
+msgid "Click on the magnifier to perform search"
+msgstr "Klõpsa luubile otsingu teostamiseks"
+
+#: searx/templates/legacy/preferences.html:84
+#: searx/templates/oscar/preferences.html:113
+#: searx/templates/simple/preferences.html:142
+msgid "Results on new tabs"
+msgstr "Tulemused uutel kaartidel"
+
+#: searx/templates/legacy/preferences.html:87
+#: searx/templates/oscar/preferences.html:117
+#: searx/templates/simple/preferences.html:145
+msgid "On"
+msgstr "Sees"
+
+#: searx/templates/legacy/preferences.html:88
+#: searx/templates/oscar/preferences.html:118
+#: searx/templates/simple/preferences.html:146
+msgid "Off"
+msgstr "Väljas"
+
+#: searx/templates/legacy/result_templates/code.html:3
+#: searx/templates/legacy/result_templates/default.html:3
+#: searx/templates/legacy/result_templates/map.html:9
+#: searx/templates/oscar/macros.html:34 searx/templates/oscar/macros.html:48
+#: searx/templates/simple/macros.html:43
+msgid "cached"
+msgstr "vahemälus"
+
+#: searx/templates/oscar/advanced.html:4
+msgid "Advanced settings"
+msgstr "Täpsemad seaded"
+
+#: searx/templates/oscar/base.html:62
+#: searx/templates/oscar/messages/first_time.html:4
+#: searx/templates/oscar/messages/save_settings_successfull.html:5
+#: searx/templates/oscar/messages/unknow_error.html:5
+msgid "Close"
+msgstr "Sulge"
+
+#: searx/templates/oscar/base.html:64
+#: searx/templates/oscar/messages/no_results.html:4
+#: searx/templates/simple/messages/no_results.html:4
+#: searx/templates/simple/results.html:25
+msgid "Error!"
+msgstr "Viga!"
+
+#: searx/templates/oscar/base.html:90 searx/templates/simple/base.html:55
+msgid "Powered by"
+msgstr "Põhineb"
+
+#: searx/templates/oscar/base.html:90 searx/templates/simple/base.html:55
+msgid "a privacy-respecting, hackable metasearch engine"
+msgstr "privaatsust austaval, häkitaval metaotsingu mootoril"
+
+#: searx/templates/oscar/macros.html:36 searx/templates/oscar/macros.html:50
+#: searx/templates/simple/macros.html:43
+msgid "proxied"
+msgstr "proksitud"
+
+#: searx/templates/oscar/macros.html:92
+msgid "supported"
+msgstr "toetatud"
+
+#: searx/templates/oscar/macros.html:96
+msgid "not supported"
+msgstr "mittetoetatud"
+
+#: searx/templates/oscar/preferences.html:13
+#: searx/templates/oscar/preferences.html:22
+#: searx/templates/simple/preferences.html:32
+msgid "General"
+msgstr "Üldine"
+
+#: searx/templates/oscar/preferences.html:14
+#: searx/templates/oscar/preferences.html:134
+#: searx/templates/simple/preferences.html:76
+msgid "Engines"
+msgstr "Mootorid"
+
+#: searx/templates/oscar/preferences.html:15
+#: searx/templates/oscar/preferences.html:207
+msgid "Plugins"
+msgstr "Pluginad"
+
+#: searx/templates/oscar/preferences.html:16
+#: searx/templates/oscar/preferences.html:233
+msgid "Answerers"
+msgstr "Vastajad"
+
+#: searx/templates/oscar/preferences.html:17
+#: searx/templates/oscar/preferences.html:260
+msgid "Cookies"
+msgstr "Küpsised"
+
+#: searx/templates/oscar/preferences.html:42
+#: searx/templates/simple/preferences.html:48
+msgid "What language do you prefer for search?"
+msgstr "Mis keelt sa otsinguks eelistad?"
+
+#: searx/templates/oscar/preferences.html:48
+#: searx/templates/simple/preferences.html:128
+msgid "Change the language of the layout"
+msgstr "Muuda paigutuse keelt"
+
+#: searx/templates/oscar/preferences.html:58
+#: searx/templates/simple/preferences.html:60
+msgid "Find stuff as you type"
+msgstr "Otsi asju kirjutamise ajal"
+
+#: searx/templates/oscar/preferences.html:69
+#: searx/templates/simple/preferences.html:173
+msgid "Proxying image results through searx"
+msgstr "Proksin pilditulemusi läbi searx-i"
+
+#: searx/templates/oscar/preferences.html:78
+msgid ""
+"Change how forms are submited, <a "
+"href=\"http://en.wikipedia.org/wiki/Hypertext_Transfer_Protocol#Request_methods\""
+" rel=\"external\">learn more about request methods</a>"
+msgstr "Muuda viisi, kuidas väljad edastatakse, <a href=\"http://en.wikipedia.org/wiki/Hypertext_Transfer_Protocol#Request_methods\" rel=\"external\">loe taotlusmeetodite kohta lisaks</a>"
+
+#: searx/templates/oscar/preferences.html:87
+#: searx/templates/simple/preferences.html:71
+msgid "Filter content"
+msgstr "Filtreeri sisu"
+
+#: searx/templates/oscar/preferences.html:97
+#: searx/templates/simple/preferences.html:139
+msgid "Change searx layout"
+msgstr "Muuda searx-i paigutust"
+
+#: searx/templates/oscar/preferences.html:106
+#: searx/templates/oscar/preferences.html:111
+msgid "Choose style for this theme"
+msgstr "Vali sellele teemale stii"
+
+#: searx/templates/oscar/preferences.html:106
+#: searx/templates/oscar/preferences.html:111
+msgid "Style"
+msgstr "Stii"
+
+#: searx/templates/oscar/preferences.html:151
+#: searx/templates/oscar/preferences.html:163
+#: searx/templates/simple/preferences.html:88
+msgid "Shortcut"
+msgstr "Otsetee"
+
+#: searx/templates/oscar/preferences.html:152
+#: searx/templates/oscar/preferences.html:162
+msgid "Selected language"
+msgstr "Valitud keel"
+
+#: searx/templates/oscar/preferences.html:154
+#: searx/templates/oscar/preferences.html:160
+#: searx/templates/simple/preferences.html:91
+msgid "Time range"
+msgstr "Ajavahemik"
+
+#: searx/templates/oscar/preferences.html:155
+#: searx/templates/oscar/preferences.html:159
+#: searx/templates/simple/preferences.html:92
+msgid "Avg. time"
+msgstr "Keskmine aeg"
+
+#: searx/templates/oscar/preferences.html:156
+#: searx/templates/oscar/preferences.html:158
+#: searx/templates/simple/preferences.html:93
+msgid "Max time"
+msgstr "Maksimaalne aeg"
+
+#: searx/templates/oscar/preferences.html:236
+msgid "This is the list of searx's instant answering modules."
+msgstr "See on searx-i koheste vastajate moodulite nimekiri."
+
+#: searx/templates/oscar/preferences.html:240
+msgid "Name"
+msgstr "Nimi"
+
+#: searx/templates/oscar/preferences.html:241
+msgid "Keywords"
+msgstr "Märksõnad"
+
+#: searx/templates/oscar/preferences.html:242
+msgid "Description"
+msgstr "Kirjeldus"
+
+#: searx/templates/oscar/preferences.html:243
+msgid "Examples"
+msgstr "Näited"
+
+#: searx/templates/oscar/preferences.html:263
+msgid ""
+"This is the list of cookies and their values searx is storing on your "
+"computer."
+msgstr "See on küpsiste ja nende väärtuste nimekiri, mida searx hoiab sinu arvutis."
+
+#: searx/templates/oscar/preferences.html:264
+msgid "With that list, you can assess searx transparency."
+msgstr "Selle nimekirjaga saad sa hinnata searx-i läbipaistvust."
+
+#: searx/templates/oscar/preferences.html:269
+msgid "Cookie name"
+msgstr "Küpsise nimi"
+
+#: searx/templates/oscar/preferences.html:270
+msgid "Value"
+msgstr "Väärtus"
+
+#: searx/templates/oscar/preferences.html:289
+msgid "Search URL of the currently saved preferences"
+msgstr "Otsingu URL hetkel salvestatud eelistuste kohta"
+
+#: searx/templates/oscar/preferences.html:289
+msgid ""
+"Note: specifying custom settings in the search URL can reduce privacy by "
+"leaking data to the clicked result sites."
+msgstr "Märkus: täpsemate seadete määramine otsingu URLis võib vähendada privaatsust, lekitades andmed klõpsatud tulemuste saitidele."
+
+#: searx/templates/oscar/results.html:17
+msgid "Search results"
+msgstr "Otsingutulemused"
+
+#: searx/templates/oscar/results.html:21
+#: searx/templates/simple/results.html:84
+msgid "Try searching for:"
+msgstr "Proovi otsida:"
+
+#: searx/templates/oscar/results.html:100
+#: searx/templates/simple/results.html:25
+msgid "Engines cannot retrieve results"
+msgstr "Mootorid ei saa tulemusi tagastada"
+
+#: searx/templates/oscar/results.html:131
+msgid "Links"
+msgstr "Lingid"
+
+#: searx/templates/oscar/search.html:8
+#: searx/templates/oscar/search_full.html:11
+#: searx/templates/simple/search.html:5
+msgid "Start search"
+msgstr "Alusta otsingut"
+
+#: searx/templates/oscar/stats.html:2
+msgid "stats"
+msgstr "statistika"
+
+#: searx/templates/oscar/time-range.html:3
+#: searx/templates/simple/time-range.html:3
+msgid "Anytime"
+msgstr "Igal ajal"
+
+#: searx/templates/oscar/time-range.html:6
+#: searx/templates/simple/time-range.html:6
+msgid "Last day"
+msgstr "Viimane päev"
+
+#: searx/templates/oscar/time-range.html:9
+#: searx/templates/simple/time-range.html:9
+msgid "Last week"
+msgstr "Viimane nädal"
+
+#: searx/templates/oscar/time-range.html:12
+#: searx/templates/simple/time-range.html:12
+msgid "Last month"
+msgstr "Viimane kuu"
+
+#: searx/templates/oscar/time-range.html:15
+#: searx/templates/simple/time-range.html:15
+msgid "Last year"
+msgstr "Viimane aasta"
+
+#: searx/templates/oscar/messages/first_time.html:6
+#: searx/templates/oscar/messages/no_data_available.html:3
+msgid "Heads up!"
+msgstr "Tähelepanu!"
+
+#: searx/templates/oscar/messages/first_time.html:7
+msgid "It look like you are using searx first time."
+msgstr "Tundub, et kasutad searx-i esimest korda."
+
+#: searx/templates/oscar/messages/no_cookies.html:3
+msgid "Information!"
+msgstr "Teave!"
+
+#: searx/templates/oscar/messages/no_cookies.html:4
+msgid "currently, there are no cookies defined."
+msgstr "hetkel pole ühtegi küpsist määratud."
+
+#: searx/templates/oscar/messages/no_data_available.html:4
+msgid "There is currently no data available. "
+msgstr "Hetkel andmed puuduvad."
+
+#: searx/templates/oscar/messages/no_results.html:4
+#: searx/templates/simple/messages/no_results.html:4
+msgid "Engines cannot retrieve results."
+msgstr "Mootorid ei saa tulemusi tagastada."
+
+#: searx/templates/oscar/messages/no_results.html:10
+#: searx/templates/simple/messages/no_results.html:10
+msgid "Please, try again later or find another searx instance."
+msgstr "Palun proovi hiljem uuesti või leia teine searx-i eksemplar."
+
+#: searx/templates/oscar/messages/no_results.html:14
+#: searx/templates/simple/messages/no_results.html:14
+msgid "Sorry!"
+msgstr "Vabandust!"
+
+#: searx/templates/oscar/messages/no_results.html:15
+#: searx/templates/simple/messages/no_results.html:15
+msgid ""
+"we didn't find any results. Please use another query or search in more "
+"categories."
+msgstr "me ei leidnud ühtegi tulemust. Palun kasuta teist päringut või otsi rohkematest kategooriatest."
+
+#: searx/templates/oscar/messages/save_settings_successfull.html:7
+msgid "Well done!"
+msgstr "Hästi tehtud!"
+
+#: searx/templates/oscar/messages/save_settings_successfull.html:8
+msgid "Settings saved successfully."
+msgstr "Seaded edukalt salvestatud."
+
+#: searx/templates/oscar/messages/unknow_error.html:7
+msgid "Oh snap!"
+msgstr "Oh kurja!"
+
+#: searx/templates/oscar/messages/unknow_error.html:8
+msgid "Something went wrong."
+msgstr "Midagi läks valesti."
+
+#: searx/templates/oscar/result_templates/default.html:7
+#: searx/templates/simple/result_templates/default.html:6
+msgid "show media"
+msgstr "kuva meedia"
+
+#: searx/templates/oscar/result_templates/default.html:7
+#: searx/templates/simple/result_templates/default.html:6
+msgid "hide media"
+msgstr "peida meedia"
+
+#: searx/templates/oscar/result_templates/images.html:30
+msgid "Get image"
+msgstr "Hangi pilt"
+
+#: searx/templates/oscar/result_templates/images.html:33
+msgid "View source"
+msgstr "Vaata allikat"
+
+#: searx/templates/oscar/result_templates/map.html:7
+#: searx/templates/simple/result_templates/map.html:7
+msgid "show map"
+msgstr "kuva kaart"
+
+#: searx/templates/oscar/result_templates/map.html:7
+#: searx/templates/simple/result_templates/map.html:7
+msgid "hide map"
+msgstr "peida kaart"
+
+#: searx/templates/oscar/result_templates/map.html:11
+#: searx/templates/simple/result_templates/map.html:11
+msgid "show details"
+msgstr "kuva andmeid"
+
+#: searx/templates/oscar/result_templates/map.html:11
+#: searx/templates/simple/result_templates/map.html:11
+msgid "hide details"
+msgstr "peida andmed"
+
+#: searx/templates/oscar/result_templates/torrent.html:7
+#: searx/templates/simple/result_templates/torrent.html:11
+msgid "Filesize"
+msgstr "Failisuurus"
+
+#: searx/templates/oscar/result_templates/torrent.html:9
+#: searx/templates/simple/result_templates/torrent.html:12
+msgid "Bytes"
+msgstr "Baite"
+
+#: searx/templates/oscar/result_templates/torrent.html:10
+#: searx/templates/simple/result_templates/torrent.html:13
+msgid "kiB"
+msgstr "kiB"
+
+#: searx/templates/oscar/result_templates/torrent.html:11
+#: searx/templates/simple/result_templates/torrent.html:14
+msgid "MiB"
+msgstr "MiB"
+
+#: searx/templates/oscar/result_templates/torrent.html:12
+#: searx/templates/simple/result_templates/torrent.html:15
+msgid "GiB"
+msgstr "GiB"
+
+#: searx/templates/oscar/result_templates/torrent.html:13
+#: searx/templates/simple/result_templates/torrent.html:16
+msgid "TiB"
+msgstr "TiB"
+
+#: searx/templates/oscar/result_templates/torrent.html:15
+#: searx/templates/simple/result_templates/torrent.html:20
+msgid "Number of Files"
+msgstr "Failide arv"
+
+#: searx/templates/oscar/result_templates/videos.html:7
+#: searx/templates/simple/result_templates/videos.html:6
+msgid "show video"
+msgstr "kuva video"
+
+#: searx/templates/oscar/result_templates/videos.html:7
+#: searx/templates/simple/result_templates/videos.html:6
+msgid "hide video"
+msgstr "peida video"
+
+#: searx/templates/pix-art/results.html:28
+msgid "Load more..."
+msgstr "Laadi juurde..."
+
+#: searx/templates/simple/base.html:31
+msgid "No item found"
+msgstr "Üksust ei leitud"
+
+#: searx/templates/simple/preferences.html:89
+msgid "Supports selected language"
+msgstr "Toetab valitud keelt"
+
+#: searx/templates/simple/preferences.html:118
+msgid "User interface"
+msgstr "Kasutajaliides"
+
+#: searx/templates/simple/preferences.html:154
+msgid "Privacy"
+msgstr "Privaatsus"
diff --git a/searx/translations/eu/LC_MESSAGES/messages.mo b/searx/translations/eu/LC_MESSAGES/messages.mo
index db58fdc84..0c66d026c 100644
--- a/searx/translations/eu/LC_MESSAGES/messages.mo
+++ b/searx/translations/eu/LC_MESSAGES/messages.mo
Binary files differ
diff --git a/searx/translations/eu/LC_MESSAGES/messages.po b/searx/translations/eu/LC_MESSAGES/messages.po
index b6fa194e1..c47634dfd 100644
--- a/searx/translations/eu/LC_MESSAGES/messages.po
+++ b/searx/translations/eu/LC_MESSAGES/messages.po
@@ -3,16 +3,16 @@
# This file is distributed under the same license as the PROJECT project.
#
# Translators:
-# beriain <beriain@bitmessage.ch>, 2018
-# beriain <beriain@bitmessage.ch>, 2018
+# beriain, 2018
+# beriain, 2018-2019
# Txopi <txopi@ikusimakusi.eus>, 2016
msgid ""
msgstr ""
"Project-Id-Version: searx\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
-"POT-Creation-Date: 2017-11-01 21:31+0100\n"
-"PO-Revision-Date: 2018-11-06 16:39+0000\n"
-"Last-Translator: beriain <beriain@bitmessage.ch>\n"
+"POT-Creation-Date: 2017-10-07 19:18+0200\n"
+"PO-Revision-Date: 2019-02-26 15:18+0000\n"
+"Last-Translator: beriain\n"
"Language-Team: Basque (http://www.transifex.com/asciimoo/searx/language/eu/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
@@ -33,63 +33,63 @@ msgstr "salbuespena eskaeran"
msgid "unexpected crash"
msgstr "ustekabeko gelditzea"
-#: searx/webapp.py:136
+#: searx/webapp.py:135
msgid "files"
msgstr "fitxategiak"
-#: searx/webapp.py:137
+#: searx/webapp.py:136
msgid "general"
msgstr "orokorra"
-#: searx/webapp.py:138
+#: searx/webapp.py:137
msgid "music"
msgstr "musika"
-#: searx/webapp.py:139
+#: searx/webapp.py:138
msgid "social media"
-msgstr "multimedia soziala"
+msgstr "media soziala"
-#: searx/webapp.py:140
+#: searx/webapp.py:139
msgid "images"
msgstr "irudiak"
-#: searx/webapp.py:141
+#: searx/webapp.py:140
msgid "videos"
msgstr "bideoak"
-#: searx/webapp.py:142
+#: searx/webapp.py:141
msgid "it"
-msgstr "it"
+msgstr "informatika"
-#: searx/webapp.py:143
+#: searx/webapp.py:142
msgid "news"
msgstr "berriak"
-#: searx/webapp.py:144
+#: searx/webapp.py:143
msgid "map"
msgstr "mapa"
-#: searx/webapp.py:145
+#: searx/webapp.py:144
msgid "science"
msgstr "zientzia"
-#: searx/webapp.py:399 searx/webapp.py:658
+#: searx/webapp.py:398 searx/webapp.py:653
msgid "Invalid settings, please edit your preferences"
msgstr "Ezarpen ez baliodunak, mesedez editatu zure hobespenak"
-#: searx/webapp.py:415
+#: searx/webapp.py:410
msgid "Invalid settings"
msgstr "Ezarpen ez baliodunak"
-#: searx/webapp.py:449 searx/webapp.py:493
+#: searx/webapp.py:444 searx/webapp.py:488
msgid "search error"
msgstr "bilaketa akatsa"
-#: searx/webapp.py:530
+#: searx/webapp.py:525
msgid "{minutes} minute(s) ago"
msgstr "duela {minutes} minutu"
-#: searx/webapp.py:532
+#: searx/webapp.py:527
msgid "{hours} hour(s), {minutes} minute(s) ago"
msgstr "duela {hours} ordu eta {minutes} minutu"
@@ -109,29 +109,28 @@ msgstr "Funtzio estatistikoak"
msgid "Compute {functions} of the arguments"
msgstr "Parametroen {functions} zenbatu"
-#: searx/engines/__init__.py:194 searx/engines/flycheck___init__.py:201
+#: searx/engines/__init__.py:194
msgid "Engine time (sec)"
msgstr "Bilatzailearen denbora (seg)"
-#: searx/engines/__init__.py:198 searx/engines/flycheck___init__.py:205
+#: searx/engines/__init__.py:198
msgid "Page loads (sec)"
msgstr "Orri kargak (seg)"
-#: searx/engines/__init__.py:202 searx/engines/flycheck___init__.py:209
-#: searx/templates/oscar/results.html:95
+#: searx/engines/__init__.py:202 searx/templates/oscar/results.html:95
#: searx/templates/simple/results.html:20
msgid "Number of results"
msgstr "Emaitza kopurua"
-#: searx/engines/__init__.py:206 searx/engines/flycheck___init__.py:213
+#: searx/engines/__init__.py:206
msgid "Scores"
msgstr "Balorazioak"
-#: searx/engines/__init__.py:210 searx/engines/flycheck___init__.py:217
+#: searx/engines/__init__.py:210
msgid "Scores per result"
msgstr "Balorazioak emaitza bakoitzeko"
-#: searx/engines/__init__.py:214 searx/engines/flycheck___init__.py:221
+#: searx/engines/__init__.py:214
msgid "Errors"
msgstr "Erroreak"
@@ -143,9 +142,15 @@ msgstr "{title}&nbsp;(ZAHARKITUA)"
msgid "This entry has been superseded by"
msgstr "Sarrera hau hurrengoarekin ordezkatu da"
-#: searx/engines/pubmed.py:74
-msgid "No abstract is available for this publication."
-msgstr "Ez dago abstrakturik eskuragarri argitalpen honetarako."
+#: searx/plugins/doai_rewrite.py:7
+msgid "DOAI rewrite"
+msgstr "DOAI berridazketa"
+
+#: searx/plugins/doai_rewrite.py:8
+msgid ""
+"Avoid paywalls by redirecting to open-access versions of publications when "
+"available"
+msgstr "Ordainketa hormak sahiestu argitalpenen sartze-askeko bertsioetara berbidaliz ahal denean"
#: searx/plugins/https_rewrite.py:32
msgid "Rewrite HTTP links to HTTPS if possible"
@@ -159,16 +164,6 @@ msgstr "Korritze amaigabea"
msgid "Automatically load next page when scrolling to bottom of current page"
msgstr "Hurrengo orria automatikoki kargatu uneko orriaren behekaldera mugitzerakoan"
-#: searx/plugins/oa_doi_rewrite.py:9
-msgid "Open Access DOI rewrite"
-msgstr "Berridatzi Open Access DOI"
-
-#: searx/plugins/oa_doi_rewrite.py:10
-msgid ""
-"Avoid paywalls by redirecting to open-access versions of publications when "
-"available"
-msgstr "Ordainketa hormak sahiestu argitalpenen sartze-askeko bertsioetara berbidaliz ahal denean"
-
#: searx/plugins/open_results_on_new_tab.py:18
#: searx/templates/oscar/preferences.html:114
#: searx/templates/simple/preferences.html:149
@@ -331,8 +326,8 @@ msgstr "Metodoa"
#: searx/templates/courgette/preferences.html:63
#: searx/templates/legacy/preferences.html:64
#: searx/templates/oscar/preferences.html:86
-#: searx/templates/oscar/preferences.html:165
-#: searx/templates/oscar/preferences.html:173
+#: searx/templates/oscar/preferences.html:153
+#: searx/templates/oscar/preferences.html:161
#: searx/templates/simple/preferences.html:63
#: searx/templates/simple/preferences.html:90
msgid "SafeSearch"
@@ -404,8 +399,8 @@ msgstr "Erabiliak izaten ari diren bilatzaileak"
#: searx/templates/courgette/preferences.html:100
#: searx/templates/legacy/preferences.html:97
-#: searx/templates/oscar/preferences.html:162
-#: searx/templates/oscar/preferences.html:176
+#: searx/templates/oscar/preferences.html:150
+#: searx/templates/oscar/preferences.html:164
#: searx/templates/pix-art/preferences.html:53
#: searx/templates/simple/preferences.html:87
msgid "Engine name"
@@ -420,8 +415,8 @@ msgstr "Kategoria"
#: searx/templates/courgette/preferences.html:113
#: searx/templates/legacy/preferences.html:99
#: searx/templates/legacy/preferences.html:110
-#: searx/templates/oscar/preferences.html:161
-#: searx/templates/oscar/preferences.html:177
+#: searx/templates/oscar/preferences.html:149
+#: searx/templates/oscar/preferences.html:165
#: searx/templates/pix-art/preferences.html:54
#: searx/templates/pix-art/preferences.html:64
#: searx/templates/simple/preferences.html:86
@@ -439,17 +434,17 @@ msgstr "Blokeatu"
#: searx/templates/courgette/preferences.html:122
#: searx/templates/legacy/preferences.html:119
-#: searx/templates/oscar/preferences.html:297
+#: searx/templates/oscar/preferences.html:285
#: searx/templates/pix-art/preferences.html:73
#: searx/templates/simple/preferences.html:180
msgid ""
"These settings are stored in your cookies, this allows us not to store this "
"data about you."
-msgstr "Ezarpen hauek zure cookietan gurdetzen dira, honek zuri buruzko informaziorik ez gordetzea baimentzen digu."
+msgstr "Ezarpen hauek zure cookietan gordetzen dira, honek zuri buruzko informaziorik ez gordetzea baimentzen digu."
#: searx/templates/courgette/preferences.html:124
#: searx/templates/legacy/preferences.html:121
-#: searx/templates/oscar/preferences.html:299
+#: searx/templates/oscar/preferences.html:287
#: searx/templates/pix-art/preferences.html:75
#: searx/templates/simple/preferences.html:182
msgid ""
@@ -459,7 +454,7 @@ msgstr "Cookie hauek zure onurarako besterik ez dira, ez ditugu zure jarraipenik
#: searx/templates/courgette/preferences.html:127
#: searx/templates/legacy/preferences.html:124
-#: searx/templates/oscar/preferences.html:305
+#: searx/templates/oscar/preferences.html:293
#: searx/templates/pix-art/preferences.html:78
#: searx/templates/simple/preferences.html:185
msgid "save"
@@ -467,14 +462,14 @@ msgstr "gorde"
#: searx/templates/courgette/preferences.html:128
#: searx/templates/legacy/preferences.html:125
-#: searx/templates/oscar/preferences.html:307
+#: searx/templates/oscar/preferences.html:295
#: searx/templates/simple/preferences.html:186
msgid "Reset defaults"
msgstr "Berrezarri lehenetsiak"
#: searx/templates/courgette/preferences.html:129
#: searx/templates/legacy/preferences.html:126
-#: searx/templates/oscar/preferences.html:306
+#: searx/templates/oscar/preferences.html:294
#: searx/templates/pix-art/preferences.html:79
#: searx/templates/simple/preferences.html:187
msgid "back"
@@ -645,23 +640,23 @@ msgid "General"
msgstr "Orokorra"
#: searx/templates/oscar/preferences.html:14
-#: searx/templates/oscar/preferences.html:146
+#: searx/templates/oscar/preferences.html:134
#: searx/templates/simple/preferences.html:76
msgid "Engines"
msgstr "Bilatzaileak"
#: searx/templates/oscar/preferences.html:15
-#: searx/templates/oscar/preferences.html:219
+#: searx/templates/oscar/preferences.html:207
msgid "Plugins"
msgstr "Pluginak"
#: searx/templates/oscar/preferences.html:16
-#: searx/templates/oscar/preferences.html:245
+#: searx/templates/oscar/preferences.html:233
msgid "Answerers"
msgstr "Erantzun emaileak"
#: searx/templates/oscar/preferences.html:17
-#: searx/templates/oscar/preferences.html:272
+#: searx/templates/oscar/preferences.html:260
msgid "Cookies"
msgstr "Cookieak"
@@ -683,7 +678,7 @@ msgstr "Gauzak aurkitu idatzi bitartean"
#: searx/templates/oscar/preferences.html:69
#: searx/templates/simple/preferences.html:173
msgid "Proxying image results through searx"
-msgstr "Irudien emaitzak searx bitartez proxyatu"
+msgstr "Irudien emaitzak searx proxyaren bidez pasatu"
#: searx/templates/oscar/preferences.html:78
msgid ""
@@ -712,88 +707,78 @@ msgstr "Gai honetarako estiloa hautatu"
msgid "Style"
msgstr "Estiloa"
-#: searx/templates/oscar/preferences.html:122
-msgid "Open Access DOI resolver"
-msgstr "Open Access DOI ebatzi"
-
-#: searx/templates/oscar/preferences.html:123
-msgid ""
-"Redirect to open-access versions of publications when available (plugin "
-"required)"
-msgstr "Argitalpenen sartze-askeko bertsioetara berbidali ahal denean (plugina behar du)"
-
+#: searx/templates/oscar/preferences.html:151
#: searx/templates/oscar/preferences.html:163
-#: searx/templates/oscar/preferences.html:175
#: searx/templates/simple/preferences.html:88
msgid "Shortcut"
msgstr "Lasterbidea"
-#: searx/templates/oscar/preferences.html:164
-#: searx/templates/oscar/preferences.html:174
+#: searx/templates/oscar/preferences.html:152
+#: searx/templates/oscar/preferences.html:162
msgid "Selected language"
msgstr "Hautatutako hizkuntza"
-#: searx/templates/oscar/preferences.html:166
-#: searx/templates/oscar/preferences.html:172
+#: searx/templates/oscar/preferences.html:154
+#: searx/templates/oscar/preferences.html:160
#: searx/templates/simple/preferences.html:91
msgid "Time range"
msgstr "Denbora tartea"
-#: searx/templates/oscar/preferences.html:167
-#: searx/templates/oscar/preferences.html:171
+#: searx/templates/oscar/preferences.html:155
+#: searx/templates/oscar/preferences.html:159
#: searx/templates/simple/preferences.html:92
msgid "Avg. time"
msgstr " Batezbesteko denbora"
-#: searx/templates/oscar/preferences.html:168
-#: searx/templates/oscar/preferences.html:170
+#: searx/templates/oscar/preferences.html:156
+#: searx/templates/oscar/preferences.html:158
#: searx/templates/simple/preferences.html:93
msgid "Max time"
msgstr "Gehienezko denbora"
-#: searx/templates/oscar/preferences.html:248
+#: searx/templates/oscar/preferences.html:236
msgid "This is the list of searx's instant answering modules."
msgstr "Hau da searxen berehalako erantzunen moduluen zerrenda."
-#: searx/templates/oscar/preferences.html:252
+#: searx/templates/oscar/preferences.html:240
msgid "Name"
msgstr "Izena"
-#: searx/templates/oscar/preferences.html:253
+#: searx/templates/oscar/preferences.html:241
msgid "Keywords"
msgstr "Gako-hitzak"
-#: searx/templates/oscar/preferences.html:254
+#: searx/templates/oscar/preferences.html:242
msgid "Description"
msgstr "Deskripzioa"
-#: searx/templates/oscar/preferences.html:255
+#: searx/templates/oscar/preferences.html:243
msgid "Examples"
msgstr "Adibideak"
-#: searx/templates/oscar/preferences.html:275
+#: searx/templates/oscar/preferences.html:263
msgid ""
"This is the list of cookies and their values searx is storing on your "
"computer."
msgstr "Hau searxek zure ordenagailuan gordetzen ari den cookien eta haien balioen zerrenda bat da."
-#: searx/templates/oscar/preferences.html:276
+#: searx/templates/oscar/preferences.html:264
msgid "With that list, you can assess searx transparency."
msgstr "Zerrenda horrekin, searxen gardentasuna balioztatu dezakezu."
-#: searx/templates/oscar/preferences.html:281
+#: searx/templates/oscar/preferences.html:269
msgid "Cookie name"
msgstr "Cookiearen izena"
-#: searx/templates/oscar/preferences.html:282
+#: searx/templates/oscar/preferences.html:270
msgid "Value"
msgstr "Balioa"
-#: searx/templates/oscar/preferences.html:301
+#: searx/templates/oscar/preferences.html:289
msgid "Search URL of the currently saved preferences"
msgstr "Une honetan gordetako hobespenen bilaketa URLa"
-#: searx/templates/oscar/preferences.html:301
+#: searx/templates/oscar/preferences.html:289
msgid ""
"Note: specifying custom settings in the search URL can reduce privacy by "
"leaking data to the clicked result sites."
diff --git a/searx/translations/fa_IR/LC_MESSAGES/messages.mo b/searx/translations/fa_IR/LC_MESSAGES/messages.mo
index 4ef71416b..a2f503386 100644
--- a/searx/translations/fa_IR/LC_MESSAGES/messages.mo
+++ b/searx/translations/fa_IR/LC_MESSAGES/messages.mo
Binary files differ
diff --git a/searx/translations/fa_IR/LC_MESSAGES/messages.po b/searx/translations/fa_IR/LC_MESSAGES/messages.po
index 0e568e1db..6689dafe7 100644
--- a/searx/translations/fa_IR/LC_MESSAGES/messages.po
+++ b/searx/translations/fa_IR/LC_MESSAGES/messages.po
@@ -4,15 +4,17 @@
#
# Translators:
# Aurora, 2018
+# Aurora, 2018
+# Jim <inactive+Jim11@transifex.com>, 2017
# Jim <inactive+Jim11@transifex.com>, 2017
-# Mostafa Ahangarha <ahangarha@gmail.com>, 2018
+# Mostafa Ahangarha <ahangarha@riseup.net>, 2018
msgid ""
msgstr ""
"Project-Id-Version: searx\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
-"POT-Creation-Date: 2017-11-01 21:31+0100\n"
-"PO-Revision-Date: 2018-04-16 16:41+0000\n"
-"Last-Translator: Aurora\n"
+"POT-Creation-Date: 2017-10-07 19:18+0200\n"
+"PO-Revision-Date: 2019-02-23 17:39+0000\n"
+"Last-Translator: Noémi Ványi <sitbackandwait@gmail.com>\n"
"Language-Team: Persian (Iran) (http://www.transifex.com/asciimoo/searx/language/fa_IR/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
@@ -33,63 +35,63 @@ msgstr "خطا در درخواست"
msgid "unexpected crash"
msgstr "ایست ناگهانی"
-#: searx/webapp.py:136
+#: searx/webapp.py:135
msgid "files"
msgstr "فایل ها<br>"
-#: searx/webapp.py:137
+#: searx/webapp.py:136
msgid "general"
msgstr "فراگیر"
-#: searx/webapp.py:138
+#: searx/webapp.py:137
msgid "music"
msgstr "موسیقی"
-#: searx/webapp.py:139
+#: searx/webapp.py:138
msgid "social media"
msgstr "رسانه اجتماعی"
-#: searx/webapp.py:140
+#: searx/webapp.py:139
msgid "images"
msgstr "تصاویر<br>"
-#: searx/webapp.py:141
+#: searx/webapp.py:140
msgid "videos"
msgstr "ویدیو ها<br>"
-#: searx/webapp.py:142
+#: searx/webapp.py:141
msgid "it"
msgstr "فناوری اطلاعات"
-#: searx/webapp.py:143
+#: searx/webapp.py:142
msgid "news"
msgstr "اخبار"
-#: searx/webapp.py:144
+#: searx/webapp.py:143
msgid "map"
msgstr "نقشه"
-#: searx/webapp.py:145
+#: searx/webapp.py:144
msgid "science"
msgstr "دانش<br>"
-#: searx/webapp.py:399 searx/webapp.py:658
+#: searx/webapp.py:398 searx/webapp.py:653
msgid "Invalid settings, please edit your preferences"
msgstr "تنظیمات نادرست است، لطفا اولویت‌های جستجو را تغییر دهید"
-#: searx/webapp.py:415
+#: searx/webapp.py:410
msgid "Invalid settings"
msgstr "تنظیمات اشتباه"
-#: searx/webapp.py:449 searx/webapp.py:493
+#: searx/webapp.py:444 searx/webapp.py:488
msgid "search error"
msgstr "خطای جستجو"
-#: searx/webapp.py:530
+#: searx/webapp.py:525
msgid "{minutes} minute(s) ago"
msgstr "{minutes} دقیقه پیش"
-#: searx/webapp.py:532
+#: searx/webapp.py:527
msgid "{hours} hour(s), {minutes} minute(s) ago"
msgstr "{hours} ساعت و {minutes} دقیقه پیش"
@@ -109,29 +111,28 @@ msgstr "توابع آماری"
msgid "Compute {functions} of the arguments"
msgstr "پردازش {عملکرد های} نشانوند ها<br>"
-#: searx/engines/__init__.py:194 searx/engines/flycheck___init__.py:201
+#: searx/engines/__init__.py:194
msgid "Engine time (sec)"
msgstr "زمان موتور(ثانیه)<br>"
-#: searx/engines/__init__.py:198 searx/engines/flycheck___init__.py:205
+#: searx/engines/__init__.py:198
msgid "Page loads (sec)"
msgstr "زمان بارگذاری صفحه (ثانیه)"
-#: searx/engines/__init__.py:202 searx/engines/flycheck___init__.py:209
-#: searx/templates/oscar/results.html:95
+#: searx/engines/__init__.py:202 searx/templates/oscar/results.html:95
#: searx/templates/simple/results.html:20
msgid "Number of results"
msgstr "تعداد نتایج"
-#: searx/engines/__init__.py:206 searx/engines/flycheck___init__.py:213
+#: searx/engines/__init__.py:206
msgid "Scores"
msgstr "امتیازات<br>"
-#: searx/engines/__init__.py:210 searx/engines/flycheck___init__.py:217
+#: searx/engines/__init__.py:210
msgid "Scores per result"
msgstr "امتیازات بر نتیجه<br>"
-#: searx/engines/__init__.py:214 searx/engines/flycheck___init__.py:221
+#: searx/engines/__init__.py:214
msgid "Errors"
msgstr "خطاها"
@@ -143,9 +144,15 @@ msgstr "{title}&nbsp;(OBSOLETE)"
msgid "This entry has been superseded by"
msgstr "این ورودی معلق شده است توسط"
-#: searx/engines/pubmed.py:74
-msgid "No abstract is available for this publication."
-msgstr "هیچ چکید ای برای این نشریه در دسترس نیست.<br>"
+#: searx/plugins/doai_rewrite.py:7
+msgid "DOAI rewrite"
+msgstr ""
+
+#: searx/plugins/doai_rewrite.py:8
+msgid ""
+"Avoid paywalls by redirecting to open-access versions of publications when "
+"available"
+msgstr "امتناع از منابع غیر رایگان با تغییر مسیر به نسخه ی رایگان نشریات اگر در دسترس باشد<br>"
#: searx/plugins/https_rewrite.py:32
msgid "Rewrite HTTP links to HTTPS if possible"
@@ -159,16 +166,6 @@ msgstr "پایین رفتن بی‌پایان"
msgid "Automatically load next page when scrolling to bottom of current page"
msgstr "بارگذاری خودکار صفحه بعد در صورت پیمایش تا پایین صفحه کنونی"
-#: searx/plugins/oa_doi_rewrite.py:9
-msgid "Open Access DOI rewrite"
-msgstr "بازنویسی Open Access DOI<br>"
-
-#: searx/plugins/oa_doi_rewrite.py:10
-msgid ""
-"Avoid paywalls by redirecting to open-access versions of publications when "
-"available"
-msgstr "امتناع از منابع غیر رایگان با تغییر مسیر به نسخه ی رایگان نشریات اگر در دسترس باشد<br>"
-
#: searx/plugins/open_results_on_new_tab.py:18
#: searx/templates/oscar/preferences.html:114
#: searx/templates/simple/preferences.html:149
@@ -331,8 +328,8 @@ msgstr "روش<br>"
#: searx/templates/courgette/preferences.html:63
#: searx/templates/legacy/preferences.html:64
#: searx/templates/oscar/preferences.html:86
-#: searx/templates/oscar/preferences.html:165
-#: searx/templates/oscar/preferences.html:173
+#: searx/templates/oscar/preferences.html:153
+#: searx/templates/oscar/preferences.html:161
#: searx/templates/simple/preferences.html:63
#: searx/templates/simple/preferences.html:90
msgid "SafeSearch"
@@ -404,8 +401,8 @@ msgstr "موتورهای جستجوی در حال استفاده"
#: searx/templates/courgette/preferences.html:100
#: searx/templates/legacy/preferences.html:97
-#: searx/templates/oscar/preferences.html:162
-#: searx/templates/oscar/preferences.html:176
+#: searx/templates/oscar/preferences.html:150
+#: searx/templates/oscar/preferences.html:164
#: searx/templates/pix-art/preferences.html:53
#: searx/templates/simple/preferences.html:87
msgid "Engine name"
@@ -420,8 +417,8 @@ msgstr "دسته"
#: searx/templates/courgette/preferences.html:113
#: searx/templates/legacy/preferences.html:99
#: searx/templates/legacy/preferences.html:110
-#: searx/templates/oscar/preferences.html:161
-#: searx/templates/oscar/preferences.html:177
+#: searx/templates/oscar/preferences.html:149
+#: searx/templates/oscar/preferences.html:165
#: searx/templates/pix-art/preferences.html:54
#: searx/templates/pix-art/preferences.html:64
#: searx/templates/simple/preferences.html:86
@@ -439,7 +436,7 @@ msgstr "انسداد<br>"
#: searx/templates/courgette/preferences.html:122
#: searx/templates/legacy/preferences.html:119
-#: searx/templates/oscar/preferences.html:297
+#: searx/templates/oscar/preferences.html:285
#: searx/templates/pix-art/preferences.html:73
#: searx/templates/simple/preferences.html:180
msgid ""
@@ -449,7 +446,7 @@ msgstr "این تنظیمات در کوکی های شما ذخیره شده ان
#: searx/templates/courgette/preferences.html:124
#: searx/templates/legacy/preferences.html:121
-#: searx/templates/oscar/preferences.html:299
+#: searx/templates/oscar/preferences.html:287
#: searx/templates/pix-art/preferences.html:75
#: searx/templates/simple/preferences.html:182
msgid ""
@@ -459,7 +456,7 @@ msgstr "این کوکی ها برای راحتی شماست، ما از این
#: searx/templates/courgette/preferences.html:127
#: searx/templates/legacy/preferences.html:124
-#: searx/templates/oscar/preferences.html:305
+#: searx/templates/oscar/preferences.html:293
#: searx/templates/pix-art/preferences.html:78
#: searx/templates/simple/preferences.html:185
msgid "save"
@@ -467,14 +464,14 @@ msgstr "ذخیره"
#: searx/templates/courgette/preferences.html:128
#: searx/templates/legacy/preferences.html:125
-#: searx/templates/oscar/preferences.html:307
+#: searx/templates/oscar/preferences.html:295
#: searx/templates/simple/preferences.html:186
msgid "Reset defaults"
msgstr "بازنشانی پیشفرض ها<br>"
#: searx/templates/courgette/preferences.html:129
#: searx/templates/legacy/preferences.html:126
-#: searx/templates/oscar/preferences.html:306
+#: searx/templates/oscar/preferences.html:294
#: searx/templates/pix-art/preferences.html:79
#: searx/templates/simple/preferences.html:187
msgid "back"
@@ -645,23 +642,23 @@ msgid "General"
msgstr "کلی<br>"
#: searx/templates/oscar/preferences.html:14
-#: searx/templates/oscar/preferences.html:146
+#: searx/templates/oscar/preferences.html:134
#: searx/templates/simple/preferences.html:76
msgid "Engines"
msgstr "موتور ها<br>"
#: searx/templates/oscar/preferences.html:15
-#: searx/templates/oscar/preferences.html:219
+#: searx/templates/oscar/preferences.html:207
msgid "Plugins"
msgstr "افزونه ها"
#: searx/templates/oscar/preferences.html:16
-#: searx/templates/oscar/preferences.html:245
+#: searx/templates/oscar/preferences.html:233
msgid "Answerers"
msgstr "پاسخگو ها<br>"
#: searx/templates/oscar/preferences.html:17
-#: searx/templates/oscar/preferences.html:272
+#: searx/templates/oscar/preferences.html:260
msgid "Cookies"
msgstr "کوکی ها<br>"
@@ -712,88 +709,78 @@ msgstr "سبک این پوسته را انتخاب کنید"
msgid "Style"
msgstr "سبک"
-#: searx/templates/oscar/preferences.html:122
-msgid "Open Access DOI resolver"
-msgstr "حل کننده ی Open Access DOI<br>"
-
-#: searx/templates/oscar/preferences.html:123
-msgid ""
-"Redirect to open-access versions of publications when available (plugin "
-"required)"
-msgstr "هدایت به نسخه رایگان نشریات اگر در دسترس باشد(نیازمند به افزونه)<br>"
-
+#: searx/templates/oscar/preferences.html:151
#: searx/templates/oscar/preferences.html:163
-#: searx/templates/oscar/preferences.html:175
#: searx/templates/simple/preferences.html:88
msgid "Shortcut"
msgstr "میانبر<br>"
-#: searx/templates/oscar/preferences.html:164
-#: searx/templates/oscar/preferences.html:174
+#: searx/templates/oscar/preferences.html:152
+#: searx/templates/oscar/preferences.html:162
msgid "Selected language"
msgstr "زبان انتخابی<br>"
-#: searx/templates/oscar/preferences.html:166
-#: searx/templates/oscar/preferences.html:172
+#: searx/templates/oscar/preferences.html:154
+#: searx/templates/oscar/preferences.html:160
#: searx/templates/simple/preferences.html:91
msgid "Time range"
msgstr "بازه ی زمانی<br>"
-#: searx/templates/oscar/preferences.html:167
-#: searx/templates/oscar/preferences.html:171
+#: searx/templates/oscar/preferences.html:155
+#: searx/templates/oscar/preferences.html:159
#: searx/templates/simple/preferences.html:92
msgid "Avg. time"
msgstr "زمان میانگین"
-#: searx/templates/oscar/preferences.html:168
-#: searx/templates/oscar/preferences.html:170
+#: searx/templates/oscar/preferences.html:156
+#: searx/templates/oscar/preferences.html:158
#: searx/templates/simple/preferences.html:93
msgid "Max time"
msgstr "حداکثر زمان"
-#: searx/templates/oscar/preferences.html:248
+#: searx/templates/oscar/preferences.html:236
msgid "This is the list of searx's instant answering modules."
msgstr "این، فهرست ماژول‌های پاسخ بلادرنگ searx است."
-#: searx/templates/oscar/preferences.html:252
+#: searx/templates/oscar/preferences.html:240
msgid "Name"
msgstr "نام"
-#: searx/templates/oscar/preferences.html:253
+#: searx/templates/oscar/preferences.html:241
msgid "Keywords"
msgstr "کلیدواژه ها<br>"
-#: searx/templates/oscar/preferences.html:254
+#: searx/templates/oscar/preferences.html:242
msgid "Description"
msgstr "شرح<br>"
-#: searx/templates/oscar/preferences.html:255
+#: searx/templates/oscar/preferences.html:243
msgid "Examples"
msgstr "مثال ها<br>"
-#: searx/templates/oscar/preferences.html:275
+#: searx/templates/oscar/preferences.html:263
msgid ""
"This is the list of cookies and their values searx is storing on your "
"computer."
msgstr "این، لیست کوکی‌ها و مقادیری است که searx روی دستگاه شما ذخیره می‌کند."
-#: searx/templates/oscar/preferences.html:276
+#: searx/templates/oscar/preferences.html:264
msgid "With that list, you can assess searx transparency."
msgstr "با آن لیست، می‌توانید شفافیت searx را ارزیابی کنید."
-#: searx/templates/oscar/preferences.html:281
+#: searx/templates/oscar/preferences.html:269
msgid "Cookie name"
msgstr "نام کوکی<br>"
-#: searx/templates/oscar/preferences.html:282
+#: searx/templates/oscar/preferences.html:270
msgid "Value"
msgstr "مقدار<br>"
-#: searx/templates/oscar/preferences.html:301
+#: searx/templates/oscar/preferences.html:289
msgid "Search URL of the currently saved preferences"
msgstr "آدرس جستجو بر اساس تنظیمات ذخیره شده<br>"
-#: searx/templates/oscar/preferences.html:301
+#: searx/templates/oscar/preferences.html:289
msgid ""
"Note: specifying custom settings in the search URL can reduce privacy by "
"leaking data to the clicked result sites."
diff --git a/searx/translations/fi/LC_MESSAGES/messages.mo b/searx/translations/fi/LC_MESSAGES/messages.mo
index b3905ca2f..90cd78d9e 100644
--- a/searx/translations/fi/LC_MESSAGES/messages.mo
+++ b/searx/translations/fi/LC_MESSAGES/messages.mo
Binary files differ
diff --git a/searx/translations/fi/LC_MESSAGES/messages.po b/searx/translations/fi/LC_MESSAGES/messages.po
index dbec358d4..57b3e4316 100644
--- a/searx/translations/fi/LC_MESSAGES/messages.po
+++ b/searx/translations/fi/LC_MESSAGES/messages.po
@@ -8,8 +8,8 @@ msgid ""
msgstr ""
"Project-Id-Version: searx\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
-"POT-Creation-Date: 2017-11-01 21:31+0100\n"
-"PO-Revision-Date: 2017-11-13 07:36+0000\n"
+"POT-Creation-Date: 2017-10-07 19:18+0200\n"
+"PO-Revision-Date: 2019-02-23 17:39+0000\n"
"Last-Translator: Jiri Grönroos <jiri.gronroos@iki.fi>\n"
"Language-Team: Finnish (http://www.transifex.com/asciimoo/searx/language/fi/)\n"
"MIME-Version: 1.0\n"
@@ -31,63 +31,63 @@ msgstr "pyyntöpoikkeus"
msgid "unexpected crash"
msgstr "odottamaton kaatuminen"
-#: searx/webapp.py:136
+#: searx/webapp.py:135
msgid "files"
msgstr "tiedostot"
-#: searx/webapp.py:137
+#: searx/webapp.py:136
msgid "general"
msgstr "yleiset"
-#: searx/webapp.py:138
+#: searx/webapp.py:137
msgid "music"
msgstr "musiikki"
-#: searx/webapp.py:139
+#: searx/webapp.py:138
msgid "social media"
msgstr "sosiaalinen media"
-#: searx/webapp.py:140
+#: searx/webapp.py:139
msgid "images"
msgstr "kuvat"
-#: searx/webapp.py:141
+#: searx/webapp.py:140
msgid "videos"
msgstr "videot"
-#: searx/webapp.py:142
+#: searx/webapp.py:141
msgid "it"
msgstr "it"
-#: searx/webapp.py:143
+#: searx/webapp.py:142
msgid "news"
msgstr "uutiset"
-#: searx/webapp.py:144
+#: searx/webapp.py:143
msgid "map"
msgstr "kartta"
-#: searx/webapp.py:145
+#: searx/webapp.py:144
msgid "science"
msgstr "tiede"
-#: searx/webapp.py:399 searx/webapp.py:658
+#: searx/webapp.py:398 searx/webapp.py:653
msgid "Invalid settings, please edit your preferences"
msgstr "Virheelliset asetukset, muokkaa siis asetuksia"
-#: searx/webapp.py:415
+#: searx/webapp.py:410
msgid "Invalid settings"
msgstr "Virheelliset asetukset"
-#: searx/webapp.py:449 searx/webapp.py:493
+#: searx/webapp.py:444 searx/webapp.py:488
msgid "search error"
msgstr "hakuvirhe"
-#: searx/webapp.py:530
+#: searx/webapp.py:525
msgid "{minutes} minute(s) ago"
msgstr "{minutes} min sitten"
-#: searx/webapp.py:532
+#: searx/webapp.py:527
msgid "{hours} hour(s), {minutes} minute(s) ago"
msgstr "{hours} t, {minutes} min sitten"
@@ -107,29 +107,28 @@ msgstr "Tilastolliset funktiot"
msgid "Compute {functions} of the arguments"
msgstr "Laske argumenttien {functions}"
-#: searx/engines/__init__.py:194 searx/engines/flycheck___init__.py:201
+#: searx/engines/__init__.py:194
msgid "Engine time (sec)"
msgstr "Hakukoneen aika (s)"
-#: searx/engines/__init__.py:198 searx/engines/flycheck___init__.py:205
+#: searx/engines/__init__.py:198
msgid "Page loads (sec)"
msgstr "Sivun lataus (s)"
-#: searx/engines/__init__.py:202 searx/engines/flycheck___init__.py:209
-#: searx/templates/oscar/results.html:95
+#: searx/engines/__init__.py:202 searx/templates/oscar/results.html:95
#: searx/templates/simple/results.html:20
msgid "Number of results"
msgstr "Tulosten määrä"
-#: searx/engines/__init__.py:206 searx/engines/flycheck___init__.py:213
+#: searx/engines/__init__.py:206
msgid "Scores"
msgstr "Pisteet"
-#: searx/engines/__init__.py:210 searx/engines/flycheck___init__.py:217
+#: searx/engines/__init__.py:210
msgid "Scores per result"
msgstr "Pisteet per tulos"
-#: searx/engines/__init__.py:214 searx/engines/flycheck___init__.py:221
+#: searx/engines/__init__.py:214
msgid "Errors"
msgstr "Virheet"
@@ -141,9 +140,15 @@ msgstr "{title}&nbsp;(VANHENTUNUT)"
msgid "This entry has been superseded by"
msgstr "Tämän kohdan on korvannut"
-#: searx/engines/pubmed.py:74
-msgid "No abstract is available for this publication."
-msgstr "Tästä julkaisusta ei ole yhteenvetoa."
+#: searx/plugins/doai_rewrite.py:7
+msgid "DOAI rewrite"
+msgstr "DOAI-uudelleenkirjoitus"
+
+#: searx/plugins/doai_rewrite.py:8
+msgid ""
+"Avoid paywalls by redirecting to open-access versions of publications when "
+"available"
+msgstr "Vältä maksumuureja ohjaamalla julkaisujen avoimiin versioihin jos mahdollista"
#: searx/plugins/https_rewrite.py:32
msgid "Rewrite HTTP links to HTTPS if possible"
@@ -157,16 +162,6 @@ msgstr "Loputon vieritys"
msgid "Automatically load next page when scrolling to bottom of current page"
msgstr "Lataa automaattisesti seuraava sivu, kun nykyisen sivun loppu saavutetaan"
-#: searx/plugins/oa_doi_rewrite.py:9
-msgid "Open Access DOI rewrite"
-msgstr "Open Access DOI -uudelleenkirjoitus"
-
-#: searx/plugins/oa_doi_rewrite.py:10
-msgid ""
-"Avoid paywalls by redirecting to open-access versions of publications when "
-"available"
-msgstr "Vältä maksumuureja ohjaamalla julkaisujen avoimiin versioihin jos mahdollista"
-
#: searx/plugins/open_results_on_new_tab.py:18
#: searx/templates/oscar/preferences.html:114
#: searx/templates/simple/preferences.html:149
@@ -329,8 +324,8 @@ msgstr "Tapa"
#: searx/templates/courgette/preferences.html:63
#: searx/templates/legacy/preferences.html:64
#: searx/templates/oscar/preferences.html:86
-#: searx/templates/oscar/preferences.html:165
-#: searx/templates/oscar/preferences.html:173
+#: searx/templates/oscar/preferences.html:153
+#: searx/templates/oscar/preferences.html:161
#: searx/templates/simple/preferences.html:63
#: searx/templates/simple/preferences.html:90
msgid "SafeSearch"
@@ -402,8 +397,8 @@ msgstr "Nyt käytetyt hakukoneet"
#: searx/templates/courgette/preferences.html:100
#: searx/templates/legacy/preferences.html:97
-#: searx/templates/oscar/preferences.html:162
-#: searx/templates/oscar/preferences.html:176
+#: searx/templates/oscar/preferences.html:150
+#: searx/templates/oscar/preferences.html:164
#: searx/templates/pix-art/preferences.html:53
#: searx/templates/simple/preferences.html:87
msgid "Engine name"
@@ -418,8 +413,8 @@ msgstr "Luokka"
#: searx/templates/courgette/preferences.html:113
#: searx/templates/legacy/preferences.html:99
#: searx/templates/legacy/preferences.html:110
-#: searx/templates/oscar/preferences.html:161
-#: searx/templates/oscar/preferences.html:177
+#: searx/templates/oscar/preferences.html:149
+#: searx/templates/oscar/preferences.html:165
#: searx/templates/pix-art/preferences.html:54
#: searx/templates/pix-art/preferences.html:64
#: searx/templates/simple/preferences.html:86
@@ -437,7 +432,7 @@ msgstr "Estä"
#: searx/templates/courgette/preferences.html:122
#: searx/templates/legacy/preferences.html:119
-#: searx/templates/oscar/preferences.html:297
+#: searx/templates/oscar/preferences.html:285
#: searx/templates/pix-art/preferences.html:73
#: searx/templates/simple/preferences.html:180
msgid ""
@@ -447,7 +442,7 @@ msgstr "Nämä asetukset tallennetaan evästeisiisi. Näin Searxin ei tarvitse t
#: searx/templates/courgette/preferences.html:124
#: searx/templates/legacy/preferences.html:121
-#: searx/templates/oscar/preferences.html:299
+#: searx/templates/oscar/preferences.html:287
#: searx/templates/pix-art/preferences.html:75
#: searx/templates/simple/preferences.html:182
msgid ""
@@ -457,7 +452,7 @@ msgstr "Kyseiset evästeet palvelevat ainoastaan sinua, eikä niitä käytetä s
#: searx/templates/courgette/preferences.html:127
#: searx/templates/legacy/preferences.html:124
-#: searx/templates/oscar/preferences.html:305
+#: searx/templates/oscar/preferences.html:293
#: searx/templates/pix-art/preferences.html:78
#: searx/templates/simple/preferences.html:185
msgid "save"
@@ -465,14 +460,14 @@ msgstr "Tallenna"
#: searx/templates/courgette/preferences.html:128
#: searx/templates/legacy/preferences.html:125
-#: searx/templates/oscar/preferences.html:307
+#: searx/templates/oscar/preferences.html:295
#: searx/templates/simple/preferences.html:186
msgid "Reset defaults"
msgstr "Palauta oletukset"
#: searx/templates/courgette/preferences.html:129
#: searx/templates/legacy/preferences.html:126
-#: searx/templates/oscar/preferences.html:306
+#: searx/templates/oscar/preferences.html:294
#: searx/templates/pix-art/preferences.html:79
#: searx/templates/simple/preferences.html:187
msgid "back"
@@ -643,23 +638,23 @@ msgid "General"
msgstr "Yleiset"
#: searx/templates/oscar/preferences.html:14
-#: searx/templates/oscar/preferences.html:146
+#: searx/templates/oscar/preferences.html:134
#: searx/templates/simple/preferences.html:76
msgid "Engines"
msgstr "Hakukoneet"
#: searx/templates/oscar/preferences.html:15
-#: searx/templates/oscar/preferences.html:219
+#: searx/templates/oscar/preferences.html:207
msgid "Plugins"
msgstr "Lisäosat"
#: searx/templates/oscar/preferences.html:16
-#: searx/templates/oscar/preferences.html:245
+#: searx/templates/oscar/preferences.html:233
msgid "Answerers"
msgstr "Vastaajat"
#: searx/templates/oscar/preferences.html:17
-#: searx/templates/oscar/preferences.html:272
+#: searx/templates/oscar/preferences.html:260
msgid "Cookies"
msgstr "Evästeet"
@@ -710,88 +705,78 @@ msgstr "Valitse tyyli tälle teemalle"
msgid "Style"
msgstr "Tyyli"
-#: searx/templates/oscar/preferences.html:122
-msgid "Open Access DOI resolver"
-msgstr "Open Access DOI -selvitin"
-
-#: searx/templates/oscar/preferences.html:123
-msgid ""
-"Redirect to open-access versions of publications when available (plugin "
-"required)"
-msgstr "Uudelleenohjaa julkaisujen open-access-versioihin kun mahdollista (vaatii liitännäisen)"
-
+#: searx/templates/oscar/preferences.html:151
#: searx/templates/oscar/preferences.html:163
-#: searx/templates/oscar/preferences.html:175
#: searx/templates/simple/preferences.html:88
msgid "Shortcut"
msgstr "Oikoreitti"
-#: searx/templates/oscar/preferences.html:164
-#: searx/templates/oscar/preferences.html:174
+#: searx/templates/oscar/preferences.html:152
+#: searx/templates/oscar/preferences.html:162
msgid "Selected language"
msgstr "Valittu kieli"
-#: searx/templates/oscar/preferences.html:166
-#: searx/templates/oscar/preferences.html:172
+#: searx/templates/oscar/preferences.html:154
+#: searx/templates/oscar/preferences.html:160
#: searx/templates/simple/preferences.html:91
msgid "Time range"
msgstr "Aikaväli"
-#: searx/templates/oscar/preferences.html:167
-#: searx/templates/oscar/preferences.html:171
+#: searx/templates/oscar/preferences.html:155
+#: searx/templates/oscar/preferences.html:159
#: searx/templates/simple/preferences.html:92
msgid "Avg. time"
msgstr "Keskimääräinen\naika"
-#: searx/templates/oscar/preferences.html:168
-#: searx/templates/oscar/preferences.html:170
+#: searx/templates/oscar/preferences.html:156
+#: searx/templates/oscar/preferences.html:158
#: searx/templates/simple/preferences.html:93
msgid "Max time"
msgstr "Enimmäisaika"
-#: searx/templates/oscar/preferences.html:248
+#: searx/templates/oscar/preferences.html:236
msgid "This is the list of searx's instant answering modules."
msgstr "Tämä on luettelo searxin vastaajamoduuleista."
-#: searx/templates/oscar/preferences.html:252
+#: searx/templates/oscar/preferences.html:240
msgid "Name"
msgstr "Nimi"
-#: searx/templates/oscar/preferences.html:253
+#: searx/templates/oscar/preferences.html:241
msgid "Keywords"
msgstr "Avainsanat"
-#: searx/templates/oscar/preferences.html:254
+#: searx/templates/oscar/preferences.html:242
msgid "Description"
msgstr "Kuvaus"
-#: searx/templates/oscar/preferences.html:255
+#: searx/templates/oscar/preferences.html:243
msgid "Examples"
msgstr "Esimerkit"
-#: searx/templates/oscar/preferences.html:275
+#: searx/templates/oscar/preferences.html:263
msgid ""
"This is the list of cookies and their values searx is storing on your "
"computer."
msgstr "Ohessa on lista evästeistä ja niiden arvoista, joita searx tallentaa tietokoneellesi."
-#: searx/templates/oscar/preferences.html:276
+#: searx/templates/oscar/preferences.html:264
msgid "With that list, you can assess searx transparency."
msgstr "Tämän luettelon avulla voit arvioida searxin läpinäkyvyyden."
-#: searx/templates/oscar/preferences.html:281
+#: searx/templates/oscar/preferences.html:269
msgid "Cookie name"
msgstr "Evästeen nimi"
-#: searx/templates/oscar/preferences.html:282
+#: searx/templates/oscar/preferences.html:270
msgid "Value"
msgstr "Arvo"
-#: searx/templates/oscar/preferences.html:301
+#: searx/templates/oscar/preferences.html:289
msgid "Search URL of the currently saved preferences"
msgstr "Nykyisten asetusten hakuosoite"
-#: searx/templates/oscar/preferences.html:301
+#: searx/templates/oscar/preferences.html:289
msgid ""
"Note: specifying custom settings in the search URL can reduce privacy by "
"leaking data to the clicked result sites."
diff --git a/searx/translations/fil/LC_MESSAGES/messages.mo b/searx/translations/fil/LC_MESSAGES/messages.mo
index f1b4e75c7..95851f77b 100644
--- a/searx/translations/fil/LC_MESSAGES/messages.mo
+++ b/searx/translations/fil/LC_MESSAGES/messages.mo
Binary files differ
diff --git a/searx/translations/fil/LC_MESSAGES/messages.po b/searx/translations/fil/LC_MESSAGES/messages.po
index 460061968..ca50d5827 100644
--- a/searx/translations/fil/LC_MESSAGES/messages.po
+++ b/searx/translations/fil/LC_MESSAGES/messages.po
@@ -9,9 +9,9 @@ msgid ""
msgstr ""
"Project-Id-Version: searx\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
-"POT-Creation-Date: 2017-11-01 21:31+0100\n"
-"PO-Revision-Date: 2018-02-18 04:45+0000\n"
-"Last-Translator: gr01d\n"
+"POT-Creation-Date: 2017-10-07 19:18+0200\n"
+"PO-Revision-Date: 2019-02-23 17:39+0000\n"
+"Last-Translator: Noémi Ványi <sitbackandwait@gmail.com>\n"
"Language-Team: Filipino (http://www.transifex.com/asciimoo/searx/language/fil/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
@@ -32,63 +32,63 @@ msgstr "request exception"
msgid "unexpected crash"
msgstr "hindi inaasahan na crash"
-#: searx/webapp.py:136
+#: searx/webapp.py:135
msgid "files"
msgstr "file"
-#: searx/webapp.py:137
+#: searx/webapp.py:136
msgid "general"
msgstr "pangkalahatan"
-#: searx/webapp.py:138
+#: searx/webapp.py:137
msgid "music"
msgstr "musika"
-#: searx/webapp.py:139
+#: searx/webapp.py:138
msgid "social media"
msgstr "social media"
-#: searx/webapp.py:140
+#: searx/webapp.py:139
msgid "images"
msgstr "larawan"
-#: searx/webapp.py:141
+#: searx/webapp.py:140
msgid "videos"
msgstr "bidyo"
-#: searx/webapp.py:142
+#: searx/webapp.py:141
msgid "it"
msgstr "it"
-#: searx/webapp.py:143
+#: searx/webapp.py:142
msgid "news"
msgstr "balita"
-#: searx/webapp.py:144
+#: searx/webapp.py:143
msgid "map"
msgstr "mapa"
-#: searx/webapp.py:145
+#: searx/webapp.py:144
msgid "science"
msgstr "agham"
-#: searx/webapp.py:399 searx/webapp.py:658
+#: searx/webapp.py:398 searx/webapp.py:653
msgid "Invalid settings, please edit your preferences"
msgstr "Maling settings, paki ayos ang preferences"
-#: searx/webapp.py:415
+#: searx/webapp.py:410
msgid "Invalid settings"
msgstr "Maling settings"
-#: searx/webapp.py:449 searx/webapp.py:493
+#: searx/webapp.py:444 searx/webapp.py:488
msgid "search error"
msgstr "nagkaproblema sa paghahanap"
-#: searx/webapp.py:530
+#: searx/webapp.py:525
msgid "{minutes} minute(s) ago"
msgstr "{minutes} na minuto ang nakalipas"
-#: searx/webapp.py:532
+#: searx/webapp.py:527
msgid "{hours} hour(s), {minutes} minute(s) ago"
msgstr "{hours} oras at {minutes} na minto ang nakalipas"
@@ -108,29 +108,28 @@ msgstr "Estatistika ng mga tungkulin"
msgid "Compute {functions} of the arguments"
msgstr "Tuusin ang {functions} ng pangangatuwiran"
-#: searx/engines/__init__.py:194 searx/engines/flycheck___init__.py:201
+#: searx/engines/__init__.py:194
msgid "Engine time (sec)"
msgstr "Oras ng engine (segundo)"
-#: searx/engines/__init__.py:198 searx/engines/flycheck___init__.py:205
+#: searx/engines/__init__.py:198
msgid "Page loads (sec)"
msgstr "Oras ng pagkarga ng pahina (segundo)"
-#: searx/engines/__init__.py:202 searx/engines/flycheck___init__.py:209
-#: searx/templates/oscar/results.html:95
+#: searx/engines/__init__.py:202 searx/templates/oscar/results.html:95
#: searx/templates/simple/results.html:20
msgid "Number of results"
msgstr "Bilang ng resulta"
-#: searx/engines/__init__.py:206 searx/engines/flycheck___init__.py:213
+#: searx/engines/__init__.py:206
msgid "Scores"
msgstr "Iskor"
-#: searx/engines/__init__.py:210 searx/engines/flycheck___init__.py:217
+#: searx/engines/__init__.py:210
msgid "Scores per result"
msgstr "Iskor ng bawat resulta"
-#: searx/engines/__init__.py:214 searx/engines/flycheck___init__.py:221
+#: searx/engines/__init__.py:214
msgid "Errors"
msgstr "Kamalian"
@@ -142,9 +141,15 @@ msgstr "{title}&nbsp;(LUMA)"
msgid "This entry has been superseded by"
msgstr "Ang tala na ito ay ipinagpaliban ng"
-#: searx/engines/pubmed.py:74
-msgid "No abstract is available for this publication."
-msgstr "Walang nakita na abstract para sa pahahayag na ito."
+#: searx/plugins/doai_rewrite.py:7
+msgid "DOAI rewrite"
+msgstr ""
+
+#: searx/plugins/doai_rewrite.py:8
+msgid ""
+"Avoid paywalls by redirecting to open-access versions of publications when "
+"available"
+msgstr "Iwasan ang paywall sa pag-redirect sa open-access na bersyon ng pahahayagan kapagmakukuha"
#: searx/plugins/https_rewrite.py:32
msgid "Rewrite HTTP links to HTTPS if possible"
@@ -158,16 +163,6 @@ msgstr "Walang hanggan na pag-scroll"
msgid "Automatically load next page when scrolling to bottom of current page"
msgstr "Awtomatiko na ikarga ang sumunod na pahina kapag nakarating na sa dulo ng kasalukuyang pahina"
-#: searx/plugins/oa_doi_rewrite.py:9
-msgid "Open Access DOI rewrite"
-msgstr "Open Access DOI rewrite"
-
-#: searx/plugins/oa_doi_rewrite.py:10
-msgid ""
-"Avoid paywalls by redirecting to open-access versions of publications when "
-"available"
-msgstr "Iwasan ang paywall sa pag-redirect sa open-access na bersyon ng pahahayagan kapagmakukuha"
-
#: searx/plugins/open_results_on_new_tab.py:18
#: searx/templates/oscar/preferences.html:114
#: searx/templates/simple/preferences.html:149
@@ -330,8 +325,8 @@ msgstr "Paraan"
#: searx/templates/courgette/preferences.html:63
#: searx/templates/legacy/preferences.html:64
#: searx/templates/oscar/preferences.html:86
-#: searx/templates/oscar/preferences.html:165
-#: searx/templates/oscar/preferences.html:173
+#: searx/templates/oscar/preferences.html:153
+#: searx/templates/oscar/preferences.html:161
#: searx/templates/simple/preferences.html:63
#: searx/templates/simple/preferences.html:90
msgid "SafeSearch"
@@ -403,8 +398,8 @@ msgstr "Ang ginagamit natin na search engines"
#: searx/templates/courgette/preferences.html:100
#: searx/templates/legacy/preferences.html:97
-#: searx/templates/oscar/preferences.html:162
-#: searx/templates/oscar/preferences.html:176
+#: searx/templates/oscar/preferences.html:150
+#: searx/templates/oscar/preferences.html:164
#: searx/templates/pix-art/preferences.html:53
#: searx/templates/simple/preferences.html:87
msgid "Engine name"
@@ -419,8 +414,8 @@ msgstr "Uri"
#: searx/templates/courgette/preferences.html:113
#: searx/templates/legacy/preferences.html:99
#: searx/templates/legacy/preferences.html:110
-#: searx/templates/oscar/preferences.html:161
-#: searx/templates/oscar/preferences.html:177
+#: searx/templates/oscar/preferences.html:149
+#: searx/templates/oscar/preferences.html:165
#: searx/templates/pix-art/preferences.html:54
#: searx/templates/pix-art/preferences.html:64
#: searx/templates/simple/preferences.html:86
@@ -438,7 +433,7 @@ msgstr "Harangan"
#: searx/templates/courgette/preferences.html:122
#: searx/templates/legacy/preferences.html:119
-#: searx/templates/oscar/preferences.html:297
+#: searx/templates/oscar/preferences.html:285
#: searx/templates/pix-art/preferences.html:73
#: searx/templates/simple/preferences.html:180
msgid ""
@@ -448,7 +443,7 @@ msgstr "Ang settings ay nakalagay sa cookies upang hindi kami makakuha ng datos
#: searx/templates/courgette/preferences.html:124
#: searx/templates/legacy/preferences.html:121
-#: searx/templates/oscar/preferences.html:299
+#: searx/templates/oscar/preferences.html:287
#: searx/templates/pix-art/preferences.html:75
#: searx/templates/simple/preferences.html:182
msgid ""
@@ -458,7 +453,7 @@ msgstr "Hindi namin ginagamit ang cookies para i-track ka, ito ay para maging ma
#: searx/templates/courgette/preferences.html:127
#: searx/templates/legacy/preferences.html:124
-#: searx/templates/oscar/preferences.html:305
+#: searx/templates/oscar/preferences.html:293
#: searx/templates/pix-art/preferences.html:78
#: searx/templates/simple/preferences.html:185
msgid "save"
@@ -466,14 +461,14 @@ msgstr "i-save"
#: searx/templates/courgette/preferences.html:128
#: searx/templates/legacy/preferences.html:125
-#: searx/templates/oscar/preferences.html:307
+#: searx/templates/oscar/preferences.html:295
#: searx/templates/simple/preferences.html:186
msgid "Reset defaults"
msgstr "I-reset ang defaults"
#: searx/templates/courgette/preferences.html:129
#: searx/templates/legacy/preferences.html:126
-#: searx/templates/oscar/preferences.html:306
+#: searx/templates/oscar/preferences.html:294
#: searx/templates/pix-art/preferences.html:79
#: searx/templates/simple/preferences.html:187
msgid "back"
@@ -644,23 +639,23 @@ msgid "General"
msgstr "Pangkalahatan"
#: searx/templates/oscar/preferences.html:14
-#: searx/templates/oscar/preferences.html:146
+#: searx/templates/oscar/preferences.html:134
#: searx/templates/simple/preferences.html:76
msgid "Engines"
msgstr "Engines"
#: searx/templates/oscar/preferences.html:15
-#: searx/templates/oscar/preferences.html:219
+#: searx/templates/oscar/preferences.html:207
msgid "Plugins"
msgstr "Plugins"
#: searx/templates/oscar/preferences.html:16
-#: searx/templates/oscar/preferences.html:245
+#: searx/templates/oscar/preferences.html:233
msgid "Answerers"
msgstr "Mga pangsagot"
#: searx/templates/oscar/preferences.html:17
-#: searx/templates/oscar/preferences.html:272
+#: searx/templates/oscar/preferences.html:260
msgid "Cookies"
msgstr "Cookies"
@@ -711,88 +706,78 @@ msgstr "Pumili ng estilo para sa tema na ito"
msgid "Style"
msgstr "Estilo"
-#: searx/templates/oscar/preferences.html:122
-msgid "Open Access DOI resolver"
-msgstr "Open Access DOI resolver"
-
-#: searx/templates/oscar/preferences.html:123
-msgid ""
-"Redirect to open-access versions of publications when available (plugin "
-"required)"
-msgstr "Redirect to open-access versions of publications when available (plugin required)"
-
+#: searx/templates/oscar/preferences.html:151
#: searx/templates/oscar/preferences.html:163
-#: searx/templates/oscar/preferences.html:175
#: searx/templates/simple/preferences.html:88
msgid "Shortcut"
msgstr "Shortcut"
-#: searx/templates/oscar/preferences.html:164
-#: searx/templates/oscar/preferences.html:174
+#: searx/templates/oscar/preferences.html:152
+#: searx/templates/oscar/preferences.html:162
msgid "Selected language"
msgstr "Piniling wika"
-#: searx/templates/oscar/preferences.html:166
-#: searx/templates/oscar/preferences.html:172
+#: searx/templates/oscar/preferences.html:154
+#: searx/templates/oscar/preferences.html:160
#: searx/templates/simple/preferences.html:91
msgid "Time range"
msgstr "Agwat ng oras"
-#: searx/templates/oscar/preferences.html:167
-#: searx/templates/oscar/preferences.html:171
+#: searx/templates/oscar/preferences.html:155
+#: searx/templates/oscar/preferences.html:159
#: searx/templates/simple/preferences.html:92
msgid "Avg. time"
msgstr "Gitnang oras"
-#: searx/templates/oscar/preferences.html:168
-#: searx/templates/oscar/preferences.html:170
+#: searx/templates/oscar/preferences.html:156
+#: searx/templates/oscar/preferences.html:158
#: searx/templates/simple/preferences.html:93
msgid "Max time"
msgstr "Ang max na oras"
-#: searx/templates/oscar/preferences.html:248
+#: searx/templates/oscar/preferences.html:236
msgid "This is the list of searx's instant answering modules."
msgstr "Ito ang listahan ng instant answering modules ni searx."
-#: searx/templates/oscar/preferences.html:252
+#: searx/templates/oscar/preferences.html:240
msgid "Name"
msgstr "Pangalan"
-#: searx/templates/oscar/preferences.html:253
+#: searx/templates/oscar/preferences.html:241
msgid "Keywords"
msgstr "Mga keyword"
-#: searx/templates/oscar/preferences.html:254
+#: searx/templates/oscar/preferences.html:242
msgid "Description"
msgstr "Paglalarawan"
-#: searx/templates/oscar/preferences.html:255
+#: searx/templates/oscar/preferences.html:243
msgid "Examples"
msgstr "Mga halimbawa"
-#: searx/templates/oscar/preferences.html:275
+#: searx/templates/oscar/preferences.html:263
msgid ""
"This is the list of cookies and their values searx is storing on your "
"computer."
msgstr "Ito ang listahan ng cookies at ang kanilang value na inilagay ni searx sa iyon kompyuter."
-#: searx/templates/oscar/preferences.html:276
+#: searx/templates/oscar/preferences.html:264
msgid "With that list, you can assess searx transparency."
msgstr "Dahil sa listahan na iyon, maaari mong makita ang pagiging transparent ni searx."
-#: searx/templates/oscar/preferences.html:281
+#: searx/templates/oscar/preferences.html:269
msgid "Cookie name"
msgstr "Pangalan ng cookie"
-#: searx/templates/oscar/preferences.html:282
+#: searx/templates/oscar/preferences.html:270
msgid "Value"
msgstr "Value"
-#: searx/templates/oscar/preferences.html:301
+#: searx/templates/oscar/preferences.html:289
msgid "Search URL of the currently saved preferences"
msgstr "Search URL ng kasalukuyan na naka-save sa preferences"
-#: searx/templates/oscar/preferences.html:301
+#: searx/templates/oscar/preferences.html:289
msgid ""
"Note: specifying custom settings in the search URL can reduce privacy by "
"leaking data to the clicked result sites."
diff --git a/searx/translations/fr/LC_MESSAGES/messages.mo b/searx/translations/fr/LC_MESSAGES/messages.mo
index 7fd3ee891..51d1006e9 100644
--- a/searx/translations/fr/LC_MESSAGES/messages.mo
+++ b/searx/translations/fr/LC_MESSAGES/messages.mo
Binary files differ
diff --git a/searx/translations/fr/LC_MESSAGES/messages.po b/searx/translations/fr/LC_MESSAGES/messages.po
index 4c076ddbf..4d57cad74 100644
--- a/searx/translations/fr/LC_MESSAGES/messages.po
+++ b/searx/translations/fr/LC_MESSAGES/messages.po
@@ -7,6 +7,7 @@
# Benjamin Sonntag <benjamin@sonntag.fr>, 2014
# Cqoicebordel <david.barouh@wanadoo.fr>, 2014
# Cqoicebordel <david.barouh@wanadoo.fr>, 2014-2017
+# Étienne Deparis <etienne@depar.is>, 2019
# FIRST AUTHOR <EMAIL@ADDRESS>, 2014
# Noémi Ványi <sitbackandwait@gmail.com>, 2017
# rike, 2014
@@ -15,9 +16,9 @@ msgid ""
msgstr ""
"Project-Id-Version: searx\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
-"POT-Creation-Date: 2017-11-01 21:31+0100\n"
-"PO-Revision-Date: 2018-04-03 08:18+0000\n"
-"Last-Translator: Alexandre Flament <alex@al-f.net>\n"
+"POT-Creation-Date: 2017-10-07 19:18+0200\n"
+"PO-Revision-Date: 2019-02-23 18:27+0000\n"
+"Last-Translator: Noémi Ványi <sitbackandwait@gmail.com>\n"
"Language-Team: French (http://www.transifex.com/asciimoo/searx/language/fr/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
@@ -38,63 +39,63 @@ msgstr "erreur de requête"
msgid "unexpected crash"
msgstr "crash inattendu"
-#: searx/webapp.py:136
+#: searx/webapp.py:135
msgid "files"
msgstr "fichiers"
-#: searx/webapp.py:137
+#: searx/webapp.py:136
msgid "general"
msgstr "général"
-#: searx/webapp.py:138
+#: searx/webapp.py:137
msgid "music"
msgstr "musique"
-#: searx/webapp.py:139
+#: searx/webapp.py:138
msgid "social media"
msgstr "réseaux sociaux"
-#: searx/webapp.py:140
+#: searx/webapp.py:139
msgid "images"
msgstr "images"
-#: searx/webapp.py:141
+#: searx/webapp.py:140
msgid "videos"
msgstr "vidéos"
-#: searx/webapp.py:142
+#: searx/webapp.py:141
msgid "it"
msgstr "informatique"
-#: searx/webapp.py:143
+#: searx/webapp.py:142
msgid "news"
msgstr "actualités"
-#: searx/webapp.py:144
+#: searx/webapp.py:143
msgid "map"
msgstr "carte"
-#: searx/webapp.py:145
+#: searx/webapp.py:144
msgid "science"
msgstr "science"
-#: searx/webapp.py:399 searx/webapp.py:658
+#: searx/webapp.py:398 searx/webapp.py:653
msgid "Invalid settings, please edit your preferences"
msgstr "Paramètres non valides, veuillez éditer vos préférences"
-#: searx/webapp.py:415
+#: searx/webapp.py:410
msgid "Invalid settings"
msgstr "Paramètres non valides"
-#: searx/webapp.py:449 searx/webapp.py:493
+#: searx/webapp.py:444 searx/webapp.py:488
msgid "search error"
msgstr "erreur de recherche"
-#: searx/webapp.py:530
+#: searx/webapp.py:525
msgid "{minutes} minute(s) ago"
msgstr "il y a {minutes} minute(s)"
-#: searx/webapp.py:532
+#: searx/webapp.py:527
msgid "{hours} hour(s), {minutes} minute(s) ago"
msgstr "il y a {hours} heure(s), {minutes} minute(s)"
@@ -114,29 +115,28 @@ msgstr "Fonctions statistiques"
msgid "Compute {functions} of the arguments"
msgstr "Calcule les {functions} des arguments"
-#: searx/engines/__init__.py:194 searx/engines/flycheck___init__.py:201
+#: searx/engines/__init__.py:194
msgid "Engine time (sec)"
msgstr "Temps du moteur (sec)"
-#: searx/engines/__init__.py:198 searx/engines/flycheck___init__.py:205
+#: searx/engines/__init__.py:198
msgid "Page loads (sec)"
msgstr "Chargement de la page (sec)"
-#: searx/engines/__init__.py:202 searx/engines/flycheck___init__.py:209
-#: searx/templates/oscar/results.html:95
+#: searx/engines/__init__.py:202 searx/templates/oscar/results.html:95
#: searx/templates/simple/results.html:20
msgid "Number of results"
msgstr "Nombre de résultats"
-#: searx/engines/__init__.py:206 searx/engines/flycheck___init__.py:213
+#: searx/engines/__init__.py:206
msgid "Scores"
msgstr "Score"
-#: searx/engines/__init__.py:210 searx/engines/flycheck___init__.py:217
+#: searx/engines/__init__.py:210
msgid "Scores per result"
msgstr "Score par résultat"
-#: searx/engines/__init__.py:214 searx/engines/flycheck___init__.py:221
+#: searx/engines/__init__.py:214
msgid "Errors"
msgstr "Erreur"
@@ -148,9 +148,15 @@ msgstr "{titre}&nbsp;(OBSOLETE)"
msgid "This entry has been superseded by"
msgstr "Cet item a été remplacé par"
-#: searx/engines/pubmed.py:74
-msgid "No abstract is available for this publication."
-msgstr "Pas de résumé disponible pour cette publication."
+#: searx/plugins/doai_rewrite.py:7
+msgid "DOAI rewrite"
+msgstr "Utiliser DOAI"
+
+#: searx/plugins/doai_rewrite.py:8
+msgid ""
+"Avoid paywalls by redirecting to open-access versions of publications when "
+"available"
+msgstr "Contourne les verrous payants de certaines publications scientifiques en redirigeant vers la version ouverte de ces papiers si elle est disponible."
#: searx/plugins/https_rewrite.py:32
msgid "Rewrite HTTP links to HTTPS if possible"
@@ -164,16 +170,6 @@ msgstr "Défilement infini"
msgid "Automatically load next page when scrolling to bottom of current page"
msgstr "Charge automatiquement la page suivante quand vous arriver en bas de la page"
-#: searx/plugins/oa_doi_rewrite.py:9
-msgid "Open Access DOI rewrite"
-msgstr "Utiliser Open Access DOI"
-
-#: searx/plugins/oa_doi_rewrite.py:10
-msgid ""
-"Avoid paywalls by redirecting to open-access versions of publications when "
-"available"
-msgstr "Contourne les verrous payants de certaines publications scientifiques en redirigeant vers la version ouverte de ces papiers si elle est disponible."
-
#: searx/plugins/open_results_on_new_tab.py:18
#: searx/templates/oscar/preferences.html:114
#: searx/templates/simple/preferences.html:149
@@ -336,8 +332,8 @@ msgstr "Méthode"
#: searx/templates/courgette/preferences.html:63
#: searx/templates/legacy/preferences.html:64
#: searx/templates/oscar/preferences.html:86
-#: searx/templates/oscar/preferences.html:165
-#: searx/templates/oscar/preferences.html:173
+#: searx/templates/oscar/preferences.html:153
+#: searx/templates/oscar/preferences.html:161
#: searx/templates/simple/preferences.html:63
#: searx/templates/simple/preferences.html:90
msgid "SafeSearch"
@@ -409,8 +405,8 @@ msgstr "Moteurs de recherche actuellement utilisés"
#: searx/templates/courgette/preferences.html:100
#: searx/templates/legacy/preferences.html:97
-#: searx/templates/oscar/preferences.html:162
-#: searx/templates/oscar/preferences.html:176
+#: searx/templates/oscar/preferences.html:150
+#: searx/templates/oscar/preferences.html:164
#: searx/templates/pix-art/preferences.html:53
#: searx/templates/simple/preferences.html:87
msgid "Engine name"
@@ -425,8 +421,8 @@ msgstr "Catégorie"
#: searx/templates/courgette/preferences.html:113
#: searx/templates/legacy/preferences.html:99
#: searx/templates/legacy/preferences.html:110
-#: searx/templates/oscar/preferences.html:161
-#: searx/templates/oscar/preferences.html:177
+#: searx/templates/oscar/preferences.html:149
+#: searx/templates/oscar/preferences.html:165
#: searx/templates/pix-art/preferences.html:54
#: searx/templates/pix-art/preferences.html:64
#: searx/templates/simple/preferences.html:86
@@ -444,7 +440,7 @@ msgstr "Bloquer"
#: searx/templates/courgette/preferences.html:122
#: searx/templates/legacy/preferences.html:119
-#: searx/templates/oscar/preferences.html:297
+#: searx/templates/oscar/preferences.html:285
#: searx/templates/pix-art/preferences.html:73
#: searx/templates/simple/preferences.html:180
msgid ""
@@ -454,7 +450,7 @@ msgstr "Ces paramètres sont stockés dans vos cookies ; ceci nous permet de ne
#: searx/templates/courgette/preferences.html:124
#: searx/templates/legacy/preferences.html:121
-#: searx/templates/oscar/preferences.html:299
+#: searx/templates/oscar/preferences.html:287
#: searx/templates/pix-art/preferences.html:75
#: searx/templates/simple/preferences.html:182
msgid ""
@@ -464,7 +460,7 @@ msgstr "Ces cookies existent pour votre confort d'utilisation, nous ne les utili
#: searx/templates/courgette/preferences.html:127
#: searx/templates/legacy/preferences.html:124
-#: searx/templates/oscar/preferences.html:305
+#: searx/templates/oscar/preferences.html:293
#: searx/templates/pix-art/preferences.html:78
#: searx/templates/simple/preferences.html:185
msgid "save"
@@ -472,14 +468,14 @@ msgstr "enregistrer"
#: searx/templates/courgette/preferences.html:128
#: searx/templates/legacy/preferences.html:125
-#: searx/templates/oscar/preferences.html:307
+#: searx/templates/oscar/preferences.html:295
#: searx/templates/simple/preferences.html:186
msgid "Reset defaults"
msgstr "Remettre les valeurs par défaut"
#: searx/templates/courgette/preferences.html:129
#: searx/templates/legacy/preferences.html:126
-#: searx/templates/oscar/preferences.html:306
+#: searx/templates/oscar/preferences.html:294
#: searx/templates/pix-art/preferences.html:79
#: searx/templates/simple/preferences.html:187
msgid "back"
@@ -650,23 +646,23 @@ msgid "General"
msgstr "Général"
#: searx/templates/oscar/preferences.html:14
-#: searx/templates/oscar/preferences.html:146
+#: searx/templates/oscar/preferences.html:134
#: searx/templates/simple/preferences.html:76
msgid "Engines"
msgstr "Moteurs"
#: searx/templates/oscar/preferences.html:15
-#: searx/templates/oscar/preferences.html:219
+#: searx/templates/oscar/preferences.html:207
msgid "Plugins"
msgstr "Plugins"
#: searx/templates/oscar/preferences.html:16
-#: searx/templates/oscar/preferences.html:245
+#: searx/templates/oscar/preferences.html:233
msgid "Answerers"
msgstr "Réponses instantanées"
#: searx/templates/oscar/preferences.html:17
-#: searx/templates/oscar/preferences.html:272
+#: searx/templates/oscar/preferences.html:260
msgid "Cookies"
msgstr "Cookies"
@@ -717,88 +713,78 @@ msgstr "Choisir un style pour ce thème"
msgid "Style"
msgstr "Style"
-#: searx/templates/oscar/preferences.html:122
-msgid "Open Access DOI resolver"
-msgstr "Résolveur Open Access DOI"
-
-#: searx/templates/oscar/preferences.html:123
-msgid ""
-"Redirect to open-access versions of publications when available (plugin "
-"required)"
-msgstr "Rediriger vers les versions des articles en libre accès lorsqu'elles sont disponibles (nécessite un plugin)"
-
+#: searx/templates/oscar/preferences.html:151
#: searx/templates/oscar/preferences.html:163
-#: searx/templates/oscar/preferences.html:175
#: searx/templates/simple/preferences.html:88
msgid "Shortcut"
msgstr "Raccourcis"
-#: searx/templates/oscar/preferences.html:164
-#: searx/templates/oscar/preferences.html:174
+#: searx/templates/oscar/preferences.html:152
+#: searx/templates/oscar/preferences.html:162
msgid "Selected language"
msgstr "Langue choisie"
-#: searx/templates/oscar/preferences.html:166
-#: searx/templates/oscar/preferences.html:172
+#: searx/templates/oscar/preferences.html:154
+#: searx/templates/oscar/preferences.html:160
#: searx/templates/simple/preferences.html:91
msgid "Time range"
msgstr "Espace temporel"
-#: searx/templates/oscar/preferences.html:167
-#: searx/templates/oscar/preferences.html:171
+#: searx/templates/oscar/preferences.html:155
+#: searx/templates/oscar/preferences.html:159
#: searx/templates/simple/preferences.html:92
msgid "Avg. time"
msgstr "Temps moy."
-#: searx/templates/oscar/preferences.html:168
-#: searx/templates/oscar/preferences.html:170
+#: searx/templates/oscar/preferences.html:156
+#: searx/templates/oscar/preferences.html:158
#: searx/templates/simple/preferences.html:93
msgid "Max time"
msgstr "Temps max"
-#: searx/templates/oscar/preferences.html:248
+#: searx/templates/oscar/preferences.html:236
msgid "This is the list of searx's instant answering modules."
msgstr "Voici la liste des module de searx produisant une réponse instantanée."
-#: searx/templates/oscar/preferences.html:252
+#: searx/templates/oscar/preferences.html:240
msgid "Name"
msgstr "Nom"
-#: searx/templates/oscar/preferences.html:253
+#: searx/templates/oscar/preferences.html:241
msgid "Keywords"
msgstr "Mots clés"
-#: searx/templates/oscar/preferences.html:254
+#: searx/templates/oscar/preferences.html:242
msgid "Description"
msgstr "Description"
-#: searx/templates/oscar/preferences.html:255
+#: searx/templates/oscar/preferences.html:243
msgid "Examples"
msgstr "Exemples"
-#: searx/templates/oscar/preferences.html:275
+#: searx/templates/oscar/preferences.html:263
msgid ""
"This is the list of cookies and their values searx is storing on your "
"computer."
msgstr "C'est une liste de cookies et de leurs valeurs que searx enregistre sur votre ordinateur."
-#: searx/templates/oscar/preferences.html:276
+#: searx/templates/oscar/preferences.html:264
msgid "With that list, you can assess searx transparency."
msgstr "Avec cette liste, vous pouvez juger de la transparence de searx."
-#: searx/templates/oscar/preferences.html:281
+#: searx/templates/oscar/preferences.html:269
msgid "Cookie name"
msgstr "Nom du cookie"
-#: searx/templates/oscar/preferences.html:282
+#: searx/templates/oscar/preferences.html:270
msgid "Value"
msgstr "Valeur"
-#: searx/templates/oscar/preferences.html:301
+#: searx/templates/oscar/preferences.html:289
msgid "Search URL of the currently saved preferences"
msgstr "Adresse de recherche des réglages actuels"
-#: searx/templates/oscar/preferences.html:301
+#: searx/templates/oscar/preferences.html:289
msgid ""
"Note: specifying custom settings in the search URL can reduce privacy by "
"leaking data to the clicked result sites."
diff --git a/searx/translations/gl/LC_MESSAGES/messages.mo b/searx/translations/gl/LC_MESSAGES/messages.mo
index 30d7b0dd6..e8724634e 100644
--- a/searx/translations/gl/LC_MESSAGES/messages.mo
+++ b/searx/translations/gl/LC_MESSAGES/messages.mo
Binary files differ
diff --git a/searx/translations/gl/LC_MESSAGES/messages.po b/searx/translations/gl/LC_MESSAGES/messages.po
index 3e1e2230f..4634ed1b1 100644
--- a/searx/translations/gl/LC_MESSAGES/messages.po
+++ b/searx/translations/gl/LC_MESSAGES/messages.po
@@ -3,13 +3,13 @@
# This file is distributed under the same license as the PROJECT project.
#
# Translators:
-# Xosé M. Lamas <correo@xmgz.eu>, 2018
+# Xosé M. Lamas <correo@xmgz.eu>, 2018-2019
msgid ""
msgstr ""
"Project-Id-Version: searx\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
-"POT-Creation-Date: 2017-11-01 21:31+0100\n"
-"PO-Revision-Date: 2018-04-20 11:00+0000\n"
+"POT-Creation-Date: 2017-10-07 19:18+0200\n"
+"PO-Revision-Date: 2019-02-26 06:08+0000\n"
"Last-Translator: Xosé M. Lamas <correo@xmgz.eu>\n"
"Language-Team: Galician (http://www.transifex.com/asciimoo/searx/language/gl/)\n"
"MIME-Version: 1.0\n"
@@ -31,63 +31,63 @@ msgstr "excepción na petición"
msgid "unexpected crash"
msgstr "fallo non agardado"
-#: searx/webapp.py:136
+#: searx/webapp.py:135
msgid "files"
msgstr "ficheiros"
-#: searx/webapp.py:137
+#: searx/webapp.py:136
msgid "general"
msgstr "xeral"
-#: searx/webapp.py:138
+#: searx/webapp.py:137
msgid "music"
msgstr "música"
-#: searx/webapp.py:139
+#: searx/webapp.py:138
msgid "social media"
msgstr "Medios sociais"
-#: searx/webapp.py:140
+#: searx/webapp.py:139
msgid "images"
msgstr "imaxes"
-#: searx/webapp.py:141
+#: searx/webapp.py:140
msgid "videos"
msgstr "vídeos"
-#: searx/webapp.py:142
+#: searx/webapp.py:141
msgid "it"
msgstr "TIC"
-#: searx/webapp.py:143
+#: searx/webapp.py:142
msgid "news"
msgstr "novas"
-#: searx/webapp.py:144
+#: searx/webapp.py:143
msgid "map"
msgstr "mapa"
-#: searx/webapp.py:145
+#: searx/webapp.py:144
msgid "science"
msgstr "ciencia"
-#: searx/webapp.py:399 searx/webapp.py:658
+#: searx/webapp.py:398 searx/webapp.py:653
msgid "Invalid settings, please edit your preferences"
msgstr "Axustes non válidos, por favor edite a configuración"
-#: searx/webapp.py:415
+#: searx/webapp.py:410
msgid "Invalid settings"
msgstr "Axustes non válidos"
-#: searx/webapp.py:449 searx/webapp.py:493
+#: searx/webapp.py:444 searx/webapp.py:488
msgid "search error"
msgstr "fallo na busca"
-#: searx/webapp.py:530
+#: searx/webapp.py:525
msgid "{minutes} minute(s) ago"
msgstr "hai {minutes} minuto(s)"
-#: searx/webapp.py:532
+#: searx/webapp.py:527
msgid "{hours} hour(s), {minutes} minute(s) ago"
msgstr "hai {hours} hora(s), {minutes} minuto(s)"
@@ -107,29 +107,28 @@ msgstr "Funcións de estatística"
msgid "Compute {functions} of the arguments"
msgstr "Calcule {functions} dos argumentos"
-#: searx/engines/__init__.py:194 searx/engines/flycheck___init__.py:201
+#: searx/engines/__init__.py:194
msgid "Engine time (sec)"
msgstr "Tempo de busca (sec)"
-#: searx/engines/__init__.py:198 searx/engines/flycheck___init__.py:205
+#: searx/engines/__init__.py:198
msgid "Page loads (sec)"
msgstr "Cargou en (seg)"
-#: searx/engines/__init__.py:202 searx/engines/flycheck___init__.py:209
-#: searx/templates/oscar/results.html:95
+#: searx/engines/__init__.py:202 searx/templates/oscar/results.html:95
#: searx/templates/simple/results.html:20
msgid "Number of results"
msgstr "Número de resultados"
-#: searx/engines/__init__.py:206 searx/engines/flycheck___init__.py:213
+#: searx/engines/__init__.py:206
msgid "Scores"
msgstr "Puntuacións"
-#: searx/engines/__init__.py:210 searx/engines/flycheck___init__.py:217
+#: searx/engines/__init__.py:210
msgid "Scores per result"
msgstr "Puntuacións por resultado"
-#: searx/engines/__init__.py:214 searx/engines/flycheck___init__.py:221
+#: searx/engines/__init__.py:214
msgid "Errors"
msgstr "Fallos"
@@ -141,9 +140,15 @@ msgstr "{title}&nbsp;(OBSOLETO)"
msgid "This entry has been superseded by"
msgstr "Esta entrada foi proporcionada por"
-#: searx/engines/pubmed.py:74
-msgid "No abstract is available for this publication."
-msgstr "Non hai dispoñible un extracto para esta publicación."
+#: searx/plugins/doai_rewrite.py:7
+msgid "DOAI rewrite"
+msgstr "Reescritura DOAI"
+
+#: searx/plugins/doai_rewrite.py:8
+msgid ""
+"Avoid paywalls by redirecting to open-access versions of publications when "
+"available"
+msgstr "Evitar muros de pago redirecciionando a versións públicas das publicacións cando estén dispoñibles"
#: searx/plugins/https_rewrite.py:32
msgid "Rewrite HTTP links to HTTPS if possible"
@@ -157,16 +162,6 @@ msgstr "Desplazamento infinito"
msgid "Automatically load next page when scrolling to bottom of current page"
msgstr "Cargar automáticamente a seguinte páxina ao desplazarse ao fondo da páxina actual"
-#: searx/plugins/oa_doi_rewrite.py:9
-msgid "Open Access DOI rewrite"
-msgstr "Reescritura Open Access DOI"
-
-#: searx/plugins/oa_doi_rewrite.py:10
-msgid ""
-"Avoid paywalls by redirecting to open-access versions of publications when "
-"available"
-msgstr "Evitar muros de pago redirecciionando a versións públicas das publicacións cando estén dispoñibles"
-
#: searx/plugins/open_results_on_new_tab.py:18
#: searx/templates/oscar/preferences.html:114
#: searx/templates/simple/preferences.html:149
@@ -329,8 +324,8 @@ msgstr "Método"
#: searx/templates/courgette/preferences.html:63
#: searx/templates/legacy/preferences.html:64
#: searx/templates/oscar/preferences.html:86
-#: searx/templates/oscar/preferences.html:165
-#: searx/templates/oscar/preferences.html:173
+#: searx/templates/oscar/preferences.html:153
+#: searx/templates/oscar/preferences.html:161
#: searx/templates/simple/preferences.html:63
#: searx/templates/simple/preferences.html:90
msgid "SafeSearch"
@@ -402,8 +397,8 @@ msgstr "Motores de busca utilizados actualmente"
#: searx/templates/courgette/preferences.html:100
#: searx/templates/legacy/preferences.html:97
-#: searx/templates/oscar/preferences.html:162
-#: searx/templates/oscar/preferences.html:176
+#: searx/templates/oscar/preferences.html:150
+#: searx/templates/oscar/preferences.html:164
#: searx/templates/pix-art/preferences.html:53
#: searx/templates/simple/preferences.html:87
msgid "Engine name"
@@ -418,8 +413,8 @@ msgstr "Categoría"
#: searx/templates/courgette/preferences.html:113
#: searx/templates/legacy/preferences.html:99
#: searx/templates/legacy/preferences.html:110
-#: searx/templates/oscar/preferences.html:161
-#: searx/templates/oscar/preferences.html:177
+#: searx/templates/oscar/preferences.html:149
+#: searx/templates/oscar/preferences.html:165
#: searx/templates/pix-art/preferences.html:54
#: searx/templates/pix-art/preferences.html:64
#: searx/templates/simple/preferences.html:86
@@ -437,7 +432,7 @@ msgstr "Bloquear"
#: searx/templates/courgette/preferences.html:122
#: searx/templates/legacy/preferences.html:119
-#: searx/templates/oscar/preferences.html:297
+#: searx/templates/oscar/preferences.html:285
#: searx/templates/pix-art/preferences.html:73
#: searx/templates/simple/preferences.html:180
msgid ""
@@ -447,7 +442,7 @@ msgstr "Estos axustes gárdanse en testemuños, esto permítenos non ter que gar
#: searx/templates/courgette/preferences.html:124
#: searx/templates/legacy/preferences.html:121
-#: searx/templates/oscar/preferences.html:299
+#: searx/templates/oscar/preferences.html:287
#: searx/templates/pix-art/preferences.html:75
#: searx/templates/simple/preferences.html:182
msgid ""
@@ -457,7 +452,7 @@ msgstr "Estos testemuños son para a súa conveniencia, non utilizamos estos tes
#: searx/templates/courgette/preferences.html:127
#: searx/templates/legacy/preferences.html:124
-#: searx/templates/oscar/preferences.html:305
+#: searx/templates/oscar/preferences.html:293
#: searx/templates/pix-art/preferences.html:78
#: searx/templates/simple/preferences.html:185
msgid "save"
@@ -465,14 +460,14 @@ msgstr "gardar"
#: searx/templates/courgette/preferences.html:128
#: searx/templates/legacy/preferences.html:125
-#: searx/templates/oscar/preferences.html:307
+#: searx/templates/oscar/preferences.html:295
#: searx/templates/simple/preferences.html:186
msgid "Reset defaults"
msgstr "Restablecer"
#: searx/templates/courgette/preferences.html:129
#: searx/templates/legacy/preferences.html:126
-#: searx/templates/oscar/preferences.html:306
+#: searx/templates/oscar/preferences.html:294
#: searx/templates/pix-art/preferences.html:79
#: searx/templates/simple/preferences.html:187
msgid "back"
@@ -643,23 +638,23 @@ msgid "General"
msgstr "Xeral"
#: searx/templates/oscar/preferences.html:14
-#: searx/templates/oscar/preferences.html:146
+#: searx/templates/oscar/preferences.html:134
#: searx/templates/simple/preferences.html:76
msgid "Engines"
msgstr "Motores"
#: searx/templates/oscar/preferences.html:15
-#: searx/templates/oscar/preferences.html:219
+#: searx/templates/oscar/preferences.html:207
msgid "Plugins"
msgstr "Engadidos"
#: searx/templates/oscar/preferences.html:16
-#: searx/templates/oscar/preferences.html:245
+#: searx/templates/oscar/preferences.html:233
msgid "Answerers"
msgstr "Respostas"
#: searx/templates/oscar/preferences.html:17
-#: searx/templates/oscar/preferences.html:272
+#: searx/templates/oscar/preferences.html:260
msgid "Cookies"
msgstr "Testemuños"
@@ -710,88 +705,78 @@ msgstr "Escolla o estilo para este decorado"
msgid "Style"
msgstr "Estilo"
-#: searx/templates/oscar/preferences.html:122
-msgid "Open Access DOI resolver"
-msgstr "Resolutor Open Access DOI"
-
-#: searx/templates/oscar/preferences.html:123
-msgid ""
-"Redirect to open-access versions of publications when available (plugin "
-"required)"
-msgstr "Redireccionar a versións abertas das publicacións cando estén dispoñibles (require o engadido)"
-
+#: searx/templates/oscar/preferences.html:151
#: searx/templates/oscar/preferences.html:163
-#: searx/templates/oscar/preferences.html:175
#: searx/templates/simple/preferences.html:88
msgid "Shortcut"
msgstr "Atallo"
-#: searx/templates/oscar/preferences.html:164
-#: searx/templates/oscar/preferences.html:174
+#: searx/templates/oscar/preferences.html:152
+#: searx/templates/oscar/preferences.html:162
msgid "Selected language"
msgstr "Idioma seleccionado"
-#: searx/templates/oscar/preferences.html:166
-#: searx/templates/oscar/preferences.html:172
+#: searx/templates/oscar/preferences.html:154
+#: searx/templates/oscar/preferences.html:160
#: searx/templates/simple/preferences.html:91
msgid "Time range"
msgstr "Rango temporal"
-#: searx/templates/oscar/preferences.html:167
-#: searx/templates/oscar/preferences.html:171
+#: searx/templates/oscar/preferences.html:155
+#: searx/templates/oscar/preferences.html:159
#: searx/templates/simple/preferences.html:92
msgid "Avg. time"
msgstr "Tempo medio"
-#: searx/templates/oscar/preferences.html:168
-#: searx/templates/oscar/preferences.html:170
+#: searx/templates/oscar/preferences.html:156
+#: searx/templates/oscar/preferences.html:158
#: searx/templates/simple/preferences.html:93
msgid "Max time"
msgstr "Tempo máx."
-#: searx/templates/oscar/preferences.html:248
+#: searx/templates/oscar/preferences.html:236
msgid "This is the list of searx's instant answering modules."
msgstr "Este é o listado dos módulos de respostas instantáneas de searx"
-#: searx/templates/oscar/preferences.html:252
+#: searx/templates/oscar/preferences.html:240
msgid "Name"
msgstr "Nome"
-#: searx/templates/oscar/preferences.html:253
+#: searx/templates/oscar/preferences.html:241
msgid "Keywords"
msgstr "Palabras chave"
-#: searx/templates/oscar/preferences.html:254
+#: searx/templates/oscar/preferences.html:242
msgid "Description"
msgstr "Descrición"
-#: searx/templates/oscar/preferences.html:255
+#: searx/templates/oscar/preferences.html:243
msgid "Examples"
msgstr "Exemplos"
-#: searx/templates/oscar/preferences.html:275
+#: searx/templates/oscar/preferences.html:263
msgid ""
"This is the list of cookies and their values searx is storing on your "
"computer."
msgstr "Este é o listados dos testemuños e os seus valores que searx almacena na súa computadora."
-#: searx/templates/oscar/preferences.html:276
+#: searx/templates/oscar/preferences.html:264
msgid "With that list, you can assess searx transparency."
msgstr "Con esta lista vostede pode comprobar a transparencia de searx."
-#: searx/templates/oscar/preferences.html:281
+#: searx/templates/oscar/preferences.html:269
msgid "Cookie name"
msgstr "Nome do testemuño"
-#: searx/templates/oscar/preferences.html:282
+#: searx/templates/oscar/preferences.html:270
msgid "Value"
msgstr "Valor"
-#: searx/templates/oscar/preferences.html:301
+#: searx/templates/oscar/preferences.html:289
msgid "Search URL of the currently saved preferences"
msgstr "URL de busca dos axustes gardados actualmente."
-#: searx/templates/oscar/preferences.html:301
+#: searx/templates/oscar/preferences.html:289
msgid ""
"Note: specifying custom settings in the search URL can reduce privacy by "
"leaking data to the clicked result sites."
diff --git a/searx/translations/he/LC_MESSAGES/messages.mo b/searx/translations/he/LC_MESSAGES/messages.mo
index c03402500..3f7f8b4b1 100644
--- a/searx/translations/he/LC_MESSAGES/messages.mo
+++ b/searx/translations/he/LC_MESSAGES/messages.mo
Binary files differ
diff --git a/searx/translations/he/LC_MESSAGES/messages.po b/searx/translations/he/LC_MESSAGES/messages.po
index a7d0bcc32..c2e851d1d 100644
--- a/searx/translations/he/LC_MESSAGES/messages.po
+++ b/searx/translations/he/LC_MESSAGES/messages.po
@@ -4,7 +4,7 @@
#
# Translators:
# GenghisKhan <genghiskhan@gmx.ca>, 2015
-# GenghisKhan <genghiskhan@gmx.ca>, 2015-2017
+# GenghisKhan <genghiskhan@gmx.ca>, 2015-2017,2019
# pointhi, 2014
# rike, 2014
# stf <stefan.marsiske@gmail.com>, 2014
@@ -12,20 +12,20 @@ msgid ""
msgstr ""
"Project-Id-Version: searx\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
-"POT-Creation-Date: 2017-11-01 21:31+0100\n"
-"PO-Revision-Date: 2017-11-01 20:31+0000\n"
-"Last-Translator: Adam Tauber <asciimoo@gmail.com>\n"
+"POT-Creation-Date: 2017-10-07 19:18+0200\n"
+"PO-Revision-Date: 2019-03-17 10:52+0000\n"
+"Last-Translator: GenghisKhan <genghiskhan@gmx.ca>\n"
"Language-Team: Hebrew (http://www.transifex.com/asciimoo/searx/language/he/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Generated-By: Babel 2.3.4\n"
"Language: he\n"
-"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+"Plural-Forms: nplurals=4; plural=(n == 1 && n % 1 == 0) ? 0 : (n == 2 && n % 1 == 0) ? 1: (n % 10 == 0 && n % 1 == 0 && n > 10) ? 2 : 3;\n"
#: searx/search.py:137 searx/search.py:182
msgid "timeout"
-msgstr ""
+msgstr "פקיעת זמן"
#: searx/search.py:144
msgid "request exception"
@@ -35,63 +35,63 @@ msgstr ""
msgid "unexpected crash"
msgstr ""
-#: searx/webapp.py:136
+#: searx/webapp.py:135
msgid "files"
msgstr "קבצים"
-#: searx/webapp.py:137
+#: searx/webapp.py:136
msgid "general"
msgstr "כללי"
-#: searx/webapp.py:138
+#: searx/webapp.py:137
msgid "music"
msgstr "מוזיקה"
-#: searx/webapp.py:139
+#: searx/webapp.py:138
msgid "social media"
msgstr "מדיה חברתית"
-#: searx/webapp.py:140
+#: searx/webapp.py:139
msgid "images"
msgstr "תמונות"
-#: searx/webapp.py:141
+#: searx/webapp.py:140
msgid "videos"
msgstr "סרטונים"
-#: searx/webapp.py:142
+#: searx/webapp.py:141
msgid "it"
msgstr "IT"
-#: searx/webapp.py:143
+#: searx/webapp.py:142
msgid "news"
msgstr "חדשות"
-#: searx/webapp.py:144
+#: searx/webapp.py:143
msgid "map"
msgstr "מפות"
-#: searx/webapp.py:145
+#: searx/webapp.py:144
msgid "science"
msgstr "מדע"
-#: searx/webapp.py:399 searx/webapp.py:658
+#: searx/webapp.py:398 searx/webapp.py:653
msgid "Invalid settings, please edit your preferences"
msgstr "הגדרות שגויות, אנא ערוך את ההעדפות שלך"
-#: searx/webapp.py:415
+#: searx/webapp.py:410
msgid "Invalid settings"
-msgstr ""
+msgstr "הגדרה לא חוקית"
-#: searx/webapp.py:449 searx/webapp.py:493
+#: searx/webapp.py:444 searx/webapp.py:488
msgid "search error"
msgstr "שגיאת חיפוש"
-#: searx/webapp.py:530
+#: searx/webapp.py:525
msgid "{minutes} minute(s) ago"
msgstr "לפני {minutes} דקות"
-#: searx/webapp.py:532
+#: searx/webapp.py:527
msgid "{hours} hour(s), {minutes} minute(s) ago"
msgstr "לפני {hours} שעות, {minutes} דקות"
@@ -109,31 +109,30 @@ msgstr "פונקציות סטטיסטיקה"
#: searx/answerers/statistics/answerer.py:54
msgid "Compute {functions} of the arguments"
-msgstr ""
+msgstr "מחשב {functions} מתוך הארגומנטים"
-#: searx/engines/__init__.py:194 searx/engines/flycheck___init__.py:201
+#: searx/engines/__init__.py:194
msgid "Engine time (sec)"
msgstr "זמן מנוע (שניות)"
-#: searx/engines/__init__.py:198 searx/engines/flycheck___init__.py:205
+#: searx/engines/__init__.py:198
msgid "Page loads (sec)"
msgstr "עומס עמוד (שניות)"
-#: searx/engines/__init__.py:202 searx/engines/flycheck___init__.py:209
-#: searx/templates/oscar/results.html:95
+#: searx/engines/__init__.py:202 searx/templates/oscar/results.html:95
#: searx/templates/simple/results.html:20
msgid "Number of results"
msgstr "מספר תוצאות"
-#: searx/engines/__init__.py:206 searx/engines/flycheck___init__.py:213
+#: searx/engines/__init__.py:206
msgid "Scores"
msgstr "דירוג"
-#: searx/engines/__init__.py:210 searx/engines/flycheck___init__.py:217
+#: searx/engines/__init__.py:210
msgid "Scores per result"
msgstr "דירוג לכל תוצאה"
-#: searx/engines/__init__.py:214 searx/engines/flycheck___init__.py:221
+#: searx/engines/__init__.py:214
msgid "Errors"
msgstr "שגיאות"
@@ -145,9 +144,15 @@ msgstr ""
msgid "This entry has been superseded by"
msgstr "רשומה זו הוחלפה על ידי"
-#: searx/engines/pubmed.py:74
-msgid "No abstract is available for this publication."
-msgstr ""
+#: searx/plugins/doai_rewrite.py:7
+msgid "DOAI rewrite"
+msgstr "שכתוב DOAI"
+
+#: searx/plugins/doai_rewrite.py:8
+msgid ""
+"Avoid paywalls by redirecting to open-access versions of publications when "
+"available"
+msgstr "הימנעות מקירות-תשלום (paywalls) על ידי הכוונה מחודשת לגרסאות כניסה-חופשית של כתבי-עת כאשר זמינות"
#: searx/plugins/https_rewrite.py:32
msgid "Rewrite HTTP links to HTTPS if possible"
@@ -161,16 +166,6 @@ msgstr "גלילה אינסופית"
msgid "Automatically load next page when scrolling to bottom of current page"
msgstr "טען אוטומטית עמוד הלאה כאשר גוללים לתחתית של עמוד נוכחי"
-#: searx/plugins/oa_doi_rewrite.py:9
-msgid "Open Access DOI rewrite"
-msgstr ""
-
-#: searx/plugins/oa_doi_rewrite.py:10
-msgid ""
-"Avoid paywalls by redirecting to open-access versions of publications when "
-"available"
-msgstr "הימנעות מקירות-תשלום (paywalls) על ידי הכוונה מחודשת לגרסאות כניסה-חופשית של כתבי-עת כאשר זמינות"
-
#: searx/plugins/open_results_on_new_tab.py:18
#: searx/templates/oscar/preferences.html:114
#: searx/templates/simple/preferences.html:149
@@ -333,8 +328,8 @@ msgstr "שיטה"
#: searx/templates/courgette/preferences.html:63
#: searx/templates/legacy/preferences.html:64
#: searx/templates/oscar/preferences.html:86
-#: searx/templates/oscar/preferences.html:165
-#: searx/templates/oscar/preferences.html:173
+#: searx/templates/oscar/preferences.html:153
+#: searx/templates/oscar/preferences.html:161
#: searx/templates/simple/preferences.html:63
#: searx/templates/simple/preferences.html:90
msgid "SafeSearch"
@@ -406,8 +401,8 @@ msgstr "מנועי חיפוש בשימוש עתה"
#: searx/templates/courgette/preferences.html:100
#: searx/templates/legacy/preferences.html:97
-#: searx/templates/oscar/preferences.html:162
-#: searx/templates/oscar/preferences.html:176
+#: searx/templates/oscar/preferences.html:150
+#: searx/templates/oscar/preferences.html:164
#: searx/templates/pix-art/preferences.html:53
#: searx/templates/simple/preferences.html:87
msgid "Engine name"
@@ -422,8 +417,8 @@ msgstr "קטגוריה"
#: searx/templates/courgette/preferences.html:113
#: searx/templates/legacy/preferences.html:99
#: searx/templates/legacy/preferences.html:110
-#: searx/templates/oscar/preferences.html:161
-#: searx/templates/oscar/preferences.html:177
+#: searx/templates/oscar/preferences.html:149
+#: searx/templates/oscar/preferences.html:165
#: searx/templates/pix-art/preferences.html:54
#: searx/templates/pix-art/preferences.html:64
#: searx/templates/simple/preferences.html:86
@@ -441,7 +436,7 @@ msgstr "חסום"
#: searx/templates/courgette/preferences.html:122
#: searx/templates/legacy/preferences.html:119
-#: searx/templates/oscar/preferences.html:297
+#: searx/templates/oscar/preferences.html:285
#: searx/templates/pix-art/preferences.html:73
#: searx/templates/simple/preferences.html:180
msgid ""
@@ -451,7 +446,7 @@ msgstr "הגדרות אלו מאוחסנות בתוך העוגיות שלך, א
#: searx/templates/courgette/preferences.html:124
#: searx/templates/legacy/preferences.html:121
-#: searx/templates/oscar/preferences.html:299
+#: searx/templates/oscar/preferences.html:287
#: searx/templates/pix-art/preferences.html:75
#: searx/templates/simple/preferences.html:182
msgid ""
@@ -461,7 +456,7 @@ msgstr "עוגיות אלו משרתות את נוחותך הבלעדית, אנ
#: searx/templates/courgette/preferences.html:127
#: searx/templates/legacy/preferences.html:124
-#: searx/templates/oscar/preferences.html:305
+#: searx/templates/oscar/preferences.html:293
#: searx/templates/pix-art/preferences.html:78
#: searx/templates/simple/preferences.html:185
msgid "save"
@@ -469,14 +464,14 @@ msgstr "שמור"
#: searx/templates/courgette/preferences.html:128
#: searx/templates/legacy/preferences.html:125
-#: searx/templates/oscar/preferences.html:307
+#: searx/templates/oscar/preferences.html:295
#: searx/templates/simple/preferences.html:186
msgid "Reset defaults"
msgstr "אפס ברירות מחדל"
#: searx/templates/courgette/preferences.html:129
#: searx/templates/legacy/preferences.html:126
-#: searx/templates/oscar/preferences.html:306
+#: searx/templates/oscar/preferences.html:294
#: searx/templates/pix-art/preferences.html:79
#: searx/templates/simple/preferences.html:187
msgid "back"
@@ -634,11 +629,11 @@ msgstr "דרך פרוקסי"
#: searx/templates/oscar/macros.html:92
msgid "supported"
-msgstr ""
+msgstr "נתמך"
#: searx/templates/oscar/macros.html:96
msgid "not supported"
-msgstr ""
+msgstr "לא נתמך"
#: searx/templates/oscar/preferences.html:13
#: searx/templates/oscar/preferences.html:22
@@ -647,23 +642,23 @@ msgid "General"
msgstr "כללי"
#: searx/templates/oscar/preferences.html:14
-#: searx/templates/oscar/preferences.html:146
+#: searx/templates/oscar/preferences.html:134
#: searx/templates/simple/preferences.html:76
msgid "Engines"
msgstr "מנועים"
#: searx/templates/oscar/preferences.html:15
-#: searx/templates/oscar/preferences.html:219
+#: searx/templates/oscar/preferences.html:207
msgid "Plugins"
msgstr "תוספים"
#: searx/templates/oscar/preferences.html:16
-#: searx/templates/oscar/preferences.html:245
+#: searx/templates/oscar/preferences.html:233
msgid "Answerers"
msgstr "תשובות"
#: searx/templates/oscar/preferences.html:17
-#: searx/templates/oscar/preferences.html:272
+#: searx/templates/oscar/preferences.html:260
msgid "Cookies"
msgstr "עוגיות"
@@ -714,88 +709,78 @@ msgstr "בחירת סגנון עבור עיצוב זה"
msgid "Style"
msgstr "סגנון"
-#: searx/templates/oscar/preferences.html:122
-msgid "Open Access DOI resolver"
-msgstr ""
-
-#: searx/templates/oscar/preferences.html:123
-msgid ""
-"Redirect to open-access versions of publications when available (plugin "
-"required)"
-msgstr ""
-
+#: searx/templates/oscar/preferences.html:151
#: searx/templates/oscar/preferences.html:163
-#: searx/templates/oscar/preferences.html:175
#: searx/templates/simple/preferences.html:88
msgid "Shortcut"
msgstr "קיצור דרך"
-#: searx/templates/oscar/preferences.html:164
-#: searx/templates/oscar/preferences.html:174
+#: searx/templates/oscar/preferences.html:152
+#: searx/templates/oscar/preferences.html:162
msgid "Selected language"
-msgstr ""
+msgstr "שפה נבחרת"
-#: searx/templates/oscar/preferences.html:166
-#: searx/templates/oscar/preferences.html:172
+#: searx/templates/oscar/preferences.html:154
+#: searx/templates/oscar/preferences.html:160
#: searx/templates/simple/preferences.html:91
msgid "Time range"
msgstr "טווח זמן"
-#: searx/templates/oscar/preferences.html:167
-#: searx/templates/oscar/preferences.html:171
+#: searx/templates/oscar/preferences.html:155
+#: searx/templates/oscar/preferences.html:159
#: searx/templates/simple/preferences.html:92
msgid "Avg. time"
msgstr "זמן ממוצע"
-#: searx/templates/oscar/preferences.html:168
-#: searx/templates/oscar/preferences.html:170
+#: searx/templates/oscar/preferences.html:156
+#: searx/templates/oscar/preferences.html:158
#: searx/templates/simple/preferences.html:93
msgid "Max time"
msgstr "זמן מירבי"
-#: searx/templates/oscar/preferences.html:248
+#: searx/templates/oscar/preferences.html:236
msgid "This is the list of searx's instant answering modules."
msgstr ""
-#: searx/templates/oscar/preferences.html:252
+#: searx/templates/oscar/preferences.html:240
msgid "Name"
msgstr "שם"
-#: searx/templates/oscar/preferences.html:253
+#: searx/templates/oscar/preferences.html:241
msgid "Keywords"
msgstr "מילות מפתח"
-#: searx/templates/oscar/preferences.html:254
+#: searx/templates/oscar/preferences.html:242
msgid "Description"
msgstr "תיאור"
-#: searx/templates/oscar/preferences.html:255
+#: searx/templates/oscar/preferences.html:243
msgid "Examples"
msgstr "דוגמאות"
-#: searx/templates/oscar/preferences.html:275
+#: searx/templates/oscar/preferences.html:263
msgid ""
"This is the list of cookies and their values searx is storing on your "
"computer."
msgstr "זוהי רשימה של עוגיות וערכיהן אשר searx מאחסנת על המחשב שלך."
-#: searx/templates/oscar/preferences.html:276
+#: searx/templates/oscar/preferences.html:264
msgid "With that list, you can assess searx transparency."
msgstr "בעזרת רשימה זו, באפשרותך לגשת אל searx transparency."
-#: searx/templates/oscar/preferences.html:281
+#: searx/templates/oscar/preferences.html:269
msgid "Cookie name"
msgstr "שם עוגייה"
-#: searx/templates/oscar/preferences.html:282
+#: searx/templates/oscar/preferences.html:270
msgid "Value"
msgstr "ערך"
-#: searx/templates/oscar/preferences.html:301
+#: searx/templates/oscar/preferences.html:289
msgid "Search URL of the currently saved preferences"
-msgstr ""
+msgstr "כתובת חיפוש של ההעדפות השמורות כעת"
-#: searx/templates/oscar/preferences.html:301
+#: searx/templates/oscar/preferences.html:289
msgid ""
"Note: specifying custom settings in the search URL can reduce privacy by "
"leaking data to the clicked result sites."
@@ -808,12 +793,12 @@ msgstr "תוצאות חיפוש"
#: searx/templates/oscar/results.html:21
#: searx/templates/simple/results.html:84
msgid "Try searching for:"
-msgstr ""
+msgstr "נסו לחפש:"
#: searx/templates/oscar/results.html:100
#: searx/templates/simple/results.html:25
msgid "Engines cannot retrieve results"
-msgstr ""
+msgstr "מנועים לא מסוגלים לאחזר תוצאות"
#: searx/templates/oscar/results.html:131
msgid "Links"
@@ -878,12 +863,12 @@ msgstr "אין כעת מידע זמין. "
#: searx/templates/oscar/messages/no_results.html:4
#: searx/templates/simple/messages/no_results.html:4
msgid "Engines cannot retrieve results."
-msgstr ""
+msgstr "מנועים לא מסוגלים לאחזר תוצאות."
#: searx/templates/oscar/messages/no_results.html:10
#: searx/templates/simple/messages/no_results.html:10
msgid "Please, try again later or find another searx instance."
-msgstr ""
+msgstr "בבקשה, נסו מאוחר יותר. לחלופין, ניתן להיעזר בשירות searx אחר."
#: searx/templates/oscar/messages/no_results.html:14
#: searx/templates/simple/messages/no_results.html:14
@@ -1002,16 +987,16 @@ msgstr "טען עוד..."
#: searx/templates/simple/base.html:31
msgid "No item found"
-msgstr ""
+msgstr "לא נמצא פריט"
#: searx/templates/simple/preferences.html:89
msgid "Supports selected language"
-msgstr ""
+msgstr "תומך בשפה נבחרת"
#: searx/templates/simple/preferences.html:118
msgid "User interface"
-msgstr ""
+msgstr "ממשק משתמש"
#: searx/templates/simple/preferences.html:154
msgid "Privacy"
-msgstr ""
+msgstr "פרטיות"
diff --git a/searx/translations/hr/LC_MESSAGES/messages.mo b/searx/translations/hr/LC_MESSAGES/messages.mo
index 9e232a151..47541917b 100644
--- a/searx/translations/hr/LC_MESSAGES/messages.mo
+++ b/searx/translations/hr/LC_MESSAGES/messages.mo
Binary files differ
diff --git a/searx/translations/hr/LC_MESSAGES/messages.po b/searx/translations/hr/LC_MESSAGES/messages.po
index 104876cd6..94c5c7459 100644
--- a/searx/translations/hr/LC_MESSAGES/messages.po
+++ b/searx/translations/hr/LC_MESSAGES/messages.po
@@ -8,9 +8,9 @@ msgid ""
msgstr ""
"Project-Id-Version: searx\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
-"POT-Creation-Date: 2017-11-01 21:31+0100\n"
-"PO-Revision-Date: 2017-11-10 18:43+0000\n"
-"Last-Translator: Dino Dugandžija <ddugandz@tutanota.com>\n"
+"POT-Creation-Date: 2017-10-07 19:18+0200\n"
+"PO-Revision-Date: 2019-02-23 17:39+0000\n"
+"Last-Translator: Noémi Ványi <sitbackandwait@gmail.com>\n"
"Language-Team: Croatian (http://www.transifex.com/asciimoo/searx/language/hr/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
@@ -31,63 +31,63 @@ msgstr "zatraži iznimku"
msgid "unexpected crash"
msgstr "neočekivani pad"
-#: searx/webapp.py:136
+#: searx/webapp.py:135
msgid "files"
msgstr "datoteke"
-#: searx/webapp.py:137
+#: searx/webapp.py:136
msgid "general"
msgstr "općenito"
-#: searx/webapp.py:138
+#: searx/webapp.py:137
msgid "music"
msgstr "glazba"
-#: searx/webapp.py:139
+#: searx/webapp.py:138
msgid "social media"
msgstr "društveni mediji"
-#: searx/webapp.py:140
+#: searx/webapp.py:139
msgid "images"
msgstr "slike"
-#: searx/webapp.py:141
+#: searx/webapp.py:140
msgid "videos"
msgstr "video zapisi"
-#: searx/webapp.py:142
+#: searx/webapp.py:141
msgid "it"
msgstr "it"
-#: searx/webapp.py:143
+#: searx/webapp.py:142
msgid "news"
msgstr "vijesti"
-#: searx/webapp.py:144
+#: searx/webapp.py:143
msgid "map"
msgstr "karta"
-#: searx/webapp.py:145
+#: searx/webapp.py:144
msgid "science"
msgstr "znanost"
-#: searx/webapp.py:399 searx/webapp.py:658
+#: searx/webapp.py:398 searx/webapp.py:653
msgid "Invalid settings, please edit your preferences"
msgstr "Nevažeće postavke, uredite svoje postavke"
-#: searx/webapp.py:415
+#: searx/webapp.py:410
msgid "Invalid settings"
msgstr "Nevažeće postavke"
-#: searx/webapp.py:449 searx/webapp.py:493
+#: searx/webapp.py:444 searx/webapp.py:488
msgid "search error"
msgstr "greška u pretraživanju"
-#: searx/webapp.py:530
+#: searx/webapp.py:525
msgid "{minutes} minute(s) ago"
msgstr "{minutes} minutu(minute, minuta) prije"
-#: searx/webapp.py:532
+#: searx/webapp.py:527
msgid "{hours} hour(s), {minutes} minute(s) ago"
msgstr "{hours} sat(sata, sati), {minutes} minutu(minute, minuta) prije"
@@ -107,29 +107,28 @@ msgstr "Funkcije statistike"
msgid "Compute {functions} of the arguments"
msgstr "Izračunajte {functions} argumenata"
-#: searx/engines/__init__.py:194 searx/engines/flycheck___init__.py:201
+#: searx/engines/__init__.py:194
msgid "Engine time (sec)"
msgstr "Vrijeme pretraživanja (sek)"
-#: searx/engines/__init__.py:198 searx/engines/flycheck___init__.py:205
+#: searx/engines/__init__.py:198
msgid "Page loads (sec)"
msgstr "Učitavanje stranice (sek)"
-#: searx/engines/__init__.py:202 searx/engines/flycheck___init__.py:209
-#: searx/templates/oscar/results.html:95
+#: searx/engines/__init__.py:202 searx/templates/oscar/results.html:95
#: searx/templates/simple/results.html:20
msgid "Number of results"
msgstr "Broj rezultata"
-#: searx/engines/__init__.py:206 searx/engines/flycheck___init__.py:213
+#: searx/engines/__init__.py:206
msgid "Scores"
msgstr "Pogodci"
-#: searx/engines/__init__.py:210 searx/engines/flycheck___init__.py:217
+#: searx/engines/__init__.py:210
msgid "Scores per result"
msgstr "Pogodci po rezultatu"
-#: searx/engines/__init__.py:214 searx/engines/flycheck___init__.py:221
+#: searx/engines/__init__.py:214
msgid "Errors"
msgstr "Greške"
@@ -141,9 +140,15 @@ msgstr "{title}&nbsp;(ZASTARJELO)"
msgid "This entry has been superseded by"
msgstr "Ovaj je unos zamijenio"
-#: searx/engines/pubmed.py:74
-msgid "No abstract is available for this publication."
-msgstr "Nijedan sažetak nije dostupan za ovu objavu."
+#: searx/plugins/doai_rewrite.py:7
+msgid "DOAI rewrite"
+msgstr ""
+
+#: searx/plugins/doai_rewrite.py:8
+msgid ""
+"Avoid paywalls by redirecting to open-access versions of publications when "
+"available"
+msgstr "Izbjegnite plaćanje u slučaju dostupnosti besplatne objave"
#: searx/plugins/https_rewrite.py:32
msgid "Rewrite HTTP links to HTTPS if possible"
@@ -157,16 +162,6 @@ msgstr "Beskonačno pomicanje"
msgid "Automatically load next page when scrolling to bottom of current page"
msgstr "Automatski učitajte sljedeću stranicu kada se pomaknete do dna trenutne stranice"
-#: searx/plugins/oa_doi_rewrite.py:9
-msgid "Open Access DOI rewrite"
-msgstr "Otvoreni pristup DOI prijepisa"
-
-#: searx/plugins/oa_doi_rewrite.py:10
-msgid ""
-"Avoid paywalls by redirecting to open-access versions of publications when "
-"available"
-msgstr "Izbjegnite plaćanje u slučaju dostupnosti besplatne objave"
-
#: searx/plugins/open_results_on_new_tab.py:18
#: searx/templates/oscar/preferences.html:114
#: searx/templates/simple/preferences.html:149
@@ -329,8 +324,8 @@ msgstr "Metoda"
#: searx/templates/courgette/preferences.html:63
#: searx/templates/legacy/preferences.html:64
#: searx/templates/oscar/preferences.html:86
-#: searx/templates/oscar/preferences.html:165
-#: searx/templates/oscar/preferences.html:173
+#: searx/templates/oscar/preferences.html:153
+#: searx/templates/oscar/preferences.html:161
#: searx/templates/simple/preferences.html:63
#: searx/templates/simple/preferences.html:90
msgid "SafeSearch"
@@ -402,8 +397,8 @@ msgstr "Trenutno korištene tražilice"
#: searx/templates/courgette/preferences.html:100
#: searx/templates/legacy/preferences.html:97
-#: searx/templates/oscar/preferences.html:162
-#: searx/templates/oscar/preferences.html:176
+#: searx/templates/oscar/preferences.html:150
+#: searx/templates/oscar/preferences.html:164
#: searx/templates/pix-art/preferences.html:53
#: searx/templates/simple/preferences.html:87
msgid "Engine name"
@@ -418,8 +413,8 @@ msgstr "Kategorija"
#: searx/templates/courgette/preferences.html:113
#: searx/templates/legacy/preferences.html:99
#: searx/templates/legacy/preferences.html:110
-#: searx/templates/oscar/preferences.html:161
-#: searx/templates/oscar/preferences.html:177
+#: searx/templates/oscar/preferences.html:149
+#: searx/templates/oscar/preferences.html:165
#: searx/templates/pix-art/preferences.html:54
#: searx/templates/pix-art/preferences.html:64
#: searx/templates/simple/preferences.html:86
@@ -437,7 +432,7 @@ msgstr "Blokiraj"
#: searx/templates/courgette/preferences.html:122
#: searx/templates/legacy/preferences.html:119
-#: searx/templates/oscar/preferences.html:297
+#: searx/templates/oscar/preferences.html:285
#: searx/templates/pix-art/preferences.html:73
#: searx/templates/simple/preferences.html:180
msgid ""
@@ -447,7 +442,7 @@ msgstr "Ove postavke su pohranjene u Vašim kolačićima, što omogućuje da ne
#: searx/templates/courgette/preferences.html:124
#: searx/templates/legacy/preferences.html:121
-#: searx/templates/oscar/preferences.html:299
+#: searx/templates/oscar/preferences.html:287
#: searx/templates/pix-art/preferences.html:75
#: searx/templates/simple/preferences.html:182
msgid ""
@@ -457,7 +452,7 @@ msgstr "Ovi kolačići služe Vašoj pogodnosti, ne upotrebljavamo te kolačiće
#: searx/templates/courgette/preferences.html:127
#: searx/templates/legacy/preferences.html:124
-#: searx/templates/oscar/preferences.html:305
+#: searx/templates/oscar/preferences.html:293
#: searx/templates/pix-art/preferences.html:78
#: searx/templates/simple/preferences.html:185
msgid "save"
@@ -465,14 +460,14 @@ msgstr "spremi"
#: searx/templates/courgette/preferences.html:128
#: searx/templates/legacy/preferences.html:125
-#: searx/templates/oscar/preferences.html:307
+#: searx/templates/oscar/preferences.html:295
#: searx/templates/simple/preferences.html:186
msgid "Reset defaults"
msgstr "Vraćanje zadanih postavki"
#: searx/templates/courgette/preferences.html:129
#: searx/templates/legacy/preferences.html:126
-#: searx/templates/oscar/preferences.html:306
+#: searx/templates/oscar/preferences.html:294
#: searx/templates/pix-art/preferences.html:79
#: searx/templates/simple/preferences.html:187
msgid "back"
@@ -643,23 +638,23 @@ msgid "General"
msgstr "Općenito"
#: searx/templates/oscar/preferences.html:14
-#: searx/templates/oscar/preferences.html:146
+#: searx/templates/oscar/preferences.html:134
#: searx/templates/simple/preferences.html:76
msgid "Engines"
msgstr "Tražilice"
#: searx/templates/oscar/preferences.html:15
-#: searx/templates/oscar/preferences.html:219
+#: searx/templates/oscar/preferences.html:207
msgid "Plugins"
msgstr "Dodaci"
#: searx/templates/oscar/preferences.html:16
-#: searx/templates/oscar/preferences.html:245
+#: searx/templates/oscar/preferences.html:233
msgid "Answerers"
msgstr "Davatelji odgovora"
#: searx/templates/oscar/preferences.html:17
-#: searx/templates/oscar/preferences.html:272
+#: searx/templates/oscar/preferences.html:260
msgid "Cookies"
msgstr "Kolačići"
@@ -710,88 +705,78 @@ msgstr "Odaberite stil za ovu temu"
msgid "Style"
msgstr "Stil"
-#: searx/templates/oscar/preferences.html:122
-msgid "Open Access DOI resolver"
-msgstr "Otvoreni pristup DOI rješenja"
-
-#: searx/templates/oscar/preferences.html:123
-msgid ""
-"Redirect to open-access versions of publications when available (plugin "
-"required)"
-msgstr "Preusmjeri na verzije izdanja otvorenog pristupa kada je isto dostupno (potreban je dodatak)"
-
+#: searx/templates/oscar/preferences.html:151
#: searx/templates/oscar/preferences.html:163
-#: searx/templates/oscar/preferences.html:175
#: searx/templates/simple/preferences.html:88
msgid "Shortcut"
msgstr "Prečac"
-#: searx/templates/oscar/preferences.html:164
-#: searx/templates/oscar/preferences.html:174
+#: searx/templates/oscar/preferences.html:152
+#: searx/templates/oscar/preferences.html:162
msgid "Selected language"
msgstr "Odabrani jezik"
-#: searx/templates/oscar/preferences.html:166
-#: searx/templates/oscar/preferences.html:172
+#: searx/templates/oscar/preferences.html:154
+#: searx/templates/oscar/preferences.html:160
#: searx/templates/simple/preferences.html:91
msgid "Time range"
msgstr "Vremenski raspon"
-#: searx/templates/oscar/preferences.html:167
-#: searx/templates/oscar/preferences.html:171
+#: searx/templates/oscar/preferences.html:155
+#: searx/templates/oscar/preferences.html:159
#: searx/templates/simple/preferences.html:92
msgid "Avg. time"
msgstr "Prosječno vrijeme"
-#: searx/templates/oscar/preferences.html:168
-#: searx/templates/oscar/preferences.html:170
+#: searx/templates/oscar/preferences.html:156
+#: searx/templates/oscar/preferences.html:158
#: searx/templates/simple/preferences.html:93
msgid "Max time"
msgstr "Maksimalno vrijeme"
-#: searx/templates/oscar/preferences.html:248
+#: searx/templates/oscar/preferences.html:236
msgid "This is the list of searx's instant answering modules."
msgstr "Ovo je popis searx modula za odgovore"
-#: searx/templates/oscar/preferences.html:252
+#: searx/templates/oscar/preferences.html:240
msgid "Name"
msgstr "Naziv"
-#: searx/templates/oscar/preferences.html:253
+#: searx/templates/oscar/preferences.html:241
msgid "Keywords"
msgstr "Ključne riječi"
-#: searx/templates/oscar/preferences.html:254
+#: searx/templates/oscar/preferences.html:242
msgid "Description"
msgstr "Opis"
-#: searx/templates/oscar/preferences.html:255
+#: searx/templates/oscar/preferences.html:243
msgid "Examples"
msgstr "Primjeri"
-#: searx/templates/oscar/preferences.html:275
+#: searx/templates/oscar/preferences.html:263
msgid ""
"This is the list of cookies and their values searx is storing on your "
"computer."
msgstr "Ovo je popis kolačića i njihovih vrijednosti koje pohranjuju na Vašem računalu."
-#: searx/templates/oscar/preferences.html:276
+#: searx/templates/oscar/preferences.html:264
msgid "With that list, you can assess searx transparency."
msgstr "S tim popisom možete procijeniti transparentnost pretraživanja."
-#: searx/templates/oscar/preferences.html:281
+#: searx/templates/oscar/preferences.html:269
msgid "Cookie name"
msgstr "Naziv kolačića"
-#: searx/templates/oscar/preferences.html:282
+#: searx/templates/oscar/preferences.html:270
msgid "Value"
msgstr "Vrijednost"
-#: searx/templates/oscar/preferences.html:301
+#: searx/templates/oscar/preferences.html:289
msgid "Search URL of the currently saved preferences"
msgstr "Pretraži URL adresu trenutno spremljenih postavki"
-#: searx/templates/oscar/preferences.html:301
+#: searx/templates/oscar/preferences.html:289
msgid ""
"Note: specifying custom settings in the search URL can reduce privacy by "
"leaking data to the clicked result sites."
diff --git a/searx/translations/hu/LC_MESSAGES/messages.mo b/searx/translations/hu/LC_MESSAGES/messages.mo
index 392dc99df..c8fbd03a0 100644
--- a/searx/translations/hu/LC_MESSAGES/messages.mo
+++ b/searx/translations/hu/LC_MESSAGES/messages.mo
Binary files differ
diff --git a/searx/translations/hu/LC_MESSAGES/messages.po b/searx/translations/hu/LC_MESSAGES/messages.po
index 58383cd26..8a29dcf65 100644
--- a/searx/translations/hu/LC_MESSAGES/messages.po
+++ b/searx/translations/hu/LC_MESSAGES/messages.po
@@ -11,8 +11,8 @@ msgid ""
msgstr ""
"Project-Id-Version: searx\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
-"POT-Creation-Date: 2017-11-01 21:31+0100\n"
-"PO-Revision-Date: 2017-11-03 11:14+0000\n"
+"POT-Creation-Date: 2017-10-07 19:18+0200\n"
+"PO-Revision-Date: 2019-02-23 17:39+0000\n"
"Last-Translator: Adam Tauber <asciimoo@gmail.com>\n"
"Language-Team: Hungarian (http://www.transifex.com/asciimoo/searx/language/hu/)\n"
"MIME-Version: 1.0\n"
@@ -34,63 +34,63 @@ msgstr "kérés hiba"
msgid "unexpected crash"
msgstr "nem várt hiba"
-#: searx/webapp.py:136
+#: searx/webapp.py:135
msgid "files"
msgstr "fájlok"
-#: searx/webapp.py:137
+#: searx/webapp.py:136
msgid "general"
msgstr "általános"
-#: searx/webapp.py:138
+#: searx/webapp.py:137
msgid "music"
msgstr "zene"
-#: searx/webapp.py:139
+#: searx/webapp.py:138
msgid "social media"
msgstr "közösségi média"
-#: searx/webapp.py:140
+#: searx/webapp.py:139
msgid "images"
msgstr "képek"
-#: searx/webapp.py:141
+#: searx/webapp.py:140
msgid "videos"
msgstr "videók"
-#: searx/webapp.py:142
+#: searx/webapp.py:141
msgid "it"
msgstr "it"
-#: searx/webapp.py:143
+#: searx/webapp.py:142
msgid "news"
msgstr "hírek"
-#: searx/webapp.py:144
+#: searx/webapp.py:143
msgid "map"
msgstr "térkép"
-#: searx/webapp.py:145
+#: searx/webapp.py:144
msgid "science"
msgstr "tudomány"
-#: searx/webapp.py:399 searx/webapp.py:658
+#: searx/webapp.py:398 searx/webapp.py:653
msgid "Invalid settings, please edit your preferences"
msgstr "Érvénytelen beállítások"
-#: searx/webapp.py:415
+#: searx/webapp.py:410
msgid "Invalid settings"
msgstr "érvénytelen beállítások"
-#: searx/webapp.py:449 searx/webapp.py:493
+#: searx/webapp.py:444 searx/webapp.py:488
msgid "search error"
msgstr "keresési hiba"
-#: searx/webapp.py:530
+#: searx/webapp.py:525
msgid "{minutes} minute(s) ago"
msgstr "{minutes} perce"
-#: searx/webapp.py:532
+#: searx/webapp.py:527
msgid "{hours} hour(s), {minutes} minute(s) ago"
msgstr "{hours} óra, {minutes} perce"
@@ -110,29 +110,28 @@ msgstr "Statisztikai függvények"
msgid "Compute {functions} of the arguments"
msgstr "{functions} függvények alkalmazása az argumentumokon"
-#: searx/engines/__init__.py:194 searx/engines/flycheck___init__.py:201
+#: searx/engines/__init__.py:194
msgid "Engine time (sec)"
msgstr "Keresési idő (másodperc)"
-#: searx/engines/__init__.py:198 searx/engines/flycheck___init__.py:205
+#: searx/engines/__init__.py:198
msgid "Page loads (sec)"
msgstr "Válaszidők (sec)"
-#: searx/engines/__init__.py:202 searx/engines/flycheck___init__.py:209
-#: searx/templates/oscar/results.html:95
+#: searx/engines/__init__.py:202 searx/templates/oscar/results.html:95
#: searx/templates/simple/results.html:20
msgid "Number of results"
msgstr "Találatok száma"
-#: searx/engines/__init__.py:206 searx/engines/flycheck___init__.py:213
+#: searx/engines/__init__.py:206
msgid "Scores"
msgstr "Pontszámok"
-#: searx/engines/__init__.py:210 searx/engines/flycheck___init__.py:217
+#: searx/engines/__init__.py:210
msgid "Scores per result"
msgstr "Pontszámok találatonként"
-#: searx/engines/__init__.py:214 searx/engines/flycheck___init__.py:221
+#: searx/engines/__init__.py:214
msgid "Errors"
msgstr "Hibák"
@@ -144,9 +143,15 @@ msgstr "{title}&nbsp;(ELAVULT)"
msgid "This entry has been superseded by"
msgstr "Ezt a bejegyzést törölte:"
-#: searx/engines/pubmed.py:74
-msgid "No abstract is available for this publication."
-msgstr "Nem elérhető absztrakt a publikációhoz."
+#: searx/plugins/doai_rewrite.py:7
+msgid "DOAI rewrite"
+msgstr "Szabad publikációs oldalak"
+
+#: searx/plugins/doai_rewrite.py:8
+msgid ""
+"Avoid paywalls by redirecting to open-access versions of publications when "
+"available"
+msgstr "Publikácós linkeknél szabad forrás használat, amennyiben lehetséges"
#: searx/plugins/https_rewrite.py:32
msgid "Rewrite HTTP links to HTTPS if possible"
@@ -160,16 +165,6 @@ msgstr "Végtelenített találatok"
msgid "Automatically load next page when scrolling to bottom of current page"
msgstr "További találatok automatikus betöltése"
-#: searx/plugins/oa_doi_rewrite.py:9
-msgid "Open Access DOI rewrite"
-msgstr "Szabad DOI használat"
-
-#: searx/plugins/oa_doi_rewrite.py:10
-msgid ""
-"Avoid paywalls by redirecting to open-access versions of publications when "
-"available"
-msgstr "Publikácós linkeknél szabad forrás használat, amennyiben lehetséges"
-
#: searx/plugins/open_results_on_new_tab.py:18
#: searx/templates/oscar/preferences.html:114
#: searx/templates/simple/preferences.html:149
@@ -332,8 +327,8 @@ msgstr "Method"
#: searx/templates/courgette/preferences.html:63
#: searx/templates/legacy/preferences.html:64
#: searx/templates/oscar/preferences.html:86
-#: searx/templates/oscar/preferences.html:165
-#: searx/templates/oscar/preferences.html:173
+#: searx/templates/oscar/preferences.html:153
+#: searx/templates/oscar/preferences.html:161
#: searx/templates/simple/preferences.html:63
#: searx/templates/simple/preferences.html:90
msgid "SafeSearch"
@@ -405,8 +400,8 @@ msgstr "Jelenleg használt keresők"
#: searx/templates/courgette/preferences.html:100
#: searx/templates/legacy/preferences.html:97
-#: searx/templates/oscar/preferences.html:162
-#: searx/templates/oscar/preferences.html:176
+#: searx/templates/oscar/preferences.html:150
+#: searx/templates/oscar/preferences.html:164
#: searx/templates/pix-art/preferences.html:53
#: searx/templates/simple/preferences.html:87
msgid "Engine name"
@@ -421,8 +416,8 @@ msgstr "Kategória"
#: searx/templates/courgette/preferences.html:113
#: searx/templates/legacy/preferences.html:99
#: searx/templates/legacy/preferences.html:110
-#: searx/templates/oscar/preferences.html:161
-#: searx/templates/oscar/preferences.html:177
+#: searx/templates/oscar/preferences.html:149
+#: searx/templates/oscar/preferences.html:165
#: searx/templates/pix-art/preferences.html:54
#: searx/templates/pix-art/preferences.html:64
#: searx/templates/simple/preferences.html:86
@@ -440,7 +435,7 @@ msgstr "Tiltás"
#: searx/templates/courgette/preferences.html:122
#: searx/templates/legacy/preferences.html:119
-#: searx/templates/oscar/preferences.html:297
+#: searx/templates/oscar/preferences.html:285
#: searx/templates/pix-art/preferences.html:73
#: searx/templates/simple/preferences.html:180
msgid ""
@@ -450,7 +445,7 @@ msgstr "Ezek a beállítások csak a böngésző cookie-jaiban tárolódnak."
#: searx/templates/courgette/preferences.html:124
#: searx/templates/legacy/preferences.html:121
-#: searx/templates/oscar/preferences.html:299
+#: searx/templates/oscar/preferences.html:287
#: searx/templates/pix-art/preferences.html:75
#: searx/templates/simple/preferences.html:182
msgid ""
@@ -460,7 +455,7 @@ msgstr "Ezek a cookie-k csak kényelmi funkciókat látnak el, nem használjuk a
#: searx/templates/courgette/preferences.html:127
#: searx/templates/legacy/preferences.html:124
-#: searx/templates/oscar/preferences.html:305
+#: searx/templates/oscar/preferences.html:293
#: searx/templates/pix-art/preferences.html:78
#: searx/templates/simple/preferences.html:185
msgid "save"
@@ -468,14 +463,14 @@ msgstr "mentés"
#: searx/templates/courgette/preferences.html:128
#: searx/templates/legacy/preferences.html:125
-#: searx/templates/oscar/preferences.html:307
+#: searx/templates/oscar/preferences.html:295
#: searx/templates/simple/preferences.html:186
msgid "Reset defaults"
msgstr "Alapbeállítások visszaállítása"
#: searx/templates/courgette/preferences.html:129
#: searx/templates/legacy/preferences.html:126
-#: searx/templates/oscar/preferences.html:306
+#: searx/templates/oscar/preferences.html:294
#: searx/templates/pix-art/preferences.html:79
#: searx/templates/simple/preferences.html:187
msgid "back"
@@ -646,23 +641,23 @@ msgid "General"
msgstr "Általános"
#: searx/templates/oscar/preferences.html:14
-#: searx/templates/oscar/preferences.html:146
+#: searx/templates/oscar/preferences.html:134
#: searx/templates/simple/preferences.html:76
msgid "Engines"
msgstr "Keresőmotorok"
#: searx/templates/oscar/preferences.html:15
-#: searx/templates/oscar/preferences.html:219
+#: searx/templates/oscar/preferences.html:207
msgid "Plugins"
msgstr "Pluginek"
#: searx/templates/oscar/preferences.html:16
-#: searx/templates/oscar/preferences.html:245
+#: searx/templates/oscar/preferences.html:233
msgid "Answerers"
msgstr "Válaszok"
#: searx/templates/oscar/preferences.html:17
-#: searx/templates/oscar/preferences.html:272
+#: searx/templates/oscar/preferences.html:260
msgid "Cookies"
msgstr "Sütik"
@@ -713,88 +708,78 @@ msgstr "Válassz megjelenést ehhez a témához"
msgid "Style"
msgstr "Megjelenés"
-#: searx/templates/oscar/preferences.html:122
-msgid "Open Access DOI resolver"
-msgstr "Szabad DOI feloldó"
-
-#: searx/templates/oscar/preferences.html:123
-msgid ""
-"Redirect to open-access versions of publications when available (plugin "
-"required)"
-msgstr "Átirányítás a publikáció szabadon elérhető változatára (plugin szükséges)"
-
+#: searx/templates/oscar/preferences.html:151
#: searx/templates/oscar/preferences.html:163
-#: searx/templates/oscar/preferences.html:175
#: searx/templates/simple/preferences.html:88
msgid "Shortcut"
msgstr "Rövidítés"
-#: searx/templates/oscar/preferences.html:164
-#: searx/templates/oscar/preferences.html:174
+#: searx/templates/oscar/preferences.html:152
+#: searx/templates/oscar/preferences.html:162
msgid "Selected language"
msgstr "Kiválasztott nyelv"
-#: searx/templates/oscar/preferences.html:166
-#: searx/templates/oscar/preferences.html:172
+#: searx/templates/oscar/preferences.html:154
+#: searx/templates/oscar/preferences.html:160
#: searx/templates/simple/preferences.html:91
msgid "Time range"
msgstr "Idő szűrés"
-#: searx/templates/oscar/preferences.html:167
-#: searx/templates/oscar/preferences.html:171
+#: searx/templates/oscar/preferences.html:155
+#: searx/templates/oscar/preferences.html:159
#: searx/templates/simple/preferences.html:92
msgid "Avg. time"
msgstr "Átlag idő"
-#: searx/templates/oscar/preferences.html:168
-#: searx/templates/oscar/preferences.html:170
+#: searx/templates/oscar/preferences.html:156
+#: searx/templates/oscar/preferences.html:158
#: searx/templates/simple/preferences.html:93
msgid "Max time"
msgstr "Maximális idő"
-#: searx/templates/oscar/preferences.html:248
+#: searx/templates/oscar/preferences.html:236
msgid "This is the list of searx's instant answering modules."
msgstr "Az alábbi lista tartalmazza searx instant válaszoló moduljait."
-#: searx/templates/oscar/preferences.html:252
+#: searx/templates/oscar/preferences.html:240
msgid "Name"
msgstr "Név"
-#: searx/templates/oscar/preferences.html:253
+#: searx/templates/oscar/preferences.html:241
msgid "Keywords"
msgstr "Kulcsszavak"
-#: searx/templates/oscar/preferences.html:254
+#: searx/templates/oscar/preferences.html:242
msgid "Description"
msgstr "Leírás"
-#: searx/templates/oscar/preferences.html:255
+#: searx/templates/oscar/preferences.html:243
msgid "Examples"
msgstr "Példák"
-#: searx/templates/oscar/preferences.html:275
+#: searx/templates/oscar/preferences.html:263
msgid ""
"This is the list of cookies and their values searx is storing on your "
"computer."
msgstr "Searx által használt sütik listája."
-#: searx/templates/oscar/preferences.html:276
+#: searx/templates/oscar/preferences.html:264
msgid "With that list, you can assess searx transparency."
msgstr "Ez a lista a kereső transzparenciáját hivatott megmutatni."
-#: searx/templates/oscar/preferences.html:281
+#: searx/templates/oscar/preferences.html:269
msgid "Cookie name"
msgstr "Süti név"
-#: searx/templates/oscar/preferences.html:282
+#: searx/templates/oscar/preferences.html:270
msgid "Value"
msgstr "Érték"
-#: searx/templates/oscar/preferences.html:301
+#: searx/templates/oscar/preferences.html:289
msgid "Search URL of the currently saved preferences"
msgstr "Keresési URL a beállítások alapján"
-#: searx/templates/oscar/preferences.html:301
+#: searx/templates/oscar/preferences.html:289
msgid ""
"Note: specifying custom settings in the search URL can reduce privacy by "
"leaking data to the clicked result sites."
diff --git a/searx/translations/ia/LC_MESSAGES/messages.mo b/searx/translations/ia/LC_MESSAGES/messages.mo
new file mode 100644
index 000000000..bc33d9b46
--- /dev/null
+++ b/searx/translations/ia/LC_MESSAGES/messages.mo
Binary files differ
diff --git a/searx/translations/ia/LC_MESSAGES/messages.po b/searx/translations/ia/LC_MESSAGES/messages.po
new file mode 100644
index 000000000..7c59968bc
--- /dev/null
+++ b/searx/translations/ia/LC_MESSAGES/messages.po
@@ -0,0 +1,998 @@
+# Translations template for PROJECT.
+# Copyright (C) 2017 ORGANIZATION
+# This file is distributed under the same license as the PROJECT project.
+#
+# Translators:
+# Guimarães Mello <matheus.mello@disroot.org>, 2017,2019
+msgid ""
+msgstr ""
+"Project-Id-Version: searx\n"
+"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
+"POT-Creation-Date: 2017-10-07 19:18+0200\n"
+"PO-Revision-Date: 2019-09-30 14:07+0000\n"
+"Last-Translator: Guimarães Mello <matheus.mello@disroot.org>\n"
+"Language-Team: Interlingua (http://www.transifex.com/asciimoo/searx/language/ia/)\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Generated-By: Babel 2.3.4\n"
+"Language: ia\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+
+#: searx/search.py:137 searx/search.py:182
+msgid "timeout"
+msgstr "tempore finite"
+
+#: searx/search.py:144
+msgid "request exception"
+msgstr "requesta un exception"
+
+#: searx/search.py:151
+msgid "unexpected crash"
+msgstr "crash impreviste"
+
+#: searx/webapp.py:135
+msgid "files"
+msgstr "files"
+
+#: searx/webapp.py:136
+msgid "general"
+msgstr "general"
+
+#: searx/webapp.py:137
+msgid "music"
+msgstr "musica"
+
+#: searx/webapp.py:138
+msgid "social media"
+msgstr "medios social"
+
+#: searx/webapp.py:139
+msgid "images"
+msgstr "imagines"
+
+#: searx/webapp.py:140
+msgid "videos"
+msgstr "videos"
+
+#: searx/webapp.py:141
+msgid "it"
+msgstr "software"
+
+#: searx/webapp.py:142
+msgid "news"
+msgstr "novas"
+
+#: searx/webapp.py:143
+msgid "map"
+msgstr "mappa"
+
+#: searx/webapp.py:144
+msgid "science"
+msgstr "scientia"
+
+#: searx/webapp.py:398 searx/webapp.py:653
+msgid "Invalid settings, please edit your preferences"
+msgstr "Configurationes non valide, per favor, modifica tu preferentias."
+
+#: searx/webapp.py:410
+msgid "Invalid settings"
+msgstr "Configurationes invalide"
+
+#: searx/webapp.py:444 searx/webapp.py:488
+msgid "search error"
+msgstr "error in recerca"
+
+#: searx/webapp.py:525
+msgid "{minutes} minute(s) ago"
+msgstr "{minutes} minuta(s) retro"
+
+#: searx/webapp.py:527
+msgid "{hours} hour(s), {minutes} minute(s) ago"
+msgstr "{hours} hora(s), {minutes} minuta(s) retro"
+
+#: searx/answerers/random/answerer.py:53
+msgid "Random value generator"
+msgstr "Generator de valores aleatori"
+
+#: searx/answerers/random/answerer.py:54
+msgid "Generate different random values"
+msgstr "Generar differente valores aleatori"
+
+#: searx/answerers/statistics/answerer.py:53
+msgid "Statistics functions"
+msgstr "Functiones statistic"
+
+#: searx/answerers/statistics/answerer.py:54
+msgid "Compute {functions} of the arguments"
+msgstr "Computa {functions} del argumentos"
+
+#: searx/engines/__init__.py:194
+msgid "Engine time (sec)"
+msgstr "Tempore de motor (secundas)"
+
+#: searx/engines/__init__.py:198
+msgid "Page loads (sec)"
+msgstr "Cargas de pagina (secundas)"
+
+#: searx/engines/__init__.py:202 searx/templates/oscar/results.html:95
+#: searx/templates/simple/results.html:20
+msgid "Number of results"
+msgstr "Numero de resultatos"
+
+#: searx/engines/__init__.py:206
+msgid "Scores"
+msgstr "Punctos"
+
+#: searx/engines/__init__.py:210
+msgid "Scores per result"
+msgstr "Punctos per resultato"
+
+#: searx/engines/__init__.py:214
+msgid "Errors"
+msgstr "Errores"
+
+#: searx/engines/pdbe.py:87
+msgid "{title}&nbsp;(OBSOLETE)"
+msgstr "{title}&nbsp;(OBSOLETE)"
+
+#: searx/engines/pdbe.py:91
+msgid "This entry has been superseded by"
+msgstr "Iste entrata esseva substituite per"
+
+#: searx/plugins/doai_rewrite.py:7
+msgid "DOAI rewrite"
+msgstr "rescriber DOAI "
+
+#: searx/plugins/doai_rewrite.py:8
+msgid ""
+"Avoid paywalls by redirecting to open-access versions of publications when "
+"available"
+msgstr "Evita paywalls per redirectionar a versiones de publicationes in accesso aperte, quando disponibile"
+
+#: searx/plugins/https_rewrite.py:32
+msgid "Rewrite HTTP links to HTTPS if possible"
+msgstr "Rescriber ligamines HTTP a HTTPS si possibile"
+
+#: searx/plugins/infinite_scroll.py:3
+msgid "Infinite scroll"
+msgstr "Rolamento infinite"
+
+#: searx/plugins/infinite_scroll.py:4
+msgid "Automatically load next page when scrolling to bottom of current page"
+msgstr "Automaticamente cargar le proxime pagina quando arrivar al fundo del pagina actual"
+
+#: searx/plugins/open_results_on_new_tab.py:18
+#: searx/templates/oscar/preferences.html:114
+#: searx/templates/simple/preferences.html:149
+msgid "Open result links on new browser tabs"
+msgstr "Aperir le resultatos sur nove schedas del navigator"
+
+#: searx/plugins/open_results_on_new_tab.py:19
+msgid ""
+"Results are opened in the same window by default. This plugin overwrites the"
+" default behaviour to open links on new tabs/windows. (JavaScript required)"
+msgstr "Resultatos es aperite in le mesme fenestra per predefinition. Iste extension superscribe le comportamento predefinite pro aperir ligamines in nove schedas/fenestras. (JavaScript es necessari)"
+
+#: searx/plugins/search_on_category_select.py:18
+msgid "Search on category select"
+msgstr "Recercar in le categoria selectionate"
+
+#: searx/plugins/search_on_category_select.py:19
+msgid ""
+"Perform search immediately if a category selected. Disable to select "
+"multiple categories. (JavaScript required)"
+msgstr "Exequer le recerca immediatemente si un categoria es selectionate. Disactiva lo pro selectionar multiple categorias. (JavaScript es necessari)"
+
+#: searx/plugins/self_info.py:20
+msgid ""
+"Displays your IP if the query is \"ip\" and your user agent if the query "
+"contains \"user agent\"."
+msgstr "Monstra tu IP si le consulta es \"ip\"; e monstra tu agente de usator si le consulta contine \"user agent\"."
+
+#: searx/plugins/tracker_url_remover.py:26
+msgid "Tracker URL remover"
+msgstr "Remover tracker del URL"
+
+#: searx/plugins/tracker_url_remover.py:27
+msgid "Remove trackers arguments from the returned URL"
+msgstr "Remover argumentos del tracker ab le URL retornate"
+
+#: searx/plugins/vim_hotkeys.py:3
+msgid "Vim-like hotkeys"
+msgstr "Vias breve de claviero tal como in Vim"
+
+#: searx/plugins/vim_hotkeys.py:4
+msgid ""
+"Navigate search results with Vim-like hotkeys (JavaScript required). Press "
+"\"h\" key on main or result page to get help."
+msgstr "Navigar in le resultatos de recerca per vias breve de claviero à la Vim (JavaScript es necessari). Pulsa le clave \"h\" super le pagina del resultato pro obtener adjuta."
+
+#: searx/templates/courgette/404.html:4 searx/templates/legacy/404.html:4
+#: searx/templates/oscar/404.html:4 searx/templates/pix-art/404.html:4
+#: searx/templates/simple/404.html:4
+msgid "Page not found"
+msgstr "Pagina non trovate"
+
+#: searx/templates/courgette/404.html:6 searx/templates/legacy/404.html:6
+#: searx/templates/oscar/404.html:6 searx/templates/pix-art/404.html:6
+#: searx/templates/simple/404.html:6
+#, python-format
+msgid "Go to %(search_page)s."
+msgstr "Ir al %(search_page)s."
+
+#: searx/templates/courgette/404.html:6 searx/templates/legacy/404.html:6
+#: searx/templates/oscar/404.html:6 searx/templates/pix-art/404.html:6
+#: searx/templates/simple/404.html:6
+msgid "search page"
+msgstr "pagina de recerca"
+
+#: searx/templates/courgette/index.html:9
+#: searx/templates/courgette/index.html:13
+#: searx/templates/courgette/results.html:5
+#: searx/templates/legacy/index.html:8 searx/templates/legacy/index.html:12
+#: searx/templates/oscar/navbar.html:7
+#: searx/templates/oscar/preferences.html:3
+#: searx/templates/pix-art/index.html:8
+msgid "preferences"
+msgstr "preferentias"
+
+#: searx/templates/courgette/index.html:11
+#: searx/templates/legacy/index.html:10 searx/templates/oscar/about.html:2
+#: searx/templates/oscar/navbar.html:6 searx/templates/pix-art/index.html:7
+msgid "about"
+msgstr "a proposito"
+
+#: searx/templates/courgette/preferences.html:5
+#: searx/templates/legacy/preferences.html:5
+#: searx/templates/oscar/preferences.html:8
+#: searx/templates/pix-art/preferences.html:5
+#: searx/templates/simple/preferences.html:26
+msgid "Preferences"
+msgstr "Preferentias"
+
+#: searx/templates/courgette/preferences.html:9
+#: searx/templates/legacy/preferences.html:9
+#: searx/templates/oscar/preferences.html:33
+#: searx/templates/oscar/preferences.html:35
+#: searx/templates/simple/preferences.html:34
+msgid "Default categories"
+msgstr "categorias predefinite"
+
+#: searx/templates/courgette/preferences.html:13
+#: searx/templates/legacy/preferences.html:14
+#: searx/templates/oscar/preferences.html:41
+#: searx/templates/pix-art/preferences.html:9
+#: searx/templates/simple/preferences.html:39
+#: searx/templates/simple/preferences.html:163
+msgid "Search language"
+msgstr "Lingua pro le recerca"
+
+#: searx/templates/courgette/preferences.html:16
+#: searx/templates/legacy/preferences.html:17
+#: searx/templates/oscar/languages.html:6
+#: searx/templates/pix-art/preferences.html:12
+#: searx/templates/simple/languages.html:2
+#: searx/templates/simple/preferences.html:42
+msgid "Default language"
+msgstr "Lingua predefinite"
+
+#: searx/templates/courgette/preferences.html:24
+#: searx/templates/legacy/preferences.html:25
+#: searx/templates/oscar/preferences.html:47
+#: searx/templates/pix-art/preferences.html:20
+#: searx/templates/simple/preferences.html:120
+msgid "Interface language"
+msgstr "Lingua del interfacie"
+
+#: searx/templates/courgette/preferences.html:34
+#: searx/templates/legacy/preferences.html:35
+#: searx/templates/oscar/preferences.html:57
+#: searx/templates/simple/preferences.html:51
+msgid "Autocomplete"
+msgstr "Autocompletar"
+
+#: searx/templates/courgette/preferences.html:45
+#: searx/templates/legacy/preferences.html:46
+#: searx/templates/oscar/preferences.html:68
+#: searx/templates/simple/preferences.html:166
+msgid "Image proxy"
+msgstr "Proxy pro imagines"
+
+#: searx/templates/courgette/preferences.html:48
+#: searx/templates/legacy/preferences.html:49
+#: searx/templates/oscar/preferences.html:72
+#: searx/templates/simple/preferences.html:169
+msgid "Enabled"
+msgstr "Activate"
+
+#: searx/templates/courgette/preferences.html:49
+#: searx/templates/legacy/preferences.html:50
+#: searx/templates/oscar/preferences.html:73
+#: searx/templates/simple/preferences.html:170
+msgid "Disabled"
+msgstr "Disactivate"
+
+#: searx/templates/courgette/preferences.html:54
+#: searx/templates/legacy/preferences.html:55
+#: searx/templates/oscar/preferences.html:77
+#: searx/templates/pix-art/preferences.html:30
+#: searx/templates/simple/preferences.html:156
+msgid "Method"
+msgstr "Methodo"
+
+#: searx/templates/courgette/preferences.html:63
+#: searx/templates/legacy/preferences.html:64
+#: searx/templates/oscar/preferences.html:86
+#: searx/templates/oscar/preferences.html:153
+#: searx/templates/oscar/preferences.html:161
+#: searx/templates/simple/preferences.html:63
+#: searx/templates/simple/preferences.html:90
+msgid "SafeSearch"
+msgstr "Filtro de contento potentialmente offensive"
+
+#: searx/templates/courgette/preferences.html:66
+#: searx/templates/legacy/preferences.html:67
+#: searx/templates/oscar/preferences.html:90
+#: searx/templates/simple/preferences.html:66
+msgid "Strict"
+msgstr "Rigorose"
+
+#: searx/templates/courgette/preferences.html:67
+#: searx/templates/legacy/preferences.html:68
+#: searx/templates/oscar/preferences.html:91
+#: searx/templates/simple/preferences.html:67
+msgid "Moderate"
+msgstr "Moderate"
+
+#: searx/templates/courgette/preferences.html:68
+#: searx/templates/legacy/preferences.html:69
+#: searx/templates/oscar/preferences.html:92
+#: searx/templates/simple/preferences.html:68
+msgid "None"
+msgstr "Nulle"
+
+#: searx/templates/courgette/preferences.html:73
+#: searx/templates/legacy/preferences.html:74
+#: searx/templates/oscar/preferences.html:96
+#: searx/templates/pix-art/preferences.html:39
+#: searx/templates/simple/preferences.html:131
+msgid "Themes"
+msgstr "Themas"
+
+#: searx/templates/courgette/preferences.html:83
+msgid "Color"
+msgstr "Color"
+
+#: searx/templates/courgette/preferences.html:86
+msgid "Blue (default)"
+msgstr "Blau (standard)"
+
+#: searx/templates/courgette/preferences.html:87
+msgid "Violet"
+msgstr "Violette"
+
+#: searx/templates/courgette/preferences.html:88
+msgid "Green"
+msgstr "Verde"
+
+#: searx/templates/courgette/preferences.html:89
+msgid "Cyan"
+msgstr "Cyano"
+
+#: searx/templates/courgette/preferences.html:90
+msgid "Orange"
+msgstr "Orange"
+
+#: searx/templates/courgette/preferences.html:91
+msgid "Red"
+msgstr "Rubie"
+
+#: searx/templates/courgette/preferences.html:96
+#: searx/templates/legacy/preferences.html:93
+#: searx/templates/pix-art/preferences.html:49
+#: searx/templates/simple/preferences.html:77
+msgid "Currently used search engines"
+msgstr "Motores de recerca actualmente usate"
+
+#: searx/templates/courgette/preferences.html:100
+#: searx/templates/legacy/preferences.html:97
+#: searx/templates/oscar/preferences.html:150
+#: searx/templates/oscar/preferences.html:164
+#: searx/templates/pix-art/preferences.html:53
+#: searx/templates/simple/preferences.html:87
+msgid "Engine name"
+msgstr "Nomine del motor"
+
+#: searx/templates/courgette/preferences.html:101
+#: searx/templates/legacy/preferences.html:98
+msgid "Category"
+msgstr "Categoria"
+
+#: searx/templates/courgette/preferences.html:102
+#: searx/templates/courgette/preferences.html:113
+#: searx/templates/legacy/preferences.html:99
+#: searx/templates/legacy/preferences.html:110
+#: searx/templates/oscar/preferences.html:149
+#: searx/templates/oscar/preferences.html:165
+#: searx/templates/pix-art/preferences.html:54
+#: searx/templates/pix-art/preferences.html:64
+#: searx/templates/simple/preferences.html:86
+msgid "Allow"
+msgstr "Permitter"
+
+#: searx/templates/courgette/preferences.html:102
+#: searx/templates/courgette/preferences.html:114
+#: searx/templates/legacy/preferences.html:99
+#: searx/templates/legacy/preferences.html:111
+#: searx/templates/pix-art/preferences.html:54
+#: searx/templates/pix-art/preferences.html:65
+msgid "Block"
+msgstr "Blocar"
+
+#: searx/templates/courgette/preferences.html:122
+#: searx/templates/legacy/preferences.html:119
+#: searx/templates/oscar/preferences.html:285
+#: searx/templates/pix-art/preferences.html:73
+#: searx/templates/simple/preferences.html:180
+msgid ""
+"These settings are stored in your cookies, this allows us not to store this "
+"data about you."
+msgstr "Iste preferentias es salvate in tu cookies, le qual permitte nos non salvar iste datos super vos."
+
+#: searx/templates/courgette/preferences.html:124
+#: searx/templates/legacy/preferences.html:121
+#: searx/templates/oscar/preferences.html:287
+#: searx/templates/pix-art/preferences.html:75
+#: searx/templates/simple/preferences.html:182
+msgid ""
+"These cookies serve your sole convenience, we don't use these cookies to "
+"track you."
+msgstr "Iste cookies servi solmente a tu convenientia, nos non usa iste cookies pro traciar te."
+
+#: searx/templates/courgette/preferences.html:127
+#: searx/templates/legacy/preferences.html:124
+#: searx/templates/oscar/preferences.html:293
+#: searx/templates/pix-art/preferences.html:78
+#: searx/templates/simple/preferences.html:185
+msgid "save"
+msgstr "salveguardar"
+
+#: searx/templates/courgette/preferences.html:128
+#: searx/templates/legacy/preferences.html:125
+#: searx/templates/oscar/preferences.html:295
+#: searx/templates/simple/preferences.html:186
+msgid "Reset defaults"
+msgstr "Restablir configurationes"
+
+#: searx/templates/courgette/preferences.html:129
+#: searx/templates/legacy/preferences.html:126
+#: searx/templates/oscar/preferences.html:294
+#: searx/templates/pix-art/preferences.html:79
+#: searx/templates/simple/preferences.html:187
+msgid "back"
+msgstr "retroceder"
+
+#: searx/templates/courgette/results.html:12
+#: searx/templates/legacy/results.html:13
+#: searx/templates/oscar/results.html:136
+#: searx/templates/simple/results.html:58
+msgid "Search URL"
+msgstr "Recercar URL"
+
+#: searx/templates/courgette/results.html:16
+#: searx/templates/legacy/results.html:17
+#: searx/templates/oscar/results.html:141
+#: searx/templates/simple/results.html:62
+msgid "Download results"
+msgstr "Discargar resultatos"
+
+#: searx/templates/courgette/results.html:34
+#: searx/templates/legacy/results.html:35
+#: searx/templates/simple/results.html:10
+msgid "Answers"
+msgstr "Replicas"
+
+#: searx/templates/courgette/results.html:42
+#: searx/templates/legacy/results.html:43
+#: searx/templates/oscar/results.html:116
+#: searx/templates/simple/results.html:42
+msgid "Suggestions"
+msgstr "Suggestiones"
+
+#: searx/templates/courgette/results.html:70
+#: searx/templates/legacy/results.html:81
+#: searx/templates/oscar/results.html:68 searx/templates/oscar/results.html:78
+#: searx/templates/simple/results.html:130
+msgid "previous page"
+msgstr "pagina previe"
+
+#: searx/templates/courgette/results.html:81
+#: searx/templates/legacy/results.html:92
+#: searx/templates/oscar/results.html:62 searx/templates/oscar/results.html:84
+#: searx/templates/simple/results.html:145
+msgid "next page"
+msgstr "pagina sequente"
+
+#: searx/templates/courgette/search.html:3
+#: searx/templates/legacy/search.html:3 searx/templates/oscar/search.html:6
+#: searx/templates/oscar/search_full.html:9
+#: searx/templates/pix-art/search.html:3 searx/templates/simple/search.html:4
+msgid "Search for..."
+msgstr "Recercar re..."
+
+#: searx/templates/courgette/stats.html:4 searx/templates/legacy/stats.html:4
+#: searx/templates/oscar/stats.html:5 searx/templates/pix-art/stats.html:4
+#: searx/templates/simple/stats.html:7
+msgid "Engine stats"
+msgstr "Statisticas de motores"
+
+#: searx/templates/courgette/result_templates/images.html:4
+#: searx/templates/legacy/result_templates/images.html:4
+#: searx/templates/pix-art/result_templates/images.html:4
+msgid "original context"
+msgstr "contexto original"
+
+#: searx/templates/courgette/result_templates/torrent.html:7
+#: searx/templates/legacy/result_templates/torrent.html:11
+#: searx/templates/oscar/result_templates/torrent.html:6
+#: searx/templates/simple/result_templates/torrent.html:9
+msgid "Seeder"
+msgstr "Seeder"
+
+#: searx/templates/courgette/result_templates/torrent.html:7
+#: searx/templates/legacy/result_templates/torrent.html:11
+#: searx/templates/oscar/result_templates/torrent.html:6
+#: searx/templates/simple/result_templates/torrent.html:9
+msgid "Leecher"
+msgstr "Leecher"
+
+#: searx/templates/courgette/result_templates/torrent.html:9
+#: searx/templates/legacy/result_templates/torrent.html:9
+#: searx/templates/oscar/macros.html:23
+#: searx/templates/simple/result_templates/torrent.html:6
+msgid "magnet link"
+msgstr "ligamine magnetic"
+
+#: searx/templates/courgette/result_templates/torrent.html:10
+#: searx/templates/legacy/result_templates/torrent.html:10
+#: searx/templates/oscar/macros.html:24
+#: searx/templates/simple/result_templates/torrent.html:7
+msgid "torrent file"
+msgstr "file torrente"
+
+#: searx/templates/legacy/categories.html:8
+#: searx/templates/simple/categories.html:6
+msgid "Click on the magnifier to perform search"
+msgstr "Clicca sur le lupa pro exequer le recerca"
+
+#: searx/templates/legacy/preferences.html:84
+#: searx/templates/oscar/preferences.html:113
+#: searx/templates/simple/preferences.html:142
+msgid "Results on new tabs"
+msgstr "Resultatos sur nove schedas"
+
+#: searx/templates/legacy/preferences.html:87
+#: searx/templates/oscar/preferences.html:117
+#: searx/templates/simple/preferences.html:145
+msgid "On"
+msgstr "Activate"
+
+#: searx/templates/legacy/preferences.html:88
+#: searx/templates/oscar/preferences.html:118
+#: searx/templates/simple/preferences.html:146
+msgid "Off"
+msgstr "Disactivate"
+
+#: searx/templates/legacy/result_templates/code.html:3
+#: searx/templates/legacy/result_templates/default.html:3
+#: searx/templates/legacy/result_templates/map.html:9
+#: searx/templates/oscar/macros.html:34 searx/templates/oscar/macros.html:48
+#: searx/templates/simple/macros.html:43
+msgid "cached"
+msgstr "in cache"
+
+#: searx/templates/oscar/advanced.html:4
+msgid "Advanced settings"
+msgstr "Configurationes avantiate"
+
+#: searx/templates/oscar/base.html:62
+#: searx/templates/oscar/messages/first_time.html:4
+#: searx/templates/oscar/messages/save_settings_successfull.html:5
+#: searx/templates/oscar/messages/unknow_error.html:5
+msgid "Close"
+msgstr "Clauder"
+
+#: searx/templates/oscar/base.html:64
+#: searx/templates/oscar/messages/no_results.html:4
+#: searx/templates/simple/messages/no_results.html:4
+#: searx/templates/simple/results.html:25
+msgid "Error!"
+msgstr "Error!"
+
+#: searx/templates/oscar/base.html:90 searx/templates/simple/base.html:55
+msgid "Powered by"
+msgstr "Actionate per"
+
+#: searx/templates/oscar/base.html:90 searx/templates/simple/base.html:55
+msgid "a privacy-respecting, hackable metasearch engine"
+msgstr "un motor de meta-recerca, capabile de reprogrammation e respectuose al confidentialitate"
+
+#: searx/templates/oscar/macros.html:36 searx/templates/oscar/macros.html:50
+#: searx/templates/simple/macros.html:43
+msgid "proxied"
+msgstr "per proxy"
+
+#: searx/templates/oscar/macros.html:92
+msgid "supported"
+msgstr "supportate"
+
+#: searx/templates/oscar/macros.html:96
+msgid "not supported"
+msgstr "non supportate"
+
+#: searx/templates/oscar/preferences.html:13
+#: searx/templates/oscar/preferences.html:22
+#: searx/templates/simple/preferences.html:32
+msgid "General"
+msgstr "General"
+
+#: searx/templates/oscar/preferences.html:14
+#: searx/templates/oscar/preferences.html:134
+#: searx/templates/simple/preferences.html:76
+msgid "Engines"
+msgstr "Motores"
+
+#: searx/templates/oscar/preferences.html:15
+#: searx/templates/oscar/preferences.html:207
+msgid "Plugins"
+msgstr "Extensiones"
+
+#: searx/templates/oscar/preferences.html:16
+#: searx/templates/oscar/preferences.html:233
+msgid "Answerers"
+msgstr "Modulos de Responsa"
+
+#: searx/templates/oscar/preferences.html:17
+#: searx/templates/oscar/preferences.html:260
+msgid "Cookies"
+msgstr "Cookies"
+
+#: searx/templates/oscar/preferences.html:42
+#: searx/templates/simple/preferences.html:48
+msgid "What language do you prefer for search?"
+msgstr "Qual lingua tu prefere pro recercar? "
+
+#: searx/templates/oscar/preferences.html:48
+#: searx/templates/simple/preferences.html:128
+msgid "Change the language of the layout"
+msgstr "Cambia le lingua del interfacie"
+
+#: searx/templates/oscar/preferences.html:58
+#: searx/templates/simple/preferences.html:60
+msgid "Find stuff as you type"
+msgstr "Trova cosas durante que tu scribe"
+
+#: searx/templates/oscar/preferences.html:69
+#: searx/templates/simple/preferences.html:173
+msgid "Proxying image results through searx"
+msgstr "Usar proxy pro obtener resultatos de imagines per searx"
+
+#: searx/templates/oscar/preferences.html:78
+msgid ""
+"Change how forms are submited, <a "
+"href=\"http://en.wikipedia.org/wiki/Hypertext_Transfer_Protocol#Request_methods\""
+" rel=\"external\">learn more about request methods</a>"
+msgstr "Cambiar como le formularios es submittite. <a href=\"http://en.wikipedia.org/wiki/Hypertext_Transfer_Protocol#Request_methods\" rel=\"external\"> apprende plus re methodos de requesta </a>"
+
+#: searx/templates/oscar/preferences.html:87
+#: searx/templates/simple/preferences.html:71
+msgid "Filter content"
+msgstr "Filtrar contento"
+
+#: searx/templates/oscar/preferences.html:97
+#: searx/templates/simple/preferences.html:139
+msgid "Change searx layout"
+msgstr "Cambiar le interfacie de searx"
+
+#: searx/templates/oscar/preferences.html:106
+#: searx/templates/oscar/preferences.html:111
+msgid "Choose style for this theme"
+msgstr "Selectiona un stilo pro iste thema"
+
+#: searx/templates/oscar/preferences.html:106
+#: searx/templates/oscar/preferences.html:111
+msgid "Style"
+msgstr "Stilo"
+
+#: searx/templates/oscar/preferences.html:151
+#: searx/templates/oscar/preferences.html:163
+#: searx/templates/simple/preferences.html:88
+msgid "Shortcut"
+msgstr "Via breve"
+
+#: searx/templates/oscar/preferences.html:152
+#: searx/templates/oscar/preferences.html:162
+msgid "Selected language"
+msgstr "Lingua selectionate"
+
+#: searx/templates/oscar/preferences.html:154
+#: searx/templates/oscar/preferences.html:160
+#: searx/templates/simple/preferences.html:91
+msgid "Time range"
+msgstr "Intervallo de tempore"
+
+#: searx/templates/oscar/preferences.html:155
+#: searx/templates/oscar/preferences.html:159
+#: searx/templates/simple/preferences.html:92
+msgid "Avg. time"
+msgstr "Tempore medie"
+
+#: searx/templates/oscar/preferences.html:156
+#: searx/templates/oscar/preferences.html:158
+#: searx/templates/simple/preferences.html:93
+msgid "Max time"
+msgstr "Tempore maxime"
+
+#: searx/templates/oscar/preferences.html:236
+msgid "This is the list of searx's instant answering modules."
+msgstr "Isto es le lista del modulos de responsa instantanee de searx."
+
+#: searx/templates/oscar/preferences.html:240
+msgid "Name"
+msgstr "Nomine"
+
+#: searx/templates/oscar/preferences.html:241
+msgid "Keywords"
+msgstr "Parolas clave"
+
+#: searx/templates/oscar/preferences.html:242
+msgid "Description"
+msgstr "Description"
+
+#: searx/templates/oscar/preferences.html:243
+msgid "Examples"
+msgstr "Exemplos"
+
+#: searx/templates/oscar/preferences.html:263
+msgid ""
+"This is the list of cookies and their values searx is storing on your "
+"computer."
+msgstr "Isto es le lista de cookies e lor valores que searx salva in tu computator."
+
+#: searx/templates/oscar/preferences.html:264
+msgid "With that list, you can assess searx transparency."
+msgstr "Per iste lista, tu pote evalutar le transparentia de searx."
+
+#: searx/templates/oscar/preferences.html:269
+msgid "Cookie name"
+msgstr "Nomine de cookie"
+
+#: searx/templates/oscar/preferences.html:270
+msgid "Value"
+msgstr "Valor"
+
+#: searx/templates/oscar/preferences.html:289
+msgid "Search URL of the currently saved preferences"
+msgstr "URL de Recerca del preferentias actualmente salvate"
+
+#: searx/templates/oscar/preferences.html:289
+msgid ""
+"Note: specifying custom settings in the search URL can reduce privacy by "
+"leaking data to the clicked result sites."
+msgstr "Nota: specificar configurationes personalisate in le URL de Recerca pote reducer le confidentialitate per lassar escappar datos al sitos cliccate in le resultatos."
+
+#: searx/templates/oscar/results.html:17
+msgid "Search results"
+msgstr "Resultatos de recerca"
+
+#: searx/templates/oscar/results.html:21
+#: searx/templates/simple/results.html:84
+msgid "Try searching for:"
+msgstr "Essaya recercar pro:"
+
+#: searx/templates/oscar/results.html:100
+#: searx/templates/simple/results.html:25
+msgid "Engines cannot retrieve results"
+msgstr "Le motores non poteva obtener resultatos"
+
+#: searx/templates/oscar/results.html:131
+msgid "Links"
+msgstr "Ligamines"
+
+#: searx/templates/oscar/search.html:8
+#: searx/templates/oscar/search_full.html:11
+#: searx/templates/simple/search.html:5
+msgid "Start search"
+msgstr "Initiar recerca"
+
+#: searx/templates/oscar/stats.html:2
+msgid "stats"
+msgstr "statisticas"
+
+#: searx/templates/oscar/time-range.html:3
+#: searx/templates/simple/time-range.html:3
+msgid "Anytime"
+msgstr "Aliquando"
+
+#: searx/templates/oscar/time-range.html:6
+#: searx/templates/simple/time-range.html:6
+msgid "Last day"
+msgstr "Le die passate"
+
+#: searx/templates/oscar/time-range.html:9
+#: searx/templates/simple/time-range.html:9
+msgid "Last week"
+msgstr "Le septimana passate"
+
+#: searx/templates/oscar/time-range.html:12
+#: searx/templates/simple/time-range.html:12
+msgid "Last month"
+msgstr "Le mense passate"
+
+#: searx/templates/oscar/time-range.html:15
+#: searx/templates/simple/time-range.html:15
+msgid "Last year"
+msgstr "Le anno passate"
+
+#: searx/templates/oscar/messages/first_time.html:6
+#: searx/templates/oscar/messages/no_data_available.html:3
+msgid "Heads up!"
+msgstr "Attention!"
+
+#: searx/templates/oscar/messages/first_time.html:7
+msgid "It look like you are using searx first time."
+msgstr "Il pare que tu usa searx pro le prime vice."
+
+#: searx/templates/oscar/messages/no_cookies.html:3
+msgid "Information!"
+msgstr "Information!"
+
+#: searx/templates/oscar/messages/no_cookies.html:4
+msgid "currently, there are no cookies defined."
+msgstr "actualmente, il non ha cookies definite."
+
+#: searx/templates/oscar/messages/no_data_available.html:4
+msgid "There is currently no data available. "
+msgstr "Actualmente, il non ha datos disponibile."
+
+#: searx/templates/oscar/messages/no_results.html:4
+#: searx/templates/simple/messages/no_results.html:4
+msgid "Engines cannot retrieve results."
+msgstr "Le motores non poteva obtener resultatos."
+
+#: searx/templates/oscar/messages/no_results.html:10
+#: searx/templates/simple/messages/no_results.html:10
+msgid "Please, try again later or find another searx instance."
+msgstr "Per favor, essaya de novo plus tarde o trova un altere instantia de searx"
+
+#: searx/templates/oscar/messages/no_results.html:14
+#: searx/templates/simple/messages/no_results.html:14
+msgid "Sorry!"
+msgstr "Pardono!"
+
+#: searx/templates/oscar/messages/no_results.html:15
+#: searx/templates/simple/messages/no_results.html:15
+msgid ""
+"we didn't find any results. Please use another query or search in more "
+"categories."
+msgstr "Nos trovava nulle resultatos. Per favor, usa altere consulta o recerca in plus categorias."
+
+#: searx/templates/oscar/messages/save_settings_successfull.html:7
+msgid "Well done!"
+msgstr "Bravo!"
+
+#: searx/templates/oscar/messages/save_settings_successfull.html:8
+msgid "Settings saved successfully."
+msgstr "Le configurationes es salvate con successo."
+
+#: searx/templates/oscar/messages/unknow_error.html:7
+msgid "Oh snap!"
+msgstr "Oh no!"
+
+#: searx/templates/oscar/messages/unknow_error.html:8
+msgid "Something went wrong."
+msgstr "Alco occurreva mal."
+
+#: searx/templates/oscar/result_templates/default.html:7
+#: searx/templates/simple/result_templates/default.html:6
+msgid "show media"
+msgstr "monstrar multimedia"
+
+#: searx/templates/oscar/result_templates/default.html:7
+#: searx/templates/simple/result_templates/default.html:6
+msgid "hide media"
+msgstr "occultar multimedia"
+
+#: searx/templates/oscar/result_templates/images.html:30
+msgid "Get image"
+msgstr "Obtener imagine"
+
+#: searx/templates/oscar/result_templates/images.html:33
+msgid "View source"
+msgstr "Vider fonte"
+
+#: searx/templates/oscar/result_templates/map.html:7
+#: searx/templates/simple/result_templates/map.html:7
+msgid "show map"
+msgstr "monstrar mappa"
+
+#: searx/templates/oscar/result_templates/map.html:7
+#: searx/templates/simple/result_templates/map.html:7
+msgid "hide map"
+msgstr "occultar mappa"
+
+#: searx/templates/oscar/result_templates/map.html:11
+#: searx/templates/simple/result_templates/map.html:11
+msgid "show details"
+msgstr "monstrar detalios"
+
+#: searx/templates/oscar/result_templates/map.html:11
+#: searx/templates/simple/result_templates/map.html:11
+msgid "hide details"
+msgstr "occultar detalios"
+
+#: searx/templates/oscar/result_templates/torrent.html:7
+#: searx/templates/simple/result_templates/torrent.html:11
+msgid "Filesize"
+msgstr "Dimension del file"
+
+#: searx/templates/oscar/result_templates/torrent.html:9
+#: searx/templates/simple/result_templates/torrent.html:12
+msgid "Bytes"
+msgstr "Bytes"
+
+#: searx/templates/oscar/result_templates/torrent.html:10
+#: searx/templates/simple/result_templates/torrent.html:13
+msgid "kiB"
+msgstr "kiB"
+
+#: searx/templates/oscar/result_templates/torrent.html:11
+#: searx/templates/simple/result_templates/torrent.html:14
+msgid "MiB"
+msgstr "MiB"
+
+#: searx/templates/oscar/result_templates/torrent.html:12
+#: searx/templates/simple/result_templates/torrent.html:15
+msgid "GiB"
+msgstr "GiB"
+
+#: searx/templates/oscar/result_templates/torrent.html:13
+#: searx/templates/simple/result_templates/torrent.html:16
+msgid "TiB"
+msgstr "TiB"
+
+#: searx/templates/oscar/result_templates/torrent.html:15
+#: searx/templates/simple/result_templates/torrent.html:20
+msgid "Number of Files"
+msgstr "Numero de Files"
+
+#: searx/templates/oscar/result_templates/videos.html:7
+#: searx/templates/simple/result_templates/videos.html:6
+msgid "show video"
+msgstr "monstrar video"
+
+#: searx/templates/oscar/result_templates/videos.html:7
+#: searx/templates/simple/result_templates/videos.html:6
+msgid "hide video"
+msgstr "occultar video"
+
+#: searx/templates/pix-art/results.html:28
+msgid "Load more..."
+msgstr "Cargar plus..."
+
+#: searx/templates/simple/base.html:31
+msgid "No item found"
+msgstr "Nulle item trovate"
+
+#: searx/templates/simple/preferences.html:89
+msgid "Supports selected language"
+msgstr "Supporta le lingua selectionate"
+
+#: searx/templates/simple/preferences.html:118
+msgid "User interface"
+msgstr "Interfacie del usator"
+
+#: searx/templates/simple/preferences.html:154
+msgid "Privacy"
+msgstr "Confidentialitate"
diff --git a/searx/translations/it/LC_MESSAGES/messages.mo b/searx/translations/it/LC_MESSAGES/messages.mo
index 53eca9e67..729c4ecc9 100644
--- a/searx/translations/it/LC_MESSAGES/messages.mo
+++ b/searx/translations/it/LC_MESSAGES/messages.mo
Binary files differ
diff --git a/searx/translations/it/LC_MESSAGES/messages.po b/searx/translations/it/LC_MESSAGES/messages.po
index c2d5c8588..ba5c5e39e 100644
--- a/searx/translations/it/LC_MESSAGES/messages.po
+++ b/searx/translations/it/LC_MESSAGES/messages.po
@@ -11,14 +11,14 @@
# Federico <fedett@gmail.com>, 2018
# Luca C <mybusiness@yopmail.com>, 2017
# Luc <luc.absil2@gmail.com>, 2015
-# Random_R, 2018
+# Random_R, 2018-2019
msgid ""
msgstr ""
"Project-Id-Version: searx\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
-"POT-Creation-Date: 2017-11-01 21:31+0100\n"
-"PO-Revision-Date: 2018-10-16 15:53+0000\n"
-"Last-Translator: caoswave\n"
+"POT-Creation-Date: 2017-10-07 19:18+0200\n"
+"PO-Revision-Date: 2019-11-19 10:03+0000\n"
+"Last-Translator: Random_R\n"
"Language-Team: Italian (http://www.transifex.com/asciimoo/searx/language/it/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
@@ -39,63 +39,63 @@ msgstr "eccezione della richiesta"
msgid "unexpected crash"
msgstr "crash inaspettato"
-#: searx/webapp.py:136
+#: searx/webapp.py:135
msgid "files"
msgstr "documenti"
-#: searx/webapp.py:137
+#: searx/webapp.py:136
msgid "general"
msgstr "generale"
-#: searx/webapp.py:138
+#: searx/webapp.py:137
msgid "music"
msgstr "musica"
-#: searx/webapp.py:139
+#: searx/webapp.py:138
msgid "social media"
msgstr "social"
-#: searx/webapp.py:140
+#: searx/webapp.py:139
msgid "images"
msgstr "immagini"
-#: searx/webapp.py:141
+#: searx/webapp.py:140
msgid "videos"
msgstr "video"
-#: searx/webapp.py:142
+#: searx/webapp.py:141
msgid "it"
msgstr "IT"
-#: searx/webapp.py:143
+#: searx/webapp.py:142
msgid "news"
msgstr "notizie"
-#: searx/webapp.py:144
+#: searx/webapp.py:143
msgid "map"
msgstr "mappe"
-#: searx/webapp.py:145
+#: searx/webapp.py:144
msgid "science"
msgstr "scienza"
-#: searx/webapp.py:399 searx/webapp.py:658
+#: searx/webapp.py:398 searx/webapp.py:653
msgid "Invalid settings, please edit your preferences"
msgstr "Impostazioni non valide, modifica le tue preferenze"
-#: searx/webapp.py:415
+#: searx/webapp.py:410
msgid "Invalid settings"
msgstr "Impostazioni non valide"
-#: searx/webapp.py:449 searx/webapp.py:493
+#: searx/webapp.py:444 searx/webapp.py:488
msgid "search error"
msgstr "errore di ricerca"
-#: searx/webapp.py:530
+#: searx/webapp.py:525
msgid "{minutes} minute(s) ago"
msgstr "di {minutes} minuti fa"
-#: searx/webapp.py:532
+#: searx/webapp.py:527
msgid "{hours} hour(s), {minutes} minute(s) ago"
msgstr "di {hours} ore e {minutes} minuti fa"
@@ -115,29 +115,28 @@ msgstr "Funzioni statistiche"
msgid "Compute {functions} of the arguments"
msgstr "Calcola {functions} degli argomenti"
-#: searx/engines/__init__.py:194 searx/engines/flycheck___init__.py:201
+#: searx/engines/__init__.py:194
msgid "Engine time (sec)"
msgstr "Tempo del motore (secondi)"
-#: searx/engines/__init__.py:198 searx/engines/flycheck___init__.py:205
+#: searx/engines/__init__.py:198
msgid "Page loads (sec)"
msgstr " Caricamento della pagina (secondi)"
-#: searx/engines/__init__.py:202 searx/engines/flycheck___init__.py:209
-#: searx/templates/oscar/results.html:95
+#: searx/engines/__init__.py:202 searx/templates/oscar/results.html:95
#: searx/templates/simple/results.html:20
msgid "Number of results"
msgstr "Numero di risultati"
-#: searx/engines/__init__.py:206 searx/engines/flycheck___init__.py:213
+#: searx/engines/__init__.py:206
msgid "Scores"
msgstr "Punteggio"
-#: searx/engines/__init__.py:210 searx/engines/flycheck___init__.py:217
+#: searx/engines/__init__.py:210
msgid "Scores per result"
msgstr "Punteggio per risultato"
-#: searx/engines/__init__.py:214 searx/engines/flycheck___init__.py:221
+#: searx/engines/__init__.py:214
msgid "Errors"
msgstr "Errori"
@@ -149,9 +148,15 @@ msgstr "{title}&nbsp;(OBSOLETO)"
msgid "This entry has been superseded by"
msgstr "Questa voce è stata sostituita da"
-#: searx/engines/pubmed.py:74
-msgid "No abstract is available for this publication."
-msgstr "Nessun sommario disponibile per questa pubblicazione"
+#: searx/plugins/doai_rewrite.py:7
+msgid "DOAI rewrite"
+msgstr "Reindirizzamento DOAI"
+
+#: searx/plugins/doai_rewrite.py:8
+msgid ""
+"Avoid paywalls by redirecting to open-access versions of publications when "
+"available"
+msgstr "Se possibile, evita il paywall di una pubblicazione reindirizzando ad una versione ad accesso libero"
#: searx/plugins/https_rewrite.py:32
msgid "Rewrite HTTP links to HTTPS if possible"
@@ -165,16 +170,6 @@ msgstr "Scorrimento infinito"
msgid "Automatically load next page when scrolling to bottom of current page"
msgstr "Carica automaticamente la pagina successiva quando si scorre sino alla fine della pagina attuale"
-#: searx/plugins/oa_doi_rewrite.py:9
-msgid "Open Access DOI rewrite"
-msgstr "Reindirizzamento Open Access DOI"
-
-#: searx/plugins/oa_doi_rewrite.py:10
-msgid ""
-"Avoid paywalls by redirecting to open-access versions of publications when "
-"available"
-msgstr "Se possibile, evita il paywall di una pubblicazione reindirizzando ad una versione libera"
-
#: searx/plugins/open_results_on_new_tab.py:18
#: searx/templates/oscar/preferences.html:114
#: searx/templates/simple/preferences.html:149
@@ -185,7 +180,7 @@ msgstr "Apri i risultati in nuove schede del browser"
msgid ""
"Results are opened in the same window by default. This plugin overwrites the"
" default behaviour to open links on new tabs/windows. (JavaScript required)"
-msgstr "Di base i risultati sono aperti nella stessa finestra. Questa estensione fa sì invece che vengano mostrati in nuove schede/finestre. (Javascript necessario)\""
+msgstr "Di base i risultati sono aperti nella stessa finestra. Questa estensione fa sì invece che vengano mostrati in nuove schede/finestre. (Javascript necessario)"
#: searx/plugins/search_on_category_select.py:18
msgid "Search on category select"
@@ -195,7 +190,7 @@ msgstr "Cerca nella categoria selezionata"
msgid ""
"Perform search immediately if a category selected. Disable to select "
"multiple categories. (JavaScript required)"
-msgstr "Esegui la ricerca immediatamente se una categoria è selezionata. Disabilita questa opzione se vuoi selezionare più categorie. (Javascript necessario)\""
+msgstr "Esegui la ricerca immediatamente se una categoria è selezionata. Disabilita questa opzione se vuoi selezionare più categorie. (Javascript necessario)"
#: searx/plugins/self_info.py:20
msgid ""
@@ -205,7 +200,7 @@ msgstr "Mostra il tuo IP se hai cercato \"ip\" ed il tuo user agent se hai cerca
#: searx/plugins/tracker_url_remover.py:26
msgid "Tracker URL remover"
-msgstr "Rimuovi tracciamento URL"
+msgstr "Rimuovi URL traccianti"
#: searx/plugins/tracker_url_remover.py:27
msgid "Remove trackers arguments from the returned URL"
@@ -296,7 +291,7 @@ msgstr "Lingua predefinita"
#: searx/templates/pix-art/preferences.html:20
#: searx/templates/simple/preferences.html:120
msgid "Interface language"
-msgstr "Linguaggio dell'interfaccia"
+msgstr "Lingua dell'interfaccia"
#: searx/templates/courgette/preferences.html:34
#: searx/templates/legacy/preferences.html:35
@@ -337,8 +332,8 @@ msgstr "Metodo"
#: searx/templates/courgette/preferences.html:63
#: searx/templates/legacy/preferences.html:64
#: searx/templates/oscar/preferences.html:86
-#: searx/templates/oscar/preferences.html:165
-#: searx/templates/oscar/preferences.html:173
+#: searx/templates/oscar/preferences.html:153
+#: searx/templates/oscar/preferences.html:161
#: searx/templates/simple/preferences.html:63
#: searx/templates/simple/preferences.html:90
msgid "SafeSearch"
@@ -349,21 +344,21 @@ msgstr "Ricerca Sicura"
#: searx/templates/oscar/preferences.html:90
#: searx/templates/simple/preferences.html:66
msgid "Strict"
-msgstr "Rigoroso"
+msgstr "Rigorosa"
#: searx/templates/courgette/preferences.html:67
#: searx/templates/legacy/preferences.html:68
#: searx/templates/oscar/preferences.html:91
#: searx/templates/simple/preferences.html:67
msgid "Moderate"
-msgstr "Moderato"
+msgstr "Moderata"
#: searx/templates/courgette/preferences.html:68
#: searx/templates/legacy/preferences.html:69
#: searx/templates/oscar/preferences.html:92
#: searx/templates/simple/preferences.html:68
msgid "None"
-msgstr "Nessuno"
+msgstr "Nessuna"
#: searx/templates/courgette/preferences.html:73
#: searx/templates/legacy/preferences.html:74
@@ -410,8 +405,8 @@ msgstr "Motori di ricerca attualmente in uso"
#: searx/templates/courgette/preferences.html:100
#: searx/templates/legacy/preferences.html:97
-#: searx/templates/oscar/preferences.html:162
-#: searx/templates/oscar/preferences.html:176
+#: searx/templates/oscar/preferences.html:150
+#: searx/templates/oscar/preferences.html:164
#: searx/templates/pix-art/preferences.html:53
#: searx/templates/simple/preferences.html:87
msgid "Engine name"
@@ -426,8 +421,8 @@ msgstr "Categoria"
#: searx/templates/courgette/preferences.html:113
#: searx/templates/legacy/preferences.html:99
#: searx/templates/legacy/preferences.html:110
-#: searx/templates/oscar/preferences.html:161
-#: searx/templates/oscar/preferences.html:177
+#: searx/templates/oscar/preferences.html:149
+#: searx/templates/oscar/preferences.html:165
#: searx/templates/pix-art/preferences.html:54
#: searx/templates/pix-art/preferences.html:64
#: searx/templates/simple/preferences.html:86
@@ -445,7 +440,7 @@ msgstr "Blocca"
#: searx/templates/courgette/preferences.html:122
#: searx/templates/legacy/preferences.html:119
-#: searx/templates/oscar/preferences.html:297
+#: searx/templates/oscar/preferences.html:285
#: searx/templates/pix-art/preferences.html:73
#: searx/templates/simple/preferences.html:180
msgid ""
@@ -455,7 +450,7 @@ msgstr "Le impostazioni vengono salvate nei tuoi cookie, consentendoci di non co
#: searx/templates/courgette/preferences.html:124
#: searx/templates/legacy/preferences.html:121
-#: searx/templates/oscar/preferences.html:299
+#: searx/templates/oscar/preferences.html:287
#: searx/templates/pix-art/preferences.html:75
#: searx/templates/simple/preferences.html:182
msgid ""
@@ -465,7 +460,7 @@ msgstr "Questi cookie servono solo ad offrirti un servizio migliore. Non li usia
#: searx/templates/courgette/preferences.html:127
#: searx/templates/legacy/preferences.html:124
-#: searx/templates/oscar/preferences.html:305
+#: searx/templates/oscar/preferences.html:293
#: searx/templates/pix-art/preferences.html:78
#: searx/templates/simple/preferences.html:185
msgid "save"
@@ -473,14 +468,14 @@ msgstr "salva"
#: searx/templates/courgette/preferences.html:128
#: searx/templates/legacy/preferences.html:125
-#: searx/templates/oscar/preferences.html:307
+#: searx/templates/oscar/preferences.html:295
#: searx/templates/simple/preferences.html:186
msgid "Reset defaults"
msgstr "Reimposta i valori iniziali"
#: searx/templates/courgette/preferences.html:129
#: searx/templates/legacy/preferences.html:126
-#: searx/templates/oscar/preferences.html:306
+#: searx/templates/oscar/preferences.html:294
#: searx/templates/pix-art/preferences.html:79
#: searx/templates/simple/preferences.html:187
msgid "back"
@@ -651,30 +646,30 @@ msgid "General"
msgstr "Generale"
#: searx/templates/oscar/preferences.html:14
-#: searx/templates/oscar/preferences.html:146
+#: searx/templates/oscar/preferences.html:134
#: searx/templates/simple/preferences.html:76
msgid "Engines"
msgstr "Motori"
#: searx/templates/oscar/preferences.html:15
-#: searx/templates/oscar/preferences.html:219
+#: searx/templates/oscar/preferences.html:207
msgid "Plugins"
msgstr "Plugin"
#: searx/templates/oscar/preferences.html:16
-#: searx/templates/oscar/preferences.html:245
+#: searx/templates/oscar/preferences.html:233
msgid "Answerers"
msgstr "Risponditori"
#: searx/templates/oscar/preferences.html:17
-#: searx/templates/oscar/preferences.html:272
+#: searx/templates/oscar/preferences.html:260
msgid "Cookies"
msgstr "Cookie"
#: searx/templates/oscar/preferences.html:42
#: searx/templates/simple/preferences.html:48
msgid "What language do you prefer for search?"
-msgstr "Lingua dei risultati di ricerca"
+msgstr "Che lingua preferisci per la ricerca?"
#: searx/templates/oscar/preferences.html:48
#: searx/templates/simple/preferences.html:128
@@ -706,7 +701,7 @@ msgstr "Filtro famiglia"
#: searx/templates/oscar/preferences.html:97
#: searx/templates/simple/preferences.html:139
msgid "Change searx layout"
-msgstr "Cambia il layout di searx"
+msgstr "Cambia l'aspetto di searx"
#: searx/templates/oscar/preferences.html:106
#: searx/templates/oscar/preferences.html:111
@@ -718,92 +713,82 @@ msgstr "Scegli lo stile per questo tema"
msgid "Style"
msgstr "Stile"
-#: searx/templates/oscar/preferences.html:122
-msgid "Open Access DOI resolver"
-msgstr "Resolver Open Access DOI"
-
-#: searx/templates/oscar/preferences.html:123
-msgid ""
-"Redirect to open-access versions of publications when available (plugin "
-"required)"
-msgstr "Indirizza a versioni open-access delle pubblicazioni quando disponibili (plugin richiesto)"
-
+#: searx/templates/oscar/preferences.html:151
#: searx/templates/oscar/preferences.html:163
-#: searx/templates/oscar/preferences.html:175
#: searx/templates/simple/preferences.html:88
msgid "Shortcut"
msgstr "Scorciatoia"
-#: searx/templates/oscar/preferences.html:164
-#: searx/templates/oscar/preferences.html:174
+#: searx/templates/oscar/preferences.html:152
+#: searx/templates/oscar/preferences.html:162
msgid "Selected language"
msgstr "Lingua selezionata"
-#: searx/templates/oscar/preferences.html:166
-#: searx/templates/oscar/preferences.html:172
+#: searx/templates/oscar/preferences.html:154
+#: searx/templates/oscar/preferences.html:160
#: searx/templates/simple/preferences.html:91
msgid "Time range"
msgstr "Intervallo di tempo"
-#: searx/templates/oscar/preferences.html:167
-#: searx/templates/oscar/preferences.html:171
+#: searx/templates/oscar/preferences.html:155
+#: searx/templates/oscar/preferences.html:159
#: searx/templates/simple/preferences.html:92
msgid "Avg. time"
msgstr "Tempo medio"
-#: searx/templates/oscar/preferences.html:168
-#: searx/templates/oscar/preferences.html:170
+#: searx/templates/oscar/preferences.html:156
+#: searx/templates/oscar/preferences.html:158
#: searx/templates/simple/preferences.html:93
msgid "Max time"
msgstr "Tempo massimo"
-#: searx/templates/oscar/preferences.html:248
+#: searx/templates/oscar/preferences.html:236
msgid "This is the list of searx's instant answering modules."
msgstr "Questa è la lista dei moduli searx con risposta immediata"
-#: searx/templates/oscar/preferences.html:252
+#: searx/templates/oscar/preferences.html:240
msgid "Name"
msgstr "Nome"
-#: searx/templates/oscar/preferences.html:253
+#: searx/templates/oscar/preferences.html:241
msgid "Keywords"
msgstr "Parole chiave"
-#: searx/templates/oscar/preferences.html:254
+#: searx/templates/oscar/preferences.html:242
msgid "Description"
msgstr "Descrizione"
-#: searx/templates/oscar/preferences.html:255
+#: searx/templates/oscar/preferences.html:243
msgid "Examples"
msgstr "Esempi"
-#: searx/templates/oscar/preferences.html:275
+#: searx/templates/oscar/preferences.html:263
msgid ""
"This is the list of cookies and their values searx is storing on your "
"computer."
msgstr "Qui puoi vedere i cookie che vengono conservati sul tuo computer."
-#: searx/templates/oscar/preferences.html:276
+#: searx/templates/oscar/preferences.html:264
msgid "With that list, you can assess searx transparency."
msgstr "In questo modo, puoi constatare la trasparenza di searx."
-#: searx/templates/oscar/preferences.html:281
+#: searx/templates/oscar/preferences.html:269
msgid "Cookie name"
msgstr "Nome del cookie"
-#: searx/templates/oscar/preferences.html:282
+#: searx/templates/oscar/preferences.html:270
msgid "Value"
msgstr "Valore"
-#: searx/templates/oscar/preferences.html:301
+#: searx/templates/oscar/preferences.html:289
msgid "Search URL of the currently saved preferences"
-msgstr "Cerca URL delle preferenze attualmente salvate"
+msgstr "URL di ricerca delle preferenze attualmente salvate"
-#: searx/templates/oscar/preferences.html:301
+#: searx/templates/oscar/preferences.html:289
msgid ""
"Note: specifying custom settings in the search URL can reduce privacy by "
"leaking data to the clicked result sites."
-msgstr "Nota: specificando impostazioni personalizzate nella ricerca URL può ridurre la privacy facendo traperlare dati ai siti cliccati"
+msgstr "Nota: specificare impostazioni personalizzate nell'URL di ricerca può ridurre la privacy facendo trapelare dati ai siti cliccati"
#: searx/templates/oscar/results.html:17
msgid "Search results"
@@ -836,7 +821,7 @@ msgstr "statistiche"
#: searx/templates/oscar/time-range.html:3
#: searx/templates/simple/time-range.html:3
msgid "Anytime"
-msgstr "Di sempre"
+msgstr "Qualsiasi data"
#: searx/templates/oscar/time-range.html:6
#: searx/templates/simple/time-range.html:6
@@ -856,7 +841,7 @@ msgstr "Ultimo mese"
#: searx/templates/oscar/time-range.html:15
#: searx/templates/simple/time-range.html:15
msgid "Last year"
-msgstr "L'anno scorso"
+msgstr "Ultimo anno"
#: searx/templates/oscar/messages/first_time.html:6
#: searx/templates/oscar/messages/no_data_available.html:3
diff --git a/searx/translations/ja/LC_MESSAGES/messages.mo b/searx/translations/ja/LC_MESSAGES/messages.mo
index eb1267287..4bfa7bbeb 100644
--- a/searx/translations/ja/LC_MESSAGES/messages.mo
+++ b/searx/translations/ja/LC_MESSAGES/messages.mo
Binary files differ
diff --git a/searx/translations/ja/LC_MESSAGES/messages.po b/searx/translations/ja/LC_MESSAGES/messages.po
index 24d2c359e..94f1504f3 100644
--- a/searx/translations/ja/LC_MESSAGES/messages.po
+++ b/searx/translations/ja/LC_MESSAGES/messages.po
@@ -6,6 +6,7 @@
# Akio Nishimura <akionux@gmail.com>, 2016-2018
# Thomas Pointhuber, 2014-2015
# FIRST AUTHOR <EMAIL@ADDRESS>, 2014,2016
+# KAWASAKI ICHIRO, 2020
# Lucas Phillips <mail@lep.pw>, 2015
# Max <theshirinzu@gmail.com>, 2015
# Nobuhiro Iwamatsu <iwamatsu@nigauri.org>, 2018
@@ -15,9 +16,9 @@ msgid ""
msgstr ""
"Project-Id-Version: searx\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
-"POT-Creation-Date: 2017-11-01 21:31+0100\n"
-"PO-Revision-Date: 2018-08-13 03:03+0000\n"
-"Last-Translator: Nobuhiro Iwamatsu <iwamatsu@nigauri.org>\n"
+"POT-Creation-Date: 2017-10-07 19:18+0200\n"
+"PO-Revision-Date: 2020-01-20 14:30+0000\n"
+"Last-Translator: KAWASAKI ICHIRO\n"
"Language-Team: Japanese (http://www.transifex.com/asciimoo/searx/language/ja/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
@@ -38,63 +39,63 @@ msgstr "例外要求"
msgid "unexpected crash"
msgstr "予期しないクラッシュ"
-#: searx/webapp.py:136
+#: searx/webapp.py:135
msgid "files"
msgstr "ファイル"
-#: searx/webapp.py:137
+#: searx/webapp.py:136
msgid "general"
msgstr "一般"
-#: searx/webapp.py:138
+#: searx/webapp.py:137
msgid "music"
msgstr "音楽"
-#: searx/webapp.py:139
+#: searx/webapp.py:138
msgid "social media"
msgstr "ソーシャルメディア"
-#: searx/webapp.py:140
+#: searx/webapp.py:139
msgid "images"
msgstr "画像"
-#: searx/webapp.py:141
+#: searx/webapp.py:140
msgid "videos"
msgstr "動画"
-#: searx/webapp.py:142
+#: searx/webapp.py:141
msgid "it"
msgstr "情報技術"
-#: searx/webapp.py:143
+#: searx/webapp.py:142
msgid "news"
-msgstr "お知らせ"
+msgstr "ニュース"
-#: searx/webapp.py:144
+#: searx/webapp.py:143
msgid "map"
msgstr "地図"
-#: searx/webapp.py:145
+#: searx/webapp.py:144
msgid "science"
msgstr "学問"
-#: searx/webapp.py:399 searx/webapp.py:658
+#: searx/webapp.py:398 searx/webapp.py:653
msgid "Invalid settings, please edit your preferences"
msgstr "不正な設定です。設定を編集してください。"
-#: searx/webapp.py:415
+#: searx/webapp.py:410
msgid "Invalid settings"
msgstr "不正な設定"
-#: searx/webapp.py:449 searx/webapp.py:493
+#: searx/webapp.py:444 searx/webapp.py:488
msgid "search error"
msgstr "検索エラー"
-#: searx/webapp.py:530
+#: searx/webapp.py:525
msgid "{minutes} minute(s) ago"
msgstr "{minutes}分前"
-#: searx/webapp.py:532
+#: searx/webapp.py:527
msgid "{hours} hour(s), {minutes} minute(s) ago"
msgstr "{hours}時間と{minutes}分前"
@@ -114,29 +115,28 @@ msgstr "統計機能"
msgid "Compute {functions} of the arguments"
msgstr "変数の{functions}を計算する"
-#: searx/engines/__init__.py:194 searx/engines/flycheck___init__.py:201
+#: searx/engines/__init__.py:194
msgid "Engine time (sec)"
msgstr "検索時間 (秒)"
-#: searx/engines/__init__.py:198 searx/engines/flycheck___init__.py:205
+#: searx/engines/__init__.py:198
msgid "Page loads (sec)"
msgstr "ページ読み込み時間 (秒)"
-#: searx/engines/__init__.py:202 searx/engines/flycheck___init__.py:209
-#: searx/templates/oscar/results.html:95
+#: searx/engines/__init__.py:202 searx/templates/oscar/results.html:95
#: searx/templates/simple/results.html:20
msgid "Number of results"
msgstr "通知の数"
-#: searx/engines/__init__.py:206 searx/engines/flycheck___init__.py:213
+#: searx/engines/__init__.py:206
msgid "Scores"
msgstr "スコア"
-#: searx/engines/__init__.py:210 searx/engines/flycheck___init__.py:217
+#: searx/engines/__init__.py:210
msgid "Scores per result"
msgstr "検索結果当たりスコア"
-#: searx/engines/__init__.py:214 searx/engines/flycheck___init__.py:221
+#: searx/engines/__init__.py:214
msgid "Errors"
msgstr "エラー"
@@ -148,9 +148,15 @@ msgstr "{title}&nbsp;(廃止)"
msgid "This entry has been superseded by"
msgstr "このエントリーの優先"
-#: searx/engines/pubmed.py:74
-msgid "No abstract is available for this publication."
-msgstr "この出版物には要約がありません。"
+#: searx/plugins/doai_rewrite.py:7
+msgid "DOAI rewrite"
+msgstr "DOAI再書き込み"
+
+#: searx/plugins/doai_rewrite.py:8
+msgid ""
+"Avoid paywalls by redirecting to open-access versions of publications when "
+"available"
+msgstr "可能ならば出版物のオープンアクセス版へリダイレクトして有料の壁を避ける"
#: searx/plugins/https_rewrite.py:32
msgid "Rewrite HTTP links to HTTPS if possible"
@@ -164,16 +170,6 @@ msgstr "無限スクロール"
msgid "Automatically load next page when scrolling to bottom of current page"
msgstr "現在のページの下端でスクロールすると自動的に次のページを読み込む"
-#: searx/plugins/oa_doi_rewrite.py:9
-msgid "Open Access DOI rewrite"
-msgstr "オープンアクセス DOI リライト"
-
-#: searx/plugins/oa_doi_rewrite.py:10
-msgid ""
-"Avoid paywalls by redirecting to open-access versions of publications when "
-"available"
-msgstr "可能ならば出版物のオープンアクセス版へリダイレクトして有料の壁を避ける"
-
#: searx/plugins/open_results_on_new_tab.py:18
#: searx/templates/oscar/preferences.html:114
#: searx/templates/simple/preferences.html:149
@@ -336,8 +332,8 @@ msgstr "方法"
#: searx/templates/courgette/preferences.html:63
#: searx/templates/legacy/preferences.html:64
#: searx/templates/oscar/preferences.html:86
-#: searx/templates/oscar/preferences.html:165
-#: searx/templates/oscar/preferences.html:173
+#: searx/templates/oscar/preferences.html:153
+#: searx/templates/oscar/preferences.html:161
#: searx/templates/simple/preferences.html:63
#: searx/templates/simple/preferences.html:90
msgid "SafeSearch"
@@ -409,8 +405,8 @@ msgstr "現在使用中の検索エンジン"
#: searx/templates/courgette/preferences.html:100
#: searx/templates/legacy/preferences.html:97
-#: searx/templates/oscar/preferences.html:162
-#: searx/templates/oscar/preferences.html:176
+#: searx/templates/oscar/preferences.html:150
+#: searx/templates/oscar/preferences.html:164
#: searx/templates/pix-art/preferences.html:53
#: searx/templates/simple/preferences.html:87
msgid "Engine name"
@@ -425,8 +421,8 @@ msgstr "カテゴリー"
#: searx/templates/courgette/preferences.html:113
#: searx/templates/legacy/preferences.html:99
#: searx/templates/legacy/preferences.html:110
-#: searx/templates/oscar/preferences.html:161
-#: searx/templates/oscar/preferences.html:177
+#: searx/templates/oscar/preferences.html:149
+#: searx/templates/oscar/preferences.html:165
#: searx/templates/pix-art/preferences.html:54
#: searx/templates/pix-art/preferences.html:64
#: searx/templates/simple/preferences.html:86
@@ -444,7 +440,7 @@ msgstr "禁止する"
#: searx/templates/courgette/preferences.html:122
#: searx/templates/legacy/preferences.html:119
-#: searx/templates/oscar/preferences.html:297
+#: searx/templates/oscar/preferences.html:285
#: searx/templates/pix-art/preferences.html:73
#: searx/templates/simple/preferences.html:180
msgid ""
@@ -454,7 +450,7 @@ msgstr "これらの設定はあなたのクッキーに保存されますが、
#: searx/templates/courgette/preferences.html:124
#: searx/templates/legacy/preferences.html:121
-#: searx/templates/oscar/preferences.html:299
+#: searx/templates/oscar/preferences.html:287
#: searx/templates/pix-art/preferences.html:75
#: searx/templates/simple/preferences.html:182
msgid ""
@@ -464,7 +460,7 @@ msgstr "クッキーはあなたが便利に使えるようにするために使
#: searx/templates/courgette/preferences.html:127
#: searx/templates/legacy/preferences.html:124
-#: searx/templates/oscar/preferences.html:305
+#: searx/templates/oscar/preferences.html:293
#: searx/templates/pix-art/preferences.html:78
#: searx/templates/simple/preferences.html:185
msgid "save"
@@ -472,14 +468,14 @@ msgstr "保存"
#: searx/templates/courgette/preferences.html:128
#: searx/templates/legacy/preferences.html:125
-#: searx/templates/oscar/preferences.html:307
+#: searx/templates/oscar/preferences.html:295
#: searx/templates/simple/preferences.html:186
msgid "Reset defaults"
msgstr "デフォルト設定に戻す"
#: searx/templates/courgette/preferences.html:129
#: searx/templates/legacy/preferences.html:126
-#: searx/templates/oscar/preferences.html:306
+#: searx/templates/oscar/preferences.html:294
#: searx/templates/pix-art/preferences.html:79
#: searx/templates/simple/preferences.html:187
msgid "back"
@@ -650,23 +646,23 @@ msgid "General"
msgstr "一般設定"
#: searx/templates/oscar/preferences.html:14
-#: searx/templates/oscar/preferences.html:146
+#: searx/templates/oscar/preferences.html:134
#: searx/templates/simple/preferences.html:76
msgid "Engines"
msgstr "検索エンジン"
#: searx/templates/oscar/preferences.html:15
-#: searx/templates/oscar/preferences.html:219
+#: searx/templates/oscar/preferences.html:207
msgid "Plugins"
msgstr "プラグイン"
#: searx/templates/oscar/preferences.html:16
-#: searx/templates/oscar/preferences.html:245
+#: searx/templates/oscar/preferences.html:233
msgid "Answerers"
msgstr "回答者"
#: searx/templates/oscar/preferences.html:17
-#: searx/templates/oscar/preferences.html:272
+#: searx/templates/oscar/preferences.html:260
msgid "Cookies"
msgstr "クッキー"
@@ -717,88 +713,78 @@ msgstr "このテーマのスタイルを選択"
msgid "Style"
msgstr "スタイル"
-#: searx/templates/oscar/preferences.html:122
-msgid "Open Access DOI resolver"
-msgstr "オープンアクセス DOI リゾルバー"
-
-#: searx/templates/oscar/preferences.html:123
-msgid ""
-"Redirect to open-access versions of publications when available (plugin "
-"required)"
-msgstr "利用可能な場合(プラグインが必要)、オープンアクセス版の出版物にリダイレクトする"
-
+#: searx/templates/oscar/preferences.html:151
#: searx/templates/oscar/preferences.html:163
-#: searx/templates/oscar/preferences.html:175
#: searx/templates/simple/preferences.html:88
msgid "Shortcut"
msgstr "ショートカット"
-#: searx/templates/oscar/preferences.html:164
-#: searx/templates/oscar/preferences.html:174
+#: searx/templates/oscar/preferences.html:152
+#: searx/templates/oscar/preferences.html:162
msgid "Selected language"
msgstr "選択された言語"
-#: searx/templates/oscar/preferences.html:166
-#: searx/templates/oscar/preferences.html:172
+#: searx/templates/oscar/preferences.html:154
+#: searx/templates/oscar/preferences.html:160
#: searx/templates/simple/preferences.html:91
msgid "Time range"
msgstr "時間範囲"
-#: searx/templates/oscar/preferences.html:167
-#: searx/templates/oscar/preferences.html:171
+#: searx/templates/oscar/preferences.html:155
+#: searx/templates/oscar/preferences.html:159
#: searx/templates/simple/preferences.html:92
msgid "Avg. time"
msgstr "平均時間"
-#: searx/templates/oscar/preferences.html:168
-#: searx/templates/oscar/preferences.html:170
+#: searx/templates/oscar/preferences.html:156
+#: searx/templates/oscar/preferences.html:158
#: searx/templates/simple/preferences.html:93
msgid "Max time"
msgstr "最大時間"
-#: searx/templates/oscar/preferences.html:248
+#: searx/templates/oscar/preferences.html:236
msgid "This is the list of searx's instant answering modules."
msgstr "これは searx の即席回答モジュールのリストです。"
-#: searx/templates/oscar/preferences.html:252
+#: searx/templates/oscar/preferences.html:240
msgid "Name"
msgstr "名前"
-#: searx/templates/oscar/preferences.html:253
+#: searx/templates/oscar/preferences.html:241
msgid "Keywords"
msgstr "キーワード"
-#: searx/templates/oscar/preferences.html:254
+#: searx/templates/oscar/preferences.html:242
msgid "Description"
msgstr "説明"
-#: searx/templates/oscar/preferences.html:255
+#: searx/templates/oscar/preferences.html:243
msgid "Examples"
msgstr "例"
-#: searx/templates/oscar/preferences.html:275
+#: searx/templates/oscar/preferences.html:263
msgid ""
"This is the list of cookies and their values searx is storing on your "
"computer."
msgstr "これはクッキーのリストで、これらの値はあなたのコンピュータに保存されています。"
-#: searx/templates/oscar/preferences.html:276
+#: searx/templates/oscar/preferences.html:264
msgid "With that list, you can assess searx transparency."
msgstr "このリストによって、あなたは searx の透明性を評価できます。"
-#: searx/templates/oscar/preferences.html:281
+#: searx/templates/oscar/preferences.html:269
msgid "Cookie name"
msgstr "クッキー名"
-#: searx/templates/oscar/preferences.html:282
+#: searx/templates/oscar/preferences.html:270
msgid "Value"
msgstr "値"
-#: searx/templates/oscar/preferences.html:301
+#: searx/templates/oscar/preferences.html:289
msgid "Search URL of the currently saved preferences"
msgstr "現在保存されている設定の検索 URL"
-#: searx/templates/oscar/preferences.html:301
+#: searx/templates/oscar/preferences.html:289
msgid ""
"Note: specifying custom settings in the search URL can reduce privacy by "
"leaking data to the clicked result sites."
diff --git a/searx/translations/lt/LC_MESSAGES/messages.mo b/searx/translations/lt/LC_MESSAGES/messages.mo
new file mode 100644
index 000000000..8f33a1660
--- /dev/null
+++ b/searx/translations/lt/LC_MESSAGES/messages.mo
Binary files differ
diff --git a/searx/translations/lt/LC_MESSAGES/messages.po b/searx/translations/lt/LC_MESSAGES/messages.po
new file mode 100644
index 000000000..f9e4ffd6c
--- /dev/null
+++ b/searx/translations/lt/LC_MESSAGES/messages.po
@@ -0,0 +1,998 @@
+# Translations template for PROJECT.
+# Copyright (C) 2017 ORGANIZATION
+# This file is distributed under the same license as the PROJECT project.
+#
+# Translators:
+# Moo, 2019
+msgid ""
+msgstr ""
+"Project-Id-Version: searx\n"
+"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
+"POT-Creation-Date: 2017-10-07 19:18+0200\n"
+"PO-Revision-Date: 2019-11-02 12:57+0000\n"
+"Last-Translator: Moo\n"
+"Language-Team: Lithuanian (http://www.transifex.com/asciimoo/searx/language/lt/)\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Generated-By: Babel 2.3.4\n"
+"Language: lt\n"
+"Plural-Forms: nplurals=4; plural=(n % 10 == 1 && (n % 100 > 19 || n % 100 < 11) ? 0 : (n % 10 >= 2 && n % 10 <=9) && (n % 100 > 19 || n % 100 < 11) ? 1 : n % 1 != 0 ? 2: 3);\n"
+
+#: searx/search.py:137 searx/search.py:182
+msgid "timeout"
+msgstr "baigėsi laikas"
+
+#: searx/search.py:144
+msgid "request exception"
+msgstr "užklausos išimtis"
+
+#: searx/search.py:151
+msgid "unexpected crash"
+msgstr "netikėta strigtis"
+
+#: searx/webapp.py:135
+msgid "files"
+msgstr "failai"
+
+#: searx/webapp.py:136
+msgid "general"
+msgstr "bendra"
+
+#: searx/webapp.py:137
+msgid "music"
+msgstr "muzika"
+
+#: searx/webapp.py:138
+msgid "social media"
+msgstr "socialinė medija"
+
+#: searx/webapp.py:139
+msgid "images"
+msgstr "paveikslai"
+
+#: searx/webapp.py:140
+msgid "videos"
+msgstr "vaizdo įrašai"
+
+#: searx/webapp.py:141
+msgid "it"
+msgstr "IT"
+
+#: searx/webapp.py:142
+msgid "news"
+msgstr "naujienos"
+
+#: searx/webapp.py:143
+msgid "map"
+msgstr "žemėlapis"
+
+#: searx/webapp.py:144
+msgid "science"
+msgstr "mokslas"
+
+#: searx/webapp.py:398 searx/webapp.py:653
+msgid "Invalid settings, please edit your preferences"
+msgstr "Neteisingi nustatymai, pataisykite savo nuostatas"
+
+#: searx/webapp.py:410
+msgid "Invalid settings"
+msgstr "Neteisingi nustatymai"
+
+#: searx/webapp.py:444 searx/webapp.py:488
+msgid "search error"
+msgstr "paieškos klaida"
+
+#: searx/webapp.py:525
+msgid "{minutes} minute(s) ago"
+msgstr "prieš {minutes} min."
+
+#: searx/webapp.py:527
+msgid "{hours} hour(s), {minutes} minute(s) ago"
+msgstr "prieš {hours} val., {minutes} min."
+
+#: searx/answerers/random/answerer.py:53
+msgid "Random value generator"
+msgstr "Atsitiktinių reikmių generatorius"
+
+#: searx/answerers/random/answerer.py:54
+msgid "Generate different random values"
+msgstr "Generuoja įvairias atsitiktines reikšmes"
+
+#: searx/answerers/statistics/answerer.py:53
+msgid "Statistics functions"
+msgstr "Statistikos funkcijos"
+
+#: searx/answerers/statistics/answerer.py:54
+msgid "Compute {functions} of the arguments"
+msgstr "Skaičiuoti argumentų {functions} funkcijas"
+
+#: searx/engines/__init__.py:194
+msgid "Engine time (sec)"
+msgstr "Sistemos laikas (sek.)"
+
+#: searx/engines/__init__.py:198
+msgid "Page loads (sec)"
+msgstr "Puslapių įkėlimai (sek.)"
+
+#: searx/engines/__init__.py:202 searx/templates/oscar/results.html:95
+#: searx/templates/simple/results.html:20
+msgid "Number of results"
+msgstr "Rezultatų skaičius"
+
+#: searx/engines/__init__.py:206
+msgid "Scores"
+msgstr "Įverčiai"
+
+#: searx/engines/__init__.py:210
+msgid "Scores per result"
+msgstr "Įverčiai pagal rezultatą"
+
+#: searx/engines/__init__.py:214
+msgid "Errors"
+msgstr "Klaidos"
+
+#: searx/engines/pdbe.py:87
+msgid "{title}&nbsp;(OBSOLETE)"
+msgstr "{title}&nbsp;(PASENĘS)"
+
+#: searx/engines/pdbe.py:91
+msgid "This entry has been superseded by"
+msgstr "Šį įrašą pakeitė"
+
+#: searx/plugins/doai_rewrite.py:7
+msgid "DOAI rewrite"
+msgstr "DOAI perrašymas"
+
+#: searx/plugins/doai_rewrite.py:8
+msgid ""
+"Avoid paywalls by redirecting to open-access versions of publications when "
+"available"
+msgstr "Vengti apmokamų sienų, kai įmanoma, peradresuojant į atviros prieigos publikacijų versijas"
+
+#: searx/plugins/https_rewrite.py:32
+msgid "Rewrite HTTP links to HTTPS if possible"
+msgstr "Jei įmanoma, perrašyti HTTP nuorodas į HTTPS"
+
+#: searx/plugins/infinite_scroll.py:3
+msgid "Infinite scroll"
+msgstr "Begalinis slinkimas"
+
+#: searx/plugins/infinite_scroll.py:4
+msgid "Automatically load next page when scrolling to bottom of current page"
+msgstr "Automatiškai įkelti kitą puslapį, kai nuslenkama į esamo puslapio apačią"
+
+#: searx/plugins/open_results_on_new_tab.py:18
+#: searx/templates/oscar/preferences.html:114
+#: searx/templates/simple/preferences.html:149
+msgid "Open result links on new browser tabs"
+msgstr "Atverti rezultatų nuorodas naujose naršyklės kortelėse"
+
+#: searx/plugins/open_results_on_new_tab.py:19
+msgid ""
+"Results are opened in the same window by default. This plugin overwrites the"
+" default behaviour to open links on new tabs/windows. (JavaScript required)"
+msgstr "Pagal numatymą, rezultatai yra atveriami tame pačiame lange. Šis įskiepis perrašo numatytąją elgseną taip, kad nuorodos būtų atveriamos naujose kortelėse/languose. (reikalinga JavaScript)"
+
+#: searx/plugins/search_on_category_select.py:18
+msgid "Search on category select"
+msgstr "Pasirinkus kategoriją, atlikti paiešką"
+
+#: searx/plugins/search_on_category_select.py:19
+msgid ""
+"Perform search immediately if a category selected. Disable to select "
+"multiple categories. (JavaScript required)"
+msgstr "Jei pasirenkama kategorija, nedelsiant atlikti paiešką. Išjunkite norėdami pasirinkti kelias kategorijas. (reikalinga JavaScript)"
+
+#: searx/plugins/self_info.py:20
+msgid ""
+"Displays your IP if the query is \"ip\" and your user agent if the query "
+"contains \"user agent\"."
+msgstr "Rodo jūsų IP adresą, jei užklausa yra \"ip\" ir jūsų naudotojo agentą, jei užklausoje yra \"user agent\"."
+
+#: searx/plugins/tracker_url_remover.py:26
+msgid "Tracker URL remover"
+msgstr "Seklių URL šalintojas"
+
+#: searx/plugins/tracker_url_remover.py:27
+msgid "Remove trackers arguments from the returned URL"
+msgstr "Šalinti seklių argumentus iš grąžinamų URL"
+
+#: searx/plugins/vim_hotkeys.py:3
+msgid "Vim-like hotkeys"
+msgstr "Vim pavidalo spartieji klavišai"
+
+#: searx/plugins/vim_hotkeys.py:4
+msgid ""
+"Navigate search results with Vim-like hotkeys (JavaScript required). Press "
+"\"h\" key on main or result page to get help."
+msgstr "Naršyti po paieškos rezultatus naudojant Vim pavidalo sparčiuosius klavišus (reikalinga JavaScript). Paspauskite pagrindiniame ar rezultatų puslapyje \"h\" klavišą norėdami gauti pagalbos."
+
+#: searx/templates/courgette/404.html:4 searx/templates/legacy/404.html:4
+#: searx/templates/oscar/404.html:4 searx/templates/pix-art/404.html:4
+#: searx/templates/simple/404.html:4
+msgid "Page not found"
+msgstr "Puslapis nerastas"
+
+#: searx/templates/courgette/404.html:6 searx/templates/legacy/404.html:6
+#: searx/templates/oscar/404.html:6 searx/templates/pix-art/404.html:6
+#: searx/templates/simple/404.html:6
+#, python-format
+msgid "Go to %(search_page)s."
+msgstr "Pereiti į %(search_page)s."
+
+#: searx/templates/courgette/404.html:6 searx/templates/legacy/404.html:6
+#: searx/templates/oscar/404.html:6 searx/templates/pix-art/404.html:6
+#: searx/templates/simple/404.html:6
+msgid "search page"
+msgstr "paieškos puslapį"
+
+#: searx/templates/courgette/index.html:9
+#: searx/templates/courgette/index.html:13
+#: searx/templates/courgette/results.html:5
+#: searx/templates/legacy/index.html:8 searx/templates/legacy/index.html:12
+#: searx/templates/oscar/navbar.html:7
+#: searx/templates/oscar/preferences.html:3
+#: searx/templates/pix-art/index.html:8
+msgid "preferences"
+msgstr "nuostatos"
+
+#: searx/templates/courgette/index.html:11
+#: searx/templates/legacy/index.html:10 searx/templates/oscar/about.html:2
+#: searx/templates/oscar/navbar.html:6 searx/templates/pix-art/index.html:7
+msgid "about"
+msgstr "apie"
+
+#: searx/templates/courgette/preferences.html:5
+#: searx/templates/legacy/preferences.html:5
+#: searx/templates/oscar/preferences.html:8
+#: searx/templates/pix-art/preferences.html:5
+#: searx/templates/simple/preferences.html:26
+msgid "Preferences"
+msgstr "Nuostatos"
+
+#: searx/templates/courgette/preferences.html:9
+#: searx/templates/legacy/preferences.html:9
+#: searx/templates/oscar/preferences.html:33
+#: searx/templates/oscar/preferences.html:35
+#: searx/templates/simple/preferences.html:34
+msgid "Default categories"
+msgstr "Numatytosios kategorijos"
+
+#: searx/templates/courgette/preferences.html:13
+#: searx/templates/legacy/preferences.html:14
+#: searx/templates/oscar/preferences.html:41
+#: searx/templates/pix-art/preferences.html:9
+#: searx/templates/simple/preferences.html:39
+#: searx/templates/simple/preferences.html:163
+msgid "Search language"
+msgstr "Paieškos kalba"
+
+#: searx/templates/courgette/preferences.html:16
+#: searx/templates/legacy/preferences.html:17
+#: searx/templates/oscar/languages.html:6
+#: searx/templates/pix-art/preferences.html:12
+#: searx/templates/simple/languages.html:2
+#: searx/templates/simple/preferences.html:42
+msgid "Default language"
+msgstr "Numatytoji kalba"
+
+#: searx/templates/courgette/preferences.html:24
+#: searx/templates/legacy/preferences.html:25
+#: searx/templates/oscar/preferences.html:47
+#: searx/templates/pix-art/preferences.html:20
+#: searx/templates/simple/preferences.html:120
+msgid "Interface language"
+msgstr "Sąsajos kalba"
+
+#: searx/templates/courgette/preferences.html:34
+#: searx/templates/legacy/preferences.html:35
+#: searx/templates/oscar/preferences.html:57
+#: searx/templates/simple/preferences.html:51
+msgid "Autocomplete"
+msgstr "Automatinis užbaigimas"
+
+#: searx/templates/courgette/preferences.html:45
+#: searx/templates/legacy/preferences.html:46
+#: searx/templates/oscar/preferences.html:68
+#: searx/templates/simple/preferences.html:166
+msgid "Image proxy"
+msgstr "Paveikslų įgaliotasis serveris"
+
+#: searx/templates/courgette/preferences.html:48
+#: searx/templates/legacy/preferences.html:49
+#: searx/templates/oscar/preferences.html:72
+#: searx/templates/simple/preferences.html:169
+msgid "Enabled"
+msgstr "Įjungta"
+
+#: searx/templates/courgette/preferences.html:49
+#: searx/templates/legacy/preferences.html:50
+#: searx/templates/oscar/preferences.html:73
+#: searx/templates/simple/preferences.html:170
+msgid "Disabled"
+msgstr "Išjungta"
+
+#: searx/templates/courgette/preferences.html:54
+#: searx/templates/legacy/preferences.html:55
+#: searx/templates/oscar/preferences.html:77
+#: searx/templates/pix-art/preferences.html:30
+#: searx/templates/simple/preferences.html:156
+msgid "Method"
+msgstr "Metodas"
+
+#: searx/templates/courgette/preferences.html:63
+#: searx/templates/legacy/preferences.html:64
+#: searx/templates/oscar/preferences.html:86
+#: searx/templates/oscar/preferences.html:153
+#: searx/templates/oscar/preferences.html:161
+#: searx/templates/simple/preferences.html:63
+#: searx/templates/simple/preferences.html:90
+msgid "SafeSearch"
+msgstr "Saugi paieška"
+
+#: searx/templates/courgette/preferences.html:66
+#: searx/templates/legacy/preferences.html:67
+#: searx/templates/oscar/preferences.html:90
+#: searx/templates/simple/preferences.html:66
+msgid "Strict"
+msgstr "Griežta"
+
+#: searx/templates/courgette/preferences.html:67
+#: searx/templates/legacy/preferences.html:68
+#: searx/templates/oscar/preferences.html:91
+#: searx/templates/simple/preferences.html:67
+msgid "Moderate"
+msgstr "Nuosaiki"
+
+#: searx/templates/courgette/preferences.html:68
+#: searx/templates/legacy/preferences.html:69
+#: searx/templates/oscar/preferences.html:92
+#: searx/templates/simple/preferences.html:68
+msgid "None"
+msgstr "Nėra"
+
+#: searx/templates/courgette/preferences.html:73
+#: searx/templates/legacy/preferences.html:74
+#: searx/templates/oscar/preferences.html:96
+#: searx/templates/pix-art/preferences.html:39
+#: searx/templates/simple/preferences.html:131
+msgid "Themes"
+msgstr "Apipavidalinimai"
+
+#: searx/templates/courgette/preferences.html:83
+msgid "Color"
+msgstr "Spalva"
+
+#: searx/templates/courgette/preferences.html:86
+msgid "Blue (default)"
+msgstr "Mėlyna (numatytoji)"
+
+#: searx/templates/courgette/preferences.html:87
+msgid "Violet"
+msgstr "Violetinė"
+
+#: searx/templates/courgette/preferences.html:88
+msgid "Green"
+msgstr "Žalia"
+
+#: searx/templates/courgette/preferences.html:89
+msgid "Cyan"
+msgstr "Žydra"
+
+#: searx/templates/courgette/preferences.html:90
+msgid "Orange"
+msgstr "Oranžinė"
+
+#: searx/templates/courgette/preferences.html:91
+msgid "Red"
+msgstr "Raudona"
+
+#: searx/templates/courgette/preferences.html:96
+#: searx/templates/legacy/preferences.html:93
+#: searx/templates/pix-art/preferences.html:49
+#: searx/templates/simple/preferences.html:77
+msgid "Currently used search engines"
+msgstr "Šiuo metu naudojamos paieškos sistemos"
+
+#: searx/templates/courgette/preferences.html:100
+#: searx/templates/legacy/preferences.html:97
+#: searx/templates/oscar/preferences.html:150
+#: searx/templates/oscar/preferences.html:164
+#: searx/templates/pix-art/preferences.html:53
+#: searx/templates/simple/preferences.html:87
+msgid "Engine name"
+msgstr "Sistemos pavadinimas"
+
+#: searx/templates/courgette/preferences.html:101
+#: searx/templates/legacy/preferences.html:98
+msgid "Category"
+msgstr "Kategorija"
+
+#: searx/templates/courgette/preferences.html:102
+#: searx/templates/courgette/preferences.html:113
+#: searx/templates/legacy/preferences.html:99
+#: searx/templates/legacy/preferences.html:110
+#: searx/templates/oscar/preferences.html:149
+#: searx/templates/oscar/preferences.html:165
+#: searx/templates/pix-art/preferences.html:54
+#: searx/templates/pix-art/preferences.html:64
+#: searx/templates/simple/preferences.html:86
+msgid "Allow"
+msgstr "Leisti"
+
+#: searx/templates/courgette/preferences.html:102
+#: searx/templates/courgette/preferences.html:114
+#: searx/templates/legacy/preferences.html:99
+#: searx/templates/legacy/preferences.html:111
+#: searx/templates/pix-art/preferences.html:54
+#: searx/templates/pix-art/preferences.html:65
+msgid "Block"
+msgstr "Blokuoti"
+
+#: searx/templates/courgette/preferences.html:122
+#: searx/templates/legacy/preferences.html:119
+#: searx/templates/oscar/preferences.html:285
+#: searx/templates/pix-art/preferences.html:73
+#: searx/templates/simple/preferences.html:180
+msgid ""
+"These settings are stored in your cookies, this allows us not to store this "
+"data about you."
+msgstr "Šie nustatymai yra laikomi jūsų slapukuose, tai leidžia mums nesaugoti šių duomenų apie jus."
+
+#: searx/templates/courgette/preferences.html:124
+#: searx/templates/legacy/preferences.html:121
+#: searx/templates/oscar/preferences.html:287
+#: searx/templates/pix-art/preferences.html:75
+#: searx/templates/simple/preferences.html:182
+msgid ""
+"These cookies serve your sole convenience, we don't use these cookies to "
+"track you."
+msgstr "Šie slapukai yra naudojami išskirtinai jūsų patogumui, mes nenaudojame jų, kad jus sektume."
+
+#: searx/templates/courgette/preferences.html:127
+#: searx/templates/legacy/preferences.html:124
+#: searx/templates/oscar/preferences.html:293
+#: searx/templates/pix-art/preferences.html:78
+#: searx/templates/simple/preferences.html:185
+msgid "save"
+msgstr "Įrašyti"
+
+#: searx/templates/courgette/preferences.html:128
+#: searx/templates/legacy/preferences.html:125
+#: searx/templates/oscar/preferences.html:295
+#: searx/templates/simple/preferences.html:186
+msgid "Reset defaults"
+msgstr "Atstatyti numatytuosius"
+
+#: searx/templates/courgette/preferences.html:129
+#: searx/templates/legacy/preferences.html:126
+#: searx/templates/oscar/preferences.html:294
+#: searx/templates/pix-art/preferences.html:79
+#: searx/templates/simple/preferences.html:187
+msgid "back"
+msgstr "Atgal"
+
+#: searx/templates/courgette/results.html:12
+#: searx/templates/legacy/results.html:13
+#: searx/templates/oscar/results.html:136
+#: searx/templates/simple/results.html:58
+msgid "Search URL"
+msgstr "Paieškos URL"
+
+#: searx/templates/courgette/results.html:16
+#: searx/templates/legacy/results.html:17
+#: searx/templates/oscar/results.html:141
+#: searx/templates/simple/results.html:62
+msgid "Download results"
+msgstr "Atsisiųsti rezultatus"
+
+#: searx/templates/courgette/results.html:34
+#: searx/templates/legacy/results.html:35
+#: searx/templates/simple/results.html:10
+msgid "Answers"
+msgstr "Atsakymai"
+
+#: searx/templates/courgette/results.html:42
+#: searx/templates/legacy/results.html:43
+#: searx/templates/oscar/results.html:116
+#: searx/templates/simple/results.html:42
+msgid "Suggestions"
+msgstr "Pasiūlymai"
+
+#: searx/templates/courgette/results.html:70
+#: searx/templates/legacy/results.html:81
+#: searx/templates/oscar/results.html:68 searx/templates/oscar/results.html:78
+#: searx/templates/simple/results.html:130
+msgid "previous page"
+msgstr "ankstesnis puslapis"
+
+#: searx/templates/courgette/results.html:81
+#: searx/templates/legacy/results.html:92
+#: searx/templates/oscar/results.html:62 searx/templates/oscar/results.html:84
+#: searx/templates/simple/results.html:145
+msgid "next page"
+msgstr "kitas puslapis"
+
+#: searx/templates/courgette/search.html:3
+#: searx/templates/legacy/search.html:3 searx/templates/oscar/search.html:6
+#: searx/templates/oscar/search_full.html:9
+#: searx/templates/pix-art/search.html:3 searx/templates/simple/search.html:4
+msgid "Search for..."
+msgstr "Ko ieškoti..."
+
+#: searx/templates/courgette/stats.html:4 searx/templates/legacy/stats.html:4
+#: searx/templates/oscar/stats.html:5 searx/templates/pix-art/stats.html:4
+#: searx/templates/simple/stats.html:7
+msgid "Engine stats"
+msgstr "Sistemos statistika"
+
+#: searx/templates/courgette/result_templates/images.html:4
+#: searx/templates/legacy/result_templates/images.html:4
+#: searx/templates/pix-art/result_templates/images.html:4
+msgid "original context"
+msgstr "pradinis kontekstas"
+
+#: searx/templates/courgette/result_templates/torrent.html:7
+#: searx/templates/legacy/result_templates/torrent.html:11
+#: searx/templates/oscar/result_templates/torrent.html:6
+#: searx/templates/simple/result_templates/torrent.html:9
+msgid "Seeder"
+msgstr "Skleidėjai"
+
+#: searx/templates/courgette/result_templates/torrent.html:7
+#: searx/templates/legacy/result_templates/torrent.html:11
+#: searx/templates/oscar/result_templates/torrent.html:6
+#: searx/templates/simple/result_templates/torrent.html:9
+msgid "Leecher"
+msgstr "Siuntėjai"
+
+#: searx/templates/courgette/result_templates/torrent.html:9
+#: searx/templates/legacy/result_templates/torrent.html:9
+#: searx/templates/oscar/macros.html:23
+#: searx/templates/simple/result_templates/torrent.html:6
+msgid "magnet link"
+msgstr "magnet nuoroda"
+
+#: searx/templates/courgette/result_templates/torrent.html:10
+#: searx/templates/legacy/result_templates/torrent.html:10
+#: searx/templates/oscar/macros.html:24
+#: searx/templates/simple/result_templates/torrent.html:7
+msgid "torrent file"
+msgstr "torrent failas"
+
+#: searx/templates/legacy/categories.html:8
+#: searx/templates/simple/categories.html:6
+msgid "Click on the magnifier to perform search"
+msgstr "Norėdami atlikti paiešką, spustelėkite ant didinamojo stiklo"
+
+#: searx/templates/legacy/preferences.html:84
+#: searx/templates/oscar/preferences.html:113
+#: searx/templates/simple/preferences.html:142
+msgid "Results on new tabs"
+msgstr "Rezultatai naujose kortelėse"
+
+#: searx/templates/legacy/preferences.html:87
+#: searx/templates/oscar/preferences.html:117
+#: searx/templates/simple/preferences.html:145
+msgid "On"
+msgstr "Įjungta"
+
+#: searx/templates/legacy/preferences.html:88
+#: searx/templates/oscar/preferences.html:118
+#: searx/templates/simple/preferences.html:146
+msgid "Off"
+msgstr "Išjungta"
+
+#: searx/templates/legacy/result_templates/code.html:3
+#: searx/templates/legacy/result_templates/default.html:3
+#: searx/templates/legacy/result_templates/map.html:9
+#: searx/templates/oscar/macros.html:34 searx/templates/oscar/macros.html:48
+#: searx/templates/simple/macros.html:43
+msgid "cached"
+msgstr "podėlio versija"
+
+#: searx/templates/oscar/advanced.html:4
+msgid "Advanced settings"
+msgstr "Išplėstiniai nustatymai"
+
+#: searx/templates/oscar/base.html:62
+#: searx/templates/oscar/messages/first_time.html:4
+#: searx/templates/oscar/messages/save_settings_successfull.html:5
+#: searx/templates/oscar/messages/unknow_error.html:5
+msgid "Close"
+msgstr "Užverti"
+
+#: searx/templates/oscar/base.html:64
+#: searx/templates/oscar/messages/no_results.html:4
+#: searx/templates/simple/messages/no_results.html:4
+#: searx/templates/simple/results.html:25
+msgid "Error!"
+msgstr "Klaida!"
+
+#: searx/templates/oscar/base.html:90 searx/templates/simple/base.html:55
+msgid "Powered by"
+msgstr "Veikia su"
+
+#: searx/templates/oscar/base.html:90 searx/templates/simple/base.html:55
+msgid "a privacy-respecting, hackable metasearch engine"
+msgstr "gerbianti privatumą, programuojama metapaieškos sistema"
+
+#: searx/templates/oscar/macros.html:36 searx/templates/oscar/macros.html:50
+#: searx/templates/simple/macros.html:43
+msgid "proxied"
+msgstr "per įgaliotąjį serverį"
+
+#: searx/templates/oscar/macros.html:92
+msgid "supported"
+msgstr "palaikoma"
+
+#: searx/templates/oscar/macros.html:96
+msgid "not supported"
+msgstr "nepalaikoma"
+
+#: searx/templates/oscar/preferences.html:13
+#: searx/templates/oscar/preferences.html:22
+#: searx/templates/simple/preferences.html:32
+msgid "General"
+msgstr "Bendra"
+
+#: searx/templates/oscar/preferences.html:14
+#: searx/templates/oscar/preferences.html:134
+#: searx/templates/simple/preferences.html:76
+msgid "Engines"
+msgstr "Sistemos"
+
+#: searx/templates/oscar/preferences.html:15
+#: searx/templates/oscar/preferences.html:207
+msgid "Plugins"
+msgstr "Įskiepiai"
+
+#: searx/templates/oscar/preferences.html:16
+#: searx/templates/oscar/preferences.html:233
+msgid "Answerers"
+msgstr "Atsakikliai"
+
+#: searx/templates/oscar/preferences.html:17
+#: searx/templates/oscar/preferences.html:260
+msgid "Cookies"
+msgstr "Slapukai"
+
+#: searx/templates/oscar/preferences.html:42
+#: searx/templates/simple/preferences.html:48
+msgid "What language do you prefer for search?"
+msgstr "Kokią kalbą pageidaujate paieškai?"
+
+#: searx/templates/oscar/preferences.html:48
+#: searx/templates/simple/preferences.html:128
+msgid "Change the language of the layout"
+msgstr "Keisti išdėstymo kalbą"
+
+#: searx/templates/oscar/preferences.html:58
+#: searx/templates/simple/preferences.html:60
+msgid "Find stuff as you type"
+msgstr "Rasti medžiagą berašant"
+
+#: searx/templates/oscar/preferences.html:69
+#: searx/templates/simple/preferences.html:173
+msgid "Proxying image results through searx"
+msgstr "Paveikslų persiuntimas įgaliotuoju serveriu per searx"
+
+#: searx/templates/oscar/preferences.html:78
+msgid ""
+"Change how forms are submited, <a "
+"href=\"http://en.wikipedia.org/wiki/Hypertext_Transfer_Protocol#Request_methods\""
+" rel=\"external\">learn more about request methods</a>"
+msgstr "Keisti kaip yra pateikiamos formos, <a href=\"http://en.wikipedia.org/wiki/Hypertext_Transfer_Protocol#Request_methods\" rel=\"external\">sužinokite daugiau apie užklausos metodus</a>"
+
+#: searx/templates/oscar/preferences.html:87
+#: searx/templates/simple/preferences.html:71
+msgid "Filter content"
+msgstr "Filtruoti turinį"
+
+#: searx/templates/oscar/preferences.html:97
+#: searx/templates/simple/preferences.html:139
+msgid "Change searx layout"
+msgstr "Keisti searx išdėstymą"
+
+#: searx/templates/oscar/preferences.html:106
+#: searx/templates/oscar/preferences.html:111
+msgid "Choose style for this theme"
+msgstr "Pasirinkti šio apipavidalinimo stilių"
+
+#: searx/templates/oscar/preferences.html:106
+#: searx/templates/oscar/preferences.html:111
+msgid "Style"
+msgstr "Stilius"
+
+#: searx/templates/oscar/preferences.html:151
+#: searx/templates/oscar/preferences.html:163
+#: searx/templates/simple/preferences.html:88
+msgid "Shortcut"
+msgstr "Trumpinys"
+
+#: searx/templates/oscar/preferences.html:152
+#: searx/templates/oscar/preferences.html:162
+msgid "Selected language"
+msgstr "Pasirinkta kalba"
+
+#: searx/templates/oscar/preferences.html:154
+#: searx/templates/oscar/preferences.html:160
+#: searx/templates/simple/preferences.html:91
+msgid "Time range"
+msgstr "Laiko rėžis"
+
+#: searx/templates/oscar/preferences.html:155
+#: searx/templates/oscar/preferences.html:159
+#: searx/templates/simple/preferences.html:92
+msgid "Avg. time"
+msgstr "Vid. laikas"
+
+#: searx/templates/oscar/preferences.html:156
+#: searx/templates/oscar/preferences.html:158
+#: searx/templates/simple/preferences.html:93
+msgid "Max time"
+msgstr "Maks. laikas"
+
+#: searx/templates/oscar/preferences.html:236
+msgid "This is the list of searx's instant answering modules."
+msgstr "Tai yra searx greitų atsakiklių modulių sąrašas."
+
+#: searx/templates/oscar/preferences.html:240
+msgid "Name"
+msgstr "Pavadinimas"
+
+#: searx/templates/oscar/preferences.html:241
+msgid "Keywords"
+msgstr "Raktažodžiai"
+
+#: searx/templates/oscar/preferences.html:242
+msgid "Description"
+msgstr "Aprašas"
+
+#: searx/templates/oscar/preferences.html:243
+msgid "Examples"
+msgstr "Pavyzdžiai"
+
+#: searx/templates/oscar/preferences.html:263
+msgid ""
+"This is the list of cookies and their values searx is storing on your "
+"computer."
+msgstr "Tai yra slapukų ir jų reikšmių, kuriuos searx laiko jūsų kompiuteryje, sąrašas."
+
+#: searx/templates/oscar/preferences.html:264
+msgid "With that list, you can assess searx transparency."
+msgstr "Naudodami sąrašą, galite įvertinti searx skaidrumą."
+
+#: searx/templates/oscar/preferences.html:269
+msgid "Cookie name"
+msgstr "Slapuko pavadinimas"
+
+#: searx/templates/oscar/preferences.html:270
+msgid "Value"
+msgstr "Reikšmė"
+
+#: searx/templates/oscar/preferences.html:289
+msgid "Search URL of the currently saved preferences"
+msgstr "Šiuo metu įrašytų nuostatų paieškos URL"
+
+#: searx/templates/oscar/preferences.html:289
+msgid ""
+"Note: specifying custom settings in the search URL can reduce privacy by "
+"leaking data to the clicked result sites."
+msgstr "Pastaba: paieškos URL adrese nurodant tinkintus nustatymus, gali būti sumažintas jūsų privatumas, atskleidžiant duomenis toms rezultatų svetainėms, ant kurių spustelėjate."
+
+#: searx/templates/oscar/results.html:17
+msgid "Search results"
+msgstr "Paieškos rezultatai"
+
+#: searx/templates/oscar/results.html:21
+#: searx/templates/simple/results.html:84
+msgid "Try searching for:"
+msgstr "Bandykite ieškoti:"
+
+#: searx/templates/oscar/results.html:100
+#: searx/templates/simple/results.html:25
+msgid "Engines cannot retrieve results"
+msgstr "Sistemos negali gauti rezultatų"
+
+#: searx/templates/oscar/results.html:131
+msgid "Links"
+msgstr "Nuorodos"
+
+#: searx/templates/oscar/search.html:8
+#: searx/templates/oscar/search_full.html:11
+#: searx/templates/simple/search.html:5
+msgid "Start search"
+msgstr "Pradėti paiešką"
+
+#: searx/templates/oscar/stats.html:2
+msgid "stats"
+msgstr "statistika"
+
+#: searx/templates/oscar/time-range.html:3
+#: searx/templates/simple/time-range.html:3
+msgid "Anytime"
+msgstr "Bet kada"
+
+#: searx/templates/oscar/time-range.html:6
+#: searx/templates/simple/time-range.html:6
+msgid "Last day"
+msgstr "Praeitą dieną"
+
+#: searx/templates/oscar/time-range.html:9
+#: searx/templates/simple/time-range.html:9
+msgid "Last week"
+msgstr "Praeitą savaitę"
+
+#: searx/templates/oscar/time-range.html:12
+#: searx/templates/simple/time-range.html:12
+msgid "Last month"
+msgstr "Praeitą mėnesį"
+
+#: searx/templates/oscar/time-range.html:15
+#: searx/templates/simple/time-range.html:15
+msgid "Last year"
+msgstr "Praeitais metais"
+
+#: searx/templates/oscar/messages/first_time.html:6
+#: searx/templates/oscar/messages/no_data_available.html:3
+msgid "Heads up!"
+msgstr "Dėmesio!"
+
+#: searx/templates/oscar/messages/first_time.html:7
+msgid "It look like you are using searx first time."
+msgstr "Atrodo, kad pirmą kartą naudojate searx."
+
+#: searx/templates/oscar/messages/no_cookies.html:3
+msgid "Information!"
+msgstr "Informacija!"
+
+#: searx/templates/oscar/messages/no_cookies.html:4
+msgid "currently, there are no cookies defined."
+msgstr "Šiuo metu nėra jokių apibrėžtų slapukų."
+
+#: searx/templates/oscar/messages/no_data_available.html:4
+msgid "There is currently no data available. "
+msgstr "Šiuo metu nėra jokių prieinamų duomenų."
+
+#: searx/templates/oscar/messages/no_results.html:4
+#: searx/templates/simple/messages/no_results.html:4
+msgid "Engines cannot retrieve results."
+msgstr "Sistemos negali gauti rezultatų."
+
+#: searx/templates/oscar/messages/no_results.html:10
+#: searx/templates/simple/messages/no_results.html:10
+msgid "Please, try again later or find another searx instance."
+msgstr "Vėliau bandykite dar kartą arba raskite kitą searx egzempliorių."
+
+#: searx/templates/oscar/messages/no_results.html:14
+#: searx/templates/simple/messages/no_results.html:14
+msgid "Sorry!"
+msgstr "Atleiskite!"
+
+#: searx/templates/oscar/messages/no_results.html:15
+#: searx/templates/simple/messages/no_results.html:15
+msgid ""
+"we didn't find any results. Please use another query or search in more "
+"categories."
+msgstr "Mes neradome jokių rezultatų. Naudokite kitokią užklausą arba ieškokite kitose kategorijose."
+
+#: searx/templates/oscar/messages/save_settings_successfull.html:7
+msgid "Well done!"
+msgstr "Gerai padirbėta!"
+
+#: searx/templates/oscar/messages/save_settings_successfull.html:8
+msgid "Settings saved successfully."
+msgstr "Nustatymai sėkmingai įrašyti."
+
+#: searx/templates/oscar/messages/unknow_error.html:7
+msgid "Oh snap!"
+msgstr "O, ne!"
+
+#: searx/templates/oscar/messages/unknow_error.html:8
+msgid "Something went wrong."
+msgstr "Kažkas nutiko."
+
+#: searx/templates/oscar/result_templates/default.html:7
+#: searx/templates/simple/result_templates/default.html:6
+msgid "show media"
+msgstr "rodyti mediją"
+
+#: searx/templates/oscar/result_templates/default.html:7
+#: searx/templates/simple/result_templates/default.html:6
+msgid "hide media"
+msgstr "slėpti mediją"
+
+#: searx/templates/oscar/result_templates/images.html:30
+msgid "Get image"
+msgstr "Gauti paveikslą"
+
+#: searx/templates/oscar/result_templates/images.html:33
+msgid "View source"
+msgstr "Rodyti šaltinį"
+
+#: searx/templates/oscar/result_templates/map.html:7
+#: searx/templates/simple/result_templates/map.html:7
+msgid "show map"
+msgstr "rodyti žemėlapį"
+
+#: searx/templates/oscar/result_templates/map.html:7
+#: searx/templates/simple/result_templates/map.html:7
+msgid "hide map"
+msgstr "slėpti žemėlapį"
+
+#: searx/templates/oscar/result_templates/map.html:11
+#: searx/templates/simple/result_templates/map.html:11
+msgid "show details"
+msgstr "rodyti informaciją"
+
+#: searx/templates/oscar/result_templates/map.html:11
+#: searx/templates/simple/result_templates/map.html:11
+msgid "hide details"
+msgstr "slėpti informaciją"
+
+#: searx/templates/oscar/result_templates/torrent.html:7
+#: searx/templates/simple/result_templates/torrent.html:11
+msgid "Filesize"
+msgstr "Failo dydis"
+
+#: searx/templates/oscar/result_templates/torrent.html:9
+#: searx/templates/simple/result_templates/torrent.html:12
+msgid "Bytes"
+msgstr "Baitai"
+
+#: searx/templates/oscar/result_templates/torrent.html:10
+#: searx/templates/simple/result_templates/torrent.html:13
+msgid "kiB"
+msgstr "kiB"
+
+#: searx/templates/oscar/result_templates/torrent.html:11
+#: searx/templates/simple/result_templates/torrent.html:14
+msgid "MiB"
+msgstr "MiB"
+
+#: searx/templates/oscar/result_templates/torrent.html:12
+#: searx/templates/simple/result_templates/torrent.html:15
+msgid "GiB"
+msgstr "GiB"
+
+#: searx/templates/oscar/result_templates/torrent.html:13
+#: searx/templates/simple/result_templates/torrent.html:16
+msgid "TiB"
+msgstr "TiB"
+
+#: searx/templates/oscar/result_templates/torrent.html:15
+#: searx/templates/simple/result_templates/torrent.html:20
+msgid "Number of Files"
+msgstr "Failų skaičius"
+
+#: searx/templates/oscar/result_templates/videos.html:7
+#: searx/templates/simple/result_templates/videos.html:6
+msgid "show video"
+msgstr "rodyti vaizdo įrašą"
+
+#: searx/templates/oscar/result_templates/videos.html:7
+#: searx/templates/simple/result_templates/videos.html:6
+msgid "hide video"
+msgstr "slėpti vaizdo įrašą"
+
+#: searx/templates/pix-art/results.html:28
+msgid "Load more..."
+msgstr "Įkelti daugiau..."
+
+#: searx/templates/simple/base.html:31
+msgid "No item found"
+msgstr "Elementų nerasta"
+
+#: searx/templates/simple/preferences.html:89
+msgid "Supports selected language"
+msgstr "Palaiko pasirinktą kalbą"
+
+#: searx/templates/simple/preferences.html:118
+msgid "User interface"
+msgstr "Naudotojo sąsaja"
+
+#: searx/templates/simple/preferences.html:154
+msgid "Privacy"
+msgstr "Privatumas"
diff --git a/searx/translations/nl/LC_MESSAGES/messages.mo b/searx/translations/nl/LC_MESSAGES/messages.mo
index 057853be5..55f7230bb 100644
--- a/searx/translations/nl/LC_MESSAGES/messages.mo
+++ b/searx/translations/nl/LC_MESSAGES/messages.mo
Binary files differ
diff --git a/searx/translations/nl/LC_MESSAGES/messages.po b/searx/translations/nl/LC_MESSAGES/messages.po
index b4e061402..be2438b84 100644
--- a/searx/translations/nl/LC_MESSAGES/messages.po
+++ b/searx/translations/nl/LC_MESSAGES/messages.po
@@ -10,8 +10,8 @@ msgid ""
msgstr ""
"Project-Id-Version: searx\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
-"POT-Creation-Date: 2017-11-01 21:31+0100\n"
-"PO-Revision-Date: 2018-09-22 06:46+0000\n"
+"POT-Creation-Date: 2017-10-07 19:18+0200\n"
+"PO-Revision-Date: 2019-04-27 08:22+0000\n"
"Last-Translator: André Koot <meneer@tken.net>\n"
"Language-Team: Dutch (http://www.transifex.com/asciimoo/searx/language/nl/)\n"
"MIME-Version: 1.0\n"
@@ -33,63 +33,63 @@ msgstr "aanvraaguitzondering"
msgid "unexpected crash"
msgstr "onverwachte crash"
-#: searx/webapp.py:136
+#: searx/webapp.py:135
msgid "files"
msgstr "bestanden"
-#: searx/webapp.py:137
+#: searx/webapp.py:136
msgid "general"
msgstr "algemeen"
-#: searx/webapp.py:138
+#: searx/webapp.py:137
msgid "music"
msgstr "muziek"
-#: searx/webapp.py:139
+#: searx/webapp.py:138
msgid "social media"
msgstr "sociale media"
-#: searx/webapp.py:140
+#: searx/webapp.py:139
msgid "images"
msgstr "afbeeldingen"
-#: searx/webapp.py:141
+#: searx/webapp.py:140
msgid "videos"
msgstr "video’s"
-#: searx/webapp.py:142
+#: searx/webapp.py:141
msgid "it"
msgstr "IT"
-#: searx/webapp.py:143
+#: searx/webapp.py:142
msgid "news"
msgstr "nieuws"
-#: searx/webapp.py:144
+#: searx/webapp.py:143
msgid "map"
msgstr "kaart"
-#: searx/webapp.py:145
+#: searx/webapp.py:144
msgid "science"
msgstr "wetenschap"
-#: searx/webapp.py:399 searx/webapp.py:658
+#: searx/webapp.py:398 searx/webapp.py:653
msgid "Invalid settings, please edit your preferences"
msgstr "Ongeldige instellingen, werk je voorkeuren bij"
-#: searx/webapp.py:415
+#: searx/webapp.py:410
msgid "Invalid settings"
msgstr "Ongeldige instellingen"
-#: searx/webapp.py:449 searx/webapp.py:493
+#: searx/webapp.py:444 searx/webapp.py:488
msgid "search error"
msgstr "zoekfout"
-#: searx/webapp.py:530
+#: searx/webapp.py:525
msgid "{minutes} minute(s) ago"
msgstr "{minutes} min geleden"
-#: searx/webapp.py:532
+#: searx/webapp.py:527
msgid "{hours} hour(s), {minutes} minute(s) ago"
msgstr "{hours} uur, {minutes} min geleden"
@@ -109,29 +109,28 @@ msgstr "Statistische functies"
msgid "Compute {functions} of the arguments"
msgstr "Bereken {functions} van de argumenten"
-#: searx/engines/__init__.py:194 searx/engines/flycheck___init__.py:201
+#: searx/engines/__init__.py:194
msgid "Engine time (sec)"
msgstr "Snelheid zoekmachine (sec)"
-#: searx/engines/__init__.py:198 searx/engines/flycheck___init__.py:205
+#: searx/engines/__init__.py:198
msgid "Page loads (sec)"
msgstr "Laden van pagina’s (sec)"
-#: searx/engines/__init__.py:202 searx/engines/flycheck___init__.py:209
-#: searx/templates/oscar/results.html:95
+#: searx/engines/__init__.py:202 searx/templates/oscar/results.html:95
#: searx/templates/simple/results.html:20
msgid "Number of results"
msgstr "Aantal zoekresultaten"
-#: searx/engines/__init__.py:206 searx/engines/flycheck___init__.py:213
+#: searx/engines/__init__.py:206
msgid "Scores"
msgstr "Scores"
-#: searx/engines/__init__.py:210 searx/engines/flycheck___init__.py:217
+#: searx/engines/__init__.py:210
msgid "Scores per result"
msgstr "Scores per zoekresultaat"
-#: searx/engines/__init__.py:214 searx/engines/flycheck___init__.py:221
+#: searx/engines/__init__.py:214
msgid "Errors"
msgstr "Fouten"
@@ -143,9 +142,15 @@ msgstr "{title}&nbsp;(VEROUDERD)"
msgid "This entry has been superseded by"
msgstr "Dit object is vervangen door"
-#: searx/engines/pubmed.py:74
-msgid "No abstract is available for this publication."
-msgstr "Voor deze publicatie is geen abstract beschikbaar."
+#: searx/plugins/doai_rewrite.py:7
+msgid "DOAI rewrite"
+msgstr "DOAI herschrijven"
+
+#: searx/plugins/doai_rewrite.py:8
+msgid ""
+"Avoid paywalls by redirecting to open-access versions of publications when "
+"available"
+msgstr "Omzeil betaalmuren met een doorverwijzing naar vrij toegankelijke versies van publicaties indien beschikbaar"
#: searx/plugins/https_rewrite.py:32
msgid "Rewrite HTTP links to HTTPS if possible"
@@ -159,16 +164,6 @@ msgstr "Oneindig scrollen"
msgid "Automatically load next page when scrolling to bottom of current page"
msgstr "Volgende pagina automatisch laden bij bereiken van de onderkant van de huidige pagina"
-#: searx/plugins/oa_doi_rewrite.py:9
-msgid "Open Access DOI rewrite"
-msgstr "Open Access DOI herschrijven"
-
-#: searx/plugins/oa_doi_rewrite.py:10
-msgid ""
-"Avoid paywalls by redirecting to open-access versions of publications when "
-"available"
-msgstr "Omzeil betaalmuren met een doorverwijzing naar vrij toegankelijke versies van publicaties indien beschikbaar"
-
#: searx/plugins/open_results_on_new_tab.py:18
#: searx/templates/oscar/preferences.html:114
#: searx/templates/simple/preferences.html:149
@@ -331,8 +326,8 @@ msgstr "Methode"
#: searx/templates/courgette/preferences.html:63
#: searx/templates/legacy/preferences.html:64
#: searx/templates/oscar/preferences.html:86
-#: searx/templates/oscar/preferences.html:165
-#: searx/templates/oscar/preferences.html:173
+#: searx/templates/oscar/preferences.html:153
+#: searx/templates/oscar/preferences.html:161
#: searx/templates/simple/preferences.html:63
#: searx/templates/simple/preferences.html:90
msgid "SafeSearch"
@@ -404,8 +399,8 @@ msgstr "Momenteel gebruikte zoekmachines"
#: searx/templates/courgette/preferences.html:100
#: searx/templates/legacy/preferences.html:97
-#: searx/templates/oscar/preferences.html:162
-#: searx/templates/oscar/preferences.html:176
+#: searx/templates/oscar/preferences.html:150
+#: searx/templates/oscar/preferences.html:164
#: searx/templates/pix-art/preferences.html:53
#: searx/templates/simple/preferences.html:87
msgid "Engine name"
@@ -420,8 +415,8 @@ msgstr "Categorie"
#: searx/templates/courgette/preferences.html:113
#: searx/templates/legacy/preferences.html:99
#: searx/templates/legacy/preferences.html:110
-#: searx/templates/oscar/preferences.html:161
-#: searx/templates/oscar/preferences.html:177
+#: searx/templates/oscar/preferences.html:149
+#: searx/templates/oscar/preferences.html:165
#: searx/templates/pix-art/preferences.html:54
#: searx/templates/pix-art/preferences.html:64
#: searx/templates/simple/preferences.html:86
@@ -439,7 +434,7 @@ msgstr "Blokkeren"
#: searx/templates/courgette/preferences.html:122
#: searx/templates/legacy/preferences.html:119
-#: searx/templates/oscar/preferences.html:297
+#: searx/templates/oscar/preferences.html:285
#: searx/templates/pix-art/preferences.html:73
#: searx/templates/simple/preferences.html:180
msgid ""
@@ -449,7 +444,7 @@ msgstr "Deze instellingen worden bewaard in je cookies. Hierdoor hoeven wij niet
#: searx/templates/courgette/preferences.html:124
#: searx/templates/legacy/preferences.html:121
-#: searx/templates/oscar/preferences.html:299
+#: searx/templates/oscar/preferences.html:287
#: searx/templates/pix-art/preferences.html:75
#: searx/templates/simple/preferences.html:182
msgid ""
@@ -459,7 +454,7 @@ msgstr "Deze cookies zijn alleen voor je eigen gemak, we gebruiken deze cookies
#: searx/templates/courgette/preferences.html:127
#: searx/templates/legacy/preferences.html:124
-#: searx/templates/oscar/preferences.html:305
+#: searx/templates/oscar/preferences.html:293
#: searx/templates/pix-art/preferences.html:78
#: searx/templates/simple/preferences.html:185
msgid "save"
@@ -467,14 +462,14 @@ msgstr "bewaren"
#: searx/templates/courgette/preferences.html:128
#: searx/templates/legacy/preferences.html:125
-#: searx/templates/oscar/preferences.html:307
+#: searx/templates/oscar/preferences.html:295
#: searx/templates/simple/preferences.html:186
msgid "Reset defaults"
msgstr "Standaardinstellingen herstellen"
#: searx/templates/courgette/preferences.html:129
#: searx/templates/legacy/preferences.html:126
-#: searx/templates/oscar/preferences.html:306
+#: searx/templates/oscar/preferences.html:294
#: searx/templates/pix-art/preferences.html:79
#: searx/templates/simple/preferences.html:187
msgid "back"
@@ -645,23 +640,23 @@ msgid "General"
msgstr "Algemeen"
#: searx/templates/oscar/preferences.html:14
-#: searx/templates/oscar/preferences.html:146
+#: searx/templates/oscar/preferences.html:134
#: searx/templates/simple/preferences.html:76
msgid "Engines"
msgstr "Zoekmachines"
#: searx/templates/oscar/preferences.html:15
-#: searx/templates/oscar/preferences.html:219
+#: searx/templates/oscar/preferences.html:207
msgid "Plugins"
msgstr "Plug-ins"
#: searx/templates/oscar/preferences.html:16
-#: searx/templates/oscar/preferences.html:245
+#: searx/templates/oscar/preferences.html:233
msgid "Answerers"
msgstr "Beantwoorders"
#: searx/templates/oscar/preferences.html:17
-#: searx/templates/oscar/preferences.html:272
+#: searx/templates/oscar/preferences.html:260
msgid "Cookies"
msgstr "Cookies"
@@ -712,88 +707,78 @@ msgstr "Kies een stijl voor dit thema"
msgid "Style"
msgstr "Stijl"
-#: searx/templates/oscar/preferences.html:122
-msgid "Open Access DOI resolver"
-msgstr "Open Access DOI herschrijven"
-
-#: searx/templates/oscar/preferences.html:123
-msgid ""
-"Redirect to open-access versions of publications when available (plugin "
-"required)"
-msgstr "Doorverwijzen naar vrij toegankelijke versies van publicaties, indien beschikbaar (plug-in vereist)"
-
+#: searx/templates/oscar/preferences.html:151
#: searx/templates/oscar/preferences.html:163
-#: searx/templates/oscar/preferences.html:175
#: searx/templates/simple/preferences.html:88
msgid "Shortcut"
msgstr "Snelkoppeling"
-#: searx/templates/oscar/preferences.html:164
-#: searx/templates/oscar/preferences.html:174
+#: searx/templates/oscar/preferences.html:152
+#: searx/templates/oscar/preferences.html:162
msgid "Selected language"
msgstr "Geselecteerde taal"
-#: searx/templates/oscar/preferences.html:166
-#: searx/templates/oscar/preferences.html:172
+#: searx/templates/oscar/preferences.html:154
+#: searx/templates/oscar/preferences.html:160
#: searx/templates/simple/preferences.html:91
msgid "Time range"
msgstr "Tijdspanne"
-#: searx/templates/oscar/preferences.html:167
-#: searx/templates/oscar/preferences.html:171
+#: searx/templates/oscar/preferences.html:155
+#: searx/templates/oscar/preferences.html:159
#: searx/templates/simple/preferences.html:92
msgid "Avg. time"
msgstr "Gem. duur"
-#: searx/templates/oscar/preferences.html:168
-#: searx/templates/oscar/preferences.html:170
+#: searx/templates/oscar/preferences.html:156
+#: searx/templates/oscar/preferences.html:158
#: searx/templates/simple/preferences.html:93
msgid "Max time"
msgstr "Max. duur"
-#: searx/templates/oscar/preferences.html:248
+#: searx/templates/oscar/preferences.html:236
msgid "This is the list of searx's instant answering modules."
msgstr "Dit is het overzicht van de instantantwoordmodules van searx."
-#: searx/templates/oscar/preferences.html:252
+#: searx/templates/oscar/preferences.html:240
msgid "Name"
msgstr "Naam"
-#: searx/templates/oscar/preferences.html:253
+#: searx/templates/oscar/preferences.html:241
msgid "Keywords"
msgstr "Kernwoorden"
-#: searx/templates/oscar/preferences.html:254
+#: searx/templates/oscar/preferences.html:242
msgid "Description"
msgstr "Beschrijving"
-#: searx/templates/oscar/preferences.html:255
+#: searx/templates/oscar/preferences.html:243
msgid "Examples"
msgstr "Voorbeelden"
-#: searx/templates/oscar/preferences.html:275
+#: searx/templates/oscar/preferences.html:263
msgid ""
"This is the list of cookies and their values searx is storing on your "
"computer."
msgstr "Dit is de lijst van cookies en hun waarden die searx op je computer opslaat."
-#: searx/templates/oscar/preferences.html:276
+#: searx/templates/oscar/preferences.html:264
msgid "With that list, you can assess searx transparency."
msgstr "Met deze lijst kan je de openheid van searx beoordelen."
-#: searx/templates/oscar/preferences.html:281
+#: searx/templates/oscar/preferences.html:269
msgid "Cookie name"
msgstr "Cookienaam"
-#: searx/templates/oscar/preferences.html:282
+#: searx/templates/oscar/preferences.html:270
msgid "Value"
msgstr "Waarde"
-#: searx/templates/oscar/preferences.html:301
+#: searx/templates/oscar/preferences.html:289
msgid "Search URL of the currently saved preferences"
msgstr "Zoek-URL van de huidig opgeslagen voorkeuren"
-#: searx/templates/oscar/preferences.html:301
+#: searx/templates/oscar/preferences.html:289
msgid ""
"Note: specifying custom settings in the search URL can reduce privacy by "
"leaking data to the clicked result sites."
diff --git a/searx/translations/nl_BE/LC_MESSAGES/messages.mo b/searx/translations/nl_BE/LC_MESSAGES/messages.mo
index e233f5c89..e37b9e272 100644
--- a/searx/translations/nl_BE/LC_MESSAGES/messages.mo
+++ b/searx/translations/nl_BE/LC_MESSAGES/messages.mo
Binary files differ
diff --git a/searx/translations/nl_BE/LC_MESSAGES/messages.po b/searx/translations/nl_BE/LC_MESSAGES/messages.po
index c4ef0228a..21fa68cf1 100644
--- a/searx/translations/nl_BE/LC_MESSAGES/messages.po
+++ b/searx/translations/nl_BE/LC_MESSAGES/messages.po
@@ -3,13 +3,13 @@
# This file is distributed under the same license as the PROJECT project.
#
# Translators:
-# Nathan Follens, 2018
+# Nathan Follens, 2018-2019
msgid ""
msgstr ""
"Project-Id-Version: searx\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
-"POT-Creation-Date: 2017-11-01 21:31+0100\n"
-"PO-Revision-Date: 2018-06-24 07:59+0000\n"
+"POT-Creation-Date: 2017-10-07 19:18+0200\n"
+"PO-Revision-Date: 2019-02-23 19:47+0000\n"
"Last-Translator: Nathan Follens\n"
"Language-Team: Dutch (Belgium) (http://www.transifex.com/asciimoo/searx/language/nl_BE/)\n"
"MIME-Version: 1.0\n"
@@ -31,63 +31,63 @@ msgstr "aanvraaguitzondering"
msgid "unexpected crash"
msgstr "onverwachte crash"
-#: searx/webapp.py:136
+#: searx/webapp.py:135
msgid "files"
msgstr "bestanden"
-#: searx/webapp.py:137
+#: searx/webapp.py:136
msgid "general"
msgstr "algemeen"
-#: searx/webapp.py:138
+#: searx/webapp.py:137
msgid "music"
msgstr "muziek"
-#: searx/webapp.py:139
+#: searx/webapp.py:138
msgid "social media"
msgstr "sociale media"
-#: searx/webapp.py:140
+#: searx/webapp.py:139
msgid "images"
msgstr "afbeeldingen"
-#: searx/webapp.py:141
+#: searx/webapp.py:140
msgid "videos"
msgstr "video’s"
-#: searx/webapp.py:142
+#: searx/webapp.py:141
msgid "it"
msgstr "IT"
-#: searx/webapp.py:143
+#: searx/webapp.py:142
msgid "news"
msgstr "nieuws"
-#: searx/webapp.py:144
+#: searx/webapp.py:143
msgid "map"
msgstr "kaart"
-#: searx/webapp.py:145
+#: searx/webapp.py:144
msgid "science"
msgstr "wetenschap"
-#: searx/webapp.py:399 searx/webapp.py:658
+#: searx/webapp.py:398 searx/webapp.py:653
msgid "Invalid settings, please edit your preferences"
msgstr "Ongeldige instellingen, werkt uw voorkeuren bij"
-#: searx/webapp.py:415
+#: searx/webapp.py:410
msgid "Invalid settings"
msgstr "Ongeldige instellingen"
-#: searx/webapp.py:449 searx/webapp.py:493
+#: searx/webapp.py:444 searx/webapp.py:488
msgid "search error"
msgstr "zoekfout"
-#: searx/webapp.py:530
+#: searx/webapp.py:525
msgid "{minutes} minute(s) ago"
msgstr "{minutes} min geleden"
-#: searx/webapp.py:532
+#: searx/webapp.py:527
msgid "{hours} hour(s), {minutes} minute(s) ago"
msgstr "{hours} uur, {minutes} min geleden"
@@ -107,29 +107,28 @@ msgstr "Statistische functies"
msgid "Compute {functions} of the arguments"
msgstr "Berekent {functions} van de argumenten"
-#: searx/engines/__init__.py:194 searx/engines/flycheck___init__.py:201
+#: searx/engines/__init__.py:194
msgid "Engine time (sec)"
msgstr "Snelheid zoekmachien (sec)"
-#: searx/engines/__init__.py:198 searx/engines/flycheck___init__.py:205
+#: searx/engines/__init__.py:198
msgid "Page loads (sec)"
msgstr "Laden van pagina’s (sec)"
-#: searx/engines/__init__.py:202 searx/engines/flycheck___init__.py:209
-#: searx/templates/oscar/results.html:95
+#: searx/engines/__init__.py:202 searx/templates/oscar/results.html:95
#: searx/templates/simple/results.html:20
msgid "Number of results"
msgstr "Aantal zoekresultaten"
-#: searx/engines/__init__.py:206 searx/engines/flycheck___init__.py:213
+#: searx/engines/__init__.py:206
msgid "Scores"
msgstr "Scores"
-#: searx/engines/__init__.py:210 searx/engines/flycheck___init__.py:217
+#: searx/engines/__init__.py:210
msgid "Scores per result"
msgstr "Scores per zoekresultaat"
-#: searx/engines/__init__.py:214 searx/engines/flycheck___init__.py:221
+#: searx/engines/__init__.py:214
msgid "Errors"
msgstr "Fouten"
@@ -141,9 +140,15 @@ msgstr "{title}&nbsp;(VEROUDERD)"
msgid "This entry has been superseded by"
msgstr "Dit object is vervangen door"
-#: searx/engines/pubmed.py:74
-msgid "No abstract is available for this publication."
-msgstr "Voor deze publicatie is geen abstract beschikbaar."
+#: searx/plugins/doai_rewrite.py:7
+msgid "DOAI rewrite"
+msgstr "DOAI herschrijven"
+
+#: searx/plugins/doai_rewrite.py:8
+msgid ""
+"Avoid paywalls by redirecting to open-access versions of publications when "
+"available"
+msgstr "Omzeilt betaalmuren met een doorverwijzing naar vrij toegankelijke versies van publicaties indien beschikbaar"
#: searx/plugins/https_rewrite.py:32
msgid "Rewrite HTTP links to HTTPS if possible"
@@ -157,16 +162,6 @@ msgstr "Oneindig scrollen"
msgid "Automatically load next page when scrolling to bottom of current page"
msgstr "Volgende pagina automatisch laden bij bereiken van den onderkant van de huidige pagina"
-#: searx/plugins/oa_doi_rewrite.py:9
-msgid "Open Access DOI rewrite"
-msgstr "Open Access DOI herschrijven"
-
-#: searx/plugins/oa_doi_rewrite.py:10
-msgid ""
-"Avoid paywalls by redirecting to open-access versions of publications when "
-"available"
-msgstr "Omzeilt betaalmuren met een doorverwijzing naar vrij toegankelijke versies van publicaties indien beschikbaar"
-
#: searx/plugins/open_results_on_new_tab.py:18
#: searx/templates/oscar/preferences.html:114
#: searx/templates/simple/preferences.html:149
@@ -329,8 +324,8 @@ msgstr "Methode"
#: searx/templates/courgette/preferences.html:63
#: searx/templates/legacy/preferences.html:64
#: searx/templates/oscar/preferences.html:86
-#: searx/templates/oscar/preferences.html:165
-#: searx/templates/oscar/preferences.html:173
+#: searx/templates/oscar/preferences.html:153
+#: searx/templates/oscar/preferences.html:161
#: searx/templates/simple/preferences.html:63
#: searx/templates/simple/preferences.html:90
msgid "SafeSearch"
@@ -402,8 +397,8 @@ msgstr "Momenteel gebruikte zoekmachienen"
#: searx/templates/courgette/preferences.html:100
#: searx/templates/legacy/preferences.html:97
-#: searx/templates/oscar/preferences.html:162
-#: searx/templates/oscar/preferences.html:176
+#: searx/templates/oscar/preferences.html:150
+#: searx/templates/oscar/preferences.html:164
#: searx/templates/pix-art/preferences.html:53
#: searx/templates/simple/preferences.html:87
msgid "Engine name"
@@ -418,8 +413,8 @@ msgstr "Categorie"
#: searx/templates/courgette/preferences.html:113
#: searx/templates/legacy/preferences.html:99
#: searx/templates/legacy/preferences.html:110
-#: searx/templates/oscar/preferences.html:161
-#: searx/templates/oscar/preferences.html:177
+#: searx/templates/oscar/preferences.html:149
+#: searx/templates/oscar/preferences.html:165
#: searx/templates/pix-art/preferences.html:54
#: searx/templates/pix-art/preferences.html:64
#: searx/templates/simple/preferences.html:86
@@ -437,7 +432,7 @@ msgstr "Blokkeren"
#: searx/templates/courgette/preferences.html:122
#: searx/templates/legacy/preferences.html:119
-#: searx/templates/oscar/preferences.html:297
+#: searx/templates/oscar/preferences.html:285
#: searx/templates/pix-art/preferences.html:73
#: searx/templates/simple/preferences.html:180
msgid ""
@@ -447,7 +442,7 @@ msgstr "Deze instellingen worden bewaard in uw cookies. Hierdoor hoeven wij niks
#: searx/templates/courgette/preferences.html:124
#: searx/templates/legacy/preferences.html:121
-#: searx/templates/oscar/preferences.html:299
+#: searx/templates/oscar/preferences.html:287
#: searx/templates/pix-art/preferences.html:75
#: searx/templates/simple/preferences.html:182
msgid ""
@@ -457,7 +452,7 @@ msgstr "Deze cookies zijn alleen voor uw eigen gemak, we gebruiken deze cookies
#: searx/templates/courgette/preferences.html:127
#: searx/templates/legacy/preferences.html:124
-#: searx/templates/oscar/preferences.html:305
+#: searx/templates/oscar/preferences.html:293
#: searx/templates/pix-art/preferences.html:78
#: searx/templates/simple/preferences.html:185
msgid "save"
@@ -465,14 +460,14 @@ msgstr "opslaan"
#: searx/templates/courgette/preferences.html:128
#: searx/templates/legacy/preferences.html:125
-#: searx/templates/oscar/preferences.html:307
+#: searx/templates/oscar/preferences.html:295
#: searx/templates/simple/preferences.html:186
msgid "Reset defaults"
msgstr "Standaardinstellingen herstellen"
#: searx/templates/courgette/preferences.html:129
#: searx/templates/legacy/preferences.html:126
-#: searx/templates/oscar/preferences.html:306
+#: searx/templates/oscar/preferences.html:294
#: searx/templates/pix-art/preferences.html:79
#: searx/templates/simple/preferences.html:187
msgid "back"
@@ -643,23 +638,23 @@ msgid "General"
msgstr "Algemeen"
#: searx/templates/oscar/preferences.html:14
-#: searx/templates/oscar/preferences.html:146
+#: searx/templates/oscar/preferences.html:134
#: searx/templates/simple/preferences.html:76
msgid "Engines"
msgstr "Zoekmachienen"
#: searx/templates/oscar/preferences.html:15
-#: searx/templates/oscar/preferences.html:219
+#: searx/templates/oscar/preferences.html:207
msgid "Plugins"
msgstr "Plug-ins"
#: searx/templates/oscar/preferences.html:16
-#: searx/templates/oscar/preferences.html:245
+#: searx/templates/oscar/preferences.html:233
msgid "Answerers"
msgstr "Beantwoorders"
#: searx/templates/oscar/preferences.html:17
-#: searx/templates/oscar/preferences.html:272
+#: searx/templates/oscar/preferences.html:260
msgid "Cookies"
msgstr "Cookies"
@@ -710,88 +705,78 @@ msgstr "Kiest ne stijl voor dit thema"
msgid "Style"
msgstr "Stijl"
-#: searx/templates/oscar/preferences.html:122
-msgid "Open Access DOI resolver"
-msgstr "Open Access DOI herschrijven"
-
-#: searx/templates/oscar/preferences.html:123
-msgid ""
-"Redirect to open-access versions of publications when available (plugin "
-"required)"
-msgstr "Doorverwijzen naar vrij toegankelijke versies van publicaties, indien beschikbaar (plug-in vereist)"
-
+#: searx/templates/oscar/preferences.html:151
#: searx/templates/oscar/preferences.html:163
-#: searx/templates/oscar/preferences.html:175
#: searx/templates/simple/preferences.html:88
msgid "Shortcut"
msgstr "Snelkoppeling"
-#: searx/templates/oscar/preferences.html:164
-#: searx/templates/oscar/preferences.html:174
+#: searx/templates/oscar/preferences.html:152
+#: searx/templates/oscar/preferences.html:162
msgid "Selected language"
msgstr "Geselecteerde taal"
-#: searx/templates/oscar/preferences.html:166
-#: searx/templates/oscar/preferences.html:172
+#: searx/templates/oscar/preferences.html:154
+#: searx/templates/oscar/preferences.html:160
#: searx/templates/simple/preferences.html:91
msgid "Time range"
msgstr "Tijdspanne"
-#: searx/templates/oscar/preferences.html:167
-#: searx/templates/oscar/preferences.html:171
+#: searx/templates/oscar/preferences.html:155
+#: searx/templates/oscar/preferences.html:159
#: searx/templates/simple/preferences.html:92
msgid "Avg. time"
msgstr "Gem. duur"
-#: searx/templates/oscar/preferences.html:168
-#: searx/templates/oscar/preferences.html:170
+#: searx/templates/oscar/preferences.html:156
+#: searx/templates/oscar/preferences.html:158
#: searx/templates/simple/preferences.html:93
msgid "Max time"
msgstr "Max. duur"
-#: searx/templates/oscar/preferences.html:248
+#: searx/templates/oscar/preferences.html:236
msgid "This is the list of searx's instant answering modules."
msgstr "Dit is het overzicht van de instantantwoordmodules van searx."
-#: searx/templates/oscar/preferences.html:252
+#: searx/templates/oscar/preferences.html:240
msgid "Name"
msgstr "Naam"
-#: searx/templates/oscar/preferences.html:253
+#: searx/templates/oscar/preferences.html:241
msgid "Keywords"
msgstr "Kernwoorden"
-#: searx/templates/oscar/preferences.html:254
+#: searx/templates/oscar/preferences.html:242
msgid "Description"
msgstr "Beschrijving"
-#: searx/templates/oscar/preferences.html:255
+#: searx/templates/oscar/preferences.html:243
msgid "Examples"
msgstr "Voorbeelden"
-#: searx/templates/oscar/preferences.html:275
+#: searx/templates/oscar/preferences.html:263
msgid ""
"This is the list of cookies and their values searx is storing on your "
"computer."
msgstr "Dit is de lijst van cookies en hun waarden die searx op uwe computer opslaat."
-#: searx/templates/oscar/preferences.html:276
+#: searx/templates/oscar/preferences.html:264
msgid "With that list, you can assess searx transparency."
msgstr "Met deze lijst kunt ge de openheid van searx beoordelen."
-#: searx/templates/oscar/preferences.html:281
+#: searx/templates/oscar/preferences.html:269
msgid "Cookie name"
msgstr "Cookienaam"
-#: searx/templates/oscar/preferences.html:282
+#: searx/templates/oscar/preferences.html:270
msgid "Value"
msgstr "Waarde"
-#: searx/templates/oscar/preferences.html:301
+#: searx/templates/oscar/preferences.html:289
msgid "Search URL of the currently saved preferences"
msgstr "Zoek-URL van de momenteel opgeslagen voorkeuren"
-#: searx/templates/oscar/preferences.html:301
+#: searx/templates/oscar/preferences.html:289
msgid ""
"Note: specifying custom settings in the search URL can reduce privacy by "
"leaking data to the clicked result sites."
diff --git a/searx/translations/oc/LC_MESSAGES/messages.mo b/searx/translations/oc/LC_MESSAGES/messages.mo
new file mode 100644
index 000000000..a9519a677
--- /dev/null
+++ b/searx/translations/oc/LC_MESSAGES/messages.mo
Binary files differ
diff --git a/searx/translations/oc/LC_MESSAGES/messages.po b/searx/translations/oc/LC_MESSAGES/messages.po
new file mode 100644
index 000000000..404343938
--- /dev/null
+++ b/searx/translations/oc/LC_MESSAGES/messages.po
@@ -0,0 +1,999 @@
+# Translations template for PROJECT.
+# Copyright (C) 2017 ORGANIZATION
+# This file is distributed under the same license as the PROJECT project.
+#
+# Translators:
+# Quentin, 2016,2018
+# Marc Abonce Seguin, 2019
+msgid ""
+msgstr ""
+"Project-Id-Version: searx\n"
+"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
+"POT-Creation-Date: 2017-10-07 19:18+0200\n"
+"PO-Revision-Date: 2019-04-12 23:05+0000\n"
+"Last-Translator: Marc Abonce Seguin\n"
+"Language-Team: Occitan (post 1500) (http://www.transifex.com/asciimoo/searx/language/oc/)\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Generated-By: Babel 2.3.4\n"
+"Language: oc\n"
+"Plural-Forms: nplurals=2; plural=(n > 1);\n"
+
+#: searx/search.py:137 searx/search.py:182
+msgid "timeout"
+msgstr "relambi passat"
+
+#: searx/search.py:144
+msgid "request exception"
+msgstr "excepcion de requèsta"
+
+#: searx/search.py:151
+msgid "unexpected crash"
+msgstr "fracàs pas previst"
+
+#: searx/webapp.py:135
+msgid "files"
+msgstr "fichièrs"
+
+#: searx/webapp.py:136
+msgid "general"
+msgstr "general"
+
+#: searx/webapp.py:137
+msgid "music"
+msgstr "musica"
+
+#: searx/webapp.py:138
+msgid "social media"
+msgstr "mèdias socials"
+
+#: searx/webapp.py:139
+msgid "images"
+msgstr "imatges"
+
+#: searx/webapp.py:140
+msgid "videos"
+msgstr "vidèos"
+
+#: searx/webapp.py:141
+msgid "it"
+msgstr "tecnologia"
+
+#: searx/webapp.py:142
+msgid "news"
+msgstr "actualitat"
+
+#: searx/webapp.py:143
+msgid "map"
+msgstr "mapa"
+
+#: searx/webapp.py:144
+msgid "science"
+msgstr "sciéncia"
+
+#: searx/webapp.py:398 searx/webapp.py:653
+msgid "Invalid settings, please edit your preferences"
+msgstr "Paramètre pas valide, mercés de modificar vòstras preferéncias"
+
+#: searx/webapp.py:410
+msgid "Invalid settings"
+msgstr "Paramètres invalids"
+
+#: searx/webapp.py:444 searx/webapp.py:488
+msgid "search error"
+msgstr "error de recèrca"
+
+#: searx/webapp.py:525
+msgid "{minutes} minute(s) ago"
+msgstr "fa {minutes} minuta(s)"
+
+#: searx/webapp.py:527
+msgid "{hours} hour(s), {minutes} minute(s) ago"
+msgstr "Fa {hours} ora(s), {minutes} minuta(s)"
+
+#: searx/answerers/random/answerer.py:53
+msgid "Random value generator"
+msgstr "Generator aleatòri"
+
+#: searx/answerers/random/answerer.py:54
+msgid "Generate different random values"
+msgstr "Crèa de valors aleatòrias diferentas"
+
+#: searx/answerers/statistics/answerer.py:53
+msgid "Statistics functions"
+msgstr "Foncions estatisticas"
+
+#: searx/answerers/statistics/answerer.py:54
+msgid "Compute {functions} of the arguments"
+msgstr "Calcula las {functions} dels arguments"
+
+#: searx/engines/__init__.py:194
+msgid "Engine time (sec)"
+msgstr "Temps del motor (sec)"
+
+#: searx/engines/__init__.py:198
+msgid "Page loads (sec)"
+msgstr "Pagina cargada en (sec) segondas"
+
+#: searx/engines/__init__.py:202 searx/templates/oscar/results.html:95
+#: searx/templates/simple/results.html:20
+msgid "Number of results"
+msgstr "Nombre de resultats"
+
+#: searx/engines/__init__.py:206
+msgid "Scores"
+msgstr "Marcas"
+
+#: searx/engines/__init__.py:210
+msgid "Scores per result"
+msgstr "Marcas per resultat"
+
+#: searx/engines/__init__.py:214
+msgid "Errors"
+msgstr "Errors"
+
+#: searx/engines/pdbe.py:87
+msgid "{title}&nbsp;(OBSOLETE)"
+msgstr "{titre}&nbsp;(OBSOLETE)"
+
+#: searx/engines/pdbe.py:91
+msgid "This entry has been superseded by"
+msgstr "Aqueste element es estat remplaçat per"
+
+#: searx/plugins/doai_rewrite.py:7
+msgid "DOAI rewrite"
+msgstr "Reescritura DOAI"
+
+#: searx/plugins/doai_rewrite.py:8
+msgid ""
+"Avoid paywalls by redirecting to open-access versions of publications when "
+"available"
+msgstr "Evitar las paginas de pagament ne virant sus la version en accès liure quand es disponibla"
+
+#: searx/plugins/https_rewrite.py:32
+msgid "Rewrite HTTP links to HTTPS if possible"
+msgstr "Reescritura de los ligam HTTP en HTTPS s'es possible."
+
+#: searx/plugins/infinite_scroll.py:3
+msgid "Infinite scroll"
+msgstr "Desfilament sens fin"
+
+#: searx/plugins/infinite_scroll.py:4
+msgid "Automatically load next page when scrolling to bottom of current page"
+msgstr "Carga automaticament la pagina seguenta quand arribatz en fin de pagina"
+
+#: searx/plugins/open_results_on_new_tab.py:18
+#: searx/templates/oscar/preferences.html:114
+#: searx/templates/simple/preferences.html:149
+msgid "Open result links on new browser tabs"
+msgstr "Dubrir los ligams de resultats dins un nòu onglet"
+
+#: searx/plugins/open_results_on_new_tab.py:19
+msgid ""
+"Results are opened in the same window by default. This plugin overwrites the"
+" default behaviour to open links on new tabs/windows. (JavaScript required)"
+msgstr "Los resultats son dobèrts dins una nòva fenestra per defaut. Aquesta extension càmbia lo comportement per defaut per dobrir los ligams dins de nòus onglets o fenestras (Javascript es necessari)"
+
+#: searx/plugins/search_on_category_select.py:18
+msgid "Search on category select"
+msgstr "Cercar dins la categoria causida"
+
+#: searx/plugins/search_on_category_select.py:19
+msgid ""
+"Perform search immediately if a category selected. Disable to select "
+"multiple categories. (JavaScript required)"
+msgstr "Lança la recèrca sul còp se una categoria es seleccionada. Desactivar per seleccionar mai d'una categoria (Javascript necessari)."
+
+#: searx/plugins/self_info.py:20
+msgid ""
+"Displays your IP if the query is \"ip\" and your user agent if the query "
+"contains \"user agent\"."
+msgstr "Aficha vòstre adreça IP se la demanda es \"ip\", e aficha vòstre user-agent se la demanda conten \"user agent\"."
+
+#: searx/plugins/tracker_url_remover.py:26
+msgid "Tracker URL remover"
+msgstr "Netejador d'URL de traçat"
+
+#: searx/plugins/tracker_url_remover.py:27
+msgid "Remove trackers arguments from the returned URL"
+msgstr "Lèva los arguments de las URL utilizats per vos traçar"
+
+#: searx/plugins/vim_hotkeys.py:3
+msgid "Vim-like hotkeys"
+msgstr "Acorchis coma Vim"
+
+#: searx/plugins/vim_hotkeys.py:4
+msgid ""
+"Navigate search results with Vim-like hotkeys (JavaScript required). Press "
+"\"h\" key on main or result page to get help."
+msgstr "Percorrètz los resultats de recèrca amb d'acorchis clavièr coma sus Vim (Javascript necessari). Picatz sus \"h\" dins la fenestra principala de resultats per afichar l'ajuda."
+
+#: searx/templates/courgette/404.html:4 searx/templates/legacy/404.html:4
+#: searx/templates/oscar/404.html:4 searx/templates/pix-art/404.html:4
+#: searx/templates/simple/404.html:4
+msgid "Page not found"
+msgstr "Pagina pas trobada"
+
+#: searx/templates/courgette/404.html:6 searx/templates/legacy/404.html:6
+#: searx/templates/oscar/404.html:6 searx/templates/pix-art/404.html:6
+#: searx/templates/simple/404.html:6
+#, python-format
+msgid "Go to %(search_page)s."
+msgstr "Anar a %(search_page)s."
+
+#: searx/templates/courgette/404.html:6 searx/templates/legacy/404.html:6
+#: searx/templates/oscar/404.html:6 searx/templates/pix-art/404.html:6
+#: searx/templates/simple/404.html:6
+msgid "search page"
+msgstr "cercar dins la pagina"
+
+#: searx/templates/courgette/index.html:9
+#: searx/templates/courgette/index.html:13
+#: searx/templates/courgette/results.html:5
+#: searx/templates/legacy/index.html:8 searx/templates/legacy/index.html:12
+#: searx/templates/oscar/navbar.html:7
+#: searx/templates/oscar/preferences.html:3
+#: searx/templates/pix-art/index.html:8
+msgid "preferences"
+msgstr "preferéncias"
+
+#: searx/templates/courgette/index.html:11
+#: searx/templates/legacy/index.html:10 searx/templates/oscar/about.html:2
+#: searx/templates/oscar/navbar.html:6 searx/templates/pix-art/index.html:7
+msgid "about"
+msgstr "a prepaus"
+
+#: searx/templates/courgette/preferences.html:5
+#: searx/templates/legacy/preferences.html:5
+#: searx/templates/oscar/preferences.html:8
+#: searx/templates/pix-art/preferences.html:5
+#: searx/templates/simple/preferences.html:26
+msgid "Preferences"
+msgstr "Preferéncias"
+
+#: searx/templates/courgette/preferences.html:9
+#: searx/templates/legacy/preferences.html:9
+#: searx/templates/oscar/preferences.html:33
+#: searx/templates/oscar/preferences.html:35
+#: searx/templates/simple/preferences.html:34
+msgid "Default categories"
+msgstr "Categoria per defaut"
+
+#: searx/templates/courgette/preferences.html:13
+#: searx/templates/legacy/preferences.html:14
+#: searx/templates/oscar/preferences.html:41
+#: searx/templates/pix-art/preferences.html:9
+#: searx/templates/simple/preferences.html:39
+#: searx/templates/simple/preferences.html:163
+msgid "Search language"
+msgstr "Lenga de recerca"
+
+#: searx/templates/courgette/preferences.html:16
+#: searx/templates/legacy/preferences.html:17
+#: searx/templates/oscar/languages.html:6
+#: searx/templates/pix-art/preferences.html:12
+#: searx/templates/simple/languages.html:2
+#: searx/templates/simple/preferences.html:42
+msgid "Default language"
+msgstr "Lenga per defaut"
+
+#: searx/templates/courgette/preferences.html:24
+#: searx/templates/legacy/preferences.html:25
+#: searx/templates/oscar/preferences.html:47
+#: searx/templates/pix-art/preferences.html:20
+#: searx/templates/simple/preferences.html:120
+msgid "Interface language"
+msgstr "Lenga de l'interfàcia"
+
+#: searx/templates/courgette/preferences.html:34
+#: searx/templates/legacy/preferences.html:35
+#: searx/templates/oscar/preferences.html:57
+#: searx/templates/simple/preferences.html:51
+msgid "Autocomplete"
+msgstr "Autocompletar"
+
+#: searx/templates/courgette/preferences.html:45
+#: searx/templates/legacy/preferences.html:46
+#: searx/templates/oscar/preferences.html:68
+#: searx/templates/simple/preferences.html:166
+msgid "Image proxy"
+msgstr "Proxy pels imatges"
+
+#: searx/templates/courgette/preferences.html:48
+#: searx/templates/legacy/preferences.html:49
+#: searx/templates/oscar/preferences.html:72
+#: searx/templates/simple/preferences.html:169
+msgid "Enabled"
+msgstr "Activat"
+
+#: searx/templates/courgette/preferences.html:49
+#: searx/templates/legacy/preferences.html:50
+#: searx/templates/oscar/preferences.html:73
+#: searx/templates/simple/preferences.html:170
+msgid "Disabled"
+msgstr "Desactivat"
+
+#: searx/templates/courgette/preferences.html:54
+#: searx/templates/legacy/preferences.html:55
+#: searx/templates/oscar/preferences.html:77
+#: searx/templates/pix-art/preferences.html:30
+#: searx/templates/simple/preferences.html:156
+msgid "Method"
+msgstr "Metòde"
+
+#: searx/templates/courgette/preferences.html:63
+#: searx/templates/legacy/preferences.html:64
+#: searx/templates/oscar/preferences.html:86
+#: searx/templates/oscar/preferences.html:153
+#: searx/templates/oscar/preferences.html:161
+#: searx/templates/simple/preferences.html:63
+#: searx/templates/simple/preferences.html:90
+msgid "SafeSearch"
+msgstr "Recèrca segurizada"
+
+#: searx/templates/courgette/preferences.html:66
+#: searx/templates/legacy/preferences.html:67
+#: searx/templates/oscar/preferences.html:90
+#: searx/templates/simple/preferences.html:66
+msgid "Strict"
+msgstr "Estricte"
+
+#: searx/templates/courgette/preferences.html:67
+#: searx/templates/legacy/preferences.html:68
+#: searx/templates/oscar/preferences.html:91
+#: searx/templates/simple/preferences.html:67
+msgid "Moderate"
+msgstr "Moderat"
+
+#: searx/templates/courgette/preferences.html:68
+#: searx/templates/legacy/preferences.html:69
+#: searx/templates/oscar/preferences.html:92
+#: searx/templates/simple/preferences.html:68
+msgid "None"
+msgstr "Cap"
+
+#: searx/templates/courgette/preferences.html:73
+#: searx/templates/legacy/preferences.html:74
+#: searx/templates/oscar/preferences.html:96
+#: searx/templates/pix-art/preferences.html:39
+#: searx/templates/simple/preferences.html:131
+msgid "Themes"
+msgstr "Tèmas"
+
+#: searx/templates/courgette/preferences.html:83
+msgid "Color"
+msgstr "Color"
+
+#: searx/templates/courgette/preferences.html:86
+msgid "Blue (default)"
+msgstr "Blau (defaut)"
+
+#: searx/templates/courgette/preferences.html:87
+msgid "Violet"
+msgstr "Violet"
+
+#: searx/templates/courgette/preferences.html:88
+msgid "Green"
+msgstr "Verd"
+
+#: searx/templates/courgette/preferences.html:89
+msgid "Cyan"
+msgstr "Blau"
+
+#: searx/templates/courgette/preferences.html:90
+msgid "Orange"
+msgstr "Irange"
+
+#: searx/templates/courgette/preferences.html:91
+msgid "Red"
+msgstr "Roge"
+
+#: searx/templates/courgette/preferences.html:96
+#: searx/templates/legacy/preferences.html:93
+#: searx/templates/pix-art/preferences.html:49
+#: searx/templates/simple/preferences.html:77
+msgid "Currently used search engines"
+msgstr "Motors de recèrca utilizat actualament"
+
+#: searx/templates/courgette/preferences.html:100
+#: searx/templates/legacy/preferences.html:97
+#: searx/templates/oscar/preferences.html:150
+#: searx/templates/oscar/preferences.html:164
+#: searx/templates/pix-art/preferences.html:53
+#: searx/templates/simple/preferences.html:87
+msgid "Engine name"
+msgstr "Nom del motor de cerca"
+
+#: searx/templates/courgette/preferences.html:101
+#: searx/templates/legacy/preferences.html:98
+msgid "Category"
+msgstr "Categoria"
+
+#: searx/templates/courgette/preferences.html:102
+#: searx/templates/courgette/preferences.html:113
+#: searx/templates/legacy/preferences.html:99
+#: searx/templates/legacy/preferences.html:110
+#: searx/templates/oscar/preferences.html:149
+#: searx/templates/oscar/preferences.html:165
+#: searx/templates/pix-art/preferences.html:54
+#: searx/templates/pix-art/preferences.html:64
+#: searx/templates/simple/preferences.html:86
+msgid "Allow"
+msgstr "Autorizar"
+
+#: searx/templates/courgette/preferences.html:102
+#: searx/templates/courgette/preferences.html:114
+#: searx/templates/legacy/preferences.html:99
+#: searx/templates/legacy/preferences.html:111
+#: searx/templates/pix-art/preferences.html:54
+#: searx/templates/pix-art/preferences.html:65
+msgid "Block"
+msgstr "Blocar"
+
+#: searx/templates/courgette/preferences.html:122
+#: searx/templates/legacy/preferences.html:119
+#: searx/templates/oscar/preferences.html:285
+#: searx/templates/pix-art/preferences.html:73
+#: searx/templates/simple/preferences.html:180
+msgid ""
+"These settings are stored in your cookies, this allows us not to store this "
+"data about you."
+msgstr "Aquestes paramètres son gardats dins vòstres cookies : aquò nos permet pas de collectar vòstras donadas."
+
+#: searx/templates/courgette/preferences.html:124
+#: searx/templates/legacy/preferences.html:121
+#: searx/templates/oscar/preferences.html:287
+#: searx/templates/pix-art/preferences.html:75
+#: searx/templates/simple/preferences.html:182
+msgid ""
+"These cookies serve your sole convenience, we don't use these cookies to "
+"track you."
+msgstr "Aquestes cookies existon per vòstre confòrt d'utilizacion, los empleguem pas per vos espiar."
+
+#: searx/templates/courgette/preferences.html:127
+#: searx/templates/legacy/preferences.html:124
+#: searx/templates/oscar/preferences.html:293
+#: searx/templates/pix-art/preferences.html:78
+#: searx/templates/simple/preferences.html:185
+msgid "save"
+msgstr "enregistrar"
+
+#: searx/templates/courgette/preferences.html:128
+#: searx/templates/legacy/preferences.html:125
+#: searx/templates/oscar/preferences.html:295
+#: searx/templates/simple/preferences.html:186
+msgid "Reset defaults"
+msgstr "Reïnicializar per defaut"
+
+#: searx/templates/courgette/preferences.html:129
+#: searx/templates/legacy/preferences.html:126
+#: searx/templates/oscar/preferences.html:294
+#: searx/templates/pix-art/preferences.html:79
+#: searx/templates/simple/preferences.html:187
+msgid "back"
+msgstr "tornar"
+
+#: searx/templates/courgette/results.html:12
+#: searx/templates/legacy/results.html:13
+#: searx/templates/oscar/results.html:136
+#: searx/templates/simple/results.html:58
+msgid "Search URL"
+msgstr "URL de recèrca"
+
+#: searx/templates/courgette/results.html:16
+#: searx/templates/legacy/results.html:17
+#: searx/templates/oscar/results.html:141
+#: searx/templates/simple/results.html:62
+msgid "Download results"
+msgstr "Telecargar los resultats"
+
+#: searx/templates/courgette/results.html:34
+#: searx/templates/legacy/results.html:35
+#: searx/templates/simple/results.html:10
+msgid "Answers"
+msgstr "Responsas"
+
+#: searx/templates/courgette/results.html:42
+#: searx/templates/legacy/results.html:43
+#: searx/templates/oscar/results.html:116
+#: searx/templates/simple/results.html:42
+msgid "Suggestions"
+msgstr "Suggestions"
+
+#: searx/templates/courgette/results.html:70
+#: searx/templates/legacy/results.html:81
+#: searx/templates/oscar/results.html:68 searx/templates/oscar/results.html:78
+#: searx/templates/simple/results.html:130
+msgid "previous page"
+msgstr "pagina precedenta"
+
+#: searx/templates/courgette/results.html:81
+#: searx/templates/legacy/results.html:92
+#: searx/templates/oscar/results.html:62 searx/templates/oscar/results.html:84
+#: searx/templates/simple/results.html:145
+msgid "next page"
+msgstr "pagina seguenta"
+
+#: searx/templates/courgette/search.html:3
+#: searx/templates/legacy/search.html:3 searx/templates/oscar/search.html:6
+#: searx/templates/oscar/search_full.html:9
+#: searx/templates/pix-art/search.html:3 searx/templates/simple/search.html:4
+msgid "Search for..."
+msgstr "Cerca per..."
+
+#: searx/templates/courgette/stats.html:4 searx/templates/legacy/stats.html:4
+#: searx/templates/oscar/stats.html:5 searx/templates/pix-art/stats.html:4
+#: searx/templates/simple/stats.html:7
+msgid "Engine stats"
+msgstr "Estatistica del motor"
+
+#: searx/templates/courgette/result_templates/images.html:4
+#: searx/templates/legacy/result_templates/images.html:4
+#: searx/templates/pix-art/result_templates/images.html:4
+msgid "original context"
+msgstr "contèxte d'origina"
+
+#: searx/templates/courgette/result_templates/torrent.html:7
+#: searx/templates/legacy/result_templates/torrent.html:11
+#: searx/templates/oscar/result_templates/torrent.html:6
+#: searx/templates/simple/result_templates/torrent.html:9
+msgid "Seeder"
+msgstr "Fonts"
+
+#: searx/templates/courgette/result_templates/torrent.html:7
+#: searx/templates/legacy/result_templates/torrent.html:11
+#: searx/templates/oscar/result_templates/torrent.html:6
+#: searx/templates/simple/result_templates/torrent.html:9
+msgid "Leecher"
+msgstr "Telecargaires"
+
+#: searx/templates/courgette/result_templates/torrent.html:9
+#: searx/templates/legacy/result_templates/torrent.html:9
+#: searx/templates/oscar/macros.html:23
+#: searx/templates/simple/result_templates/torrent.html:6
+msgid "magnet link"
+msgstr "ligam magnet"
+
+#: searx/templates/courgette/result_templates/torrent.html:10
+#: searx/templates/legacy/result_templates/torrent.html:10
+#: searx/templates/oscar/macros.html:24
+#: searx/templates/simple/result_templates/torrent.html:7
+msgid "torrent file"
+msgstr "fichièr torrent"
+
+#: searx/templates/legacy/categories.html:8
+#: searx/templates/simple/categories.html:6
+msgid "Click on the magnifier to perform search"
+msgstr "Clicatz sus la lópia per lançar una recèrca"
+
+#: searx/templates/legacy/preferences.html:84
+#: searx/templates/oscar/preferences.html:113
+#: searx/templates/simple/preferences.html:142
+msgid "Results on new tabs"
+msgstr "Resultat dins de nòus onglets"
+
+#: searx/templates/legacy/preferences.html:87
+#: searx/templates/oscar/preferences.html:117
+#: searx/templates/simple/preferences.html:145
+msgid "On"
+msgstr "Òc"
+
+#: searx/templates/legacy/preferences.html:88
+#: searx/templates/oscar/preferences.html:118
+#: searx/templates/simple/preferences.html:146
+msgid "Off"
+msgstr "Non"
+
+#: searx/templates/legacy/result_templates/code.html:3
+#: searx/templates/legacy/result_templates/default.html:3
+#: searx/templates/legacy/result_templates/map.html:9
+#: searx/templates/oscar/macros.html:34 searx/templates/oscar/macros.html:48
+#: searx/templates/simple/macros.html:43
+msgid "cached"
+msgstr "en version locala"
+
+#: searx/templates/oscar/advanced.html:4
+msgid "Advanced settings"
+msgstr "Paramètres avançats"
+
+#: searx/templates/oscar/base.html:62
+#: searx/templates/oscar/messages/first_time.html:4
+#: searx/templates/oscar/messages/save_settings_successfull.html:5
+#: searx/templates/oscar/messages/unknow_error.html:5
+msgid "Close"
+msgstr "Tampar"
+
+#: searx/templates/oscar/base.html:64
+#: searx/templates/oscar/messages/no_results.html:4
+#: searx/templates/simple/messages/no_results.html:4
+#: searx/templates/simple/results.html:25
+msgid "Error!"
+msgstr "Error !"
+
+#: searx/templates/oscar/base.html:90 searx/templates/simple/base.html:55
+msgid "Powered by"
+msgstr "Propulsat per"
+
+#: searx/templates/oscar/base.html:90 searx/templates/simple/base.html:55
+msgid "a privacy-respecting, hackable metasearch engine"
+msgstr "un meta-motor de recèrca hackable e respectuós de la vida privada"
+
+#: searx/templates/oscar/macros.html:36 searx/templates/oscar/macros.html:50
+#: searx/templates/simple/macros.html:43
+msgid "proxied"
+msgstr "proxifiat"
+
+#: searx/templates/oscar/macros.html:92
+msgid "supported"
+msgstr "compatible"
+
+#: searx/templates/oscar/macros.html:96
+msgid "not supported"
+msgstr "pas compatible"
+
+#: searx/templates/oscar/preferences.html:13
+#: searx/templates/oscar/preferences.html:22
+#: searx/templates/simple/preferences.html:32
+msgid "General"
+msgstr "General"
+
+#: searx/templates/oscar/preferences.html:14
+#: searx/templates/oscar/preferences.html:134
+#: searx/templates/simple/preferences.html:76
+msgid "Engines"
+msgstr "Motors de cerca"
+
+#: searx/templates/oscar/preferences.html:15
+#: searx/templates/oscar/preferences.html:207
+msgid "Plugins"
+msgstr "Extensions"
+
+#: searx/templates/oscar/preferences.html:16
+#: searx/templates/oscar/preferences.html:233
+msgid "Answerers"
+msgstr "Respondaires"
+
+#: searx/templates/oscar/preferences.html:17
+#: searx/templates/oscar/preferences.html:260
+msgid "Cookies"
+msgstr "Cookies"
+
+#: searx/templates/oscar/preferences.html:42
+#: searx/templates/simple/preferences.html:48
+msgid "What language do you prefer for search?"
+msgstr "Dins quina lenga vos agrada mai cercar ?"
+
+#: searx/templates/oscar/preferences.html:48
+#: searx/templates/simple/preferences.html:128
+msgid "Change the language of the layout"
+msgstr "Cambiar la lenga de l'interfàcia"
+
+#: searx/templates/oscar/preferences.html:58
+#: searx/templates/simple/preferences.html:60
+msgid "Find stuff as you type"
+msgstr "Trobar de causas pendent que picatz"
+
+#: searx/templates/oscar/preferences.html:69
+#: searx/templates/simple/preferences.html:173
+msgid "Proxying image results through searx"
+msgstr "Proxifiar los imatges de resultats a travers searx"
+
+#: searx/templates/oscar/preferences.html:78
+msgid ""
+"Change how forms are submited, <a "
+"href=\"http://en.wikipedia.org/wiki/Hypertext_Transfer_Protocol#Request_methods\""
+" rel=\"external\">learn more about request methods</a>"
+msgstr "Permet de causir cossí la recèrca es mandada, <a href=\"http://en.wikipedia.org/wiki/Hypertext_Transfer_Protocol#Request_methods\" rel=\"external\"> per ne saber mai suls metòdes HTTP</a>"
+
+#: searx/templates/oscar/preferences.html:87
+#: searx/templates/simple/preferences.html:71
+msgid "Filter content"
+msgstr "Filtrar lo contengut"
+
+#: searx/templates/oscar/preferences.html:97
+#: searx/templates/simple/preferences.html:139
+msgid "Change searx layout"
+msgstr "Cambiar l'interfàcia de searx"
+
+#: searx/templates/oscar/preferences.html:106
+#: searx/templates/oscar/preferences.html:111
+msgid "Choose style for this theme"
+msgstr "Causir un estil per aqueste tèma"
+
+#: searx/templates/oscar/preferences.html:106
+#: searx/templates/oscar/preferences.html:111
+msgid "Style"
+msgstr "Estil"
+
+#: searx/templates/oscar/preferences.html:151
+#: searx/templates/oscar/preferences.html:163
+#: searx/templates/simple/preferences.html:88
+msgid "Shortcut"
+msgstr "Acorchis"
+
+#: searx/templates/oscar/preferences.html:152
+#: searx/templates/oscar/preferences.html:162
+msgid "Selected language"
+msgstr "Seleccionatz una lenga"
+
+#: searx/templates/oscar/preferences.html:154
+#: searx/templates/oscar/preferences.html:160
+#: searx/templates/simple/preferences.html:91
+msgid "Time range"
+msgstr "Espaci temporal"
+
+#: searx/templates/oscar/preferences.html:155
+#: searx/templates/oscar/preferences.html:159
+#: searx/templates/simple/preferences.html:92
+msgid "Avg. time"
+msgstr "Temps mejan"
+
+#: searx/templates/oscar/preferences.html:156
+#: searx/templates/oscar/preferences.html:158
+#: searx/templates/simple/preferences.html:93
+msgid "Max time"
+msgstr "Temps max"
+
+#: searx/templates/oscar/preferences.html:236
+msgid "This is the list of searx's instant answering modules."
+msgstr "Vaquí la lista dels module de searx que dònan de responsa instantanèas."
+
+#: searx/templates/oscar/preferences.html:240
+msgid "Name"
+msgstr "Nom"
+
+#: searx/templates/oscar/preferences.html:241
+msgid "Keywords"
+msgstr "Mots claus"
+
+#: searx/templates/oscar/preferences.html:242
+msgid "Description"
+msgstr "Descripcion"
+
+#: searx/templates/oscar/preferences.html:243
+msgid "Examples"
+msgstr "Exemples"
+
+#: searx/templates/oscar/preferences.html:263
+msgid ""
+"This is the list of cookies and their values searx is storing on your "
+"computer."
+msgstr "S'agís de la lista dels cookies e de lors valors que searx enregistra sus vòstre ordinador."
+
+#: searx/templates/oscar/preferences.html:264
+msgid "With that list, you can assess searx transparency."
+msgstr "Amb aquesta lista, podètz jutjar de la transparéncia de searx."
+
+#: searx/templates/oscar/preferences.html:269
+msgid "Cookie name"
+msgstr "Nom del cookie"
+
+#: searx/templates/oscar/preferences.html:270
+msgid "Value"
+msgstr "Valor"
+
+#: searx/templates/oscar/preferences.html:289
+msgid "Search URL of the currently saved preferences"
+msgstr "URL de recèrca actuala dels paramètres enregistrats"
+
+#: searx/templates/oscar/preferences.html:289
+msgid ""
+"Note: specifying custom settings in the search URL can reduce privacy by "
+"leaking data to the clicked result sites."
+msgstr "Nòta : especificar de paramètres personalizats en l’URL pòt reduire la privacitat en revelar de donadas als sites de resultat clicats."
+
+#: searx/templates/oscar/results.html:17
+msgid "Search results"
+msgstr "Resultats de la recerca"
+
+#: searx/templates/oscar/results.html:21
+#: searx/templates/simple/results.html:84
+msgid "Try searching for:"
+msgstr "Ensajatz de cercar :"
+
+#: searx/templates/oscar/results.html:100
+#: searx/templates/simple/results.html:25
+msgid "Engines cannot retrieve results"
+msgstr "Los cercadors pòdons pas recuperar los resultats"
+
+#: searx/templates/oscar/results.html:131
+msgid "Links"
+msgstr "Ligams"
+
+#: searx/templates/oscar/search.html:8
+#: searx/templates/oscar/search_full.html:11
+#: searx/templates/simple/search.html:5
+msgid "Start search"
+msgstr "Començar de cercar"
+
+#: searx/templates/oscar/stats.html:2
+msgid "stats"
+msgstr "estatisticas"
+
+#: searx/templates/oscar/time-range.html:3
+#: searx/templates/simple/time-range.html:3
+msgid "Anytime"
+msgstr "Impòrta pas quand"
+
+#: searx/templates/oscar/time-range.html:6
+#: searx/templates/simple/time-range.html:6
+msgid "Last day"
+msgstr "Ièr"
+
+#: searx/templates/oscar/time-range.html:9
+#: searx/templates/simple/time-range.html:9
+msgid "Last week"
+msgstr "La setmana passada"
+
+#: searx/templates/oscar/time-range.html:12
+#: searx/templates/simple/time-range.html:12
+msgid "Last month"
+msgstr "Lo mes passat"
+
+#: searx/templates/oscar/time-range.html:15
+#: searx/templates/simple/time-range.html:15
+msgid "Last year"
+msgstr "L'an passat"
+
+#: searx/templates/oscar/messages/first_time.html:6
+#: searx/templates/oscar/messages/no_data_available.html:3
+msgid "Heads up!"
+msgstr "Astúcia !"
+
+#: searx/templates/oscar/messages/first_time.html:7
+msgid "It look like you are using searx first time."
+msgstr "Sembla qu'utilizatz searx pel primièr còp."
+
+#: searx/templates/oscar/messages/no_cookies.html:3
+msgid "Information!"
+msgstr "Informacion !"
+
+#: searx/templates/oscar/messages/no_cookies.html:4
+msgid "currently, there are no cookies defined."
+msgstr "pel moment i a pas cap de cookie definit"
+
+#: searx/templates/oscar/messages/no_data_available.html:4
+msgid "There is currently no data available. "
+msgstr "Pel moment i a pas cap de donada disponibla."
+
+#: searx/templates/oscar/messages/no_results.html:4
+#: searx/templates/simple/messages/no_results.html:4
+msgid "Engines cannot retrieve results."
+msgstr "Los cercadors pòdons pas recuperar los resultats."
+
+#: searx/templates/oscar/messages/no_results.html:10
+#: searx/templates/simple/messages/no_results.html:10
+msgid "Please, try again later or find another searx instance."
+msgstr "Mercés de tornar ensajar o de trobar una instància searx mai"
+
+#: searx/templates/oscar/messages/no_results.html:14
+#: searx/templates/simple/messages/no_results.html:14
+msgid "Sorry!"
+msgstr "O planhèm !"
+
+#: searx/templates/oscar/messages/no_results.html:15
+#: searx/templates/simple/messages/no_results.html:15
+msgid ""
+"we didn't find any results. Please use another query or search in more "
+"categories."
+msgstr "avèm pas trobat cap de resultat. Mercés d'utilizar une autre mot clau o de cercar dins autras categorias."
+
+#: searx/templates/oscar/messages/save_settings_successfull.html:7
+msgid "Well done!"
+msgstr "Òsca !"
+
+#: searx/templates/oscar/messages/save_settings_successfull.html:8
+msgid "Settings saved successfully."
+msgstr "Paramètres salvagardats amb succès."
+
+#: searx/templates/oscar/messages/unknow_error.html:7
+msgid "Oh snap!"
+msgstr "Bondu!"
+
+#: searx/templates/oscar/messages/unknow_error.html:8
+msgid "Something went wrong."
+msgstr "Quicòm a fracassat."
+
+#: searx/templates/oscar/result_templates/default.html:7
+#: searx/templates/simple/result_templates/default.html:6
+msgid "show media"
+msgstr "mostrar mèdias"
+
+#: searx/templates/oscar/result_templates/default.html:7
+#: searx/templates/simple/result_templates/default.html:6
+msgid "hide media"
+msgstr "escondre mèdias"
+
+#: searx/templates/oscar/result_templates/images.html:30
+msgid "Get image"
+msgstr "Obténer l'imatge"
+
+#: searx/templates/oscar/result_templates/images.html:33
+msgid "View source"
+msgstr "Veire font"
+
+#: searx/templates/oscar/result_templates/map.html:7
+#: searx/templates/simple/result_templates/map.html:7
+msgid "show map"
+msgstr "mostrar la mapa"
+
+#: searx/templates/oscar/result_templates/map.html:7
+#: searx/templates/simple/result_templates/map.html:7
+msgid "hide map"
+msgstr "escondre la mapa"
+
+#: searx/templates/oscar/result_templates/map.html:11
+#: searx/templates/simple/result_templates/map.html:11
+msgid "show details"
+msgstr "mostrar detalhs"
+
+#: searx/templates/oscar/result_templates/map.html:11
+#: searx/templates/simple/result_templates/map.html:11
+msgid "hide details"
+msgstr "escondre detalhs"
+
+#: searx/templates/oscar/result_templates/torrent.html:7
+#: searx/templates/simple/result_templates/torrent.html:11
+msgid "Filesize"
+msgstr "Talha del fichièr"
+
+#: searx/templates/oscar/result_templates/torrent.html:9
+#: searx/templates/simple/result_templates/torrent.html:12
+msgid "Bytes"
+msgstr "octets"
+
+#: searx/templates/oscar/result_templates/torrent.html:10
+#: searx/templates/simple/result_templates/torrent.html:13
+msgid "kiB"
+msgstr "kiO"
+
+#: searx/templates/oscar/result_templates/torrent.html:11
+#: searx/templates/simple/result_templates/torrent.html:14
+msgid "MiB"
+msgstr "MiO"
+
+#: searx/templates/oscar/result_templates/torrent.html:12
+#: searx/templates/simple/result_templates/torrent.html:15
+msgid "GiB"
+msgstr "GiO"
+
+#: searx/templates/oscar/result_templates/torrent.html:13
+#: searx/templates/simple/result_templates/torrent.html:16
+msgid "TiB"
+msgstr "TiO"
+
+#: searx/templates/oscar/result_templates/torrent.html:15
+#: searx/templates/simple/result_templates/torrent.html:20
+msgid "Number of Files"
+msgstr "Nombre de fichièrs"
+
+#: searx/templates/oscar/result_templates/videos.html:7
+#: searx/templates/simple/result_templates/videos.html:6
+msgid "show video"
+msgstr "mostrar la vidèo"
+
+#: searx/templates/oscar/result_templates/videos.html:7
+#: searx/templates/simple/result_templates/videos.html:6
+msgid "hide video"
+msgstr "escondre la vidèo"
+
+#: searx/templates/pix-art/results.html:28
+msgid "Load more..."
+msgstr "Ne cargar mai..."
+
+#: searx/templates/simple/base.html:31
+msgid "No item found"
+msgstr "Cap d’element pas trobat"
+
+#: searx/templates/simple/preferences.html:89
+msgid "Supports selected language"
+msgstr "Compatible amb las lengas seleccionadas"
+
+#: searx/templates/simple/preferences.html:118
+msgid "User interface"
+msgstr "Interfàcia utilizaire"
+
+#: searx/templates/simple/preferences.html:154
+msgid "Privacy"
+msgstr "Privacitat"
diff --git a/searx/translations/pl/LC_MESSAGES/messages.mo b/searx/translations/pl/LC_MESSAGES/messages.mo
index e4a451013..595154a68 100644
--- a/searx/translations/pl/LC_MESSAGES/messages.mo
+++ b/searx/translations/pl/LC_MESSAGES/messages.mo
Binary files differ
diff --git a/searx/translations/pt/LC_MESSAGES/messages.mo b/searx/translations/pt/LC_MESSAGES/messages.mo
index d88c449f1..e6fa6dc5b 100644
--- a/searx/translations/pt/LC_MESSAGES/messages.mo
+++ b/searx/translations/pt/LC_MESSAGES/messages.mo
Binary files differ
diff --git a/searx/translations/pt/LC_MESSAGES/messages.po b/searx/translations/pt/LC_MESSAGES/messages.po
index d8446731a..f9342cd29 100644
--- a/searx/translations/pt/LC_MESSAGES/messages.po
+++ b/searx/translations/pt/LC_MESSAGES/messages.po
@@ -4,14 +4,14 @@
#
# Translators:
# Dickprince, 2017
-# Chacal Exodius, 2018
+# C. E., 2018
msgid ""
msgstr ""
"Project-Id-Version: searx\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
-"POT-Creation-Date: 2017-11-01 21:31+0100\n"
-"PO-Revision-Date: 2018-12-26 22:43+0000\n"
-"Last-Translator: Chacal Exodius\n"
+"POT-Creation-Date: 2017-10-07 19:18+0200\n"
+"PO-Revision-Date: 2019-02-23 17:39+0000\n"
+"Last-Translator: Dickprince\n"
"Language-Team: Portuguese (http://www.transifex.com/asciimoo/searx/language/pt/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
@@ -32,63 +32,63 @@ msgstr "solicitar exceção"
msgid "unexpected crash"
msgstr "acidente inesperado"
-#: searx/webapp.py:136
+#: searx/webapp.py:135
msgid "files"
msgstr "ficheiros"
-#: searx/webapp.py:137
+#: searx/webapp.py:136
msgid "general"
msgstr "geral"
-#: searx/webapp.py:138
+#: searx/webapp.py:137
msgid "music"
msgstr "música"
-#: searx/webapp.py:139
+#: searx/webapp.py:138
msgid "social media"
msgstr "redes sociais"
-#: searx/webapp.py:140
+#: searx/webapp.py:139
msgid "images"
msgstr "imagens"
-#: searx/webapp.py:141
+#: searx/webapp.py:140
msgid "videos"
msgstr "vídeos"
-#: searx/webapp.py:142
+#: searx/webapp.py:141
msgid "it"
msgstr "ti"
-#: searx/webapp.py:143
+#: searx/webapp.py:142
msgid "news"
msgstr "notícias"
-#: searx/webapp.py:144
+#: searx/webapp.py:143
msgid "map"
msgstr "mapa"
-#: searx/webapp.py:145
+#: searx/webapp.py:144
msgid "science"
msgstr "ciência"
-#: searx/webapp.py:399 searx/webapp.py:658
+#: searx/webapp.py:398 searx/webapp.py:653
msgid "Invalid settings, please edit your preferences"
msgstr "Definições inválidas, por favor edite as suas preferências"
-#: searx/webapp.py:415
+#: searx/webapp.py:410
msgid "Invalid settings"
msgstr "Configurações inválidas"
-#: searx/webapp.py:449 searx/webapp.py:493
+#: searx/webapp.py:444 searx/webapp.py:488
msgid "search error"
msgstr "erro de procura"
-#: searx/webapp.py:530
+#: searx/webapp.py:525
msgid "{minutes} minute(s) ago"
msgstr "{minutes} minuto(s) atrás"
-#: searx/webapp.py:532
+#: searx/webapp.py:527
msgid "{hours} hour(s), {minutes} minute(s) ago"
msgstr "{hours} hora(s), {minutes} minuto(s) atrás"
@@ -108,29 +108,28 @@ msgstr "Funções de estatística"
msgid "Compute {functions} of the arguments"
msgstr "Calcular {functions} dos argumentos"
-#: searx/engines/__init__.py:194 searx/engines/flycheck___init__.py:201
+#: searx/engines/__init__.py:194
msgid "Engine time (sec)"
msgstr "Tempo de pesquisa (seg)"
-#: searx/engines/__init__.py:198 searx/engines/flycheck___init__.py:205
+#: searx/engines/__init__.py:198
msgid "Page loads (sec)"
msgstr "Página carregada (seg)"
-#: searx/engines/__init__.py:202 searx/engines/flycheck___init__.py:209
-#: searx/templates/oscar/results.html:95
+#: searx/engines/__init__.py:202 searx/templates/oscar/results.html:95
#: searx/templates/simple/results.html:20
msgid "Number of results"
msgstr "Número de resultados"
-#: searx/engines/__init__.py:206 searx/engines/flycheck___init__.py:213
+#: searx/engines/__init__.py:206
msgid "Scores"
msgstr "Contagens"
-#: searx/engines/__init__.py:210 searx/engines/flycheck___init__.py:217
+#: searx/engines/__init__.py:210
msgid "Scores per result"
msgstr "Contagens por resultado"
-#: searx/engines/__init__.py:214 searx/engines/flycheck___init__.py:221
+#: searx/engines/__init__.py:214
msgid "Errors"
msgstr "Erros"
@@ -142,9 +141,15 @@ msgstr "{title}&nbsp;(OBSOLETE)"
msgid "This entry has been superseded by"
msgstr "Esta entrada foi substituída por"
-#: searx/engines/pubmed.py:74
-msgid "No abstract is available for this publication."
-msgstr "Nenhum resumo está disponível para esta publicação."
+#: searx/plugins/doai_rewrite.py:7
+msgid "DOAI rewrite"
+msgstr "Reformulação DOAI"
+
+#: searx/plugins/doai_rewrite.py:8
+msgid ""
+"Avoid paywalls by redirecting to open-access versions of publications when "
+"available"
+msgstr "Evite acessos pagos acedendo a versões de livre acesso sempre que disponível"
#: searx/plugins/https_rewrite.py:32
msgid "Rewrite HTTP links to HTTPS if possible"
@@ -158,16 +163,6 @@ msgstr "Deslocação Infinita"
msgid "Automatically load next page when scrolling to bottom of current page"
msgstr "Carregar automaticamente a próxima página assim que se desloque para o fim da página atual"
-#: searx/plugins/oa_doi_rewrite.py:9
-msgid "Open Access DOI rewrite"
-msgstr "Reescrita DOI de acesso aberto"
-
-#: searx/plugins/oa_doi_rewrite.py:10
-msgid ""
-"Avoid paywalls by redirecting to open-access versions of publications when "
-"available"
-msgstr "Evite acessos pagos acedendo a versões de livre acesso sempre que disponível"
-
#: searx/plugins/open_results_on_new_tab.py:18
#: searx/templates/oscar/preferences.html:114
#: searx/templates/simple/preferences.html:149
@@ -330,8 +325,8 @@ msgstr "Método"
#: searx/templates/courgette/preferences.html:63
#: searx/templates/legacy/preferences.html:64
#: searx/templates/oscar/preferences.html:86
-#: searx/templates/oscar/preferences.html:165
-#: searx/templates/oscar/preferences.html:173
+#: searx/templates/oscar/preferences.html:153
+#: searx/templates/oscar/preferences.html:161
#: searx/templates/simple/preferences.html:63
#: searx/templates/simple/preferences.html:90
msgid "SafeSearch"
@@ -403,8 +398,8 @@ msgstr "Motores de pesquisa utilizados"
#: searx/templates/courgette/preferences.html:100
#: searx/templates/legacy/preferences.html:97
-#: searx/templates/oscar/preferences.html:162
-#: searx/templates/oscar/preferences.html:176
+#: searx/templates/oscar/preferences.html:150
+#: searx/templates/oscar/preferences.html:164
#: searx/templates/pix-art/preferences.html:53
#: searx/templates/simple/preferences.html:87
msgid "Engine name"
@@ -419,8 +414,8 @@ msgstr "Categoria"
#: searx/templates/courgette/preferences.html:113
#: searx/templates/legacy/preferences.html:99
#: searx/templates/legacy/preferences.html:110
-#: searx/templates/oscar/preferences.html:161
-#: searx/templates/oscar/preferences.html:177
+#: searx/templates/oscar/preferences.html:149
+#: searx/templates/oscar/preferences.html:165
#: searx/templates/pix-art/preferences.html:54
#: searx/templates/pix-art/preferences.html:64
#: searx/templates/simple/preferences.html:86
@@ -438,7 +433,7 @@ msgstr "Bloquear"
#: searx/templates/courgette/preferences.html:122
#: searx/templates/legacy/preferences.html:119
-#: searx/templates/oscar/preferences.html:297
+#: searx/templates/oscar/preferences.html:285
#: searx/templates/pix-art/preferences.html:73
#: searx/templates/simple/preferences.html:180
msgid ""
@@ -448,7 +443,7 @@ msgstr "Estas definições são guardadas nos seus cookies, isto permite-nos que
#: searx/templates/courgette/preferences.html:124
#: searx/templates/legacy/preferences.html:121
-#: searx/templates/oscar/preferences.html:299
+#: searx/templates/oscar/preferences.html:287
#: searx/templates/pix-art/preferences.html:75
#: searx/templates/simple/preferences.html:182
msgid ""
@@ -458,7 +453,7 @@ msgstr "Estes cookies servem somente para sua conveniência, não os utilizamos
#: searx/templates/courgette/preferences.html:127
#: searx/templates/legacy/preferences.html:124
-#: searx/templates/oscar/preferences.html:305
+#: searx/templates/oscar/preferences.html:293
#: searx/templates/pix-art/preferences.html:78
#: searx/templates/simple/preferences.html:185
msgid "save"
@@ -466,14 +461,14 @@ msgstr "Guardar"
#: searx/templates/courgette/preferences.html:128
#: searx/templates/legacy/preferences.html:125
-#: searx/templates/oscar/preferences.html:307
+#: searx/templates/oscar/preferences.html:295
#: searx/templates/simple/preferences.html:186
msgid "Reset defaults"
msgstr "Repor predefinições"
#: searx/templates/courgette/preferences.html:129
#: searx/templates/legacy/preferences.html:126
-#: searx/templates/oscar/preferences.html:306
+#: searx/templates/oscar/preferences.html:294
#: searx/templates/pix-art/preferences.html:79
#: searx/templates/simple/preferences.html:187
msgid "back"
@@ -644,23 +639,23 @@ msgid "General"
msgstr "Geral"
#: searx/templates/oscar/preferences.html:14
-#: searx/templates/oscar/preferences.html:146
+#: searx/templates/oscar/preferences.html:134
#: searx/templates/simple/preferences.html:76
msgid "Engines"
msgstr "Motores de pesquisa"
#: searx/templates/oscar/preferences.html:15
-#: searx/templates/oscar/preferences.html:219
+#: searx/templates/oscar/preferences.html:207
msgid "Plugins"
msgstr "Extensões"
#: searx/templates/oscar/preferences.html:16
-#: searx/templates/oscar/preferences.html:245
+#: searx/templates/oscar/preferences.html:233
msgid "Answerers"
msgstr "Remetente"
#: searx/templates/oscar/preferences.html:17
-#: searx/templates/oscar/preferences.html:272
+#: searx/templates/oscar/preferences.html:260
msgid "Cookies"
msgstr "Cookies"
@@ -711,88 +706,78 @@ msgstr "Escolher estilo para este tema"
msgid "Style"
msgstr "Estilo"
-#: searx/templates/oscar/preferences.html:122
-msgid "Open Access DOI resolver"
-msgstr "Resolvedor DOI de Acesso Aberto"
-
-#: searx/templates/oscar/preferences.html:123
-msgid ""
-"Redirect to open-access versions of publications when available (plugin "
-"required)"
-msgstr "Redirecionar para versões de acesso aberto de publicações quando disponíveis (requer plug-in)"
-
+#: searx/templates/oscar/preferences.html:151
#: searx/templates/oscar/preferences.html:163
-#: searx/templates/oscar/preferences.html:175
#: searx/templates/simple/preferences.html:88
msgid "Shortcut"
msgstr "Atalho"
-#: searx/templates/oscar/preferences.html:164
-#: searx/templates/oscar/preferences.html:174
+#: searx/templates/oscar/preferences.html:152
+#: searx/templates/oscar/preferences.html:162
msgid "Selected language"
msgstr "Idioma selecionado"
-#: searx/templates/oscar/preferences.html:166
-#: searx/templates/oscar/preferences.html:172
+#: searx/templates/oscar/preferences.html:154
+#: searx/templates/oscar/preferences.html:160
#: searx/templates/simple/preferences.html:91
msgid "Time range"
msgstr "Período de tempo"
-#: searx/templates/oscar/preferences.html:167
-#: searx/templates/oscar/preferences.html:171
+#: searx/templates/oscar/preferences.html:155
+#: searx/templates/oscar/preferences.html:159
#: searx/templates/simple/preferences.html:92
msgid "Avg. time"
msgstr "Tempo médio"
-#: searx/templates/oscar/preferences.html:168
-#: searx/templates/oscar/preferences.html:170
+#: searx/templates/oscar/preferences.html:156
+#: searx/templates/oscar/preferences.html:158
#: searx/templates/simple/preferences.html:93
msgid "Max time"
msgstr "Tempo máximo"
-#: searx/templates/oscar/preferences.html:248
+#: searx/templates/oscar/preferences.html:236
msgid "This is the list of searx's instant answering modules."
msgstr "Esta é a lista dos modulos instantâneos de resposta do searx"
-#: searx/templates/oscar/preferences.html:252
+#: searx/templates/oscar/preferences.html:240
msgid "Name"
msgstr "Nome"
-#: searx/templates/oscar/preferences.html:253
+#: searx/templates/oscar/preferences.html:241
msgid "Keywords"
msgstr "Palavras-chave"
-#: searx/templates/oscar/preferences.html:254
+#: searx/templates/oscar/preferences.html:242
msgid "Description"
msgstr "Descrição"
-#: searx/templates/oscar/preferences.html:255
+#: searx/templates/oscar/preferences.html:243
msgid "Examples"
msgstr "Exemplos"
-#: searx/templates/oscar/preferences.html:275
+#: searx/templates/oscar/preferences.html:263
msgid ""
"This is the list of cookies and their values searx is storing on your "
"computer."
msgstr "Esta é a lista de cookies e os valores que o searx está a guardar no seu computador."
-#: searx/templates/oscar/preferences.html:276
+#: searx/templates/oscar/preferences.html:264
msgid "With that list, you can assess searx transparency."
msgstr "Com essa lista pode aceder à transparência do searx."
-#: searx/templates/oscar/preferences.html:281
+#: searx/templates/oscar/preferences.html:269
msgid "Cookie name"
msgstr "Nome de cookie"
-#: searx/templates/oscar/preferences.html:282
+#: searx/templates/oscar/preferences.html:270
msgid "Value"
msgstr "Valor"
-#: searx/templates/oscar/preferences.html:301
+#: searx/templates/oscar/preferences.html:289
msgid "Search URL of the currently saved preferences"
msgstr "URL de pesquisa das preferências salvas atualmente"
-#: searx/templates/oscar/preferences.html:301
+#: searx/templates/oscar/preferences.html:289
msgid ""
"Note: specifying custom settings in the search URL can reduce privacy by "
"leaking data to the clicked result sites."
diff --git a/searx/translations/pt_BR/LC_MESSAGES/messages.mo b/searx/translations/pt_BR/LC_MESSAGES/messages.mo
index 03eb74f4e..c37882dc6 100644
--- a/searx/translations/pt_BR/LC_MESSAGES/messages.mo
+++ b/searx/translations/pt_BR/LC_MESSAGES/messages.mo
Binary files differ
diff --git a/searx/translations/pt_BR/LC_MESSAGES/messages.po b/searx/translations/pt_BR/LC_MESSAGES/messages.po
index 6a0a6b837..18bae82a9 100644
--- a/searx/translations/pt_BR/LC_MESSAGES/messages.po
+++ b/searx/translations/pt_BR/LC_MESSAGES/messages.po
@@ -4,9 +4,9 @@
#
# Translators:
# Adam Tauber <asciimoo@gmail.com>, 2017
-# Chacal Exodius, 2018
+# C. E., 2018
# Gabriel Nunes <gabriel.hkr@gmail.com>, 2017
-# Guimarães Mello <maeslor@cryptolab.net>, 2017
+# Guimarães Mello <matheus.mello@disroot.org>, 2017
# Neton Brício <fervelinux@gmail.com>, 2015
# pizzaiolo, 2016
# shizuka, 2018
@@ -14,9 +14,9 @@ msgid ""
msgstr ""
"Project-Id-Version: searx\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
-"POT-Creation-Date: 2017-11-01 21:31+0100\n"
-"PO-Revision-Date: 2018-08-06 05:21+0000\n"
-"Last-Translator: Chacal Exodius\n"
+"POT-Creation-Date: 2017-10-07 19:18+0200\n"
+"PO-Revision-Date: 2019-02-23 17:39+0000\n"
+"Last-Translator: pizzaiolo\n"
"Language-Team: Portuguese (Brazil) (http://www.transifex.com/asciimoo/searx/language/pt_BR/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
@@ -37,63 +37,63 @@ msgstr "falha na requisição"
msgid "unexpected crash"
msgstr "erro inesperado"
-#: searx/webapp.py:136
+#: searx/webapp.py:135
msgid "files"
msgstr "arquivos"
-#: searx/webapp.py:137
+#: searx/webapp.py:136
msgid "general"
msgstr "geral"
-#: searx/webapp.py:138
+#: searx/webapp.py:137
msgid "music"
msgstr "áudio"
-#: searx/webapp.py:139
+#: searx/webapp.py:138
msgid "social media"
msgstr "redes sociais"
-#: searx/webapp.py:140
+#: searx/webapp.py:139
msgid "images"
msgstr "imagens"
-#: searx/webapp.py:141
+#: searx/webapp.py:140
msgid "videos"
msgstr "vídeos"
-#: searx/webapp.py:142
+#: searx/webapp.py:141
msgid "it"
msgstr "códigos"
-#: searx/webapp.py:143
+#: searx/webapp.py:142
msgid "news"
msgstr "notícias"
-#: searx/webapp.py:144
+#: searx/webapp.py:143
msgid "map"
msgstr "mapas"
-#: searx/webapp.py:145
+#: searx/webapp.py:144
msgid "science"
msgstr "ciência"
-#: searx/webapp.py:399 searx/webapp.py:658
+#: searx/webapp.py:398 searx/webapp.py:653
msgid "Invalid settings, please edit your preferences"
msgstr "Configurações inválidas, por favor, edite suas preferências"
-#: searx/webapp.py:415
+#: searx/webapp.py:410
msgid "Invalid settings"
msgstr "Configurações inválidas"
-#: searx/webapp.py:449 searx/webapp.py:493
+#: searx/webapp.py:444 searx/webapp.py:488
msgid "search error"
msgstr "erro de busca"
-#: searx/webapp.py:530
+#: searx/webapp.py:525
msgid "{minutes} minute(s) ago"
msgstr "{minutos} minuto(s) atrás"
-#: searx/webapp.py:532
+#: searx/webapp.py:527
msgid "{hours} hour(s), {minutes} minute(s) ago"
msgstr "{hours} hora(s), {minutes} minuto(s) atrás"
@@ -113,29 +113,28 @@ msgstr "Funções estatísticas"
msgid "Compute {functions} of the arguments"
msgstr "Compute {functions} dos argumentos"
-#: searx/engines/__init__.py:194 searx/engines/flycheck___init__.py:201
+#: searx/engines/__init__.py:194
msgid "Engine time (sec)"
msgstr "Tempo do motor (segundos)"
-#: searx/engines/__init__.py:198 searx/engines/flycheck___init__.py:205
+#: searx/engines/__init__.py:198
msgid "Page loads (sec)"
msgstr "Carregamento da página (sec)"
-#: searx/engines/__init__.py:202 searx/engines/flycheck___init__.py:209
-#: searx/templates/oscar/results.html:95
+#: searx/engines/__init__.py:202 searx/templates/oscar/results.html:95
#: searx/templates/simple/results.html:20
msgid "Number of results"
msgstr "Número de resultados"
-#: searx/engines/__init__.py:206 searx/engines/flycheck___init__.py:213
+#: searx/engines/__init__.py:206
msgid "Scores"
msgstr "Pontuações"
-#: searx/engines/__init__.py:210 searx/engines/flycheck___init__.py:217
+#: searx/engines/__init__.py:210
msgid "Scores per result"
msgstr "Pontuações por resultado"
-#: searx/engines/__init__.py:214 searx/engines/flycheck___init__.py:221
+#: searx/engines/__init__.py:214
msgid "Errors"
msgstr "Erros"
@@ -147,9 +146,15 @@ msgstr "{title}&nbsp;(OBSOLETA)"
msgid "This entry has been superseded by"
msgstr "Esta entrada foi substituída por"
-#: searx/engines/pubmed.py:74
-msgid "No abstract is available for this publication."
-msgstr "Nenhum resumo disponível para essa publicação."
+#: searx/plugins/doai_rewrite.py:7
+msgid "DOAI rewrite"
+msgstr "Redirecionamento ao DOAI"
+
+#: searx/plugins/doai_rewrite.py:8
+msgid ""
+"Avoid paywalls by redirecting to open-access versions of publications when "
+"available"
+msgstr "Evita \"paywalls\" ao redirecionar para versões de acesso livre de publicações, quando possível"
#: searx/plugins/https_rewrite.py:32
msgid "Rewrite HTTP links to HTTPS if possible"
@@ -163,16 +168,6 @@ msgstr "Scroll infinito"
msgid "Automatically load next page when scrolling to bottom of current page"
msgstr "Automaticamente carregar a próxima página quando ir até o fim da página atual"
-#: searx/plugins/oa_doi_rewrite.py:9
-msgid "Open Access DOI rewrite"
-msgstr "Reescrita DOI de acesso aberto"
-
-#: searx/plugins/oa_doi_rewrite.py:10
-msgid ""
-"Avoid paywalls by redirecting to open-access versions of publications when "
-"available"
-msgstr "Evita \"paywalls\" ao redirecionar para versões de acesso livre de publicações, quando possível"
-
#: searx/plugins/open_results_on_new_tab.py:18
#: searx/templates/oscar/preferences.html:114
#: searx/templates/simple/preferences.html:149
@@ -335,8 +330,8 @@ msgstr "Método"
#: searx/templates/courgette/preferences.html:63
#: searx/templates/legacy/preferences.html:64
#: searx/templates/oscar/preferences.html:86
-#: searx/templates/oscar/preferences.html:165
-#: searx/templates/oscar/preferences.html:173
+#: searx/templates/oscar/preferences.html:153
+#: searx/templates/oscar/preferences.html:161
#: searx/templates/simple/preferences.html:63
#: searx/templates/simple/preferences.html:90
msgid "SafeSearch"
@@ -408,8 +403,8 @@ msgstr "Serviço de busca usado atualmente"
#: searx/templates/courgette/preferences.html:100
#: searx/templates/legacy/preferences.html:97
-#: searx/templates/oscar/preferences.html:162
-#: searx/templates/oscar/preferences.html:176
+#: searx/templates/oscar/preferences.html:150
+#: searx/templates/oscar/preferences.html:164
#: searx/templates/pix-art/preferences.html:53
#: searx/templates/simple/preferences.html:87
msgid "Engine name"
@@ -424,8 +419,8 @@ msgstr "Categoria"
#: searx/templates/courgette/preferences.html:113
#: searx/templates/legacy/preferences.html:99
#: searx/templates/legacy/preferences.html:110
-#: searx/templates/oscar/preferences.html:161
-#: searx/templates/oscar/preferences.html:177
+#: searx/templates/oscar/preferences.html:149
+#: searx/templates/oscar/preferences.html:165
#: searx/templates/pix-art/preferences.html:54
#: searx/templates/pix-art/preferences.html:64
#: searx/templates/simple/preferences.html:86
@@ -443,7 +438,7 @@ msgstr "Bloqueado"
#: searx/templates/courgette/preferences.html:122
#: searx/templates/legacy/preferences.html:119
-#: searx/templates/oscar/preferences.html:297
+#: searx/templates/oscar/preferences.html:285
#: searx/templates/pix-art/preferences.html:73
#: searx/templates/simple/preferences.html:180
msgid ""
@@ -453,7 +448,7 @@ msgstr "Essas configurações são armazenadas em seus cookies, nos não armazen
#: searx/templates/courgette/preferences.html:124
#: searx/templates/legacy/preferences.html:121
-#: searx/templates/oscar/preferences.html:299
+#: searx/templates/oscar/preferences.html:287
#: searx/templates/pix-art/preferences.html:75
#: searx/templates/simple/preferences.html:182
msgid ""
@@ -463,7 +458,7 @@ msgstr "Estes cookies servem ao seu único propósito, nós não usamos esses co
#: searx/templates/courgette/preferences.html:127
#: searx/templates/legacy/preferences.html:124
-#: searx/templates/oscar/preferences.html:305
+#: searx/templates/oscar/preferences.html:293
#: searx/templates/pix-art/preferences.html:78
#: searx/templates/simple/preferences.html:185
msgid "save"
@@ -471,14 +466,14 @@ msgstr "salvar"
#: searx/templates/courgette/preferences.html:128
#: searx/templates/legacy/preferences.html:125
-#: searx/templates/oscar/preferences.html:307
+#: searx/templates/oscar/preferences.html:295
#: searx/templates/simple/preferences.html:186
msgid "Reset defaults"
msgstr "Redefinir configurações"
#: searx/templates/courgette/preferences.html:129
#: searx/templates/legacy/preferences.html:126
-#: searx/templates/oscar/preferences.html:306
+#: searx/templates/oscar/preferences.html:294
#: searx/templates/pix-art/preferences.html:79
#: searx/templates/simple/preferences.html:187
msgid "back"
@@ -649,23 +644,23 @@ msgid "General"
msgstr "Geral"
#: searx/templates/oscar/preferences.html:14
-#: searx/templates/oscar/preferences.html:146
+#: searx/templates/oscar/preferences.html:134
#: searx/templates/simple/preferences.html:76
msgid "Engines"
msgstr "Buscadores"
#: searx/templates/oscar/preferences.html:15
-#: searx/templates/oscar/preferences.html:219
+#: searx/templates/oscar/preferences.html:207
msgid "Plugins"
msgstr "Complementos"
#: searx/templates/oscar/preferences.html:16
-#: searx/templates/oscar/preferences.html:245
+#: searx/templates/oscar/preferences.html:233
msgid "Answerers"
msgstr "Operadores de Resposta"
#: searx/templates/oscar/preferences.html:17
-#: searx/templates/oscar/preferences.html:272
+#: searx/templates/oscar/preferences.html:260
msgid "Cookies"
msgstr "Cookies"
@@ -716,88 +711,78 @@ msgstr "Escolher um estilo para este tema"
msgid "Style"
msgstr "Estilo"
-#: searx/templates/oscar/preferences.html:122
-msgid "Open Access DOI resolver"
-msgstr "Resolvedor DOI de Acesso Aberto"
-
-#: searx/templates/oscar/preferences.html:123
-msgid ""
-"Redirect to open-access versions of publications when available (plugin "
-"required)"
-msgstr "Quando disponível, redirecionar para as versões de acesso livre das publicações (necessário plugin)"
-
+#: searx/templates/oscar/preferences.html:151
#: searx/templates/oscar/preferences.html:163
-#: searx/templates/oscar/preferences.html:175
#: searx/templates/simple/preferences.html:88
msgid "Shortcut"
msgstr "Atalhos"
-#: searx/templates/oscar/preferences.html:164
-#: searx/templates/oscar/preferences.html:174
+#: searx/templates/oscar/preferences.html:152
+#: searx/templates/oscar/preferences.html:162
msgid "Selected language"
msgstr "Idioma selecionado"
-#: searx/templates/oscar/preferences.html:166
-#: searx/templates/oscar/preferences.html:172
+#: searx/templates/oscar/preferences.html:154
+#: searx/templates/oscar/preferences.html:160
#: searx/templates/simple/preferences.html:91
msgid "Time range"
msgstr "Intervalo de tempo"
-#: searx/templates/oscar/preferences.html:167
-#: searx/templates/oscar/preferences.html:171
+#: searx/templates/oscar/preferences.html:155
+#: searx/templates/oscar/preferences.html:159
#: searx/templates/simple/preferences.html:92
msgid "Avg. time"
msgstr "Tempo médio"
-#: searx/templates/oscar/preferences.html:168
-#: searx/templates/oscar/preferences.html:170
+#: searx/templates/oscar/preferences.html:156
+#: searx/templates/oscar/preferences.html:158
#: searx/templates/simple/preferences.html:93
msgid "Max time"
msgstr "Tempo máximo"
-#: searx/templates/oscar/preferences.html:248
+#: searx/templates/oscar/preferences.html:236
msgid "This is the list of searx's instant answering modules."
msgstr "Esta é a lista do módulos de resposta instantânea do searx."
-#: searx/templates/oscar/preferences.html:252
+#: searx/templates/oscar/preferences.html:240
msgid "Name"
msgstr "Nome"
-#: searx/templates/oscar/preferences.html:253
+#: searx/templates/oscar/preferences.html:241
msgid "Keywords"
msgstr "Palavras-chave"
-#: searx/templates/oscar/preferences.html:254
+#: searx/templates/oscar/preferences.html:242
msgid "Description"
msgstr "Descrição"
-#: searx/templates/oscar/preferences.html:255
+#: searx/templates/oscar/preferences.html:243
msgid "Examples"
msgstr "Exemplos"
-#: searx/templates/oscar/preferences.html:275
+#: searx/templates/oscar/preferences.html:263
msgid ""
"This is the list of cookies and their values searx is storing on your "
"computer."
msgstr "Esta é a lista de cookies que o searx está armazenando em seu computador."
-#: searx/templates/oscar/preferences.html:276
+#: searx/templates/oscar/preferences.html:264
msgid "With that list, you can assess searx transparency."
msgstr "Com essa lista, você pode avaliar a transparência do searx."
-#: searx/templates/oscar/preferences.html:281
+#: searx/templates/oscar/preferences.html:269
msgid "Cookie name"
msgstr "Nome do cookie"
-#: searx/templates/oscar/preferences.html:282
+#: searx/templates/oscar/preferences.html:270
msgid "Value"
msgstr "Valor"
-#: searx/templates/oscar/preferences.html:301
+#: searx/templates/oscar/preferences.html:289
msgid "Search URL of the currently saved preferences"
msgstr "URL de Pesquisa das configurações salvas atuais"
-#: searx/templates/oscar/preferences.html:301
+#: searx/templates/oscar/preferences.html:289
msgid ""
"Note: specifying custom settings in the search URL can reduce privacy by "
"leaking data to the clicked result sites."
diff --git a/searx/translations/ro/LC_MESSAGES/messages.mo b/searx/translations/ro/LC_MESSAGES/messages.mo
index f39068576..d90ed5144 100644
--- a/searx/translations/ro/LC_MESSAGES/messages.mo
+++ b/searx/translations/ro/LC_MESSAGES/messages.mo
Binary files differ
diff --git a/searx/translations/ro/LC_MESSAGES/messages.po b/searx/translations/ro/LC_MESSAGES/messages.po
index 7cfd1be37..625feea8f 100644
--- a/searx/translations/ro/LC_MESSAGES/messages.po
+++ b/searx/translations/ro/LC_MESSAGES/messages.po
@@ -4,14 +4,16 @@
#
# Translators:
# adrian.fita <adrian.fita@gmail.com>, 2015
+# adrian.fita <adrian.fita@gmail.com>, 2015
# Daniel Șerbănescu <daniel@serbanescu.dk>, 2018
+# Mihai Pora <mihai.pora@gmail.com>, 2019
msgid ""
msgstr ""
"Project-Id-Version: searx\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
-"POT-Creation-Date: 2017-11-01 21:31+0100\n"
-"PO-Revision-Date: 2018-11-15 21:18+0000\n"
-"Last-Translator: Daniel Șerbănescu <daniel@serbanescu.dk>\n"
+"POT-Creation-Date: 2017-10-07 19:18+0200\n"
+"PO-Revision-Date: 2019-08-31 18:38+0000\n"
+"Last-Translator: Mihai Pora <mihai.pora@gmail.com>\n"
"Language-Team: Romanian (http://www.transifex.com/asciimoo/searx/language/ro/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
@@ -32,63 +34,63 @@ msgstr "excepție la cerere"
msgid "unexpected crash"
msgstr "terminare prematură neașteptată"
-#: searx/webapp.py:136
+#: searx/webapp.py:135
msgid "files"
msgstr "fișiere"
-#: searx/webapp.py:137
+#: searx/webapp.py:136
msgid "general"
msgstr "generale"
-#: searx/webapp.py:138
+#: searx/webapp.py:137
msgid "music"
msgstr "muzică"
-#: searx/webapp.py:139
+#: searx/webapp.py:138
msgid "social media"
msgstr "rețele sociale"
-#: searx/webapp.py:140
+#: searx/webapp.py:139
msgid "images"
msgstr "imagini"
-#: searx/webapp.py:141
+#: searx/webapp.py:140
msgid "videos"
msgstr "videouri"
-#: searx/webapp.py:142
+#: searx/webapp.py:141
msgid "it"
msgstr "informatică"
-#: searx/webapp.py:143
+#: searx/webapp.py:142
msgid "news"
msgstr "știri"
-#: searx/webapp.py:144
+#: searx/webapp.py:143
msgid "map"
msgstr "hărți"
-#: searx/webapp.py:145
+#: searx/webapp.py:144
msgid "science"
msgstr "știință"
-#: searx/webapp.py:399 searx/webapp.py:658
+#: searx/webapp.py:398 searx/webapp.py:653
msgid "Invalid settings, please edit your preferences"
msgstr "Configurări nevalide, editați preferințele"
-#: searx/webapp.py:415
+#: searx/webapp.py:410
msgid "Invalid settings"
msgstr "Configurări nevalide"
-#: searx/webapp.py:449 searx/webapp.py:493
+#: searx/webapp.py:444 searx/webapp.py:488
msgid "search error"
msgstr "eroare de căutare"
-#: searx/webapp.py:530
+#: searx/webapp.py:525
msgid "{minutes} minute(s) ago"
msgstr "{minutes} minut(e) în urmă"
-#: searx/webapp.py:532
+#: searx/webapp.py:527
msgid "{hours} hour(s), {minutes} minute(s) ago"
msgstr "{hours} oră(e), {minutes} minut(e) în urmă"
@@ -108,29 +110,28 @@ msgstr "Funcții statistice"
msgid "Compute {functions} of the arguments"
msgstr "Calculează {functions} din argumente"
-#: searx/engines/__init__.py:194 searx/engines/flycheck___init__.py:201
+#: searx/engines/__init__.py:194
msgid "Engine time (sec)"
msgstr "Timpul motorului (sec)"
-#: searx/engines/__init__.py:198 searx/engines/flycheck___init__.py:205
+#: searx/engines/__init__.py:198
msgid "Page loads (sec)"
msgstr "Încărcarea paginii (sec)"
-#: searx/engines/__init__.py:202 searx/engines/flycheck___init__.py:209
-#: searx/templates/oscar/results.html:95
+#: searx/engines/__init__.py:202 searx/templates/oscar/results.html:95
#: searx/templates/simple/results.html:20
msgid "Number of results"
msgstr "Numărul de rezultate"
-#: searx/engines/__init__.py:206 searx/engines/flycheck___init__.py:213
+#: searx/engines/__init__.py:206
msgid "Scores"
msgstr "Scoruri"
-#: searx/engines/__init__.py:210 searx/engines/flycheck___init__.py:217
+#: searx/engines/__init__.py:210
msgid "Scores per result"
msgstr "Scoruri per rezultat"
-#: searx/engines/__init__.py:214 searx/engines/flycheck___init__.py:221
+#: searx/engines/__init__.py:214
msgid "Errors"
msgstr "Erori"
@@ -142,9 +143,15 @@ msgstr "{title}&nbsp;(ÎNVECHIT)"
msgid "This entry has been superseded by"
msgstr "Această intrare a fost perimată de"
-#: searx/engines/pubmed.py:74
-msgid "No abstract is available for this publication."
-msgstr "Niciun abstract disponibil pentru această publicație."
+#: searx/plugins/doai_rewrite.py:7
+msgid "DOAI rewrite"
+msgstr "Rescriere DOAI"
+
+#: searx/plugins/doai_rewrite.py:8
+msgid ""
+"Avoid paywalls by redirecting to open-access versions of publications when "
+"available"
+msgstr "Evită „zidurile de plată” redirecționând către versiuni cu acces deschis ale publicațiilor când sunt disponibile"
#: searx/plugins/https_rewrite.py:32
msgid "Rewrite HTTP links to HTTPS if possible"
@@ -158,16 +165,6 @@ msgstr "Derulare infinită"
msgid "Automatically load next page when scrolling to bottom of current page"
msgstr "Încarcă automat pagina următoare când se derulează la baza paginii curente"
-#: searx/plugins/oa_doi_rewrite.py:9
-msgid "Open Access DOI rewrite"
-msgstr "Rescriere către acces deschis DOI"
-
-#: searx/plugins/oa_doi_rewrite.py:10
-msgid ""
-"Avoid paywalls by redirecting to open-access versions of publications when "
-"available"
-msgstr "Evită „zidurile de plată” redirecționând către versiuni cu acces deschis ale publicațiilor când sunt disponibile"
-
#: searx/plugins/open_results_on_new_tab.py:18
#: searx/templates/oscar/preferences.html:114
#: searx/templates/simple/preferences.html:149
@@ -330,8 +327,8 @@ msgstr "Metodă"
#: searx/templates/courgette/preferences.html:63
#: searx/templates/legacy/preferences.html:64
#: searx/templates/oscar/preferences.html:86
-#: searx/templates/oscar/preferences.html:165
-#: searx/templates/oscar/preferences.html:173
+#: searx/templates/oscar/preferences.html:153
+#: searx/templates/oscar/preferences.html:161
#: searx/templates/simple/preferences.html:63
#: searx/templates/simple/preferences.html:90
msgid "SafeSearch"
@@ -403,8 +400,8 @@ msgstr "Motoarele de căutare folosite curent"
#: searx/templates/courgette/preferences.html:100
#: searx/templates/legacy/preferences.html:97
-#: searx/templates/oscar/preferences.html:162
-#: searx/templates/oscar/preferences.html:176
+#: searx/templates/oscar/preferences.html:150
+#: searx/templates/oscar/preferences.html:164
#: searx/templates/pix-art/preferences.html:53
#: searx/templates/simple/preferences.html:87
msgid "Engine name"
@@ -419,8 +416,8 @@ msgstr "Categorie"
#: searx/templates/courgette/preferences.html:113
#: searx/templates/legacy/preferences.html:99
#: searx/templates/legacy/preferences.html:110
-#: searx/templates/oscar/preferences.html:161
-#: searx/templates/oscar/preferences.html:177
+#: searx/templates/oscar/preferences.html:149
+#: searx/templates/oscar/preferences.html:165
#: searx/templates/pix-art/preferences.html:54
#: searx/templates/pix-art/preferences.html:64
#: searx/templates/simple/preferences.html:86
@@ -438,7 +435,7 @@ msgstr "Blochează"
#: searx/templates/courgette/preferences.html:122
#: searx/templates/legacy/preferences.html:119
-#: searx/templates/oscar/preferences.html:297
+#: searx/templates/oscar/preferences.html:285
#: searx/templates/pix-art/preferences.html:73
#: searx/templates/simple/preferences.html:180
msgid ""
@@ -448,7 +445,7 @@ msgstr "Aceste configurări sunt stocate în cookie-uri, ceea ce ne permite să
#: searx/templates/courgette/preferences.html:124
#: searx/templates/legacy/preferences.html:121
-#: searx/templates/oscar/preferences.html:299
+#: searx/templates/oscar/preferences.html:287
#: searx/templates/pix-art/preferences.html:75
#: searx/templates/simple/preferences.html:182
msgid ""
@@ -458,7 +455,7 @@ msgstr "Aceste cookie-uri servesc doar pentru conveniența dumneavoastră, noi n
#: searx/templates/courgette/preferences.html:127
#: searx/templates/legacy/preferences.html:124
-#: searx/templates/oscar/preferences.html:305
+#: searx/templates/oscar/preferences.html:293
#: searx/templates/pix-art/preferences.html:78
#: searx/templates/simple/preferences.html:185
msgid "save"
@@ -466,14 +463,14 @@ msgstr "salvează"
#: searx/templates/courgette/preferences.html:128
#: searx/templates/legacy/preferences.html:125
-#: searx/templates/oscar/preferences.html:307
+#: searx/templates/oscar/preferences.html:295
#: searx/templates/simple/preferences.html:186
msgid "Reset defaults"
msgstr "Restabilește la valorile implicite"
#: searx/templates/courgette/preferences.html:129
#: searx/templates/legacy/preferences.html:126
-#: searx/templates/oscar/preferences.html:306
+#: searx/templates/oscar/preferences.html:294
#: searx/templates/pix-art/preferences.html:79
#: searx/templates/simple/preferences.html:187
msgid "back"
@@ -644,23 +641,23 @@ msgid "General"
msgstr "Generale"
#: searx/templates/oscar/preferences.html:14
-#: searx/templates/oscar/preferences.html:146
+#: searx/templates/oscar/preferences.html:134
#: searx/templates/simple/preferences.html:76
msgid "Engines"
msgstr "Motoare"
#: searx/templates/oscar/preferences.html:15
-#: searx/templates/oscar/preferences.html:219
+#: searx/templates/oscar/preferences.html:207
msgid "Plugins"
msgstr "Module"
#: searx/templates/oscar/preferences.html:16
-#: searx/templates/oscar/preferences.html:245
+#: searx/templates/oscar/preferences.html:233
msgid "Answerers"
msgstr "Răspunzători"
#: searx/templates/oscar/preferences.html:17
-#: searx/templates/oscar/preferences.html:272
+#: searx/templates/oscar/preferences.html:260
msgid "Cookies"
msgstr "Cookie-uri"
@@ -711,88 +708,78 @@ msgstr "Alegeți stilul pentru această temă"
msgid "Style"
msgstr "Stil"
-#: searx/templates/oscar/preferences.html:122
-msgid "Open Access DOI resolver"
-msgstr "Rezolvator de acces deschis DOI"
-
-#: searx/templates/oscar/preferences.html:123
-msgid ""
-"Redirect to open-access versions of publications when available (plugin "
-"required)"
-msgstr "Redirecționează către versiuni cu acces deschis ale publicațiilor când sunt disponibile (modul necesar)"
-
+#: searx/templates/oscar/preferences.html:151
#: searx/templates/oscar/preferences.html:163
-#: searx/templates/oscar/preferences.html:175
#: searx/templates/simple/preferences.html:88
msgid "Shortcut"
msgstr "Scurtătură"
-#: searx/templates/oscar/preferences.html:164
-#: searx/templates/oscar/preferences.html:174
+#: searx/templates/oscar/preferences.html:152
+#: searx/templates/oscar/preferences.html:162
msgid "Selected language"
msgstr "Limba selectată"
-#: searx/templates/oscar/preferences.html:166
-#: searx/templates/oscar/preferences.html:172
+#: searx/templates/oscar/preferences.html:154
+#: searx/templates/oscar/preferences.html:160
#: searx/templates/simple/preferences.html:91
msgid "Time range"
msgstr "Interval de timp"
-#: searx/templates/oscar/preferences.html:167
-#: searx/templates/oscar/preferences.html:171
+#: searx/templates/oscar/preferences.html:155
+#: searx/templates/oscar/preferences.html:159
#: searx/templates/simple/preferences.html:92
msgid "Avg. time"
msgstr "Timp mediu"
-#: searx/templates/oscar/preferences.html:168
-#: searx/templates/oscar/preferences.html:170
+#: searx/templates/oscar/preferences.html:156
+#: searx/templates/oscar/preferences.html:158
#: searx/templates/simple/preferences.html:93
msgid "Max time"
msgstr "Timp maxim"
-#: searx/templates/oscar/preferences.html:248
+#: searx/templates/oscar/preferences.html:236
msgid "This is the list of searx's instant answering modules."
msgstr "Aceasta este lista de module de răspundere instantă a lui searx."
-#: searx/templates/oscar/preferences.html:252
+#: searx/templates/oscar/preferences.html:240
msgid "Name"
msgstr "Nume"
-#: searx/templates/oscar/preferences.html:253
+#: searx/templates/oscar/preferences.html:241
msgid "Keywords"
msgstr "Cuvinte cheie"
-#: searx/templates/oscar/preferences.html:254
+#: searx/templates/oscar/preferences.html:242
msgid "Description"
msgstr "Descriere"
-#: searx/templates/oscar/preferences.html:255
+#: searx/templates/oscar/preferences.html:243
msgid "Examples"
msgstr "Exemple"
-#: searx/templates/oscar/preferences.html:275
+#: searx/templates/oscar/preferences.html:263
msgid ""
"This is the list of cookies and their values searx is storing on your "
"computer."
msgstr "Aceasta este lista de cookie-uri și valorile lor pe care searx le stochează pe calculatorul dumneavoastră."
-#: searx/templates/oscar/preferences.html:276
+#: searx/templates/oscar/preferences.html:264
msgid "With that list, you can assess searx transparency."
msgstr "Cu acea listă puteți evalua nivelul de transparență al lui searx."
-#: searx/templates/oscar/preferences.html:281
+#: searx/templates/oscar/preferences.html:269
msgid "Cookie name"
msgstr "Nume cookie"
-#: searx/templates/oscar/preferences.html:282
+#: searx/templates/oscar/preferences.html:270
msgid "Value"
msgstr "Valuare"
-#: searx/templates/oscar/preferences.html:301
+#: searx/templates/oscar/preferences.html:289
msgid "Search URL of the currently saved preferences"
msgstr "URL-ul de căutare al preferințelor salvate curent"
-#: searx/templates/oscar/preferences.html:301
+#: searx/templates/oscar/preferences.html:289
msgid ""
"Note: specifying custom settings in the search URL can reduce privacy by "
"leaking data to the clicked result sites."
diff --git a/searx/translations/ru/LC_MESSAGES/messages.mo b/searx/translations/ru/LC_MESSAGES/messages.mo
index c6bcdd1b6..7132a8c1f 100644
--- a/searx/translations/ru/LC_MESSAGES/messages.mo
+++ b/searx/translations/ru/LC_MESSAGES/messages.mo
Binary files differ
diff --git a/searx/translations/ru/LC_MESSAGES/messages.po b/searx/translations/ru/LC_MESSAGES/messages.po
index befe7f963..ec7975b5f 100644
--- a/searx/translations/ru/LC_MESSAGES/messages.po
+++ b/searx/translations/ru/LC_MESSAGES/messages.po
@@ -5,7 +5,7 @@
# Translators:
# Andrey, 2017-2019
# dimqua <dimqua@riseup.net>, 2015
-# dimqua <dimqua@riseup.net>, 2015
+# dimqua <dimqua@riseup.net>, 2015,2017
# dimqua <dimqua@riseup.net>, 2017
# John DOe <is-kir@ya.ru>, 2018
# Дмитрий Михирев, 2016-2017
@@ -13,8 +13,8 @@ msgid ""
msgstr ""
"Project-Id-Version: searx\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
-"POT-Creation-Date: 2017-11-01 21:31+0100\n"
-"PO-Revision-Date: 2019-01-05 12:11+0000\n"
+"POT-Creation-Date: 2017-10-07 19:18+0200\n"
+"PO-Revision-Date: 2019-02-23 17:39+0000\n"
"Last-Translator: Andrey\n"
"Language-Team: Russian (http://www.transifex.com/asciimoo/searx/language/ru/)\n"
"MIME-Version: 1.0\n"
@@ -36,63 +36,63 @@ msgstr "ошибка выполнения запроса"
msgid "unexpected crash"
msgstr "неожиданный сбой"
-#: searx/webapp.py:136
+#: searx/webapp.py:135
msgid "files"
msgstr "файлы"
-#: searx/webapp.py:137
+#: searx/webapp.py:136
msgid "general"
msgstr "общие"
-#: searx/webapp.py:138
+#: searx/webapp.py:137
msgid "music"
msgstr "музыка"
-#: searx/webapp.py:139
+#: searx/webapp.py:138
msgid "social media"
msgstr "социальные сети"
-#: searx/webapp.py:140
+#: searx/webapp.py:139
msgid "images"
msgstr "картинки"
-#: searx/webapp.py:141
+#: searx/webapp.py:140
msgid "videos"
msgstr "видео"
-#: searx/webapp.py:142
+#: searx/webapp.py:141
msgid "it"
msgstr "it"
-#: searx/webapp.py:143
+#: searx/webapp.py:142
msgid "news"
msgstr "новости"
-#: searx/webapp.py:144
+#: searx/webapp.py:143
msgid "map"
msgstr "карты"
-#: searx/webapp.py:145
+#: searx/webapp.py:144
msgid "science"
msgstr "наука"
-#: searx/webapp.py:399 searx/webapp.py:658
+#: searx/webapp.py:398 searx/webapp.py:653
msgid "Invalid settings, please edit your preferences"
msgstr "Неправильные параметры, измените настройки"
-#: searx/webapp.py:415
+#: searx/webapp.py:410
msgid "Invalid settings"
msgstr "Настройки некорректны"
-#: searx/webapp.py:449 searx/webapp.py:493
+#: searx/webapp.py:444 searx/webapp.py:488
msgid "search error"
msgstr "ошибка поиска"
-#: searx/webapp.py:530
+#: searx/webapp.py:525
msgid "{minutes} minute(s) ago"
msgstr "{minutes} минут(а) назад"
-#: searx/webapp.py:532
+#: searx/webapp.py:527
msgid "{hours} hour(s), {minutes} minute(s) ago"
msgstr "{hours} час(ов), {minutes} минут(а) назад"
@@ -112,29 +112,28 @@ msgstr "Статистические функции"
msgid "Compute {functions} of the arguments"
msgstr "Вычисляет {functions} от аргументов"
-#: searx/engines/__init__.py:194 searx/engines/flycheck___init__.py:201
+#: searx/engines/__init__.py:194
msgid "Engine time (sec)"
msgstr "Время поиска (сек)"
-#: searx/engines/__init__.py:198 searx/engines/flycheck___init__.py:205
+#: searx/engines/__init__.py:198
msgid "Page loads (sec)"
msgstr "Загрузка страниц (сек)"
-#: searx/engines/__init__.py:202 searx/engines/flycheck___init__.py:209
-#: searx/templates/oscar/results.html:95
+#: searx/engines/__init__.py:202 searx/templates/oscar/results.html:95
#: searx/templates/simple/results.html:20
msgid "Number of results"
msgstr "Количество результатов"
-#: searx/engines/__init__.py:206 searx/engines/flycheck___init__.py:213
+#: searx/engines/__init__.py:206
msgid "Scores"
msgstr "Попаданий"
-#: searx/engines/__init__.py:210 searx/engines/flycheck___init__.py:217
+#: searx/engines/__init__.py:210
msgid "Scores per result"
msgstr "Попаданий за результат"
-#: searx/engines/__init__.py:214 searx/engines/flycheck___init__.py:221
+#: searx/engines/__init__.py:214
msgid "Errors"
msgstr "Ошибки"
@@ -146,9 +145,15 @@ msgstr "{title}&nbsp;(УСТАРЕВШИЕ)"
msgid "This entry has been superseded by"
msgstr "Эта запись была заменена на"
-#: searx/engines/pubmed.py:74
-msgid "No abstract is available for this publication."
-msgstr "Нет аннотации для этой публикации."
+#: searx/plugins/doai_rewrite.py:7
+msgid "DOAI rewrite"
+msgstr "Перезапись DOAI"
+
+#: searx/plugins/doai_rewrite.py:8
+msgid ""
+"Avoid paywalls by redirecting to open-access versions of publications when "
+"available"
+msgstr "Позволяет получить бесплатную версию запрашиваемой статьи, если таковая имеется"
#: searx/plugins/https_rewrite.py:32
msgid "Rewrite HTTP links to HTTPS if possible"
@@ -162,16 +167,6 @@ msgstr "Бесконечная прокрутка"
msgid "Automatically load next page when scrolling to bottom of current page"
msgstr "Автоматически загружать следующую страницу при прокрутке до конца текущей"
-#: searx/plugins/oa_doi_rewrite.py:9
-msgid "Open Access DOI rewrite"
-msgstr "Перезапись открытого доступа к DOI"
-
-#: searx/plugins/oa_doi_rewrite.py:10
-msgid ""
-"Avoid paywalls by redirecting to open-access versions of publications when "
-"available"
-msgstr "Позволяет получить бесплатную версию запрашиваемой статьи, если таковая имеется"
-
#: searx/plugins/open_results_on_new_tab.py:18
#: searx/templates/oscar/preferences.html:114
#: searx/templates/simple/preferences.html:149
@@ -334,8 +329,8 @@ msgstr "Метод"
#: searx/templates/courgette/preferences.html:63
#: searx/templates/legacy/preferences.html:64
#: searx/templates/oscar/preferences.html:86
-#: searx/templates/oscar/preferences.html:165
-#: searx/templates/oscar/preferences.html:173
+#: searx/templates/oscar/preferences.html:153
+#: searx/templates/oscar/preferences.html:161
#: searx/templates/simple/preferences.html:63
#: searx/templates/simple/preferences.html:90
msgid "SafeSearch"
@@ -407,8 +402,8 @@ msgstr "Используемые поисковые системы"
#: searx/templates/courgette/preferences.html:100
#: searx/templates/legacy/preferences.html:97
-#: searx/templates/oscar/preferences.html:162
-#: searx/templates/oscar/preferences.html:176
+#: searx/templates/oscar/preferences.html:150
+#: searx/templates/oscar/preferences.html:164
#: searx/templates/pix-art/preferences.html:53
#: searx/templates/simple/preferences.html:87
msgid "Engine name"
@@ -423,8 +418,8 @@ msgstr "Категория"
#: searx/templates/courgette/preferences.html:113
#: searx/templates/legacy/preferences.html:99
#: searx/templates/legacy/preferences.html:110
-#: searx/templates/oscar/preferences.html:161
-#: searx/templates/oscar/preferences.html:177
+#: searx/templates/oscar/preferences.html:149
+#: searx/templates/oscar/preferences.html:165
#: searx/templates/pix-art/preferences.html:54
#: searx/templates/pix-art/preferences.html:64
#: searx/templates/simple/preferences.html:86
@@ -442,7 +437,7 @@ msgstr "Блокировать"
#: searx/templates/courgette/preferences.html:122
#: searx/templates/legacy/preferences.html:119
-#: searx/templates/oscar/preferences.html:297
+#: searx/templates/oscar/preferences.html:285
#: searx/templates/pix-art/preferences.html:73
#: searx/templates/simple/preferences.html:180
msgid ""
@@ -452,7 +447,7 @@ msgstr "Настройки сохраняются в ваших файлах coo
#: searx/templates/courgette/preferences.html:124
#: searx/templates/legacy/preferences.html:121
-#: searx/templates/oscar/preferences.html:299
+#: searx/templates/oscar/preferences.html:287
#: searx/templates/pix-art/preferences.html:75
#: searx/templates/simple/preferences.html:182
msgid ""
@@ -462,7 +457,7 @@ msgstr "Эти файлы используются исключительно д
#: searx/templates/courgette/preferences.html:127
#: searx/templates/legacy/preferences.html:124
-#: searx/templates/oscar/preferences.html:305
+#: searx/templates/oscar/preferences.html:293
#: searx/templates/pix-art/preferences.html:78
#: searx/templates/simple/preferences.html:185
msgid "save"
@@ -470,14 +465,14 @@ msgstr "сохранить"
#: searx/templates/courgette/preferences.html:128
#: searx/templates/legacy/preferences.html:125
-#: searx/templates/oscar/preferences.html:307
+#: searx/templates/oscar/preferences.html:295
#: searx/templates/simple/preferences.html:186
msgid "Reset defaults"
msgstr "Восстановить настройки по умолчанию"
#: searx/templates/courgette/preferences.html:129
#: searx/templates/legacy/preferences.html:126
-#: searx/templates/oscar/preferences.html:306
+#: searx/templates/oscar/preferences.html:294
#: searx/templates/pix-art/preferences.html:79
#: searx/templates/simple/preferences.html:187
msgid "back"
@@ -648,23 +643,23 @@ msgid "General"
msgstr "Общие"
#: searx/templates/oscar/preferences.html:14
-#: searx/templates/oscar/preferences.html:146
+#: searx/templates/oscar/preferences.html:134
#: searx/templates/simple/preferences.html:76
msgid "Engines"
msgstr "Поисковые системы"
#: searx/templates/oscar/preferences.html:15
-#: searx/templates/oscar/preferences.html:219
+#: searx/templates/oscar/preferences.html:207
msgid "Plugins"
msgstr "Плагины"
#: searx/templates/oscar/preferences.html:16
-#: searx/templates/oscar/preferences.html:245
+#: searx/templates/oscar/preferences.html:233
msgid "Answerers"
msgstr "Ответчики"
#: searx/templates/oscar/preferences.html:17
-#: searx/templates/oscar/preferences.html:272
+#: searx/templates/oscar/preferences.html:260
msgid "Cookies"
msgstr "Cookie"
@@ -715,88 +710,78 @@ msgstr "Стиль для выбранной темы"
msgid "Style"
msgstr "Стиль"
-#: searx/templates/oscar/preferences.html:122
-msgid "Open Access DOI resolver"
-msgstr "Распознаватель открытого доступа к DOI"
-
-#: searx/templates/oscar/preferences.html:123
-msgid ""
-"Redirect to open-access versions of publications when available (plugin "
-"required)"
-msgstr "Перенаправление на открытые версии публикаций при их наличии (требуется плагин)"
-
+#: searx/templates/oscar/preferences.html:151
#: searx/templates/oscar/preferences.html:163
-#: searx/templates/oscar/preferences.html:175
#: searx/templates/simple/preferences.html:88
msgid "Shortcut"
msgstr "Сокращение"
-#: searx/templates/oscar/preferences.html:164
-#: searx/templates/oscar/preferences.html:174
+#: searx/templates/oscar/preferences.html:152
+#: searx/templates/oscar/preferences.html:162
msgid "Selected language"
msgstr "Выбранный язык"
-#: searx/templates/oscar/preferences.html:166
-#: searx/templates/oscar/preferences.html:172
+#: searx/templates/oscar/preferences.html:154
+#: searx/templates/oscar/preferences.html:160
#: searx/templates/simple/preferences.html:91
msgid "Time range"
msgstr "Временной диапазон"
-#: searx/templates/oscar/preferences.html:167
-#: searx/templates/oscar/preferences.html:171
+#: searx/templates/oscar/preferences.html:155
+#: searx/templates/oscar/preferences.html:159
#: searx/templates/simple/preferences.html:92
msgid "Avg. time"
msgstr "Среднее время"
-#: searx/templates/oscar/preferences.html:168
-#: searx/templates/oscar/preferences.html:170
+#: searx/templates/oscar/preferences.html:156
+#: searx/templates/oscar/preferences.html:158
#: searx/templates/simple/preferences.html:93
msgid "Max time"
msgstr "Максимальное время"
-#: searx/templates/oscar/preferences.html:248
+#: searx/templates/oscar/preferences.html:236
msgid "This is the list of searx's instant answering modules."
msgstr "Это список модулей мгновенного ответа searx"
-#: searx/templates/oscar/preferences.html:252
+#: searx/templates/oscar/preferences.html:240
msgid "Name"
msgstr "Имя"
-#: searx/templates/oscar/preferences.html:253
+#: searx/templates/oscar/preferences.html:241
msgid "Keywords"
msgstr "Ключевые слова"
-#: searx/templates/oscar/preferences.html:254
+#: searx/templates/oscar/preferences.html:242
msgid "Description"
msgstr "Описание"
-#: searx/templates/oscar/preferences.html:255
+#: searx/templates/oscar/preferences.html:243
msgid "Examples"
msgstr "Примеры"
-#: searx/templates/oscar/preferences.html:275
+#: searx/templates/oscar/preferences.html:263
msgid ""
"This is the list of cookies and their values searx is storing on your "
"computer."
msgstr "Это список файлов cookie и их значения, которые searx хранит на вашем компьютере."
-#: searx/templates/oscar/preferences.html:276
+#: searx/templates/oscar/preferences.html:264
msgid "With that list, you can assess searx transparency."
msgstr "С помощью этого списка можно оценить прозрачность searx."
-#: searx/templates/oscar/preferences.html:281
+#: searx/templates/oscar/preferences.html:269
msgid "Cookie name"
msgstr "Имя файла cookie"
-#: searx/templates/oscar/preferences.html:282
+#: searx/templates/oscar/preferences.html:270
msgid "Value"
msgstr "Значение"
-#: searx/templates/oscar/preferences.html:301
+#: searx/templates/oscar/preferences.html:289
msgid "Search URL of the currently saved preferences"
msgstr "URL поиска для текущих сохраненных параметров"
-#: searx/templates/oscar/preferences.html:301
+#: searx/templates/oscar/preferences.html:289
msgid ""
"Note: specifying custom settings in the search URL can reduce privacy by "
"leaking data to the clicked result sites."
diff --git a/searx/translations/sk/LC_MESSAGES/messages.mo b/searx/translations/sk/LC_MESSAGES/messages.mo
index 0d8f6fa70..7156b51dd 100644
--- a/searx/translations/sk/LC_MESSAGES/messages.mo
+++ b/searx/translations/sk/LC_MESSAGES/messages.mo
Binary files differ
diff --git a/searx/translations/sk/LC_MESSAGES/messages.po b/searx/translations/sk/LC_MESSAGES/messages.po
index ebf1bba55..60ef06461 100644
--- a/searx/translations/sk/LC_MESSAGES/messages.po
+++ b/searx/translations/sk/LC_MESSAGES/messages.po
@@ -8,16 +8,16 @@ msgid ""
msgstr ""
"Project-Id-Version: searx\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
-"POT-Creation-Date: 2017-11-01 21:31+0100\n"
-"PO-Revision-Date: 2017-11-01 20:31+0000\n"
-"Last-Translator: Adam Tauber <asciimoo@gmail.com>\n"
+"POT-Creation-Date: 2017-10-07 19:18+0200\n"
+"PO-Revision-Date: 2019-02-23 17:39+0000\n"
+"Last-Translator: Jan Hovancik\n"
"Language-Team: Slovak (http://www.transifex.com/asciimoo/searx/language/sk/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Generated-By: Babel 2.3.4\n"
"Language: sk\n"
-"Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;\n"
+"Plural-Forms: nplurals=4; plural=(n % 1 == 0 && n == 1 ? 0 : n % 1 == 0 && n >= 2 && n <= 4 ? 1 : n % 1 != 0 ? 2: 3);\n"
#: searx/search.py:137 searx/search.py:182
msgid "timeout"
@@ -31,63 +31,63 @@ msgstr ""
msgid "unexpected crash"
msgstr ""
-#: searx/webapp.py:136
+#: searx/webapp.py:135
msgid "files"
msgstr "súbory"
-#: searx/webapp.py:137
+#: searx/webapp.py:136
msgid "general"
msgstr "všeobecné"
-#: searx/webapp.py:138
+#: searx/webapp.py:137
msgid "music"
msgstr "hudba"
-#: searx/webapp.py:139
+#: searx/webapp.py:138
msgid "social media"
msgstr "sociálne médiá"
-#: searx/webapp.py:140
+#: searx/webapp.py:139
msgid "images"
msgstr "obrázky"
-#: searx/webapp.py:141
+#: searx/webapp.py:140
msgid "videos"
msgstr "videá"
-#: searx/webapp.py:142
+#: searx/webapp.py:141
msgid "it"
msgstr "technika"
-#: searx/webapp.py:143
+#: searx/webapp.py:142
msgid "news"
msgstr "správy"
-#: searx/webapp.py:144
+#: searx/webapp.py:143
msgid "map"
msgstr "mapy"
-#: searx/webapp.py:145
+#: searx/webapp.py:144
msgid "science"
msgstr "veda"
-#: searx/webapp.py:399 searx/webapp.py:658
+#: searx/webapp.py:398 searx/webapp.py:653
msgid "Invalid settings, please edit your preferences"
msgstr "Neplatné nastavenia, upravte svoje hodnoty, prosím"
-#: searx/webapp.py:415
+#: searx/webapp.py:410
msgid "Invalid settings"
msgstr ""
-#: searx/webapp.py:449 searx/webapp.py:493
+#: searx/webapp.py:444 searx/webapp.py:488
msgid "search error"
msgstr "chyba vyhľadávania"
-#: searx/webapp.py:530
+#: searx/webapp.py:525
msgid "{minutes} minute(s) ago"
msgstr "{minutes} min. pred"
-#: searx/webapp.py:532
+#: searx/webapp.py:527
msgid "{hours} hour(s), {minutes} minute(s) ago"
msgstr "{hours} hod., {minutes} min. pred"
@@ -107,29 +107,28 @@ msgstr "Štatistické funkcie"
msgid "Compute {functions} of the arguments"
msgstr "Vypočítať {functions} argumentov"
-#: searx/engines/__init__.py:194 searx/engines/flycheck___init__.py:201
+#: searx/engines/__init__.py:194
msgid "Engine time (sec)"
msgstr "Načítanie vyhľadávača (sek)"
-#: searx/engines/__init__.py:198 searx/engines/flycheck___init__.py:205
+#: searx/engines/__init__.py:198
msgid "Page loads (sec)"
msgstr "Načítanie stránky (sek)"
-#: searx/engines/__init__.py:202 searx/engines/flycheck___init__.py:209
-#: searx/templates/oscar/results.html:95
+#: searx/engines/__init__.py:202 searx/templates/oscar/results.html:95
#: searx/templates/simple/results.html:20
msgid "Number of results"
msgstr "Počet výsledkov"
-#: searx/engines/__init__.py:206 searx/engines/flycheck___init__.py:213
+#: searx/engines/__init__.py:206
msgid "Scores"
msgstr ""
-#: searx/engines/__init__.py:210 searx/engines/flycheck___init__.py:217
+#: searx/engines/__init__.py:210
msgid "Scores per result"
msgstr ""
-#: searx/engines/__init__.py:214 searx/engines/flycheck___init__.py:221
+#: searx/engines/__init__.py:214
msgid "Errors"
msgstr "Chyby"
@@ -141,9 +140,15 @@ msgstr "{title}&nbsp;(ZASTARANÉ)"
msgid "This entry has been superseded by"
msgstr "Táto položka bola nahradená"
-#: searx/engines/pubmed.py:74
-msgid "No abstract is available for this publication."
-msgstr ""
+#: searx/plugins/doai_rewrite.py:7
+msgid "DOAI rewrite"
+msgstr "Prepis DOAI"
+
+#: searx/plugins/doai_rewrite.py:8
+msgid ""
+"Avoid paywalls by redirecting to open-access versions of publications when "
+"available"
+msgstr "Vyhnúť sa plateným bránam presmerovaním na verejne prístupné verzie publikácií ak sú k dispozícii"
#: searx/plugins/https_rewrite.py:32
msgid "Rewrite HTTP links to HTTPS if possible"
@@ -157,16 +162,6 @@ msgstr "Nekonečné posúvanie"
msgid "Automatically load next page when scrolling to bottom of current page"
msgstr "Automaticky načítať ďalšiu stránku pri posunutí na koniec aktuálnej stránky"
-#: searx/plugins/oa_doi_rewrite.py:9
-msgid "Open Access DOI rewrite"
-msgstr ""
-
-#: searx/plugins/oa_doi_rewrite.py:10
-msgid ""
-"Avoid paywalls by redirecting to open-access versions of publications when "
-"available"
-msgstr "Vyhnúť sa plateným bránam presmerovaním na verejne prístupné verzie publikácií ak sú k dispozícii"
-
#: searx/plugins/open_results_on_new_tab.py:18
#: searx/templates/oscar/preferences.html:114
#: searx/templates/simple/preferences.html:149
@@ -329,8 +324,8 @@ msgstr "Metóda"
#: searx/templates/courgette/preferences.html:63
#: searx/templates/legacy/preferences.html:64
#: searx/templates/oscar/preferences.html:86
-#: searx/templates/oscar/preferences.html:165
-#: searx/templates/oscar/preferences.html:173
+#: searx/templates/oscar/preferences.html:153
+#: searx/templates/oscar/preferences.html:161
#: searx/templates/simple/preferences.html:63
#: searx/templates/simple/preferences.html:90
msgid "SafeSearch"
@@ -402,8 +397,8 @@ msgstr "poruba@contours.cz"
#: searx/templates/courgette/preferences.html:100
#: searx/templates/legacy/preferences.html:97
-#: searx/templates/oscar/preferences.html:162
-#: searx/templates/oscar/preferences.html:176
+#: searx/templates/oscar/preferences.html:150
+#: searx/templates/oscar/preferences.html:164
#: searx/templates/pix-art/preferences.html:53
#: searx/templates/simple/preferences.html:87
msgid "Engine name"
@@ -418,8 +413,8 @@ msgstr "Kategória"
#: searx/templates/courgette/preferences.html:113
#: searx/templates/legacy/preferences.html:99
#: searx/templates/legacy/preferences.html:110
-#: searx/templates/oscar/preferences.html:161
-#: searx/templates/oscar/preferences.html:177
+#: searx/templates/oscar/preferences.html:149
+#: searx/templates/oscar/preferences.html:165
#: searx/templates/pix-art/preferences.html:54
#: searx/templates/pix-art/preferences.html:64
#: searx/templates/simple/preferences.html:86
@@ -437,7 +432,7 @@ msgstr "Blokovať"
#: searx/templates/courgette/preferences.html:122
#: searx/templates/legacy/preferences.html:119
-#: searx/templates/oscar/preferences.html:297
+#: searx/templates/oscar/preferences.html:285
#: searx/templates/pix-art/preferences.html:73
#: searx/templates/simple/preferences.html:180
msgid ""
@@ -447,7 +442,7 @@ msgstr "Tieto nastavenia sú uložené v cookies, čo nám umožňuje neukladať
#: searx/templates/courgette/preferences.html:124
#: searx/templates/legacy/preferences.html:121
-#: searx/templates/oscar/preferences.html:299
+#: searx/templates/oscar/preferences.html:287
#: searx/templates/pix-art/preferences.html:75
#: searx/templates/simple/preferences.html:182
msgid ""
@@ -457,7 +452,7 @@ msgstr "Tieto cookies slúžia výhradné pre vaše pohodlie a nie sú používa
#: searx/templates/courgette/preferences.html:127
#: searx/templates/legacy/preferences.html:124
-#: searx/templates/oscar/preferences.html:305
+#: searx/templates/oscar/preferences.html:293
#: searx/templates/pix-art/preferences.html:78
#: searx/templates/simple/preferences.html:185
msgid "save"
@@ -465,14 +460,14 @@ msgstr "uložiť"
#: searx/templates/courgette/preferences.html:128
#: searx/templates/legacy/preferences.html:125
-#: searx/templates/oscar/preferences.html:307
+#: searx/templates/oscar/preferences.html:295
#: searx/templates/simple/preferences.html:186
msgid "Reset defaults"
msgstr "Obnoviť predvolené"
#: searx/templates/courgette/preferences.html:129
#: searx/templates/legacy/preferences.html:126
-#: searx/templates/oscar/preferences.html:306
+#: searx/templates/oscar/preferences.html:294
#: searx/templates/pix-art/preferences.html:79
#: searx/templates/simple/preferences.html:187
msgid "back"
@@ -643,23 +638,23 @@ msgid "General"
msgstr "Všeobecné"
#: searx/templates/oscar/preferences.html:14
-#: searx/templates/oscar/preferences.html:146
+#: searx/templates/oscar/preferences.html:134
#: searx/templates/simple/preferences.html:76
msgid "Engines"
msgstr "Vyhľadávače"
#: searx/templates/oscar/preferences.html:15
-#: searx/templates/oscar/preferences.html:219
+#: searx/templates/oscar/preferences.html:207
msgid "Plugins"
msgstr "Zásuvné moduly"
#: searx/templates/oscar/preferences.html:16
-#: searx/templates/oscar/preferences.html:245
+#: searx/templates/oscar/preferences.html:233
msgid "Answerers"
msgstr "Rýchle odpovede"
#: searx/templates/oscar/preferences.html:17
-#: searx/templates/oscar/preferences.html:272
+#: searx/templates/oscar/preferences.html:260
msgid "Cookies"
msgstr "Cookies"
@@ -710,88 +705,78 @@ msgstr "Vyberte si štýl pre túto tému"
msgid "Style"
msgstr "Štýl"
-#: searx/templates/oscar/preferences.html:122
-msgid "Open Access DOI resolver"
-msgstr ""
-
-#: searx/templates/oscar/preferences.html:123
-msgid ""
-"Redirect to open-access versions of publications when available (plugin "
-"required)"
-msgstr ""
-
+#: searx/templates/oscar/preferences.html:151
#: searx/templates/oscar/preferences.html:163
-#: searx/templates/oscar/preferences.html:175
#: searx/templates/simple/preferences.html:88
msgid "Shortcut"
msgstr "Skratka"
-#: searx/templates/oscar/preferences.html:164
-#: searx/templates/oscar/preferences.html:174
+#: searx/templates/oscar/preferences.html:152
+#: searx/templates/oscar/preferences.html:162
msgid "Selected language"
msgstr ""
-#: searx/templates/oscar/preferences.html:166
-#: searx/templates/oscar/preferences.html:172
+#: searx/templates/oscar/preferences.html:154
+#: searx/templates/oscar/preferences.html:160
#: searx/templates/simple/preferences.html:91
msgid "Time range"
msgstr "Časový rozsah"
-#: searx/templates/oscar/preferences.html:167
-#: searx/templates/oscar/preferences.html:171
+#: searx/templates/oscar/preferences.html:155
+#: searx/templates/oscar/preferences.html:159
#: searx/templates/simple/preferences.html:92
msgid "Avg. time"
msgstr "Priemerný čas"
-#: searx/templates/oscar/preferences.html:168
-#: searx/templates/oscar/preferences.html:170
+#: searx/templates/oscar/preferences.html:156
+#: searx/templates/oscar/preferences.html:158
#: searx/templates/simple/preferences.html:93
msgid "Max time"
msgstr "Maximálny čas"
-#: searx/templates/oscar/preferences.html:248
+#: searx/templates/oscar/preferences.html:236
msgid "This is the list of searx's instant answering modules."
msgstr "Toto je zoznam modulov rýchlej odpovede pre searx."
-#: searx/templates/oscar/preferences.html:252
+#: searx/templates/oscar/preferences.html:240
msgid "Name"
msgstr "Názov"
-#: searx/templates/oscar/preferences.html:253
+#: searx/templates/oscar/preferences.html:241
msgid "Keywords"
msgstr "Kľúčové slová"
-#: searx/templates/oscar/preferences.html:254
+#: searx/templates/oscar/preferences.html:242
msgid "Description"
msgstr "Popis"
-#: searx/templates/oscar/preferences.html:255
+#: searx/templates/oscar/preferences.html:243
msgid "Examples"
msgstr "Príklady"
-#: searx/templates/oscar/preferences.html:275
+#: searx/templates/oscar/preferences.html:263
msgid ""
"This is the list of cookies and their values searx is storing on your "
"computer."
msgstr "Toto je zoznam cookies a ich hodnôt uložených searx na vašom počítači"
-#: searx/templates/oscar/preferences.html:276
+#: searx/templates/oscar/preferences.html:264
msgid "With that list, you can assess searx transparency."
msgstr "Pomocou tohto zoznamu môžte vidieť transparentnosť searx."
-#: searx/templates/oscar/preferences.html:281
+#: searx/templates/oscar/preferences.html:269
msgid "Cookie name"
msgstr "Názov cookie"
-#: searx/templates/oscar/preferences.html:282
+#: searx/templates/oscar/preferences.html:270
msgid "Value"
msgstr "Hodnota"
-#: searx/templates/oscar/preferences.html:301
+#: searx/templates/oscar/preferences.html:289
msgid "Search URL of the currently saved preferences"
msgstr ""
-#: searx/templates/oscar/preferences.html:301
+#: searx/templates/oscar/preferences.html:289
msgid ""
"Note: specifying custom settings in the search URL can reduce privacy by "
"leaking data to the clicked result sites."
diff --git a/searx/translations/sl/LC_MESSAGES/messages.mo b/searx/translations/sl/LC_MESSAGES/messages.mo
index b2cf9e1b1..9e980f78c 100644
--- a/searx/translations/sl/LC_MESSAGES/messages.mo
+++ b/searx/translations/sl/LC_MESSAGES/messages.mo
Binary files differ
diff --git a/searx/translations/sl/LC_MESSAGES/messages.po b/searx/translations/sl/LC_MESSAGES/messages.po
index 3ce7f97d6..77ef61b8c 100644
--- a/searx/translations/sl/LC_MESSAGES/messages.po
+++ b/searx/translations/sl/LC_MESSAGES/messages.po
@@ -8,8 +8,8 @@ msgid ""
msgstr ""
"Project-Id-Version: searx\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
-"POT-Creation-Date: 2017-11-01 21:31+0100\n"
-"PO-Revision-Date: 2018-05-01 08:59+0000\n"
+"POT-Creation-Date: 2017-10-07 19:18+0200\n"
+"PO-Revision-Date: 2019-02-23 17:39+0000\n"
"Last-Translator: asladic <ales.sladic@gmail.com>\n"
"Language-Team: Slovenian (http://www.transifex.com/asciimoo/searx/language/sl/)\n"
"MIME-Version: 1.0\n"
@@ -31,63 +31,63 @@ msgstr "napaka poizvedbe"
msgid "unexpected crash"
msgstr "nepričakovana napaka"
-#: searx/webapp.py:136
+#: searx/webapp.py:135
msgid "files"
msgstr "datoteke"
-#: searx/webapp.py:137
+#: searx/webapp.py:136
msgid "general"
msgstr "splošno"
-#: searx/webapp.py:138
+#: searx/webapp.py:137
msgid "music"
msgstr "glasba"
-#: searx/webapp.py:139
+#: searx/webapp.py:138
msgid "social media"
msgstr "družabna omrežja"
-#: searx/webapp.py:140
+#: searx/webapp.py:139
msgid "images"
msgstr "slike"
-#: searx/webapp.py:141
+#: searx/webapp.py:140
msgid "videos"
msgstr "videi"
-#: searx/webapp.py:142
+#: searx/webapp.py:141
msgid "it"
msgstr "informatika"
-#: searx/webapp.py:143
+#: searx/webapp.py:142
msgid "news"
msgstr "novice"
-#: searx/webapp.py:144
+#: searx/webapp.py:143
msgid "map"
msgstr "zemljevid"
-#: searx/webapp.py:145
+#: searx/webapp.py:144
msgid "science"
msgstr "znanost"
-#: searx/webapp.py:399 searx/webapp.py:658
+#: searx/webapp.py:398 searx/webapp.py:653
msgid "Invalid settings, please edit your preferences"
msgstr "Neveljavne nastavitve. Prosimo, preverite vašo konfiguracijo"
-#: searx/webapp.py:415
+#: searx/webapp.py:410
msgid "Invalid settings"
msgstr "Neveljavne nastavitve"
-#: searx/webapp.py:449 searx/webapp.py:493
+#: searx/webapp.py:444 searx/webapp.py:488
msgid "search error"
msgstr "napaka pri iskanju"
-#: searx/webapp.py:530
+#: searx/webapp.py:525
msgid "{minutes} minute(s) ago"
msgstr "{minutes} minut nazaj"
-#: searx/webapp.py:532
+#: searx/webapp.py:527
msgid "{hours} hour(s), {minutes} minute(s) ago"
msgstr "pred {hours} urami in {minutes} minut"
@@ -107,29 +107,28 @@ msgstr "Statistične funkcije"
msgid "Compute {functions} of the arguments"
msgstr "Izračunaj {functions} argumentov"
-#: searx/engines/__init__.py:194 searx/engines/flycheck___init__.py:201
+#: searx/engines/__init__.py:194
msgid "Engine time (sec)"
msgstr "Čas iskanja (sek.)"
-#: searx/engines/__init__.py:198 searx/engines/flycheck___init__.py:205
+#: searx/engines/__init__.py:198
msgid "Page loads (sec)"
msgstr "Čas nalaganja (sek.)"
-#: searx/engines/__init__.py:202 searx/engines/flycheck___init__.py:209
-#: searx/templates/oscar/results.html:95
+#: searx/engines/__init__.py:202 searx/templates/oscar/results.html:95
#: searx/templates/simple/results.html:20
msgid "Number of results"
msgstr "Število zadetkov"
-#: searx/engines/__init__.py:206 searx/engines/flycheck___init__.py:213
+#: searx/engines/__init__.py:206
msgid "Scores"
msgstr "Točke"
-#: searx/engines/__init__.py:210 searx/engines/flycheck___init__.py:217
+#: searx/engines/__init__.py:210
msgid "Scores per result"
msgstr "Točke na zadetek"
-#: searx/engines/__init__.py:214 searx/engines/flycheck___init__.py:221
+#: searx/engines/__init__.py:214
msgid "Errors"
msgstr "Napake"
@@ -141,9 +140,15 @@ msgstr "{title}&nbsp;(ZASTARANO)"
msgid "This entry has been superseded by"
msgstr "Ta vnos je presegel"
-#: searx/engines/pubmed.py:74
-msgid "No abstract is available for this publication."
-msgstr ""
+#: searx/plugins/doai_rewrite.py:7
+msgid "DOAI rewrite"
+msgstr "prepisovanje DOAI"
+
+#: searx/plugins/doai_rewrite.py:8
+msgid ""
+"Avoid paywalls by redirecting to open-access versions of publications when "
+"available"
+msgstr "Izogibanje plačilom s preusmeritvijo na prostodostopne različice publikacij, ko so na voljo"
#: searx/plugins/https_rewrite.py:32
msgid "Rewrite HTTP links to HTTPS if possible"
@@ -157,16 +162,6 @@ msgstr "Neskončno drsenje"
msgid "Automatically load next page when scrolling to bottom of current page"
msgstr "Samodejno naloži naslednjo stran ob ogledu dna trenutne strani"
-#: searx/plugins/oa_doi_rewrite.py:9
-msgid "Open Access DOI rewrite"
-msgstr ""
-
-#: searx/plugins/oa_doi_rewrite.py:10
-msgid ""
-"Avoid paywalls by redirecting to open-access versions of publications when "
-"available"
-msgstr "Izogibanje plačilom s preusmeritvijo na prostodostopne različice publikacij, ko so na voljo"
-
#: searx/plugins/open_results_on_new_tab.py:18
#: searx/templates/oscar/preferences.html:114
#: searx/templates/simple/preferences.html:149
@@ -329,8 +324,8 @@ msgstr "Metoda"
#: searx/templates/courgette/preferences.html:63
#: searx/templates/legacy/preferences.html:64
#: searx/templates/oscar/preferences.html:86
-#: searx/templates/oscar/preferences.html:165
-#: searx/templates/oscar/preferences.html:173
+#: searx/templates/oscar/preferences.html:153
+#: searx/templates/oscar/preferences.html:161
#: searx/templates/simple/preferences.html:63
#: searx/templates/simple/preferences.html:90
msgid "SafeSearch"
@@ -402,8 +397,8 @@ msgstr "Trenutno uporabljeni iskalniki"
#: searx/templates/courgette/preferences.html:100
#: searx/templates/legacy/preferences.html:97
-#: searx/templates/oscar/preferences.html:162
-#: searx/templates/oscar/preferences.html:176
+#: searx/templates/oscar/preferences.html:150
+#: searx/templates/oscar/preferences.html:164
#: searx/templates/pix-art/preferences.html:53
#: searx/templates/simple/preferences.html:87
msgid "Engine name"
@@ -418,8 +413,8 @@ msgstr "Kategorija"
#: searx/templates/courgette/preferences.html:113
#: searx/templates/legacy/preferences.html:99
#: searx/templates/legacy/preferences.html:110
-#: searx/templates/oscar/preferences.html:161
-#: searx/templates/oscar/preferences.html:177
+#: searx/templates/oscar/preferences.html:149
+#: searx/templates/oscar/preferences.html:165
#: searx/templates/pix-art/preferences.html:54
#: searx/templates/pix-art/preferences.html:64
#: searx/templates/simple/preferences.html:86
@@ -437,7 +432,7 @@ msgstr "Blokiraj"
#: searx/templates/courgette/preferences.html:122
#: searx/templates/legacy/preferences.html:119
-#: searx/templates/oscar/preferences.html:297
+#: searx/templates/oscar/preferences.html:285
#: searx/templates/pix-art/preferences.html:73
#: searx/templates/simple/preferences.html:180
msgid ""
@@ -447,7 +442,7 @@ msgstr "Te nastavitve so shranjene v vaših piškotkih; to nam omogoča, da ne h
#: searx/templates/courgette/preferences.html:124
#: searx/templates/legacy/preferences.html:121
-#: searx/templates/oscar/preferences.html:299
+#: searx/templates/oscar/preferences.html:287
#: searx/templates/pix-art/preferences.html:75
#: searx/templates/simple/preferences.html:182
msgid ""
@@ -457,7 +452,7 @@ msgstr "Ti piškotki so za boljšo izkušnjo, ne uporabljamo jih za sledenje."
#: searx/templates/courgette/preferences.html:127
#: searx/templates/legacy/preferences.html:124
-#: searx/templates/oscar/preferences.html:305
+#: searx/templates/oscar/preferences.html:293
#: searx/templates/pix-art/preferences.html:78
#: searx/templates/simple/preferences.html:185
msgid "save"
@@ -465,14 +460,14 @@ msgstr "shrani"
#: searx/templates/courgette/preferences.html:128
#: searx/templates/legacy/preferences.html:125
-#: searx/templates/oscar/preferences.html:307
+#: searx/templates/oscar/preferences.html:295
#: searx/templates/simple/preferences.html:186
msgid "Reset defaults"
msgstr "Ponastavi na privzeto"
#: searx/templates/courgette/preferences.html:129
#: searx/templates/legacy/preferences.html:126
-#: searx/templates/oscar/preferences.html:306
+#: searx/templates/oscar/preferences.html:294
#: searx/templates/pix-art/preferences.html:79
#: searx/templates/simple/preferences.html:187
msgid "back"
@@ -643,23 +638,23 @@ msgid "General"
msgstr "Splošno"
#: searx/templates/oscar/preferences.html:14
-#: searx/templates/oscar/preferences.html:146
+#: searx/templates/oscar/preferences.html:134
#: searx/templates/simple/preferences.html:76
msgid "Engines"
msgstr "Iskalniki"
#: searx/templates/oscar/preferences.html:15
-#: searx/templates/oscar/preferences.html:219
+#: searx/templates/oscar/preferences.html:207
msgid "Plugins"
msgstr "Vtičniki"
#: searx/templates/oscar/preferences.html:16
-#: searx/templates/oscar/preferences.html:245
+#: searx/templates/oscar/preferences.html:233
msgid "Answerers"
msgstr "Ponudniki odgovorov"
#: searx/templates/oscar/preferences.html:17
-#: searx/templates/oscar/preferences.html:272
+#: searx/templates/oscar/preferences.html:260
msgid "Cookies"
msgstr "Piškotki"
@@ -710,88 +705,78 @@ msgstr "Izberite stil za trenutno temo"
msgid "Style"
msgstr "Stil"
-#: searx/templates/oscar/preferences.html:122
-msgid "Open Access DOI resolver"
-msgstr ""
-
-#: searx/templates/oscar/preferences.html:123
-msgid ""
-"Redirect to open-access versions of publications when available (plugin "
-"required)"
-msgstr "Preusmeri na prosto dostopne različice publikacij, ko so na voljo (zahtevan vtičnik)"
-
+#: searx/templates/oscar/preferences.html:151
#: searx/templates/oscar/preferences.html:163
-#: searx/templates/oscar/preferences.html:175
#: searx/templates/simple/preferences.html:88
msgid "Shortcut"
msgstr "Bližnjica"
-#: searx/templates/oscar/preferences.html:164
-#: searx/templates/oscar/preferences.html:174
+#: searx/templates/oscar/preferences.html:152
+#: searx/templates/oscar/preferences.html:162
msgid "Selected language"
msgstr "Izbrani jezik"
-#: searx/templates/oscar/preferences.html:166
-#: searx/templates/oscar/preferences.html:172
+#: searx/templates/oscar/preferences.html:154
+#: searx/templates/oscar/preferences.html:160
#: searx/templates/simple/preferences.html:91
msgid "Time range"
msgstr "Časovni razpon"
-#: searx/templates/oscar/preferences.html:167
-#: searx/templates/oscar/preferences.html:171
+#: searx/templates/oscar/preferences.html:155
+#: searx/templates/oscar/preferences.html:159
#: searx/templates/simple/preferences.html:92
msgid "Avg. time"
msgstr "Povprečni čas"
-#: searx/templates/oscar/preferences.html:168
-#: searx/templates/oscar/preferences.html:170
+#: searx/templates/oscar/preferences.html:156
+#: searx/templates/oscar/preferences.html:158
#: searx/templates/simple/preferences.html:93
msgid "Max time"
msgstr "Največji čas"
-#: searx/templates/oscar/preferences.html:248
+#: searx/templates/oscar/preferences.html:236
msgid "This is the list of searx's instant answering modules."
msgstr "To je seznam modulov searx za takojšnje odgovore."
-#: searx/templates/oscar/preferences.html:252
+#: searx/templates/oscar/preferences.html:240
msgid "Name"
msgstr "Ime"
-#: searx/templates/oscar/preferences.html:253
+#: searx/templates/oscar/preferences.html:241
msgid "Keywords"
msgstr "Ključne besede"
-#: searx/templates/oscar/preferences.html:254
+#: searx/templates/oscar/preferences.html:242
msgid "Description"
msgstr "Opis"
-#: searx/templates/oscar/preferences.html:255
+#: searx/templates/oscar/preferences.html:243
msgid "Examples"
msgstr "Primeri"
-#: searx/templates/oscar/preferences.html:275
+#: searx/templates/oscar/preferences.html:263
msgid ""
"This is the list of cookies and their values searx is storing on your "
"computer."
msgstr "To je seznam piškotkov in pripadajočih vrednosti, ki jih searx hrani na vašem računalniku."
-#: searx/templates/oscar/preferences.html:276
+#: searx/templates/oscar/preferences.html:264
msgid "With that list, you can assess searx transparency."
msgstr "S tem seznamom lahko ocenite transparentnost searx."
-#: searx/templates/oscar/preferences.html:281
+#: searx/templates/oscar/preferences.html:269
msgid "Cookie name"
msgstr "Ime piškotka"
-#: searx/templates/oscar/preferences.html:282
+#: searx/templates/oscar/preferences.html:270
msgid "Value"
msgstr "Vrednost"
-#: searx/templates/oscar/preferences.html:301
+#: searx/templates/oscar/preferences.html:289
msgid "Search URL of the currently saved preferences"
msgstr "Iskalni URL trenutno shranjenih nastavitev"
-#: searx/templates/oscar/preferences.html:301
+#: searx/templates/oscar/preferences.html:289
msgid ""
"Note: specifying custom settings in the search URL can reduce privacy by "
"leaking data to the clicked result sites."
diff --git a/searx/translations/sr/LC_MESSAGES/messages.mo b/searx/translations/sr/LC_MESSAGES/messages.mo
index 65efaaa1a..d7585916f 100644
--- a/searx/translations/sr/LC_MESSAGES/messages.mo
+++ b/searx/translations/sr/LC_MESSAGES/messages.mo
Binary files differ
diff --git a/searx/translations/sr/LC_MESSAGES/messages.po b/searx/translations/sr/LC_MESSAGES/messages.po
index b676f3dcc..01e36b1e8 100644
--- a/searx/translations/sr/LC_MESSAGES/messages.po
+++ b/searx/translations/sr/LC_MESSAGES/messages.po
@@ -3,14 +3,15 @@
# This file is distributed under the same license as the PROJECT project.
#
# Translators:
+# Marc Abonce Seguin, 2019
# jugi1, 2017
msgid ""
msgstr ""
"Project-Id-Version: searx\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
-"POT-Creation-Date: 2017-11-01 21:31+0100\n"
-"PO-Revision-Date: 2017-11-03 11:24+0000\n"
-"Last-Translator: jugi1\n"
+"POT-Creation-Date: 2017-10-07 19:18+0200\n"
+"PO-Revision-Date: 2019-07-28 05:07+0000\n"
+"Last-Translator: Marc Abonce Seguin\n"
"Language-Team: Serbian (http://www.transifex.com/asciimoo/searx/language/sr/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
@@ -31,63 +32,63 @@ msgstr "захтевај изузетак"
msgid "unexpected crash"
msgstr "неочекивани пад"
-#: searx/webapp.py:136
+#: searx/webapp.py:135
msgid "files"
msgstr "фајлови"
-#: searx/webapp.py:137
+#: searx/webapp.py:136
msgid "general"
msgstr "уопштено"
-#: searx/webapp.py:138
+#: searx/webapp.py:137
msgid "music"
msgstr "музика"
-#: searx/webapp.py:139
+#: searx/webapp.py:138
msgid "social media"
msgstr "друштвени медији"
-#: searx/webapp.py:140
+#: searx/webapp.py:139
msgid "images"
msgstr "слике"
-#: searx/webapp.py:141
+#: searx/webapp.py:140
msgid "videos"
msgstr "видео"
-#: searx/webapp.py:142
+#: searx/webapp.py:141
msgid "it"
msgstr "ит"
-#: searx/webapp.py:143
+#: searx/webapp.py:142
msgid "news"
msgstr "новости"
-#: searx/webapp.py:144
+#: searx/webapp.py:143
msgid "map"
msgstr "мапа"
-#: searx/webapp.py:145
+#: searx/webapp.py:144
msgid "science"
msgstr "наука"
-#: searx/webapp.py:399 searx/webapp.py:658
+#: searx/webapp.py:398 searx/webapp.py:653
msgid "Invalid settings, please edit your preferences"
msgstr "Неважеће поставке, молимо уредите свој избор"
-#: searx/webapp.py:415
+#: searx/webapp.py:410
msgid "Invalid settings"
msgstr "Неважећа подешавања"
-#: searx/webapp.py:449 searx/webapp.py:493
+#: searx/webapp.py:444 searx/webapp.py:488
msgid "search error"
msgstr "грешка у претрази"
-#: searx/webapp.py:530
+#: searx/webapp.py:525
msgid "{minutes} minute(s) ago"
msgstr "{minutes} минут(а) назад"
-#: searx/webapp.py:532
+#: searx/webapp.py:527
msgid "{hours} hour(s), {minutes} minute(s) ago"
msgstr "{hours} час(a), {minutes} минут(а) назад"
@@ -105,31 +106,30 @@ msgstr "Статистичке функције"
#: searx/answerers/statistics/answerer.py:54
msgid "Compute {functions} of the arguments"
-msgstr "Израчунајте {функције} аргумената"
+msgstr "Израчунајте {functions} аргумената"
-#: searx/engines/__init__.py:194 searx/engines/flycheck___init__.py:201
+#: searx/engines/__init__.py:194
msgid "Engine time (sec)"
msgstr "Време претраге (сек)"
-#: searx/engines/__init__.py:198 searx/engines/flycheck___init__.py:205
+#: searx/engines/__init__.py:198
msgid "Page loads (sec)"
msgstr "Учитавање странице (сек)"
-#: searx/engines/__init__.py:202 searx/engines/flycheck___init__.py:209
-#: searx/templates/oscar/results.html:95
+#: searx/engines/__init__.py:202 searx/templates/oscar/results.html:95
#: searx/templates/simple/results.html:20
msgid "Number of results"
msgstr "Број резултата"
-#: searx/engines/__init__.py:206 searx/engines/flycheck___init__.py:213
+#: searx/engines/__init__.py:206
msgid "Scores"
msgstr "Резултати"
-#: searx/engines/__init__.py:210 searx/engines/flycheck___init__.py:217
+#: searx/engines/__init__.py:210
msgid "Scores per result"
msgstr "Остварени резултати"
-#: searx/engines/__init__.py:214 searx/engines/flycheck___init__.py:221
+#: searx/engines/__init__.py:214
msgid "Errors"
msgstr "Грешке"
@@ -141,9 +141,15 @@ msgstr "{наслов}&nbsp;(ЗАСТАРЕЛО)"
msgid "This entry has been superseded by"
msgstr "Овај унос је заменио"
-#: searx/engines/pubmed.py:74
-msgid "No abstract is available for this publication."
-msgstr "Абстракт није доступан за ову публикацију."
+#: searx/plugins/doai_rewrite.py:7
+msgid "DOAI rewrite"
+msgstr "Препис DOAI"
+
+#: searx/plugins/doai_rewrite.py:8
+msgid ""
+"Avoid paywalls by redirecting to open-access versions of publications when "
+"available"
+msgstr "Избегните плаћање у случају да је доступна бесплатна публикација"
#: searx/plugins/https_rewrite.py:32
msgid "Rewrite HTTP links to HTTPS if possible"
@@ -157,16 +163,6 @@ msgstr "Бесконачно померање"
msgid "Automatically load next page when scrolling to bottom of current page"
msgstr "Аутоматско учитавање следеће странице приликом померања на дно текуће странице"
-#: searx/plugins/oa_doi_rewrite.py:9
-msgid "Open Access DOI rewrite"
-msgstr "Отворени приступ DOI преписа"
-
-#: searx/plugins/oa_doi_rewrite.py:10
-msgid ""
-"Avoid paywalls by redirecting to open-access versions of publications when "
-"available"
-msgstr "Избегните плаћање у случају да је доступна бесплатна публикација"
-
#: searx/plugins/open_results_on_new_tab.py:18
#: searx/templates/oscar/preferences.html:114
#: searx/templates/simple/preferences.html:149
@@ -329,8 +325,8 @@ msgstr "Метода"
#: searx/templates/courgette/preferences.html:63
#: searx/templates/legacy/preferences.html:64
#: searx/templates/oscar/preferences.html:86
-#: searx/templates/oscar/preferences.html:165
-#: searx/templates/oscar/preferences.html:173
+#: searx/templates/oscar/preferences.html:153
+#: searx/templates/oscar/preferences.html:161
#: searx/templates/simple/preferences.html:63
#: searx/templates/simple/preferences.html:90
msgid "SafeSearch"
@@ -402,8 +398,8 @@ msgstr "Тренутно коришћени претраживачи"
#: searx/templates/courgette/preferences.html:100
#: searx/templates/legacy/preferences.html:97
-#: searx/templates/oscar/preferences.html:162
-#: searx/templates/oscar/preferences.html:176
+#: searx/templates/oscar/preferences.html:150
+#: searx/templates/oscar/preferences.html:164
#: searx/templates/pix-art/preferences.html:53
#: searx/templates/simple/preferences.html:87
msgid "Engine name"
@@ -418,8 +414,8 @@ msgstr "Категорија"
#: searx/templates/courgette/preferences.html:113
#: searx/templates/legacy/preferences.html:99
#: searx/templates/legacy/preferences.html:110
-#: searx/templates/oscar/preferences.html:161
-#: searx/templates/oscar/preferences.html:177
+#: searx/templates/oscar/preferences.html:149
+#: searx/templates/oscar/preferences.html:165
#: searx/templates/pix-art/preferences.html:54
#: searx/templates/pix-art/preferences.html:64
#: searx/templates/simple/preferences.html:86
@@ -437,7 +433,7 @@ msgstr "Блокирај"
#: searx/templates/courgette/preferences.html:122
#: searx/templates/legacy/preferences.html:119
-#: searx/templates/oscar/preferences.html:297
+#: searx/templates/oscar/preferences.html:285
#: searx/templates/pix-art/preferences.html:73
#: searx/templates/simple/preferences.html:180
msgid ""
@@ -447,7 +443,7 @@ msgstr "Ова подешавања се чувају у вашим колачи
#: searx/templates/courgette/preferences.html:124
#: searx/templates/legacy/preferences.html:121
-#: searx/templates/oscar/preferences.html:299
+#: searx/templates/oscar/preferences.html:287
#: searx/templates/pix-art/preferences.html:75
#: searx/templates/simple/preferences.html:182
msgid ""
@@ -457,7 +453,7 @@ msgstr "Ови колачићи служе Вашој погодности, ми
#: searx/templates/courgette/preferences.html:127
#: searx/templates/legacy/preferences.html:124
-#: searx/templates/oscar/preferences.html:305
+#: searx/templates/oscar/preferences.html:293
#: searx/templates/pix-art/preferences.html:78
#: searx/templates/simple/preferences.html:185
msgid "save"
@@ -465,14 +461,14 @@ msgstr "сними"
#: searx/templates/courgette/preferences.html:128
#: searx/templates/legacy/preferences.html:125
-#: searx/templates/oscar/preferences.html:307
+#: searx/templates/oscar/preferences.html:295
#: searx/templates/simple/preferences.html:186
msgid "Reset defaults"
msgstr "Врати на подразумевано"
#: searx/templates/courgette/preferences.html:129
#: searx/templates/legacy/preferences.html:126
-#: searx/templates/oscar/preferences.html:306
+#: searx/templates/oscar/preferences.html:294
#: searx/templates/pix-art/preferences.html:79
#: searx/templates/simple/preferences.html:187
msgid "back"
@@ -643,23 +639,23 @@ msgid "General"
msgstr "Уопштено"
#: searx/templates/oscar/preferences.html:14
-#: searx/templates/oscar/preferences.html:146
+#: searx/templates/oscar/preferences.html:134
#: searx/templates/simple/preferences.html:76
msgid "Engines"
msgstr "Претраживачи"
#: searx/templates/oscar/preferences.html:15
-#: searx/templates/oscar/preferences.html:219
+#: searx/templates/oscar/preferences.html:207
msgid "Plugins"
msgstr "Плагини"
#: searx/templates/oscar/preferences.html:16
-#: searx/templates/oscar/preferences.html:245
+#: searx/templates/oscar/preferences.html:233
msgid "Answerers"
msgstr "Одговори"
#: searx/templates/oscar/preferences.html:17
-#: searx/templates/oscar/preferences.html:272
+#: searx/templates/oscar/preferences.html:260
msgid "Cookies"
msgstr "Колачићи"
@@ -710,88 +706,78 @@ msgstr "Изаберите стил за ову тему"
msgid "Style"
msgstr "Стил"
-#: searx/templates/oscar/preferences.html:122
-msgid "Open Access DOI resolver"
-msgstr "Отворени приступ DOI решења"
-
-#: searx/templates/oscar/preferences.html:123
-msgid ""
-"Redirect to open-access versions of publications when available (plugin "
-"required)"
-msgstr "Преусмери на верзије публикација отвореног приступа кад је доступно (потребан је плагин)"
-
+#: searx/templates/oscar/preferences.html:151
#: searx/templates/oscar/preferences.html:163
-#: searx/templates/oscar/preferences.html:175
#: searx/templates/simple/preferences.html:88
msgid "Shortcut"
msgstr "Пречица"
-#: searx/templates/oscar/preferences.html:164
-#: searx/templates/oscar/preferences.html:174
+#: searx/templates/oscar/preferences.html:152
+#: searx/templates/oscar/preferences.html:162
msgid "Selected language"
msgstr "Изабрани језик"
-#: searx/templates/oscar/preferences.html:166
-#: searx/templates/oscar/preferences.html:172
+#: searx/templates/oscar/preferences.html:154
+#: searx/templates/oscar/preferences.html:160
#: searx/templates/simple/preferences.html:91
msgid "Time range"
msgstr "Временски опсег"
-#: searx/templates/oscar/preferences.html:167
-#: searx/templates/oscar/preferences.html:171
+#: searx/templates/oscar/preferences.html:155
+#: searx/templates/oscar/preferences.html:159
#: searx/templates/simple/preferences.html:92
msgid "Avg. time"
msgstr "Просечно време"
-#: searx/templates/oscar/preferences.html:168
-#: searx/templates/oscar/preferences.html:170
+#: searx/templates/oscar/preferences.html:156
+#: searx/templates/oscar/preferences.html:158
#: searx/templates/simple/preferences.html:93
msgid "Max time"
msgstr "Макс. време"
-#: searx/templates/oscar/preferences.html:248
+#: searx/templates/oscar/preferences.html:236
msgid "This is the list of searx's instant answering modules."
msgstr "Ово је листа searx инстант одговора."
-#: searx/templates/oscar/preferences.html:252
+#: searx/templates/oscar/preferences.html:240
msgid "Name"
msgstr "Име"
-#: searx/templates/oscar/preferences.html:253
+#: searx/templates/oscar/preferences.html:241
msgid "Keywords"
msgstr "Кључне речи"
-#: searx/templates/oscar/preferences.html:254
+#: searx/templates/oscar/preferences.html:242
msgid "Description"
msgstr "Опис"
-#: searx/templates/oscar/preferences.html:255
+#: searx/templates/oscar/preferences.html:243
msgid "Examples"
msgstr "Примери"
-#: searx/templates/oscar/preferences.html:275
+#: searx/templates/oscar/preferences.html:263
msgid ""
"This is the list of cookies and their values searx is storing on your "
"computer."
msgstr "Ово је листа колачића и њихова вредност се снима на вашем рачунару."
-#: searx/templates/oscar/preferences.html:276
+#: searx/templates/oscar/preferences.html:264
msgid "With that list, you can assess searx transparency."
msgstr "Са овом листом можете бити searx транспаренти"
-#: searx/templates/oscar/preferences.html:281
+#: searx/templates/oscar/preferences.html:269
msgid "Cookie name"
msgstr "Име колачића"
-#: searx/templates/oscar/preferences.html:282
+#: searx/templates/oscar/preferences.html:270
msgid "Value"
msgstr "Вредност"
-#: searx/templates/oscar/preferences.html:301
+#: searx/templates/oscar/preferences.html:289
msgid "Search URL of the currently saved preferences"
msgstr "Pretražite URL адресу тренутно сачуваних поставки"
-#: searx/templates/oscar/preferences.html:301
+#: searx/templates/oscar/preferences.html:289
msgid ""
"Note: specifying custom settings in the search URL can reduce privacy by "
"leaking data to the clicked result sites."
diff --git a/searx/translations/sv/LC_MESSAGES/messages.mo b/searx/translations/sv/LC_MESSAGES/messages.mo
index 73d36de8c..d432f219a 100644
--- a/searx/translations/sv/LC_MESSAGES/messages.mo
+++ b/searx/translations/sv/LC_MESSAGES/messages.mo
Binary files differ
diff --git a/searx/translations/sv/LC_MESSAGES/messages.po b/searx/translations/sv/LC_MESSAGES/messages.po
index e8b01c832..1949932d1 100644
--- a/searx/translations/sv/LC_MESSAGES/messages.po
+++ b/searx/translations/sv/LC_MESSAGES/messages.po
@@ -4,14 +4,14 @@
#
# Translators:
# Jonatan Nyberg, 2016-2017
-# Jonatan Nyberg, 2018
+# Jonatan Nyberg, 2018-2019
# Jonatan Nyberg, 2017-2018
msgid ""
msgstr ""
"Project-Id-Version: searx\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
-"POT-Creation-Date: 2017-11-01 21:31+0100\n"
-"PO-Revision-Date: 2018-07-24 18:39+0000\n"
+"POT-Creation-Date: 2017-10-07 19:18+0200\n"
+"PO-Revision-Date: 2019-02-28 20:53+0000\n"
"Last-Translator: Jonatan Nyberg\n"
"Language-Team: Swedish (http://www.transifex.com/asciimoo/searx/language/sv/)\n"
"MIME-Version: 1.0\n"
@@ -33,63 +33,63 @@ msgstr "begär undantag"
msgid "unexpected crash"
msgstr "oväntad krasch"
-#: searx/webapp.py:136
+#: searx/webapp.py:135
msgid "files"
msgstr "filer"
-#: searx/webapp.py:137
+#: searx/webapp.py:136
msgid "general"
msgstr "allmänt"
-#: searx/webapp.py:138
+#: searx/webapp.py:137
msgid "music"
msgstr "musik"
-#: searx/webapp.py:139
+#: searx/webapp.py:138
msgid "social media"
msgstr "sociala medier"
-#: searx/webapp.py:140
+#: searx/webapp.py:139
msgid "images"
msgstr "bilder"
-#: searx/webapp.py:141
+#: searx/webapp.py:140
msgid "videos"
msgstr "videor"
-#: searx/webapp.py:142
+#: searx/webapp.py:141
msgid "it"
msgstr "it"
-#: searx/webapp.py:143
+#: searx/webapp.py:142
msgid "news"
msgstr "nyheter"
-#: searx/webapp.py:144
+#: searx/webapp.py:143
msgid "map"
msgstr "karta"
-#: searx/webapp.py:145
+#: searx/webapp.py:144
msgid "science"
msgstr "vetenskap"
-#: searx/webapp.py:399 searx/webapp.py:658
+#: searx/webapp.py:398 searx/webapp.py:653
msgid "Invalid settings, please edit your preferences"
msgstr "Ogiltiga inställningar, vänligen redigerar dina inställningar"
-#: searx/webapp.py:415
+#: searx/webapp.py:410
msgid "Invalid settings"
msgstr "Ogiltiga inställningar"
-#: searx/webapp.py:449 searx/webapp.py:493
+#: searx/webapp.py:444 searx/webapp.py:488
msgid "search error"
msgstr "sökfel"
-#: searx/webapp.py:530
+#: searx/webapp.py:525
msgid "{minutes} minute(s) ago"
msgstr "{minutes} minut(er) sedan"
-#: searx/webapp.py:532
+#: searx/webapp.py:527
msgid "{hours} hour(s), {minutes} minute(s) ago"
msgstr "{hours} timm(e/ar), {minutes} minut(er) sedan"
@@ -109,29 +109,28 @@ msgstr "Statistikfunktioner"
msgid "Compute {functions} of the arguments"
msgstr "Beräkna {functions} av argumenten"
-#: searx/engines/__init__.py:194 searx/engines/flycheck___init__.py:201
+#: searx/engines/__init__.py:194
msgid "Engine time (sec)"
msgstr "Sökmotor tid (sek)"
-#: searx/engines/__init__.py:198 searx/engines/flycheck___init__.py:205
+#: searx/engines/__init__.py:198
msgid "Page loads (sec)"
msgstr "Sidan laddas (sek)"
-#: searx/engines/__init__.py:202 searx/engines/flycheck___init__.py:209
-#: searx/templates/oscar/results.html:95
+#: searx/engines/__init__.py:202 searx/templates/oscar/results.html:95
#: searx/templates/simple/results.html:20
msgid "Number of results"
msgstr "Antal resultat"
-#: searx/engines/__init__.py:206 searx/engines/flycheck___init__.py:213
+#: searx/engines/__init__.py:206
msgid "Scores"
msgstr "Poäng"
-#: searx/engines/__init__.py:210 searx/engines/flycheck___init__.py:217
+#: searx/engines/__init__.py:210
msgid "Scores per result"
msgstr "Poäng per resultat"
-#: searx/engines/__init__.py:214 searx/engines/flycheck___init__.py:221
+#: searx/engines/__init__.py:214
msgid "Errors"
msgstr "Fel"
@@ -143,9 +142,15 @@ msgstr "{title}&nbsp;(FÖRÅLDRAD)"
msgid "This entry has been superseded by"
msgstr "Detta inlägg har ersatts av"
-#: searx/engines/pubmed.py:74
-msgid "No abstract is available for this publication."
-msgstr "Inget abstract är tillgänglig för denna publikation."
+#: searx/plugins/doai_rewrite.py:7
+msgid "DOAI rewrite"
+msgstr "DOAI-omskrivning"
+
+#: searx/plugins/doai_rewrite.py:8
+msgid ""
+"Avoid paywalls by redirecting to open-access versions of publications when "
+"available"
+msgstr "Undvik betalväggar genom att omdirigera till öppen tillgång versioner av publikationer när de är tillgängliga"
#: searx/plugins/https_rewrite.py:32
msgid "Rewrite HTTP links to HTTPS if possible"
@@ -159,16 +164,6 @@ msgstr "Oändlig bläddring"
msgid "Automatically load next page when scrolling to bottom of current page"
msgstr "Automatiskt ladda nästa sida när du bläddrar till botten av aktuell sida"
-#: searx/plugins/oa_doi_rewrite.py:9
-msgid "Open Access DOI rewrite"
-msgstr "Open Access DOI-omskrivning"
-
-#: searx/plugins/oa_doi_rewrite.py:10
-msgid ""
-"Avoid paywalls by redirecting to open-access versions of publications when "
-"available"
-msgstr "Undvik betalväggar genom att omdirigera till öppen tillgång versioner av publikationer när de är tillgängliga"
-
#: searx/plugins/open_results_on_new_tab.py:18
#: searx/templates/oscar/preferences.html:114
#: searx/templates/simple/preferences.html:149
@@ -331,8 +326,8 @@ msgstr "Metod"
#: searx/templates/courgette/preferences.html:63
#: searx/templates/legacy/preferences.html:64
#: searx/templates/oscar/preferences.html:86
-#: searx/templates/oscar/preferences.html:165
-#: searx/templates/oscar/preferences.html:173
+#: searx/templates/oscar/preferences.html:153
+#: searx/templates/oscar/preferences.html:161
#: searx/templates/simple/preferences.html:63
#: searx/templates/simple/preferences.html:90
msgid "SafeSearch"
@@ -404,8 +399,8 @@ msgstr "För tillfället används sökmotorer"
#: searx/templates/courgette/preferences.html:100
#: searx/templates/legacy/preferences.html:97
-#: searx/templates/oscar/preferences.html:162
-#: searx/templates/oscar/preferences.html:176
+#: searx/templates/oscar/preferences.html:150
+#: searx/templates/oscar/preferences.html:164
#: searx/templates/pix-art/preferences.html:53
#: searx/templates/simple/preferences.html:87
msgid "Engine name"
@@ -420,8 +415,8 @@ msgstr "Kategori"
#: searx/templates/courgette/preferences.html:113
#: searx/templates/legacy/preferences.html:99
#: searx/templates/legacy/preferences.html:110
-#: searx/templates/oscar/preferences.html:161
-#: searx/templates/oscar/preferences.html:177
+#: searx/templates/oscar/preferences.html:149
+#: searx/templates/oscar/preferences.html:165
#: searx/templates/pix-art/preferences.html:54
#: searx/templates/pix-art/preferences.html:64
#: searx/templates/simple/preferences.html:86
@@ -439,7 +434,7 @@ msgstr "Blockera"
#: searx/templates/courgette/preferences.html:122
#: searx/templates/legacy/preferences.html:119
-#: searx/templates/oscar/preferences.html:297
+#: searx/templates/oscar/preferences.html:285
#: searx/templates/pix-art/preferences.html:73
#: searx/templates/simple/preferences.html:180
msgid ""
@@ -449,7 +444,7 @@ msgstr "Dessa inställningar lagras i dina kakor, vilket gör att vi inte lagrar
#: searx/templates/courgette/preferences.html:124
#: searx/templates/legacy/preferences.html:121
-#: searx/templates/oscar/preferences.html:299
+#: searx/templates/oscar/preferences.html:287
#: searx/templates/pix-art/preferences.html:75
#: searx/templates/simple/preferences.html:182
msgid ""
@@ -459,7 +454,7 @@ msgstr "Dessa kakor tjänar din egen bekvämlighet, vi använder inte dessa kako
#: searx/templates/courgette/preferences.html:127
#: searx/templates/legacy/preferences.html:124
-#: searx/templates/oscar/preferences.html:305
+#: searx/templates/oscar/preferences.html:293
#: searx/templates/pix-art/preferences.html:78
#: searx/templates/simple/preferences.html:185
msgid "save"
@@ -467,14 +462,14 @@ msgstr "spara"
#: searx/templates/courgette/preferences.html:128
#: searx/templates/legacy/preferences.html:125
-#: searx/templates/oscar/preferences.html:307
+#: searx/templates/oscar/preferences.html:295
#: searx/templates/simple/preferences.html:186
msgid "Reset defaults"
msgstr "Återställ standardvärden"
#: searx/templates/courgette/preferences.html:129
#: searx/templates/legacy/preferences.html:126
-#: searx/templates/oscar/preferences.html:306
+#: searx/templates/oscar/preferences.html:294
#: searx/templates/pix-art/preferences.html:79
#: searx/templates/simple/preferences.html:187
msgid "back"
@@ -645,23 +640,23 @@ msgid "General"
msgstr "Allmänt"
#: searx/templates/oscar/preferences.html:14
-#: searx/templates/oscar/preferences.html:146
+#: searx/templates/oscar/preferences.html:134
#: searx/templates/simple/preferences.html:76
msgid "Engines"
msgstr "Sökmotorer"
#: searx/templates/oscar/preferences.html:15
-#: searx/templates/oscar/preferences.html:219
+#: searx/templates/oscar/preferences.html:207
msgid "Plugins"
msgstr "Insticksmoduler"
#: searx/templates/oscar/preferences.html:16
-#: searx/templates/oscar/preferences.html:245
+#: searx/templates/oscar/preferences.html:233
msgid "Answerers"
msgstr "Besvarare"
#: searx/templates/oscar/preferences.html:17
-#: searx/templates/oscar/preferences.html:272
+#: searx/templates/oscar/preferences.html:260
msgid "Cookies"
msgstr "Kakor"
@@ -712,88 +707,78 @@ msgstr "Välj stil för detta tema"
msgid "Style"
msgstr "Stil"
-#: searx/templates/oscar/preferences.html:122
-msgid "Open Access DOI resolver"
-msgstr "Open Access DOI-lösare"
-
-#: searx/templates/oscar/preferences.html:123
-msgid ""
-"Redirect to open-access versions of publications when available (plugin "
-"required)"
-msgstr "Omdirigera till öppna versioner av publikationer när de är tillgängliga (tillägg krävs)"
-
+#: searx/templates/oscar/preferences.html:151
#: searx/templates/oscar/preferences.html:163
-#: searx/templates/oscar/preferences.html:175
#: searx/templates/simple/preferences.html:88
msgid "Shortcut"
msgstr "Genväg"
-#: searx/templates/oscar/preferences.html:164
-#: searx/templates/oscar/preferences.html:174
+#: searx/templates/oscar/preferences.html:152
+#: searx/templates/oscar/preferences.html:162
msgid "Selected language"
msgstr "Valt språk"
-#: searx/templates/oscar/preferences.html:166
-#: searx/templates/oscar/preferences.html:172
+#: searx/templates/oscar/preferences.html:154
+#: searx/templates/oscar/preferences.html:160
#: searx/templates/simple/preferences.html:91
msgid "Time range"
msgstr "Tidsintervall"
-#: searx/templates/oscar/preferences.html:167
-#: searx/templates/oscar/preferences.html:171
+#: searx/templates/oscar/preferences.html:155
+#: searx/templates/oscar/preferences.html:159
#: searx/templates/simple/preferences.html:92
msgid "Avg. time"
msgstr "Genomsnittstid"
-#: searx/templates/oscar/preferences.html:168
-#: searx/templates/oscar/preferences.html:170
+#: searx/templates/oscar/preferences.html:156
+#: searx/templates/oscar/preferences.html:158
#: searx/templates/simple/preferences.html:93
msgid "Max time"
msgstr "Max tid"
-#: searx/templates/oscar/preferences.html:248
+#: searx/templates/oscar/preferences.html:236
msgid "This is the list of searx's instant answering modules."
msgstr "Detta är en lista över searxs snabbsvarsmoduler."
-#: searx/templates/oscar/preferences.html:252
+#: searx/templates/oscar/preferences.html:240
msgid "Name"
msgstr "Namn"
-#: searx/templates/oscar/preferences.html:253
+#: searx/templates/oscar/preferences.html:241
msgid "Keywords"
msgstr "Nyckelord"
-#: searx/templates/oscar/preferences.html:254
+#: searx/templates/oscar/preferences.html:242
msgid "Description"
msgstr "Beskrivning"
-#: searx/templates/oscar/preferences.html:255
+#: searx/templates/oscar/preferences.html:243
msgid "Examples"
msgstr "Exempel"
-#: searx/templates/oscar/preferences.html:275
+#: searx/templates/oscar/preferences.html:263
msgid ""
"This is the list of cookies and their values searx is storing on your "
"computer."
msgstr "Detta är en lista över kakor och deras värden som searx lagrar på din dator."
-#: searx/templates/oscar/preferences.html:276
+#: searx/templates/oscar/preferences.html:264
msgid "With that list, you can assess searx transparency."
msgstr "Med denna lista kan du bedöma searx öppenhet."
-#: searx/templates/oscar/preferences.html:281
+#: searx/templates/oscar/preferences.html:269
msgid "Cookie name"
msgstr "Kaknamn"
-#: searx/templates/oscar/preferences.html:282
+#: searx/templates/oscar/preferences.html:270
msgid "Value"
msgstr "Värde"
-#: searx/templates/oscar/preferences.html:301
+#: searx/templates/oscar/preferences.html:289
msgid "Search URL of the currently saved preferences"
msgstr "Sökadressen för de för nuvarande sparade inställningarna"
-#: searx/templates/oscar/preferences.html:301
+#: searx/templates/oscar/preferences.html:289
msgid ""
"Note: specifying custom settings in the search URL can reduce privacy by "
"leaking data to the clicked result sites."
@@ -835,22 +820,22 @@ msgstr "Närsom"
#: searx/templates/oscar/time-range.html:6
#: searx/templates/simple/time-range.html:6
msgid "Last day"
-msgstr "Senaste dag"
+msgstr "Igår"
#: searx/templates/oscar/time-range.html:9
#: searx/templates/simple/time-range.html:9
msgid "Last week"
-msgstr "Senaste vecka"
+msgstr "Förra veckan"
#: searx/templates/oscar/time-range.html:12
#: searx/templates/simple/time-range.html:12
msgid "Last month"
-msgstr "Senaste månad"
+msgstr "Förra månaden"
#: searx/templates/oscar/time-range.html:15
#: searx/templates/simple/time-range.html:15
msgid "Last year"
-msgstr "Senaste år"
+msgstr "Förra året"
#: searx/templates/oscar/messages/first_time.html:6
#: searx/templates/oscar/messages/no_data_available.html:3
diff --git a/searx/translations/ta/LC_MESSAGES/messages.mo b/searx/translations/ta/LC_MESSAGES/messages.mo
new file mode 100644
index 000000000..356472f65
--- /dev/null
+++ b/searx/translations/ta/LC_MESSAGES/messages.mo
Binary files differ
diff --git a/searx/translations/ta/LC_MESSAGES/messages.po b/searx/translations/ta/LC_MESSAGES/messages.po
new file mode 100644
index 000000000..dbb9aa2ae
--- /dev/null
+++ b/searx/translations/ta/LC_MESSAGES/messages.po
@@ -0,0 +1,1003 @@
+# Translations template for PROJECT.
+# Copyright (C) 2017 ORGANIZATION
+# This file is distributed under the same license as the PROJECT project.
+#
+# Translators:
+# Balaji Ravichandran <rbalajives@gmail.com>, 2019
+# gurulenin <guruleninn@gmail.com>, 2019
+# Manimaran.K <manimaraninam1027@gmail.com>, 2019
+# Nazigai Kallan <arn1291@gmail.com>, 2019
+# POORAJITH ST <gokulkannanst@gmail.com>, 2019
+# Prasanna Venkadesh <prasmailme@gmail.com>, 2019
+msgid ""
+msgstr ""
+"Project-Id-Version: searx\n"
+"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
+"POT-Creation-Date: 2017-10-07 19:18+0200\n"
+"PO-Revision-Date: 2019-02-23 17:39+0000\n"
+"Last-Translator: Noémi Ványi <sitbackandwait@gmail.com>\n"
+"Language-Team: Tamil (http://www.transifex.com/asciimoo/searx/language/ta/)\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Generated-By: Babel 2.3.4\n"
+"Language: ta\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+
+#: searx/search.py:137 searx/search.py:182
+msgid "timeout"
+msgstr "காலாவதியானது"
+
+#: searx/search.py:144
+msgid "request exception"
+msgstr ""
+
+#: searx/search.py:151
+msgid "unexpected crash"
+msgstr "எதிர்பாராத முடக்கம்"
+
+#: searx/webapp.py:135
+msgid "files"
+msgstr "கோப்புகள்"
+
+#: searx/webapp.py:136
+msgid "general"
+msgstr "பொதுத் தேடல்"
+
+#: searx/webapp.py:137
+msgid "music"
+msgstr "இசை"
+
+#: searx/webapp.py:138
+msgid "social media"
+msgstr "சமூக தளங்கள்"
+
+#: searx/webapp.py:139
+msgid "images"
+msgstr "படங்கள்"
+
+#: searx/webapp.py:140
+msgid "videos"
+msgstr "காணொளிகள்"
+
+#: searx/webapp.py:141
+msgid "it"
+msgstr ""
+
+#: searx/webapp.py:142
+msgid "news"
+msgstr "செய்திகள்"
+
+#: searx/webapp.py:143
+msgid "map"
+msgstr "வரைப்படம்"
+
+#: searx/webapp.py:144
+msgid "science"
+msgstr "அறிவியல்"
+
+#: searx/webapp.py:398 searx/webapp.py:653
+msgid "Invalid settings, please edit your preferences"
+msgstr "ஏற்க முடியாத அமைப்பு,உங்கள் விருப்பத்தை தொகுக்கவும்"
+
+#: searx/webapp.py:410
+msgid "Invalid settings"
+msgstr "ஏற்கமுடியாத அமைப்பு"
+
+#: searx/webapp.py:444 searx/webapp.py:488
+msgid "search error"
+msgstr "தேடல் பிழை"
+
+#: searx/webapp.py:525
+msgid "{minutes} minute(s) ago"
+msgstr "{minutes} நிமிடங்களுக்கு முன்னால்"
+
+#: searx/webapp.py:527
+msgid "{hours} hour(s), {minutes} minute(s) ago"
+msgstr "{hours} மணிநேரம், {minutes} நிமிடங்களுக்கு முன்னால்"
+
+#: searx/answerers/random/answerer.py:53
+msgid "Random value generator"
+msgstr "சீரற்ற மதிப்பு உருவாக்கி"
+
+#: searx/answerers/random/answerer.py:54
+msgid "Generate different random values"
+msgstr "வெவ்வாறான சீரற்ற மதிப்புகளை உருவாக்கு"
+
+#: searx/answerers/statistics/answerer.py:53
+msgid "Statistics functions"
+msgstr "புள்ளியியல் செயல்பாடுகள்"
+
+#: searx/answerers/statistics/answerer.py:54
+msgid "Compute {functions} of the arguments"
+msgstr ""
+
+#: searx/engines/__init__.py:194
+msgid "Engine time (sec)"
+msgstr "எந்திர நேரம் (நொடிகளில்)"
+
+#: searx/engines/__init__.py:198
+msgid "Page loads (sec)"
+msgstr ""
+
+#: searx/engines/__init__.py:202 searx/templates/oscar/results.html:95
+#: searx/templates/simple/results.html:20
+msgid "Number of results"
+msgstr "முடிவுகளின் எண்ணிக்கை"
+
+#: searx/engines/__init__.py:206
+msgid "Scores"
+msgstr "மதிப்புகள்"
+
+#: searx/engines/__init__.py:210
+msgid "Scores per result"
+msgstr "தேடல் மதிப்பு"
+
+#: searx/engines/__init__.py:214
+msgid "Errors"
+msgstr "பிழைகள்"
+
+#: searx/engines/pdbe.py:87
+msgid "{title}&nbsp;(OBSOLETE)"
+msgstr ""
+
+#: searx/engines/pdbe.py:91
+msgid "This entry has been superseded by"
+msgstr ""
+
+#: searx/plugins/doai_rewrite.py:7
+msgid "DOAI rewrite"
+msgstr ""
+
+#: searx/plugins/doai_rewrite.py:8
+msgid ""
+"Avoid paywalls by redirecting to open-access versions of publications when "
+"available"
+msgstr "பணம் பறிக்கும் தளங்களை தவிர்த்து முடிந்த வரையில் open-access பதிப்புகளை வழங்கும் தளங்களுக்கு செல்லவும்"
+
+#: searx/plugins/https_rewrite.py:32
+msgid "Rewrite HTTP links to HTTPS if possible"
+msgstr "முடிந்தால் HTTP இணைப்புகளை HTTPS இணைப்புகளாக மாற்றவும்"
+
+#: searx/plugins/infinite_scroll.py:3
+msgid "Infinite scroll"
+msgstr "தொடர் பட்டியல்"
+
+#: searx/plugins/infinite_scroll.py:4
+msgid "Automatically load next page when scrolling to bottom of current page"
+msgstr "பக்கத்தின் முடிவை அடைந்தவுடன் தானாக அடுத்த பக்கததிற்கு செல்லவும்"
+
+#: searx/plugins/open_results_on_new_tab.py:18
+#: searx/templates/oscar/preferences.html:114
+#: searx/templates/simple/preferences.html:149
+msgid "Open result links on new browser tabs"
+msgstr "இணைப்புகளை புதிய Tab-ல் திறக்கவும்"
+
+#: searx/plugins/open_results_on_new_tab.py:19
+msgid ""
+"Results are opened in the same window by default. This plugin overwrites the"
+" default behaviour to open links on new tabs/windows. (JavaScript required)"
+msgstr ""
+
+#: searx/plugins/search_on_category_select.py:18
+msgid "Search on category select"
+msgstr "தேர்ந்தெடுத்தப் பிரிவில் தேடுக"
+
+#: searx/plugins/search_on_category_select.py:19
+msgid ""
+"Perform search immediately if a category selected. Disable to select "
+"multiple categories. (JavaScript required)"
+msgstr "பிரிவு தேர்வு செய்யப்பட்டால் தேடல் உடனடியாகச் செயற்படுத்தும். பல பிரிவுகளைத் தேர்வு செய்ய முடக்கவும். (ஜாவா ஸ்கிரிப்ட் தேவைப்படும்)"
+
+#: searx/plugins/self_info.py:20
+msgid ""
+"Displays your IP if the query is \"ip\" and your user agent if the query "
+"contains \"user agent\"."
+msgstr "\"ip\" என்று தேடினால் உங்கள் ip முகவரியையும், \"user agent\" என்று தேடினால் உங்கள் user-agent-ம் காட்டப்படும்."
+
+#: searx/plugins/tracker_url_remover.py:26
+msgid "Tracker URL remover"
+msgstr "உளவுப் பார்க்கும் வலைதள முகவரி நீக்கி"
+
+#: searx/plugins/tracker_url_remover.py:27
+msgid "Remove trackers arguments from the returned URL"
+msgstr "உங்களை உளவு பார்த்து பின்தொடர பயன்படும் எழுத்துக்களை வலைதள முகவரியிலிருந்து நீக்குக"
+
+#: searx/plugins/vim_hotkeys.py:3
+msgid "Vim-like hotkeys"
+msgstr "Vim போன்ற hotkeys"
+
+#: searx/plugins/vim_hotkeys.py:4
+msgid ""
+"Navigate search results with Vim-like hotkeys (JavaScript required). Press "
+"\"h\" key on main or result page to get help."
+msgstr ""
+
+#: searx/templates/courgette/404.html:4 searx/templates/legacy/404.html:4
+#: searx/templates/oscar/404.html:4 searx/templates/pix-art/404.html:4
+#: searx/templates/simple/404.html:4
+msgid "Page not found"
+msgstr "பக்கம் கிடைக்கவில்லை"
+
+#: searx/templates/courgette/404.html:6 searx/templates/legacy/404.html:6
+#: searx/templates/oscar/404.html:6 searx/templates/pix-art/404.html:6
+#: searx/templates/simple/404.html:6
+#, python-format
+msgid "Go to %(search_page)s."
+msgstr "%(search_page)s-க்கு செல்"
+
+#: searx/templates/courgette/404.html:6 searx/templates/legacy/404.html:6
+#: searx/templates/oscar/404.html:6 searx/templates/pix-art/404.html:6
+#: searx/templates/simple/404.html:6
+msgid "search page"
+msgstr "தேடல் பக்கம்"
+
+#: searx/templates/courgette/index.html:9
+#: searx/templates/courgette/index.html:13
+#: searx/templates/courgette/results.html:5
+#: searx/templates/legacy/index.html:8 searx/templates/legacy/index.html:12
+#: searx/templates/oscar/navbar.html:7
+#: searx/templates/oscar/preferences.html:3
+#: searx/templates/pix-art/index.html:8
+msgid "preferences"
+msgstr "விருப்பத்தேர்வு"
+
+#: searx/templates/courgette/index.html:11
+#: searx/templates/legacy/index.html:10 searx/templates/oscar/about.html:2
+#: searx/templates/oscar/navbar.html:6 searx/templates/pix-art/index.html:7
+msgid "about"
+msgstr "பற்றி"
+
+#: searx/templates/courgette/preferences.html:5
+#: searx/templates/legacy/preferences.html:5
+#: searx/templates/oscar/preferences.html:8
+#: searx/templates/pix-art/preferences.html:5
+#: searx/templates/simple/preferences.html:26
+msgid "Preferences"
+msgstr "விருப்பத்தேர்வு"
+
+#: searx/templates/courgette/preferences.html:9
+#: searx/templates/legacy/preferences.html:9
+#: searx/templates/oscar/preferences.html:33
+#: searx/templates/oscar/preferences.html:35
+#: searx/templates/simple/preferences.html:34
+msgid "Default categories"
+msgstr "இயல்புநிலை பிரிவுகள்"
+
+#: searx/templates/courgette/preferences.html:13
+#: searx/templates/legacy/preferences.html:14
+#: searx/templates/oscar/preferences.html:41
+#: searx/templates/pix-art/preferences.html:9
+#: searx/templates/simple/preferences.html:39
+#: searx/templates/simple/preferences.html:163
+msgid "Search language"
+msgstr "தேடல் மொழி"
+
+#: searx/templates/courgette/preferences.html:16
+#: searx/templates/legacy/preferences.html:17
+#: searx/templates/oscar/languages.html:6
+#: searx/templates/pix-art/preferences.html:12
+#: searx/templates/simple/languages.html:2
+#: searx/templates/simple/preferences.html:42
+msgid "Default language"
+msgstr "இயல்புநிலை மொழி"
+
+#: searx/templates/courgette/preferences.html:24
+#: searx/templates/legacy/preferences.html:25
+#: searx/templates/oscar/preferences.html:47
+#: searx/templates/pix-art/preferences.html:20
+#: searx/templates/simple/preferences.html:120
+msgid "Interface language"
+msgstr "முகப்பின் மொழி"
+
+#: searx/templates/courgette/preferences.html:34
+#: searx/templates/legacy/preferences.html:35
+#: searx/templates/oscar/preferences.html:57
+#: searx/templates/simple/preferences.html:51
+msgid "Autocomplete"
+msgstr "நிறைவுத் தானியக்கம்"
+
+#: searx/templates/courgette/preferences.html:45
+#: searx/templates/legacy/preferences.html:46
+#: searx/templates/oscar/preferences.html:68
+#: searx/templates/simple/preferences.html:166
+msgid "Image proxy"
+msgstr "பட நிகராளி"
+
+#: searx/templates/courgette/preferences.html:48
+#: searx/templates/legacy/preferences.html:49
+#: searx/templates/oscar/preferences.html:72
+#: searx/templates/simple/preferences.html:169
+msgid "Enabled"
+msgstr "செயல்படுத்து"
+
+#: searx/templates/courgette/preferences.html:49
+#: searx/templates/legacy/preferences.html:50
+#: searx/templates/oscar/preferences.html:73
+#: searx/templates/simple/preferences.html:170
+msgid "Disabled"
+msgstr "நிறுத்தப்பட்டது"
+
+#: searx/templates/courgette/preferences.html:54
+#: searx/templates/legacy/preferences.html:55
+#: searx/templates/oscar/preferences.html:77
+#: searx/templates/pix-art/preferences.html:30
+#: searx/templates/simple/preferences.html:156
+msgid "Method"
+msgstr "முறை"
+
+#: searx/templates/courgette/preferences.html:63
+#: searx/templates/legacy/preferences.html:64
+#: searx/templates/oscar/preferences.html:86
+#: searx/templates/oscar/preferences.html:153
+#: searx/templates/oscar/preferences.html:161
+#: searx/templates/simple/preferences.html:63
+#: searx/templates/simple/preferences.html:90
+msgid "SafeSearch"
+msgstr "பாதுகாப்பன தேடல்"
+
+#: searx/templates/courgette/preferences.html:66
+#: searx/templates/legacy/preferences.html:67
+#: searx/templates/oscar/preferences.html:90
+#: searx/templates/simple/preferences.html:66
+msgid "Strict"
+msgstr ""
+
+#: searx/templates/courgette/preferences.html:67
+#: searx/templates/legacy/preferences.html:68
+#: searx/templates/oscar/preferences.html:91
+#: searx/templates/simple/preferences.html:67
+msgid "Moderate"
+msgstr "மிதமான"
+
+#: searx/templates/courgette/preferences.html:68
+#: searx/templates/legacy/preferences.html:69
+#: searx/templates/oscar/preferences.html:92
+#: searx/templates/simple/preferences.html:68
+msgid "None"
+msgstr "எதுவுமில்லை"
+
+#: searx/templates/courgette/preferences.html:73
+#: searx/templates/legacy/preferences.html:74
+#: searx/templates/oscar/preferences.html:96
+#: searx/templates/pix-art/preferences.html:39
+#: searx/templates/simple/preferences.html:131
+msgid "Themes"
+msgstr ""
+
+#: searx/templates/courgette/preferences.html:83
+msgid "Color"
+msgstr "வண்ணம்"
+
+#: searx/templates/courgette/preferences.html:86
+msgid "Blue (default)"
+msgstr "நீலம் (இயல்பான)"
+
+#: searx/templates/courgette/preferences.html:87
+msgid "Violet"
+msgstr "ஊதா"
+
+#: searx/templates/courgette/preferences.html:88
+msgid "Green"
+msgstr "பச்சை"
+
+#: searx/templates/courgette/preferences.html:89
+msgid "Cyan"
+msgstr "மயில் நிறம்"
+
+#: searx/templates/courgette/preferences.html:90
+msgid "Orange"
+msgstr "ஆரஞ்சு"
+
+#: searx/templates/courgette/preferences.html:91
+msgid "Red"
+msgstr "சிவப்பு"
+
+#: searx/templates/courgette/preferences.html:96
+#: searx/templates/legacy/preferences.html:93
+#: searx/templates/pix-art/preferences.html:49
+#: searx/templates/simple/preferences.html:77
+msgid "Currently used search engines"
+msgstr "தற்போது பயன்படுத்திய தேடுபொறிகள்"
+
+#: searx/templates/courgette/preferences.html:100
+#: searx/templates/legacy/preferences.html:97
+#: searx/templates/oscar/preferences.html:150
+#: searx/templates/oscar/preferences.html:164
+#: searx/templates/pix-art/preferences.html:53
+#: searx/templates/simple/preferences.html:87
+msgid "Engine name"
+msgstr "எந்திரத்தின் பெயர்"
+
+#: searx/templates/courgette/preferences.html:101
+#: searx/templates/legacy/preferences.html:98
+msgid "Category"
+msgstr "வகுப்பு"
+
+#: searx/templates/courgette/preferences.html:102
+#: searx/templates/courgette/preferences.html:113
+#: searx/templates/legacy/preferences.html:99
+#: searx/templates/legacy/preferences.html:110
+#: searx/templates/oscar/preferences.html:149
+#: searx/templates/oscar/preferences.html:165
+#: searx/templates/pix-art/preferences.html:54
+#: searx/templates/pix-art/preferences.html:64
+#: searx/templates/simple/preferences.html:86
+msgid "Allow"
+msgstr "அனுமதி"
+
+#: searx/templates/courgette/preferences.html:102
+#: searx/templates/courgette/preferences.html:114
+#: searx/templates/legacy/preferences.html:99
+#: searx/templates/legacy/preferences.html:111
+#: searx/templates/pix-art/preferences.html:54
+#: searx/templates/pix-art/preferences.html:65
+msgid "Block"
+msgstr "தடை"
+
+#: searx/templates/courgette/preferences.html:122
+#: searx/templates/legacy/preferences.html:119
+#: searx/templates/oscar/preferences.html:285
+#: searx/templates/pix-art/preferences.html:73
+#: searx/templates/simple/preferences.html:180
+msgid ""
+"These settings are stored in your cookies, this allows us not to store this "
+"data about you."
+msgstr ""
+
+#: searx/templates/courgette/preferences.html:124
+#: searx/templates/legacy/preferences.html:121
+#: searx/templates/oscar/preferences.html:287
+#: searx/templates/pix-art/preferences.html:75
+#: searx/templates/simple/preferences.html:182
+msgid ""
+"These cookies serve your sole convenience, we don't use these cookies to "
+"track you."
+msgstr "இந்த நினைவிகள் உங்களின் வசதிக்காக மட்டுமே. இந்த நினைவிகள் உங்களை உளவு பார்க்காது."
+
+#: searx/templates/courgette/preferences.html:127
+#: searx/templates/legacy/preferences.html:124
+#: searx/templates/oscar/preferences.html:293
+#: searx/templates/pix-art/preferences.html:78
+#: searx/templates/simple/preferences.html:185
+msgid "save"
+msgstr "சேமி"
+
+#: searx/templates/courgette/preferences.html:128
+#: searx/templates/legacy/preferences.html:125
+#: searx/templates/oscar/preferences.html:295
+#: searx/templates/simple/preferences.html:186
+msgid "Reset defaults"
+msgstr "இயல்புநிலைக்குத் திருப்பவும்"
+
+#: searx/templates/courgette/preferences.html:129
+#: searx/templates/legacy/preferences.html:126
+#: searx/templates/oscar/preferences.html:294
+#: searx/templates/pix-art/preferences.html:79
+#: searx/templates/simple/preferences.html:187
+msgid "back"
+msgstr "பின்செல்"
+
+#: searx/templates/courgette/results.html:12
+#: searx/templates/legacy/results.html:13
+#: searx/templates/oscar/results.html:136
+#: searx/templates/simple/results.html:58
+msgid "Search URL"
+msgstr "இத்தேடலின் முகவரி"
+
+#: searx/templates/courgette/results.html:16
+#: searx/templates/legacy/results.html:17
+#: searx/templates/oscar/results.html:141
+#: searx/templates/simple/results.html:62
+msgid "Download results"
+msgstr "தேடல் பதில்களை தரவிறக்கு"
+
+#: searx/templates/courgette/results.html:34
+#: searx/templates/legacy/results.html:35
+#: searx/templates/simple/results.html:10
+msgid "Answers"
+msgstr "பதில்கள்"
+
+#: searx/templates/courgette/results.html:42
+#: searx/templates/legacy/results.html:43
+#: searx/templates/oscar/results.html:116
+#: searx/templates/simple/results.html:42
+msgid "Suggestions"
+msgstr "பரிந்துரைகள்"
+
+#: searx/templates/courgette/results.html:70
+#: searx/templates/legacy/results.html:81
+#: searx/templates/oscar/results.html:68 searx/templates/oscar/results.html:78
+#: searx/templates/simple/results.html:130
+msgid "previous page"
+msgstr "முந்தைய பக்கம்"
+
+#: searx/templates/courgette/results.html:81
+#: searx/templates/legacy/results.html:92
+#: searx/templates/oscar/results.html:62 searx/templates/oscar/results.html:84
+#: searx/templates/simple/results.html:145
+msgid "next page"
+msgstr "அடுத்தப் பக்கம்"
+
+#: searx/templates/courgette/search.html:3
+#: searx/templates/legacy/search.html:3 searx/templates/oscar/search.html:6
+#: searx/templates/oscar/search_full.html:9
+#: searx/templates/pix-art/search.html:3 searx/templates/simple/search.html:4
+msgid "Search for..."
+msgstr "எதைப்பற்றி தேட வேண்டும்?"
+
+#: searx/templates/courgette/stats.html:4 searx/templates/legacy/stats.html:4
+#: searx/templates/oscar/stats.html:5 searx/templates/pix-art/stats.html:4
+#: searx/templates/simple/stats.html:7
+msgid "Engine stats"
+msgstr "எந்திரத்தின் புள்ளி விவரங்கள்"
+
+#: searx/templates/courgette/result_templates/images.html:4
+#: searx/templates/legacy/result_templates/images.html:4
+#: searx/templates/pix-art/result_templates/images.html:4
+msgid "original context"
+msgstr "உண்மையான சூழல்"
+
+#: searx/templates/courgette/result_templates/torrent.html:7
+#: searx/templates/legacy/result_templates/torrent.html:11
+#: searx/templates/oscar/result_templates/torrent.html:6
+#: searx/templates/simple/result_templates/torrent.html:9
+msgid "Seeder"
+msgstr "பகிர்பவர்"
+
+#: searx/templates/courgette/result_templates/torrent.html:7
+#: searx/templates/legacy/result_templates/torrent.html:11
+#: searx/templates/oscar/result_templates/torrent.html:6
+#: searx/templates/simple/result_templates/torrent.html:9
+msgid "Leecher"
+msgstr "எடுப்பவர்"
+
+#: searx/templates/courgette/result_templates/torrent.html:9
+#: searx/templates/legacy/result_templates/torrent.html:9
+#: searx/templates/oscar/macros.html:23
+#: searx/templates/simple/result_templates/torrent.html:6
+msgid "magnet link"
+msgstr "காந்த இணைப்பு"
+
+#: searx/templates/courgette/result_templates/torrent.html:10
+#: searx/templates/legacy/result_templates/torrent.html:10
+#: searx/templates/oscar/macros.html:24
+#: searx/templates/simple/result_templates/torrent.html:7
+msgid "torrent file"
+msgstr "டொரன்ட் கோப்பு"
+
+#: searx/templates/legacy/categories.html:8
+#: searx/templates/simple/categories.html:6
+msgid "Click on the magnifier to perform search"
+msgstr "உருப்பெருக்கியைச் சொடுக்கி தேடலைத் தொடங்கவும்"
+
+#: searx/templates/legacy/preferences.html:84
+#: searx/templates/oscar/preferences.html:113
+#: searx/templates/simple/preferences.html:142
+msgid "Results on new tabs"
+msgstr "தேடல் முடிவுகள் புதிய Tab-ல்"
+
+#: searx/templates/legacy/preferences.html:87
+#: searx/templates/oscar/preferences.html:117
+#: searx/templates/simple/preferences.html:145
+msgid "On"
+msgstr "இயக்கு"
+
+#: searx/templates/legacy/preferences.html:88
+#: searx/templates/oscar/preferences.html:118
+#: searx/templates/simple/preferences.html:146
+msgid "Off"
+msgstr "அமர்த்து"
+
+#: searx/templates/legacy/result_templates/code.html:3
+#: searx/templates/legacy/result_templates/default.html:3
+#: searx/templates/legacy/result_templates/map.html:9
+#: searx/templates/oscar/macros.html:34 searx/templates/oscar/macros.html:48
+#: searx/templates/simple/macros.html:43
+msgid "cached"
+msgstr ""
+
+#: searx/templates/oscar/advanced.html:4
+msgid "Advanced settings"
+msgstr "மேம்பட்ட அமைப்புகள்"
+
+#: searx/templates/oscar/base.html:62
+#: searx/templates/oscar/messages/first_time.html:4
+#: searx/templates/oscar/messages/save_settings_successfull.html:5
+#: searx/templates/oscar/messages/unknow_error.html:5
+msgid "Close"
+msgstr "மூடு"
+
+#: searx/templates/oscar/base.html:64
+#: searx/templates/oscar/messages/no_results.html:4
+#: searx/templates/simple/messages/no_results.html:4
+#: searx/templates/simple/results.html:25
+msgid "Error!"
+msgstr "பிழை!"
+
+#: searx/templates/oscar/base.html:90 searx/templates/simple/base.html:55
+msgid "Powered by"
+msgstr ""
+
+#: searx/templates/oscar/base.html:90 searx/templates/simple/base.html:55
+msgid "a privacy-respecting, hackable metasearch engine"
+msgstr "உங்கள் அகவுரிமையை மதிக்கும் மாற்றியமைக்ககூடிய ஒரு தேடல் எந்திரம்"
+
+#: searx/templates/oscar/macros.html:36 searx/templates/oscar/macros.html:50
+#: searx/templates/simple/macros.html:43
+msgid "proxied"
+msgstr ""
+
+#: searx/templates/oscar/macros.html:92
+msgid "supported"
+msgstr "ஆதரவுண்டு"
+
+#: searx/templates/oscar/macros.html:96
+msgid "not supported"
+msgstr "ஆதரவில்லை"
+
+#: searx/templates/oscar/preferences.html:13
+#: searx/templates/oscar/preferences.html:22
+#: searx/templates/simple/preferences.html:32
+msgid "General"
+msgstr "பொது"
+
+#: searx/templates/oscar/preferences.html:14
+#: searx/templates/oscar/preferences.html:134
+#: searx/templates/simple/preferences.html:76
+msgid "Engines"
+msgstr "எந்திரங்கள்"
+
+#: searx/templates/oscar/preferences.html:15
+#: searx/templates/oscar/preferences.html:207
+msgid "Plugins"
+msgstr "நீட்சி"
+
+#: searx/templates/oscar/preferences.html:16
+#: searx/templates/oscar/preferences.html:233
+msgid "Answerers"
+msgstr "பதில்கள்"
+
+#: searx/templates/oscar/preferences.html:17
+#: searx/templates/oscar/preferences.html:260
+msgid "Cookies"
+msgstr "நினைவிகள்"
+
+#: searx/templates/oscar/preferences.html:42
+#: searx/templates/simple/preferences.html:48
+msgid "What language do you prefer for search?"
+msgstr "தேடலுக்கு எந்த மொழியை விரும்புகிறீர்கள்?"
+
+#: searx/templates/oscar/preferences.html:48
+#: searx/templates/simple/preferences.html:128
+msgid "Change the language of the layout"
+msgstr "வடிவமைப்பின் மொழியை மாற்று"
+
+#: searx/templates/oscar/preferences.html:58
+#: searx/templates/simple/preferences.html:60
+msgid "Find stuff as you type"
+msgstr "உள்ளிடும் போதே தேடு"
+
+#: searx/templates/oscar/preferences.html:69
+#: searx/templates/simple/preferences.html:173
+msgid "Proxying image results through searx"
+msgstr ""
+
+#: searx/templates/oscar/preferences.html:78
+msgid ""
+"Change how forms are submited, <a "
+"href=\"http://en.wikipedia.org/wiki/Hypertext_Transfer_Protocol#Request_methods\""
+" rel=\"external\">learn more about request methods</a>"
+msgstr ""
+
+#: searx/templates/oscar/preferences.html:87
+#: searx/templates/simple/preferences.html:71
+msgid "Filter content"
+msgstr ""
+
+#: searx/templates/oscar/preferences.html:97
+#: searx/templates/simple/preferences.html:139
+msgid "Change searx layout"
+msgstr "searx-ன் வடிவமைப்பை மாற்று"
+
+#: searx/templates/oscar/preferences.html:106
+#: searx/templates/oscar/preferences.html:111
+msgid "Choose style for this theme"
+msgstr ""
+
+#: searx/templates/oscar/preferences.html:106
+#: searx/templates/oscar/preferences.html:111
+msgid "Style"
+msgstr ""
+
+#: searx/templates/oscar/preferences.html:151
+#: searx/templates/oscar/preferences.html:163
+#: searx/templates/simple/preferences.html:88
+msgid "Shortcut"
+msgstr ""
+
+#: searx/templates/oscar/preferences.html:152
+#: searx/templates/oscar/preferences.html:162
+msgid "Selected language"
+msgstr "தேர்வு செய்யப்பட்ட மொழி"
+
+#: searx/templates/oscar/preferences.html:154
+#: searx/templates/oscar/preferences.html:160
+#: searx/templates/simple/preferences.html:91
+msgid "Time range"
+msgstr "நேர வரம்பு"
+
+#: searx/templates/oscar/preferences.html:155
+#: searx/templates/oscar/preferences.html:159
+#: searx/templates/simple/preferences.html:92
+msgid "Avg. time"
+msgstr "சராசரி நேரம்"
+
+#: searx/templates/oscar/preferences.html:156
+#: searx/templates/oscar/preferences.html:158
+#: searx/templates/simple/preferences.html:93
+msgid "Max time"
+msgstr "அதிகபட்ச நேரம்"
+
+#: searx/templates/oscar/preferences.html:236
+msgid "This is the list of searx's instant answering modules."
+msgstr "இது searx-ன் உடனடி பதிலளிக்கும் தொகுதிகளின் பட்டியல்."
+
+#: searx/templates/oscar/preferences.html:240
+msgid "Name"
+msgstr "பெயர்"
+
+#: searx/templates/oscar/preferences.html:241
+msgid "Keywords"
+msgstr "குறிப்புச்சொற்கள்"
+
+#: searx/templates/oscar/preferences.html:242
+msgid "Description"
+msgstr "விளக்கம்"
+
+#: searx/templates/oscar/preferences.html:243
+msgid "Examples"
+msgstr "எடுத்துக்காட்டுகள்"
+
+#: searx/templates/oscar/preferences.html:263
+msgid ""
+"This is the list of cookies and their values searx is storing on your "
+"computer."
+msgstr "இந்தப் பட்டியல் உங்கள் கணினியில் சேமிக்கப்பட்டுள்ள searx-ன் நினைவிகள் மற்றும் அதனுடைய மதிப்புகள்."
+
+#: searx/templates/oscar/preferences.html:264
+msgid "With that list, you can assess searx transparency."
+msgstr "இந்தப் பட்டியல் மூலம் நீங்கள் searx-ன் வெளிப்படைத்தன்மையை மதிப்பிடலாம்."
+
+#: searx/templates/oscar/preferences.html:269
+msgid "Cookie name"
+msgstr "நினைவியின் பெயர்"
+
+#: searx/templates/oscar/preferences.html:270
+msgid "Value"
+msgstr "மதிப்பு"
+
+#: searx/templates/oscar/preferences.html:289
+msgid "Search URL of the currently saved preferences"
+msgstr "தற்போது சேமிக்கப்பட்ட விருப்பத்தேர்வுகளில் வலைதள முகவரியைத் தேடு"
+
+#: searx/templates/oscar/preferences.html:289
+msgid ""
+"Note: specifying custom settings in the search URL can reduce privacy by "
+"leaking data to the clicked result sites."
+msgstr "குறிப்பு : தேடல் வலைதள முகவரியில் குறிப்பிட்ட விருப்ப அமைப்புகள், கிடைத்தத் தளங்களை சொடுக்குவதன் மூலம் தரவுகள் கசிவதால் அகவுரிமை குறையும்."
+
+#: searx/templates/oscar/results.html:17
+msgid "Search results"
+msgstr "தேடல் முடிவுகள்"
+
+#: searx/templates/oscar/results.html:21
+#: searx/templates/simple/results.html:84
+msgid "Try searching for:"
+msgstr "இதுபோல் தேடி பார்க்கவும்"
+
+#: searx/templates/oscar/results.html:100
+#: searx/templates/simple/results.html:25
+msgid "Engines cannot retrieve results"
+msgstr "எந்திரங்களால் பதில்களை பெற முடியவில்லை"
+
+#: searx/templates/oscar/results.html:131
+msgid "Links"
+msgstr "இணைப்புகள்"
+
+#: searx/templates/oscar/search.html:8
+#: searx/templates/oscar/search_full.html:11
+#: searx/templates/simple/search.html:5
+msgid "Start search"
+msgstr "தேடலை துவங்கு"
+
+#: searx/templates/oscar/stats.html:2
+msgid "stats"
+msgstr "புள்ளி விவரங்கள்"
+
+#: searx/templates/oscar/time-range.html:3
+#: searx/templates/simple/time-range.html:3
+msgid "Anytime"
+msgstr "எந்நேரமும்"
+
+#: searx/templates/oscar/time-range.html:6
+#: searx/templates/simple/time-range.html:6
+msgid "Last day"
+msgstr "நேற்று"
+
+#: searx/templates/oscar/time-range.html:9
+#: searx/templates/simple/time-range.html:9
+msgid "Last week"
+msgstr "கடந்த வாரம்"
+
+#: searx/templates/oscar/time-range.html:12
+#: searx/templates/simple/time-range.html:12
+msgid "Last month"
+msgstr "கடந்த மாதம்"
+
+#: searx/templates/oscar/time-range.html:15
+#: searx/templates/simple/time-range.html:15
+msgid "Last year"
+msgstr "கடந்த ஆண்டு"
+
+#: searx/templates/oscar/messages/first_time.html:6
+#: searx/templates/oscar/messages/no_data_available.html:3
+msgid "Heads up!"
+msgstr "வாழ்த்துக்கள்!"
+
+#: searx/templates/oscar/messages/first_time.html:7
+msgid "It look like you are using searx first time."
+msgstr "நீங்கள் இதை பயன்படுத்துவது இதுதான் முதல்முறை போலுள்ளது."
+
+#: searx/templates/oscar/messages/no_cookies.html:3
+msgid "Information!"
+msgstr "தகவல்!"
+
+#: searx/templates/oscar/messages/no_cookies.html:4
+msgid "currently, there are no cookies defined."
+msgstr "தற்போது எந்தவொரு நினைவிகளும் வரையறுக்கப்படவில்லை."
+
+#: searx/templates/oscar/messages/no_data_available.html:4
+msgid "There is currently no data available. "
+msgstr "தற்போது தரவுகள் ஏதும் இல்லை."
+
+#: searx/templates/oscar/messages/no_results.html:4
+#: searx/templates/simple/messages/no_results.html:4
+msgid "Engines cannot retrieve results."
+msgstr "எந்திரத்தால் பதில்களை மீட்டெடுக்க இயலவில்லை."
+
+#: searx/templates/oscar/messages/no_results.html:10
+#: searx/templates/simple/messages/no_results.html:10
+msgid "Please, try again later or find another searx instance."
+msgstr "தயவுசெய்து பின்னர் முயற்சிக்கவும் அல்லது வேறொரு searx-யைத் தேடவும்"
+
+#: searx/templates/oscar/messages/no_results.html:14
+#: searx/templates/simple/messages/no_results.html:14
+msgid "Sorry!"
+msgstr "மன்னிக்கவும்!"
+
+#: searx/templates/oscar/messages/no_results.html:15
+#: searx/templates/simple/messages/no_results.html:15
+msgid ""
+"we didn't find any results. Please use another query or search in more "
+"categories."
+msgstr "எங்களால் எந்ததொரு பதில்களையும் தேட இயலவில்லை. தயவு செய்து வேறொரு வினவலில் அல்லது கூடுதலானப் பிரிவுகளில் தேடவும்."
+
+#: searx/templates/oscar/messages/save_settings_successfull.html:7
+msgid "Well done!"
+msgstr "சபாஷ்!"
+
+#: searx/templates/oscar/messages/save_settings_successfull.html:8
+msgid "Settings saved successfully."
+msgstr "அமைப்புகள் வெற்றிகரமாக சேமிக்கப்பட்டது."
+
+#: searx/templates/oscar/messages/unknow_error.html:7
+msgid "Oh snap!"
+msgstr "மன்னிக்கவும்!"
+
+#: searx/templates/oscar/messages/unknow_error.html:8
+msgid "Something went wrong."
+msgstr "ஏதோ தவறு நடந்துள்ளது."
+
+#: searx/templates/oscar/result_templates/default.html:7
+#: searx/templates/simple/result_templates/default.html:6
+msgid "show media"
+msgstr "ஊடகத்தைக் காட்டு"
+
+#: searx/templates/oscar/result_templates/default.html:7
+#: searx/templates/simple/result_templates/default.html:6
+msgid "hide media"
+msgstr "ஊடகத்தை மறை"
+
+#: searx/templates/oscar/result_templates/images.html:30
+msgid "Get image"
+msgstr "படத்தைப் பெறு"
+
+#: searx/templates/oscar/result_templates/images.html:33
+msgid "View source"
+msgstr "மூலத்தைப் பார்"
+
+#: searx/templates/oscar/result_templates/map.html:7
+#: searx/templates/simple/result_templates/map.html:7
+msgid "show map"
+msgstr "வரைபடத்தை காண்பி"
+
+#: searx/templates/oscar/result_templates/map.html:7
+#: searx/templates/simple/result_templates/map.html:7
+msgid "hide map"
+msgstr "வரைபடத்தை மறை"
+
+#: searx/templates/oscar/result_templates/map.html:11
+#: searx/templates/simple/result_templates/map.html:11
+msgid "show details"
+msgstr "விவரங்களைக் காட்டு"
+
+#: searx/templates/oscar/result_templates/map.html:11
+#: searx/templates/simple/result_templates/map.html:11
+msgid "hide details"
+msgstr "விவரங்களை மறை"
+
+#: searx/templates/oscar/result_templates/torrent.html:7
+#: searx/templates/simple/result_templates/torrent.html:11
+msgid "Filesize"
+msgstr "கோப்பளவு"
+
+#: searx/templates/oscar/result_templates/torrent.html:9
+#: searx/templates/simple/result_templates/torrent.html:12
+msgid "Bytes"
+msgstr "பைட்டுகள்"
+
+#: searx/templates/oscar/result_templates/torrent.html:10
+#: searx/templates/simple/result_templates/torrent.html:13
+msgid "kiB"
+msgstr "kiB"
+
+#: searx/templates/oscar/result_templates/torrent.html:11
+#: searx/templates/simple/result_templates/torrent.html:14
+msgid "MiB"
+msgstr "MiB"
+
+#: searx/templates/oscar/result_templates/torrent.html:12
+#: searx/templates/simple/result_templates/torrent.html:15
+msgid "GiB"
+msgstr "GiB"
+
+#: searx/templates/oscar/result_templates/torrent.html:13
+#: searx/templates/simple/result_templates/torrent.html:16
+msgid "TiB"
+msgstr "TiB"
+
+#: searx/templates/oscar/result_templates/torrent.html:15
+#: searx/templates/simple/result_templates/torrent.html:20
+msgid "Number of Files"
+msgstr "மொத்த கோப்புகள்"
+
+#: searx/templates/oscar/result_templates/videos.html:7
+#: searx/templates/simple/result_templates/videos.html:6
+msgid "show video"
+msgstr "காணொளிகளை காண்பி"
+
+#: searx/templates/oscar/result_templates/videos.html:7
+#: searx/templates/simple/result_templates/videos.html:6
+msgid "hide video"
+msgstr "காணொளிகளை மறை"
+
+#: searx/templates/pix-art/results.html:28
+msgid "Load more..."
+msgstr "இன்னும் கொஞ்சம்"
+
+#: searx/templates/simple/base.html:31
+msgid "No item found"
+msgstr "எதுவும் கிடைக்கவில்லை"
+
+#: searx/templates/simple/preferences.html:89
+msgid "Supports selected language"
+msgstr "தேர்ந்தெடுத்த மொழிக்கு ஆதரவு உள்ளது."
+
+#: searx/templates/simple/preferences.html:118
+msgid "User interface"
+msgstr "பயனர் இடைமுகப்பு"
+
+#: searx/templates/simple/preferences.html:154
+msgid "Privacy"
+msgstr "தனியுரிமை"
diff --git a/searx/translations/te/LC_MESSAGES/messages.mo b/searx/translations/te/LC_MESSAGES/messages.mo
index 57488bf0b..f32870e9a 100644
--- a/searx/translations/te/LC_MESSAGES/messages.mo
+++ b/searx/translations/te/LC_MESSAGES/messages.mo
Binary files differ
diff --git a/searx/translations/te/LC_MESSAGES/messages.po b/searx/translations/te/LC_MESSAGES/messages.po
index 8da1506cc..20df5b791 100644
--- a/searx/translations/te/LC_MESSAGES/messages.po
+++ b/searx/translations/te/LC_MESSAGES/messages.po
@@ -8,9 +8,9 @@ msgid ""
msgstr ""
"Project-Id-Version: searx\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
-"POT-Creation-Date: 2017-11-01 21:31+0100\n"
-"PO-Revision-Date: 2018-03-08 16:40+0000\n"
-"Last-Translator: Joseph Nuthalapati <njoseph@thoughtworks.com>\n"
+"POT-Creation-Date: 2017-10-07 19:18+0200\n"
+"PO-Revision-Date: 2019-02-23 17:39+0000\n"
+"Last-Translator: Noémi Ványi <sitbackandwait@gmail.com>\n"
"Language-Team: Telugu (http://www.transifex.com/asciimoo/searx/language/te/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
@@ -31,63 +31,63 @@ msgstr ""
msgid "unexpected crash"
msgstr ""
-#: searx/webapp.py:136
+#: searx/webapp.py:135
msgid "files"
msgstr "ఫైళ్ళు"
-#: searx/webapp.py:137
+#: searx/webapp.py:136
msgid "general"
msgstr "సాధారణ"
-#: searx/webapp.py:138
+#: searx/webapp.py:137
msgid "music"
msgstr "సంగీతం"
-#: searx/webapp.py:139
+#: searx/webapp.py:138
msgid "social media"
msgstr "సోషల్ మీడియా"
-#: searx/webapp.py:140
+#: searx/webapp.py:139
msgid "images"
msgstr "చిత్రాలు"
-#: searx/webapp.py:141
+#: searx/webapp.py:140
msgid "videos"
msgstr "వీడియోలు"
-#: searx/webapp.py:142
+#: searx/webapp.py:141
msgid "it"
msgstr "ఐటి"
-#: searx/webapp.py:143
+#: searx/webapp.py:142
msgid "news"
msgstr "వార్తలు"
-#: searx/webapp.py:144
+#: searx/webapp.py:143
msgid "map"
msgstr "పటము"
-#: searx/webapp.py:145
+#: searx/webapp.py:144
msgid "science"
msgstr "విజ్ఞానశాస్త్రం"
-#: searx/webapp.py:399 searx/webapp.py:658
+#: searx/webapp.py:398 searx/webapp.py:653
msgid "Invalid settings, please edit your preferences"
msgstr ""
-#: searx/webapp.py:415
+#: searx/webapp.py:410
msgid "Invalid settings"
msgstr "చెల్లని అమరికలు"
-#: searx/webapp.py:449 searx/webapp.py:493
+#: searx/webapp.py:444 searx/webapp.py:488
msgid "search error"
msgstr "శోధనలో దోషము"
-#: searx/webapp.py:530
+#: searx/webapp.py:525
msgid "{minutes} minute(s) ago"
msgstr "{minutes} నిమిషము(ల) క్రిందట"
-#: searx/webapp.py:532
+#: searx/webapp.py:527
msgid "{hours} hour(s), {minutes} minute(s) ago"
msgstr ""
@@ -107,29 +107,28 @@ msgstr "సాంఖ్యకశాస్త్ర ప్రమేయాలు"
msgid "Compute {functions} of the arguments"
msgstr ""
-#: searx/engines/__init__.py:194 searx/engines/flycheck___init__.py:201
+#: searx/engines/__init__.py:194
msgid "Engine time (sec)"
msgstr ""
-#: searx/engines/__init__.py:198 searx/engines/flycheck___init__.py:205
+#: searx/engines/__init__.py:198
msgid "Page loads (sec)"
msgstr ""
-#: searx/engines/__init__.py:202 searx/engines/flycheck___init__.py:209
-#: searx/templates/oscar/results.html:95
+#: searx/engines/__init__.py:202 searx/templates/oscar/results.html:95
#: searx/templates/simple/results.html:20
msgid "Number of results"
msgstr "ఫలితముల సంఖ్య"
-#: searx/engines/__init__.py:206 searx/engines/flycheck___init__.py:213
+#: searx/engines/__init__.py:206
msgid "Scores"
msgstr ""
-#: searx/engines/__init__.py:210 searx/engines/flycheck___init__.py:217
+#: searx/engines/__init__.py:210
msgid "Scores per result"
msgstr ""
-#: searx/engines/__init__.py:214 searx/engines/flycheck___init__.py:221
+#: searx/engines/__init__.py:214
msgid "Errors"
msgstr "దోషములు"
@@ -141,8 +140,14 @@ msgstr ""
msgid "This entry has been superseded by"
msgstr ""
-#: searx/engines/pubmed.py:74
-msgid "No abstract is available for this publication."
+#: searx/plugins/doai_rewrite.py:7
+msgid "DOAI rewrite"
+msgstr ""
+
+#: searx/plugins/doai_rewrite.py:8
+msgid ""
+"Avoid paywalls by redirecting to open-access versions of publications when "
+"available"
msgstr ""
#: searx/plugins/https_rewrite.py:32
@@ -157,16 +162,6 @@ msgstr ""
msgid "Automatically load next page when scrolling to bottom of current page"
msgstr ""
-#: searx/plugins/oa_doi_rewrite.py:9
-msgid "Open Access DOI rewrite"
-msgstr ""
-
-#: searx/plugins/oa_doi_rewrite.py:10
-msgid ""
-"Avoid paywalls by redirecting to open-access versions of publications when "
-"available"
-msgstr ""
-
#: searx/plugins/open_results_on_new_tab.py:18
#: searx/templates/oscar/preferences.html:114
#: searx/templates/simple/preferences.html:149
@@ -329,8 +324,8 @@ msgstr "విధానం"
#: searx/templates/courgette/preferences.html:63
#: searx/templates/legacy/preferences.html:64
#: searx/templates/oscar/preferences.html:86
-#: searx/templates/oscar/preferences.html:165
-#: searx/templates/oscar/preferences.html:173
+#: searx/templates/oscar/preferences.html:153
+#: searx/templates/oscar/preferences.html:161
#: searx/templates/simple/preferences.html:63
#: searx/templates/simple/preferences.html:90
msgid "SafeSearch"
@@ -402,8 +397,8 @@ msgstr "ప్రస్తుతం ఉపయోగించబడుతున
#: searx/templates/courgette/preferences.html:100
#: searx/templates/legacy/preferences.html:97
-#: searx/templates/oscar/preferences.html:162
-#: searx/templates/oscar/preferences.html:176
+#: searx/templates/oscar/preferences.html:150
+#: searx/templates/oscar/preferences.html:164
#: searx/templates/pix-art/preferences.html:53
#: searx/templates/simple/preferences.html:87
msgid "Engine name"
@@ -418,8 +413,8 @@ msgstr "వర్గము"
#: searx/templates/courgette/preferences.html:113
#: searx/templates/legacy/preferences.html:99
#: searx/templates/legacy/preferences.html:110
-#: searx/templates/oscar/preferences.html:161
-#: searx/templates/oscar/preferences.html:177
+#: searx/templates/oscar/preferences.html:149
+#: searx/templates/oscar/preferences.html:165
#: searx/templates/pix-art/preferences.html:54
#: searx/templates/pix-art/preferences.html:64
#: searx/templates/simple/preferences.html:86
@@ -437,7 +432,7 @@ msgstr "అడ్డగించు"
#: searx/templates/courgette/preferences.html:122
#: searx/templates/legacy/preferences.html:119
-#: searx/templates/oscar/preferences.html:297
+#: searx/templates/oscar/preferences.html:285
#: searx/templates/pix-art/preferences.html:73
#: searx/templates/simple/preferences.html:180
msgid ""
@@ -447,7 +442,7 @@ msgstr ""
#: searx/templates/courgette/preferences.html:124
#: searx/templates/legacy/preferences.html:121
-#: searx/templates/oscar/preferences.html:299
+#: searx/templates/oscar/preferences.html:287
#: searx/templates/pix-art/preferences.html:75
#: searx/templates/simple/preferences.html:182
msgid ""
@@ -457,7 +452,7 @@ msgstr ""
#: searx/templates/courgette/preferences.html:127
#: searx/templates/legacy/preferences.html:124
-#: searx/templates/oscar/preferences.html:305
+#: searx/templates/oscar/preferences.html:293
#: searx/templates/pix-art/preferences.html:78
#: searx/templates/simple/preferences.html:185
msgid "save"
@@ -465,14 +460,14 @@ msgstr "దాచు"
#: searx/templates/courgette/preferences.html:128
#: searx/templates/legacy/preferences.html:125
-#: searx/templates/oscar/preferences.html:307
+#: searx/templates/oscar/preferences.html:295
#: searx/templates/simple/preferences.html:186
msgid "Reset defaults"
msgstr "నిష్క్రియాలకు అమర్చు"
#: searx/templates/courgette/preferences.html:129
#: searx/templates/legacy/preferences.html:126
-#: searx/templates/oscar/preferences.html:306
+#: searx/templates/oscar/preferences.html:294
#: searx/templates/pix-art/preferences.html:79
#: searx/templates/simple/preferences.html:187
msgid "back"
@@ -643,23 +638,23 @@ msgid "General"
msgstr "సాధారణ"
#: searx/templates/oscar/preferences.html:14
-#: searx/templates/oscar/preferences.html:146
+#: searx/templates/oscar/preferences.html:134
#: searx/templates/simple/preferences.html:76
msgid "Engines"
msgstr "యంత్రాలు"
#: searx/templates/oscar/preferences.html:15
-#: searx/templates/oscar/preferences.html:219
+#: searx/templates/oscar/preferences.html:207
msgid "Plugins"
msgstr "ప్లగిన్లు"
#: searx/templates/oscar/preferences.html:16
-#: searx/templates/oscar/preferences.html:245
+#: searx/templates/oscar/preferences.html:233
msgid "Answerers"
msgstr "జవాబులు"
#: searx/templates/oscar/preferences.html:17
-#: searx/templates/oscar/preferences.html:272
+#: searx/templates/oscar/preferences.html:260
msgid "Cookies"
msgstr "కుకీలు"
@@ -710,88 +705,78 @@ msgstr ""
msgid "Style"
msgstr "శైలి"
-#: searx/templates/oscar/preferences.html:122
-msgid "Open Access DOI resolver"
-msgstr ""
-
-#: searx/templates/oscar/preferences.html:123
-msgid ""
-"Redirect to open-access versions of publications when available (plugin "
-"required)"
-msgstr ""
-
+#: searx/templates/oscar/preferences.html:151
#: searx/templates/oscar/preferences.html:163
-#: searx/templates/oscar/preferences.html:175
#: searx/templates/simple/preferences.html:88
msgid "Shortcut"
msgstr "సత్వరమార్గం"
-#: searx/templates/oscar/preferences.html:164
-#: searx/templates/oscar/preferences.html:174
+#: searx/templates/oscar/preferences.html:152
+#: searx/templates/oscar/preferences.html:162
msgid "Selected language"
msgstr "ఎంచుకున్న భాష"
-#: searx/templates/oscar/preferences.html:166
-#: searx/templates/oscar/preferences.html:172
+#: searx/templates/oscar/preferences.html:154
+#: searx/templates/oscar/preferences.html:160
#: searx/templates/simple/preferences.html:91
msgid "Time range"
msgstr "కాల శ్రేణి"
-#: searx/templates/oscar/preferences.html:167
-#: searx/templates/oscar/preferences.html:171
+#: searx/templates/oscar/preferences.html:155
+#: searx/templates/oscar/preferences.html:159
#: searx/templates/simple/preferences.html:92
msgid "Avg. time"
msgstr "సగటు సమయం"
-#: searx/templates/oscar/preferences.html:168
-#: searx/templates/oscar/preferences.html:170
+#: searx/templates/oscar/preferences.html:156
+#: searx/templates/oscar/preferences.html:158
#: searx/templates/simple/preferences.html:93
msgid "Max time"
msgstr "గరిష్ఠ సమయం"
-#: searx/templates/oscar/preferences.html:248
+#: searx/templates/oscar/preferences.html:236
msgid "This is the list of searx's instant answering modules."
msgstr ""
-#: searx/templates/oscar/preferences.html:252
+#: searx/templates/oscar/preferences.html:240
msgid "Name"
msgstr "పేరు"
-#: searx/templates/oscar/preferences.html:253
+#: searx/templates/oscar/preferences.html:241
msgid "Keywords"
msgstr ""
-#: searx/templates/oscar/preferences.html:254
+#: searx/templates/oscar/preferences.html:242
msgid "Description"
msgstr "వర్ణన"
-#: searx/templates/oscar/preferences.html:255
+#: searx/templates/oscar/preferences.html:243
msgid "Examples"
msgstr "ఉదాహరణలు"
-#: searx/templates/oscar/preferences.html:275
+#: searx/templates/oscar/preferences.html:263
msgid ""
"This is the list of cookies and their values searx is storing on your "
"computer."
msgstr ""
-#: searx/templates/oscar/preferences.html:276
+#: searx/templates/oscar/preferences.html:264
msgid "With that list, you can assess searx transparency."
msgstr ""
-#: searx/templates/oscar/preferences.html:281
+#: searx/templates/oscar/preferences.html:269
msgid "Cookie name"
msgstr "కుకీ పేరు"
-#: searx/templates/oscar/preferences.html:282
+#: searx/templates/oscar/preferences.html:270
msgid "Value"
msgstr "విలువ"
-#: searx/templates/oscar/preferences.html:301
+#: searx/templates/oscar/preferences.html:289
msgid "Search URL of the currently saved preferences"
msgstr ""
-#: searx/templates/oscar/preferences.html:301
+#: searx/templates/oscar/preferences.html:289
msgid ""
"Note: specifying custom settings in the search URL can reduce privacy by "
"leaking data to the clicked result sites."
diff --git a/searx/translations/tr/LC_MESSAGES/messages.mo b/searx/translations/tr/LC_MESSAGES/messages.mo
index ec47020aa..8698157bd 100644
--- a/searx/translations/tr/LC_MESSAGES/messages.mo
+++ b/searx/translations/tr/LC_MESSAGES/messages.mo
Binary files differ
diff --git a/searx/translations/tr/LC_MESSAGES/messages.po b/searx/translations/tr/LC_MESSAGES/messages.po
index a15c85609..5217849ea 100644
--- a/searx/translations/tr/LC_MESSAGES/messages.po
+++ b/searx/translations/tr/LC_MESSAGES/messages.po
@@ -10,9 +10,9 @@ msgid ""
msgstr ""
"Project-Id-Version: searx\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
-"POT-Creation-Date: 2017-11-01 21:31+0100\n"
-"PO-Revision-Date: 2018-12-06 17:22+0000\n"
-"Last-Translator: Arda Kılıçdağı <ardakilicdagi@gmail.com>\n"
+"POT-Creation-Date: 2017-10-07 19:18+0200\n"
+"PO-Revision-Date: 2019-02-23 17:39+0000\n"
+"Last-Translator: Noémi Ványi <sitbackandwait@gmail.com>\n"
"Language-Team: Turkish (http://www.transifex.com/asciimoo/searx/language/tr/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
@@ -33,63 +33,63 @@ msgstr "istekte bir hata oluştu"
msgid "unexpected crash"
msgstr "beklenmmeyen hata"
-#: searx/webapp.py:136
+#: searx/webapp.py:135
msgid "files"
msgstr "dosyalar"
-#: searx/webapp.py:137
+#: searx/webapp.py:136
msgid "general"
msgstr "genel"
-#: searx/webapp.py:138
+#: searx/webapp.py:137
msgid "music"
msgstr "müzik"
-#: searx/webapp.py:139
+#: searx/webapp.py:138
msgid "social media"
msgstr "sosyal medya"
-#: searx/webapp.py:140
+#: searx/webapp.py:139
msgid "images"
msgstr "görseller"
-#: searx/webapp.py:141
+#: searx/webapp.py:140
msgid "videos"
msgstr "videolar"
-#: searx/webapp.py:142
+#: searx/webapp.py:141
msgid "it"
msgstr "bilişim"
-#: searx/webapp.py:143
+#: searx/webapp.py:142
msgid "news"
msgstr "haberler"
-#: searx/webapp.py:144
+#: searx/webapp.py:143
msgid "map"
msgstr "harita"
-#: searx/webapp.py:145
+#: searx/webapp.py:144
msgid "science"
msgstr "bilim"
-#: searx/webapp.py:399 searx/webapp.py:658
+#: searx/webapp.py:398 searx/webapp.py:653
msgid "Invalid settings, please edit your preferences"
msgstr "Hatalı ayar girildi, lütfen ayarlarınızı kontrol edin"
-#: searx/webapp.py:415
+#: searx/webapp.py:410
msgid "Invalid settings"
msgstr "Hatalı ayar"
-#: searx/webapp.py:449 searx/webapp.py:493
+#: searx/webapp.py:444 searx/webapp.py:488
msgid "search error"
msgstr "arama hatası"
-#: searx/webapp.py:530
+#: searx/webapp.py:525
msgid "{minutes} minute(s) ago"
msgstr "{minutes} dakika() önce"
-#: searx/webapp.py:532
+#: searx/webapp.py:527
msgid "{hours} hour(s), {minutes} minute(s) ago"
msgstr "{hours} saat(), {minutes} dakika() önce"
@@ -109,29 +109,28 @@ msgstr "İstatistik fonksiyonları"
msgid "Compute {functions} of the arguments"
msgstr "Argümanların {functions} değerlerini hesapla"
-#: searx/engines/__init__.py:194 searx/engines/flycheck___init__.py:201
+#: searx/engines/__init__.py:194
msgid "Engine time (sec)"
msgstr "Motor cevap süresi (sn)"
-#: searx/engines/__init__.py:198 searx/engines/flycheck___init__.py:205
+#: searx/engines/__init__.py:198
msgid "Page loads (sec)"
msgstr "Sayfa yüklenmesi (sn)"
-#: searx/engines/__init__.py:202 searx/engines/flycheck___init__.py:209
-#: searx/templates/oscar/results.html:95
+#: searx/engines/__init__.py:202 searx/templates/oscar/results.html:95
#: searx/templates/simple/results.html:20
msgid "Number of results"
msgstr "Sonuç sayısı"
-#: searx/engines/__init__.py:206 searx/engines/flycheck___init__.py:213
+#: searx/engines/__init__.py:206
msgid "Scores"
msgstr "Skor"
-#: searx/engines/__init__.py:210 searx/engines/flycheck___init__.py:217
+#: searx/engines/__init__.py:210
msgid "Scores per result"
msgstr "Sonuç başına skor"
-#: searx/engines/__init__.py:214 searx/engines/flycheck___init__.py:221
+#: searx/engines/__init__.py:214
msgid "Errors"
msgstr "Hatalar"
@@ -143,8 +142,14 @@ msgstr "{title}&nbsp;(GEÇERSİZ)"
msgid "This entry has been superseded by"
msgstr ""
-#: searx/engines/pubmed.py:74
-msgid "No abstract is available for this publication."
+#: searx/plugins/doai_rewrite.py:7
+msgid "DOAI rewrite"
+msgstr ""
+
+#: searx/plugins/doai_rewrite.py:8
+msgid ""
+"Avoid paywalls by redirecting to open-access versions of publications when "
+"available"
msgstr ""
#: searx/plugins/https_rewrite.py:32
@@ -159,16 +164,6 @@ msgstr ""
msgid "Automatically load next page when scrolling to bottom of current page"
msgstr ""
-#: searx/plugins/oa_doi_rewrite.py:9
-msgid "Open Access DOI rewrite"
-msgstr ""
-
-#: searx/plugins/oa_doi_rewrite.py:10
-msgid ""
-"Avoid paywalls by redirecting to open-access versions of publications when "
-"available"
-msgstr ""
-
#: searx/plugins/open_results_on_new_tab.py:18
#: searx/templates/oscar/preferences.html:114
#: searx/templates/simple/preferences.html:149
@@ -331,8 +326,8 @@ msgstr "Sorgu gönderim yöntemi"
#: searx/templates/courgette/preferences.html:63
#: searx/templates/legacy/preferences.html:64
#: searx/templates/oscar/preferences.html:86
-#: searx/templates/oscar/preferences.html:165
-#: searx/templates/oscar/preferences.html:173
+#: searx/templates/oscar/preferences.html:153
+#: searx/templates/oscar/preferences.html:161
#: searx/templates/simple/preferences.html:63
#: searx/templates/simple/preferences.html:90
msgid "SafeSearch"
@@ -404,8 +399,8 @@ msgstr "Şu anda kullanılan arama motorları"
#: searx/templates/courgette/preferences.html:100
#: searx/templates/legacy/preferences.html:97
-#: searx/templates/oscar/preferences.html:162
-#: searx/templates/oscar/preferences.html:176
+#: searx/templates/oscar/preferences.html:150
+#: searx/templates/oscar/preferences.html:164
#: searx/templates/pix-art/preferences.html:53
#: searx/templates/simple/preferences.html:87
msgid "Engine name"
@@ -420,8 +415,8 @@ msgstr "Türü"
#: searx/templates/courgette/preferences.html:113
#: searx/templates/legacy/preferences.html:99
#: searx/templates/legacy/preferences.html:110
-#: searx/templates/oscar/preferences.html:161
-#: searx/templates/oscar/preferences.html:177
+#: searx/templates/oscar/preferences.html:149
+#: searx/templates/oscar/preferences.html:165
#: searx/templates/pix-art/preferences.html:54
#: searx/templates/pix-art/preferences.html:64
#: searx/templates/simple/preferences.html:86
@@ -439,7 +434,7 @@ msgstr "Engelle"
#: searx/templates/courgette/preferences.html:122
#: searx/templates/legacy/preferences.html:119
-#: searx/templates/oscar/preferences.html:297
+#: searx/templates/oscar/preferences.html:285
#: searx/templates/pix-art/preferences.html:73
#: searx/templates/simple/preferences.html:180
msgid ""
@@ -449,7 +444,7 @@ msgstr "Ayarlar çerezlerinizde saklanır. Verdiğiniz izinler, sizin hakkınız
#: searx/templates/courgette/preferences.html:124
#: searx/templates/legacy/preferences.html:121
-#: searx/templates/oscar/preferences.html:299
+#: searx/templates/oscar/preferences.html:287
#: searx/templates/pix-art/preferences.html:75
#: searx/templates/simple/preferences.html:182
msgid ""
@@ -459,7 +454,7 @@ msgstr "Bu çerezler size kolaylık sağlar. Sizi takip etmek için kullanılmaz
#: searx/templates/courgette/preferences.html:127
#: searx/templates/legacy/preferences.html:124
-#: searx/templates/oscar/preferences.html:305
+#: searx/templates/oscar/preferences.html:293
#: searx/templates/pix-art/preferences.html:78
#: searx/templates/simple/preferences.html:185
msgid "save"
@@ -467,14 +462,14 @@ msgstr "kaydet"
#: searx/templates/courgette/preferences.html:128
#: searx/templates/legacy/preferences.html:125
-#: searx/templates/oscar/preferences.html:307
+#: searx/templates/oscar/preferences.html:295
#: searx/templates/simple/preferences.html:186
msgid "Reset defaults"
msgstr "Varsayılanları sıfırla"
#: searx/templates/courgette/preferences.html:129
#: searx/templates/legacy/preferences.html:126
-#: searx/templates/oscar/preferences.html:306
+#: searx/templates/oscar/preferences.html:294
#: searx/templates/pix-art/preferences.html:79
#: searx/templates/simple/preferences.html:187
msgid "back"
@@ -645,23 +640,23 @@ msgid "General"
msgstr "Genel"
#: searx/templates/oscar/preferences.html:14
-#: searx/templates/oscar/preferences.html:146
+#: searx/templates/oscar/preferences.html:134
#: searx/templates/simple/preferences.html:76
msgid "Engines"
msgstr "Motorlar"
#: searx/templates/oscar/preferences.html:15
-#: searx/templates/oscar/preferences.html:219
+#: searx/templates/oscar/preferences.html:207
msgid "Plugins"
msgstr "Eklentiler"
#: searx/templates/oscar/preferences.html:16
-#: searx/templates/oscar/preferences.html:245
+#: searx/templates/oscar/preferences.html:233
msgid "Answerers"
msgstr ""
#: searx/templates/oscar/preferences.html:17
-#: searx/templates/oscar/preferences.html:272
+#: searx/templates/oscar/preferences.html:260
msgid "Cookies"
msgstr ""
@@ -712,88 +707,78 @@ msgstr ""
msgid "Style"
msgstr ""
-#: searx/templates/oscar/preferences.html:122
-msgid "Open Access DOI resolver"
-msgstr ""
-
-#: searx/templates/oscar/preferences.html:123
-msgid ""
-"Redirect to open-access versions of publications when available (plugin "
-"required)"
-msgstr ""
-
+#: searx/templates/oscar/preferences.html:151
#: searx/templates/oscar/preferences.html:163
-#: searx/templates/oscar/preferences.html:175
#: searx/templates/simple/preferences.html:88
msgid "Shortcut"
msgstr ""
-#: searx/templates/oscar/preferences.html:164
-#: searx/templates/oscar/preferences.html:174
+#: searx/templates/oscar/preferences.html:152
+#: searx/templates/oscar/preferences.html:162
msgid "Selected language"
msgstr ""
-#: searx/templates/oscar/preferences.html:166
-#: searx/templates/oscar/preferences.html:172
+#: searx/templates/oscar/preferences.html:154
+#: searx/templates/oscar/preferences.html:160
#: searx/templates/simple/preferences.html:91
msgid "Time range"
msgstr ""
-#: searx/templates/oscar/preferences.html:167
-#: searx/templates/oscar/preferences.html:171
+#: searx/templates/oscar/preferences.html:155
+#: searx/templates/oscar/preferences.html:159
#: searx/templates/simple/preferences.html:92
msgid "Avg. time"
msgstr ""
-#: searx/templates/oscar/preferences.html:168
-#: searx/templates/oscar/preferences.html:170
+#: searx/templates/oscar/preferences.html:156
+#: searx/templates/oscar/preferences.html:158
#: searx/templates/simple/preferences.html:93
msgid "Max time"
msgstr ""
-#: searx/templates/oscar/preferences.html:248
+#: searx/templates/oscar/preferences.html:236
msgid "This is the list of searx's instant answering modules."
msgstr ""
-#: searx/templates/oscar/preferences.html:252
+#: searx/templates/oscar/preferences.html:240
msgid "Name"
msgstr ""
-#: searx/templates/oscar/preferences.html:253
+#: searx/templates/oscar/preferences.html:241
msgid "Keywords"
msgstr ""
-#: searx/templates/oscar/preferences.html:254
+#: searx/templates/oscar/preferences.html:242
msgid "Description"
msgstr ""
-#: searx/templates/oscar/preferences.html:255
+#: searx/templates/oscar/preferences.html:243
msgid "Examples"
msgstr ""
-#: searx/templates/oscar/preferences.html:275
+#: searx/templates/oscar/preferences.html:263
msgid ""
"This is the list of cookies and their values searx is storing on your "
"computer."
msgstr ""
-#: searx/templates/oscar/preferences.html:276
+#: searx/templates/oscar/preferences.html:264
msgid "With that list, you can assess searx transparency."
msgstr ""
-#: searx/templates/oscar/preferences.html:281
+#: searx/templates/oscar/preferences.html:269
msgid "Cookie name"
msgstr ""
-#: searx/templates/oscar/preferences.html:282
+#: searx/templates/oscar/preferences.html:270
msgid "Value"
msgstr ""
-#: searx/templates/oscar/preferences.html:301
+#: searx/templates/oscar/preferences.html:289
msgid "Search URL of the currently saved preferences"
msgstr ""
-#: searx/templates/oscar/preferences.html:301
+#: searx/templates/oscar/preferences.html:289
msgid ""
"Note: specifying custom settings in the search URL can reduce privacy by "
"leaking data to the clicked result sites."
diff --git a/searx/translations/uk/LC_MESSAGES/messages.mo b/searx/translations/uk/LC_MESSAGES/messages.mo
index 6610dfaa7..91b533456 100644
--- a/searx/translations/uk/LC_MESSAGES/messages.mo
+++ b/searx/translations/uk/LC_MESSAGES/messages.mo
Binary files differ
diff --git a/searx/translations/uk/LC_MESSAGES/messages.po b/searx/translations/uk/LC_MESSAGES/messages.po
index 7c6ac5aac..bd4b294c2 100644
--- a/searx/translations/uk/LC_MESSAGES/messages.po
+++ b/searx/translations/uk/LC_MESSAGES/messages.po
@@ -5,14 +5,15 @@
# Translators:
# pvhn4 <pvhn4@protonmail.com>, 2017
# pvhn4 <pvhn4@protonmail.com>, 2017
+# pvhn4 <pvhn4@protonmail.com>, 2017
# zubr139, 2016-2017
msgid ""
msgstr ""
"Project-Id-Version: searx\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
-"POT-Creation-Date: 2017-11-01 21:31+0100\n"
-"PO-Revision-Date: 2017-11-01 20:31+0000\n"
-"Last-Translator: Adam Tauber <asciimoo@gmail.com>\n"
+"POT-Creation-Date: 2017-10-07 19:18+0200\n"
+"PO-Revision-Date: 2019-02-23 17:39+0000\n"
+"Last-Translator: zubr139\n"
"Language-Team: Ukrainian (http://www.transifex.com/asciimoo/searx/language/uk/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
@@ -33,63 +34,63 @@ msgstr ""
msgid "unexpected crash"
msgstr ""
-#: searx/webapp.py:136
+#: searx/webapp.py:135
msgid "files"
msgstr "файли"
-#: searx/webapp.py:137
+#: searx/webapp.py:136
msgid "general"
msgstr "загальні"
-#: searx/webapp.py:138
+#: searx/webapp.py:137
msgid "music"
msgstr "музика"
-#: searx/webapp.py:139
+#: searx/webapp.py:138
msgid "social media"
msgstr "соцмережі"
-#: searx/webapp.py:140
+#: searx/webapp.py:139
msgid "images"
msgstr "зображення"
-#: searx/webapp.py:141
+#: searx/webapp.py:140
msgid "videos"
msgstr "відео"
-#: searx/webapp.py:142
+#: searx/webapp.py:141
msgid "it"
msgstr "IT"
-#: searx/webapp.py:143
+#: searx/webapp.py:142
msgid "news"
msgstr "новини"
-#: searx/webapp.py:144
+#: searx/webapp.py:143
msgid "map"
msgstr "карти"
-#: searx/webapp.py:145
+#: searx/webapp.py:144
msgid "science"
msgstr "наука"
-#: searx/webapp.py:399 searx/webapp.py:658
+#: searx/webapp.py:398 searx/webapp.py:653
msgid "Invalid settings, please edit your preferences"
msgstr "Невірні налаштування, будь ласка, зробіть зміни в налаштуваннях"
-#: searx/webapp.py:415
+#: searx/webapp.py:410
msgid "Invalid settings"
msgstr ""
-#: searx/webapp.py:449 searx/webapp.py:493
+#: searx/webapp.py:444 searx/webapp.py:488
msgid "search error"
msgstr "помилка пошуку"
-#: searx/webapp.py:530
+#: searx/webapp.py:525
msgid "{minutes} minute(s) ago"
msgstr "{minutes} хвилин тому"
-#: searx/webapp.py:532
+#: searx/webapp.py:527
msgid "{hours} hour(s), {minutes} minute(s) ago"
msgstr "{hours} годин, {minutes} хвилин тому"
@@ -109,29 +110,28 @@ msgstr "Функції статистики"
msgid "Compute {functions} of the arguments"
msgstr "Розрахувати {functions} аргументів"
-#: searx/engines/__init__.py:194 searx/engines/flycheck___init__.py:201
+#: searx/engines/__init__.py:194
msgid "Engine time (sec)"
msgstr "Час пошуку (сек)"
-#: searx/engines/__init__.py:198 searx/engines/flycheck___init__.py:205
+#: searx/engines/__init__.py:198
msgid "Page loads (sec)"
msgstr "Час завантадення (сек)"
-#: searx/engines/__init__.py:202 searx/engines/flycheck___init__.py:209
-#: searx/templates/oscar/results.html:95
+#: searx/engines/__init__.py:202 searx/templates/oscar/results.html:95
#: searx/templates/simple/results.html:20
msgid "Number of results"
msgstr "Число результатів"
-#: searx/engines/__init__.py:206 searx/engines/flycheck___init__.py:213
+#: searx/engines/__init__.py:206
msgid "Scores"
msgstr "Влучань"
-#: searx/engines/__init__.py:210 searx/engines/flycheck___init__.py:217
+#: searx/engines/__init__.py:210
msgid "Scores per result"
msgstr "Влучань за результат"
-#: searx/engines/__init__.py:214 searx/engines/flycheck___init__.py:221
+#: searx/engines/__init__.py:214
msgid "Errors"
msgstr "Помилок"
@@ -143,9 +143,15 @@ msgstr "{title}&nbsp;(OBSOLETE)"
msgid "This entry has been superseded by"
msgstr "Цей запис був змінений"
-#: searx/engines/pubmed.py:74
-msgid "No abstract is available for this publication."
-msgstr ""
+#: searx/plugins/doai_rewrite.py:7
+msgid "DOAI rewrite"
+msgstr "Переписати DOAI"
+
+#: searx/plugins/doai_rewrite.py:8
+msgid ""
+"Avoid paywalls by redirecting to open-access versions of publications when "
+"available"
+msgstr "Уникайте платіжних каналів шляхом переадресації на версії публікацій з відкритим доступом, коли це можливо"
#: searx/plugins/https_rewrite.py:32
msgid "Rewrite HTTP links to HTTPS if possible"
@@ -159,16 +165,6 @@ msgstr "Нескінченна прокрутка"
msgid "Automatically load next page when scrolling to bottom of current page"
msgstr "Автоматично завантажувати наступну сторінку при прокрутці поточної до кінця"
-#: searx/plugins/oa_doi_rewrite.py:9
-msgid "Open Access DOI rewrite"
-msgstr ""
-
-#: searx/plugins/oa_doi_rewrite.py:10
-msgid ""
-"Avoid paywalls by redirecting to open-access versions of publications when "
-"available"
-msgstr "Уникайте платіжних каналів шляхом переадресації на версії публікацій з відкритим доступом, коли це можливо"
-
#: searx/plugins/open_results_on_new_tab.py:18
#: searx/templates/oscar/preferences.html:114
#: searx/templates/simple/preferences.html:149
@@ -331,8 +327,8 @@ msgstr "Метод"
#: searx/templates/courgette/preferences.html:63
#: searx/templates/legacy/preferences.html:64
#: searx/templates/oscar/preferences.html:86
-#: searx/templates/oscar/preferences.html:165
-#: searx/templates/oscar/preferences.html:173
+#: searx/templates/oscar/preferences.html:153
+#: searx/templates/oscar/preferences.html:161
#: searx/templates/simple/preferences.html:63
#: searx/templates/simple/preferences.html:90
msgid "SafeSearch"
@@ -404,8 +400,8 @@ msgstr "Пошукові системи, які використовуються
#: searx/templates/courgette/preferences.html:100
#: searx/templates/legacy/preferences.html:97
-#: searx/templates/oscar/preferences.html:162
-#: searx/templates/oscar/preferences.html:176
+#: searx/templates/oscar/preferences.html:150
+#: searx/templates/oscar/preferences.html:164
#: searx/templates/pix-art/preferences.html:53
#: searx/templates/simple/preferences.html:87
msgid "Engine name"
@@ -420,8 +416,8 @@ msgstr "Категорія"
#: searx/templates/courgette/preferences.html:113
#: searx/templates/legacy/preferences.html:99
#: searx/templates/legacy/preferences.html:110
-#: searx/templates/oscar/preferences.html:161
-#: searx/templates/oscar/preferences.html:177
+#: searx/templates/oscar/preferences.html:149
+#: searx/templates/oscar/preferences.html:165
#: searx/templates/pix-art/preferences.html:54
#: searx/templates/pix-art/preferences.html:64
#: searx/templates/simple/preferences.html:86
@@ -439,7 +435,7 @@ msgstr "Заблокувати"
#: searx/templates/courgette/preferences.html:122
#: searx/templates/legacy/preferences.html:119
-#: searx/templates/oscar/preferences.html:297
+#: searx/templates/oscar/preferences.html:285
#: searx/templates/pix-art/preferences.html:73
#: searx/templates/simple/preferences.html:180
msgid ""
@@ -449,7 +445,7 @@ msgstr "Налаштування зберігаються в ваших cookie-
#: searx/templates/courgette/preferences.html:124
#: searx/templates/legacy/preferences.html:121
-#: searx/templates/oscar/preferences.html:299
+#: searx/templates/oscar/preferences.html:287
#: searx/templates/pix-art/preferences.html:75
#: searx/templates/simple/preferences.html:182
msgid ""
@@ -459,7 +455,7 @@ msgstr "Ці cookie-файли необхідні винятково для ва
#: searx/templates/courgette/preferences.html:127
#: searx/templates/legacy/preferences.html:124
-#: searx/templates/oscar/preferences.html:305
+#: searx/templates/oscar/preferences.html:293
#: searx/templates/pix-art/preferences.html:78
#: searx/templates/simple/preferences.html:185
msgid "save"
@@ -467,14 +463,14 @@ msgstr "зберегти"
#: searx/templates/courgette/preferences.html:128
#: searx/templates/legacy/preferences.html:125
-#: searx/templates/oscar/preferences.html:307
+#: searx/templates/oscar/preferences.html:295
#: searx/templates/simple/preferences.html:186
msgid "Reset defaults"
msgstr "Відновити стандартні налаштування"
#: searx/templates/courgette/preferences.html:129
#: searx/templates/legacy/preferences.html:126
-#: searx/templates/oscar/preferences.html:306
+#: searx/templates/oscar/preferences.html:294
#: searx/templates/pix-art/preferences.html:79
#: searx/templates/simple/preferences.html:187
msgid "back"
@@ -645,23 +641,23 @@ msgid "General"
msgstr "Загальні"
#: searx/templates/oscar/preferences.html:14
-#: searx/templates/oscar/preferences.html:146
+#: searx/templates/oscar/preferences.html:134
#: searx/templates/simple/preferences.html:76
msgid "Engines"
msgstr "Пошукові системи"
#: searx/templates/oscar/preferences.html:15
-#: searx/templates/oscar/preferences.html:219
+#: searx/templates/oscar/preferences.html:207
msgid "Plugins"
msgstr "Плагіни"
#: searx/templates/oscar/preferences.html:16
-#: searx/templates/oscar/preferences.html:245
+#: searx/templates/oscar/preferences.html:233
msgid "Answerers"
msgstr "Відповідачі"
#: searx/templates/oscar/preferences.html:17
-#: searx/templates/oscar/preferences.html:272
+#: searx/templates/oscar/preferences.html:260
msgid "Cookies"
msgstr "Cookie-файли"
@@ -712,88 +708,78 @@ msgstr "Обрати стиль для цієї теми"
msgid "Style"
msgstr "Стиль"
-#: searx/templates/oscar/preferences.html:122
-msgid "Open Access DOI resolver"
-msgstr ""
-
-#: searx/templates/oscar/preferences.html:123
-msgid ""
-"Redirect to open-access versions of publications when available (plugin "
-"required)"
-msgstr ""
-
+#: searx/templates/oscar/preferences.html:151
#: searx/templates/oscar/preferences.html:163
-#: searx/templates/oscar/preferences.html:175
#: searx/templates/simple/preferences.html:88
msgid "Shortcut"
msgstr "Гарячі клавіші"
-#: searx/templates/oscar/preferences.html:164
-#: searx/templates/oscar/preferences.html:174
+#: searx/templates/oscar/preferences.html:152
+#: searx/templates/oscar/preferences.html:162
msgid "Selected language"
msgstr ""
-#: searx/templates/oscar/preferences.html:166
-#: searx/templates/oscar/preferences.html:172
+#: searx/templates/oscar/preferences.html:154
+#: searx/templates/oscar/preferences.html:160
#: searx/templates/simple/preferences.html:91
msgid "Time range"
msgstr "Часовий діапазон"
-#: searx/templates/oscar/preferences.html:167
-#: searx/templates/oscar/preferences.html:171
+#: searx/templates/oscar/preferences.html:155
+#: searx/templates/oscar/preferences.html:159
#: searx/templates/simple/preferences.html:92
msgid "Avg. time"
msgstr "Середній час"
-#: searx/templates/oscar/preferences.html:168
-#: searx/templates/oscar/preferences.html:170
+#: searx/templates/oscar/preferences.html:156
+#: searx/templates/oscar/preferences.html:158
#: searx/templates/simple/preferences.html:93
msgid "Max time"
msgstr "Максимальний час"
-#: searx/templates/oscar/preferences.html:248
+#: searx/templates/oscar/preferences.html:236
msgid "This is the list of searx's instant answering modules."
msgstr "Список модулів миттєвих відповідей searx."
-#: searx/templates/oscar/preferences.html:252
+#: searx/templates/oscar/preferences.html:240
msgid "Name"
msgstr "Назва"
-#: searx/templates/oscar/preferences.html:253
+#: searx/templates/oscar/preferences.html:241
msgid "Keywords"
msgstr "Ключові слова"
-#: searx/templates/oscar/preferences.html:254
+#: searx/templates/oscar/preferences.html:242
msgid "Description"
msgstr "Опис"
-#: searx/templates/oscar/preferences.html:255
+#: searx/templates/oscar/preferences.html:243
msgid "Examples"
msgstr "Приклади"
-#: searx/templates/oscar/preferences.html:275
+#: searx/templates/oscar/preferences.html:263
msgid ""
"This is the list of cookies and their values searx is storing on your "
"computer."
msgstr "Це список cookie-файлів та їх значень, які searx зберігає на вашому комп'ютері."
-#: searx/templates/oscar/preferences.html:276
+#: searx/templates/oscar/preferences.html:264
msgid "With that list, you can assess searx transparency."
msgstr "По цьому списку ви можете оцінити відкритість searx."
-#: searx/templates/oscar/preferences.html:281
+#: searx/templates/oscar/preferences.html:269
msgid "Cookie name"
msgstr "Ім'я cookie"
-#: searx/templates/oscar/preferences.html:282
+#: searx/templates/oscar/preferences.html:270
msgid "Value"
msgstr "Значення"
-#: searx/templates/oscar/preferences.html:301
+#: searx/templates/oscar/preferences.html:289
msgid "Search URL of the currently saved preferences"
msgstr ""
-#: searx/templates/oscar/preferences.html:301
+#: searx/templates/oscar/preferences.html:289
msgid ""
"Note: specifying custom settings in the search URL can reduce privacy by "
"leaking data to the clicked result sites."
diff --git a/searx/translations/vi/LC_MESSAGES/messages.mo b/searx/translations/vi/LC_MESSAGES/messages.mo
index 07dc309ea..687a93d6c 100644
--- a/searx/translations/vi/LC_MESSAGES/messages.mo
+++ b/searx/translations/vi/LC_MESSAGES/messages.mo
Binary files differ
diff --git a/searx/translations/vi/LC_MESSAGES/messages.po b/searx/translations/vi/LC_MESSAGES/messages.po
index d8a1a0c94..4ad30d0b0 100644
--- a/searx/translations/vi/LC_MESSAGES/messages.po
+++ b/searx/translations/vi/LC_MESSAGES/messages.po
@@ -8,9 +8,9 @@ msgid ""
msgstr ""
"Project-Id-Version: searx\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
-"POT-Creation-Date: 2017-11-01 21:31+0100\n"
-"PO-Revision-Date: 2018-02-28 17:27+0000\n"
-"Last-Translator: dd721411 <dd721411@gmail.com>\n"
+"POT-Creation-Date: 2017-10-07 19:18+0200\n"
+"PO-Revision-Date: 2019-02-23 17:39+0000\n"
+"Last-Translator: Noémi Ványi <sitbackandwait@gmail.com>\n"
"Language-Team: Vietnamese (http://www.transifex.com/asciimoo/searx/language/vi/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
@@ -31,63 +31,63 @@ msgstr "ngoại lệ yêu cầu"
msgid "unexpected crash"
msgstr "lỗi bất ngờ"
-#: searx/webapp.py:136
+#: searx/webapp.py:135
msgid "files"
msgstr "các tập tin"
-#: searx/webapp.py:137
+#: searx/webapp.py:136
msgid "general"
msgstr "tổng quát"
-#: searx/webapp.py:138
+#: searx/webapp.py:137
msgid "music"
msgstr "âm nhạc"
-#: searx/webapp.py:139
+#: searx/webapp.py:138
msgid "social media"
msgstr "mạng xã hội"
-#: searx/webapp.py:140
+#: searx/webapp.py:139
msgid "images"
msgstr "hình ảnh"
-#: searx/webapp.py:141
+#: searx/webapp.py:140
msgid "videos"
msgstr "phim"
-#: searx/webapp.py:142
+#: searx/webapp.py:141
msgid "it"
msgstr "CNTT"
-#: searx/webapp.py:143
+#: searx/webapp.py:142
msgid "news"
msgstr "tin tức"
-#: searx/webapp.py:144
+#: searx/webapp.py:143
msgid "map"
msgstr "bản đồ"
-#: searx/webapp.py:145
+#: searx/webapp.py:144
msgid "science"
msgstr "khoa học"
-#: searx/webapp.py:399 searx/webapp.py:658
+#: searx/webapp.py:398 searx/webapp.py:653
msgid "Invalid settings, please edit your preferences"
msgstr "Cài đặt không hợp lệ, xin xem lại tuỳ chỉnh"
-#: searx/webapp.py:415
+#: searx/webapp.py:410
msgid "Invalid settings"
msgstr "Cài đặt không hợp lệ"
-#: searx/webapp.py:449 searx/webapp.py:493
+#: searx/webapp.py:444 searx/webapp.py:488
msgid "search error"
msgstr "lỗi tìm kiếm"
-#: searx/webapp.py:530
+#: searx/webapp.py:525
msgid "{minutes} minute(s) ago"
msgstr "{minutes} phút() trước"
-#: searx/webapp.py:532
+#: searx/webapp.py:527
msgid "{hours} hour(s), {minutes} minute(s) ago"
msgstr "{hours} giờ(), {minutes} phút() trước"
@@ -107,29 +107,28 @@ msgstr "Các hàm thống kê"
msgid "Compute {functions} of the arguments"
msgstr "Tính toán {functions} của các đối số"
-#: searx/engines/__init__.py:194 searx/engines/flycheck___init__.py:201
+#: searx/engines/__init__.py:194
msgid "Engine time (sec)"
msgstr "Thời gian trình tìm kiếm (giây)"
-#: searx/engines/__init__.py:198 searx/engines/flycheck___init__.py:205
+#: searx/engines/__init__.py:198
msgid "Page loads (sec)"
msgstr "Tải trang (giây)"
-#: searx/engines/__init__.py:202 searx/engines/flycheck___init__.py:209
-#: searx/templates/oscar/results.html:95
+#: searx/engines/__init__.py:202 searx/templates/oscar/results.html:95
#: searx/templates/simple/results.html:20
msgid "Number of results"
msgstr "Số lượng kết quả"
-#: searx/engines/__init__.py:206 searx/engines/flycheck___init__.py:213
+#: searx/engines/__init__.py:206
msgid "Scores"
msgstr "Điểm số"
-#: searx/engines/__init__.py:210 searx/engines/flycheck___init__.py:217
+#: searx/engines/__init__.py:210
msgid "Scores per result"
msgstr "Điểm số cho từng kết quả"
-#: searx/engines/__init__.py:214 searx/engines/flycheck___init__.py:221
+#: searx/engines/__init__.py:214
msgid "Errors"
msgstr "Các lỗi"
@@ -141,9 +140,15 @@ msgstr "{title}&nbsp;(LỖI THỜI)"
msgid "This entry has been superseded by"
msgstr "Mục này đã được thay thế bởi"
-#: searx/engines/pubmed.py:74
-msgid "No abstract is available for this publication."
-msgstr "Không có bản tóm tắt nào cho ấn phẩm này."
+#: searx/plugins/doai_rewrite.py:7
+msgid "DOAI rewrite"
+msgstr ""
+
+#: searx/plugins/doai_rewrite.py:8
+msgid ""
+"Avoid paywalls by redirecting to open-access versions of publications when "
+"available"
+msgstr "Tránh việc trả phí bằng cách chuyển hướng đến các phiên bản truy cập miễn phí của ấn phẩm khi có thể"
#: searx/plugins/https_rewrite.py:32
msgid "Rewrite HTTP links to HTTPS if possible"
@@ -157,16 +162,6 @@ msgstr "Cuộn liên tục"
msgid "Automatically load next page when scrolling to bottom of current page"
msgstr "Tự động tải trang kế tiếp khi cuộn đến cuối trang hiện tại"
-#: searx/plugins/oa_doi_rewrite.py:9
-msgid "Open Access DOI rewrite"
-msgstr "Viết lại DOI Truy Cập Miễn Phí"
-
-#: searx/plugins/oa_doi_rewrite.py:10
-msgid ""
-"Avoid paywalls by redirecting to open-access versions of publications when "
-"available"
-msgstr "Tránh việc trả phí bằng cách chuyển hướng đến các phiên bản truy cập miễn phí của ấn phẩm khi có thể"
-
#: searx/plugins/open_results_on_new_tab.py:18
#: searx/templates/oscar/preferences.html:114
#: searx/templates/simple/preferences.html:149
@@ -329,8 +324,8 @@ msgstr "Phương pháp"
#: searx/templates/courgette/preferences.html:63
#: searx/templates/legacy/preferences.html:64
#: searx/templates/oscar/preferences.html:86
-#: searx/templates/oscar/preferences.html:165
-#: searx/templates/oscar/preferences.html:173
+#: searx/templates/oscar/preferences.html:153
+#: searx/templates/oscar/preferences.html:161
#: searx/templates/simple/preferences.html:63
#: searx/templates/simple/preferences.html:90
msgid "SafeSearch"
@@ -402,8 +397,8 @@ msgstr "Các trình tìm kiếm đang được dùng"
#: searx/templates/courgette/preferences.html:100
#: searx/templates/legacy/preferences.html:97
-#: searx/templates/oscar/preferences.html:162
-#: searx/templates/oscar/preferences.html:176
+#: searx/templates/oscar/preferences.html:150
+#: searx/templates/oscar/preferences.html:164
#: searx/templates/pix-art/preferences.html:53
#: searx/templates/simple/preferences.html:87
msgid "Engine name"
@@ -418,8 +413,8 @@ msgstr "Danh mục"
#: searx/templates/courgette/preferences.html:113
#: searx/templates/legacy/preferences.html:99
#: searx/templates/legacy/preferences.html:110
-#: searx/templates/oscar/preferences.html:161
-#: searx/templates/oscar/preferences.html:177
+#: searx/templates/oscar/preferences.html:149
+#: searx/templates/oscar/preferences.html:165
#: searx/templates/pix-art/preferences.html:54
#: searx/templates/pix-art/preferences.html:64
#: searx/templates/simple/preferences.html:86
@@ -437,7 +432,7 @@ msgstr "Chặn"
#: searx/templates/courgette/preferences.html:122
#: searx/templates/legacy/preferences.html:119
-#: searx/templates/oscar/preferences.html:297
+#: searx/templates/oscar/preferences.html:285
#: searx/templates/pix-art/preferences.html:73
#: searx/templates/simple/preferences.html:180
msgid ""
@@ -447,7 +442,7 @@ msgstr "Những cài đặt này được lưu trữ trong các cookie, điều
#: searx/templates/courgette/preferences.html:124
#: searx/templates/legacy/preferences.html:121
-#: searx/templates/oscar/preferences.html:299
+#: searx/templates/oscar/preferences.html:287
#: searx/templates/pix-art/preferences.html:75
#: searx/templates/simple/preferences.html:182
msgid ""
@@ -457,7 +452,7 @@ msgstr "Những cookie này chỉ phục vụ cho chính bạn, chúng tôi khô
#: searx/templates/courgette/preferences.html:127
#: searx/templates/legacy/preferences.html:124
-#: searx/templates/oscar/preferences.html:305
+#: searx/templates/oscar/preferences.html:293
#: searx/templates/pix-art/preferences.html:78
#: searx/templates/simple/preferences.html:185
msgid "save"
@@ -465,14 +460,14 @@ msgstr "lưu"
#: searx/templates/courgette/preferences.html:128
#: searx/templates/legacy/preferences.html:125
-#: searx/templates/oscar/preferences.html:307
+#: searx/templates/oscar/preferences.html:295
#: searx/templates/simple/preferences.html:186
msgid "Reset defaults"
msgstr "Đưa về mặc định"
#: searx/templates/courgette/preferences.html:129
#: searx/templates/legacy/preferences.html:126
-#: searx/templates/oscar/preferences.html:306
+#: searx/templates/oscar/preferences.html:294
#: searx/templates/pix-art/preferences.html:79
#: searx/templates/simple/preferences.html:187
msgid "back"
@@ -643,23 +638,23 @@ msgid "General"
msgstr "Tổng quát"
#: searx/templates/oscar/preferences.html:14
-#: searx/templates/oscar/preferences.html:146
+#: searx/templates/oscar/preferences.html:134
#: searx/templates/simple/preferences.html:76
msgid "Engines"
msgstr "Các trình tìm kiếm"
#: searx/templates/oscar/preferences.html:15
-#: searx/templates/oscar/preferences.html:219
+#: searx/templates/oscar/preferences.html:207
msgid "Plugins"
msgstr "Các phần mở rộng"
#: searx/templates/oscar/preferences.html:16
-#: searx/templates/oscar/preferences.html:245
+#: searx/templates/oscar/preferences.html:233
msgid "Answerers"
msgstr "Trình trả lời nhanh"
#: searx/templates/oscar/preferences.html:17
-#: searx/templates/oscar/preferences.html:272
+#: searx/templates/oscar/preferences.html:260
msgid "Cookies"
msgstr "Các cookie"
@@ -710,88 +705,78 @@ msgstr "Chọn phong cách cho nền này"
msgid "Style"
msgstr "Phong cách"
-#: searx/templates/oscar/preferences.html:122
-msgid "Open Access DOI resolver"
-msgstr "Trình xử lý DOI Truy Cập Miễn Phí"
-
-#: searx/templates/oscar/preferences.html:123
-msgid ""
-"Redirect to open-access versions of publications when available (plugin "
-"required)"
-msgstr "Chuyển hướng đến các phiên bản truy cập miễn phí của ấn phẩm khi có thể (yêu cầu phần mở rộng)"
-
+#: searx/templates/oscar/preferences.html:151
#: searx/templates/oscar/preferences.html:163
-#: searx/templates/oscar/preferences.html:175
#: searx/templates/simple/preferences.html:88
msgid "Shortcut"
msgstr "Lối tắt"
-#: searx/templates/oscar/preferences.html:164
-#: searx/templates/oscar/preferences.html:174
+#: searx/templates/oscar/preferences.html:152
+#: searx/templates/oscar/preferences.html:162
msgid "Selected language"
msgstr "Ngôn ngữ được chọn"
-#: searx/templates/oscar/preferences.html:166
-#: searx/templates/oscar/preferences.html:172
+#: searx/templates/oscar/preferences.html:154
+#: searx/templates/oscar/preferences.html:160
#: searx/templates/simple/preferences.html:91
msgid "Time range"
msgstr "Khoảng thời gian"
-#: searx/templates/oscar/preferences.html:167
-#: searx/templates/oscar/preferences.html:171
+#: searx/templates/oscar/preferences.html:155
+#: searx/templates/oscar/preferences.html:159
#: searx/templates/simple/preferences.html:92
msgid "Avg. time"
msgstr "Thời gian trung bình"
-#: searx/templates/oscar/preferences.html:168
-#: searx/templates/oscar/preferences.html:170
+#: searx/templates/oscar/preferences.html:156
+#: searx/templates/oscar/preferences.html:158
#: searx/templates/simple/preferences.html:93
msgid "Max time"
msgstr "Thời gian tối đa"
-#: searx/templates/oscar/preferences.html:248
+#: searx/templates/oscar/preferences.html:236
msgid "This is the list of searx's instant answering modules."
msgstr "Đây là danh sách các module trả lời nhanh của searx"
-#: searx/templates/oscar/preferences.html:252
+#: searx/templates/oscar/preferences.html:240
msgid "Name"
msgstr "Tên"
-#: searx/templates/oscar/preferences.html:253
+#: searx/templates/oscar/preferences.html:241
msgid "Keywords"
msgstr "Các từ khoá"
-#: searx/templates/oscar/preferences.html:254
+#: searx/templates/oscar/preferences.html:242
msgid "Description"
msgstr "Mô tả"
-#: searx/templates/oscar/preferences.html:255
+#: searx/templates/oscar/preferences.html:243
msgid "Examples"
msgstr "Các ví dụ"
-#: searx/templates/oscar/preferences.html:275
+#: searx/templates/oscar/preferences.html:263
msgid ""
"This is the list of cookies and their values searx is storing on your "
"computer."
msgstr "Đây là danh sách các cookie và giá trị của chúng mà searx đang lưu trữ trên máy tính của bạn."
-#: searx/templates/oscar/preferences.html:276
+#: searx/templates/oscar/preferences.html:264
msgid "With that list, you can assess searx transparency."
msgstr "Với danh sách này, bạn có thể đánh giá tính minh bạch của searx."
-#: searx/templates/oscar/preferences.html:281
+#: searx/templates/oscar/preferences.html:269
msgid "Cookie name"
msgstr "Tên cookie"
-#: searx/templates/oscar/preferences.html:282
+#: searx/templates/oscar/preferences.html:270
msgid "Value"
msgstr "Giá trị"
-#: searx/templates/oscar/preferences.html:301
+#: searx/templates/oscar/preferences.html:289
msgid "Search URL of the currently saved preferences"
msgstr "URL tìm kiếm của tuỳ chỉnh được lưu hiện tại"
-#: searx/templates/oscar/preferences.html:301
+#: searx/templates/oscar/preferences.html:289
msgid ""
"Note: specifying custom settings in the search URL can reduce privacy by "
"leaking data to the clicked result sites."
diff --git a/searx/translations/zh_CN/LC_MESSAGES/messages.mo b/searx/translations/zh_CN/LC_MESSAGES/messages.mo
index c2006aca1..081fc8818 100644
--- a/searx/translations/zh_CN/LC_MESSAGES/messages.mo
+++ b/searx/translations/zh_CN/LC_MESSAGES/messages.mo
Binary files differ
diff --git a/searx/translations/zh_CN/LC_MESSAGES/messages.po b/searx/translations/zh_CN/LC_MESSAGES/messages.po
index 78acb2d40..c37c65114 100644
--- a/searx/translations/zh_CN/LC_MESSAGES/messages.po
+++ b/searx/translations/zh_CN/LC_MESSAGES/messages.po
@@ -4,7 +4,9 @@
#
# Translators:
# Crystal RainSlide, 2018
+# Jsthon, 2019
# Mingye Wang <arthur200126@gmail.com>, 2018
+# Noémi Ványi <sitbackandwait@gmail.com>, 2019
# Sion Kazama, 2018
# wenke, 2015
# wenke, 2015-2018
@@ -12,9 +14,9 @@ msgid ""
msgstr ""
"Project-Id-Version: searx\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
-"POT-Creation-Date: 2017-11-01 21:31+0100\n"
-"PO-Revision-Date: 2018-12-10 08:32+0000\n"
-"Last-Translator: Crystal RainSlide\n"
+"POT-Creation-Date: 2017-10-07 19:18+0200\n"
+"PO-Revision-Date: 2019-03-23 07:45+0000\n"
+"Last-Translator: Jsthon\n"
"Language-Team: Chinese (China) (http://www.transifex.com/asciimoo/searx/language/zh_CN/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
@@ -35,63 +37,63 @@ msgstr "请求异常"
msgid "unexpected crash"
msgstr "意外崩溃"
-#: searx/webapp.py:136
+#: searx/webapp.py:135
msgid "files"
msgstr "文件"
-#: searx/webapp.py:137
+#: searx/webapp.py:136
msgid "general"
msgstr "全部"
-#: searx/webapp.py:138
+#: searx/webapp.py:137
msgid "music"
msgstr "音乐"
-#: searx/webapp.py:139
+#: searx/webapp.py:138
msgid "social media"
-msgstr "社交媒体"
+msgstr "社交"
-#: searx/webapp.py:140
+#: searx/webapp.py:139
msgid "images"
msgstr "图片"
-#: searx/webapp.py:141
+#: searx/webapp.py:140
msgid "videos"
msgstr "视频"
-#: searx/webapp.py:142
+#: searx/webapp.py:141
msgid "it"
-msgstr "IT"
+msgstr "技术"
-#: searx/webapp.py:143
+#: searx/webapp.py:142
msgid "news"
msgstr "新闻"
-#: searx/webapp.py:144
+#: searx/webapp.py:143
msgid "map"
msgstr "地图"
-#: searx/webapp.py:145
+#: searx/webapp.py:144
msgid "science"
msgstr "学术"
-#: searx/webapp.py:399 searx/webapp.py:658
+#: searx/webapp.py:398 searx/webapp.py:653
msgid "Invalid settings, please edit your preferences"
msgstr "设置无效,请编辑您的首选项"
-#: searx/webapp.py:415
+#: searx/webapp.py:410
msgid "Invalid settings"
msgstr "设置无效"
-#: searx/webapp.py:449 searx/webapp.py:493
+#: searx/webapp.py:444 searx/webapp.py:488
msgid "search error"
msgstr "搜索错误"
-#: searx/webapp.py:530
+#: searx/webapp.py:525
msgid "{minutes} minute(s) ago"
msgstr "{minutes} 分钟前"
-#: searx/webapp.py:532
+#: searx/webapp.py:527
msgid "{hours} hour(s), {minutes} minute(s) ago"
msgstr "{hours} 小时 {minutes} 分钟前"
@@ -111,29 +113,28 @@ msgstr "统计功能"
msgid "Compute {functions} of the arguments"
msgstr "计算 {functions} 参数"
-#: searx/engines/__init__.py:194 searx/engines/flycheck___init__.py:201
+#: searx/engines/__init__.py:194
msgid "Engine time (sec)"
msgstr "搜索引擎时间(秒)"
-#: searx/engines/__init__.py:198 searx/engines/flycheck___init__.py:205
+#: searx/engines/__init__.py:198
msgid "Page loads (sec)"
msgstr "页面加载(秒)"
-#: searx/engines/__init__.py:202 searx/engines/flycheck___init__.py:209
-#: searx/templates/oscar/results.html:95
+#: searx/engines/__init__.py:202 searx/templates/oscar/results.html:95
#: searx/templates/simple/results.html:20
msgid "Number of results"
msgstr "结果数"
-#: searx/engines/__init__.py:206 searx/engines/flycheck___init__.py:213
+#: searx/engines/__init__.py:206
msgid "Scores"
msgstr "得分"
-#: searx/engines/__init__.py:210 searx/engines/flycheck___init__.py:217
+#: searx/engines/__init__.py:210
msgid "Scores per result"
msgstr "每个结果的分数"
-#: searx/engines/__init__.py:214 searx/engines/flycheck___init__.py:221
+#: searx/engines/__init__.py:214
msgid "Errors"
msgstr "错误"
@@ -145,9 +146,15 @@ msgstr "{title}&nbsp;(过时)"
msgid "This entry has been superseded by"
msgstr "此条目已被取代"
-#: searx/engines/pubmed.py:74
-msgid "No abstract is available for this publication."
-msgstr "本出版物没有摘要。"
+#: searx/plugins/doai_rewrite.py:7
+msgid "DOAI rewrite"
+msgstr "DOAI改写"
+
+#: searx/plugins/doai_rewrite.py:8
+msgid ""
+"Avoid paywalls by redirecting to open-access versions of publications when "
+"available"
+msgstr "尽量重定向到开放访问的文章以避免付费墙(如果可用)"
#: searx/plugins/https_rewrite.py:32
msgid "Rewrite HTTP links to HTTPS if possible"
@@ -161,16 +168,6 @@ msgstr "无限滚动"
msgid "Automatically load next page when scrolling to bottom of current page"
msgstr "滚动到当前页面底部时自动加载下一页"
-#: searx/plugins/oa_doi_rewrite.py:9
-msgid "Open Access DOI rewrite"
-msgstr "开放访问 DOI 重定向"
-
-#: searx/plugins/oa_doi_rewrite.py:10
-msgid ""
-"Avoid paywalls by redirecting to open-access versions of publications when "
-"available"
-msgstr "尽量重定向到开放访问的文章以避免付费墙(如果可用)"
-
#: searx/plugins/open_results_on_new_tab.py:18
#: searx/templates/oscar/preferences.html:114
#: searx/templates/simple/preferences.html:149
@@ -333,8 +330,8 @@ msgstr "方法"
#: searx/templates/courgette/preferences.html:63
#: searx/templates/legacy/preferences.html:64
#: searx/templates/oscar/preferences.html:86
-#: searx/templates/oscar/preferences.html:165
-#: searx/templates/oscar/preferences.html:173
+#: searx/templates/oscar/preferences.html:153
+#: searx/templates/oscar/preferences.html:161
#: searx/templates/simple/preferences.html:63
#: searx/templates/simple/preferences.html:90
msgid "SafeSearch"
@@ -406,8 +403,8 @@ msgstr "目前使用的搜索引擎"
#: searx/templates/courgette/preferences.html:100
#: searx/templates/legacy/preferences.html:97
-#: searx/templates/oscar/preferences.html:162
-#: searx/templates/oscar/preferences.html:176
+#: searx/templates/oscar/preferences.html:150
+#: searx/templates/oscar/preferences.html:164
#: searx/templates/pix-art/preferences.html:53
#: searx/templates/simple/preferences.html:87
msgid "Engine name"
@@ -422,8 +419,8 @@ msgstr "类别"
#: searx/templates/courgette/preferences.html:113
#: searx/templates/legacy/preferences.html:99
#: searx/templates/legacy/preferences.html:110
-#: searx/templates/oscar/preferences.html:161
-#: searx/templates/oscar/preferences.html:177
+#: searx/templates/oscar/preferences.html:149
+#: searx/templates/oscar/preferences.html:165
#: searx/templates/pix-art/preferences.html:54
#: searx/templates/pix-art/preferences.html:64
#: searx/templates/simple/preferences.html:86
@@ -441,7 +438,7 @@ msgstr "阻止"
#: searx/templates/courgette/preferences.html:122
#: searx/templates/legacy/preferences.html:119
-#: searx/templates/oscar/preferences.html:297
+#: searx/templates/oscar/preferences.html:285
#: searx/templates/pix-art/preferences.html:73
#: searx/templates/simple/preferences.html:180
msgid ""
@@ -451,7 +448,7 @@ msgstr "这些设置被存储在您的 cookie 中,这种保存设置的方式
#: searx/templates/courgette/preferences.html:124
#: searx/templates/legacy/preferences.html:121
-#: searx/templates/oscar/preferences.html:299
+#: searx/templates/oscar/preferences.html:287
#: searx/templates/pix-art/preferences.html:75
#: searx/templates/simple/preferences.html:182
msgid ""
@@ -461,7 +458,7 @@ msgstr "这些 Cookie 信息可辅助您便捷地使用服务,我们不会利
#: searx/templates/courgette/preferences.html:127
#: searx/templates/legacy/preferences.html:124
-#: searx/templates/oscar/preferences.html:305
+#: searx/templates/oscar/preferences.html:293
#: searx/templates/pix-art/preferences.html:78
#: searx/templates/simple/preferences.html:185
msgid "save"
@@ -469,14 +466,14 @@ msgstr "保存"
#: searx/templates/courgette/preferences.html:128
#: searx/templates/legacy/preferences.html:125
-#: searx/templates/oscar/preferences.html:307
+#: searx/templates/oscar/preferences.html:295
#: searx/templates/simple/preferences.html:186
msgid "Reset defaults"
msgstr "恢复默认"
#: searx/templates/courgette/preferences.html:129
#: searx/templates/legacy/preferences.html:126
-#: searx/templates/oscar/preferences.html:306
+#: searx/templates/oscar/preferences.html:294
#: searx/templates/pix-art/preferences.html:79
#: searx/templates/simple/preferences.html:187
msgid "back"
@@ -647,23 +644,23 @@ msgid "General"
msgstr "常规"
#: searx/templates/oscar/preferences.html:14
-#: searx/templates/oscar/preferences.html:146
+#: searx/templates/oscar/preferences.html:134
#: searx/templates/simple/preferences.html:76
msgid "Engines"
msgstr "搜索引擎"
#: searx/templates/oscar/preferences.html:15
-#: searx/templates/oscar/preferences.html:219
+#: searx/templates/oscar/preferences.html:207
msgid "Plugins"
msgstr "插件"
#: searx/templates/oscar/preferences.html:16
-#: searx/templates/oscar/preferences.html:245
+#: searx/templates/oscar/preferences.html:233
msgid "Answerers"
msgstr "智能答复"
#: searx/templates/oscar/preferences.html:17
-#: searx/templates/oscar/preferences.html:272
+#: searx/templates/oscar/preferences.html:260
msgid "Cookies"
msgstr "Cookies"
@@ -692,7 +689,7 @@ msgid ""
"Change how forms are submited, <a "
"href=\"http://en.wikipedia.org/wiki/Hypertext_Transfer_Protocol#Request_methods\""
" rel=\"external\">learn more about request methods</a>"
-msgstr "更改提交表单时使用的请求方法,<a href=\"https://zh.wikipedia.org/wiki/%E8%B6%85%E6%96%87%E6%9C%AC%E4%BC%A0%E8%BE%93%E5%8D%8F%E8%AE%AE#%E8%AF%B7%E6%B1%82%E6%96%B9%E6%B3%95\" rel=\"external\">深入了解请求方法</a>"
+msgstr "更改提交表单时使用的请求方法,<a href=\"https://zh.wikipedia.org/wiki/超文本传输协议#请求方法\" rel=\"external\">深入了解请求方法</a>"
#: searx/templates/oscar/preferences.html:87
#: searx/templates/simple/preferences.html:71
@@ -714,88 +711,78 @@ msgstr "选择此主题的样式"
msgid "Style"
msgstr "样式"
-#: searx/templates/oscar/preferences.html:122
-msgid "Open Access DOI resolver"
-msgstr "开放访问 DOI 解析器"
-
-#: searx/templates/oscar/preferences.html:123
-msgid ""
-"Redirect to open-access versions of publications when available (plugin "
-"required)"
-msgstr "尽可能重定向到出版物的开放访问版本(需要插件)"
-
+#: searx/templates/oscar/preferences.html:151
#: searx/templates/oscar/preferences.html:163
-#: searx/templates/oscar/preferences.html:175
#: searx/templates/simple/preferences.html:88
msgid "Shortcut"
msgstr "快捷键"
-#: searx/templates/oscar/preferences.html:164
-#: searx/templates/oscar/preferences.html:174
+#: searx/templates/oscar/preferences.html:152
+#: searx/templates/oscar/preferences.html:162
msgid "Selected language"
msgstr "选择语言"
-#: searx/templates/oscar/preferences.html:166
-#: searx/templates/oscar/preferences.html:172
+#: searx/templates/oscar/preferences.html:154
+#: searx/templates/oscar/preferences.html:160
#: searx/templates/simple/preferences.html:91
msgid "Time range"
msgstr "时间范围"
-#: searx/templates/oscar/preferences.html:167
-#: searx/templates/oscar/preferences.html:171
+#: searx/templates/oscar/preferences.html:155
+#: searx/templates/oscar/preferences.html:159
#: searx/templates/simple/preferences.html:92
msgid "Avg. time"
msgstr "平均时间"
-#: searx/templates/oscar/preferences.html:168
-#: searx/templates/oscar/preferences.html:170
+#: searx/templates/oscar/preferences.html:156
+#: searx/templates/oscar/preferences.html:158
#: searx/templates/simple/preferences.html:93
msgid "Max time"
msgstr "最大时间"
-#: searx/templates/oscar/preferences.html:248
+#: searx/templates/oscar/preferences.html:236
msgid "This is the list of searx's instant answering modules."
msgstr "这是 searx 的即时回答模块列表。"
-#: searx/templates/oscar/preferences.html:252
+#: searx/templates/oscar/preferences.html:240
msgid "Name"
msgstr "名称"
-#: searx/templates/oscar/preferences.html:253
+#: searx/templates/oscar/preferences.html:241
msgid "Keywords"
msgstr "关键词"
-#: searx/templates/oscar/preferences.html:254
+#: searx/templates/oscar/preferences.html:242
msgid "Description"
msgstr "描述"
-#: searx/templates/oscar/preferences.html:255
+#: searx/templates/oscar/preferences.html:243
msgid "Examples"
msgstr "示例"
-#: searx/templates/oscar/preferences.html:275
+#: searx/templates/oscar/preferences.html:263
msgid ""
"This is the list of cookies and their values searx is storing on your "
"computer."
msgstr "此列表展示了 searx 在您设备上存储的 cookie 信息。"
-#: searx/templates/oscar/preferences.html:276
+#: searx/templates/oscar/preferences.html:264
msgid "With that list, you can assess searx transparency."
msgstr "您可以基于此表格来评估 searx 的透明度。"
-#: searx/templates/oscar/preferences.html:281
+#: searx/templates/oscar/preferences.html:269
msgid "Cookie name"
msgstr "Cookie 名称"
-#: searx/templates/oscar/preferences.html:282
+#: searx/templates/oscar/preferences.html:270
msgid "Value"
msgstr "值"
-#: searx/templates/oscar/preferences.html:301
+#: searx/templates/oscar/preferences.html:289
msgid "Search URL of the currently saved preferences"
msgstr "当前保存选项的搜索链接"
-#: searx/templates/oscar/preferences.html:301
+#: searx/templates/oscar/preferences.html:289
msgid ""
"Note: specifying custom settings in the search URL can reduce privacy by "
"leaking data to the clicked result sites."
diff --git a/searx/translations/zh_Hant_TW/LC_MESSAGES/messages.mo b/searx/translations/zh_Hant_TW/LC_MESSAGES/messages.mo
index 0b2a3c921..54e063875 100644
--- a/searx/translations/zh_Hant_TW/LC_MESSAGES/messages.mo
+++ b/searx/translations/zh_Hant_TW/LC_MESSAGES/messages.mo
Binary files differ
diff --git a/searx/translations/zh_TW/LC_MESSAGES/messages.mo b/searx/translations/zh_TW/LC_MESSAGES/messages.mo
index b6d43e2a8..ee24c1e77 100644
--- a/searx/translations/zh_TW/LC_MESSAGES/messages.mo
+++ b/searx/translations/zh_TW/LC_MESSAGES/messages.mo
Binary files differ
diff --git a/searx/translations/zh_TW/LC_MESSAGES/messages.po b/searx/translations/zh_TW/LC_MESSAGES/messages.po
index 0a4796f97..d09317ab2 100644
--- a/searx/translations/zh_TW/LC_MESSAGES/messages.po
+++ b/searx/translations/zh_TW/LC_MESSAGES/messages.po
@@ -4,15 +4,16 @@
#
# Translators:
# FIRST AUTHOR <EMAIL@ADDRESS>, 2016
-# Jeff Huang <s8321414@gmail.com>, 2017
+# 黃柏諺 <s8321414@gmail.com>, 2017,2019
+# Marc Abonce Seguin, 2019
# Mingye Wang <arthur200126@gmail.com>, 2018
msgid ""
msgstr ""
"Project-Id-Version: searx\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
-"POT-Creation-Date: 2017-11-01 21:31+0100\n"
-"PO-Revision-Date: 2018-09-16 00:29+0000\n"
-"Last-Translator: Mingye Wang <arthur200126@gmail.com>\n"
+"POT-Creation-Date: 2017-10-07 19:18+0200\n"
+"PO-Revision-Date: 2019-07-28 05:46+0000\n"
+"Last-Translator: Marc Abonce Seguin\n"
"Language-Team: Chinese (Taiwan) (http://www.transifex.com/asciimoo/searx/language/zh_TW/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
@@ -33,63 +34,63 @@ msgstr "請求例外"
msgid "unexpected crash"
msgstr "未預期的當機"
-#: searx/webapp.py:136
+#: searx/webapp.py:135
msgid "files"
msgstr "檔案"
-#: searx/webapp.py:137
+#: searx/webapp.py:136
msgid "general"
msgstr "一般"
-#: searx/webapp.py:138
+#: searx/webapp.py:137
msgid "music"
msgstr "音樂"
-#: searx/webapp.py:139
+#: searx/webapp.py:138
msgid "social media"
msgstr "社群媒體"
-#: searx/webapp.py:140
+#: searx/webapp.py:139
msgid "images"
msgstr "圖片"
-#: searx/webapp.py:141
+#: searx/webapp.py:140
msgid "videos"
msgstr "影片"
-#: searx/webapp.py:142
+#: searx/webapp.py:141
msgid "it"
msgstr "IT"
-#: searx/webapp.py:143
+#: searx/webapp.py:142
msgid "news"
msgstr "新聞"
-#: searx/webapp.py:144
+#: searx/webapp.py:143
msgid "map"
msgstr "地圖"
-#: searx/webapp.py:145
+#: searx/webapp.py:144
msgid "science"
msgstr "科學"
-#: searx/webapp.py:399 searx/webapp.py:658
+#: searx/webapp.py:398 searx/webapp.py:653
msgid "Invalid settings, please edit your preferences"
msgstr "無效的設定,請編輯您的偏好設定"
-#: searx/webapp.py:415
+#: searx/webapp.py:410
msgid "Invalid settings"
msgstr "無效的設定"
-#: searx/webapp.py:449 searx/webapp.py:493
+#: searx/webapp.py:444 searx/webapp.py:488
msgid "search error"
msgstr "搜尋錯誤"
-#: searx/webapp.py:530
+#: searx/webapp.py:525
msgid "{minutes} minute(s) ago"
msgstr "{minutes} 分鐘前"
-#: searx/webapp.py:532
+#: searx/webapp.py:527
msgid "{hours} hour(s), {minutes} minute(s) ago"
msgstr "{hours} 小時 {minutes} 分鐘前"
@@ -109,29 +110,28 @@ msgstr "統計功能"
msgid "Compute {functions} of the arguments"
msgstr "計算 {functions} 參數"
-#: searx/engines/__init__.py:194 searx/engines/flycheck___init__.py:201
+#: searx/engines/__init__.py:194
msgid "Engine time (sec)"
msgstr "引擎時間(秒)"
-#: searx/engines/__init__.py:198 searx/engines/flycheck___init__.py:205
+#: searx/engines/__init__.py:198
msgid "Page loads (sec)"
msgstr "頁面載入(秒)"
-#: searx/engines/__init__.py:202 searx/engines/flycheck___init__.py:209
-#: searx/templates/oscar/results.html:95
+#: searx/engines/__init__.py:202 searx/templates/oscar/results.html:95
#: searx/templates/simple/results.html:20
msgid "Number of results"
msgstr "結果筆數"
-#: searx/engines/__init__.py:206 searx/engines/flycheck___init__.py:213
+#: searx/engines/__init__.py:206
msgid "Scores"
msgstr "分數"
-#: searx/engines/__init__.py:210 searx/engines/flycheck___init__.py:217
+#: searx/engines/__init__.py:210
msgid "Scores per result"
msgstr "每個結果的分數"
-#: searx/engines/__init__.py:214 searx/engines/flycheck___init__.py:221
+#: searx/engines/__init__.py:214
msgid "Errors"
msgstr "錯誤"
@@ -143,9 +143,15 @@ msgstr "{title}&nbsp;(已過時)"
msgid "This entry has been superseded by"
msgstr "此條目已被取代"
-#: searx/engines/pubmed.py:74
-msgid "No abstract is available for this publication."
-msgstr "此出版品無可用摘要。"
+#: searx/plugins/doai_rewrite.py:7
+msgid "DOAI rewrite"
+msgstr "DOAI 重寫"
+
+#: searx/plugins/doai_rewrite.py:8
+msgid ""
+"Avoid paywalls by redirecting to open-access versions of publications when "
+"available"
+msgstr "盡可能重新導向至出版品的開放存取版本,來避免付費牆"
#: searx/plugins/https_rewrite.py:32
msgid "Rewrite HTTP links to HTTPS if possible"
@@ -159,16 +165,6 @@ msgstr "無限捲動"
msgid "Automatically load next page when scrolling to bottom of current page"
msgstr "當捲動至目前頁面的底部時自動載入下一頁"
-#: searx/plugins/oa_doi_rewrite.py:9
-msgid "Open Access DOI rewrite"
-msgstr "開放存取 DOI 重寫"
-
-#: searx/plugins/oa_doi_rewrite.py:10
-msgid ""
-"Avoid paywalls by redirecting to open-access versions of publications when "
-"available"
-msgstr "盡可能重新導向至出版品的開放存取版本,來避免付費牆"
-
#: searx/plugins/open_results_on_new_tab.py:18
#: searx/templates/oscar/preferences.html:114
#: searx/templates/simple/preferences.html:149
@@ -331,8 +327,8 @@ msgstr "方法"
#: searx/templates/courgette/preferences.html:63
#: searx/templates/legacy/preferences.html:64
#: searx/templates/oscar/preferences.html:86
-#: searx/templates/oscar/preferences.html:165
-#: searx/templates/oscar/preferences.html:173
+#: searx/templates/oscar/preferences.html:153
+#: searx/templates/oscar/preferences.html:161
#: searx/templates/simple/preferences.html:63
#: searx/templates/simple/preferences.html:90
msgid "SafeSearch"
@@ -404,8 +400,8 @@ msgstr "目前使用的搜尋引擎"
#: searx/templates/courgette/preferences.html:100
#: searx/templates/legacy/preferences.html:97
-#: searx/templates/oscar/preferences.html:162
-#: searx/templates/oscar/preferences.html:176
+#: searx/templates/oscar/preferences.html:150
+#: searx/templates/oscar/preferences.html:164
#: searx/templates/pix-art/preferences.html:53
#: searx/templates/simple/preferences.html:87
msgid "Engine name"
@@ -420,8 +416,8 @@ msgstr "分類"
#: searx/templates/courgette/preferences.html:113
#: searx/templates/legacy/preferences.html:99
#: searx/templates/legacy/preferences.html:110
-#: searx/templates/oscar/preferences.html:161
-#: searx/templates/oscar/preferences.html:177
+#: searx/templates/oscar/preferences.html:149
+#: searx/templates/oscar/preferences.html:165
#: searx/templates/pix-art/preferences.html:54
#: searx/templates/pix-art/preferences.html:64
#: searx/templates/simple/preferences.html:86
@@ -439,7 +435,7 @@ msgstr "封鎖"
#: searx/templates/courgette/preferences.html:122
#: searx/templates/legacy/preferences.html:119
-#: searx/templates/oscar/preferences.html:297
+#: searx/templates/oscar/preferences.html:285
#: searx/templates/pix-art/preferences.html:73
#: searx/templates/simple/preferences.html:180
msgid ""
@@ -449,7 +445,7 @@ msgstr "這些設定只會儲存在您的 cookies 中,這樣我們無需也不
#: searx/templates/courgette/preferences.html:124
#: searx/templates/legacy/preferences.html:121
-#: searx/templates/oscar/preferences.html:299
+#: searx/templates/oscar/preferences.html:287
#: searx/templates/pix-art/preferences.html:75
#: searx/templates/simple/preferences.html:182
msgid ""
@@ -459,7 +455,7 @@ msgstr "這些 cookies 僅做為提供您方便之用,我們不會使用這些
#: searx/templates/courgette/preferences.html:127
#: searx/templates/legacy/preferences.html:124
-#: searx/templates/oscar/preferences.html:305
+#: searx/templates/oscar/preferences.html:293
#: searx/templates/pix-art/preferences.html:78
#: searx/templates/simple/preferences.html:185
msgid "save"
@@ -467,14 +463,14 @@ msgstr "儲存"
#: searx/templates/courgette/preferences.html:128
#: searx/templates/legacy/preferences.html:125
-#: searx/templates/oscar/preferences.html:307
+#: searx/templates/oscar/preferences.html:295
#: searx/templates/simple/preferences.html:186
msgid "Reset defaults"
msgstr "重設為預設值"
#: searx/templates/courgette/preferences.html:129
#: searx/templates/legacy/preferences.html:126
-#: searx/templates/oscar/preferences.html:306
+#: searx/templates/oscar/preferences.html:294
#: searx/templates/pix-art/preferences.html:79
#: searx/templates/simple/preferences.html:187
msgid "back"
@@ -645,23 +641,23 @@ msgid "General"
msgstr "一般"
#: searx/templates/oscar/preferences.html:14
-#: searx/templates/oscar/preferences.html:146
+#: searx/templates/oscar/preferences.html:134
#: searx/templates/simple/preferences.html:76
msgid "Engines"
msgstr "引擎"
#: searx/templates/oscar/preferences.html:15
-#: searx/templates/oscar/preferences.html:219
+#: searx/templates/oscar/preferences.html:207
msgid "Plugins"
msgstr "外掛程式"
#: searx/templates/oscar/preferences.html:16
-#: searx/templates/oscar/preferences.html:245
+#: searx/templates/oscar/preferences.html:233
msgid "Answerers"
msgstr "答案"
#: searx/templates/oscar/preferences.html:17
-#: searx/templates/oscar/preferences.html:272
+#: searx/templates/oscar/preferences.html:260
msgid "Cookies"
msgstr "Cookies"
@@ -690,7 +686,7 @@ msgid ""
"Change how forms are submited, <a "
"href=\"http://en.wikipedia.org/wiki/Hypertext_Transfer_Protocol#Request_methods\""
" rel=\"external\">learn more about request methods</a>"
-msgstr "變更遞交形式,<a href=\"https://zh.wikipedia.org/wiki/%E8%B6%85%E6%96%87%E6%9C%AC%E4%BC%A0%E8%BE%93%E5%8D%8F%E8%AE%AE#%E8%AF%B7%E6%B1%82%E6%96%B9%E6%B3%95\" rel=\"external\">看看更多關於請求方法的介紹</a>"
+msgstr "變更遞交形式,<a href=\"https://zh.wikipedia.org/wiki/超文本传输协议#请求方法\" rel=\"external\">看看更多關於請求方法的介紹</a>"
#: searx/templates/oscar/preferences.html:87
#: searx/templates/simple/preferences.html:71
@@ -712,88 +708,78 @@ msgstr "選擇這個主題的樣式"
msgid "Style"
msgstr "樣式"
-#: searx/templates/oscar/preferences.html:122
-msgid "Open Access DOI resolver"
-msgstr "開放存取 DOI 解析器"
-
-#: searx/templates/oscar/preferences.html:123
-msgid ""
-"Redirect to open-access versions of publications when available (plugin "
-"required)"
-msgstr "盡可能重新導向至出版品的開放存取版本(需要外掛程式)"
-
+#: searx/templates/oscar/preferences.html:151
#: searx/templates/oscar/preferences.html:163
-#: searx/templates/oscar/preferences.html:175
#: searx/templates/simple/preferences.html:88
msgid "Shortcut"
msgstr "快捷鍵"
-#: searx/templates/oscar/preferences.html:164
-#: searx/templates/oscar/preferences.html:174
+#: searx/templates/oscar/preferences.html:152
+#: searx/templates/oscar/preferences.html:162
msgid "Selected language"
msgstr "已選取的語言"
-#: searx/templates/oscar/preferences.html:166
-#: searx/templates/oscar/preferences.html:172
+#: searx/templates/oscar/preferences.html:154
+#: searx/templates/oscar/preferences.html:160
#: searx/templates/simple/preferences.html:91
msgid "Time range"
msgstr "時間範圍"
-#: searx/templates/oscar/preferences.html:167
-#: searx/templates/oscar/preferences.html:171
+#: searx/templates/oscar/preferences.html:155
+#: searx/templates/oscar/preferences.html:159
#: searx/templates/simple/preferences.html:92
msgid "Avg. time"
msgstr "平均時間"
-#: searx/templates/oscar/preferences.html:168
-#: searx/templates/oscar/preferences.html:170
+#: searx/templates/oscar/preferences.html:156
+#: searx/templates/oscar/preferences.html:158
#: searx/templates/simple/preferences.html:93
msgid "Max time"
msgstr "最大時間"
-#: searx/templates/oscar/preferences.html:248
+#: searx/templates/oscar/preferences.html:236
msgid "This is the list of searx's instant answering modules."
msgstr "這是 searx 的即時回覆模組清單。"
-#: searx/templates/oscar/preferences.html:252
+#: searx/templates/oscar/preferences.html:240
msgid "Name"
msgstr "名稱"
-#: searx/templates/oscar/preferences.html:253
+#: searx/templates/oscar/preferences.html:241
msgid "Keywords"
msgstr "關鍵字"
-#: searx/templates/oscar/preferences.html:254
+#: searx/templates/oscar/preferences.html:242
msgid "Description"
msgstr "描述"
-#: searx/templates/oscar/preferences.html:255
+#: searx/templates/oscar/preferences.html:243
msgid "Examples"
msgstr "範例"
-#: searx/templates/oscar/preferences.html:275
+#: searx/templates/oscar/preferences.html:263
msgid ""
"This is the list of cookies and their values searx is storing on your "
"computer."
msgstr "這是 searx 儲存在您電腦上的 cookies 與它們的值的清單。"
-#: searx/templates/oscar/preferences.html:276
+#: searx/templates/oscar/preferences.html:264
msgid "With that list, you can assess searx transparency."
msgstr "有了這份清單,您就可以評估 searx 的透明度。"
-#: searx/templates/oscar/preferences.html:281
+#: searx/templates/oscar/preferences.html:269
msgid "Cookie name"
msgstr "Cookie 名稱"
-#: searx/templates/oscar/preferences.html:282
+#: searx/templates/oscar/preferences.html:270
msgid "Value"
msgstr "值"
-#: searx/templates/oscar/preferences.html:301
+#: searx/templates/oscar/preferences.html:289
msgid "Search URL of the currently saved preferences"
msgstr "目前偏好設定的搜尋 URL"
-#: searx/templates/oscar/preferences.html:301
+#: searx/templates/oscar/preferences.html:289
msgid ""
"Note: specifying custom settings in the search URL can reduce privacy by "
"leaking data to the clicked result sites."
diff --git a/searx/utils.py b/searx/utils.py
index dfa22c5fc..5ea9dc89c 100644
--- a/searx/utils.py
+++ b/searx/utils.py
@@ -1,3 +1,4 @@
+# -*- coding: utf-8 -*-
import csv
import hashlib
import hmac
@@ -12,6 +13,7 @@ from numbers import Number
from os.path import splitext, join
from io import open
from random import choice
+from lxml.etree import XPath
import sys
import json
@@ -44,9 +46,15 @@ logger = logger.getChild('utils')
blocked_tags = ('script',
'style')
+ecma_unescape4_re = re.compile(r'%u([0-9a-fA-F]{4})', re.UNICODE)
+ecma_unescape2_re = re.compile(r'%([0-9a-fA-F]{2})', re.UNICODE)
+
useragents = json.loads(open(os.path.dirname(os.path.realpath(__file__))
+ "/data/useragents.json", 'r', encoding='utf-8').read())
+xpath_cache = dict()
+lang_to_lc_cache = dict()
+
def searx_useragent():
return 'searx/{searx_version} {suffix}'.format(
@@ -183,7 +191,7 @@ def get_resources_directory(searx_directory, subdirectory, resources_directory):
if not resources_directory:
resources_directory = os.path.join(searx_directory, subdirectory)
if not os.path.isdir(resources_directory):
- raise Exception(directory + " is not a directory")
+ raise Exception(resources_directory + " is not a directory")
return resources_directory
@@ -302,18 +310,30 @@ def int_or_zero(num):
def is_valid_lang(lang):
is_abbr = (len(lang) == 2)
+ lang = lang.lower().decode('utf-8')
if is_abbr:
for l in language_codes:
- if l[0][:2] == lang.lower():
+ if l[0][:2] == lang:
return (True, l[0][:2], l[3].lower())
return False
else:
for l in language_codes:
- if l[1].lower() == lang.lower():
+ if l[1].lower() == lang or l[3].lower() == lang:
return (True, l[0][:2], l[3].lower())
return False
+def _get_lang_to_lc_dict(lang_list):
+ key = str(lang_list)
+ value = lang_to_lc_cache.get(key, None)
+ if value is None:
+ value = dict()
+ for lc in lang_list:
+ value.setdefault(lc.split('-')[0], lc)
+ lang_to_lc_cache[key] = value
+ return value
+
+
# auxiliary function to match lang_code in lang_list
def _match_language(lang_code, lang_list=[], custom_aliases={}):
# replace language code with a custom alias if necessary
@@ -334,11 +354,7 @@ def _match_language(lang_code, lang_list=[], custom_aliases={}):
return new_code
# try to get the any supported country for this language
- for lc in lang_list:
- if lang_code == lc.split('-')[0]:
- return lc
-
- return None
+ return _get_lang_to_lc_dict(lang_list).get(lang_code, None)
# get the language code from lang_list that best matches locale_code
@@ -384,10 +400,17 @@ def load_module(filename, module_dir):
def new_hmac(secret_key, url):
+ try:
+ secret_key_bytes = bytes(secret_key, 'utf-8')
+ except TypeError as err:
+ if isinstance(secret_key, bytes):
+ secret_key_bytes = secret_key
+ else:
+ raise err
if sys.version_info[0] == 2:
return hmac.new(bytes(secret_key), url, hashlib.sha256).hexdigest()
else:
- return hmac.new(bytes(secret_key, 'utf-8'), url, hashlib.sha256).hexdigest()
+ return hmac.new(secret_key_bytes, url, hashlib.sha256).hexdigest()
def to_string(obj):
@@ -399,3 +422,46 @@ def to_string(obj):
return obj.__str__()
if hasattr(obj, '__repr__'):
return obj.__repr__()
+
+
+def ecma_unescape(s):
+ """
+ python implementation of the unescape javascript function
+
+ https://www.ecma-international.org/ecma-262/6.0/#sec-unescape-string
+ https://developer.mozilla.org/fr/docs/Web/JavaScript/Reference/Objets_globaux/unescape
+ """
+ # s = unicode(s)
+ # "%u5409" becomes "吉"
+ s = ecma_unescape4_re.sub(lambda e: unichr(int(e.group(1), 16)), s)
+ # "%20" becomes " ", "%F3" becomes "ó"
+ s = ecma_unescape2_re.sub(lambda e: unichr(int(e.group(1), 16)), s)
+ return s
+
+
+def get_engine_from_settings(name):
+ """Return engine configuration from settings.yml of a given engine name"""
+
+ if 'engines' not in settings:
+ return {}
+
+ for engine in settings['engines']:
+ if 'name' not in engine:
+ continue
+ if name == engine['name']:
+ return engine
+
+ return {}
+
+
+def get_xpath(xpath_str):
+ result = xpath_cache.get(xpath_str, None)
+ if result is None:
+ result = XPath(xpath_str)
+ xpath_cache[xpath_str] = result
+ return result
+
+
+def eval_xpath(element, xpath_str):
+ xpath = get_xpath(xpath_str)
+ return xpath(element)
diff --git a/searx/version.py b/searx/version.py
index 4e149722e..3fe3dba82 100644
--- a/searx/version.py
+++ b/searx/version.py
@@ -18,7 +18,7 @@ along with searx. If not, see < http://www.gnu.org/licenses/ >.
# version of searx
VERSION_MAJOR = 0
-VERSION_MINOR = 15
+VERSION_MINOR = 16
VERSION_BUILD = 0
VERSION_STRING = "{0}.{1}.{2}".format(VERSION_MAJOR,
diff --git a/searx/webapp.py b/searx/webapp.py
index 542c2c002..a856c07dd 100644
--- a/searx/webapp.py
+++ b/searx/webapp.py
@@ -41,9 +41,13 @@ except:
logger.critical("cannot import dependency: pygments")
from sys import exit
exit(1)
-from cgi import escape
+try:
+ from cgi import escape
+except:
+ from html import escape
from datetime import datetime, timedelta
-from werkzeug.contrib.fixers import ProxyFix
+from time import time
+from werkzeug.middleware.proxy_fix import ProxyFix
from flask import (
Flask, request, render_template, url_for, Response, make_response,
redirect, send_from_directory
@@ -91,6 +95,8 @@ if sys.version_info[0] == 3:
PY3 = True
else:
PY3 = False
+ logger.warning('\033[1;31m *** Deprecation Warning ***\033[0m')
+ logger.warning('\033[1;31m Python2 is deprecated\033[0m')
# serve pages with HTTP/1.1
from werkzeug.serving import WSGIRequestHandler
@@ -123,6 +129,7 @@ app = Flask(
app.jinja_env.trim_blocks = True
app.jinja_env.lstrip_blocks = True
+app.jinja_env.add_extension('jinja2.ext.loopcontrols')
app.secret_key = settings['server']['secret_key']
if not searx_debug \
@@ -409,6 +416,8 @@ def render(template_name, override_theme=None, **kwargs):
@app.before_request
def pre_request():
+ request.start_time = time()
+ request.timings = []
request.errors = []
preferences = Preferences(themes, list(categories.keys()), engines, plugins)
@@ -451,6 +460,21 @@ def pre_request():
request.user_plugins.append(plugin)
+@app.after_request
+def post_request(response):
+ total_time = time() - request.start_time
+ timings_all = ['total;dur=' + str(round(total_time * 1000, 3))]
+ if len(request.timings) > 0:
+ timings = sorted(request.timings, key=lambda v: v['total'])
+ timings_total = ['total_' + str(i) + '_' + v['engine'] +
+ ';dur=' + str(round(v['total'] * 1000, 3)) for i, v in enumerate(timings)]
+ timings_load = ['load_' + str(i) + '_' + v['engine'] +
+ ';dur=' + str(round(v['load'] * 1000, 3)) for i, v in enumerate(timings)]
+ timings_all = timings_all + timings_total + timings_load
+ response.headers.add('Server-Timing', ', '.join(timings_all))
+ return response
+
+
def index_error(output_format, error_message):
if output_format == 'json':
return Response(json.dumps({'error': error_message}),
@@ -503,9 +527,10 @@ def index():
# search
search_query = None
+ raw_text_query = None
result_container = None
try:
- search_query = get_search_query_from_webapp(request.preferences, request.form)
+ search_query, raw_text_query = get_search_query_from_webapp(request.preferences, request.form)
# search = Search(search_query) # without plugins
search = SearchWithPlugins(search_query, request.user_plugins, request)
result_container = search.search()
@@ -528,19 +553,24 @@ def index():
# UI
advanced_search = request.form.get('advanced_search', None)
+ # Server-Timing header
+ request.timings = result_container.get_timings()
+
# output
for result in results:
if output_format == 'html':
if 'content' in result and result['content']:
result['content'] = highlight_content(escape(result['content'][:1024]), search_query.query)
- result['title'] = highlight_content(escape(result['title'] or u''), search_query.query)
+ if 'title' in result and result['title']:
+ result['title'] = highlight_content(escape(result['title'] or u''), search_query.query)
else:
if result.get('content'):
result['content'] = html_to_text(result['content']).strip()
# removing html content and whitespace duplications
result['title'] = ' '.join(html_to_text(result['title']).strip().split())
- result['pretty_url'] = prettify_url(result['url'])
+ if 'url' in result:
+ result['pretty_url'] = prettify_url(result['url'])
# TODO, check if timezone is calculated right
if 'publishedDate' in result:
@@ -594,6 +624,21 @@ def index():
)
return Response(response_rss, mimetype='text/xml')
+ # HTML output format
+
+ # suggestions: use RawTextQuery to get the suggestion URLs with the same bang
+ suggestion_urls = list(map(lambda suggestion: {
+ 'url': raw_text_query.changeSearchQuery(suggestion).getFullQuery(),
+ 'title': suggestion
+ },
+ result_container.suggestions))
+
+ correction_urls = list(map(lambda correction: {
+ 'url': raw_text_query.changeSearchQuery(correction).getFullQuery(),
+ 'title': correction
+ },
+ result_container.corrections))
+ #
return render(
'results.html',
results=results,
@@ -603,9 +648,9 @@ def index():
time_range=search_query.time_range,
number_of_results=format_decimal(number_of_results),
advanced_search=advanced_search,
- suggestions=result_container.suggestions,
+ suggestions=suggestion_urls,
answers=result_container.answers,
- corrections=result_container.corrections,
+ corrections=correction_urls,
infoboxes=result_container.infoboxes,
paging=result_container.paging,
unresponsive_engines=result_container.unresponsive_engines,
@@ -614,7 +659,8 @@ def index():
fallback=request.preferences.get_value("language")),
base_url=get_base_url(),
theme=get_current_theme_name(),
- favicons=global_favicons[themes.index(get_current_theme_name())]
+ favicons=global_favicons[themes.index(get_current_theme_name())],
+ timeout_limit=request.form.get('timeout_limit', None)
)
@@ -650,8 +696,11 @@ def autocompleter():
# parse searx specific autocompleter results like !bang
raw_results = searx_bang(raw_text_query)
- # normal autocompletion results only appear if max 3 inner results returned
- if len(raw_results) <= 3 and completer:
+ # normal autocompletion results only appear if no inner results returned
+ # and there is a query part besides the engine and language bangs
+ if len(raw_results) == 0 and completer and (len(raw_text_query.query_parts) > 1 or
+ (len(raw_text_query.languages) == 0 and
+ not raw_text_query.specific)):
# get language from cookie
language = request.preferences.get_value('language')
if not language or language == 'all':
@@ -701,8 +750,13 @@ def preferences():
# stats for preferences page
stats = {}
+ engines_by_category = {}
for c in categories:
+ engines_by_category[c] = []
for e in categories[c]:
+ if not request.preferences.validate_token(e):
+ continue
+
stats[e.name] = {'time': None,
'warn_timeout': False,
'warn_time': False}
@@ -710,9 +764,11 @@ def preferences():
stats[e.name]['warn_timeout'] = True
stats[e.name]['supports_selected_language'] = _is_selected_language_supported(e, request.preferences)
+ engines_by_category[c].append(e)
+
# get first element [0], the engine time,
# and then the second element [1] : the time (the first one is the label)
- for engine_stat in get_engines_stats()[0][1]:
+ for engine_stat in get_engines_stats(request.preferences)[0][1]:
stats[engine_stat.get('name')]['time'] = round(engine_stat.get('avg'), 3)
if engine_stat.get('avg') > settings['outgoing']['request_timeout']:
stats[engine_stat.get('name')]['warn_time'] = True
@@ -722,7 +778,7 @@ def preferences():
locales=settings['locales'],
current_locale=request.preferences.get_value("locale"),
image_proxy=image_proxy,
- engines_by_category=categories,
+ engines_by_category=engines_by_category,
stats=stats,
answerers=[{'info': a.self_info(), 'keywords': a.keywords} for a in answerers],
disabled_engines=disabled_engines,
@@ -798,7 +854,7 @@ def image_proxy():
@app.route('/stats', methods=['GET'])
def stats():
"""Render engine statistics page."""
- stats = get_engines_stats()
+ stats = get_engines_stats(request.preferences)
return render(
'stats.html',
stats=stats,
@@ -860,21 +916,21 @@ def clear_cookies():
@app.route('/config')
def config():
- return jsonify({'categories': categories.keys(),
- 'engines': [{'name': engine_name,
+ return jsonify({'categories': list(categories.keys()),
+ 'engines': [{'name': name,
'categories': engine.categories,
'shortcut': engine.shortcut,
'enabled': not engine.disabled,
'paging': engine.paging,
'language_support': engine.language_support,
'supported_languages':
- engine.supported_languages.keys()
+ list(engine.supported_languages.keys())
if isinstance(engine.supported_languages, dict)
else engine.supported_languages,
'safesearch': engine.safesearch,
'time_range_support': engine.time_range_support,
'timeout': engine.timeout}
- for engine_name, engine in engines.items()],
+ for name, engine in engines.items() if request.preferences.validate_token(engine)],
'plugins': [{'name': plugin.name,
'enabled': plugin.default_on}
for plugin in plugins],
@@ -896,7 +952,7 @@ def page_not_found(e):
def run():
- logger.debug('starting webserver on %s:%s', settings['server']['port'], settings['server']['bind_address'])
+ logger.debug('starting webserver on %s:%s', settings['server']['bind_address'], settings['server']['port'])
app.run(
debug=searx_debug,
use_debugger=searx_debug,