From 763785e7771b478be177abf8a2a47ef9c2462f6c Mon Sep 17 00:00:00 2001 From: Johnny Kalajdzic Date: Mon, 14 May 2018 18:15:10 +0200 Subject: [PATCH 001/146] Initial commit --- .gitignore | 1 + README.rst | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/.gitignore b/.gitignore index 3da4d0386..b622a2614 100644 --- a/.gitignore +++ b/.gitignore @@ -17,3 +17,4 @@ setup.cfg node_modules/ .tx/ +.idea diff --git a/README.rst b/README.rst index 35d14d1b4..783a88c17 100644 --- a/README.rst +++ b/README.rst @@ -18,7 +18,7 @@ Installation ~~~~~~~~~~~~ - clone source: - ``git clone https://github.com/asciimoo/searx.git && cd searx`` + ``git clone hhttps://gitlab.eelo.io/Johnny/my-spot.git && cd my-spot`` - install dependencies: ``./manage.sh update_packages`` - edit your `settings.yml `__ -- GitLab From 96cbb946c4c2fc99cbd0b4c3617fa847835c091c Mon Sep 17 00:00:00 2001 From: Johnny Kalajdzic Date: Mon, 14 May 2018 21:26:26 +0200 Subject: [PATCH 002/146] Add ten images in results in category "general" --- searx/templates/oscar/results.html | 11 ++ searx/webapp.py | 190 +++++++++++------------------ 2 files changed, 82 insertions(+), 119 deletions(-) diff --git a/searx/templates/oscar/results.html b/searx/templates/oscar/results.html index ee1052dba..1bca1c847 100644 --- a/searx/templates/oscar/results.html +++ b/searx/templates/oscar/results.html @@ -36,6 +36,17 @@ {% endfor %} {% endif %} + {% for result in results_image %} +
+ {% set index = loop.index %} + {% if result.template %} + {% include get_result_template('oscar', result['template']) %} + {% else %} + {% include 'oscar/result_templates/default.html' %} + {% endif %} +
+ {% endfor %} + {% for result in results %}
{% set index = loop.index %} diff --git a/searx/webapp.py b/searx/webapp.py index 7145caca9..63f22667e 100644 --- a/searx/webapp.py +++ b/searx/webapp.py @@ -16,10 +16,12 @@ along with searx. If not, see < http://www.gnu.org/licenses/ >. (C) 2013- by Adam Tauber, ''' +from searx.results import ResultContainer if __name__ == '__main__': from sys import path from os.path import realpath, dirname + path.append(realpath(dirname(realpath(__file__)) + '/../')) import hashlib @@ -31,6 +33,7 @@ import sys import requests from searx import logger + logger = logger.getChild('webapp') try: @@ -40,6 +43,7 @@ try: except: logger.critical("cannot import dependency: pygments") from sys import exit + exit(1) from cgi import escape from datetime import datetime, timedelta @@ -63,7 +67,7 @@ from searx.utils import ( from searx.version import VERSION_STRING from searx.languages import language_codes as languages from searx.search import SearchWithPlugins, get_search_query_from_webapp -from searx.query import RawTextQuery +from searx.query import RawTextQuery, SearchQuery from searx.autocomplete import searx_bang, backends as autocomplete_backends from searx.plugins import plugins from searx.plugins.oa_doi_rewrite import get_doi_resolver @@ -85,7 +89,6 @@ try: except: from io import StringIO - if sys.version_info[0] == 3: unicode = str PY3 = True @@ -94,6 +97,7 @@ else: # serve pages with HTTP/1.1 from werkzeug.serving import WSGIRequestHandler + WSGIRequestHandler.protocol_version = "HTTP/{}".format(settings['server'].get('http_protocol_version', '1.0')) # about static @@ -126,8 +130,8 @@ app.jinja_env.lstrip_blocks = True app.secret_key = settings['server']['secret_key'] if not searx_debug \ - or os.environ.get("WERKZEUG_RUN_MAIN") == "true" \ - or os.environ.get('UWSGI_ORIGINAL_PROC_NAME') is not None: + or os.environ.get("WERKZEUG_RUN_MAIN") == "true" \ + or os.environ.get('UWSGI_ORIGINAL_PROC_NAME') is not None: initialize_engines(settings['engines']) babel = Babel(app) @@ -157,12 +161,12 @@ def get_locale(): if request.preferences.get_value('locale') != '': locale = request.preferences.get_value('locale') - if 'locale' in request.args\ - and request.args['locale'] in settings['locales']: + if 'locale' in request.args \ + and request.args['locale'] in settings['locales']: locale = request.args['locale'] - if 'locale' in request.form\ - and request.form['locale'] in settings['locales']: + if 'locale' in request.form \ + and request.form['locale'] in settings['locales']: locale = request.form['locale'] if locale == 'zh_TW': @@ -195,9 +199,8 @@ def code_highlighter(codelines, language=None): line_code_start = line # new codeblock is detected - if last_line is not None and\ - last_line + 1 != line: - + if last_line is not None and \ + last_line + 1 != line: # highlight last codepart formatter = HtmlFormatter(linenos='inline', linenostart=line_code_start) @@ -288,7 +291,6 @@ def proxify(url): def image_proxify(url): - if url.startswith('//'): url = 'https:' + url @@ -433,29 +435,33 @@ def pre_request(): or plugin.id in allowed_plugins): request.user_plugins.append(plugin) +def config_results(results, query): + for result in results: + if 'content' in result and result['content']: + result['content'] = highlight_content(escape(result['content'][:1024]), query) + result['title'] = highlight_content(escape(result['title'] or u''), query) + result['pretty_url'] = prettify_url(result['url']) -def index_error(output_format, error_message): - if output_format == 'json': - return Response(json.dumps({'error': error_message}), - mimetype='application/json') - elif output_format == 'csv': - response = Response('', mimetype='application/csv') - cont_disp = 'attachment;Filename=searx.csv' - response.headers.add('Content-Disposition', cont_disp) - return response - elif output_format == 'rss': - response_rss = render( - 'opensearch_response_rss.xml', - results=[], - q=request.form['q'] if 'q' in request.form else '', - number_of_results=0, - base_url=get_base_url(), - error_message=error_message, - override_theme='__common__', - ) - return Response(response_rss, mimetype='text/xml') - else: - # html + # TODO, check if timezone is calculated right + if 'publishedDate' in result: + try: # test if publishedDate >= 1900 (datetime module bug) + result['pubdate'] = result['publishedDate'].strftime('%Y-%m-%d %H:%M:%S%z') + except ValueError: + result['publishedDate'] = None + else: + if result['publishedDate'].replace(tzinfo=None) >= datetime.now() - timedelta(days=1): + timedifference = datetime.now() - result['publishedDate'].replace(tzinfo=None) + minutes = int((timedifference.seconds / 60) % 60) + hours = int(timedifference.seconds / 60 / 60) + if hours == 0: + result['publishedDate'] = gettext(u'{minutes} minute(s) ago').format(minutes=minutes) + else: + result['publishedDate'] = gettext(u'{hours} hour(s), {minutes} minute(s) ago').format( + hours=hours, minutes=minutes) # noqa + else: + result['publishedDate'] = format_date(result['publishedDate']) + +def index_error(): request.errors.append(gettext('search error')) return render( 'index.html', @@ -465,30 +471,19 @@ def index_error(output_format, error_message): @app.route('/search', methods=['GET', 'POST']) @app.route('/', methods=['GET', 'POST']) def index(): - """Render index page. - - Supported outputs: html, json, csv, rss. - """ - - # output_format - output_format = request.form.get('format', 'html') - if output_format not in ['html', 'csv', 'json', 'rss']: - output_format = 'html' - # check if there is query if request.form.get('q') is None: - if output_format == 'html': - return render( - 'index.html', - ) - else: - return index_error(output_format, 'No query'), 400 + return render( + 'index.html', + ) # search search_query = None result_container = None + results_images = [] try: search_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() @@ -498,9 +493,27 @@ def index(): # is it an invalid input parameter or something else ? if (issubclass(e.__class__, SearxParameterException)): - return index_error(output_format, e.message), 400 + return index_error(), 400 else: - return index_error(output_format, gettext('search error')), 500 + return index_error(), 500 + + # serarch images + if search_query.categories == ['general'] and search_query.pageno == 1: + search_images_engines = [] + disabled_engines = request.preferences.engines.get_disabled() + for engine in categories['images']: + if (engine.name, 'images') not in disabled_engines: + search_images_engines.append({'category': 'images', 'name': engine.name}) + images_search_query = SearchQuery(search_query.query, search_images_engines, ['images'], search_query.lang, + search_query.safesearch, 1, search_query.time_range) + results_images_big = SearchWithPlugins(images_search_query, request.user_plugins, + request).search().get_ordered_results() + to_ten = 0 + for image in results_images_big: + to_ten+=1 + if to_ten > 10: + break + results_images.append(image) # results results = result_container.get_ordered_results() @@ -512,70 +525,8 @@ def index(): advanced_search = request.form.get('advanced_search', None) # 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) - 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']) - - # TODO, check if timezone is calculated right - if 'publishedDate' in result: - try: # test if publishedDate >= 1900 (datetime module bug) - result['pubdate'] = result['publishedDate'].strftime('%Y-%m-%d %H:%M:%S%z') - except ValueError: - result['publishedDate'] = None - else: - if result['publishedDate'].replace(tzinfo=None) >= datetime.now() - timedelta(days=1): - timedifference = datetime.now() - result['publishedDate'].replace(tzinfo=None) - minutes = int((timedifference.seconds / 60) % 60) - hours = int(timedifference.seconds / 60 / 60) - if hours == 0: - result['publishedDate'] = gettext(u'{minutes} minute(s) ago').format(minutes=minutes) - else: - result['publishedDate'] = gettext(u'{hours} hour(s), {minutes} minute(s) ago').format(hours=hours, minutes=minutes) # noqa - else: - result['publishedDate'] = format_date(result['publishedDate']) - - if output_format == 'json': - return Response(json.dumps({'query': search_query.query.decode('utf-8'), - 'number_of_results': number_of_results, - 'results': results, - 'answers': list(result_container.answers), - 'corrections': list(result_container.corrections), - 'infoboxes': result_container.infoboxes, - 'suggestions': list(result_container.suggestions), - 'unresponsive_engines': list(result_container.unresponsive_engines)}, - default=lambda item: list(item) if isinstance(item, set) else item), - mimetype='application/json') - elif output_format == 'csv': - csv = UnicodeWriter(StringIO()) - keys = ('title', 'url', 'content', 'host', 'engine', 'score') - csv.writerow(keys) - for row in results: - row['host'] = row['parsed_url'].netloc - csv.writerow([row.get(key, '') for key in keys]) - csv.stream.seek(0) - response = Response(csv.stream.read(), mimetype='application/csv') - cont_disp = 'attachment;Filename=searx_-_{0}.csv'.format(search_query.query) - response.headers.add('Content-Disposition', cont_disp) - return response - elif output_format == 'rss': - response_rss = render( - 'opensearch_response_rss.xml', - results=results, - q=request.form['q'], - number_of_results=number_of_results, - base_url=get_base_url(), - override_theme='__common__', - ) - return Response(response_rss, mimetype='text/xml') + config_results(results, search_query.query) + config_results(results_images, search_query.query) return render( 'results.html', @@ -595,6 +546,7 @@ def index(): current_language=match_language(search_query.lang, LANGUAGE_CODES, fallback=settings['search']['language']), + results_image=results_images, base_url=get_base_url(), theme=get_current_theme_name(), favicons=global_favicons[themes.index(get_current_theme_name())] @@ -846,9 +798,9 @@ def config(): 'paging': engine.paging, 'language_support': engine.language_support, 'supported_languages': - engine.supported_languages.keys() - if isinstance(engine.supported_languages, dict) - else engine.supported_languages, + 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} -- GitLab From f0fe98db1396c15c53e5e265a29da01bb854c6cf Mon Sep 17 00:00:00 2001 From: "Daniel J. Ramirez" Date: Tue, 15 May 2018 21:58:18 -0500 Subject: [PATCH 003/146] First steps towards the eelo theme. Removed bootstrap dependency, there are many many things, but it is worth it. --- .gitignore | 5 +- searx/settings.yml | 6 +- searx/static/themes/eelo/README.rst | 17 + searx/static/themes/eelo/css/eelo.css | 348 ++++++++++++++++++ searx/static/themes/eelo/css/eelo.min.css | Bin 0 -> 5191 bytes searx/static/themes/eelo/css/leaflet.min.css | Bin 0 -> 8027 bytes searx/static/themes/eelo/gruntfile.js | 94 +++++ searx/static/themes/eelo/img/favicon.png | Bin 0 -> 2573 bytes searx/static/themes/eelo/img/icons/1337x.png | Bin 0 -> 1229 bytes searx/static/themes/eelo/img/icons/README.md | 2 + searx/static/themes/eelo/img/icons/amazon.png | Bin 0 -> 4129 bytes .../themes/eelo/img/icons/dailymotion.png | Bin 0 -> 3963 bytes .../themes/eelo/img/icons/deviantart.png | Bin 0 -> 3790 bytes .../static/themes/eelo/img/icons/facebook.png | Bin 0 -> 3685 bytes searx/static/themes/eelo/img/icons/flickr.png | Bin 0 -> 3751 bytes searx/static/themes/eelo/img/icons/github.png | Bin 0 -> 4315 bytes .../static/themes/eelo/img/icons/kickass.png | Bin 0 -> 4527 bytes .../themes/eelo/img/icons/openstreetmap.png | Bin 0 -> 5184 bytes searx/static/themes/eelo/img/icons/photon.png | Bin 0 -> 4177 bytes .../themes/eelo/img/icons/searchcode code.png | Bin 0 -> 4241 bytes .../themes/eelo/img/icons/searchcode doc.png | Bin 0 -> 4241 bytes .../themes/eelo/img/icons/soundcloud.png | Bin 0 -> 3820 bytes .../themes/eelo/img/icons/stackoverflow.png | Bin 0 -> 3990 bytes .../static/themes/eelo/img/icons/twitter.png | Bin 0 -> 3790 bytes searx/static/themes/eelo/img/icons/vimeo.png | Bin 0 -> 3894 bytes .../themes/eelo/img/icons/wikipedia.png | Bin 0 -> 1028 bytes .../static/themes/eelo/img/icons/youtube.png | Bin 0 -> 4137 bytes searx/static/themes/eelo/img/loader.gif | Bin 0 -> 8314 bytes searx/static/themes/eelo/img/logo.png | Bin 0 -> 1856 bytes searx/static/themes/eelo/img/logo.svg | Bin 0 -> 19480 bytes searx/static/themes/eelo/img/logo_searx_a.png | Bin 0 -> 16463 bytes .../static/themes/eelo/img/logo_searx_a_n.png | Bin 0 -> 9704 bytes .../static/themes/eelo/img/map/layers-2x.png | Bin 0 -> 1763 bytes searx/static/themes/eelo/img/map/layers.png | Bin 0 -> 1142 bytes .../eelo/img/map/marker-icon-2x-green.png | Bin 0 -> 3753 bytes .../eelo/img/map/marker-icon-2x-orange.png | Bin 0 -> 3691 bytes .../eelo/img/map/marker-icon-2x-red.png | Bin 0 -> 3692 bytes .../themes/eelo/img/map/marker-icon-2x.png | Bin 0 -> 4033 bytes .../themes/eelo/img/map/marker-icon-green.png | Bin 0 -> 1696 bytes .../eelo/img/map/marker-icon-orange.png | Bin 0 -> 1714 bytes .../themes/eelo/img/map/marker-icon-red.png | Bin 0 -> 1690 bytes .../themes/eelo/img/map/marker-icon.png | Bin 0 -> 1747 bytes .../themes/eelo/img/map/marker-shadow.png | Bin 0 -> 797 bytes searx/static/themes/eelo/img/searx_logo.png | Bin 0 -> 10611 bytes .../themes/eelo/js/leaflet-0.7.3.min.js | Bin 0 -> 125410 bytes searx/static/themes/eelo/js/searx.min.js | Bin 0 -> 4585 bytes .../eelo/js/searx_src/00_requirejs_config.js | 23 ++ .../themes/eelo/js/searx_src/autocompleter.js | 37 ++ .../eelo/js/searx_src/element_modifiers.js | 99 +++++ .../themes/eelo/js/searx_src/leaflet_map.js | 167 +++++++++ searx/static/themes/eelo/less/eelo/base.less | 99 +++++ searx/static/themes/eelo/less/eelo/eelo.less | 8 + .../static/themes/eelo/less/eelo/footer.less | 9 + .../static/themes/eelo/less/eelo/layout.less | 46 +++ .../static/themes/eelo/less/eelo/navbar.less | 25 ++ .../themes/eelo/less/eelo/preferences.less | 85 +++++ .../static/themes/eelo/less/eelo/results.less | 68 ++++ .../static/themes/eelo/less/eelo/search.less | 80 ++++ .../themes/eelo/less/eelo/variables.less | 32 ++ searx/static/themes/eelo/package.json | 16 + searx/templates/eelo/404.html | 9 + searx/templates/eelo/about.html | 5 + searx/templates/eelo/advanced.html | 16 + searx/templates/eelo/base.html | 116 ++++++ searx/templates/eelo/categories.html | 6 + searx/templates/eelo/icons.html | 7 + searx/templates/eelo/index.html | 7 + searx/templates/eelo/infobox.html | 36 ++ searx/templates/eelo/languages.html | 11 + searx/templates/eelo/macros.html | 85 +++++ searx/templates/eelo/messages/first_time.html | 8 + searx/templates/eelo/messages/no_cookies.html | 5 + .../eelo/messages/no_data_available.html | 5 + searx/templates/eelo/messages/no_results.html | 17 + .../messages/save_settings_successfull.html | 9 + .../templates/eelo/messages/unknow_error.html | 9 + searx/templates/eelo/navbar.html | 11 + searx/templates/eelo/preferences.html | 221 +++++++++++ .../templates/eelo/result_templates/code.html | 18 + .../eelo/result_templates/default.html | 31 ++ .../eelo/result_templates/images.html | 39 ++ .../templates/eelo/result_templates/map.html | 72 ++++ .../eelo/result_templates/torrent.html | 25 ++ .../eelo/result_templates/videos.html | 27 ++ searx/templates/eelo/results.html | 115 ++++++ searx/templates/eelo/search.html | 3 + searx/templates/eelo/search_full.html | 11 + searx/templates/eelo/stats.html | 33 ++ searx/templates/eelo/time-range.html | 17 + searx/webapp.py | 53 ++- 90 files changed, 2281 insertions(+), 12 deletions(-) create mode 100644 searx/static/themes/eelo/README.rst create mode 100644 searx/static/themes/eelo/css/eelo.css create mode 100644 searx/static/themes/eelo/css/eelo.min.css create mode 100644 searx/static/themes/eelo/css/leaflet.min.css create mode 100644 searx/static/themes/eelo/gruntfile.js create mode 100644 searx/static/themes/eelo/img/favicon.png create mode 100644 searx/static/themes/eelo/img/icons/1337x.png create mode 100644 searx/static/themes/eelo/img/icons/README.md create mode 100644 searx/static/themes/eelo/img/icons/amazon.png create mode 100644 searx/static/themes/eelo/img/icons/dailymotion.png create mode 100644 searx/static/themes/eelo/img/icons/deviantart.png create mode 100644 searx/static/themes/eelo/img/icons/facebook.png create mode 100644 searx/static/themes/eelo/img/icons/flickr.png create mode 100644 searx/static/themes/eelo/img/icons/github.png create mode 100644 searx/static/themes/eelo/img/icons/kickass.png create mode 100644 searx/static/themes/eelo/img/icons/openstreetmap.png create mode 100644 searx/static/themes/eelo/img/icons/photon.png create mode 100644 searx/static/themes/eelo/img/icons/searchcode code.png create mode 100644 searx/static/themes/eelo/img/icons/searchcode doc.png create mode 100644 searx/static/themes/eelo/img/icons/soundcloud.png create mode 100644 searx/static/themes/eelo/img/icons/stackoverflow.png create mode 100644 searx/static/themes/eelo/img/icons/twitter.png create mode 100644 searx/static/themes/eelo/img/icons/vimeo.png create mode 100644 searx/static/themes/eelo/img/icons/wikipedia.png create mode 100644 searx/static/themes/eelo/img/icons/youtube.png create mode 100644 searx/static/themes/eelo/img/loader.gif create mode 100644 searx/static/themes/eelo/img/logo.png create mode 100644 searx/static/themes/eelo/img/logo.svg create mode 100644 searx/static/themes/eelo/img/logo_searx_a.png create mode 100644 searx/static/themes/eelo/img/logo_searx_a_n.png create mode 100644 searx/static/themes/eelo/img/map/layers-2x.png create mode 100644 searx/static/themes/eelo/img/map/layers.png create mode 100644 searx/static/themes/eelo/img/map/marker-icon-2x-green.png create mode 100644 searx/static/themes/eelo/img/map/marker-icon-2x-orange.png create mode 100644 searx/static/themes/eelo/img/map/marker-icon-2x-red.png create mode 100644 searx/static/themes/eelo/img/map/marker-icon-2x.png create mode 100644 searx/static/themes/eelo/img/map/marker-icon-green.png create mode 100644 searx/static/themes/eelo/img/map/marker-icon-orange.png create mode 100644 searx/static/themes/eelo/img/map/marker-icon-red.png create mode 100644 searx/static/themes/eelo/img/map/marker-icon.png create mode 100644 searx/static/themes/eelo/img/map/marker-shadow.png create mode 100644 searx/static/themes/eelo/img/searx_logo.png create mode 100644 searx/static/themes/eelo/js/leaflet-0.7.3.min.js create mode 100644 searx/static/themes/eelo/js/searx.min.js create mode 100644 searx/static/themes/eelo/js/searx_src/00_requirejs_config.js create mode 100644 searx/static/themes/eelo/js/searx_src/autocompleter.js create mode 100644 searx/static/themes/eelo/js/searx_src/element_modifiers.js create mode 100644 searx/static/themes/eelo/js/searx_src/leaflet_map.js create mode 100644 searx/static/themes/eelo/less/eelo/base.less create mode 100644 searx/static/themes/eelo/less/eelo/eelo.less create mode 100644 searx/static/themes/eelo/less/eelo/footer.less create mode 100644 searx/static/themes/eelo/less/eelo/layout.less create mode 100644 searx/static/themes/eelo/less/eelo/navbar.less create mode 100644 searx/static/themes/eelo/less/eelo/preferences.less create mode 100644 searx/static/themes/eelo/less/eelo/results.less create mode 100644 searx/static/themes/eelo/less/eelo/search.less create mode 100644 searx/static/themes/eelo/less/eelo/variables.less create mode 100644 searx/static/themes/eelo/package.json create mode 100644 searx/templates/eelo/404.html create mode 100644 searx/templates/eelo/about.html create mode 100644 searx/templates/eelo/advanced.html create mode 100644 searx/templates/eelo/base.html create mode 100644 searx/templates/eelo/categories.html create mode 100644 searx/templates/eelo/icons.html create mode 100644 searx/templates/eelo/index.html create mode 100644 searx/templates/eelo/infobox.html create mode 100644 searx/templates/eelo/languages.html create mode 100644 searx/templates/eelo/macros.html create mode 100644 searx/templates/eelo/messages/first_time.html create mode 100644 searx/templates/eelo/messages/no_cookies.html create mode 100644 searx/templates/eelo/messages/no_data_available.html create mode 100644 searx/templates/eelo/messages/no_results.html create mode 100644 searx/templates/eelo/messages/save_settings_successfull.html create mode 100644 searx/templates/eelo/messages/unknow_error.html create mode 100644 searx/templates/eelo/navbar.html create mode 100644 searx/templates/eelo/preferences.html create mode 100644 searx/templates/eelo/result_templates/code.html create mode 100644 searx/templates/eelo/result_templates/default.html create mode 100644 searx/templates/eelo/result_templates/images.html create mode 100644 searx/templates/eelo/result_templates/map.html create mode 100644 searx/templates/eelo/result_templates/torrent.html create mode 100644 searx/templates/eelo/result_templates/videos.html create mode 100644 searx/templates/eelo/results.html create mode 100644 searx/templates/eelo/search.html create mode 100644 searx/templates/eelo/search_full.html create mode 100644 searx/templates/eelo/stats.html create mode 100644 searx/templates/eelo/time-range.html diff --git a/.gitignore b/.gitignore index b622a2614..b4260dd10 100644 --- a/.gitignore +++ b/.gitignore @@ -15,6 +15,9 @@ setup.cfg *~ node_modules/ +yarn.lock +yarn-error.log .tx/ -.idea + +.vscode diff --git a/searx/settings.yml b/searx/settings.yml index 988076f8a..0d33a8166 100644 --- a/searx/settings.yml +++ b/searx/settings.yml @@ -1,6 +1,6 @@ general: - debug : False # Debug mode, only for development - instance_name : "searx" # displayed name + debug : debug # Debug mode, only for development + instance_name : "eelo" # displayed name search: safe_search : 0 # Filter results. 0: None, 1: Moderate, 2: Strict @@ -18,7 +18,7 @@ server: ui: static_path : "" # Custom static path - leave it blank if you didn't change templates_path : "" # Custom templates path - leave it blank if you didn't change - default_theme : oscar # ui theme + default_theme : eelo # ui theme default_locale : "" # Default interface locale - leave blank to detect from browser information or use codes from the 'locales' config section # searx supports result proxification using an external service: https://github.com/asciimoo/morty diff --git a/searx/static/themes/eelo/README.rst b/searx/static/themes/eelo/README.rst new file mode 100644 index 000000000..e7daa8719 --- /dev/null +++ b/searx/static/themes/eelo/README.rst @@ -0,0 +1,17 @@ +install dependencies +~~~~~~~~~~~~~~~~~~~~ + +run this command in the directory ``searx/static/themes/oscar`` + +``npm install`` + +compile sources +~~~~~~~~~~~~~~~ + +run this command in the directory ``searx/static/themes/oscar`` + +``grunt`` + +or in the root directory: + +``make grunt`` diff --git a/searx/static/themes/eelo/css/eelo.css b/searx/static/themes/eelo/css/eelo.css new file mode 100644 index 000000000..02a6c3476 --- /dev/null +++ b/searx/static/themes/eelo/css/eelo.css @@ -0,0 +1,348 @@ +#pagination { + display: flex; + justify-content: space-between; +} +.container { + max-width: 1100px; + padding-left: 16px; + padding-right: 16px; + display: flex; + justify-content: space-between; +} +.container > :first-child { + max-width: 600px; + width: 600px; +} +.container > :last-child:not(:first-child) { + max-width: 400px; + width: 400px; +} +#index { + max-width: 600px; + margin: auto; +} +#index img { + width: 300px; + display: block; + margin: auto; + margin-top: 64px; + margin-bottom: 64px; +} +.inline { + display: flex; + flex-direction: row; +} +.rtl { + flex-direction: row-reverse; +} +html { + position: relative; + min-height: 100%; + color: #60686f; +} +body { + /* Margin bottom by footer height */ + margin: 0px; + padding: 0px; + font-size: 16px; + margin-bottom: 80px; + background-color: white; +} +body, +body * { + font-family: 'Roboto', "Cantarell", Helvetica, Arial, sans-serif; +} +a { + color: #3889f4; +} +input, +select { + box-shadow: none !important; +} +.text-muted { + color: rgba(0, 0, 0, 0.4); +} +.danger, +.btn.danger { + color: #e06572; +} +a, +a:hover, +a:focus, +a:active, +select:hover, +select:focus, +select:active { + outline: none; + text-decoration: none; +} +.btn { + text-transform: uppercase; + padding: 8px 14px; + background-color: transparent; + border: 2px solid rgba(0, 0, 0, 0.2); + border-radius: 8px; + text-align: center; + font-size: 16px; + font-weight: bold; + color: #5c6469; +} +.btn.btn-block, +.block { + display: block; + width: 100%; + box-sizing: border-box; +} +.btn.primary, +input.btn[type="submit"] { + color: #5068dd; +} +.btn.btn-flat { + border: none; + border-radius: 0; +} +.btn.btn-flat:hover { + background-color: transparent; + color: blue; +} +.hidden, +#icons { + display: none; +} +.custom-select { + appearance: none; + -webkit-appearance: none; + -moz-appearance: none; + border: none; + font-weight: normal; + background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAA8AAAAPCAQAAACR313BAAAABGdBTUEAALGPC/xhBQAAACBjSFJN +AAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAAAmJLR0QA/4ePzL8AAAAJcEhZ +cwAABFkAAARZAVnbJUkAAAAHdElNRQfgBxgLDwB20OFsAAAAbElEQVQY073OsQ3CMAAEwJMYwJGn +sAehpoXJItltBkmcdZBYgIIiQoLglnz3ui+eP+bk5uneteTMZJa6OJuIqvYzSJoqwqBq8gdmTTW8 +6/dghxAUq4xsVYT9laBYXCw93Aajh7GPEF23t4fkBYevGFTANkPRAAAAJXRFWHRkYXRlOmNyZWF0 +ZQAyMDE2LTA3LTI0VDExOjU1OjU4KzAyOjAwRFqFOQAAACV0RVh0ZGF0ZTptb2RpZnkAMjAxNi0w +Ny0yNFQxMToxNTowMCswMjowMP7RDgQAAAAZdEVYdFNvZnR3YXJlAHd3dy5pbmtzY2FwZS5vcmeb +7jwaAAAAAElFTkSuQmCC) 96% no-repeat; +} +nav { + height: 48px; + display: flex; + align-items: center; + justify-content: space-between; + padding-left: 16px; + padding-right: 16px; + text-transform: capitalize; + margin-bottom: 24px; +} +nav a { + color: #868686; + transition: color 0.2s ease-in-out; + text-decoration: none; +} +nav a:hover { + text-decoration: none; + color: #5068dd; +} +#eelo_links > * { + margin-right: 32px; +} +footer { + position: absolute; + bottom: 0; + width: 100%; + height: auto; + text-align: center; + color: #c1c1c1; + padding-bottom: 16px; +} +#q { + border: 2px solid rgba(0, 0, 0, 0.3); + border-radius: 50px; + height: 42px; + line-height: 42px; + width: 100%; + padding-left: 16px; + font-size: 16px; +} +#search_input_container { + position: relative; + display: flex; + align-items: center; +} +#search_input_container button[type="submit"] { + position: absolute; + right: 10px; + height: 24px; + border: none; + background: none; +} +#search_input_container .icon { + width: 20px; +} +#search_params { + display: flex; + justify-content: space-between; + font-size: 11px; + margin-bottom: 16px; + margin-top: 16px; +} +.search_categories, +#categories { + text-transform: capitalize; + display: flex; + flex-wrap: wrap; + flex-flow: row wrap; + align-content: stretch; + align-items: center; +} +.search_categories label, +#categories label { + flex-grow: 1; + flex-basis: auto; + font-size: 14px; + font-weight: normal; + margin-right: 16px; +} +.search_categories input[type="checkbox"]:checked + label, +#categories input[type="checkbox"]:checked + label { + color: #5068dd; + font-weight: bold; +} +#logo_link { + position: absolute; + left: 6px; +} +#logo, +#logo_link { + height: 32px; +} +.inline-search #q { + padding-left: 56px; +} +#main-logo { + margin-top: 12vh; + margin-bottom: 25px; +} +#main-logo > img { + max-width: 250px; + width: 80%; +} +.result.result-default { + margin-bottom: 32px; +} +.result_header { + margin-bottom: 8px; +} +.result_header .favicon { + width: 16px; + height: 16px; +} +.result-content { + margin-bottom: 2px; +} +.external-link { + color: #39a441; +} +.infobox { + border-radius: 8px; +} +.infobox .panel-heading { + background-color: transparent; + border: none; + padding-top: 16px; + padding-bottom: 0px; +} +.infobox img { + margin-top: 18px; + width: 100%; +} +.infobox .panel-title { + font-size: 22px; + color: #5c6469; +} +.extras { + margin-top: 48px; +} +.result-images { + display: inline; +} +#default_images_container { + display: flex; + flex-wrap: wrap; + align-items: flex-end; +} +#default_images_container > .result.result-images { + flex: 20%; +} +.img-thumbnail { + border: none; +} +#preferences h1 { + margin-bottom: 32px; +} +#preferences .nav-tabs { + margin-bottom: 32px; +} +#preferences .options { + margin-top: 32px; +} +#preferences label { + color: #5c6469; +} +#preferences div.row.form-group { + margin-bottom: 24px; +} +#preferences div.tab-content { + margin-bottom: 48px; +} +#preferences #notice { + margin-bottom: 32px; +} +#preferences .tab-content { + display: none; +} +#preferences input.tab-radio[type="radio"] { + display: none; +} +#preferences input.tab-radio[type="radio"]:checked + .tab-content { + display: block; +} +#preferences .preference { + margin-bottom: 16px; +} +#preferences .preference.inline { + justify-content: space-between; +} +#preferences #tabs { + margin-bottom: 32px; +} +#preferences #tabs > * { + margin-right: 32px; +} +#preferences #controls { + display: flex; + flex-direction: column-reverse; + justify-content: flex-end; +} +#preferences section { + margin-bottom: 32px; +} +#preferences ul > li { + margin-bottom: 8px; +} +#preferences fieldset { + border: none; + padding: 0px; +} +#preferences #cookies_list .cookie-value { + word-wrap: break-word; +} +#preferences #action_buttons { + margin-top: 48px; +} +#preferences #action_buttons > div { + margin-bottom: 24px; +} +#preferences #action_buttons > div > * { + margin-bottom: 8px; +} diff --git a/searx/static/themes/eelo/css/eelo.min.css b/searx/static/themes/eelo/css/eelo.min.css new file mode 100644 index 0000000000000000000000000000000000000000..02f9cc4a9e243206b2d23153d27676f78e51fd28 GIT binary patch literal 5191 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 | https://github.com/asciimoo/searx */\n' + }, + dist: { + files: { + 'js/searx.min.js': ['<%= concat.dist.dest %>'] + } + } + }, + jshint: { + files: ['gruntfile.js', 'js/searx_src/*.js'], + options: { + reporterOutput: "", + // options here to override JSHint defaults + globals: { + jQuery: true, + console: true, + module: true, + document: true + } + } + }, + less: { + development: { + options: { + paths: ["less/logicodev", "less/eelo"] + //banner: '/*! less/eelo/oscar.css | <%= grunt.template.today("dd-mm-yyyy") %> | https://github.com/asciimoo/searx */\n' + }, + files: {"css/logicodev.css": "less/logicodev-dark/oscar.less", + "css/eelo.css": "less/eelo/eelo.less"} + }, + production: { + options: { + paths: ["less/logicodev", "less/eelo"], + //banner: '/*! less/eelo/oscar.css | <%= grunt.template.today("dd-mm-yyyy") %> | https://github.com/asciimoo/searx */\n', + cleancss: true + }, + files: {"css/logicodev.min.css": "less/logicodev/oscar.less", + "css/eelo.min.css": "less/eelo/eelo.less"} + }, + /* + // built with ./manage.sh styles + bootstrap: { + options: { + paths: ["less/bootstrap"], + cleancss: true + }, + files: {"css/bootstrap.min.css": "less/bootstrap/bootstrap.less"} + }, + */ + }, + watch: { + scripts: { + files: ['<%= jshint.files %>'], + tasks: ['jshint', 'concat', 'uglify'] + }, + eelo_styles: { + files: ['less/eelo/**/*.less'], + tasks: ['less:development', 'less:production'] + }, + bootstrap_styles: { + files: ['less/bootstrap/**/*.less'], + tasks: ['less:bootstrap'] + } + } + }); + + grunt.loadNpmTasks('grunt-contrib-uglify'); + grunt.loadNpmTasks('grunt-contrib-jshint'); + grunt.loadNpmTasks('grunt-contrib-watch'); + grunt.loadNpmTasks('grunt-contrib-concat'); + grunt.loadNpmTasks('grunt-contrib-less'); + + grunt.registerTask('test', ['jshint']); + + grunt.registerTask('default', ['jshint', 'concat', 'uglify', 'less']); + + grunt.registerTask('styles', ['less']); + +}; diff --git a/searx/static/themes/eelo/img/favicon.png b/searx/static/themes/eelo/img/favicon.png new file mode 100644 index 0000000000000000000000000000000000000000..a3e96a90efdfb53f6de81922e93d0118d674a720 GIT binary patch literal 2573 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 literal 0 HcmV?d00001 diff --git a/searx/static/themes/eelo/img/icons/README.md b/searx/static/themes/eelo/img/icons/README.md new file mode 100644 index 000000000..0e3ad1c03 --- /dev/null +++ b/searx/static/themes/eelo/img/icons/README.md @@ -0,0 +1,2 @@ +Source: http://www.iconspedia.com/pack/flat-gradient-social-icons-4384/ +License: Free for non commercial use. diff --git a/searx/static/themes/eelo/img/icons/amazon.png b/searx/static/themes/eelo/img/icons/amazon.png new file mode 100644 index 0000000000000000000000000000000000000000..b4abf7d815518227d114d7edf75965c6e5a543cc GIT binary patch literal 4129 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 JWt~$(6993Vb#MRx literal 0 HcmV?d00001 diff --git a/searx/static/themes/eelo/img/icons/deviantart.png b/searx/static/themes/eelo/img/icons/deviantart.png new file mode 100644 index 0000000000000000000000000000000000000000..cec53bcea1c8aae035de4b9d9a914bb60abd7228 GIT binary patch literal 3790 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 literal 0 HcmV?d00001 diff --git a/searx/static/themes/eelo/img/icons/flickr.png b/searx/static/themes/eelo/img/icons/flickr.png new file mode 100644 index 0000000000000000000000000000000000000000..2496313adb2a88a9087e09f9d59107087f3db766 GIT binary patch literal 3751 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 literal 0 HcmV?d00001 diff --git a/searx/static/themes/eelo/img/icons/github.png b/searx/static/themes/eelo/img/icons/github.png new file mode 100644 index 0000000000000000000000000000000000000000..9463a828a6d8ee61295af42863d6937b8f062005 GIT binary patch literal 4315 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 RpMima!PC{xWt~$(69BK>CFcMD literal 0 HcmV?d00001 diff --git a/searx/static/themes/eelo/img/icons/kickass.png b/searx/static/themes/eelo/img/icons/kickass.png new file mode 100644 index 0000000000000000000000000000000000000000..567d1039ff8e74b4ef68634cf5d04d80f271aa0d GIT binary patch literal 4527 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 literal 0 HcmV?d00001 diff --git a/searx/static/themes/eelo/img/icons/openstreetmap.png b/searx/static/themes/eelo/img/icons/openstreetmap.png new file mode 100644 index 0000000000000000000000000000000000000000..4f88c9643e20555b94bb33f37a747e736d18393d GIT binary patch literal 5184 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 literal 0 HcmV?d00001 diff --git a/searx/static/themes/eelo/img/icons/photon.png b/searx/static/themes/eelo/img/icons/photon.png new file mode 100644 index 0000000000000000000000000000000000000000..0d073202732c490d9081fdacde3d035c6aeac78c GIT binary patch literal 4177 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 literal 0 HcmV?d00001 diff --git a/searx/static/themes/eelo/img/icons/searchcode doc.png b/searx/static/themes/eelo/img/icons/searchcode doc.png new file mode 100644 index 0000000000000000000000000000000000000000..517434af0228ed7f0c39ca1a914504e181c0d1e7 GIT binary patch literal 4241 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 literal 0 HcmV?d00001 diff --git a/searx/static/themes/eelo/img/icons/soundcloud.png b/searx/static/themes/eelo/img/icons/soundcloud.png new file mode 100644 index 0000000000000000000000000000000000000000..851efdd35c2f7a261e5565bfd35f2750645151c5 GIT binary patch literal 3820 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 O7(8A5T-G@yGywp-t1Es0 literal 0 HcmV?d00001 diff --git a/searx/static/themes/eelo/img/icons/stackoverflow.png b/searx/static/themes/eelo/img/icons/stackoverflow.png new file mode 100644 index 0000000000000000000000000000000000000000..812176ad228b0f7fcea1473ed030c3e0c2d2ff2f GIT binary patch literal 3990 zcmeAS@N?(olHy`uVBq!ia0y~yU{C;I4mJh`hT^KKFANM^{+Z6s0Rb8LCHch}`2`A| z&dv%2Mfqu&IjIZ`6}RRFr-uZ;6tn$)?~9XnN5d5F{2);dg&?Qy29b$sT8f+kULA@H zZ;A#U6m)fEkv_4YgSoG-p+_`Oho_6{2Ky7mMSabSJGxH&eptOY``VuG&(8kadfo2% zn$L4LpJzY7!86UnIMB3#XQh*z;DhGlM~*#wqUX@arBc8kz_B?+vG}htBg2n68yjt< z1MK@47%MJwb1)q6oqfPSru{$vE2o(;j14V}2TCSdcyly}FgR58IW1#waARzkJ3}p) zVF3$6!s+Cs#|#0w3<>J>&n`1G%>6O5nvo%TilQjvf{6?Y!l@lD3>nr8YtDytxiUl; zFo>jiAF*V(q03<48J_0BuwgsHfpY@fn;1BF7z_eCS~VG1su>baC@WVmw9I4>ar+c* z^HF=9z;i7IhKiY+Y<8+xx;930=oYevhwI5{obwdd7BNd?N}T1Occ^lvq*0>@|AWtG z7#J2z6cv2X{P}OiIlgu0&YAUXa?*D&eFDo7K zOxhWtCGt2>sIbpvR?lanrAnPnlQfU2UizQ%=)TTxX1n{Q3>&iS7^^4hu82)${^qSN z5K(gA(RT)hPrLIEUeVxSZpdhUc)tAqd;7oc3se~z(mW>>GBCussOW{9+H8NEgMqABXtN)*p%oJy?Xg zRTNHkhy*HmPc-!~4C)F|2=$QtWLv~!*&gGzYohfD2BW4wZF}4er!;N~w7tT!)p_R% zbEy`$McfxsN(^W9i!GRap=gVgZI9W)=NDFI@ZajUb3Sfx;DrRc@sS(@y<>-+Hd^R# zPEJ0(QE3g&>SIzH!qzbF?);j3eq%X{P^0SsPBWHrCxt{gM~?`f2)`R1D->i@OayOn znsYL@1RhdXn!Lh$i`p*1pGPE;j11c&Jam+=3H1x>3siSFA2C-E>U1_z-#LNFbK{bb zOG202F69L&ztmYd+r&dkdGg6yDcPIYEvM)xXrE|(GWW^hC&o{tpD2Ec=9-)2P`Knr z@FR_&Q(0b;PX(TuJY`FrVdNOPcvjHe6$?WIP5Yyq)-K!@v_7zXg|JEKEX%XaVxHbh z*DjiRSt>(3<9p`%7bUv{?@pETn|>ku(&?A(FQ&g>{!-4v+a}t4ydzyha<&A!M7m_T z#QGUN%Oo#%OCAp~FgJWXQw698Ekso5eq%QJrCtKuUpTqvn zO9B^cjDNi6m;!gQcNzus%M z?(Ooq%l5kNj{M!o=Xl&pJx1LhJgYPcqS}x{mYxQ-V-m2`S(hGOHl<&`5 z{%*#+eQ^!*eDasytK9qimrSkx-;lq#zm|V>=ZRq3%%j3~o9CQ_%~8|Bd>dK)#P%a9)}?HF5gGmWewr+AO~6*6YUKlX)!WvC8AzW4Xr`tFfsms(Jgq@_jce$am*5 z&1Kd;);`D2o;kbd?6sMuvuzEp8$F->eD?L(_qQiRRYd7*Td{3Ns^_LBQOhFVZQGOA z8f6)|G$J%AcC*{sxocIg?OwZkx#04hev|!H&%2g>c*DnSC%3KKF1g|94Yu3sw&iZC zO-xS`Pv3rY-QjnW_fD?eRona5mYui#Cf{n=DA~H=Ekz<$VOIBMotyK{zV_&sX)pED zBhCw)zhV4%oA7DPBbjr9XJ2+t7f;_=-2AztyVJYrwBB?(z1h;o?w;8D#H-|MVeG@I zOJC>C-aPxz+ZDIhzcYK6`L6xW{4*x=HRnYd7hgDh!udhq(~I`p^QRhQ-(OSb@9f{0 zzV*4XezN|=@U_=BY+qWw>U-jQal3DJMe`rqJ+?8wXLK(z{*3v7?I*UM_CK6IFTVA@ zbG`Eal>b%#FET7|P-RSK?rd~yjAr`%qpC)6f1kb8?bL6ZZoYNwS+LVl)Um&5ZPU|( zYZWt2yqU08@%!@`=O&)ZaFdq;cfPP1sxGm7Y(PImS4Q% zTzuc5tt(yL9I$s{|&0AY|?}u%9`}LdaZT;zIHE!>2-sZe>@qU{f zds3I5Ja^XGK4eMAmyll}X74WD-I{p)N8ZJE($#yunY_7rJ9^Lezji10-4108^}U*Q zHTAdW@6F%s*LALX`D5De+}O2#xrJ|!Ghbr<%dX6~?fT9uS7k5Rh6MFr(|+yFcU*qo zzq#+rb$QKrLwn~Od!$_8Qu*ZNch39Y<#?@bmGxAwdB}cQzDzbiViQ^E^*Q8Z=B<}amnWxxI^Q#Q>fG8oy`OgyZZFza z{XF^H{Ve|c_qzm29$s?&-~HTrkM+5jPdiFJZMywbIDAL=to2s$xvxrI+5DS)+5h=b-pY?+|F2!0XK8zP@8_!g??=CXy)SmRu1Njw zxzoFEmaD&8yT^Y|{1=C}jyIj}wqLc6{&(lb`#ben2g(`F|6?_VYWl z_Rs7;-NxJYdY*-yrR5|0qQ5WyEO$Pia$aqo_`gN}POlRe)35t+_4W007iU~tIQ`S~ z$@_C_mi~Qp;I-uX+s6(aliPQ)!q_nGOW5zX2g~o2%f4THpWpvUjY7S~|BRm-zXo4e z{(G|I&6h2cL4F4((#G6MqxXMsm#F#`j)FbFd;%$g&? zz`(#>;_2(kevgZpOW#^3)kL3xf#rm!i(^Q{;j`0YJ3>+=j@Q4hK6kFq_}!ZmyQW%i zzNPgnYin0kU|h#`!AA2~kETXNK^JjXmU~ZJ9i_e~&JYVrxZv8z8YtPK(DWcQt!{y~ z)b2;?)}DL!s%HLYyVyC##?O<}!q&e!@bFCKdCT|zE9XD|zvut|1NAi;4M8heCa}e^ z{&Hby$P52i_kg$4Tus5FIOb1bzK7Iz*5-dclH2E<=I#7+@OR_QR)^b-?u@hd*B;0) zP-^gSjk!EOe%|_*AzG{-mVN(_cp%lWfb(Aa`6U{0%p3l8Ztk6BQ?RSK(S><~j!Wi> z&|7Qw2_}d+uycMi*!qqm@Aem&+y0;S-kmWoCFAMEGh2-wG#_zre)%q-d?`b(#PRC$ z5*p_gtFLp|dn@xRuZ2CcokPx1?#Aq1yF!WA5A=@sRR~-2scjd!XqHuEbB;Oc`&ouZ z3uLo=dwc?BIiK}e;9u9fK)`Uu!q5c{=FA_O`)cIRIdE)oUaNX3Y+du_zqu-VS$=rib;t9V1| z@zd81aHTC!e%U0yctVuqg&p>9kN+*=58Bbmur*gdd77Sj;Wzd*uj?Q1^)5K|J+OTF zqt)t%8qe9voov~$;^Nwf{F?S#A8d?F`z&{{|NNS~LQM00h5W{xp!@HZ{yI~9=l(~r zMQ;Tv3KD${wa%QY>pJoJ?$IL)-o*91R#^AAF!7t%r_b#LuZ<$iHhmRclVX1^d3E9C zNP~&nxVP;-vCq_hO`Z7_*0%@$`e>Z}@$jzCT#F-ro?f>2o)+L;wBfVxlh(ZxJQn)N zE!>u5o2S(+@p8s5wwKIN0xbFZdS7>DR&6@1@vpY;(vf%tw(P*RlsegyccQAw>sx2- zYl_$_clhw?uiicx{2X0@($@~ZtxsDKruF2L<(hqtpY-1yUMr^Q8?&J1v(nU)-6HGf zEwrc;TRBy->Lr7DUQBvILPLp_D09y89s9(NEDd3tt{3+x@1fq|)9o|&7fa`63Y|3R z4$n*Zc>ZLj5(j5E0 z(#7R@%1Ronohe;M7K!ZrXSzGb_|cUBuTs`GF-;n;nY*6u((AY1I`PsUovA?+vvzuH zjad|?7c@gZL598I&Z>(6425zR7P1&#YtLQWp*T}k<>LM;%Io8=+1t8y#5Fa!=mGDyssstrIizOZ!Ouk^UE`^Pf+f&$9KCXXxB{AGlrAX#Yc@Ge>xmrNxDxc^k|y*uA@vy=g|KrP5(W zN3DpNz*&ND8`o7G?ut~ihI{5{=ISe i__@E8^ZpJ>&n`1G%>6O5nvo%TilQjvf{6?Y!l@lD3>nr8YtDytxiUl; zFo>jiAF*V(q03<48J_0BuwgsHfpY@fn;1BF7z_eCS~VG1su>baC@WVmw9I4>ar+c* z^HF=9z;i7IhKiY+Y<8+xx;930=oYevhwI5{obwdd7BNd?N}T1Occ^lvq*0>@|AWtG z7#J2z6cv2X{P}OiIlgu0&YAUXa?*D&eFDo7K zOxhWtCGt2>sIbpvR?lanrAnPnlQfU2UizQ%=)TTxX1n{Q3>&iS7^^4hu82)${^qSN z5K(gA(RT)hPrLIEUeVxSZpdhUc)tAqd;7oc3se~z(mW>>GBCussOW{9+H8NEgMqABXtN)*p%oJy?Xg zRTNHkhy*HmPc-!~4C)F|2=$QtWLv~!*&gGzYohfD2BW4wZF}4er!;N~w7tT!)p_R% zbEy`$McfxsN(^W9i!GRap=gVgZI9W)=NDFI@ZajUb3Sfx;DrRc@sS(@y<>-+Hd^R# zPEJ0(QE3g&>SIzH!qzbF?);j3eq%X{P^0SsPBWHrCxt{gM~?`f2)`R1D->i@OayOn znsYL@1RhdXn!Lh$i`p*1pGPE;j11c&Jam+=3H1x>3siSFA2C-E>U1_z-#LNFbK{bb zOG202F69L&ztmYd+r&dkdGg6yDcPIYEvM)xXrE|(GWW^hC&o{tpD2Ec=9-)2P`Knr z@FR_&Q(0b;PX(TuJY`FrVdNOPcvjHe6$?WIP5Yyq)-K!@v_7zXg|JEKEX%XaVxHbh z*DjiRSt>(3<9p`%7bUv{?@pETn|>ku(&?A(FQ&g>{!-4v+a}t4ydzyha<&A!M7m_T z#QGUN%Oo#%OCAp~FgJWXQw698Ekso5eq%QJrCtKuUpTqvn zO9B^cjDNi6m;!gQcNzus%M z?(Ooq%l5kNj{M!o=Xl&pJx1LhJgYPcqS}x{mYxQ-V-m2`S(hGOHl<&`5 z{%*#+eQ^!*eDasytK9qimrSkx-;lq#zm|V>=ZRq3%%j3~o9CQ_%~8|Bd>dK)#P%a9)}?HF5gGmWewr+AO~6*6YUKlX)!WvC8AzW4Xr`tFfsms(Jgq@_jce$am*5 z&1Kd;);`D2o;kbd?6sMuvuzEp8$F->eD?L(_qQiRRYd7*Td{3Ns^_LBQOhFVZQGOA z8f6)|G$J%AcC*{sxocIg?OwZkx#04hev|!H&%2g>c*DnSC%3KKF1g|94Yu3sw&iZC zO-xS`Pv3rY-QjnW_fD?eRona5mYui#Cf{n=DA~H=Ekz<$VOIBMotyK{zV_&sX)pED zBhCw)zhV4%oA7DPBbjr9XJ2+t7f;_=-2AztyVJYrwBB?(z1h;o?w;8D#H-|MVeG@I zOJC>C-aPxz+ZDIhzcYK6`L6xW{4*x=HRnYd7hgDh!udhq(~I`p^QRhQ-(OSb@9f{0 zzV*4XezN|=@U_=BY+qWw>U-jQal3DJMe`rqJ+?8wXLK(z{*3v7?I*UM_CK6IFTVA@ zbG`Eal>b%#FET7|P-RSK?rd~yjAr`%qpC)6f1kb8?bL6ZZoYNwS+LVl)Um&5ZPU|( zYZWt2yqU08@%!@`=O&)ZaFdq;cfPP1sxGm7Y(PImS4Q% zTzuc5tt(yL9I$s{|&0AY|?}u%9`}LdaZT;zIHE!>2-sZe>@qU{f zds3I5Ja^XGK4eMAmyll}X74WD-I{p)N8ZJE($#yunY_7rJ9^Lezji10-4108^}U*Q zHTAdW@6F%s*LALX`D5De+}O2#xrJ|!Ghbr<%dX6~?fT9uS7k5Rh6MFr(|+yFcU*qo zzq#+rb$QKrLwn~Od!$_8Qu*ZNch39Y<#?@bmGxAwdB}cQzDzbiViQ^E^*Q8Z=B<}amnWxxI^Q#Q>fG8oy`OgyZZFza z{XF^H{Ve|c_qzm29$s?&-~HTrkM+5jPdiFJZMywbIDAL=to2s$xvxrI+5DS)+5h=b-pY?+|F2!0XK8zP@8_!g??=CXy)SmRu1Njw zxzoFEmaD&8yT^Y|{1=C}jyIj}wqLc6{&(lb`#ben2g(`F|6?_VYWl z_Rs7;-NxJYdY*-yrR5|0qQ5WyEO$Pia$aqo_`gN}POlRe)35t+_4W007iU~tIQ`S~ z$@_C_mi~Qp;I-uX+s6(aliPQ)!q_nGOW5zX2g~o2%f4THpWpvUjY7S~|BRm-zXo4e z{(G|I&6h2cL4F4((#G6MqxXMsm#F#`j)FbFd;%$g&? zz`(#>;_2(kevgZp%g}10vUM5*0}F$vi(^Q{;j`1vX3K_39IH=%cjn2g+3Ul6rRR77yA z*yL|&+fVwwKYnJ;=UqFBi_h1nUYEMiSe<_E%$(0Q&nxGDw=I5PZzpo#BsWt4qhH4f z0|ur`KfUL;F8Lg>>H6Gd5pRFYI}sKyxUzAMq1&PIc{^P1NYsezxF&1BeM{QH@yM=o z+1&z@eI`!|j(Q!aP!KmiltEv-*;{YNlg8A>uDaBvbHo|%L>$_9?&d7bB`VvVp7rw8 zYuqy-$5#5b(ge2CP0QC6r_C4t&Gd6^x-ILb2dv9ZH#HhM9c^}gEGO!}@zw<$J@#mp zp3eKOR&74Q9?ksKT-OD!&9Zd!o*>AiD`RbOK)L*9=a;H)^BnK}-*xV3ZwGt6zOl^$ zi`^maflC@#ODbYMUdYwU*Jm?1l(e#!qyO!9;|F&ixBj-4jOFK9UsE=9kQ zI^R#3`QHjB%<%BrtMNPM&W>LynBgN+efv(H)qmFqv$X~L{df9=OyY1?i|z9%tJz%?d->X5 zL4#vYmZhC%4$IjpIB(XsA6crm#1a+-C1owyFK{KwO0fENOPacTSdSBP8D0{e5hvc6hDC%d#~{D%Ilbxw;nk3o>%1M zCZDLroWB17y)&X$Y%VeV6aJ}w_ni|*?yY0ayVVlg)@ZiJ#QIRj`n(wjZobd@(Wf<| zwvYYI{N)esa(|U(`=4z4)g)xS6h@XGoPP0Pef2dB!7<rT#kCSPmrpSWXv#j@ z5v8oT+NnxUeSN)MMbhTUDh_J?#xo~&W#8NTW_fj0yQuSWkrmJQcidGkGrM;5L2Q6@ z%&IV1gXOMEw!Y0vWB;&7R=D%;L$QjrtnVYaR)p>LJ^J}c<%Ea((&7`gy!BOQ*xEmT i_wU2$cE2Y6Kl;)9ivLEFgGZPdK)}=0&t;ucLK6T{HXzmj literal 0 HcmV?d00001 diff --git a/searx/static/themes/eelo/img/icons/vimeo.png b/searx/static/themes/eelo/img/icons/vimeo.png new file mode 100644 index 0000000000000000000000000000000000000000..0238d24d2487a0931f26da64aec2fceacaa0718c GIT binary patch literal 3894 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 literal 0 HcmV?d00001 diff --git a/searx/static/themes/eelo/img/icons/wikipedia.png b/searx/static/themes/eelo/img/icons/wikipedia.png new file mode 100644 index 0000000000000000000000000000000000000000..844bd57533c84ad9eb89af8e24f63eee3db2ac18 GIT binary patch literal 1028 zcmeAS@N?(olHy`uVBq!ia0y~yU{C;I4mJh`hT^KKFANL}EX7WqAsieW95oy%9SjT% zoCO|{#S9Fx?I6t9|MX)j0|SF(iEBhjaDG}zd16s2LwR|*US?i)adKios$PCk`s{Z$ zQVa~tjh-%!ArY-_r=8X>&K7B(zs-H6w}>cnlWhSfbElt_reaXwl9k>qEX;z5Nsr_$ z=3WU1>XZmz_KlgHqcW9aB3tiihb@UNF-a;17cl1v|2^lh>HKzo%U9MvAMvcY8MpuI zy8Dy&-uwG5JTNNiSF=9P)9_jK%r(q4%zyM5{{8s5aLpQ?*=O6F7ETbY+#9E+rZ!{N zET`p{Ju8=A?mYfDv7%zeuU}P~_SV*?4<2NE{P?koy87v=n>l7ojSXMc{CMuU;$lXD zg^Wb6+q?JgGcz(2WcZjDgsm>Ln)~8wm5m(#;>C+E?V31Iu&u34LPFxe^Ut1@tFNBA zaYJH}M$-1%oNUcT3uXw~*xNrYuwc0GvLq!v-8)J}C^0FCiJ|$RgOgL!lBv_CZQ8g| z(U?6zYpRW{ZQ|yeNoVe}FmSLi{rFoq#Y=VW+_^??KYS3_f8ReXP0iQWmw}_n!Pl2} z^5n^ed)I_%FVYa=YQ49qs$Tfq`SZ*dE?#VmT01S%*w~oi%lGe#12kT|f1h4lJo)r# z@5tD=IJv65a@%kJop<&(gIs_6@#F4BMn(oReT;Imv%6={mhS5AHk^HS%a$z$wzjgD z7w_FW_wnP$5*v0fC{5&8q``FI?p@u>i!N&TEf;3keYfxY^T&Vw#DpylTDc)=t&Xnl z-t2$t85p{|yImFseyOr`b#*n$EiIke-p(#0EPUT&<*HRqYr{5g-TL)4!}jgl-@Jd% zeBtU<)ysz-Zn&~%+cvYb+~{cOMH)h#E_JdD|L*mOb+=BLBBHrIXr+Nv?}68T*R!@x zT6Q&Sf`U@w>NgU02q`Ub=q0{cc`*L4iQSym@jji*s{x{}y~c%FD1}(s#lyzj+SL1rDaZj{&Cg?mtL0C*M*31wFGI{3Yu2Qsr?=m|d-uAUmgv>1SD!q8zW8d^$KQV^eG5GDr{`XGR~MI@t6moJ|)cP`_Gef#ugGP5*0Ub}XU z!NSU_>-L{u1_r(9-5x4RbDQjs-?<~Budlx&X5INMJ@qUftg;;icI?Ra-Sid?}PZAddG%UyZ*N_FfcH9y85}Sb4q9e0E;cyKmY&$ literal 0 HcmV?d00001 diff --git a/searx/static/themes/eelo/img/icons/youtube.png b/searx/static/themes/eelo/img/icons/youtube.png new file mode 100644 index 0000000000000000000000000000000000000000..eee45df25b79c6c2a072bc0e84863016edaed52d GIT binary patch literal 4137 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 literal 0 HcmV?d00001 diff --git a/searx/static/themes/eelo/img/logo.svg b/searx/static/themes/eelo/img/logo.svg new file mode 100644 index 0000000000000000000000000000000000000000..1945ee35b3d3b0c0ff5aaa4b410cd949002e08d0 GIT binary patch literal 19480 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%0DS!3? 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 Pfq}u()z4*}Q$iB}#;sQ9 literal 0 HcmV?d00001 diff --git a/searx/static/themes/eelo/img/logo_searx_a_n.png b/searx/static/themes/eelo/img/logo_searx_a_n.png new file mode 100644 index 0000000000000000000000000000000000000000..5b24aea8c495cc7d87dd234b7f34c6c0579d7842 GIT binary patch literal 9704 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 vE}LDP`P-L1P+nfHmzkGcoSayYs+V7sKKq@G z6axd}=>VS)*Z=?j7Z(>-R#p}l7k77e7Z(@z_V%{5we|P+_x1G^7Z=Z*IdjpXMa9L% zD^{#1E-qfXcJ0ocJBy2pH*DB&?%cVZJ9lo~y0xgNsJOUz*REar_wO$*E+S6=27@P0o)i}sx3{- z&1-IM?&#>4Hf>sUb@i-SvubK;=FOW|Qc_Y?RaH__Qc+Q{XwjmQl9GoHAC{Gsm6Vi} zmX?;6moHtqbmz{U5N=6H$%+*#&YnH{;K75El9HV}cdlN&dfmEp4<0<&uwldf`}a3( z+H~Z|kOqn)q+VttuXUv!}d-m*k^X4sHym-Zm z6)RV+T(xS|>eZ{)u3fuf!-kC;H*Vg%dCQh9J9g~YxpU{PUAy+}+qZxJ{(}b(9zJ~d z`0?YXPoF+>=FHi%XCc9R>(;HickfQqR}o`iU??mJ@(X5QWMpCE=H?d=5*Cq>Q`a%F zwz0Q&@%HlzjZexbE~{zo=?UX z9zS{N^x3m#FI>2I2?VZOy>{)|jhi=bKX~x;`O7zNKYjlCA? z2F3-RE{-7*lBEYZtwRb$*dNR{z3F^xU-6r0)u3J{SCzHj)^Y?M>)9y%yQn|+%)$SU zcNNe7ZDYLcd+YuK4tJETjE$wrIeky6pYrECs{8R~%89X*t}cYY?PFFH#l_dJd$?5?<$US6Jl-B#(H=yAU9cE?sHrkzc_EjID;(WAkFH@EFH zc^1EZ;+MBiM@$P=@^W;qG{e)-xuFVmsIC^F8 zkF#sm-unLi?P{sdH$JNy8n7<;myz_$c6o9C%=@)|ybb;pC)?}Hc+94^Jl?fqT6+Bq x^{o5HA5L4)^Im>`%_)vUv5Qt|Eq+kUs*<;jS5{^gHv literal 0 HcmV?d00001 diff --git a/searx/static/themes/eelo/img/map/marker-icon-2x-green.png b/searx/static/themes/eelo/img/map/marker-icon-2x-green.png new file mode 100644 index 0000000000000000000000000000000000000000..7446bb031c89e6332c17133db99b3c14552ca237 GIT binary patch literal 3753 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 BB=`UT literal 0 HcmV?d00001 diff --git a/searx/static/themes/eelo/img/map/marker-icon-2x-orange.png b/searx/static/themes/eelo/img/map/marker-icon-2x-orange.png new file mode 100644 index 0000000000000000000000000000000000000000..ecd67736fe031549ddcc56a998402178770d0f0e GIT binary patch literal 3691 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 literal 0 HcmV?d00001 diff --git a/searx/static/themes/eelo/img/map/marker-icon-2x-red.png b/searx/static/themes/eelo/img/map/marker-icon-2x-red.png new file mode 100644 index 0000000000000000000000000000000000000000..1d2e197c645f015344f6471c90b8cbd68b0608d7 GIT binary patch literal 3692 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 literal 0 HcmV?d00001 diff --git a/searx/static/themes/eelo/img/map/marker-icon-2x.png b/searx/static/themes/eelo/img/map/marker-icon-2x.png new file mode 100644 index 0000000000000000000000000000000000000000..0015b6495fa458ad39d51cb4b913430016f48d33 GIT binary patch literal 4033 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 literal 0 HcmV?d00001 diff --git a/searx/static/themes/eelo/img/map/marker-icon-green.png b/searx/static/themes/eelo/img/map/marker-icon-green.png new file mode 100644 index 0000000000000000000000000000000000000000..f48ef41df0a84632da8c7f67c8125d006e9a7ef9 GIT binary patch literal 1696 zcmeAS@N?(olHy`uVBq!ia0y~yV31^BV9?}XV_;x7FuCa*0|NtRfk$L90|U1(2s1Lw znj^u$z`$PO>FdgVmxqg=LC!MkQWgUP16z`}y9>jA5L~c#`D6wLHeF8_$B>A_Tf;MR zLPAC4M5hZZ?o>LF6nX31w`aP>`7^(#?b;I-GR5V9L|sNtCz~+OI+a@-joY?lPMo$> zVd-VBn_MN!bd|Q|v~CKSc#Id#A_j8{&7PTMDjOO4_Jz?CSe;IKibfuH_E5(Tfb{ zU5&{=ah>MS--{K1v9;Hzq=rG zXTr&k(-;2S%@DKem$1yQhYWkJZoD!>-RSF<;u-QE1>`@mb>3H5SH5R*v~qjKaV@DM z4s8*!mRIv4zPd8D98Tht|8L&)i(R!Zpq;5nvyHKzN_0kQmvbu&0Oq|f8juH z<@BhX5-XCvh>1S?`AJcR*U3bx_1?XE5*|G*VsGZM|FS!4(OpshNICA2`A)5w@tdMV zC-fI8$R#Bk1ck0Ycxmx^sTP+z*RP8+cLuqC=Hh+->yk{jsY>a_3(U$ObKhSfccsk;1;bw@3%<=#H}+tL0b;DP?WBQ{4fv}0B- zJsqsy+|sVPD^IMC|7@0ff4M56mNw2^Wcypbn(1SP^^&?Le~qr~ZgF~@l)lqe zqwGW5PfN8pFOccbg;ad%Ba9d<3h_w;%h|zC6$@YfkRA9_c6VGbb?q zted<2WAE;^tySwz1Zjm8DyCbrZ&NdVr)8Wvp`&N1PUt2@_k};|)52Q^>TI9{S6$t|*V%W>A6jX$O4z5VOC_s+sXMzd`b z3TCu^Ip8znt-rLONT;yA_U>z9B_dJN)&H_}TF&+Oer#*?gQ9a>HfBn1cD%cDG*D!} zzrOcw{iWrJXWq_svUF=UuPFY1R&u~^+cEK63Ln8aeS8ce(u{K#Ge2MSO?>(>A&eJv7@3wo1x7lTT<}?$(-o|;E^NyCTIT3#B@5>Dd zGmRJ*|D3t{xOH=GvR8r^&oeRO3pQ?rnJe6Ty;DBi+jC_4EvGY%Y|Ge|9ZLD1l3bGT zx^PO=A&Ix#+rJ2!d|BJH`|riT_VQ(xvT8roB?B#M%DNs^N9|7)e4NvzbG}&hnnCmb zD&r428Be;_CLSr?{>M_>_}90$)&S4(iE#8&uH>5U#VF&cEYOj_EmqX)EEDD7i3^y OVDNPHb6Mw<&;$T-bsgCN literal 0 HcmV?d00001 diff --git a/searx/static/themes/eelo/img/map/marker-icon-orange.png b/searx/static/themes/eelo/img/map/marker-icon-orange.png new file mode 100644 index 0000000000000000000000000000000000000000..d0d22205c4a0e074a9f8da3e0151a334017751bd GIT binary patch literal 1714 zcmeAS@N?(olHy`uVBq!ia0y~yV31^BV9?}XV_;x7FuCa*0|NtRfk$L90|U1(2s1Lw znj^u$z`$PO>FdgVmzzmYTXI9t0aXSD2DT(`cNd2LAh=-f^2rPgZ1$cmjv*0;w}xj1 z1c!_Ct&KhQ^2$uTVE5%~Z@Fqa2{A=RqzJQY6kF3&`ZCEiWXjo7N*#tQ9yboD35sxU zYtq%yV)Hr5yJc#N%9^MBYh{o3o%UIt$GPCpOG|$r&znrQ&eRlterNmq_qm|o`!letcjZ_O@lomHVY$EUz( z?yZMq;?c@>-&YE|m9d z?#jG9b+yC%?JRmHYN`W1G-~-NSk8WHcu`9*bj{;4!i9&_zLte27e6d|p%KTK+j@F| zsXaqf(VvBux2I>mocSwr&Km>gQ|rD~v>aX|=-QX}RDVUEXvx*(KkYK~<5+Wd+ogKA zJ4Z97b$#PC+TVUW`N!Q8!WK(BN=@GL%IsMi$l~CBG5x}#56#bXlil6yI9r%Q zqh!C8r%CPv4z4*XCZBnqcYm)8&&+#=o0Q};=lnVEwO4btv6#}-i+$RwlU!nRj~?`K zY2(r74v4QV6qua2y2$eKHtpsaTP06z^OfW|p5(ghaI}oGgy5WIp6!cdduF{kdSTXf z30_;B3t>Mvw}`Mg&%GkvcXT(C)uD?K>OV9kuP;u}+$_h|I=z+uqkufyeb+y0PUTnV zxo_k0m91_%IHA`qGB0h5m`=;GISdvuk9lTsao*WiCs`$L+p^pIKZA4Vwa0Z_>k=lm z%6}A)|0LBpztrH8qL=9Vv_&0XKUJm~M2hG(zjEP!VH3;d{C8bOXn{(eT$fJbvaAL6 z9|iS4Zm#Qi5<1uW;HwkgnQPm+B|{9wFaLemV#4t2*RO;f^R0e!Tg>0p5ZT@M?}+=J zBj;CjJc!K?d7u_t(PVe`B+o3ZHD(z$GnkbBMum6mNtIbm)IPb;0g*L_c@f8zRY^O{WoWt+4Pes%P|$Hc8XE8O|t@c=p1mep&& zI&7w2B`72j7{yP#r`N5@NsZ)ZRy$e+lq^`l|R|_4Cc8 zF^BoIcsHAG6Z>W4=WBFM;l&e=37Q9#kIc+$-@Lf)ktX+Jsfp$nbb>^VRxhlWd-uM0 zO8BVt246fZ)OCo>nJhN zyngE#Pu2W4QOU-vtyOg=KP4=4o}FZz_F{8Of#G4^3CmX}e0_7hz2@(u1U0z~wWxsJ z626S3@{#-^ndd&YbY;xrtXy(<-(yc%ULWx%dOnd^OE#}%yJ>zRHdFWAV<~^RkJ}dU zBzm7({O0#&$EGLz?(DZF{{24jn;VZ&;uY<{x)l#XP4$t-el1)GW5 z-oN@EX8!UvFZPL;n0@T;ONDQx^E+<-iBvy!*q~NV?~93XiR3nizcY?rRZqXN!{yia zv#)BU4WwD+wO`8aP?>jXi&ZOw*P$D+Gv0PB|HV=DX>HTRf9w1fm7kUonc4LFI9t~C zV$JT;CjYJ|{hhi^B;Fy`HJM-Mb{?lSH3#GQ+)@Uuv)^Exe~SW?QY9u z30cFdgVmxqf_Q(gJ>`h5%x3~Wi>?k)`fL2$v|<&zm0*wj5;977@wZw=4P z2?-UE6PYfsxYJujKs1o$rIGR6bJxmd)XqP5?b1T-yA#$buzGIj>{Qg~v^UYx6J2s+ z(H5_p-qCK{y1E(ZR?*9K|28LaxTzR!D!tY8_TwCPN$Zl?n!hILn}5Goyl?Zp-}jOk z8MLJ=jy_X=ee_xjTcdBGQ$nJ-m&|#W)z&Z5l2_F}m=lx((XYHH1bzzj|2PmN)|{~E4uW7}11c5vq*-3!rQ)QroX z=Q7T()tz%ulxNYw=&w$vx20A7Ie8#wxw)?(NZFm`?5Yq5>C0+;}IwFP!4UzD$hw?iyj~ zXMKiEY<=b{i`aJ=mh9h^;56a+7XmZwSLe7ig+2KwX_DKEtw1=Z4 zGR$dtGPB9cPY+k9Fb4?sEs1zoJ%`=sy7AW!+QmvG9qm6Z{H%MFe)ZFq%yyS&0sL+c zr|UECzar>%A%I2hwUot-Eavaq`X9Xd$!$>b+brh)SD_#FH%imz&M_8se<8^KQ88cs zv2y!zEAaLqCudJZll#s=Bm|MiF=+q{q?liqQcztO-L7&iq838 zW&P`SxH|9DVTq4Qlel7--g~s*&Mv05_V&a@$0Iig`elEf8P#)5-R_ZUT^O(b|J|oM za#x&SjQ4Vrn4h^*d)}=LHK+c3*!(jIHuf zNLusv$F`HDUaq^t|5d}?&F!_Y{Kt2Xv(`_Vcv*K<4#$G)aSKg(W(Duy{ke3qlx5^E zGZW2C3xemGhsjq?+&?q)=(T;p`X~2X?W~m5b*cQiT-v5!_ie4Y2^*@~VF7qfJ8ciSiCVum|=1jHgF`s=PdaVqU%)!HGo z;_CB*;WoN&L}xDWoqPDoxzpxuFAPl`?Myy=e^+sJ^O>zd2g7#G-f*AUNXPEF1f%~X zy&41SFF!9VJJR$hb9tr1w3Bb{uXeUMVcxUn?Ze%x=d3-q%IDHI*3!zJN$raznf1fF zcbYZYUp>_$eDb2z$B;tP+7sE_(l<|fS7(GT`n2Adi~aKBc`kRiIR09@NylNI{kQ3< zwi1O`>nET%N67dW;S@!l8E@}H0|`PuHLj-Qn@FYiB<^C_1u z3NG)Ew9EOvImlYU|NrvtCH}p?e;qyh{i73ipyS={rx!l1(y3Z7kwNa1)I7BooA-V{ z`qW=*2v|){JGjlHp?ac8R)F+&&ov?4vm+j>tNo4AOxNBXs=o5Qi!;l5k7aD9CjK$^ zd}UYiX|1Mxr=8#{dG~|TYc(rYR8+l)P?#ySFNJx+pK~lfP1n3l4y?Vius|{{M{)lV zzICjb52`dvodQ%;wohMtq*(E`%vW)hXC-2DXNygoXxZ}ar>5|s)4|T0FE|ALiL})J zcX7tPR>M^3RT@$@4`rWxw7Dp8!Rl>z(UmKKs)qFi?<*p|akv#fRgr(Mwv8!9pW}GL zI>B4VHT13@n<+Q%TDa}JTcJ->WsRv!${bFCYzj`4iiCB9ewo9fC1jf-WDRi3Z^blyU0e({uJu`*X3tlb$c_!bEs zuFp$(vg>20+9^%0e4Q#o$%D5v1il0X{mFN8i`u0VHn*PPR;p&eqzQXV7#J8BJYD@< J);T3K0RWT<7UKW_ literal 0 HcmV?d00001 diff --git a/searx/static/themes/eelo/img/map/marker-icon.png b/searx/static/themes/eelo/img/map/marker-icon.png new file mode 100644 index 0000000000000000000000000000000000000000..e2e9f757f515ded172e6f72c3ce55bbe15579649 GIT binary patch literal 1747 zcmeAS@N?(olHy`uVBq!ia0y~yV31^BV9?}XV_;x7FuCa*0|VPEPZ!6Kh{IdMD}5%X zOT0HLKcW-8N!fT-?yF~p6XhKA&lN@TJ-)EgqV$~3%z6%1!JTavx{JCSJfhc$m1fwe zWi_tSXtG*(L3l>}n*zh=61~%VqWU<`&-*^xEF`Za{?qB%-+%m__q?+Id3C%L!-Zu` z`&|Bu#b0}HZlXC`VM$=-S5|4 zxV_Qt%=Fj!pHqMBjqwz&z2%l6bh0}pGFU7A-i`f9`O)k5d^)mBQqCdX1)JqIU^*Wl-$&_-*&(Vv`$v*{c)RZj)ZLDpw#f zv(;d0tCr{7E%`_O@kVj8Jejlk^AcV&{hupUg{2;*T;tyP=yL6$N81jbeepBh^sd0N zO$`M?YmODpHr(`K(&_&ND$9QdrhlE`W}}*Z@8G%JfnLlx78kf5W@)!*=?1e&%E#X3 zUaf7_IJxqbqW#}9djj1oB){&O(Ddvd?=3kFU32FX|1NU4wg_JQ`}lkCpF`8?uIzr1 z)H1g&M>xJ_lm0B9{!3hrscGUZtJiE;w~XD+-G8yE*{Yc3FB>_&zS!6zzxE~Dz8&`t z-mCqSeTu{Ha?biMkH3XJWs3;SY(7w%CSDVDllOIY!9niX2mPb?-+X!eK-Z4*(4XQB z+qkYTUM1Z$?~#D)qV{v&1#4%ep9+kRJH~mu%2%Jm>#TqQlc1Kg%gS8`+-sPY9OwP; zcMx0t6DKchovtAB{L=OtPmXjI zal1^3X3t!$^T1--o@n`%VhV6N2W12c1r%J?(u7xu59Vff0Xwa zXKzMyl|sbAW{;(3TR}>-UtWk!T4K87fe_2$)VzfkIfK+6=4s~6x!@7=m6hXEZrcT; z)!gKbbI7qVZwX)AF4PGd?X7-Ql^l;LWSjtlyK~U%Vjj z!q>jp|CJ)gx&0j4r*szYaOs~L^Sxo`Vy#KXy4KD+eJ9XTq%nFzyIjSyGRuSKUNb5B zIcHq_{-9TIqtGgam@*NY@@owGPZ_KVBoAFoE}N&_|H37qEAd#kZIoR6Pr0dK5+AR! z)gP@C5Q%P>dig06f6MDSAHko-L+VM=aQrtw`q%9a8@{8@53HT z#K2{VK^0FEo}JBNEuZ*GZr$70!MpD4JiaP8vXfnAA8T5~l#7h=Z{_5>FLucHC97Sz zC3$;lXYfA9M{~}pJ#SM#sxvFKrS+xk<3r59cV6n2X#KVRXSC^h-`9FR;+l^mtg~hB z{Y?9EgW>c3mlCX({C>^kjJgxJ>h0xy1@$^wwW5o69-bD%(6)x#&L>-*b(zfM6+f6d zA8nick!cfq2f!a{t(^Y_cQSv$U3GFNhap@GY(^=W@f1UytWzu5Td zzOB)@!$qFrXT0;u55;z!6u4bD`A*HG#c3%mR_2DM^k;m$%D3$hi~N$Z19z5`t$LC$ zS1|l;`^CJPW$qUyZ|AD|&8;2FfBMK=gY@gB1;WX%{PUFp|G4~`fAd7WweQwxg5g)6 zcXIDl;9YMSVf0Arw}jHwS?P7>EZHwUVEyvTN_%bQ4AtXD{jz0_$zJ^(bFWAFpvY8r zqsLmmW(wWeRVd2*&Tv)7^Smd8y9_TrHa#36wfykxX@X}qIC3aF{h#*a<9dbCU32Og ZnRc&jZT|SWiGhKE!PC{xWt~$(696K^S8xCT literal 0 HcmV?d00001 diff --git a/searx/static/themes/eelo/img/map/marker-shadow.png b/searx/static/themes/eelo/img/map/marker-shadow.png new file mode 100644 index 0000000000000000000000000000000000000000..d1e773c715a9b508ebea055c4bb4b0a2ad7f6e52 GIT binary patch literal 797 zcmeAS@N?(olHy`uVBq!ia0y~yV9*3%4mJh`h7}16-xwH}o_M-AhD02GJ0rUPvVlPB z<0)IbBlBV>G_dPAHEdBh`2W9mLj=o~yDHl@Ui_FfL)Lm;iM&A85@q$wka|nw$KE~P z_x-%iU)*BjB&XOv;XmUN&f^RJKQuOAcfQARN92v;1f~St4c8BxYfEWp+mgm~Cc8oT zg^mZ)iHAK8R_M?9Efry^!n`C)U12Xn_^xsT71qU*4!vbHomuV2G`A&XtK;0R0Pbbe z9IY6Sr5-5OU)(f>A>UBdADHT6=5o(muxo*6^OD3emuU_W-*$`NTKyqg zadNj{hGYrT3BK<Jdp=*CaObEfga5^O0^&<;=B(B>H=V$3A$IVcV|K&#HBPY$A5V!brasuC?eU7f&CD>3Wy0`Y=N{%evdX0S8n_%jsinMs|P(VoBHa+hfmUxELW z7+=i<&L{D!7e<{Bjj?erH9s_KBg>2fWoHg1&DiRtliv01EED`<`a-&Jy}re@4EyaFijSMVn?Cy}@lM}y z{=<8GiAyb~S(!_AtU9-Kg6yY4<^|j>R-sz|vl5>LF4P(;x~UTE2e$ipxxh zI7AtQ&A`C$|NsB#)2AycD)RI5mzI_W2L~G)8}st=8WzkgL!RDS>dee2e( z_wV0dyLRpK=g*ffU;g;<C>n8?Ai17 z?c1F@cRqdk^v91MXV0EJe*E~hZQBkXK791((Y0&WZrHG4^XAR__U*fITNyd=mk znBm_C;ro2tH&~Rnqeyq;ju{oG&QVZ}5r?c}R_ZQh;P zXtFp*{YXi^@_YfFod=^8Pt2;y2rFL`EcZ}`UpVHnoTl?lUn?^ip&z!N7#P%Udb&7< zRNQ)Vr_%p+nZ$vQ#}zI5ghf+3r%ayEBGaNg!GXzzGkwQ5wt1;{**GsO;4Ph1mX&;Y zi*u9j>|@KeCFiV(J^g#md6~ZC;~NuyAD;j3V%MTwQ`XDL{h!0sbJv9Rdq2x$&+T3r z67S+q@TyJrOVRpomEmF)e)*<{k|2+oknzngljgFl&CyOUdbuUx>k&uh>Lr^jw$1(C z`u9X(%9`xrm20OS(c+a#aXXlDsePS7pY!||Z_-vh`Mj7XY5g2+l{*)fcW^&WFnVb; z$GKVDptP_3g;&GLCCs9(ZkKqy?o2j(qw`&t z({ukihly;eitLN*S=1);y^BoIl$|zFIJjn4?p?bnLfm4X&-!Tj-d|{A^eMsUrGbxv zHtXIC6H}shIc@*F#+>E1&bPH|>n3hAb9B;I7E8G?C&7qUuX_*cg!KCzoiDqde!98u za-V<1i|{kkJ(fD&yCAd4#?fFVn|bFR%L$@7o|o=E-&H%i{D45+NzpUkZ=Wj9YGJdq zu1nb|b}&UMMx?S&aKgro?Hw_@l6Lwm$=TX;*!i9M!o+R&&(-K^3hlC7KGC_S@ubNP zOOYRQ6hdRZnH|^Lue;%C(M6+IzU@5U*2e62+UKcu*@p$t| zyV;;@X35W@oq5@7*!usfPBsYNFk!t#jiBKi)=pJ@F0W_Wr+ut`1U#A5&d0sj=w%V} z^t0do{Q30hljQ49pT2)~Yvzuaq;FsI_wj{Bt;H*H?r-Vm^ItEkPxrZ)vp;6vop-lamAmXp?Y zneN`RR9j{IkENMY*R5iy6mV zjy=+CX>O2l;?}IU@7@~?YeIzzixLwZ_nA+-u~x9?loyS_P9e`X?xU~ zQ#LqHVmo$e){S)=j0$$Yd-!>}efZS5H9tQ6bZkBuzUKSFfc5H3Yu;%56aN_G-FfOy zn1+>^7%!`syV@qd9l}?f3Q`OY#H97?_SwTxeq54&U4gvtZ^zs->scTrR{KFef{Iy8Q0mTbsr0=Z1vN{ZmpJX`lYu_Qi_puX46k?>EnRdG@R6 zeD!ICm4Er#?!VsDVjFh5`NEG08x2E`eX{ev@#xdG*tD$b>^7!m(dO2trt_!no_7CY z+186GicH^+#h$!rlQ@0){yMd^xv}w*P1RG6`?<_)2`JzFe5<{EO~})ge)sKfRK0G0 z^XT+-Z-I`=h8_Ht-^)VW{GZsIc`lwRaAyCH5Do5Q5ga|I;@b-47!R_Z$3}0 za-8@jYaRRK??C}J=^uq}oP4EXExB}q5Cvuqk;qu#f+JzE|ixzX17@&e(veeF3n*xfZfvi9EkFl(u}dC5Yh z%NpmWrPfSe{q|=LzoR-sL3FzB$_qG1&SvCLvd=J~3zwxV5Qn}adg77=5 zTW#N*&z`ubZ^Ma-Q~k9PYhUc-3UGcoLG<^t*;|4axL$1Ad&BY2+&bQB&BFJ4A2^9_ z-n}4)b!wy=L&9?R-TB+LR{uP%AKGj8!+FNuM>Cllh01>(k||foI{0sDSy`gNQ5U}7 zrlv{ljG~u6S6(@`edp@TPv82=*{s&GalFZ#$;1}wAnL*(!mAp1Q>J<$>l-(LJDWSx zc5jytH?97@?ONFT*_W!`e^H${F+*bO$$Y)WvXFwA4!p~>^CS*rrCK)MdaAud@#8uN z>#Q0vQ4ZgI^V~&)3j>5cE?QK;B(a2fcgdF9JN~?Gf5o5|clBu1&#mISj~si*$CG;_ zVE5K0VH28P(g*ipfJVVOkH${NGxYj*^+KHC1f$URVSz5TeH0W)y$T4r3%+>Cl`LuZTu*7nT79=y)}Q-h1tO??p{&LFxs4>T#&HX zk@-<qs2=+PWmvL*IvS@V8J#plARE6}`*_&TA)cttfU}=<`cdJU5 zuhQV&GIsW-QQjFd-h1lv9h$UgLH|jC) zM`_nv2m51RLqcz{mToDY>!5t*b?K^- z8HY*3Vg{2hCQqE5T{Ue#E@M~_;Z*7p^r`*as{0R4c31^?Hny3)n`07J_rdP(pNo?3 zGZ@nMO#c4*x#>=I(RGOz&i}}KdW%IhgrQf^uc676UFxLJ72)^H3^xiEShbh%dMx1b zclo+rX=;2c-_#9v9<03^Ge>swITxu#Ph~du{aa!BginSkVTGi&RFbSn=mm|SWeU&xg@tQ40|MNf zr?#{8U$>s~A=%zW!BsrKb<&h=D{fS$vG3Y*ZKG*H`kwP~HdQrR6ZC()>Dcc+`G|Iz zcGaJ=j*Hdyrhb0gH1P$4)WMA$CK?`#8mF8;{U~FNf^ET`e-m@xoR%rMsk?a72bPj9 zE&J&9JnqDoZ=)WctX|$r4w<3xD`27^-NRv`lm0_$|g^-BEC3snWb}pM95h zHC6>J2o#Idoz1$1NoiAO1ILN~H?5_O%?*mvk4}63Bl zZrPSKoZb>~W$pQ$%D+9Mn8LSh-?;MOwvNBYn2 z`ReTcFIo=focLYwJ)>#!cS-)We-+qI@&4GOxLrb`Yk6}_<)z(Rt3EL|{&~~1uJ6ed zZRKc&6G6U?tW&Owiakvc4P_Ty5$6!$kf;**>~!{CqyJAgLr8ophF+o~=~* zVY1FU_N1$+_n-K!oTkp-y(hnHes8~j@e!^+CcjigyemG<-D}Z!tHAX zB~I5mZCF(vQ`dJVR5-ZqGN-qcmLg~UJki~4cZ-)xow~%8vSOlC@D_E}7x4o9$CEeT zl-g`Og)=5++n%Wpyxx3Vvf_=vduu)C&9R>@$WPq!MYikU*Fv^4@oo?7+54)UroV9J zmDAHpnv?i=g?*FLdu6}4bY_DYTE4IC9XccKyEyUWdn$iDTmClu?1vO}`^}cke zZ&|Tx7JIl$ojq%(iG-g1(ZilA3QN}=Wvhr04QSI+XjJxmas9>ZZ1u~+uU{wCxBjuN z`xotTX7b*>c3YI+zx%Rz#;nr~>x}lEw+lR2p5vIH^CErvVqT9=!Rvx=%!!!R;&O;x za?R9$4ZeBTvZw3r%@k0+I$QCp^t6X+=Qr?9onDk4w&lLxtDK$H*3akJU!UaVC_h0# z@>H8{ZoDKjNS3||4S>)MXE}^luTd~FK06R zo2W1J%-XE0Nt7=^;~US}^65gij9YUbmfrc~mHpi#EqrIzB;DB|O*3kIb&Xa{k5Fj5 zqV@PmX%+Xz+LJb^+b8cWoRq(5w!k!7FE`g~T^Ws^z=7>F#im(cC+^I97W~!-dH=v<)lG-QzDkU^4#ZcfQp? zZvKT&`*J-QCU2%pw|(GA331 zdF>o?&wtAv!L)*Ea3>c$4k4_V0UlvQ*@1;%Ba3zm0vZ z17G-_V|N%f&AbvlFYqaYOH6LSyrASKx~JGzeO&6qc(QhXPTtIzvgmh@KXQLsRQEO^ z<;kXfIZ_tAlBO-^FI-Du|01ciySsVIu9%35lPj#dZrrfq>rPL-%L=k-W2Dr{`PLt~ zHEx<{E-}2i_#BUdx1wz3CtC;3*d>;4WSO7%`fg(SdSesE=Z{fAyH<2hp8Q=*?fpxR zq$zFRr}Ojcn^!wq`1ARh&%E6JJ#O#QD^Jg)UU9uX)Aq;{-;c4&_ZY~(X!_%DI@kJS z?aM=t)%OT(3%xnjZ};mH*$F2;O~ z#pzk+w5V{--}{uQIU@E*w?t+4dSkN#S?m|Q_vEnUu&OL^-q{*(g2}y`;WT~B+J6Sv5=;ggh zew&_Frxs=ADB9E}@EjG>XgBs=zh~NR2kmufPLtRk%-eEb%r0Y+alZYjJ#tY6}Ia(WEosbr?XZhuq>Ff8_>;8OtSpH>lNZt#}8FL+8eex8ad3uHQhpN(l+;-1-8Jr76 zUfjGs)5nf=>B3iyOk5{rXaD5?bk+3Lr0a{`C$B!+617r2bbZzzzT1aRaV^#tmf!HH z`dh%NPjylI1E%Zm^0+&7Y9s&dAF|un4@5-Go#0ZLs(yjx<<9(k$pD94UtT|MNL=C^ zsTEavGCKdkx z_nlj8esTNRCAwGhP14NQX1q1w?mDX#9{W^Yo`_-nlFTh~Jtc&_*faX&>xtL%ug`w> zXV&}+3J){{*K2jR^oL!$HeqkizSR+5WvwS^>}6NhPrg%ocE|2*pSH$VOldMo49@i5 zwTZF%yMJ%gy)Sv9+PtCq+-J@(R~3j}5iwmJapzr#IxAw%0@a{?sa z9b)Q#^*u&!&C+{e-xwMie77#1r5nI{*G~46S>>1SYOVpynV}6Q{?1U>Y@27_ z?{@uKMeW4>d-h4Ihx?wEtC!k;V%L_PYjy?B(yR%ZHjS@GZK05snz{Dj;&f3i_;m5gj74r|xc-PreCbMl#`t#w+!&P5XO@afs zXU5)o>UuHG{+rMWDShcHC$+E-F)zoRtvFJ^x3|KZ7n&p!%MTVxGB zJmYhfEWYTP=Kt${$M3D5tPd2(v4m<(ju8s5SDiYmGXYb5SpU(%}i7 zB}yUQyEZLjzyJ27iIw%~m)(D!uF`MP+pnCgzMG%5wp#w3?AjiM;+bo@&$zC+_-xZV zy_$F39p9@zF$sHYa+o?LP4u?tJl#C4?+s2d8jp7^e@Q1liOGPa|I|F)(1!(<6S{NnY$%tTJ7=Ss^it4Z`(FuUrg13zpkPY44vI)L_aZQ>m_C9<-OBMtB`}WLJ`Nh7&@KcqR$sY5Rnx{9;y_onoaf#fz{E!RcoM#SnYKz1kysP`<-J?5& zEcaKwDeC(9Oxj2M-t?3EVq3o5i>b^_6&1LrQt3GF(={vK%Gon6uqdip@nk$t$xAF0 z{JHz=Pi-Fgj5d~Q28EHu+h4Bgj;j;vv*bI$>a#fNx2H(hOG~ze{zj&s?`bxDXgkUM z&T;7zhNmeHZhL>1J*T5kEk5&?wWinpo`ZW1_iT%aa`^B}sq~_^xLBLN{iEfKri`CI zY_T>KzaMq=cI6EH^=nn-?%7oC)>wL3Vf8L&PmMP++twdG%zYx>Eq+_&<5&9m2J3b6 z^ukNTC+v!LpB?k?>C>-_!W)X^y$mn&VLWc*kR!`A<1l?fwaFZ>(+;BezMIp*JY0J%;nlM@sn8K zt#b{E!IRpi-up0nFMsfieS7wMB(N;k6`F1~ef7>gyIz#4?-o23o9K7#A>*^p3q0>L zzI^5{ed4Pfaux!`q$J)lbr2c*WbZeEVzJ~H-cTQVr zVHu_6_5NqieE9Y0pHg$7*o_SeGrHrxyxK6Im$zxpOTGfz8`)YWu2;=om)=i2y;tj& z<)o?IvtO=Vu}(jmrK9ivo;`Cj16Z@XW0j6HJ3l%5aJ8h=x_?T|k?n>%_QyOsy0r4^ z%KpM|m3&v-9cF7x9lP6ZR9iNRl{g!B=Ce-U$vbso)T|koHMa=9{9jrrJnL$&erVg7 zDD&_t$?BK4c31vLOskU<|G_ow=(BU@mCFw|?OwBI<<|$heChg3g>&&!h1nhu$3ezJKENKz>0rHujQQuI{}L&pzH<$#yUPND#%+1`{o&yw^Y{OLw_ARFV0?7su2+@86Lq)!)ox7-V%K}PGQ>nakMqK_fAgQ@ zhTi_2mc|@vQlu@zQmrh%|IK-Q-H%Ml%PQJg({6NipK*=fWwQDI)5Rz53go`ef4aXx ze&2t&m)z_4fB#+QGL<)E<|^Khx&Nw9R_!SNeyY%VVp~pC>dXH=_p(+@d$9k?+~{zj zK#}A8S&s`MHJTU;dmTgcni^Pc9aYia`X(-W`=NLIwe517+2f0Keb&DDj)n-SJ;?JU`!kt#?VK zqH!kk?p3xdTYmmV+!KLQhV}8gLpS$0?`_@pLCUhIXF@+WN2K39NrRsKNgr;mn|#c1 zdyUNd0wQg>9SgR zv*D0P(!u)q;XLU|VpGf+j-8b7k!gwAzPF<9+wJrA_uijk61G~a`YfrmzNUWb_v?4X zb)|0HyXN0}!U78p4`?gQq`hRuk5%Kq~3m&gjNO7&aet>5)n{fLpp%tf3 zPuUlqCws5X#_rbr+W&IeYdm~R^8N<7{d@B7;>X0-Yj54J34fUX)i?iit-e+DH1E}% z7o2?^WOIU|FRWrcJgKcWBae+$cs zz3#VScZLRJn0%ONRdlEN;kzea9Nru~v$W1dt3W4Mswf#=p?iK^7VgJ zf8TDK@q6#ju+ZsuLMPwdy0tj@=i;0084hci-6niGkaX_C%zN_$9-Yh(%dj|oZOZhr z$TvGTFB7xe63xCy|6T3u`TOVovAgwu`5U>vc0Yga{OK7Q?kg$PwfmFL2fym~HY$zp z6*h=BIZvN+IQn+q_bdTaNI4SFEwl{p70*`R!r9}R`_;m?)o+Q-^$-VUY@r3 z=il4YA5VV#SpWV$d6U`m?c^SXg|FM?wc~fw4(=Iw)yMPv{rK0F3M41wNMz5{%WulQ zXTTrw=-QNWJEmJ_&NI&~ecUW3*0DFj`pw)$>mR+pckkiDhwg_I#lp?P!=|rERY?6l zWp9P|g%d|kF}!uvY?dxQ#vq|QcjvHjmh8FWc2Bpfr{qE?k}v>wk_&8a_~%V(bSrN zZMP?=T+poec~W{=I`6b8-($G8M8>+Eh)$f+?tQ{w@n*T3aiQ^R=Dk{fMtbUWi6p(i z@Y3+Zah3kjukKaeGr#RMeX@u6I)>P|#pY(-=~pMDul&^39umi?vE*pjG`U2-Yi52{ z%(1^#{YwhTOwB*}Xk**5T@LRo?JF0FyqK%~T`<17*ipj2dsp04R_9#iT}SK$`h*{q zE)ZOJa&|Y*@;z7d?c%O}mfa@mnlk5!PRWbzzf)PK1+F=I;*plC_-bz_w(m>Vx&Pf_ zTvAaWef^$i-Z#DN|4jXJSLas-uaMq-`N|rhf1j*0&p$l#V?y2m9_Ci=Q=+lasW#tM zFN-q^dJvZS+g27nj}4nx+*?Z@Q9QF z$BXUew$Bah-7VXFZx&$G@gt1K+=yi%8uy{zm?*UE*q+Y^;IZmFoaM0{r!t(TekBC>-}6dAm^g%lbEBf{rP%&DD}KkBXktSuxY`_Jh1a!+8$5f~6bYUGF(luzSzsz3p$` zR>wbcjo$7VzCQD>{pLN4CN-y}ocV9;aMoM9NGr#aRUzh0a?{_e$Tz>Vzm@*~FmFcj z#g*R$V|kh8ni%!(h&=5c`rnVyXx^ESyREx+zIweWJXUF?TN?j6|8KH0Juk{Bo@t%4 zH~sofMzaMQ6c@K8l#c%DuKt(y zGahnX_!tssf9DpDf9jtLvkyGIam418tH$Nj{O?wCU!MHu)Sk8P`_*0g9U8!% z@8%_w4?j@RTI{(}MB7D3_Wsl}Pj8+|i}}qYKE29p-}%sL;iXgez4@BezL@*xp`543 z&Lr)O@_V+V>WnM{+d-9Ap6A%BHmVwVzgroyG2%`^eCLljZ%hy8PUBwCo{*GNV>5w+ z@26w+7u6SbjHLq2#yci!?pXD?+cHxrR_p5J*~TAJuGaAdZrr_c;!O2Dcl{q&Glu*L zydS|}f7M)AF5z)m;4bq#mkDh5?iDth`gfMZvPp^e@?HBD>%6C+Ls#Zk&3?a)(_8q| z-md-Cs9bs~%A}4(+oM@PKu2FcJK)=jiz|+XIW#Bwo{oF^8l)zskco;!)&d*%j(~<|iUz;|fn6DcduX<$`C+g$9qbg_HfN z#kFp`y%ps;FnLe6q(<@MWnmN7YcIY2>eDsJ*6;CPV{(r-!(jzHq z40|}9ZMk<#t8&ZMr@FIxF3;pP6{Tg!1unS^>MY%b`RVGpHGO66JfbByNTCl z(*qfyO6S1InYNuMA-{zJ9@g`Gx7mMd_0^?2#Lko{B_&!s z5#8*dx_hat7i;6e`QP4c(acrgdGJG6D99rz^9h@x43`Ki>k~bNbX}kK$=1os|Ngtb zh%qX=HD$7c`ohnDYS!=jao#V&?7ZIryOjr?EjxVo?q5ygpNm&kJyh}fw&-}X;TvA( zZ_a`m=8I=5_t_W}x$QBX`65wjS9n73jynnSFQ0zxC)Xs=j`osr+c^UjNFQOu2D01D+gkTdRFHIIY~UI67@!V9OhgTWJSdl3Lzq z8Oyx+{(C|kXNau&5$z*oxBT)2W=&5}?kw_C|9|byw3{m@DemSlsW5n2Y3fxbcvjRQ z{P~O-LSfHd=UK2HiRKiDoyeFgBYsp^|3-)W%j?x&^R|AIimy5UDKY70DCe0+wVX+J zb#60qt@QHQ@w0Yv+l0;badjS%6`~i!)kS>d-aMJv@hduQe*c-XA4->hQrf8UVDf>c z+beTS@9tnJ$(g0dW~i?F!!_fE+LnU(C3~fS*Oo@G11sJb=q2) z^bb`Bg#O$3o)K;rHJ5nwa(9Q~*D3Pvrsnid|0P#&?}7sJtNN7H&!68mui3v|{o_uq zW$GU}b9$ARwR|pS)cNe;HDku4nO+HZ{xn^fdc3Z}VUz7WwTs6+*zB5wXQ|!DzHqzD z?bE)vo%v6?zEUOrMJVSU&DT1-~`_rGV4`@YMmGC z-lr(CUMoRA^Vo}=nYG%{vs0gamn}}67;vId-0u9mbrM|x`5GdVCq~}q7Zb@p)sxmY zXH%f)`jj1Sh4i;R-uvJS%Pk>^X>~_ma-BKYVCX(krt$2Lnvm~XA6*wqpSg4MscsiH z;|E1c;$-;~@@+m&Uf$_2BS)N9C2k3K-iB2d_MMsFd(vgyiNk94s~0|I*L7;Y`c&+I zLFd)yY|1R=-inQH-8Q|GIob5pv*!BEHlx>b?Q^;&GC%*iI&sbXM~U~@TBEGWCq9UI zboi=m;l$ust&DGu&9+^6O?jRD=^vBhOurQ|oJgC@lepz|?WdKu?)hryA zQw+HBul?5jS=abc>G|xG8OQti9$r6~x?4iOXxHtyFYl|4YOc9`G(GM~#l{nhGY{Qe zs!(^ljn84}E2Zyk?&q7l&u@q=;rMe?#`#)W&Wjf_xo*3*H}yV`b-9}Ds8O<|FtRDJihh*Uy0%l~t^loS)03ppmSpU}Ruuplf7c zXsn|UmXny0nVVUp;FzA6mYQcFsU@)Sz+d~EY{N-{EwYjr^Ee4Tu~(2~p?+v?Pc zlGMBuE4Y>th(A+xGIjEF@^y-B9gB(*EAsSsCY+QOXx zwbRbXo+t+!Xigo*ODF(jVyKoL-)nW_izW2R1Yo=!=0UTmyha(-TNVu?n+rY6++iU!bV zP&BO7$;r&kEOD(!O?ImE1ZBdq#2lOsMGIMlVhu=0B_iSsYK20ceOZ2HiblSzqJgHB zMxL#rflhI1Nl0dHYJO>n22$MQ*(w_9hF^ z*HKc^tko$l$jK}T&o4?TMsg0^BuJJ88>dmCsRvf9p&wJMtq;-Dy@*Uf_wsv zhZ4Pfh_r3K9wg6eRD;R_s3<7(;7V$B(o;(U5{nXZgG-7s^U{$VgIp3u$AWV+s94O0 zB&a;Sg3{s)jnus4{FKztAW!G~+=BeP)VvanO#6JjlKjwug481C#Nt#9O{;uOZ6#YJ zZ7ga_qVr?n=}#k7O-QWcc6 zOJFGmOMwnb$N9GT8mXF^I{CGlwK|!_;5=*vCiS4ani_<=U>;G5hEy~PV3n~-wzjtZ z;F<@im@dhO#2uuhE&=6_+=7xy&)mfH)X<_FE2Wggl0>Ua5LZ7vGtD|Fu{hPtL?_4~ z$KBs0C&Mw&(aF)#Mc>i6+z|}Gd`D+TmttF`T0~fBR>Pd9kg5SIl|eO!ZM0H(YEpJ) ziIR>|ZhjT0as;u8l^}^G)7HQ`(7E&`eh&Q#TKudKB_(Gqv+|O7xJ*lT@92&00{R&9gPo zDYgYAio(*=;u6Qa%-lp!4st6>%uTJSN!3saO2s0hq*+swsgr11qL-YQmz~71^Ki@FF7YQu?SWUrfP!P9H3fTuL$8TuwxN5eyUEMPNGf`ETt%< z+UDyeW#*-5r0V2p>LjYE6@yYTxV%*W<-%fU`p`+$DblQkwhE9uhHkuOb*h?LB3zRu zxY~l1D7MfN3R1r4Kx~Eyf?T1KuLrI@VPaqoNDy9l!DZkgI{A9eIf=!^2tR68gB%JL zgcfB8Iau=rA);9gYWC=5=4F;-Cgx;TrK+i+2|()$kf;u#rU$o{^x{GKJo59ii=o;; z4Ij_E%o4De1}N7eTUBeFiO7StAQKT>Ye<>{CEQHwJiX-nyyB9g(&Uo-BHL7*RD?R) zJb1BM3@%nPGK)3AMxiyAiZ#{Ll;90BB}H4?Vl_35)ac?^u+7oMv6|K;pa3t)Oa{ro zqDdnalp#tILBg6kDXBTBC8-KT>NP${TI?;LX)&fF< zCX#tDLqG;XYZ*1QJXkdZYU#n)C{+?%g$}$v0u_+ZnAXVCDbdu)Ly8yM=vZ*bCW1W; zD>YK};^T`;3sQ^X<82cWVXKn|PP*_2M2@@6Gz~>?FeBpJIWZ?EHAS-;$plpWpu7N& z0aPh4PXlD2CVEnW7;CF&0FP)$^AXuw(2~(Q)vm<4L|a=ESuVOH7RmJ5TAfrxhJc1T z!egMuAuRAfu0aY6P^|#XU3$5xMd_)~76dVxVR5H}Y)E2C3M^<*%mAhQRAPG)I+?au zYReM)5=5mA$bZiYY^xJfQou}~%;J*NywoCu2cV7m%rp&Xk%?&e zYm`7-gRU7Y3T}RB!kTm$nZ;mdfs1^d44oXEQk`U-6mUjBDg{9OE}a6~Of|JkMO(0> zni{kq*2si(2uk4PF1!V*0m^5#2H=Vg+Mi3b%d^hY*48Yttp;_!^Yg4yb&~V*N>VFI ztTJnAKtWuqlVJ<$N$3>VYvkBwXe-5Mrc@~Dl-lNKgE~ifN;=85DbYExU;^y0rdWg8u<_jOd(LJxEdn^$==mGS$?;V$f8n zXlt8UQ=?H}n*r`EC8uiS=oo716hs@qw87Fnw3Dc5ovEglqNZkGYYVqfO-%z@M}pj> z6Ca%%tE;P7Tbr6woT>no0XY;_lY;#M7f*&IE(J)c1UKn0q7{)&;4L?(2_Rk3#gG!J zRwpg92$H}M8o=FEaPrB>EC!9Jpe2|RP2^++E-yesJBd0)pb`V-e@Oif>Jp~vRD;HO ztV(oB5{uGPORPXHsMXXdg(VG80xXR#iPZ$fOQtP|2^kd9(9{7nsS|B8p;2WGD=;!a zjRi4RUx(A5xj=VadACfkzxtc{-VzwP2fIolI~N z(?hQ~V5VRZ2O9xuJ0RCvdii;_`H)HtT9aWIse>k;pO%KM1&enubmb+3x+f@hZX-wx9FxesQ&7tz&sND1JX#z9=_M;=<|&lu6x-&hsVSyn`Yq8mFR?5$J+UOe zNUyXwwa76&HLpakB;O~$95#5NQ)CMslSo92NkBWhnmQR6Qpp)b`MIe|nmRccQUw`_ zc_sO|N}%k8Zen6yN>P4hijt;IGE84_YGP4xhK3SUN+H_FI95qhCj}-CA0bIkP0r3& z($pz{jYQ{z2G2oF{`@>e+e~dGB~VeX2luF&S_y)qms=c=4<2N9%>#{Nq@c_CCRT*x zmnLU`RTZnLDVFGgnW;sP@XxhH6+qQrfX{3clWS_?b<%8=Qc}w@lT!mSD^hcUKpk{& z{DI6wm#{OesZq*JEJ@DrO-;#6gsVdcX((yrX6ES@r55Msl!E&DR)!`fDFvCDN}3=8 ziBhNsR+U<;lWv=;my(|h9s+mGNd=9B>y&{~l~PGjVqS43$b66+()Ef4=j%BY<(C(y7TH#3rds9cWTxhn zSXve9Kys~Bkq$V+Sf!|`DHeg#GiXL45i~5N1I=qzr7)I}u~o7TBu`sq=wzlEr&yIi z4Khx#s)QJ2oMIKA12)7s#mYw~F|X1%#i~LFGL>aj0A+-ON64%S)YOVlM2u5FVwF%a z|AN$_M34ZeL!4Tar~{4(t8yK9KDCP1f#xc!T%DrSlFYnBt2F4)3^->Z^~S(m2*{X7 zg>9xic<>B5lC24<^g*qNN>qtdO)GE@6KoWsdu3aloRgo2G}a1lyMPjMKBP(NHsIuCQ#!#HkZ*HB6-j zs3#o{GTAAy&dzwK}<_IVG6|IhDlNhfoW#5y8i8rxx5!7^_wXoM;eQP@@Fy zJFqIyI9WWHg-d+}WE2;y2AX7`!zPs&GL;aSTAj3<{CuQNH4YbmRe@aqW)W}!SPfPe zAj!a8kdj$k0vhWL$wwGlqFD{i8-jfR#;}SMPv@061@srNVi_E0#u1r!g!Un;NE#+W*%Wf!1gC5 z6>F5}RcP8kf*i~R6$cfXYHCOdDlrs*@-=M20TB?e_)r3u8yZU5(6J8qoEt2dwUu-f zaLHC`YAb0f)q)zS;1ESE$?{-!D1hoBNL=KnDL~5}`w}atmC(r)jS@|Jl(H$>AXcX& z+AvnrssuDHUQ+|AHbCKLUt)!#PzN-A4swJOXwna9FdEkVDgk#)K$T^tZK{2AiB4*) zRSCF1l#l2SVd@}nFypBt|qYpNljvfUIk1|W}Y528$!&16mnp5pjiQI z4onT$9GIHK3cX6uxDD9PxtX8^6wtx}>X^g|&{PVjCehG@SO}hfbWR1$Fk|yPa>O8c zR2yOg*xmX@ItZCcgiNKTz7crDGCj4#DZiv7Ki4NU4P{^vn!}LofS3ykOSp@{HCcLU zNl1P{P-c1taVCIV1~mZ`pqgNB24_}bt3e@lCRXUdY9P3GG;!o=P|{1)$%GXsCALa= zrMXF|MTiw7CD8`4kVYFuMnM!OR{45K;3N)eMxkXYND8&r0F`FBnR(!XEH|-2(<;?A z)3!t>Rjcx@si>^g0e3r!Q}MkTbx{#0niy>H@h8G_9ALSfP_>TMTkkDyU@41Gy$suR^EDwix7&RJ}^j zd_<*$`2^Qif)Vb} zu!I#e5H6^z4lWD8&3Q;U30hzTZ;peIdaYibO^wNt7V zB=yE8YL)0!KyqVz5@=qi(iSe4tW}~1&8hJznmQ%5I;DAVyYX6qoL4~wn0_jxa*a>Y z)Q5(Xjz)=IC0slOCY}t5IhXug&?J{_HE6gC5!SHSQz{0pfg3X*qSU;SV2~zokETQqStvR)R#Qhq zF|VdZDY3L9A2iXQrwPhNDXD3Rr8y;GnW^QFq3nE6Ulbt-avo^$MQKTD3fORs5*<+0 zrfHpLn{N-AVFxdNf-dbr7;XKzxy?qm-0il#*H$l3x&>nNpIWq^VL94!sQgaePYaYP{tEnl%oCHz{Nd!4K{80`K zsZt#Bxrr6JFg3}xiJ;&Hmq(d->CQQssd*(qsmUc8n${XhdHH#%po!+3ni@E}6trru zSlc#PFDEsvL_1M08LS8FES)@%cu9VNwg$|bSVBP)>dQoU0)Yf`ZFxp!PO3(trgfri z2{aWYg2Eme)_J*z%8iNfsD7H6gr?f0@NY^l?xDQXlbPZUy`Jdua^v3SmBqLn`)b>lLx8{6AKDb z^HQ8MGILVEt4eEiG7^iyD=m;sPt^qFXHa#JSX>O6+yu?DK!<@8kc2^N97;gl4~R?>)xDXvk` zRMONdNi8nX0L55hN($H{!fpgjS%88CR*tUoLPcABm-*gfXdclD*7Q>>J<^R$&TU_Jw9D{vnhl%qhau~7mZmS-|CYj)_s zcAl+)b)HQLH1mR&2xO*dfR+Jd<|$-C{h$EiLwhHnmA9bY6KK#Hv|KY7+`vMy6_iUs zvqR8vTRq4~t#JxybqKgw2-2sdt&wW4WSj!YE=n3oI(fDr5gh}lh$eg$cBVF{>8Vsu zp`)Y?YG^7IR48df8alzri8-klP5>nhkR#9<2jEx**$vU40iHn8NYz7(qG{+FYL#ee zf=0ZR6pBG+Yba@#Xe((dAUP%voFD_B4GbioLx*Se;48@s@{4U#brdr}Yc^nk0Ul1a zho;bIL=F!La`X#!^AGZkMJjbL0~%B;Xh3y?D{b3Uy$Wqmh=3P{RpzAXmE;%Lrs`FK z1tA?(EN(^0l*rBn57xj+6S$L*Tm(yI8qtuM5>OXJNe47JlAT!s4q&JVWLg8t@y)M7 zmdh2TVZ^twGb{2d*faGTx_As zUyLAG$ z6oJ=9xj?!jpq0nqLW(GZ)6zh*Kg60`s|hZYp`|a_3E)~CDS?4za3S7-r?AlC)FQZ$ zKMKz`zY2w)Ta3hw11^{WIm`~ zE%ra~H8B_dd*+pa28a|OwkSZB<69{}3VP6Bb}DGpS`!klIf*5(ahjaG zblX&&JWz8Dw9*VTY?YW(g6x1iP_qgt{2?~zRJ*vk$A|dG2RXV}`GR((1bFHjS{UdA zIl6#^U0mI*3@r@wp;9`&juG*`jzR98epZI5x|X$|@)2SZ^7s#y2?kJmwgg&ZD;ipZ z#@%wjAqi@wgQ`PlO9Zss9&8zWk{~CsM7KmQC$U6R2TdX`9VC&Lj#!nSYGVtFAw7gs zYjrT^5a2`JN)YGcoJGhgJ<3b-MePS<`#y=<~pEu0K^S? zh`0c?H^82Tj5vXOua&7&Y^zbCmjm)PD1vkH(lxcf8wS9<#1gGcog!PXF0D+R3`ona zI5STpPu~c%Mg$ysAbv53Uuv77m7$%Zm7@g~PtGsaNYq5Ii{NX2jI>fA!ign`c}5yw z)!+%GQfP#LIflBWpafQ4l!&y24LpYdirh@dXl+hjI<%ptP-0tBQ=`@ zTa8TZR83WlRNWFyZH*GU%$k}^P-E3T)e5v`G__m-7P*jNKTyVc!V9^J+526olACf*$;b#TO4G5Rof`&L?i2zh$fQm3s zxq)E^Zk3u=Sc4l98?Y({+GZ(13MHr&2pPCz;d5{WiAWP5&_Q3wifJTsV3RM1h}6l0 zgd(V7NCgF|ZYGG-)B-KJ1D8rrnY?t645)A{ft5DM0Rr)Y2C|R_#JoJ6R8T1C7HjID z$b#+B&eO>R$!Zsa$~n-03)(y)yu3ltiyk*1CqpMH;2{GN1I-^|s?AHsRGXKssc!`7 zIt9a0J#upzmYGnKCV1rC50)u#s)xG?p&pd0u&77zB{=`2r%>CR;#O;ZzO}Be?NkZxf>) zWISkfGHC1)p&q=j14rG1H5b~$3P;fN5R45?*CmhL7a-xrGkZKT|C8X8%cn_F7w6hI6@L@T`3g4MFfO?PNx7uh^m-39O6fSMkeI^edtrjBkVXodjX zz|%_ANwm$=N`m>(W}r(1$8=%5N&;kMX419pgC?$O`~h33XRy zejcbD3ra4are+?b)EwG0@Nxk^5u7`ngMxKn z$pkb)n6HPCjC4=~3A&OFJQ50z5Dh~e107vM9Rp3=-U6p&xR=0#7$9f41_ZksTbP>L z!iPx^4g(!LVWk98VFgm61Pf{mmtvGGL^)c|6h6eFXR4!%!qtS?g%U%cZZ)*kj5Stu zGHszF46w2UWiA2KZw3wC!2E4#U|?xzjOlYdke5L|)~QAc0*GoQl#nwqHZsH1kD?8v z1b4_miVC8F%TV9g%s>YeQZSY#*e$+^1-7t_$FQ^o-MCzAm5;LbNC&!g+^Rac2qXs! z2(Vw%5>ry)$1fnwbRq`V)zlQ>Yyb72OZknAL5@$(4oWQsExuDU(8*0K%1$kc%FoXw zWE!$zmBuNc_7Ln`0iZIx=gF8u}mS0tVelBEq5^Pg(DtM8R2CVg}0aFXo1yZY1U6cx19;9ec3v)+C zVqQv4YEdz0J1^Lf_?*N_5Fd2l4A}c1jbMlPph=Wu=A=Tz{7Q3e4Zz+5?-+z_D+hTE zVrF7W3PdHiR|qm6ataP;*%De*K+CvP+f>LTG{_CN z4?Y5`2c6aeasYV#4kUuzE|3zv_?-O2l++Z+*as{m!7}iEDX2}UQw<6atJGRe*bo7T z52@PX5jH~|qgks1lJ-QJn*opCK|KjJz8LB`Fee_QTw9~0rp6Gmau3A!FGXI_1xl~@ z_3I+(hnnsPo{dKFz7Ars8&Vj9=T{-iE5Hr{wWl+yQZ+R7V4EE@j5I;}%uySV;1+>B zWdA9sm*SI`9s)Y!43cTUvY?z(1X=?G-RGfEtcg4kYp83ep9k8J2eua4p-U|SYlYSP zprfQxQZ$MXgVSKeu-MAbNrgsFCg_Nsw9FE4xYN8Ev3}Qi3%J7OBrW&%08N3R) zrUp|-F(e&<*E^Tyr4)mbtVW5BqM=SEXzQa!o+c>h^APKdGf|_Z2%;ZacVYBKbc*5O zi=qUn8v;_212F~B3Mv9yo`GT)SSV3brx@OfDz*h}wFi}CAZJ7NDuJ5hsW2g(Voj@J zNGSn}u^gRZP#Z=k4SbST4(b>daw3PvrABnLt|h23Vqp-g6K!drV`yOz8w*}0UXYlF zvb6&g*T`nTEQRjK0cSOx>Vm{PP;Rc(DM-x2vm*zzVO2v3bY=i#sti_s7A2MkfHWfS zMS}Pdp+gC(7$E|h`Gu5#@KPQrZ^E03ID4MZdKMJ2kQ54S zoSBjew+U2?fpUC)9>hZ+$3UEnMKM@HQxm+g9JC;mXf5CXh1d*nB9aF|F$2j@;QWhR zz~(^`AEYRSY%9=!t&s+mg*u2Oahb5bbe<--)P}eboC-AZz{v_$?I2kVncM}}_n@Nz zK{*>ajX-O^=+szI9)9zxW%L`M;{vk$agw78}w6Flh%7XZZvDDi8msbR=u=7D8u zYM@4fJOd6GNW};`WDu4xOAAsGOHx6~eNxL(bBbYGEnvsE=z;XY8$Y16CLyq@SWOLW z)CoxjYB5T+t*s4?V7+*RXh^2b72sNfE#eo`Ebaz7^nb+^;r_ZN5-XEDH?)`dMibP zS{=|nGDQRXYPgg^trcvn7g7$vn?I1%0r8+th;v3_UV3T@Xq7O?b&!LLG81zkr4@L- z4LlzQ9kYTPp_2z%QUcv-s$rz52X2#TfX1mZky}@A@kCpssvc3%ChAqx)FkRv+G~{P zL0t~oo=}jO2QIVpz!jNBBB+51V#9JIyrxRTsE$AtlwL|IXwyz|s&9T-YHD7Jy$1O7 z6VQeXq^k*&Yr243SQs?tx92K8^Qt5b3&k<3TPBS zd{vqU&XG`4!QDt`M^Gt0Elo)iyx7WfH1NV-S%JFK{XxGf_! zIomT0RAHp1z)b`7f8lusw2L3C7Sz5<(STIvX!#0KyMqe|)II?u&fskbaQOpP0h`wX zRirpw2P)>lz5tixNL>X;L!ks-41kZcfG7g>*dgMGHZrvP0NbSqstpK6g!QuvxAVigch@lw+u{p5< zWF$eGANwo*< zdMpB!?sXvS4+fay2m%<#<7K zdtoDuVD+FZ03MP-n2kC&0L!__Ma8giNY#T)80f>9po9)?utFC(fL6ML%tkR5#m%6C zQ5!s{51J?|(S(ep`}i5vVi`IIRku*xC0u0Us!P{#05am=-mYz26r z20n5G8;Sv~A=Rwa0hdwW^aE3Y5)z>F2I?b%%>bR>4cbWrOG-$o2dNMT%Oc8pkT)R3 z6v%=~=s*@0OThYIB?5fpwnS4?4{`{H2E1{Ssuz#C!5nn(H|U@xNJ<7*ckqS)+;3Q| zhQ<{lP|!*!P$u(DEC96^0`fuqPt*{Dr(&=zD4xPJ86I?448?RVXdy6)fsm*GhZ3f0 znCFm3Utrk)tOYZkHIQS5utzXVLDd2&7cnCmIZ1;Go!tD=V#r~D=)l0FN)Dfi2)G+NEOml zcLns03SGFnm9#Yw^IG7;rRXL#rK^IM-Mh|3bc!`cu0dzZ+lBP9cZ#HP1s+yV-eD^ez580y) z;lTGo!3?lPD2FvRKnVy`cEP$SkgfzMNuhRiKcawvuvhSLP7DqMyXXC$WNgNC=EbK>#XJOxn%F#>FJS!z*EVkIG)A*vACAhWsz zbU_p$G!^6*l!7ZMNN)_Q`@m|TTEN3HskVsx0&3*wW@M(MDnZ6~U8MXiEZo^J%7Cs&y)8&o(H9!UpTXmkNO#3!mdf2?EevN01^EI$H*A zV}i;C>pa-tI%J>)G?)OJtbvVgKx9DC4wZprJ&+LmSQbzr03VzHO|5|32QJJr6G10K zfM)!_O&@5w1Fe2cEl2JYfF?ULA;WRl^g#~IgM=-(PYO=Okfs*W(um^J5=6ZZb^|mb zK;vMrgR?XYbPQnQW*EcxPzQpF3P`N^mF9wTL82{m^&n_4Dm4X?{Gr2D@R3bOXq9EA zmV@I$NvAp^u_(n#F|!tYJq4uk15pGr1~iNaawU8i7@`0&;NX~&0`By|oC?tfiX$aW z9gX6e8qi@W;1GexfFcAmGX;$xh#*KgND#>(wL0;zkxis@0^Q~Y-e8D36v5V^H%pP4 z!l1?uNE%cS1cN3DF*?+c<Jp!J{P_nvl&!AQ8yO4Y*c8pAkT~6q1xnbW&{%^+ES> z>4K}{L&YGjvCV`n ztAGkajDg;V2Ahb3j_=r}YU<=ePs!IqjwcP+x?4!90fkf!cqT0wJai9Q@rz}u6FE}A zPJ>UKfjAC?z*3sk;AIU;`FTo6yEvm$V;-l5;YX zvtezJ{5){?!Wkq6$)Dij0d(qkv2CUC~xe~Znkdj}X2f7*v)Fmk`fU&?%hjDUJ z6U$Oz98iW;(oq7{EvXeHxv6=jh&zR_-9Cr#5H_cSE~e9g1ScqF!7c~;9xMpm!3m2X z&|#v`Wn-WzQdo})Y%b``TF}@NA`~DCw;<-!*6P3)Z6QY{w1Pw2Bm};22O7YT$qMLQ zLC``g9z_s#d^`GuK**P-fjyTA*{}+o?b4`5o0$PkT|o~M2Q3W&YeB>>C^;fWD#8OL zn$;*}K4<~CUVL$8ZYk)9gcR5YB+%B~^i0rZ00K_}sXPRj>%4^wR+=^2u8!5bnW0{LaBMM_o>HY6n@OO}=>!A7$(&~K~&-3?Za zlF~ssk&~Vt>SlY`$Tf7H0Gz+TsTqBU0MwYsgH#Eij07G(1UEmBhn6%lK@*AKC<7Or za0Q?d6^%S-<^TnzMk;8wyCf$s-KrRAAj~Qcb^Ld66~R3NE4%02Qotin~6fU z9X8JlxuFLf7V+@OJjm@J@H=`?WkJ`6K+jYFRoLYjsd+)54nD$kW)Qw=4s*Ar7x zkXI-`PTfI_&ml~Lk0pb%AGq}c8YF~vwV@>yv<(R=D8P9dSvzQe1!1y8I5VMGi?(_a)cQbk zrADSsDr9yCY%fR!a&QvmD$s#hAdQeIR%}jz$2iy$JjDZ89((wJQUZMb6w3*M$PtKT zs1tO(C2UP6*cNOq29Hi7uj;}GO;A$_asCjv6#^~vkfRJ~mJc+=g|RLbWfBNw`Gig$ zctWUH6F&0?awnu|2l2EG&MET35xgi^z#q0GBY+cGdDHT zGd46aGBGtYw*<*JdVysiM`b`G6pL4>xepH%LP7DqAe%vp$Dv%16G7APpiRG8sanN4 z8K8Z7Iytt9`o%h>kZpR`01HyY3P|kvn>ffC56VLMu~0540s#KM#Jq24^$e}SszKZM<2CJ4 z)YNo!3+xQ6HB)UfAU*~KWvQl4JS3zrO@*j}25~Alh*QBqoS~_yTdGs4Z5waR1+5_< zxfU`dq)`ewM+Lrl5VGgV*wU21b|zzEOH$JY6iLsBPBlOm4OcQs6Z=29mrBM&%CnC;>@I+RFHnqwk+7mbdU>9bRdIM;TfrUo+&w? zLqbsHL8~uelU#^^1~s3mK~v;dwoRq#rKFamCYJ<(FE;`8fM6y8v+`ING;I;we?f;QlMgxNQYiY2I+9b!z=@>Ce6>&0Pl1Hi9xl1n9z0U z-~@*-EHy6$6c-@Jp_m8@0*Ga>6b2gvfV81fQ$oSZ-C?66;K~>E+Ince1!9Vhp($jm z8F;b@x`hEYjsw;VGZE}7cw~Y{ut7lts(a!gW`VkTi76>4yG9UA3Q$`M+~fw^4;iDV z)yao0I>!=m@Yc5;;tXRflPPdzU>~HVX;3G^Kn8(E4nfgG^%yIGtR)AfAv|FX4soQF zVBodTP(e_t1|3*ltCIw}ramO!ttdYaXX-R&RC+K2&jS^^sEU^NbK;X`DN=(j1#4Sax%FHWH zEh=$JP0KHWtTRRm8l4hQ2fw%kJj;gPjhUcrUm#zBSA@Z?&H|PEIHn_D*$%0a0BZ$J zb%RR^WdA{{Zjkv%&I9k5gq}`|Pz^ue4KnQkvj>sy0y1uQ;^?k;D=9g2MyUN(Bw-=Yu-XddZ+e!;4b$bP{cKQ#C+SPM~=w$P^Rk zzRrBm=`yK#=_MJ~`Os@{ilg&l;d3o;cd4mqWI|3v1YH6EQiI}B(0TvR$)ilrWKp7R zDyWmKsR6r*f4GK<|nGa;Ze=Is-$3^cVC!oK&m{b_!xp z8`3ye(y0c?LMv<#vp706wicQ{!1MXVpzF%Pnju`sAUSNqJSa|)X;>S$_Dces3ikw?SoFz0eJ@| zlbcxK2fkYaqz$&(9wrG2K#;Al#zLl=TB;qWNe-Q+h7JzFYy~f^)=1UV2XEg183+-{ z)YJl1x_R)j9N8D}S*P5@0-SzA9q0p{9}k_(2M_x}ViR=OcV-TFOB>{>a7B$wJFpbY zJJ1eHO--f^syJlyNfTmyG3dMr&`QQ)&`}YYd5Fzqd766hklqxi2b7ywfmI5Y*b-A9 ziN&obKNm9M>|a`0gqOS_DcO#Tvz$ z;K?McmLh^1y4oF7brtI*f=;Ob9mkrUS^{w(bXf!_d_fnbRa$4-fS2M`=v7*0YHNcF zcIZ7*dKK1rFv$w=x%b5=I~+hKEkVj?a5f9h$S=)FaY}{mTPoI6Q%i(w2rGt+EoImy z!Vb~TOw%w>w6)F9tWMM`&MzuK%;J ziRqyGYN37wCj_t)iykMd(4lxKC{u+tV zd9k3|y&<9?ZSX9OQe@_Ui#?D$Y6zi387PZ@PN}y7pWlyO5JJL3(Gc9VhStr{#09FH z6;r{xUNZAa^Gl1v^NVs)Ajup$iViAV!iy3MK&i;DG#8R{QuXrkL4u&NPp`tppr)n- zbeCABUIl2vTCWl!QfUXeJ`B1;RM8N0QxCk;4?dS1v_li@waltioqSMAg5TAtkp~(B z&j)o1HKOx$@?sI=+n~A`F;9?>m|sAZD26UG231B#o&y~O0dagyjRxof9ME~c;O$98 zdJv|jjv~yNdWbvMG@=uAieh0G#w!{^_xpj@9iwM9l*j=!E5Jt?>f~F4W=!+Z;|Dyf zQ;?HcqM>A^1Ui=xe#=uT=nh6h1JKL`l9*vExSgkwX;T6kmH};G%CrM5h^+uIL6=Q{ z^JYy=9#pgvtyBO-rA9ueAqR0dh>z)HX!8&hKgFO0P2iLYN%bHxNU;Q~Pg8YDi*l?| z^@@vIN2kPhKKdjL6_`kr0SryZ$OzU6?C~b*vfdMdKFS4q=HUrMC$Z| zE~NxjS>Rj>&qlCH6y#XAAk1D+gB*113Zi8SJpc)`JWDShyk`{Bod){}Hd>OJTToI7 zK9fDPCL6SUxn~)=8)$b6G}cgp1<`efu3{=l%`E_}`+@c}ON(-J5J$8XL))XE`C`~uCukK)l~sve zl}?3KiC%?HrB#VuC1kh{R_}vGH9_tLmBb)F`<3P*{EQMY-~k?J?C2#I6@y|3)F=b{ z5|YcHfdYzSq-|E9N)vKfGt}Ww&w@3AHcdgBJK#j0Ra#sEatC-K2jLQEn*v(%pgC9r z+8Tm8EMe)s#l>2VnDM3OmRsrX!yBAuM%`y3urn= z*AO%WScS-JAkRV)G^`mN3=4iN&WF$JfHGN$UZtigirWyQ)Ub96q~b*#yg{e}^*g}# zIe~%ct0y5u0S?HQXTl>9i0-r^u(N;)S}AF+;q@IAWAx*MLkHjqu7G@;8k9rVN_TN zo|c$Xoa&Z`RE&a$B%mP+3v%di17vUr`)C8C?TV%WbQ~dU@&z*81G&cD7`)sMI=})E z0u6koB_^kafhLPGb23XRZIv=IQ&Lj%K#fVzq8MnYjR;$U{CDi<6wU_XPZOE3>| ztc-sis0|I40Z(J0NV$S0wjfTAPfS6{u%PO&1XO`TG(agSCUs0t45?AZMf^oiPQQZ~@gd&^9t`1_?gk0h+ynr5(hs50K?xBjHsPA}xV> zuHa2jpguGx=-`T>cEIL8Ag%|w9Igt{^~QGk21@T6eCh_YfPt)tgZ0b7GPus;KvfD3 zcugHs(0Lr7yafsgNOU1088sh+$BH1MJjF%HilAGPz{|`~8X{_HNDV8LP(uV0$SPfs z=OGO%&}ew724uBgej;eO8%P1T8iK?mC=|hsIZ%-a4tq#+f(uHJTK_z7S|Z?ZBzwS# z5!PM=m7Hi6!MZ1~+D#9v0hH}Si*l?%Ed`J!Z~{%mbQE}!800SS6cWC59v~CJir}j~ z;39hAzQMNndI&!3FdOKdvf;VK0f|M4xy4r1#i>PQnaQbEO5wi2N;=Rr##T!1po1g} zlypFi8_<-2lA)fVo}m(C-Dfdq?ihUS9GC@}Pq$La%uP&B)z2zOO;>_Uv_qz|z(@Rm z#(FXnb3kWtq7Jx&!vbZ>6w#c3wi3`C4eCZ9=6<2wSXcoD3OZ2nYMrSEDTg!lpd~P& z>1BH(tvstdaMuP@`WJ(`H=y01nTVYY8HvUI<$0jn^HPgSDm98VYig8|i;6+FwHDXZ zXkN5%v;Gt#h|_^5*M5Y z_2SEOi^Ecjia`f!gS%GHD~~|Q9&WuJG!`Kv1+exDLZ_Xrp`Nil*e6y>#YM%?U2Smv z;6uhhCdMZh73+b{p4CB4Tm?n>CHbHg(vZcdkaew~001AahbVs$Sq!Zum77=qYqr8X z2#ZG0KpkqERj1e%vZO9LQwMZ)aw4Rd2RjYAC`lt#57DpA(<#xbLR!2B@&Yz>#ZYw_ zQ1j4&2U@X$tO4KN20Nn`bdIilbdg@APNH6gPNH6=PLW;((joCy(I9b5)#L}v+#?hFrg||0yw4rTs&{|zkc7~jI4^CZr@W|82(NQ$e)K*e+a`KO`RnpD? z&!a)JKWbitw)5Z_5EO?<27%5%faW&Hi2GUcjgQO7QAkdabP(}ke6Jmr;38Xay?u$V4JgAEUUe*Dsdm$}T zkYa=}u(}t~;)AHtP)Y^|E}kYVq|hvZ6`CNo!YeX(rUbP}iEg2m5Z?v_hZWeT@I95t z!3k})KvRJpI1xY-B*{Vc`w77}A1)7GIz{@^tdS zs|diAtR5ufkP(TQ?rY2}{iem~=0~a1Dpv4!kB}L%c9U9u;xks?iKt%v-f)TU_ z2D*hCW#|{;Jg|OHdk1uWD150AZ1M=)kpnv(tfT;3Pl5+nK&ykm$NPht)UZAY_;OUx zEEC8uP|F$A0*09dV#5|3f$WAR8_1j+sNIKsEe>cL0kmMGSVL0}*(;E-Meu?PXpTmB zB`r-ui9EkRSH=)@JNTeFl2#glBN#mYjFQfwg*zxf;29d4ywKK3z$Yrf@d01qg0b)h z*~EBon7}GYZ~+C~Ne)T+pn%1bC^9mO;r4(!ln9r@iZZaf!NWh$^*u;Y1Rs$D6`gRG z=wVq$19l~rH8kKl5q;nbVkKk|2!svR4sN+a_@zZT;1x3DF0Mi3BV-Rl%m&+qWhxtW z1Olu|7u>so_Xa_s4=W=<=?ixbLb`AkrMsmE2}DG%3uFvZ=M-tLIT8B62PMEVAJfR zoWM18ii?uLJw`oH84B+9BNZWtn8Dp@g$5UB8VEW}44Dsx3;=^BfFQnu6w9E326@*6 ztObjZMcyD$WD7bS27Es!+QuRcaFaDZKUb#&dbmI6oNk<|6G07J6xB%kn80hsiy-F< zWaz~s-E<9F01r82T~pIK6EgHe#&y&=n%an)vh%<wwz|dY;Moc^FL@Xn|u@oeY`^^GnQ4wNg^T(Q3if zJcl$=LB=EeikN_aL?uFvhEirSXxlod!3Ply1|K{_oLp zfy5HIkli+h&)*3mIpc~U&+(g9W>gIs#lVj4hm%GSs@Vrd*-HtcMn1fGbBM+ z>06vy0$C1>Op)zswafx-pCvqI)*>L_NasexuYGHr_yYfg+nJy=k? z5T3RW3&|ko=;$hGr)n!HC~4>E!PV%1*6+YZ;d2v<(lhfw2e8=cV&qYXWJrDiNUjn* zEU&2pas^B`ByShv$lJxxyp8CMdFCQroejD&su~)tnYNjrd3#9AxaOpS*Jmh!s&q}A zOi05*Clj)H6%--pEfT0Hh^bT9#t3lUfJRPqiMA4C3q@#AjuPZRdRS3_CI?9&&;=Zj=^?1g zqEln7F@qD4r9lfrv~87ijVhENqi3Kb4)Q$A$9mx6G$64g17xFOCT1Dn3|bJBr(U9v zSXz<~+2Nw#0|_Q*s3FYIQ2>_`prbwVN)vN(Dv^qWOl>87cxo@vR?;iTOIL!#6?O+9 zVh>ucg3dtF$=3lbhyrijgeJgZr^*mWX`-Q2oLrPyP@)7{i=rPLqaPOwJ%lVeMmI(; zKGt3%I;I@L)Y6R6%PNksx7P=ch=BIaXCf_avMaGJ(bm??Ow-7-O$2R|FD^>f$+ykZ z%S|jv&H&xT0!_@I;XKIpmLg5iG7*hp`(kY+eeh9m+K@5jVkO9Z@4nzGoG_{$g11V6 z(i-%FGUSlbDakC!0aa5vi8&>pA#L!f5{XGUsaA>xI^Y8=ARI%T?9|GneDE1Y20D<% z)R0+ylxF8c^;sS3Fx$VFgGm?)W9(^HNa67f=bwYJ#Zxs?(%{waoDbZ&Bl4io0QKNOMLR?Zj0b6m zfDRAG?$9(edt0% zND~4z6d(ftpzalTHw*f<8%V%`w>E*g4UjSwHW3J#nTJecz``9grUKc}lAc-u+4G2q zO!$}*xaf+{Nd!edxO0lG61`mnQHq>WAYO&I4%I^-zk?5k0GSSTFGN46^8>p23A}v* zn#2)JL{!(o69tlDPyz(S1B$I+_k+S3;ZHQz!;AuDRG1N<^b9I}LB>J)$;tV7Fn_?z zhXpFQ>VS?uBxUBM1b|NX1Lq~Zc(5EqVJ&piBEliy791q7L6$=cO6U{--fjaVz~Hwr zK;||Dj9&XB_xS}dL__%q9ExduOzi7F&R{>f|89MxIBgw&!C}1_<=w9 zc^bu_TP8}2Q$a;HY!nfByBRnuX@W{txXRKJm_qQ-C1leML>+hn7_{6N6jIPYg_bLj zlm=KbUr1vVY}q~Jg{3bKuRH2;uztBNP?Qi5dVOZ2XgiU zhX^$JhhTz17n?g~l)owo;1;V{Km1>xuDL7fc> zbq$DAgg=+Rzv@!ljp;TIrmhl8S5r>|jWuZ2&n7kr+^H z0hb6MdD5JXdQv3Vp`dtxx)NtJp+phJA$!nz1AKHPsE!6lEo8<7SENGbMIf>m=7F2R z7-P9OTEgfvbKn&U;Lw2+>AnY6~qCMc08nNfS3n!2)MNd?ma`=4)7|4fFTCZ zQEo`X7%>C_8motm!a+v2A%zZTTpKh4uIG|j25OrSF@j}iq+@6ls{ok+^GEm2cba`6lUjp&vjMs%%Gp^Zl9_zdKbZqTYXaG*g$ z2sSR9iL@6pPY-0TqOGl>p*@5R8rI0uOG*b{)TIHPzR^ocOwLXR*L$#YqHT4dsvu*W z3QF2=0oZ^j*m6+)2nr_X2y&(lWT;FNG-?U)DrOr9I?w~|^wxqZsT62XW9eB!q6Qil zkl_x{fmV9CsYU6j{*Yw>8r8`;`NgT=KAwLb_y}6?*`_-AdSEfq2Z(Yr^T1aUS($>* z)`75%4GeTZLv{g)d7$wiu$@k&B_;V_Zaz3|T16Y^n8(7D1wiihwTd>?F^$#9PE9TF z%mZCE4H^wXN-dCcci{asklS@YqcK?5M`8{RLGOsxi!aVEElN&>uato{l2U9Dnru+Jl8|g0pIPi*keX+!Xh_^r5YSFE@PQD>%RwObRcJs)NkJVwn1!I*9pIh? zt$)Q+n7~ceF#vV?psi$Z4<6h|M&8W>Nsn+HAoclqkU|8sHv?P>!)|hbmS>RSMnh94 z6VP&{fC3L(B`M_>q=FZ&(i$nB>n#Zd{g@23a$2RNuP`y=pR0p($E$U$e| z!R8|!PyyY|;DvHP zciw^K7$9{X#3oR`7eyMJ<)Nm5Z{`D?9}Vs$LhT1z2PqEVnGaD}fn5yh=cMMPKsCSv zNmB>Z8wcx04j{NgV1*sXO<+}Ew}6WWP%92p$w8tHSvRQL1-i%pJ~Rm~gOotypWrE7 zu;~aNCKeZiCcd@NZevl>23vzTa>QN<6y)H|G*+MuNvTTk78K&B7%c0nQZmbwbTXmC z0SIgJi&G($KPY^l;R5y|L==lbiAp-D+Df`$MY>7ghJzA#oK7#JC^gMiNf|5yS}B5b zn1-6Nk)f$I@>%?#-Tt6HEjZ56`jFt76r5nO_xGJa?Ief;!P>$3MH5m*LpK=2gZ7FS z;5l*yq6<|D@`W{$)zHZmunou#EQY2raB!#QmH6eSfVPOk1~VYdMM&co5>gOr zlyr(g6%2fQ7HWKOa#4Ox4zl^+gn?{0iZ;lwE~pHE-5`KG+JV*~hq<&Qvj9}$fJ-PW zQ3_5QphzvrEI>NF1{|vynZ=-$+64r(!3rK^n?QL3Qm}z6M=603BTX=mf<-Wn4@3zI z$dNHH4WM90>LZ}2v`)<_POS#*=7-K-fWr$CRiNPw@X#m7fMN|zYb?fMZzMqD8dUAV zPAbD$EE!d6FN*t0XAi<*q9>9UHaTFx5tO?Nuayn>I1yb8sr$YAxDJkis z>Xm0?mZSz3BqpbVwq1hKwi0+m9CRoMq;(H&z*uKOPL~92)y@QGAb6pfn^*x>0$OP1 zn^=+oI(k_HT@AEr0Xj$pvWz5C+Yr3O1kDK`CqZ{ADM1_pI)DV?5XhaVpotn#DuWeD zxrr4}iA2PD7;xdKTMW)DsVPd<#cFDKcE$D@sj!u3#SqKE`4`-XLmE^})YOCwVSpu| zkqcVSrBR{-yZ#%TtiTxr?02N_1`8s${opIuV3j0tu@5@y1LPY}(*{<@g5w<|pa&bs z1+Tpa?+Abv?~q|DO;DtQb;AmI@JYImB}rgYV1Wb)KuwH(2h2%OV?pU2?0&?EH(bam zzoaBT7rZtIbTP02XahT}zn{L;}W8I;2tnrya}*1$an-H@-nP?SlH&@KFG8$p*Fn7J1O_H%9V+$3EOpXtIOm z2iWNpaA|Pp>*PU4labRCTnQ+gbaYc8_b?%X4-)9m<^XI~KSfO~57gjJLE5hh+JuFA zVFKJ}M2)KlUa1YXALF);JkX>m{AyKD;zkPw=~i!f)YLReZNVbCIeHZ!QB9p`NX&z5+}6}9NX&Dp)QB$CNsa~A5BYiM?H-hr4o+e5;Kmnt z{W-j$0csO~hMd4-RN!(H-|!){X$wxx;6vB-pzDw{s^J}PBztv0SF=~c3O%sx5EC?Y z6g5B#LyJoi^O95Z)4=z$6_gf059!LYEwL_vr`v+k0u9iy9k7)n8mXF~#Y50$gGQbv zeA$5>d{75+>@9R11gz_ZxHV6+RtMo4BnKlpv1)21pz&`|ii9kt0L@%L%YAS#L25;a z9Jm**sRNqY2M08y5&;+EpjnR+gu9?)E07gzkil5IL5Oe=!X-!@4$$=?U`HK72*Cw~8>Hh7Evg}f8mveLnF5bTs0xTN5Ea-%4WApqy7k}*4-`7JIwkq( z={b<0OhnjYHwD=duuz2b4iWLEp$Q&?LK^x(oKp*17K5+{JSGn6et{M>VyQbpL)q}g z4%qpS)tT_C>!BkFnYNkW^R1xcuX;!uf*~We(9#(^?v@JWfR6x$=z|Gqf~s}+?$c^W z)oqnoi&zf_b_8@Xu-GvrB{c<<7D15;+6V^j?~-uM~YDFDF>9)pza2xdZ;!HxOt^{@HJBiv#=Y5oCv{L9TF({pp9?@ zf*+)WK=^}{fC8QL2!ItPI^b%!ptJzLM{0Etk&93X-}eYkW}u*g6%e5IXii?bCZw!Y7j8vUW(30U2@L_|b+;9pjyHOkt z%Er+48+ct|WonTp=;}1oVJV0U!29_j5eI7PAr+#aYz+1tB5^>X3@nJvLeMD*kn{yH z+r9)+0^xB4(p)A)PjqT5vKx?WgeEt*GPI-0;NoD<)at;BeH4d63#k%&P%R5t{0+HG z3v{9asOUg(Ds1=-ssu8J2fF?i90Eu;DWc{Nw7W}@ya09@tj@^HE6dMDI)Mn*@CL2S zwskBjN~}aGJd1NOlT#tvkrRv3OF?@DiggSjOE6N=!(9{B=0$`_W^_rcni_}%E#b--7OB30Pn;H_J5 zB7u}(@a`AF9>^ptIKhL}fVAo4>$#;SmXsEyf`x2BxBOJ57J)fPrC)MRX-X>SvJl_Q zip)Gc@YrOrPH{Jh1@Qh&&@w0}tF#2d0M!Kwpl%d& z2u}fAFoT+95Ei%wR|2OZuxoJ!8mwT@DA5ErnXEKGH=cs>I&_&js_*n5?gVFDz4(Hn z`~uLzom8-Iz=EKWMzD<#|05bau(BDF=s*P{Vn6}xcxdGdvKC(HqHv(816eWHN@xWR zodbvFB*+*UI5t6R^+6XjR;Ct#Zd?SPb^!`MurrAY7;rZPrGP{l>jv8aIu;T(p+~I{ zLncGPtDO5mZ2sE#NA`KeY(8z*y znjpg`s@(E&6!0f|P=Erl*!b?#n^A z7FJ}!iW|_~i4ZmL0udCa@FE{^JaQ`N=1b@vGf+*4)OUt-B<;cbo1m>XO)D@DVzh>) zCTNDfRtGIxBb)_l1tQ%x1&$pn(DIz3^wbial0*;%O-axeG-Ox;y3no!+DJ@8E-i5u zvdCpBw3r3$CBwahB|2XZxoC|=l&#J_o&oUzjxH{qe(nh0Kmr*w?*cnJ19G09y`hnX zft69Ju}-F~Myft|;1YD@T!~(OX-R4kWWWr{fsCqY>Kbb58^NLmt^s;O9%y)6&r~N< z6MWN^4s__ss=BzO2-M~Nz;a+3| zS|A5r)CO8E4Y{lv+PoorCJLx(0*@NQdZFMY!_Z}0u(cz2TEM=@+_9@NUqN=*js z|H;WqN2r8MZGch$e8wAY2XYfRz96wABPc(=1k|!4aD@$|OaxUA;G#QE1AQhNdK#7w zc(YM4)(f9NE`n}j0@t=A9Y}(`p$J-W0`&u=s0Pn9L2Ey_r%~!Th&otV59+#rTaid- zV3y_Pfa)wzv4I%Eg(!j)>yYG#ECNa~U_Ll>K(`^m4|Dz&6R=Uxgo5pGE97Ds6k4#LL3JV206o}(hQyK#STcolcYPBJ z5Cd~asz6KI3i6AvT*j2I2TCw{$R!eN$R2bwFl0m-H0T7I3kLVvi;;IMz-}7`?Pfwg z08ZBsv0i>ry1tQtfq{N;SvqLu9#+s6m!;b(YJiTV2OlvD zEf)NOYicmXG@wBSu|Y=(WRxa!8E9~rdr)d}3CtC?P^HlNuNvOC4i0m-LahBOE=z|W zse^HJ52&jIn<)Z~bi&IMSTrGW53Ilkt@+l=NrX=5D%ygMBS0;FK&M%P8zwkf2_#qw zIt~z2t3qui6G$Igkh@KDH%3Hr+w0HrX zHGxvbBMgDH-@w5M8U_Nn0#ro9^A}7IMF5(Ip<4t&dN7TIXMgCRJ7nbq)EgQ~h+7*# z2^qT@kPNKggx1Z7lM;{@+aYFy!G$PDA2?v)bvfx<#cqsY*IZsb#5o`6=)-{b4462hUTBAeB5GqoC?^LB^E8HrZe` z1kH)?h75GcEml2HIcy<;Zn08cejaE=6r@%}sZQXt_QXV(J+#8c5^Rtdg%0Jy+zW05 zLj8u#oe)jB&}|54nxUeEwSyO0plOCQBB6R=&VjcXLtO+?nFt!7Lo*g6 z4sON5hw?!SK_D#^%)|>)4KW4HA)r+4jJW>}XK;d(KR7LeV-DsIsCF!df?Cmd5+u}j zApMX`g<&kn08JFnf$ocg-XjaomP$G(DGKH;P}aedL_pGL;RzA~x96dW8D-9swzXdjp;c&`V^bN(|I!Ni4~L)HI;;|3SR~TP0ru1;nmoED@Ok>4rn9 zk+Rgh5|lw@*bFh;-#MAd*`OYbX0--Nxh~Ssy=D;?bftO!kE5+gKE8%4c=8i#d znGdgS2<{&QpZoy{k!U5@Xr2=C#wjQpG`0s5hiq{K5BY({r<71PZ^i1Q+8S7=+LXX{ z7N%-zLoU|?7p~xSj%cndiB840&k(fk1?QeWaB>H=jrCwV>tLA$RFA{NU>ob8X%cNa zBe>s=CWffzN)XFhaBf6{b<*Lk0WE&j0|yb<*BEO>K-ZsuE_}+*D*^XEp({$jV|`$@ zMkc5UoQksE1Uej&2VKkp?iWG_Evg}t-&Vzt1HQpVSmo)!QvyUFQwMDmVXY==l`^&_)PE3uq|@%2H3zrC*>1Flt`} z)T{tyP*5`q5#q3x7%1<7WI)*xoMd1Euog68*cP>Ar~zqyL)tyiJt&|QjQem?n8|1b zFv@Z(kOyI11MtQi(Cjd*1B4~Rf}D=n<_j_k=>$fI+i>5u3<{Mf&|!ZdeJD3B!(?hv z*7^}=Klr=|m>;2cD5vIu3N&!|LYom~>9EceR4KI27>tn6(A4AtUA2;znVVRW3Ud-7 z3SskNkj5<5GZkU;U7$S zpm2w*rz7K-!%XC34pYI$973WBY&0lFGV{`H!Iy2N=A~eI969a6RU5)Xa0e_mu>#!vuFy@@tI#P1U4o{Y3OeZ= z5-ngafkI2C2riJ9T8w;nF4EarkYPv2ogr#!MJN|oC4#axEGr-{9ZUqRm`FrxkwIH` zp!ITSGLZGN;05I9nm~g(PWcr|I?*7%fP9gsQw%$cT|o(a_6RI@qB|9NrE(&yBmxB} zVps$|`j3bf@ah`a5Dd1(A6(r+PR;$2@L-Z9h@t}D%u<;PXK~*jO1v6lEP}@M*CB=jkb)58 zJlhgj0{~K8qVkHP!DHf(i=-erA4DB|z%oi%ZjLQdE3~*QT}=%>)uCBkQd9}P9uV#Sdglan383yWT>QXrw(2x16q%tmRW>06a?SOoSKnX zmYH8D+mRj`i76fh57n`whJSVeOl=m7{PCvf)3jtVg(XT z(1IdWFE24SwHUN3p%}E>LPII1EH_6jAIKi-A-Mz78)W5-9#Cvq+Oz|u27MilUEFi z04z?_gEH_&4>~*)Y$Jx0l@h3SK$C-Z%0O*8SiObKV&tw?iC%Jkeo;zsW>u=KlA(ej zwBrk|MX`GhR562ww{Q)tA>~%EDWJL-RW1IpH(0x@q%tQJ>7*WvaUbOPfD9ObnhD@0 zAE?s|YAb*^(2#?j6^j@cw9eCmXiKpLWn0jMpiZ71NNXxc1jGQHehQu`wAUyBRZ!3X zfoOwr(4!u#9vnWYc`3<>1-8%uL7hCbKmg6`K!$&8GxZ=0@Qw)3x!ItpL)%O}@bCiS z%q-hXJ?LPQPKh39&;}ePwwYiyc(}(NdI))DF_^1?B&BJO#L)u{t7s@GC}~167GMq|K(K^i4`P_MxS^bVLV6# zdsKjAK-()(!aWtVoEH+Xwwd7AhK}pNLK}379rz>>s5ESh#tL*`9I7LsQwyMjgmQ8q zvvu$`F;S%lq(N_80@_Vkkds&m+VYi`ikt=Y${>D28`S}AK?S9O%wmW(=!vVy{ZPa( z47Tc`y4I>1Udn-TC~`@cnFeq5K__$}LjlN5bC4d~6)3nI2W^N&Yykt6cJN{o;YGBj zIZ9l?5&@`92gF00@9gLo<_MZmLqr0^PD0f*L?fuC22GoRPQHNL zG=m&F&^j4h^n=<&po|47=y1%RLN8AXEl5c$Nrg|L>cCdtAWTM7vUuiv!K-AU9RNs3 zgUcZJwYwy1HY0f-_ni8LbwuMMH@1&y77Z3NeU zP}|}``*Jdqv%#8SX$YKy!tu8nBK4lHuU8q84=7 zQekOoaS0@D5HSJkBZC855t7zm6X8LrU@hQF2|>vpO&oR+C)7Eh4gGFKiMgrJAOMZ7 z`6d>CobQ^K0&yfL4T0~vMU_N$4pt|CJpnNSq*Fr)6i%Ql3aj3sZAz4ZWO%BDtUm$y z092B|(@%0q1*E_Oxk@h{l53nxD&XZRIJqIa4XGIbt?I2o2c(0lb6C!ZPcEqdS6|@u zL$)Q*+7{w=uq33G0h?_LY7yn+7lEp0Pz{1&2uJ{?3dDxi9WX7mI`N=OoNS291M_x3pSpBu$CV@1%L`fcwB%2R6|xO@W5u7GR+`vhDdfrmCri&H`Q3>II|DFjf41}A5vLIyli0yYYv72%mM9q1Sx^!d6@YS)8J(z784iI5Q>HRuQ`2 z5aMdE3~1~eH0cGKMFa~%lp|bIQUSeU4b3X7b{K*~7Fz0qjRVgrm1t^0M<`I+XQ0%s zM?%{HZ<`HV3?h{skVS0PnV<_m;Y9^R5VP3^DQ1;G4Qz1hT(1DSXV_LLF{wB|r?dpr zD1{mWQS4k&VVjB6D$-Cg0n?GWk)1ckfH^0+aC6|DXJW3>8}p7&xtQ3-KACx` zpxI&D>f+4Yf}G5>N`$|`gVmr)AQg17D0ILQeqn|lcq;mw@f^&x0BRI>u2a6MRn$bO04y1uhF9Sp=`KpduIH4HSbQ-8Ilj9gtRm zPCjg$F*Gx;!~#4vplF+^t)yg+5U>IZgD$cKZTQs4)3h#*Hi)$?j?U9HjJ1W9ZSe>j zgG*8iG)i=eby9TJ-^RcN-l)hGLhOLe_uve* z=)_o^lIT1Tksk|+6`dlx4A9Z-wuw3!wnduO8FrxCc|dn15A$DA3+D4Z|8^p%yQ(5LfNn~* zP1UQ^Edkx947xNXGfyW2L?>3jN*)WfOnb=A5pYSMQKDC&U96>%0nw$YpQw|eSE*@b zf?Zh=LRk?=nGu?@47~~+&{^k+AQQnZ($p{3v@%3f2D;N3s;mg&aImtn{LB;u1IT%D zPLK#h@h~LvK}TpqTIvcVdKEUQpm|rl3j53&TSKc7y$ZWj(0M}OLpCyNY>hy@q)Mow zN{}KG&^a_vMWFLEGHYxtz{xHil76w;2n$}&RfXW-g#~A(R;G5IRvxH`z+S?l7>7u~ zkjsQBbU@b>R_bKfX6jYwChFvX=ZcGTN^LW=GPHBFa$we!+8Kb00S!=m=_YDwWoT=Z z=vC?#X=>$Y>X+&i+ZozxB!W!QDFT_HX;lo?k*IB(p;fF?q-~p{Rjdg*(WC@w5m>iQ zo;}neE95khs8a+w5d?HDK~5#83kDlUf~}nfEg-?zt_|7?2JMFbuWvt3APwA zS&7n_gJmCZ!3B*3@Gc7swTLk{NKil(L!FU~9%GP(C}c^SI9nLtK^{c|P3t_n6wsW8ZHi7JXj3w@jY~kMCj6kBL^U;yM9{1N`1l>j zQE%YpW}c>|P9iwnLH2?mLI>V9g%mZAh=eGDL>722HYl-x_IrVbX;4xZ!XR*?8x%~L zpy4XpRQnPuXoD`()&Mk(1`Dt}yG(1)4GW<2gV5%kN}@AkHPzIV@=9})Qj3%nVa-pF zc(eiR&O2++j(4QXp+K5on@Njt4wYaOg5Y@!$dC%66a=-7QL{0U4-w6;RPYIH;GTGx zua8b1N&`$M5mY+BT4AZS;HFomnp&z}Jb016hNe!Uwyj2<+Yeyr=|RE`y>JcBwBUx4;_Apn?`WRSWB{>SQ1#T1Yz%T$meJgIbl)JM?Tb zKm%2iB8c^>OwBuV3Bmn7R z*Xlr89UvY!_CQkU`FUtZih+^}IQK(3Tsk>Ar8>zvDYnsuIwm?sIu@}ypfhG*;R;S5 zpqv9bn+?+8w9bKbU83`1L1%EMq}mqfftuXVh9{&OlL|RD1k_P9fp!$Z1Kg#yDWJYu zrfoE+Uu2+zFj%M9Hb>VGY<#gTsBcsR$(0$lCDFyPIz)Jp9$V62)Njby0ZuIL?z z44opKQqWjNGDJ009n6i%ASq}EDp^z0N&{{v_#`-phbS~u2Wozirlxg?Z6>VvD}lun zC~_ci25Kq77xq9?rd2g)76SJ+Vo=&Z(oLY@2rBs@2_IafhG&*!c;x4#7DJYjgW8&K zAw;@|Es6y-zCoS1642@saQcERLICw|u~!BLv7mAQlyf0@2ily#(fk3ag*q<-EXXeaZLokk7wUK&*d75pTO&0!kl$ejltja%AO@6x&b0?M<8ZgJGt)p@{h;|7 zsf<9?fmG`ug%6~J0c9bGSHZqQsdc~^7t}O{ty%^vfqD`?<%EbHkTk?pP$NAWyeR_I zAOII^AW2Yj9Ht#M5rwcEt`!mdpqd9~6CY+`bZRW9zf=r6UJ$9RjnvvDHQB*t6Ht;h zXd3|7!LTN&CTK++X80rAf(U!?{``1Ek&nnC&_IW#6SPV`71U>fRqwFsyChaGIX^Es z5jMUE3JOT@Y3e{G(4Yl?9<(6npYYn6dbW=8{=m+Ohh?Bvy zdf>VS+Gar9lLd+;l=gw9HLPt7Y7Bt~po*dABSU?V3YrMS)BXZE0#rAH904xa5JeNH zmH<_L(B2nH0K*zpsoJR9j_j4Hl&q90KqoPS7HxxSNl?K_pps0_&x6*HaD|%HFs1@% zPY7(KG}^H;1Uu^BGz2}H$+jADMuA>DG|pgWv>*}@xPV1)5h*7Xl5`*q7x=Yi@EnQd z5Rwwj>O8wl`x3-D+G35==uBk&nOdX)YD|UtET>^^6;QZ2(jPTUr z5>U$*B;c1{ghjwL5upOC1tJg&S+G@ybstpnWkp?=3I))J03SB)zO|S%b2pptTp-Rb0qXaSN zkqQ}*f{cNrYU(IC`Y0f50L?sr)~$og1>2!upkrigYH4IrI^b1NZ5YBHp3L@rN3B_K5XA!!~`eu9cqolNim z0z?3Eh#BY*Ft8c$iVWH+u&RcnO)EnK9msNaE2CO`SI9w3C0NPnfYyG4dg74qgjfP8 zm7q53LBwixaF=ipz2K09Xa$YafFcomn*g{q1a4nLD?~^ngCZC*)B|4ghaA88dKj*U zuHgVHMO4zzU3yeLLvZmA|ay6Nr!nGVH|v%8f;oTL??3EgeEiO z6bjdaoIWAyK&cd*Mq!OS`0ht&r4CtAZC?%B_yJkchHwvP&;z_53~j&*;xm|UAqiUF z2;5~xtm-bwFHHumASl(gH8cQSxMHA#GQCTQUOrNff}Z;n*xXpI7qtzJQV|4)(Tph0U9Z^RWt;R17RI@LX8CE zv<(u3}tg`I9&1l!&L zN%-JxBj5^GqexRHQ7=EwH8D8@YJi#=nt(=$4rosJRf$fiZ4M;OKvJ+yGH8Uf zxID8YIYT4UHWRwP9h}DD!yY<0;Nw~}tCJIpQF607=YHZLCgZx*Pt;|jYQDN`C!+Bgwpf#l&mt- zG>mL*ZDH;c$?g5Q^A)EsaOj3M@WExm6$UkUago}gy35{Bu&ND(d4_PBpkhwz(F6aE59LRb? zOQQu%T{i*fJ7m%!9HVOclKNgJ%XSWD`Jb4ba@K6+G#Kx+(>!MJ1W3#a1Pt zstwAig=QIe1b`w7wH^Z{A84^?MSO(T*6N@pDx_?R*1U#vL^MjG4M8hq4M2nuXj}tT zKhjt)XdPxIB$wyufESN~ax5qpVJv9Px6aqr*31K~Dgl*cXhv$3MCZrqr0Rl_gOvvM zoURF01S;*pW5$TPBNA(MU?Wn_;4SSaJ_OZrskWdQxV&`G6kTFTEVL!8P@OClzL5G3cl(&@OotBS9X78XJpiZ9yuelz^9(@Gd9BiQu&ch~e~9@Q@I+ ztU$60RC+^GJiMf~M_fr%3)-BN3cdybQ5svN)@oWI>`jE%tErl`I&dD6C9qTgPowa2 zv+PT(s&OaZYLKI0g*RxYEqIh8(YCrIA6l#+EP>gffN)rPY6;ZC;I6R_)Fwy~4oS0+ zdH~5YsPPQe2O46ACS1^2>b14jpzF_yvQvxT%}wxmK4>j;Br!;ZfT|i+4#7n!^Au8% zh}UQE^oHg&@X9S{Jq&Uha<2`$%RuQ9oIQ2&Y@-o@4hcYf)_@megQvg2IReB&pMM9h zrvptN!#ZK0SxR_m313u+)VRZHZ9G^TXkjI6Ed*qBP#z@fWWtL=g!6Hx8Su1;5=z+S z)q(>I*7niBF~f%>4+^tXPzeUha-fn5%fwZQW;HZ>m*~OMx&~;gI3zb9H)24?`xA11 z35vT@LGDJIm%^3|OEi?gH5^jff>;I?#gj^48lg&*AiBVfRB$r|n`P*s1nV?HJ0H;D zB`6PGIfBw2I6Y;msX-hI$=$ZLwwaJ-8!V)uet}49BE|CZ;*xD8Lp&L z3>u`-!J;x1BBf~sF&BJ}AlTfR8i+_vYGPR`SOl~!0kpXVB92fAbrN`wE7Tb9UR12n zgd8v62@S9_L1C(CpQw?lX$4we3feh>#jQnfw?ei8L&6v_LYkPDQk0*W0&ypj?TArj zWZTm+b4pT+z`K;empg-6Ht0dF0S_K5&VkBVDJ7PaBqnEoV*ngSpuQ}U82F|o?NrdE z?j_MVv9`rJpyoVi(-w4n1Ti0S-9Ai5y}Niek)ko(N6n z*c7MgfMtnF>Y$DEpv|^u)`9aL;gk=y#|pa{P*+$frKDn}8YD4TssY_P9$g#@*=zt# zIN+^uwK`}g#3H30c$o+~oFcyf=@?niTAdOU5zu|9pl#>LsX0!iNl7{2?d!(R*6O5W7K6?UfRrpqW}`R&(yl==2hFvxQXNS}K4^gyq-=qdZaS&pD@#js zlzj86z{NyBW<_ca#9}4z!V{=lz?m4AQxIJzB+Jm8174Z$Qk0mU4)U5_aEN122y`Gr z*U&oC&ep&>Q&$)L6lR@#Jv2R_DV9{EMkK5<1a00ffgdJ~)!3s8fFl^9I4m)zG}TrSvb`3PfUp^f% z{>=nkz>{jLTLR_j8-siI@t}+ZE>4QAs%v%N5szXgQqUu*kA|F49Sb=%7i3OBD(WSN zkn9F39rUp1gJm{c@}MM<3fejXI`{+}lSqyN#URLdP@EK{g7(#?gn(}V1CQKiLgQ7@ zz#4ScB`B|1XR4`z?kFj-)&yOPT##6lnpfhNpOOkaU=jJqNod%DmDfVH$$}2bMpzGv zh7vt+A_v=<3hoR-+yvhY25$YOLM{tUEdsegBNcQhGwj;XXoFZC#nhUb5h7PJQBWzezqYHFFf$Z-yrfH@&gO)byP(7-@V&D6la4%E2SgWSKS2ihH9 z3XTqN=?6X(3?XI@Zbl&)4a&C~CEzwI7I)ZY>ZF3ETxvlJ5#jRrD6U3o&VvfR{9K41 z^V8C7k?es~ys+9Fq!3oBf);b2-4smVu1s(-jI_Q8+zPRehBVNNOA?DpU?=LQh@MZ>@lOcMc3Mp}MS{h`$i&{>GRH}O5OSMyM zK`S0~;vrr{_yFl51h_gKMU4`@;*89+67ST?ni@m!Z2;vNnV_W}5Dw^+OVAluilEVh z(&P-#bgTwajsxXvq_z)eE)%(35)W-7f$oV1>jJOChYEV;CZ?x?+A!eFVX$*tp^_n~ z6(zx`&LilKI~Mnywq|K2jODZjC3#rO2OfxOYKD+eaY*Pw%|Hueojk&!T5Ow#ICuw=fe?|RX$?Ant)`|}uM)K2 z2ho`ZJ6%o97qm7uF{v1&N>dw&SE*@ZTvLOb5HT8y;GlwL3DA+Yp!5Sd6bp2%2-ppv z!)rmpu>1f$Ix8M5No=$ud{+!j0^l?bKaMz6FDXBz5^)$Z$oBNiJjAVGplTOdT*9t7 z1y$z7Maiy^(iN1D@^ev5g@hzRE2{arkZKxqE-geMG#NuUFz2dA=m;C9H%lu*1ZHk^A9+NbYKUTp_hfAaYxv3 zQ7|2dKwV;1r;|a9mcdY ztOXMMK>R$=!FrI>N3oPc2xXxK$cKGHszU7LI7AL-F`k+N9fbsCzRbLIa1ephII-yt z5ozG2QgsUKC@V;yLLwM`v_MEcw77<)eofek|KKtLd@YC}WOXL=t^zDg#>^6oeJs#~ z2wG)pTY{~r191%`G(goL3Lli+zygUWDIWRx+2DCE*dPaT5(F!XhnfQ4b`9l&x=>&R zkfen$2r7?k5Tw(i2-#Z)GZ5l$(4l>~sYU6j&_zfZ)u0>!Dyu-}^k(LPX7LlPkS-j6 z4tW|G>p&%4Qj=42Qj5Sx*I5~x7#P4Ld=o2z3sO^4tPJ(xVj&qtsl^%jIVl*8Y-1xU zLkpeM#Nt%YTu)+AW=W-$o{_0ed45q&igSKJrB`V#_|O(mfeUgqs1aeCuLq4d_Pzf$fS!H~^CPK-+$ik|lCfphW{HtAausqyyY8K~@V%whCxkU_}VR zQc!77?R0L!rR0Mo%J^1!&J!m$7#|G?lNzkzr;4s&V2ldK9T+kXeNbDjz557GXv}Xbq z(@;}UlPS0^$jnW()dmelxg?gP!gp1Gq(H3~w7`PZdC=4icN=8(8NL7%>_CVZ=vZ=H zh$&#vXoFZgBhYXFv?xUw0q#S90u0=o0xO2}D?qbe5EDQ?f)v@H$VCZAXr&8Jb;u!t z7Ga>(55eFIjP>GEGRrbkQk^O_j6mDs5w<`k-$BbTVMn=YL>uTBz&B|@_q>IJN)yPf zRiHyLV24ANXoAij1N#G<#h^zig9Si-fNs428EI%?5UZ&NIRP8*d+rh~gv=&6)Fx41*wi-&6 zq?2Qt2-$X9kW=YYsga>yqzPWq32TUiJ-=}>myVn*Q{C@nmX~eDabl>3-paN^&tDyG_B)7r`E;mRoZLB+otNp=Vaz) zmOv7^M!ZfcYy~f9XBBvm8{BUJH@z^L?MTZYQuPWF^PDO*;&rN1N}*MJ0a_)Up_7*n zYDj`BH_%}nphlJzMofXG_;o<5mI^>!5YN2K5>S&x12pFht-_Ubl)$MH)K7w{1XYBv z`W~&70-pT?4@81aSO(h*(}XHTWE%mJOhB0(bc`-yQUoFn8dw2MsDmv8m+G3J+uuRy z5abP{<$_3ULp|_${6rZA9=U;AfGAL4=Z_$2FL2(2-p;3?2|CFSbp#k(Dto6^+Upux z8ERT9B_k#e;fWvxHH7R_L5re6!Kjg`X$9vvLXsBf_;+Yq2Rx_(+BFB>Sp#Z>C8ng{ zib_;FK$oMK#Gtf7cv(Imm)H9!JRqi=y4u2>w}^i zwuL0M2zoyzc!CAdCIZ_7u@VyLkZw5vldw)6A~^wd*aF^w1kDH88sJP;NCtq?6(n7f z=m}78BgU)XBa-N*kmvz$%L^%}uq0n3$ET+v&3|c>z=mQ|K;GAeogM)$#=#Rqh(-;_ zmEgg3aPWf`ts*B&&?qD%Ou$VvQ2hfN0fLO}fJ6{g6>RVeTt9+#Vw)J~YQURS(8>UA zlBSMAcI$t9rL0=DY{+{!DmElw?gsma#^T~P>4ZUw1DY57IDp!5t) zN|`9Jftn~lzCj8z%n{dGop>Y@5h0G+U`FBR0p0`oxu1Yu<6X{73yXzJ*ifFw(x6%E+9Ozl)n-Au6O^y0y` z*`f@tfr14*hM@!6n1NIxZzgdb3Z^_SkVM-I)LhMSW?jeIRd;S zl2BEHW)-Y_f@F4ZVg^|RiX!-)5LnL9sg4JaRf3ZTQb#ryvimZ%$X*F$dIfpMI&?n9 zUJ1$oP5vlBCwai;Dd|8A2lWRLW24xN4lTfEaA^U|SWrVr2iuY`M5-y#$<)b1T006l z6bsy{N(Ie-BAfwrw7o_=w6g%&4V7BtnF2}<@z5b-O)JRCL-5=IR7^)vBh}6jK86qK zyy)fSmxER%+Ggr%6xGyZYFcN27c7Fcp$|Lf*ye#wr7g9y%>x}%TU!fjrYL}RsXWZOHUqpy z)E2RhPbX6&1JptVjrP@o_pcS{Wa#98#(PR_jZ6)6l9AVB>7+oL28a}?Q-Ca#nwO#z z4_fbA5}mA_qMZj`4HliOT>xSxf>*QWBHg|S4LbW&y_EdqQqVjfbU@mw1U5sAWno$h zWSyK&E~sq>E}miYu^I)CHBi`AL1IyjROSWvd-{byuA6dp^?{lKD&b)@B%~>Uw8Rl5 zJwqc2Ijj&KfDBHcIuvBI9whI9Ga~3Pb!~J(?aWy4dM~7fn0P`=6S^7=r$wO1DT&TQ zwk9<%1!f6G!ULU0g%&MXZNMFhxGe+u6fz`;rM!d1g^Pcx=f1@2yf zR;_}IYRI-eux?QC4%-ZfL$7OI3O1eK&?TT16dwq^C_A&1Li4io^2_rSz|K$rFPBjO ztpr!9t;G@;U=JXN2zd7}B%3B8XH&%0)}XUtQj0)`+QSNajS|gjq|}YkXo45V;8ka! z)7~>}il8+R_&DFpG>xL@%veOd1)lMQ=3&ni(D}%U2G(3jMX8C|wW&2VMbL^4G;j*` zXKJx+5%gq6kXUj?VqSV`N(f}i)E2bbAP=-e4OF|7L?>!PmV1B;6eaEASlbM2OQONi z21~4S^B76=yU>5B2R6IT}LazR-At6v} zjZqPR(k7My4d(pN0G%AL<4M&B$)r%t;1Gf3JamtPmTMr54P#4epk#}j)}Xl$mW&kg zK?w;o@Cr)^A(aKG;FS=*!7!hMLMOW@Z|Ae?Kh7Faxj{O9DoOV=)oohzO*7Xdr<~S5O!w5)7lz09YG^Kn{T> zbnudGaBm6Lpg}9~(b6v@yXT<V~>WCq@^al0m zklF!YF*P-;)0?0J0+Ul6!QD?E&}eEg@;DT@zz3N|#Stj5YamqxI9-6I4Z-$+t4^>G z?omgiS`qi~5OFrd=jS1;MM{N`6bL&`H#e~WT*)C;AA$Df!}A-o=u=Zu%+y1_4G&tc zfo>oJt?UAq5_z_nddQ6ErTbQ%sCP(5dR6D@{NgaOTwf{R#C4gsye1ILhFJk(q8Y5sV~ z5G-Uc9#oveXPv;hkz4_~q7F743A)?}#)eHzBF8ak90t<309lV1vINH*sQLrD2E52W zRR^LFlncS4@Pq}sCKWWy0UO=W!)R22PP>IB36Q}UDFQaaL~M$Hgeo+cV2LV~xY!3> zqC+s57{aIhijxy_K&!G-pzB0J@-^}_^&t)b2RtZRpnloX9T)RdqX55Gtb zNi!tvXzGBMO+q3QWFKg;K76blvlywVQPcqMHUJeL8k(RzWuPHB-^@ISfSMZA3XoYg zhBYm4_>YWwidB|3^XQ;7{muT0(UY7FQJ62 zMuV7zNXU>xh_o66KChmhS`rM32mhkX^vpaB@Vu=a_`D==*#w$!2A%r@y(B{egbK)<2RL#e<0g=$a3y+p z6A|$X3c(2!+@k^imzsz&c%Gfb7;`4LhLmFXIl^#5ogeK`LL!FI0qwn0;2{7J5nzm zw3G%sbqa1ly&xbdL@bJeu=rMYHCV}puOF20lkuZpZxOFBIm^7 zR1HngJqNHgv+(LF53$fWF}WnOEET?n8_D@tCf;DZeGS;0d}eV-VnG<_Oel~|(4r6} zoFG95S_=$c*i@XE3*PkvE}=A(Kvy`YR+QwX=9MbxWPlP*NtsaPU+fXb>tNaThjdkE4bXc$O3#48=;ICEbYKd!PaZlqHMOQ%evbmI5zq z^7TOL)DZeLK==NFn_)VJI(eXZ+tk#&2skTJCl9{c2F8j6w_*&TqyhNgW6+T#km3at zz6FUT&_fM0@}U(DY(@`UdZTpIq2ouO0s~aD;9iJQl2`z*j}i+&c@(4`b!;FhAKaWq z?%+E?gs^n)K_P*ENjNmSfQpJl&_YgIAn$8{*bA=l z5Tggsxm8eR$JGzjgjBa+v%$Fyv@Sap8Y>`gAeyz{90e*HAhCk15Hx`WaRD^)V1+SM zQFdx2Y7Bd)RwCjTR6aoUfs989R*0z}hk*Kr5MEM#1!xZ@bjwk4Q7Y&k(rYMZ5SoxR}hLOCFJObto=vd`~%Jf;2Z{#N6uhi zIcN@nG(o@-19BZK-jUKUyypj2ge7~x72wJmNSOkyQ3c5aY2e_}KuuGiHB_MW&R|=? zjsI}lz0f~8#0aGgr109$ks4EE- zHH3E)y`j3X)YMS-7h6?>4(YIpHa3sdDFWpkt7v1(SRGLDX%%f^5UW#KU=?j_5vv0# zSUmHrq75y~bqo#6b<7NP49yK8;{K&2APGwyLjy}4Lv!O;92@1~c`UI2zC|8XGQvEh zfmrSa^B3H+u>4jGS@j0-D;5oifB+qL3Ef79h(Sn89BE7kX}^*+c+C@N(`k|?==?EI zDWF%92;tZ&8NjkMIHiNCni3tQwEX1KVnmK~198FSI=Bl{qN9|QQwlGs^Yff?N{djW z!C40s+6Xhi6(6Fy0xJg(D1od*wGg(W3#(lqb~1xNvM*dzH378c-5;~0%A@Q4F+%n%&AsVR^| z11jmjdzV22?PzO_bntOFe5)7oM14}_S6@d~U9?kHR6A}xc zyG+1g2&x^BGb+LaSa%Jy^ak4gD@e@qPOSv30MyBc2*C;)@DdcrQTO@a!-1gVGuH6) z?xP{%(W$Yqw$ZwVS|vILu_(I0WfV4TU=z>O5gLj-rGNLSvCY2o59se04FU_VnE7GxD0}{S_qny4@xYc(hgw`EKS*#=s{BsytN9Q zM@t2*D20?+(9{ObwV6n}7ZGf|_{_Y3qWtut)Z$|3nGe>P(A_&IW`OP+)yafUPvs_7 zKpF&~`No38JkPvh(Ed8`t$P|+lxfz2cU*y*JQ_$21Vs)g-Zc?+L+db&Owb@YDEVk; zLf1LM6oZ^ni&V;jR=I;$v%s1OxSJQSniJN(fHeX@I$THKzmx@+YjI(&_NxLlfe7>G)i&@TJ_HLf zAvY1>TST`IBB~2=G1wqbA&evIK#YN_1dmRFH+>QEDyX6ZX~XVUm@EmNg?9H*d<$_j zbao3IClIeeq8Go1L46jaJ(Fky9U!NJ!v@xrh6{iXBEYwK84_erha~6Z7pDf~7nBxg zz&0g=EQW+0Oax>$R0KS>0!lZCatBh)qo!ZbY^Pp)aYkZFemUe|Lg+XE%E32~V9*3@ zPlZ&xSo}*p4oN&cTAC6Kb0t%(7Y?q;Nt+6{3oO zCdLBT`m|KgN^od$h4={EXNPtl(2ch(0qwX+1|o67(7ymupBJ~!v|`> zKZ>M=K}gmz3n^Drws1>1E~>rxuksrKaT+5$=B+{7o~!mzW#Z>i6{ry zfTY3s6si?uFsLeq$2F)30rliGpkwVImw@sHeA)~#0t*=f1L-Wv&jD4@(5<$xtH3}f zZ$o8K!U>k>K}ipK7z@Oku#m;836j7;fsc}2<3V*dRAWFs%GO($(?Qo;>l8zZxH5#n!3OC7@;4h~$Ja)Cs!e1-zCP8o6ju3A*e$(-yvDMhR3Dg0m(x=s=DF z$0e?z)J$#g{9#dkjxIvuJ7IiCfuyNZ0vZMdCu~q2 zfT@9|bsZ(BGSC5=pgoHqXBFk=poJAAeZXzSku<^S7`o3Anogj`>4DmGpn?=q0Kq5d zp`{O6Q3@J>QG$-IfQAUIl(ga8%#xf`DwKA4wVLwC`FSaCw4~ z-XQrB9zh__fx;Tp;8a4X*id3URa;2`whSsMu?TTL5G06lkp^-=CVA#Lm6nv`=Rpd! zc!*IDA#gf{x2++HLH>ZWwV)xR2NehTM<-QVNf+d4*uF`K99TUhr$E*d`j?hKY#_=~ zXy}1WL2(U80&XoR5Ot94^)H3ostmIjvR29ka{6)#xT_A@8xL|~YF>&0h|WnZOU)^U z%=f|)GO9MPBQ$j~LD2;%%1~mg1kwfsnMJCZwL0LXmY#X227)srXsiKbre_|~VTbm{ zR^WRBK@yUk0rh+R_&@Gtol?0$} zQ9x0CL1H@ij3rnb09=H@N9l^-XFX?thsaWXy|(L^9Yhg=PTraFphVF$Uv5)dNDAmM~)gBIwdB1%AbFU`TpE*A409 zgAOhRwVT1217*Jkw1!7%Ab?GVwi2M`>N%E_6lErrf{siguFil|W{{dpr=Tb`EwjQ( z-6l~1l4CMTN(!v>^`WJ9R&{IJnav{NUkeGdt+_(X(vKx2TQ!p$)Sss9IW6oaZDa5aysNq|vVAsLN2 z77xuB;58XY%W8@!)=1u_n0dRS9ZVr^bRBf=E#UZ6YS7q#y}` zPCSEXjmFTRfwe_^T5-vjwvbN5Caz(N?=8hyo{y}QZqo5f=NB- zHK?Fk2b7Ev{sVLJe`Z2_(?T zbPcR1K}q$|C9%4?XqG}64hUPJaft9acmNX|f}q|AtQv@hj7ozWZ-_BZWFKlm^dJjG zr^bSopn>o2N`=hWW`ei5gMtS&e!xSUrNtSLutt>w?cvNx%}X!IK&aBo%FoQxP|{IA zoTUoS#(J4~u=+a_s!pLsK?%IJ9FgV`J_e^uaH1qK%VARsI#3NXD+10^Skpc>UC>O8 z5%n4+kOk~$4gy&M9wWh=phXIIXn9U*#e``BEKy;~*lM8GCP=AP6I4~fI+Bnpy+AQj zl%J!AWDem93du;cdJ4QKo0J*~(y_@+tN@=GXJu$$paZ_cI2kmXotayZT9lcX17br8 zhwzNlJkOMzR4YY8P(g;h(g623zzxAvM7s#;QC;wQZG62M@K6d;E`T){p?N4J1?RR$N0=fwMhGXL&{{$_bGu()gSFVAsI% zB19i7Y>2TOGRXt+2~utYd#Soa4-y5iG!~x=R*0(#2KB)}_pyT4^Xio7!D0=rJ(GCt z@K!IvQLthT>|;>52g-PmNf!;!sVU$M0gw$K8k(RhG<7m<&5X@042{iU7oJ1t9MKu4}`#qU{SxTPD~K#46(Q9ChN;GOsrI1ZgIp!6RM3fm z+DZ!9xk~UbfH@e`d7$o~PQIh++=7(EwQrSCC(>VQ8SE0X7q| z38zF;TS-Y1I?1hT2;RM=p9(7wGi@{NYz+?vw$n_VtiFga(+%uVnJ~#cp(&QZUAW_LMO4bBtHtgY6n#R z>VU>UF%}|2NEp`#R#(@MwehV zcOZr-fu<-y1q7lWh^sa)0j-8CPA!48@lrLE5{ohubu$u+3qUicN?>0j&Q=0%EwBd< z+Q3KCQsJX%NaASYaG=`?;bU~T`sS&i?RMC2uhW3{S|AA@bUGjwKY@gmbV{_9baOI` zOO(LJmVq_E+D`CN1GK~iwqF8zN;}G}q>xoF;1y_~?FO(sky=rZn1|F$hb>eG4-bQF ziicSNPAibU7Oc*IM2}BqUN#oDCqf)vlAoTQlM1>&&pHn=;+Y2>@l*n*vSQFm4w&n) zMM)m6C;<;GAY>sfM)s5yQXGPsx@hYek(HwCoXXS4gxd)p2+*v?b--hOo@ZV`X$g3E z1`<#@2Ac3A+`(xVG%5`mL5B{dLY#^kxZveA(0l}OnFj2*f+ScuQ4BhD3QKTfWF$;EvUVL$CL1Iy2Nj|oLX}BJ^A|#EVWRjCuNzgu+IA<+j4Ye)(P#R^jU zN(q+1pl$|-B8oh?hX)P`(6*L5SVda`u4KUp2JHJ{O;}?V!Udf%1+g16BwUi33u-mz z+2(-`3V_iO`(3(@I!|f3@EO>Mtbex#I z5>ygY?^?k)kQz$K3abWCq<|d=wC8lKN z!;U+I=lBwxOjtryx5)%$aquB$wn{}H{aPkqG_#ig}X@Ga-z-wO6&OF$N zRGv;g(xL`P7umBU6?5%ErVeO%FJy8G>R}C~oW!Km93}8BcyQtag;GXhF*tF<#*9Gc z7(ipgUIP?wXl8)JM+tO}2`J{Eo&s+f0&NRUEG`D^0VW(+I+=RVqvo7JH$@GDKo%f2sZ~>G@|(jwnQ9x zRugnbNj#)ZMh;VO>jFGWi8f^juPQ)mG{E=EgBN{(79>DIL>FRMY6^If8>}6GY&ImU z;Rfk}%NlSN!YQLylvgIyVMfj=^=t`ktt9(7*%! zzhKW0Pk+ByTcyOD90et9jm(-FJtI?1ZKYy`sk_DN4*M&IC<?Y7S18ivk%pO=_2cIuX&C!G3OJ4xGxDm4D7MyNiv7cI?qzRpi0*ix=HA9XEaDFZU ziGT{hpj0b;jc8r%SbGh7tC$q67(GqV)pXyiqM&O*yX6*7v2tm9WeQ3^V)GOYwONQR_8 z5p;z$ytM%-0w4!{fV`*(N>%6qiyWKaOb6{(gSJ3H(*b!|1`>@Z$rW7))RKmXrRG3d zx#+> zHMKlNThLiw)p>f*v#bH1Z$|L-OIpJyaUBtQK4)q}J*{)PNd51&N?OAM}{% zYOG2N67!&2yJ6>rf&v6|hc+~PN{T8Wl}&02C}?2*KobTPr!b45p^2m-ATdv)L?;il zO9q?|VH;<#9h6g?S(OSdZXuD5eBh*BJUDbf@d~mJsz3*Pa}G*GgQFRA)iL<&3ees5 zkdbfDBv2|iZWK#ExA-WQ=v6}VGI%5ae9R&^RYIc)zB~ZRhc4_1$VXJb(1IGO05l$2 z4NAArK*-MvNJOfXz|{ok!U0IUqsby}q62L#M!M_=+L?o-f6yXjSdE*Clsps-LE}=e zIt8tXgmDU8L1LaRC_yMe+QqOIBxsRVVgcxMjDY-N4Natjtzd&AFpn0M!j8j$nVqSV zst3Eg2wcbOr0SvE=>#nbA$~7PEDr!*c?7x#4HV`G-zmX%6@a`7&f)NC2|Q*Rj}~sA zP({Q)v^$J!9Jry55)mj{9FW5e(sD&!00;9Pyz7GqI!N3jYy!KrRwo`c=_8y5o|ywx zT1deSDOz9~kTvz8ls#(W(h8LeFLbEXmV_l1&=3mf21-c603{j! z(vkqsSyi@%`rt_>(6uPwhM|t05hU9~54r#ykOi*!z>OeCD+b*B0~OH_^B_$+luPJ9 z$qjN)2IyEJNGwA5pppl1cMU`a62Gu42Qd^HA)uBG5luaa9#F9WZ)PXw=N5oQ@7!%>l1K1?h&xAgG}V8iay|J;Hua2>=e^WboYtpb8J! zm!JR!UAzJ@7||?(w}BuQz_LFyP!Pr=7PT4bg3~j222~fb2wX27svex;k=inti&a7H z0{8kr%UnS9G+Y3F&!3eEIH$v^0Yuiuc779l=napd0HEc@EVE z*u(<3eT{OA6m+7*$QVU5H$N#eC)K|owI~ssd?D+FA>IPDh`{zhTeax*4Ok8wYX~@e2cJWW;zV$k&C4&z$jnO*$%lpm!d}>3G3bE;(1Jg;2-M+03@m|b zFOUNe!*!tO1K0P7C7@9d=tMngRR!__!YWXEITO;50%aj^Nd)&Pw9%w!0BSLThrp|A zb)b#{Sp{`?N=;2Btc7B0YpZAot-9jTeW;;XQv=Qzprd$Fp=A=tAWb`PIAcwP@H7u| zjUjmC5ISK7y}1vvKp<5Uz8EJxwFINeg&)*usB5U7hZvZJs|63iKssZZdZ1138u_pa zS^>p}cq-?7Smg{UEI@4=a5)EW?ST9X6@lgjNa})|V+)FpVx2tjX>OoO9fUy@JG}D1 z5`8*(pv@9GMVi$`@RlsZOlXP)^)Zloh=dxAAQysD5ooIvQmRM|$%llgEv!g`*peEO z4|0_)%BAO!p^u`(bnrf1&@tfPX`RWWVI^RNlHx4E>A2q-SBZ>|p+KnLBqJ|z)cLrN%qNV~!Sb~lMgd745+HDLDLfiprs99TURShoiLNaqw z!Kqje-bIFHX>jsF_!YE{7RfQ0dFhx*2QeI2Pz0LtOm#|kDosmEEds4p2Q@HY^Jqy> zag;4#;L;j2#sV4}*8|53WK{sTEKg4@0mnj4Vo7RnNl_-Kw+&GQzA+OtniHKFs{>l! z1FPgfEn(1^zHsH>I0xMv4Ne5$WeQMzwk3M-1Ylnb-mI8s1zJa?q+MLA6Q7y~?&N}s zFGPqyNAsZ@!b&o8QbB8T!E=-F#S$=&T0_S`^~y4fGm|oNGD|9LLGzP(1&Kwec_n`N zDX6oyCGaE<8-q+m8M#AA0-1T~wxHFl@!-J{SeWB-DClqt#gdwu60} zYz@FG)gXuOz$dK`=kBD&g7yi4J2+};`P$mB{(HWDCg_x#lKcXYW8fi*-4Qy)wvI(b ziIt!>RY^W*niF!dj9zkLPL2j%7ecn?K%57^+6L}CTkw*pJh&5UYBcin^7BBWaJJCX z)S#1UGQ10LssXLe}406y(659>%}Jahuq zCqFr{B-OtFGXauX{u zb4zm_(^IVsbRegTcx0w$I3_2T79}QEf}06BVB=9j8gwlav{Zx0LM^w24=+NJ6gCIy zlz;}p6U#EwLF--g(o^%nMr7v02FJkzYI=}G390S~X;)BaYE&oZr+^%rn_66)n4W5- zgrq_tFTX^gxU`@kzo;ZNMNg>~(u)K)?ow@0CSJgkiO8l0r4|?D=M_T+XF&t(_?3el z1I~`{=3I#$IOL(-U6`lBL9yYPVw;D}#}FN`vnW8vZ|Ib0T47fTYEqUKfszNBdax^M zbs%{iloAk81#9&yU^P-r4XdyoxNHEs8`>>L^9v+Y_2R+8uylu5#{*6-&;$Wm#sf-& zpj!-}?!*zX2uH(;6I;-=)+wo=vRn@u+ch;B;Oju`l?qaeax;sIGxPHlQd09WQ&W_z zKzG}uf^KbvOyen(<|URTX6As-`2pRtnwgslS}zA1jYM%g%$e}HZcvT}^&-K^I4!dz zJijOhyuCUjvlu#o05%{qKM$PALG4ITx=hu9x)e2Cg4I|lC~0SED}j<_tqx`=z!D&i zfXFXODF#gyAqU|Kphf83j-}sNP-n7LNm6$iGhK+sez%n zPNHowWTXtVbs=95a_*&`i>rHlh<|*Lql;E5=%!QH`~`GRM0Bcdu}-FLVysSds&=tX zrgma1_$~!d=%6MGP&Y3F7QB%5P!41*IOvR4aPX$5LXX7+H7hiVG<7mSYs*0#Xk0t2`ah zPHIVNk(!zYL=;3OX9T4dm*$id+vcT~D>&uk=ci=km*%BtRHr1Cl;(!yXQ$?6R;3nM zA*A$5V1mVZ`AJ!NTWnwy$eqN!JunwV0lkye_Q zT#}ier=eL5(paH~V!WD~iiVPMp^~OvNo7H5Vn%9Wibh^(PL57>USe*ll@drxa)xdZ zB!rZ7QZkDRauO@OQ!B0D1}AD(7p0bz7Ud}<*6I}Jmlh?bT7mRc=z&Oh@amP6IHn{P zl%y7EXx3`h5^yWnSzx!O*T1iRK);3X14NNDgscFCr&qyqG&PgmT)=+{uC`C!rJ}2jK$PUCr{|<9fC2?~ zSb)8+qz!X5B1n=!j>i!aIf+TBIl3vSX^EvdB}$q)$#Cx=^h4A@+>oNA2??lVtN{dy z0k~lVgD6QSnQ#y#>m=a}A|04#A&!H@5>kjF3xk6P?ly4JR?^E&P038u&B;$pNiD)1 zvM^g9K~j=fl%5I-D^SWx)K*fkQ^-s!O3VcnD9N@-dWj_^MH))QMafE<)@AvbDGCOP zwzkP?YRQVWwu*)|HOMM-lJp>kf|Vmjd2z0ird~=?4n}@~Bz&-M@IBm!%dJBo-IPgDTT`6N{1#a;XnWE=jgZuo@kvQ8%$5Q!gb|Kd~TFKQpf+wWy#7RO#A-QlqVsPO@#1 zwo-I{X^B-Slrp z-!v=|ph`?hQzsow3Q~RPmLw+SfRaOot&%c&`bJg)&a|1y`FTp3I+?c7N{J~cMOMj~ zC6!7#PzPg)lCX>e|dSjV#S-6}`l)#0rfpO}&)- zyi`POny6WwnWmAbrk1Fenv)7@VH6{?qYYv;t3e(~vPCF}Hi!k6`stc_;0j37IxW9Q z1EeZNAu~@QNv|X^y;w6d4cz3gwY7x^=z*FZH8q)fnRzLx75-@&DVnynx`vw7(7;L7 zwpFqzDYCOENwHJXPSIAf(Jx7X@N`n30auWbpO>m+1rDCH#0n*=WNlk@n?!|-qSQ27 zrIOSfD|Ky%ZP6*QdPS*_dR1RRKV3&jNmE;0$qq>#WJ98z5^|8I<|bz5pqUC1D#=GS zn6NqJsY%6|B`}wk7NMJo>X4t9eywUxl`1zU)4uo6H8gtj5xxU7X1{h-tVH=q`rzQ9RJzof`csa8b;mVT2#1%EnP6_Syel9CE4DpWKw zH1!ZAFigC*R#Pu6F*65|l{BltO2JtI!P3-Lw<%BnH>f}Ker7CKf1Z>ftTHVMc&V z)=zuhPIs;g@Ct1D{tt1D~u3i8sGbh2#KeG?17 z=|kbrN(Fdn2g`jJMkv|&7o_F|gR3Ur!~z@rL_3A#{JfH)%%swi{GwuYoosNQ*heoU zGbhz2u`;ztBU7h3H#09PKR?&XP$xIB0>ZM?0kup)+A{O=tg>n~b#f5xg51P{VsJ(V zw}`=R2Up^GB{}*Sp2)RT56{fb1S?el=~PHcElE_UQSePHD5j?0tU0D|urE$634yd;kTZ9NURq`eG@&3A>r}%-%e+>zR>wfoDp^e}MNLg3)jmV7IJG1! zGqqd;;wT?TLQT<0*3?PWw8AHCp{c2p0V;JM(UYwSPE2{W)k^-szMw$M%gk1?%C5Ec z0S%>;6y@jW<$xlxSR)TyScT+kWN7N7tEu_urKje573b%HO1s3A6tD!iD+B34!pfIg GO=|!aO#4d! literal 0 HcmV?d00001 diff --git a/searx/static/themes/eelo/js/searx_src/00_requirejs_config.js b/searx/static/themes/eelo/js/searx_src/00_requirejs_config.js new file mode 100644 index 000000000..e7c2abdac --- /dev/null +++ b/searx/static/themes/eelo/js/searx_src/00_requirejs_config.js @@ -0,0 +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, + */ + +requirejs.config({ + baseUrl: './static/themes/oscar/js', + paths: { + app: '../app' + } +}); diff --git a/searx/static/themes/eelo/js/searx_src/autocompleter.js b/searx/static/themes/eelo/js/searx_src/autocompleter.js new file mode 100644 index 000000000..1a24aa9a0 --- /dev/null +++ b/searx/static/themes/eelo/js/searx_src/autocompleter.js @@ -0,0 +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, + */ + +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/eelo/js/searx_src/element_modifiers.js b/searx/static/themes/eelo/js/searx_src/element_modifiers.js new file mode 100644 index 000000000..f18e36f2d --- /dev/null +++ b/searx/static/themes/eelo/js/searx_src/element_modifiers.js @@ -0,0 +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, + */ + +$(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/eelo/js/searx_src/leaflet_map.js b/searx/static/themes/eelo/js/searx_src/leaflet_map.js new file mode 100644 index 000000000..44360433b --- /dev/null +++ b/searx/static/themes/eelo/js/searx_src/leaflet_map.js @@ -0,0 +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, + */ + +$(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 += "" + row + ""; + switch(row) { + case "phone": + case "fax": + newHtml += "" + element.tags[row] + ""; + break; + case "email": + newHtml += "" + element.tags[row] + ""; + break; + case "website": + case "url": + newHtml += "" + element.tags[row] + ""; + break; + case "wikidata": + newHtml += "" + element.tags[row] + ""; + break; + case "wikipedia": + if(element.tags[row].indexOf(":") != -1) { + newHtml += "" + element.tags[row] + ""; + break; + } + /* jshint ignore:start */ + default: + /* jshint ignore:end */ + newHtml += element.tags[row]; + break; + } + newHtml += ""; + } + } + $(result_table).html(newHtml); + $(result_table).removeClass('hidden'); + $(result_table_loadicon).addClass('hidden'); + } + }) + .fail(function() { + $(result_table_loadicon).html($(result_table_loadicon).html() + "

could not load data!

"); + }); + } + } + + // 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 © OpenStreetMap 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 © OpenStreetMap 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/eelo/less/eelo/base.less b/searx/static/themes/eelo/less/eelo/base.less new file mode 100644 index 000000000..df9008acd --- /dev/null +++ b/searx/static/themes/eelo/less/eelo/base.less @@ -0,0 +1,99 @@ + +html { + position: relative; + min-height: 100%; + color: @text-color; +} + +body { + /* Margin bottom by footer height */ + margin: 0px; + padding: 0px; + font-size: @fontsize_medium; + margin-bottom: 80px; + background-color: white; +} + +body, body * { + font-family: 'Roboto', "Cantarell", Helvetica, Arial, sans-serif; +} + +a { color: @link-color; } + + +input, select { + box-shadow: none !important; +} + + +.text-muted { + color: rgba(0, 0, 0, 0.4); +} + +.danger, .btn.danger { + color: @color_danger; +} + + +a, a:hover, a:focus, a:active, select:hover, select:focus, select:active { + outline: none; + text-decoration: none; +} + + +.btn { + text-transform: uppercase; + padding: 8px 14px; + background-color: transparent; + border: 2px solid rgba(0, 0, 0, .2); + border-radius: @corner-radius; + text-align: center; + font-size: @fontsize_medium; + font-weight: bold; + color: @color_base-text-hl; +} +.btn.btn-block, .block { + display: block; + width: 100%; + box-sizing: border-box; +} +.btn.primary, input.btn[type="submit"] { + // border-color: @color_accent; + color: @color_accent; +} +.btn.btn-flat { + border: none; + border-radius: 0; +} +.btn.btn-flat:hover { + background-color: transparent; + color: blue; +} + +// .btn.danger { +// border-color: @color_danger; +// } + + +.hidden, #icons { + display: none; +} + + +.custom-select { + appearance: none; + -webkit-appearance: none; + -moz-appearance: none; + + border: none; + + font-weight: normal; + background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAA8AAAAPCAQAAACR313BAAAABGdBTUEAALGPC/xhBQAAACBjSFJN +AAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAAAmJLR0QA/4ePzL8AAAAJcEhZ +cwAABFkAAARZAVnbJUkAAAAHdElNRQfgBxgLDwB20OFsAAAAbElEQVQY073OsQ3CMAAEwJMYwJGn +sAehpoXJItltBkmcdZBYgIIiQoLglnz3ui+eP+bk5uneteTMZJa6OJuIqvYzSJoqwqBq8gdmTTW8 +6/dghxAUq4xsVYT9laBYXCw93Aajh7GPEF23t4fkBYevGFTANkPRAAAAJXRFWHRkYXRlOmNyZWF0 +ZQAyMDE2LTA3LTI0VDExOjU1OjU4KzAyOjAwRFqFOQAAACV0RVh0ZGF0ZTptb2RpZnkAMjAxNi0w +Ny0yNFQxMToxNTowMCswMjowMP7RDgQAAAAZdEVYdFNvZnR3YXJlAHd3dy5pbmtzY2FwZS5vcmeb +7jwaAAAAAElFTkSuQmCC) 96% no-repeat; +} \ No newline at end of file diff --git a/searx/static/themes/eelo/less/eelo/eelo.less b/searx/static/themes/eelo/less/eelo/eelo.less new file mode 100644 index 000000000..c5a08f3ba --- /dev/null +++ b/searx/static/themes/eelo/less/eelo/eelo.less @@ -0,0 +1,8 @@ +@import "variables.less"; +@import "layout.less"; +@import "base.less"; +@import "navbar.less"; +@import "footer.less"; +@import "search.less"; +@import "results.less"; +@import "preferences.less"; \ No newline at end of file diff --git a/searx/static/themes/eelo/less/eelo/footer.less b/searx/static/themes/eelo/less/eelo/footer.less new file mode 100644 index 000000000..e0c1f23d5 --- /dev/null +++ b/searx/static/themes/eelo/less/eelo/footer.less @@ -0,0 +1,9 @@ +footer { + position: absolute; + bottom: 0; + width: 100%; + height: auto; + text-align: center; + color: #c1c1c1; + padding-bottom: 16px; +} \ No newline at end of file diff --git a/searx/static/themes/eelo/less/eelo/layout.less b/searx/static/themes/eelo/less/eelo/layout.less new file mode 100644 index 000000000..52e7e5491 --- /dev/null +++ b/searx/static/themes/eelo/less/eelo/layout.less @@ -0,0 +1,46 @@ + +#pagination { + display: flex; + justify-content: space-between; +} + +.container { + max-width: 1100px; + padding-left: @spacing_large; + padding-right: @spacing_large; + + display: flex; + justify-content: space-between; + + >:first-child { + max-width: 600px; + width: 600px; + } + >:last-child:not(:first-child) { + max-width: 400px; + width: 400px; + } +} + +#index { + max-width: 600px; + margin: auto; + + img { + width: 300px; + display: block; + margin: auto; + margin-top: 64px; + margin-bottom: 64px; + } +} + + +.inline { + display: flex; + flex-direction: row; +} + +.rtl { + flex-direction: row-reverse; +} \ No newline at end of file diff --git a/searx/static/themes/eelo/less/eelo/navbar.less b/searx/static/themes/eelo/less/eelo/navbar.less new file mode 100644 index 000000000..8f96df44d --- /dev/null +++ b/searx/static/themes/eelo/less/eelo/navbar.less @@ -0,0 +1,25 @@ +nav { + height: 48px; + display: flex; + align-items: center; + justify-content: space-between; + padding-left: 16px; + padding-right: 16px; + + text-transform: capitalize; + + margin-bottom: 24px; +} +nav a { + color: #868686; + transition: color .2s ease-in-out; + text-decoration: none; +} +nav a:hover { + text-decoration: none; + color: @color_accent; +} + +#eelo_links > * { + margin-right: 32px; +} \ No newline at end of file diff --git a/searx/static/themes/eelo/less/eelo/preferences.less b/searx/static/themes/eelo/less/eelo/preferences.less new file mode 100644 index 000000000..a4248e2b8 --- /dev/null +++ b/searx/static/themes/eelo/less/eelo/preferences.less @@ -0,0 +1,85 @@ +#preferences { + h1 { + margin-bottom: 32px; + } + + .nav-tabs { + margin-bottom: 32px; + } + + .options { + margin-top: 32px; + } + + label { + color: @text-color-hl; + } + + div.row.form-group { + margin-bottom: 24px; + } + + div.tab-content { + margin-bottom: 48px; + } + + #notice { + margin-bottom: 32px; + } + + .tab-content { + display: none; + } + + input.tab-radio[type="radio"] { + display: none; + } + input.tab-radio[type="radio"]:checked + .tab-content { + display: block; + } + + .preference { + margin-bottom: @spacing_large; + } + .preference.inline { + justify-content: space-between; + } + + #tabs { + margin-bottom: @spacing_xx-large; + } + #tabs > * { + margin-right: @spacing_xx-large; + } + + #controls { + display: flex; + flex-direction: column-reverse; + justify-content: flex-end; + } + + + section { + margin-bottom: @spacing_xx-large; + } + + ul > li { + margin-bottom: @spacing_medium; + } + + + fieldset { + border: none; + padding: 0px; + } + + #cookies_list { + } + #cookies_list .cookie-value { + word-wrap: break-word; + } + + #action_buttons { margin-top: @spacing_x-huge; } + #action_buttons > div { margin-bottom: @spacing_x-large; } + #action_buttons > div > * { margin-bottom: @spacing_medium; } +} \ No newline at end of file diff --git a/searx/static/themes/eelo/less/eelo/results.less b/searx/static/themes/eelo/less/eelo/results.less new file mode 100644 index 000000000..8a8e01959 --- /dev/null +++ b/searx/static/themes/eelo/less/eelo/results.less @@ -0,0 +1,68 @@ +.result.result-default { + margin-bottom: 32px; +} + +.result_header { + margin-bottom: 8px; + + a { + + } + + .favicon { + width: 16px; + height: 16px; + } +} +.result-content { + margin-bottom: 2px; +} + +.external-link { + color: #39a441; +} + +.infobox { + + border-radius: @corner-radius; + + .panel-heading { + background-color: transparent; + border: none; + padding-top: 16px; + padding-bottom: 0px; + } + + img { + margin-top: 18px; + width: 100%; + } + + .panel-title { + font-size: 22px; + color: @text-color-hl; + } +} + +.extras { + margin-top: 48px; +} + + +.result-images { + display: inline; +} + + +#default_images_container { + display: flex; + flex-wrap: wrap; + align-items: flex-end; +} +#default_images_container > .result.result-images { + flex: 20%; +} + +.img-thumbnail { + border: none; +} diff --git a/searx/static/themes/eelo/less/eelo/search.less b/searx/static/themes/eelo/less/eelo/search.less new file mode 100644 index 000000000..8a390437d --- /dev/null +++ b/searx/static/themes/eelo/less/eelo/search.less @@ -0,0 +1,80 @@ +#q { + border: 2px solid rgba(0, 0, 0, 0.3); + border-radius: 50px; + + height: 42px; + line-height: 42px; + width: 100%; + padding-left: @spacing_large; + font-size: @fontsize_medium; +} +#search_input_container { + position: relative; + display: flex; + align-items: center; + + button[type="submit"] { + position: absolute; + right: 10px; + height: 24px; + border: none; + background: none; + } + + .icon { + width: 20px; + } +} + +#search_params { + display: flex; + justify-content: space-between; + font-size: @fontsize_x-small; + margin-bottom: @spacing_large; + margin-top: @spacing_large; +} + +.search_categories, #categories { + text-transform: capitalize; + display: flex; + flex-wrap: wrap; + flex-flow: row wrap; + align-content: stretch; + align-items: center; + + label { + flex-grow: 1; + flex-basis: auto; + font-size: @fontsize_small; + font-weight: normal; + margin-right: @spacing_large; + } + + input[type="checkbox"]:checked + label { + color: @color_accent; + font-weight: bold; + } +} + + +// inline search form +#logo_link { + position: absolute; + left: 6px; +} +#logo, #logo_link { + height: 32px; +} +.inline-search #q { + padding-left: 56px; +} + + +#main-logo{ + margin-top: 12vh; + margin-bottom: 25px; +} +#main-logo > img { + max-width: 250px; + width: 80%; +} \ No newline at end of file diff --git a/searx/static/themes/eelo/less/eelo/variables.less b/searx/static/themes/eelo/less/eelo/variables.less new file mode 100644 index 000000000..1aeaaa35a --- /dev/null +++ b/searx/static/themes/eelo/less/eelo/variables.less @@ -0,0 +1,32 @@ +@black: #020f16; +@text-color: #60686f; +@text-color-hl: #5c6469; +@link-color: #3889f4; + +@color_accent: #5068dd; +@color_primary: blue; +@color_base: blue; +@color_base-text-hl: #5c6469; + +@color_danger: #e06572; + +@corner-radius: 8px; + + +@fontsize_xx-small: 8px; +@fontsize_x-small: 11px; +@fontsize_small: 14px; +@fontsize_medium: 16px; +@fontsize_large: 18px; +@fontsize_x-large: 22px; +@fontsize_xx-large: 22px; + +@spacing_xx-small: 2px; +@spacing_x-small: 4px; +@spacing_small: 6px; +@spacing_medium: 8px; +@spacing_large: 16px; +@spacing_x-large: 24px; +@spacing_xx-large: 32px; +@spacing_huge: 38px; +@spacing_x-huge: 48px; diff --git a/searx/static/themes/eelo/package.json b/searx/static/themes/eelo/package.json new file mode 100644 index 000000000..7eae9df2b --- /dev/null +++ b/searx/static/themes/eelo/package.json @@ -0,0 +1,16 @@ +{ + "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" + }, + + "scripts": { + "build": "npm install && grunt", + "start": "grunt watch", + "test": "grunt" + } +} diff --git a/searx/templates/eelo/404.html b/searx/templates/eelo/404.html new file mode 100644 index 000000000..afa42a8f3 --- /dev/null +++ b/searx/templates/eelo/404.html @@ -0,0 +1,9 @@ +{% extends "eelo/base.html" %} +{% block content %} +
+

{{ _('Page not found') }}

+ {% autoescape false %} +

{{ _('Go to %(search_page)s.', search_page=unicode('{}').format(url_for('index'), _('search page'))) }}

+ {% endautoescape %} +
+{% endblock %} diff --git a/searx/templates/eelo/about.html b/searx/templates/eelo/about.html new file mode 100644 index 000000000..b8012e128 --- /dev/null +++ b/searx/templates/eelo/about.html @@ -0,0 +1,5 @@ +{% extends "eelo/base.html" %} +{% block title %}{{ _('about') }} - {% endblock %} +{% block content %} +{% include '__common__/about.html' %} +{% endblock %} diff --git a/searx/templates/eelo/advanced.html b/searx/templates/eelo/advanced.html new file mode 100644 index 000000000..880542214 --- /dev/null +++ b/searx/templates/eelo/advanced.html @@ -0,0 +1,16 @@ + + +
+ {% include 'eelo/categories.html' %} +
+
+ {% include 'eelo/time-range.html' %} +
+
+ {% include 'eelo/languages.html' %} +
+
+
diff --git a/searx/templates/eelo/base.html b/searx/templates/eelo/base.html new file mode 100644 index 000000000..66c020a25 --- /dev/null +++ b/searx/templates/eelo/base.html @@ -0,0 +1,116 @@ +{% from 'eelo/macros.html' import icon %} + + + + + + + + + + + {% block meta %}{% endblock %} + {% block title %}{% endblock %}{{ instance_name }} + + + + + + + {% for css in styles %} + + {% endfor %} + + + + + + + {% block styles %} + {% endblock %} + {% block head %} + {% endblock %} + + + + + + + + + + {% include 'eelo/icons.html' %} + {% include 'eelo/navbar.html' %} + + {% set inline_search_form = true %} +
+ {% if errors %} + + {% endif %} + + {% block site_alert_error %} + {% endblock %} + {% block site_alert_warning %} + {% endblock %} + {% block site_alert_info %} + {% endblock %} + {% block site_alert_success %} + {% endblock %} + + {% block content %} + {% endblock %} + +
+ + + + + {% if autocomplete %}{% endif %} + + + {% for script in scripts %} + + {% endfor %} + + + diff --git a/searx/templates/eelo/categories.html b/searx/templates/eelo/categories.html new file mode 100644 index 000000000..2cace863b --- /dev/null +++ b/searx/templates/eelo/categories.html @@ -0,0 +1,6 @@ +
+{% for category in categories %} + + +{% endfor %} +
diff --git a/searx/templates/eelo/icons.html b/searx/templates/eelo/icons.html new file mode 100644 index 000000000..5e936c995 --- /dev/null +++ b/searx/templates/eelo/icons.html @@ -0,0 +1,7 @@ + + + + + + + \ No newline at end of file diff --git a/searx/templates/eelo/index.html b/searx/templates/eelo/index.html new file mode 100644 index 000000000..ecd030162 --- /dev/null +++ b/searx/templates/eelo/index.html @@ -0,0 +1,7 @@ +{% extends "eelo/base.html" %} +{% block content %} +
+ searx logo + {% include 'eelo/search.html' %} +
+{% endblock %} diff --git a/searx/templates/eelo/infobox.html b/searx/templates/eelo/infobox.html new file mode 100644 index 000000000..1b18a81c4 --- /dev/null +++ b/searx/templates/eelo/infobox.html @@ -0,0 +1,36 @@ +{% from 'eelo/macros.html' import result_link with context %} +
+
+

{{ infobox.infobox }}

+ {{infobox.engine}} +
+ {% if infobox.img_src %}{{ infobox.infobox }}{% endif %} +
+ {% if infobox.content %}

{{ infobox.content }}

{% endif %} + + {% if infobox.attributes %} + + {% for attribute in infobox.attributes %} + + + {% if attribute.image %} + + {% else %} + + {% endif %} + + {% endfor %} +
{{ attribute.label }}{{ attribute.image.alt }}{{ attribute.value }}
+ {% endif %} + + {% if infobox.urls %} +
+ + {% for url in infobox.urls %} +

{{ result_link(url.url, url.title) }}

+ {% endfor %} +
+
+ {% endif %} +
+
diff --git a/searx/templates/eelo/languages.html b/searx/templates/eelo/languages.html new file mode 100644 index 000000000..649e1e06a --- /dev/null +++ b/searx/templates/eelo/languages.html @@ -0,0 +1,11 @@ +{% if preferences %} + +{% endif %} + {% for lang_id, lang_name, country_name, english_name in language_codes | sort(attribute=1) %} + + {% endfor %} + diff --git a/searx/templates/eelo/macros.html b/searx/templates/eelo/macros.html new file mode 100644 index 000000000..eaf6344ad --- /dev/null +++ b/searx/templates/eelo/macros.html @@ -0,0 +1,85 @@ + +{% macro icon(action) -%} + + + +{%- endmacro %} + + + +{% macro search_bar(value="", inline=false) -%} + +{%- endmacro %} + + + +{% macro draw_favicon(favicon) -%} + {{ favicon }} +{%- endmacro %} + +{%- macro result_link(url, title, classes='') -%} +{{ title }} +{%- endmacro -%} + + +{% macro result_header(result, favicons) -%} +

{% if result.engine~".png" in favicons %}{{ draw_favicon(result.engine) }} {% endif %}{{ result_link(result.url, result.title|safe) }}

+{%- endmacro %} + + +{% macro result_sub_header(result) -%} + {% if result.publishedDate %}{% endif %} + {% if result.magnetlink %} • {{ result_link(result.magnetlink, icon('magnet') + _('magnet link'), "magnetlink") }}{% endif %} + {% if result.torrentfile %} • {{ result_link(result.torrentfile, icon('download-alt') + _('torrent file'), "torrentfile") }}{% endif %} +{%- endmacro %} + + +{% macro result_footer(result) -%} + + +{%- endmacro %} + + +{% macro result_footer_rtl(result) -%} +
+ {% for engine in result.engines %} + {{ engine }} + {% endfor %} + {{ result_link("https://web.archive.org/web/" + result.url, icon('link') + _('cached'), "text-info") }} + {% if proxify %} + {{ result_link(proxify(result.url), icon('sort') + _('proxied'), "text-info") }} + {% endif %} + +{%- endmacro %} + +{% macro checkbox_toggle(id, blocked) -%} + + + + +{%- endmacro %} + +{% macro support_toggle(supports) -%} + {% if supports %} + + {{ _("supported") }} + + {% else %} + + {{ _("not supported") }} + + {% endif %} +{%- endmacro %} diff --git a/searx/templates/eelo/messages/first_time.html b/searx/templates/eelo/messages/first_time.html new file mode 100644 index 000000000..38db62bdf --- /dev/null +++ b/searx/templates/eelo/messages/first_time.html @@ -0,0 +1,8 @@ + diff --git a/searx/templates/eelo/messages/no_cookies.html b/searx/templates/eelo/messages/no_cookies.html new file mode 100644 index 000000000..3058e0147 --- /dev/null +++ b/searx/templates/eelo/messages/no_cookies.html @@ -0,0 +1,5 @@ +{% from 'eelo/macros.html' import icon %} + diff --git a/searx/templates/eelo/messages/no_data_available.html b/searx/templates/eelo/messages/no_data_available.html new file mode 100644 index 000000000..ec980cd99 --- /dev/null +++ b/searx/templates/eelo/messages/no_data_available.html @@ -0,0 +1,5 @@ +{% from 'eelo/macros.html' import icon %} + diff --git a/searx/templates/eelo/messages/no_results.html b/searx/templates/eelo/messages/no_results.html new file mode 100644 index 000000000..23b84d014 --- /dev/null +++ b/searx/templates/eelo/messages/no_results.html @@ -0,0 +1,17 @@ +{% from 'eelo/macros.html' import icon %} +{% if unresponsive_engines %} + +{% else %} + +{% endif %} diff --git a/searx/templates/eelo/messages/save_settings_successfull.html b/searx/templates/eelo/messages/save_settings_successfull.html new file mode 100644 index 000000000..4b0420cca --- /dev/null +++ b/searx/templates/eelo/messages/save_settings_successfull.html @@ -0,0 +1,9 @@ +{% from 'eelo/macros.html' import icon %} + diff --git a/searx/templates/eelo/messages/unknow_error.html b/searx/templates/eelo/messages/unknow_error.html new file mode 100644 index 000000000..f03d4c431 --- /dev/null +++ b/searx/templates/eelo/messages/unknow_error.html @@ -0,0 +1,9 @@ +{% from 'eelo/macros.html' import icon %} + diff --git a/searx/templates/eelo/navbar.html b/searx/templates/eelo/navbar.html new file mode 100644 index 000000000..ce8230a81 --- /dev/null +++ b/searx/templates/eelo/navbar.html @@ -0,0 +1,11 @@ + diff --git a/searx/templates/eelo/preferences.html b/searx/templates/eelo/preferences.html new file mode 100644 index 000000000..e741e01db --- /dev/null +++ b/searx/templates/eelo/preferences.html @@ -0,0 +1,221 @@ +{% from 'eelo/macros.html' import checkbox_toggle, support_toggle %} +{% extends "eelo/base.html" %} +{% block title %}{{ _('preferences') }} - {% endblock %} +{% block content %} + +{% macro preferences_item(info, label, rtl) -%} +
+
+ +
{{ info }}
+
+
+ {{ caller() }} +
+
+{% endmacro -%} + + +
+

{{ _('Preferences') }}

+
+ +
+ +
+ +
+
+ {% set language_label = _('Search language') %} + {% set language_info = _('What language do you prefer for search?') %} + {% call preferences_item(language_info, language_label, rtl) %} + {% include 'eelo/languages.html' %} + {% endcall %} + + {% set locale_label = _('Interface language') %} + {% set locale_info = _('Change the language of the layout') %} + {% call preferences_item(locale_info, locale_label, rtl) %} + + {% endcall %} + + {% set autocomplete_label = _('Autocomplete') %} + {% set autocomplete_info = _('Find stuff as you type') %} + {% call preferences_item(autocomplete_info, autocomplete_label, rtl) %} + + {% endcall %} + + {% set image_proxy_label = _('Image proxy') %} + {% set image_proxy_info = _('Proxying image results through searx') %} + {% call preferences_item(image_proxy_info, image_proxy_label, rtl) %} + + {% endcall %} + + {% set safesearch_label = _('SafeSearch') %} + {% set safesearch_info = _('Filter content') %} + {% call preferences_item(safesearch_info, safesearch_label, rtl) %} + + {% endcall %} + + {% set label = _('Results on new tabs') %} + {% set info = _('Open result links on new browser tabs') %} + {% call preferences_item(info, label, rtl) %} + + {% endcall %} +
+
+ + + +
+ {% macro support_text(supports, text) -%} + {% if not supports %} + {{ caller() }} + {% endif %} + {%- endmacro %} + + {% for categ in all_categories %} + +
+

{{categ}}

+ {% for search_engine in engines_by_category[categ] %} + {% if not search_engine.private %} +
+
+ {{ checkbox_toggle('engine_' + search_engine.name | replace(' ', '_') + '__' + categ | replace(' ', '_'), not ((search_engine.name, categ) in disabled_engines)) }} + + {{ search_engine.name }} {{_("Shortcuts")}} {{ shortcuts[search_engine.name] }} + +
+ {% call support_text(stats[search_engine.name].supports_selected_language) %} {{locales[current_locale]}} {{_("not supported")}} {% endcall %} + {% call support_text(search_engine.safesearch == True) %}{{_("No safe search")}}{% endcall %} + {% call support_text(not(stats[search_engine.name]['warn_time'] or stats[search_engine.name]['warn_timeout'])) %} + {{_("Slow")}} + {% endcall %} +
+
+
+ {% endif %} + {% endfor %} +
+ {% endfor %} +
+ + + +
+
+

{{_("Plugins")}}

+
+
    + {% for plugin in plugins %} +
  • +
    + {{ checkbox_toggle('plugin_' + plugin.id, plugin.id not in allowed_plugins) }} + {{ _(plugin.name) }} +
    +

    {{ _(plugin.description) }}

    +
  • + {% endfor %} +
+
+
+ + {% if answerers %} +
+

{{ _('Answerers') }}

+

{{ _('This is the list of searx\'s instant answering modules.') }}

+
    + {% for answerer in answerers %} +
  • +

    {{ answerer.info.name }} {{ _('Keywords') }}: {{ answerer.keywords|join(', ') }}

    +

    {{ answerer.info.description }}

    +
    + {{ _('Examples') }} +

    {{ answerer.info.examples|join(', ') }}

    +
    +
  • + {% endfor %} +
+
+ {% endif %} + +
+

{{ _('Cookies') }}

+

+ {{ _('This is the list of cookies and their values searx is storing on your computer.') }}
+ {{ _('With that list, you can assess searx transparency.') }}
+

+ {% if cookies %} +
    + {% for cookie in cookies %} +
  • + {{ cookie }}: {{ cookies[cookie] }} +
  • + {% endfor %} +
+ {% else %} + {% include 'eelo/messages/no_cookies.html' %} + {% endif %} +
+
+ + +
+ + + +
+ + + +
+ + +
+
+

{{ _('These settings are stored in your cookies, this allows us not to store this data about you.') }} +
+ {{ _("These cookies serve your sole convenience, we don't use these cookies to track you.") }} +

+
+ +
+

{{ _('Search URL of the currently saved preferences') }} ({{ _('Note: specifying custom settings in the search URL can reduce privacy by leaking data to the clicked result sites.') }}):

+ +
+ +
+ + {{ _('Reset defaults') }} +
+
+
+{% endblock %} \ No newline at end of file diff --git a/searx/templates/eelo/result_templates/code.html b/searx/templates/eelo/result_templates/code.html new file mode 100644 index 000000000..0c04c65bf --- /dev/null +++ b/searx/templates/eelo/result_templates/code.html @@ -0,0 +1,18 @@ +{% from 'eelo/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 %}

{{ result.content|safe }}

{% endif %} + +{% if result.repository %}

{{ icon('file') }} {{ result.repository }}

{% endif %} + +
+{{ result.codelines|code_highlighter(result.code_language)|safe }} +
+ +{% if rtl %} +{{ result_footer_rtl(result) }} +{% else %} +{{ result_footer(result) }} +{% endif %} diff --git a/searx/templates/eelo/result_templates/default.html b/searx/templates/eelo/result_templates/default.html new file mode 100644 index 000000000..a783a0cc7 --- /dev/null +++ b/searx/templates/eelo/result_templates/default.html @@ -0,0 +1,31 @@ +{% from 'eelo/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 %} + +{% endif %} + +{% if result.embedded %} +
+ {{ result.embedded|safe }} +
+{% endif %} + +{% if result.img_src %} +
+
+{{ result.title|striptags }} +{% if result.content %}

{{ result.content|safe }}

{% endif %} +
+
+{% else %} +{% if result.content %}

{{ result.content|safe }}

{% endif %} +{% endif %} + +{% if rtl %} +{{ result_footer_rtl(result) }} +{% else %} +{{ result_footer(result) }} +{% endif %} diff --git a/searx/templates/eelo/result_templates/images.html b/searx/templates/eelo/result_templates/images.html new file mode 100644 index 000000000..52d77963c --- /dev/null +++ b/searx/templates/eelo/result_templates/images.html @@ -0,0 +1,39 @@ +{% from 'eelo/macros.html' import draw_favicon %} + + + {{ result.title|striptags }} + + + diff --git a/searx/templates/eelo/result_templates/map.html b/searx/templates/eelo/result_templates/map.html new file mode 100644 index 000000000..e5eb67e7b --- /dev/null +++ b/searx/templates/eelo/result_templates/map.html @@ -0,0 +1,72 @@ +{% from 'eelo/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 %} + +{% endif %} + +{% if result.osm and (result.osm.type and result.osm.id) %} + +{% endif %} + +{# {% if (result.latitude and result.longitude) %} + +{% endif %} #} + +
+ +{% if result.address %} +

+ {% if result.address.name %} + {{ result.address.name }}
+ {% endif %} + {% if result.address.road %} + + {% if result.address.house_number %}{{ result.address.house_number }}, {% endif %} + {{ result.address.road }} +
+ {% endif %} + {% if result.address.locality %} + {{ result.address.locality }} + {% if result.address.postcode %}, {{ result.address.postcode }}{% endif %} +
+ {% endif %} + {% if result.address.country %} + {{ result.address.country }} + {% endif %} +

+{% endif %} + +{% if result.osm and (result.osm.type and result.osm.id) %} +
+
Loading ...
+ + + +
+{% endif %} + +{# {% if (result.latitude and result.longitude) %} +
+ Longitude: {{ result.longitude }}
+ Latitude: {{ result.latitude }} +
+{% endif %} #} + +{% if result.content %}

{{ result.content|safe }}

{% endif %} + +
+ +{% if (result.latitude and result.longitude) or result.boundingbox %} +
+
+
+{% endif %} + +{% if rtl %} +{{ result_footer_rtl(result) }} +{% else %} +{{ result_footer(result) }} +{% endif %} diff --git a/searx/templates/eelo/result_templates/torrent.html b/searx/templates/eelo/result_templates/torrent.html new file mode 100644 index 000000000..61d158f12 --- /dev/null +++ b/searx/templates/eelo/result_templates/torrent.html @@ -0,0 +1,25 @@ +{% from 'eelo/macros.html' import result_header, result_sub_header, result_footer, result_footer_rtl, icon %} + +{{ result_header(result, favicons) }} +{{ result_sub_header(result) }} + +

{{ icon('transfer') }} {{ _('Seeder') }} {{ result.seed }} • {{ _('Leecher') }} {{ result.leech }} +{% if result.filesize %}
{{ icon('floppy-disk') }} {{ _('Filesize') }} + + {% if result.filesize < 1024 %}{{ result.filesize }} {{ _('Bytes') }} + {% elif result.filesize < 1024*1024 %}{{ '{0:0.2f}'.format(result.filesize/1024) }} {{ _('kiB') }} + {% elif result.filesize < 1024*1024*1024 %}{{ '{0:0.2f}'.format(result.filesize/1024/1024) }} {{ _('MiB') }} + {% elif result.filesize < 1024*1024*1024*1024 %}{{ '{0:0.2f}'.format(result.filesize/1024/1024/1024) }} {{ _('GiB') }} + {% else %}{{ '{0:0.2f}'.format(result.filesize/1024/1024/1024/1024) }} {{ _('TiB') }}{% endif %} + {% endif %} +{% if result.files %}
{{ icon('file') }} {{ _('Number of Files') }} {{ result.files }}{% endif %} + +{% if result.content %}
{{ result.content|safe }}{% endif %} + +

+ +{% if rtl %} +{{ result_footer_rtl(result) }} +{% else %} +{{ result_footer(result) }} +{% endif %} diff --git a/searx/templates/eelo/result_templates/videos.html b/searx/templates/eelo/result_templates/videos.html new file mode 100644 index 000000000..4fe7ce60f --- /dev/null +++ b/searx/templates/eelo/result_templates/videos.html @@ -0,0 +1,27 @@ +{% from 'eelo/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 %} + +{% endif %} + +{% if result.embedded %} +
+ {{ result.embedded|safe }} +
+{% endif %} + +
+
+ {{ result.title|striptags }} {{ result.engine }} + {% if result.content %}

{{ result.content|safe }}

{% endif %} +
+
+ +{% if rtl %} +{{ result_footer_rtl(result) }} +{% else %} +{{ result_footer(result) }} +{% endif %} diff --git a/searx/templates/eelo/results.html b/searx/templates/eelo/results.html new file mode 100644 index 000000000..fa7f944aa --- /dev/null +++ b/searx/templates/eelo/results.html @@ -0,0 +1,115 @@ +{% extends "eelo/base.html" %} +{% macro search_form_attrs(pageno) -%} + {% for category in selected_categories %}{% endfor %} + + + + +{%- endmacro %} +{%- macro search_url() %}{{ base_url }}?q={{ q|urlencode }}{% if selected_categories %}&categories={{ selected_categories|join(",") | replace(' ','+') }}{% endif %}{% if pageno > 1 %}&pageno={{ pageno }}{% endif %}{% if time_range %}&time_range={{ time_range }}{% endif %}{% if current_language != 'all' %}&language={{ current_language }}{% endif %}{% endmacro -%} + +{% macro put_results(results_slice) -%} +{%- for result in results_slice %} +
+ {% set index = loop.index %} + {% if result.template %} + {% include get_result_template('eelo', result['template']) %} + {% else %} + {% include 'eelo/result_templates/default.html' %} + {% endif %} +
+{%- endfor %} +{%- endmacro %} + +{% block title %}{{ q|e }} - {% endblock %} +{% block meta %}{% endblock %} +{% block content %} + +
+
+ {% include 'eelo/search_full.html' %} +
+
+ +
+
+ + {% if corrections %} +
+ {{ _('Try searching for:') }} + {% for correction in corrections %} + + {% endfor %} +
+ {% endif %} + + + {% if answers %} + {% for answer in answers %} +
+ {{ answer }} +
+ {% endfor %} + {% endif %} + + + {% if not results and not answers %} + {% include 'eelo/messages/no_results.html' %} + {% else %} + + {{ put_results(results[:3]) }} + + {% if image_results %} +

images

+
+ {{ put_results(image_results) }} +
+ {% endif %} + + {{ put_results(results[4:]) }} + + {% if paging %} + + {% endif %} + + {% endif %} + +
+ +
+ {% if infoboxes %} + {% for infobox in infoboxes %} + {% include 'eelo/infobox.html' %} + {% endfor %} + {% endif %} + + {% if suggestions %} +
+
+

{{ _('Suggestions') }}

+
+
+ {% for suggestion in suggestions %} + + {% endfor %} +
+
+ {% endif %} +
+
+{% endblock %} diff --git a/searx/templates/eelo/search.html b/searx/templates/eelo/search.html new file mode 100644 index 000000000..bab6075e8 --- /dev/null +++ b/searx/templates/eelo/search.html @@ -0,0 +1,3 @@ +{% from 'eelo/macros.html' import search_bar %} + +{% call search_bar(q) %}{% endcall %} \ No newline at end of file diff --git a/searx/templates/eelo/search_full.html b/searx/templates/eelo/search_full.html new file mode 100644 index 000000000..5e1d677d2 --- /dev/null +++ b/searx/templates/eelo/search_full.html @@ -0,0 +1,11 @@ +{% from 'eelo/macros.html' import search_bar %} + +{% call search_bar(q, true) %} +
+ {% include 'eelo/categories.html' %} + + {% include 'eelo/time-range.html' %} + {% include 'eelo/languages.html' %} + +
+{% endcall %} diff --git a/searx/templates/eelo/stats.html b/searx/templates/eelo/stats.html new file mode 100644 index 000000000..dc904d6c3 --- /dev/null +++ b/searx/templates/eelo/stats.html @@ -0,0 +1,33 @@ +{% extends "eelo/base.html" %} +{% block title %}{{ _('stats') }} - {% endblock %} +{% block content %} +
+

{{ _('Engine stats') }}

+
+ {% for stat_name,stat_category in stats %} +
+

{{ stat_name }}

+
+ {% for engine in stat_category %} +
+
{{ engine.name }}
+
+
+
+ {{ '%.02f'|format(engine.avg) }} +
+
+
+
+ {% endfor %} + {% if not stat_category %} +
+ {% include 'eelo/messages/no_data_available.html' %} +
+ {% endif %} +
+
+ {% endfor %} +
+
+{% endblock %} diff --git a/searx/templates/eelo/time-range.html b/searx/templates/eelo/time-range.html new file mode 100644 index 000000000..d5efe9182 --- /dev/null +++ b/searx/templates/eelo/time-range.html @@ -0,0 +1,17 @@ + diff --git a/searx/webapp.py b/searx/webapp.py index 63f22667e..a3e500310 100644 --- a/searx/webapp.py +++ b/searx/webapp.py @@ -16,7 +16,6 @@ along with searx. If not, see < http://www.gnu.org/licenses/ >. (C) 2013- by Adam Tauber, ''' -from searx.results import ResultContainer if __name__ == '__main__': from sys import path @@ -75,6 +74,7 @@ from searx.preferences import Preferences, ValidationException, LANGUAGE_CODES from searx.answerers import answerers from searx.url_utils import urlencode, urlparse, urljoin from searx.utils import new_hmac +from searx.results import ResultContainer # check if the pyopenssl package is installed. # It is needed for SSL connection without trouble, see #298 @@ -480,7 +480,6 @@ def index(): # search search_query = None result_container = None - results_images = [] try: search_query = get_search_query_from_webapp(request.preferences, request.form) @@ -498,6 +497,7 @@ def index(): return index_error(), 500 # serarch images + results_images = [] if search_query.categories == ['general'] and search_query.pageno == 1: search_images_engines = [] disabled_engines = request.preferences.engines.get_disabled() @@ -508,11 +508,8 @@ def index(): search_query.safesearch, 1, search_query.time_range) results_images_big = SearchWithPlugins(images_search_query, request.user_plugins, request).search().get_ordered_results() - to_ten = 0 - for image in results_images_big: - to_ten+=1 - if to_ten > 10: - break + + for image in results_images_big[:min(5, len(results_images_big))]: results_images.append(image) # results @@ -528,6 +525,46 @@ def index(): config_results(results, search_query.query) config_results(results_images, search_query.query) + output_format = request.form.get('format', 'html') + if output_format not in ['html', 'csv', 'json', 'rss']: + output_format = 'html' + + if output_format == 'json': + return Response(json.dumps({'query': search_query.query.decode('utf-8'), + 'number_of_results': number_of_results, + 'results': results, + 'answers': list(result_container.answers), + 'corrections': list(result_container.corrections), + 'infoboxes': result_container.infoboxes, + 'suggestions': list(result_container.suggestions), + 'unresponsive_engines': list(result_container.unresponsive_engines)}, + default=lambda item: list(item) if isinstance(item, set) else item), + mimetype='application/json') + elif output_format == 'csv': + csv = UnicodeWriter(StringIO()) + keys = ('title', 'url', 'content', 'host', 'engine', 'score') + csv.writerow(keys) + for row in results: + row['host'] = row['parsed_url'].netloc + csv.writerow([row.get(key, '') for key in keys]) + csv.stream.seek(0) + response = Response(csv.stream.read(), mimetype='application/csv') + cont_disp = 'attachment;Filename=searx_-_{0}.csv'.format(search_query.query) + response.headers.add('Content-Disposition', cont_disp) + return response + elif output_format == 'rss': + response_rss = render( + 'opensearch_response_rss.xml', + results=results, + q=request.form['q'], + number_of_results=number_of_results, + base_url=get_base_url(), + override_theme='__common__', + ) + return Response(response_rss, mimetype='text/xml') + + + return render( 'results.html', results=results, @@ -546,7 +583,7 @@ def index(): current_language=match_language(search_query.lang, LANGUAGE_CODES, fallback=settings['search']['language']), - results_image=results_images, + image_results=results_images, base_url=get_base_url(), theme=get_current_theme_name(), favicons=global_favicons[themes.index(get_current_theme_name())] -- GitLab From dba1c30a7ed31e67a2aa51a759947bb4c821792d Mon Sep 17 00:00:00 2001 From: "Daniel J. Ramirez" Date: Thu, 17 May 2018 11:57:28 -0500 Subject: [PATCH 004/146] Basic image view modal --- searx/static/themes/eelo/css/eelo.css | 24 +++++++++ searx/static/themes/eelo/css/eelo.min.css | Bin 5191 -> 5534 bytes searx/static/themes/eelo/gruntfile.js | 10 ++-- searx/static/themes/eelo/js/searx.min.js | Bin 4585 -> 4584 bytes searx/static/themes/eelo/less/eelo/base.less | 30 +++++++++++ searx/templates/eelo/base.html | 51 +++++++++++++++--- .../eelo/result_templates/images.html | 39 ++------------ 7 files changed, 106 insertions(+), 48 deletions(-) diff --git a/searx/static/themes/eelo/css/eelo.css b/searx/static/themes/eelo/css/eelo.css index 02a6c3476..dfba9fbba 100644 --- a/searx/static/themes/eelo/css/eelo.css +++ b/searx/static/themes/eelo/css/eelo.css @@ -109,6 +109,30 @@ input.btn[type="submit"] { #icons { display: none; } +body.lock { + overflow: hidden; +} +#image_view_modal { + position: absolute; + top: 0; + width: 100%; + height: 100vh; + background-color: rgba(0, 0, 0, 0.7); +} +#image_view_modal .card-container { + display: flex; + height: 100%; +} +#image_view_modal #image_view_card { + margin: auto; + max-width: 600px; + max-height: 80vh; +} +#image_view_modal #image_view_image { + display: block; + max-width: 100%; + max-height: 100%; +} .custom-select { appearance: none; -webkit-appearance: none; diff --git a/searx/static/themes/eelo/css/eelo.min.css b/searx/static/themes/eelo/css/eelo.min.css index 02f9cc4a9e243206b2d23153d27676f78e51fd28..d60482f792986a091428450cdc12c079d40c4136 100644 GIT binary patch delta 339 zcmX@EF;9Dg8Ebt~eoCcYPJVKBb$(fDQCd!Zxm8AHN=j;8t#W2=VtQ(PS!QZ^d~SY9 zVor5IesN|=W`3SkVp4H_PH9Q1bxD4Km4S76W=cthm7#%ws&z(cW_m^mh+URpos^iI zonDk*nwO%RoS&0lWL1=&l&E2#1A=ABhAC diff --git a/searx/static/themes/eelo/gruntfile.js b/searx/static/themes/eelo/gruntfile.js index bfcdb1aa2..1caaba90f 100644 --- a/searx/static/themes/eelo/gruntfile.js +++ b/searx/static/themes/eelo/gruntfile.js @@ -37,20 +37,18 @@ module.exports = function(grunt) { less: { development: { options: { - paths: ["less/logicodev", "less/eelo"] + paths: ["less/eelo"] //banner: '/*! less/eelo/oscar.css | <%= grunt.template.today("dd-mm-yyyy") %> | https://github.com/asciimoo/searx */\n' }, - files: {"css/logicodev.css": "less/logicodev-dark/oscar.less", - "css/eelo.css": "less/eelo/eelo.less"} + files: {"css/eelo.css": "less/eelo/eelo.less"} }, production: { options: { - paths: ["less/logicodev", "less/eelo"], + paths: ["less/eelo"], //banner: '/*! less/eelo/oscar.css | <%= grunt.template.today("dd-mm-yyyy") %> | https://github.com/asciimoo/searx */\n', cleancss: true }, - files: {"css/logicodev.min.css": "less/logicodev/oscar.less", - "css/eelo.min.css": "less/eelo/eelo.less"} + files: {"css/eelo.min.css": "less/eelo/eelo.less"} }, /* // built with ./manage.sh styles diff --git a/searx/static/themes/eelo/js/searx.min.js b/searx/static/themes/eelo/js/searx.min.js index d714149f66aca5d23ca1258c870cd64c767a3565..e465ff18266b7c52a053540cf55920efbb54f820 100644 GIT binary patch delta 91 zcmaE<{6bktUrSLTH8m$+zc@9qs6sC{Gfyw8SfNJ2&|KHRRM*JB&|;%<1S^}Op`xvA v^5#a?b1VY7hPJkudYO4CsTKZd8Y!BaBn0v#Jl delta 110 zcmaE%{8Cw2UrSLTzc@LuNWVBWv8X~XH#1K!t5~5%!N5${&_LJ7z|ef7QUohovZAf6 zqT%KS)^jWZnR=OdDXA6yX&Nb-wzj&4o8!19F-j%rl_aJYN2kQXWtFUyG!;SeTs-$! E0cO=9NdN!< diff --git a/searx/static/themes/eelo/less/eelo/base.less b/searx/static/themes/eelo/less/eelo/base.less index df9008acd..4fbfe08d7 100644 --- a/searx/static/themes/eelo/less/eelo/base.less +++ b/searx/static/themes/eelo/less/eelo/base.less @@ -80,6 +80,36 @@ a, a:hover, a:focus, a:active, select:hover, select:focus, select:active { } +body.lock { + overflow: hidden; +} + +#image_view_modal { + position: absolute; + top: 0; + width: 100%; + height: 100vh; + background-color: rgba(0, 0, 0, .7); + + .card-container { + display: flex; + height: 100%; + } + + #image_view_card { + margin: auto; + max-width: 600px; // TODO: move to var + max-height: 80vh; + } + + #image_view_image { + display: block; + max-width: 100%; + max-height: 100%; + } +} + + .custom-select { appearance: none; -webkit-appearance: none; diff --git a/searx/templates/eelo/base.html b/searx/templates/eelo/base.html index 66c020a25..b8bd43d40 100644 --- a/searx/templates/eelo/base.html +++ b/searx/templates/eelo/base.html @@ -85,6 +85,19 @@ {% block content %} {% endblock %} + +