From d0dba1fd2e28cad31f1c2f949d48804b0170864b Mon Sep 17 00:00:00 2001 From: Alexandre Aubin Date: Sun, 26 Dec 2021 17:01:56 +0100 Subject: [PATCH 01/10] Epic refactoring for new portal API etc --- README.md | 139 +-- access.lua | 220 +--- conf.json.example | 8 +- config.lua | 48 +- debian/control | 2 +- helpers.lua | 941 +----------------- init.lua | 40 +- log.lua | 84 -- lustache.lua | 29 - lustache/LICENSE | 22 - lustache/context.lua | 66 -- lustache/renderer.lua | 388 -------- lustache/scanner.lua | 57 -- portal/assets/css/ynh_overlay.css | 182 ---- portal/assets/css/ynh_portal.css | 828 --------------- .../fonts/sourcesanspro-bold-webfont.eot | Bin 26647 -> 0 bytes .../fonts/sourcesanspro-bold-webfont.ttf | Bin 65004 -> 0 bytes .../fonts/sourcesanspro-regular-webfont.eot | Bin 26956 -> 0 bytes .../fonts/sourcesanspro-regular-webfont.ttf | Bin 66144 -> 0 bytes portal/assets/fonts/ynh_ssowat/ynh_ssowat.eot | Bin 5680 -> 0 bytes portal/assets/fonts/ynh_ssowat/ynh_ssowat.svg | 17 - portal/assets/fonts/ynh_ssowat/ynh_ssowat.ttf | Bin 5504 -> 0 bytes .../assets/fonts/ynh_ssowat/ynh_ssowat.woff | Bin 3456 -> 0 bytes .../assets/icons/apple-touch-icon-114x114.png | Bin 9826 -> 0 bytes .../assets/icons/apple-touch-icon-120x120.png | Bin 10424 -> 0 bytes .../assets/icons/apple-touch-icon-144x144.png | Bin 13116 -> 0 bytes .../assets/icons/apple-touch-icon-152x152.png | Bin 14071 -> 0 bytes .../assets/icons/apple-touch-icon-57x57.png | Bin 4364 -> 0 bytes .../assets/icons/apple-touch-icon-60x60.png | Bin 4617 -> 0 bytes .../assets/icons/apple-touch-icon-72x72.png | Bin 5664 -> 0 bytes .../assets/icons/apple-touch-icon-76x76.png | Bin 6075 -> 0 bytes .../icons/apple-touch-icon-precomposed.png | Bin 14695 -> 0 bytes portal/assets/icons/apple-touch-icon.png | Bin 14071 -> 0 bytes portal/assets/icons/browserconfig.xml | 12 - portal/assets/icons/favicon-160x160.png | Bin 15011 -> 0 bytes portal/assets/icons/favicon-16x16.png | Bin 578 -> 0 bytes portal/assets/icons/favicon-196x196.png | Bin 19559 -> 0 bytes portal/assets/icons/favicon-32x32.png | Bin 905 -> 0 bytes portal/assets/icons/favicon-96x96.png | Bin 8028 -> 0 bytes portal/assets/icons/favicon.ico | Bin 7406 -> 0 bytes portal/assets/icons/mstile-144x144.png | Bin 13095 -> 0 bytes portal/assets/icons/mstile-150x150.png | Bin 12099 -> 0 bytes portal/assets/icons/mstile-310x150.png | Bin 12976 -> 0 bytes portal/assets/icons/mstile-310x310.png | Bin 32329 -> 0 bytes portal/assets/icons/mstile-70x70.png | Bin 8105 -> 0 bytes portal/assets/img/logo-ynh-white.svg | 34 - portal/assets/img/logo-ynh.svg | 38 - portal/assets/js/ynh_portal.js | 401 -------- portal/assets/themes/clouds/background.jpg | Bin 306187 -> 0 bytes portal/assets/themes/clouds/cloud.png | Bin 25519 -> 0 bytes .../assets/themes/clouds/custom_overlay.css | 17 - portal/assets/themes/clouds/custom_portal.css | 43 - portal/assets/themes/clouds/custom_portal.js | 33 - .../assets/themes/default/custom_overlay.css | 14 - .../assets/themes/default/custom_portal.css | 145 --- portal/assets/themes/default/custom_portal.js | 40 - portal/assets/themes/light/custom_overlay.css | 26 - portal/assets/themes/light/custom_portal.css | 179 ---- portal/assets/themes/light/custom_portal.js | 40 - portal/assets/themes/unsplash/cloud.png | Bin 25519 -> 0 bytes .../assets/themes/unsplash/custom_overlay.css | 17 - .../assets/themes/unsplash/custom_portal.css | 78 -- portal/assets/themes/vapor/custom_overlay.css | 14 - portal/assets/themes/vapor/custom_portal.css | 109 -- portal/assets/themes/vapor/custom_portal.js | 33 - portal/edit.html | 59 -- portal/footer.ms | 18 - portal/header.ms | 53 - portal/index.html | 59 ++ portal/locales/ar.json | 49 - portal/locales/bn_BD.json | 49 - portal/locales/br.json | 1 - portal/locales/ca.json | 49 - portal/locales/ckb.json | 1 - portal/locales/cs.json | 49 - portal/locales/de.json | 49 - portal/locales/el.json | 49 - portal/locales/en.json | 49 - portal/locales/eo.json | 49 - portal/locales/es.json | 49 - portal/locales/eu.json | 49 - portal/locales/fa.json | 49 - portal/locales/fi.json | 3 - portal/locales/fr.json | 49 - portal/locales/gl.json | 49 - portal/locales/hi.json | 49 - portal/locales/hu.json | 49 - portal/locales/id.json | 42 - portal/locales/it.json | 49 - portal/locales/mk.json | 1 - portal/locales/nb_NO.json | 29 - portal/locales/ne.json | 49 - portal/locales/nl.json | 49 - portal/locales/oc.json | 49 - portal/locales/pl.json | 49 - portal/locales/pt.json | 49 - portal/locales/ru.json | 49 - portal/locales/sl.json | 3 - portal/locales/sv.json | 49 - portal/locales/tr.json | 49 - portal/locales/uk.json | 49 - portal/locales/zh_Hans.json | 49 - portal/login.html | 13 - portal/password.html | 38 - portal/portal.html | 25 - vendor/luajwtjitsi/LICENSE | 21 + vendor/luajwtjitsi/luajwtjitsi.lua | 259 +++++ 107 files changed, 414 insertions(+), 5829 deletions(-) delete mode 100644 log.lua delete mode 100644 lustache.lua delete mode 100644 lustache/LICENSE delete mode 100644 lustache/context.lua delete mode 100644 lustache/renderer.lua delete mode 100644 lustache/scanner.lua delete mode 100644 portal/assets/css/ynh_overlay.css delete mode 100644 portal/assets/css/ynh_portal.css delete mode 100755 portal/assets/fonts/sourcesanspro-bold-webfont.eot delete mode 100755 portal/assets/fonts/sourcesanspro-bold-webfont.ttf delete mode 100755 portal/assets/fonts/sourcesanspro-regular-webfont.eot delete mode 100755 portal/assets/fonts/sourcesanspro-regular-webfont.ttf delete mode 100644 portal/assets/fonts/ynh_ssowat/ynh_ssowat.eot delete mode 100644 portal/assets/fonts/ynh_ssowat/ynh_ssowat.svg delete mode 100644 portal/assets/fonts/ynh_ssowat/ynh_ssowat.ttf delete mode 100644 portal/assets/fonts/ynh_ssowat/ynh_ssowat.woff delete mode 100644 portal/assets/icons/apple-touch-icon-114x114.png delete mode 100644 portal/assets/icons/apple-touch-icon-120x120.png delete mode 100644 portal/assets/icons/apple-touch-icon-144x144.png delete mode 100644 portal/assets/icons/apple-touch-icon-152x152.png delete mode 100644 portal/assets/icons/apple-touch-icon-57x57.png delete mode 100644 portal/assets/icons/apple-touch-icon-60x60.png delete mode 100644 portal/assets/icons/apple-touch-icon-72x72.png delete mode 100644 portal/assets/icons/apple-touch-icon-76x76.png delete mode 100644 portal/assets/icons/apple-touch-icon-precomposed.png delete mode 100644 portal/assets/icons/apple-touch-icon.png delete mode 100644 portal/assets/icons/browserconfig.xml delete mode 100644 portal/assets/icons/favicon-160x160.png delete mode 100644 portal/assets/icons/favicon-16x16.png delete mode 100644 portal/assets/icons/favicon-196x196.png delete mode 100644 portal/assets/icons/favicon-32x32.png delete mode 100644 portal/assets/icons/favicon-96x96.png delete mode 100644 portal/assets/icons/favicon.ico delete mode 100644 portal/assets/icons/mstile-144x144.png delete mode 100644 portal/assets/icons/mstile-150x150.png delete mode 100644 portal/assets/icons/mstile-310x150.png delete mode 100644 portal/assets/icons/mstile-310x310.png delete mode 100644 portal/assets/icons/mstile-70x70.png delete mode 100644 portal/assets/img/logo-ynh-white.svg delete mode 100644 portal/assets/img/logo-ynh.svg delete mode 100644 portal/assets/js/ynh_portal.js delete mode 100644 portal/assets/themes/clouds/background.jpg delete mode 100644 portal/assets/themes/clouds/cloud.png delete mode 100644 portal/assets/themes/clouds/custom_overlay.css delete mode 100644 portal/assets/themes/clouds/custom_portal.css delete mode 100644 portal/assets/themes/clouds/custom_portal.js delete mode 100644 portal/assets/themes/default/custom_overlay.css delete mode 100644 portal/assets/themes/default/custom_portal.css delete mode 100644 portal/assets/themes/default/custom_portal.js delete mode 100644 portal/assets/themes/light/custom_overlay.css delete mode 100644 portal/assets/themes/light/custom_portal.css delete mode 100644 portal/assets/themes/light/custom_portal.js delete mode 100644 portal/assets/themes/unsplash/cloud.png delete mode 100644 portal/assets/themes/unsplash/custom_overlay.css delete mode 100644 portal/assets/themes/unsplash/custom_portal.css delete mode 100644 portal/assets/themes/vapor/custom_overlay.css delete mode 100644 portal/assets/themes/vapor/custom_portal.css delete mode 100644 portal/assets/themes/vapor/custom_portal.js delete mode 100644 portal/edit.html delete mode 100644 portal/footer.ms delete mode 100644 portal/header.ms create mode 100644 portal/index.html delete mode 100644 portal/locales/ar.json delete mode 100644 portal/locales/bn_BD.json delete mode 100644 portal/locales/br.json delete mode 100644 portal/locales/ca.json delete mode 100644 portal/locales/ckb.json delete mode 100644 portal/locales/cs.json delete mode 100644 portal/locales/de.json delete mode 100644 portal/locales/el.json delete mode 100644 portal/locales/en.json delete mode 100644 portal/locales/eo.json delete mode 100644 portal/locales/es.json delete mode 100644 portal/locales/eu.json delete mode 100644 portal/locales/fa.json delete mode 100644 portal/locales/fi.json delete mode 100644 portal/locales/fr.json delete mode 100644 portal/locales/gl.json delete mode 100644 portal/locales/hi.json delete mode 100644 portal/locales/hu.json delete mode 100644 portal/locales/id.json delete mode 100644 portal/locales/it.json delete mode 100644 portal/locales/mk.json delete mode 100644 portal/locales/nb_NO.json delete mode 100644 portal/locales/ne.json delete mode 100644 portal/locales/nl.json delete mode 100644 portal/locales/oc.json delete mode 100644 portal/locales/pl.json delete mode 100644 portal/locales/pt.json delete mode 100644 portal/locales/ru.json delete mode 100644 portal/locales/sl.json delete mode 100644 portal/locales/sv.json delete mode 100644 portal/locales/tr.json delete mode 100644 portal/locales/uk.json delete mode 100644 portal/locales/zh_Hans.json delete mode 100644 portal/login.html delete mode 100644 portal/password.html delete mode 100644 portal/portal.html create mode 100644 vendor/luajwtjitsi/LICENSE create mode 100644 vendor/luajwtjitsi/luajwtjitsi.lua diff --git a/README.md b/README.md index 21c3647..9db97de 100644 --- a/README.md +++ b/README.md @@ -7,29 +7,8 @@ A simple LDAP SSO for NGINX, written in Lua. Translation status -Issues ------- - - [Please report issues to the YunoHost bugtracker](https://github.com/YunoHost/issues). -Requirements ------------- - -- `nginx-extras` from Debian wheezy-backports -- `lua-json` -- `lua-ldap` -- `lua-filesystem` -- `lua-socket` -- `lua-rex-pcre` - -**OR** - -- "OpenResty" flavored NGINX: https://openresty.org/ -- `lua-ldap` -- `lua-filesystem` -- `lua-socket` -- `lua-rex-pcre` - Installation ------------ @@ -74,117 +53,15 @@ If you use YunoHost, you may want to edit the `/etc/ssowat/conf.json.persistent` Only the `portal_domain` SSOwat configuration parameters is required, but it is recommended to know the others to fully understand what you can do with it. ---------------- +- `cookie_secret_file`: Where the secret used for signing and encrypting cookie is stored. It should only be readable by root. +- `cookie_name`: The name of the cookie used for authentication. Its content is expected to be a JWT signed with the cookie secret and should contain a key `user` and `password` (which is needed for Basic HTTP Auth). Because JWT is only encoded and signed (not encrypted), the `password` is expected to be encrypted using the cookie secret. +- `portal_domain`: Domain of the authentication portal. It has to be a domain, IP addresses will not work with SSOwat (**Required**). +- `portal_path`: URI of the authentication portal (**default**: `/ssowat/`). This path **must** end with “`/`”. +- `domains`: List of handled domains (**default**: similar to `portal_domain`). +- `redirected_urls`: Array of URLs and/or URIs to redirect and their redirect URI/URL (**example**: `{ "/": "example.org/subpath" }`). +- `redirected_regex`: Array of regular expressions to be matched against URLs **and** URIs and their redirect URI/URL (**example**: `{ "example.org/megusta$": "example.org/subpath" }`). -### portal_domain - -Domain of the authentication portal. It has to be a domain, IP addresses will not work with SSOwat (**Required**). - ---------------- - -### portal_path - -URI of the authentication portal (**default**: `/ssowat/`). This path **must** end with “`/`”. - ---------------- - -### portal_port - -Web port of the authentication portal (**default**: `443` for `https`, `80` for `http`). - ---------------- - -### portal_scheme - -Whether authentication should use secure connection or not (**default**: `https`). - ---------------- - -### domains - -List of handled domains (**default**: similar to `portal_domain`). - ---------------- - -### ldap_host - -LDAP server hostname (**default**: `localhost`). - ---------------- - -### ldap_group - -LDAP group to search in (**default**: `ou=users,dc=yunohost,dc=org`). - ---------------- - -### ldap_identifier - -LDAP user identifier (**default**: `uid`). - ---------------- - -### ldap_attributes - -User's attributes to fetch from LDAP (**default**: `["uid", "givenname", "sn", "cn", "homedirectory", "mail", "maildrop"]`). - ---------------- - -### ldap_enforce_crypt - -Let SSOwat re-encrypt weakly-encrypted LDAP passwords into the safer sha-512 (crypt) (**default**: `true`). - ---------------- - -### allow_mail_authentication - -Whether users can authenticate with their mail address (**default**: `true`). - ---------------- - -### login_arg - -URI argument to use for cross-domain authentication (**default**: `sso_login`). - ---------------- - -### additional_headers - -Array of additionnal HTTP headers to set once user is authenticated (**default**: `{ "Remote-User": "uid" }`). - ---------------- - -### session_timeout - -The session expiracy time limit in seconds, since the last connection (**default**: `86400` / one day). - ---------------- - -### session_max_timeout - -The session expiracy time limit in seconds (**default**: `604800` / one week). - ---------------- - -### redirected_urls - -Array of URLs and/or URIs to redirect and their redirect URI/URL (**example**: `{ "/": "example.org/subpath" }`). - ---------------- - -### redirected_regex - -Array of regular expressions to be matched against URLs **and** URIs and their redirect URI/URL (**example**: `{ "example.org/megusta$": "example.org/subpath" }`). - ---------------- - -### default_language - -Language code used by default in views (**default**: `en`). - ---------------- - -### permissions +### `permissions` The list of permissions depicted as follows: diff --git a/access.lua b/access.lua index 18aa0a8..0e8090e 100644 --- a/access.lua +++ b/access.lua @@ -9,13 +9,6 @@ -- Get the `cache` persistent shared table local cache = ngx.shared.cache --- Generate a unique token if it has not been generated yet -srvkey = cache:get("srvkey") -if not srvkey then - srvkey = random_string() - cache:add("srvkey", srvkey) -end - -- Import helpers local hlp = require "helpers" @@ -23,209 +16,10 @@ local hlp = require "helpers" hlp.refresh_config() local conf = hlp.get_config() --- Load logging module -local logger = require("log") - -- Just a note for the client to know that he passed through the SSO ngx.header["X-SSO-WAT"] = "You've just been SSOed" -local is_logged_in = hlp.refresh_logged_in() - --- --- 1. LOGIN --- --- example: https://mydomain.org/?sso_login=a6e5320f --- --- If the `sso_login` URI argument is set, try a cross-domain authentication --- with the token passed as argument --- -if ngx.var.host ~= conf["portal_domain"] and ngx.var.request_method == "GET" then - uri_args = ngx.req.get_uri_args() - if uri_args[conf.login_arg] then - cda_key = uri_args[conf.login_arg] - - -- Use the `cache` shared table where a username is associated with - -- a CDA key - user = cache:get("CDA|"..cda_key) - if user then - hlp.set_auth_cookie(user, ngx.var.host) - logger.info("Cross-domain authentication: "..user.." connected on "..ngx.var.host) - cache:delete("CDA|"..cda_key) - end - - uri_args[conf.login_arg] = nil - return hlp.redirect(ngx.var.uri..hlp.uri_args_string(uri_args)) - end -end - - --- --- 2. PORTAL --- --- example: https://mydomain.org/ssowat* --- --- If the URL matches the portal URL, serve a portal file or proceed to a --- portal operation --- -if (ngx.var.host == conf["portal_domain"] or is_logged_in) - and hlp.string.starts(ngx.var.uri, string.sub(conf["portal_path"], 1, -2)) -then - - -- `GET` method will serve a portal file - if ngx.var.request_method == "GET" then - - -- Force portal scheme - if ngx.var.scheme ~= conf["portal_scheme"] then - return hlp.redirect(conf.portal_url) - end - - -- Add a trailing `/` if not present - if ngx.var.uri.."/" == conf["portal_path"] then - return hlp.redirect(conf.portal_url) - end - - -- Get request arguments - uri_args = ngx.req.get_uri_args() - - -- Logout is also called via a `GET` method - -- TODO: change this ? - if uri_args.action and uri_args.action == 'logout' then - logger.debug("Logging out") - return hlp.logout() - - -- If the `r` URI argument is set, it means that we want to - -- be redirected (typically after a login phase) - elseif is_logged_in and uri_args.r then - -- Decode back url - back_url = ngx.decode_base64(uri_args.r) - - -- If `back_url` contains line break, someone is probably trying to - -- pass some additional headers - if string.match(back_url, "(.*)\n") then - hlp.flash("fail", hlp.t("redirection_error_invalid_url")) - logger.error("Redirection url is invalid") - return hlp.redirect(conf.portal_url) - end - - -- Get managed domains - local managed_domain = false - for _, domain in ipairs(conf["domains"]) do - local escaped_domain = domain:gsub("-", "%%-") -- escape dash for pattern matching - if string.match(back_url, "^http[s]?://"..escaped_domain.."/") then - logger.debug("Redirection to a managed domain found") - managed_domain = true - break - end - end - - -- If redirection does not match one of the managed domains - -- redirect to portal home page - if not managed_domain then - hlp.flash("fail", hlp.t("redirection_error_unmanaged_domain")) - logger.error("Redirection to an external domain aborted") - return hlp.redirect(conf.portal_url) - end - - - -- In case the `back_url` is not on the same domain than the - -- current one, create a redirection with a CDA key - local ngx_host_escaped = ngx.var.host:gsub("-", "%%-") -- escape dash for pattern matching - if not string.match(back_url, "^http[s]?://"..ngx_host_escaped.."/") - and not string.match(back_url, ".*"..conf.login_arg.."=%d+$") then - local cda_key = hlp.set_cda_key() - if string.match(back_url, ".*?.*") then - back_url = back_url.."&" - else - back_url = back_url.."?" - end - back_url = back_url.."sso_login="..cda_key - end - - return hlp.redirect(back_url) - - - -- In case we want to serve portal login or assets for portal, just - -- serve it - elseif is_logged_in - or ngx.var.uri == conf["portal_path"] - or (hlp.string.starts(ngx.var.uri, conf["portal_path"].."assets") - and (not ngx.var.http_referer - or hlp.string.starts(ngx.var.http_referer, conf.portal_url))) - then - -- If this is an asset, enable caching - if hlp.string.starts(ngx.var.uri, conf["portal_path"].."assets") - then - return hlp.serve(ngx.var.uri, "static_asset") - else - return hlp.serve(ngx.var.uri) - end - - - -- If all the previous cases have failed, redirect to portal - else - hlp.flash("info", hlp.t("please_login")) - logger.debug("User should log in to be able to access "..ngx.var.uri) - -- Force the scheme to HTTPS. This is to avoid an issue with redirection loop - -- when trying to access http://main.domain.tld/ (SSOwat finds that user aint - -- logged in, therefore redirects to SSO, which redirects to the back_url, which - -- redirect to SSO, ..) - local back_url = "https://" .. ngx.var.host .. ngx.var.uri .. hlp.uri_args_string() - return hlp.redirect(conf.portal_url.."?r="..ngx.encode_base64(back_url)) - end - - - -- `POST` method is basically use to achieve editing operations - elseif ngx.var.request_method == "POST" then - - -- CSRF protection, only proceed if we are editing from the same - -- domain - if hlp.string.starts(ngx.var.http_referer, conf.portal_url) then - if hlp.string.ends(ngx.var.uri, conf["portal_path"].."password.html") - or hlp.string.ends(ngx.var.uri, conf["portal_path"].."edit.html") - then - logger.debug("User attempts to edit its information") - return hlp.edit_user() - else - logger.debug("User attempts to log in") - return hlp.login() - end - else - -- Redirect to portal - hlp.flash("fail", hlp.t("please_login_from_portal")) - logger.debug("Invalid POST request not coming from the portal url...") - return hlp.redirect(conf.portal_url) - end - end -end - --- --- 2 ... continued : portal assets that are available on every domains --- --- For example: `https://whatever.org/ynhpanel.js` will serve the --- `/yunohost/sso/assets/js/ynhpanel.js` file. --- - -if is_logged_in then - assets = { - ["/ynh_portal.js"] = "js/ynh_portal.js", - ["/ynh_userinfo.json"] = "ynh_userinfo.json", - ["/ynh_overlay.css"] = "css/ynh_overlay.css" - } - theme_dir = "/usr/share/ssowat/portal/assets/themes/"..conf.theme - local pfile = io.popen('find "'..theme_dir..'" -not -path "*/\\.*" -type f -exec realpath --relative-to "'..theme_dir..'" {} \\;') - for filename in pfile:lines() do - assets["/ynhtheme/"..filename] = "themes/"..conf.theme.."/"..filename - end - pfile:close() - - for shortcut, full in pairs(assets) do - if ngx.var.uri == shortcut then - logger.debug("Serving static asset "..full) - return hlp.serve("/yunohost/sso/assets/"..full, "static_asset") - end - end -end - +local is_logged_in = hlp.check_authentication() -- -- 3. REDIRECTED URLS @@ -250,7 +44,7 @@ if conf["redirected_urls"] then if url == ngx.var.host..ngx.var.uri..hlp.uri_args_string() or url == ngx.var.scheme.."://"..ngx.var.host..ngx.var.uri..hlp.uri_args_string() or url == ngx.var.uri..hlp.uri_args_string() then - logger.debug("Requested URI is in redirected_urls") + hlp.logger:debug("Requested URI is in redirected_urls") detect_redirection(redirect_url) end end @@ -261,7 +55,7 @@ if conf["redirected_regex"] then if hlp.match(ngx.var.host..ngx.var.uri..hlp.uri_args_string(), regex) or hlp.match(ngx.var.scheme.."://"..ngx.var.host..ngx.var.uri..hlp.uri_args_string(), regex) or hlp.match(ngx.var.uri..hlp.uri_args_string(), regex) then - logger.debug("Requested URI is in redirected_regex") + hlp.logger:debug("Requested URI is in redirected_regex") detect_redirection(redirect_url) end end @@ -327,7 +121,7 @@ if hlp.has_access(permission) then if is_logged_in then -- If the user is logged in, refresh_cache - hlp.refresh_user_cache() + --hlp.refresh_user_cache() -- If Basic Authorization header are enable for this permission, -- add it to the response @@ -344,12 +138,6 @@ else if is_logged_in then return hlp.redirect(conf.portal_url) else - -- Only display this if HTTPS. For HTTP, we can't know if the user really is - -- logged in or not, because the cookie is available only in HTTP... - if ngx.var.scheme == "https" then - hlp.flash("info", hlp.t("please_login")) - end - local back_url = "https://" .. ngx.var.host .. ngx.var.uri .. hlp.uri_args_string() return hlp.redirect(conf.portal_url.."?r="..ngx.encode_base64(back_url)) end diff --git a/conf.json.example b/conf.json.example index aceaea9..d49b969 100644 --- a/conf.json.example +++ b/conf.json.example @@ -1,10 +1,4 @@ { - "additional_headers": { - "Auth-User": "uid", - "Email": "mail", - "Name": "cn", - "Remote-User": "uid" - }, "domains": [ "example.tld", "example.org" @@ -66,4 +60,4 @@ "example.tld/yunohost[\\/]?$": "https://example.tld/yunohost/sso/" }, "redirected_urls": {} -} \ No newline at end of file +} diff --git a/config.lua b/config.lua index f574af0..7531cb4 100644 --- a/config.lua +++ b/config.lua @@ -6,11 +6,30 @@ module('config', package.seeall) +local lfs = require "lfs" +local json = require "json" + local config_attributes = nil local config_persistent_attributes = nil local conf = {} +function get_cookie_secret() + + local conf_file = assert(io.open(conf_path, "r"), "Configuration file is missing") + local conf_ = json.decode(conf_file:read("*all")) + conf_file:close() + + local cookie_secret_path = conf_["cookie_secret_file"] + local cookie_secret_file = assert(io.open(cookie_secret_path, "r"), "Cookie secret file is missing") + local cookie_secret = cookie_secret_file:read("*all") + cookie_secret_file:close() + + return cookie_secret +end + + + function compare_attributes(file_attributes1, file_attributes2) if file_attributes1 == nil and file_attributes2 == nil then return true @@ -20,15 +39,6 @@ function compare_attributes(file_attributes1, file_attributes2) return file_attributes1["modification"] == file_attributes2["modification"] and file_attributes1["size"] == file_attributes2["size"] end -function update_language() - -- Set the prefered language from the `Accept-Language` header - conf.lang = ngx.req.get_headers()["Accept-Language"] - - if conf.lang then - conf.lang = string.sub(conf.lang, 1, 2) - end -end - function get_config() -- Get config files attributes (timestamp modification and size) @@ -36,11 +46,9 @@ function get_config() local new_config_persistent_attributes = lfs.attributes(conf_path..".persistent", {"modification", "size"}) if compare_attributes(new_config_attributes, config_attributes) and compare_attributes(new_config_persistent_attributes, config_persistent_attributes) then - update_language() return conf -- If the file is being written, its size may be 0 and reloading fails, return the last valid config elseif new_config_attributes == nil or new_config_attributes["size"] == 0 then - update_language() return conf end @@ -81,22 +89,10 @@ function get_config() -- Default configuration values default_conf = { - portal_scheme = "https", portal_path = "/ssowat/", local_portal_domain = "yunohost.local", domains = { conf["portal_domain"], "yunohost.local" }, - session_timeout = 60 * 60 * 24, -- one day - session_max_timeout = 60 * 60 * 24 * 7, -- one week - login_arg = "sso_login", - ldap_host = "localhost", - ldap_group = "ou=users,dc=yunohost,dc=org", - ldap_identifier = "uid", - ldap_enforce_crypt = true, skipped_urls = {}, - ldap_attributes = {"uid", "givenname", "sn", "cn", "homedirectory", "mail", "maildrop"}, - allow_mail_authentication = true, - default_language = "en", - theme = "default", logging = "fatal", -- Only log fatal messages by default (so apriori nothing) permissions = {} } @@ -108,17 +104,15 @@ function get_config() end - -- If you access the SSO by a local domain, change the portal domain to -- avoid unwanted redirections. if ngx.var.host == conf["local_portal_domain"] then - conf["original_portal_domain"] = conf["portal_domain"] conf["portal_domain"] = conf["local_portal_domain"] end -- Build portal full URL out of the configuration values - conf.portal_url = conf["portal_scheme"].."://".. + conf.portal_url = "https://".. conf["portal_domain"].. conf["portal_path"] @@ -126,7 +120,5 @@ function get_config() -- Always skip the portal to avoid redirection looping. table.insert(conf["permissions"]["core_skipped"]["uris"], conf["portal_domain"]..conf["portal_path"]) - update_language() - return conf end diff --git a/debian/control b/debian/control index 6d30ec7..4b76bdd 100644 --- a/debian/control +++ b/debian/control @@ -7,7 +7,7 @@ Standards-Version: 3.9.1 Package: ssowat Architecture: all -Depends: nginx-extras (>=1.6.2), lua-ldap, lua-json, lua-rex-pcre, whois +Depends: nginx-extras (>=1.6.2), lua-json, lua-rex-pcre, lua-basexx, lua-luaossl, lua-logging, whois Homepage: https://yunohost.org Description: user portal with single sign-on designed for Yunohost A minimalist user portal with single sign-on, designed to be diff --git a/helpers.lua b/helpers.lua index f5d330d..4d58120 100644 --- a/helpers.lua +++ b/helpers.lua @@ -9,10 +9,24 @@ module('helpers', package.seeall) local cache = ngx.shared.cache local conf = config.get_config() -local logger = require("log") +local Logging = require("logging") +local jwt = require("vendor.luajwtjitsi.luajwtjitsi") + + +local appender = function(self, level, message) + + -- Output to log file + local fp = io.open(log_file, "a") + local str = string.format("[%-6s%s] %s\n", level:upper(), os.date(), message) + fp:write(str) + fp:close() + + return true +end + +local logger = Logging.new(appender) +--logger:setLevel(logger.DEBUG) -- FIXME --- url parser, c.f. https://rosettacode.org/wiki/URL_parser#Lua -local url_parser = require "socket.url" -- Import Perl regular expressions library local rex = require "rex_pcre" @@ -79,57 +93,6 @@ function string.ends(String, End) end --- Find a string by its translate key in the right language -function t(key) - if conf.lang and i18n[conf.lang] and i18n[conf.lang][key] then - return i18n[conf.lang][key] - else - return i18n[conf["default_language"]][key] or "" - end -end - - --- Store a message in the flash shared table in order to display it at the --- next response -function flash(wat, message) - if wat == "fail" - or wat == "win" - or wat == "info" - then - flashs[wat] = message - end -end - - --- Hash a string using hmac_sha512, return a hexa string -function hmac_sha512(key, message) - local cache_key = key..":"..message - - if not cache:get(cache_key) then - -- lua ecosystem is a disaster and it was not possible to find a good - -- easily multiplatform integrable code for this - -- - -- this is really dirty and probably leak the key and the message in the process list - -- but if someone got there I guess we really have other problems so this is acceptable - -- and also this is way better than the previous situation - local pipe = io.popen("echo -n '" ..message:gsub("'", "'\\''").. "' | openssl sha512 -hmac '" ..key:gsub("'", "'\\''").. "'") - - -- openssl returns something like this: - -- root@yunohost:~# echo -n "qsd" | openssl sha512 -hmac "key" - -- (stdin)= f1c2b1658fe64c5a3d16459f2f4eea213e4181905c190235b060ab2a4e7d6a41c15ea2c246828537a1e32ae524b7a7ed309e6d296089194c3e3e3efb98c1fbe3 - -- - -- so we need to remove the "(stdin)= " at the beginning - local hash = pipe:read():sub(string.len("(stdin)= ") + 1) - pipe:close() - - cache:set(cache_key, hash, conf["session_timeout"]) - return hash - else - return cache:get(cache_key) - end -end - - -- Convert a table of arguments to an URI string function uri_args_string(args) if not args then @@ -143,145 +106,28 @@ function uri_args_string(args) end --- Set the Cross-Domain-Authentication key for a specific user -function set_cda_key() - local cda_key = random_string() - cache:set("CDA|"..cda_key, authUser, 10) - return cda_key -end - - --- Compute and set the authentication cookie --- --- Sets 3 cookies containing: --- * The username --- * The expiration time --- * A hash of those information along with the client IP address and a unique --- session key --- --- It enables the SSO to quickly retrieve the username and the session --- expiration time, and to prove their authenticity to avoid session hijacking. --- -function set_auth_cookie(user, domain) - local maxAge = conf["session_max_timeout"] - local expire = ngx.req.start_time() + maxAge - local session_key = cache:get("session_"..user) - if not session_key then - session_key = random_string() - cache:add("session_"..user, session_key, conf["session_max_timeout"]) - end - local hash = hmac_sha512(srvkey, - user.. - "|"..expire.. - "|"..session_key) - local cookie_str = "; Domain=."..domain.. - "; Path=/".. - "; Expires="..ngx.cookie_time(expire).. - "; Secure".. - "; HttpOnly".. - "; SameSite=Lax" - - ngx.header["Set-Cookie"] = { - "SSOwAuthUser="..user..cookie_str, - "SSOwAuthHash="..hash..cookie_str, - "SSOwAuthExpire="..expire..cookie_str - } - logger.info("Hash "..hash.." generated for "..user.."@"..ngx.var.remote_addr) -end - - --- Expires the 3 session cookies -function delete_cookie() - for _, domain in ipairs(conf["domains"]) do - local cookie_str = "; Domain=."..domain.. - "; Path=/".. - "; Expires="..ngx.cookie_time(0).. - "; Secure".. - "; HttpOnly".. - "; SameSite=Lax" - ngx.header["Set-Cookie"] = { - "SSOwAuthUser="..cookie_str, - "SSOwAuthHash="..cookie_str, - "SSOwAuthExpire="..cookie_str - } - end -end - - -- Validate authentification -- -- Check if the session cookies are set, and rehash server + client information -- to match the session hash. -- -function refresh_logged_in() - local expireTime = ngx.var.cookie_SSOwAuthExpire - local user = ngx.var.cookie_SSOwAuthUser - local authHash = ngx.var.cookie_SSOwAuthHash +function check_authentication() - authUser = nil - is_logged_in = false - - if expireTime and expireTime ~= "" - and authHash and authHash ~= "" - and user and user ~= "" - then - -- Check expire time - if (ngx.req.start_time() <= tonumber(expireTime)) then - -- Check hash - local session_key = cache:get("session_"..user) - if session_key and session_key ~= "" then - -- Check cache - if cache:get(user.."-password") then - local hash = hmac_sha512(srvkey, - user.. - "|"..expireTime.. - "|"..session_key) - is_logged_in = hash == authHash - if is_logged_in then - authUser = user - return true - else - failReason = "Hash not matching" - end - else - failReason = "No {user}-password entry in cache" - end - else - failReason = "No session key" - end - else - failReason = "Cookie expired" - end - logger.debug("SSOwat cookies rejected for "..user.."@"..ngx.var.remote_addr.." : "..failReason) - return false + local token = ngx.var["cookie_" .. conf["cookie_name"]] + + decoded, err = jwt.verify(token, "HS256", cookie_secret) + + if err ~= nil then + -- FIXME : log an authentication error to be caught by fail2ban ? or should it happen somewhere else ? (check the old code) + authUser = nil + is_logged_in = false + return is_logged_in end - -- If client set the `Proxy-Authorization` header before reaching the SSO, - -- we want to match user and password against the user database. - -- - -- It allows to bypass the cookie-based procedure with a per-request - -- authentication. This is useful to authenticate on the SSO during - -- curl requests for example. - - local auth_header = ngx.req.get_headers()["Proxy-Authorization"] - - if auth_header then - _, _, b64_cred = string.find(auth_header, "^Basic%s+(.+)$") - if b64_cred == nil then - return is_logged_in - end - _, _, user, password = string.find(ngx.decode_base64(b64_cred), "^(.+):(.+)$") - user = authenticate(user, password) - if user then - logger.debug("User got authenticated through basic auth") - authUser = user - is_logged_in = true - else - -- https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/407 - ngx.status = 407 - end - end + authUser = decoded["user"] + is_logged_in = true + -- Gotta update authUser and is_logged_in return is_logged_in end @@ -291,25 +137,25 @@ function has_access(permission, user) user = user or authUser if permission == nil then - logger.debug("No permission matching request for "..ngx.var.uri) + logger:debug("No permission matching request for "..ngx.var.uri) return false end -- Public access if user == nil or permission["public"] then user = user or "A visitor" - logger.debug(user.." tries to access "..ngx.var.uri.." (corresponding perm: "..permission["id"]..")") + logger:debug(user.." tries to access "..ngx.var.uri.." (corresponding perm: "..permission["id"]..")") return permission["public"] end - logger.debug("User "..user.." tries to access "..ngx.var.uri.." (corresponding perm: "..permission["id"]..")") + logger:debug("User "..user.." tries to access "..ngx.var.uri.." (corresponding perm: "..permission["id"]..")") -- The user has permission to access the content if he is in the list of allowed users if element_is_in_table(user, permission["users"]) then - logger.debug("User "..user.." can access "..ngx.var.host..ngx.var.uri..uri_args_string()) + logger:debug("User "..user.." can access "..ngx.var.host..ngx.var.uri..uri_args_string()) return true else - logger.debug("User "..user.." cannot access "..ngx.var.uri) + logger:debug("User "..user.." cannot access "..ngx.var.uri) return false end end @@ -326,76 +172,6 @@ function element_is_in_table(element, table) return false end --- Authenticate a user against the LDAP database using a username or an email --- address. --- Reminder: conf["ldap_identifier"] is "uid" by default -function authenticate(user, password) - -- Try to find the username from an email address by openning an anonymous - -- LDAP connection and check if the email address exists - if conf["allow_mail_authentication"] and string.find(user, "@") then - ldap = lualdap.open_simple(conf["ldap_host"]) - for dn, attribs in ldap:search { - base = conf["ldap_group"], - scope = "onelevel", - sizelimit = 1, - filter = "(mail="..user..")", - attrs = {conf["ldap_identifier"]} - } do - if attribs[conf["ldap_identifier"]] then - logger.debug("Use email: "..user) - user = attribs[conf["ldap_identifier"]] - else - logger.error("Unknown email: "..user) - return false - end - end - ldap:close() - end - - -- Now that we have a username, we can try connecting to the LDAP base. - connected = lualdap.open_simple ( - conf["ldap_host"], - conf["ldap_identifier"].."=".. user ..","..conf["ldap_group"], - password - ) - - cache:flush_expired() - - -- If we are connected, we can retrieve the password and put it in the - -- cache shared table in order to eventually reuse it later when updating - -- profile information or just passing credentials to an application. - if connected then - if conf['ldap_enforce_crypt'] then - ensure_user_password_uses_strong_hash(connected, user, password) - end - cache:add(user.."-password", password, conf["session_timeout"]) - ngx.log(ngx.NOTICE, "Connected as: "..user) - logger.info("User "..user.." succesfully authenticated from "..ngx.var.remote_addr) - return user - - -- Else, the username/email or the password is wrong - else - -- N.B. : the ngx.log is important and is related to the regex used by - -- the fail2ban rule to detect (and ban) failed login attempts - ngx.log(ngx.ERR, "Connection failed for: "..user) - logger.error("Authentication failure for user "..user.." from "..ngx.var.remote_addr) - return false - end -end - -function delete_user_info_cache(user) - cache:delete(user.."-"..conf["ldap_identifier"]) - local i = 2 - while cache:get(user.."-mail|"..i) do - cache:delete(user.."-mail|"..i) - i = i + 1 - end - local i = 2 - while cache:get(user.."-maildrop|"..i) do - cache:delete(user.."-maildrop|"..i) - i = i + 1 - end -end -- Set the authentication headers in order to pass credentials to the -- application underneath. @@ -414,649 +190,9 @@ function set_headers(user) end -function refresh_user_cache(user) - -- We definitely don't want to pass credentials on a non-encrypted - -- connection. - if ngx.var.scheme ~= "https" then - return redirect("https://"..ngx.var.host..ngx.var.uri..uri_args_string()) - end - - local user = user or authUser - - -- If the password is not in cache or if the cache has expired, ask for - -- logging. - if not cache:get(user.."-password") then - flash("info", t("please_login")) - local back_url = ngx.var.scheme .. "://" .. ngx.var.host .. ngx.var.uri .. uri_args_string() - return redirect(conf.portal_url.."?r="..ngx.encode_base64(back_url)) - end - - -- If the user information is not in cache, open an LDAP connection and - -- fetch it. - if not cache:get(user.."-"..conf["ldap_identifier"]) then - ldap = lualdap.open_simple( - conf["ldap_host"], - conf["ldap_identifier"].."=".. user ..","..conf["ldap_group"], - cache:get(user.."-password") - ) - -- If the ldap connection fail (because the password was changed). - -- Logout the user and invalid the password - if not ldap then - logger.debug("LDAP connection failed. Disconnect user : ".. user) - cache:delete(authUser.."-password") - flash("info", t("please_login")) - local back_url = ngx.var.scheme .. "://" .. ngx.var.host .. ngx.var.uri .. uri_args_string() - return redirect(conf.portal_url.."?r="..ngx.encode_base64(back_url)) - end - logger.debug("Reloading LDAP values for: "..user) - for dn, attribs in ldap:search { - base = conf["ldap_identifier"].."=".. user ..","..conf["ldap_group"], - scope = "base", - sizelimit = 1, - attrs = conf["ldap_attributes"] - } do - for k,v in pairs(attribs) do - if type(v) == "table" then - for k2,v2 in ipairs(v) do - if k2 == 1 then cache:set(user.."-"..k, v2, conf["session_timeout"]) end - cache:set(user.."-"..k.."|"..k2, v2, conf["session_max_timeout"]) - end - else - cache:set(user.."-"..k, v, conf["session_timeout"]) - end - end - end - else - -- Else, just revalidate session for another day by default - password = cache:get(user.."-password") - -- Here we don't use set method to avoid strange logout - -- See https://github.com/YunoHost/issues/issues/1830 - cache:replace(user.."-password", password, conf["session_timeout"]) - end -end - - --- Summarize email, aliases and forwards in a table for a specific user -function get_mails(user) - local mails = { mail = "", mailalias = {}, maildrop = {} } - - -- default mail - mails["mail"] = cache:get(user.."-mail") - - -- mail aliases - if cache:get(user.."-mail|2") then - local i = 2 - while cache:get(user.."-mail|"..i) do - table.insert(mails["mailalias"], cache:get(user.."-mail|"..i)) - i = i + 1 - end - end - - -- mail forward - if cache:get(user.."-maildrop|2") then - local i = 2 - while cache:get(user.."-maildrop|"..i) do - table.insert(mails["maildrop"], cache:get(user.."-maildrop|"..i)) - i = i + 1 - end - end - return mails -end - - --- Yo dawg, this enables SSOwat to serve files in HTTP in an HTTP server --- Much reliable, very solid. --- --- Takes an URI, and returns file content with the proper HTTP headers. --- It is used to render the SSOwat portal *only*. -function serve(uri, cache) - - logger.debug("Serving portal uri "..uri) - - rel_path = string.gsub(uri, conf["portal_path"], "/") - - -- Load login.html as index - if rel_path == "/" then - if is_logged_in then - rel_path = "/portal.html" - else - rel_path = "/login.html" - end - end - - -- Access to directory root: forbidden - if string.ends(rel_path, "/") then - return ngx.exit(ngx.HTTP_FORBIDDEN) - end - - -- Try to get file content - local content = read_file(script_path.."portal"..rel_path) - if not content then - return ngx.exit(ngx.HTTP_NOT_FOUND) - end - - -- Extract file extension - _, file, ext = string.match(rel_path, "(.-)([^\\/]-%.?([^%.\\/]*))$") - - -- Associate to MIME type - mime_types = { - html = "text/html", - ms = "text/html", - js = "text/javascript", - map = "text/javascript", - css = "text/css", - gif = "image/gif", - jpg = "image/jpeg", - png = "image/png", - svg = "image/svg+xml", - ico = "image/vnd.microsoft.icon", - woff = "font/woff", - woff2 = "font/woff2", - ttf = "font/ttf", - json = "application/json" - } - - -- Allow .ms to specify mime type - mime = ext - if ext == "ms" then - subext = string.match(file, "^.+%.(.+)%.ms$") - if subext then - mime = subext - end - end - - -- Set Content-Type - if mime_types[mime] then - ngx.header["Content-Type"] = mime_types[mime] - else - ngx.header["Content-Type"] = "text/plain" - end - - -- Render as mustache - if ext == "html" then - local data = get_data_for(file) - local rendered = lustache:render(read_file(script_path.."portal/header.ms"), data) - rendered = rendered..lustache:render(content, data) - content = rendered..lustache:render(read_file(script_path.."portal/footer.ms"), data) - elseif ext == "ms" then - local data = get_data_for(file) - content = lustache:render(content, data) - elseif uri == "/ynh_userinfo.json" then - local data = get_data_for(file) - content = json.encode(data) - cache = "dynamic" - end - - -- Reset flash messages - flashs["fail"] = nil - flashs["win"] = nil - flashs["info"] = nil - - if cache == "static_asset" then - ngx.header["Cache-Control"] = "public, max-age=3600" - else - -- Ain't nobody got time for cache - ngx.header["Cache-Control"] = "no-cache" - end - - -- Print file content - ngx.say(content) - - -- Return 200 :-) - return ngx.exit(ngx.HTTP_OK) -end - - --- Simple controller that computes a data table to populate a specific view. --- The resulting data table typically contains the user information, the page --- title, the flash notifications' content and the translated strings. -function get_data_for(view) - local user = authUser - - -- For the login page we only need the page title - if view == "login.html" then - data = { - title = t("login"), - connected = false - } - - -- For those views, we may need user information - elseif view == "portal.html" - or view == "edit.html" - or view == "password.html" - or view == "ynh_userinfo.json" then - - -- Invalidate cache before loading these views. - -- Needed if the LDAP db is changed outside ssowat (from the cli for example). - -- Not doing it for ynhpanel.json only for performance reasons, - -- so the panel could show wrong first name, last name or main email address - -- TODO: What if we remove info during logout? - --if view ~= "ynhpanel.json" then - -- delete_user_info_cache(user) - --end - - -- Be sure cache is loaded - if user then - refresh_user_cache(user) - - local mails = get_mails(user) - data = { - connected = true, - theme = conf.theme, - portal_url = conf.portal_url, - uid = user, - cn = cache:get(user.."-cn"), - sn = cache:get(user.."-sn"), - givenName = cache:get(user.."-givenName"), - mail = mails["mail"], - mailalias = mails["mailalias"], - maildrop = mails["maildrop"], - app = {} - } - - local sorted_apps = {} - - -- Add user's accessible URLs using the ACLs. - -- It is typically used to build the app list. - for permission_name, permission in pairs(conf["permissions"]) do - -- We want to display a tile, and uris is not empty - if permission['show_tile'] and next(permission['uris']) ~= nil and element_is_in_table(user, permission["users"]) then - url = permission['uris'][1] - name = permission['label'] - - if ngx.var.host == conf["local_portal_domain"] then - url = string.gsub(url, conf["original_portal_domain"], conf["local_portal_domain"]) - end - - table.insert(sorted_apps, name) - table.sort(sorted_apps) - table.insert(data["app"], index_of(sorted_apps, name), { url = url, name = name }) - end - end - end - end - - -- Pass all the translated strings to the view (to use with t_) - for k, v in pairs(i18n[conf["default_language"]]) do - data["t_"..k] = (i18n[conf.lang] and i18n[conf.lang][k]) or v - end - - -- Pass flash notification content - data['flash_fail'] = {flashs["fail"]} - data['flash_win'] = {flashs["win"] } - data['flash_info'] = {flashs["info"]} - data['theme'] = conf["theme"] - - return data -end - --- this function is launched after a successful login --- it checked if the user password is stored using the most secure hashing --- algorithm available --- if it's not the case, it migrates the password to this new hash algorithm -function ensure_user_password_uses_strong_hash(ldap, user, password) - local current_hashed_password = nil - - for dn, attrs in ldap:search { - base = conf['ldap_group'], - scope = "onelevel", - sizelimit = 1, - filter = "("..conf['ldap_identifier'].."="..user..")", - attrs = {"userPassword"} - } do - current_hashed_password = attrs["userPassword"]:sub(0, 10) - end - - -- if the password is not hashed using sha-512, which is the strongest - -- available hash rehash it using that - -- Here "{CRYPT}" means "uses linux auth system" - -- "6" means "uses sha-512", any lower number mean a less strong algo (1 == md5) - if current_hashed_password:sub(0, 10) ~= "{CRYPT}$6$" then - local dn = conf["ldap_identifier"].."="..user..","..conf["ldap_group"] - local hashed_password = hash_password(password) - ldap:modify(dn, {'=', userPassword = hashed_password }) - end -end - --- Read result of a command after given it securely the password -function secure_cmd_password(cmd, password, start) - -- Check password validity - local tmp_file = os.tmpname() - local w_pwd = io.popen("("..cmd..") | tee -a "..tmp_file, 'w') - w_pwd:write(password) - -- This second write is just to validate the password question - -- Do not remove - w_pwd:write("") - w_pwd:close() - local r_pwd = io.open(tmp_file, 'r') - text = r_pwd:read "*a" - - -- Remove the extra end line - if text:sub(-1, -1) == "\n" then - text = text:sub(1, -2) - end - r_pwd:close() - os.remove(tmp_file) - return text -end - --- Compute the user modification POST request --- It has to update cached information and edit the LDAP user entry --- according to the changes detected. -function edit_user() - -- We need these calls since we are in a POST request - ngx.req.read_body() - local args = ngx.req.get_post_args() - - -- Ensure that user is logged in and has passed information - -- before continuing. - if is_logged_in and args - then - - -- Set HTTP status to 201 - ngx.status = ngx.HTTP_CREATED - local user = authUser - - -- In case of a password modification - -- TODO: split this into a new function - if string.ends(ngx.var.uri, "password.html") then - - -- Check current password against the cached one - if args.currentpassword - and args.currentpassword == cache:get(user.."-password") - then - -- and the new password against the confirmation field's content - if args.newpassword == args.confirm then - -- Check password validity - local result_msg = secure_cmd_password("python3 /usr/lib/moulinette/yunohost/utils/password.py", args.newpassword) - validation_error = true - if result_msg == nil or result_msg == "" then - validation_error = nil - end - if validation_error == nil then - - local dn = conf["ldap_identifier"].."="..user..","..conf["ldap_group"] - - -- Open the LDAP connection - local ldap = lualdap.open_simple(conf["ldap_host"], dn, args.currentpassword) - - local password = hash_password(args.newpassword) - - -- Modify the LDAP information - if ldap:modify(dn, {'=', userPassword = password }) then - if validation == nil then - flash("win", t("password_changed")) - else - flash("win", t(result_msg)) - end - - -- Reset the password cache - cache:set(user.."-password", args.newpassword, conf["session_timeout"]) - return redirect(conf.portal_url.."portal.html") - else - flash("fail", t("password_changed_error")) - end - else - flash("fail", t(result_msg)) - end - else - flash("fail", t("password_not_match")) - end - else - flash("fail", t("wrong_current_password")) - end - return redirect(conf.portal_url.."password.html") - - - -- In case of profile modification - -- TODO: split this into a new function - elseif string.ends(ngx.var.uri, "edit.html") then - - -- Check that needed arguments exist - if args.givenName and args.sn and args.mail then - - -- Unstack mailaliases - local mailalias = {} - if args["mailalias[]"] then - if type(args["mailalias[]"]) == "string" then - args["mailalias[]"] = {args["mailalias[]"]} - end - mailalias = args["mailalias[]"] - end - - -- Unstack mail forwards - local maildrop = {} - if args["maildrop[]"] then - if type(args["maildrop[]"]) == "string" then - args["maildrop[]"] = {args["maildrop[]"]} - end - maildrop = args["maildrop[]"] - end - - -- Limit domains per user: - -- This ensures that a user already has an email address or an - -- aliases that ends with a specific domain to claim new aliases - -- on this domain. - -- - -- I.E. You need to have xxx@domain.org to claim a - -- yyy@domain.org alias. - -- - local domains = {} - local ldap = lualdap.open_simple(conf["ldap_host"]) - for dn, attribs in ldap:search { - base = conf["ldap_group"], - scope = "onelevel", - sizelimit = 1, - filter = "(uid="..user..")", - attrs = {"mail"} - } do - -- Construct proper emails array - local mail_list = {} - local mail_attr = attribs["mail"] - if type(mail_attr) == "string" then - mail_list = { mail_attr } - elseif type(mail_attr) == "table" then - mail_list = mail_attr - end - - -- Filter configuration's domain list to keep only - -- "allowed" domains - for _, domain in ipairs(conf["domains"]) do - for k, mail in ipairs(mail_list) do - if string.ends(mail, "@"..domain) then - if not is_in_table(domains, domain) then - table.insert(domains, domain) - end - end - end - end - end - ldap:close() - - local rex = require "rex_pcre" - local rex_flags = rex.flags() - local mail_re = rex.new([[^[\w\.\-+%]+@([^\W_A-Z]+([\-]*[^\W_A-Z]+)*\.)+([^\W\d_]{2,})$]], rex_flags.UTF8 + rex_flags.UCP) - - local mails = {} - - -- Build an LDAP filter so that we can ensure that email - -- addresses are used only once. - local filter = "(|" - table.insert(mailalias, 1, args.mail) - - -- Loop through all the aliases - for k, mail in ipairs(mailalias) do - if mail ~= "" then - -- Check the mail pattern - if not mail_re:match(mail) then - flash("fail", t("invalid_mail")..": "..mail) - return redirect(conf.portal_url.."edit.html") - - -- Check that the domain is known and allowed - else - local domain_valid = false - for _, domain in ipairs(domains) do - if string.ends(mail, "@"..domain) then - domain_valid = true - break - end - end - if domain_valid then - table.insert(mails, mail) - filter = filter.."(mail="..mail..")" - else - flash("fail", t("invalid_domain").." "..mail) - return redirect(conf.portal_url.."edit.html") - end - end - end - end - - -- filter should look like "(|(mail=my@mail.tld)(mail=my@mail2.tld))" - filter = filter..")" - - - -- For email forwards, we only need to check that they look - -- like actual emails - local drops = {} - for k, mail in ipairs(maildrop) do - if mail ~= "" then - if not mail_re:match(mail) then - flash("fail", t("invalid_mailforward")..": "..mail) - return redirect(conf.portal_url.."edit.html") - end - table.insert(drops, mail) - end - end - table.insert(drops, 1, user) - - - -- We now have a list of validated emails and forwards. - -- We need to check if there is a user with a claimed email - -- already before writing modifications to the LDAP. - local dn = conf["ldap_identifier"].."="..user..","..conf["ldap_group"] - local ldap = lualdap.open_simple(conf["ldap_host"], dn, cache:get(user.."-password")) - local cn = args.givenName.." "..args.sn - - for dn, attribs in ldap:search { - base = conf["ldap_group"], - scope = "onelevel", - filter = filter, - attrs = {conf["ldap_identifier"], "mail"} - } do - -- Another user with one of these emails has been found. - if attribs[conf["ldap_identifier"]] and attribs[conf["ldap_identifier"]] ~= user then - -- Construct proper emails array - local mail_list = {} - local mail_attr = attribs["mail"] - if type(mail_attr) == "string" then - mail_list = { mail_attr } - elseif type(mail_attr) == "table" then - mail_list = mail_attr - end - - for _, mail in ipairs(mail_list) do - if is_in_table(mails, mail) then - flash("fail", t("mail_already_used").." "..mail) - end - end - return redirect(conf.portal_url.."edit.html") - end - end - - -- No problem so far, we can write modifications to the LDAP - if ldap:modify(dn, {'=', cn = cn, - givenName = args.givenName, - sn = args.sn, - mail = mails, - maildrop = drops }) - then - delete_user_info_cache(user) - -- Ugly trick to force cache reloading - refresh_user_cache(user) - flash("win", t("information_updated")) - return redirect(conf.portal_url.."portal.html") - - else - flash("fail", t("user_saving_fail")) - end - else - flash("fail", t("missing_required_fields")) - end - return redirect(conf.portal_url.."edit.html") - end - end -end - --- hash the user password using sha-512 and using {CRYPT} to uses linux auth system --- because ldap doesn't support anything stronger than sha1 -function hash_password(password) - local hashed_password = secure_cmd_password("mkpasswd --method=sha-512", password) - hashed_password = "{CRYPT}"..hashed_password - return hashed_password -end - --- Compute the user login POST request --- It authenticates the user against the LDAP base then redirects to the portal -function login() - - -- We need these calls since we are in a POST request - ngx.req.read_body() - local args = ngx.req.get_post_args() - local uri_args = ngx.req.get_uri_args() - - args.user = string.lower(args.user) - - local user = authenticate(args.user, args.password) - if user then - ngx.status = ngx.HTTP_CREATED - set_auth_cookie(user, ngx.var.host) - else - ngx.status = ngx.HTTP_UNAUTHORIZED - flash("fail", t("wrong_username_password")) - end - - -- Forward the `r` URI argument if it exists to redirect - -- the user properly after a successful login. - if uri_args.r then - return redirect(conf.portal_url.."?r="..uri_args.r) - else - return redirect(conf.portal_url) - end -end - - --- Compute the user logout request --- It deletes session cached information to invalidate client side cookie --- information. -function logout() - - -- We need this call since we are in a POST request - local args = ngx.req.get_uri_args() - - -- Delete user cookie if logged in (that should always be the case) - if is_logged_in then - delete_cookie() - cache:delete("session_"..authUser) - cache:delete(authUser.."-"..conf["ldap_identifier"]) -- Ugly trick to reload cache - cache:delete(authUser.."-password") - delete_user_info_cache(authUser) - flash("info", t("logged_out")) - is_logged_in = false - end - - -- Redirect with the `r` URI argument if it exists or redirect to portal - if args.r then - return redirect(ngx.decode_base64(args.r)) - else - return redirect(conf.portal_url) - end -end - - -- Set cookie and redirect (needed to properly set cookie) function redirect(url) - logger.debug("Redirecting to "..url) + logger:debug("Redirecting to "..url) -- For security reason we don't allow to redirect onto unknown domain -- And if `uri_args.r` contains line break, someone is probably trying to -- pass some additional headers @@ -1080,8 +216,7 @@ function redirect(url) is_known_domain = is_known_domain or url:match("^https?://"..domain.."/?") ~= nil end if string.match(url, "(.*)\n") or not is_known_domain then - logger.debug("Unauthorized redirection to "..url) - flash("fail", t("redirection_error_invalid_url")) + logger:debug("Unauthorized redirection to "..url) url = conf.portal_url end return ngx.redirect(url) @@ -1090,7 +225,7 @@ end -- Set cookie and go on with the response (needed to properly set cookie) function pass() - logger.debug("Allowing to pass through "..ngx.var.uri) + logger:debug("Allowing to pass through "..ngx.var.uri) -- When we are in the SSOwat portal, we need a default `content-type` if string.ends(ngx.var.uri, "/") diff --git a/init.lua b/init.lua index 6993e53..4cef7ca 100644 --- a/init.lua +++ b/init.lua @@ -19,49 +19,15 @@ script_path = string.sub(debug.getinfo(1).source, 2, -9) package.path = package.path .. ";"..script_path.."?.lua" -- Load libraries -local json = require "json" -local lualdap = require "lualdap" -local math = require "math" -local lfs = require "lfs" -local socket = require "socket" local config = require "config" -lustache = require "lustache" + +-- Load cookie secret +cookie_secret = config.get_cookie_secret() -- Make sure the log file exists and we can write in it io.popen("touch "..log_file) io.popen("chown www-data "..log_file) io.popen("chmod u+w "..log_file) --- Persistent shared table -flashs = {} -i18n = {} - --- convert a string to a hex -function tohex(str) - return (str:gsub('.', function (c) - return string.format('%02X', string.byte(c)) - end)) -end - --- Efficient function to get a random string -function random_string() - local length = 64 - local random_bytes = io.open("/dev/urandom"):read(length); - if string.len(random_bytes) ~= length then - error("Not enough random bytes read") - end - return tohex(random_bytes); -end - --- Load translations in the "i18n" above table -local locale_dir = script_path.."portal/locales/" -for file in lfs.dir(locale_dir) do - if string.sub(file, -4) == "json" then - local lang = string.sub(file, 1, 2) - local locale_file = io.open(locale_dir..file, "r") - i18n[lang] = json.decode(locale_file:read("*all")) - end -end - -- You should see that in your Nginx error logs by default ngx.log(ngx.INFO, "SSOwat ready") diff --git a/log.lua b/log.lua deleted file mode 100644 index 9614a66..0000000 --- a/log.lua +++ /dev/null @@ -1,84 +0,0 @@ --- --- log.lua --- --- Copyright (c) 2016 rxi --- --- This library is free software; you can redistribute it and/or modify it --- under the terms of the MIT license. See LICENSE for details. --- - -local log = { _version = "0.1.0" } -local conf = config.get_config() - -log.usecolor = true -log.level = conf.logging - -local modes = { - { name = "trace", color = "\27[34m", }, - { name = "debug", color = "\27[36m", }, - { name = "info", color = "\27[32m", }, - { name = "warn", color = "\27[33m", }, - { name = "error", color = "\27[31m", }, - { name = "fatal", color = "\27[35m", }, -} - - -local levels = {} -for i, v in ipairs(modes) do - levels[v.name] = i -end - - -local round = function(x, increment) - increment = increment or 1 - x = x / increment - return (x > 0 and math.floor(x + .5) or math.ceil(x - .5)) * increment -end - - -local _tostring = tostring - -local tostring = function(...) - local t = {} - for i = 1, select('#', ...) do - local x = select(i, ...) - if type(x) == "number" then - x = round(x, .01) - end - t[#t + 1] = _tostring(x) - end - return table.concat(t, " ") -end - - -for i, x in ipairs(modes) do - local nameupper = x.name:upper() - log[x.name] = function(...) - - -- Return early if we're below the log level - if i < levels[log.level] then - return - end - - local msg = tostring(...) - local info = debug.getinfo(2, "Sl") - - -- Output to console - print(string.format("%s[%-6s%s]%s %s", - log.usecolor and x.color or "", - nameupper, - os.date("%H:%M:%S"), - log.usecolor and "\27[0m" or "", - msg)) - - -- Output to log file - local fp = io.open(log_file, "a") - local str = string.format("[%-6s%s] %s\n", - nameupper, os.date(), msg) - fp:write(str) - fp:close() - end -end - - -return log diff --git a/lustache.lua b/lustache.lua deleted file mode 100644 index 94d8a25..0000000 --- a/lustache.lua +++ /dev/null @@ -1,29 +0,0 @@ --- lustache: Lua mustache template parsing. --- Copyright 2013 Olivine Labs, LLC --- MIT Licensed. - -module('lustache', package.seeall) - -local string_gmatch = string.gmatch - -function string.split(str, sep) - local out = {} - for m in string_gmatch(str, "[^"..sep.."]+") do out[#out+1] = m end - return out -end - -local lustache = { - name = "lustache", - version = "1.3.1-0", - renderer = require("lustache.renderer"):new(), -} - -return setmetatable(lustache, { - __index = function(self, idx) - if self.renderer[idx] then return self.renderer[idx] end - end, - __newindex = function(self, idx, val) - if idx == "partials" then self.renderer.partials = val end - if idx == "tags" then self.renderer.tags = val end - end -}) diff --git a/lustache/LICENSE b/lustache/LICENSE deleted file mode 100644 index b16c8f8..0000000 --- a/lustache/LICENSE +++ /dev/null @@ -1,22 +0,0 @@ -The MIT License - -Copyright (c) 2012 Olivine Labs - -Permission is hereby granted, free of charge, to any person obtaining -a copy of this software and associated documentation files (the -"Software"), to deal in the Software without restriction, including -without limitation the rights to use, copy, modify, merge, publish, -distribute, sublicense, and/or sell copies of the Software, and to -permit persons to whom the Software is furnished to do so, subject to -the following conditions: - -The above copyright notice and this permission notice shall be -included in all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, -EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND -NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE -LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION -OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION -WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/lustache/context.lua b/lustache/context.lua deleted file mode 100644 index f8ec1a5..0000000 --- a/lustache/context.lua +++ /dev/null @@ -1,66 +0,0 @@ -local string_find, string_split, tostring, type = - string.find, string.split, tostring, type - -local context = {} -context.__index = context - -function context:clear_cache() - self.cache = {} -end - -function context:push(view) - return self:new(view, self) -end - -function context:lookup(name) - local value = self.cache[name] - - if not value then - if name == "." then - value = self.view - else - local context = self - - while context do - if string_find(name, ".") > 0 then - local names = string_split(name, ".") - local i = 0 - - value = context.view - - if(type(value)) == "number" then - value = tostring(value) - end - - while value and i < #names do - i = i + 1 - value = value[names[i]] - end - else - value = context.view[name] - end - - if value then - break - end - - context = context.parent - end - end - - self.cache[name] = value - end - - return value -end - -function context:new(view, parent) - local out = { - view = view, - parent = parent, - cache = {}, - } - return setmetatable(out, context) -end - -return context diff --git a/lustache/renderer.lua b/lustache/renderer.lua deleted file mode 100644 index 94e0cfb..0000000 --- a/lustache/renderer.lua +++ /dev/null @@ -1,388 +0,0 @@ -local Scanner = require "lustache.scanner" -local Context = require "lustache.context" - -local error, ipairs, loadstring, pairs, setmetatable, tostring, type = - error, ipairs, loadstring, pairs, setmetatable, tostring, type -local math_floor, math_max, string_find, string_gsub, string_split, string_sub, table_concat, table_insert, table_remove = - math.floor, math.max, string.find, string.gsub, string.split, string.sub, table.concat, table.insert, table.remove - -local patterns = { - white = "%s*", - space = "%s+", - nonSpace = "%S", - eq = "%s*=", - curly = "%s*}", - tag = "[#\\^/>{&=!]" -} - -local html_escape_characters = { - ["&"] = "&", - ["<"] = "<", - [">"] = ">", - ['"'] = """, - ["'"] = "'", - ["/"] = "/" -} - -local function is_array(array) - if type(array) ~= "table" then return false end - local max, n = 0, 0 - for k, _ in pairs(array) do - if not (type(k) == "number" and k > 0 and math_floor(k) == k) then - return false - end - max = math_max(max, k) - n = n + 1 - end - return n == max -end - --- Low-level function that compiles the given `tokens` into a --- function that accepts two arguments: a Context and a --- Renderer. - -local function compile_tokens(tokens, originalTemplate) - local subs = {} - - local function subrender(i, tokens) - if not subs[i] then - local fn = compile_tokens(tokens, originalTemplate) - subs[i] = function(ctx, rnd) return fn(ctx, rnd) end - end - return subs[i] - end - - local function render(ctx, rnd) - local buf = {} - local token, section - for i, token in ipairs(tokens) do - local t = token.type - buf[#buf+1] = - t == "#" and rnd:_section( - token, ctx, subrender(i, token.tokens), originalTemplate - ) or - t == "^" and rnd:_inverted( - token.value, ctx, subrender(i, token.tokens) - ) or - t == ">" and rnd:_partial(token.value, ctx, originalTemplate) or - (t == "{" or t == "&") and rnd:_name(token.value, ctx, false) or - t == "name" and rnd:_name(token.value, ctx, true) or - t == "text" and token.value or "" - end - return table_concat(buf) - end - return render -end - -local function escape_tags(tags) - - return { - string_gsub(tags[1], "%%", "%%%%").."%s*", - "%s*"..string_gsub(tags[2], "%%", "%%%%"), - } -end - -local function nest_tokens(tokens) - local tree = {} - local collector = tree - local sections = {} - local token, section - - for i,token in ipairs(tokens) do - if token.type == "#" or token.type == "^" then - token.tokens = {} - sections[#sections+1] = token - collector[#collector+1] = token - collector = token.tokens - elseif token.type == "/" then - if #sections == 0 then - error("Unopened section: "..token.value) - end - - -- Make sure there are no open sections when we're done - section = table_remove(sections, #sections) - - if not section.value == token.value then - error("Unclosed section: "..section.value) - end - - section.closingTagIndex = token.startIndex - - if #sections > 0 then - collector = sections[#sections].tokens - else - collector = tree - end - else - collector[#collector+1] = token - end - end - - section = table_remove(sections, #sections) - - if section then - error("Unclosed section: "..section.value) - end - - return tree -end - --- Combines the values of consecutive text tokens in the given `tokens` array --- to a single token. -local function squash_tokens(tokens) - local out, txt = {}, {} - local txtStartIndex, txtEndIndex - for _, v in ipairs(tokens) do - if v.type == "text" then - if #txt == 0 then - txtStartIndex = v.startIndex - end - txt[#txt+1] = v.value - txtEndIndex = v.endIndex - else - if #txt > 0 then - out[#out+1] = { type = "text", value = table_concat(txt), startIndex = txtStartIndex, endIndex = txtEndIndex } - txt = {} - end - out[#out+1] = v - end - end - if #txt > 0 then - out[#out+1] = { type = "text", value = table_concat(txt), startIndex = txtStartIndex, endIndex = txtEndIndex } - end - return out -end - -local function make_context(view) - if not view then return view end - return getmetatable(view) == Context and view or Context:new(view) -end - -local renderer = { } - -function renderer:clear_cache() - self.cache = {} - self.partial_cache = {} -end - -function renderer:compile(tokens, tags, originalTemplate) - tags = tags or self.tags - if type(tokens) == "string" then - tokens = self:parse(tokens, tags) - end - - local fn = compile_tokens(tokens, originalTemplate) - - return function(view) - return fn(make_context(view), self) - end -end - -function renderer:render(template, view, partials) - if type(self) == "string" then - error("Call mustache:render, not mustache.render!") - end - - if partials then - -- remember partial table - -- used for runtime lookup & compile later on - self.partials = partials - end - - if not template then - return "" - end - - local fn = self.cache[template] - - if not fn then - fn = self:compile(template, self.tags, template) - self.cache[template] = fn - end - - return fn(view) -end - -function renderer:_section(token, context, callback, originalTemplate) - local value = context:lookup(token.value) - - if type(value) == "table" then - if is_array(value) then - local buffer = "" - - for i,v in ipairs(value) do - buffer = buffer .. callback(context:push(v), self) - end - - return buffer - end - - return callback(context:push(value), self) - elseif type(value) == "function" then - local section_text = string_sub(originalTemplate, token.endIndex+1, token.closingTagIndex - 1) - - local scoped_render = function(template) - return self:render(template, context) - end - - return value(section_text, scoped_render) or "" - else - if value then - return callback(context, self) - end - end - - return "" -end - -function renderer:_inverted(name, context, callback) - local value = context:lookup(name) - - -- From the spec: inverted sections may render text once based on the - -- inverse value of the key. That is, they will be rendered if the key - -- doesn't exist, is false, or is an empty list. - - if value == nil or value == false or (type(value) == "table" and is_array(value) and #value == 0) then - return callback(context, self) - end - - return "" -end - -function renderer:_partial(name, context, originalTemplate) - local fn = self.partial_cache[name] - - -- check if partial cache exists - if (not fn and self.partials) then - - local partial = self.partials[name] - if (not partial) then - return "" - end - - -- compile partial and store result in cache - fn = self:compile(partial, nil, originalTemplate) - self.partial_cache[name] = fn - end - return fn and fn(context, self) or "" -end - -function renderer:_name(name, context, escape) - local value = context:lookup(name) - - if type(value) == "function" then - value = value(context.view) - end - - local str = value == nil and "" or value - str = tostring(str) - - if escape then - return string_gsub(str, '[&<>"\'/]', function(s) return html_escape_characters[s] end) - end - - return str -end - --- Breaks up the given `template` string into a tree of token objects. If --- `tags` is given here it must be an array with two string values: the --- opening and closing tags used in the template (e.g. ["<%", "%>"]). Of --- course, the default is to use mustaches (i.e. Mustache.tags). -function renderer:parse(template, tags) - tags = tags or self.tags - local tag_patterns = escape_tags(tags) - local scanner = Scanner:new(template) - local tokens = {} -- token buffer - local spaces = {} -- indices of whitespace tokens on the current line - local has_tag = false -- is there a {{tag} on the current line? - local non_space = false -- is there a non-space char on the current line? - - -- Strips all whitespace tokens array for the current line if there was - -- a {{#tag}} on it and otherwise only space - local function strip_space() - if has_tag and not non_space then - while #spaces > 0 do - table_remove(tokens, table_remove(spaces)) - end - else - spaces = {} - end - has_tag = false - non_space = false - end - - local type, value, chr - - while not scanner:eos() do - local start = scanner.pos - - value = scanner:scan_until(tag_patterns[1]) - - if value then - for i = 1, #value do - chr = string_sub(value,i,i) - - if string_find(chr, "%s+") then - spaces[#spaces+1] = #tokens + 1 - else - non_space = true - end - - tokens[#tokens+1] = { type = "text", value = chr, startIndex = start, endIndex = start } - start = start + 1 - if chr == "\n" then - strip_space() - end - end - end - - if not scanner:scan(tag_patterns[1]) then - break - end - - has_tag = true - type = scanner:scan(patterns.tag) or "name" - - scanner:scan(patterns.white) - - if type == "=" then - value = scanner:scan_until(patterns.eq) - scanner:scan(patterns.eq) - scanner:scan_until(tag_patterns[2]) - elseif type == "{" then - local close_pattern = "%s*}"..tags[2] - value = scanner:scan_until(close_pattern) - scanner:scan(patterns.curly) - scanner:scan_until(tag_patterns[2]) - else - value = scanner:scan_until(tag_patterns[2]) - end - - if not scanner:scan(tag_patterns[2]) then - error("Unclosed tag at " .. scanner.pos) - end - - tokens[#tokens+1] = { type = type, value = value, startIndex = start, endIndex = scanner.pos - 1 } - if type == "name" or type == "{" or type == "&" then - non_space = true --> what does this do? - end - - if type == "=" then - tags = string_split(value, patterns.space) - tag_patterns = escape_tags(tags) - end - end - - return nest_tokens(squash_tokens(tokens)) -end - -function renderer:new() - local out = { - cache = {}, - partial_cache = {}, - tags = {"{{", "}}"} - } - return setmetatable(out, { __index = self }) -end - -return renderer diff --git a/lustache/scanner.lua b/lustache/scanner.lua deleted file mode 100644 index 0673df1..0000000 --- a/lustache/scanner.lua +++ /dev/null @@ -1,57 +0,0 @@ -local string_find, string_match, string_sub = - string.find, string.match, string.sub - -local scanner = {} - --- Returns `true` if the tail is empty (end of string). -function scanner:eos() - return self.tail == "" -end - --- Tries to match the given regular expression at the current position. --- Returns the matched text if it can match, `null` otherwise. -function scanner:scan(pattern) - local match = string_match(self.tail, pattern) - - if match and string_find(self.tail, pattern) == 1 then - self.tail = string_sub(self.tail, #match + 1) - self.pos = self.pos + #match - - return match - end - -end - --- Skips all text until the given regular expression can be matched. Returns --- the skipped string, which is the entire tail of this scanner if no match --- can be made. -function scanner:scan_until(pattern) - - local match - local pos = string_find(self.tail, pattern) - - if pos == nil then - match = self.tail - self.pos = self.pos + #self.tail - self.tail = "" - elseif pos == 1 then - match = nil - else - match = string_sub(self.tail, 1, pos - 1) - self.tail = string_sub(self.tail, pos) - self.pos = self.pos + #match - end - - return match -end - -function scanner:new(str) - local out = { - str = str, - tail = str, - pos = 1 - } - return setmetatable(out, { __index = self } ) -end - -return scanner diff --git a/portal/assets/css/ynh_overlay.css b/portal/assets/css/ynh_overlay.css deleted file mode 100644 index 1604004..0000000 --- a/portal/assets/css/ynh_overlay.css +++ /dev/null @@ -1,182 +0,0 @@ -/* -=============================================================================== - This file contains CSS rules loaded on all apps page (*if* the app nginx's - conf does include the appropriate snippet) for the small YunoHost button in - bottom-right corner + portal overlay. - - The yunohost button corresponds to : #ynh-overlay-switch - The yunohost portal overlay / iframe corresponds to : #ynh-overlay - - BE CAREFUL that you should *not* add too-general rules that apply to - non-yunohost elements (for instance all 'a' or 'p' elements...) as it will - likely break app's rendering -=============================================================================== -*/ - -/* ****************************************************************** - General -******************************************************************* */ - -html.ynh-panel-active { - /* Disable any scrolling on app */ - overflow: hidden; - -} - -body { - overflow-y: auto; -} - -#ynh-overlay-switch, -#ynh-overlay-switch *, -#ynh-overlay, -#ynh-overlay * { - -webkit-box-sizing: border-box; - -moz-box-sizing: border-box; - box-sizing: border-box; -} - - -/* ****************************************************************** - Button -******************************************************************* */ -#ynh-overlay-switch { - display: block; - position: fixed; - z-index: 10000000; - bottom: 20px; - right: 35px; - width: 100px; - height: 90px; - padding: 12px; - border: 12px solid #41444f; - border-radius: 5px; - background: #41444f; - background-image: url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4KPCEtLSBHZW5lcmF0b3I6IEFkb2JlIElsbHVzdHJhdG9yIDE1LjAuMCwgU1ZHIEV4cG9ydCBQbHVnLUluICAtLT4KPCFET0NUWVBFIHN2ZyBQVUJMSUMgIi0vL1czQy8vRFREIFNWRyAxLjEvL0VOIiAiaHR0cDovL3d3dy53My5vcmcvR3JhcGhpY3MvU1ZHLzEuMS9EVEQvc3ZnMTEuZHRkIiBbCgk8IUVOVElUWSBuc19mbG93cyAiaHR0cDovL25zLmFkb2JlLmNvbS9GbG93cy8xLjAvIj4KXT4KPHN2ZyB2ZXJzaW9uPSIxLjEiCgkgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIgeG1sbnM6YT0iaHR0cDovL25zLmFkb2JlLmNvbS9BZG9iZVNWR1ZpZXdlckV4dGVuc2lvbnMvMy4wLyIKCSB4PSIwcHgiIHk9IjBweCIgd2lkdGg9Ijk4cHgiIGhlaWdodD0iODVweCIgdmlld0JveD0iLTAuMjUgLTAuMjUgOTggODUiCgkgb3ZlcmZsb3c9InZpc2libGUiIGVuYWJsZS1iYWNrZ3JvdW5kPSJuZXcgLTAuMjUgLTAuMjUgOTggODUiIHhtbDpzcGFjZT0icHJlc2VydmUiPgo8ZGVmcz4KPC9kZWZzPgo8cGF0aCBmaWxsPSIjRkZGRkZGIiBkPSJNOTcsNTFjLTIuMDIsNC45OC04LjMzLDUuNjctMTQsN2MtMC42MDksNi4yOSwzLjA1LDEwLjk1LTEsMTZjLTYuNDEtMC4yNi03LjQ3MS01Ljg1OS03LTEzYy0xLDAtMiwwLTMsMAoJYy0yLjA5LDIuNzcsMC45LDQuNTIsMCw4Yy0xLjEyLDQuMzQtNy44OCw3LjkxLTExLDdjLTIuMTgtMC42NDEtNS45Ni02LjYzLTUtMTJjMi44Mi0yLjcxLDIuNzYsMy4xMiw2LDNjNS4wNS03Ljg0LTkuNjMtOC41NS04LTE3CgljMS4yNC02LjQyLDExLjY2LTkuNjYsMTUtMWMxLjU0LDQuMjEtNS4xNywwLjE2LTUsM2MtMC4yNzksMS42MiwwLjk1LDEuNzIsMSwzYzIuNTIsMC43NywxLjY4LTIuMTYsMy0zYzEuODU5LTEuMTcsMy4wOS0wLjc1LDYtMQoJYzIuNDUtMi41NSwxLjA4LTguOTIsNC0xMWMzLjg3LDAuNDYsNi4wOCwyLjU5LDYsN0M5MS4wMSw0Ni4xMDksOTQuMyw0Ni4wNSw5Nyw1MXoiLz4KPHBhdGggZmlsbD0iI0ZGRkZGRiIgZD0iTTg3LDEzYzAuNjA5LDMuMjEsMi4zMiw0Ljk4LDIsOGMtMC4zNCwzLjIxLTIuOSw4LjgzLTQsOWMtMS4xNywwLjE4LTEuMzQsMS43OC0yLDIKCWMtNC42NiwxLjU3LTEyLjM5MS0xLjQ4LTE0LTdjLTEuMTYtMy45NywxLjktMTMuMzcsNC0xN2MxLjMtMi4yNSwxLjIyMS0yLjk5LDUtNGMyLjQxLTAuNjUsMy42NS0yLjI1LDYsMAoJYzAuNDcxLDAuNDUsMS4zLDAuNDksMS44NSwwLjg5Yy0wLjE5OSwwLDIsMy4xNCwyLjE1LDQuMTFDODguMzIsMTEuMDcsODYuNzcsMTEuNzgsODcsMTN6IE03OSwyMmMxLjc3OS0xLjg5LDMuMjktNC4wNCwzLTgKCUM3Ny40OSwxMi4zMyw3NC42NywyMS4zLDc5LDIyeiIvPgo8cGF0aCBmaWxsPSIjRkZGRkZGIiBkPSJNNjcsMjFjLTAuMDcsNS44MSwyLjQ4LDEwLjcsMCwxNWMtNi43MywxLjA2LTcuMjQtNC4xLTExLTZjLTEuOTM5LDEuMzktMS40OSw1LjE4LTMsNwoJYy0zLjc4LDAuNDQtNC42OS0xLjk3LTctM2MyLjQ3LTcuODEsMS4yNi0xOC45OCwyLTI2YzguNTgtMC41OCw3LjY4LDguMzIsMTIsMTJjMC41Mi00LjM0LTAuMzU5LTE1LjUyLDMtMjAKCUM3MC4zMywzLjI5LDY3LjA5LDEyLjk5LDY3LDIxeiIvPgo8cGF0aCBmaWxsPSIjRkZGRkZGIiBkPSJNNTIsNTVjMS45Myw4LjQxLDAuMTIsMjIuNjg5LTEyLDIwYy0xLjU5LTAuMzUtOC40Mi01LjIyLTktN2MtMS42Mi01LDAuMzQtMTMuMzQsMy0xNgoJQzM5LjAzLDQ2Ljk3LDQ1LjQ4LDUwLjM1OSw1Miw1NXogTTM5LDY2YzQuNTUsMC45Niw2LjMtNC4yLDQtN0MzOS4zNyw1OS4wMywzOC42MSw2MS45MzksMzksNjZ6Ii8+CjxwYXRoIGZpbGw9IiNGRkZGRkYiIGQ9Ik0zOSw4YzUuNTgsMC45LDYuNCw2LjgxLDUsMTVjLTEuNDMsOC4zOC0zLjAyLDE0LjU5LTksMTVjLTkuNTcsMC42NS0xMi4yNS0xNi42OS05LTI5CgljOC4zMiwxLjI3LDYuNTksMTAuMzYsNiwxN2MyLjcxLDAuODMsMi4yLTAuODUsMy0yQzM3LjA1LDIxLjA0LDM3LjgyLDEzLjYxLDM5LDh6Ii8+CjxwYXRoIGZpbGw9IiNGRkZGRkYiIGQ9Ik0yOCw2MmMwLjEsNS42Nyw0LjQsMTEuMzMsMiwxN2MtNC4zMi0xLjAxLTYuNTctNC4wOS05LTdjLTMuMTUtMC40OC0yLjI2LDMuMDctNiwyCgljLTAuNjcsNS4wNjEsMi4yOSw3LjU3LTEsMTBjLTQuNy0wLjYzLTYuNjYtNC04LThjLTIuNjEtMS4zOC01LjQ4LTIuNTItNi02YzAuMTQtMy41Myw0LjQ4LTIuODUsNy00YzAuNDctNS41My0xLjQxLTEzLjQxLDItMTYKCWM4LjMxLDAuNDksOC4yMSw3LjEzLDcsMTVjNC4zNiwwLjI5LDQuOTQtNC4zNSw1LTdjMC4wNi0yLjQzLTEuODItOC4yNiwyLTExYzMuMDYtMC43MywyLjk0LDEuNzMsNiwxCglDMzIuMzUsNTIuNywyNy45Miw1Ny40MzksMjgsNjJ6Ii8+CjxwYXRoIGZpbGw9IiNGRkZGRkYiIGQ9Ik0yNCwxMmMxLjA3LDcuMDctMy44Niw4LjE0LTYsMTJjMC4yMSw2Ljg4LTAuNDcsMTIuODYtMiwxOGMtNS44Ni0xLjMyLTguNy0xMC4zOC02LTE3CgljLTAuMzMtMy41Mi01LjI2LTQuMjItNy04Yy0wLjMtMC42Ni0wLjQ3LTQuNDMtMS03QzEuMDksNS42MywwLjU1LDQuMzEsMywxYzguMTYtMC40OSw3LjIxLDguMTMsOSwxNGM1LjA1LDAuMzksMy45MS01LjQyLDgtNgoJQzIwLjk4LDEwLjM1LDIyLjY3LDExLDI0LDEyeiIvPgo8L3N2Zz4K); - background-position: center center; - background-repeat: no-repeat; - background-size: contain; - opacity: 0.7; -} -/*#ynh-overlay-switch.visible,*/ -#ynh-overlay-switch:hover { - background-color: #41444f; - border-color: #41444f; - background-color: #111; - border-color: #111; -} - - -/* ****************************************************************** - Overlay -******************************************************************* */ - -/* Background */ -#ynh-overlay { - overflow-y: hidden; - position: fixed; - top:0; - left: 0; - width: 100%; - height: 100%; - z-index: 9999999; - display: none; - border: none; - color:#fff; - background: #41444F; - transition: all 0.2s ease; - -moz-transition: all 0.2s ease; - -webkit-transition: all 0.2s ease; -} - - -/* ****************************************************************** - Animation -******************************************************************* */ - -/*FadeIn*/ -@-webkit-keyframes ynhFadeIn { - 0% { - visibility: hidden; - opacity:0; - } - 100% { - visibility: visible; - opacity: 1; - } -} -@keyframes ynhFadeIn { - 0% { - visibility: hidden; - opacity: 0; - } - 100% { - visibility: visible; - opacity: 1; - } -} - -.ynh-fadeIn { - -webkit-animation-name: ynhFadeIn; - animation-name: ynhFadeIn; - -webkit-animation-duration: 0.5s; - animation-duration: 0.5s; - -webkit-animation-fill-mode: both; - animation-fill-mode: both; - -webkit-animation-timing-function: cubic-bezier(0.165, 0.840, 0.440, 1.000); - animation-timing-function: cubic-bezier(0.165, 0.840, 0.440, 1.000); -} -/* -.ynh-fadeIn.ynh-delay { - animation-delay: 0.5s; - -webkit-animation-delay: 0.5s; -} -*/ - -/*FadeOut*/ -@-webkit-keyframes ynhFadeOut { - 0% { - visibility: visible; - opacity: 1; - } - 100% { - visibility: hidden; - opacity: 0; - } -} -@keyframes ynhFadeOut { - 0% { - visibility: visible; - opacity: 1; - } - 100% { - visibility: hidden; - opacity: 0; - } -} -.ynh-fadeOut { - -webkit-animation-name: ynhFadeOut; - animation-name: ynhFadeOut; - -webkit-animation-duration: 0.2s; - animation-duration: 0.2s; - -webkit-animation-fill-mode: both; - animation-fill-mode: both; -} -/* -.ynh-fadeOut.ynh-delay { - animation-delay: 0.5s; - -webkit-animation-delay: 0.5s; -} -*/ - - -/* ****************************************************************** - Media Queries -******************************************************************* */ - -@media screen and (max-width: 500px) { - #ynh-overlay-switch { - width: 80px; - height: 75px; - } -} \ No newline at end of file diff --git a/portal/assets/css/ynh_portal.css b/portal/assets/css/ynh_portal.css deleted file mode 100644 index 4a580a6..0000000 --- a/portal/assets/css/ynh_portal.css +++ /dev/null @@ -1,828 +0,0 @@ -/* -=============================================================================== - This file contain CSS rules loaded on the YunoHost user portal. -=============================================================================== -*/ - -/* ========================================================================== - 0 = Fonts - 1 = Global - 2 = Apps - 3 = User - 4 = Form - 5 = Footer - 6 = Colors - 7 = Internet Explorer - ========================================================================== */ - -/* ========================================================================== - 0 = Fonts - ========================================================================== */ -@font-face { - font-family: 'ynh_ssowat'; - src: url('../fonts/ynh_ssowat/ynh_ssowat.eot'); -} - -@font-face { - font-family: 'ynh_ssowat'; - src: url(data:application/x-font-ttf;charset=utf-8;base64,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) format('truetype'), - url(data:application/font-woff;charset=utf-8;base64,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) format('woff'); - font-weight: normal; - font-style: normal; -} - -@font-face { - font-family: 'source_sans_probold'; - src: url('../fonts/sourcesanspro-bold-webfont.eot'); - } - -@font-face { - font-family: 'source_sans_probold'; - src: url(data:application/x-font-woff;charset=utf-8;base64,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) format('woff'), - url('../fonts/sourcesanspro-bold-webfont.ttf') format('truetype'); - font-weight: normal; - font-style: normal; -} - -@font-face { - font-family: 'source_sans_proregular'; - src: url('../fonts/sourcesanspro-regular-webfont.eot'); - } - -@font-face { - font-family: 'source_sans_proregular'; - src: url(data:application/x-font-woff;charset=utf-8;base64,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) format('woff'), - url('../fonts/sourcesanspro-regular-webfont.ttf') format('truetype'); - font-weight: normal; - font-style: normal; -} - -/* ========================================================================== - 1 = Global - ========================================================================== */ - -* { - -webkit-box-sizing: border-box; - -moz-box-sizing: border-box; - box-sizing: border-box; -} - -html { - font-family: sans-serif; /* 1 */ - -ms-text-size-adjust: 100%; /* 2 */ - -webkit-text-size-adjust: 100%; /* 2 */ - height: 100%; -} - -body { - background: #41444f; - font-family: 'source_sans_proregular'; - font-size: 1em; - line-height:1.5; - margin: 0; - padding: 0; - height: 100%; - top: 0; - position: absolute; - width: 100%; -} - -h1:first-child, -h2:first-child, -h3:first-child, -h4:first-child, -h5:first-child, -h6:first-child, -p:first-child, -ul:first-child, -ol:first-child, -dl:first-child{ - margin-top: 0; -} - - - - -/* Responsive image */ -img { - max-width: 100%; - height :auto; -} - -.element-invisible { - border: 0; - clip: rect(0 0 0 0); - height: 1px; - margin: -1px; - overflow: hidden; - padding: 0; - position: absolute; - width: 1px; -} - - -/* Layout */ -.content { - padding: 2%; -} - -.logged .content { - width: 100%; - height: 100%; - overflow: auto; /* scroll .content, not body for easier background customization */ -} - -.ynh-wrapper { - width: 90%; - margin: 2% 5%; - position: relative; - z-index: 1; -} -.ynh-wrapper:before, -.ynh-wrapper:after {content: " ";display: table;} -.ynh-wrapper:after {clear: both;} - -/* Logo */ -.ynh-logo { - opacity: 0.7; - margin-top: 6em; - width: 100%; - height: 9em; - background-image: url("../img/logo-ynh-white.svg"); - background-repeat: no-repeat; - background-position: center 100%; - background-size: contain; -} - -.logged .ynh-logo { - position: fixed; - width: 5em; - height: 5em; - bottom: 20px; - right: 20px; - z-index: 0; - opacity: 0.7; - background-position: center center; -} - -.ynh-panel-active .ynh-logo { - display: none; -} - -.in_app_overlay .ynh-logo { - display: none; -} - -/* messages */ -.messages { - color: #FFF; - margin-bottom: 1em; - text-align: center; - max-width: 21em; - margin: 2% auto 1em auto; - padding: 1.5em; -} -.messages.danger { background: #c0392b; } -.messages.warning { background: #e67e22; } -.messages.success { background: #27ae60; } -.messages.info { background: #2980b9; } - -.logged .messages { - max-width: none; - margin: 2% 5%; - padding: 1.5em 15%; -} - - -/* Fonts & Colors */ - -a { text-decoration: none; } - -h1, -h2, -h3, -h4, -h5, -h6 { - font-family: 'source_sans_probold'; - font-weight: normal; -} - -/* headings */ -h1, -.h1 { - font-size: 2.5em; -} - -h2, -.h2 { - font-size: 1.8em; -} - -.cwhite { - color: #fff; -} - -select, -.form-text, -textarea { - border: 0; - font-family: 'source_sans_proregular'; -} - - -/* Icons */ - -[class^="icon-"]:before, [class*=" icon-"]:before { - font-family: 'ynh_ssowat'; - font-size: 1em; - speak: none; - font-style: normal; - font-weight: normal; - font-variant: normal; - text-transform: none; - line-height: 1; - margin-right: 0.5em; - - /* Better Font Rendering =========== */ - -webkit-font-smoothing: antialiased; - -moz-osx-font-smoothing: grayscale; -} - -.icon-user:before { content: '\e801'; } -.icon-lock:before { content: '\e800'; } -.icon-connexion:before { content: '\e802'; } -.icon-pencil:before { content: '\e804'; } -.icon-trash:before { content: '\e80c'; } -.icon-angle-left:before { content: '\e803'; } - - -/* ========================================================================== - 2 = Apps - ========================================================================== */ - -.apps { margin: 4% 5%; } - -.listing-apps { - margin: 0; - padding: 0; - letter-spacing: -5px; /*fix bug ff PC*/ - font-family: 'source_sans_probold'; -} - -.listing-apps li { - display: inline-block; - vertical-align: top; - letter-spacing: normal; - list-style: none; - margin: 0 0 1em 1em; - box-shadow: 2px 2px 3px rgba(0, 0, 0, 0.4), - -2px -2px 3px 0 rgba(0, 0, 0, 0.7) inset; -} - -.listing-apps a { - display: block; - position: relative; - padding: 0.2em; - top: 0; - left: 0; - width: 2.7em; - height: 2.7em; - background: #666; - color: #fff; - font-size: 4em; - transition: all 0.3s ease; - -webkit-transition: all 0.3s ease; -} - .listing-apps a:hover, - .listing-apps a:focus { - left: -10px; - top: -10px; - box-shadow: none; - } - .listing-apps a:hover:before, - .listing-apps a:focus:before { - height: 10px; - } - .listing-apps a:hover:after, - .listing-apps a:focus:after { - width: 10px; - } - - .listing-apps a:hover:after, - .listing-apps a:focus:after, - .listing-apps a:hover:before, - .listing-apps a:focus:before { - background: #333; - } - - .listing-apps a:after, - .listing-apps a:before { - content: ""; - position: absolute; - transition: all 0.3s ease; - -webkit-transition: all 0.3s ease; - } - - .listing-apps a:before { - width: 100%; - height: 0; - left: 5px; - top: 100%; - box-shadow: 0 5px 10px rgba(0, 0, 0, 0.4); - transform: skew(45deg, 0deg); - -webkit-transform: skew(45deg, 0deg); - } - - .listing-apps a:after { - width: 0; - height: 100%; - left: 100%; - top: 5px; - box-shadow: 5px 0 10px rgba(0, 0, 0, 0.4); - transform: skew(0deg, 45deg); - -webkit-transform: skew(0deg, 45deg); - } - - .listing-apps span { - display: block; - margin: -1.2em 0 0 0.2em; - } - .listing-apps .first-letter { - margin: 0; - display: inline-block; - } - .listing-apps .name { - font-family: 'source_sans_proregular'; - font-size: 0.3em; - } - -@media screen and (max-width: 450px) { - .apps {margin: 10% 5%;} - .listing-apps a {font-size: 3em;} - .listing-apps span + span { font-size: 0.32em; } - .listing-apps a:hover, - .listing-apps a:focus {left: -5px;top: -5px;} - .listing-apps a:hover:before, - .listing-apps a:focus:before {height: 5px;} - .listing-apps a:hover:after, - .listing-apps a:focus:after {width: 5px;} - .listing-apps a:before {left: 3px;box-shadow: 0 3px 5px rgba(0, 0, 0, 0.4);} - .listing-apps a:after {top: 3px;box-shadow: 3px 0 5px rgba(0, 0, 0, 0.4);} -} -@media screen and (max-width: 350px) { - .listing-apps a { - width: 2.5em; - height: 2.5em; - font-size: 2.8em; - } -} - - -/* ========================================================================== - 3 = User - ========================================================================== */ - -.user-container { - display:block; - position: relative; - max-width: 320px; - padding: 0.4em 1em; - color: #fff; -} - -.user-container-edit:after, -.user-container-password:after { - content: '\e803'; - font-family: 'ynh_ssowat'; - display: block; - height: 1em; - width: 1em; - position: absolute; - top: 50%; - left: -16px; - z-index: 0; - margin-top: -0.75em; - font-size: 2em; - font-weight: normal; - color: #b4b4b4; - opacity: 0; - transition: all 0.1s ease; - -webkit-transition: all 0.1s ease; -} -.user-container-edit:hover:after, -.user-container-password:hover:after { - left: -20px; - opacity: 1; -} -@media screen and (max-width: 480px) { - .user-container-edit:after, - .user-container-password:after {left: -10px;} - .user-container-edit:hover:after, - .user-container-password:hover:after {left: -14px;} -} - -.user-container:before { - display: block; - position: relative; - z-index: 1; - float: left; - margin-right: 10px; - content: '\e801'; - display: block; - font-family: 'ynh_ssowat'; - font-size: 4em; - text-align: center; - border: 3px solid #fff; - width: 1em; - height: 1em; - border-radius: 90px; - background: #b4b4b4; - color: #dedede; - overflow: hidden; - transition: all 0.1s ease; - -webkit-transition: all 0.1s ease; -} -.user-container:hover:before { - color: #fff; -} - -.user-container .user-username { - font-size: 1.5em; - margin: 0; -} - -.user-container .user-fullname { - font-size: 1em; - font-family: 'source_sans_proregular'; - display: block; - margin-top: -0.6em; -} - - -.user-container-info .user-username:after { - content: '\e804'; - font-family: 'ynh_ssowat'; - color: #b4b4b4; - display: inline-block;vertical-align: text-top; - font-size: 0.8em; - width: 1em; - height: 1em; - margin-left: .5em; - opacity: 0; - transition: all 0.1s ease; - -webkit-transition: all 0.1s ease; -} -.user-container-info:hover .user-username:after {opacity: 1;} - -.user-container .user-mail { - color: #999; - font-size: 0.9em; - display: block; - margin-top: -0.2em; -} - -/* User menu */ -.user-menu { - float: right; - margin: 0; - padding: 0; -} - .user-menu li { - list-style: none; - } - .user-menu a { - color: #999; - display: block; - padding: 1.25em 1em; - position: relative; - z-index: 1; - transition: all 0.1s ease; - -webkit-transition: all 0.1s ease; - } - .user-menu a:hover, - .user-menu a:focus { - color: #fff; - } - -@media screen and (max-width: 480px) { - .user-menu { - float: none; - } -} - - - -/* ========================================================================== - 4 = Forms - ========================================================================== */ - -button, -input, -select, -textarea { - font-family: inherit; - font-size: 100%; - margin: 0; -} - -input[type="search"] { - -webkit-appearance: textfield; -} -[type="submit"], -[type="password"], -[type="email"], -[type="text"] { - /* <3 Apple */ - -webkit-appearance: none; - -webkit-border-radius:0; -} - -input::-moz-focus-inner { - border: 0; - padding: 0; -} - -@media screen and (-webkit-min-device-pixel-ratio:0){ - select{ - -webkit-appearance: none; - border-radius: 0; - } -} - -.form-text { - padding: 0.8em; - width: 100%; -} - - -.form-section { - display: inline-block; - vertical-align: top; - width: 47%; -} -.form-section + .form-section {margin-left: 5%;} - -@media screen and (max-width: 768px) { - .form-section {width: 100%;} - .form-section + .form-section {margin-left: 0;} -} - -label { - display: inline-block; - padding: 0.3em 1em; - background: #30333b; - color: #fff; - font-size: 1.2em; - margin-top: 1em; - font-family: 'source_sans_probold'; - font-weight: normal; -} -label {cursor: pointer;} - -label + .help-link { - display: inline-block; - padding: 0.3em 1em; - font-size: 1.2em; - background: #41444f; - color: #fff; - font-weight: bold; - transition: all 0.1s ease; - -webkit-transition: all 0.1s ease; -} -label + .help-link:hover {background: #30333b;} - -.form-group { - background: none; - margin-bottom: 2em; -} - -.form-text { - border: 0; - background: #797b83; - color: #fff; - padding: 0.8em; - margin-bottom: 0.3em; - display: block; - position: relative;z-index: 1; /* prevent strange label overlap */ - transition: all 0.1s ease; - -webkit-transition: all 0.1s ease; -} -.form-test:-moz-placeholder{color:#ccc;} -.form-text::-moz-placeholder{color:#ccc;} -.form-text:-ms-input-placeholder{color:#ccc;} -.form-text::-webkit-input-placeholder{color:#ccc;} -:empty:invalid {box-shadow: none;} - -.form-text:last-child {margin-bottom:0;} - -.form-text:hover, -.form-text:focus { - background-color: #5d5f68; -} - -.form-text:disabled { color: #ccc; } -.form-text:disabled:hover {background-color:rgba(255, 255, 255, 0.3);} -input:disabled { - cursor: not-allowed; -} - -@media screen and (max-width: 480px) { - label, - label + .help-link {padding: 0.3em 0.8em;} - .form-text {padding: 0.8em;} - .form-group .btn {padding: 0.5em 0.8em;} -} - - - -/* Buttons */ -.btn { - background: #999; - display: inline-block; - padding: 0.5em 1em; - line-height: normal; - text-decoration: none; - color: #FFF; - cursor: pointer; - transition: all 0.1s ease; - -webkit-transition: all 0.1s ease; -} - -.large-btn { - padding: 0.8em 1.5em; - font-size: 1.1em; -} - -button.btn, -input.btn { - border:0; - cursor:pointer; -} - - .btn:hover, - .btn:focus { - background: #AAA; - } - -.important-btn { background: #c0392b;} - .important-btn:hover, - .important-btn:focus {background: #e74c3c;} - -.validate-btn { background: #27ae60;} - .validate-btn:hover, - .validate-btn:focus {background: #2ecc71;} - -.warning-btn { background: #e67e22;} - .warning-btn:hover, - .warning-btn:focus {background: #f39c12;} - -.classic-btn { background: #2980b9;} - .classic-btn:hover, - .classic-btn:focus {background: #3498db;} - -.link-btn { background: none;} - .link-btn:hover, - .link-btn:focus {background: #41444f;text-decoration: underline;} - - -.btn-group { - margin: 4em 0; - text-align: right; -} - -/* Login form */ - -.login-form { - max-width: 21em; - margin: 0 auto; -} - -.login-form .btn { - width: 100%; - padding: 0.8em 1em; -} - -.login-form .form-group { - position: relative; - margin-bottom: 1em; - background: #fff; -} - - .login-form label { - display: block; - min-width: 1em; - margin: 0; - padding: 0; - font-size: 1em; - } - - .login-form label:before { - background: #eee; - color: #666; - position: absolute; - z-index: 2; - top: 0; - left: 0; - width: 2.5em; - height: 100%; - line-height: 3em; - text-align: center; - } - - .login-form .form-text { - padding: 0.8em 0.8em 0.8em 3em; - width: 100%; - background: #fff; - color: #41444f; - } - .login-form .form-test:-moz-placeholder{color:#999;} - .login-form .form-text::-moz-placeholder{color:#999;} - .login-form .form-text:-ms-input-placeholder{color:#999;} - .login-form .form-text::-webkit-input-placeholder{color:#999;} - - -/* Edit form*/ - -.form-edit .form-group .btn:before { - content:"+"; - display: inline-block; - padding-right: 0.75em; - font-weight: bold; -} - - -@media screen and (min-width: 768px) { - .form-edit .btn-group { - float: right; - } - .form-edit .btn-group + .btn-group { - float: left; - } -} - - -/* ========================================================================== - 5 = Footer - ========================================================================== */ - -.footer { - display: inline-block; - width: auto; -} - .footer nav { - margin: 0 1em; - padding: 0.25em; - border-top: 1px solid #666; - font-size: 0.9em; - } - - .footer a { - display: inline-block; - vertical-align: top; - color: #999; - } - .footer a:before { - content: "•"; - display: inline-block; - vertical-align: top; - padding: 0 0.5em 0 0.25em; - color: #666; - } - .footer a:first-child:before {content: none;} - - .footer a:hover, - .footer a:active { - color: #fff; - text-decoration: none; - } - -@media screen and (max-width: 480px) { - .footer a { - display: block; - } - .footer a:before { - content: none; - } -} - -/* ========================================================================== - Internet Explorer - ========================================================================== */ - -/*IE8 and IE9*/ - -article, -aside, -details, -figcaption, -figure, -footer, -header, -hgroup, -main, -nav, -section, -summary { - display: block; -} diff --git a/portal/assets/fonts/sourcesanspro-bold-webfont.eot b/portal/assets/fonts/sourcesanspro-bold-webfont.eot deleted file mode 100755 index bbbe8ee02c9ec4bf0e2e06b864c16254e74bbdcf..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 26647 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 diff --git a/portal/assets/fonts/sourcesanspro-bold-webfont.ttf b/portal/assets/fonts/sourcesanspro-bold-webfont.ttf deleted file mode 100755 index 8ced94fb5f0d5e32a60051d990d7271d512920aa..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 65004 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%0DCrGLyi=27?Mk6E;3>gd6JZ?JAINdzoL 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 T;!g+>Ra1z8KUwSQcibU>Oe$id diff --git a/portal/assets/fonts/sourcesanspro-regular-webfont.ttf b/portal/assets/fonts/sourcesanspro-regular-webfont.ttf deleted file mode 100755 index b9d2b7a385d7610a934e42dad1045262a83861e9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 66144 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 diff --git a/portal/assets/fonts/ynh_ssowat/ynh_ssowat.eot b/portal/assets/fonts/ynh_ssowat/ynh_ssowat.eot deleted file mode 100644 index 837707159cc1f686583112875ff2cd25c83a09ca..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5680 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 - - -Copyright (C) 2014 by original authors @ fontello.com - - - - - - - - - - - - - \ No newline at end of file diff --git a/portal/assets/fonts/ynh_ssowat/ynh_ssowat.ttf b/portal/assets/fonts/ynh_ssowat/ynh_ssowat.ttf deleted file mode 100644 index 60690e42995d4782bb65bcf80bcc77e2a2dcd0d1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5504 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 diff --git a/portal/assets/fonts/ynh_ssowat/ynh_ssowat.woff b/portal/assets/fonts/ynh_ssowat/ynh_ssowat.woff deleted file mode 100644 index a7333a42a539b27263161ab1de424b1ab4a9d78d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3456 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 a&YEDrIfbZMfYAgYh1bBI*OH%aQU3#6*Z$l9 diff --git a/portal/assets/icons/apple-touch-icon-114x114.png b/portal/assets/icons/apple-touch-icon-114x114.png deleted file mode 100644 index 45d121c9ba9e8f76a4aca103d13bb31d3204260c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 9826 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 diff --git a/portal/assets/icons/apple-touch-icon-144x144.png b/portal/assets/icons/apple-touch-icon-144x144.png deleted file mode 100644 index 16f32b39fee33eefe242e290f17c80463884cec3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 13116 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 diff --git a/portal/assets/icons/apple-touch-icon-152x152.png b/portal/assets/icons/apple-touch-icon-152x152.png deleted file mode 100644 index f3c0294cf49bdc1ee1ba166080edec55385c9990..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 14071 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

o5frVhDlA&T!8r(MMNV`TU%o zNL9aEDyHcDZ{Rs4v!3HNi`4DsmcM@f{I)8F8~DC|@U=Q^R71#Ik;|)qcb@!50+tttVyM0Dm*SH=JL6Xl8HHc~* z>fC{WDe-1&pH{XGvUmP=yZNc0;HO9Xvk&c8P>70@i6!&X&of@7Eps6q$!F782dBeG zP7}k67&_0QT1-YyUFSe<-XUP3e%mnOx3)M=I?kx>hWUy)L>$QR3#b|fw)j45JV6O( z7_h~^!(}EFe~g%7%tRpQwI8Jy_AjUH0R+gvU|ujjo+ataj4xUQ(RnTOtr11dEaX55 zJ)_e}{%^CgeV10+E+ekR?AqbkyEDy8rYO?%!W<(*L*6IN-sPoVe6_v`e!ZvIOz8gM zu(meBf*{!gL&2|RP|sB44-Wi=MQz{wSQlbUe7B<7)|%MoH0yAW>5nTnm%em${22$3Z}aRXNG#J+IZ=kO<}ZJku0jGrr2T3XuRfg3BUq+R*itX^wt znCtgZ1mRtjDiv=sQ}jhP!V(uD)K!`6*}iCdn+$`RoPCl z?>yIBPr;V~PDxSh*MT(f-bv{TSsiyE%tc+QOVsSTCJPEVnlX20fD>rB7jIo(l(56J zUjkAS7B&KlG)WFXx5fvX7OYLwnCj~k`E|I`Sp<`c2)JXD#;rYvMF$29nICSJ_BwI& z^k|KZ&6da6+RmJ<7AXSBpQGcx`eAp{4X2$bJ%)VsfYeASjIq0&BU{y_gL24gpGaci zm+@au!zKWK>QpZ-Y*ToZ|2b2Hy{rh!p$6A`=BHNuK#=x1H45E-)PY*l18U-8)3 zu)Daq<@Es!f=BKkS1Jl8W3Zd=0XV(t;?)t%__?`B_%%28e2dn)M${&koyv5~ZO1UV zS36HNdw7@{Pq;SsYW7GwQV4)z+)9W z6cT|^hu`l4aCCPXlj1I~?^9Q3j&ms)^lmn@v-^Hdm1DB^tls+j=&0>J&X>ucZLY6J zHFzH&n5bfIunJu=gi1U`n0SU$gc*%%nGK1OU1nr9{6?F(wJZFZ{AKQ$V-gw z`-0l$MiEgLq!|YAzP!x>c{r>ek5?oh5QvY~;=w!D#sbcPFxqk(5xd77u-C1x^vKGa}&yn7LniKk%K-J&H=Q z-9c6YR#`=IYm>I>N*+rf%?z|oQ9)TcguU!np8I@CKo3V=Fe6xAtD%TZ#b3L8kIUYjH!+-)N+_4`rbYWQqduPEbBYNc7T z9kt!Bqi)9N>{wunc^<0&qQRxQiqFsfx4zQy_q3rDfzLr0+?{+%uPvQ;}9wk&_pbmQ|6K lK8+O3`#%G`d|W(SL;wE)@jRKp5(WrlsAsBMtNm~E{{Y<*b3_0D diff --git a/portal/assets/icons/apple-touch-icon-60x60.png b/portal/assets/icons/apple-touch-icon-60x60.png deleted file mode 100644 index a41fe8c5c2eea30138f40a47cd7c9d2f996c53cf..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4617 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 aXs3Yx-yw=84d~y1KnQhRwHg(h@c#kZ$;cD{ diff --git a/portal/assets/icons/apple-touch-icon-72x72.png b/portal/assets/icons/apple-touch-icon-72x72.png deleted file mode 100644 index fd6b339620eb310bfe367e3f8adf35cafe1b9fa4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5664 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 a?k*w!{|#~6D4^pG0_nkwwW>58NBs{=J)o=r diff --git a/portal/assets/icons/apple-touch-icon-precomposed.png b/portal/assets/icons/apple-touch-icon-precomposed.png deleted file mode 100644 index a5ffdadfc7fdffffdbfe06340e84ec3acfade2de..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 14695 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%0DhvnOw!Q?f`x6@ZN-jqE>mY3=dkjgtb35YYD= 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 - - - - - - - - #da532c - - - diff --git a/portal/assets/icons/favicon-160x160.png b/portal/assets/icons/favicon-160x160.png deleted file mode 100644 index dcfd55a3a05a6c3a3f7a6580d1e189dc190befb3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 15011 zcmb7rWmJ@3)Gs9hN~bh9#Gmf&?vm~X=?+OrX#wd50qK%%DUk;01}TvkhR%CznbDn+n{?&<6Q;|hSBSwRRgF}~>lhOc>`Olvy$l(8&2^(hcfMg@CEDi@( zm+;?Fm(n3x{84m6PEgW2M7#!R!_*U>f9GoW`9Nb@1I5>fHI5^5~F@B?IX zMOi7hr{{n9ou$d(JE$&ldhXz_%|Cy_OVDTez`^ks%S(xC`YauFdb=Cir0(9dvvf*Z zQ*R2xf6(Bfwo+tRo?V?0<`k|IWY4qi9vkc*^g02>ZPYvI7u|6T{5Q&7 zm57=YUno&Z16YIbPj5QHB;dE|AW$g;; zWGwKa2WY8C!YEO$1B{(k+j?aw)~p>JLn#9Nd;0%yWhh;KXFXYn$talABCUTyidu(3$VIzIiC{rrae9Y35iAP9+xE^fz20o0KoQ?~o@wr>W zb+5|`&Hg!RDy2D8EA@b%fwRsITk#&m>aE7h^@G%1tts0xd$?DMqTO@h1SYc#Aa2`gI zGw1KviO{jt<~=L58Fi`+{|sJKv>2&KsY@k69C#SX6SCCkgV*;YQ?0tLx9oQbQ!`U1 zkye}tbI2ThI&*K=7mvKg<6lE#64vOF$2mmUJ-<gDc`=e**`w+--B({F4yTZ(?^Gt9DKj-e0_e!Atcm)wZ3j+?w096>rQ?AP7+BI zFPxwoGi%lB^rKZq!&@6&BO@Ds^YYsYI}R5@53;N=1zA}^^5$2eNrHLF^wHm&Bj1qj zTiDxYDbcn&f9c(EbG!H@&0@?atLjbIs}?+`2A4L{c<7e|F>PKx`1`l#z+-Y|X1Gsw zq6KzgG&j$S3AxKEq(VRofl_dC;UK|xuMhQzQS^$vD${IhrSe5*B6wBR3#U?=+!^>a zgc8dZIGZPA&S$5~16iWy$?GC-RkZA6-qNKD<> znG+(vb>E8p2&D)bDvsH66(AGzYPZJ5h`in}y4pWDSel;|K;!Z_kJhKk8UxkO)?Vtu zPj-Iku?@ZV#8JbtD~Ri(=(B6w@@h4{tA8QhW8E-YgyAQi1X)_rZ*|*2u#p`HC4mtj z99=j$zdV+rNNDSfNx_Ipq8~D{gI1?o*oM1&RPpbH>}-t-Me>W^6=_h~wPN~cB>nrA z6&8*RCa6z{TWd$n&bQ7}7kd=F)c;a`S=Q^}L?JyBP>(oXs+ z{IqJ_@IQB^`}@Bx)NGZP^ED=Bjsc-ZNAv?0znr+`dN`I7=?^@R8^rM=S5;(XNm$Zw z#j%vaEiCnZ*fk=kF{J#LHd1qw9lPozIbWd3Kqg>7DUY)^k+<{X2AhYcIXyGe%F{DP zQ=qdHxB5^Zn%e#17mdjM1_4W2vJ&mk?k)lBm7yGnhG!FO?%CQpt45ElKKvdLV%Y8VLU}&jMAzKREW=-9 zU2Rl--V^j3)BH5mKxhHVtLl$JMMlq^9rJ(7R5#Bq_d? z=!v}nr)KEhM3?1zU(c&%B>48#h?xT^bv!)jUZ>_wnD2qDbJ4)b(2*B(Kxe(arKO|P zlK=_6VjyJom~GGIU{`b~0 z8Po)-8y6ow?}TDfDNuuV<1fNGVE%r>C3e8v%q2ge`>x#tx>iM^TcwR8PD$j@Yu#`* zwo0LEXh@r*@~-R~eZ7)By_|^&rg2RgrzGM^hieKn>U~$6ds<{dE>4sb=Ie)_^>Q)m z2_pyjyYkV6VxV_)-|h_co1=0pt~g1&iZE$PJE28ESY6GzpT5M-tcESxnAF#{bX?uw zzsMR3F%1dMEGak;JdsU;2na5=U>erU{KY-vJ|P=-(&=*rEEHw1#?*SOk_T> zGHdP}8J3=oIZ{GVCGShSQOk^UX_IMkoPvW3Kdqni?ZJ*)fAi&FjK4;I-qQ#lQ^}ra z<#7VLF`Jje=eK)LuAphG-M!Y0TUU2p!gyI@gOjGBI~p0qJNV?HZ)lQ-J1&ix2*OR- zf=6~%E=~wy!Z{@$vfmJI^!CxUBlNsv&MKtGLPKu3I7V-3q89Q$_n41R_#%a;$A00) znDPtb75xau!-Mc^j7y6~(wvi*gS*aPf()0vQP`QToAo9S3I056DPKIghh}ev(Y+o? zPdwst6d_fozjkrVEm5#x@2r_>b$i>U&YiN@`ohB~h`B&o{cCAy45nzyfEVP~pFgAa zytD){67+aIJ08crPFZ6zezGK+b6DXLbzKEmSXk1~9>TXH9E2>fwT+Df=cA;Favnq8 zkYoZiEpD`dt#})j5u8xOhx4n8E*>FwT}=l3)KqOT7?|8)Eb?#_zrpK15zZ`_klBFAC?5 zyYD#zJo=$yK}ADolZ&km{@CG~QJEoa)>xuK@vvq6myw$PND0KSq>(m#IH@A_LmC!I z%f9=*qDMgxsfiTJe^GpEp9YBS%Zl)D$F9ZT{Z=yAdoj_xwPQN6#h=2G8Gx1K|yfb1pD3C9AKT<*^8xuL@Df@ z;JEDSLu7bZ_${XnUbqXNl)XKcw7Qa!EKin&n_UDHDi1n5^utQW(_{PdU9T84vi}T; zaWg*`*JnbQO|sQ6nR_@dLZo4 zrOr{I)2=8kFth-7CPQg@jeJlWeYOK*kd{);z%M;~V8;mQi`AQ&`38&mPC@|uz>vHt zwo<`D8l8RdMh!0`{*veR?n8P`4qb`@;%-2XMwt{#UX1~D^U&DoDP>^Z$%c(K1MGZ} zKIndiP$+;$zxiusd4cxt+xkb2SWS!c%S*QCLN)r17a5<4J&a0q=`|R*z0_4oi;fY= zczTVP2%@CSzv1I&jWwOb;3C0;?LKk1I3w%UnvE37{F242o~eNT7ehyZpol99VsR9YlB#6mq{y%)hKlQ$vT9Wg<+g`5LE^sx@L9f0Y3e@>z`(05$ z!PPA~bdfvZNMl#bp6MStH|RZ&5#|*;-F1skFUY6+@P1m>S2{cJe0ht9WU=R?dxjq^ z&BNO)55Ykx44$>)|BU37g&w&YPyb2KzlWG#vUj74MrF`uzzBk^G$-BlI;PO&c!iCS zC3|4AmgK#dI@iyDo~h_!oJB(dEiG(m_`C^4%7qaBo@3suF?MeLzJLD^S`7nbE8itS zgvh-+QSEB3@G+V>I5@&)4){`=q9xhIu_y^*VCM()iE{sbvf8okw~e2jp-spR{j_w~ zWllwGU<)z*{M)YKxSlP9a^u1WB~tRGzF5(pzbW0gB&@w<;YH(lBw&=)5K9r((xYv` z6V&Q5C64V*YT~Dj$kXHXn^Rw=DHRiuWl<6@-{gkbarOSRK2kOp$FfC#!RPID-KZYI zJ5X@706>&?clX5k=)XEGg^pN_*3pFpyaaM#Ni8i0o{BOWwbUJ9RP7OJ53eSQYidUP zlxfCIG;uyYJ>3Q2u?5yYX zL5{db+K3)&-#TVvAYK~G2gS$MD$K3*$KSsKc~3j`mU^3jA1ye{^^rT7d{Lm0ksb2A zK1BtWrc&DHvA^m04ZF6p6FtW2$wG?(KRO&|Nzqj`lr?f0|JGjww78zpe;u2l^3xw* zbd{HDFr~ufq!Lh6%?k8~=4)%#x2{ybR`T;B(Wx=~akwZN#1u_UUXztdAX?8v(MsWC z3!r=*mCyD5`&o|tY%>1P^%KGAZ~k?bagZ|pL z?M2~JsZcCYr@Mgt%H9F91GkWVa*cd<#>8K&PV>jM>q$FOsQ6cn#cxtqw;ccjzq}0+ z6W+Z&6V_)Uh(Nw;@xSRPE1oUXJ-rLyBlY6Q_?LJa;tWwiLKY_%^_Afw-fr%``Lf*X zgoP0q9~M?#&LJ#3MDck229sRqvCLJUcYUD7E;F&t_h35-g7f-2pc!v7e^P!?uySif z_&b8MGQ#cv$CDKoLpV`X&X5E-wjcAzFD#!;Vj)Wy37H{vP?EGpC0+^d_usT*7B^!>{ildU~q@MTDiFu zJQnqlxG$~_2n~IS3&<|RPV{DXXTO+q-Q?n;I2#e)Wc)#!N|zd2d67x<+vubg=lwsF zzZIa$;=D}0#parQEru#W#?AkoT|bC88Fv3VJ7YNTh!D#U2WS_5ey!EP4%Z^vxKxvc zOi_L=5ld}@?#CaPZ+$B%MaLD(+qaUDe_xboYNqOF-<(xA-#iZ8^_xS*C?=K*?fkU&NITF2;`6UM^A!fp4DuR-dh=BMi z8|kpMyxj9cx_zb~rZf7t0 zJhB6r;Y%JnGGtj5F{63;;_28fqM8$Jdj?hOt}LYzpEHjyg5JmVU3IN{tmAUyX=R!W zFIiyW=867Y!Nyu-o&q_5LQhS(o*p+x_=}hveYuMYuJ?CCLh9R^L*tMA`yM8RB^~M! zhl81~Mqf`B#Z@V9K_GjgrJXoz>3e?tMkFt-pf~Ux5|a*tlIjF>W7A@;d`!&mam#}q z4-GG-H~{ud25z1*Uz^4a@Udp+RZ2Xrc~N!6KSSowJUe*%*-1J%u_ERfTVpWH=n6Rs z4h5i6Awa-53%}2zaKR)!#El)o9UWs$Qn67A=+dZW6YTC;S=l-qeremL!jndqwJHk9 zKO8(u9Ja1#SB~mhb6WG=!y!*t{>@!huE3B&oi*}sJ}LFq&-J%-eobVZnQMF885p&a zyJ2`k)QLnuzOZcIkC$BD(?!))r0O&rs5{x40?VZN8!i9DZ^ePfzL0i`FG$2h3~p(; z?{ywKgWRYttMZH-?K=q0FxeiqG-}qE*H>YpJ8`Vn89X&Zq4b}msMP`3!1%`>_zu*; z+#JulnTGbWpR(Z=1|bE1{aUj5$aa@7;&9saKk00ELMoYKUS1Rf)^BhBS&?vJionUr zwl;4hZ9MDpfguGAG`%QGJJ}M6BnYWjdzn(dx)>G`sh6NgH=#NX*o>BLcBx%!xxC{j zofzCEfu4>MJ@c}vAppyel&LBJG$^#SXx51u)tjjyb@3;&Dqu^2DE;L(|vS& z>>W#1@*Dow@o~Ws7pPNDk%* zbH$Gf{yj?zAJu9HH2aj^PIATBa*a1d4Z5r2)#)?h-iEf+(#yQsTe?LC69oe|dFJADQoTUimV;YZ5rQK;H#S~}GkM_g+uNx` zUA5sTXa*2-TP~F@7a{0>`PI1Z81rh3@&^hxU?1WH`YZ(RoE98-{>_S{`*-zRU*maq zJ;v`9vHtA*t{C)A%7XoP)vtg0>{nf+U%VCS+(jPO(Lb;DgEn48!USM-HRfcmtF1>=_t{eR-9d47yCe3brHbA)8+90E)S_N)+h+ zS#B5oJh4}H-}wvRFQ>G-Nyhl{@;|T_v~;DdcMrl%%|)`0O5Uq8P|`U$KRsrGe>_=b z{*3p(19cg)NZgVYO473ozIHNqD5`HNgKZ0RfVZ8Iq}9^ur+1wtF{q%z7%S{6D=XQ# z_{0nh4hyQ~lOWj`k?ewB+x}TM@aGD>p~)I^J)HA&TJ2EL(UI+gu%?YvRyn(ztiA2J zdn6wjsTiupL?0rJC@BBWkz8hFTq(Sf5~UwkesGYk)n)TvA}(8^9ETvU>LotHT)D20 zllv@vd3k+pZU5@YF*`ed-(n)wn%@a6;zI!X5Vo{@KTw*Ah3r~SH3j-+Y*^(=rX8H6 zTV2e;a*tW`4J1oaG~Ol>nfOD|O@d&;Ba9VvC3^u5NWVS%GPwWvkMY;FVHBGWe}9*w zP@Iv;LAvwtaqTTSe*ZSAwe{|>r8mQLmg7z(kbhu*4(Nk!w(NPDn=-O9X>;XH6P`{5 zKlrs_I(+)@rjU|yWV)JIMx5=Fh-mju(9AI@M0b`1(^@^CLaVd&e$wi(^ubKCijy9z z^w3{BFrg1;vEBYqZu>(L*~`~s8$KxXMB;w{dM;4oQWmRXATzs#X^FZx1r}5f2H`<| zbH$BSIqvQfdeiIA{t$3jAC5y387ILECD*It1iToU#~sn9mq4abW=(6u zxD|QZ$ff)?ZKR>219Z17AgB6t8UsNNH9Q0fky#LOp-_x7Wg81RXi16nLcG-4^&)q) z1y#OUfG&VuhAfdK8Q+65Wr{V}@n0eRZSSR1l{q;6+aGi|NMb|BrEK9Rs6S8b&yPqM zO-iMFvoQ33^eeN-cAW!giE$~{)A{SrL{l&@5w zE9j{Jo@RP(L48hrR`_z_+elrCHKtz(j+F9sncj#` zAm>W9I{f@}adqXkdB4bu@hf%2YH*O2C@+021)j~Vp2v`-^uH%o0Ht}sNKRaUUU5HN zRMd1;*-0&PgZ+PgSF3O+&qNL3R#sLg zE0tiZ(Cor|0Rxw#o$r;U6poH-71cv$zwP%1M-mM;P{cF zrFSJPIpe2*^8hFawA_c;*GQssY{2s{7bJd55VL*Jaz!IurpaUdnN$ObE_wLO-y^oE zNn1*u%LwW2?21A(U|h$$E8s|_*4nYObWhh{nKDr+Nuh*@oE(COc1&4lwwdJM+gI~KVf6mY7#CC11lz{;&a*;q89&e%Wg3@q{8oFp1iw+-l zGuw=R?CA9oU?(tS^|&I zfEn|(y~2H>R-Prz#wqaQOU%5}{VC2}LIRS%0boi#qmNW>jo*hxUn1d<3C~JW2|TYZqmyVF=~GBX@@s9q67E< zh@8&~3!e1i6x!rIdoQI0^mB4vpbDQC!kl+%LLN3ov)jS6FOy&YB-#tfE7rUqcM4f7 zB!yxQcUTNlO{ICGu1l-o0vV5#_*XTiBo(Vz>qCX&r9ZIU)M8Br?6`r$_x0U8_MW8R z1&J-`q5D(s{EabJjmX-6pL!b6rKsR0&?#Zwa3X4H9paOhd6ba1&u~>aWyCM#eK3f+ z`U?v*aG_R42hyZmiO=c&e;-YQRYh+;H@Vn9tk*9x85k@NX)o(E$gvJhJZ6&KgqqgT z166Aa<||*K0Xn-p1Xq*cZ<%PMMGWF`I8Z_6=Da)yGZ8BWqM1fO-NCMh>671a4)GA2 zJL5;-%)xcvT+pp_1%zHU@pO>$Mi=HE5EpA4$gL#wZAqcpDlLyTeD9FpBIb->Yd3n< z4#3S!#Y|^fl(Lxg%&8v7c$^8kf9bT|Chx8D(#Ys2o9xZ*zeP?TA@ahy7WTlaFR44p z2aNuxjYbv)YLJRINO{f^#LdeA7 zz_u4`anFREN5nN>Zr63A9~EWR(qE{zPgWIRWj$d@Hyr#HXOhbXA?K~=PlaM^lM*H- ztj0Bd2|PZDLztdpM44;5!hu@IUesE}+~FMe6(SE9qtfWyXT`(Qvx7&`GusyDG>kHOaPs(YzWNM0bmIDWkK&cJx)1fS`d3j% z54<=q$qd_ka)F`v+#*0nvC}Bll&w@KBGnAn4DB-;I&k^-{=t|aT=cKl-9&V-pKx~b zf92g2U>&+|&n=wRyTpSU6>LO_qA{omV$!^;jjP8669E;Bv}}0EnjBrI>Gx^uqWWi2 zSSLe^rQ9|=3UCw0KxeL_jF!-<74EheJ8vph8 zgO>1G&oV(j0n$f6O0#&Yp~I{q`OVGkW>HwBGrc>Cg!E~QmCjD=+}!QX9hyMxF>YoL z>HPz9@mm4*F&W?x!ST{{`MP)((_d!o{+v_{5H=d;Nl_02u&p@47rtz$Ob*F(Pwd zdl9XkFyaHvh?LpJd3|!}L{#Jo&dw6bx2XqvLcEmgt_|ocstHlH8Rkhe_niLac zEMmLTH`X2^m6XP@Vg_E*JRzSpP@1-I_lrKwoIJlAkml8~PH%)fJifca1_hZ|Yd*_C zhIi0LS(!L^M1}_kwfht$nQi<`aiT)GVrUyST5+gL7Sxm?>OjR7;VIj4( z3A6?tF+2wBZV8ZLkYY%N{5XLDmwo{3{VSS$P_=uo&5Jf@%j&GUCI&+aN10|OAfZ49 zDd{Wa{L1-8fd*D4VKfh(kS)lo#Ad33wfY)Qx}7vjBLlAo8z{F9QoyKLZ$i> zB}#~xjg4UU{kg?fl%n=C9rGtCgAO%tQlYc4R?zLm!TF6ZVZ)wAewd|=kb#EdAZjIr@^kNo|szuL`(OVqSj2~q`^+~ftRsAV^r+^@9CH1n7892$ve z?vm)|bo5JShBG)rJ-o<-UYvi!M!5#c1*SahJAco;>avx`x=~c<2Vwu);Yk1UUcazq zi3`2v1CLBO$l&NdAxsKktH8ibvG8{_^A^_uw98EP>+c=W=XTiau%r`vKZ=OlpYrUD zW6Z3s%I6O}EyaB-dGG0X;O%T|;cFEK#Qs6Ll7*#cQaK5|RA`HlE(s*0yu7l;`T3S? zO}lv>*VXmoSGW;_-NLBDV&14o1R}bdQg9jg>vo6N2be60Kx^)g&VHz zr#_?qd6RK_7|~^oBu?xp>&%hz!>>9Kf>=dZh#zlcOradG51vP7n1uM_-P46L5NwVP zYV`1SuyBbzw}V)P;neZoJHLY6tv^L1h_pC{(P3TIub-~(!(4RW0>v)l#Suqw$X zodyQFC?(pF(3c5s$jEq&bp5{~Ro*x}1PCu&LKmgf`+>~@W;Ddl*!CSlfd-EPN@Zur4|8E{ZBZ|6f>77M z00c%%C2@y9WMQ+`qG9=vwGISi7}Hp%*XKil&>2vfEK#6lYWE?v=6J=*?!%nN`_)9; zNu3nLcS^Brr*|DIU7n#gH#7uJrr2z(s?^9=1 zSl=$46giT#`u@J{TPz1Eyw_N0FMQ6<`8hdZp2cMz0%Hr;c)%m5vL+hsHCN~3+sK zF}%Oe=Y71g1D%RniXU{Z*f`MYIaT#QLxcu=&;f3|uPGhnX& z#sn+&THVheJtL!47}a(z?|J4{S2eUY#+8@rRuLfI-VyDe2q)I*YgdGi$72ARl97=? zmo=u&l9rL3J!sav?Zw~f1MPT^6CoiEvSlB2U-f1G7;lP@sFSl4{I%3pfKb;_|Lgvq z`c=#bB)Lp7;Y=WvEtW|Uy*OCNiT5LL3Lrc-@D3OAeVcCd_GPX~{Q5D@OjVO(Io$Oyc(p*Z1u~1`xc)xJ~ZG*a*G#$@F8a) zcyke_43bNF>ueI@BnHcW+*)suLL~}(Ec;$1P~jGGuXLL-Eu;M)he^G*qL*yn$+wgP zjQYKAxFv_YqT;Jg;nnL7V-=hv$TrOP@9Y38p<{{0d!XUbq>a>(MV)QFY({C0P-%=% zpW)iwOY^z^!>>47Ug*H1D3C*wBcH5bRUU0N81TFL;#>92Pt zY#=eFj)Q494cecDkc`d1{qX zSmP{fhEl4{#L%Y!+&^yoPMv-^xw+L5B`jn#K-e&I&FJ=bjcmOM7pAkAJA_Yw2a>tg ztQzC40qTo_OW73|IeyHG$iA)`MB|xUJ!9jlSB6WKJOHn?8124-2ck=g0w<4%9*unV z$1Y>16`!GVz8B(Hb@acw4uCTTRJEO_o1mwj!9jv&P74~o>4(do>P2ewpQ}_j`QF?6 zzb2SeBjdJ*^CV-i^AzeMU$4{0Bc(M~;>a+!@{9vYU!L`!ix0$0{7%lY*IOgbKBuRs zj1`A?iZlSFyYP{MO_~9rl$(_)ddM%A={Sp|AXlTuyIFM>1^J~0K_1q)4P`r4%xxYr zd>}#cfR!-;K`f2|4b+E}NXiiomB{TLECpqET4HWwFf-W8X6(34!jmQl)3Y--M+Db7 zc$;<6A5bhg^$5~ZpX>UpHH4BtGb$O`D%Xv)UJ%1JB3`n>R{e-Jq(j`Ml&*C*?NgLjA1Iju< z%nRWALNXfy%ggHkuHKJ91!JY$$ZT)~AX_k27*a$g@!>*)lRRo)_}{=X98&$R$Twa1 zPJIktqhq9#Z)&lmy`jkav;H_lA*U_N_q{RlCgJJ)ijOsyS6mFfVm74Dsb&N|4-%gq zERb1JR7M=9+hbm5`Q`L?q{Jb8^r%>nv*+1%uhcZx*yp-Qk4hd!ulAe&axzQmo0@um z{J<&J@J*wc{LAtq>nf&0zta#vwdZIF5<(yd=cs=PZ6F5Z)1{sI!`jJuYoisbBT z&lj9`$l`1Youn9d1w%i(P~-1oMfJoQ5Yar{ZV)mYFtldMgt;SE$BPyBK*E%BXGp$K z7jp-Mm1gav*@Q!t>2l?;q6WS6;EZ@bFlDPmmK{Fh{JIt!?pjC`QYgH>{w0gn@>)Eb zuy8XYUDtXmbs{|pNfuuDNKGQk3>MAQIogKHf~y~fsLi#q3lsiSrqfyhw+y-Er-7|6 zBUVW8LgbiW9POMH!+_EEt}AN5t}I~^nB;m%$}cfI$fAom2859r0g()O&MUS$M3>uH zPA?i2k%NTl>Z*}phYQB!8I>xS8@%FeiuXzBK63kHw@b zn0iFWPh{}vX8kGU=4OCw@3%*sTbYBM4g-p)mP7YnC)>S*dTmRy^_z(hlqA;5QLM%7o`{6xbg1+ejMI;}T_jM|?t8U^aNyMJ)Oe#e z3oaTN6YAv|V(p@XXV6}49ereo&{#&?B@E*I}b44E?Y=4*8(+duVW*QU3i~yvnEY{hX|`mBx31|c+7g_L$NV( z116LnfMS#g1f_{lY*mPI!fLsmSj_}tTfBK4Y2lk+Vy&9i0TwY*95)J{%?cn>tD%0# zs;`a*5DWiV%o2bXbb+O1B`YaBX%U=PpU12hSC*)+ zerb*XL6jq<(2(VbFJb1u)Y9h@P*x_<)4opmWJBaZ4za&{`CYZ8;-CSn8HH z{S8zlfp%@xGiwC9w~dV78ykU$__@MDew`L@j^}cB#!MdDZMj<&24c2K{Zg@4_9Q#9 zrmD)==dt75rQ9*#Ga0>ge@(rS;Se7;cJzTtrVeCSUBl%db^F8 z)4)Ge3%!sB(RY9?!}_W|6#~N?*(C6S*<|%5_2}p)G)Zk9yxiVF1L4;zEPJJ5&Ouw9 zWPynil_+e<)s+=$;v0E%B`vKjDBmGTmSuz9yQ`{lhH&%EBeI!%tpT?+FL^_dzhj#W zS>B<>i30-N`>$o1arX1oAfe%;Td_m=tO;kBTYFV!t}axefw2lQ;}xZM@jslk85tVf zV`5d6j?=%gpdjqHg)c6?0NzTg|ILrCqwGfbm2gRwiXhzd`e2alR)v57`+K>#K@);DZ}u1BSB@(t)aK(93dDL;Rj)R8KEUHdLDmC;5?D`G ztgNh@Ti5&x#HdXA?HX~=UU)eM+NI|hYydT#v%A(~YkOJ=laVQn5u_CndI>^$gWq>{ z$$$`&4?9mUp-EsLF9<`Nk1_$z_kRv7L_K1Vfincl2G}JwyYzU08f(9H&KzW^A<6#% zMrhYy-ayv1uC1j-K#+EGn{{#x9g6J79S*2bo#EnGWHL^OEa-(NjUU`9KAmxU+StT> zd{7NC15&&R)wqKvM+ZcH;fTjleo5UQWNcc4p4ivd9(q0S$JKvu!N2IORhp6;m3#Ug zq4tG$8Fk+JTAKl1Qwtzi*go{#<8>)(i}w?DqFk6RlQ>gq&yg$kYb2#kF0!KU@6QML zS`D3a@}QSqVHu0Q92u2~N43i&4AdanVP4k{mi(DKHB59<<3wfNIw}7eJ9M2{BIaUV zHNZtyg=m0K?bZDqg{Y0SwUf^5SOu8!ngU~6(+pWz%fVA(tkKlq{@sMrbUp408pkT< z{;KSX7;GfwO*RuGF8<8A;p*qonjOhvIcnJ;L_r45He{BS={;A_bJpa#U(+a6X@(1A zVxYPRAo?Xc^!O`JM!No|7eqg8$S0+Cr@kPtt+jCsD2@jn#1*r4n(7p$=yAjyL{}6- zyWq07hA1fN8)p|V1e3=AJ_LsaAVjw87x$n?Z*RZ5hfV}-9@cbQ1e!&emsxH(XpIX1ZMzB5MeO8X zHDnMk{|eYlk)M(=}eDv(S=5Yy1|{m1@35lCD_5+A3H>;Sm(r$W#> zktPao<12r!hylg=y1Ie;AJnROog3hcPj?5AsA^lBy*KaGyCGVeA zk4VwL@ffH)@V>|6NKQZ+Grpl*$qsqPEh8>Y8T5gQFGDY3cke!2((QMi_X!@=An z8}4-tUjFDVS`=e?Jh@`dgmHzAs`b~pwInKqL;s9y_MzMZR6`3zP9Gn zVayt0>d;>}MU*HPt1G0!L{KyF$#1z{)j68?SJ$f$@o11T*C^uxXiLo=E^i{6G=lyU zFfV(WGLE__QU1J=2CCd=t0)Jap;>T9;-BquT^N3hbp0Z!9b#Qmns+$&(4&doQf7@YOqa~GxPp2f3{09WFR{sN`y@|N=L)nzLL{y%N zaKrIzRvJ^LRd8oPmJ&B+sMYm>f$Ye!#gL^^`&CAH=1f-np+MOilFX7sr4qT~SgzHP zD)^wduYPaPk3z0OtDni%k4^1}iPz>0ix~bs;Sz~EDO%dv^M{z-i7=~rer@f!^o$%j zY}L8tSM&3{KG&!Jf!te(%!>|YzQ5|A=M|CLHum)SB4*FlUQM-Ts*9d8K6eNA6 z_d7=cU1-b8*kDQ}9?^rNB*5$diLF_p#feD&pbEaT>K0(3g8ZCRkO^k|_yg)UdXC=I z)CjykCgIp6Q@RH0rU4c+YKu7iA2ynznn`4rq6`%s61vi#r7REH_LDs;y}>;g`QkSp zi>nF^mb4&(6hURuP!4cb3P_)4&z|bPf&MNMco3dhbaeKNGs7K1EE8i0%jb2t{7kGrlH~4vD&--s|fibpQhi34@3TWN=VOkbxa7oEl_5 z`nRKI0x^`capIX?HxL5TaY{E9EL!1|k5QzQI#clY-z9;dTNq(%oN|UrB`14Ba#1H&(%P{RubhEf9thF1v;3|2E37{m+a>`px-8RnMNim@sjMlWRa)W?^__vc7rf4WJholf2zs1Rrg+-38=u7I;J! z1HR{o%On&n~sLojiY*II{*L2_8Cv9K6`uK z$rRy5^Lf;KmxW&F5b=K6<<*n5_MX79p3b{2-gC;-RqxL0{&(Q80jtd?gKx|}D&8~C zF`N;vG|&%^h~C*~aVKGSu-)f>4U1QrJiIJ<(N(v4@56O#C%XR;>D_a0{{Ewr?!;d_ z&XMvj^pgnCMXDvP5hW>!C8<`)MX5lF!N|bSMAyJn*U&V?(Adhr%*w<_+rY@mz@Ttd gZ99sF-29Zxv`X9>7``9125MmNboFyt=akR{0P5rJ)&Kwi diff --git a/portal/assets/icons/favicon-196x196.png b/portal/assets/icons/favicon-196x196.png deleted file mode 100644 index 7f3ff17a4ee661d39857b41679a10e01207ce758..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 19559 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 f9}oEYxfAdq|NcPS!E|T`>T|UPcnZ9 diff --git a/portal/assets/icons/favicon-32x32.png b/portal/assets/icons/favicon-32x32.png deleted file mode 100644 index 6f0bc532d31a7d15cb741bc05ebfb25379bfe304..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 905 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE3?yBabR7dyEa{HEjtmSN`?>!lvVtU&J%W50 z7^>757#dm_7=8hT8eT9klo~KFyh>nTu$sZZAYL$MSD+0817lKvPl&6di@$@jpO;T~ zSI^`r)8=I5l)8EZ*Vebcd-wj=uisCfKA$jYhNpMf<}Ew^|NsBu#mmCtYTtmUz55QW zTD`%|Gi1%WO_wiU3y(_v`}gnLx9`%kitL?y!y=QKTYF*?GV2=JKYjZA_3O8Wrp~~S zxLv#VpE`Z6q^!=>BPcts?Ah}dzkmOpH-D*?j1UO zEIcZuuA$@clcyg)eew;6zIf^C&0BZgzyI*@6eEsp`$Fk*XeEcJQ{G*PaI2{t6FnjKz zfB*iiSh>!{J;=*9eEW{QuI@pXE?-@~Vy(TC-`#r;7A#sG9h-jh=I!Y-=KcBew|~O) zpycV|7-DgH?WODf zOpXFuNZzkUj8*qqMAaHLvYnp)X&%3sM*g3r++a_`soSC?(r{Qu$rj!5=J*51xp~ zUN+_uxEFcrQ~I-KS4|TWKZYNfuCts!)^APC^OILrJ??GVxy|qAv9wt`3s0zUq-_6T zzbV&y!tKP*cWtvyyxpu&)~ zM{ZmH%RT(Jxwqec*YW>T5Xf8Kv)J*2E=^waz3VPFudmbgZg zq$HN4S|t~y0x1R~149#C15;f?(-1>rD+4nt6C-T{BP#=g!d12HC>nC}Q!>*kacf}s Se$*PMfx*+&&t;ucLK6TdiLA~5 diff --git a/portal/assets/icons/favicon-96x96.png b/portal/assets/icons/favicon-96x96.png deleted file mode 100644 index ba8da95a9670cc1b6df87db53e7f9c9f23b67d90..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 8028 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 HSV#Rod_QJz diff --git a/portal/assets/icons/favicon.ico b/portal/assets/icons/favicon.ico deleted file mode 100644 index 5d09b3d7fbb318962be514e955b69d33605607ad..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 7406 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 diff --git a/portal/assets/icons/mstile-310x150.png b/portal/assets/icons/mstile-310x150.png deleted file mode 100644 index 564b1490b6184c9154bccb454f380364192624f3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 12976 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 diff --git a/portal/assets/icons/mstile-310x310.png b/portal/assets/icons/mstile-310x310.png deleted file mode 100644 index b374084b535faff2ab6e7917b1a506fd0b5202be..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 32329 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 k_D>^>eE+Ax7dsP6v# - - -]> - - - - - - - - - - - diff --git a/portal/assets/img/logo-ynh.svg b/portal/assets/img/logo-ynh.svg deleted file mode 100644 index 8f2a56e..0000000 --- a/portal/assets/img/logo-ynh.svg +++ /dev/null @@ -1,38 +0,0 @@ - - - -]> - - - - - - - - - - - - - - - - - diff --git a/portal/assets/js/ynh_portal.js b/portal/assets/js/ynh_portal.js deleted file mode 100644 index e018167..0000000 --- a/portal/assets/js/ynh_portal.js +++ /dev/null @@ -1,401 +0,0 @@ -/* -=============================================================================== - This JS file is loaded : - - in the YunoHost user portal - - on every app page if the app nginx's conf does include the ynh snippet -=============================================================================== -*/ - -/* -===================== - Utilities -===================== -*/ - -/* Console log fix */ -if (typeof(console) === 'undefined') { - var console = {}; - console.log = console.error = console.info = console.debug = console.warn = console.trace = console.dir = console.dirxml = console.group = console.groupEnd = console.time = console.timeEnd = console.assert = console.profile = function() {}; -} - -/* Cookies utilities */ -function setCookie(cName, cValue, expDays) { - let date = new Date(); - date.setTime(date.getTime() + (expDays * 24 * 60 * 60 * 1000)); - const expires = "expires=" + date.toUTCString(); - document.cookie = cName + "=" + cValue + "; " + expires + "; path=/"; -} -function getCookie(cName) { - const name = cName + "="; - const cDecoded = decodeURIComponent(document.cookie); //to be careful - const cArr = cDecoded .split('; '); - let res; - cArr.forEach(val => { - if (val.indexOf(name) === 0) res = val.substring(name.length); - }) - return res; -} - -/* Array utilities - https://github.com/Darklg/JavaScriptUtilities/blob/master/assets/js/vanilla-js/libs/vanilla-arrays.js --------------------------- */ -Array.contains = function(needle, haystack) { - var i = 0, - length = haystack.length; - - for (; i < length; i++) { - if (haystack[i] === needle) return true; - } - return false; -}; -Array.each = function(arrayToParse, callback) { - var i = 0, - length = arrayToParse.length; - for (; i < length; i++) { - callback(arrayToParse[i]); - } -}; - - - -/* CSS classes utilities - https://github.com/Darklg/JavaScriptUtilities/blob/master/assets/js/vanilla-js/libs/vanilla-classes.js --------------------------- */ -Element.getClassNames = function(element) { - var classNames = [], - elementClassName = element.className; - if (elementClassName !== '') { - elementClassName = elementClassName.replace(/\s+/g, ' '); - classNames = elementClassName.split(' '); - } - return classNames; -}; -Element.hasClass = function(element, className) { - if (element.classList) { - return element.classList.contains(className); - } - return Array.contains(className, Element.getClassNames(element)); -}; -Element.addClass = function(element, className) { - if (element.classList) { - element.classList.add(className); - return; - } - if (!Element.hasClass(element, className)) { - var elementClasses = Element.getClassNames(element); - elementClasses.push(className); - element.className = elementClasses.join(' '); - } -}; -Element.removeClass = function(element, className) { - if (element.classList) { - element.classList.remove(className); - return; - } - var elementClasses = Element.getClassNames(element); - var newElementClasses = []; - var i = 0, - arLength = elementClasses.length; - for (; i < arLength; i++) { - if (elementClasses[i] !== className) { - newElementClasses.push(elementClasses[i]); - } - } - element.className = newElementClasses.join(' '); -}; -Element.toggleClass = function(element, className) { - if (!Element.hasClass(element, className)) { - Element.addClass(element, className); - } - else { - Element.removeClass(element, className); - } -}; - - -/* Add Event - https://github.com/Darklg/JavaScriptUtilities/blob/master/assets/js/vanilla-js/libs/vanilla-events.js --------------------------- */ -window.addEvent = function(el, eventName, callback, options) { - if (el == null) { return; } - if (el.addEventListener) { - if (!options || typeof(options) !== "object") { - options = {}; - } - - options.capture = false; - el.addEventListener(eventName, callback, options); - } - else if (el.attachEvent) { - el.attachEvent("on" + eventName, function(e) { - return callback.call(el, e); - }); - } -}; -window.eventPreventDefault = function(event) { - return (event.preventDefault) ? event.preventDefault() : event.returnValue = false; -}; - - -/* Draggable - - Sources : - http://jsfiddle.net/5t3Ju/ - http://stackoverflow.com/questions/9334084/moveable-draggable-div - http://jsfiddle.net/tovic/Xcb8d/light/ --------------------------- */ - -function make_element_draggable(id) { - - // Variables - this.elem = document.getElementById(id), - this.selected = null, // Selected element - this.dragged = false, // Dragging status - this.x_pos = 0, this.y_pos = 0, // Stores x & y coordinates of the mouse pointer - this.x_elem = 0, this.y_elem = 0; // Stores top, left values (edge) of the element - - var _initDrag = function(e){ - if (e.type === "touchstart"){ - x_pos = e.touches[0].clientX; - y_pos = e.touches[0].clientY; - } - - selected = elem; - x_elem = x_pos - selected.offsetLeft; - y_elem = y_pos - selected.offsetTop; - - // We add listening event for the iframe itself ... - // otherwise dragging the tile on the iframe doesn't - // work properly. - // We do this at click time to have a better chance - // that the iframe's body is indeed loaded ... - // (a bit hackish but meh) - portalOverlay = document.getElementById("ynh-overlay").contentDocument.body; - window.addEvent(portalOverlay, 'mousemove', _onMove); - window.addEvent(portalOverlay, 'touchmove', _onMove, {passive: false}); - }; - - var _shutDrag = function(e){ - selected = null; - }; - - var _onMove = function(e){ - // Get position - x_pos = document.all ? window.event: e.pageX; - y_pos = document.all ? window.event : e.pageY; - - if (e.type === "touchmove") { - x_pos = e.touches[0].clientX; - y_pos = e.touches[0].clientY; - } - - if (selected !== null) { - if (e.type === "touchmove"){ - event.preventDefault(); - } - dragged = true; - selected.style.left = (x_pos - x_elem) + 'px'; - selected.style.top = (y_pos - y_elem) + 'px'; - // Store positions in cookies - setCookie('ynh_overlay_top', selected.style.top, 30); - setCookie('ynh_overlay_left', selected.style.left, 30); - } - }; - - // Prevent native D'n'D behavior - window.addEvent(elem, 'dragstart', function(e){ - window.eventPreventDefault(e); - }); - - // Start dragging - window.addEvent(elem, 'mousedown', _initDrag); - window.addEvent(elem, 'touchstart', _initDrag); - - // Will be called when user dragging an element - window.addEvent(window, 'mousemove', _onMove); - window.addEvent(window, 'touchmove', _onMove, {passive: false}); - - // Destroy the object when we are done - window.addEvent(window, 'mouseup', _shutDrag); - window.addEvent(window, 'touchend', _shutDrag); - window.addEvent(window, 'touchcancel', _shutDrag); - - // Handle click event - window.addEvent(elem, 'click', function(e){ - // Prevent default event - window.eventPreventDefault(e); - - // Do not propagate to other click event if dragged out - if (dragged) { - e.stopImmediatePropagation(); - } - // Reset dragging status - dragged = false; - }); -}; - -/* ---------------------------------------------------------- - Main ----------------------------------------------------------- */ -window.addEvent(document, 'DOMContentLoaded', function() { - - // 3 different cases : - // - this script is loaded from inside an app - // - this script is loaded inside the portal, inside an iframe/overlay activated by clicking the portal button inside an app - // - this script is loaded inside the "regular" portal when going to /yunohost/sso. - - var in_app = ! document.body.classList.contains('ynh-user-portal'); - var in_overlay_iframe = (window.location != window.parent.location); - - if (in_app) - { - // Do not load inside an app iframe (Roundcube visualisation panel for example). - if (window.frameElement == null) { - init_portal_button_and_overlay(); - } - } - else - { - init_portal(); - if (in_overlay_iframe) { tweak_portal_when_in_iframe(); } - } -}); - -// -// This function is called when ynh_portal.js is included in an app -// -// It will create the small yunohost "portal button" usually in the bottom -// right corner and initialize the portal overlay, shown when clicking the -// portal button meant to make it easier to switch between apps. -// -function init_portal_button_and_overlay() -{ - // Set and store meta viewport - var meta_viewport = document.querySelector('meta[name="viewport"]'); - if (meta_viewport === null) { - meta_viewport = document.createElement('meta'); - meta_viewport.setAttribute('name', "viewport"); - meta_viewport.setAttribute('content', ""); - document.getElementsByTagName('head')[0].insertBefore(meta_viewport, null); - } - meta_viewport = document.querySelector('meta[name="viewport"]'); - meta_viewport_content = meta_viewport.getAttribute('content'); - - // Prepare and inject the portal overlay (what is activated when clicking on the portal button) - var portalOverlay = document.createElement('iframe'); - portalOverlay.src = "/yunohost/sso/portal.html"; - portalOverlay.setAttribute("id","ynh-overlay"); - portalOverlay.setAttribute("style","display: none;"); // make sure the overlay is invisible already when loading it - // portalOverlay.setAttribute("class","ynh-fadeOut"); // set overlay as masked when loading it - document.body.insertBefore(portalOverlay, null); - - // Inject portal button - var portalButton = document.createElement('a'); - portalButton.setAttribute('id', 'ynh-overlay-switch'); - portalButton.setAttribute('href', '/yunohost/sso/'); - portalButton.setAttribute('class', 'disableAjax'); - // Checks if cookies exist and apply positioning - if (getCookie('ynh_overlay_top') != null && getCookie('ynh_overlay_left') != null) { - portalButton.style.top = getCookie('ynh_overlay_top'); - portalButton.style.left = getCookie('ynh_overlay_left'); - } - document.body.insertBefore(portalButton, null); - // Make portal button draggable, for user convenience - make_element_draggable('ynh-overlay-switch'); - - // Bind portal button - window.addEvent(portalButton, 'click', function(e){ - // Prevent default click - window.eventPreventDefault(e); - // Toggle overlay on YNHPortal button click - Element.toggleClass(document.querySelector('html'), 'ynh-panel-active'); - Element.toggleClass(portalOverlay, 'ynh-active'); - - if (Element.hasClass(portalOverlay, 'ynh-active')) { - portalOverlay.setAttribute("style","display: block;"); - meta_viewport.setAttribute('content', meta_viewport_content); - Element.addClass(portalOverlay, 'ynh-fadeIn'); - Element.removeClass(portalOverlay, 'ynh-fadeOut'); - } else { - portalOverlay.setAttribute("style","display: none;"); - meta_viewport.setAttribute('content', "width=device-width"); - Element.removeClass(portalOverlay, 'ynh-fadeIn'); - Element.addClass(portalOverlay, 'ynh-fadeOut'); - } - }); -} - -// -// This function is called to initialize elements like the app tile colors and other things ... -// -function init_portal() -{ - - window.addEvent(document.getElementById('add-mailalias'), "click", function() { - // Clone last input. - var inputAliasClone = document.querySelector('.mailalias-input').cloneNode(true); - // Empty value. - inputAliasClone.value = ''; - // Append to form-group. - this.parentNode.insertBefore(inputAliasClone, this); - }); - - window.addEvent(document.getElementById('add-maildrop'), "click", function() { - // Clone last input. - var inputDropClone = document.querySelector('.maildrop-input').cloneNode(true); - // Empty value. - inputDropClone.value = ''; - // Append to form-group. - this.parentNode.insertBefore(inputDropClone, this); - }); - - Array.each(document.getElementsByClassName("app-tile"), function(el) { - // Set first-letter data attribute. - el.querySelector('.first-letter').innerHTML = el.getAttribute("data-appname").substring(0, 2); - // handle app links so they work both in plain info page and in the info iframe called from ynh_portal.js - window.addEvent(el, 'click', function(event) { - // if asked to open in new tab - if (event.ctrlKey || event.shiftKey || event.metaKey - || (event.button && event.button == 1)) { - return - } - // if asked in current tab - else { - event.preventDefault(); - parent.location.href=this.href; - return false; - }; - }); - }); -} - - -function tweak_portal_when_in_iframe() -{ - // Set class to body to show we're in overlay - document.body.classList.add('in_app_overlay'); - let userContainer = document.querySelector('a.user-container'); - if (userContainer) { - userContainer.classList.replace('user-container-info', 'user-container-edit'); - userContainer.setAttribute('href', userContainer - .getAttribute('href') - .replace('edit.html', '')); - window.addEvent(userContainer, 'click', function(e) { - e.preventDefault(); - e.stopPropagation(); - window.parent.location.href = userContainer.getAttribute('href'); - }); - } - let logoutButton = document.getElementById('ynh-logout'); - if (logoutButton) - { - // We force to do the logout "globally", not just in the - // iframe, otherwise after login out the url might still be - // domain.tld/app which is weird ... - window.addEvent(logoutButton, 'click', function(e) { - e.preventDefault(); - e.stopPropagation(); - window.parent.location.href = logoutButton.getAttribute("href"); - }); - } -} \ No newline at end of file diff --git a/portal/assets/themes/clouds/background.jpg b/portal/assets/themes/clouds/background.jpg deleted file mode 100644 index 32a876ca18fbbfa136eb62863ad7f42ff88f9137..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 306187 zcmb5Vc~nx{8~=}pW9EpZhC}KF$-1Rz;gn*EXpU4`4rOT0mLzK8b-@m6ef}k&%^Ckdxgf zzfVSHztVnr1w}6K}d-* zak0YyppuxllGyJqfaYF5CB*g&@c$b~3@9!k36PSO*(@7Qd(f8-xW2F`bt<4yf?jv>;sm`8)YeLEtOt(-EAV-}k zj))zccQfrgVGO@G@W<4_(1o`cmdvI#@zng-V(hRQ8}6ETPj?k%z2{^9 z9OS}nPvITPTiTukUTO*8O1R!bRtJ?IEu@qrYmN6M$5tX%N?eek{V)sC&vlRO+L!aG zyfGgiD9WAx#KS*IOs|SaSU#3zW_#TBk3|^~EQcEPI{WsWw@s%OnkG$)*+*2p0(VtD z@SmJpT*5%?Ljw4E?-yZ3!NT!^c*QvJsT#JCkNJgOXv_VAM(TS5Paf^*h9k?pA4Ojx zxnwoEsWYZO;F`oXqX63j2F`!Q&|U7(n{#%&{?HK{xDzX;Lp4?wa zeF_0gQ!ff_U)J@s;!-Szh%PDk2~pXjhXI6}9+I-R&AGWQ*Jcnf!Thk7)l$n7UEKXv zS+d{bmqw%9bn&#TCn~AdyovaLxBZ?h3p7UfiiL4<1OdY>1mHWWhxHYUix(JwezO$U z8hstXc&n-TCQwP7Uyz-r+JdbBt>f0+1$s2YtP?UrP1mIdnqf8V_!*_SrUS2mRIh+U zchJsCY|qxY3*r$jWy+2#7%al7`dI3PUk#}a9==%6xXYz#VHsh^kgWH4iRc-`3<+^o zv&0r={RR;I4I1?^eG626UZ*zL+tj;WHkuat%y|%5_PEY87?i4KIvr5q)-F{kZ`jb> zBMxDkIEd%0+xtx;&I@H4So$Ky6q01*;!~k*a#&_D>n97o>kry2dt1hscX_o2mkrRP zgkMyqH&f3wmdLn!I6BBgQ#N4EQcr!#$(K;F)BiP4a0k!a_fKk zR;ZyE2AO%g`A;q}sgb1f*I>vPu=Zkh`Zqr%lDH5>F!ZW4*F~~Upl!Cu)6D(npj<_<~~cW@MV}z*$!I&<|`?jsZU}*Q^3g z!=H)sUs&j9L%TqGSJtVwY9?#E6)Tp)$#(uh_Zuz<+zg_nwz;5`TXY^c90yLpknN#z zX=j`VE_WBw%;jWVUX@Z$2~=Z(m5hzRGws2&!h@nAUWHBCR6)?Kg(i(L`GVXG744;0 zXIjcfRKs|AinxM^Afticx*PQ;F{Oj~fK6Z%w(JkTtVWcgZo;|P>|aTu*#6SA)I^8p z-h9efo8Y~<2G*=Jo&~3s-YUCIZZvfiD6BYRLspxQC+0Ks$i#C}jU#^TS+HSUcfhC6 zk9uUyZ2CtEKtgR{u8c7S18jS)*M%Md#{t{szYHAQ0Y>ok^3E13QQuvNxVWM>)gsoc z2iC3aGe2k@wk8)>+kMtH=OT9g?2j`VXQN&gn1D zZm@1D>$M-}e}h`QU&n+!*Y@ZHB#d5LzF?gAbljAyG>H8TkW^+w>n#R#A8Tdc$cX8=dRUd~sDK8qv2hX&-fOS-1I3gR_nRZ- z@{`RkbBw$N-iey3eNsx_Yk6V0ZJ4E2GkrIw<2O)Ylxd}$u=&#SU7`VTFOq*!%ydwI zc39uY{)>ELqaN>h>@6j*Mq}_sITs2K{0u0|7aaR9Z@Lu{Q{@VP$c|yI)$43?Q9Aro z!TyV7it->?0mK8?P~Y3dB|#0XsE-sgvwpC2GL^`NiKLnYb71t`^Du#W7W;<9$tP@? z)rn=vwz?t^mb1Zx*sOl@(_Z0|8}E(hu5>|qj9jdu&w7gs++|kBTVPOh_{}$I^vpCP zKQXNSr^;RRP|cU?zW5w&M)Uq3V7Ym$!%ai$Gs#sB>I^`dzW=x>Bq1t1m6+x|wKmgg zQDr*qklf2@lf5htSCV29lK;zit`lNYyy6QAN@Q!$J(~%RsnGDUq18)=wiN;Kr@#1# zQyPgxgh&Tyqwt05QK>z@JTH0;GJ6Q4AlvccI+$e5)V zTBFUS&S9#BzdY99Ap#X>Zl{WRdE*V3l9ZBTqg)JqHf20L4Z*|aA!{3zPWE*uBhG%( z%_x=u;t;;)kU(n6M7i|3w)B0Q()Xn%x+$Gr3}C~x5kA`rs*9oGN|cSRzy*pybH{`3!oOct zq@oqPWha7GIKmfZv__H@V1+vV&K5*V@j}giIa7a`*LG`wpk+SnB6@fDq>R+gQ-HvL zhb;$C#=4-Rby{gPqI(gCEn9_?ooYQe;ystGffda!is4I zfM-u0`(x7hlI3}t+bd}POvb_{(!?Hl(m$|o&|dWj?^gY^beGZ`xL$b4r1QdL&o3`< z&+B2&jyz6m*Ee5uU=ec!=+u1E!`kF)5y0KGP5n6YaYMOfENcn`tc@$1x!3)8vKzL{ z_)`~csE4hWvJDN;U$6>~-xaHz!=;Gnln@w-3f0wV+sL=>~hH#?r!LvxO#vQNW%kUM_~BL7FB&^ftDfs7XoWReLq)bwU~XdU1JdO zlH#CpcFp-OPT5$!e-z#qrM5{v8Tq(#kjSMV!G~Dcw82%ajV|rK_lNJZjj2jpg+%~S zKgkyhd&1_PN#XWZu+R@`+RSjyKfj_@a(1ve1b&(TK0*3ssSz^d`g+_&&nn~-k$jQ# ziz6^GQD|9p)xNJSsNalDaxoc#-g^`rO^zLwqKGslA37)pL@6t%4ja43yGTq<8ch{O z8=p3SzAg@Z3?SN=PHNGCFG8u$>2H^u9t;1-}95o<0f(d2RG9TuTno zVAd5Vg?FSlB?^2JP|UksURu#RA+sriDk?yGJm8rg`O4u7i=Ut^gN7Cfrgt-kPy;%H zZeerdH(=^&y*WhZZ<#ycmqlR~DpM_+?v+i$4@I8>+VP7x1MgF!>r$5uU&NcX@)`&8 zy1K(F1 z`I~{%V69N)s%K==mD}6yYgpR-slE!(W0v6E?Et;i_3W+D(BP z3;r{L`S?tdBlN`Su{P6Lw$a#W(eP)N!2ZS8 zdRgM-EU#vB`!JVBgSTn7B?zRVA&93ln3D^|kR2^Mj5y@6pmKoGgb;%V5o$Yo&L8e^ z;v4m{rOKa;NjokUxERY7fZZ(=clcDh&aLsafe-^0sH$<9i9Gr(lTovF{13{9*c7OO z(?_eUC;5qDeK~6hvTH?ZJ>LJ=#4Mr^1>jfokPBm)&51P?*YgoVC(|pzwyk*KSu2?p zyS_}6X4@u94Kff`ccJ07`O*W6(ma>p{DZ=bFO%1=yVisR^iG0eJ1+JP97ahr;~w>QDhgM%sUD>gKvi&Fvq zu~d%&Kw=GSeqX)0bnYz^0p`Etfxv4HuF+~$J?^K+YB*SB#E3P6(ATqk@noZA@;k@8 z{vP7Nt4WmXZElCAAT}^c>g@_9N>6R+-YwmO^j>$rr)C76N|#cp7M!O@THNE3O9D_Oa5^AmdXC zzu<1K6I`M?hX#q`Ha?SVbku(RT|y+`WZvvDb)i7%J2R5{^sdlXinr}v*Ho{{13({I zYP?T*!Z&^&4P9O=^byAZP_WN)5Tu`82Z(9Za=x4gA8T)S$TnzT5_Y zD<^LHjQwod{PYe2V^bt?bk;Y zsWH{BT&-CXR+TL`MXg0=)jk#9Rt~gL<;W{I!Jh#qyX0p_)3t&Wn&gW#Z>fZIhhnyW z)D~gK>UFKErg9xn=&^_?A0)J@^n!Zdg>4lSI(^bg7$s5gH2F_ zi@1-54UAuy8c&`f?S%!o(Wyp$-4fTk!}2)JV$)0lS~msGO9|F~Oh8!$y}VxBOo&-} zB`&PJTsS8wmxDD@>c_Up~L$=<`x4QLC!ax(CGXSQ>0c|WC2(SuQwkUxdC3oyP-!Hsl(}E*;#oCV#Y}hbm)OQPW;~~*b_n8_k^^RRVD=xY>jZEg=IsI}_I)Mw7 zhIF~#@D>;0|4SJ0cTm%9`eB^(3k*fe*&Cx&AmhUY7lQ3bT`Cy#N7A|-(M38?TAM+T z$AC4;!n)v)%!(;giorO^Pv5z)vj_(MoY!qt4b|n$mpEE#M5%Wyz051HWf%uD2;prE-ZlWidBn1`|mI*UVffZL+GLs_ZNVMvL{w9hH4 zkNnTCBfgjKM8ZnkR4`(lJ+Bz9{UdG;kq|kqkcLMK`Xb3vzB^AlkyA$AzX2j+PC6cd zzQsanuKF?W4Bm`X!FlPX;9=sKI7U0KxWUxdL{=wx{JBkZ@1M$#0-)M<+XC?sPV;7XMO4!0fxJh` z`fLKGcZs?lB$$_$)P1Ex+l~=BJr4N?BOt;1SltNSkV#s)j-4Hr7A|#x%MNGn_&?l9pK_@QSC;9boA(iR&WabQs@o3Nwr|rQ9rmU?4QI#WQ$#U z!k_}%G{IQF*E7itUY=^2?OaMj7sOj44#&Do`!*6UezvJAvcA{k}KpBhHW zv|Fq!oor4k%IA!Kw2`m>a;<0F9#@nGb;D&HH=jJ-Jgz0MJ=v@IYa$Z%vkCz=oqVvV zTPCkdwap&V%mA;AUA2j!oF1Lml|ng*j{iVHkzFI{Ds0m?-8+{DWlZYL#FcD+toac1 z9l)>BG!6YUN)pWF(NkEd8}DC=OoOGZ%qphyB;ArWYAquKdIeO$2BzqHxzEAN2^ROU zDaO`}pjxXMq_g}s8xD&0xq){24H%(k^IPNsU9{&D2nGOY>#+HP@zf;et%{@FFmRcQ zVgM`LdZmrSK=$KW#M&r{)m4IjCTD*#05Xbh-eRt^gVUg`b8nAK1UXg^Vy%T|jfMuo z>ER8TJ9(tC&15v&?{+wl*>76REh0{UF3;`{cH2e&flomViO-fY7;%B z2ZGHF<{Cift~!>Svod^QQB=M-b{5ychvSTP3}!T{F=S!OPkItc)wUCvW$6Vb>Eu~Y z-H$NEr5EfuK7~M)?qp_Qf8IMj+(wV3N8T4iJRoM(z5>YB9$}tZEzh@I&RlAX@VwDs z*pQhLWcc=g`8LP3`h7u#fqFi10*%)cc%RqU{BtC&m<6;ei7P8Dup;MiHmV{e8-g

ZLJgquChQfx93n;%vn`n0i`P?1@Z|Z@u+vBPweOp& zNSKH~lyGMxB5d{aOv=!>27jlFsRU68S4`8|`^ZBS^D&qNL)NBw(aD%kMotcAeD0q( zzB28Jn?exxSrhc(DGuU}< zWm2F&0oQTVR=Q-)K{CqadcYr%0EKm*kWqYro@pn7dyi2jT9Ik|Y`2XC=Z&X^-fl%M zG(`dM4g@JC872OF>JiY@5Y{dpS^}d;oRn7I&N$TIen)Gp%RjSg<4Nu1F1RiNgVodT ztz`=Swu_1~Z0#T)`+=D3f_y3Ea3iyA$OrxDE&L?I9DfO|<}kux$@uJ~rVh8uw>FvK z4fsm9ru|{HOlDH*0z@{tnB|n{pl>lqjl}xdkZF`RGE4nuMRp*>{-ELc z{+E+868QfNL;~aCxm-c0UipA-9U;A^PUvgXNrAtfd^(mj-YNs)L`*rT0Ta$Srgc)n z&)LM{)xJactya}9nfKVz#>V~=T9U4Yri;s5FRAZmr`y3fx<|rLzVNym4cX#jU3v_5KEcy(&#_A(xfZDzcT0=D>depO;JP zfh*138?&oJfcn}^Ix5-2=!JQ~k-S#89;8!f%enpwslPm@8!EjpH+wf9c)2UH>o4rh zKpg2=o8n(d_d9i>pbbrBt+sCB-@aF@P~kI&eO5C4<+#KrHeKUBK@Yu=mGb<+SXQRC z@XR)_tt|JxToPeE-&sk?+f^j_T0W9n+q%L#sz&L!dLT4Z9(!-GDh|^o9td(5`EF=!X)Q3u25WW-u*W~+*z1L3$=|h z#{cq6%I1DH(3DD)>l`S`ni4rsYNaeXXlC;Ud^v5RFY6nK zU&~}wbOH1|c8Ux+0>~ySOZA~>pM$!RaNtNn62Z*dIFbtq(3IOHJf07jdU#E9-`q>0 z?Fm<+d`Q*Wz6gOflVJ0G-A=(9X|qBJwHZVRFU^F!f0hBfi8M)fh4C}iB1Hz889G+= zx;bka79n~nXC(s%!;{rs$KhnQ@V+P0RKPc`{sy?}*ZzgI$tvzKIaKCFGV2NR)k4-% zr5t1+=uob+BlvibYokst5=5vtP18kE`xHjN0hQrTg2MM*nC$w-h3ie#mr%N}JuB2s zw_h-m#SVlv6R~*@r-kU}q74X2!N!FnIDeW=S;p=@%_M$-3Sih9tw^#~?a9({a5`AG z*XSM>);jr& zA}(~)%wk^OROO}Iln-^Y+`Yg&5er2KeUna)UTJ_J3b?Jo6|&<4H#|?hCV`*m#;=}b z52x$6T_M}bb@dOsy*s4=_Gjy4_O4`mehKp7q$ecS)R*iwnw#FR4bGQJZi<@vV>4efI1%Y-jgl4wl0$A2-ba#5K(HtA(CZ*ewmLG0qDEnWR<$~4*N5QFY zYB*o(QY%SgsjmC7{c&Y6PF(dMO-buWY_EG_l zeE!BEb7=5y0D)&I|N7jq*vL2UY=&+zoZYqu{&@7u+{zuTplu?6EH!Z&KMhWEutLc{ zEIkqgrV;bjUxvH|t0c5goGl}j8vW(0V$v7y72btdJk4Ch+VlMT1by)qH_Wmpz?nUW zv;PFe*#h+CG5q^ys@3WK9*dMI48IWVf*612Af}g17W8jnX9Om{4uE1=TK^%uc^aW) zoBwpMdA|YAhJKks&LO5Aj&Wb|JZBzj2L6TZ*|o%<`4x~t8sQfPY>j&dc#4k7cVPi` z(rkYdwwaz93o>XSYwBZc(X#rBJE*g9w_F>dL%>$+6)FoG%|z;6_83vZwopd$c1a z{68mSDg`rwPx&(7#Ugb{x2B**vHH&cLaS=OT)I(au_BG%T*?n7nI!E0FGE|;q{_0G zeCVX$Bgu^X@q}H_>9Ho8&rx3WJt)64q1qE>M#LxNieF1&jTPYlVS#LG^>aW0>Q{mb z!Wll1>Uc8XdHj;)#7&GBXpiy%nkos4l%@`m$b-jpdF$k+EuP8ut!zn)Hc()NuR z^cx^Qbgp#O5lD{VxMx6(sAnK{+rxJg$-nB$+%DgQn*)NEiXHc!619b|l7;=B1crX< zt+rx0H>jT~07;|phFkPkI$n@3>zDSHk@+(;Bh|TY?fVgt_0d{%N68b0*i(nrTubba zE?6^9r7(?7Lu;Wm_IWJSoh-wmxk?g zzOwRx7T!7pYzTYjso%S-smDCb7uys0*>4?!=e{y@q6e;pW>|Q3S!z@HZbqQQ>gjfp zMXY|e9<;>`NwdmOn2(gkAoVDr7!{+l!}sGgf>5lU6SyMzwJTn(a9!Ms3e(G7Q0D^W zXg`%fbB&V{yxI7nm+g4*l#nZ^^@gnf0<2bB=C!}qZpyab%Nt?FicMQH4%J=i65rkU z5a@aS-E3D5)mfdU;N5qT>6u%k87#z9FB$EG`)!(*1b?fXhkUUQufsOHQnBRc=HfTY z<~*-oXpU0`4JkQ-iYz^VyN|UWdJD2?@Ee@-Pw$nwA^Z^iLnad;6A8-F$ll@#eMLz; zs!d?E0$~-?Mssx$msWu3ss3>l16rw+)w~Xto;p~?Q)1=bVgSN%HemJzdW7?rtgpHe zxRi5&g8Ag^C6*HgpWgrLAQ1K&aGt*Kjk!3SU@=YoND0~>IOjYg?eJGmdmIkXVS;jS z%-;5bRA9e^@(#3FR3@7*fYl#Pb3FZ!ZQJVCF2bigg@;tCUw%AVBpweMWO@oQ`@;;9u0(y z4LR=OqRVyeNzqX|YJ^-@>}L6JDQ*zKeMn0-ANm2VU7+cy&dA={8kdMS4~A^9kqS9P z`Rzw9>1C8#42ndg`pjBXKfr9&bXcmEBVfcU0xZbqQuZIhZB!T_NF(5SwcVxyrUW7C zhtd$y25+`W9hYb(M6aJM&Kps>)ZEyyBWu^~|IG;$P}MHQSqX6m>m=@u4f9aQ@}RZ2 zkfl6da^DZcI0Y!T*SLYBr`Xo`I(jY2E{3I>EWKG<d?r$16Q=>W= zZ5%5^ia50GhRQ&={I=#xlf_D9-Ly?(Ffd+g*iVrd%Xn*3RW6&f!Ryy1hA_pL(qikU z$EJzNmz&y#3*7|;|4Dsg!H1%KwzbcmF4uWpo7nvf7n}|0hWA-G=l%2~0$E+f*4!41vZ`uL=W|=<1#6R)P3Eq| z$?>j&4ymaJ<_nhYZ=l`+*M+wmRY9O0a3pnZ7u_wdLtW7ffhFGF-j|{iJ=GFfUUz!1 zxP#xakXgjPCsl9scdM6t0mS|Q=;`pBl@Zxh;boX+agAWTD?ZKf=Z@e<`D=*3#&t=V zye}>sCL&V`R$loz!6m%j6+Yx-yLXdZ<{h_<)5mVn%&FmDwc!vOT44%dw@`b}0ow<{ zIea+hkKYN8mw?=iXLLxu)Rz2uICFQjc)o{yZD;?!oG3WLXwaa!_@RRma@nM!2tiqD z*hA^JFJz}0VGd+-hL-U7GfzYXWDvDH+OkAhUp00$&5N7fv4S~{xf~(*Wn#p0V3OFf9#Rr zZkTRvSL!Y1|-^iM03p0_0b>ynJ?Wbu=guD5%9L1APyh6)~M<%*lr+ylJcHg$sgt+O4|wk-z(3{ zHasyJ3i~7@UI{g@Af9rFmI7e`Hd&y7;GkVHu%1motr^;{$!^PnD98%&5mFzMGv*DJ z1`t@sE(N8ao!^>e6Lo2qg?_e$p>~(TsIrvLrHNzbn z{1P!J@n(oVsKx;`k2g+&C!~ENANF300_1goUjgr*LcN^)8#O>s;w+n1UrQwG*vS&) z=^s4Sl$v#vetJ28a81bqY4;L`WTJ2Ip0K=Wx(8|YK!S??Hr2EHAdF!V5m!!-(CS+J zBE+Cf{PYNv-+-Su8ZDV|Lu4)Z2mnO8SY9=;r1Cy$##ap5d4$`LIjfsJh)KUv&2aato;uoliYr5zt1}@i9L)!N>#`5+u z(ypHfSiiLPej8%d#m$x%sr8v0O-MM0gF0@O)8p&AP(%MZ>jcc1^!*Tb02j=*%5)BS z_mMvdT&=B}PNbNh`!i(>B84GiXd%aHjGYA(B+Cp)^e`#zgvwzTBD4xmsxs>1^NC!W zvd2`4j79c@L9ng@WQ5Rpq22~)GYAKe<$`J&GRgDO%2H~`@@G=Eh4UIVCmbsy;Ii@1 z7O@FU!6~0pekJG=p_TFudaC(#hRDTCAvlkAnqTw}{Z%LUgM50TfF(E>MzJo5tNiy2 zdBRW3d${iqN+r*+V0$#-ywsZv_z)C88|CVg=1h+FdLzF>HW)fG)PoJjvNV(T=8i7e zz<^e};4Ick>G$$CoeojB@XVE-_Q38oUOF1H46ehSa5;34Eu$nw*?6yBMyvfm(02|_ z^V9609?KvQA?)LBHDvr5A-w&r`utwj!5ahb z>jUK#ZXFdQb<+al$*ve3Tq}$rKbhB+UGSY8npHS|&gZi%E2DG8PmlDI!#nrVmV`9Z zZ5i^g58v~nK$E(dN?JhHZd0R(JT0b9b~zmL%nJD9o5&zIr9*ni7H_>)VZCwa8m zDwY0(7Ubz9)|@otBIO*_KN)6bS##6Eoy}tcaM05?L;XKX7;l1`%By%@;6Z19Pd6T1 znke=QtARL65AsF^HySNJGNPbXgS6%BnN6#E0p6NtT zny4?)j7fiJJk`T`tAgkmK2wg4SCMR65LM(IWEFoK}r&y{BVwXxw_Y{tV7Lm0Ds6q8+vygHTid2Xz5o2n9nKOE<=EZ zfHE3MrKp$UsRa4<8bjv~iJIc;e%dCUdAW4~<*aO>BoX_)SrgHmCiG2+Vb)0eIcQZy zyWb(5?GpI7_ zJv#c?G8X$bDM%$J>+jAP`3J;Qhl{Q69|DRfsbYOU^{5`j0C$4<2t*mle;}p(8GG^a z)BS(|^`%mXBXi1z98S-U*-NiPf%?bQBcf!sSDRCUtJ#5pl%j=p!aPB1tYA}n!Ga(s zOVpbUCmgdDFH_SwCv7EZu>bO4cW@R%Ypmkwq0V<77AFFWtSmfFuHt$ZY48Aj_Z8~v z$CRg9qmQizq#KM9ol>Pv`7_=H>mc>qDNr)qokonUEXtC66bf+E4TN9=m9fbi4j0OgHI%un zsP;^g#R&wlJ@E%{!ir*eeEvo(Y``3J6VLNJ^(!h@H#gtSY^naWJS8<$_XJ>zLrB|| zR<_% zYx_7U-)Pq6ZtdWmNA3HN{Lr@Sw0wh5b#L3evqhAp7oOL1Ir!|n9P;`L;;W3yCw6)kCO zau4t$_HaqxJQk98+wkV_vj>Buz6yOY+AU_Jja=5u0n%ure^qM6 z7pLFSXX`Pvw^J=ZJoHY$10d1_Qa^m(_*#hCxE!YlZJDrL`mjoyOXWN@lDcm38m- z)Tj3rvazKcTwQYQ`fF?^&F(ur0eFyQ{oPg3Ov$PBRInUG-m2cUsF%UJ?syl{Td}Y( z)g=GeP?I9I1DD4L48_*g!!DO72<^o-%FzmrjA_~)X}(fd!TYH4$?!!~f{R}0?H$db zIq=79_CEP%gZ)EFzOl3@DW`5SozyGb3GGq{r4)ueepGIJi{B<*fZ9BfE@C6$mJ08i z{;2nT?f$dCq*y3Kjb+c(14_QEg`)k1>(n9t-F-kP9s^h%2$G-V254Jy)6*vAs0X&? z@&)!FA!*kzWk9v8g=|Er2ylbe zH2FXEj|`0CJu&ykrbd5)`xP=hx?)vlbh@@YJ#)>6yS_74OrOTfUQRcblVOP)qf9Kt zgQGLIyn;>op2_(H$MmrAQU%)JQydLNl2EfIvui|Oqf%e3bTIe36#u24tf(5JwC)={ zlG6kV|D2A@&c-Tn2qx19ULTeL^oc~Qt=;p=rbI=p+pr}n?78b`cyBmQ;A*t)0{Eu4 z?GbcixT}9JCw+l=>=w`)NkaZ$SwpE)YeNoVnfc~h+yG69@X2SJQIymcLfXJV&qxA+ z29h5wRvLBR%_zBfB4EqQK&C?{!Ch*t5oW1%t3tgr+NCn!HgT6wH3Fb|&lDfW$$WyF z_a_lX_cU+O@y@hwepzV~d3Jt3RF-l}x9be8p~?ZD!n4&&Vi;FzYy+yZqn)I!iE|^; zXcDYz#0qgTa^PaCG_2R~gu^X8uC;hAh4 z5u2Bj95(vs5E*BeB^)qC6m%jkC5zb>Z{~6H#gz6CwR-t$ilq6(P2{TmM2bBGZ8jvT z(AgN+=TvPfaL&$0ZB`iNjW=F-bShX;D$Lc@*f9CFV{8UVl~*k3uxiT@nlA89Co43acLf)U;j5W`RH|=>v3Aac%!w$dtQ;X_u1uLbEQo1~kpDr>HSl^%& z5=Ra^ve3K*rdNf*CxX5n?gOPlTk___nK!^;6$EA3#8rBgs5Un_8%4@b>Mj&nPmuRt zK|hzXO|->qVLP(2$x}*qN3Nrm@&hV^Uhq}V2HQx5EN50lLM{FpPrT##N7R1_v=Ami zveb4lD%8QM#_P65q7i=L*Mu|Q<$4<;j+0+q(6?EoklE$g#+6m1y!MiZweOp(!I5A_ zd0G%g_Y$9H+GVOrT~x{^IIe+fMRY8p8W;QAP)OsOg@(V1lqs6Nxywe@zKF|KAoSY-B0yOCQxQ8qn`iz-90aYcXn>Ko+CPIg`W%S|Ly>h4e2Z5H^wx0 z6%>{z8t;$ubA(zRJetYrLXmYts)y&Yoyqic0DD zL-m=VcKLxuogt@>vq?*LC8Xh?ln`oZK^D!;uqU)wR>q;zPpnr2o{YCa3l>6Rckb}TUE$1}dwJ2}fm?}=Rg2BCs$8f&(vv<&Gg z-s^PzxHrz&1<9P;vCX54Urcgod0%{f$a0PrG8U6`g(SE4 z4#d29>5ZmqXM@fLYvEna_oa~oS9n+IrL7!R{3u1`{Cn^EW}ljnrJjRTP0@3Cx*#mL zV8U9pRs3wZ-f2-uPMA5mGTj+shwT(dfw9f1wTy6O?`e82I=jj86e z#{8yA6D$+h%CYTrdMP$e^|>erpjP-5;14yH@FkI~J(OhUN0zGCSarQt*Pw527*n6$ z>>7#9En|S6>Yr1=ealrmrHo%ct3DCXa!F+X`S*5Hrq^{*uhF3Ze$8La_EQO9@jWh0 zH$y(5%JQB%nla#0=y^Q%e)}EztNEcY%#hPbZdq)tdxo17t?~2UmHr7?WlPl|>^^Dt zbEybS;l}EC6Yn)PIP!#o4t5@r6PEm~!J|WlQpAusq3@4_dp2L2>;n~%?>{K~uenOw zv?L!zjBeP;AuAL;I}zaC8)vj6O6W~9M0VC9hW36AHL)?NCHZ&JGW zdm!3Qgh2n;^FbBS__Gl0SKx#-)nGu78~BsMv%BZ-DLL@4sD5m_dMm^N9oo^iA-g|5 zfR(X@S;r&Nt!eUE-20<>vs=s8kBCR)r0HH@#*E!+dc4I`MNt zax}@HGN{(=m~ZL(+-7>Fw&bIHfBxafb3E*ULERjksQP_Q|H){Ezb@z~egCkyWwx08 z#Mw^v3jF+shgUxa9~kSFde!e0uTQh%zS3W_bchctw&Y5lM<7s$D2u)!KI`jPAH8?) zxGl1;@~2%evOH{{>x#jk+f-Yh6@BUDu}4{*8S>UguE6v)AZfNguizd34eS{>sDsz= zrn>2OFbVRy@t5?Tv+==s1K^3=mbG;l`9=YZp=yn*_OgvX5meYDy!3waZ~DiqMM`=C zHXfEYaQ(7)7r$3O2>w?Yil1YS=BFRs*uuuc)t2t)Apc~41!Qdn6}+d}q3HkgwLmUO zRYTi)58-EeOnb+M_^@Gx7C{C# zLq;iQ4vijia>Ql=;;fEzTUvz1n$%QXK3)M_{SD|<@VAg1F#GT5VA(6vYmfh}O3O`e zsCu(8_VF~%uVKfAlqcJXg{W-ooC4q9Pv^y8pFJfK$*GY&C91hTDkcG^yyge@n790;X}Ip*`#t~i-GJ4M zh@uP`b+r}0f4{*y=|lc_XMTEs3Pw>cr)l4tcWh}NNqIBYq}oFJDQMW_tS{g2b)ETN zY{?xlJ3g;7n|i(Li;C^qu|45aZ+e#MjufK*9)6Fp(#_S$_Gkq>l5%Z)1huNZ(tua_ z2eQ=mkCI}v_Y5_Czt|T{C0FdwE&4zHc-wef;Yn-7%B8?`o`pPI)?C&nHmu&VF|C*~ zN|HHUY)ssPNY4~29W#yCha*(JINUEAo|ZacJ=GS37*CB2({Kl+=_Y%-q!|M!{Fh%I zWzAl>3S+=+avgz9>*%u0jqo=A%1qfp;fBIHh{m<1)lV&v0MiO7@B zV6sjLqvRJ3e6$`o-emLo5e%y889-mXU%bG>m*JVBqrlF$s;+vE#xnwsoe)m1;CM`* zGSt(UYb~9a>ptFg2I8aV{xqg$Qbv6#4Q*jx7%y-AaC-U4(Mq4NyJ39vO!*a8+4pwE z>RMl>9(YMkkm%SeT=B5&QdFnV_gG1P&N~Nc8PX|pH~-&`C|uByKyPHBx^cpAbWY0A zB)jWlPRjVHBc8%a%f|Zz1gdYpno6RD+zYMO@fM`6n{HwL_D`l~?|wAQQ~Hqz$y6@L(290ydy%ba>mQ->REAy_eu$tQn zfm2u}Lubg!9$c~ew;3w&;v2ur&{LP=kL8insqxpxx-zC}4b@dT%Wul^XLKdA@JZNV z%^~6+7);26OrsIzf&X%cr_|ngoeE^U%uo9bc<8-QIrm4`%bR`9B{eSxt{JdN0fqMq zUQaeQ;$2kX7#(ejNcBzK^!w?Xe;Z3Z)z#Vd%r>iB_b>cm@>^7>*)crtK)orq-jP|5930bVJ-Z#eA z(Q}3KaphN^1Ht6;S>1*nHGx^p-t!%x?<~L8>C}o2E20ME^c!jidxm)5`OiJCg4b=BpgL!3xmo1d88#d5m>@*PsGzsMBp06I23|LB9M+K z&@AH|_8sfJB;&0E4Kd#)ki{F&MfCHWQ&k3l4k0lowQ(cniH`Ko>qucyMSC&OBZ$vh z=#dJ~Y6dug%_iOmHI{;K1CfeAAWY&bGYVtBPu7ziBlE3PV}e1&cF?X*8O3A{&VkQ* zLXkd^TG|QGKQx<1Nv+Th+m6DDu+!eZbhmDl`bOm`W)hLyo|GPfm6nX@+G}IUWk&ty z6|-_uKx}&srlY&?-Pl+*cJ3_)@T8wvKNUVsF4*ZQDkDA_zCuc_wlYTnY7%{_vD`2pB&)gaR>5+~ zLS)oAAV#nC2Uf45^9q7a;Esc-qqI*KUEAEYi@jpv($S%|7(}QK^rz>&dK@Dp;*JOP zeA^@OACB&|bRx>#zaq-rN62TMf0;+BjaYa;#5#-Q>0eaa1@i&b;3K@6Nql&$RJ#kx ztio-_9_JO?WPPaZvkA9% z%{O7cEj;Ww2>sywdltbk<9g^+DznDPtlNtImtAEGEYx>7L7wnBn($UB05&H zQQJ>G*{1BqIilDE1FX^%n9XB((4-NQ-kMW6teqI`r01EWDKn4x?Mr*vk|%G;)NcHw zthS@-1!o7_=8JDmVVj-Hc}57p86PzAl%e$!5mNgHeIr)uSDfQuyOgO%pL(9&#SJIO zRlwi)xsg$Av{@+KSgu{$Gswwh7?LJ0^oiSIn8AEvo#gbDP^F7t5ghRq@qrH8ewYTww9-MsRUpsb4r>s zkCDGuVC|aGVt|KF{lWg9aasLYyRhN&Hx(23qn~=d53Ih&K3}|T6JY-$g% z(Fk#Sm4n_Zwoy~j%?Y)pU+K56-jHsS_;?^dBe9~~Qz}Lg{6oN+^W>^jj`+#(*oZR@dAb299wzqk}7MLff>OJeVH5jIH)0BfsZgldO zntUk>!6{ZgB8a|Qj<7Bk*-=tscS`4NHl$Z{%0;}TVP!-PpY2h3gaVZCO?O3lIHc>b z?IlhnK`P|TOc&|7x#W)g@CCy1G%L+kowTU-#M5EVK6=^nzg3|nT(*-vlZw<-kHHmRo} zNd4hvJqj|UgC#%hRmAF6$!3a@rQm*wwpJ9&ic4!Flh&?NU=)~1k~ux=Ww^bAKc&9mLT$8oP}J zBWOa3Kv3!r%_EAGv@(;7X#u%=e{$GqZhr|sh@OIovo?!MiMCqQoM4#%j@6uLXh^;9 zu!L<&PSgnl5<1ihzHNmT*KRkN`1zs7mWoPLv>|;V32{l=CIRSbE7h{hsU)nZ7*N0l znkwlDCrGTfDles5mAYoGShhoexIjd5CaIILaV>0+G>~@f1G%WxZjHrTeIqp#%Cx9o zrV|OA@@tKzHpr7&*eKyK~(kaP&lurl&K)e`_WI4 zn&K+lwMj4vffxs+NQ+-FvgjQ<)^@hd70uEZ$aQC8o81BlH6x9M5CXil4^aoLYxESg zvL%Mp=ERKu0H{=nEr!a%Lbl=vti?=(z5;>RL>ZIXq&k8Ndl1~mdOU2(O%kCjx|mX7 zQCyoqKqzuY6uUzx@(^0CNGRaocBK}Ij1k6uYjQURAh%I4GHFe+qDo9r9wUC74n{Z`u5F~a0<#2QoKa86D|AS0RHVvajwBjy(y1zg0~}D~7YAbf zD#!BDc~j7jnkq@4QyN%5=`-(52+!e?O>V(L`9JudwIOKm6PfK;)F+ZhUTF(wBkfG3 z{%gFf;}xvJd1hl6>?y^tdU0ClB1Gb8 zLO}WVtYfwr=D4OkGZl;=2l=~mNdUwN>sZ1Rs(AOM+HvoSz()j`nE0CI6A+R9)q->$ zpkotUn8Dzj8pb*g`%(~oYZz>SAc{ah`_Zr*Ob%pHOoCK?Xqf5$0C7z!6C?~9M=`5Msw6wqglmLf4wg6yjHIOu?mOc{Dm~FQCf`K zI4qpRd)ID`vst4ZyRUQlR~3RH0IgPQ6L1j}p=s;E=|+N@6Ls~HVm>G&8zgC^zOaVdTZE5DNF>$1uG=0T(LRaAMfKuCt^$7oXVTam$>x{0LnTX- z3bMSr(n2&{8%%Zkr;?KO!A44m6YP|ZKGiqwKM`JPYP@q>wY4NdiW~&Cl#F7NpBHgf z9vZBUk(BXQiX&TWSzdY8%%Lbsz{<$wN9M0AnP7kql54N06SMi;MOHH zMmZA8!SuuRI}85++{w~ynLb(->hi&t4_WVCVXtV<+7hd#l$FnN{VMBphTbi~w_mug{Q&VDMCq=afn z^ecbbv&qvAo;3E7f{+!n3Q+1jr>W+sp7Dr9(r($b+N3$XC`!FQe)Yt@Bx5%0v~%Q? zIJL7!ZR4@5qs+f$DpA737(n)#aV@x@<0OXFl+Q6-c`*JNG<0Ik`68_72RWoLk=*r~ znnk~-CL`@#ipCQk%QfDf$Bvb#!hi?7(hv@RGg{3;W3E2*il2O#t>oPyAcAD`Nr?Ph z8qCKY37SZplkr%>K?I&X{izHdYcmN3aA{A^+OdYHW@nmCoMy02Juyf?Dfi^jK>q*+ z@-tjgIz!Pm7UTZch=EpgaVb5G4t(O zX*Hl@xahI9ah*jgV&l+Lf|Q=U2%;?PQUcK1t`^nEh*NRF{Og)h32w!1 z^uU_Bw$dL37UOD!899&lsjnMGqRDqoRJcea9sv8*R+^g?K5K#~E;Q@Qc`r0T$T5&U z^oU_Li4KLKZb=2M27qw0~7gNmI?XTPnu!1tYh`Sqp`vCRkzi&*DfY za0jf44jrJVV44kbjfFP{UdHOI zojHX(hb2y^h(F3JG+rfVafz;vj=3u#m+LAlk!ZJGZC*lM0RW&+S*YERm?W#?pTfr-W^$3CYzI?p(gHw|b-Iu5@oH#z0Y6QIQdk z{Z(@6Dv>N-w#T!k>GzH(IMb{tN+2k34``yDOPWQgUz(MukN_aT`&U0E+KW0VMm*Mv z!Kt-;ex2oPQskx2^!p!bpm|O(`qHB$Dl4}HDY&zTEV(4YEj0(5a2>}Y54}$P;eFl0 zK#pg%XNf6Uqmxu4mrlGA$S|J1^?RaQc?}oOt9*b##MH9=VxnIU+FY1z{?NG%uoye|CO~*poTnBB=n{KWdf^s?ct2=9THj);P zNbOp4PeWpjY>m|=Dhany8%&YjqYaCtsaS07!98fl`YgWBLfP25l3Z~xj!ExLakj`& zN;c;a!5;KETeJ$KkqfN2;Mf}wcr=OAvLwfIOr=2L+b0YqDaqV;r?j$_B_Xr7y(`$t z)6qJTn2?wX4O@NCeO3YbFWMttF@s6gnDh$N&<7ByrM> zzb0vM=mO!V-DnVlx_i`?{&Ot(ZncrY_Nr=#q}IY(LcFwVhYwo(03 z9?0I1xPU2C6}S|n`xDlKOQE+(javcIHxz|V4{GNdOzka<;(GpcZ^AbnS;@CTMkhVZ zF~;0c^xz)7sHf~%EB!~I1+7ko`0T z6(ka4?^@r3H(#;JWd{i%C;HIN+o<{-bRZAKv`Ie{QxZ{Db8H05X+oDgDOk-+7*a?| zm;elwZp8;L0gNlbC}E-rARlp2t+pBict}y`Xj^Qf<5qBKIogPx38yC6vpdiv3Jy&f zL(3s}TeX6PszmWlYTc!_mmyGk8g5N16)3mR<=M25R;3UIb5NGs3L&*8xszE*zQvSM z9Hv=9Lfmiwed)=zL#PUGAoZ-}TVqBrdh#l4w_qH6SA7l$CI__+X8c;QpGSgHpa)Y; zUAj;uN=O{$o0Ym1!AEv5G}?#(#FBC#^rss|M&d9#(Yowa8|Y}Ylj%sF^uI?3Do8yj zxlmR%)v>10S%~{m8#Q|XD{==0H|Z1v(|(bCuxoM$5vJJkN9$emrZ_dZ0YquGAaH3- zx}r9k+^8HxRk=9`J?p%M@dl09+(!L6l^Cuz$~ZmyR^$#WLvEqYO()YYJ*!R_I$WkPL28lwm0y$)PFg%$Ch4UZ3E!`3hguzT$kx zNDxm%r`S|qxpe#8X^mG|c|z$452=D@a`{Y-fO8ckZ|u7(X=(IV_}j%w(wu6;Pjx^z z3ho_A^*W={dscr!vDNjZo8}#Ln;ok2UMtBQ6sCD3;;RMt;mC~t0OZL<7mlqo{VCQg zEO#p8g6+ebrYG>GI$})$p?HGpN_3X)7Ky=*qPws~%O1`@kk{n3;M*(qk#}>Yx2M@H zO*y$m)q#>a0Drv%y>UvnbvG91x^-#V(w-6;?m+Kc&jN#JzAUnmO?WBv?*-p$Eh_o2 z(`*&&Lfuq(gmbh<0-)6V4XN9$rY)4s)9))|Y_hG(j_T|wqw<^|T0_eOCmp@8RsPNV zYIY?WE3PTi2})EZJDE5h^qQya>%OMvJHViV5Rp~xIg`cpkWr8L_)I2Z$^8?f+We1)9TO}hU84%w`pz|%u~hfI2X z`L6Pu%!Br=XcWel*F0d-ZCCmY8#Oi9(3MU>_N6IN1{2Q}yn=-C)C_HdP1;0vt!v4I zDL?JryJ^XTML$LwPq!3;V}p}9ptZ0FNr*gjuIt(}SSMr*_5Eoif@EOUF>=%EfQ0lB z2fav!(xv&^06mG|QauF#Ybb5S1vMU#0~KD2n}G>ZqzS?8U0C9!4V>9qQ?waqFIsUg zG>8kpBy{(yJ6&n?T!VGf(xFhv7|pWSsco%GPa-K+@>^vpb$~Z#VZGi8T+QRl2D(_QhsU^U)LP!v< z#8sZ5vN3l(7HDZIDh?za*(p3#ZT_F8v2YafSGiw=0{~RxCY>U)jCiKUDb%U2A?FaF z@8KtadK#@l?=;(jl_-KR49Fv)6=+p)WMuq>SYKS5)PE9EvO>M;-Ar2go0O-oy!RC> zi;K}nR~>+AS9YPaEVynX(o(*o=bFykmeTTrMo~VK?Oh)oG_9Q3rRcKL^&5t^u(P?b z)2R3~%~jUjd@Q%MWO~Ryi?R8m6~=ag+fn-w*tFZOA2gk*$;};jY}juug*VVnN6jql z%8`_mVab)3Og4~*nFnK?3EHyZ~JJh8fG|=$5T4q-9gKY8HJemQ;m8)^*t#{$3lRW&%rYlZC zJr5L06qOF$=*e!-AuTHuDnAM0tSoO`wgE^$pu8c>y8agLIMpp+z=~ z>Puj|ZHpl`>E5QygTbI~Z{AvV5^_C4aaM$F?2MiCKTW<=_Z*Io|!h_q`{DB6Chyx zQ1MJWj-AOMj30Vr0B{U@n#)FgY?UW&Aiy6KiUGqj)`jfcpF~a}W;Ut^wImerB=eeN z^efiKB}O)xif|AhnV)JEPeVnH^GFy67^iuQP=(0`wQMQd5Ue18kSl}AQQ&8#1iYJ{ zp^I>k1kxLVI8PYGHD6%lF-~tFjmaamIZwD75Hm%32PQ(4D9YC2hVDfo8bSdnZ7Edp zDA|r6a7QhsPQ?#B8hMGR~!Kt2h52*N5w+s`-akxqMY#+mG%bgM2A{#HyxnVn}di{@Szhl zSW~Ss3ue~Zl!eJa%1us5AgLe{IL!taJ}7HT0V-3(syZZBG^H(Dmd?Zhl1*l0`eJ=W zysIREzyqArX;R)$ET}?E#6;HG+Xp223H}mOD^`1RNWU$#h2>N2OS>rL;r20WLSu4& z5Rd@kx$9=02~i|RKw^&2x@wrLwA(@l;psd9O*=sJ!jxtVVzS!{Ni7VxanO$~rlnDp zP%NEImn62e1swLLij7kxB_{0_NN;Ok?9Vc4H!Yl7iCa$kM>xeL(MK08F;>dI3RVYl zDSVWnAgsk}u7Sl}vL%l)6K?3;Ig!$@^hKjf(!BTHCCi6Y5d)PBenOeOP_(Z657KlS zonGwfnzCgmQB!D8^*IL$QRpXuLhAZaQ@0PVR%pKAl(vFr*&zH>`Ae3N)dd=pJmbW7 zH}|)NH>x18Jg}6A2?B}JyjiNZVx1=01=Oc&Z6ytoM0Ceqwdh_qk7palKgg@Hk6mL_ zMf;EH*6uX=;FPRE6te&kFOfOVn@xHw@BDABI$d?U=Nb;AAw?>M6!smy)m?4ktya;5+c5ixY%h5eGJWX7 z3~H#;l6V6H%Z=lgbP9ZA<@!>^>wq*{4TPmXg)tZ$51L&+#Fu(X#kIZi)X2(5w`#k?$4jO` zWanPdJ|kwn0*q2px=?6&j;%NZOz{lirHPrJ;w+6N5G0pf_a2XGZ%7e8LB({i&X6H*HdryR~G2%AU>ykR$aJ z)7Zv4RyOEDcf}e5q1%#EAOZHK6*gr50B&m< z?Byu~D*UUHwPsX=r?gOh!kXwYC{s_8lOvtK?@05~=pbz*M>wO|H>3*aaC#TP;M8qf zmAaovAeb>$QsT5lrsYMUy%wtS(utmD6iK?abq$ZFK~d&;ii?ku@tx>_yR_IX#D<9k z;&~L0x-ZNmZNZ7HRrWV0B||Koe%=27E&`IF3f;jJebSbO)EOiuG4nzG!C$Bvw8nx3 z!tNnNiAuQmqCB^3l3hatCy;prR&u_~l8;9|`rUEADb2s?ny=MM&g0eS#ELM}7IxDH zVZ!PXkZ|81ikk7qiw!H%w&p#csP1n|!*gWJ z5JzfA#@Jk)RTYYHZV-~86(e@(QgQ^<-_=ql1Rs>)2W3K0Yf7_YFq1OUa$o#A>^5l^;MIpsUk9s z!J-Wn=A0?h?;28@Ql$$YiL?F3wO@Y~7YT03*)5%`ZCH=~>jzt9ZqgM)ATvAj1m3FRpw|0(+Z%mHcPHi$gxUXeQ3)3rczdwauvwK;kjt_TCS zTBURnab1`rNhWdTX}cH_K_}Z3MUMH1G2a35u+I2x~x|BH?5rbU$J1-8l6q5HYqY<97?@#i^*-B!1R3GrN zP4-8y0thiUr40^6I%=#}5*xOH&=M90e~JaNkg*Afz$2P?yF}X9dQ$ur(tN@>BNZ!2 zQ%NCb3g~l4>WU=R*z_sD-yanjX+-Xf9M)O`ws37z#XreV2h+_90*T&Hn880a8;e6< zkC>ROwic^osZW@l$RL6-6zzmykMlzO4c^3paS}c$r5^;){sNBLp46cda4D=J`Ed{? zoTR0^t_SNv!Tlk9)>zAn0(cbQ5`92|4nY;SRs_}P;DnxLlgdg@-m;T7M|o)iK(6w- z$LURBV|zov4vL$)>F53J*!d&CdTej03}D>pXMwNQ3o}t0J73t z2}|ywq?H7Lx-%U`6>+Mwe)}cVC82JD5|PCBp-H)uP0ovTX#zey9)~rf8se6mSChVde^Im zALC94;mba4H`rmn4G1Ums{5rs4=Pv=r5)W}nh7)b^v6$>n&iPU6F0UctU=6XUWY@CoY6p0Uh#Ppv?PCd;? zA5sK)c>=d%DOW{%%e-;Yq#d}$ImO>N5|R^+^!g;5yBTo8ZbnnJLy{@>_UN`{O}5?@ zlCGwf^+PV~3g=JW*$GkRd*+22GrM;wU2-_9LoXFXXNgIc7R)IK*rdWm5Xu{16{VmQ zc{L{YqOkh+;E*^Hl1wMRy)Zn`ovMX#Bv2ohvE_M^;(K?bE;3A#k~o1&*xc0+-4v;{ zAqw)hcIoj|ZL*tZJl7sD2*~8sBI!{KoLjb7Hv29ka3BJC>rP*il$CA;QH{qGD0s;< z4wn$*p>8H-eKh1ZxRotHiNFH0v@BYYA!(HWMr8NtOcu#WB!FObp|R5BvNqGEUG5g^@>JxhM2r*H;%G~YXP741Fro@aMSN4nAsxPH}aILVX< zNF(}GR@Q2@Pnh^E%CRY&ed$#7NIWUqBzI13=?Y!20mjJ0M&VJhq}`$I?k8($$yDIe zEVUji%NuUc=PcjUA5(=Pq|)3oZsTp(CCs!+x%^$|C%t$#8e8&8&Ys=MLv95pXW>#t zW3l+I)htkpWThq`V;Mg*s$XO?g+$M^-Nmz^=H%?od94##ezfY1(kx1gu%MtsPfv=j zSuJ}fiW4oEvw6nP)?Eu_ByL-4PIl1KqO_I1E|%$!z;G4!u64=17MB?JvNT?Jdfh;@ z)9NokKA|Z805uM#LKIZXiCPZ|0;rEflK=B&1A(Q7OP1P~2pQ;;$6QNz$^t@+3rd+w@bi$6CV$y(J(NI(rsRBfM(+z{x z?(AA%m>`UTJJeQI^&;FCaWoc8g&-krf~4dh?M1xMVG4Kvs3R4|-p;g@Sy`w&tJ0MK zQ?OLJLu+YdEd~^y#ZKu%h_SaT2zuEC&|67~lZt-Q+Ro5+o{>r3gIgtVD`W{1PPR*+ zWJnddLvG1Jn@;lC1`cDTR%$J>H#krUIiU-%PF9L!DQSEwcEArKrB3RQo(B);<{MJhZ*cc7xYjM-zSYfiSX+r*Rs12t=5fAvNPB|wmnE1xDl zHp=43dJ0$vX(+)xsmdsAIY*{CR95R}P13qE`j)2Hf9csFDMa~L4=qDy%YaYiK{~sXlOCUAO9q?Rawe6672P5I$pmivjUF0m;U%{~-ZDqMJiIg{ z7luo3Xjz{ve<0MWL5Khoz|Bd!c3LZnp%UKcmiERDY75s9Wp20DjmbweBJI(orEIOz z^*`PZINFjM+XW(LHErdVu!V@^k&1Q+r$ zeJOL)58~-HqMZ5~b5QIkC=m(Cn5BaRb*=u4rE5YFjQy#lB0mW4Skgj3lj-J>LmPJU z)`f~83FN2ZxS<@;P4;W{A=wyDy*JYwQyH|**oi$WytMu#gF!Pin9|yCKJ>m?NdEPc zV$xzMfddqV-3R*CwjKyircA|m(;ys)#T%n>(cVHql#J7xvo0(l2`Vb$wYu4qEF$Hd z7f1v5hNEru3XQCl6CUb{ZN0zMZ(G(XAt02gqX}QmgJ#EORFR(bU8TZDjdCaAIUc60NqNUnAA2?a!SntB!+Pnk1T{`nWD*cR9CAt1E;MWVdrOwwc*|u%N_mfJ-D?`I ziEU?Ot3)LN>;jObZg7wF9+5TX{ERKM(c6P6jj!O;+FeLVVZx<}03^wpV~x6kTTn7E zL}VJ|wDgXuVg#r}icpmt#7|1bqoGD;j@8PO$UkF52V``vB*YOSVu6PGjQ9S6yI~ww zu=X+(L5f0^@tO9bfN)cpFmcUsE0Rc@R_wzlVuF{TIEWhvNB{^P)T%%!k1lD9MwY{Q2>|yr^a7Ov zRXu^MWuf~)5ya-Wdr$k&5A;NWBn5L$QUN2?z@Qb-o>B@&q)jM9;Ep;9!QzLe-Ac$o zJ?d6NZRKP1rf$fkLamkv+yX%MsM=r^M?psPYF0|CRJh>^9~7+ZVOwDH@Mw3VCB=t_ zywr%qbg150+&s*Kj8f4@E7;e9T!iF+B%f-kb&}iC$r4T};L_|#Z)hj?Rm17tR*mBT zZl$-iykzZ4LJ0M4BNd#}RLr2((8Rp(c&a@@K%Vq7t+=%nD3c~nT4hK^n>m|h0#peR zn!U6rb)>m)k-4!HxnC`m#<-7F&AD|5INCR@e09uMv(Cw)zA}xJ7 z+ho5p1i^|o%xc^gLZkpxKWNU)yh_H)Ej96N{{xbwNG7^Pffmxp{(c@4y$Fdt~MABB~gy#b)a=$ z7Af#sWz{GpLE)aEOO7D_00+zxVltiF$F)^z z-XOKU2~##r+o`n>JiG;`r|V4*j^it4dEEY}0lzu%y)yvF6{l6=Z)_QCumaldEaiw{BIn2!xE49sv2PA>o&{ z2W_20%&q`idD;(gQl47qt~@q#dS-=Zc9gq+=dA`5(vV>)=qI&0-v0nf)QYW*ztO&f z2yRK=o}H;0l)lZ67MIp5M9I^iO5qq2gE2%d(2x@2vPS?Ko1dbJI@ubu@wfPGsGp8# zi)IC)Ka5g05CKtvG#sx%jCi|Y2~2=gMsYREWE^fXGf10V6=^eqN8wNr8BwTQytG;R zbU0_I1DYx>LP|g`wxug;E`!tw$sYA1wu^O?+l{4XBy%-eBUXVGqCR0EAnxpGt=Oq2 zX>JJbil^kYM*MCpdDHymgasrJ4;^V7(ss5T3Iu!7@~s2$uE-g*wOig-niR9p4z*=w z!&dI3q_~}@Do}wvjcK;S1iMAD)wB;YYPWQrYL`*HdApROgh#0<=~BlPc2aLe71J$; zR1%`3@{&es$3@gWl?A6r&*7fE#dS~b3OS(o%FQcnmqJuqNCaT}8fwke3a%kd+3qs4?wOo2zydTR|m5nH0+8gp=aznG1Pmddf>&jl7C@TUP}s^sEj~ zwJ&=^#nPq$s@?_?8fbcn=dhsdwGhjmYMb2QIWvf>#upM2o8@Jf?`v|{K?D*ckMUAA z`;Q=-b_qX-1sE~hR9rZ%va2QZBCmp)an{tOmPkp)3a5$&^Io%mPJNZ3LGpr~zsvJI zX`_dnlS0cc6lQemmyvd#Eon-XiBW(m{jFi-+=lMp!~~Fko4s{rfz5{_TP+%8S0K3k zs!)O^Ba_~SA(kCeh__mbj!s4^jxya@*4CA+h~|@Rb`VtRph=FVdVEld(kSU2(rPIrST%8K^J!B{ z3+akQwQyEe)5!@|AdUqixb{>30LZjQZ)mG@o$Cck&JR;gZIv;(LBhG{dQr6@lv4iy zz&+Bh)aY@O=!n}fAMagk+pX_6OCWLwCYsV(C&j01RNp6esT)BP{{Xrfy=L8IL1|oI zq$K_?Z<-&7SCgR2TfuPmlo(PriIY>kbe5d*nr%*~iQ17#onAiX}guAj6hBnd(m8^^emilt$;60)ypu;D|xlgs6|(=O}=D#uCSz|sfxZl zuv%p0ice@WPPHLuc{d4=XJj0F)|T0BxPXNtX*u%<XJme&hz65onjnf8I$~0MNNV&IY3)d3f{FJEV3b0|;?m~+Pa1--Wo2STZ zPO2}mQj-#DAF8(VRLO9aAWGn1QYCvur08m|t&qx{Zd{BGnLX)Pd(J>v5NVWkVkukb zkd);(k%BtX6pVDhG%29kmqQfeDSZ~?dX$~f?N9R12jTavv>4Mu6o~vWTo8ZL@mkTV zdKY42zr7~FKg}w787+&mF`tT&yH^|qNo{Ha1_cK-6DYUP!UAwVr63$n^`m;TKFO71 za+br3Wob$7n3^e;-?U*O-5#reRP)MAhFcxI%>^Xg0!v0s;o;jPy{%f_IjCH+eJs5I z2M#wL;D1`qU3i05zEerKyIJxlX4AGO*jIiiNq*-JS*QB+8>Q>_R*F+*@k$PvT2^;S z`8BuDt+aKP^{dB=TUF_8A`+#Hob{#o5NmNC45QQNrtuevm3eTs3#wBnSt%V1^{lS9 zaA(p$Ok$f98lz5Kqc~nJIki9%Ol0Dw)@{Xudsw(j$N+C~I2(xkB6*JW-0ey$!#LEV zE3$=GJGnH%?;=b^btuz0-`iwMxRVB^L#0iGm13(X=p43~JKJRKA}O;e08I$>Lfx~t z9A+u$2NOleDcLd#hE7FK=7I#6#Y$UYL~g8;GEEGiqM~FNrqZemg-eA8IG&xU#pMhn zm_GE}ZQBtmCt~fzdJm?K8k^0$+vJB!F|;}A0ywD3D(IwT^)-5T?H5tiC@y3rYRC0l9a3_$x)6*G!ZI60`d5OI)uRz_)1;!(C>04WNRJ9FB#SbQ7^fFw*) zN{6Tf&OY^xXiJyTXxUSMZwZ~9Pxz{awa2cm14Xork#!f$44Vs4l1Y#?QS8?r%)*g#yL6QS_=``1E z*-759__;{wOMB3ini{JRNGM#S`|(QMzmlR-1or7o%JdF2H2JGiphvt{8%G!ThIx_J zjnS#HM(tFdVtWp>)wT(R16ur<#)S=^EVh)8PAWF^>~3{HM;mBebRIXbpu$j}F+B60 zNv>0%fQ6<~tSEI9t=P%dfbOgk*$PQH;2Pw#(vbyHt_0JkXq`|+lOZUDCTN8Q(;&y% zmEDv{aoG=+%4NpLKQz~0Y=Q~n`#-euN z(sB9IsHRR*W36shi-Z*<5DpCS??iZ?SG{qOr|cVm+}q870+Mf&I zCwY*4>gw9hMAWUCcH;Bt6v|3mN)x$D{{YM8y5%V}r20Jgc^%5j1#Hsjc;rO?r0 z+ld?JaOEPRag>iqwg)jal=*gPMJ|S|rqT&EW9}&tr?TWZ<$xv(n5Me&3bLD8)~*nj zH1-mfm`TV_C*;uDUx_t6A)?K_($IoIj%%tolZr<(a!ty{t6E{(lW}m;%GRKwQabmo zQZ?Nco|QbfTB4Zq@l;ODmD)Vp&B|LJ_co1V(CN&oB9rDXD zCum$_?_A%tmW!%LDa(OsfZoEgdW_X(sO{dMz+o&D`h=LoR>qR4NNkO@#OqZ&!WvWV z5D|ivXLWL~Z{Bbg(X}X4=eJ`|NxhR-REIW;r_#N*8~6H3M@kLb2iPO{sS8y905ll> z)Ks@Xan;$@_OGz86|8UHGEkA03i&S932FH`fltrx9!oqovVyZ5}h~| zDZ-?swB)Fs1!*tGqeb)CGfru?%9f?~0F=%%+J(GhR=9ZT4Y|8!2tmpOaURsGPn3!^ z%~VFAjZqT9h;6WvwK#tWJ!juMRUV+xX<{7<3X&8!_p4%Qy%NZpTLx`~m{>{gHKovW zgkLkd=&#gaG5u+?rwQIxdUbv0X%eyfwxn1gd1leq5}6taQ-(H z%12)~$?-!RvvEr+MZw$*!J*dEh*3n0{S_R2ZNLCRhnZ=GP$`>4rHWt6-YMXPIU<& z;_Aam46b9;rIQ2iRku2w%Fu<`Zo-Vhb0@tt5^mU&lj#Cm8~5)L)5>uh%#{-mI-0b3 zhBW4syHypb!T63y9^UlRe`;L|1xep!a_(->$EglB2T_UnpwV*kPHx<|Jm;lSDKQ#- znpX96p$SXPpaKC3`%sq}x`SoAakU`Kf%(@u#H_2z+M=@R{pV1mDa8ivF}-;M+*O+wXt8(cP|TFU-V9HA(vqH#BL|P{ckj}h#~O7gC{7W#p&id!lwB#& zHf@07fR0A$T8$HgJzk-J1U+LfE?4YakE=d?*QTWhtmwsPBfFE*1Z=#qG(;?{#1 zE9AtpWvIXPiZ>0r<*pJGQ;=$|rDAb$ri-tn3RryP!~;qi zR{~GPbMw6;rA79RHtIPi+dNRuK877rYmgE@7k{;6?b8I6Ae}vfsP0v)tRND7zG_x9 z%d3^_ZH1UQDg-2anhzyDK0>1zs|~oj(tJB^9DUS1a^M?6lPMYJ{p&Sx`$WD@sc?n^ zLfkB+w1j~ItApdlP0C1yY_9mnz*U~Jr)t*iEyvgOj<{PXj!#1sd3u)oHKjRzwi4~w z{3MADlgHdrPag>=v9aV+jrm8PG2=Z|jZrr*-7V->s4U0;^8%0YSBgdJ1-m=d`3ouD zl!y`r6F=I!Cy8oE=8T=R%xiYKjqc|y?ca4Egp%3`5_lM^g!l`^?tmDvX`)1^yyymc z4`WR)l?bhDc>H-wa&%H(X!?$ka~H6O(ySyI`_`jQ)o%3-DSBEh7OSLs%G1#UoOGwj zk~wkm=#*h7Wa5fv_uHtY{1o$4TArfg=V;(#nx+(+O$nCLqOiC`D#0x+RU3=Tdfvy1R$Yq9AG z=qbd+2>{ZxWb`}D0YBE5mju9~qpJ&ca+XNwd(#x)1e3)G#o3mK%BM85105?lTc9su z6_n%?^G4~2Zski&&CqEnNmk-IiWx75^vbO{GD~NOG7sTCo|U`Oyi=v=x_!N+zMh+> zzZ35|OqCvq9RRLBlZ)~yIx%G7E=ajgi)^(ErfplZ+7tp|Fb?nWR!p$s+}iU+w49{O z&&7EY$M~HdmJE`}x8PS>Z_ZOma!Pq8iXCl(_N7hvD=K{qI}&)!F7X^uXip=8RH;_N zKb;epqQ?4O1ktQo8;RVv{;joEGksT|%u^b$G(7G~7)ecKWNrHRSt%NekxKav; z$({hL-HeqP?NaRzDNmq+RfAOa_bsz#G?uurk7xe zOxGK2Iyz&uWJ^Kg?joDzOcF6f)FDX*2hDcn4hgJdh@Nmq5lXSUClm}ZFy1mL>QtN< z_pH5!#2dTB(u64^)JL{!8)t4KIi%f&45`%zD3ZpXE_Bqcx?>q_d#BX3SQN)Grr4uZZ*IJ$!ynS3 zcHOk)D+e4JWZE?m5F_w`G>L6Il+87XRz15wwI^U6qZMbWT3fKvEt7k0RN{XDGq>Jp zZMh^eNky0)Np1%SaO86pTpdype>(Kx6)4fclWc$0IIsXw8*)8dd(*@2%$1X#XQyf| z6a?>VBHr!B+)Bxm$SMbe^Io6fO-k8Xa+h+#Qra?@6OPgSD}&}^)WPF?zWAPBiz%F3YM+r0=X5$8y>Kv$v)J?>JD0=MO%EnM5YhDSw&SG?oB%-apoLr z%w@7AGC&ej@l_v8{opUNb%0?-YJv~7G;TeKHO=f2`r_+)nRv>837$!hezYQNE?tKM zDkHsK5>Q={aFm%PyGl_9pzT)|PF!AE+gV$Zry%YL$@ZE_(~@kgR;URUw=7+>l!CIX zq@hwV@9j{HQ&L61D0x!Zz(~jBD}80Q3TW&7X8B=O#VTnFAgu?f?@4ECZFb^T>xu|! z3xJME;wisHa0hOr5Szp$($d*Wjf?=H_4X1_|vH(x{^=lM~5W3WWNPIq5??soGmF z%Tu9FMC~6nqMZ5!rlJz3t>0lw7YK-%Cyw=;I<<>Wx#a~3!E~L*J%v6PN!ns%%Nk6s z)OO6=QhI&Y{mUXmEcM)euKo?3OMu(a8*|QfZgA>(h&#MYO)9 z0#daZ>7RO$%Ri<-xw=wzjDnE_ABy2}adqVGjZJc13gj-?4sRNYRu}k?v-oGdO>t(y zNZQ<>2_Ya%cd9#%*)-zqB1ACQ5KR^T45Rw1i%TJ-IBplecO|rG1RkLQOtM5=u*pD;>~pns6lu zD)$^y)QcMwB)su`-l<9Squ}*5(fL0uBy+rfiR>=xP`9x$fPN|zqmd^WX4b7NFL{-=78635SIR(vY@4r z80H6B(B$Q_PDw*cM`-8kZIHs8R?Bip+J7(o(QUW&uc=78TZ$)cz(gb`pY2UI#jzpA zNd+ZZf?x9#>O6shlgRtj_hRE=R^ZwbAB5!m`&2%>w2N`AHf8SoQK++d3ESnipf+vh zKh0a|x{1}26xvHl5xgi&{8vozD94gHp^|*uS>7S>6Mi3TXu4VuR_Cted7a0mJ5ic% zi;(V^V4Msuu{;LZ5j`s(4!adP?`S!F9xZ}5Uf0IaeJ z2X|k3=)$TLEY|ElMY{T1#Jf2`+&+3%v&8--Qc+-3osWk1C~gHJM5!6k!JbFOB<()5$Bk8aL}$U? zBGs;Z*R0%ax7GO60NS2rIf|&)d=YVATw7``GSXzYL`m%wxc*X2D3z8Ai)_QZCHev#0eGc!%ErYwXvIE=Z@1&KEOz)MD~%%PC1FqF47MY54C46EYTHdPT#^YP##HE zD5jXz<%kqh0y(8B+yMeHMJL#aQyITIVj{bLzcrrNTSI)@{{Tp?E@uKyy);w165Fw> zaYCAxr1AODu3Z7i^hk+PgjAbUlh_(bB^{2V%VXQ#+1)s!8F}9IIW;9?Le`B(gdJfT zi#~c3vbAmW5EOlZJWXsholk3twr6rug+Wj#a-%9#L@+}AXkU7ZkIm7pXh{Wl@2kd;DX)841Lb*m&jN~3I0+~{KXS{shjEymp3ui<2*7~MoF z?^4xRTZ>q2vy_EnaPL-@C5>4K<&@<`4ar+h6uJnGeke77iBZU|tbJNJ@~7v)d#3B& zO`6c+R<{#|<$jPo{p!xsQ2K^a;?e=?D~~QNHqq0AE2N3Orh0MKD~sbD&$U91j#sgK z&`cD}=A%-Of0D9Bvw=i$Nx8GiO%P~6Pz>!e$2Gx82Pq_ewYxCVtj+-KTncBdI@Yg7 z7kJF3o8~8tu@$J+XkD>%0ODmp<~oB>N|PwuL}HO`8LAwDQzCGE>O`4T$30DFOevBi zG)`QOn5jjxY7;+|EwnPGJhH+LQ=0A22}n#1F~tSwJ!pWor6@X7k`!|Xijiq9Bg{zz z4x^r7Hqa5~m7z>;tWTH@Fe4ow>}5H~mj;+577 zt7?7pC?p92Ijwu3ZmeaM)rImDL!pa=>46MXI>dwgxT0c&bq8!N)Yp<1LEa z$3`mbx~F|f%|QevVh2-Rlq9OoH*L}y8v_TC#L|Lh6WbzJS?md+uxkLXHYgYR%m#PbjIvPjgnll8(g59!!Citq1X9 zjkLdZ&A|IEme!LpDzZvllgBPSms&T|-G{9%R;06Z*#$`-fm10|dmrmmmzK}j-Z^af z8`@MACm{6%dl68_Dw~TNGUXK{UwCTmA@38MbvkVqmS3eNo(ZtZm4C%|)f8f|J1&)A8o3iO-r1TSO1txKa{Tj$^ez z)#8CW#E*LI;c=vMIn;xld>yGmfk_jJu+TLx-Pc3SU@f)!R)Sy@owsr2hb;ui+j; z+lok3K?jPHdKcQci>}A6T`39tH7gd^3p2cJ9L*z_ z6f#!qbBbw|q&u~EGCGRS-CwnI;biSniik!(4txIqYNj;a#mg@OBISmzl`Bw@v~4({ zTSuDXhzf%z1B2~VTGr7K7sU+ljoUX)F4@GV%!zGN z)2O1Zw4`ZGo!3cD^{BX8$x=_@1GNdhw z2!ruT$4bf_NZY9&!b^c^5D7e*7SmL^X(0|RN(eY4*FH{QQnKjdf7t$s_|HE)nzCgK!aBnH_CCg+IMOSr|`^?Pm&6S zgq`ejnm)^ea^ub|B!e5csvU1h)Ze=E*tI1pkHLT`Fy=|}kaA&iPBAC5(C@8~RQoNw z>W8HYUI*WbuGRF-O-k}nWdjP@*qr>;VVWH6i#!tH#vrbEUsXUWa@HaYZWBT#*5cV) zOG-%{(;2R;d80K)G_W{OW}o#*yF%3QV?T(JAa|?dt)cauJS%%-VbW%M)H20Q+8-PI zYQ2>Annl_lC8ND6l_o#tYF#DU@pg%6YXj0xQ|sWDQnwy66!rAXVg>PxRhPmI_*V$kzcM{maP+R-Rn*ifxLnYgTShN9_Hce z#9OV>rn4!T{Jra=98!aHa?PhTOw_H<-WH!ukm3^Lq^p7es>FC@HtKQfvK>Ny0uW#y zlh9P7E*f4=i6u2}z=qdDVI|Zox}={{1HOUmYQ3#bOhelfrlC94w5T1}nzSJ~TWpN7 zMl_M7w`IE~hSjAh0FV+Ocbb*Eg}MAhu2P}N70&kUmsM#d4)vvi)TeF;QjRcaTib@M z(wj!pv4;?Lp2y$4JX7)sNaBL49{~?1`0qp z^<%mBrjF-Q=$$SaDQ!GMe*1~Ey|{+e=q4gNWOSf4jZW$7vW2K8%R3<^c=xX8VTzrj zizMa3hUwax?N6A6D|fMp`K=9?h!{&x+%(foz91wM6Fiekp9_}5hc!}Vowm32=_1S^ zIx*{NS3EKCl^s&c$`*?o1}(K_(({LM(S8lqZX_nFFJjuX783KCL@;4X6ram%CN1bYy59*qe*PB$Oy0TzqNj)jLb^Xn)!M1U| z$XbALrDJq=o})F>7alxcq7zboWNZ`R2E0RH&HbX3%Zdsiwc=6?4ELxV{hlee+htcI zrE*lguoD8gR(V2Hb#RR0rR1u(@X%{hYQ>ideD?xcT8OZsglV@{!?dU5=A%@TjOy>Da6*f0qI(Afk7UhEygHhDQ!OF}H?1M}-lAzOM?BS=lPNK~G2Qm1bx`f*xa zSX0o|q?sUbP^~gJ{U}AG!uPT*zLE)~$UF%&>iZSl+BzihBADV7L~-_}bi`@B3@yo! zdQC9)2mPxlzLA=zY-tLa`%Tq>zk$b#VRj?76<(wJBSKsY5IO00OvkMJb(lWZVl2B_-46 zyq%?3`KI3Kws(vEBCtOQ1Y_R0w-=+XEjay(okPRyDX%Kp-bwyx^;Kq_qH3GnwPij_ zQ@E{NPeENU&-7|XK1>c$P9=)%b$fD~D>se8M5RS301ug|+R|9MY_WcSh>WN;)8z3} zl+|2&8W7^^v?u=n60t*xeHRM|NedxE@kU~aU(vFkF;@x%ov;)52emKdo>j5jAq}8% zbi22dmRf1$wlKSdgOiV_Cf~ zrIwsoNH9_k2<`D#=W@VSOo2I?GD&nS8*16WbnQ-_oPTpjFuC9!IjLK5Nd9h>yX+`> zR9E=aF~rdKk1dgfVDNex32e>i8p+m^<|XxQLZ=3!8iOo0yJ2=VD9MA8Db!nH%4#J= z)}gy{8B~CACy`bf8a|;4aI6im5)Z{zaB+z&Q|9fKkT{7np)&+W%|x)Fz0d&Sl(z)U zZvhpy(r0wf6pCvykph9JVQzWFDQexafpGF#-@qf9H{cy@jt0`%K4+V`N$vjtGgO+6 zrt^huh0AK_b0V7>ZR|{q)glcomPNpQ{sw9KlGNi$43o4d2pvhPKid2Q{;3E50P#&R zEG65w(y{<6*szj6K5Dw@?FUJ?Ha09be9;iKzA|U|eZEC3Ippu5r6@tA9@%2wfizp& zRO&W2w=FYsl(wYr^3TsuD<`Y?XI9ZJ6pNcj7TJ{{=Fn7!6W&K32a2W-lH(?(E`N@i z<%}OrxEAjvTSAf~6p_!hYm(|*X(?y|k~sFJ%(r6V>VciGytqQXn$>Rsm3e8BKPrWf z3hOs*dFs7F|Wg$bKimwGq9Adj6H7F?@ zlE&jcG;91LY~yV?cKc1H)-vkBGJ2#Aqu-@p>OK_F^;H$c^`HDHz6tbIF@r39UX4#%x-S+~-)G^XKgEIBaV>}Gk6)W0Jl z%PvtH6dWVQMRm=M-GbfKt{iFnl!#VRq1=2{S6+FYO@4QmvEB*p0IFbnQhFzot|o5c z-ALRv$e{}>3ges#^&>Quo^0{8EehCiwS@p;BfQmv7fh(6ItU^;rIdL_(MUczX7fn# zEx*yXV|v=3X(@oC_<;63Vyy<6k`m)f3u(c*D;ythYVqbdHI@l}z%8zcbPeUy}OeCa;=9#9Qh?^U>F0f9tmysZc>(mokiHVQz>JB4&k4_#X0*z!y(Iy+jfeKB_PNu z_oPy`sCQ|7m^+smZM=({`+dm#L9>zmXtu4b)ogD=;cWA{Bj2?dscOLq#zG-_b;ZK1 zZSGXJ1bRwipMKQU=}U3oJfr3%SUaQd@j*8p!}Xu=k;@eXkcW3T*p(x1PnsAspi15$ z3Ft_z8CW>h$W^GJmAaNtR#1_$2PUFb`wL|^kB0-z81kpmXObzn2<7Y_QoFmoC9ORr z!eE0LL8MNbtGE=qq&D1*+X(?mJ>#uWaf+`Zag>{F=&N?s)dCWBtDMmm`h}IPn{T!J zN4EsJ+Jq7BRDX3yNYov&^Xv5FG76qwl;jkJ4^bZ-sCRCxZWNYKsg=%g80+m^(S(;} z-bC~sTPbB%O{hK)nMfUL7pq;k{mP4pB&eCk9@Srt?px5AwH3r>m%KgvB%R$lW~9_L zE0rL!w@T$+s=A7DAoU#(+g_HLQ%NN50DY@Tqh2TXOSX$%a8QCcGg8e9S}TrK*`K+5 zmF#IG$-(Ms+r!p+gNjnkx`H;~sWF+Yk*LO)VHrwRi-$DQ>dLN{{20Pf%+uSru_Q3o zKo|h}qPh1qYr)Y<743z%8D#-VQkz6fl=1UOwXn(oUD90MNgrT7L<*mgy!+iJobY+5!kAy5_*2tf2S4mnHgnEak8BfJGPw@Iu zxwuM!ISGzvx$smxVCL(be6K5Cd!wkOh%PEW;DTzHjiqv;rB46P^Bc6;PSOB8=A z`!TY=#J;2Se-XQK`faW@B}xhbz%ma=qCar4Y}=0Bx}slSrD!ufWnbc&fAKnAM8^LB zBHx0mQ_#bbn+3S*+`%4|fA#GYns$%$i7&jBF5wFP8WLg;a}`g>+$o9p*DFPis4p%X zVB5R&#UuXO)%d%ULS8A$y974l?lkfNNo*fV!2YdVh#W{`Cqi${qA> zkIuT*M+UTHxNwOZVtQ4z%f*XQhM=f}0(w^*)w8D?sL@m8+`Q0)xHjOK z!BsSszLR9|+`apM`uC^50@LhZd5t~r-ICU*I4Anh`klqr?={S&bn%LAom2)c_HUO%T?da_9;| zNt{TlOCn0h!w=bo4L?+{{vsArxibk=nD-RMT~8an z+u9%^s_eDb9JY0G z8EEc{qT8j!B(C@==Xw%n0F%%PhIu6w7E>B++VBUc`2E{g9Azvpw53E6M@gu>zX06i4gH7u1J434zzyKs4<%XA9RpyEzCO?J;r@+&Q9J8wivW@SM?@KZx7=V&LIJg-Pp zn;aTE?Tm3zJlRQtpNc9;x(t+}t&tYgLBNqvsT|5`srVw5t71TrCb+Hy80|DvRJ6_F z!PZDTisoH$qbOMuR9=YAJi07XsRf{J8S7R}>AI`-BUH7reO8GR^&33|jzB$PxbjLE zcP@^sQJ!zA?uI$2yQwQ5P&^#x4?Z4N!lG1oWS0PG1!npoKOQ;;Yo8CfPB%VSMF^3 zbTWqH)(XG9X)ZsoAuG}t&8L*5KJ%$ZZL~tm4cnE3??QP<{&V)Fd+2zipJipI)@oM< z@H*wYE&57SFk`h%dtz=z=E`;i;B_aw(Yk7dgl^mNQJXd_E)u2PsHs`nk&n-|!|7(2Ee+h|f# z>y;p8Mm}pX;!?`4rG%vEPsl_cuNv_-x`kYy1 zb2%~0;;*zfkP28)l1zhJGq{g~Mu;J@Au1!(h?X^9u?}fKU^VI~o~GtueVZH9ui- z^fZ?;G3|~kHLJIL)4QB_xPWCK^vz!rNz)^iEu_&H)llnBA@qL|Ap{;MRFylJkDe;( zJQcD^Pa~mxyYL|mtz#r@6ITmv)fz$>L))$%QbU143P9kBNy%v;;F|2O)Y-pl(Bjl2 zMoFrBt97>uQS}^}t~shyEaKL~G=COfXzV*`hYysaARO&J-!x;MKGp-F#%{Idyn9Z$b5cT*;Yrx7rUGY;!?jKcTS*3U z)!xArw0NQ8X>_)pN?@+p#6puJ@wTp{bM85)F4N)f3n{jdqaoKs4eJ1vj;0UZsMD0c z9nuyv;T}tEf$Bv%rJtU=^jWhq%Teh7bb(Zh*Ilx=`b%d&i8)s3A8%^u#|zhlbL5ph zJ+kLX@!i4_+ZvNaWC$-NJwv3A?^hNYg^sZJ@@-bz!a!OQc8ZMgtb1J+$2m*t#_H^7 zR*3%qsYoumpdIqv^%38+imZ440D&;swgTnYMERjddXI0K5r#=qPJr^`T`Lc=@V|t0 z3o&xq-6&sGxwUCMh@w&8zX#p`ZLRh=3~ox#BcU8rWh~Wvi>HrCA(#FO@crsg!rDs; zY`}4!N|hXg-hKG2wypa-TaLGJ;j-iGEk!ONWNu|&JxBDbVfhlpxjhrjhB-AAvd=;A z)!v6|adE0_L;nDUh#^2vHG8D$=HWj>cFSbr_=yoeB9d?OCy*)rCZdCGG^W;qkV52= ziSOF04xT|H%ZSAyohxHFrt}W-ZS9g&W6VE+2lves_Oi$M(Kxb^X4eXCE2G^GnlU6X4*C%Doa`de4SfyVs8rREI4 z{VEF&5j%9+lX+sNkgrpRZU8^bF^aF_ijBU>sW&ZjSSL)jwskMC=Ju9@u+M%!N)qP9 z+osmLJ94xntd4I zid=^X0Ted zVb7^`0T_@JME+Ena;2kV#^p`uHs?>Y({0|=6v`caCvkB=V4BO16<;Rn&M!C`kq8Rl zQ+#}Xl{*(axU`o=uAkzwa`3iy@GQiUpO1>VV@0+_$i25xg2JSe#77k@(Rf`%rWU5H zliejZ8|~77l@#O=B9hkCt8^iRkf&QnQjE#@souDcX}e_}r>NeC9Dyyiq7t#nh^1p+ zyLphpnFy5nPf#nPgk==Ydy%&$h48eh;eZ*+ym#ezMm%Erd&)4j(6Q6oKQ z&T&f6AqLoL*J*0AD3Dk&k#N?60|9>l)>6FyXX8=)Eu`VuB%QmU{{VWvNGh^X$#SBt+gB~FmX|h=41Cqw z4bGXlw3Q}K=pTg8$t#Lu#x&@vP)gi8#EK{C63QW5{ zZfT6%Y9CZtl{gZw#$%D(4u-ilw2qyA&6n@^fi_xEyJe9i>}*Hj6IHr*j{L1b$1fcX zprTTqz;p+#Xv3AGN=;J%*SvFMty`|#A!F6K6Is-2rI1pEOpT_i3@!?Uc{%NssJgm0 zCB#0olYb&VM+x_EhnZ%?>9Qs;j~Lt;ynh>QOKG2+9>3Q0K!f+~;19sn0N z3e+^mnrS40md*#ywR5@46qMpxDNQ&@lp2?X^{Zuhm#mjkP88p$kF^N?o>I|ergjA? z4*vkeKK0QI%4FqQVmyZ*kcsOjSj$s_l~Zvf)V_5!SoDI^_yEvoxekjc(z$L+N+d zGr03Lv+%C9X{p+~rt75_0o;WwWd8u;N%Ao%L9ZfW%HfenrSXUC{8+E|hK|u)v_VQ$ zxTN!0ojX8X(ux8~l$`8NN&f%>m*aegEKN!69T~8xO-d_Fk5I8=O=rt`MZ*0-Dd?Wn zQpKy+Zid)p#}=arLK0L-_!ZlVZAHpYM;=HnN(ma@3I5G>EqdurYDs#-PGu!;zNA4{ zWTJYW{VMTZ9PmSzpSvt~1Kk<|!C61l4!kJ*lgW^NOy zYfn11$Vn`qB?%`xME)gyf|&2@n!@hi>U6zzwpvJqeNQreDL?r+*V$~RWHnFOs&AZj^GDR}l)#lJtzaG95|El0^5n%o$hL)= z$C5vePy8@?&Xakf+?!j}ZB$6?N3p7x6iFc`9c$jfC6+2^^0MQ2=HNnGTEvMJ0?ALM zRdp>=B+^Te*)lPKPf|%pFjDow#uUN^P?{P@nYUo}|>azqCC{ z-r-BRLw7!@9%!8W{{U+9RwbHE$nJ7@;J7^wM~!dwN7}c!Ef#@|fdMH|o_p4jlIom8 zsR@Vxd{;JHY7|!vNn~%3MaP!EOYNn2$e5wsw`TRdr3q~#1KPRcX<9nooie$413-TX z#T5g%E1{$9U4GG#XS;HgCwUkj?@uP?sgqGre392zEi}OnGzvhOCzIZpX!9>N3mJ?+ z5RpMfk-00PMQR8_e4?a;j-4i=a_ehqE$syRa4RU#T<@?p-n6)1l=@Oso+2^vQ#@^v z3sOuch&iTdilmy@3UwyhBqP*LOmHYW%a^W9rSgN*II2c1J0|9upz90vnQbjN;Zl@3 z9%`>!xkB*IF$d<1BlobmTqw;tq7SSZX&|Hnn)MRZqsnfHQEJkGDpuar)~a^h@K|%y zP9VUfw`Z2(e(kmpZX0c|Rx&`%c+D$4h{^Ft2^y8X z+o)5ka$CYc!f2Je)7zO};a4zXna7HxDwU2y7A>&1)XG9q4?U`){`$!_$hT!-w7jkA z*guqaKQ*AGCTTSlX0*+^QtOS6Em9WQ{{Wb*#=26MCfKMpu_Y&g_ol^Mte$k*q%*?G zy&A(`MxDz(l@6PI>tU)`yKd*6+yXsuJf5PCX)no0Y*BxWHX6l|xnaA;jE9rCEuLqn zti|#dYj~u-+LNDBP6!n&cW%a&DxjNt^)hy~DoDr&psO8=)a{N7OWP=4AD^`ueO-n- zRLs7kr0U3U`Ib)lxlkK{`--k}O4J)^$JcJOp#(`iJ?pO?SkcEU66}OD5;jHClT*eb`d$FJuGwR$vMDuDjGNwD7jDx6pqH>M9&% zCrqa`9=wwl?e5T(vPu--l&6S2MN(>37cLTz(Z}Ua2BR&4QNE1(+7_sQrLM)`6Pym6 z{wgLnGVhmhy$C;x69c?gW62q+M=uAB+cuV#%&nnwXtb;Z0Fn%D6_N2H%NHJFN%B@8 zC`LajmL1NST+X9t5jyy|U^A$sl9Ys@X*_!xSC~TVL+!eif=K5zcLxTNBMGS{Q!3SN zZrCJ_gPIv_skJC9M&4$+qV_^irEI_OzldGXt|khZSK~)|^lLv7r&h4@%ZY6%lBAV- zhrzEu zG@{TY=Ylk=v=v!u?y52oAfysMp`nlL{@p7>jJ&530rOHokWX)F5&0P+szd%Pa@r1S z!}?9CH{I?^5^$}8W3lf?>F((+G~%tDX{4l)k4PiAq4u7@mb7tk*8+m|>cR6qnRG)Jk zioMhIZ5rjJJ7lmnm~a6R@9|vuK0Ad`Tz?~$m?wx<+tz-h`j82P{{S~)D+g_$DsgU!bk_9NLe;0Vk#g7n0L7A`p82Ye5L#bq z>rKF6M`(cpF-8xBxiHG|DqRr%>H141omL-FFb6?L>7F2Mi(jF=l2VlvEEpj4=cO}T z(2ekV8E4|_Ym}{v>p7W^0%6xk}49q^TIKakmw4;_yx~_P!;%v`bCgHiF8;g%wN= zgXWdL75T*Pw%nx>5}3g4^NN$ip2t}vsTTG+g|*OEmdY9^0I4u0d;WDPxqXzaZZsC6 zAvFgCw9bV$G-vhZ@9rK$X;IjqB_o7SHA{VP)UIvSY~zZyXh17hJmxBM$;sOuIMUL34P^~mu%ODf5RIu^ z$&U4(a_dpku7%q+?kSL;TK1Da;+7QKQViA8iFnYq)ol`foHiUAlmOy@Z^MdZ!n>#U z5Ki5=5kXIj;)ikOxkw=zdWy=!qhL5DiP+09lX3}OBpeD3PESJAVzv!<@>twkbSQ%a zf&D0RsH@79h*aaXGLI#(T(_cDUqhQhfl|Mv5Vt(FK^vo|Y7$-sjI;%Hdg_;jl#ld` zQn7NUK}wQTQ`RWBDiYgzCkiPANw-puQd7XDi`K|6(n^T*;v$tLCD~3=j;PP-wlCbe zry6ZQ5egt0gGbYnbrw?bCv2EKNEnmax)w#kkp~aGvq^gIn)`N2albvm>K}z5MB=kL zzMXk);#xM2ddwt&Gf9q04JJI(pGR3*c$Up2yIXYx6DM&IKJ|H~Ijkz++T5^}xUdSA zju4-owAm$&TS7w|;`YnJheAsUNlKDAiJ_i13?Mdz!<|VmE1ER)bjzSSg|eiSJ#?T| z$p(b;7jCjGol~ei#zkExZ`()Y@pet2a{EPU1>p2i}uRzg?r- z#xn-H6OLHAIOiE+m9pmLHg2)?8~tY_8ciElX{8G_LXxqtgMd#;f`gP=Wu8SAnGeys zb#}I`nZlCBav&uR_CsSYiqkgcjI1w0yfOTj5c_7(f1QEhD{+b7beQ@J3Z$sZjn zSEG1WQoPdKd1_Ncpq5)5RqtH+^R70IoLCxlAZxpO>m3~$e~^Y&=-qOdm8i}n)=_u2 zHaE$A3I$AICIpe5U(aHDNbGFM>!uWtNed{NB z^Xa&H#oJV+{{T|bpg$1zsKQZgCUi+OtrPfptwQORZ5RAB3EZ%9vpmN^SI+5LW|?B@ z9ABE_iV9gs`%`4(-9(%cOJ|UH{@}l^KC5z&)P$fUU?dC*%5TiqtMQU}(l|5jb~JgC zaq(7KWy_2@l6V<8tK_PpDK+5qZx8s1hZ3|rpEnQ^M30g_DwD(-;;n7n{n*M`b!(Rt zTLDEr!o1(cqnBrToWC1L!8nVn=Ze%;;>jD1Nv+3&^qb!gX&2rpb$?9ji27R~q@Cqc zD_9)|Nv@pvVxz$j#g0;HOr4Jy>z6GxrZ&~h@6@@m2nGwMwD$L--O(>JOQEZ>s|$;^ zkak+K;a`@bBX_wK$vG&r;J?!N<0hPE{{Vv_;*S(wY5}WdEl5is?g_^Ab=Y8@BF z?%7y<5pT@gsZ!Rh+ectJ4!!HU9vHlQPArm_Ix#-kE83#nSSnIN%ue1D{%Uux8&W*B4&}xtlU%%Ni}Sa#8!L;D3KWu| z)b_5v)E!5nHqRs)EhfU7NTa%aPFy5EbV>$J)0pi3Ma?Dv z_4}{6y-P9BbQG>$F5m{%;R*KQslt+CIoN{d$W$Rjz~{XqmybTFT94;hLiWwd^o}Z# zxYKvc2>k1Dv!jIuK8DN4jHFZ8(IVBypLb}?* zLSiYbpf=)F7z7$N=vvu)_N&^(fgV`_lOsdfGhUWgZFJUq?K<%$Abc>yX)`9PkY)kg1# z?{1KUKJid&Z3Of8?^eeSOP7)|ZZhNH1={Mj4I|4glqBUj$7!t<_KxnL%TL?{w)+W! zlCT4biJy_0NmO2kO4YJ0I_l9%+J^!gji^iM8&%(F=B#h6?Je5Pz-ey!+f>R_BZ5a0 zNYk;@mmQV1_Rg)}tFgON2waERB>E%$C#a$=pVGBr8nt+!!je+I!m-o?(EQPN+Belw zV2@kq8f!~kqM3T&3~z7{Be!Ei>E*3Or(ZVBAxK`;sTkdkNbgLPlx{-BsY_i3kl&ZH z&dfxLb)p-xK6dh5AB4s~Dn_kP)~><)PpP#1qFZ4BtQ9(xjnQqq!zrU6R0B=cO-j}@ZOe5?mj`nx2d^>5gc0+J8mp;u;|Ve~q+OKCX=qJ5~T zRBahYlc^SrS=d@)+7Ow{9<_$?Nh{P|1z~xBp~0&BXZE&7bk#GCHkBcU;BHEiAwbUHay{zjPk%_&6j{`o^4=-hm8XRs@lwkNNutn_mY+o} z&A4XeZSe$%?OPuT>FgU)F2d!0q$w)&k=O52`48xdxL#OO*#RePCp^@|Lyc4nXcIw(nO}jq7Z_&_W#& z6jLMYXu}@%BcDwLGpt+5Q%*FM46K6^JHP6RvPeWxcz1 zaDWn`mB6^TPj-9?lp^&l%1pblzLW<-G(fzk*Bl&0PjF; zC%q;~TTw$sJY#Rk6J8y;Rl=@Sc9bbR0C0cWou^!tsoQInLx}1)KGeLNf|7)lFdbmr zHnDWDN=^XnSvOL*?w}ZxT{wSM(Fv{7EwuXvZ5Zww@3I zhXb)4Y4OAIO4&TK{Bfw6Whm~61ba~ycPc}mpyY8i=sm>Zi>WF%dL`1;WNjHn$5eNf zk=Cv5nbOqPn{lNu?a=}pB!fNc#>p1tR(jBtAuYVSwJocQ#?XNZXeHPwjz_&yKc`<@ z>drdS3$3X@hf~6VAJ(@n7iLlCN+rIf;ivB&X-pKh*hmDZ;UEru>ZN`bvAbWDYpW!? z8$_ehSJDq+X>sOnuLDaQQ{Rw#UkU4$&k*gfLE?7;C$(7q>(sQ@(!1m(Y$guyt;zT_ zUS&6+EG{a?>K+@pT9tRCs21EwT<(PedVGJ1qt$esO{;Tqw?pBW^FYd)9nZB>4rS95 zCN!0zoq~7F5+=2_HWpg*4co2MrS@ciOa&zW0AGr(cGuYphl`~m!t+4V+GH~I%F50X zQ}|M7FWvUmYfEUg+Tclr8TEUL2v}{_2+4iiXNM$S7-~K~pw}5>DP-P^J zy$GV5efKTNv|jZ%ByKp0+&Jy@D#_147H?`SJfz&pQb`#f(ybW1Le?8|a7=oPVEoaN zPiWC@FJo@?M_9T=oueL*dL~H}YmYjn;cSpq#EO$qje99`+W|jZ^Pfxr!9YI0(`r!$ z4^Pb0Zoj4nzjt|#T-;0$fq<^S_o^-GB6a%&4J~Y22H$k5e-6~iPtSUdI!sE+$w}aW z%`ZJz{{W9-r%rh#C6#XPnlvH1X2PCA6qJuqC)Ms~H_Jhccx{T_oolIWxY$An!Q&m` zr)?TunD^492h2Z(PJc0}RHyZ9Yf)Uhg5GNvsk=>(Z95hdJ!Dib>Y=9%zKvwmp(R_C z1jkZMQaIyDiOyXWkNBqTyL7gu5~p4&CBl$oPvI4HZ=~9~p>WbePJj|pm3|cwMseV- zAcN%UMQi>MymI8+F8v^bBODKNR&23yZJa|_jodtx?Fve8kGFc9vN^4-A-^18^!ouU zT_witp0ipoKzF43(Kk&Y8glKKa3Af8Q5mz8SL63nGssP!YYQ<7^$ z)Lb6RdwZom&gCKsaU-o-G!^8aHUJ#w^{#x8Na%yHt5IcAN`gwIMtGs`HJ0sLHz9Ho zOnaY-5sy0bXD%p(tx2ofW!EX;8{u4n@+EyvX;fy*pfb%mp-IX*g8zQt1$DTwSB59!AwLq*_{O%&y_2Zczl445&}FXKpo=Ijgmzv+Fks zmt9s0QUN4<3fR+=s~&Q#qt3i&n<0F^qg!c{pnkXT4j+#px0@wsr>=lq8kEecqjPJU|7Sk~-3aRf{%^*%NrS{<-|6UmO-|GwQC@NI zJJ%dx9IeT-smfUDD6iCiX)4pwK8D$YbY&ZyXaus4^q>wWtz+)|TYYnOi3|rz_m-ZF78dkZ4?CnNKuldMoFMjq$Ba*9<|es4MveEN!_tn zyKS``$sAPk<~kMcG-Vz#u@g-+L9VlJ4F(XeFsIelDv-6wpL)ItwHjv68g|7A9k{6i zeIx@DR&mh>u7;EhXPS{V!AYKHidQza7_TP=N>#=U5QOwILQ+?vk%}G=qCg3$Q6>|& z0CuRogI;>eZ~+IYb|eZ^NVQMtHOtb>S%qYO#M zlQi-)_@W;y?f|9<=M<{8+3HS7>)M}jb_lCh`v+2B!5OBKdIA8d(tBj8gh-xGN|^~W zw`@|5`~#*|$&MomdJnXJ$}PMd30 z+FskG^r|4Mk@MV8y0?j)H|cKGw(afPSXvSjgYJ9MM+Hfa@;5;qCe^O)G`6n8Miw?W z=_A!VNBrwp!*;bOB+Q;iYPJY2Br?gVvt6a??F}im-a~FXYN=~_Bthjr^R*AIUa!w@ zZPJRJY$;$U;&KH>5c?LK?G+;Ewm>fx0CAiTfmb#<=r-?LI;9k?K8(l<83rnog)0^_ zT^a;kuIENs7~< z#x#YVHFo@xIpIfb&i8d2P{GPv3MN709Exk+7P_}-4qRL?&~X0%49O`_>7JEO%v{Mv#y|U2Ru!o&DHw8h+ zmes_6dJ^e2)`(gx!Vr=P+CBP;NZWfJO(jUA{pPkx4E~33~iV( z)}bi8nk{^G9N&mQ0l?b{i*)|6*~i+qO~^*LNMXo+Hp$L%Xz?;R;ZcgovKV&%H)$Y8fd?{3A092 ztR-v4-;>(3jQBa{ExgCB(wDa2Bn2QJb6$Q-wCX2*Ja(={gBm4;wW=-JN?KOwQ>Qz- z&^NkU8_Bq^YfxZiveL+LC$a85s&H~$hE(Niu`P6~V9HH~j@vgdcL|-7)(tK0nWZ~v z^d2OB-9bldYG(>*XZeBt)XH0=2T5GN^iVbXI!a34POjUQa? zCLFx7Qe9{Q+xsJrXY z&9k^BnsDgQlUfU8wQR?sq@^hxJNKZL;!$w7l8-jw&=8);_o&4!l#^|hx`oE1$?}w? zrD-0h?Lf77<*4)4k~0#2rF2G`(Hd)HI-a|8t328Ol%#C{57viymn_tm++e0v0Fl<4 zQTm}1ZE|I9xvakIA-_PG1w7RPoGUw^$>-j^3^3ypha|a8*pVj!I#ZhTC=jZu+M;V) zE^T$&n^ys0$l!d{k?|6oa4prTNj!+)*CtF0v~}aleU=tlhKqS{m0a5tl%xPsWBOL1 z7ihF$9!B8FkO2Zot_+ZTsz+u#maQUlem<9bg-S|{0X;ia67lYETRS|VjSou!y<;+?IL zu%|KyfALkGA-65*4&U3du=T@$Jd~U!c`?}bs$*)?Le4Il?8AkvsY23I^NO?5FP*n> zJ4p(VK^5PXE+-x~`BAR7c~?X!!Rd}qdX4+nTX9Ji$a7=>wPeBR?Oau}s_Ub#FI@6` zrftJvT~o~a)kVwATsE6Wq&U(1e2DE$1?X9~->rPxL z#k|xdKx_%&KHuJg#*}}i{E}>Tpl*$#e|EX$DQX0zMmI>zp4?R}u9)?k#_HzvD1BhV zXvqNgH1Kt#ERwryxzNqyO_r_*Qvk|Jm6-2F-rb>#aQZ-6RCc5jQj)nMk(EY(+0_sm zPt+n5qY*fchMwXZbwO^s2~JHn9z6=BdSKUAufFnh+a-|FfJrgM6Z@sBz!>sLQa}8T zD3vJE$?@nhT%D6#_;=26yQJTFE-~p*N@pE~L3w$mY0WLWRHbh_0c$v(;+7opX^l4+ zEfU)4+C|^}UCU{FtOcQ=>De6<{%VEIO6K2DQqT)!!WG_~X}N%4wq?j0BDOKms-KpBJD zj=Z#QP;nO)HwSxuzC;m8D1Il&4+-=7$V-bWdz)`E{iXSYY${Lkdy3E6+1}}To2zZl zGTlSazT%7|)!DK}>)I`z`pcE2Yg$s3h#;OvdaTr~A8P5g+gF$ufIx~dX)$EA-omb( zX3or8p@=4+hJO@ut9L7 zMsb7Kns*nC3l^sKH9B+pWwWXJq`kQW1dITC))w@+=BQv-N5z*ZHqp=Wl2N3{t+fZO z_czK_#PpujLw7DH1Oh~6y5$Ag%ZhU2#5YW|7k7w5*hI-DwSvtSh?bg3Zy-ch25Eih z^f0Pl(z9Q7=gCSR3fhuFW^px3V9%L&#`G2KaWI&j#&9Z_+E8pw|dG}iouW*p(`&8EDKxAOjHKE~mXeAq9 zAL~=LsBjV1rq;_Vt1t8scXI03wQ~sdD3igjLD3O#P^1KsLVyZ60=RQE(P%5^u)S#5 zuBN3Uu20R92Mhu4SAG&{i=Pqc=(%x7Z8r#7 zwxp>_jD&&KNU3C{7SW=wN2PeHQ5Sb+<^KTThR2pfZ~?D4)i0H2dLLnV2hwZK_|V-Q z`JJtq+qcyFs**{Z%`u><$2`}pqN5aXdA2LhZ5wAGepCyKQ=Lsb7OfMLvztnRnXBCq z3Awp#x0kglIaE~gUmvNJ$7iG`!dh+Kl&f7fcWm7C#=*J8W)eFAUTdiMPgm1|-M!PF zVZFo!Ed&Ezf5-V>f^IW?o{mf(nhD3jSgQw8(0j>V!+@=(KRSf8uk_7&amuExJsy1V zxVmEsOo6sNs&){vA_(}WlT|`SHo_9Zm7nWUCf!Q(j2YzA9JWzcWaCbJBti)tdsOY% zEwC1}$>}tUB9}&$#c0#`e?=*cO6WFHk5g@^&gFC@Rg#ye-P|a?pc*6aq(yo8XUc7z zcp+HTc@*gOj*!|O2qz^@b@&3H*BrUF2xX^tG=$)#Fb~BdmnkJ8ycIeG(%ElZaI<-E z;#Qwl{j#VXD)qe^Ot(n|g*4bP<}Aw9@!R5#SvbB6p>U+tzR0gMy&)}wZcAVQ5O+!Y zj?@eKLrHVXwY@{jDU}48Sk6na=CQCBd_SnA%(Rd)WUCZC#jCdJ4Lq1o&Oh3(9I9@J zOB0RBl3QudxYwE)C9x!^j8V4sPbe1~wNRhuBNaJH?O5=Ru7RHkN%Fk3f;k{pF{it5 z-InyS^m~X|%xhs+)qf5!V^2 zV_Z=jjmx3{)1>-RU|@*rP6^%V$>|kmE72}Gwj&Q2+Y+i4`A#_DbSH8UpbyPb3Z026 zlu<6FuRU_68S>JGZBP)?b31+Ktpwb-uP}~kyc8p%Do$@Ms=}yN9(|U+KC=wSBpI z-B#^pItoog#VbM;=Ub}X^$FUg z0#ZB22A(+F-uou!#b}>H)dr}M^(jC}I9fy`k=%Ep-O*UMx?Sys&{N7V@0sdO(a;{0 zvbeTVElDK%1yg3%&1TlsJCLKaIS{X5Jp54Bmn~}zD%HIa#;v9ThyMVHbN-WZI-jlcOM@;*9MUbx-PhSN#3ZRFc1&zT^>JqZ+G({#j~ zT1}v2>vt|Cr7cB7W1ec!cEeI(4-!zm=YdS>El?8Vh(?nZ?kzO)UVsXzD#hIGo2y5ou9Al>W8Xj&^d*R+1U8&IBKdMI^xDsdw0p!mZzB z4XH09aU;@4BAsV$-P68Wl>~?%J*sZtn=1;HAlp9=Zhc94ds{~)d8xHK8(U`97*bRS z1RiJnR8-|Tt0>~33PlJC5>>?0!72a~KGoLFbo?Aru6PHys|^VauT!^6jiqQS0HpA* zYKB_i%VSj~XQ67k$~4O_r)3G;u@l%-b{eh1v|x1R{L+$q&MlX`Z!(GY6!62%@m&+1ZaaN|UU>0_+)klj zg(mI9ZFwY}zi*m}J}c7{!tYzOZ5LfoKu{;Xc&?T4ogB;L+h%V60K`}KFF4|ER)D0& z)SOjwI+DYIWyNoq3YZ|*Y%wJoIXT>|?9^!fBE7M)Qw_SgE^kVLvXc-;-mKj5hO*+l zH*i<@hS{3omL=UC>P@OF&YG=m-KSh(Hpp5^{O~XjSswL1o2J|{Tx$vij$E&sTUdP2AmMRJNDyH!{p0(N06uE7NlrZWIs?q#3 zrUCwM&b#+knBq1n+yX}3(sy^7huL(?rk$saq>2LB%~jV6*3BrS z$=%cLYoZla&S`RT;)mT|YHlUgpR{Z#DI3%ik|-NSQ+)VS&j!GZ5mi+caqOMRw5H9L zoTe>o;Uw&AK_F#O{`FmJsa;&U?aH0lP=5&@kgiy*yEI17!lA{Mht1~oY|!* zJrdh%Hw{25IOpE2fB81_p{AP(JQA<%O*}WSW61g}^y^h>5beTCV3HD$e;2>SU0CSM zS}2$9Ne-V%Nt{;>NlNM`Y!p`HS+`+q&+!{z1JOey(C$3j7imi@ha`ff6DRH3x!|0h z$~UbLc!K$hYc~K{1yHCM0w=~1@%|AUYFh8I_^0%^)`)?l#Fv#ebOfs*I@4`q)Imf z$b(jTMzZat!d(w82T7vi$xyFSvt4nnq2^M6# zVUUx&M(NE~J}jJ?DXrK-8zt3x(tixpiPZHLnKqW`2n#rYpRudDmt;1Q;ts2u^=@s) zT$9RV^Ft!v%~TKyiK<76S`k6@BIo}AjoJoL^v;J}<=(^Cd{b}q<}H~@iyKr#0~s|H zmQs~6{{W3fIttKq$M4BD?TAMvVzt_DhrG2F-8h#w07FFW1N_%EX}hFb5=|*HKdb55 zrNzy{F8sC`Q<9Y}KqQmeuKYXT(Wl&^?e(QzksZOFN3{o==#mc)w##i@I(n25e9#GO zf)qN{J@1ONc1g2aEjY;m0PP)p=^=~qBs}s;4?wL8E5;P3ty1G5L(3`Xdw)u=)GgB6 zif-A3rC>}%nLGhiUstks$rD<5Y0F!7?{D=#r&7UETbzg-p5Fqgwf!p5%{}c=-Bk}i zFqYCmG4I^dMsspa3e+O0_F%|yE1r|ylqjn+fnKB9(dVmLVJv`fr1Mj^=nzdxS9>iT zgf@-9MriwMAP7>_C$&mUvf4Ht8?$IX7W?2QbA}*CL0XqJcJ%!@R}HYQEhl7kn&6(^ z%fjnM1@9G;tp}VdEl(2)`J((y<2P-XLmGYJN=z*6gS#9bis)GGh;yq)m)~6~>GvIQ zWyKOtx$8rN!n5|TQW1<|k~tsQ*uy6?$9ir7Gc@Vmkv{g#2ZJ;VeScP4SMEC9ovS7H z)ZP?8FcCZnJ$bK6@b-n_o2_2UQSilz?H6PmQ;Acg$smExTJt_zpD(M@J3c=Yw!14l zb!&NGwS8l1M(jq;OLy@72jUgc!}09qs@Hz7&*iu9(u z98l;A;YtdONyO9{3g_OPDnf0#3S~$+!RZxX!--&prylf~B0PGdQ=<5tZ6oQ|cBYU= zstifRdN1#-7Sl##>euGu>I8)Od-r?CZk6SHoGMO^uZ^3F{{RZDb4O>z>^9w{^}W5L zKtXVU<&OJAN%pEMzXlNz4f07BFZdmb~NSy*yHksXs6=3#_eQerXd7_Y^F;mGk29p{v zb6Pdp9fBIMZ8x^bQinwhq*V7hb&b*5hPEpKAbuG5uRY1BwvM<#a7saq*rWg-AcP1B z7^v~z$) zrhyxi3Lxe?P+GglI!c28p@KKnor5TB-Cee)6@Z5OlTOv|(WfPrnQ5X>4&;$3 z9@Kw%B+S04vVqt2ZC2nEG@?*91GW;8_n}UWtF2_K%tB`*9%uX4QppHu9MZ=;n`OPF zwT-pHm~F-Rh(HQTmok6N7%ZGxgN-!_2k{XCqbWPKS}|2fktx~=LxE*DQ61^cx|Cr~ z4|qALv{5>yBCgm@AesGX%Qi{=E9pQ#$_7cGlMf{ODDSVg++g}=fS3S#QFfQgQz5q7 zZ7E6h6`%?Bt2oqA1t-i`_10Q%Wx5ho5%_Q@Z{CO{E|w5g5>DLBXySEdc`rp}qAg9G z&C{1YUBhJ|wB}X*Dy>eucO;SmjGWBZekE<$#ga)?5fZruh{8&=|> z+PE|4la~mc__3%#PG##XXm@~Z)L(mOgrIs72VvTv)bw^=uuZ!PZo!SxRDTro1pfdu z;<=*SUdp!_MffVT_V18G*P4P`3=$C9oyv-Mk7}{L@iMM7Hm)x26v18w&*y{EsG-V9 zqEeEIZ_$&#@mYPdv4-1o`J8M)Q5+hkUZnNH%a1svA97ABz8H9`@^VWnle0nLjZMAl zO~uliWddLvlULSWD`ky9IHdmo4=LD%K;xR^$%VGgta%ohrA4YWBHi+?1FR3?0I{`A zpZV6Ryi2IPqrA%O*RZ;vRO(FQtk*6zDNAUyay`u(F9J4@EYdA_o?W(87bi}KTl*+b! z_B^zp0x^-As&`Ge-clM-j)J-&kwk=`+tI^A)E)d5t`pDUp)M?LEz}bGD{P)OCMK;6 z%1)6v;*=G#5Zbvo_Ni_E0EX&TM+R!I?3p;aWu4}twX669r7;9ma?6T7rC{<8TAnzi zv^2R%iq4yJcCD7IIO?Nz)F6{cix=9u3^>Y==su(@LHw(JXuF8Z6qPegcj0|n?!mX3 zvA2a0xFR>8bR>4GzYq9XIy+(8=4IuL(yWBXNv;f;xg`X4!xskUEtNhexoYa=E!!X> zeK33c(kA!!1;v(}LKcOm_{$&7yOC6;(uq4=vd>WP^@X!8U1?V;eZ_SUEC80Vne2jtrF7{=TyN@GO18TqO}lSf zs`}pF$$egxz=;Fefw{eXqK56(q5^Uc6mioNCD=9XM@_BbapDpaCC zidk#1&{evW%93*uC*H3e*6tL^WWW&~oEYs~lZCrFA@x*Ar)n#E_)n@rL<82f77l{K zWw4bIGJ1;U%>{IHVr0rnT~DnL2Q(I_`&QP43SLR{=A{M7sI2~}-)1)E?Zr4sNy(wy zxOAZ{90c$py#$hI;gewJaX&et?5&+~!LdJjGie}WR_xTe6m8qJd9n~d^#hV>0d84) z$xF}x;4AyrB6`tzB;LydcW-Qfg}jo#Zib;<`s6LOjk~!Nsv+j3q$T@*y%2<}@c}sE zC?(&wrl;uEPSj!()~N*KxQjNS_GN9>w{-e;C2)`;ddIy2#lqNGakT)W&2`5bQKOCI za(2rk>(>ZETSCA{=iJj@*I!;h2!ZN>%__pIf6phPCbhe?D3q*8@6w8}*4EP2ml6nY z$@VlSiE(sj=60Dq{;121CYVIFW zFm)qoXRTW=U}_Rm#Tw1aj=MXKdYbd48aq_^hCg)ZYh!N{97(FbuDwOh^4QvW=tV3N zeT@GAg+8aLIQz>AOrRJU=Bb`ifs~>vs~lI7QnA*}yzzu`Xsew))?l~~+)$L4Dl}uO zD_?M-c!}eRPpBM!y;VlZa;HPk60!ou35gYK&xhPgjgmbp%$(w1ee>V-4O=+0g+VdN ztqzr>F3sg?8i-Em2xt%G?tXeu&5|$bjf)#!W>}`vPV+vg4JA*n(o~>5A|n(tULI|m z)nB0?Fi>~42jZHFlZnvcr=XilTLn0~)HJr*U=y$mDvbTtZLV9kt83eE9Zukt@&{T; za$jifjH=Rl57P9z9VLfte8j8C^{6CmD?Y^Y+OxXPjO-9xMWZgE!mX+b!1e>EifnL{ zGW$hXUa?}!ntP~t z6}Yh}_OB<^EEI=T)(!;Ie0I}e%&j5zy7k4as%-Xvmdua$qZ{#-p>CA8n?{zt3W|R$ z*G!=cIn$cx&uaR%t$OONZl7BG!N5O+b^@uMx_L?R)UQm>``1P~aimKvt*}xg%_B{n z(qn9nm3<-}C?ZQ~l!HwUlP9$+AIb(E!^GOI@4=7D@+si z>0J4z7``vE*s;y4HvSWLPHNbz%q7Ako}UzUrK>RAvhCD>qNEii0zTh*;GR2sIw3kr zk32pea{G1d%f+Cz5|o6U#82r_yWvKixF|OyG?Yj&lCGfkit1TfS|s3~WfkU>3cRak zj?{lQU%9H|r#h98q(oO6(6-ZQu_M1ZsBS{YO(F*TIB_PzDq46VG#5og>6ImKSQfvvbNMk~)Ns z?_4%_0vR@m&&*lVqb;qOH~Xj(Ma)H>xJAo~WB|mdTrJw0JX8mr5pk z^r`;KW2Z=#+U>Ns6zTMyW3^sh_?!2V+YPdY8fgItLO4oC_v=u}h033yqc;$SF5XZH zMZ$n<#&V$tXxT zO;!UrJ$SCXYNMl{B%GL4g8a8qujWaRdsnD9)rxf6TZb+J9dQ9kWn?MC?qiDN`HEU- zug02EYCuW6ON6AIq+%$PxXLHhCb=4D>`gKkFO-&v13lyQp-!N`!s!F9XsFn&*2vDZ z8&q`m=|?Y8Ptym`NCzO3gYiYejU1NBRqLw@Ad*2b6)H7_EeSwr8xnCqmBgePaTORYKRoTSOaK*j8`Jr zDpU{$dV8g!e0`J(3*u&&Rf!;8tm3~ zvtY7|fQ6}ILefH#N3~f$bR18WV!0r7{*?x;@@08i;(={6=Mvys?WBSwRXzRInWi8* zuPIIpqyQw+?42gAjSFYt_m^xho?*o`hzJr$@9|wfo$=WPg*j-| zH{mS>_FD@JX~3Bvsw5h4@Rx;cTL`*&#}wugu(%`aE0gkNm+JI&HHtf+#Ji?xO_W%$ zhJ^ZxIaLLI--hpRnbq7!nEF!+Xk&L`sqI=g+UfQOlXk#vwWk`nTc~uUD@j2J=sQ!9 zuBCc2*2;B7O3GADX0D=3m$IcAeX83d$8?8+?jXs4GN3MEP zMYipV+;tMYuSRlkj?O%4GnLQ{+byuNAi>IKniMFY$`4xT$1YJh z+iCv*h2EQfTR~ce_)Gykd(#r~mvU|#2?{4a^R06@D9N21?t{hJ-B?(16izE;;f-b1 z-9@X-2bw;egjXNQj<$ASle2Q=vn{%ZZP+>Fr8pzrs;;%GJ6q+r;ufW&C=q~Tn)6_} zwvNn_aor6*C^tv~N>+o<`iH+-YTomZUQ1IMBCWwgMAV#&<>lkHmntBgvFQh;RNmcP z>HwDp4oCvJ@g%BD=g6DVDwKs!;m5^uYy~V5Fe|R~b2#{9uWZ@^2dng&R*5bP#3@d+QaBjsDxKw(Iki0Vid;!GNNm2C z#jxZ8ph)Rbw8F4ft%IcXrTbNRnip z_0a^Vl%(#)vwv{P%G2*4)`|PIuGzbFIuu9?pOHf>Q)+{ax}!aOf`?<83@D8C7^~y1 zB;}@D*aRt%6ani8+N~YeLssmxk_k@bEmO{LKPu&vc}%Z9C;{&ixW7w)C<7o4)n2Q! zcXXv7l&6vYD)Ghm*CG!qlc39Il$Q_|;)(&2S{u7dU0o@T64BZ>X=!^Hcm30;P_mb{_SzSCL?!f*ns) zb)7ZT6d?$76r~_U3e0J`;~GW4xOI~EmL)0O0)73u)8c}vT>?^mN}XH8T9&P-IeKnZ zh*sv1l@Jl}Ks1|+*GtZyQB)zXD>Vb_SmTx%92st%j5U+NU4` z9ZgZ|U$Z85&W`HF$&leEf3T^;WXTn$DlM&$T|KZBE>i{?tZ`;C)wE zb!@l%5ZrH4(r`~m?_Hn#wJ6#-pT%jb=-uhRvyBT%vrAgSKC!^hnt)?yV3{0dg7F(-z%harx?^|v};1rY!)u8^h;*l94ROh?NPpl?(?W2F6}Z9 zcqgRRgi}>vl%He<%GGKJX$`WTVIT@r*=aUORl|iF{{RtFhGIKY@1!Rros>8JCeyB; zLr7$KV}(RXs(YeHO z8V-eNdFJYRy7pLFtOcWNsrAH$$G3XicrQ}4a{OCqdNr-7eMCH_lLi2gN#;GOd77QS zLqg)HsQs)w7p!>zk>#=n7$o+r3l`5Uqu!h1$t*T(>y}Cdy0lfYNx@OcBC1}1NgNSg zjwvY|Iak_&Rk<*(DeJm$pfpZ7is^MFL{f1FR^tXZH7i?!w^qAaHu)13o(VDiYB!cW zy{ThQvGvghnq+1N_o-SdnMwJkdM1}5<4#)l1rlU?)y131OX*#}lmjFVPu{q)?piuw zX;>ScQ9J*4F45Bya$yTlkLYf==YCq1+~i;e?eEmTZuGyaqYq z#}*+$xFe!sfVkGu>g0};u=upbe>ak#bE&0A@qOw=YR@`=!E}_24AcGuyF}N>YD$81 z?K%BJdfQS`+Hh900)M%pRKuEUyB{fV5rPgYo^n!r4!FUnso6EH__tVbSO$Yw%mTVtN1owy@^u%gSq3{0yd`p0J-Tf0}h}b zPI;=N_@(z99%aZK000Q8WBBewa(sxzt(Mk$%A843P=ydAt8|)z;`PTCb~Uss5;0TZ zPMLL+lC)J^T-;f@R;Q1!njMWw<@?s%NK%xOj!kq%39d&jNw~|3@@ws$WlVvx4_szx z7xdDVDD}ylR~T;zgcTkfiwbwx*YR&gm2}U}o@F;{cU>0rE`Q8jkB1!fYn{P-7S7u%2 z6on9^$MmQ?kvSg~=|$1!?a2gMX*YLnd3MY=>f`XCB$|=!HsaCWDddo^^q!QTnK@D` z_!>#SCC;DWTirnkcG*Y>{%zBP?^-J@BHu!_Rnv?Mi+~I(fShyot~{B4BjS$8WBf~z zA~l^B{=i%6?%cuTp?`<{s~O^pO+MP>e(ktZt*A(tAbcLbekz|DGE=VvK0}L%o=QQI z0nJX*7LqoksPwM+YSTFJt5k$jZ>?Jb7c*9;LuH#V`_B(KQw^&Gd(@|vsYI+XX}J~8 zn^sF@k+_VncVB7(?I}yDE&dW@37DF`G}BFyn^XNp6(~TDdYPA&(ubC)JP4}FDn!$j z*i#n|A$yWYQ0v-=3U%e~StOojx#W`DF9h_-6zOF^BxeB8tva`pDU%&44JzczMYm}a zBKF~+P?HH?;t|bRSgFRLNeW3C;IH#HN?Fp4cpKof*YT9G=?fHjtmF=8U;%XXX@+U8`K8>MoY+PNm;06jn z?c9pBywjd)*~M5o91RV|GO#{7(!8z9_%nwX{{Todls~E_ZxR)5Q?!yWPfStvXuP(# zaIGyHXoQ5p5x~VPq^+T&2C0jvH?RlR2uDciRZG)N$#qv35`_J8P|Y1Ae*joVazJXUK}(zRV30_No~INlX7dsXn}PN7|p z&5wo6GK%L^yt%{AtzAGg6NO6?6E*3Ae+rKi?Nqw9l;)jqrWKL|&$mNc z3zTN!`WGTuAgBKTuw*2Ijysln(EUsVhA-tEL-Ln^UO(oKF*39eUBHFCKLc0Hqz#7&YeNj~O@Y?#U%0nY(9} zpr+U9o}Ft)VB#&C3t9C8`c-GWB5>BqFBI*&x)+QjhL!?iXdOM59av=%xQQf=1z9w) z(xHC$fvos3j$yQImrDM&zhLWh0*NUYm zs}V^zMWM2Fi*%vH5eflRebaU}?Ggu=OackUJ5(LA+KT>(Vq3UM+;JNMV2Ygr+UF`s zK|)XSK#C6RWYsG5ARO0G=af4VOIKCW*f%R37Q?fEiP{^s3ihUM>V;b$H8B7 zq#eYzm2EvhqO_ekg}JfiY)Vp8rB!8>xRO}ZXJxnU8_$k+4 zJCu~G4JWaVwHmH;E6XL`JjKczX?qlenK|P%UJk7?T-DWBPL{6^U$hfu)5+WTcP}9O z)t$BT?LrUXBoANmj`XfAePy#oR=Fc9<2$CWFE-l}rknJVIGWD6Zo-&Sf{ydXYVfrb zkR$3Pq%IYC(>dk-ipST*guiWNUGKE3YJz*M;_H& zj}WTeDsKRsPf^;d7^fO1KE@}+r78t(V4Qg$ee>Hvve%scmH?l`W)`kJv1yZb!Skjn^V z``d!0TsQ>m?4QcHl~q3_Ui$E0HT`DiT+|hNcA>q<>6zn02SIj0T43E!#z%*NE>Qw+yt)Z6!Pe2m*snr0JDB0@O!Z=3g2yS~{M2 zwx57Ii<^guNKs6j$4WO$@ZH_|f}D6XgOwSTepJ~d98l607~W~C54!Mc>nKK;Js^6P z^MNHw@9{?3cs|0}2~MGMx1Pq}%Ao-E2d`@7m&=r+UQWgFAsOF*li|G=O$xcbw)0ef z11oUgcT`k&40vtEgDvUkXB&!=qqrZM=jS||Mci@YRYrdIMq<0(q}b<7AYnQRe5z2wFoMxOuP(ZmBzRAkk>n@7fzf0N!kf}Q(uxAw_lec6%-OKR*({1QlQL} zQ;t0hRGaEzrk`jKO9YY&x!@ZdXtQ)z@n4FXVYBY4YxaGK5JCCnf12h zov9@8nqr$+oyYU9S}iw6pCs1C`9#JdJ5-5D9+Ehxaze#4?USP&4m(jz97JUHu6by9 zT4yaPR}t-su+lDtrNS1uAYkK~l=m7fjqsk?WcBU8))k`NwE)#XD!(B|cM+PnvDFz{ z$y%9|4g#Q>ke?MD(vanuD(gYL7Ls z8@EoDlI_BbsNf8NQr%zJqTIT)0+N8Z(1SMvT*T!XIITq`KC`tcc^%ubLg7;ICtLi3m9*wQze8Q;N9TW8TQF zUq$&^8(2hPNKhZ8QoK{8x>T0|3*ZAeu8eAz5;BtPFHTaQL2*xvl1L|tW~Z%-R?-_# zF$vE~$}UpboT*Y9XRNTKDQ-GS58?{`hN61y7PmfT&{}W>C4btF4YUq*&_eI6UK>;C zQbeSKimBF4hpcJO+uXXQ?h!jxpTq_XcBaP}DJl|jO+H7J+#xA(NCsmw(xU6wSGJ^@ zR(TACawlxlPF0i7QB_{V@R>Uo3b#-pLO}*-yNyU(wxl}P-H%Z0I#gaSw<512t}AGY z#53j+vBpI{>RoWWmeP=T2^gi^Wb8e~D1_Lg6SY_et!{i6${AbFhrxtENbT=jeIZPJQ(v7 z4-qvRtZHwCC+U~)Q4#G;$~}nU>qR5XxZ$0-JtCn}9a6R`Nl1(e>x`)!+$6$mTe)e^ zH3%><#wzD}AGh4L%3U9Xj;FOlBT{yYLM|$Yw4_OD;j)sPiNsZEgR5JMW#Bzi>NKlN zGqy`)tA~oyaJ6l3kNwoQ7HV~XwJ&t#6WX(tJq9s#vb*U^swoNlIWg9rE#0;CDGEYQ zUbNSG1$ie{q@t1(vZVC)p-!NpQXr6=3Ne5jo#?w@J9DO@?#%^D7+XN*CO3RlZO*Kv zov2Jlr1avFE0d#Sl%kXNGTP5lyF#D0X~L3r&q`aTH9Itmd#2n#o}vM!d!;Nm+dIHi7^+HY3E}BhDf~o(LW4t=sk5 zDNB9TjoyeHS2R}W=$qoLl^UyU-Twd@$!aPC_^6&waa6=9Cv0RI^f2jheVjRI%Fw{K z5@sZWT!ki2n=zOprBvPp`SsU~Kh<|u#ygw}CSVT7xrrBhQNt_XvH znptgZtZmAN+at|cLe>H3O<3tytF$f!I6zKd)G{tgj*M=aWum-J-oygbbj)U&y+YXA zs_mjTo`7a+pYXVs{MPA%ru9omT9!c~YBcK`9tsFD4;0HEA!V0}u!E_x>!EO@2!cPY za_-twU?q76gG2GOWtP^(I*=$SR^6(AK+Rof7B+35YZ{uHZruL>*-F2eLz5k8GDXD| z$28e~-lmJ2hW?jQWh|0Hl5l@#<7 za+O+&0km7~r)P^*OA1Uaz|B4sHuMt_^RsqVG^ z0IacVOtoOPgro&4cjG-J$AW1Y>$g~k7XWFZ^t2Qn+!Ab%Ih!{T9itfj?R8~BT zdtHlZYKinW-1n=^5!ddV3MnM@J*nH)$*#-t>TQ85BLb_n4P^|nR>DT$F(RU)$g6$; z8r2-SWqU2kR<2c9+qCP=U7?l`XDRjx?;G>akE!t;O2$Do2^_Iu2ww& z7)lSfdLcHqT3wN4-OeSk2~r{Gz%#(n5uE?Z_ z$(3ulSXK;AF;Xv5Qw=H9l0rsmm1ORW=A(Y))ymval70B0(BL14W-F>OX;IGQ$=e>M zfPpjCne`AP9P>`2uu5Ajd^*E=uCZrha<%zOU-34dQAh-l_lTPGTYW~r+pkKo(_6Aj zsM&6okU@deo=$ltxV}pJQE!iFIW!ZaTQlJlJE-bA9J{$VQ2s;?5)Zk_tZuKVuTU4x z6@DcZl1#-%AKCIPC&h6ws&``dt0TQtYBytltxX9VPv;>sr)gXxlgy$-e% zPJ8vP*y;9ixVxl}Lj9b&--k47?Qu59UBm7Ra^lqlHU#WXu{k~BiMa9Jtm%Ero3+2^ zf}M)|ARd5MpO+ux%_hs@n}#@;Z9xc2o7#7JkK**e9^UjSR_YxEDkI;ucH&y5Ms(!l zg7s}J>kB(;-#xccc9K9$l9D+JsJ_(20Mzb)3qa{UpkbnNlsFz!BT(4d60~`IM2!4 zsQA z9mXmz!OfN_a?0rFQHCXB zhP(B5C}|D;EJ}_AUfaKB(cGs{R5%^YOC~1`6vdTIyDM+5trqf@`ShNHCTfQG+4+R9 zr7JTWW}ggNdIo96ot2Kh<-+CF6-nd!Q{2<-QrLCH`j7G?a6W6XHw2VU2(>qJD^+g` zjK{@k>^usKi$-0%)S9=rxK8vkM&c9DsE#MKHhj+#P9edH6O}%O-S`3Kke{NzV(HA4 zr4j)6Cz`3$JU6LnmZ-bCY#=zTsYyPs%B7Fy^L%DoC&SgjfVAuFpF+rk-it-^==?w# zHPa}mOJ@ulUP(rz`c;(U=D6yv{{Sig?k1)95oeZ3(i*K%^Y}m%JGZw^NL#A=VvKP{ zJ%QwMTVUj^K$R?#dzx>Y@+Bc^ARo0_F^`gUPm%2wdQ7xmO|pE{4ag*VfvMQl679My z-)Ts2s#K`2pVZm!^`ds3w{g(RP`$s18nJB*M#h^7#7^0Yl;Y@UJy<2**7?Zt(x8@# zRX+XxDOS+D3rouj<~CBImVfBCE+o~IHk(1Xl#F1 zv(S7!t6Ph2EbR$7OpMjWp>UO0IJQ<&xRlq8ELD=vN1eiqi@qfn7R$GM67mcrk;i!y zJNB1`#V!@P>e8LwoTQ5DRSglRJ7s^C>uM#%ZC^lntBnn}oOuqb@Sw`1!JdMQ-NZQ7 z%ROQ3QsuNUr&^St8B&2Cl~nQ*Qb)s~=b8ASox++t9r6y->2Zu(ETb9Y5)EZ{-I~*!W9+E1DT)+B@lC%;6 zanBTR!|iMtrK&|j)D(Kjs8^0_xg(0mh#5?DrT{=Vj^JC@2l=Tu-vER?jVjm zsbeeXXByia(P^Z48xp3~#Bns&#i~GMCKO=iVw zHx~{n8z89%g${uI>Ww}&iT5p*ZlSjj;A3R;M9{ZS7VR5lY1pRyAV*I1G`B?`vY+ad z%H$89dW!P-+l~~X2THtRmf0Ce&}Eu!F0FjEjf+7Nd67_Fw98AD&N>QI-zpjPVLE=K zt2Yw+atO!GSg%L7)-QvW?gofE2WGJZMA=Aw!INQ`t9m(g$BKdFK@Z#F!(FwN%K->ec?Nk`f3#xTSAH(sW4xXKZGk4%0vI(mj+{VggWQI6Q;erfKvfD|$B)I?^?0Xucy* z((aww+H!aTwOSX3?9H)vRV7au9!OM2Nj1-!PAZ~b$gqv1$8zn{ZuZrDq{PL6Ka!V@`_WovSNv^gDMNFZpG)k5MO;&q`*O z;p=;pha5!7^>%^4q)o*Xq-h+rLTr<0!cv5e0&oQ)mNeT?(`VMMNam4x9$v_7-B?TR zIN?&9!a+O=4^U<2h-Cp%M2P;BZkVZB&>PKdQ+|4YQa=uA&6~&VkQ-q!-YMM+{6sfb zH?O3rDw1)xsij7jcG?oBoCRk)W^qcSmWENj!|bfzbNFqbCL?!q>?=oV+ss?-1}iAyd@LK?@D||-R_AF{q>&TVn^c zX6_t2&hlcqA);?!?y&ceUt-zE5-@hAK&qgtyOL1bO4_L$b5(@mw8U_hni2m159%$n ztA}k?*iKI26bLf(^s{CGiom*L38!VBrrXWeG_*-P*kG#Cm3(qS~pi-b!}*2bkJN zqI%|r1t>c9K1o5w--8Ws>YPbQ#Z|c8)e|I7O7`%ik1A^R$jT?*HNx3Wkd&oF^8=+( zzAD8@^n!BM)B-HIUYq8@O1grr`1f0}qU`+k$iqIaO z$=*_w%2>%rsM`+4>YtDdZ9pr?ac+6DqJsPyluyyfvq}Fps|7s(d|FyuX?g;WRH?j zm1x{qcs-?CBI5T@OCd=L4W%-oPIKCad%}0VaTcu=HP4tx0xQj5CQ+99JO2O#XB5|9 zPG~pDc?>sd;*{is`gyG_ripE$X%1iA+ab$F?GO~VAkTWDy0y12DK^R~OipTeWYe}&Bwf}#Qs(o!kh^FxSvdQrX?nSO6g4Cs(U-i#GbUp zw>gi<(Y=Pe9_H}AUC1OQv<#Edp}wb&tzPNx zCvp0JsfM$r`{=SG2{r`hfL1ON=3qoq!(;q?H*kdl})kx}CNWvpYr zO?a;;p}$aqMkn5fxA4Y<3@A9Y&*GdPYA#cXsG2G=cETL+=7Y2}?YhMO05TPkRrh`i zS`<~L-31{26ghX+!HU4B*z80VqgqN}pqysbrTaSy)Gm zNJW;OSLTZ*U0BE}98=Zj6#&a&q9CatVks-z8*fXam8V%g=brVeDo_vY`Svg-yw@9$lhCu@s2vSZz%H8$eCNlA*1;@aW0ZE>|Eo+hpNBWV%* za%$)&Pti3y`=6$_wp)qpRtcxS@a+@b} zM6qSHF4pOrrmyC|pkkqdkx@@S}`F95^R~h)Dg5@h@zDHFaip{Pn2HH=exm(F; zEvw95;Y?)Bb^cWyH%BVPIj^Yqbo-`WRkN%u4y1rkp$2MuZw_kLgbPhR;mpB?&J8TS zOfjpz%E#i)cNm}>yBnKlRLjh%3qgXF2qKu>x`~LZ$0f$m&fz60VU5_kfD%dT6n&Md zi;%RbIfITXn=Vw*(~b=n_KY-?DFMQJOx08R{NHN&>f)btpaT1Bs(wP9a` zbu=2Z_wQ2W;~)m+QVOzuDPt@&|L?rMj18yS zs&xHA;?WCfE`;yRUMk~6B;PFrE5uhRAT81olYlriSoWmr&zDxSCY~7Up=CSKGk5Oo z1938EG*P%~%32+7%nBaAY7QuPvZ>3LT>+v@0RZ(hO_uv*2impAm*o4vbLlxt3u$G@jYjy5bcvFSMX6N355>7 zG_AFut)j}?NNn4MCe_JMfI;ifkwIMedr?bDeeJ1AV5kL3fS$sVIZ|aFCdrua^RGL% zDQySVzTN9VYxH_GxNCY>l2AzXXT3^o<@%wbmOrr#-leBF*nKRv;>Y5VOKE9gbGH4j z;mMyaI8|pEMOakSp2dFT4M)sUzkmmpq{lN)E+I~-XiOkrb|Q*}Y)c{3EX~s=Y6{iR zfyEDDZ0(li-6cL-LvjZ`s(8y(89}GWZH?R43vpaFoS&LE>MeYtZ&HU0gy#k;NnVhV zm2Bm;Yjn^_wH`@H$Q(~5vig>p^v)C^B}g0}Z+d((;OJbdlCrVOS9b0VstzVFXm=Y@ zFj7acuGmdIS;aU?JFNpPKYD>km6)7W;{O1o9DE!=_&sT3u>SxQ*WrUhfII>ttvw)- zAi<&j1`75_2Ony7*cc?zUF<0ccMg8^sY;Zhdvu}8*y%axA?yN|6Br|cYki^FZ?aAM zXLHLCpm_fP-Ew@Xbk3iOt&r-s2xUn!GOUwU8e$FogN>B{(!DAK@$p>pRTHUqMrXu& zPtd-VG7tgJr1S0t1*TbFY7Ti;+qcF9#dShyVzzQm8+j=+MW^^rQ~K8au>t`~)OSdZ zVuSHU=I@IDgK}qZ0ooebBL~Vq|F%{2R zD&@O5`{vs9oQkBr)C=n_2TTv;rh=ujN!bE5WwfBAA5i<$kL%ZpKszIG$%=N6mdLFO znuW?z;-C{J*jCcVOtuY`d1Ri1nx02WisD-tb!lwMyut(yovA*e%0|}*n7jZ*Mk-Q6 zN=Y#0?a0a<2_RsK6H$9m3i8Fq*2;3Z&*ejtT4>c76c@S^7wm32fmOqXWE@9hLH_5w z(puW32RCv@db*sGriJ39u04VuI3$Ijj(MOylg%n6Fb7jqPsui#?6=UKZpioHC&`WHv(vUa-07Xu5wmfFysSRzEIsA!GJrpERE_g4)k3N@Qw+IT7w1Wv(Q$4jq}Ggg+-KA&Zz_*D()+Cy7XrIozvipf36>UvZc{vmNT&RGBwr-^JTa~6OxeNtCSR_fpW2yG7?}q#&)tb;;aSjW$6sbcp&>VY7u3wdr$Le%^c&6=| zrT9}x`gMNr(+E!BuP~ob0ALQnyx+#wHb(RR0NFO=BVk&lQwbRRR~N>cjzrth*_t;8 z7Pe@&^=?4Yt~YGO!HDrCcpAE2%k!iTvUOOPsUCtN!Z=! zjn+ZH{{YoBENoUM6jOCbR=ty<1STYb{b>tfWJl*(>tUw$MR2fzv_L&+7aq^Vz&E9U`SN{M}?OuL-ZRCzbj=zsJ z#lyoq`^%r^qcq~<54Q3|medvUMR!VCIb#cMnY*#pezc(6!dIC+>qK6&Zqcyv)U3!# z6lDHYZ8#keccNCl{G)oWM-&_EaTyc4xPu{&5#+N2}@X7Y#U+KxznI&mT%wV3Mda<-u zm=$$?Qz<8CoReHLr?hrOIO&kyYG_k%StGcfzSUCu*S9MTwj7c$kxh=4*fKWNAb0fZ z_WuCxTe*RfQh%*L%PUfnhLWOtRpU6;h<-Uovc)XA8~!_iDIdxYG?uR0BJH>CT1iSK z5=4S}NT~PF^ZKeS6KQR$1-PB5aG6NkAfDA!`&X7~UAvaMdXfeY-jX_QEUWu2Q7V?o zkhH846bynp)Yh7_Y%OhHrB0-z`T);XswqFDYZoHH4l`K0V%-kU2)0DS;XMsDv-}DJu+#fv;LT)dnD7d z*p;aT?hdFBax+y|dY6&Cq^lDGJ6D*YZjWA4NfqwuXJAV69`zsZRiJ_n1y_KNB?P0y zOG3L3nq$5sT7uA~#?yd$irM9GAG*P{mB=r+jj2sxPsVnj= zqb{Nx3m_BF{>{Qd6C6F!6(b!!9HS4#PUDA zUH-I)M)_~D{{TqT+H4l?8-TMrPebijh;q{Hpp%ZGYnD-KXIv#}fiG>6mWtR?Ler7c z^`=_glq7kJNMBG7>ql)1bnHDZw6W(UK>Qj-UWKR9y{ZQkl*i<%kvmuZXi8lCKwyzl zyL_gb05!Z0NThL1hnJv4YCe6(@RpRejGV#zskd6vt)3fKxdWl=O~Z6AEd?i4ZD6?5 zvmj!jb9;{cLqqXpLSj#P$xu_Uhb@?S0ZujQ91=2`9q$ZUUlh9PmAO4qc@(_dRiXGP zI%MqV&1mGl!qnp{fwf%cy-x0%qFgo;dt+=;zr!eqC$XisFR~hxbXQ%c!}*1eQL@s z5Koel1f$wTapcI19A-Kh$HIRNUI+G`Oh!Pe1V`rR~k<)ZVb5@kmP75*HjQc;l^Av0wt@oY$oZ+%#~@ z9ZuO|0~W0$ypWkVBdrqKXm@Ju33Y1aAVE*fN=dJ=MI_%9*hRAmZC}L;6VO%NlUC_% zEZjCWDqzQ2l$ls0gOOuo5L|lPsUbU34{8$r-6^$G7QiL6@D#3nrlkhk8dXMJZEwmI zDjd%OxeHTD2vUT58tm^!DoQTUV;7>>N)k7BH8uU>?t@!UNeTY7J{unGP{-d#(Xxe4 znu!X`f;;@sYbrSJ#buy2uS9ON>#9mxLWzkXB5EMhySDjikYI>B)l||Z@yW<~RqFTr zs&MkaEt3)_2a#KfVTye*ZLO5^yBo;@d7@l5LBA!bITfucw}<_0Kk3S+EUqR3fNQz4N_hyd!g5i#y%+^sCl%&_5>$? zn8mn33)k7`*)QI5kI#j;DyLG+}%r?`c*)CW-+Oz>zc^_RAW=W_o59^MSn z!6X*>0yJE*K3dZW3X_g#vu$Rk#r5v*ERYa{kP5x?PX7Rcujy;1n>QIyVX}~)<#5hE zY4cbqt^>Vl8i{k)BWn9Z4{`8h_3uuIk)KZ^5f!> z32&cCq)JJdOnX)T0H;4pl_*T@KNRqgFg^jLb{2=o0|tG%*98Ea0&|)bN{3B{Y5Fbh zriCumqOHHLwQQ_BJ7mU~-L=yyD?Y8^GD440`d1go%-iCQ>=Zx!l+iSaw zD=<0HdsSD6uMwy=ZkhouC(@#k%|bDcJ4NmB*k^@2Ij1h&ol5n+%UrmG zsKQbw1d12L`isLiX4%UfHzkgry0@bv4UBsyZRI3#l{Z1vaFpPZgNE zaI)seB6FV9`1i49sgMVc;_5OhzO74i7nWnF9jVEedN$Or&uw0m_s%OuHRi(vHnB0p z^{L7>QZk~3_g8sgKq#52OO0COC>`W&?M)Ocos+lX+xAd~!pRBeIUN_i<|2`~;RD~cVq!|e3ch5B3dOk`q=Ri)!;-bfz;mQ$xpbqx+^+%@ZQdq?R) z>ep=D*e#cCR)+TgqS|*T`&PbP1NAaD>agBi)7vee5R%%}Dp&cdy)(pDw>J%@>gQu) z03|R10~}Ra(I;1;&c^Y(!tLGJF8LmSj_Wh(HAATC>0YK%^BcJV0PsaDVw)S5in~iq z4P{Ezu2z>ETqA0t3GZ2N6KU<*T`XHT6wo+dLtQv-Gfni!abL&6&m5vowXc()TwhJ;9d~Cp4 z2;J{pnIfEMfPP1B; zwWUr#C1l_aYJu%i+^nYAkpw|pXa4|I1e~R1xg@C+_cym8enW4pq#ie7tM3|dhdl&w zl7WD0q75#{&f0VgQ1ZCkPt7sL+)R0Zi0XP(xy7nSJBw<|Js#=XLJE|ij+o@usfVpD zST0@d+D2z5-nsKGTSrC@uho?LhKFZw}3y? zYeI5MiCM-kXrjB*(sw%0Q3SyUr8>t67SDI_~7U9MeK_Jd^ z6b75BJ@o;%+*c=WvF}44{IGY}nHS+{u8le@h0U7oF5cbI3OO}KwubDCbQLUecG4d& zN=T2&0#!JqEy$RwDS0`RUrg6sZVjbDS?UD>wJmT-pK9laM_lQ$BQyF}5ee-drBiI4 znF-JKrj(T=M0^^h`Vy^ZYA~*(_039@m@1rnR&8F)m8}Y!hZ;;Ih&3OcRzOe(wJc-g z*4rM%2#3PRwX#*4e?!ty@Hr#O%q#dWYt;JO#)SKBWcW-%tWqI#c_8Qv(zb)mIuYg5QE;jltj&<1` z?x50}QWJ2Zf0sRKop+BxK4Fe|t&SFj$&o#i+3L>Qk4lLO0 zSjRAVtGhi-LN_OH{QtXOr8*Ua$Rrj|`^qg8kFm3bVN@2WQCYD?P2~O0wFkJCCYuV3`Sm zBiff1XBls!WyST^V7?r@HkyJ7w?nE~3E1GlAK3fXqTOnGRj_S`EtH_>+N04Yv8DMC zj?uIWlh3W6xNwYw`)9AUlA&+}wOH{)`8=#S;# zzoc(?q4k*%N$=8wb5OduN?Qq01b_gUCZ0IfJ+L{s=?}Tk^;Xzj%2@;?O45~$z;`05 zlBXklABuQQNm)7LagiccqCHbbSllRuGM4>I5S4Z`ChTZ8bWLxiT-~^|H3X;eO1Pr0 zY;Tef*|z~LCuk@f)Lun&Sz~Eh9;G*DY}y-97b`Gh5GvBy%|pveer31_9+j1YKkg|c zwXvfu&?WDOm#ZyTEk4L~2!#|6OT=(}k3;q~M{T3(cS`;hvw}LPN7|kl)KyEsuM3;B zS+n6SP(!8mn_LA15@+I^hi}^|wz#)aoB}qK$%;;ECc>ccqN(K)vH~Of8iCXv6(A34 z>5hm$WM!oQ00fe8Q?p}taza?PacBPk6q6KXk}+E}amr8XiEeCetQY0pu(s4wxghdI zTj?fJ*g@QYa*#gN43bh@i$OImCY`%2G^`=@B~A__p{BdxhMsrLas7;hpXJQg59FLb z@^z&Np{;1?wh3<1&6nB1Q_f{ur*_r=?wKjj8LlR)M=@s}t@j+rp^0T7~tRy$L&AL!2+T_pYf=mNg@tL8(<2_V@Ow zyHjYlKuf-yh=MZ&ckNb9?GC6FB!vkQm7k6_U)HnG=?ZOe>$YMlHz_N40e+F9$P+b~!f69E1KT3nn0l zqUBt}ffv|_9@O&MCP;I`keK~mMs3Z6-Dj*3DYq>-<+uxmvxoskX0~vny1H2i|_u1 z2d+|i%?EZ+M&!ZvtY@GPFzzIuwIYyQJBQ^@Neg}sMXTa@icm4Z z?MH%ZW^#9Azf|SXf~W+3wNrB7LyB!*gyJa2x-;6crsCBoTs9;e0X41Ad?E@`_Mo(o zpZ@?FN#oqs$u2PjYW7_5(RX&n&OUmMaS&VV$ys}&6Sn6l7vBNA`}3F9Q>LKS@9O6;|n%W z(#iE>r)u(C5}lp!pC}}Gw}>@cy+QRGhY8wXiJ7W04BdEYz+Oa(I(DPg_CzFmVIM+hogh(9<;yY6B2mb(7m!>*)$0cx2wLB7_Oo^qE z^kn=ZHCyf(ADv3Yy2*lLwJVl~QGJ&hb4?-C7cvr|(x>r@+I7wA3bJJlpD*};a--k< ztC_|AMA2(egpviYvTekLh(FL(pwq$-JxNEoFbCd~B%O_oE;c!O>sG9WS_*M#5xoBZ zYOK4}uP=QHab+C@;+q}|e56ArZ79TqSzS0nT1@dKXr*WuXv^>i%!;GU7`hTT9RA)5 z8%+mIWN*H3xJbio;GdJyn7a#9D{@#d&~D9hsmf1pM^eQI#*5nvTL9Z?C@FKd`Ku84 zZ3=JBN)hwTa>-kw@T7`8NQEEZ+^s{ddeF#u=F#Qu>Gw5A*BWHx>GDL@XnN&h-KI;A zIl@OZX6=RMn%MfrTO{)YD2hqRC&YL~wPe<96}0u$!)tEU00|AjaP|cBskHqOl`LwC z1@wWrrpj?X{plRI^fH5$9sFHV8mBjC$5-Z*W8 z1W0V)gVL)OLxiXZ1d|mkeYP~yaY&ET)21^`$8KutOJo&Y8=KoCEh@MwkgkC6YK`y^ zOe>1##kO>0&_3V}P6ujYoXi9MYSHv_wyubZl{qsRq$H2?POG49ot%{q<^0V`+wLVK z0z~4oOUPp{L~18-CO#?^Kp>NvWwa*WVkvl$9~9Z*Gg)>9--C*W;*1(pkVZ*^%{I}k zF3C{_Igja5B`VqqQ_Ul7ZIzD1QWXZHJJ3HI!L1e=Yhz1_oO4O)T%EhICbQPiwC0){ zwD36gH9J9IAJT)6VH(&=Ejs&wErLlfD%n;y){PHP3L}6fxu)Ws9WjIAQ(ilHZlYZT zZlOM{;{cN*-nyX`C1~Z9r$dta!|={CiZahzy0`RUK%9fq-j+~|(9xTWk#ybi)ea%T z2^@5;{o>-3q&R*LTIJ(MU4}7#<%FO-A~RBJDzjCXTT|wY$>Nbkxgg2?S)N9;_(zto zV15|sO#S6-c#$Rx^)$UgPc__d-dC;tFqXEoN!h~BY0M-*O(u9Ya;kc9)0CO_e% zo+hFgX8X{4itxJ1^#zti$P%Qd908aQDqxf>=#+EEpaapqwG z=Mxw{smE{jqM8ir4kZToGE72LG4V|}aQh)+C6nsSE|1{rWPrdI#6_B&y*~Te~PwnNB2{p!(QZ z^;bqLbsA(cO(_$#sFbXwKrKB-TE5ZFpL!P4?=6*JAwWzX{{R&{@Nrg(Vx8%l1~h|e zk3PpxX5rHTNjTlt(tF2xTg&^KcEVk@aXHG0NEOB2<=NJ)exO$d*7DnPt*I+X{855B z)n&s*-8-$^E;f3B5Nfb#=t;-fW8ur|w%#ob#kEh^)#cW*EmjZ+A|#K0?^2u;rZi18d?g8DuLFg z)BG^~(_i)JDM8=?>K^k#S&~CX4*vjwt$0e^o93<(v*oiSprpX(Yh>EnZKNTl&_Y2>sN)|$H1SQU zVmDhvI#YL-3Ks~pF1A5Z7H|paKGim(Y2q8Qg&@L~p}i?q5|P&(DSsp*A(kmLhc|bs zt5AB}+qxJ^;UzehoY-JTxWVPKh_iN~O(&cU!B$ydVp)H=*FBC0X4y-%qB5(zCsYi{-=agHO zMAYdX9A?F@w|M{%fHX-%v)*bg~^eWJM%CX^ewAa)&2vkCe$^QV=b2zIylW31g^Yu6Gbvv~ZEs$K#3Q*ujVa;SU zOVe|3r7M*g#Wp2!{{RHZsG)RbEnmN7o6_N7YRE??*il|7yz@0z3Q^^yAt5QB!jK>V zRCml(N+xyp3ePk1O~8*&#dIaABg=Fm;Ul0Y+Md~fVC4Hyf3A#)k#JDHek%U}OS?mk zA(vAMR1_|Mtxqg9Wg{(`Yrpz?GElKF5?u&_qD8%4T710EmMC8(A+j=nr-iU2Lm`qT5W{a}Hr-l%egpRaI zO1!<3Ak>)XiD={$!0KoVh|B{WD>Xf3k^QCat(7kVp+c`MH1ks_>yiKpD9cMi0qme6Dq$vtW_Z97F_Pew)N z30Y^fj8>ON*PLd>R<7+O03W}@>qT6tNd%OQ-72e4zHd~r2z4qB zpzTQ+2j-ba$+>tj8iQ&MEKWx?TA@FRU}Xd$fQnkgUziGX|8G}}-5RzA@?CKL%VJ!)H~8o7BPEy0ge9!*Y8 znq^|UOg_O4vj8FxIHbK?t7hzbR95A&o8t-t7RWd$ntOK5PaSI9npz^Fiv*M<0S%*U zezb*et~aj(091JIW2V}qN{!Qrnvx<0F%*ybQZ~yiBT9czc&TV{Ht2$-fIwHUCavzg zJlpN=v`*4E0OR$pX-|4Djt#G{+Ybmf6jge%pmxr||kcF&mN}EjXJq9TIeLeS`4(cTeBh*nG9)c*gmi&T0Z6abB za48ort!W2^415Z%)NYoAqTftfooO)M#?ugb3RIsh^gF6+{{TgHsjQ<%DzvphV4qW` zlC^gytv^N8t=~e6mof~>iOpAoaO8+`sZ%N3)oq%(xM(PLf?ox1(9ec%8UE3itq@aT}=ci2Xdx!?k zfOFfL;L%n>NrTe59FfPx-51KfxhO5EUY?XIiz_>iKJ>AQ=y}Pq1%h%XwJ^lz^{TBC zOW5!xNgZhe8^k7m+LcPX4<1bm-oh(t-!$tHALxX zlXgc32?je?0C6Wh=--iQ`Z^@zAatj;*(MD4tlonSt%Wv(CIJ)kM0u>CF}I%mDiTgd zOj?SjF>a+sQXm?Hjo2j7ONhE+eK=8pp7lF6?tj}#O!kT#scg}Uy%wzaW%qU!Jjy`; zw?Ih0{6MNAuXOzzMzoJRWx~fHM<11QPHuf2aEgazn@#A}ps6-&Ag3p84GVXDqAg^y zvK9_gx~CX5v7SYwRNpzFI1}{^t;K?KGar5`jaHUI<9jVBX_ zEZ790Vg}aWMF!T5cH^@3x|1McLqw%E#Y^Ev z2{k$$Qby*%$8JSu6uTN0?zWsh917eOAjU;qd}yRe=aVgui+^}qrMvbLUPyxKal7PkG#BqAB|~6} zjBwV9to)K~5*>AEf))DIj%xaa%LiiI2u%7@n$HrB*xcNkiYi{bzTLe_Gw!U-4CVTk zbLl_KM^jx7oTBNFs_3k8PxPo%@R${4A7puK=G>Axp7mpCbheZsP)Ft|GAmR* zIV9}X=*-+Y+Fp707-?XXt~YRSVz)L9-hDaxml1Z*NG+%*@q3!_K209RA83u&wH@dV zA*Ch45}*0bs%(})im696g??wOyqc7h7zwK^`#(s zjN+@FZ$p3hMcaa+aI~mn?bfLYN@C4MIz>I^nDQ@GX4Jb18%R$*L9G^%VRK-~Rrm>Q zqbW$_tNc|mNlGdYu`$7>>ih`jiPK4&I+Mw-(G^Hd|Qq6Vjt4TZvn}G9_uKQS_(+KJY44TUay-l)@Au z6sVI*?o^mk;1d}j?^!%&878*Gvk-DMUZl!3a)VtQx3sLl^1t++zYL#H5 zqTxtw$2Q?*AbM#s<7lQiq=sAG+NH-3hm-0e2>ynpUZTngOKV9Z3Qt`7RQPXWsoDq@ z4Y(5O%2Y^&1rO8akhspAf+Pw508dItw)Dr;P~<2);tMVn7?Ksl*InN_hk;m18gG&B zS#8rZwHrly`pY+x%X^l!s3izO43q6w*4jIXVF?c}|7s)|ycJ5#jl)N2;*DaMn@ zN|EjJRs3oTku^5uOd%Rgqbn{V*(Q11CI@OMw%G&AZ777}YIsd6e6~KLq&-@C5|FUc zW@aNFH5)=CtvfbkK;nXudKspGFEtk}n|aosQ?vNf{*nFal)ByHgt+p6JV=u@XvUU~ zcJ>b2t4dVZS=u^|wbysoH&(*f$VzaaI*)p)?_}oRNC)?I$U$_lpxQ{>t+*e0iuTpd zFgTQYPqjZadIF1zAcs>T4mpmrTUQq@we-`uDHER5Wa9cVO*%9PE?Rg^ZGYQ!WSKZQ zRQ>A?@)Y8VhjL8P;H|bcU8Ig>ZZcBqMM-f6K^P*B`d9UO!DGrbG&0TnPg;SnP{!Izpt%r=GQA zYjUqO0F0(0l4&$NG-@5WH%x^(v&L$PPx)60GaGm{$rZManRGGDQN`|H{uOgVI39|*(8yV{neWc7o9^%k5YnXpql1olAx_i zM)Dd{*0%xlAnaTWg?x6b{mXsnAv+pMm7)55wacz-wn++J0;WG&GV0S-v}CA)q^Lnt zXK?*Ltr<-&#ZhwTtV0u$cNxVN+YhnmTV*9faGt5Aw9Jzp-0lFR)awdxZBuxRPzeGp zRNt>7tahg>cprz`wFJybXserd_aLdc6W5Bl(e)*phZ=SF7v?52kSIEmGE~8@TSG7T zzz_+MBCHo}Z+)kf6a+uBa#T1bFe0aS9!Pk!rLuva317U!w>P(~S$eiI9G~Kz^UzfV z?Y-uWa;tl=4&=xvUgW5I8m>IN-xtubf=c|97f_<2MhTh;NJtqK=toH9lKU`s8JwDk zq&LBX8O>HQ)e%WBb?4MO^WK`HBOn9E-m2_M?ueGN1dwuZQH2@jrfJ&nBW~z^>B%uP z-M|S^}$Bj1W5d<=SQ}B_T4VpC(Ut0g(V_NYmX{X zhbCGwxv2SJR(97{50)B2ij-m^lJ`uzw0N@X3kw*Cs4S697Fgvdw!u?w=Hil=j1g8A zT2r?K4gloS&n0aLpybPIUk-0cE;$6o&?vxHyJzGy*eLWfaQQeH{%SF*;^&9c|5qEC8_ z=Gtjz%aD5x^$t$XicyLs7U4iGNsYpl7A&ZyQy_9EIWX~0VJh(0Q$^HmBbeaT9osE5 zRMBi@?-5!!&etByN2a-+7t2V$}T?(Wj!)S#>rj`Rwj z+&>Yn{BhC6DJQEUQq1Jjk!thFD{TjFegxGU;I=Gc=JX8iRTj2 z3WzBYS}g}s({%K$yQ>tsRyL_eIPFl+7m;yYofu{K-Lx8YjUAa?u9n!?q#2(cWoFZ}z*HVjGINZ5xRXc!Eq6wz0N+a=e z_NPj_3u?4PmsdMP3Y4wH!9RLGUm__sosJhyBxE0ILwMo-Y6}{%l-nGOvQxn_)XOEOl&|~5%_~U(?@|6?Yc!b|wrLgHr z59Dh^)}e00dmC^qUCj)*+R)INtMWM)>r|)$Va|s| zLziJ>;W@ypgRZT$5Ef@M2D>oDy&SWWx$xt;cespYdE$oRi@CI$;>< zUP*Nq6wSJwZ4i|8_pJVzd_JYcA;JkBpbtMaTx;r1f3bcwAe(YsY?b?dl?#{2b(OTH z%2ozMQYb4MlX@x(Efl!DvJ_yBNU0LWou;?-2r#lCAZDoVz_yYFxU^+tI~$6Gr~wqe zxs(*zmg16vK_GJ!>CzUt9QL9Wa)zwhQE90KJnkG4s*d*DJ+LJZI0=k_K|knSmG}0E zw)7;04oToueWUAT^t{4?N>5zRdbBo(&C^A_#;l9Rf^I;OJ3zo6HBoYG)JaN4NCt#r z*Fkb#O6O47B%)$+BZ{(N)23J@n>NY2bO&F3B!b#W^rQRLWwenr{S|j5>xWOJY9!#s zNv;|Os-%a$jop9}qqp#ndf%2XG;zv%B-AvP7_@3PCG}*3)KwyxD3q*ZRWVJ^u`)-C z=qAfdywo@SGh4%ARa2u$zqNHC`*#yON`G1s%M{#MqlQg#MVFqYnh8;Z92%~LR0EkJw6-dyJ_H$ReustqQ{K-P?pV8!|~+6A*pJ5nPum zQuK5u7Me3!7L#{>a$0Q#NlBcXMQfe%w5C&Pz=xoDoDe;#^L(EYQBEnbjA>dvs{a7i zTr!r{*qw;NPq`H(!&(LMlHJlmRui?eFhxP)n$mrAQB8Ky8=e``ZJcGBhtwAD1rZ+A zD*QR8+Kq{JO2npm3NBeYVO%<(f89)_X-|{{kRmcgO>^L;F0L9a-T6gFa*(9%$7Dv1{O+VYdJo!+DVlh;1gJ+_~r=@wpX?c(meM_^Fe2^|0&)oK2yO;VFH+P9DN z>$a0^b!ZmYkXlX%1A-6sq1p_wVdq@hGk>Q%cOW>Sy&(3CgH(8UNBGICu1>s|&21Kc zR;6j}Ew&Cq95Pew@l{R^gOOd>T}4^XllHO&GqgsJ5>Jrwxe^U<$qMRv z&`Pw!D<2{wuX^OU$bmleHf!F-DMd$dKQz@$lQ9CHXw3+ON2-Wo;cXvd-=zk$BGb@g zH(qjrT+G&&!&=kY1CBpsv@O*6WRW$=ni^}te0JTw(Y4Wabh6jfrL?&FiuF9Me$}B? zrD~@4TwABkSdTD(NC%jnE6K@?T_e(lM^;ekJ{z!B(`~51IZ#q$f0`o8!)!LRsaKA; z+A^UVLcUK-(z(him>xLI+7B91UUPMoz)1#383K*^RSlBh4WlXp`He-%tw^L|o3+uL z@gA@Hy$ZHt)a#jXXAnCiR%wl9>~3Y9sVhFElfWG-uM8I(WU|S|R3-kksbwp1#U>!B zNgx6KDwI0%ohnj{^PE-jaH2U>nReCAm@T$CrzHsrTIVZQwFLF{j{Ultw`sugkK$Un z9jHefo6)6`FiA4PIWk=f-j~=Yc zF4R#~aO1Y`!orZ?&c@B8 zveJQmJ$p=mX=5vzQ5%gdnM;=rxlKp+rFj%xnO!Kw3^Kti_3=mmM% za`V~Six&q>CFYrN0EK|AC}$W_6UaWoqaQ_Nxh)p4w_uoQXX zqB9f4RIL$T1g&2|dq~p37%Fu~2OmL>Mz;DI{;vM{ zLWl%#Dy{cR%HE^RQV^y>a^=|)R1%^}Bz)0~>WgL&E!lyB3TA4OikD`D>1b=Wer%A- zX#~sx{U}wER6tC0;*1qAO6)+T5GIjgdHkuVcm@4NfCNYDQIHeBjOHlC?`C~a;I5-H zO*ou${bqn+s6YTw5w`IK}D`oMpALK z0#;OVe)OBb{6c!oRj&w>WT|)FY5so(O;3-4s#+y#^U752B#y?F`}8|I(hVo#eC-r@ zzPv!)xNM(7W33Kdkr9x2u875?ahYJ@8e=!1T)}05oq#LsJ-VQB(2S( zY5P&Ecn3sF9!rV1c}mZmmBCNjid>%~BiktqSl>u~o!~th$x2nxUDrE9f&lrBO%T5Z z_rCjd{m{MCEbp(!F^~I?*Uq^(Bl_MX^@}$YV{fKHCJ`v9Zu5lw`SS7 zYBwcm5Pk^nREB^4cVo|0nGC5i)9Yw;FKuMqLR!Gvc8&-E} zF5Ip3?NXAAC1&Z3oF=~pd=6g>!eP_5llBlN0koh(_nwk{io zQgfUS^G6;@H^qW+iu)ilY!fh(&S~x2v=E}To#TNMHPLR4beCr~I220_l7Gc3>X^&3 zO`xvbfL(b|Qy3hRT119!8xA3~l_+C4J*&>i7s}4;a$IQ7UD`O8l&g#l#}oQhrIKv) z%VgePG)Pe%TOh$uo_;9H?5NA??4$AR`&W(IT(Z5bsi-X^z)FGQJ*&BROmCG}KUwDv`5soz_^O4e18iS1Wx z19sBx6}o-8niHk7LGFsXok2G0D*{ve-KcYXpE#usOJ^XQ#WGeamdTf?IdV$dQWWYi zWJHR%(?YJBH*Tq3TM0Nw{7UF4a%l}6v0d>REzz*rAuf_U!?y%`(7J==S0T%Gvb^_^ zN}!{$oSgdt)U0mqwjs2qapcSa?^IWIUqeroCK+goKO%%Vg@M2h8?+0oLzipqUr$4y8VFZ%q6Qbdg70Q(BSwP*X* z`NiBk8cK|nNA|1Ww3{QFi)kBA4%+FKEs(=W--%Zw#a}7AS5@XAp(D8C?NFO{Y^)tB zD0N>3CjG$uqv0x1^+?CfJorCAX5Z;tT9)#nT~UZX9lfi5Nj1d{#tHIZZGO($ONw>d z^p=8sB?-tr^T@8$KWCPA1z$y~sj@mcjl}*`fB6%L7AR4UywEOm`_vbt zwn|bVIsGf8<>wV7bF6P0X_oCzh(NAwTLp>Jyfo7K+}%wQJ`Z zb!}xRP6FV^=hCOL)>=DK`^j)EJ5>h?9`rc!h+A=ysIaoNv`7|~Z8N{rvVq8~w~60T zy>KN^l=kMKiByWs+)V3Q`mNqcbxKkKy+9n1?Ni@)w@6(aocA6=Tzf~fw=V*XQu0qyr!G;Hvt1Z1qTlSyEY5ewCi_~^$7}C03^mzDVmM@ zR!u*6%cxqm#?>n!Jz}{303B?yo#~i_>rdXi8+k`+iAYJ{b*tC(hxM%?HqYE84>BdE z4rAE+RkE%zO$&{yrpnu^ZCgvz7`Jf+0SZwtaG^bWRzF_x6Sql4xlsX-MmQ(ETN7Cw zi;+BN%e(9KlRq^3YumeXwY8`u;K{^xuIf!wIUi(~er>{osz?CfM-f20krOfAmOhYj zFX;lFKsX1SnvA%GNHxpqoUnHqo}okxI4GG?f| zrY!fiFyn$g^phiQ2W(JY&^o4aRRf&+Qu&jF&&?HWYz^A6`@Rh^N`V8PYAGk!&0J}a zp-U<`w zU09(pbgiJ~XZuy2rKmRRq*^I!f!4gdsj1sLaX+mF=&fBFmX~;!J$OQPWA9h5Fy-J= zKUuZ0h(VM7)ya|Etrmw=!fowYv1e_v516h>)s-IRp}e`gw`?r4<`a^X<|-QK;AZ60<>Rt*cJdlc+G^BYIN` zA0wq(56Pc2pX$Vx7`QwAkxs?C?#{%iMIuN5m>ta`QIZIr_1(=)w2nS6ieYxG?q1#8 z!L1E~E!ZJ0q9!2Ca(szij*L{8UDD8}H!|+w+POCcDG3TO!LCHKth;rzadinFi`CYT z(zN%rOM*!$w`n__SmX|Xdzx7_6x%ZUH6JF0%{JUK{3OED$(fp|xJhWj#tkeU$C{;} zMPQGQy)jXo@m5DO^f6HqIHm=O5;>;Xt)qgEVN19G4(!qF4qjNov`?!w5mHVh5I;I( zfyoWQ5zRED1sH=zmmt#YQ@C}SY#!d&rY6%{9+Z*OH1IpcE2$Jij@TH3@liN{qqYV* z`_jhK8c7T&PtUb5pc(H@t#(dd!@RVU?fol@U6qn00+3J6ec9q2~7VwhI0W{QfiKSOsD zlT9kjPrW^Q2lQ!Km=u9o#Wx;E&0QheiN!b(Ged^7YPOpdDa6eT7bRx(&llUY(sb)rlBQ6AfUc3pN?S+n7Wj7B;sUum zSB~+#eWTZoRgv}_?e4Q^lA(AO2$8d;SHG=ad7!%K-Y|XWMk-wn^hVCTa>dYmjl+UF z){e)-4K0n~z=C-}G`TUL!fh>*T-o|F?lD_czLLr_G<<4GJ=sLv%k7}tqz z3#D$Tl1yT*?KN~f$@To1&1vJVhK$Fxs}(r~QU(E{oYYc;U=7t5k93MDx&}_FazCiW zF?xfJN(!>7q+!L_oSjhA%FHRRFpe{diOnwA)q+#EcR}8bwb8pFIztvKaqmD}LuF}@ zlismfi|>6ys<~J$B}6FqKHk;Q@!vOOGe?hLNO`rSsb(XOdeL}GRBh{#roH8PN|g=$ z`(wZMu8gp_x9E;3)RHxAT4{Hw`sa|+)YqvhLE4;gyS-+$#uST{E!PsYxJt&=N?@Kr zt~`8{j+xU|fbE}kDe@AfCvgNv1l66+i+^&}v+dfc!sBqIr0xLDC$Wx|M=lP@sB?~p zSK*CCw#%;}rja2asl>vRdJlT3dd0?8rk-q}Ny3su5NfcSHL3qrD(Ne7CA;bpPU!KCoQ8Px67Z*^*yLKI}jsyadGRe!WQ za>6a0w@?iR$`UtmnTqC$tcOc?1J5q*opQ{TuXm`7=P_CJx==t>dYIL!IC8y_mn6yJ zm1Rjxpqb=mt5o($Uu;CUwKhS)9car(R1>~oK=J-5XBFTv(?;jP*NpFS#`)z2ZUS6u z{UO=N`;X~b`-fQrZfCmDaV7 z-L%^x+T9>F*dPJd-ldUThlI3eSZpoghtxC4Ka=)F(h}c(flWF<+wL$aV~C^Y&fjs;TlG+QnqQ?v9@UlwPlo{2~O0IGAO}f zhLRDsedf8_y%zofT|8|a8&oheGzP0T*2U{&k2M^D{M7MPOkUj`qH3T1^aV`Y>uB5*g)KSH^rk1n_G}%^tpU(5o|T=)>J*gK zvSDVVASG0=l4?C*G>8ZxwF#NdjiC z6hXV$=z3PV62eh&a-F4;K?mE4qWbnOU3e-EB2O{?YCJaCMK7uaW5P}9NiVf_hWBO^ zCMah-4|I#vvem*CkLGbg0QRD?Nj@zFK}lG1{snc*Z~ANGxcW@N8&e&qT|Z6KwATZd z7S13ixSV&OvnO$o&lavbG|gBssUZ)zqmv38W8Bjp(zL6Gg^PD@Hsbn>kBUdj!Iv7g zRcbyMy0N)x-r2WbQslrNhC0s?TJ0INS=q8R6{QZTGEzoIVL{LGM!bQ=Mc;!z;>}2? zy4!9nh5A4|5$#@8s9QQ7Bo0ZDT^}Fowk}$FB(l;Ty8smJAL=wy`Z=*k-givqtnyo; zN;H5kUj-qQfRGad+Nmy7K@%i#T{vPxEdi6XMBli&VzuB4V0kb*5ib2C9)Cs+1GRGv174s$jolp->6r)PA$l zhwvA=Ly(-)!Y6^n1tnur(>Mjlz{Nczf+TU)f_;W6mdV;uNseIEg{{zGdw`q~2BVTU zq%>_d(PgKt@2E@5ge50*5rgepZ5L86yh9d^?}>3+VJRK)#d-Oos`Pc@wC(vW8b+t) zxa(KVG}?rysaZ(sK&Wk+I%=G`W&Z$5{{RDPP%BaDq6Km;`Z^?*otAbNHxJvY=H)6S zI85S^7q@qgDYjbJg#INQ3ZE5h%Ez5NqE)e^?#WkE_p0qi-R+wgx(OqYo=>$H$fYW# z%KJ|a-niIu-#HTe!KgY=|X|pM*2Yg9$<#>BZao3O~XlNa& z2dV5PwHiKxJPl=Ydv$)=^*f}5p$z{3_>wYY_nOn2#gFlM3WCj(^7#J%{WDjWD!I5) zoI;9;l1^($;oT2Iy|#JnP^J5FBgiCzNb8OTESDU5E8LZgyH=Z|SgOZEv+~-waZ9)* z-QHx3CV2pMte&N#Y3*&i)7I$BiWPn!eC93%y+;?bU`YKmH=HS0Cvez3LfS#){!ia-zYX3)wk( zfX<|snM#VB5tto2X0+;7pJip`vX7AJ27`snKd+Kh|sV446tAJfjFIn7N^_67HLuuK`y7x5CyY~!1D+@~LwFja z&_~TjxDMZX3)%~J(1B@_1bykUo+-Qub|&QeI+;(pkLa8a>R7*j?iK<4u zlajHjXl=;NFt^`<(w#a)+N3m~WJf*ey9ZOoAatW|v1-Pt1ZJWrQO-p)UG@q?3T0m( ztu<&P+MPcFE{MubKuM;lCxR){wM8O}Vwgrub4K)PY-t0h z=}1yXG|^Oz(i^bM#6=-VJ!zZv3SEjDGwo7@bu^re;+XU#48&BaYjBvyy(;>v8AjfR zp{(|zP=x`EVm@k9m8%*$B}Aos=e1Zfbn9S3l~9~*?C6B6VU6l{0VM&#LFSa*tz;9- zb5L+gqVUNlu!b)bl4U4V^SD!st`!v{0Q8!hicF_A*yOFrkWX)cQ=z96cu<^7Qe0Ch z6yNv|)wMso003f-{JqiqQbZsJ_z)NXE4azKxIL_7WvAx{u} zX^(tV<*!Izo|1TqW(0F@Eu{KfB#xA-y}3~lg-$)IQtZu<-|9CmZm@CG%HbtRG6C)l zWHs9Y!jkKEUr^eK+@P3)+A9A58St0zhJD7$B~0y7un*dduzlNCgUBT+AKtsBla9_j zZ+2eT>I!MM5Qi1D&?HVVM!hN165F=&R+HsCr0_cfTr!Ut9jZ;L1k%*ix|Z$Qf{>5@ z02mUZ(nS*HqjJKOy*bODr#Mh>;4U~dn)`ja1Yg%gKT!JE3RB>Ms8dB*k<^N`0gY13 zKIPCCEhk}0`B)r5`0rY4jWiXtOb6)6%yr_qR!dJkX_VJQ_}-39qPPOI`ev7-SXs4q ztt=adfm=)y!0992p_RAMTv19~nRuH$BSN)J?WOAf0O};dj}w^tcdVD~8E8$dvy42I zws2BUs2*qIrB4EvHORJ3H0bkXys7pzTX0I$PZ{lAyb@g=bftO`oyqi=iJWwzVJb)^ z5dwsk>t||c=>_Z3dn(8 zZ^@S#S>1v*sD|4~xJt=#;I@>X!VJw6?Tecr+^tDDh4l8WZdUYLjV+m*_6v6f01-_# zfFLSK&0Tawp$jfBu-C_BJwd0NM$rYVtG{zm za%iBb@(|jbd?`R2q#9+#t)`_Yvsgp89-)IpCbk__GdXjlF5gl%i(i-l1xio)dYZF3 z4TZ`70H=J2!AZ!fxwexepp}-kHpsC+4v&jIB04VRxM`?ZZ zw;?Jf4h++znir>JS6l3_O~t0@T$l;(R~lNCd1n{CmY4WaMrkCIh-0T@jcIGQT7`?O zr*V)tKYFXYxwy8v34H$m5_26t+JqaEriPNOqQx4cURp@WJk>_6e4B)uecy{86w!q+ zIcUrzxW(6~ClU_q&`!JjVp3-~u86LQKSq;AyJ6c8BI^n}gKD0>^;*@+((02qpPEXh z!kwfOZLKQJL@8^5BqVh)*0g$0iFEtr23|svP>@uk`Ex>WwPB3-vf|$E&1(y{csP=O zmaK2CnX^JZp(#rTE)(0eb4nLVMU=Z}0UC{k&7ru{nkZ=!l#)3;O=O(ZF0Jnsa?188 zD#3}WV~sYLvUaS!veYj|h~@LnD6QvkRnSj0QFW}`J$L7=!wG?!Xr*jdq>6o4R~K%i z0&#=$LVY7ooyzB|)hdvWW&WLQrKZ(RJh*Wp0Q*)`#FvF+w$kA#Bx1BLp3N%aW>%u4 zJtNHyq1Y~!BRz#VZx7~p4`i+N92u9&MxjJp)LR5|Ar3=lG`Q`J2IroO@` zW1#-j!!Uit6?ShUBOivjT<|30BDH;mX`!p{25G0B1#3}u8otMF9Q8e`k_2%Xqy0d> zEogFNM$!3-l`xSL&jOLB%R!H$puj(RctnT*efm(A$~$^QiDfc9QQovV4ULVcKGYDqe@9LM!i18$1WMQDsfCBa!P*>+|X#bO}(p)AUKD8j8DyZ(QT?{YhH=; zrC;jKn{jlOQjscKih=ASsXeMoKk;eAf_{9nYa7 z9~EB4yKM3n`_}0~l1K>bC@69sQ>4G82Z(%D!_BVEjqQQ}2dVZog}HT3xIi*b-n)K2 zJ}TMEntYKhtFGy;w{#WdsXQ8}y1RMTRh2D7^VLSW@h)Fy;NzXfHRSc51?X2E8PXD` zmK5#EgYKQNn8JJFq}GcrJu7Lo75bEV{8yclUy~;zzYJbHNqZ>uD?4zV&9spsWK~0# z?l#wyhc>1%0p^|?R0$R1QXyVQP|4!0G@)atC3cs7cJ~A{T1Yakfc6zx$Lpe8_dwdm zhVOKAw3~yy_lW@w`oE_ps#~|XdH(>VX5GggCOovJRX-H?v!@%f8NNKDBU7RHCg8j- zwZrt*?Lxeykfp5lAaE+u{`XhZZq;FA9S8~A<>5Yo->|N1xfV(P01m8Jo+w|C-4985 zq8D>+;#8lqDc!@Na$nUqTkxfMO0mtUQ$)@Oj1-m>i1_W zjqL9s*RlasT3KkIx941`Kn#?M4t#nk81BMuSEcz%WoT@bCu)cv^EH-z4evV$iN!W6 zMDo*QB?%mS$)*%Q=zZ$xav{+JqdULk)CB;ZOd4pa>{if$Bna#AN|BHNrmESa{3O~> zT3w3o&1b&G;@-r9oDobUnK|c*4H#;sFn>CT&nLW5RYFOj$tH95t^+h}P!mi=WR7XM z7~M>hdSUOO4>83er-~`~MBR)e4!qP$DNZ7p2{yW9WoMJu6or54H0!ZBYh-0%C+3)4 zJqgV+SJZUWpRS{(Wk6vLXj3ij#Jzc*QQx@+80pPw7*oliw7sUdBkB zw!jgXsgl{oC%LJ&Y_w@?nFt~P6=A1Xo6CfyTec_hl#Kfiy+i95yU4B3YELMGLzP%g~SXRU~Ev_pp!eM zlq9E+PfEzc+fvb;sgaqAm4{Tdr7J)woQR;%Q9-J>9C)duDKm|v%zRZdrAh@a1(cJ( zJ$u(yF0^vxwgfFtDj$_h-I+Z;YTSsWT?X3Qq%U*1jDZ!b(pK}Dd#WTj8Zd+`NI;1& z4|?Uzv#%DF8K>DuaY}6@CVex|Q`>&!w3g7bwOoQE5;!N`t*IqsEvKSq0k{a<%&(O% zs)_GJ+O*?tB}r_M2#^M1qbC)sER$}_cP&yUYGP}?okOz@Gw6`}TaX+9|z4(ggq8c1=qDc9aXPvZPIsoo_?MaC+B9b`ij`CiBcR2En zv$W^zD7MzYNwTWx>-%R*EQ_76gr{sM z_p8=bYh~z3NIVZ}=gD_SydJHb?xdE1AyXAec=N6~=M~JEqX^c`CuAn>2vUfeor{pA z`d7H~6zynI#iw^fj=a||=-fNsZ*iCgl83rSD^)^NH=u2p5mKFDi&RD~X5sR*kQPLS3$FpF>;SEynEq1wE1=IsG$!B7)C z3a1^4o{N7F+1lLPm+ieffWYI9m6dYY;Nb)ucNCcAL(hENhwN+nH*!>)_Yag z?)5huP1Vr>YLb9pdkUO>@^mxOH99C&-iX@P?!*Bfho1Be(-y&Lx3y%v>hmOlO21|@ zYlQ~ii<^BdHUT0w`sbnc_N?(;xQ2YWC-Er%0E#eoW_KDYwHBF4SCU{)ZfJDf2HPb{ zAwXuVmZ+O_!CuxN$X3uQuIBMC6Dpr`R)#lZ+=}O&NlZ@^1M3S^V8wM~Pm#@%Rtn(8 z>W9mcPipDCSt?Rv2_zD6O@x@wy=SFD{@NO%4k;84CStb{n;NN(N%<8LlN=AU(T{d6 z+tA76n&L-6_M=wp3Wp4jP^W-TTF*mYEeas!cogBdbmoIsOo6MSverrHfjBIRuOMZ*!X)&V(l&+%WmKBtwAtK zhe<-7fOp`*p3u>rzR`KqoTS$) zN)DOZ89a+#3fJ`#Q3YO+`qpPty(Uh^4RN7!BWElSdf~|ueI+F%jI7y|| z9+-~{EeY81^_+q@ALf?d!fHv~cI@`rG5Oas%reL9C9eyx(zl0{w4BEjL$;nmJhoA} zwGFBhCTo66b~B2KqaCX0mo~QwX|`M~9H8@$b5x346C*rvU2uGsjtQq32oxiqdSNk{ z_p7eNYg-{&rfHi&_@-OgExia30nQ1j5ReaQR`jT%Npwl&{2mrWT|~;C81^*f`kaw0ZoiyrY;WwJK?vh}41KJ!X)mFnKjdx)Mvu z8`A^sYBh{V12pwwOYNc+Ns-^)qgEz5@M-@5jFTfK0qSZp6hH=kYLTLRT!s)yIL#n$ zGrJveM%O^&dm9rZ0Ts$fAd!fsUd_iuTUEH3AL5iYNx=7`%XS3clY>TbO>&tqCbiQ8 zkCA+X128GyN=6{|t;&JJ!#nAWz@_?VI207a!@%DmQSNER+~YG@PMNrpCfkD_rB2MvG1Gox)GlYKc=UHYBD-Ri>b(8L)L0 zc0$w?Lz?H7M=p!U8jt!^-RTb6x>B+h0fJHt3U#fUAdfjEN1zn^?GsQ*+cX+;dRu7p z+qde;-Y5FivK_Kf!dohjBZ#Qf0V zV4ei~S9~L*g}u=tTqsadbI{FBtCcweXdcwAJe`M|OmJ+eGv20Yq$tEmskT}w=)ch{ z)aA=&CzU`mv55<8kacy8z@Ed>v^ z{KW^aY}DnFhmJl}*mL%JTdGc)ovgZ)g$FU}SNeVGmiEc}H_I;rBdRh0B5w+ z>$ywBwi1$&%+%VqY^Pc)?vfmNEw%)b1Ofdj#k+QFnDbVAz%Uy;lSTRkc>vUObltWu zSttjp3Xkbjg4}H-W;clJDPDly^bmEoQVw|?JJ5$yxPlA3^Gu*C znC7)LuWL(LAmi9ns@0jXlrjQ|88kRvg0gDa0M@smNnR(4th>Hj>4+Ym)}9ci2a`lC zI$9-1KPGBL+{%)mkd=FNr)uSFPFCf**k50LuFC` zIL1%qRw?i`*+WGxk1^;aDoF(br8)2|2=gvj@bg|Bvw7ECO4hL}Cm0+Es!_Q|&e|ni z0MD?cgt=QDYl`BFPZQl6eIbid@y=G5i6CHn3iFjE=ieFR%~J=KOD*XeT{BX8%SlbH z^zF=JG&*lo9`g#xRN^aAyFgDtYt=5DYhr;U$ew1YpKcaZ@{|-ZDh~xwqc678|9>NP4d7dPq-AmOqT3Wf-rv6paL*6+O_N}Ph)~50RI4L zb74{dIip@o*6b;k3xpU0=B=!lTX5nw1t*EFT#{)~OmXEaW887J)wx+v$(k<4`62^K zAfDA3Me!`Axlw;>sOlFCCc%alh7*-2f|RJAo@#rocIQmAQ*YX((Hl^e;+C&bB>w>DR3&?tyNvT*v|&i|Cq29JXnZ}Xiz|?~LRNw{?NF_C zx-IR(FIsU&&M~$){{S`Te3-Q^Ue2$JE=!9v4BXu|HX$lOAYno%v|6cc`PXU$Or@}J zPjg;;opgE;O@V5fO}+YCB`IOa$r%JyH;Kw^SZ#*)gn_mIr$AW0PhYh*Hva%t87sMe z42taT?$(ss+Pbpggajv=3iitC$z>Nzt+foogiUwDB41X{DZ#suUgFeXBZ@A~w+V^K z9V@0)80_bVdM9Si=JMm|!X;}kB;)<7YvLOldp!w@Hr`T=vJ#fSG70PXlU!M+`lNMW zhuTg01n{qhb<1mo>i3rFwqdqPk>;nBA8v={tzYp=c13Bq))Mop!9rUEAaoPl`%+Fz zEU9=J5O~$UC3DDU#cBy@%WF4D04+)UUtxl3JO2RL(@!a_KTCP_Tqu&a?o2ly2^jVi zs!t6hQC3TA6@Rju#}(z->e_w7gc4J@i1@0P{{UwmE3aQ7UcG22Zf7_H=|Tv^=Dcg-J_gIW^CcNxMVij~MZg z=IvawxN_}QNl9h05Tv9C2bikGuUc9Yb8~3vV4vW&uTJSalhUUKp2{^_MOD_BXQ;Dt zseMCaveK6l2**L*yo+AcoVa+%DFBfb-SGF4pM#q_N*vFpzj)gz8C1ZYa}+u84YDvm zNIXgAy!8w0zdaEz#5U#vUT<;fIZX(?T^5T`3f@gRhNxb5usiP&`HdFRkdj0Z6`8p~ zb;9fbGH@%S8sLs>uaXCCnSfLT`_emZQ_oIfuB1wx5cy~HrtCeV-kvfQEuH0_59dxx zdBCM@8Fy@c!@6m9NSa<(*!N=jVlpu_jv@pK$@((U0Yprg6p;hJdUWhW?Hq6*b6h&l zCWS7Un!2JVMtH?Wpf9UHv1&i z(87+w2oXq7AdWj?oj)MIBUFh5^`?fWyz`2Et%I(HmVq%`St4Vem6U+(94)XFB7SN? zZjb?=%CnUkG0^1OpnKGbwofD&q_*9fDRd{22dX|Ri(EjWpRmq8gz|@OX*{{<5&F?g z+)gdPjlUGo%n)PZwSmRiFldayH98t2p1lPt*y(JY3{Ud^0P3Ve21J8Xa<0n8B&lG4 zF`AGvL74l}xmZ=zF~z)KW+}*JT|hOtFCo2zH*8j*goz~JR+q#28D&EDd?b`-B+2|EBtk;jY9J3_e?%xMI+6f(Z~}5qmRQnGB-@l8*t*u z81G72g?dbqE331PlF@CUX)Dy9_3lF{{{XnKFei%AIpF;{8x6hk(y^5#V0x3(isi{U za(sF_F~K#k`-`g`DWwD_%(_YfPzrf76YpH^yJlWRtF}ceAOq7Tq_N)FPJ5-$_gYzZ z$wjM)Su-e@kABr7nkJ(2VGoAP`hh1S?eR*cqGujkV;s=hU?oM+RmlYAYL4pe<<-Gd zY&$^}SUy{1<@M44Uz)Wm%*{l_m(|>%l&3Bz54~HL9f`);Mw-(>(sag`e|n{uA}vqD_V3>PZN{pA!pKkyQQl8f zgH^YBa+qK59X{A8i3QeM5>Q75IUtU-V>kZ*U^V{$)R^kJZm=A(d&;*2O}mLF@pf0W z5PUYncF1U4B;9S^q7DG~?e9%)IzZI6%9Yx<%G8xaq``wVaieL8Q3YX2bo#cAf{f)+ zv0)owTD_9qLA16(gk?$q$@Ua0Z9AoC%C}QW7k5&m1C67BH8{y?Bk`jX;!P>NJ&?EV zgRZ)gPSoKCwAM)}Dpu6woJD#VU)I^llDSc&OAP29A5sec0R5wUP`8u24YW8!bv;dF zZ(LHAqG!3PVD7}tRZGEKr0!P}J?Vj|80pVpU8&MJ6X=j3Tuw)7k&p_ul+r)cFWz#ird$i1aPAg_1}0ty8R7`9k{jgsdz;6OWvA zt|_-?TB_LF`)f@zOK{j+l`iB3MDm`1es!F;)NYtqN>rq!CO`)hS{ByDmwF>x?zrcg zrIi&K&SJFsYYb|3h;2&T^Jg23iZisW1{-@8>q1+rD7RWw8Bit&_Z44zroC)8Z1g7t zgUSB@6p^1+X+uPMdtpxQSP%sBM?RG}P|dq!$(#y#I(rr!47qOUwWXybqq3UQ(Zwf`fdm>v3(vx9m>&k8zXNMY`l}kkQS?|Cj2<_H+#_Fl7(_T zh@iCMtCg0}cA3FE%~dWaS0vqqc#$u>8fbz;Y1$_TGy|R*Rl8y3K0L?-fS$iJv7ICr z8)aq9)5uqnr4kd0TXm^x1S$`IYPD*~?7OzOX{13RMys#f-*8;rgTSOqW8R4^((T2n zy)cwu8p-OGr_4K(21)0WRL1I5B-V;2(g8D`#)5PS>m4i6#Pw$k>WCMQQC5GYMo2x3 zesyHqB`*Sn7}_!^HyOwRvOrd}HAlP;d8o`N$N-9dgVwx_S%{oPMztPD!K{+8eT^z0 z$29aROwZc3=+Sl9su-SW5`qXKCX=L6n%W+g$bwT&DDTB;<+DFzh-(-IW~4(&D(HQx zcgcT)sz|%iY*PEpHMRneQ_%yCJ*Oq+7Uw==q>q@X z?t3X}JN63aiggC=9I~^vJKSFAS=>nYt!A9HF3}I(+LqNBlYv59QcNk!l_4!}G}qi+ zt<%L*B_J4@^B)-Ncb8g&sB+B!+MrqV%>ApOb)%j{Dgfh}U>W0@bPws>c>ISnpdO9t*CEf$m zTkv!yB9uoUR<`zMq$C9yIIdI>CJ#zGHkgB)eswBRq>er4H0s5TwkT>yfzqZ!B>kyd z9YgJ*-b#obobyU8&SV2i$s{_C#ri|cVz}Dl12wsNGlsbuoikp)~6fdG=*^|hr(Psc))ZF|J!)cR?A&*BrDe18!Nl!nmPn8a_Sk+l7 ze-F+nQ);OoAp2vQJnb1{Y_-tr!*>aJVJB!IB0AQK*6Tzq!aEL?%{Ok&tZR%Y2J!R; zT5&{gZAJxBUSGR&DKodCY4OL%xh3EbAnxLvSx=QIR3CFyy4fYwmeyCd+Fq0O?1SXA zq7)SyN{ud$a?y56aBHZySYTv31oH`^zQxYN8Uixn>Z?({l~a8?^_B*K8?{C{eBPL~u2 zLH5hrYqlNJnR`$SrMCg{{J;v7E1lM@?Mhr!7M7AXr7#3=Dk>bdJCj-i(;UlTHpY4FB+Fi*6R&8rrG>zLP;qniuBafA)}A+xk&5O+&a?k z+<2>NfuC9R5(aVYP-$KrzSpjNi)P3`lDCu&#CDP>{#6L_6Y)9Ai8iy~eNRbXT&dGlTU#HI%@cJ!^jnc*jkWF^MJM^$t3E6&Z6(cg*|S`7}(3xug;feYHG3#C_wwHLxI zg~%-dg)8|-y>tFbEyBh*jOr6=RHRo!S;4WUl5<98c!pxnqE>EkCF z5|ii&hDlO_kWxX2h!a{ZDYk6d^8@~(c#gEvcC;*Y*=B8T+?QCmZ9B4D-GDvmR<tw%oeVy|cyPhqGEYjJEH-8$A^#JA~b{{S;=xJF2( z$5NG=Z(1_q;Z7`_--zUNtsax82CYIv#5ffZI4Q1)tq_CVvc&j+SUBawrc_f6pz%HG z3-_&cTU1}$HxJA$Bd@$vc-PpcEBcg=wQ`2bi$MvPpLz*PQ7~2d)uU8%PUG0~>TLUW zp_HWrl*hhllGeexRzRgeG0jA^7$8iXlU9ug$Ou23Dq4{w5GmWWXjHdEy8=fzH2Z5; zZWL138;9#sa#dv)X$85XU7|fafe?AEkB9s@6Dm2(uL;SV;a1g&1emb7k9$xW$g7V2Tkz~WG`Dk(irwP(`!ZXm^07W)!^ z!glXwME-RP_i}Kocbas!p*d()wMDdrHN1qJ#MMpx%AHvXR_UrjKWi1sR8%~GQ# z#V44>Zk>wNRSa1m5IWNd9B2H|{`e1chK_P#oCmBPCXBi@lAu7&J5-5B9CtN0U6oO7 zl1ERrX~{q)XFO83NHKNT@BttUMM~J(tY(p}%$JhcgrT&h#;%kU4g_&qJ8dT2b^`lQ zyYm5!t%Z7t{-U^ZH&%7xNUPTE*wjK$;7e^I0HGj6bgBb+^b1RDJLV}S1m_(wM-SO? z7dIc>oa^gTD!jTT`;t|0)Ypbte}%67Udd2PU?3TgndGZDZxGc>QpV} zJhIEcZakBT?^0gCvWq?d23&(q!c?*r>|YyvugRT^HMa+}bS(OEe%I#R-1Q%q_7 zl4#LgXqt|ygxe*hAsd9Nu$sJ1och^(GQyf=lws#EfB^k#o>@|j6^t8b^LgW3aZ*%btL-$c48G;l1;n*(b`X_%cYk`~UeVU6 zB^F-kF4&z$aJDxq??dbQ#k-B0L@Xp6PZX{Vv^->zvmJYQt2pvp^>-DQ))c3d zUvW}N&%JbG?J_dzh%NOib8O=aYzGGip%swTZM?@6;2mqb3|uDJ%`dzuo~lzB&lH-VlrXwB2I%FTL@6nq?-mETW~d8?6nHC9A+l z=&=)3tysS6>bC#_lbJjUymEbZMp*YqoM@NoQnt1gw}?EB^p0sa%^^-HpGri;%@4|+ zgZP?Oz)Vg%NTi$rJk@kYtFa_!ziMjW^@=L2%_1UT@Nv>AFa+oGr%uK4FR?WxxP^$2 z0l}q}$r?M5P2(V}1*%6yMF{n>o0G^q5lI=+Lry!gJ%r~Y+M{)|&U@mltENrGy%25W zfG3ktmegRyQ94Ap+R(y-2OMM3*Qx_Yd1L|3dQ$mBW(;*S8{`I#EpE

-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

-vBjmb5`M;o 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 - -
-
- -
-
- - -
-
- - - -
-
- -
-
- - - {{#mailalias}} - - {{/mailalias}} - - {{t_add_mail}} -
- -
- - {{#maildrop}} - - {{/maildrop}} - - {{t_add_forward}} -
-
- -
- {{t_cancel}} - -
- - - -
-
diff --git a/portal/footer.ms b/portal/footer.ms deleted file mode 100644 index 992a577..0000000 --- a/portal/footer.ms +++ /dev/null @@ -1,18 +0,0 @@ - {{#connected}} - - {{/connected}} - - - - - - {{#theme}} - - {{/theme}} - - diff --git a/portal/header.ms b/portal/header.ms deleted file mode 100644 index 6bc00b9..0000000 --- a/portal/header.ms +++ /dev/null @@ -1,53 +0,0 @@ - - - - - {{t_portal}} - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- {{#flash_win}} -
{{.}}
- {{/flash_win}} - - {{#flash_fail}} -
{{.}}
- {{/flash_fail}} - - {{#flash_info}} -
{{.}}
- {{/flash_info}} diff --git a/portal/index.html b/portal/index.html new file mode 100644 index 0000000..a759fdd --- /dev/null +++ b/portal/index.html @@ -0,0 +1,59 @@ + + +
+ +

+ + +

+ +

+ + +

+ + +
+ +
+
+ + + + + + diff --git a/portal/locales/ar.json b/portal/locales/ar.json deleted file mode 100644 index f94093f..0000000 --- a/portal/locales/ar.json +++ /dev/null @@ -1,49 +0,0 @@ -{ - "portal": "بوابة يونوهوست", - "information": "معلوماتك", - "username": "إسم المستخدم", - "password": "كلمة السر", - "fullname": "الإسم الكامل", - "mail_addresses": "عناوين البريد الإلكترونية", - "mail_forward": "عناوين توجيه البريد الإلكتروني", - "new_mail": "newmail@mydomain.org", - "new_forward": "newforward@myforeigndomain.org", - "add_mail": "إضافة عنوان بريد إلكتروني مستعار", - "add_forward": "إضافة عنوان آخر لتوجيه البريد", - "ok": "موافق", - "cancel": "إلغاء", - "change_password": "تعديل كلمة السر", - "edit": "تعديل", - "current_password": "كلمة السر الحالية", - "new_password": "كلمة السر الجديدة", - "confirm": "تأكيد", - "login": "لِج", - "logout": "الخروج", - "password_changed": "تم تغيير الكلمة السرية", - "password_changed_error": "لا يمكن تعديل الكلمة السرية", - "password_not_match": "كلمات السر غير متطابقة", - "wrong_current_password": "كلمة السر الحالية خاطئة", - "invalid_mail": "عنوان البريد الإلكتروني غير صالح", - "invalid_domain": "النطاق غير صالح في", - "invalid_mailforward": "عنوان بريد التحويل غير صالح", - "mail_already_used": "عنوان البريد الإلكتروني مُستعمل مِن قَبل", - "information_updated": "تم تحديث المعلومات", - "user_saving_fail": "لا يمكن حفظ معلومات المستخدم", - "missing_required_fields": "يُرجى ملئ الخانات المطلوبة", - "wrong_username_password": "إسم المستخدم أو كلمة السر خاطئة", - "logged_out": "تم تسجيل خروجك", - "please_login": "يرجى تسجيل الدخول قصد النفاذ إلى هذا المحتوى", - "please_login_from_portal": "يرجى تسجيل الدخول عبر البوابة", - "redirection_error_invalid_url": "خطأ في التحويل : عنوان الرابط غير صالح", - "redirection_error_unmanaged_domain": "خطأ في التحويل : لا يمكن إدارة النطاق", - "footerlink_edit": "تعديل ملفي الشخصي", - "footerlink_documentation": "الدليل", - "footerlink_support": "المساعدة", - "footerlink_administration": "الإدارة", - "password_too_simple_1": "يجب أن يكون طول الكلمة السرية على الأقل 8 حروف", - "good_practices_about_user_password": "اختر كلمة مرور مكونة مِن 8 أحرف على الأقل - مع العِلم أنّه مِن الممارسات الجيدة استخدام الأطول (أي عبارة مرور) و/أو إستخدام أنواع مختلفة من الأحرف (الحروف الكبيرة والصغيرة والأرقان والحروف الخاصة).", - "password_too_simple_4": "يجب أن يكون طول الكلمة السرية 12 حرفًا على الأقل وأن تحتوي على أرقام وحروف علوية ودنيا وحروف رمزية", - "password_too_simple_3": "يجب أن يكون طول كلمة المرور 8 حروف على الأقل وأن تحتوي على أرقام وحروف علوية ودنيا وحروف رمزية", - "password_too_simple_2": "يجب أن يكون طول كلمة المرور 8 حروف على الأقل وأن تحتوي على أرقام وحروف علوية ودنيا", - "password_listed": "إنّ الكلمة السرية هذه من بين أكثر الكلمات السرية إستخداما في العالم. الرجاء إختيار شيء فريد مِن نوعه." -} diff --git a/portal/locales/bn_BD.json b/portal/locales/bn_BD.json deleted file mode 100644 index d129702..0000000 --- a/portal/locales/bn_BD.json +++ /dev/null @@ -1,49 +0,0 @@ -{ - "footerlink_administration": "প্রশাসন", - "footerlink_support": "সমর্থন", - "footerlink_documentation": "নথিপত্র", - "footerlink_edit": "আমার প্রোফাইল সম্পাদনা করুন", - "redirection_error_unmanaged_domain": "পুনঃনির্দেশ ত্রুটি: নিয়ন্ত্রণহীন ডোমেন", - "redirection_error_invalid_url": "পুনঃনির্দেশ ত্রুটি: অবৈধ ইউআরএল", - "please_login_from_portal": "পোর্টাল থেকে লগ ইন করুন", - "please_login": "এই সামগ্রীতে অ্যাক্সেস করতে লগ ইন করুন", - "logged_out": "প্রস্থান", - "wrong_username_password": "ভুল ব্যবহারকারী নাম বা পাসওয়ার্ড", - "missing_required_fields": "প্রয়োজনীয় ক্ষেত্রগুলি পূরণ করুন", - "user_saving_fail": "নতুন ব্যবহারকারীর তথ্য সংরক্ষণ করা যায়নি", - "information_updated": "তথ্য আপডেট হয়েছে", - "mail_already_used": "ই-মেইল ঠিকানা ইতিমধ্যে ব্যবহৃত", - "invalid_mailforward": "অবৈধ ইমেল ফরোয়ার্ডিং ঠিকানা", - "invalid_domain": "এতে অবৈধ ডোমেন", - "invalid_mail": "অকার্যকর ইমেইল ঠিকানা", - "wrong_current_password": "বর্তমান পাসওয়ার্ডটি ভুল", - "good_practices_about_user_password": "কমপক্ষে 8 টি অক্ষরের ব্যবহারকারীর পাসওয়ার্ডটি চয়ন করুন - যদিও এটি দীর্ঘতর (যেমন একটি পাসফ্রেজ) এবং / অথবা বিভিন্ন ধরণের অক্ষর (বড় হাতের অক্ষর, ছোট হাতের অক্ষর এবং বিশেষ অক্ষর) ব্যবহার করা ভাল অনুশীলন।", - "password_too_simple_4": "পাসওয়ার্ডটিতে কমপক্ষে 12 টি অক্ষর দীর্ঘ হওয়া দরকার এবং এতে অঙ্ক, উপরের, নিম্ন এবং বিশেষ অক্ষরগুলি থাকে", - "password_too_simple_3": "পাসওয়ার্ডটিতে কমপক্ষে 8 টি অক্ষর দীর্ঘ হওয়া দরকার এবং এতে অঙ্ক, উপরের, নিম্ন এবং বিশেষ অক্ষরগুলি থাকে", - "password_too_simple_2": "পাসওয়ার্ডটিতে কমপক্ষে 8 টি অক্ষর দীর্ঘ হওয়া দরকার এবং এতে অঙ্ক, উপরের এবং নীচের অক্ষরগুলি থাকে", - "password_too_simple_1": "পাসওয়ার্ডটি কমপক্ষে 8 টি অক্ষরের দীর্ঘ হওয়া দরকার", - "password_listed": "এই পাসওয়ার্ডটি বিশ্বের সর্বাধিক ব্যবহৃত পাসওয়ার্ডগুলির মধ্যে রয়েছে। দয়া করে কিছুটা অনন্য কিছু চয়ন করুন।", - "password_not_match": "পাসওয়ার্ড মেলে না", - "password_changed_error": "পাসওয়ার্ড পরিবর্তন করা যায়নি", - "password_changed": "পাসওয়ার্ড পরিবর্তন", - "logout": "প্রস্থান", - "login": "প্রবেশ করুন", - "confirm": "নিশ্চিত করুন", - "new_password": "নতুন পাসওয়ার্ড", - "current_password": "বর্তমান পাসওয়ার্ড", - "edit": "সম্পাদন করা", - "change_password": "পাসওয়ার্ড পরিবর্তন করুন", - "cancel": "বাতিল", - "ok": "ঠিক আছে", - "add_forward": "একটি ইমেল ফরোয়ার্ডিং ঠিকানা যুক্ত করুন", - "add_mail": "একটি ইমেল ওরফে যুক্ত করুন", - "new_forward": "newforward@myforeigndomain.org", - "new_mail": "newmail@mydomain.org", - "mail_forward": "ই-মেইল ফরওয়ার্ডিং ঠিকানা", - "mail_addresses": "ইমেইল ঠিকানা", - "fullname": "পুরো নাম", - "password": "পাসওয়ার্ড", - "username": "ব্যবহারকারীর নাম", - "information": "আপনার তথ্য", - "portal": "ইউনোহোস্ট পোর্টাল" -} diff --git a/portal/locales/br.json b/portal/locales/br.json deleted file mode 100644 index 0967ef4..0000000 --- a/portal/locales/br.json +++ /dev/null @@ -1 +0,0 @@ -{} diff --git a/portal/locales/ca.json b/portal/locales/ca.json deleted file mode 100644 index cc06bc8..0000000 --- a/portal/locales/ca.json +++ /dev/null @@ -1,49 +0,0 @@ -{ - "portal": "Portal YunoHost", - "information": "La teva informació", - "username": "Nom d'usuari", - "password": "Contrasenya", - "fullname": "Nom complet", - "mail_addresses": "Adreces de correu electrònic", - "new_mail": "nou_correu@domini.org", - "add_mail": "Afegir un àlies de correu electrònic", - "ok": "OK", - "cancel": "Cancel·lar", - "change_password": "Canvia la contrasenya", - "edit": "Editar", - "current_password": "Contrasenya actual", - "new_password": "Nova contrasenya", - "confirm": "Confirmar", - "login": "Iniciar sessió", - "logout": "Tancar sessió", - "password_changed": "Contrasenya canviada", - "password_changed_error": "No s'ha pogut canviar la contrasenya", - "password_not_match": "Les contrasenyes no coincideixen", - "wrong_current_password": "La contrasenya actual és incorrecta", - "invalid_mail": "El correu electrònic no és vàlid", - "invalid_domain": "Domini invàlid a", - "mail_already_used": "El correu electrònic ja utilitzat", - "information_updated": "Informació actualitzada", - "user_saving_fail": "No s'han pogut enregistrar les noves dades de l'usuari", - "missing_required_fields": "Ompliu els camps obligatoris", - "wrong_username_password": "Contrasenya o nom d'usuari incorrectes", - "logged_out": "Sessió tancada", - "please_login": "Inicieu sessió per accedir a aquest contingut", - "please_login_from_portal": "Si us plau, inicieu sessió des del portal", - "redirection_error_invalid_url": "Error de redirecció: URL no vàlida", - "redirection_error_unmanaged_domain": "Error de redirecció: domini no gestionat", - "footerlink_edit": "Editar el meu perfil", - "footerlink_documentation": "Documentació", - "footerlink_support": "Ajuda", - "footerlink_administration": "Administració", - "mail_forward": "Correu electrònic de reenviament", - "new_forward": "noureenviament@dominiextern.org", - "add_forward": "Afegir un correu electrònic de reenviament", - "invalid_mailforward": "Correu electrònic de reenviament invàlid", - "password_listed": "Aquesta contrasenya és una de les més utilitzades en el món. Si us plau utilitzeu-ne una més única.", - "password_too_simple_1": "La contrasenya ha de tenir un mínim de 8 caràcters", - "password_too_simple_2": "La contrasenya ha de tenir un mínim de 8 caràcters i ha de contenir dígits, majúscules i minúscules", - "password_too_simple_3": "La contrasenya ha de tenir un mínim de 8 caràcters i tenir dígits, majúscules, minúscules i caràcters especials", - "password_too_simple_4": "La contrasenya ha de tenir un mínim de 12 caràcters i tenir dígits, majúscules, minúscules i caràcters especials", - "good_practices_about_user_password": "Trieu una contrasenya d'un mínim de 8 caràcters ; tot i que és de bona pràctica utilitzar una contrasenya més llarga (és a dir una frase de contrasenya) i/o utilitzar diferents tipus de caràcters (majúscules, minúscules, dígits i caràcters especials)." -} diff --git a/portal/locales/ckb.json b/portal/locales/ckb.json deleted file mode 100644 index 0967ef4..0000000 --- a/portal/locales/ckb.json +++ /dev/null @@ -1 +0,0 @@ -{} diff --git a/portal/locales/cs.json b/portal/locales/cs.json deleted file mode 100644 index e225087..0000000 --- a/portal/locales/cs.json +++ /dev/null @@ -1,49 +0,0 @@ -{ - "add_mail": "Přidat e-mail alias", - "new_forward": "newforward@myforeigndomain.org", - "new_mail": "newmail@mydomain.org", - "mail_forward": "E-mail pro přeposílání", - "mail_addresses": "E-mailová adresa", - "fullname": "Jméno a příjmení", - "password": "Heslo", - "username": "Uživatelské jméno", - "information": "Vaše údaje", - "portal": "YunoHost Portál", - "footerlink_administration": "Administrace", - "footerlink_support": "Podpora", - "footerlink_documentation": "Dokumentace", - "footerlink_edit": "Upravit svůj profil", - "redirection_error_unmanaged_domain": "Chyba přesměrování: Doména není spravována", - "redirection_error_invalid_url": "Chyba přesměrování: Neplatné URL", - "please_login_from_portal": "Prosím přihlašte se z portálu", - "please_login": "Pro přístup k obsahu se prosím přihlašte", - "logged_out": "Jste odhlášen/a", - "wrong_username_password": "Chybné uživatelské jméno nebo heslo", - "missing_required_fields": "Vyplňte povinné údaje", - "user_saving_fail": "Nelze uložit uživatelské údaje", - "information_updated": "Údaje upraveny", - "mail_already_used": "Tato e-mailová adresa se už používá", - "invalid_mailforward": "Neplatná e-mailová adresa pro přeposílání", - "invalid_domain": "Neplatná doména v", - "invalid_mail": "Neplatná e-mailová adresa", - "wrong_current_password": "Současné heslo je chybné", - "good_practices_about_user_password": "Vyberte si heslo aspoň 8 znaků dlouhé - dobrou praxí je ale používat delší frázi a používat různé druhy znaků (velká a malá písmena, číslice a speciální znaky).", - "password_too_simple_4": "Heslo musí být aspoň 12 znaků dlouhé a obsahovat čísla, velká a malá písmena a speciální znaky", - "password_too_simple_3": "Heslo musí být aspoň 8 znaků dlouhé a obsahovat čísla, velká a malá písmena a speciální znaky", - "password_too_simple_2": "Heslo musí být aspoň 8 znaků dlouhé a obsahovat číslici, velká a malá písmena", - "password_too_simple_1": "Heslo musí být aspoň 8 znaků dlouhé", - "password_listed": "Toto heslo je jedním z nejpoužívanějších na světě. Zvolte si prosím něco jediněčnějšího.", - "password_not_match": "Hesla se neshodují", - "password_changed_error": "Heslo nebylo změněno", - "password_changed": "Heslo změněno", - "logout": "Odhlásit se", - "login": "Přihlásit se", - "confirm": "Potvrdit", - "new_password": "Nové heslo", - "current_password": "Současné heslo", - "edit": "Upravit", - "change_password": "Změnit heslo", - "cancel": "Storno", - "ok": "OK", - "add_forward": "Přidat e-mailovou adresu pro přeposílání" -} diff --git a/portal/locales/de.json b/portal/locales/de.json deleted file mode 100644 index de35f32..0000000 --- a/portal/locales/de.json +++ /dev/null @@ -1,49 +0,0 @@ -{ - "add_forward": "E-Mail-Weiterleitung hinzufügen", - "add_mail": "E-Mail-Alias hinzufügen", - "cancel": "Abbrechen", - "change_password": "Passwort ändern", - "confirm": "Bestätigen", - "current_password": "Aktuelles Passwort", - "edit": "Bearbeiten", - "footerlink_administration": "Verwaltung", - "footerlink_documentation": "Dokumentation", - "footerlink_edit": "Mein Profil bearbeiten", - "footerlink_support": "Support", - "fullname": "Vollständiger Name", - "information": "Ihre Informationen", - "information_updated": "Informationen aktualisiert", - "invalid_domain": "Ungültige Domäne angegeben", - "invalid_mail": "Ungültige E-Mail-Adresse", - "invalid_mailforward": "Ungültige E-Mail-Weiterleitung", - "logged_out": "Abgemeldet", - "login": "Anmelden", - "logout": "Abmelden", - "mail_addresses": "E-Mail-Adressen", - "mail_already_used": "Diese E-Mail-Adresse wird bereits verwendet", - "mail_forward": "E-Mail-Weiterleitung", - "missing_required_fields": "Die notwendigen Felder müssen ausgefüllt werden", - "new_forward": "neueweiterleitung@anderedomain.org", - "new_mail": "neuemail@meinedomain.org", - "new_password": "Neues Passwort", - "ok": "OK", - "password": "Passwort", - "password_changed": "Passwort geändert", - "password_changed_error": "Passwort konnte nicht geändert werden", - "password_not_match": "Die Passwörter stimmen nicht überein", - "please_login": "Bitte melden Sie sich an, um auf diese Inhalte zuzugreifen", - "please_login_from_portal": "Bitte melden Sie sich über das Portal an", - "portal": "YunoHost-Portal", - "user_saving_fail": "Neue Benutzerinformationen konnten nicht gespeichert werden", - "username": "Benutzername", - "wrong_current_password": "Aktuelles Passwort ist falsch", - "wrong_username_password": "Falscher Benutzername oder Passwort", - "redirection_error_invalid_url": "Fehler bei Weiterleitung: Ungültige URL", - "redirection_error_unmanaged_domain": "Fehler bei Weiterleitung: Nicht-verwaltete Domain", - "good_practices_about_user_password": "Wähle ein Nutzerpasswort mit mindestens 8 Zeichen - es ist jedoch empfehlenswert, ein längeres Passwort (z.B. eine Passphrase) und/oder verschiedene Arten von Zeichen (Groß- und Kleinschreibung, Ziffern und Sonderzeichen) zu verwenden.", - "password_too_simple_3": "Das Passwort muss mindestens 8 Zeichen lang sein und Grossbuchstaben, Kleinbuchstaben, Zahlen und Sonderzeichen enthalten", - "password_too_simple_2": "Das Passwort muss mindestens 8 Zeichen lang sein und Grossbuchstaben, Kleinbuchstaben und Zahlen enthalten", - "password_listed": "Dieses Passwort zählt zu den meistgenutzten Passwörtern der Welt. Bitte wähle ein anderes, einzigartigeres Passwort.", - "password_too_simple_4": "Das Passwort muss mindestens 12 Zeichen lang sein und Grossbuchstaben, Kleinbuchstaben, Zahlen und Sonderzeichen enthalten", - "password_too_simple_1": "Das Passwort muss mindestens 8 Zeichen lang sein" -} diff --git a/portal/locales/el.json b/portal/locales/el.json deleted file mode 100644 index 9054d13..0000000 --- a/portal/locales/el.json +++ /dev/null @@ -1,49 +0,0 @@ -{ - "footerlink_administration": "Διαχείριση", - "footerlink_support": "Υποστήριξη", - "footerlink_documentation": "Τεκμηρίωση", - "footerlink_edit": "Επεξεργασία του προφίλ μου", - "redirection_error_unmanaged_domain": "Σφάλμα ανακατεύθυνσης: Μη διαχειριζόμενος τομέας", - "redirection_error_invalid_url": "Σφάλμα ανακατεύθυνσης: Μη έγκυρο URL", - "please_login_from_portal": "Συνδεθείτε από την πύλη", - "please_login": "Συνδεθείτε για πρόσβαση σε αυτό το περιεχόμενο", - "logged_out": "Αποσυνδέθηκα", - "wrong_username_password": "Λάθος όνομα χρήστη ή κωδικός", - "missing_required_fields": "Συμπληρώστε τα απαιτούμενα πεδία", - "user_saving_fail": "Δεν ήταν δυνατή η αποθήκευση νέων πληροφοριών χρήστη", - "information_updated": "Οι πληροφορίες ενημερώθηκαν", - "mail_already_used": "Γίνεται ήδη χρήση της διεύθυνσης ηλεκτρονικού ταχυδρομείου", - "invalid_mailforward": "Μη έγκυρη διεύθυνση προώθησης e-mail", - "invalid_domain": "Μη έγκυρος τομέας στο", - "invalid_mail": "Μη έγκυρη διεύθυνση e-mail", - "wrong_current_password": "Ο τρέχων κωδικός πρόσβασης είναι λάθος", - "good_practices_about_user_password": "Διαλέξτε έναν κωδικό πρόσβασης χρήστη με τουλάχιστον 8 χαρακτήρες - αν και είναι καλή πρακτική να χρησιμοποιείτε μακρύτερους (δηλαδή μια φράση πρόσβασης) ή / και να χρησιμοποιείτε διάφορους τύπους χαρακτήρων (κεφαλαία, πεζά, ψηφία και ειδικούς χαρακτήρες).", - "password_too_simple_4": "Ο κωδικός πρόσβασης πρέπει να έχει μήκος τουλάχιστον 12 χαρακτήρων και περιέχει ψηφία, άνω, κάτω και ειδικούς χαρακτήρες", - "password_too_simple_3": "Ο κωδικός πρόσβασης πρέπει να έχει τουλάχιστον 8 χαρακτήρες και περιέχει ψηφία, άνω, κάτω και ειδικούς χαρακτήρες", - "password_too_simple_2": "Ο κωδικός πρόσβασης πρέπει να έχει τουλάχιστον 8 χαρακτήρες και περιέχει ψηφία, άνω και κάτω χαρακτήρες", - "password_too_simple_1": "Ο κωδικός πρόσβασης πρέπει να έχει τουλάχιστον 8 χαρακτήρες", - "password_listed": "Αυτός ο κωδικός πρόσβασης είναι από τους πιο χρησιμοποιούμενους κωδικούς πρόσβασης στον κόσμο. Επιλέξτε κάτι λίγο πιο μοναδικό.", - "password_not_match": "Οι κωδικοί πρόσβασης δεν ταιριάζουν", - "password_changed_error": "Δεν ήταν δυνατή η αλλαγή κωδικού πρόσβασης", - "password_changed": "Ο κωδικός άλλαξε", - "logout": "Αποσύνδεση", - "login": "Σύνδεση", - "confirm": "Επιβεβαιώνω", - "new_password": "Νέος Κωδικός", - "current_password": "Τρέχων κωδικός πρόσβασης", - "edit": "Επεξεργασία", - "change_password": "Αλλαξε κωδικό", - "cancel": "Ματαίωση", - "ok": "Εντάξει", - "add_forward": "Προσθέστε μια διεύθυνση προώθησης email", - "add_mail": "Προσθέστε ένα ψευδώνυμο email", - "new_forward": "νέοπροςταεμπρός@οξένοςτομέαςμου.org", - "new_mail": "νέοταχυδρομείο@οτομέαςμου.org", - "mail_forward": "Διεύθυνση προώθησης ηλεκτρονικού ταχυδρομείου", - "mail_addresses": "Διευθύνσεις ηλεκτρονικού ταχυδρομείου", - "fullname": "Πλήρες όνομα", - "password": "Κωδικός πρόσβασης", - "username": "Όνομα χρήστη", - "information": "Τα στοιχεία σας", - "portal": "Πύλη YunoHost" -} diff --git a/portal/locales/en.json b/portal/locales/en.json deleted file mode 100644 index 2d07f11..0000000 --- a/portal/locales/en.json +++ /dev/null @@ -1,49 +0,0 @@ -{ - "portal": "YunoHost Portal", - "information": "Your info", - "username": "Username", - "password": "Password", - "fullname": "Full name", - "mail_addresses": "E-mail addresses", - "mail_forward": "E-mail forwarding address", - "new_mail": "newmail@mydomain.org", - "new_forward": "newforward@myforeigndomain.org", - "add_mail": "Add an e-mail alias", - "add_forward": "Add an e-mail forwarding address", - "ok": "OK", - "cancel": "Cancel", - "change_password": "Change password", - "edit": "Edit", - "current_password": "Current password", - "new_password": "New password", - "confirm": "Confirm", - "login": "Log in", - "logout": "Log out", - "password_changed": "Password changed", - "password_changed_error": "Could not change password", - "password_not_match": "The passwords don't match", - "password_listed": "This password is among the most used passwords in the world. Please choose something a bit more unique.", - "password_too_simple_1": "The password needs to be at least 8 characters long", - "password_too_simple_2": "The password needs to be at least 8 characters long and contains digit, upper and lower characters", - "password_too_simple_3": "The password needs to be at least 8 characters long and contains digit, upper, lower and special characters", - "password_too_simple_4": "The password needs to be at least 12 characters long and contains digit, upper, lower and special characters", - "good_practices_about_user_password": "Pick a user password of at least 8 characters - though it is good practice to use longer ones (i.e. a passphrase) and/or use various kind of characters (uppercase, lowercase, digits and special characters).", - "wrong_current_password": "The current password is wrong", - "invalid_mail": "Invalid e-mail address", - "invalid_domain": "Invalid domain in", - "invalid_mailforward": "Invalid e-mail forwarding address", - "mail_already_used": "E-mail address already in use", - "information_updated": "Info updated", - "user_saving_fail": "Could not save new user info", - "missing_required_fields": "Fill in the required fields", - "wrong_username_password": "Wrong username or password", - "logged_out": "Logged out", - "please_login": "Please log in to access to this content", - "please_login_from_portal": "Please log in from the portal", - "redirection_error_invalid_url": "Redirection error: Invalid URL", - "redirection_error_unmanaged_domain": "Redirection error: Unmanaged domain", - "footerlink_edit": "Edit my profile", - "footerlink_documentation": "Documentation", - "footerlink_support": "Support", - "footerlink_administration": "Administration" -} diff --git a/portal/locales/eo.json b/portal/locales/eo.json deleted file mode 100644 index 03b53f3..0000000 --- a/portal/locales/eo.json +++ /dev/null @@ -1,49 +0,0 @@ -{ - "password": "Pasvorto", - "username": "Uzantnomo", - "mail_addresses": "Retpoŝtadresoj", - "information": "Via informoj", - "new_password": "Nova pasvorto", - "current_password": "Nuna pasvorto", - "login": "Ensaluti", - "logout": "Elsaluti", - "change_password": "Ŝanĝi pasvorton", - "edit": "Redakti", - "cancel": "Nuligi", - "portal": "Yunohost portalo", - "fullname": "Plena nomo", - "new_mail": "nova-adreso@mia-domajno.org", - "confirm": "Konfirmu", - "password_changed": "Pasvorto ŝanĝita", - "password_changed_error": "Ne povis ŝanĝi pasvorton", - "password_not_match": "La pasvortoj ne kongruas", - "footerlink_administration": "Administrado", - "footerlink_support": "Subteno", - "footerlink_documentation": "Dokumentado", - "footerlink_edit": "Redakti mian profilon", - "redirection_error_unmanaged_domain": "Redirekta eraro: Ne administrita domajno", - "redirection_error_invalid_url": "Redirekta eraro: Nevalida URL", - "please_login_from_portal": "Bonvolu ensaluti de la portalo", - "please_login": "Bonvolu ensaluti por aliri ĉi tiun enhavon", - "logged_out": "Ensalutinta", - "wrong_username_password": "Malĝusta uzantnomo aŭ pasvorto", - "missing_required_fields": "Plenigu la postulatajn kampojn", - "user_saving_fail": "Ne povis konservi novajn uzantinformojn", - "information_updated": "Informoj ĝisdatigitaj", - "mail_already_used": "Retpoŝtadreso jam en uzo", - "invalid_mailforward": "Nevalida retpoŝtadreso", - "invalid_domain": "Nevalida domajno en", - "invalid_mail": "Nevalida retpoŝta adreso", - "wrong_current_password": "Aktuala pasvorto estas malĝusta", - "good_practices_about_user_password": "Elektu uzantan pasvorton de almenaŭ 8 signoj - kvankam ĝi estas bona praktiko uzi pli longajn (I.E. Pasfraso) kaj / aŭ uzas diversajn specojn de karakteroj (majusklaj, minusklaj, ciferoj kaj specialaj signoj).", - "password_too_simple_4": "La pasvorto devas havi almenaŭ 12 signojn kaj enhavas ciferojn, suprajn, pli malaltajn kaj specialajn signojn", - "password_too_simple_3": "La pasvorto devas havi almenaŭ 8 signojn kaj enhavas ciferojn, suprajn, pli malaltajn kaj specialajn signojn", - "password_too_simple_2": "La pasvorto devas havi almenaŭ 8 signojn kaj enhavas ciferojn, suprajn kaj pli malaltajn signojn", - "password_too_simple_1": "Pasvorto devas esti almenaŭ 8 signojn longa", - "password_listed": "Ĉi tiu pasvorto estas inter la plej uzataj pasvortoj en la mondo. Bonvolu elekti ion pli unikan.", - "ok": "bone", - "add_forward": "Aldonu poŝton antaŭen", - "add_mail": "Aldonu poŝton alias", - "new_forward": "newforward@myforeigndomain.org", - "mail_forward": "Poŝti antaŭen" -} diff --git a/portal/locales/es.json b/portal/locales/es.json deleted file mode 100644 index 9052f44..0000000 --- a/portal/locales/es.json +++ /dev/null @@ -1,49 +0,0 @@ -{ - "add_forward": "Añadir una dirección de reenvío de correo electrónico", - "add_mail": "Añadir un alias de correo electrónico", - "cancel": "Cancelar", - "change_password": "Cambiar contraseña", - "confirm": "Confirmar", - "current_password": "Contraseña actual", - "edit": "Editar", - "footerlink_administration": "Administración", - "footerlink_documentation": "Documentación", - "footerlink_edit": "Editar mi perfil", - "footerlink_support": "Ayuda", - "fullname": "Nombre completo", - "information": "Su información", - "information_updated": "Información actualizada", - "invalid_domain": "Dominio no válido en", - "invalid_mail": "La dirección de correo electrónico no es válida", - "invalid_mailforward": "La dirección de reenvío de correo electrónico no es válida", - "logged_out": "Sesión cerrada", - "login": "Iniciar sesión", - "logout": "Cerrar sesión", - "mail_addresses": "Direcciones de correo electrónico", - "mail_already_used": "Dirección de correo electrónico ya está en uso", - "mail_forward": "Direcciones de reenvío de correo electrónico", - "missing_required_fields": "Faltan campos obligatorios", - "new_forward": "nuevoreenvio@midominioexterior.org", - "new_mail": "nuevomail@midominio.org", - "new_password": "Nueva contraseña", - "ok": "OK", - "password": "Contraseña", - "password_changed": "Contraseña cambiada correctamente", - "password_changed_error": "Se produjo un error cambiando la contraseña", - "password_not_match": "Las nuevas contraseñas no coinciden", - "please_login": "Inicie sesión para acceder a este contenido", - "please_login_from_portal": "Por favor, inicie sesión desde el portal", - "portal": "Portal YunoHost", - "user_saving_fail": "Se produjo un error al guardar los cambios del usuario", - "username": "Nombre de usuario", - "wrong_current_password": "La contraseña actual es incorrecta", - "wrong_username_password": "Nombre de usuario o contraseña incorrectos", - "redirection_error_invalid_url": "Error de redirección: url inválido", - "redirection_error_unmanaged_domain": "Error de redirección: Dominio no gestionado", - "password_listed": "Esta contraseña es una de las más usadas en el mundo. Elija algo un poco más único.", - "password_too_simple_1": "La contraseña debe tener al menos 8 caracteres de longitud", - "password_too_simple_2": "La contraseña debe tener al menos 8 caracteres de longitud y contiene dígitos, mayúsculas y minúsculas", - "password_too_simple_3": "La contraseña debe tener al menos 8 caracteres de longitud y contiene dígitos, mayúsculas, minúsculas y caracteres especiales", - "password_too_simple_4": "La contraseña debe tener al menos 12 caracteres de longitud y contiene dígitos, mayúsculas, minúsculas y caracteres especiales", - "good_practices_about_user_password": "Está a punto de establecer una nueva contraseña de usuario. La contraseña debería de ser de al menos 8 caracteres, aunque es una buena práctica usar una contraseña más larga (es decir, una frase de paso) y/o usar varias clases de caracteres (mayúsculas, minúsculas, dígitos y caracteres especiales)." -} diff --git a/portal/locales/eu.json b/portal/locales/eu.json deleted file mode 100644 index d6df313..0000000 --- a/portal/locales/eu.json +++ /dev/null @@ -1,49 +0,0 @@ -{ - "footerlink_administration": "Administrazioa", - "footerlink_support": "Laguntza", - "footerlink_documentation": "Dokumentazioa", - "footerlink_edit": "Editatu profila", - "redirection_error_unmanaged_domain": "Birzuzenketa errorea: kudeatu gabeko domeinua", - "redirection_error_invalid_url": "Birbideraketa errorea: URL okerra", - "please_login_from_portal": "Mesedez, hasi saioa atarian", - "please_login": "Mesedez, hasi saioa edukira sartzeko", - "logged_out": "Saioa itxita", - "wrong_username_password": "Erabiltzaile-izen edo pasahitz okerra", - "missing_required_fields": "Bete beharreko eremuak", - "user_saving_fail": "Ezinezkoa izan da erabiltzailearen informazio berria gordetzea", - "information_updated": "Informazioa eguneratu da", - "mail_already_used": "Helbide elektroniko hori erabiltzen ari zara dagoeneko", - "invalid_mailforward": "Birbidalketarako helbide okerra", - "invalid_domain": "Domeinu okerra", - "invalid_mail": "Helbide elektronikoa ez da zuzena", - "wrong_current_password": "Oraingo pasahitza okerra da", - "good_practices_about_user_password": "Aukeratu gutxienez zortzi karaktere dituen erabiltzaile-pasahitz bat — baina gomendioa pasahitz luzeagoak erabiltzea da (adibidez, esaldi bat) edota karaktere desberdinak erabiltzea (larriak, txikiak, zenbakiak eta karaktere bereziak).", - "password_too_simple_4": "Pasahitzak gutxienez 12 karaktere izan behar ditu eta zenbakiak, hizki larriak, hizki txikiak eta karaktere bereziak izan behar ditu", - "password_too_simple_3": "Pasahitzak gutxienez zortzi karaktere izan behar ditu eta zenbakiak, hizki larriak, hizki txikiak eta karaktere bereziak izan behar ditu", - "password_too_simple_2": "Pasahitzak gutxienez zortzi karaktere izan behar ditu eta zenbakiak, hizki larriak eta hizki txikiak izan behar ditu", - "password_too_simple_1": "Pasahitzak gutxienez zortzi karaktere izan behar ditu", - "password_listed": "Pasahitz hau munduko pasahitz erabilienen artean dago. Mesedez, aukeratu bereziagoa den zerbait.", - "password_not_match": "Pasahitzak ez datoz bat", - "password_changed_error": "Ezin izan da pasahitza aldatu", - "password_changed": "Pasahitza aldatu da", - "logout": "Itxi saioa", - "login": "Hasi saioa", - "confirm": "Berretsi", - "new_password": "Pasahitz berria", - "current_password": "Oraingo pasahitza", - "edit": "Editatu", - "change_password": "Aldatu pasahitza", - "cancel": "Utzi", - "ok": "Ados", - "add_forward": "Gehitu helbide elektronikoa birbidaltzeko e-maila", - "add_mail": "Gehitu e-mail ezizen bat", - "new_forward": "birbidalketaberria@nirekanpokodomeinua.eus", - "new_mail": "postaberria@niredomeinua.eus", - "mail_forward": "Birbidalketarako posta elektronikoa", - "mail_addresses": "Helbide elektronikoak", - "fullname": "Izen osoa", - "password": "Pasahitza", - "username": "Erabiltzaile-izena", - "information": "Zure informazioa", - "portal": "YunoHost ataria" -} diff --git a/portal/locales/fa.json b/portal/locales/fa.json deleted file mode 100644 index 40942a2..0000000 --- a/portal/locales/fa.json +++ /dev/null @@ -1,49 +0,0 @@ -{ - "cancel": "لغو", - "logged_out": "خارج شده", - "password": "کلمه عبور", - "ok": "خوب", - "footerlink_administration": "مدیریت", - "footerlink_support": "پشتیبانی", - "footerlink_documentation": "مستندات", - "footerlink_edit": "ویرایش پروفایل من", - "redirection_error_unmanaged_domain": "خطای تغییر مسیر: دامنه مدیریت نشده", - "redirection_error_invalid_url": "خطای تغییر مسیر: نشانی اینترنتی نامعتبر است", - "please_login_from_portal": "لطفاً از درگاه پورتال وارد شوید", - "please_login": "لطفاً برای دسترسی به این محتوا وارد شوید", - "wrong_username_password": "نام کاربری یا رمز عبور اشتباه است", - "missing_required_fields": "فیلدهای مورد نیاز را پر کنید", - "user_saving_fail": "اطلاعات کاربر جدید ذخیره نشد", - "information_updated": "اطلاعات به روز شد", - "mail_already_used": "آدرس پست الکترونیکی قبلاً استفاده می شود", - "invalid_mailforward": "آدرس ارسال ایمیل نامعتبر است", - "invalid_domain": "دامنه نامعتبر در", - "invalid_mail": "آدرس ایمیل نامعتبر است", - "wrong_current_password": "رمز فعلی اشتباه است", - "good_practices_about_user_password": "گذرواژه کاربر متشکل ازانواع مختلف کاراکترها (بزرگ ، کوچک ، رقم و کاراکتر های خاص)را حداقل با 8 کاراکتر انتخاب کنید - هرچند استفاده از کلمات طولانی تر تمرین خوبی است (مانند عبارت عبور).", - "password_too_simple_4": "رمز عبور باید شامل اعداد ، حروف کوچک و بزرگ و کاراکترهای خاص باشد، و حداقل 12 کاراکتر طول داشته باشد", - "password_too_simple_3": "رمز عبور باید شامل اعداد ، حروف کوچک و بزرگ و کاراکترهای خاص باشد، و حداقل 8 کاراکتر طول داشته باشد", - "password_too_simple_2": "رمز عبور باید شامل اعداد و حروف کوچک و بزرگ، و حداقل 8 کاراکتر طول داشته باشد", - "password_too_simple_1": "رمز عبور باید حداقل 8 کاراکتر باشد", - "password_listed": "لطفاً گذرواژه کمی منحصر به فردتری انتخاب کنید. این رمز عبور جزو پر استفاده ترین رمزهای عبور جهان بشمار میرود.", - "password_not_match": "گذرواژه ها مطابقت ندارند", - "password_changed_error": "رمز عبور تغییر نکرد", - "password_changed": "رمز عبور تغییر کرد", - "logout": "خروج", - "login": "ورود به سیستم", - "confirm": "تائید کردن", - "new_password": "رمز عبور جدید", - "current_password": "رمز عبور فعلی", - "edit": "ویرایش", - "change_password": "تغییر رمز عبور", - "add_forward": "آدرس هدایت ایمیل را اضافه کنید", - "add_mail": "یک نام مستعار ایمیل اضافه کنید", - "new_forward": "newforward@myforeigndomain.org", - "new_mail": "newmail@mydomain.org", - "mail_forward": "آدرس ارسال به جلو ایمیل", - "mail_addresses": "آدرس ایمیل", - "fullname": "نام و نام خانوادگی", - "username": "نام کاربری", - "information": "اطلاعات شما", - "portal": "پورتال YunoHost" -} diff --git a/portal/locales/fi.json b/portal/locales/fi.json deleted file mode 100644 index 9a24d71..0000000 --- a/portal/locales/fi.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "cancel": "Peruuta" -} diff --git a/portal/locales/fr.json b/portal/locales/fr.json deleted file mode 100644 index 120e0bd..0000000 --- a/portal/locales/fr.json +++ /dev/null @@ -1,49 +0,0 @@ -{ - "add_forward": "Ajouter une adresse de transfert", - "add_mail": "Ajouter un alias de courriel", - "cancel": "Annuler", - "change_password": "Changer de mot de passe", - "confirm": "Confirmation", - "current_password": "Mot de passe actuel", - "edit": "Éditer", - "footerlink_administration": "Administration", - "footerlink_documentation": "Documentation", - "footerlink_edit": "Éditer mon profil", - "footerlink_support": "Support", - "fullname": "Nom complet", - "information": "Vos infos", - "information_updated": "Info mises à jour", - "invalid_domain": "Nom de domaine invalide dans", - "invalid_mail": "Adresse de courriel invalide", - "invalid_mailforward": "Adresse courriel de transfert invalide", - "logged_out": "Déconnecté", - "login": "Connexion", - "logout": "Déconnexion", - "mail_addresses": "Adresses de courriel", - "mail_already_used": "Adresse de courriel déjà utilisée", - "mail_forward": "Adresses de transfert", - "missing_required_fields": "Remplir les champs obligatoires", - "new_forward": "nouveau_transfert@domainedistant.org", - "new_mail": "nouvelle_adresse@domaine.org", - "new_password": "Nouveau mot de passe", - "ok": "OK", - "password": "Mot de passe", - "password_changed": "Mot de passe modifié", - "password_changed_error": "Impossible de changer le mot de passe", - "password_not_match": "Les mots de passe ne correspondent pas", - "please_login": "Veuillez vous identifier pour accéder à cette page", - "please_login_from_portal": "Veuillez vous identifier depuis le portail", - "portal": "Portail YunoHost", - "user_saving_fail": "Impossible d'enregistrer les nouvelles informations utilisateur", - "username": "Nom d’utilisateur", - "wrong_current_password": "Le mot de passe actuel est incorrect", - "wrong_username_password": "Nom d’utilisateur ou mot de passe incorrect", - "redirection_error_invalid_url": "Erreur de redirection : URL invalide", - "redirection_error_unmanaged_domain": "Erreur de redirection : domaine non géré", - "password_listed": "Ce mot de passe est l'un des mots de passe les plus utilisés dans le monde. Veuillez choisir quelque chose d'un peu plus singulier.", - "password_too_simple_1": "Le mot de passe doit comporter au moins 8 caractères", - "password_too_simple_2": "Le mot de passe doit comporter au moins 8 caractères et contenir des chiffres, des majuscules et des minuscules", - "password_too_simple_3": "Le mot de passe doit comporter au moins 8 caractères et contenir des chiffres, des majuscules, des minuscules et des caractères spéciaux", - "password_too_simple_4": "Le mot de passe doit comporter au moins 12 caractères et contenir des chiffres, des majuscules, des minuscules et des caractères spéciaux", - "good_practices_about_user_password": "Choisissez un mot de passe utilisateur d’au moins 8 caractères - bien qu’il soit judicieux d’utiliser des mots plus longs (par exemple une phrase secrète) et / ou d’utiliser différents types de caractères (majuscules, minuscules, chiffres et caractères spéciaux)." -} diff --git a/portal/locales/gl.json b/portal/locales/gl.json deleted file mode 100644 index 9dce5ce..0000000 --- a/portal/locales/gl.json +++ /dev/null @@ -1,49 +0,0 @@ -{ - "footerlink_administration": "Administración", - "footerlink_support": "Axuda", - "footerlink_documentation": "Documentación", - "footerlink_edit": "Editar o meu perfil", - "redirection_error_unmanaged_domain": "Erro na redirección: Dominio non xestionado", - "redirection_error_invalid_url": "Erro na redirección: URL non válido", - "please_login_from_portal": "Conéctate desde o portal", - "please_login": "Conéctate para acceder a este contido", - "logged_out": "Sesión pechada", - "wrong_username_password": "Nome de usuaria ou contrasinal incorrectos", - "missing_required_fields": "Completa os campos requeridos", - "user_saving_fail": "Non se gardou a info da nova usuaria", - "information_updated": "Info actualizada", - "mail_already_used": "Xa está en uso o enderezo de email", - "invalid_mailforward": "Enderezo de reenvío de email non válido", - "invalid_domain": "Dominio non válido", - "invalid_mail": "Enderezo de email non válido", - "wrong_current_password": "O contrasinal actual é incorrecto", - "good_practices_about_user_password": "Elixe un contrasinal con 8 caracteres como mínimo - é recomendable que sexa longo (ex. unha frase) e utilizar varios tipos de caracteres (maiúsculas, minúsculas, díxitos e caracteres especiais).", - "password_too_simple_4": "O contrasinal debe ter 12 caracteres como mínimo e ter díxitos, maiúsculas e minúsculas e caracteres especiais", - "password_too_simple_3": "O contrasinal debe ter 8 caracteres como mínimo e ter díxitos, maiúsculas e minúsculas e caracteres especiais", - "password_too_simple_2": "O contrasinal debe ter 8 caracteres como mínimo e ter díxitos e caracteres en maiúsculas e minúsculas", - "password_too_simple_1": "O contrasinal ten que ter 8 caracteres como mínimo", - "password_listed": "Este contrasinal é un dos máis utilizados no mundo. Mellor elixe un que sexa máis orixinal.", - "password_not_match": "Os contrasinais non concordan", - "password_changed_error": "Non se cambiou o contrasinal", - "password_changed": "Contrasinal cambiado", - "logout": "Pechar sesión", - "login": "Conectar", - "confirm": "Confirmar", - "new_password": "Novo contrasinal", - "current_password": "Contrasinal actual", - "edit": "Editar", - "change_password": "Cambiar contrasinal", - "cancel": "Cancelar", - "ok": "Ok", - "add_forward": "Engadir un enderezo de reenvío de email", - "add_mail": "Engadir un alias de email", - "new_forward": "novoreenvio@omeudominioexterno.org", - "new_mail": "novomail@omeudominio.org", - "mail_forward": "Enderezo de reenvío de email", - "mail_addresses": "Enderezos de email", - "fullname": "Nome completo", - "password": "Contrasinal", - "username": "Nome de usuaria", - "information": "A túa info", - "portal": "Portal YunoHost" -} diff --git a/portal/locales/hi.json b/portal/locales/hi.json deleted file mode 100644 index b39e785..0000000 --- a/portal/locales/hi.json +++ /dev/null @@ -1,49 +0,0 @@ -{ - "logged_out": "लॉग आउट", - "password": "पासवर्ड", - "footerlink_administration": "प्रशासन", - "footerlink_support": "समर्थन", - "footerlink_documentation": "प्रलेखन", - "footerlink_edit": "मेरे प्रोफ़ाइल संपादित करे", - "redirection_error_unmanaged_domain": "पुनर्निर्देशन त्रुटि: अप्रबंधित डोमेन", - "redirection_error_invalid_url": "पुनर्निर्देशन त्रुटि: अमान्य URL", - "please_login_from_portal": "कृपया पोर्टल से लॉग इन करें", - "please_login": "कृपया इस सामग्री तक पहुंचने के लिए लॉग इन करें", - "wrong_username_password": "उपयोगकर्ता का गलत नाम और पासवर्ड", - "missing_required_fields": "आवश्यक फ़ील्ड भरें", - "user_saving_fail": "नई उपयोगकर्ता जानकारी को सहेज नहीं सका", - "information_updated": "जानकारी अपडेट की गई", - "mail_already_used": "यह ईमेल अड्रेस पहले से ही उपयोग में है", - "invalid_mailforward": "अमान्य ई-मेल अग्रेषण पता", - "invalid_domain": "में अमान्य डोमेन", - "invalid_mail": "अमान्य ईमेल पता", - "wrong_current_password": "वर्तमान पासवर्ड गलत है", - "good_practices_about_user_password": "कम से कम 8 वर्णों का एक उपयोगकर्ता पासवर्ड चुनें - हालाँकि यह लंबे लोगों (यानी एक पासफ़्रेज़) और / या विभिन्न प्रकार के वर्ण (अपरकेस, लोअरकेस, अंक और विशेष वर्ण) का उपयोग करने के लिए अच्छा अभ्यास है।", - "password_too_simple_4": "पासवर्ड को कम से कम 12 वर्णों का होना चाहिए और इसमें अंक, ऊपरी, निचले और विशेष वर्ण शामिल होने चाहिए", - "password_too_simple_3": "पासवर्ड को कम से कम 8 वर्ण लंबा होना चाहिए और इसमें अंक, ऊपरी, निचले और विशेष वर्ण शामिल हैं", - "password_too_simple_2": "पासवर्ड को कम से कम 8 वर्ण लंबा होना चाहिए और इसमें अंक, ऊपरी और निचले वर्ण शामिल हैं", - "password_too_simple_1": "पासवर्ड को कम से कम 8 वर्ण लंबा होना चाहिए", - "password_listed": "यह पासवर्ड दुनिया में सबसे ज्यादा इस्तेमाल किए जाने वाले पासवर्ड में से है। कृपया कुछ और अनोखा चुनें।", - "password_not_match": "पासवर्ड मेल नहीं खाते", - "password_changed_error": "पासवर्ड नहीं बदल सका", - "password_changed": "पासवर्ड बदला गया", - "logout": "लोग आउट", - "login": "लॉग इन करें", - "confirm": "की पुष्टि करें", - "new_password": "नया पासवर्ड", - "current_password": "वर्तमान पासवर्ड", - "edit": "संपादित करें", - "change_password": "पासवर्ड बदलें", - "cancel": "रद्द करना", - "ok": "ठीक है", - "add_forward": "एक ई-मेल अग्रेषण पता जोड़ें", - "add_mail": "एक ईमेल उपनाम जोड़ें", - "new_forward": "newforward@myforeigndomain.org", - "new_mail": "newmail@mydomain.org", - "mail_forward": "ई-मेल अग्रेषण पता", - "mail_addresses": "ईमेल पता", - "fullname": "पूरा नाम", - "username": "उपयोगकर्ता नाम", - "information": "आपकी जानकारी", - "portal": "यूनोहास्ट पोर्टल" -} diff --git a/portal/locales/hu.json b/portal/locales/hu.json deleted file mode 100644 index 47fc7aa..0000000 --- a/portal/locales/hu.json +++ /dev/null @@ -1,49 +0,0 @@ -{ - "footerlink_administration": "Adminisztráció", - "footerlink_support": "Támogatás", - "footerlink_documentation": "Dokumentáció", - "footerlink_edit": "Profilom szerkesztése", - "redirection_error_unmanaged_domain": "Átirányítási hiba: Nem kezelt domain", - "redirection_error_invalid_url": "Átirányítási hiba: érvénytelen URL", - "please_login_from_portal": "Kérjük, jelentkezzen be a portálról", - "please_login": "Kérjük, jelentkezzen be, hogy hozzáférjen ehhez a tartalomhoz", - "logged_out": "Kilépett", - "wrong_username_password": "Rossz felhasználónév vagy jelszó", - "missing_required_fields": "Töltse ki a kötelező mezőket", - "user_saving_fail": "Nem sikerült menteni az új felhasználói információkat", - "information_updated": "Az információ frissítve", - "mail_already_used": "Az e-mail cím már használatban van", - "invalid_mailforward": "Érvénytelen e-mail továbbító cím", - "invalid_domain": "Érvénytelen domain itt", - "invalid_mail": "Érvénytelen e-mail cím", - "wrong_current_password": "A jelenlegi jelszó helytelen", - "good_practices_about_user_password": "Válasszon legalább 8 karakterből álló felhasználói jelszót - jó gyakorlat azonban hosszabb jelszó használata (azaz egy jelmondat) és/vagy különféle karakterek (nagybetűk, kisbetűk, számjegyek és speciális karakterek) használata.", - "password_too_simple_4": "A jelszónak legalább 12 karakter hosszúnak kell lennie, és tartalmaznia kell számjegy, felső, alsó és speciális karaktereket", - "password_too_simple_3": "A jelszónak legalább 8 karakter hosszúnak kell lennie, és tartalmaznia kell számjegy, felső, alsó és speciális karaktereket", - "password_too_simple_2": "A jelszónak legalább 8 karakter hosszúnak kell lennie, és számjegyű, felső és alsó karaktereket kell tartalmaznia", - "password_too_simple_1": "A jelszónak legalább 8 karakter hosszúnak kell lennie", - "password_listed": "Ez a jelszó a világ egyik leggyakrabban használt jelszava. Kérjük, válasszon egy kicsit egyediabbat.", - "password_not_match": "A jelszavak nem egyeznek", - "password_changed_error": "Nem sikerült megváltoztatni a jelszót", - "password_changed": "A jelszó megváltozott", - "logout": "Kijelentkezés", - "login": "Belépés", - "confirm": "megerősít", - "new_password": "Új jelszó", - "current_password": "Jelenlegi jelszó", - "edit": "Ezerkesztése", - "change_password": "Jelszó módosítása", - "cancel": "Megszünteti", - "ok": "Rendben", - "add_forward": "Adjon hozzá egy e-mail továbbító címet", - "add_mail": "Adjon hozzá egy e-mail álnevet", - "new_forward": "newforward@myforeigndomain.org", - "new_mail": "newmail@mydomain.org", - "mail_forward": "E-mail továbbítási cím", - "mail_addresses": "Email címek", - "fullname": "Teljes név", - "password": "Jelszó", - "username": "Felhasználónév", - "information": "Az Ön adata", - "portal": "YunoHost portál" -} diff --git a/portal/locales/id.json b/portal/locales/id.json deleted file mode 100644 index e6fb81d..0000000 --- a/portal/locales/id.json +++ /dev/null @@ -1,42 +0,0 @@ -{ - "cancel": "Batal", - "portal": "Portal YunoHost", - "information": "Info Anda", - "username": "Nama pengguna", - "password": "Kata sandi", - "fullname": "Nama lengkap", - "mail_addresses": "Alamat surel", - "mail_forward": "Alamat surel terusan", - "new_mail": "surelbaru@domainku.org", - "new_forward": "terusanbaru@domainlainku.org", - "add_mail": "Buat surel alias", - "add_forward": "Buat alamat surel terusan", - "ok": "Oke", - "change_password": "Ubah kata sandi", - "edit": "Sunting", - "current_password": "Kata sandi saat ini", - "new_password": "Kata sandi baru", - "confirm": "Konfirmasi", - "login": "Masuk", - "logout": "Keluar", - "password_changed": "Kata sandi diubah", - "password_changed_error": "Tidak dapat mengubah kata sandi", - "password_not_match": "Kata sandi tidak sama", - "password_listed": "Kata sandi ini merupakan salah satu kata sandi yang paling sering digunakan di dunia. Coba pilih sesuatu yang lebih unik.", - "password_too_simple_1": "Kata sandi harus memiliki sekurang-kurangnya 8 karakter", - "wrong_current_password": "Kata sandi saat ini salah", - "invalid_mail": "Alamat surel tidak valid", - "mail_already_used": "Alamat surel sudah digunakan", - "information_updated": "Info diperbarui", - "user_saving_fail": "Tidak dapat menyimpan info baru pengguna", - "wrong_username_password": "Nama pengguna atau kata sandi salah", - "logged_out": "Berhasil keluar", - "please_login": "Masuk untuk mengakses konten ini", - "please_login_from_portal": "Harap masuk dari portal", - "redirection_error_invalid_url": "Kesalahan pengalihan: URL tidak valid", - "redirection_error_unmanaged_domain": "Kesalahan pengalihan: Domain tak dikelola", - "footerlink_edit": "Sunting profil saya", - "footerlink_documentation": "Dokumentasi", - "footerlink_support": "Dukungan", - "footerlink_administration": "Administrasi" -} diff --git a/portal/locales/it.json b/portal/locales/it.json deleted file mode 100644 index da6a380..0000000 --- a/portal/locales/it.json +++ /dev/null @@ -1,49 +0,0 @@ -{ - "add_forward": "Aggiungi un indirizzo di inoltro e-mail", - "add_mail": "Aggiungi un alias email", - "cancel": "Annulla", - "change_password": "Cambia password", - "confirm": "Conferma", - "current_password": "Password attuale", - "edit": "Modifica", - "footerlink_administration": "Amministrazione", - "footerlink_documentation": "Documentazione", - "footerlink_edit": "Modifica il mio profilo", - "footerlink_support": "Supporto", - "fullname": "Nome e cognome", - "information": "Le tue informazioni", - "information_updated": "Informazioni aggiornate", - "invalid_domain": "Dominio non valido in", - "invalid_mail": "Indirizzo email non valido", - "invalid_mailforward": "Indirizzo di inoltro e-mail non valido", - "logged_out": "Disconnesso", - "login": "Accedi", - "logout": "Esci", - "mail_addresses": "Indirizzi email", - "mail_already_used": "Indirizzo email già in uso", - "mail_forward": "Indirizzo di inoltro e-mail", - "missing_required_fields": "Compila i campi richiesti", - "new_forward": "nuovoinoltro@miodominiodifferente.org", - "new_mail": "nuovaemail@miodominio.org", - "new_password": "Nuova password", - "ok": "OK", - "password": "Password", - "password_changed": "Password cambiata", - "password_changed_error": "Impossibile cambiare la password", - "password_not_match": "Le password non corrispondono", - "please_login": "Per favore, accedi per visualizzare il contenuto", - "please_login_from_portal": "Per favore, accedi dal portale", - "portal": "Portale YunoHost", - "user_saving_fail": "Impossibile salvare le informazioni sul nuovo utente", - "username": "Nome utente", - "wrong_current_password": "La password attuale è sbagliata", - "wrong_username_password": "Nome utente o password sbagliati", - "redirection_error_invalid_url": "Errore di reindirizzamento: URL non valido", - "redirection_error_unmanaged_domain": "Errore di redirezionamento: dominio non gestito", - "password_listed": "Questa password è tra le password più utilizzate al mondo. Scegli qualcosa di un po 'più unico.", - "password_too_simple_1": "La password deve contenere almeno 8 caratteri", - "password_too_simple_2": "La password deve contenere almeno 8 caratteri e contiene cifre, caratteri superiori e inferiori", - "password_too_simple_3": "La password deve contenere almeno 8 caratteri e contiene caratteri numerici, superiori, inferiori e speciali", - "password_too_simple_4": "La password deve contenere almeno 12 caratteri e contiene caratteri numerici, superiori, inferiori e speciali", - "good_practices_about_user_password": "Scegli una password utente di almeno 8 caratteri, anche se è buona norma utilizzare quelli più lunghi (ad esempio una passphrase) e / o utilizzare vari tipi di caratteri (lettere maiuscole, minuscole, cifre e caratteri speciali)." -} diff --git a/portal/locales/mk.json b/portal/locales/mk.json deleted file mode 100644 index 0967ef4..0000000 --- a/portal/locales/mk.json +++ /dev/null @@ -1 +0,0 @@ -{} diff --git a/portal/locales/nb_NO.json b/portal/locales/nb_NO.json deleted file mode 100644 index a9946e9..0000000 --- a/portal/locales/nb_NO.json +++ /dev/null @@ -1,29 +0,0 @@ -{ - "footerlink_administration": "Administrasjon", - "footerlink_support": "Støtte", - "footerlink_documentation": "Dokumentasjon", - "footerlink_edit": "Rediger min profil", - "redirection_error_unmanaged_domain": "Videresendingsfeil: Uhåndtert domene", - "redirection_error_invalid_url": "Videresendingsfeil: Ugyldig nettadresse", - "please_login_from_portal": "Logg inn fra portalen", - "please_login": "Logg inn for å få tilgang til dette innholdet", - "logged_out": "Utlogget", - "wrong_username_password": "Feil brukernavn eller passord", - "information_updated": "Info oppdatert", - "invalid_domain": "Ugyldig domene i", - "wrong_current_password": "Nåværende passord er feil", - "password_changed": "Passord endret", - "logout": "Logg ut", - "login": "Logg inn", - "confirm": "Bekreft", - "new_password": "Nytt passord", - "current_password": "Nåværende passord", - "edit": "Rediger", - "change_password": "Endre passord", - "cancel": "Avbryt", - "ok": "OK", - "password": "Passord", - "username": "Brukernavn", - "information": "Din informasjon", - "portal": "YunoHost-portal" -} diff --git a/portal/locales/ne.json b/portal/locales/ne.json deleted file mode 100644 index 3f64056..0000000 --- a/portal/locales/ne.json +++ /dev/null @@ -1,49 +0,0 @@ -{ - "footerlink_administration": "प्रशासन", - "footerlink_support": "समर्थन", - "footerlink_documentation": "कागजात", - "footerlink_edit": "मेरो प्रोफाइल सम्पादन गर्नुहोस्", - "redirection_error_unmanaged_domain": "पुनर्निर्देशन त्रुटि: अव्यवस्थित डोमेन", - "redirection_error_invalid_url": "रिडिरेसन त्रुटि: अवैध URL", - "please_login_from_portal": "कृपया पोर्टलबाट लग ईन गर्नुहोस्", - "please_login": "यस सामग्री पहुँच गर्न कृपया लग इन गर्नुहोस्", - "logged_out": "लग आउट", - "wrong_username_password": "गलत प्रयोगकर्ता नाम वा पासवर्ड", - "missing_required_fields": "आवश्यक फिल्डहरू भर्नुहोस्", - "user_saving_fail": "नयाँ प्रयोगकर्ता जानकारी बचत गर्न सकेन", - "information_updated": "जानकारी अपडेट गरियो", - "mail_already_used": "इ-मेल ठेगाना पहिले नै प्रयोगमा छ", - "invalid_mailforward": "अवैध ईमेल फर्वार्डिंग ठेगाना", - "invalid_domain": "अमान्य डोमेन भित्र", - "invalid_mail": "अवैध ईमेल ठेगाना", - "wrong_current_password": "हालको पासवर्ड गलत छ", - "good_practices_about_user_password": "कम्तिमा characters क्यारेक्टरहरूको प्रयोगकर्ता पासवर्ड छान्नुहोस् - यद्यपि यो लामो अभ्यास (अर्थात पासफ्रेज) प्रयोग गर्न राम्रो अभ्यास हो र / वा विभिन्न प्रकारका वर्णहरू (अपरकेस, लोअरकेस, अंक र विशेष क्यारेक्टर) प्रयोग गर्नुहोस्।", - "password_too_simple_4": "पासवर्ड कम्तिमा १२ वर्ण लामो हुनु पर्छ र अंक, माथिल्लो, तल्लो र विशेष क्यारेक्टर समावेश गर्दछ", - "password_too_simple_3": "पासवर्ड कम्तिमा characters वर्ण लामो हुनु पर्छ र अंक, माथिल्लो, तल्लो र विशेष क्यारेक्टर समावेश गर्दछ", - "password_too_simple_2": "पासवर्ड कम्तिमा characters क्यारेक्टर लामो हुनुपर्दछ र अंक, माथिल्लो र तल्लो वर्णहरू समावेश गर्दछ", - "password_too_simple_1": "पासवर्ड कम्तिमा characters अक्षर लामो हुनु आवश्यक छ", - "password_listed": "यो पासवर्ड विश्व मा सबै भन्दा बढी प्रयोग भएको पासवर्ड बीच हो। कृपया केहि अलि बढी अनौंठो छनौट गर्नुहोस्।", - "password_not_match": "पासवर्ड मेल खाँदैन", - "password_changed_error": "पासवर्ड परिवर्तन गर्न सकेन", - "password_changed": "पासवर्ड परिवर्तन भयो", - "logout": "बाहिर निस्कनु", - "login": "लग - इन", - "confirm": "पुष्टि गर्नुहोस्", - "new_password": "नया पासवर्ड", - "current_password": "वर्तमान पासवर्ड", - "edit": "सम्पादन गर्नुहोस्", - "change_password": "पासवर्ड परिवर्तन गर्नुहोस्", - "cancel": "रद्द गर्नुहोस्", - "ok": "ठिक छ", - "add_forward": "एक ईमेल अग्रेषण ठेगाना जोड्नुहोस्", - "add_mail": "ईमेल उपनाम थप्नुहोस्", - "new_forward": "नयाँअगाडी@माईफोरिगेन्डोमाइन.org", - "new_mail": "नयाँमेल@माईडोमेन.org", - "mail_forward": "इ-मेल फर्वार्डिंग ठेगाना", - "mail_addresses": "इ-मेल ठेगानाहरू", - "fullname": "पुरा नाम", - "password": "पासवर्ड", - "username": "प्रयोगकर्ता नाम", - "information": "तपाईको जानकारी", - "portal": "YunoHost पोर्टल" -} diff --git a/portal/locales/nl.json b/portal/locales/nl.json deleted file mode 100644 index 1447934..0000000 --- a/portal/locales/nl.json +++ /dev/null @@ -1,49 +0,0 @@ -{ - "add_forward": "Voeg een e-mail doorstuuradres toe", - "add_mail": "Voeg een e-mailalias toe", - "cancel": "Annuleer", - "change_password": "Verander wachtwoord", - "confirm": "Bevestigen", - "current_password": "Huidig wachtwoord", - "edit": "Bewerken", - "footerlink_administration": "Administratie", - "footerlink_documentation": "Documentatie", - "footerlink_edit": "Bewerk mijn profiel", - "footerlink_support": "Ondersteuning", - "fullname": "Voor-en achternaam", - "information": "Uw gegevens", - "information_updated": "Informatie bijgewerkt", - "invalid_domain": "Ongeldig domein", - "invalid_mail": "Ongeldig emailadres", - "invalid_mailforward": "Ongeldig email-forward adres", - "logged_out": "Uitgelogd", - "login": "Inloggen", - "logout": "Uitloggen", - "mail_addresses": "E-mailadressen", - "mail_already_used": "E-mailadres al in gebruik", - "mail_forward": "E-mail doorstuuradres", - "missing_required_fields": "Verplichte velden zijn niet ingevuld", - "new_forward": "nieuwe_forward@mijndomein.org", - "new_mail": "nieuwe_email@mijndomein.org", - "new_password": "Nieuw wachtwoord", - "ok": "OK", - "password": "Wachtwoord", - "password_changed": "wachtwoord veranderd", - "password_changed_error": "Kon wachtwoord niet veranderen", - "password_not_match": "De wachtwoorden komen niet overeen", - "please_login": "Log in om toegang te krijgen tot deze inhoud", - "please_login_from_portal": "Log in vanaf het portaal", - "portal": "YunoHost Portaal", - "user_saving_fail": "Er is een fout opgetreden bij het opslaan van wijzigingen aan gebruiker", - "username": "Gebruikersnaam", - "wrong_current_password": "Huidig wachtwoord is verkeerd", - "wrong_username_password": "Verkeerde gebruikersnaam of wachtwoord", - "password_too_simple_2": "Het wachtwoord moet minimaal 8 tekens lang zijn en cijfers, hoofdletters en kleine letters bevatten", - "password_too_simple_1": "Het wachtwoord moet minimaal 8 tekens lang zijn", - "password_listed": "Dit wachtwoord is een van de meest gebruikte wachtwoorden ter wereld. Kies alstublieft iets uniekers.", - "redirection_error_unmanaged_domain": "Omleidingsfout: onbeheerd domein", - "redirection_error_invalid_url": "Omleidingsfout: ongeldige URL", - "good_practices_about_user_password": "Kies een gebruikerswachtwoord van minimaal 8 tekens - hoewel het een goede gewoonte is om langere (dat wil zeggen een wachtwoordzin) te gebruiken en / of verschillende soorten tekens te gebruiken (hoofdletters, kleine letters, cijfers en speciale tekens).", - "password_too_simple_4": "Het wachtwoord moet minimaal 12 tekens lang zijn en cijfers, bovenste, onderste en speciale tekens bevatten", - "password_too_simple_3": "Het wachtwoord moet minimaal 8 tekens lang zijn en cijfers, bovenste, onderste en speciale tekens bevatten" -} diff --git a/portal/locales/oc.json b/portal/locales/oc.json deleted file mode 100644 index 1b45cf2..0000000 --- a/portal/locales/oc.json +++ /dev/null @@ -1,49 +0,0 @@ -{ - "portal": "Portal YunoHost", - "information": "Vòstras informacions", - "username": "Nom d’utilizaire", - "password": "Senhal", - "fullname": "Nom complèt", - "mail_addresses": "Adreça de corrièl", - "mail_forward": "Adreças de transferiment", - "new_mail": "novela_adreça@domeni.org", - "new_forward": "novel_transferiment@domenialonhat.org", - "add_mail": "Ajustar un alias d’adreça electronica", - "add_forward": "Ajustar una adreça de transferiment", - "ok": "OK", - "cancel": "Anullar", - "change_password": "Cambiar lo senhal", - "edit": "Editar", - "current_password": "Senhal actual", - "new_password": "Nòu senhal", - "confirm": "Confirmar", - "login": "Connexion", - "logout": "Desconnexion", - "password_changed": "Senhal modificat", - "password_changed_error": "Una error s’es producha en cambiar lo senhal", - "password_not_match": "Los nòus senhals correspondon pas", - "wrong_current_password": "Lo senhal actual es incorrècte", - "invalid_mail": "Adreça de corrièl invalida", - "invalid_domain": "Nom de domeni invalid dins", - "invalid_mailforward": "Adreça de transferiment invalida", - "mail_already_used": "Adreça ja utilizada", - "information_updated": "Informacions actualizadas", - "user_saving_fail": "Enregistrament impossible de las nòvas informacions utilizaire", - "missing_required_fields": "Garnissètz los camps requesits", - "wrong_username_password": "Nom d’utilizaire o senhal incorrècte", - "logged_out": "Desconnectat", - "please_login": "Mercé de vos identificar per accedir a la pagina", - "please_login_from_portal": "Mercés de vos identificar dins del portal", - "redirection_error_invalid_url": "Error de redireccion : URL invalida", - "redirection_error_unmanaged_domain": "Error de redireccion : domeni pas gerit", - "footerlink_edit": "Editar lo perfil", - "footerlink_documentation": "Documentacion", - "footerlink_support": "Assisténcia", - "footerlink_administration": "Administracion", - "password_listed": "Aqueste senhal es un dels mai utilizats al monde. Se vos plai utilizatz-ne un mai unic.", - "password_too_simple_1": "Lo senhal deu conténer almens 8 caractèrs", - "password_too_simple_2": "Lo senhal deu conténer almens 8 caractèrs e nombres, majusculas e minusculas", - "password_too_simple_3": "Lo senhal deu conténer almens 8 caractèrs e nombres, majusculas e minusculas e caractèrs especials", - "password_too_simple_4": "Lo senhal deu conténer almens 12 caractèrs, de nombre, majusculas, minusculas e caractèrs especials", - "good_practices_about_user_password": "Causissètz un senhal d’almens 8 caractèrs, es de bon far d’utilizar un senhal mai long (es a dire una frasa de senhal) e/o utilizar mantun tipe de caractèrs (majusculas, minusculas, nombres e caractèrs especials)." -} diff --git a/portal/locales/pl.json b/portal/locales/pl.json deleted file mode 100644 index 74373ff..0000000 --- a/portal/locales/pl.json +++ /dev/null @@ -1,49 +0,0 @@ -{ - "add_mail": "Dodaj alias e-mail", - "cancel": "Anuluj", - "change_password": "Zmień hasło", - "confirm": "Potwierdź", - "current_password": "Aktualne hasło", - "edit": "Edytuj", - "footerlink_administration": "Panel administracyjny", - "footerlink_documentation": "Dokumentacja", - "footerlink_edit": "Edytuj mój profil", - "footerlink_support": "Pomoc techniczna", - "fullname": "Pełne imię i nazwisko", - "information": "Twoje informacje", - "logged_out": "Wylogowano", - "login": "Zaloguj Się", - "logout": "Wyloguj", - "mail_addresses": "Adresy e-mail", - "mail_already_used": "Adres e mailowy jest już używany", - "new_forward": "newforward@myforeigndomain.org", - "new_mail": "nowymail@domena.org", - "new_password": "Nowe hasło", - "ok": "OK", - "password": "Hasło", - "password_changed": "Hasło zostało zmienione", - "please_login": "Proszę się zalogować by uzyskać dostęp do tej strony", - "portal": "Portal YunoHost", - "username": "Nazwa użytkownika", - "wrong_username_password": "Zła nazwa użytkownika lub hasło", - "redirection_error_unmanaged_domain": "Błąd przekierowania: domena niezarządzana", - "redirection_error_invalid_url": "Błąd przekierowania: nieprawidłowy adres URL", - "please_login_from_portal": "Zaloguj się z portalu", - "missing_required_fields": "Wypełnij wymagane pola", - "user_saving_fail": "Nie można zapisać nowych informacji o użytkowniku", - "information_updated": "Informacje zaktualizowane", - "invalid_mailforward": "Nieprawidłowy adres e-mail do przekazania", - "invalid_domain": "Nieprawidłowa domena w", - "invalid_mail": "Niepoprawny adres email", - "wrong_current_password": "Obecne hasło jest nieprawidłowe", - "good_practices_about_user_password": "Wybierz hasło użytkownika składające się z co najmniej 8 znaków - chociaż dobrą praktyką jest używanie dłuższych (np. Hasło) i / lub stosowanie różnego rodzaju znaków (wielkie litery, małe litery, cyfry i znaki specjalne).", - "password_too_simple_4": "Hasło musi mieć co najmniej 12 znaków i zawierać cyfry, górne, dolne i znaki specjalne", - "password_too_simple_3": "Hasło musi mieć co najmniej 8 znaków i zawierać cyfry, górne, dolne i znaki specjalne", - "password_too_simple_2": "Hasło musi mieć co najmniej 8 znaków i zawierać cyfrę, górny i dolny znak", - "password_too_simple_1": "Hasło musi mieć co najmniej 8 znaków", - "password_listed": "To hasło jest jednym z najczęściej używanych haseł na świecie. Wybierz coś bardziej wyjątkowego.", - "password_not_match": "Hasła się nie zgadzają", - "password_changed_error": "Nie można zmienić hasła", - "add_forward": "Dodaj adres e-mail do przekazywania", - "mail_forward": "Adres do przekazywania wiadomości e-mail" -} diff --git a/portal/locales/pt.json b/portal/locales/pt.json deleted file mode 100644 index 63230fa..0000000 --- a/portal/locales/pt.json +++ /dev/null @@ -1,49 +0,0 @@ -{ - "add_forward": "Adicionar um endereço de encaminhamento de email", - "add_mail": "Adicionar um alias de email", - "cancel": "Cancelar", - "change_password": "Alterar senha", - "confirm": "Confirmar", - "current_password": "Senha atual", - "edit": "Editar", - "footerlink_administration": "Administração", - "footerlink_documentation": "Documentação", - "footerlink_edit": "Editar o meu perfil", - "footerlink_support": "Suporte", - "fullname": "Nome completo", - "information": "Suas informações", - "information_updated": "Informações atualizadas", - "invalid_domain": "Domínio inválido em", - "invalid_mail": "Endereço de email invalido", - "invalid_mailforward": "Endereço de encaminhamento de email inválido", - "logged_out": "Sessão terminada", - "login": "Entrar", - "logout": "Sair", - "mail_addresses": "Endereço de e-mail", - "mail_already_used": "Endereço de email já está em uso", - "mail_forward": "Endereço de encaminhamento de email", - "missing_required_fields": "Preencha os campos obrigatórios", - "new_forward": "novoreenvio@dominioexterno.org", - "new_mail": "novomail@meudominio.org", - "new_password": "Nova senha", - "ok": "Confirmar", - "password": "Senha", - "password_changed": "Senha alterada", - "password_changed_error": "Não foi possível alterar a senha", - "password_not_match": "As senhas não correspondem", - "please_login": "Por favor inicie sessão para aceder a este conteúdo", - "please_login_from_portal": "Por favor inicie sessão no portal", - "portal": "Portal YunoHost", - "user_saving_fail": "Não foi possível salvar as novas informações do usuário", - "username": "Nome de utilizador", - "wrong_current_password": "A senha atual está incorreta", - "wrong_username_password": "Nome de utilizador e senha errados", - "redirection_error_invalid_url": "Erro de redirecionamento: URL inválido", - "redirection_error_unmanaged_domain": "Erro de redirecionamento: Dominio não gerenciado", - "good_practices_about_user_password": "Escolha uma senha de usuário com pelo menos 8 caracteres - embora seja uma boa prática usar palavras mais longas (ou seja, uma senha) e/ou usar vários tipos de caracteres (maiúsculas, minúsculas, dígitos e caracteres especiais).", - "password_too_simple_4": "A senha precisa ter pelo menos 12 caracteres e conter dígitos, caracteres superior, inferior e caracteres especiais", - "password_too_simple_3": "A senha precisa ter pelo menos 8 caracteres e conter dígitos, caracteres superior, inferior e caracteres especiais", - "password_too_simple_2": "A senha precisa ter pelo menos 8 caracteres e conter dígitos, caracteres superior e inferior", - "password_too_simple_1": "A senha precisa ter pelo menos 8 caracteres", - "password_listed": "Essa senha está entre as senhas mais usadas no mundo. Por favor, escolha algo um pouco mais exclusivo." -} diff --git a/portal/locales/ru.json b/portal/locales/ru.json deleted file mode 100644 index 8b9f2e3..0000000 --- a/portal/locales/ru.json +++ /dev/null @@ -1,49 +0,0 @@ -{ - "portal": "Портал YunoHost", - "information": "Ваша информация", - "username": "Имя пользователя", - "password": "Пароль", - "fullname": "Полное имя", - "mail_addresses": "Адрес электронной почты", - "ok": "ОК", - "cancel": "Отмена", - "change_password": "Сменить пароль", - "edit": "Редактировать", - "current_password": "Действующий пароль", - "new_password": "Новый пароль", - "confirm": "Подтвердить", - "login": "Авторизоваться", - "logout": "Выйти", - "password_changed": "Пароль изменён", - "password_changed_error": "Не удалось сменить пароль", - "invalid_mail": "Неверный адрес электронной почты", - "invalid_mailforward": "Неверный адрес пересылки электронной почты", - "mail_already_used": "Адрес электронной почты уже используется", - "information_updated": "Информация обновлена", - "user_saving_fail": "Не удалось сохранить информацию о новом пользователе", - "mail_forward": "Адрес пересылки электронной почты", - "new_mail": "newmail@mydomain.org", - "new_forward": "newforward@myforeigndomain.org", - "add_mail": "Добавьте псевдоним электронной почты", - "add_forward": "Добавить адрес пересылки электронной почты", - "password_not_match": "Пароли не совпадают", - "wrong_current_password": "Неверный текущий пароль", - "invalid_domain": "Неправильный домен", - "missing_required_fields": "Заполните обязательные поля", - "wrong_username_password": "Неправильное имя пользователя или пароль", - "logged_out": "Вы вышли из системы", - "please_login": "Пожалуйста, войдите", - "please_login_from_portal": "Пожалуйста, войдите в портал", - "redirection_error_invalid_url": "Ошибка перенаправления: неверный URL", - "redirection_error_unmanaged_domain": "Ошибка перенаправления: неуправляемый домен", - "footerlink_edit": "Редактировать профиль", - "footerlink_documentation": "Документация", - "footerlink_support": "Поддержка", - "footerlink_administration": "Администрирование", - "good_practices_about_user_password": "Выберите пароль пользователя длиной не менее 8 символов, хотя рекомендуется использовать более длинные (например, парольную фразу) и / или использовать символы различного типа (прописные, строчные буквы, цифры и специальные символы).", - "password_too_simple_4": "Пароль должен содержать не менее 12 символов и включать цифры, заглавные и строчные буквы и специальные символы", - "password_too_simple_3": "Пароль должен содержать не менее 8 символов и содержать цифры, заглавные и строчные буквы и специальные символы", - "password_too_simple_2": "Пароль должен содержать не менее 8 символов и включать цифры, заглавные и строчные буквы", - "password_too_simple_1": "Пароль должен быть не менее 8 символов", - "password_listed": "Этот пароль является одним из наиболее часто используемых паролей в мире. Пожалуйста, выберите что-то более уникальное." -} diff --git a/portal/locales/sl.json b/portal/locales/sl.json deleted file mode 100644 index 910ba16..0000000 --- a/portal/locales/sl.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "cancel": "Prekliči" -} diff --git a/portal/locales/sv.json b/portal/locales/sv.json deleted file mode 100644 index 370bee5..0000000 --- a/portal/locales/sv.json +++ /dev/null @@ -1,49 +0,0 @@ -{ - "footerlink_administration": "Administration", - "footerlink_support": "Support", - "footerlink_documentation": "Dokumentation", - "footerlink_edit": "Redigera min profil", - "logged_out": "Utloggad", - "wrong_username_password": "Fel användarnamn eller lösenord", - "missing_required_fields": "Fyll i de obligatoriska fälten", - "user_saving_fail": "Kunde inte spara ny användarinformation", - "information_updated": "Informationen har uppdaterats", - "mail_already_used": "E-postadressen används redan", - "invalid_domain": "Ogiltig domän i", - "invalid_mail": "E-postadressen är ogiltig", - "wrong_current_password": "Det nuvarande lösenordet stämmer inte", - "password_too_simple_4": "Lösenordet måste bestå av minst tolv tecken och innehålla både siffror, små och stora bokstäver samt specialtecken", - "password_too_simple_3": "Lösenordet måste bestå av minst åtta tecken och innehålla både siffror, små och stora bokstäver samt specialtecken", - "password_too_simple_2": "Lösenordet måste bestå av minst åtta tecken och innehålla både siffror, små och stora bokstäver", - "password_too_simple_1": "Lösenordet måste bestå av minst åtta tecken", - "password_listed": "Det här lösenordet är ett av de mest använda i världen. Välj gärna någonting lite mer unikt.", - "password_not_match": "Lösenorden stämmer inte överens", - "password_changed_error": "Kunde inte ändra lösenordet", - "password_changed": "Lösenordet har ändrats", - "logout": "Logga ut", - "login": "Logga in", - "confirm": "Bekräfta", - "new_password": "Nytt lösenord", - "current_password": "Nuvarande lösenord", - "edit": "Redigera", - "change_password": "Byt lösenord", - "cancel": "Avbryt", - "ok": "Ok", - "add_forward": "Lägg till en e-postadress för vidarebefordran", - "add_mail": "Lägg till ett e-postalias", - "new_forward": "ny_vidarebefordring@min_fjarr-doman.org", - "new_mail": "ny_adress@min_doman.org", - "mail_forward": "E-postadress för vidarebefordring", - "mail_addresses": "E-postadresser", - "fullname": "Fullständigt namn", - "password": "Lösenord", - "username": "Användarnamn", - "information": "Din information", - "portal": "YunoHost-portal", - "redirection_error_unmanaged_domain": "Omdirigeringsfel: Okontrollerad domän", - "redirection_error_invalid_url": "Omdirigeringsfel: Ogiltig URL", - "please_login_from_portal": "Logga in från portalen", - "please_login": "Logga in för att få tillgång till det här innehållet", - "invalid_mailforward": "Ogiltig e-post vidarebefordringsadress", - "good_practices_about_user_password": "Välj ett användarlösenord på minst åtta tecken - även om det är bra att använda längre (dvs ett lösenord) och / eller använda olika typer av tecken (versaler, versaler, siffror och specialtecken)." -} diff --git a/portal/locales/tr.json b/portal/locales/tr.json deleted file mode 100644 index f58ff14..0000000 --- a/portal/locales/tr.json +++ /dev/null @@ -1,49 +0,0 @@ -{ - "add_forward": "Bir e-posta yönlendirme adresi ekleyin", - "add_mail": "Bir e-posta takma adı ekleyin", - "cancel": "İptal etmek", - "change_password": "Parolayı değiştir", - "confirm": "Onayla", - "current_password": "Mevcut parola", - "edit": "Düzenle", - "footerlink_administration": "Yönetim", - "footerlink_documentation": "Belgelendirme", - "footerlink_edit": "Profilimi düzenle", - "footerlink_support": "Destek", - "fullname": "Ad Soyad", - "information": "Bilginiz", - "information_updated": "Bilgi güncellendi", - "invalid_domain": "Geçersiz domain", - "invalid_mail": "Geçersiz e-posta adresi", - "invalid_mailforward": "Geçersiz e-posta iletme adresi", - "logged_out": "Çıkış yapıldı", - "login": "Oturum aç", - "logout": "Çıkış Yap", - "mail_addresses": "E-mail adresleri", - "mail_already_used": "E-posta adresi zaten kullanımda", - "mail_forward": "E-posta yönlendirme adresi", - "missing_required_fields": "Gerekli alanları doldurun", - "new_forward": "newforward@myforeigndomain.org", - "new_mail": "newmail@mydomain.org", - "new_password": "Yeni parola", - "ok": "Tamam", - "password": "Parola", - "password_changed": "şifre değişti", - "password_changed_error": "Şifre değiştirilemedi", - "password_not_match": "Şifreler uyuşmuyor", - "please_login": "Bu içeriğe erişmek için lütfen giriş yapınız", - "please_login_from_portal": "Lütfen portaldan giriş yapınız", - "portal": "YunoHost Portalı", - "user_saving_fail": "Yeni kullanıcı bilgisi kaydedilemedi", - "username": "Kullanıcı adı", - "wrong_current_password": "Geçerli şifre yanlış", - "wrong_username_password": "Yanlış kullanıcı adı veya parola", - "redirection_error_unmanaged_domain": "Yönlendirme hatası: Yönetilmeyen alan", - "redirection_error_invalid_url": "Yönlendirme hatası: Geçersiz URL", - "good_practices_about_user_password": "En az 8 karakterden oluşan bir kullanıcı şifresi seçin - daha uzun olanları (örneğin bir şifre) ve / veya çeşitli karakterleri (büyük harf, küçük harf, rakam ve özel karakterler) kullanmak iyi bir uygulamadır.", - "password_too_simple_4": "Şifrenin en az 12 karakter uzunluğunda olması ve rakam, üst, alt ve özel karakterler içermesi gerekir", - "password_too_simple_3": "Şifrenin en az 8 karakter uzunluğunda olması ve rakam, üst, alt ve özel karakterler içermesi gerekir", - "password_too_simple_2": "Şifrenin en az 8 karakter uzunluğunda olması ve rakam, üst ve alt karakterler içermesi gerekir", - "password_too_simple_1": "Şifre en az 8 karakter uzunluğunda olmalı", - "password_listed": "Bu şifre dünyada en çok kullanılan şifreler arasındadır. Lütfen biraz daha benzersiz bir şey seçin." -} diff --git a/portal/locales/uk.json b/portal/locales/uk.json deleted file mode 100644 index 218d70f..0000000 --- a/portal/locales/uk.json +++ /dev/null @@ -1,49 +0,0 @@ -{ - "cancel": "Скасувати", - "logged_out": "Ви вийшли з системи", - "footerlink_administration": "Адміністрація", - "footerlink_support": "Підтримка", - "footerlink_documentation": "Документація", - "footerlink_edit": "Редагувати мій профіль", - "redirection_error_unmanaged_domain": "Помилка перенаправлення: Некерований домен", - "redirection_error_invalid_url": "Помилка перенаправлення: Недійсна URL-адреса", - "please_login_from_portal": "Увійдіть у систему з порталу", - "please_login": "Увійдіть, щоб отримати доступ до цього вмісту", - "wrong_username_password": "Неправильне ім'я користувача або пароль", - "missing_required_fields": "Заповніть необхідні поля", - "user_saving_fail": "Не вдалося зберегти нові відомості користувача", - "information_updated": "Відомості оновлено", - "mail_already_used": "Адреса е-пошти вже використовується", - "invalid_mailforward": "Недійсна адреса переадресації е-пошти", - "invalid_domain": "Недійсний домен у", - "invalid_mail": "Недійсна адреса е-пошти", - "wrong_current_password": "Поточний пароль неправильний", - "good_practices_about_user_password": "Виберіть пароль користувача щонайменше 8 символів - хоча це хороша практика використовувати довші (тобто фрази-гасла) та/або використовувати різні символи (великі, малі, числа та спеціальні символи).", - "password_too_simple_4": "Пароль повинен бути щонайменше 12 символів довжиною і містити числа, верхній, нижній регістри та спеціальні символи", - "password_too_simple_3": "Пароль повинен бути щонайменше 8 символів довжиною і містити числа, верхній, нижній регістри та спеціальні символи", - "password_too_simple_2": "Пароль повинен бути щонайменше 8 символів довжиною і містити числа, верхній та нижній регістри", - "password_too_simple_1": "Пароль має складатися не менше ніж з 8 символів", - "password_listed": "Цей пароль є одним з найбільш використовуваних паролів у світі. Будь ласка, виберіть щось трохи більш неповторюване.", - "password_not_match": "Паролі не збігаються", - "password_changed_error": "Не вдалося змінити пароль", - "password_changed": "Пароль змінено", - "logout": "Вийти", - "login": "Увійти", - "confirm": "Підтвердити", - "new_password": "Новий пароль", - "current_password": "Поточний пароль", - "edit": "Редагувати", - "change_password": "Змінити пароль", - "add_forward": "Додайте адресу переадресації е-пошти", - "add_mail": "Додайте аліас е-пошти", - "new_forward": "novapereadresaciya@myforeigndomain.org", - "new_mail": "novaeposhta@mydomain.org", - "mail_forward": "Адреса переадресації е-пошти", - "mail_addresses": "Адреси е-пошти", - "fullname": "Повне ім'я", - "username": "Ім'я користувача", - "information": "Ваші відомості", - "portal": "Портал YunoHost", - "password": "Пароль", - "ok": "Гаразд" -} diff --git a/portal/locales/zh_Hans.json b/portal/locales/zh_Hans.json deleted file mode 100644 index a186ae8..0000000 --- a/portal/locales/zh_Hans.json +++ /dev/null @@ -1,49 +0,0 @@ -{ - "footerlink_administration": "管理", - "footerlink_support": "支持", - "footerlink_documentation": "文献资料", - "footerlink_edit": "编辑我的个人资料", - "redirection_error_unmanaged_domain": "重定向错误:非托管域", - "redirection_error_invalid_url": "重定向错误:无效的 URL", - "please_login_from_portal": "请从门户登录", - "please_login": "请登录以访问此内容", - "logged_out": "登出", - "wrong_username_password": "错误的用户名或密码", - "missing_required_fields": "填写必填项", - "user_saving_fail": "无法保存新的用户信息", - "information_updated": "信息已更新", - "mail_already_used": "电子邮件地址已被使用", - "invalid_mailforward": "无效的电子邮件转发地址", - "invalid_domain": "无效的域", - "invalid_mail": "无效的邮件地址", - "wrong_current_password": "当前密码错误", - "good_practices_about_user_password": "选择至少8个字符的用户密码-尽管使用较长的用户密码(即密码短语)和/或使用各种字符(大写,小写,数字和特殊字符)是一种很好的做法。", - "password_too_simple_4": "密码长度至少为12个字符,并且包含数字,大写,小写和特殊字符", - "password_too_simple_3": "密码长度至少为8个字符,并且包含数字,大写,小写和特殊字符", - "password_too_simple_2": "密码长度至少为8个字符,并且包含数字,大写和小写字符", - "password_too_simple_1": "密码长度至少为8个字符", - "password_listed": "该密码是世界上最常用的密码之一。 请选择一些更独特的东西。", - "password_not_match": "密码不匹配", - "password_changed_error": "无法更改密码", - "password_changed": "密码已更改", - "logout": "登出", - "login": "登录", - "confirm": "确认", - "new_password": "新密码", - "current_password": "当前密码", - "edit": "编辑", - "change_password": "更改密码", - "cancel": "取消", - "ok": "好", - "add_forward": "添加电子邮件转发地址", - "add_mail": "添加电子邮件别名", - "new_forward": "新前进@我的外国域名.org", - "new_mail": "新邮件@我的域名.org", - "mail_forward": "邮件转发地址", - "mail_addresses": "电子邮件地址", - "fullname": "全名", - "password": "密码", - "username": "用户名", - "information": "您的资料", - "portal": "YunoHost门户" -} diff --git a/portal/login.html b/portal/login.html deleted file mode 100644 index 0b176b9..0000000 --- a/portal/login.html +++ /dev/null @@ -1,13 +0,0 @@ - diff --git a/portal/password.html b/portal/password.html deleted file mode 100644 index 9441db0..0000000 --- a/portal/password.html +++ /dev/null @@ -1,38 +0,0 @@ - - -
- -
- {{t_good_practices_about_user_password}} -
- -
- -
-
- - -
-
-
-
- - - -
-
- {{t_cancel}} - -
-
-
-
diff --git a/portal/portal.html b/portal/portal.html deleted file mode 100644 index c95ab04..0000000 --- a/portal/portal.html +++ /dev/null @@ -1,25 +0,0 @@ - - -
- -
diff --git a/vendor/luajwtjitsi/LICENSE b/vendor/luajwtjitsi/LICENSE new file mode 100644 index 0000000..8244556 --- /dev/null +++ b/vendor/luajwtjitsi/LICENSE @@ -0,0 +1,21 @@ +The MIT License (MIT) + +Copyright (c) 2014 + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/vendor/luajwtjitsi/luajwtjitsi.lua b/vendor/luajwtjitsi/luajwtjitsi.lua new file mode 100644 index 0000000..bbd383b --- /dev/null +++ b/vendor/luajwtjitsi/luajwtjitsi.lua @@ -0,0 +1,259 @@ +local cjson_safe = require 'cjson.safe' +local basexx = require 'basexx' +local digest = require 'openssl.digest' +local hmac = require 'openssl.hmac' +local pkey = require 'openssl.pkey' + +-- Generates an RSA signature of the data. +-- @param data The data to be signed. +-- @param key The private signing key in PEM format. +-- @param algo The digest algorithm to user when generating the signature: sha256, sha384, or sha512. +-- @return The signature or nil and an error message. +local function signRS (data, key, algo) + local privkey = pkey.new(key) + if privkey == nil then + return nil, 'Not a private PEM key' + else + local datadigest = digest.new(algo):update(data) + return privkey:sign(datadigest) + end +end + +-- Verifies an RSA signature on the data. +-- @param data The signed data. +-- @param signature The signature to be verified. +-- @param key The public key of the signer. +-- @param algo The digest algorithm to user when generating the signature: sha256, sha384, or sha512. +-- @return True if the signature is valid, false otherwise. Also returns false if the key is invalid. +local function verifyRS (data, signature, key, algo) + local pubkey = pkey.new(key) + if pubkey == nil then + return false + end + + local datadigest = digest.new(algo):update(data) + return pubkey:verify(signature, datadigest) +end + +local alg_sign = { + ['HS256'] = function(data, key) return hmac.new(key, 'sha256'):final(data) end, + ['HS384'] = function(data, key) return hmac.new(key, 'sha384'):final(data) end, + ['HS512'] = function(data, key) return hmac.new(key, 'sha512'):final(data) end, + ['RS256'] = function(data, key) return signRS(data, key, 'sha256') end, + ['RS384'] = function(data, key) return signRS(data, key, 'sha384') end, + ['RS512'] = function(data, key) return signRS(data, key, 'sha512') end +} + +local alg_verify = { + ['HS256'] = function(data, signature, key) return signature == alg_sign['HS256'](data, key) end, + ['HS384'] = function(data, signature, key) return signature == alg_sign['HS384'](data, key) end, + ['HS512'] = function(data, signature, key) return signature == alg_sign['HS512'](data, key) end, + ['RS256'] = function(data, signature, key) return verifyRS(data, signature, key, 'sha256') end, + ['RS384'] = function(data, signature, key) return verifyRS(data, signature, key, 'sha384') end, + ['RS512'] = function(data, signature, key) return verifyRS(data, signature, key, 'sha512') end +} + +-- Splits a token into segments, separated by '.'. +-- @param token The full token to be split. +-- @return A table of segments. +local function split_token(token) + local segments={} + for str in string.gmatch(token, "([^\\.]+)") do + table.insert(segments, str) + end + return segments +end + +-- Parses a JWT token into it's header, body, and signature. +-- @param token The JWT token to be parsed. +-- @return A JSON header and body represented as a table, and a signature. +local function parse_token(token) + local segments=split_token(token) + if #segments ~= 3 then + return nil, nil, nil, "Invalid token" + end + + local header, err = cjson_safe.decode(basexx.from_url64(segments[1])) + if err then + return nil, nil, nil, "Invalid header" + end + + local body, err = cjson_safe.decode(basexx.from_url64(segments[2])) + if err then + return nil, nil, nil, "Invalid body" + end + + local sig, err = basexx.from_url64(segments[3]) + if err then + return nil, nil, nil, "Invalid signature" + end + + return header, body, sig +end + +-- Removes the signature from a JWT token. +-- @param token A JWT token. +-- @return The token without its signature. +local function strip_signature(token) + local segments=split_token(token) + if #segments ~= 3 then + return nil, nil, nil, "Invalid token" + end + + table.remove(segments) + return table.concat(segments, ".") +end + +-- Verifies that a claim is in a list of allowed claims. Allowed claims can be exact values, or the +-- catch all wildcard '*'. +-- @param claim The claim to be verified. +-- @param acceptedClaims A table of accepted claims. +-- @return True if the claim was allowed, false otherwise. +local function verify_claim(claim, acceptedClaims) + for i, accepted in ipairs(acceptedClaims) do + if accepted == '*' then + return true; + end + if claim == accepted then + return true; + end + end + + return false; +end + +local M = {} + +-- Encodes the data into a signed JWT token. +-- @param data The data the put in the body of the JWT token. +-- @param key The key to use for signing the JWT token. +-- @param alg The signature algorithm to use: HS256, HS384, HS512, RS256, RS384, or RS512. +-- @param header Additional values to put in the JWT header. +-- @param The resulting JWT token, or nil and an error message. +function M.encode(data, key, alg, header) + if type(data) ~= 'table' then return nil, "Argument #1 must be table" end + if type(key) ~= 'string' then return nil, "Argument #2 must be string" end + + alg = alg or "HS256" + + if not alg_sign[alg] then + return nil, "Algorithm not supported" + end + + header = header or {} + + header['typ'] = 'JWT' + header['alg'] = alg + + local headerEncoded, err = cjson_safe.encode(header) + if headerEncoded == nil then + return nil, err + end + + local dataEncoded, err = cjson_safe.encode(data) + if dataEncoded == nil then + return nil, err + end + + local segments = { + basexx.to_url64(headerEncoded), + basexx.to_url64(dataEncoded) + } + + local signing_input = table.concat(segments, ".") + local signature, error = alg_sign[alg](signing_input, key) + if signature == nil then + return nil, error + end + + segments[#segments+1] = basexx.to_url64(signature) + + return table.concat(segments, ".") +end + +-- Verify that the token is valid, and if it is return the decoded JSON payload data. +-- @param token The token to verify. +-- @param expectedAlgo The signature algorithm the caller expects the token to be signed with: +-- HS256, HS384, HS512, RS256, RS384, or RS512. +-- @param key The verification key used for the signature. +-- @param acceptedIssuers Optional table of accepted issuers. If not nil, the 'iss' claim will be +-- checked against this list. +-- @param acceptedAudiences Optional table of accepted audiences. If not nil, the 'aud' claim will +-- be checked against this list. +-- @return A table representing the JSON body of the token, or nil and an error message. +function M.verify(token, expectedAlgo, key, acceptedIssuers, acceptedAudiences) + if type(token) ~= 'string' then return nil, "token argument must be string" end + if type(expectedAlgo) ~= 'string' then return nil, "algorithm argument must be string" end + if type(key) ~= 'string' then return nil, "key argument must be string" end + if acceptedIssuers ~= nil and type(acceptedIssuers) ~= 'table' then + return nil, "acceptedIssuers argument must be table" + end + if acceptedAudiences ~= nil and type(acceptedAudiences) ~= 'table' then + return nil, "acceptedAudiences argument must be table" + end + + if not alg_verify[expectedAlgo] then + return nil, "Algorithm not supported" + end + + local header, body, sig, err = parse_token(token) + if err ~= nil then + return nil, err + end + + -- Validate header + if not header.typ or header.typ ~= "JWT" then + return nil, "Invalid typ" + end + + if not header.alg or header.alg ~= expectedAlgo then + return nil, "Invalid or incorrect alg" + end + + -- Validate signature + if not alg_verify[expectedAlgo](strip_signature(token), sig, key) then + return nil, 'Invalid signature' + end + + -- Validate body + if body.exp and type(body.exp) ~= "number" then + return nil, "exp must be number" + end + + if body.nbf and type(body.nbf) ~= "number" then + return nil, "nbf must be number" + end + + + if body.exp and os.time() >= body.exp then + return nil, "Not acceptable by exp" + end + + if body.nbf and os.time() < body.nbf then + return nil, "Not acceptable by nbf" + end + + if acceptedIssuers ~= nil then + local issClaim = body.iss; + if issClaim == nil then + return nil, "'iss' claim is missing"; + end + if not verify_claim(issClaim, acceptedIssuers) then + return nil, "invalid 'iss' claim"; + end + end + + if acceptedAudiences ~= nil then + local audClaim = body.aud; + if audClaim == nil then + return nil, "'aud' claim is missing"; + end + if not verify_claim(audClaim, acceptedAudiences) then + return nil, "invalid 'aud' claim"; + end + end + + return body +end + +return M From ea0bc8a89c6e182c2b57c757c0f7126bd3e3d586 Mon Sep 17 00:00:00 2001 From: Alexandre Aubin Date: Tue, 11 Jul 2023 22:41:09 +0200 Subject: [PATCH 02/10] portalapi: propagate changes on the new API, decrypt the AES256-encrypted password found in user cookie to be able to construct the basic auth headers --- access.lua | 2 +- config.lua | 2 +- helpers.lua | 29 +++++++++++++++++++---------- 3 files changed, 21 insertions(+), 12 deletions(-) diff --git a/access.lua b/access.lua index 0e8090e..ecdcfad 100644 --- a/access.lua +++ b/access.lua @@ -126,7 +126,7 @@ if hlp.has_access(permission) then -- If Basic Authorization header are enable for this permission, -- add it to the response if permission["auth_header"] then - hlp.set_headers() + hlp.set_basic_auth_header() end end diff --git a/config.lua b/config.lua index 7531cb4..85be372 100644 --- a/config.lua +++ b/config.lua @@ -20,7 +20,7 @@ function get_cookie_secret() local conf_ = json.decode(conf_file:read("*all")) conf_file:close() - local cookie_secret_path = conf_["cookie_secret_file"] + local cookie_secret_path = conf_["cookie_secret_file"] or "/etc/yunohost/.ssowat_cookie_secret" local cookie_secret_file = assert(io.open(cookie_secret_path, "r"), "Cookie secret file is missing") local cookie_secret = cookie_secret_file:read("*all") cookie_secret_file:close() diff --git a/helpers.lua b/helpers.lua index 4d58120..4fbeea2 100644 --- a/helpers.lua +++ b/helpers.lua @@ -11,7 +11,8 @@ local cache = ngx.shared.cache local conf = config.get_config() local Logging = require("logging") local jwt = require("vendor.luajwtjitsi.luajwtjitsi") - +local cipher = require('openssl.cipher') +local mime = require("mime") local appender = function(self, level, message) @@ -120,17 +121,32 @@ function check_authentication() if err ~= nil then -- FIXME : log an authentication error to be caught by fail2ban ? or should it happen somewhere else ? (check the old code) authUser = nil + authPasswordEnc = nil is_logged_in = false return is_logged_in end + -- cf. src/authenticators/ldap_ynhuser.py in YunoHost to see how the cookie is actually created authUser = decoded["user"] + authPasswordEnc = decoded["pwd"] is_logged_in = true -- Gotta update authUser and is_logged_in return is_logged_in end +-- Extract the user password from cookie, +-- needed to create the basic auth header +function decrypt_user_password() + -- authPasswordEnc is actually a string formatted as | + -- For example: ctl8kk5GevYdaA5VZ2S88Q==|yTAzCx0Gd1+MCit4EQl9lA== + -- The password is encoded using AES-256-CBC with the IV being the right-side data + local password_enc_b64, iv_b64 = authPasswordEnc:match("([^|]+)|([^|]+)") + local password_enc = mime.unb64(password_enc_b64) + local iv = mime.unb64(iv_b64) + return cipher.new('aes-256-cbc'):decrypt(cookie_secret, iv):final(password_enc) +end + -- Check whether a user is allowed to access a URL using the `permissions` directive -- of the configuration file function has_access(permission, user) @@ -172,21 +188,14 @@ function element_is_in_table(element, table) return false end - -- Set the authentication headers in order to pass credentials to the -- application underneath. -function set_headers(user) +function set_basic_auth_header(user) local user = user or authUser -- Set `Authorization` header to enable HTTP authentification ngx.req.set_header("Authorization", "Basic "..ngx.encode_base64( - user..":"..cache:get(user.."-password") + user..":"..decrypt_user_password() )) - - -- Set optionnal additional headers (typically to pass email address) - for k, v in pairs(conf["additional_headers"]) do - ngx.req.set_header(k, cache:get(user.."-"..v)) - end - end From df094ea0e3692542090715bede0400b9cc46a381 Mon Sep 17 00:00:00 2001 From: Alexandre Aubin Date: Thu, 13 Jul 2023 16:41:17 +0200 Subject: [PATCH 03/10] Cleanup unused stuff --- CONTRIBUTORS.md | 59 ------------------------------------------------- access.lua | 8 +------ config.lua | 7 ++---- helpers.lua | 56 +++++++++++----------------------------------- init.lua | 2 +- 5 files changed, 17 insertions(+), 115 deletions(-) delete mode 100644 CONTRIBUTORS.md diff --git a/CONTRIBUTORS.md b/CONTRIBUTORS.md deleted file mode 100644 index 2a133a3..0000000 --- a/CONTRIBUTORS.md +++ /dev/null @@ -1,59 +0,0 @@ -SSOwat contributors -=================== - -YunoHost is built and maintained by the YunoHost project community. -Everyone is encouraged to submit issues and changes, and to contribute in other ways -- see https://yunohost.org/contribute to find out how. - --- - -SSOwat was initially built by Kload, for YunoHost v2. - -Design was created by Théodore 'Tozz' Faure and Thomas 'Courgette' Lebeau and implemented by Courgette himself. - -Most of code was written by Kload and opi, with help of numerous contributors. - -Translation is made by a bunch of lovely people over the world. - -We would like to thank anyone who ever helped the YunoHost project, and especially the SSOwat project <3 - - -SSOwat Contributors -------------------- - -- Kload -- opi -- Jérôme Lebleu -- Maniack Crudelis -- Julien 'ju' Malik -- M5oul -- Alexander Chalikiopoulos -- Adrien 'Beudbeud' Beudin -- Hnk Reno -- Laurent 'Bram' Peuch -- Loïc 'dzamlo' Damien -- sidddy - - -SSOwat Translators ------------------- - -### French - -- Jean-Baptiste Holcroft - -### German - -- Felix Bartels - -### Hindi - -- Anmol - -### Portuguese - -- Deleted User -- Trollken - -### Spanish - -- Juanu diff --git a/access.lua b/access.lua index ecdcfad..c3254fb 100644 --- a/access.lua +++ b/access.lua @@ -6,11 +6,8 @@ -- request is handled: redirected, forbidden, bypassed or served. -- --- Get the `cache` persistent shared table -local cache = ngx.shared.cache - -- Import helpers -local hlp = require "helpers" +local hlp = require("helpers") -- Initialize and get configuration hlp.refresh_config() @@ -120,9 +117,6 @@ end if hlp.has_access(permission) then if is_logged_in then - -- If the user is logged in, refresh_cache - --hlp.refresh_user_cache() - -- If Basic Authorization header are enable for this permission, -- add it to the response if permission["auth_header"] then diff --git a/config.lua b/config.lua index 85be372..244268a 100644 --- a/config.lua +++ b/config.lua @@ -6,8 +6,8 @@ module('config', package.seeall) -local lfs = require "lfs" -local json = require "json" +local lfs = require("lfs") +local json = require("json") local config_attributes = nil local config_persistent_attributes = nil @@ -28,8 +28,6 @@ function get_cookie_secret() return cookie_secret end - - function compare_attributes(file_attributes1, file_attributes2) if file_attributes1 == nil and file_attributes2 == nil then return true @@ -92,7 +90,6 @@ function get_config() portal_path = "/ssowat/", local_portal_domain = "yunohost.local", domains = { conf["portal_domain"], "yunohost.local" }, - skipped_urls = {}, logging = "fatal", -- Only log fatal messages by default (so apriori nothing) permissions = {} } diff --git a/helpers.lua b/helpers.lua index 4fbeea2..44d344f 100644 --- a/helpers.lua +++ b/helpers.lua @@ -7,12 +7,12 @@ module('helpers', package.seeall) -local cache = ngx.shared.cache local conf = config.get_config() local Logging = require("logging") local jwt = require("vendor.luajwtjitsi.luajwtjitsi") local cipher = require('openssl.cipher') local mime = require("mime") +local rex = require("rex_pcre") local appender = function(self, level, message) @@ -28,10 +28,6 @@ end local logger = Logging.new(appender) --logger:setLevel(logger.DEBUG) -- FIXME - --- Import Perl regular expressions library -local rex = require "rex_pcre" - local is_logged_in = false function refresh_config() @@ -42,6 +38,18 @@ function get_config() return conf end +function element_is_in_table(element, table) + if table then + for _, el in pairs(table) do + if el == element then + return true + end + end + end + + return false +end + -- The 'match' function uses PCRE regex as default -- If '%.' is found in the regex, we assume it's a LUA regex (legacy code) -- 'match' returns the matched text. @@ -53,32 +61,6 @@ function match(s, regex) end end --- Read a FS stored file -function read_file(file) - local f = io.open(file, "rb") - if not f then return false end - local content = f:read("*all") - f:close() - return content -end - - --- Lua has no sugar :D -function is_in_table(t, v) - for key, value in ipairs(t) do - if value == v then return key end - end -end - - --- Get the index of a value in a table -function index_of(t,val) - for k,v in ipairs(t) do - if v == val then return k end - end -end - - -- Test whether a string starts with another function string.starts(String, Start) if not String then @@ -176,18 +158,6 @@ function has_access(permission, user) end end -function element_is_in_table(element, table) - if table then - for _, el in pairs(table) do - if el == element then - return true - end - end - end - - return false -end - -- Set the authentication headers in order to pass credentials to the -- application underneath. function set_basic_auth_header(user) diff --git a/init.lua b/init.lua index 4cef7ca..a81ad72 100644 --- a/init.lua +++ b/init.lua @@ -19,7 +19,7 @@ script_path = string.sub(debug.getinfo(1).source, 2, -9) package.path = package.path .. ";"..script_path.."?.lua" -- Load libraries -local config = require "config" +local config = require("config") -- Load cookie secret cookie_secret = config.get_cookie_secret() From 02952d0202fcf452dd067676ca8e5487b58106b6 Mon Sep 17 00:00:00 2001 From: Alexandre Aubin Date: Sat, 15 Jul 2023 19:51:31 +0200 Subject: [PATCH 04/10] Moar epic refactoring ... merge 'helpers.lua' inside 'access.lua' to reduce complexity ... --- access.lua | 275 +++++++++++++++++++++++++++++++++++++++++++--------- config.lua | 3 + helpers.lua | 218 ----------------------------------------- init.lua | 39 ++++++-- 4 files changed, 263 insertions(+), 272 deletions(-) delete mode 100644 helpers.lua diff --git a/access.lua b/access.lua index c3254fb..d4ef8e3 100644 --- a/access.lua +++ b/access.lua @@ -2,64 +2,153 @@ -- access.lua -- -- This file is executed at every request on a protected domain or server. --- You just have to read this file normally to understand how and when the --- request is handled: redirected, forbidden, bypassed or served. -- --- Import helpers -local hlp = require("helpers") - --- Initialize and get configuration -hlp.refresh_config() -local conf = hlp.get_config() - -- Just a note for the client to know that he passed through the SSO ngx.header["X-SSO-WAT"] = "You've just been SSOed" -local is_logged_in = hlp.check_authentication() +-- Misc imports +local jwt = require("vendor.luajwtjitsi.luajwtjitsi") +local cipher = require('openssl.cipher') +local rex = require("rex_pcre") --- --- 3. REDIRECTED URLS --- --- If the URL matches one of the `redirected_urls` in the configuration file, --- just redirect to the target URL/URI --- +-- ########################################################################### +-- 0. Misc helpers because Lua has no sugar ... +-- ########################################################################### -function detect_redirection(redirect_url) - if hlp.string.starts(redirect_url, "http://") - or hlp.string.starts(redirect_url, "https://") then - return hlp.redirect(redirect_url) - elseif hlp.string.starts(redirect_url, "/") then - return hlp.redirect(ngx.var.scheme.."://"..ngx.var.host..redirect_url) +-- Get configuration (we do this here, the conf is re-read every time unless +-- the file's timestamp didnt change) +local config = require("config") +local conf = config.get_config() + +-- The 'match' function uses PCRE regex as default +-- If '%.' is found in the regex, we assume it's a LUA regex (legacy code) +-- 'match' returns the matched text. +function match(s, regex) + if not string.find(regex, '%%%.') then + return rex.match(s, regex) else - return hlp.redirect(ngx.var.scheme.."://"..redirect_url) + return string.match(s,regex) + end +end + +-- Test whether a string starts with another +function string.starts(String, Start) + if not String then + return false + end + return string.sub(String, 1, string.len(Start)) == Start +end + +-- Convert a table of arguments to an URI string +function uri_args_string(args) + if not args then + args = ngx.req.get_uri_args() + end + String = "?" + for k,v in pairs(args) do + String = String..tostring(k).."="..tostring(v).."&" + end + return string.sub(String, 1, string.len(String) - 1) +end + +-- ########################################################################### +-- 1. AUTHENTICATION +-- Check wether or not this is a logged-in user +-- ########################################################################### + +function check_authentication() + + -- cf. src/authenticators/ldap_ynhuser.py in YunoHost to see how the cookie is actually created + + local cookie = ngx.var["cookie_" .. conf["cookie_name"]] + + decoded, err = jwt.verify(cookie, "HS256", cookie_secret) + + -- FIXME : we might want also a way to identify expired/invalidated cookies, + -- e.g. a user that got deleted after being logged in ... + + if err ~= nil then + return false, nil, nil + else + return true, decoded["user"], decoded["pwd"] + end +end + +local is_logged_in, authUser, authPasswordEnc = check_authentication() + +-- ########################################################################### +-- 2. REDIRECTED URLS +-- If the URL matches one of the `redirected_urls` in the configuration file, +-- just redirect to the target URL/URI +-- ########################################################################### + +function redirect(url) + logger:debug("Redirecting to "..url) + -- For security reason we don't allow to redirect onto unknown domain + -- And if `uri_args.r` contains line break, someone is probably trying to + -- pass some additional headers + + -- This should cover the following cases: + -- https://malicious.domain.tld/foo/bar + -- http://malicious.domain.tld/foo/bar + -- https://malicious.domain.tld:1234/foo + -- malicious.domain.tld/foo/bar + -- (/foo/bar, in which case no need to make sure it's prefixed with https://) + if not string.starts(url, "/") and not string.starts(url, "http://") and not string.starts(url, "https://") then + url = "https://"..url + end + local is_known_domain = string.starts(url, "/") + for _, domain in ipairs(conf["domains"]) do + if is_known_domain then + break + end + -- Replace - character to %- because - is a special char for regex in lua + domain = string.gsub(domain, "%-","%%-") + is_known_domain = is_known_domain or url:match("^https?://"..domain.."/?") ~= nil + end + if string.match(url, "(.*)\n") or not is_known_domain then + logger:debug("Unauthorized redirection to "..url) + url = conf.portal_url + end + return ngx.redirect(url) +end + +function convert_to_absolute_url(redirect_url) + if string.starts(redirect_url, "http://") + or string.starts(redirect_url, "https://") then + return redirect_url + elseif string.starts(redirect_url, "/") then + return ngx.var.scheme.."://"..ngx.var.host..redirect_url + else + return ngx.var.scheme.."://"..redirect_url end end if conf["redirected_urls"] then for url, redirect_url in pairs(conf["redirected_urls"]) do - if url == ngx.var.host..ngx.var.uri..hlp.uri_args_string() - or url == ngx.var.scheme.."://"..ngx.var.host..ngx.var.uri..hlp.uri_args_string() - or url == ngx.var.uri..hlp.uri_args_string() then - hlp.logger:debug("Requested URI is in redirected_urls") - detect_redirection(redirect_url) + if url == ngx.var.host..ngx.var.uri..uri_args_string() + or url == ngx.var.scheme.."://"..ngx.var.host..ngx.var.uri..uri_args_string() + or url == ngx.var.uri..uri_args_string() then + logger:debug("Requested URI is in redirected_urls") + redirect(convert_to_absolute_url(redirect_url)) end end end if conf["redirected_regex"] then for regex, redirect_url in pairs(conf["redirected_regex"]) do - if hlp.match(ngx.var.host..ngx.var.uri..hlp.uri_args_string(), regex) - or hlp.match(ngx.var.scheme.."://"..ngx.var.host..ngx.var.uri..hlp.uri_args_string(), regex) - or hlp.match(ngx.var.uri..hlp.uri_args_string(), regex) then - hlp.logger:debug("Requested URI is in redirected_regex") - detect_redirection(redirect_url) + if match(ngx.var.host..ngx.var.uri..uri_args_string(), regex) + or match(ngx.var.scheme.."://"..ngx.var.host..ngx.var.uri..uri_args_string(), regex) + or match(ngx.var.uri..uri_args_string(), regex) then + logger:debug("Requested URI is in redirected_regex") + redirect(convert_to_absolute_url(redirect_url)) end end end --- --- 4. IDENTIFY THE RELEVANT PERMISSION +-- ########################################################################### +-- 3. IDENTIFY PERMISSION MATCHING THE REQUESTED URL -- -- In particular, the conf is filled with permissions such as: -- @@ -78,7 +167,7 @@ end -- -- And we find the best matching permission by trying to match the request uri -- against all the uris rules/regexes from the conf and keep the longest matching one. --- +-- ########################################################################### permission = nil longest_url_match = "" @@ -96,7 +185,7 @@ for permission_name, permission_infos in pairs(conf["permissions"]) do url = "^"..url end - local m = hlp.match(ngx_full_url, url) + local m = match(ngx_full_url, url) if m ~= nil and string.len(m) > string.len(longest_url_match) then longest_url_match = m permission = permission_infos @@ -106,33 +195,129 @@ for permission_name, permission_infos in pairs(conf["permissions"]) do end end +-- ########################################################################### +-- 4. CHECK USER HAS ACCESS +-- Either because the permission is set as "public: true", +-- Or because the logged-in user is listed in the "users" list of the perm +-- ########################################################################### + +function element_is_in_table(element, table) + if table then + for _, el in pairs(table) do + if el == element then + return true + end + end + end + + return false +end + +-- Check whether a user is allowed to access a URL using the `permissions` directive +-- of the configuration file +function check_has_access(permission) + + if permission == nil then + logger:debug("No permission matching request for "..ngx.var.uri) + return false + + -- Public access + if authUser == nil or permission["public"] then + user = authUser or "A visitor" + logger:debug(user.." tries to access "..ngx.var.uri.." (corresponding perm: "..permission["id"]..")") + return permission["public"] + end + + logger:debug("User "..authUser.." tries to access "..ngx.var.uri.." (corresponding perm: "..permission["id"]..")") + + -- The user has permission to access the content if he is in the list of allowed users + if element_is_in_table(authUser, permission["users"]) then + logger:debug("User "..authUser.." can access "..ngx.var.host..ngx.var.uri..uri_args_string()) + return true + else + logger:debug("User "..authUser.." cannot access "..ngx.var.uri) + return false + end +end + +has_access = check_has_access(permission) + + +-- ########################################################################### +-- 5. CLEAR USER-PROVIDED AUTH HEADER -- +-- Which could be spoofing attempts +-- Unfortunately we can't yolo-clear them on every route because some +-- apps use legit basic auth mechanism ... -- --- 5. APPLY PERMISSION +-- "Remote user" refers to the fact that Basic Auth headers is coupled to +-- the $remote_user var in nginx, typically used by PHP apps +-- ########################################################################### + +if permission ~= nil and ngx.req.get_headers()["Authorization"] ~= nil then + perm_user_remote_user_var_in_nginx_conf = permission["use_remote_user_var_in_nginx_conf"] + if perm_user_remote_user_var_in_nginx_conf == nil or perm_user_remote_user_var_in_nginx_conf == true then + -- Ignore if not a Basic auth header + -- otherwise, we interpret this as a Auth header spoofing attempt and clear it + _, _, b64_cred = string.find(auth_header, "^Basic%s+(.+)$") + if b64_cred ~= nil then + ngx.req.clear_header("Authorization") + end + end +end + +-- ########################################################################### +-- 6. EFFECTIVELY PASS OR DENY ACCESS -- +-- If the user has access (either because app is public OR logged in + authorized) +-- -> pass + possibly inject the Basic Auth header on the fly such that the app can know which user is logged in -- +-- Otherwise, the user can't access +-- -> either because not logged in at all, in that case, redirect to the portal WITH a callback url to redirect to after logging in +-- -> or because user is logged in, but has no access .. in that case just redirect to the portal +-- ########################################################################### + +function set_basic_auth_header() + + -- cf. https://en.wikipedia.org/wiki/Basic_access_authentication + + -- authPasswordEnc is actually a string formatted as | + -- For example: ctl8kk5GevYdaA5VZ2S88Q==|yTAzCx0Gd1+MCit4EQl9lA== + -- The password is encoded using AES-256-CBC with the IV being the right-side data + -- cf. src/authenticators/ldap_ynhuser.py in YunoHost to see how the cookie is actually created + local password_enc_b64, iv_b64 = authPasswordEnc:match("([^|]+)|([^|]+)") + local password_enc = ngx.decode_base64(password_enc_b64) + local iv = ngx.decode_base64(iv_b64) + local password = cipher.new('aes-256-cbc'):decrypt(cookie_secret, iv):final(password_enc) + + -- Set `Authorization` header to enable HTTP authentification + ngx.req.set_header("Authorization", "Basic "..ngx.encode_base64( + authUser..":"..password + )) +end -- 1st case : client has access - -if hlp.has_access(permission) then +if has_access then if is_logged_in then -- If Basic Authorization header are enable for this permission, -- add it to the response if permission["auth_header"] then - hlp.set_basic_auth_header() + set_basic_auth_header() end end - return hlp.pass() + -- Pass + logger:debug("Allowing to pass through "..ngx.var.uri) + return -- 2nd case : no access ... redirect to portal / login form else if is_logged_in then - return hlp.redirect(conf.portal_url) + return redirect(conf.portal_url) else - local back_url = "https://" .. ngx.var.host .. ngx.var.uri .. hlp.uri_args_string() - return hlp.redirect(conf.portal_url.."?r="..ngx.encode_base64(back_url)) + local back_url = "https://" .. ngx.var.host .. ngx.var.uri .. uri_args_string() + return redirect(conf.portal_url.."?r="..ngx.encode_base64(back_url)) end end diff --git a/config.lua b/config.lua index 244268a..84515aa 100644 --- a/config.lua +++ b/config.lua @@ -14,6 +14,9 @@ local config_persistent_attributes = nil local conf = {} +local conf_path = "/etc/ssowat/conf.json" + + function get_cookie_secret() local conf_file = assert(io.open(conf_path, "r"), "Configuration file is missing") diff --git a/helpers.lua b/helpers.lua deleted file mode 100644 index 44d344f..0000000 --- a/helpers.lua +++ /dev/null @@ -1,218 +0,0 @@ --- --- helpers.lua --- --- This is a file called at every request by the `access.lua` file. It contains --- a set of useful functions related to HTTP and LDAP. --- - -module('helpers', package.seeall) - -local conf = config.get_config() -local Logging = require("logging") -local jwt = require("vendor.luajwtjitsi.luajwtjitsi") -local cipher = require('openssl.cipher') -local mime = require("mime") -local rex = require("rex_pcre") - -local appender = function(self, level, message) - - -- Output to log file - local fp = io.open(log_file, "a") - local str = string.format("[%-6s%s] %s\n", level:upper(), os.date(), message) - fp:write(str) - fp:close() - - return true -end - -local logger = Logging.new(appender) ---logger:setLevel(logger.DEBUG) -- FIXME - -local is_logged_in = false - -function refresh_config() - conf = config.get_config() -end - -function get_config() - return conf -end - -function element_is_in_table(element, table) - if table then - for _, el in pairs(table) do - if el == element then - return true - end - end - end - - return false -end - --- The 'match' function uses PCRE regex as default --- If '%.' is found in the regex, we assume it's a LUA regex (legacy code) --- 'match' returns the matched text. -function match(s, regex) - if not string.find(regex, '%%%.') then - return rex.match(s, regex) - else - return string.match(s,regex) - end -end - --- Test whether a string starts with another -function string.starts(String, Start) - if not String then - return false - end - return string.sub(String, 1, string.len(Start)) == Start -end - - --- Test whether a string ends with another -function string.ends(String, End) - return End=='' or string.sub(String, -string.len(End)) == End -end - - --- Convert a table of arguments to an URI string -function uri_args_string(args) - if not args then - args = ngx.req.get_uri_args() - end - String = "?" - for k,v in pairs(args) do - String = String..tostring(k).."="..tostring(v).."&" - end - return string.sub(String, 1, string.len(String) - 1) -end - - --- Validate authentification --- --- Check if the session cookies are set, and rehash server + client information --- to match the session hash. --- -function check_authentication() - - local token = ngx.var["cookie_" .. conf["cookie_name"]] - - decoded, err = jwt.verify(token, "HS256", cookie_secret) - - if err ~= nil then - -- FIXME : log an authentication error to be caught by fail2ban ? or should it happen somewhere else ? (check the old code) - authUser = nil - authPasswordEnc = nil - is_logged_in = false - return is_logged_in - end - - -- cf. src/authenticators/ldap_ynhuser.py in YunoHost to see how the cookie is actually created - authUser = decoded["user"] - authPasswordEnc = decoded["pwd"] - is_logged_in = true - - -- Gotta update authUser and is_logged_in - return is_logged_in -end - --- Extract the user password from cookie, --- needed to create the basic auth header -function decrypt_user_password() - -- authPasswordEnc is actually a string formatted as | - -- For example: ctl8kk5GevYdaA5VZ2S88Q==|yTAzCx0Gd1+MCit4EQl9lA== - -- The password is encoded using AES-256-CBC with the IV being the right-side data - local password_enc_b64, iv_b64 = authPasswordEnc:match("([^|]+)|([^|]+)") - local password_enc = mime.unb64(password_enc_b64) - local iv = mime.unb64(iv_b64) - return cipher.new('aes-256-cbc'):decrypt(cookie_secret, iv):final(password_enc) -end - --- Check whether a user is allowed to access a URL using the `permissions` directive --- of the configuration file -function has_access(permission, user) - user = user or authUser - - if permission == nil then - logger:debug("No permission matching request for "..ngx.var.uri) - return false - end - - -- Public access - if user == nil or permission["public"] then - user = user or "A visitor" - logger:debug(user.." tries to access "..ngx.var.uri.." (corresponding perm: "..permission["id"]..")") - return permission["public"] - end - - logger:debug("User "..user.." tries to access "..ngx.var.uri.." (corresponding perm: "..permission["id"]..")") - - -- The user has permission to access the content if he is in the list of allowed users - if element_is_in_table(user, permission["users"]) then - logger:debug("User "..user.." can access "..ngx.var.host..ngx.var.uri..uri_args_string()) - return true - else - logger:debug("User "..user.." cannot access "..ngx.var.uri) - return false - end -end - --- Set the authentication headers in order to pass credentials to the --- application underneath. -function set_basic_auth_header(user) - local user = user or authUser - -- Set `Authorization` header to enable HTTP authentification - ngx.req.set_header("Authorization", "Basic "..ngx.encode_base64( - user..":"..decrypt_user_password() - )) -end - - --- Set cookie and redirect (needed to properly set cookie) -function redirect(url) - logger:debug("Redirecting to "..url) - -- For security reason we don't allow to redirect onto unknown domain - -- And if `uri_args.r` contains line break, someone is probably trying to - -- pass some additional headers - - -- This should cover the following cases: - -- https://malicious.domain.tld/foo/bar - -- http://malicious.domain.tld/foo/bar - -- https://malicious.domain.tld:1234/foo - -- malicious.domain.tld/foo/bar - -- (/foo/bar, in which case no need to make sure it's prefixed with https://) - if not string.starts(url, "/") and not string.starts(url, "http://") and not string.starts(url, "https://") then - url = "https://"..url - end - local is_known_domain = string.starts(url, "/") - for _, domain in ipairs(conf["domains"]) do - if is_known_domain then - break - end - -- Replace - character to %- because - is a special char for regex in lua - domain = string.gsub(domain, "%-","%%-") - is_known_domain = is_known_domain or url:match("^https?://"..domain.."/?") ~= nil - end - if string.match(url, "(.*)\n") or not is_known_domain then - logger:debug("Unauthorized redirection to "..url) - url = conf.portal_url - end - return ngx.redirect(url) -end - - --- Set cookie and go on with the response (needed to properly set cookie) -function pass() - logger:debug("Allowing to pass through "..ngx.var.uri) - - -- When we are in the SSOwat portal, we need a default `content-type` - if string.ends(ngx.var.uri, "/") - or string.ends(ngx.var.uri, ".html") - or string.ends(ngx.var.uri, ".htm") - then - ngx.header["Content-Type"] = "text/html" - end - - return -end diff --git a/init.lua b/init.lua index a81ad72..06a47f8 100644 --- a/init.lua +++ b/init.lua @@ -3,31 +3,52 @@ -- -- This is the initialization file of SSOwat. It is called once at the Nginx -- server's start. --- Consequently, all the variables declared (along with libraries and +-- Consequently, all the variables declared (along with libraries and -- translations) in this file will be *persistent* from one HTTP request to -- another. -- --- Path of the configuration -conf_path = "/etc/ssowat/conf.json" -log_file = "/var/log/nginx/ssowat.log" - -- Remove prepending '@' & trailing 'init.lua' script_path = string.sub(debug.getinfo(1).source, 2, -9) - -- Include local libs in package.path package.path = package.path .. ";"..script_path.."?.lua" --- Load libraries -local config = require("config") - -- Load cookie secret +-- IMPORTANT (though to be confirmed?) +-- in this context, the code is ran as root therefore we don't have to +-- add www-data in the file permissions, which could otherwise lead +-- to comprised apps running with the www-data group to read the secret file? +local config = require("config") cookie_secret = config.get_cookie_secret() +-- +-- Init logger +-- + +local log_file = "/var/log/nginx/ssowat.log" + -- Make sure the log file exists and we can write in it io.popen("touch "..log_file) io.popen("chown www-data "..log_file) io.popen("chmod u+w "..log_file) +local Logging = require("logging") +local appender = function(self, level, message) + + -- Output to log file + local fp = io.open(log_file, "a") + local str = string.format("[%-6s%s] %s\n", level:upper(), os.date(), message) + fp:write(str) + fp:close() + + return true +end + +logger = Logging.new(appender) + +-- FIXME : how to set logging level ? +--logger:setLevel(logger.DEBUG) -- FIXME + + -- You should see that in your Nginx error logs by default ngx.log(ngx.INFO, "SSOwat ready") From 93ee6371ae923793a4dff0e0c7d3ee554abbc629 Mon Sep 17 00:00:00 2001 From: Alexandre Aubin Date: Sat, 15 Jul 2023 21:22:27 +0200 Subject: [PATCH 05/10] refactoring: drop the complex redirection check which was meant to check the callback URLs ... this is to be handled in the future new portal (or whatever is going to implement the callback redirection logic) --- access.lua | 52 +++++++++++++++------------------------------------- 1 file changed, 15 insertions(+), 37 deletions(-) diff --git a/access.lua b/access.lua index d4ef8e3..288c5a1 100644 --- a/access.lua +++ b/access.lua @@ -83,37 +83,6 @@ local is_logged_in, authUser, authPasswordEnc = check_authentication() -- just redirect to the target URL/URI -- ########################################################################### -function redirect(url) - logger:debug("Redirecting to "..url) - -- For security reason we don't allow to redirect onto unknown domain - -- And if `uri_args.r` contains line break, someone is probably trying to - -- pass some additional headers - - -- This should cover the following cases: - -- https://malicious.domain.tld/foo/bar - -- http://malicious.domain.tld/foo/bar - -- https://malicious.domain.tld:1234/foo - -- malicious.domain.tld/foo/bar - -- (/foo/bar, in which case no need to make sure it's prefixed with https://) - if not string.starts(url, "/") and not string.starts(url, "http://") and not string.starts(url, "https://") then - url = "https://"..url - end - local is_known_domain = string.starts(url, "/") - for _, domain in ipairs(conf["domains"]) do - if is_known_domain then - break - end - -- Replace - character to %- because - is a special char for regex in lua - domain = string.gsub(domain, "%-","%%-") - is_known_domain = is_known_domain or url:match("^https?://"..domain.."/?") ~= nil - end - if string.match(url, "(.*)\n") or not is_known_domain then - logger:debug("Unauthorized redirection to "..url) - url = conf.portal_url - end - return ngx.redirect(url) -end - function convert_to_absolute_url(redirect_url) if string.starts(redirect_url, "http://") or string.starts(redirect_url, "https://") then @@ -130,8 +99,8 @@ if conf["redirected_urls"] then if url == ngx.var.host..ngx.var.uri..uri_args_string() or url == ngx.var.scheme.."://"..ngx.var.host..ngx.var.uri..uri_args_string() or url == ngx.var.uri..uri_args_string() then - logger:debug("Requested URI is in redirected_urls") - redirect(convert_to_absolute_url(redirect_url)) + logger:debug("Found in redirected_urls, redirecting to "..url) + ngx.redirect(convert_to_absolute_url(redirect_url)) end end end @@ -141,8 +110,8 @@ if conf["redirected_regex"] then if match(ngx.var.host..ngx.var.uri..uri_args_string(), regex) or match(ngx.var.scheme.."://"..ngx.var.host..ngx.var.uri..uri_args_string(), regex) or match(ngx.var.uri..uri_args_string(), regex) then - logger:debug("Requested URI is in redirected_regex") - redirect(convert_to_absolute_url(redirect_url)) + logger:debug("Found in redirected_regex, redirecting to "..url) + ngx.redirect(convert_to_absolute_url(redirect_url)) end end end @@ -220,6 +189,7 @@ function check_has_access(permission) if permission == nil then logger:debug("No permission matching request for "..ngx.var.uri) return false + end -- Public access if authUser == nil or permission["public"] then @@ -242,7 +212,6 @@ end has_access = check_has_access(permission) - -- ########################################################################### -- 5. CLEAR USER-PROVIDED AUTH HEADER -- @@ -318,6 +287,15 @@ else return redirect(conf.portal_url) else local back_url = "https://" .. ngx.var.host .. ngx.var.uri .. uri_args_string() - return redirect(conf.portal_url.."?r="..ngx.encode_base64(back_url)) + + -- User ain't logged in, redirect to the portal where we expect the user to login, + -- then be redirected to the original URL by the portal, encoded as base64 + -- + -- NB. for security reason, the client/app handling the callback should check + -- that the back URL is legit, i.e it should be on the same domain (or a subdomain) + -- than the portal. Otherwise, a malicious actor could create a deceptive link + -- that would in fact redirect to a different domain, tricking the user that may + -- not realize this. + return ngx.redirect(portal_url.."?r="..ngx.encode_base64(back_url)) end end From 24b7630d3cc88975d1575f634fbde5e651a7c82c Mon Sep 17 00:00:00 2001 From: Alexandre Aubin Date: Sat, 15 Jul 2023 21:27:40 +0200 Subject: [PATCH 06/10] epic refactoring: refactor the 'portal url' logic, we shall now have a dict mapping domains to portal urls (which is anyway imposed by cookie management unless we reintroduce complex cross-domain authentication...) --- access.lua | 12 ++++++++++-- conf.json.example | 9 ++++----- config.lua | 34 +++------------------------------- 3 files changed, 17 insertions(+), 38 deletions(-) diff --git a/access.lua b/access.lua index 288c5a1..ad491cb 100644 --- a/access.lua +++ b/access.lua @@ -65,6 +65,8 @@ function check_authentication() decoded, err = jwt.verify(cookie, "HS256", cookie_secret) + -- FIXME : maybe also check that the cookie was delivered for the requested domain (or a parent?) + -- FIXME : we might want also a way to identify expired/invalidated cookies, -- e.g. a user that got deleted after being logged in ... @@ -283,8 +285,14 @@ if has_access then -- 2nd case : no access ... redirect to portal / login form else - if is_logged_in then - return redirect(conf.portal_url) + portal_url = conf["domain_portal_urls"][ngx.var.host] + if portal_url == nil then + ngx.status = 400 + ngx.header.content_type = "plain/text" + ngx.say('Unmanaged domain') + return + elseif is_logged_in then + return ngx.redirect(portal_url) else local back_url = "https://" .. ngx.var.host .. ngx.var.uri .. uri_args_string() diff --git a/conf.json.example b/conf.json.example index d49b969..fa5ab05 100644 --- a/conf.json.example +++ b/conf.json.example @@ -1,7 +1,8 @@ { - "domains": [ - "example.tld", - "example.org" + "domain_portal_urls": [ + "example.tld": "example.tld/yunohost/sso", + "sub.example.tld": "example.tld/yunohost/sso", + "foobar.org": "foobar.org/yunohost/sso" ], "permissions": { "core_skipped": { @@ -54,8 +55,6 @@ ] } }, - "portal_domain": "example.tld", - "portal_path": "/yunohost/sso/", "redirected_regex": { "example.tld/yunohost[\\/]?$": "https://example.tld/yunohost/sso/" }, diff --git a/config.lua b/config.lua index 84515aa..a7ac64f 100644 --- a/config.lua +++ b/config.lua @@ -87,38 +87,10 @@ function get_config() end end - - -- Default configuration values - default_conf = { - portal_path = "/ssowat/", - local_portal_domain = "yunohost.local", - domains = { conf["portal_domain"], "yunohost.local" }, - logging = "fatal", -- Only log fatal messages by default (so apriori nothing) - permissions = {} - } - - - -- Load default values unless they are set in the configuration file. - for param, default_value in pairs(default_conf) do - conf[param] = conf[param] or default_value + -- Always skip the portal urls to avoid redirection looping. + for domain, portal_url in pairs(conf["domain_portal_urls"]) do + table.insert(conf["permissions"]["core_skipped"]["uris"], portal_url) end - - -- If you access the SSO by a local domain, change the portal domain to - -- avoid unwanted redirections. - if ngx.var.host == conf["local_portal_domain"] then - conf["portal_domain"] = conf["local_portal_domain"] - end - - - -- Build portal full URL out of the configuration values - conf.portal_url = "https://".. - conf["portal_domain"].. - conf["portal_path"] - - - -- Always skip the portal to avoid redirection looping. - table.insert(conf["permissions"]["core_skipped"]["uris"], conf["portal_domain"]..conf["portal_path"]) - return conf end From 1ac638824219afbc3d4f0954944a2c6b398b6f8b Mon Sep 17 00:00:00 2001 From: Alexandre Aubin Date: Tue, 18 Jul 2023 01:26:56 +0200 Subject: [PATCH 07/10] Misc fixes after tests on the battlefield --- access.lua | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/access.lua b/access.lua index ad491cb..ad612ca 100644 --- a/access.lua +++ b/access.lua @@ -189,7 +189,7 @@ end function check_has_access(permission) if permission == nil then - logger:debug("No permission matching request for "..ngx.var.uri) + logger:debug("No permission matching request for "..ngx.var.uri.." ... Assuming access is denied") return false end @@ -230,7 +230,8 @@ if permission ~= nil and ngx.req.get_headers()["Authorization"] ~= nil then if perm_user_remote_user_var_in_nginx_conf == nil or perm_user_remote_user_var_in_nginx_conf == true then -- Ignore if not a Basic auth header -- otherwise, we interpret this as a Auth header spoofing attempt and clear it - _, _, b64_cred = string.find(auth_header, "^Basic%s+(.+)$") + local auth_header_from_client = ngx.req.get_headers()["Authorization"] + _, _, b64_cred = string.find(auth_header_from_client, "^Basic%s+(.+)$") if b64_cred ~= nil then ngx.req.clear_header("Authorization") end @@ -285,7 +286,8 @@ if has_access then -- 2nd case : no access ... redirect to portal / login form else - portal_url = conf["domain_portal_urls"][ngx.var.host] + portal_url = "https://" .. conf["domain_portal_urls"][ngx.var.host] + logger:debug("Redirecting to portal : " .. portal_url) if portal_url == nil then ngx.status = 400 ngx.header.content_type = "plain/text" From 5fcfd9ede60c04a5e6c0f8ed983ae509fd00dcb7 Mon Sep 17 00:00:00 2001 From: selfhoster1312 Date: Sun, 13 Aug 2023 18:17:52 +0200 Subject: [PATCH 08/10] Do not 500 when a requested domain is not configured for SSOWat --- access.lua | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/access.lua b/access.lua index ad612ca..3b0084e 100644 --- a/access.lua +++ b/access.lua @@ -286,14 +286,18 @@ if has_access then -- 2nd case : no access ... redirect to portal / login form else - portal_url = "https://" .. conf["domain_portal_urls"][ngx.var.host] - logger:debug("Redirecting to portal : " .. portal_url) - if portal_url == nil then + portal_domain = conf["domain_portal_urls"][ngx.var.host] + if portal_domain == nil then + logger:debug("Domain " .. ngx.var.host .. " is not configured for SSOWat") ngx.status = 400 ngx.header.content_type = "plain/text" - ngx.say('Unmanaged domain') + ngx.say("Unmanaged domain: " .. ngx.var.host) return - elseif is_logged_in then + end + portal_url = "https://" .. portal_domain + logger:debug("Redirecting to portal : " .. portal_url) + + if is_logged_in then return ngx.redirect(portal_url) else local back_url = "https://" .. ngx.var.host .. ngx.var.uri .. uri_args_string() From 5eff85928e077f72922467d68ef27331b2310871 Mon Sep 17 00:00:00 2001 From: selfhoster1312 Date: Sat, 2 Sep 2023 17:36:18 +0000 Subject: [PATCH 09/10] Cache JWT crypto work, only check auth on non-public routes --- access.lua | 99 ++++++++++++++++++++++++++++++++++++++++-------------- 1 file changed, 74 insertions(+), 25 deletions(-) diff --git a/access.lua b/access.lua index 3b0084e..abde49d 100644 --- a/access.lua +++ b/access.lua @@ -21,6 +21,33 @@ local rex = require("rex_pcre") local config = require("config") local conf = config.get_config() +-- Cache expensive calculations +local cache = ngx.shared.cache + +-- Hash a string using hmac_sha512, return a hexa string +function cached_jwt_verify(data, method, secret) + res = cache:get(data) + if res == nil then + logger:debug("Result not found in cache, checking login") + -- Perform expensive calculation + decoded, err = jwt.verify(data, "HS256", cookie_secret) + if not decoded then + logger:error(err) + return nil, nil, err + end + -- As explained in set_basic_auth_header(), user and hashed password do not contain ':' + -- And cache cannot contain tables, so we use "user:password" format + cached = decoded["user"]..":"..decoded["pwd"] + cache:set(data, cached, 120) + logger:debug("Result saved in cache") + return decoded["user"], decoded["pwd"], err + else + logger:debug("Result found in cache") + user, pwd = res:match("([^:]+):(.*)") + return user, pwd, nil + end +end + -- The 'match' function uses PCRE regex as default -- If '%.' is found in the regex, we assume it's a LUA regex (legacy code) -- 'match' returns the matched text. @@ -55,6 +82,9 @@ end -- ########################################################################### -- 1. AUTHENTICATION -- Check wether or not this is a logged-in user +-- This is not run immediately but only if: +-- - the app is not public +-- - and/or auth_headers is enabled for this app -- ########################################################################### function check_authentication() @@ -62,23 +92,24 @@ function check_authentication() -- cf. src/authenticators/ldap_ynhuser.py in YunoHost to see how the cookie is actually created local cookie = ngx.var["cookie_" .. conf["cookie_name"]] + if cookie == nil then + return false, nil, nil + end - decoded, err = jwt.verify(cookie, "HS256", cookie_secret) + user, pwd, err = cached_jwt_verify(cookie, "H256", cookie_secret) -- FIXME : maybe also check that the cookie was delivered for the requested domain (or a parent?) -- FIXME : we might want also a way to identify expired/invalidated cookies, - -- e.g. a user that got deleted after being logged in ... + -- e.g. a user that got deleted after being logged in, or a user that logged out ... if err ~= nil then return false, nil, nil else - return true, decoded["user"], decoded["pwd"] + return true, user, pwd end end -local is_logged_in, authUser, authPasswordEnc = check_authentication() - -- ########################################################################### -- 2. REDIRECTED URLS -- If the URL matches one of the `redirected_urls` in the configuration file, @@ -110,8 +141,8 @@ end if conf["redirected_regex"] then for regex, redirect_url in pairs(conf["redirected_regex"]) do if match(ngx.var.host..ngx.var.uri..uri_args_string(), regex) - or match(ngx.var.scheme.."://"..ngx.var.host..ngx.var.uri..uri_args_string(), regex) - or match(ngx.var.uri..uri_args_string(), regex) then + or match(ngx.var.scheme.."://"..ngx.var.host..ngx.var.uri..uri_args_string(), regex) + or match(ngx.var.uri..uri_args_string(), regex) then logger:debug("Found in redirected_regex, redirecting to "..url) ngx.redirect(convert_to_absolute_url(redirect_url)) end @@ -184,15 +215,23 @@ function element_is_in_table(element, table) return false end --- Check whether a user is allowed to access a URL using the `permissions` directive --- of the configuration file -function check_has_access(permission) - +-- Check whether the app is public access +function check_public_access(permission) if permission == nil then logger:debug("No permission matching request for "..ngx.var.uri.." ... Assuming access is denied") return false end + if permission["public"] then + logger:debug("Someone tries to access "..ngx.var.uri.." (corresponding perm: "..permission["id"]..")") + return true + end +end + +-- Check whether a user is allowed to access a URL using the `permissions` directive +-- of the configuration file +function check_has_access(permission) + -- Public access if authUser == nil or permission["public"] then user = authUser or "A visitor" @@ -212,7 +251,12 @@ function check_has_access(permission) end end -has_access = check_has_access(permission) +if check_public_access(permission) then + has_access = true +else + is_logged_in, authUser, authPasswordEnc = check_authentication() + has_access = check_has_access(permission) +end -- ########################################################################### -- 5. CLEAR USER-PROVIDED AUTH HEADER @@ -228,13 +272,13 @@ has_access = check_has_access(permission) if permission ~= nil and ngx.req.get_headers()["Authorization"] ~= nil then perm_user_remote_user_var_in_nginx_conf = permission["use_remote_user_var_in_nginx_conf"] if perm_user_remote_user_var_in_nginx_conf == nil or perm_user_remote_user_var_in_nginx_conf == true then - -- Ignore if not a Basic auth header - -- otherwise, we interpret this as a Auth header spoofing attempt and clear it - local auth_header_from_client = ngx.req.get_headers()["Authorization"] - _, _, b64_cred = string.find(auth_header_from_client, "^Basic%s+(.+)$") - if b64_cred ~= nil then - ngx.req.clear_header("Authorization") - end + -- Ignore if not a Basic auth header + -- otherwise, we interpret this as a Auth header spoofing attempt and clear it + local auth_header_from_client = ngx.req.get_headers()["Authorization"] + _, _, b64_cred = string.find(auth_header_from_client, "^Basic%s+(.+)$") + if b64_cred ~= nil then + ngx.req.clear_header("Authorization") + end end end @@ -264,17 +308,22 @@ function set_basic_auth_header() -- Set `Authorization` header to enable HTTP authentification ngx.req.set_header("Authorization", "Basic "..ngx.encode_base64( - authUser..":"..password + authUser..":"..password )) end -- 1st case : client has access if has_access then - - if is_logged_in then - -- If Basic Authorization header are enable for this permission, - -- add it to the response - if permission["auth_header"] then + -- If Basic Authorization header are enable for this permission, + -- check if the user is actually logged in... + if permission["auth_header"] then + if is_logged_in == nil then + -- Login check was not performed yet because the app is public + logger:debug("Checking authentication because the app requires auth_header") + is_logged_in, authUser, authPasswordEnc = check_authentication() + end + if is_logged_in then + -- add it to the response set_basic_auth_header() end end From 46352e6a7f7cfdcf3bbf5c92d340400e952ab5cc Mon Sep 17 00:00:00 2001 From: Alexandre Aubin <4533074+alexAubin@users.noreply.github.com> Date: Wed, 27 Sep 2023 18:43:13 +0200 Subject: [PATCH 10/10] fix cached_jwt_verify signature --- access.lua | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/access.lua b/access.lua index abde49d..c5c3e76 100644 --- a/access.lua +++ b/access.lua @@ -25,7 +25,7 @@ local conf = config.get_config() local cache = ngx.shared.cache -- Hash a string using hmac_sha512, return a hexa string -function cached_jwt_verify(data, method, secret) +function cached_jwt_verify(data, secret) res = cache:get(data) if res == nil then logger:debug("Result not found in cache, checking login") @@ -96,7 +96,7 @@ function check_authentication() return false, nil, nil end - user, pwd, err = cached_jwt_verify(cookie, "H256", cookie_secret) + user, pwd, err = cached_jwt_verify(cookie, cookie_secret) -- FIXME : maybe also check that the cookie was delivered for the requested domain (or a parent?)

Bx+>LKH4Rbn6NdmUign_!>L`=sVfGl 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 diff --git a/portal/assets/themes/clouds/cloud.png b/portal/assets/themes/clouds/cloud.png deleted file mode 100644 index 190906484cd7123b4ab3d0ef2ca8fcdf879248da..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 25519 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 UX6K*a9cqBSwxL$}Et`n{196)yTL1t6 diff --git a/portal/assets/themes/clouds/custom_overlay.css b/portal/assets/themes/clouds/custom_overlay.css deleted file mode 100644 index 7f1a000..0000000 --- a/portal/assets/themes/clouds/custom_overlay.css +++ /dev/null @@ -1,17 +0,0 @@ -/* -=============================================================================== - This file may contain extra CSS rules loaded on all apps page (*if* the app - nginx's conf does include the appropriate snippet) for the small YunoHost - button in bottom-right corner + portal overlay. - - The yunohost button corresponds to : #ynh-overlay-switch - The yunohost portal overlay / iframe corresponds to : #ynh-overlay - - BE CAREFUL that you should *not* add too-general rules that apply to - non-yunohost elements (for instance all 'a' or 'p' elements...) as it will - likely break app's rendering -=============================================================================== -*/ -#ynh-overlay-switch { - background-image: url("./cloud.png"); -} diff --git a/portal/assets/themes/clouds/custom_portal.css b/portal/assets/themes/clouds/custom_portal.css deleted file mode 100644 index 2591ca2..0000000 --- a/portal/assets/themes/clouds/custom_portal.css +++ /dev/null @@ -1,43 +0,0 @@ -/* -=============================================================================== - This file contain extra CSS rules to customize the YunoHost user portal and - can be used to customize app tiles, buttons, etc... -=============================================================================== -*/ - -/* Make page texts black */ -.user-container h2, -.user-container small, -.user-container .user-mail, -.user-container .user-mail, -.content .footer a, -a.app-tile, -#ynh-logout { - color: black !important; -} - -.ynh-user-portal { - background-image: url("background.jpg"); - background-repeat: no-repeat; - background-size: cover; - width: 100%; - height: 100%; -} - -/* Apps colors */ -.app-tile { - background-color: rgba(255, 255, 255, 0.5) !important; -} - -.app-tile:hover:after, -.app-tile:focus:after, -.app-tile:hover:before, -.app-tile:focus:before { - background: rgba(255, 255, 255, 0.5) !important; -} - -/* Use a custom logo image */ -#ynh-logo { - z-index: 10; - background-image: url("./cloud.png"); -} diff --git a/portal/assets/themes/clouds/custom_portal.js b/portal/assets/themes/clouds/custom_portal.js deleted file mode 100644 index 80c27bd..0000000 --- a/portal/assets/themes/clouds/custom_portal.js +++ /dev/null @@ -1,33 +0,0 @@ -/* -=============================================================================== - This JS file may be used to customize the YunoHost user portal *and* also - will be loaded in all app pages if the app nginx's conf does include the - appropriate snippet. - - You can monkeypatch init_portal (loading of the user portal) and - init_portal_button_and_overlay (loading of the button and overlay...) to do - custom stuff -=============================================================================== -*/ - -/* - * Monkeypatch init_portal to customize the app tile style - * -init_portal_original = init_portal; -init_portal = function() -{ - init_portal_original(); - // Some stuff here -} -*/ - -/* - * Monkey patching example to do custom stuff when loading inside an app - * -init_portal_button_and_overlay_original = init_portal_button_and_overlay; -init_portal_button_and_overlay = function() -{ - init_portal_button_and_overlay_original(); - // Custom stuff to do when loading inside an app -} -*/ diff --git a/portal/assets/themes/default/custom_overlay.css b/portal/assets/themes/default/custom_overlay.css deleted file mode 100644 index 0074f3e..0000000 --- a/portal/assets/themes/default/custom_overlay.css +++ /dev/null @@ -1,14 +0,0 @@ -/* -=============================================================================== - This file may contain extra CSS rules loaded on all apps page (*if* the app - nginx's conf does include the appropriate snippet) for the small YunoHost - button in bottom-right corner + portal overlay. - - The yunohost button corresponds to : #ynh-overlay-switch - The yunohost portal overlay / iframe corresponds to : #ynh-overlay - - BE CAREFUL that you should *not* add too-general rules that apply to - non-yunohost elements (for instance all 'a' or 'p' elements...) as it will - likely break app's rendering -=============================================================================== -*/ diff --git a/portal/assets/themes/default/custom_portal.css b/portal/assets/themes/default/custom_portal.css deleted file mode 100644 index 7346398..0000000 --- a/portal/assets/themes/default/custom_portal.css +++ /dev/null @@ -1,145 +0,0 @@ -/* -=============================================================================== - This file contain extra CSS rules to customize the YunoHost user portal and - can be used to customize app tiles, buttons, etc... -=============================================================================== -*/ - -.bluebg { - background: #3498DB!important; -} -.bluebg:hover:after, -.bluebg:focus:after, -.bluebg:hover:before, -.bluebg:focus:before { - background: #16527A!important; -} - -.purplebg { - background: #9B59B6!important; -} -.purplebg:hover:after, -.purplebg:focus:after, -.purplebg:hover:before, -.purplebg:focus:before { - background: #532C64!important; -} - -.redbg { - background: #E74C3C!important; -} -.redbg:hover:after, -.redbg:focus:after, -.redbg:hover:before, -.redbg:focus:before { - background: #921E12!important; -} - -.orangebg { - background: #F39C12!important; -} -.orangebg:hover:after, -.orangebg:focus:after, -.orangebg:hover:before, -.orangebg:focus:before { - background: #7F5006!important; -} - -.greenbg { - background: #2ECC71!important; -} -.greenbg:hover:after, -.greenbg:focus:after, -.greenbg:hover:before, -.greenbg:focus:before { - background: #176437!important; -} - -.darkbluebg { - background: #34495E!important; -} -.darkbluebg:hover:after, -.darkbluebg:focus:after, -.darkbluebg:hover:before, -.darkbluebg:focus:before { - background: #07090C!important; -} - -.lightbluebg { - background: #6A93D4!important; -} -.lightbluebg:hover:after, -.lightbluebg:focus:after, -.lightbluebg:hover:before, -.lightbluebg:focus:before { - background: #2B5394!important; -} - -.yellowbg { - background: #F1C40F!important; -} -.yellowbg:hover:after, -.yellowbg:focus:after, -.yellowbg:hover:before, -.yellowbg:focus:before { - background: #796307!important; -} - - -.lightpinkbg { - background: #F76F87!important; -} -.lightpinkbg:hover:after, -.lightpinkbg:focus:after, -.lightpinkbg:hover:before, -.lightpinkbg:focus:before { - background: #DA0C31!important; -} - -/* Following colors are not used yet */ -.pinkbg { - background: #D66D92!important; -} -.pinkbg:hover:after, -.pinkbg:focus:after, -.pinkbg:hover:before, -.pinkbg:focus:before { - background: #992B52!important; -} - -.turquoisebg { - background: #1ABC9C!important; -} -.turquoisebg:hover:after, -.turquoisebg:focus:after, -.turquoisebg:hover:before, -.turquoisebg:focus:before { - background: #0B4C3F!important; -} -.lightyellow { - background: #FFC973!important; -} -.lightyellow:hover:after, -.lightyellow:focus:after, -.lightyellow:hover:before, -.lightyellow:focus:before { - background: #F39500!important; -} -.lightgreen { - background: #B5F36D!important; -} -.lightgreen:hover:after, -.lightgreen:focus:after, -.lightgreen:hover:before, -.lightgreen:focus:before { - background: #77CF11!important; -} -.purpledarkbg { - background: #8E44AD!important; -} -.purpledarkbg:hover:after, -.purpledarkbg:focus:after, -.purpledarkbg:hover:before, -.purpledarkbg:focus:before { - background: #432051!important; -} diff --git a/portal/assets/themes/default/custom_portal.js b/portal/assets/themes/default/custom_portal.js deleted file mode 100644 index 7849e7c..0000000 --- a/portal/assets/themes/default/custom_portal.js +++ /dev/null @@ -1,40 +0,0 @@ -/* -=============================================================================== - This JS file may be used to customize the YunoHost user portal *and* also - will be loaded in all app pages if the app nginx's conf does include the - appropriate snippet. - - You can monkeypatch init_portal (loading of the user portal) and - init_portal_button_and_overlay (loading of the button and overlay...) to do - custom stuff -=============================================================================== -*/ - -var app_tile_colors = ['redbg','purpledarkbg','darkbluebg','orangebg','greenbg', 'yellowbg','lightpinkbg','pinkbg','turquoisebg','lightbluebg', 'bluebg']; - -function set_app_tile_style(el) -{ - // Select a color value from the App label - randomColorNumber = parseInt(el.textContent, 36) % app_tile_colors.length; - // Add color class. - el.classList.add(app_tile_colors[randomColorNumber]); -} - -// Monkeypatch init_portal to customize the app tile style -init_portal_original = init_portal; -init_portal = function() -{ - init_portal_original(); - Array.each(document.getElementsByClassName("app-tile"), set_app_tile_style); -} - -/* - * Monkey patching example to do custom stuff when loading inside an app - * -init_portal_button_and_overlay_original = init_portal_button_and_overlay; -init_portal_button_and_overlay = function() -{ - init_portal_button_and_overlay_original(); - // Custom stuff to do when loading inside an app -} -*/ diff --git a/portal/assets/themes/light/custom_overlay.css b/portal/assets/themes/light/custom_overlay.css deleted file mode 100644 index a2d0151..0000000 --- a/portal/assets/themes/light/custom_overlay.css +++ /dev/null @@ -1,26 +0,0 @@ -/* -=============================================================================== - This file may contain extra CSS rules loaded on all apps page (*if* the app - nginx's conf does include the appropriate snippet) for the small YunoHost - button in bottom-right corner + portal overlay. - - The yunohost button corresponds to : #ynh-overlay-switch - The yunohost portal overlay / iframe corresponds to : #ynh-overlay - - BE CAREFUL that you should *not* add too-general rules that apply to - non-yunohost elements (for instance all 'a' or 'p' elements...) as it will - likely break app's rendering -=============================================================================== -*/ - -#ynh-overlay-switch { - /* FIXME : idk if this is an issue or not to have /yunohost/sso hard-coded here */ - background-image: url("/yunohost/sso/assets/img/logo-ynh.svg"); - border-color: #eee; - background-color: #eee; -} - -#ynh-overlay-switch:hover { - border-color: #ccc; - background-color: #ccc; -} diff --git a/portal/assets/themes/light/custom_portal.css b/portal/assets/themes/light/custom_portal.css deleted file mode 100644 index 110ac2c..0000000 --- a/portal/assets/themes/light/custom_portal.css +++ /dev/null @@ -1,179 +0,0 @@ -/* -=============================================================================== - This file contain extra CSS rules to customize the YunoHost user portal and - can be used to customize app tiles, buttons, etc... -=============================================================================== -*/ - -body { - background: #fff; -} - -#ynh-logo { - background-image: url("../../img/logo-ynh.svg"); -} - -.login-form .form-group { - border: 1px solid #bbb; -} - -.user-container, -.user-menu a, -.link-btn, -.footer a { - color: #555; -} - -.user-menu a:hover, -.footer a:hover { - color: #000; -} - -.form-text:disabled:hover { - background: #797b83; -} - -.link-btn, -.link-btn:hover { - background: none; -} - - -.bluebg { - background: #3498DB!important; -} -.bluebg:hover:after, -.bluebg:focus:after, -.bluebg:hover:before, -.bluebg:focus:before { - background: #16527A!important; -} - -.purplebg { - background: #9B59B6!important; -} -.purplebg:hover:after, -.purplebg:focus:after, -.purplebg:hover:before, -.purplebg:focus:before { - background: #532C64!important; -} - -.redbg { - background: #E74C3C!important; -} -.redbg:hover:after, -.redbg:focus:after, -.redbg:hover:before, -.redbg:focus:before { - background: #921E12!important; -} - -.orangebg { - background: #F39C12!important; -} -.orangebg:hover:after, -.orangebg:focus:after, -.orangebg:hover:before, -.orangebg:focus:before { - background: #7F5006!important; -} - -.greenbg { - background: #2ECC71!important; -} -.greenbg:hover:after, -.greenbg:focus:after, -.greenbg:hover:before, -.greenbg:focus:before { - background: #176437!important; -} - -.darkbluebg { - background: #34495E!important; -} -.darkbluebg:hover:after, -.darkbluebg:focus:after, -.darkbluebg:hover:before, -.darkbluebg:focus:before { - background: #07090C!important; -} - -.lightbluebg { - background: #6A93D4!important; -} -.lightbluebg:hover:after, -.lightbluebg:focus:after, -.lightbluebg:hover:before, -.lightbluebg:focus:before { - background: #2B5394!important; -} - -.yellowbg { - background: #F1C40F!important; -} -.yellowbg:hover:after, -.yellowbg:focus:after, -.yellowbg:hover:before, -.yellowbg:focus:before { - background: #796307!important; -} - - -.lightpinkbg { - background: #F76F87!important; -} -.lightpinkbg:hover:after, -.lightpinkbg:focus:after, -.lightpinkbg:hover:before, -.lightpinkbg:focus:before { - background: #DA0C31!important; -} - -/* Following colors are not used yet */ -.pinkbg { - background: #D66D92!important; -} -.pinkbg:hover:after, -.pinkbg:focus:after, -.pinkbg:hover:before, -.pinkbg:focus:before { - background: #992B52!important; -} - -.turquoisebg { - background: #1ABC9C!important; -} -.turquoisebg:hover:after, -.turquoisebg:focus:after, -.turquoisebg:hover:before, -.turquoisebg:focus:before { - background: #0B4C3F!important; -} -.lightyellow { - background: #FFC973!important; -} -.lightyellow:hover:after, -.lightyellow:focus:after, -.lightyellow:hover:before, -.lightyellow:focus:before { - background: #F39500!important; -} -.lightgreen { - background: #B5F36D!important; -} -.lightgreen:hover:after, -.lightgreen:focus:after, -.lightgreen:hover:before, -.lightgreen:focus:before { - background: #77CF11!important; -} -.purpledarkbg { - background: #8E44AD!important; -} -.purpledarkbg:hover:after, -.purpledarkbg:focus:after, -.purpledarkbg:hover:before, -.purpledarkbg:focus:before { - background: #432051!important; -} diff --git a/portal/assets/themes/light/custom_portal.js b/portal/assets/themes/light/custom_portal.js deleted file mode 100644 index 7849e7c..0000000 --- a/portal/assets/themes/light/custom_portal.js +++ /dev/null @@ -1,40 +0,0 @@ -/* -=============================================================================== - This JS file may be used to customize the YunoHost user portal *and* also - will be loaded in all app pages if the app nginx's conf does include the - appropriate snippet. - - You can monkeypatch init_portal (loading of the user portal) and - init_portal_button_and_overlay (loading of the button and overlay...) to do - custom stuff -=============================================================================== -*/ - -var app_tile_colors = ['redbg','purpledarkbg','darkbluebg','orangebg','greenbg', 'yellowbg','lightpinkbg','pinkbg','turquoisebg','lightbluebg', 'bluebg']; - -function set_app_tile_style(el) -{ - // Select a color value from the App label - randomColorNumber = parseInt(el.textContent, 36) % app_tile_colors.length; - // Add color class. - el.classList.add(app_tile_colors[randomColorNumber]); -} - -// Monkeypatch init_portal to customize the app tile style -init_portal_original = init_portal; -init_portal = function() -{ - init_portal_original(); - Array.each(document.getElementsByClassName("app-tile"), set_app_tile_style); -} - -/* - * Monkey patching example to do custom stuff when loading inside an app - * -init_portal_button_and_overlay_original = init_portal_button_and_overlay; -init_portal_button_and_overlay = function() -{ - init_portal_button_and_overlay_original(); - // Custom stuff to do when loading inside an app -} -*/ diff --git a/portal/assets/themes/unsplash/cloud.png b/portal/assets/themes/unsplash/cloud.png deleted file mode 100644 index ad3ea55df39c9a2a3233abcb22015df03b84724c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 25519 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 UX6K*a9cqBSwxL$}Et`n{0|?$M9smFU diff --git a/portal/assets/themes/unsplash/custom_overlay.css b/portal/assets/themes/unsplash/custom_overlay.css deleted file mode 100644 index 7f1a000..0000000 --- a/portal/assets/themes/unsplash/custom_overlay.css +++ /dev/null @@ -1,17 +0,0 @@ -/* -=============================================================================== - This file may contain extra CSS rules loaded on all apps page (*if* the app - nginx's conf does include the appropriate snippet) for the small YunoHost - button in bottom-right corner + portal overlay. - - The yunohost button corresponds to : #ynh-overlay-switch - The yunohost portal overlay / iframe corresponds to : #ynh-overlay - - BE CAREFUL that you should *not* add too-general rules that apply to - non-yunohost elements (for instance all 'a' or 'p' elements...) as it will - likely break app's rendering -=============================================================================== -*/ -#ynh-overlay-switch { - background-image: url("./cloud.png"); -} diff --git a/portal/assets/themes/unsplash/custom_portal.css b/portal/assets/themes/unsplash/custom_portal.css deleted file mode 100644 index 00d82a8..0000000 --- a/portal/assets/themes/unsplash/custom_portal.css +++ /dev/null @@ -1,78 +0,0 @@ -/* -=============================================================================== - This file contain extra CSS rules to customize the YunoHost user portal and - can be used to customize app tiles, buttons, etc... -=============================================================================== -*/ - -/* Make page texts white */ -.user-container h2, -.user-container small, -.user-container .user-mail, -.user-container .user-mail, -.content .footer a, -a.app-tile, -#ynh-logout { - color: white !important; -} - -body { - color: white !important; - text-shadow: 3px 4px 4px rgba(0,0,0,.4), -1px -1px 6px rgba(0,0,0,0.2); -} - -.ynh-user-portal { - background-image: url('https://source.unsplash.com/random/featured/?nature') !important; - background-repeat: no-repeat; - background-size: cover; - width: 100%; - height: 100%; -} - -/* Apps colors */ -.app-tile { - background-color: rgba(255, 255, 255, 0.5) !important; -} - -.app-tile:hover:after, -.app-tile:focus:after, -.app-tile:hover:before, -.app-tile:focus:before { - background: rgba(255, 255, 255, 0.5) !important; -} - -/* Use a custom logo image */ -#ynh-logo { - z-index: 10; - background-image: url("./cloud.png"); -} - -/* Round the form */ -.login-form label:before { - border-top-left-radius: 5em ; - border-bottom-left-radius: 5em ; -} - -.login-form * { - border-radius: 5em; -} - -/* Make form black */ - -.login-form label::before { - background: #000; - color: #FFF; -} - -.login-form .form-group * { - background: #000; - color: #FFF; -} - -.icon { - background: #000; -} - -.messages { - border-radius: .5em; -} diff --git a/portal/assets/themes/vapor/custom_overlay.css b/portal/assets/themes/vapor/custom_overlay.css deleted file mode 100644 index 0074f3e..0000000 --- a/portal/assets/themes/vapor/custom_overlay.css +++ /dev/null @@ -1,14 +0,0 @@ -/* -=============================================================================== - This file may contain extra CSS rules loaded on all apps page (*if* the app - nginx's conf does include the appropriate snippet) for the small YunoHost - button in bottom-right corner + portal overlay. - - The yunohost button corresponds to : #ynh-overlay-switch - The yunohost portal overlay / iframe corresponds to : #ynh-overlay - - BE CAREFUL that you should *not* add too-general rules that apply to - non-yunohost elements (for instance all 'a' or 'p' elements...) as it will - likely break app's rendering -=============================================================================== -*/ diff --git a/portal/assets/themes/vapor/custom_portal.css b/portal/assets/themes/vapor/custom_portal.css deleted file mode 100644 index ead4d5b..0000000 --- a/portal/assets/themes/vapor/custom_portal.css +++ /dev/null @@ -1,109 +0,0 @@ -/* -=============================================================================== - This file contain extra CSS rules to customize the YunoHost user portal and - can be used to customize app tiles, buttons, etc... -=============================================================================== -*/ - -/* ========================================================================== - Vaporwave theme - ========================================================================== */ -.ynh-user-portal { - min-height: 100vh; - background: rgb(205, 118, 255) !important; - background: -moz-linear-gradient(45deg, rgb(205, 118, 255) 0%, rgb(93, 150, 168) 100%) !important; - background: -webkit-gradient(linear, left bottom, right top, color-stop(0%, rgb(205, 118, 255)), color-stop(100%, rgb(93, 150, 168))) !important; - background: -webkit-linear-gradient(45deg, rgb(205, 118, 255) 0%, rgb(93, 150, 168) 100%) !important; - background: -o-linear-gradient(45deg, rgb(205, 118, 255) 0%, rgb(93, 150, 168) 100%) !important; - background: -ms-linear-gradient(45deg, rgb(205, 118, 255) 0%, rgb(93, 150, 168) 100%) !important; - background: linear-gradient(45deg, rgb(205, 118, 255) 0%, rgb(93, 150, 168) 100%) !important; - filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#C82BFF', endColorstr='#0C76A8', GradientType=1) !important; -} - -.messages.danger { background: #c0392b80; } -.messages.warning { background: #e67e2280; } -.messages.success { background: #27ae6080; } -.messages.info { background: #2980b980; } - -a, small, span, -.ynh-wrapper.footer a, -.user-menu a, -.user-container.user-container-info span, -input.btn.classic-btn.large-btn { - color: #e0e0e0 !important; -} - -.form-group input::placeholder, -.form-group input::-ms-input-placeholder, -.form-group input:-ms-input-placeholder { - color: #f4f4f4 !important; -} - -form.login-form input { - color: #222 !important; -} - -a:hover, -a:active, -a:focus, -.form-group input, -input.btn.classic-btn.large-btn:hover, -.ynh-wrapper.footer a:hover { - color: white !important; -} - -.ynh-wrapper.footer a:before { - color: #cc45ee !important; -} - -.ynh-wrapper.footer nav { - border-color: #cc45ee !important; -} - -.listing-apps li a span, -.listing-apps li a:hover span, -.listing-apps li a:active span, -.listing-apps li a:focus span { - color: white !important; -} - -.listing-apps li, -.listing-apps li a { - transition: all 0.3s ease-in-out, background 0ms; /* fix gray flicker on initial load */ - border: none transparent !important; - box-shadow: 2px 2px 3px rgba(0, 0, 0, 0.1), - -2px -2px 3px 0 rgba(0, 0, 0, 0.1) inset; -} - -.listing-apps li:hover, -.listing-apps li a:hover { - box-shadow: 2px 2px 3px rgba(0, 0, 0, 0), - -2px -2px 3px 0 rgba(0, 0, 0, 0) inset; -} - -.btn.large-btn.classic-btn, -.btn.large-btn.validate-btn { - background: rgba(200, 200, 200, 0.4) !important; -} - -.btn.large-btn.classic-btn:hover, -.btn.large-btn.validate-btn:hover { - background: rgba(255, 255, 255, 0.4) !important; -} - -/* There are no colors, there is only vapor! */ -.app-tile, -.form-group input, -.form-group label, -a.btn:hover, -.btn.large-btn { - background: rgba(200, 200, 200, 0.2) !important; - border: none; -} - -.app-tile:hover:after, -.app-tile:focus:after, -.app-tile:hover:before, -.app-tile:focus:before { - background: rgba(200, 200, 200, 0.4) !important; -} diff --git a/portal/assets/themes/vapor/custom_portal.js b/portal/assets/themes/vapor/custom_portal.js deleted file mode 100644 index 80c27bd..0000000 --- a/portal/assets/themes/vapor/custom_portal.js +++ /dev/null @@ -1,33 +0,0 @@ -/* -=============================================================================== - This JS file may be used to customize the YunoHost user portal *and* also - will be loaded in all app pages if the app nginx's conf does include the - appropriate snippet. - - You can monkeypatch init_portal (loading of the user portal) and - init_portal_button_and_overlay (loading of the button and overlay...) to do - custom stuff -=============================================================================== -*/ - -/* - * Monkeypatch init_portal to customize the app tile style - * -init_portal_original = init_portal; -init_portal = function() -{ - init_portal_original(); - // Some stuff here -} -*/ - -/* - * Monkey patching example to do custom stuff when loading inside an app - * -init_portal_button_and_overlay_original = init_portal_button_and_overlay; -init_portal_button_and_overlay = function() -{ - init_portal_button_and_overlay_original(); - // Custom stuff to do when loading inside an app -} -*/ diff --git a/portal/edit.html b/portal/edit.html deleted file mode 100644 index d3f58c0..0000000 --- a/portal/edit.html +++ /dev/null @@ -1,59 +0,0 @@ -